home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / nuweb087.zip / output.c.os2 < prev    next >
Text File  |  1996-02-29  |  2KB  |  57 lines

  1. #include "global.h"
  2. void write_files(files)
  3.      Name *files;
  4. {
  5.   while (files) {
  6.     write_files(files->llink);
  7.     {
  8.       char indent_chars[500];
  9.       char *tmp_dir_p  = ".";
  10.       char *tmp_pref_p = "nuw";
  11.       FILE *temp_file;
  12. /*
  13.       char *temp_name = tempnam(".", 0);
  14. */
  15.       char *temp_name = tempnam(tmp_dir_p, tmp_pref_p);
  16.       temp_file = fopen(temp_name, "w");
  17.       if (!temp_file) {
  18.         fprintf(stderr, "%s: can't create %s for a temporary file\n",
  19.                 command_name, temp_name);
  20.         exit(-1);
  21.       }  
  22.       if (verbose_flag)
  23.         fprintf(stderr, "writing %s\n", files->spelling);
  24.       write_scraps(temp_file, files->defs, 0, indent_chars,
  25.                    files->debug_flag, files->tab_flag, files->indent_flag);
  26.       fclose(temp_file);
  27.       if (compare_flag)
  28.         {
  29.           FILE *old_file = fopen(files->spelling, "r");
  30.           if (old_file) {
  31.             int x, y;
  32.             temp_file = fopen(temp_name, "r");
  33.             do {
  34.               x = getc(old_file);
  35.               y = getc(temp_file);
  36.             } while (x == y && x != EOF);
  37.             fclose(old_file);
  38.             fclose(temp_file);
  39.             if (x == y)
  40.               remove(temp_name);
  41.             else {
  42.               remove(files->spelling);
  43.               rename(temp_name, files->spelling);
  44.             }
  45.           }
  46.           else
  47.             rename(temp_name, files->spelling);
  48.         }
  49.       else {
  50.         remove(files->spelling);
  51.         rename(temp_name, files->spelling);
  52.       }
  53.     }
  54.     files = files->rlink;
  55.   }
  56. }
  57.