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; }
/* * 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; }
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. */
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; }