|
|
1.1 root 1: /* t9.c: write lines for tables over 200 lines */
2: # include "t..c"
3: static useln;
4: yetmore()
5: {
6: for(useln=0; useln<MAXLIN && table[useln]==0; useln++);
7: if (useln>=MAXLIN)
8: error("Wierd. No data in table.");
9: table[0]=table[useln];
10: for(useln=nlin-1; useln>=0 && (fullbot[useln] || instead[useln]); useln--);
11: if (useln<0)
12: error("Wierd. No real lines in table.");
13: domore(leftover);
14: while (gets1(cstore=cspace) && domore(cstore))
15: ;
16: last =cstore;
17: return;
18: }
19: domore(dataln)
20: char *dataln;
21: {
22: int icol, ch;
23: if (prefix(".TE", dataln))
24: return(0);
25: if (dataln[0] == '.' && !isdigit(dataln[1]))
26: {
27: puts(dataln);
28: return(1);
29: }
30: instead[0]=fullbot[0]=0;
31: if (dataln[1]==0)
32: switch(dataln[0])
33: {
34: case '_': fullbot[0]= '-'; putline(useln,0); return(1);
35: case '=': fullbot[0]= '='; putline(useln, 0); return(1);
36: }
37: for (icol = 0; icol <ncol; icol++)
38: {
39: table[0][icol].col = dataln;
40: table[0][icol].rcol=0;
41: for(; (ch= *dataln) != '\0' && ch != tab; dataln++)
42: ;
43: *dataln++ = '\0';
44: switch(ctype(useln,icol))
45: {
46: case 'n':
47: table[0][icol].rcol = maknew(table[0][icol].col);
48: break;
49: case 'a':
50: table[0][icol].rcol = table[0][icol].col;
51: table[0][icol].col= "";
52: break;
53: }
54: while (ctype(useln,icol+1)== 's') /* spanning */
55: table[0][++icol].col = "";
56: if (ch == '\0') break;
57: }
58: while (++icol <ncol)
59: table[0][icol].col = "";
60: putline(useln,0);
61: return(1);
62: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.