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