Annotation of researchv10no/cmd/troff/ancient.nroff/n5.c, revision 1.1

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

unix.superglobalmegacorp.com

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