コード例 #1
0
ファイル: kit_test.c プロジェクト: spacerace/snippets
int main(int argc, char *argv[]) {
    char *s;

    printf("kitten test with dev86/bcc\r\n\r\n");

    kittenopen("KIT_TEST.DE");
    s = kittengets(1, 1, "Hello World!");

    printf("opening KIT_TEST.DE, message 1.1: '%s'\r\n", s);

    kittenclose();

    return 0;
}
コード例 #2
0
ファイル: fdpkgvar.c プロジェクト: CivilPol/sdcboot
/*
 * Returns 1 for failure, 0 for success
 */
int main(int argc, char **argv) {
    char *dosdir,
         *fdauto,
         *fdconfig,
         dd[_MAX_PATH],
         fa[_MAX_PATH],
         fc[_MAX_PATH],
         temp[12],
         executestring[_MAX_PATH];
    int ret = -1;
    FILE *fp;
    kittenopen("FDPKG");
    if((argc&&argv[1][0]=='/'||argv[1][0]=='-')&&(argv[1][1]=='?'||tolower(argv[1][1])=='h'))
    {
        help();
        kittenclose();
        return 1;
    }
    sprintf(temp, "%s.BAT", _mktemp("XXXXXX"));
    while(access(temp, 0) == 0) sprintf(temp, "%s.BAT", _mktemp("XXXXXX"));
    if((fp = fopen(temp, "w")) == NULL) {
        kitten_printf(5,4,"Could not open temp files\n");
        return -1;
    }
    while(kbhit()) getch();
    sprintf(executestring, "%s\r", temp);
    kb_stuff(executestring);
    fprintf(fp, "@echo off\n");
    if((dosdir = getenv("DOSDIR")) == NULL) {
        if		(access("C:\\FDOS"   , 0) == 0) {
            ret = find_dir("C:\\FDOS");
            if(ret == 0) strcpy(dd, "C:\\FDOS");
        }
        if(ret != 0 && access("C:\\FREEDOS", 0) == 0) {
            ret = find_dir("C:\\FREEDOS");
            if(ret == 0) strcpy(dd, "C:\\FREEDOS");
        }
        if(ret != 0 && access("C:\\DOS"    , 0) == 0) {
            ret = find_dir("C:\\DOS");
            if(ret == 0) strcpy(dd, "C:\\DOS");
        }
        if(ret != 0 && access("D\\FDOS"    , 0) == 0) {
            ret = find_dir("D:\\FDOS");
            if(ret == 0) strcpy(dd, "D:\\FDOS");
        }
        if(ret != 0 && access("D\\FREEDOS" , 0) == 0) {
            ret = find_dir("D:\\FREEDOS");
            if(ret == 0) strcpy(dd, "D:\\FREEDOS");
        }
        if(ret != 0 && access("D\\DOS"     , 0) == 0) {
            ret = find_dir("D:\\DOS");
            if(ret == 0) strcpy(dd, "D:\\DOS");
        }
        if(ret != 0) {
            kitten_printf(5,5,"Could not find suitable directory for %%DOSDIR%%\n");
            fclose(fp);
            return -1;
        } else fprintf(fp, "SET DOSDIR=%s\n", dd);
    }
    if((fdauto = getenv("AUTOFILE")) == NULL) {
        if(	access("C:\\FDAUTO.BAT",   0) == 0) strcpy(fa, "C:\\FDAUTO.BAT");
        else if(access("C:\\AUTOEXEC.BAT", 0) == 0) strcpy(fa, "C:\\AUTOEXEC.BAT");
        else {
            kitten_printf(5,6,"Could not find suitable autoexec.bat\n");
            fprintf(fp, "DEL %s\x1a", temp);
            fclose(fp);
            return -1;
        }
        fprintf(fp, "SET AUTOFILE=%s\necho SET AUTOFILE=%s >> %s\n", fa, fa, fa);
        if(dosdir == NULL) fprintf(fp, "echo SET DOSDIR=%s >> %s\n", dd, fa);
    } else if(dosdir == NULL) fprintf(fp, "echo SET DOSDIR=%s >> %s\n", dd, fdauto);
    if((fdconfig = getenv("CFGFILE")) == NULL) {
        if(	access("C:\\FDCONFIG.SYS", 0) == 0) strcpy(fc, "C:\\FDCONFIG.SYS");
        else if(access("C:\\CONFIG.SYS"  , 0) == 0) strcpy(fc, "C:\\CONFIG.SYS");
        else {
            kitten_printf(5,7,"Could not find suitable config.sys\n");
            fprintf(fp, "DEL %s\x1a", temp);
            fclose(fp);
            return -1;
        }
        fprintf(fp, "SET CFGFILE=%s\necho SET CFGFILE=%s >> %s\n",
                fc, fc, (fdauto == NULL) ? fa : fdauto);
    }
    fprintf(fp, "DEL %s\x1a", temp);
    fclose(fp);
    return 0;
}
コード例 #3
0
ファイル: MOVE.C プロジェクト: FDOS/move
static void move_files(const char *src_pathname, const char *src_filename,
                       const char *dest_pathname, const char *dest_filename,
                       int movedirs)
{
    char filepattern[MAXPATH],src_path_filename[MAXPATH],dest_path_filename[MAXPATH];
    char tmp_filename[MAXFILE+MAXEXT],tmp_pathname[MAXPATH];
    struct ffblk fileblock;
    int fileattrib, done;

    fileattrib=FA_RDONLY+FA_ARCH+FA_SYSTEM;

    if (movedirs || !ContainsWildCards(src_filename))
       fileattrib +=FA_DIREC;

    /* Find first source file. */
    strmcpy(filepattern, src_pathname, sizeof(filepattern));
    strmcat(filepattern, src_filename, sizeof(filepattern));
    done=findfirst(filepattern, &fileblock, fileattrib);
    while ((!done) && (fileblock.ff_name[0] == '.'))
	   done = findnext(&fileblock);

    if (done)
    {
       char buffer[80];
#ifdef USE_KITTEN
       sprintf(buffer, "%s%s %s", src_pathname, src_filename, kittengets(1,0,"does not exist!"));
#else
       sprintf(buffer, "%s%s does not exist!", src_pathname, src_filename);
#endif
       /* error */
       fprintf(stderr, " [%s]\n", buffer);
    }

    /* Check if destination directory has to be created. */
    if ((!done) && !dir_exists(dest_pathname))
    {
        strmcpy(tmp_pathname, dest_pathname, sizeof(tmp_pathname));
        if (makedir(tmp_pathname) != 0)
	{
#ifdef USE_KITTEN
	    error(1,10,"Unable to create directory");
	    kittenclose();
#else
	    error("Unable to create directory");
#endif
	    exit(4);
        } /* end if. */

    } /* end if. */

    /* Copy files. */
    while (!done)
    {
        /* Build source filename including path. */
        strmcpy(src_path_filename, src_pathname, sizeof(src_path_filename));
        strmcat(src_path_filename, fileblock.ff_name,
	        sizeof(src_path_filename));

        /* Build destination filename including path. */
        strmcpy(dest_path_filename, dest_pathname, sizeof(dest_path_filename));
        build_filename(tmp_filename, fileblock.ff_name, dest_filename);
        strmcat(dest_path_filename, tmp_filename, sizeof(dest_path_filename));
        prepare_move(src_path_filename, dest_path_filename);

	do {
	  done = findnext(&fileblock);
	} while ((!done) && (fileblock.ff_name[0] == '.'));
    } /* end while. */

} /* end move_files. */
コード例 #4
0
ファイル: MOVE.C プロジェクト: FDOS/move
static int extract_sources(int fileargc, char** fileargv)
{
    int i;
    char *sep;
    char tempname[MAXPATH];
    char argv[MAXPATH], *pargv;

    for (i= 0; i < fileargc; i++)
    {
	strmcpy(argv, fileargv[i], MAXPATH);

        /* Strip leading and ending ','s */
	pargv = strchr(argv, 0)	- 1;
	while (*pargv && (*pargv == ',')) pargv--;
	*(pargv+1) = 0;
	pargv = argv;
	while (*pargv && (*pargv == ',')) pargv++;
	if (!*pargv) continue;

	sep = strchr(pargv, ',');
	while (sep)
	{
	    if (sep-pargv < MAXPATH)
	    {
		memcpy(tempname, pargv, sep-pargv);
		tempname[sep-pargv] = '\0';
		if (!FullPath(SourcePaths[AmofSources++], tempname))
		{
#ifdef USE_KITTEN
		    error(1,9,"Invalid source file");
		    kittenclose();
#else
		    error("Invalid source file");
#endif
		    exit(1);
		}
	    }
	    else
		return 0;

	    sep = strchr(pargv = (sep + 1), ',');
	}

	if (strlen(pargv) < MAXPATH)
	{
	    if (!FullPath(SourcePaths[AmofSources++], pargv))
	    {
#ifdef USE_KITTEN
		error(1,9,"Invalid source file");
#else
		error("Invalid source file");
#endif
		return 0;
	    }
	}
	else
	    return 0;
    }

    return 1;
}