1 5cedca1b 2004-05-15 devnull /* te.c: error message control, input line count */
2 5cedca1b 2004-05-15 devnull # include "t.h"
5 5cedca1b 2004-05-15 devnull error(char *s)
7 8a3cbc15 2004-05-17 devnull fprint(2, "\n%s:%d: %s\n", ifile, iline, s);
8 8a3cbc15 2004-05-17 devnull fprint(2, "tbl quits\n");
14 5cedca1b 2004-05-15 devnull gets1(char *s, int size)
16 5cedca1b 2004-05-15 devnull char *p, *ns;
21 8a3cbc15 2004-05-17 devnull p = Brdline(tabin, '\n');
22 5cedca1b 2004-05-15 devnull while (p == 0) {
23 5cedca1b 2004-05-15 devnull if (swapin() == 0)
24 5cedca1b 2004-05-15 devnull return(0);
25 8a3cbc15 2004-05-17 devnull p = Brdline(tabin, '\n');
27 8a3cbc15 2004-05-17 devnull nbl = Blinelen(tabin)-1;
28 5cedca1b 2004-05-15 devnull if(nbl >= size)
29 5cedca1b 2004-05-15 devnull error("input buffer too small");
30 5cedca1b 2004-05-15 devnull p[nbl] = 0;
31 5cedca1b 2004-05-15 devnull strcpy(s, p);
32 5cedca1b 2004-05-15 devnull s += nbl;
33 5cedca1b 2004-05-15 devnull for (nbl = 0; *s == '\\' && s > ns; s--)
35 5cedca1b 2004-05-15 devnull if (linstart && nbl % 2) /* fold escaped nl if in table */
36 5cedca1b 2004-05-15 devnull gets1(s + 1, size - (s-ns));
38 5cedca1b 2004-05-15 devnull return(p);
42 5cedca1b 2004-05-15 devnull # define BACKMAX 500
43 5cedca1b 2004-05-15 devnull char backup[BACKMAX];
44 5cedca1b 2004-05-15 devnull char *backp = backup;
47 5cedca1b 2004-05-15 devnull un1getc(int c)
49 5cedca1b 2004-05-15 devnull if (c == '\n')
51 5cedca1b 2004-05-15 devnull *backp++ = c;
52 5cedca1b 2004-05-15 devnull if (backp >= backup + BACKMAX)
53 5cedca1b 2004-05-15 devnull error("too much backup");
58 5cedca1b 2004-05-15 devnull get1char(void)
61 5cedca1b 2004-05-15 devnull if (backp > backup)
62 5cedca1b 2004-05-15 devnull c = *--backp;
64 8a3cbc15 2004-05-17 devnull c = Bgetc(tabin);
65 5cedca1b 2004-05-15 devnull if (c == 0) /* EOF */ {
66 5cedca1b 2004-05-15 devnull if (swapin() == 0)
67 5cedca1b 2004-05-15 devnull error("unexpected EOF");
68 8a3cbc15 2004-05-17 devnull c = Bgetc(tabin);
70 5cedca1b 2004-05-15 devnull if (c == '\n')
72 5cedca1b 2004-05-15 devnull return(c);