annotate PC/utils/makesrc.c @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents 6c9c2ac15e4b
children a1ce07218781
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }