Annotation of 3BSD/cmd/tbl/t1.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.