manual page distributed with 4.1BSD
[unix-history] / usr / src / old / tbl / t1.c
CommitLineData
476fcd16
SL
1#ifndef lint
2static char sccsid[] = "@(#)t1.c 4.2 %G%";
3#endif
1bbb65d0
BS
4
5 /* t1.c: main control and input switching */
6#
7# include "t..c"
8#include <signal.h>
9# ifdef gcos
10/* required by GCOS because file is passed to "tbl" by troff preprocessor */
11# define _f1 _f
12extern FILE *_f[];
13# endif
14
15# ifdef unix
16# define MACROS "/usr/lib/tmac.s"
17# define PYMACS "/usr/lib/tmac.m"
18# endif
19
20# ifdef gcos
21# define MACROS "cc/troff/smac"
22# define PYMACS "cc/troff/mmac"
23# endif
24
25# define ever (;;)
26
27main(argc,argv)
28 char *argv[];
29{
30# ifdef unix
31int badsig();
32signal(SIGPIPE, badsig);
33# endif
34# ifdef gcos
35if(!intss()) tabout = fopen("qq", "w"); /* default media code is type 5 */
36# endif
37exit(tbl(argc,argv));
38}
39
40
41tbl(argc,argv)
42 char *argv[];
43{
44char line[BUFSIZ];
45/* required by GCOS because "stdout" is set by troff preprocessor */
46tabin=stdin; tabout=stdout;
47setinp(argc,argv);
48while (gets1(line))
49 {
50 fprintf(tabout, "%s\n",line);
51 if (prefix(".TS", line))
52 tableput();
53 }
54fclose(tabin);
55return(0);
56}
57int sargc;
58char **sargv;
59setinp(argc,argv)
60 char **argv;
61{
62 sargc = argc;
63 sargv = argv;
64 sargc--; sargv++;
65 if (sargc>0)
66 swapin();
67}
68swapin()
69{
70 while (sargc>0 && **sargv=='-') /* Mem fault if no test on sargc */
71 {
72 if (sargc<=0) return(0);
73 if (match("-ms", *sargv))
74 {
75 *sargv = MACROS;
76 break;
77 }
78 if (match("-mm", *sargv))
79 {
80 *sargv = PYMACS;
81 break;
82 }
83 if (match("-TX", *sargv))
84 pr1403=1;
85 sargc--; sargv++;
86 }
87 if (sargc<=0) return(0);
88# ifdef unix
89/* file closing is done by GCOS troff preprocessor */
90 if (tabin!=stdin) fclose(tabin);
91# endif
92 tabin = fopen(ifile= *sargv, "r");
93 iline=1;
94# ifdef unix
95/* file names are all put into f. by the GCOS troff preprocessor */
96 fprintf(tabout, ".ds f. %s\n",ifile);
97# endif
98 if (tabin==NULL)
99 error("Can't open file");
100 sargc--;
101 sargv++;
102 return(1);
103}
104# ifdef unix
105badsig()
106{
107signal(SIGPIPE, SIG_IGN);
108 exit(0);
109}
110# endif