| #include <stdio.h> | 
 | #include <direct.h> | 
 | #include <string.h> | 
 |  | 
 | /* 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; | 
 |   } |