home *** CD-ROM | disk | FTP | other *** search
-
- #line 599 "nuweb.w"
- #include "global.h"
-
- #line 680 "nuweb.w"
- int main(int argc, char *argv[])
- {
- int arg = 1;
-
- #line 754 "nuweb.w"
- command_name = argv[0];
-
- #line 771 "nuweb.w"
- while (arg < argc) {
- char *s = argv[arg];
- if (*s++ == '-' && *s != 'o') {
-
- #line 786 "nuweb.w"
- {
- char c = *s++;
- while (c) {
- switch (c) {
- case 'c': compare_flag = FALSE;
- break;
- case 'C': compline_flag = TRUE;
- break;
- case 'n': number_flag = TRUE;
- break;
- case 'p': program_flag = FALSE;
- break;
- case 's': skipnl_flag = FALSE;
- break;
- case 't': tex_flag = FALSE;
- break;
- case 'v': verbose_flag = TRUE;
- break;
- default: fprintf(stderr, "%s: unexpected argument. ",
- command_name);
-
- #line 762 "nuweb.w"
- fprintf(stderr, "Usage is: %s [-cCnpstv] [[-o file] file]...\n", command_name);
- exit(-1);
-
- #line 806 "nuweb.w"
-
- break;
- }
- c = *s++;
- }
- }
-
- #line 774 "nuweb.w"
-
- arg++;
- }
- else break;
- }
-
- #line 683 "nuweb.w"
-
-
- #line 823 "nuweb.w"
- {
- if (arg >= argc) {
- fprintf(stderr, "%s: expected a file name. ", command_name);
-
- #line 762 "nuweb.w"
- fprintf(stderr, "Usage is: %s [-cCnpstv] [[-o file] file]...\n", command_name);
- exit(-1);
-
- #line 826 "nuweb.w"
-
- }
- do {
-
- #line 845 "nuweb.w"
- {
- char source_name[256];
- char tex_name[256];
- char aux_name[256];
- int output_given = FALSE;
-
- if (strcmp(argv[arg], "-o") == 0) {
- arg++;
- output_given = TRUE;
- strcpy(tex_name, argv[arg++]);
- }
-
-
- #line 905 "nuweb.w"
- {
- char *dot;
- char *trim = trim_name(argv[arg], source_name, &dot);
-
- if (dot) {
- *dot = '\0'; /* produce HTML when the file extension is ".hw" */
- hw_flag = dot[1] == 'h' && dot[2] == 'w' && dot[3] == '\0';
- html_flag = hw_flag ||
- (dot[1] == 'h' && dot[2] == 't' && dot[3] == 'w' && dot[4] == '\0');
- if (!output_given) {
- sprintf(tex_name, (html_flag && !hw_flag) ? "%s.html" : "%s.tex", trim);
- sprintf(aux_name, "%s.aux", trim);
- }
- *dot = '.';
- }
- else {
- if (!output_given) {
- sprintf(tex_name, "%s.tex", trim);
- sprintf(aux_name, "%s.aux", trim);
- }
- strcat(source_name, ".w");
- }
- if (output_given && !html_flag && !hw_flag) {
- char temp[256], *dot;
-
- strcpy(temp, tex_name);
- trim_name(temp, aux_name, &dot);
- if (dot)
- *dot = '\0';
- strcat(aux_name, ".aux");
- }
- }
-
- #line 857 "nuweb.w"
-
-
- #line 949 "nuweb.w"
- {
- pass1(source_name);
- if (tex_flag) {
- if (html_flag) {
- int saved_number_flag = number_flag;
- number_flag = TRUE;
- collect_numbers(aux_name);
- write_html(source_name, tex_name);
- number_flag = saved_number_flag;
- }
- else {
- collect_numbers(aux_name);
- write_tex(source_name, tex_name);
- }
- }
- if (program_flag)
- write_files(file_names);
- }
-
- #line 858 "nuweb.w"
-
- }
-
- #line 829 "nuweb.w"
-
- arg++;
- } while (arg < argc);
- }
-
- #line 684 "nuweb.w"
-
- exit(0);
- }
-
- #line 874 "nuweb.w"
- char *trim_name(char *from, char *to, char **dot)
- {
- char *trim = to;
- char c = *from++;
-
- *dot = NULL;
- while (c) {
- *to++ = c;
- if (c == '/') {
- trim = to;
- *dot = NULL;
- }
- else if (c == '.')
- *dot = to - 1;
- c = *from++;
- }
- *to = '\0';
-
- return trim;
- }
-