|
|
1.1 root 1: #ifndef lint
2: static char sccsid[] = "@(#)t3.c 4.2 8/11/83";
3: #endif
4:
5: /* t3.c: interpret commands affecting whole table */
6: # include "t..c"
7: struct optstr {char *optnam; int *optadd;} options [] = {
8: "expand", &expflg,
9: "EXPAND", &expflg,
10: "center", &ctrflg,
11: "CENTER", &ctrflg,
12: "box", &boxflg,
13: "BOX", &boxflg,
14: "allbox", &allflg,
15: "ALLBOX", &allflg,
16: "doublebox", &dboxflg,
17: "DOUBLEBOX", &dboxflg,
18: "frame", &boxflg,
19: "FRAME", &boxflg,
20: "doubleframe", &dboxflg,
21: "DOUBLEFRAME", &dboxflg,
22: "tab", &tab,
23: "TAB", &tab,
24: "linesize", &linsize,
25: "LINESIZE", &linsize,
26: "delim", &delim1,
27: "DELIM", &delim1,
28: 0,0};
29: getcomm()
30: {
31: char line[200], *cp, nb[25], *t;
32: struct optstr *lp;
33: int c, ci, found;
34: for(lp= options; lp->optnam; lp++)
35: *(lp->optadd) = 0;
36: texname = texstr[texct=0];
37: tab = '\t';
38: printf(".nr %d \\n(.s\n", LSIZE);
39: gets1(line);
40: /* see if this is a command line */
41: if (index(line,';') == NULL)
42: {
43: backrest(line);
44: return;
45: }
46: for(cp=line; (c = *cp) != ';'; cp++)
47: {
48: if (!letter(c)) continue;
49: found=0;
50: for(lp= options; lp->optadd; lp++)
51: {
52: if (prefix(lp->optnam, cp))
53: {
54: *(lp->optadd) = 1;
55: cp += strlen(lp->optnam);
56: if (letter(*cp))
57: error("Misspelled global option");
58: while (*cp==' ')cp++;
59: t=nb;
60: if ( *cp == '(')
61: while ((ci= *++cp) != ')')
62: *t++ = ci;
63: else cp--;
64: *t++ = 0; *t=0;
65: if (lp->optadd == &tab)
66: {
67: if (nb[0])
68: *(lp->optadd) = nb[0];
69: }
70: if (lp->optadd == &linsize)
71: printf(".nr %d %s\n", LSIZE, nb);
72: if (lp->optadd == &delim1)
73: {
74: delim1 = nb[0];
75: delim2 = nb[1];
76: }
77: found=1;
78: break;
79: }
80: }
81: if (!found)
82: error("Illegal option");
83: }
84: cp++;
85: backrest(cp);
86: return;
87: }
88: backrest(cp)
89: char *cp;
90: {
91: char *s;
92: for(s=cp; *s; s++);
93: un1getc('\n');
94: while (s>cp)
95: un1getc(*--s);
96: return;
97: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.