summaryrefslogtreecommitdiff
path: root/web/nuweb/nuweb0.87b/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'web/nuweb/nuweb0.87b/main.c')
-rw-r--r--web/nuweb/nuweb0.87b/main.c105
1 files changed, 105 insertions, 0 deletions
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);
+}