summaryrefslogtreecommitdiffstats
path: root/PC/utils/makesrc.c
diff options
context:
space:
mode:
Diffstat (limited to 'PC/utils/makesrc.c')
-rwxr-xr-xPC/utils/makesrc.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/PC/utils/makesrc.c b/PC/utils/makesrc.c
new file mode 100755
index 0000000..883b4d8
--- /dev/null
+++ b/PC/utils/makesrc.c
@@ -0,0 +1,67 @@
+#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;
+ }