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