mirror of
				https://github.com/python/cpython.git
				synced 2025-11-04 03:44:55 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.9 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable file
		
	
	
	
	
#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;
 | 
						|
  }
 |