Annotation of researchv10no/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[5120];
                     41: /*int x;*/
                     42: /*x=malloc((char *)0); uncomment when allocation breaks*/
                     43: /* required by GCOS because "stdout" is set by troff preprocessor */
                     44: tabin=stdin; tabout=stdout;
                     45: setinp(argc,argv);
                     46: while (gets1(line, sizeof(line)))
                     47:        {
                     48:        fprintf(tabout, "%s\n",line);
                     49:        if (prefix(".TS", line))
                     50:                tableput();
                     51:        }
                     52: fclose(tabin);
                     53: return(0);
                     54: }
                     55: int sargc;
                     56: char **sargv;
                     57: setinp(argc,argv)
                     58:        char **argv;
                     59: {
                     60:        sargc = argc;
                     61:        sargv = argv;
                     62:        sargc--; sargv++;
                     63:        if (sargc>0)
                     64:                swapin();
                     65: }
                     66: swapin()
                     67: {
                     68:        char *name;
                     69:        while (sargc>0 && **sargv=='-')
                     70:                {
                     71:                if (match("-ms", *sargv))
                     72:                        {
                     73:                        *sargv = MACROS;
                     74:                        break;
                     75:                        }
                     76:                if (match("-mm", *sargv))
                     77:                        {
                     78:                        *sargv = PYMACS;
                     79:                        break;
                     80:                        }
                     81:                if (match("-TX", *sargv))
                     82:                        pr1403=1;
                     83:                if (match("-", *sargv))
                     84:                        break;
                     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:        if (match(*sargv, "-")){
                     93:                tabin=stdin;
                     94:                name = "-";
                     95:        }
                     96:        else{
                     97:                tabin = fopen(ifile= *sargv, "r");
                     98:                name = ifile;
                     99:        }
                    100:        iline=1;
                    101: # ifdef unix
                    102: /* file names are all put into f. by the GCOS troff preprocessor */
                    103:        fprintf(tabout, ".ds f. %s\n",ifile);
                    104:        fprintf(tabout, ".lf %d %s\n",iline, name);
                    105: # endif
                    106:        if (tabin==NULL)
                    107:                error("Can't open file");
                    108:        sargc--;
                    109:        sargv++;
                    110:        return(1);
                    111: }
                    112: # ifdef unix
                    113: badsig()
                    114: {
                    115: signal(SIGPIPE, 1);
                    116:  exit(0);
                    117: }
                    118: # endif

unix.superglobalmegacorp.com

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