Annotation of 43BSDTahoe/usr.bin/roff/common_source/n5.c, revision 1.1

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

unix.superglobalmegacorp.com

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