Commit | Line | Data |
---|---|---|
6554f91c TL |
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 | } |