125072Sjaap #ifndef lint 2*25091Sjaap static char sccsid[] = "@(#)over200.c 1.2 (CWI) 85/10/02"; 325072Sjaap #endif lint 425072Sjaap 5*25091Sjaap /* 6*25091Sjaap * write lines for tables over 200 lines (actually MAXLIN lines) 7*25091Sjaap * 8*25091Sjaap * Note that there is aserious bug here: 9*25091Sjaap * The T{ ... T} doesn't work after MAXLIN entries. 10*25091Sjaap */ 1125072Sjaap #include "defs.h" 1225072Sjaap #include "ext.h" 1325072Sjaap 1425072Sjaap static int useln; 1525072Sjaap 1625072Sjaap extern char *maknew(); 1725072Sjaap yetmore()1825072Sjaapyetmore() 1925072Sjaap { 20*25091Sjaap dprint(".\\\" -- yetmore\n"); 2125072Sjaap for(useln = 0; useln < MAXLIN && table[useln] == 0; useln++) 2225072Sjaap ; 2325072Sjaap if(useln >= MAXLIN) 2425072Sjaap error("Wierd. No data in table."); 2525072Sjaap table[0] = table[useln]; 2625072Sjaap for(useln = nlin - 1; useln >= 0 && (fullbot[useln] || instead[useln]); 2725072Sjaap useln--) 2825072Sjaap ; 2925072Sjaap if(useln < 0) 3025072Sjaap error("Wierd. No real lines in table."); 3125072Sjaap domore(leftover); 3225072Sjaap while(gets1(cstore = cspace) && domore(cstore)) 3325072Sjaap ; 3425072Sjaap last = cstore; 3525072Sjaap return; 3625072Sjaap } 3725072Sjaap domore(dataln)3825072Sjaapdomore(dataln) 3925072Sjaap char *dataln; 4025072Sjaap { 4125072Sjaap register int icol, ch; 4225072Sjaap 43*25091Sjaap dprint(".\\\" -- domore\n"); 4425072Sjaap 4525072Sjaap if(prefix(".TE", dataln)) 4625072Sjaap return(0); 4725072Sjaap if(dataln[0] == '.' && !isdigit(dataln[1])){ 4825072Sjaap puts(dataln); 4925072Sjaap return(1); 5025072Sjaap } 5125072Sjaap instead[0] = (char *) 0; 5225072Sjaap fullbot[0] = 0; 5325072Sjaap if(dataln[1] == 0){ 5425072Sjaap switch(dataln[0]){ 5525072Sjaap 5625072Sjaap case '_': 5725072Sjaap fullbot[0] = '-'; 5825072Sjaap putline(useln, 0); 5925072Sjaap return(1); 6025072Sjaap case '=': 6125072Sjaap fullbot[0] = '='; 6225072Sjaap putline(useln, 0); 6325072Sjaap return(1); 6425072Sjaap } 6525072Sjaap } 6625072Sjaap for(icol = 0; icol < ncol; icol++){ 6725072Sjaap table[0][icol].col = dataln; 6825072Sjaap table[0][icol].rcol = 0; 6925072Sjaap for(; (ch = *dataln) != '\0' && ch != tab; dataln++) 7025072Sjaap ; 7125072Sjaap *dataln++ = '\0'; 7225072Sjaap switch(ctype(useln, icol)){ 7325072Sjaap 7425072Sjaap case 'n': 7525072Sjaap table[0][icol].rcol = maknew(table[0][icol].col); 7625072Sjaap break; 7725072Sjaap case 'a': 7825072Sjaap table[0][icol].rcol = table[0][icol].col; 7925072Sjaap table[0][icol].col = ""; 8025072Sjaap break; 8125072Sjaap } 8225072Sjaap while(ctype(useln, icol + 1) == 's'){ 8325072Sjaap /* 8425072Sjaap * spanning 8525072Sjaap */ 8625072Sjaap table[0][++icol].col = ""; 8725072Sjaap } 8825072Sjaap if(ch == '\0') 8925072Sjaap break; 9025072Sjaap } 9125072Sjaap while(++icol < ncol) 9225072Sjaap table[0][icol].col = ""; 9325072Sjaap putline(useln, 0); 9425072Sjaap /* 9525072Sjaap * Reuse space for numerical items (bwk) 9625072Sjaap * exstore = exspace; 9725072Sjaap */ 9825072Sjaap return(1); 9925072Sjaap } 100