home *** CD-ROM | disk | FTP | other *** search
-
- #line 635 "nuweb.w"
- #include "global.h"
-
- #line 2174 "nuweb.w"
- void write_files(Name *files)
- {
- while (files) {
- write_files(files->llink);
-
- #line 2194 "nuweb.w"
- {
- char indent_chars[500];
- FILE *temp_file;
- char *temp_name = tmpnam(NULL);
- temp_file = fopen(temp_name, "w");
- if (!temp_file) {
- fprintf(stderr, "%s: can't create %s for a temporary file\n",
- command_name, temp_name);
- exit(-1);
- }
- if (verbose_flag)
- fprintf(stderr, "writing %s\n", files->spelling);
- write_scraps(temp_file, files->defs, 0, indent_chars,
- files->debug_flag, files->tab_flag, files->indent_flag);
- fclose(temp_file);
- if (compare_flag)
-
- #line 2224 "nuweb.w"
- {
- FILE *old_file = fopen(files->spelling, "r");
- if (old_file) {
- int x, y;
- temp_file = fopen(temp_name, "r");
- if (compline_flag)
-
- #line 2257 "nuweb.w"
- {
- char cue[] = "\n#line ";
- int pos = 0, cuelen = strlen(cue);
- do {
- x = getc(old_file);
- y = getc(temp_file);
- if (x != cue[pos])
- pos = 0;
- if (x == y && x == cue[pos]) {
- pos++;
- if (pos == cuelen) {
- pos = 0;
- do x = getc(old_file); while (x != '\n' && x != EOF);
- do y = getc(temp_file); while (y != '\n' && y != EOF);
- }
- }
- } while (x == y && x != EOF);
- }
-
- #line 2230 "nuweb.w"
-
- else
-
- #line 2249 "nuweb.w"
- do {
- x = getc(old_file);
- y = getc(temp_file);
- } while (x == y && x != EOF);
-
- #line 2232 "nuweb.w"
-
- fclose(old_file);
- fclose(temp_file);
- if (x == y)
- remove(temp_name);
- else {
- remove(files->spelling);
- rename(temp_name, files->spelling);
- }
- }
- else
- rename(temp_name, files->spelling);
- }
-
- #line 2210 "nuweb.w"
-
- else {
- remove(files->spelling);
- rename(temp_name, files->spelling);
- }
- }
-
- #line 2178 "nuweb.w"
-
- files = files->rlink;
- }
- }