Subversion Repositories planix.SVN

Rev

Rev 2 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/* t1.c: main control and input switching */
#
# include "t.h"

# define MACROS "/sys/lib/tmac/tmac.s"
# define PYMACS "/sys/lib/tmac/tmac.m"


# define ever (;;)

void
main(int argc, char *argv[])
{
        exits(tbl(argc, argv)? "error" : 0);
}


int
tbl(int argc, char *argv[])
{
        char    line[5120];
        /*int x;*/
        /*x=malloc((char *)0);  uncomment when allocation breaks*/
        Binit(&tabout, 1, OWRITE);
        setinp(argc, argv);
        while (gets1(line, sizeof(line))) {
                Bprint(&tabout, "%s\n", line);
                if (prefix(".TS", line))
                        tableput();
        }
        Bterm(tabin);
        return(0);
}


int     sargc;
char    **sargv;

void
setinp(int argc, char **argv)
{
        sargc = argc;
        sargv = argv;
        sargc--; 
        sargv++;
        if (sargc == 0 || swapin() == 0) {
                tabin = (Biobuf*)getcore(sizeof(Biobuf), 1);
                Binit(tabin, 0, OREAD);
        }
}


int
swapin(void)
{
        char    *name;
        while (sargc > 0 && **sargv == '-') {
                if (match("-ms", *sargv)) {
                        *sargv = MACROS;
                        break;
                }
                if (match("-mm", *sargv)) {
                        *sargv = PYMACS;
                        break;
                }
                if (match("-TX", *sargv))
                        pr1403 = 1;
                if (match("-", *sargv))
                        break;
                sargc--; 
                sargv++;
        }
        if (sargc <= 0) 
                return(0);
        /* file closing is done by GCOS troff preprocessor */
        if(tabin)
                Bterm(tabin);
        ifile = *sargv;
        name = ifile;
        if (match(ifile, "-")) {
                tabin = (Biobuf*)getcore(sizeof(Biobuf), 1);
                Binit(tabin, 0, OREAD);
        } else
                tabin = Bopen(ifile, OREAD);
        iline = 1;
        Bprint(&tabout, ".ds f. %s\n", ifile);
        Bprint(&tabout, ".lf %d %s\n", iline, name);
        if (tabin == 0)
                error("Can't open file");
        sargc--;
        sargv++;
        return(1);
}