#include #include #include /* Copy files from source directories to ./src changing file names and #include names to 8x3 lower case */ char *usage = "You must be in the \"pc\" directory.\n"; char *list[] = {"..\\Include", "..\\Modules", "..\\Objects", "..\\Parser", "..\\Python", ".", 0}; main() { DIR *dpath; struct dirent *dir; int len; char **plist; char *pt1, *pt2, *name; char dest_path[256], src_path[256], buf256[256]; FILE *fpin, *fpout; for (plist = list; *plist; plist++){ if ((dpath = opendir(*plist)) == NULL){ printf(usage); return 1; } while (dir = readdir(dpath)){ name = dir->d_name; len = strlen(name); if (len > 2 && name[len - 2] == '.' && (name[len - 1] == 'c' || name[len - 1] == 'h')){ strcpy(buf256, name); if (len > 10){ buf256[8] = '.'; buf256[9] = name[len - 1]; buf256[10] = 0; } strlwr(buf256); strncpy(src_path, *plist, 256); strncat(src_path, "\\", 256); strncat(src_path, name, 256); strncpy(dest_path, ".\\src\\", 256); strncat(dest_path, buf256, 256); printf("Copying %-30s to %s\n", src_path, dest_path); fpin = fopen(src_path, "r"); fpout = fopen(dest_path, "w"); while (fgets(buf256, 256, fpin)){ if (!strncmp(buf256, "#include", 8)){ strlwr(buf256); if ((pt1 = strstr(buf256, "\"")) && (pt2 = strstr(buf256, ".")) && (*(pt2 + 1) == 'h') && (pt2 - pt1 > 9)){ for (pt1 += 9; *pt2; pt1++, pt2++) *pt1 = *pt2; *pt1 = 0; } } fputs(buf256, fpout); } fclose(fpin); fclose(fpout); } } closedir(dpath); } return 0; }