94 lines
1.5 KiB
C
94 lines
1.5 KiB
C
/* 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);
|
|
}
|