From 0eea07d96cbfc7aaf4c902ee2f5fac9d5f08b7d1 Mon Sep 17 00:00:00 2001 From: Bill Shannon Date: Sun, 13 Feb 1983 03:06:21 -0800 Subject: [PATCH] date and time created 83/02/12 19:06:21 by shannon SCCS-vsn: old/tbl/t3.c 4.1 --- usr/src/old/tbl/t3.c | 95 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 usr/src/old/tbl/t3.c diff --git a/usr/src/old/tbl/t3.c b/usr/src/old/tbl/t3.c new file mode 100644 index 0000000000..4f3b1106cf --- /dev/null +++ b/usr/src/old/tbl/t3.c @@ -0,0 +1,95 @@ +/* t3.c 4.1 83/02/12 */ + + /* t3.c: interpret commands affecting whole table */ +# include "t..c" +struct optstr {char *optnam; int *optadd;} options [] = { + "expand", &expflg, + "EXPAND", &expflg, + "center", &ctrflg, + "CENTER", &ctrflg, + "box", &boxflg, + "BOX", &boxflg, + "allbox", &allflg, + "ALLBOX", &allflg, + "doublebox", &dboxflg, + "DOUBLEBOX", &dboxflg, + "frame", &boxflg, + "FRAME", &boxflg, + "doubleframe", &dboxflg, + "DOUBLEFRAME", &dboxflg, + "tab", &tab, + "TAB", &tab, + "linesize", &linsize, + "LINESIZE", &linsize, + "delim", &delim1, + "DELIM", &delim1, + 0,0}; +getcomm() +{ +char line[200], *cp, nb[25], *t; +struct optstr *lp; +int c, ci, found; +for(lp= options; lp->optnam; lp++) + *(lp->optadd) = 0; +texname = texstr[texct=0]; +tab = '\t'; +printf(".nr %d \\n(.s\n", LSIZE); +gets1(line); +/* see if this is a command line */ +if (index(line,';') == NULL) + { + backrest(line); + return; + } +for(cp=line; (c = *cp) != ';'; cp++) + { + if (!letter(c)) continue; + found=0; + for(lp= options; lp->optadd; lp++) + { + if (prefix(lp->optnam, cp)) + { + *(lp->optadd) = 1; + cp += strlen(lp->optnam); + if (letter(*cp)) + error("Misspelled global option"); + while (*cp==' ')cp++; + t=nb; + if ( *cp == '(') + while ((ci= *++cp) != ')') + *t++ = ci; + else cp--; + *t++ = 0; *t=0; + if (lp->optadd == &tab) + { + if (nb[0]) + *(lp->optadd) = nb[0]; + } + if (lp->optadd == &linsize) + printf(".nr %d %s\n", LSIZE, nb); + if (lp->optadd == &delim1) + { + delim1 = nb[0]; + delim2 = nb[1]; + } + found=1; + break; + } + } + if (!found) + error("Illegal option"); + } +cp++; +backrest(cp); +return; +} +backrest(cp) + char *cp; +{ +char *s; +for(s=cp; *s; s++); +un1getc('\n'); +while (s>cp) + un1getc(*--s); +return; +} -- 2.20.1