114508Ssam #ifndef lint 2*37907Sbostic static char sccsid[] = "@(#)t1.c 4.3 05/11/89"; 314508Ssam #endif 411028Sshannon 511028Sshannon /* t1.c: main control and input switching */ 611028Sshannon # 711028Sshannon # include "t..c" 811028Sshannon #include <signal.h> 9*37907Sbostic #include "pathnames.h" 10*37907Sbostic 1111028Sshannon # ifdef gcos 1211028Sshannon /* required by GCOS because file is passed to "tbl" by troff preprocessor */ 1311028Sshannon # define _f1 _f 1411028Sshannon extern FILE *_f[]; 1511028Sshannon # endif 1611028Sshannon 1711028Sshannon # define ever (;;) 1811028Sshannon 1911028Sshannon main(argc,argv) 2011028Sshannon char *argv[]; 2111028Sshannon { 2211028Sshannon # ifdef unix 2311028Sshannon int badsig(); 2411028Sshannon signal(SIGPIPE, badsig); 2511028Sshannon # endif 2611028Sshannon # ifdef gcos 2711028Sshannon if(!intss()) tabout = fopen("qq", "w"); /* default media code is type 5 */ 2811028Sshannon # endif 2911028Sshannon exit(tbl(argc,argv)); 3011028Sshannon } 3111028Sshannon 3211028Sshannon 3311028Sshannon tbl(argc,argv) 3411028Sshannon char *argv[]; 3511028Sshannon { 3611028Sshannon char line[BUFSIZ]; 3711028Sshannon /* required by GCOS because "stdout" is set by troff preprocessor */ 3811028Sshannon tabin=stdin; tabout=stdout; 3911028Sshannon setinp(argc,argv); 4011028Sshannon while (gets1(line)) 4111028Sshannon { 4211028Sshannon fprintf(tabout, "%s\n",line); 4311028Sshannon if (prefix(".TS", line)) 4411028Sshannon tableput(); 4511028Sshannon } 4611028Sshannon fclose(tabin); 4711028Sshannon return(0); 4811028Sshannon } 4911028Sshannon int sargc; 5011028Sshannon char **sargv; 5111028Sshannon setinp(argc,argv) 5211028Sshannon char **argv; 5311028Sshannon { 5411028Sshannon sargc = argc; 5511028Sshannon sargv = argv; 5611028Sshannon sargc--; sargv++; 5711028Sshannon if (sargc>0) 5811028Sshannon swapin(); 5911028Sshannon } 6011028Sshannon swapin() 6111028Sshannon { 6211028Sshannon while (sargc>0 && **sargv=='-') /* Mem fault if no test on sargc */ 6311028Sshannon { 6411028Sshannon if (sargc<=0) return(0); 6511028Sshannon if (match("-ms", *sargv)) 6611028Sshannon { 67*37907Sbostic *sargv = _PATH_MACROS; 6811028Sshannon break; 6911028Sshannon } 7011028Sshannon if (match("-mm", *sargv)) 7111028Sshannon { 72*37907Sbostic *sargv = _PATH_PYMACS; 7311028Sshannon break; 7411028Sshannon } 7511028Sshannon if (match("-TX", *sargv)) 7611028Sshannon pr1403=1; 7711028Sshannon sargc--; sargv++; 7811028Sshannon } 7911028Sshannon if (sargc<=0) return(0); 8011028Sshannon # ifdef unix 8111028Sshannon /* file closing is done by GCOS troff preprocessor */ 8211028Sshannon if (tabin!=stdin) fclose(tabin); 8311028Sshannon # endif 8411028Sshannon tabin = fopen(ifile= *sargv, "r"); 8511028Sshannon iline=1; 8611028Sshannon # ifdef unix 8711028Sshannon /* file names are all put into f. by the GCOS troff preprocessor */ 8811028Sshannon fprintf(tabout, ".ds f. %s\n",ifile); 8911028Sshannon # endif 9011028Sshannon if (tabin==NULL) 9111028Sshannon error("Can't open file"); 9211028Sshannon sargc--; 9311028Sshannon sargv++; 9411028Sshannon return(1); 9511028Sshannon } 9611028Sshannon # ifdef unix 9711028Sshannon badsig() 9811028Sshannon { 9911028Sshannon signal(SIGPIPE, SIG_IGN); 10011028Sshannon exit(0); 10111028Sshannon } 10211028Sshannon # endif 103