Mercurial > cpython-lru_cache-weakref
annotate PC/utils/makesrc.c @ 5817:48b94de85bf3 legacy-trunk
Extensive changes by AMK.
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Thu, 17 Jul 1997 16:29:42 +0000 |
| parents | 6c9c2ac15e4b |
| children | a1ce07218781 |
| rev | line source |
|---|---|
|
3736
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
1 #include <stdio.h> |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
2 #include <direct.h> |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
3 #include <string.h> |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
4 |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
5 /* Copy files from source directories to ./src changing |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
6 file names and #include names to 8x3 lower case */ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
7 |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
8 char *usage = "You must be in the \"pc\" directory.\n"; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
9 char *list[] = {"..\\Include", "..\\Modules", "..\\Objects", "..\\Parser", "..\\Python", ".", 0}; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
10 main() |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
11 { |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
12 DIR *dpath; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
13 struct dirent *dir; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
14 int len; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
15 char **plist; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
16 char *pt1, *pt2, *name; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
17 char dest_path[256], src_path[256], buf256[256]; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
18 FILE *fpin, *fpout; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
19 |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
20 for (plist = list; *plist; plist++){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
21 if ((dpath = opendir(*plist)) == NULL){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
22 printf(usage); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
23 return 1; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
24 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
25 |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
26 while (dir = readdir(dpath)){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
27 name = dir->d_name; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
28 len = strlen(name); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
29 if (len > 2 && name[len - 2] == '.' && |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
30 (name[len - 1] == 'c' || name[len - 1] == 'h')){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
31 strcpy(buf256, name); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
32 if (len > 10){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
33 buf256[8] = '.'; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
34 buf256[9] = name[len - 1]; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
35 buf256[10] = 0; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
36 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
37 strlwr(buf256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
38 strncpy(src_path, *plist, 256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
39 strncat(src_path, "\\", 256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
40 strncat(src_path, name, 256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
41 strncpy(dest_path, ".\\src\\", 256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
42 strncat(dest_path, buf256, 256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
43 printf("Copying %-30s to %s\n", src_path, dest_path); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
44 fpin = fopen(src_path, "r"); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
45 fpout = fopen(dest_path, "w"); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
46 while (fgets(buf256, 256, fpin)){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
47 if (!strncmp(buf256, "#include", 8)){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
48 strlwr(buf256); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
49 if ((pt1 = strstr(buf256, "\"")) && |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
50 (pt2 = strstr(buf256, ".")) && |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
51 (*(pt2 + 1) == 'h') && |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
52 (pt2 - pt1 > 9)){ |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
53 for (pt1 += 9; *pt2; pt1++, pt2++) |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
54 *pt1 = *pt2; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
55 *pt1 = 0; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
56 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
57 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
58 fputs(buf256, fpout); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
59 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
60 fclose(fpin); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
61 fclose(fpout); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
62 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
63 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
64 closedir(dpath); |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
65 } |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
66 return 0; |
|
6c9c2ac15e4b
Added PC files from Jim Ahlstrom.
Guido van Rossum <guido@python.org>
parents:
diff
changeset
|
67 } |
