| 1 | #include "stdlib.h" | 
|---|
| 2 | #include "stdio.h" | 
|---|
| 3 | #include "string.h" | 
|---|
| 4 |  | 
|---|
| 5 | /* | 
|---|
| 6 | * Renumbers a dialog .h include file so that the numbers begin at x | 
|---|
| 7 | * (arbitrary starting number; see below) and increment by 1.  If a | 
|---|
| 8 | * blank line is encounted renumbering begins again at x + ((x % 100) + 100). | 
|---|
| 9 | * skips #directives and blank lines (which act as above), but is too | 
|---|
| 10 | * dumb to handle anything else.  note lines are "broken" at column 40. | 
|---|
| 11 | * handy when reusing (recombining) junk from other projects to form a | 
|---|
| 12 | * new project. | 
|---|
| 13 | * | 
|---|
| 14 | * TEST BEFORE USING TO DETERMINE APPLICABILITY. | 
|---|
| 15 | * | 
|---|
| 16 | * public domain from M. Kimes. | 
|---|
| 17 | */ | 
|---|
| 18 |  | 
|---|
| 19 |  | 
|---|
| 20 | int main (int argc,char *argv[]) { | 
|---|
| 21 |  | 
|---|
| 22 | static   FILE  *fpi,*fpo; | 
|---|
| 23 | static   int    x = 20000;  /* arbitrary starting number */ | 
|---|
| 24 | static   char   s[256]; | 
|---|
| 25 | static   char   filein[260],fileout[260]; | 
|---|
| 26 | register char  *p; | 
|---|
| 27 | register int    z; | 
|---|
| 28 |  | 
|---|
| 29 | printf("\nUsage:  renum dlg.h\n Produces new renumbered dlg.h & dlg.bak\n"); | 
|---|
| 30 |  | 
|---|
| 31 | if(argc < 2) | 
|---|
| 32 | strcpy(filein,"FM3DLG.H"); | 
|---|
| 33 | else | 
|---|
| 34 | strcpy(filein,argv[1]); | 
|---|
| 35 | strcpy(fileout,filein); | 
|---|
| 36 | p = strrchr(filein,'.'); | 
|---|
| 37 | if(p) | 
|---|
| 38 | strcpy(p,".BAK"); | 
|---|
| 39 | else | 
|---|
| 40 | strcat(p,".BAK"); | 
|---|
| 41 | if(!stricmp(filein,fileout)) { | 
|---|
| 42 | printf(" **Error: input file == output file -- \"%s\" == \"%s\"\n", | 
|---|
| 43 | filein,fileout); | 
|---|
| 44 | return 1; | 
|---|
| 45 | } | 
|---|
| 46 |  | 
|---|
| 47 | remove(filein); | 
|---|
| 48 | rename(fileout,filein); | 
|---|
| 49 | fpi = fopen(filein,"r+"); | 
|---|
| 50 | if(fpi) { | 
|---|
| 51 | fpo = fopen(fileout,"w"); | 
|---|
| 52 | if(fpo) { | 
|---|
| 53 | while(!feof(fpi)) { | 
|---|
| 54 | if(!fgets(s,256,fpi)) | 
|---|
| 55 | break; | 
|---|
| 56 | if(s[strlen(s) - 1] == '\n') | 
|---|
| 57 | s[strlen(s) - 1] = 0; | 
|---|
| 58 | p = s; | 
|---|
| 59 | while(*p == ' ') | 
|---|
| 60 | p++; | 
|---|
| 61 | if(p != s) | 
|---|
| 62 | memmove(s,p,strlen(p) + 1); | 
|---|
| 63 | if(*s) { | 
|---|
| 64 | p = &s[strlen(s) - 1]; | 
|---|
| 65 | while(*p == ' ' && p > s) | 
|---|
| 66 | p--; | 
|---|
| 67 | if(*p == ' ') | 
|---|
| 68 | *p = 0; | 
|---|
| 69 | } | 
|---|
| 70 | if(!*s) { | 
|---|
| 71 | fprintf(fpo,"\n"); | 
|---|
| 72 | x = (x - (x % 100)) + 100; | 
|---|
| 73 | } | 
|---|
| 74 | else if((*s == '#' && strncmp(s,"#define ",8)) || | 
|---|
| 75 | !strncmp(s,"/*",2) || *s == '*') | 
|---|
| 76 | fprintf(fpo,"%s%s\n",(*s == '*') ? " " : "",s); | 
|---|
| 77 | else { | 
|---|
| 78 | s[39] = 0; | 
|---|
| 79 | p = &s[strlen(s) - 1]; | 
|---|
| 80 | while(*p == ' ' && p > s) | 
|---|
| 81 | p--; | 
|---|
| 82 | if(*p == ' ') | 
|---|
| 83 | *p = 0; | 
|---|
| 84 | if(*s) { | 
|---|
| 85 | fprintf(fpo,"%s",s); | 
|---|
| 86 | for(z = strlen(s);z < 40;z++) | 
|---|
| 87 | fprintf(fpo," "); | 
|---|
| 88 | fprintf(fpo,"%d\n",x++); | 
|---|
| 89 | } | 
|---|
| 90 | else | 
|---|
| 91 | fprintf(fpo,"\n"); | 
|---|
| 92 | } | 
|---|
| 93 | } | 
|---|
| 94 | fclose(fpo); | 
|---|
| 95 | } | 
|---|
| 96 | else { | 
|---|
| 97 | fclose(fpi); | 
|---|
| 98 | fpi = NULL; | 
|---|
| 99 | rename(filein,fileout); | 
|---|
| 100 | printf(" **Error: couldn't open output file \"%s\"\n",fileout); | 
|---|
| 101 | return 1; | 
|---|
| 102 | } | 
|---|
| 103 | if(fpi) | 
|---|
| 104 | fclose(fpi); | 
|---|
| 105 | } | 
|---|
| 106 | else { | 
|---|
| 107 | rename(filein,fileout); | 
|---|
| 108 | printf(" **Error: couldn't open input file \"%s\"\n",filein); | 
|---|
| 109 | return 1; | 
|---|
| 110 | } | 
|---|
| 111 | printf("  Complete.\n"); | 
|---|
| 112 | return 0; | 
|---|
| 113 | } | 
|---|