/* t1.c: main control and input switching */ # # include "t..c" #include # ifdef gcos /* required by GCOS because file is passed to "tbl" by troff preprocessor */ # define _f1 _f extern FILE *_f[]; # endif # ifdef unix # define MACROS "/usr/lib/tmac.s" # define PYMACS "/usr/lib/tmac.m" # endif # ifdef gcos # define MACROS "cc/troff/smac" # define PYMACS "cc/troff/mmac" # endif # define ever (;;) main(argc,argv) char *argv[]; { # ifdef unix int badsig(); signal(SIGPIPE, badsig); # endif # ifdef gcos if(!intss()) tabout = fopen("qq", "w"); /* default media code is type 5 */ # endif exit(tbl(argc,argv)); } tbl(argc,argv) char *argv[]; { char line[512]; /* required by GCOS because "stdout" is set by troff preprocessor */ tabin=stdin; tabout=stdout; setinp(argc,argv); while (gets1(line)) { fprintf(tabout, "%s\n",line); if (prefix(".TS", line)) tableput(); } fclose(tabin); return(0); } int sargc; char **sargv; setinp(argc,argv) char **argv; { sargc = argc; sargv = argv; sargc--; sargv++; if (sargc>0) swapin(); } swapin() { while (sargc>0 && **sargv=='-') { if (match("-ms", *sargv)) { *sargv = MACROS; break; } if (match("-mm", *sargv)) { *sargv = PYMACS; break; } if (match("-TX", *sargv)) pr1403=1; sargc--; sargv++; } if (sargc<=0) return(0); # ifdef unix /* file closing is done by GCOS troff preprocessor */ if (tabin!=stdin) fclose(tabin); # endif tabin = fopen(ifile= *sargv, "r"); iline=1; # ifdef unix /* file names are all put into f. by the GCOS troff preprocessor */ fprintf(tabout, ".ds f. %s\n",ifile); # endif if (tabin==NULL) error("Can't open file"); sargc--; sargv++; return(1); } # ifdef unix badsig() { signal(SIGPIPE, 1); exit(0); } # endif