125067Sjaap #ifndef lint
229990Sjaap static char sccsid[] = "@(#)main.c 1.4 (CWI) 86/11/10";
325067Sjaap #endif lint
425067Sjaap
525067Sjaap /*
625067Sjaap * tbl troff preprocessor.
725067Sjaap *
825067Sjaap * Tidied, and changed by jna
925067Sjaap *
1025067Sjaap */
1125067Sjaap
1225067Sjaap #include <signal.h>
1325067Sjaap #include "defs.h"
1425067Sjaap #include "ext.h"
1525067Sjaap
1625067Sjaap static int sargc;
1725067Sjaap static char **sargv;
1825067Sjaap
main(argc,argv)1925067Sjaap main(argc, argv)
2025067Sjaap int argc; char *argv[];
2125067Sjaap {
2225067Sjaap char line[BUFSIZ];
2325095Sjaap register char *p;
2425095Sjaap char *getenv();
2525067Sjaap extern int badsig();
2625067Sjaap
2725067Sjaap signal(SIGPIPE, badsig);
2825067Sjaap
2925095Sjaap if (p = getenv("TYPESETTER")) {
3025095Sjaap if(strcmp(p, "har") == 0)
3125095Sjaap device = HARRIS;
3225095Sjaap else if(strcmp(p, "ver") == 0)
3325095Sjaap device = DEVVER;
3429990Sjaap else if(strcmp(p, "psc") == 0)
3529990Sjaap device = DEVPSC;
36*32725Sjaap /* johan doesnt want to see error messages in a context like
37*32725Sjaap TYPESETTER=1650.10 tbl files | eqn | nroff -ms
38*32725Sjaap so I removed the warning here. Besides, there is no complaint
39*32725Sjaap for an option -Tfoo either. */
4025095Sjaap }
4125095Sjaap
4225067Sjaap tabin = stdin;
4325067Sjaap sargv = ++argv;
4425067Sjaap if((sargc = --argc) > 0)
4525067Sjaap (void) swapin();
4625067Sjaap
4725067Sjaap while(gets1(line)){
4825067Sjaap printf("%s\n", line);
4925067Sjaap if(prefix(".TS", line))
5025067Sjaap tableput();
5125067Sjaap }
5225067Sjaap fclose(tabin);
5325067Sjaap return(0);
5425067Sjaap }
5525067Sjaap
swapin()5625067Sjaap swapin()
5725067Sjaap {
5825067Sjaap while(sargc > 0 && **sargv == '-'){
5925067Sjaap if(strcmp("-ms", *sargv) == 0){
6025067Sjaap *sargv = MACROS;
6125067Sjaap break;
6225067Sjaap }
6325067Sjaap if(strcmp("-mm", *sargv) == 0){
6425067Sjaap *sargv = PYMACS;
6525067Sjaap break;
6625067Sjaap }
6725067Sjaap if(strcmp("-TX", *sargv) == 0){
6825067Sjaap pr1403 = 1;
6925067Sjaap sargc--;
7025067Sjaap sargv++;
7125067Sjaap break;
7225067Sjaap }
7325067Sjaap if(strcmp("-Thar", *sargv) == 0){
7425067Sjaap device = HARRIS;
7525067Sjaap sargc--;
7625067Sjaap sargv++;
7725067Sjaap break;
7825067Sjaap }
7925067Sjaap if(strcmp("-Tver", *sargv) == 0){
8025067Sjaap device = DEVVER;
8125067Sjaap sargc--;
8225067Sjaap sargv++;
8325067Sjaap break;
8425067Sjaap }
8529990Sjaap if(strcmp("-Tpsc", *sargv) == 0){
8629990Sjaap device = DEVPSC;
8729990Sjaap sargc--;
8829990Sjaap sargv++;
8929990Sjaap break;
9029990Sjaap }
9125089Sjaap if(strcmp("-d", *sargv) == 0){
9225089Sjaap dbg++;
9325067Sjaap sargc--;
9425067Sjaap sargv++;
9525089Sjaap break;
9625089Sjaap }
97*32725Sjaap sargc--;
98*32725Sjaap sargv++;
9925067Sjaap }
10025067Sjaap if(sargc <= 0)
10125067Sjaap return(0);
10225067Sjaap if(tabin != stdin)
10325067Sjaap (void) fclose(tabin);
10425067Sjaap if(strcmp(*sargv, "-") == 0)
10525067Sjaap tabin = stdin;
10625067Sjaap else
10725067Sjaap tabin = fopen(ifile = *sargv, "r");
10825067Sjaap iline = 1;
10925067Sjaap printf(".ds f. %s\n", ifile);
11025067Sjaap /*
11125067Sjaap * support for .lf request (jna)
11225067Sjaap */
11325067Sjaap printf(".lf 1 %s\n", ifile);
11425067Sjaap if(tabin == NULL)
11525067Sjaap error("Can't open file");
11625067Sjaap sargc--;
11725067Sjaap sargv++;
11825067Sjaap return(1);
11925067Sjaap }
12025067Sjaap
badsig()12125067Sjaap badsig()
12225067Sjaap {
12325067Sjaap signal(SIGPIPE, SIG_IGN);
12425067Sjaap exit(0);
12525067Sjaap }
12625067Sjaap
tableput()12725067Sjaap tableput(){
12825067Sjaap
12925067Sjaap switch(device){
13025067Sjaap case CAT:
13125089Sjaap dprint(".\\\" -- device CAT\n");
13225067Sjaap break;
13325067Sjaap case HARRIS:
13425089Sjaap dprint(".\\\" -- device HARRIS\n");
13525067Sjaap break;
13629990Sjaap case DEVPSC:
13729990Sjaap dprint(".\\\" -- device PostScript\n");
13829990Sjaap break;
13925067Sjaap case DEVVER:
14025089Sjaap dprint(".\\\" -- device VERSATEC\n");
14125067Sjaap break;
14225067Sjaap }
14325089Sjaap dprint(".\\\" -- saveline\n");
14425067Sjaap saveline();
14525089Sjaap dprint(".\\\" -- savefill\n");
14625067Sjaap savefill();
14725089Sjaap dprint(".\\\" -- ifdivert\n");
14825067Sjaap ifdivert();
14925089Sjaap dprint(".\\\" -- cleanfc\n");
15025067Sjaap cleanfc();
15125089Sjaap dprint(".\\\" -- getcomm\n");
15225067Sjaap getcomm();
15325089Sjaap dprint(".\\\" -- getspec\n");
15425067Sjaap getspec();
15525089Sjaap dprint(".\\\" -- gettbl\n");
15625067Sjaap gettbl();
15725089Sjaap dprint(".\\\" -- getstop\n");
15825067Sjaap getstop();
15925089Sjaap dprint(".\\\" -- checkuse\n");
16025067Sjaap checkuse();
16125089Sjaap dprint(".\\\" -- choochar\n");
16225067Sjaap choochar();
16325089Sjaap dprint(".\\\" -- maktab\n");
16425067Sjaap maktab();
16525089Sjaap dprint(".\\\" -- runout\n");
16625067Sjaap runout();
16725089Sjaap dprint(".\\\" -- release\n");
16825067Sjaap release();
16925089Sjaap dprint(".\\\" -- rstofill\n");
17025067Sjaap rstofill();
17125089Sjaap dprint(".\\\" -- endoff\n");
17225067Sjaap endoff();
17325089Sjaap dprint(".\\\" -- restline\n");
17425067Sjaap restline();
17525089Sjaap dprint(".\\\" -- end off tableput\n");
17625067Sjaap }
177