64 |
} |
} |
65 |
} |
} |
66 |
|
|
67 |
|
static char const * |
68 |
|
filename_only(char const * filename) |
69 |
|
{ |
70 |
|
char const * ptr = filename + strlen(filename) - 1; |
71 |
|
for (; ptr >= filename; --ptr) { |
72 |
|
if (*ptr == '/') |
73 |
|
return ptr+1; |
74 |
|
} |
75 |
|
return ptr; |
76 |
|
} |
77 |
|
|
78 |
|
static void |
79 |
|
build_fname(char * fname, char const * filename, char const * ext) |
80 |
|
{ |
81 |
|
if (fdopt.output_dir) { |
82 |
|
strcpy(fname, fdopt.output_dir); |
83 |
|
if (fname[strlen(fdopt.output_dir) - 1] != '/') |
84 |
|
strcat(fname, "/"); |
85 |
|
strcat(fname, filename_only(filename)); |
86 |
|
} else |
87 |
|
strcpy(fname, filename); |
88 |
|
strcat(fname, ext); |
89 |
|
} |
90 |
|
|
91 |
/* filename is without extensions */ |
/* filename is without extensions */ |
92 |
int |
int |
93 |
C_output(const char *filename, FRM * forms, int fnumb) |
C_output(const char *filename, FRM * forms, int fnumb) |
96 |
int i, j; |
int i, j; |
97 |
FILE *fn; |
FILE *fn; |
98 |
|
|
99 |
strcpy(fname, filename); |
build_fname(fname, filename, ".h"); |
|
strcat(fname, ".h"); |
|
100 |
|
|
101 |
make_backup(fname); |
make_backup(fname); |
102 |
if (!(fn = fopen(fname, "w"))) |
if (!(fn = fopen(fname, "w"))) |
132 |
fclose(fn); |
fclose(fn); |
133 |
|
|
134 |
/* Make the .c file. */ |
/* Make the .c file. */ |
135 |
strcpy(fname, filename); |
build_fname(fname, filename, ".c"); |
|
strcat(fname, ".c"); |
|
136 |
|
|
137 |
make_backup(fname); |
make_backup(fname); |
138 |
if (!(fn = fopen(fname, "w"))) |
if (!(fn = fopen(fname, "w"))) |