From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- web/nuweb/nuweb0.87b/main.c | 105 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 web/nuweb/nuweb0.87b/main.c (limited to 'web/nuweb/nuweb0.87b/main.c') diff --git a/web/nuweb/nuweb0.87b/main.c b/web/nuweb/nuweb0.87b/main.c new file mode 100644 index 0000000000..e792ffc8cd --- /dev/null +++ b/web/nuweb/nuweb0.87b/main.c @@ -0,0 +1,105 @@ +#include "global.h" +int main(argc, argv) + int argc; + char **argv; +{ + int arg = 1; + command_name = argv[0]; + while (arg < argc) { + char *s = argv[arg]; + if (*s++ == '-') { + { + char c = *s++; + while (c) { + switch (c) { + case 'c': compare_flag = FALSE; + break; + case 'n': number_flag = TRUE; + break; + case 'o': output_flag = FALSE; + break; + case 't': tex_flag = FALSE; + break; + case 'v': verbose_flag = TRUE; + break; + default: fprintf(stderr, "%s: unexpected argument ignored. ", + command_name); + fprintf(stderr, "Usage is: %s [-cnotv] file...\n", + command_name); + break; + } + c = *s++; + } + } + arg++; + } + else break; + } + { + if (arg >= argc) { + fprintf(stderr, "%s: expected a file name. ", command_name); + fprintf(stderr, "Usage is: %s [-cnotv] file-name...\n", command_name); + exit(-1); + } + do { + { + char source_name[100]; + char tex_name[100]; + char aux_name[100]; + { + char *p = argv[arg]; + char *q = source_name; + char *trim = q; + char *dot = NULL; + char c = *p++; + while (c) { + *q++ = c; + if (c == '/') { + trim = q; + dot = NULL; + } + else if (c == '.') + dot = q - 1; + c = *p++; + } + *q = '\0'; + if (dot) { + *dot = '\0'; /* produce HTML when the file extension is ".hw" */ + html_flag = dot[1] == 'h' && dot[2] == 'w' && dot[3] == '\0'; + sprintf(tex_name, "%s.tex", trim); + sprintf(aux_name, "%s.aux", trim); + *dot = '.'; + } + else { + sprintf(tex_name, "%s.tex", trim); + sprintf(aux_name, "%s.aux", trim); + *q++ = '.'; + *q++ = 'w'; + *q = '\0'; + } + } + { + 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 (output_flag) + write_files(file_names); + arena_free(); + } + } + arg++; + } while (arg < argc); + } + exit(0); +} -- cgit v1.2.3