Annotation of 43BSD/usr.bin/tbl/t9.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.