Annotation of researchv10no/cmd/troff/Old/n5.c, revision 1.1.1.1

1.1       root        1: #include "tdef.h"
                      2: #include <sgtty.h>
                      3: extern
                      4: #include "d.h"
                      5: extern
                      6: #include "v.h"
                      7: #include "s.h"
                      8: 
                      9: /*
                     10: troff5.c
                     11: 
                     12: misc processing requests
                     13: */
                     14: 
                     15: #include "ext.h"
                     16: int    iflist[NIF];
                     17: int    ifx;
                     18: 
                     19: casead()
                     20: {
                     21:        register i;
                     22: 
                     23:        ad = 1;
                     24:        /*leave admod alone*/
                     25:        if (skip())
                     26:                return;
                     27:        switch (i = cbits(getch())) {
                     28:        case 'r':       /*right adj, left ragged*/
                     29:                admod = 2;
                     30:                break;
                     31:        case 'l':       /*left adj, right ragged*/
                     32:                admod = ad = 0; /*same as casena*/
                     33:                break;
                     34:        case 'c':       /*centered adj*/
                     35:                admod = 1;
                     36:                break;
                     37:        case 'b': 
                     38:        case 'n':
                     39:                admod = 0;
                     40:                break;
                     41:        case '0': 
                     42:        case '2': 
                     43:        case '4':
                     44:                ad = 0;
                     45:        case '1': 
                     46:        case '3': 
                     47:        case '5':
                     48:                admod = (i - '0') / 2;
                     49:        }
                     50: }
                     51: 
                     52: 
                     53: casena()
                     54: {
                     55:        ad = 0;
                     56: }
                     57: 
                     58: 
                     59: casefi()
                     60: {
                     61:        tbreak();
                     62:        fi++;
                     63:        pendnf = 0;
                     64:        lnsize = LNSIZE;
                     65: }
                     66: 
                     67: 
                     68: casenf()
                     69: {
                     70:        tbreak();
                     71:        fi = 0;
                     72:        /* can't do while oline is only LNSIZE
                     73:        lnsize = LNSIZE + WDSIZE;
                     74: */
                     75: }
                     76: 
                     77: 
                     78: casers()
                     79: {
                     80:        dip->nls = 0;
                     81: }
                     82: 
                     83: 
                     84: casens()
                     85: {
                     86:        dip->nls++;
                     87: }
                     88: 
                     89: 
                     90: chget(c)
                     91: int    c;
                     92: {
                     93:        tchar i;
                     94: 
                     95:        if (skip() || ismot(i = getch()) || cbits(i) == ' ' || cbits(i) == '\n') {
                     96:                ch = i;
                     97:                return(c);
                     98:        } else 
                     99:                return(i & BMASK);
                    100: }
                    101: 
                    102: 
                    103: casecc()
                    104: {
                    105:        cc = chget('.');
                    106: }
                    107: 
                    108: 
                    109: casec2()
                    110: {
                    111:        c2 = chget('\'');
                    112: }
                    113: 
                    114: 
                    115: casehc()
                    116: {
                    117:        ohc = chget(OHC);
                    118: }
                    119: 
                    120: 
                    121: casetc()
                    122: {
                    123:        tabc = chget(0);
                    124: }
                    125: 
                    126: 
                    127: caselc()
                    128: {
                    129:        dotc = chget(0);
                    130: }
                    131: 
                    132: 
                    133: casehy()
                    134: {
                    135:        register i;
                    136: 
                    137:        hyf = 1;
                    138:        if (skip())
                    139:                return;
                    140:        noscale++;
                    141:        i = atoi();
                    142:        noscale = 0;
                    143:        if (nonumb)
                    144:                return;
                    145:        hyf = max(i, 0);
                    146: }
                    147: 
                    148: 
                    149: casenh()
                    150: {
                    151:        hyf = 0;
                    152: }
                    153: 
                    154: 
                    155: max(aa, bb)
                    156: int    aa, bb;
                    157: {
                    158:        if (aa > bb)
                    159:                return(aa);
                    160:        else 
                    161:                return(bb);
                    162: }
                    163: 
                    164: 
                    165: casece()
                    166: {
                    167:        register i;
                    168: 
                    169:        noscale++;
                    170:        skip();
                    171:        i = max(atoi(), 0);
                    172:        if (nonumb)
                    173:                i = 1;
                    174:        tbreak();
                    175:        ce = i;
                    176:        noscale = 0;
                    177: }
                    178: 
                    179: 
                    180: casein()
                    181: {
                    182:        register i;
                    183: 
                    184:        if (skip())
                    185:                i = in1;
                    186:        else 
                    187:                i = max(hnumb(&in), 0);
                    188:        tbreak();
                    189:        in1 = in;
                    190:        in = i;
                    191:        if (!nc) {
                    192:                un = in;
                    193:                setnel();
                    194:        }
                    195: }
                    196: 
                    197: 
                    198: casell()
                    199: {
                    200:        register i;
                    201: 
                    202:        if (skip())
                    203:                i = ll1;
                    204:        else 
                    205:                i = max(hnumb(&ll), INCH / 10);
                    206:        ll1 = ll;
                    207:        ll = i;
                    208:        setnel();
                    209: }
                    210: 
                    211: 
                    212: caselt()
                    213: {
                    214:        register i;
                    215: 
                    216:        if (skip())
                    217:                i = lt1;
                    218:        else 
                    219:                i = max(hnumb(&lt), 0);
                    220:        lt1 = lt;
                    221:        lt = i;
                    222: }
                    223: 
                    224: 
                    225: caseti()
                    226: {
                    227:        register i;
                    228: 
                    229:        if (skip())
                    230:                return;
                    231:        i = max(hnumb(&in), 0);
                    232:        tbreak();
                    233:        un1 = i;
                    234:        setnel();
                    235: }
                    236: 
                    237: 
                    238: casels()
                    239: {
                    240:        register i;
                    241: 
                    242:        noscale++;
                    243:        if (skip())
                    244:                i = ls1;
                    245:        else 
                    246:                i = max(inumb(&ls), 1);
                    247:        ls1 = ls;
                    248:        ls = i;
                    249:        noscale = 0;
                    250: }
                    251: 
                    252: 
                    253: casepo()
                    254: {
                    255:        register i;
                    256: 
                    257:        if (skip())
                    258:                i = po1;
                    259:        else 
                    260:                i = max(hnumb(&po), 0);
                    261:        po1 = po;
                    262:        po = i;
                    263: #ifndef NROFF
                    264:        if (!ascii)
                    265:                esc += po - po1;
                    266: #endif
                    267: }
                    268: 
                    269: 
                    270: casepl()
                    271: {
                    272:        register i;
                    273: 
                    274:        skip();
                    275:        if ((i = vnumb(&pl)) == 0)
                    276:                pl = 11 * INCH; /*11in*/
                    277:        else 
                    278:                pl = i;
                    279:        if (v.nl > pl)
                    280:                v.nl = pl;
                    281: }
                    282: 
                    283: 
                    284: casewh()
                    285: {
                    286:        register i, j, k;
                    287: 
                    288:        lgf++;
                    289:        skip();
                    290:        i = vnumb((int *)0);
                    291:        if (nonumb)
                    292:                return;
                    293:        skip();
                    294:        j = getrq();
                    295:        if ((k = findn(i)) != NTRAP) {
                    296:                mlist[k] = j;
                    297:                return;
                    298:        }
                    299:        for (k = 0; k < NTRAP; k++)
                    300:                if (mlist[k] == 0)
                    301:                        break;
                    302:        if (k == NTRAP) {
                    303:                flusho();
                    304:                fprintf(stderr, "troff: cannot plant trap.\n");
                    305:                return;
                    306:        }
                    307:        mlist[k] = j;
                    308:        nlist[k] = i;
                    309: }
                    310: 
                    311: 
                    312: casech()
                    313: {
                    314:        register i, j, k;
                    315: 
                    316:        lgf++;
                    317:        skip();
                    318:        if (!(j = getrq()))
                    319:                return;
                    320:        else 
                    321:                for (k = 0; k < NTRAP; k++)
                    322:                        if (mlist[k] == j)
                    323:                                break;
                    324:        if (k == NTRAP)
                    325:                return;
                    326:        skip();
                    327:        i = vnumb((int *)0);
                    328:        if (nonumb)
                    329:                mlist[k] = 0;
                    330:        nlist[k] = i;
                    331: }
                    332: 
                    333: 
                    334: findn(i)
                    335: int    i;
                    336: {
                    337:        register k;
                    338: 
                    339:        for (k = 0; k < NTRAP; k++)
                    340:                if ((nlist[k] == i) && (mlist[k] != 0))
                    341:                        break;
                    342:        return(k);
                    343: }
                    344: 
                    345: 
                    346: casepn()
                    347: {
                    348:        register i;
                    349: 
                    350:        skip();
                    351:        noscale++;
                    352:        i = max(inumb(&v.pn), 0);
                    353:        noscale = 0;
                    354:        if (!nonumb) {
                    355:                npn = i;
                    356:                npnflg++;
                    357:        }
                    358: }
                    359: 
                    360: 
                    361: casebp()
                    362: {
                    363:        register i;
                    364:        register struct s *savframe;
                    365: 
                    366:        if (dip != d)
                    367:                return;
                    368:        savframe = frame;
                    369:        skip();
                    370:        if ((i = inumb(&v.pn)) < 0)
                    371:                i = 0;
                    372:        tbreak();
                    373:        if (!nonumb) {
                    374:                npn = i;
                    375:                npnflg++;
                    376:        } else if (dip->nls)
                    377:                return;
                    378:        eject(savframe);
                    379: }
                    380: 
                    381: 
                    382: casetm(x) 
                    383: int    x;
                    384: {
                    385:        register i;
                    386:        char    tmbuf[NTM];
                    387: 
                    388:        lgf++;
                    389:        copyf++;
                    390:        if (skip() && x)
                    391:                fprintf(stderr, "troff: user Abort.");
                    392:        for (i = 0; i < NTM - 2; )
                    393:                if ((tmbuf[i++] = getch()) == '\n')
                    394:                        break;
                    395:        if (i == NTM - 2)
                    396:                tmbuf[i++] = '\n';
                    397:        tmbuf[i] = 0;
                    398:        flusho();
                    399:        fprintf(stderr, "%s", tmbuf);
                    400:        copyf--;
                    401: }
                    402: 
                    403: 
                    404: casesp(a)
                    405: int    a;
                    406: {
                    407:        register i, j, savlss;
                    408: 
                    409:        tbreak();
                    410:        if (dip->nls || trap)
                    411:                return;
                    412:        i = findt1();
                    413:        if (!a) {
                    414:                skip();
                    415:                j = vnumb((int *)0);
                    416:                if (nonumb)
                    417:                        j = lss;
                    418:        } else 
                    419:                j = a;
                    420:        if (j == 0)
                    421:                return;
                    422:        if (i < j)
                    423:                j = i;
                    424:        savlss = lss;
                    425:        if (dip != d)
                    426:                i = dip->dnl; 
                    427:        else 
                    428:                i = v.nl;
                    429:        if ((i + j) < 0)
                    430:                j = -i;
                    431:        lss = j;
                    432:        newline(0);
                    433:        lss = savlss;
                    434: }
                    435: 
                    436: 
                    437: casert()
                    438: {
                    439:        register a, *p;
                    440: 
                    441:        skip();
                    442:        if (dip != d)
                    443:                p = &dip->dnl; 
                    444:        else 
                    445:                p = &v.nl;
                    446:        a = vnumb(p);
                    447:        if (nonumb)
                    448:                a = dip->mkline;
                    449:        if ((a < 0) || (a >= *p))
                    450:                return;
                    451:        nb++;
                    452:        casesp(a - *p);
                    453: }
                    454: 
                    455: 
                    456: caseem()
                    457: {
                    458:        lgf++;
                    459:        skip();
                    460:        em = getrq();
                    461: }
                    462: 
                    463: 
                    464: casefl()
                    465: {
                    466:        tbreak();
                    467:        flusho();
                    468: }
                    469: 
                    470: 
                    471: caseev()
                    472: {
                    473:        register nxev;
                    474:        extern int      block;
                    475: 
                    476:        if (skip()) {
                    477: e0:
                    478:                if (evi == 0)
                    479:                        return;
                    480:                nxev =  evlist[--evi];
                    481:                goto e1;
                    482:        }
                    483:        noscale++;
                    484:        nxev = atoi();
                    485:        noscale = 0;
                    486:        if (nonumb)
                    487:                goto e0;
                    488:        flushi();
                    489:        if ((nxev >= NEV) || (nxev < 0) || (evi >= EVLSZ)) {
                    490:                flusho();
                    491:                fprintf(stderr, "troff: cannot do ev.\n");
                    492:                if (error)
                    493:                        done2(040);
                    494:                else 
                    495:                        edone(040);
                    496:                return;
                    497:        }
                    498:        evlist[evi++] = ev;
                    499: e1:
                    500:        if (ev == nxev)
                    501:                return;
                    502:        lseek(ibf, (long)(ev * EVS), 0);
                    503:        write(ibf, (char *) & block, EVS);
                    504:        lseek(ibf, (long)(nxev * EVS), 0);
                    505:        read(ibf, (char *) & block, EVS);
                    506:        ev = nxev;
                    507: }
                    508: 
                    509: 
                    510: caseel()
                    511: {
                    512:        if (--ifx < 0) {
                    513:                ifx = 0;
                    514:                iflist[0] = 0;
                    515:        }
                    516:        caseif(2);
                    517: }
                    518: 
                    519: 
                    520: caseie()
                    521: {
                    522:        if (ifx >= NIF) {
                    523:                fprintf(stderr, "troff: if-else overflow.\n");
                    524:                ifx = 0;
                    525:                edone(040);
                    526:        }
                    527:        caseif(1);
                    528:        ifx++;
                    529: }
                    530: 
                    531: 
                    532: caseif(x)
                    533: int    x;
                    534: {
                    535:        extern int falsef;
                    536:        register j, notflag, true;
                    537:        tchar i;
                    538: 
                    539:        if (x == 2) {
                    540:                notflag = 0;
                    541:                true = iflist[ifx];
                    542:                goto i1;
                    543:        }
                    544:        true = 0;
                    545:        skip();
                    546:        if ((cbits(i = getch())) == '!') {
                    547:                notflag = 1;
                    548:        } else {
                    549:                notflag = 0;
                    550:                ch = i;
                    551:        }
                    552:        i = atoi();
                    553:        if (!nonumb) {
                    554:                if (i > 0)
                    555:                        true++;
                    556:                goto i1;
                    557:        }
                    558:        i = getch();
                    559:        switch (j = cbits(i)) {
                    560:        case 'e':
                    561:                if (!(v.pn & 01))
                    562:                        true++;
                    563:                break;
                    564:        case 'o':
                    565:                if (v.pn & 01)
                    566:                        true++;
                    567:                break;
                    568: #ifdef NROFF
                    569:        case 'n':
                    570:                true++;
                    571:        case 't':
                    572: #endif
                    573: #ifndef NROFF
                    574:        case 't':
                    575:                true++;
                    576:        case 'n':
                    577: #endif
                    578:        case ' ':
                    579:                break;
                    580:        default:
                    581:                true = cmpstr(i);
                    582:        }
                    583: i1:
                    584:        true ^= notflag;
                    585:        if (x == 1)
                    586:                iflist[ifx] = !true;
                    587:        if (true) {
                    588: i2:
                    589:                do {
                    590:                        v.hp = 0;
                    591:                        pinchar = inchar;       /* XXX */
                    592:                } while ((cbits(i = getch())) == ' ');
                    593:                if (cbits(i) == LEFT)
                    594:                        goto i2;
                    595:                ch = i;
                    596:                nflush++;
                    597:        } else {
                    598:                copyf++;
                    599:                falsef++;
                    600:                if (eat(LEFT) == LEFT) {
                    601:                        while (eatblk(RIGHT, LEFT) != RIGHT)
                    602:                                nlflg = 0;
                    603:                }
                    604:                copyf--;
                    605:                falsef--;
                    606:        }
                    607: }
                    608: 
                    609: eat0(c)
                    610: int    c;
                    611: {
                    612:        register i;
                    613: 
                    614:        while ((i = cbits(getch0())) != c &&  (i != '\n'))
                    615:                ;
                    616:        return(i);
                    617: }
                    618: 
                    619: eatblk(right, left)
                    620: int    right, left;
                    621: {
                    622:        register i;
                    623: 
                    624: e0:
                    625:        while ((i = cbits(getch())) != right && i != left && i != '\n')
                    626:                ;
                    627:        if (i == left) {
                    628:                while ((i = eatblk(right, left)) != right)
                    629:                        nlflg = 0;
                    630:                goto e0;
                    631:        }
                    632:        return(i);
                    633: }
                    634: 
                    635: 
                    636: cmpstr(c)
                    637: tchar c;
                    638: {
                    639:        register j, delim;
                    640:        tchar i;
                    641:        register filep p;
                    642:        extern filep alloc();
                    643:        extern filep incoff();
                    644:        filep begin;
                    645:        int     cnt, k;
                    646:        int     savapts, savapts1, savfont, savfont1,
                    647:        savpts, savpts1;
                    648: 
                    649:        if (ismot(c))
                    650:                return(0);
                    651:        delim = cbits(c);
                    652:        if (dip != d)
                    653:                wbfl();
                    654:        if ((offset = begin = alloc()) == (filep)0)
                    655:                return(0);
                    656:        cnt = 0;
                    657:        v.hp = 0;
                    658:        pinchar = inchar;       /* XXX */
                    659:        savapts = apts;
                    660:        savapts1 = apts1;
                    661:        savfont = font;
                    662:        savfont1 = font1;
                    663:        savpts = pts;
                    664:        savpts1 = pts1;
                    665:        while ((j = cbits(i = getch())) != delim && j != '\n') {
                    666:                wbf(i);
                    667:                cnt++;
                    668:        }
                    669:        wbt((tchar)0);
                    670:        k = !cnt;
                    671:        if (nlflg)
                    672:                goto rtn;
                    673:        p = begin;
                    674:        apts = savapts;
                    675:        apts1 = savapts1;
                    676:        font = savfont;
                    677:        font1 = savfont1;
                    678:        pts = savpts;
                    679:        pts1 = savpts1;
                    680:        mchbits();
                    681:        v.hp = 0;
                    682:        pinchar = inchar;       /* XXX */
                    683:        while ((j = cbits(i = getch())) != delim && j != '\n') {
                    684:                if (rbf0(p) != i) {
                    685:                        eat(delim);
                    686:                        k = 0;
                    687:                        break;
                    688:                }
                    689:                p = incoff(p);
                    690:                k = !(--cnt);
                    691:        }
                    692: rtn:
                    693:        apts = savapts;
                    694:        apts1 = savapts1;
                    695:        font = savfont;
                    696:        font1 = savfont1;
                    697:        pts = savpts;
                    698:        pts1 = savpts1;
                    699:        mchbits();
                    700:        offset = dip->op;
                    701:        ffree(begin);
                    702:        return(k);
                    703: }
                    704: 
                    705: 
                    706: caserd()
                    707: {
                    708: 
                    709:        lgf++;
                    710:        skip();
                    711:        getname();
                    712:        if (!iflg) {
                    713:                if (quiet) {
                    714:                        ttys.sg_flags &= ~ECHO;
                    715:                        stty(0, &ttys);
                    716:                        flusho();
                    717:                        fprintf(stderr, "\007"); /*bell*/
                    718:                } else {
                    719:                        if (nextf[0]) {
                    720:                                fprintf(stderr, "%s:", nextf);
                    721:                        } else {
                    722:                                fprintf(stderr, "\007"); /*bell*/
                    723:                        }
                    724:                }
                    725:        }
                    726:        collect();
                    727:        tty++;
                    728:        pushi((filep) - 1);
                    729: }
                    730: 
                    731: 
                    732: rdtty()
                    733: {
                    734:        char    onechar;
                    735: 
                    736:        onechar = 0;
                    737:        if (read(0, &onechar, 1) == 1) {
                    738:                if (onechar == '\n')
                    739:                        tty++;
                    740:                else 
                    741:                        tty = 1;
                    742:                if (tty != 3)
                    743:                        return(onechar);
                    744:        }
                    745:        popi();
                    746:        tty = 0;
                    747:        if (quiet) {
                    748:                ttys.sg_flags |= ECHO;
                    749:                stty(0, &ttys);
                    750:        }
                    751:        return(0);
                    752: }
                    753: 
                    754: 
                    755: caseec()
                    756: {
                    757:        eschar = chget('\\');
                    758: }
                    759: 
                    760: 
                    761: caseeo()
                    762: {
                    763:        eschar = 0;
                    764: }
                    765: 
                    766: 
                    767: caseta()
                    768: {
                    769:        register i;
                    770: 
                    771:        tabtab[0] = nonumb = 0;
                    772:        for (i = 0; ((i < (NTAB - 1)) && !nonumb); i++) {
                    773:                if (skip())
                    774:                        break;
                    775:                tabtab[i] = max(hnumb(&tabtab[max(i-1,0)]), 0) & TMASK;
                    776:                if (!nonumb) 
                    777:                        switch (cbits(ch)) {
                    778:                        case 'C':
                    779:                                tabtab[i] |= CTAB;
                    780:                                break;
                    781:                        case 'R':
                    782:                                tabtab[i] |= RTAB;
                    783:                                break;
                    784:                        default: /*includes L*/
                    785:                                break;
                    786:                        }
                    787:                nonumb = ch = 0;
                    788:        }
                    789:        tabtab[i] = 0;
                    790: }
                    791: 
                    792: 
                    793: casene()
                    794: {
                    795:        register i, j;
                    796: 
                    797:        skip();
                    798:        i = vnumb((int *)0);
                    799:        if (nonumb)
                    800:                i = lss;
                    801:        if (i > (j = findt1())) {
                    802:                i = lss;
                    803:                lss = j;
                    804:                dip->nls = 0;
                    805:                newline(0);
                    806:                lss = i;
                    807:        }
                    808: }
                    809: 
                    810: 
                    811: casetr()
                    812: {
                    813:        register i, j;
                    814:        tchar k;
                    815: 
                    816:        lgf++;
                    817:        skip();
                    818:        while ((i = cbits(k=getch())) != '\n') {
                    819:                if (ismot(k))
                    820:                        return;
                    821:                if (ismot(k = getch()))
                    822:                        return;
                    823:                if ((j = cbits(k)) == '\n')
                    824:                        j = ' ';
                    825:                trtab[i] = j;
                    826:        }
                    827: }
                    828: 
                    829: 
                    830: casecu()
                    831: {
                    832:        cu++;
                    833:        caseul();
                    834: }
                    835: 
                    836: 
                    837: caseul()
                    838: {
                    839:        register i;
                    840: 
                    841:        noscale++;
                    842:        if (skip())
                    843:                i = 1;
                    844:        else 
                    845:                i = atoi();
                    846:        if (ul && (i == 0)) {
                    847:                font = sfont;
                    848:                ul = cu = 0;
                    849:        }
                    850:        if (i) {
                    851:                if (!ul) {
                    852:                        sfont = font;
                    853:                        font = ulfont;
                    854:                }
                    855:                ul = i;
                    856:        }
                    857:        noscale = 0;
                    858:        mchbits();
                    859: }
                    860: 
                    861: 
                    862: caseuf()
                    863: {
                    864:        register i, j;
                    865: 
                    866:        if (skip() || !(i = getrq()) || i == 'S' ||  (j = findft(i))  == -1)
                    867:                ulfont = FT + 1; /*default position 2*/
                    868:        else 
                    869:                ulfont = j;
                    870: #ifdef NROFF
                    871:        if (ulfont == 1)
                    872:                ulfont = 2;
                    873: #endif
                    874:        ulbit = ulfont << 9;    /* certain to fail in tchar version */
                    875: }
                    876: 
                    877: 
                    878: caseit()
                    879: {
                    880:        register i;
                    881: 
                    882:        lgf++;
                    883:        it = itmac = 0;
                    884:        noscale++;
                    885:        skip();
                    886:        i = atoi();
                    887:        skip();
                    888:        if (!nonumb && (itmac = getrq()))
                    889:                it = i;
                    890:        noscale = 0;
                    891: }
                    892: 
                    893: 
                    894: casemc()
                    895: {
                    896:        register i;
                    897: 
                    898:        if (icf > 1)
                    899:                ic = 0;
                    900:        icf = 0;
                    901:        if (skip())
                    902:                return;
                    903:        ic = getch();
                    904:        icf = 1;
                    905:        skip();
                    906:        i = max(hnumb((int *)0), 0);
                    907:        if (!nonumb)
                    908:                ics = i;
                    909: }
                    910: 
                    911: 
                    912: casemk()
                    913: {
                    914:        register i, j;
                    915: 
                    916:        if (dip != d)
                    917:                j = dip->dnl; 
                    918:        else 
                    919:                j = v.nl;
                    920:        if (skip()) {
                    921:                dip->mkline = j;
                    922:                return;
                    923:        }
                    924:        if ((i = getrq()) == 0)
                    925:                return;
                    926:        vlist[findr(i)] = j;
                    927: }
                    928: 
                    929: 
                    930: casesv()
                    931: {
                    932:        register i;
                    933: 
                    934:        skip();
                    935:        if ((i = vnumb((int *)0)) < 0)
                    936:                return;
                    937:        if (nonumb)
                    938:                i = 1;
                    939:        sv += i;
                    940:        caseos();
                    941: }
                    942: 
                    943: 
                    944: caseos()
                    945: {
                    946:        register savlss;
                    947: 
                    948:        if (sv <= findt1()) {
                    949:                savlss = lss;
                    950:                lss = sv;
                    951:                newline(0);
                    952:                lss = savlss;
                    953:                sv = 0;
                    954:        }
                    955: }
                    956: 
                    957: 
                    958: casenm()
                    959: {
                    960:        register i;
                    961: 
                    962:        lnmod = nn = 0;
                    963:        if (skip())
                    964:                return;
                    965:        lnmod++;
                    966:        noscale++;
                    967:        i = inumb(&v.ln);
                    968:        if (!nonumb)
                    969:                v.ln = max(i, 0);
                    970:        getnm(&ndf, 1);
                    971:        getnm(&nms, 0);
                    972:        getnm(&ni, 0);
                    973:        noscale = 0;
                    974:        nmbits = chbits;
                    975: }
                    976: 
                    977: 
                    978: getnm(p, min)
                    979: int    *p, min;
                    980: {
                    981:        register i;
                    982: 
                    983:        eat(' ');
                    984:        if (skip())
                    985:                return;
                    986:        i = atoi();
                    987:        if (nonumb)
                    988:                return;
                    989:        *p = max(i, min);
                    990: }
                    991: 
                    992: 
                    993: casenn()
                    994: {
                    995:        noscale++;
                    996:        skip();
                    997:        nn = max(atoi(), 1);
                    998:        noscale = 0;
                    999: }
                   1000: 
                   1001: 
                   1002: caseab()
                   1003: {
                   1004:        casetm(1);
                   1005:        done2(0);
                   1006: }
                   1007: 
                   1008: 

unix.superglobalmegacorp.com

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