home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / nuweb087.zip / main.c < prev    next >
C/C++ Source or Header  |  1996-02-28  |  2KB  |  96 lines

  1. #include "global.h"
  2. void main(argc, argv)
  3.      int argc;
  4.      char **argv;
  5. {
  6.   int arg = 1;
  7.   command_name = argv[0];
  8.   while (arg < argc) {
  9.     char *s = argv[arg];
  10.     if (*s++ == '-') {
  11.       {
  12.         char c = *s++;
  13.         while (c) {
  14.           switch (c) {
  15.             case 'c': compare_flag = FALSE;
  16.                       break;
  17.             case 'n': number_flag = TRUE;
  18.                       break;
  19.             case 'o': output_flag = FALSE;
  20.                       break;
  21.             case 't': tex_flag = FALSE;
  22.                       break;
  23.             case 'v': verbose_flag = TRUE;
  24.                       break;
  25.             default:  fprintf(stderr, "%s: unexpected argument ignored.  ",
  26.                               command_name);
  27.                       fprintf(stderr, "Usage is: %s [-cnotv] file...\n",
  28.                               command_name);
  29.                       break;
  30.           }
  31.           c = *s++;
  32.         }
  33.       }
  34.       arg++;
  35.     }
  36.     else break;
  37.   }
  38.   {
  39.     if (arg >= argc) {
  40.       fprintf(stderr, "%s: expected a file name.  ", command_name);
  41.       fprintf(stderr, "Usage is: %s [-cnotv] file-name...\n", command_name);
  42.       exit(-1);
  43.     }
  44.     do {
  45.       {
  46.         char source_name[100];
  47.         char tex_name[100];
  48.         char aux_name[100];
  49.         {
  50.           char *p = argv[arg];
  51.           char *q = source_name;
  52.           char *trim = q;
  53.           char *dot = NULL;
  54.           char c = *p++;
  55.           while (c) {
  56.             *q++ = c;
  57.             if (c == '/') {
  58.               trim = q;
  59.               dot = NULL;
  60.             }
  61.             else if (c == '.')
  62.               dot = q - 1;
  63.             c = *p++;
  64.           }
  65.           *q = '\0';
  66.           if (dot) {
  67.             *dot = '\0';
  68.             sprintf(tex_name, "%s.tex", trim);
  69.             sprintf(aux_name, "%s.aux", trim);
  70.             *dot = '.';
  71.           }
  72.           else {
  73.             sprintf(tex_name, "%s.tex", trim);
  74.             sprintf(aux_name, "%s.aux", trim);
  75.             *q++ = '.';
  76.             *q++ = 'w';
  77.             *q = '\0';
  78.           }
  79.         }
  80.         {
  81.           pass1(source_name);
  82.           if (tex_flag) {
  83.             collect_numbers(aux_name);
  84.             write_tex(source_name, tex_name);
  85.           }
  86.           if (output_flag)
  87.             write_files(file_names);
  88.           arena_free();
  89.         }
  90.       }
  91.       arg++;
  92.     } while (arg < argc);
  93.   }
  94.   exit(0);
  95. }
  96.