Annotation of researchv10no/cmd/troff/Old/n7.c, revision 1.1

1.1     ! root        1: #include "tdef.h"
        !             2: extern
        !             3: #include "d.h"
        !             4: extern
        !             5: #include "v.h"
        !             6: #ifdef NROFF
        !             7: extern
        !             8: #include "tw.h"
        !             9: #endif
        !            10: #include "s.h"
        !            11: #ifdef NROFF
        !            12: #define GETCH gettch
        !            13: #endif
        !            14: #ifndef NROFF
        !            15: #define GETCH getch
        !            16: #endif
        !            17: 
        !            18: /*
        !            19: troff7.c
        !            20: 
        !            21: text
        !            22: */
        !            23: 
        !            24: #include <sgtty.h>
        !            25: #include "ext.h"
        !            26: int    brflg;
        !            27: 
        !            28: tbreak()
        !            29: {
        !            30:        register pad, k;
        !            31:        tchar   *i, j;
        !            32:        int     res;
        !            33: 
        !            34:        trap = 0;
        !            35:        if (nb)
        !            36:                return;
        !            37:        if ((dip == d) && (v.nl == -1)) {
        !            38:                newline(1);
        !            39:                return;
        !            40:        }
        !            41:        if (!nc) {
        !            42:                setnel();
        !            43:                if (!wch)
        !            44:                        return;
        !            45:                if (pendw)
        !            46:                        getword(1);
        !            47:                movword();
        !            48:        } else if (pendw && !brflg) {
        !            49:                getword(1);
        !            50:                movword();
        !            51:        }
        !            52:        *linep = dip->nls = 0;
        !            53: #ifdef NROFF
        !            54:        if (dip == d)
        !            55:                horiz(po);
        !            56: #endif
        !            57:        if (lnmod)
        !            58:                donum();
        !            59:        lastl = ne;
        !            60:        if (brflg != 1) {
        !            61:                totout = 0;
        !            62:        } else if (ad) {
        !            63:                if ((lastl = (ll - un)) < ne)
        !            64:                        lastl = ne;
        !            65:        }
        !            66:        if (admod && ad && (brflg != 2)) {
        !            67:                lastl = ne;
        !            68:                adsp = adrem = 0;
        !            69: #ifdef NROFF
        !            70:                if (admod == 1)
        !            71:                        un +=  quant(nel / 2, t.Adj);
        !            72: #endif
        !            73: #ifndef NROFF
        !            74:                if (admod == 1)
        !            75:                        un += nel / 2;
        !            76: #endif
        !            77:                else if (admod == 2)
        !            78:                        un += nel;
        !            79:        }
        !            80:        totout++;
        !            81:        brflg = 0;
        !            82:        if ((lastl + un) > dip->maxl)
        !            83:                dip->maxl = (lastl + un);
        !            84:        horiz(un);
        !            85: #ifdef NROFF
        !            86:        if (adrem % t.Adj)
        !            87:                res = t.Hor; 
        !            88:        else 
        !            89:                res = t.Adj;
        !            90: #endif
        !            91:        for (i = line; nc > 0; ) {
        !            92:                if ((cbits(j = *i++)) == ' ') {
        !            93:                        pad = 0;
        !            94:                        do {
        !            95:                                pad += width(j);
        !            96:                                nc--;
        !            97:                        } while ((cbits(j = *i++)) == ' ');
        !            98:                        i--;
        !            99:                        pad += adsp;
        !           100:                        --nwd;
        !           101:                        if (adrem) {
        !           102:                                if (adrem < 0) {
        !           103: #ifdef NROFF
        !           104:                                        pad -= res;
        !           105:                                        adrem += res;
        !           106:                                } else if ((totout & 01) ||  ((adrem / res) >= (nwd))) {
        !           107:                                        pad += res;
        !           108:                                        adrem -= res;
        !           109: #endif
        !           110: #ifndef NROFF
        !           111:                                        pad--;
        !           112:                                        adrem++;
        !           113:                                } else {
        !           114:                                        pad++;
        !           115:                                        adrem--;
        !           116: #endif
        !           117:                                }
        !           118:                        }
        !           119:                        pchar((tchar) WORDSP);
        !           120:                        horiz(pad);
        !           121:                } else {
        !           122:                        pchar(j);
        !           123:                        nc--;
        !           124:                }
        !           125:        }
        !           126:        if (ic) {
        !           127:                if ((k = ll - un - lastl + ics) > 0)
        !           128:                        horiz(k);
        !           129:                pchar(ic);
        !           130:        }
        !           131:        if (icf)
        !           132:                icf++;
        !           133:        else 
        !           134:                ic = 0;
        !           135:        ne = nwd = 0;
        !           136:        un = in;
        !           137:        setnel();
        !           138:        newline(0);
        !           139:        if (dip != d) {
        !           140:                if (dip->dnl > dip->hnl)
        !           141:                        dip->hnl = dip->dnl;
        !           142:        } else {
        !           143:                if (v.nl > dip->hnl)
        !           144:                        dip->hnl = v.nl;
        !           145:        }
        !           146:        for (k = ls - 1; k > 0 && !trap; k--)
        !           147:                newline(0);
        !           148:        spread = 0;
        !           149: }
        !           150: 
        !           151: donum()
        !           152: {
        !           153:        register i, nw;
        !           154:        extern pchar();
        !           155: 
        !           156:        nrbits = nmbits;
        !           157:        nw = width('1' | nrbits);
        !           158:        if (nn) {
        !           159:                nn--;
        !           160:                goto d1;
        !           161:        }
        !           162:        if (v.ln % ndf) {
        !           163:                v.ln++;
        !           164: d1:
        !           165:                un += nw * (3 + nms + ni);
        !           166:                return;
        !           167:        }
        !           168:        i = 0;
        !           169:        if (v.ln < 100)
        !           170:                i++;
        !           171:        if (v.ln < 10)
        !           172:                i++;
        !           173:        horiz(nw * (ni + i));
        !           174:        nform = 0;
        !           175:        fnumb(v.ln, pchar);
        !           176:        un += nw * nms;
        !           177:        v.ln++;
        !           178: }
        !           179: 
        !           180: 
        !           181: text()
        !           182: {
        !           183:        tchar i;
        !           184:        static int      spcnt;
        !           185: 
        !           186:        nflush++;
        !           187:        if ((dip == d) && (v.nl == -1)) {
        !           188:                newline(1)        !           189:                return;
        !           190:        }
        !           191:        setnel();
        !           192:        if (ce || !fi) {
        !           193:                nofill();
        !           194:                return;
        !           195:        }
        !           196:        if (pendw)
        !           197:                goto t4;
        !           198:        if (pendt)
        !           199:                if (spcnt)
        !           200:                        goto t2; 
        !           201:                else 
        !           202:                        goto t3;
        !           203:        pendt++;
        !           204:        if (spcnt)
        !           205:                goto t2;
        !           206:        while ((cbits(i = GETCH())) == ' ')
        !           207:                spcnt++;
        !           208:        if (nlflg) {
        !           209: t1:
        !           210:                nflush = pendt = ch = spcnt = 0;
        !           211:                callsp();
        !           212:                return;
        !           213:        }
        !           214:        ch = i;
        !           215:        if (spcnt) {
        !           216: t2:
        !           217:                tbreak();
        !           218:                if (nc || wch)
        !           219:                        goto rtn;
        !           220:                un += spcnt * sps;
        !           221:                spcnt = 0;
        !           222:                setnel();
        !           223:                if (trap)
        !           224:                        goto rtn;
        !           225:                if (nlflg)
        !           226:                        goto t1;
        !           227:        }
        !           228: t3:
        !           229:        if (spread)
        !           230:                goto t5;
        !           231:        if (pendw || !wch)
        !           232: t4:
        !           233:                if (getword(0))
        !           234:                        goto t6;
        !           235:        if (!movword())
        !           236:                goto t3;
        !           237: t5:
        !           238:        if (nlflg)
        !           239:                pendt = 0;
        !           240:        adsp = adrem = 0;
        !           241:        if (ad) {
        !           242:                if (nwd == 1)
        !           243:                        adsp = nel; 
        !           244:                else 
        !           245:                        adsp = nel / (nwd - 1);
        !           246: #ifdef NROFF
        !           247:                adsp = (adsp / t.Adj)*t.Adj;
        !           248: #endif
        !           249:                adrem = nel -adsp*(nwd-1);
        !           250:        }
        !           251:        brflg = 1;
        !           252:        tbreak();
        !           253:        spread = 0;
        !           254:        if (!trap)
        !           255:                goto t3;
        !           256:        if (!nlflg)
        !           257:                goto rtn;
        !           258: t6:
        !           259:        pendt = 0;
        !           260:        ckul();
        !           261: rtn:
        !           262:        nflush = 0;
        !           263: }
        !           264: 
        !           265: 
        !           266: nofill()
        !           267: {
        !           268:        register j;
        !           269:        tchar i;
        !           270: 
        !           271:        if (!pendnf) {
        !           272:                over = 0;
        !           273:                tbreak();
        !           274:                if (trap)
        !           275:                        goto rtn;
        !           276:                if (nlflg) {
        !           277:                        ch = nflush = 0;
        !           278:                        callsp();
        !           279:                        return;
        !           280:                }
        !           281:                adsp = adrem = 0;
        !           282:                nwd = 10000;
        !           283:        }
        !           284:        while ((j = (cbits(i = GETCH()))) != '\n') {
        !           285:                if (j == ohc)
        !           286:                        continue;
        !           287:                if (j == CONT) {
        !           288:                        pendnf++;
        !           289:                        nflush = 0;
        !           290:                        flushi();
        !           291:                        ckul();
        !           292:                        return;
        !           293:                }
        !           294:                storeline(i, -1);
        !           295:        }
        !           296:        if (ce) {
        !           297:                ce--;
        !           298:                if ((i = quant(nel / 2, HOR)) > 0)
        !           299:                        un += i;
        !           300:        }
        !           301:        if (!nc)
        !           302:                storeline((tchar)FILLER, 0);
        !           303:        brflg = 2;
        !           304:        tbreak();
        !           305:        ckul();
        !           306: rtn:
        !           307:        pendnf = nflush = 0;
        !           308: }
        !           309: 
        !           310: 
        !           311: callsp()
        !           312: {
        !           313:        register i;
        !           314: 
        !           315:        if (flss)
        !           316:                i = flss; 
        !           317:        else 
        !           318:                i = lss;
        !           319:        flss = 0;
        !           320:        casesp(i);
        !           321: }
        !           322: 
        !           323: 
        !           324: ckul()
        !           325: {
        !           326:        if (ul && (--ul == 0)) {
        !           327:                cu = 0;
        !           328:                font = sfont;
        !           329:                mchbits();
        !           330:        }
        !           331:        if (it && (--it == 0) && itmac)
        !           332:                control(itmac, 0);
        !           333: }
        !           334: 
        !           335: 
        !           336: storeline(c, w)
        !           337: tchar c;
        !           338: {
        !           339:        register i;
        !           340: 
        !           341:        if (linep >= line + lnsize - 1) {
        !           342:                if (!over) {
        !           343:                        flusho();
        !           344:                        fprintf(stderr, "troff: Line overflow.\n");
        !           345:                        over++;
        !           346:                        c = LEFTHAND;
        !           347:                        w = -1;
        !           348:                        goto s1;
        !           349:                }
        !           350:                return;
        !           351:        }
        !           352: s1:
        !           353:        if (w == -1)
        !           354:                w = width(c);
        !           355:        ne += w;
        !           356:        nel -= w;
        !           357:        *linep++ = c;
        !           358:        nc++;
        !           359: }
        !           360: 
        !           361: 
        !           362: newline(a)
        !           363: int    a;
        !           364: {
        !           365:        register i, j, nlss;
        !           366:        int     opn;
        !           367: 
        !           368:        if (a)
        !           369:                goto nl1;
        !           370:        if (dip != d) {
        !           371:                j = lss;
        !           372:                pchar1((tchar)FLSS);
        !           373:                if (flss)
        !           374:                        lss = flss;
        !           375:                i = lss + dip->blss;
        !           376:                dip->dnl += i;
        !           377:                pchar1((tchar)i);
        !           378:                pchar1((tchar)'\n');
        !           379:                lss = j;
        !           380:                dip->blss = flss = 0;
        !           381:                if (dip->alss) {
        !           382:                        pchar1((tchar)FLSS);
        !           383:                        pchar1((tchar)dip->alss);
        !           384:                        pchar1((tchar)'\n');
        !           385:                        dip->dnl += dip->alss;
        !           386:                        dip->alss = 0;
        !           387:                }
        !           388:                if (dip->ditrap && !dip->ditf &&  (dip->dnl >= dip->ditrap) && dip->dimac)
        !           389:                        if (control(dip->dimac, 0)) {
        !           390:                                trap++; 
        !           391:                                dip->ditf++;
        !           392:                        }
        !           393:                return;
        !           394:        }
        !           395:        j = lss;
        !           396:        if (flss)
        !           397:                lss = flss;
        !           398:        nlss = dip->alss + dip->blss + lss;
        !           399:        v.nl += nlss;
        !           400: #ifndef NROFF
        !           401:        if (ascii) {
        !           402:                dip->alss = dip->blss = 0;
        !           403:        }
        !           404: #endif
        !           405:        pchar1((tchar)'\n');
        !           406:        flss = 0;
        !           407:        lss = j;
        !           408:        if (v.nl < pl)
        !           409:                goto nl2;
        !           410: nl1:
        !           411:        ejf = dip->hnl = v.nl = 0;
        !           412:        ejl = frame;
        !           413:        if (donef) {
        !           414:                if ((!nc && !wch) || ndone)
        !           415:                        done1(0);
        !           416:                ndone++;
        !           417:                donef = 0;
        !           418:                if (frame == stk)
        !           419:                        nflush++;
        !           420:        }
        !           421:        opn = v.pn;
        !           422:        v.pn++;
        !           423:        if (npnflg) {
        !           424:                v.pn = npn;
        !           425:                npn = npnflg = 0;
        !           426:        }
        !           427: nlpn:
        !           428:        if (v.pn == pfrom) {
        !           429:                print++;
        !           430:                pfrom = -1;
        !           431:        } else if (opn == pto) {
        !           432:                print = 0;
        !           433:                opn = -1;
        !           434:                chkpn();
        !           435:                goto nlpn;
        !           436:        }
        !           437:        if (print)
        !           438:                newpage(v.pn);  /* supposedly in a clean state so can pause */
        !           439:        if (stop && print) {
        !           440:                dpn++;
        !           441:                if (dpn >= stop) {
        !           442:                        dpn = 0;
        !           443:                        dostop();
        !           444:                }
        !           445:        }
        !           446: nl2:
        !           447:        trap = 0;
        !           448:        if (v.nl == 0) {
        !           449:                if ((j = findn(0)) != NTRAP)
        !           450:                        trap = control(mlist[j], 0);
        !           451:        } else if ((i = findt(v.nl - nlss)) <= nlss) {
        !           452:                if ((j = findn1(v.nl - nlss + i)) == NTRAP) {
        !           453:                        flusho();
        !           454:                        fprintf(stderr, "troff: Trap botch.\n");
        !           455:                        done2(-5);
        !           456:                }
        !           457:                trap = control(mlist[j], 0);
        !           458:        }
        !           459: }
        !           460: 
        !           461: 
        !           462: findn1(a)
        !           463: int    a;
        !           464: {
        !           465:        register i, j;
        !           466: 
        !           467:        for (i = 0; i < NTRAP; i++) {
        !           468:                if (mlist[i]) {
        !           469:                        if ((j = nlist[i]) < 0)
        !           470:                                j += pl;
        !           471:                        if (j == a)
        !           472:                                break;
        !           473:                }
        !           474:        }
        !           475:        return(i);
        !           476: }
        !           477: 
        !           478: 
        !           479: chkpn()
        !           480: {
        !           481:        pto = *(pnp++);
        !           482:        pfrom = pto>=0 ? pto : -pto;
        !           483:        if (pto == -32767) {
        !           484:                flusho();
        !           485:                done1(0);
        !           486:        }
        !           487:        if (pto < 0) {
        !           488:                pto = -pto;
        !           489:                print++;
        !           490:                pfrom = 0;
        !           491:        }
        !           492: }
        !           493: 
        !           494: 
        !           495: findt(a)
        !           496: int    a;
        !           497: {
        !           498:        register i, j, k;
        !           499: 
        !           500:        k = 32767;
        !           501:        if (dip != d) {
        !           502:                if (dip->dimac && ((i = dip->ditrap - a) > 0))
        !           503:                        k = i;
        !           504:                return(k);
        !           505:        }
        !           506:        for (i = 0; i < NTRAP; i++) {
        !           507:                if (mlist[i]) {
        !           508:                        if ((j = nlist[i]) < 0)
        !           509:                                j += pl;
        !           510:                        if ((j -= a)  <=  0)
        !           511:                                continue;
        !           512:                        if (j < k)
        !           513:                                k = j;
        !           514:                }
        !           515:        }
        !           516:        i = pl - a;
        !           517:        if (k > i)
        !           518:                k = i;
        !           519:        return(k);
        !           520: }
        !           521: 
        !           522: 
        !           523: findt1()
        !           524: {
        !           525:        register i;
        !           526: 
        !           527:        if (dip != d)
        !           528:                i = dip->dnl;
        !           529:        else 
        !           530:                i = v.nl;
        !           531:        return(findt(i));
        !           532: }
        !           533: 
        !           534: 
        !           535: eject(a)
        !           536: struct s *a;
        !           537: {
        !           538:        register savlss;
        !           539: 
        !           540:        if (dip != d)
        !           541:                return;
        !           542:        ejf++;
        !           543:        if (a)
        !           544:                ejl = a;
        !           545:        else 
        !           546:                ejl = frame;
        !           547:        if (trap)
        !           548:                return;
        !           549: e1:
        !           550:        savlss = lss;
        !           551:        lss = findt(v.nl);
        !           552:        newline(0);
        !           553:        lss = savlss;
        !           554:        if (v.nl && !trap)
        !           555:                goto e1;
        !           556: }
        !           557: 
        !           558: 
        !           559: movword()
        !           560: {
        !           561:        register w;
        !           562:        tchar i, *wp;
        !           563:        int     savwch, hys;
        !           564: 
        !           565:        over = 0;
        !           566:        wp = wordp;
        !           567:        if (!nwd) {
        !           568:                while ((cbits(i = *wp++)) == ' ') {
        !           569:                        wch--;
        !           570:                        wne -= width(i);
        !           571:                }
        !           572:                wp--;
        !           573:        }
        !           574:        if ((wne > nel) &&  !hyoff && hyf &&  (!nwd || (nel > 3 * sps)) &&  (!(hyf & 02) || (findt1() > lss)))
        !           575:                hyphen(wp);
        !           576:        savwch = wch;
        !           577:        hyp = hyptr;
        !           578:        nhyp = 0;
        !           579:        while (*hyp && (*hyp <= wp))
        !           580:                hyp++;
        !           581:        while (wch) {
        !           582:                if ((hyoff != 1) && (*hyp == wp)) {
        !           583:                        hyp++;
        !           584:                        if (!wdstart ||  ((wp > (wdstart + 1)) &&  (wp < wdend) &&  (!(hyf & 04) || (wp < (wdend - 1))) &&
        !           585:                            (!(hyf & '\b') || wp > wdstart + 2))) {
        !           586:                                nhyp++;
        !           587:                                storeline((tchar)IMP, 0);
        !           588:                        }
        !           589:                }
        !           590:                i = *wp++;
        !           591:                w = width(i);
        !           592:                wne -= w;
        !           593:                wch--;
        !           594:                storeline(i, w);
        !           595:        }
        !           596:        if (nel >= 0) {
        !           597:                nwd++;
        !           598:                return(0);
        !           599:        }
        !           600:        xbitf = 1;
        !           601:        hys = width((tchar)HYPHEN);
        !           602: m1:
        !           603:        if (!nhyp) {
        !           604:                if (!nwd)
        !           605:                        goto m3;
        !           606:                if (wch == savwch)
        !           607:                        goto m4;
        !           608:        }
        !           609:        if (*--linep != IMP)
        !           610:                goto m5;
        !           611:        if (!(--nhyp))
        !           612:                if (!nwd)
        !           613:                        goto m2;
        !           614:        if (nel < hys) {
        !           615:                nc--;
        !           616:                goto m1;
        !           617:        }
        !           618: m2:
        !           619:        if ((i = cbits(*(linep - 1))) != '-' &&  (i != EMDASH)) {
        !           620:                *linep = (*(linep - 1) & SFMASK) | HYPHEN;
        !           621:                w = width(*linep);
        !           622:                nel -= w;
        !           623:                ne += w;
        !           624:                linep++;
        !           625:        }
        !           626: m3:
        !           627:        nwd++;
        !           628: m4:
        !           629:        wordp = wp;
        !           630:        return(1);
        !           631: m5:
        !           632:        nc--;
        !           633:        w = width(*linep);
        !           634:        ne -= w;
        !           635:        nel += w;
        !           636:        wne += w;
        !           637:        wch++;
        !           638:        wp--;
        !           639:        goto m1;
        !           640: }
        !           641: 
        !           642: 
        !           643: horiz(i)
        !           644: int    i;
        !           645: {
        !           646:        vflag = 0;
        !           647:        if (i)
        !           648:                pchar(makem(i));
        !           649: }
        !           650: 
        !           651: 
        !           652: setnel()
        !           653: {
        !           654:        if (!nc) {
        !           655:                linep = line;
        !           656:                if (un1 >= 0) {
        !           657:                        un = un1;
        !           658:                        un1 = -1;
        !           659:                }
        !           660:                nel = ll - un;
        !           661:                ne = adsp = adrem = 0;
        !           662:        }
        !           663: }
        !           664: 
        !           665: 
        !           666: getword(x)
        !           667: int    x;
        !           668: {
        !           669:        register j, swp;
        !           670:        tchar i;
        !           671:        int     noword;
        !           672: 
        !           673:        noword = 0;
        !           674:        if (x)
        !           675:                if (pendw) {
        !           676:                        *pendw = 0;
        !           677:                        goto rtn;
        !           678:                }
        !           679:        if (wordp = pendw)
        !           680:                goto g1;
        !           681:        hyp = hyptr;
        !           682:        wordp = word;
        !           683:        over = wne = wch = 0;
        !           684:        hyoff = 0;
        !           685:        while (1) {
        !           686:                j = cbits(i = GETCH());
        !           687:                if (j == '\n') {
        !           688:                        wne = wch = 0;
        !           689:                        noword = 1;
        !           690:                        goto rtn;
        !           691:                }
        !           692:                if (j == ohc) {
        !           693:                        hyoff = 1;
        !           694:                        continue;
        !           695:                }
        !           696:                if (j == ' ') {
        !           697:                        storeword(i, width(i));
        !           698:                        continue;
        !           699:                }
        !           700:                break;
        !           701:        }
        !           702:        swp = widthp;
        !           703:        storeword(' ' | chbits, -1);
        !           704:        if (spflg) {
        !           705:                storeword(' ' | chbits, -1);
        !           706:                spflg = 0;
        !           707:        }
        !           708:        widthp = swp;
        !           709: g0:
        !           710:        if (j == CONT) {
        !           711:                pendw = wordp;
        !           712:                nflush = 0;
        !           713:                flushi();
        !           714:                return(1);
        !           715:        }
        !           716:        if (hyoff != 1) {
        !           717:                if (j == ohc) {
        !           718:                        hyoff = 2;
        !           719:                        *hyp++ = wordp;
        !           720:                        if (hyp > (hyptr + NHYP - 1))
        !           721:                                hyp = hyptr + NHYP - 1;
        !           722:                        goto g1;
        !           723:                }
        !           724:                if ((j == '-') ||  (j == EMDASH))
        !           725:                        if (wordp > word + 1) {
        !           726:                                hyoff = 2;
        !           727:                                *hyp++ = wordp + 1;
        !           728:                                if (hyp > (hyptr + NHYP - 1))
        !           729:                                        hyp = hyptr + NHYP - 1;
        !           730:                        }
        !           731:        }
        !           732:        storeword(i, width(i));
        !           733: g1:
        !           734:        j = cbits(i = GETCH());
        !           735:        if (j != ' ') {
        !           736:                if (j != '\n')
        !           737:                        goto g0;
        !           738:                j = cbits(*(wordp - 1));
        !           739:                if ((j == '.') ||  (j == '!') ||  (j == '?'))
        !           740:                        spflg++;
        !           741:        }
        !           742:        *wordp = 0;
        !           743: rtn:
        !           744:        wdstart = 0;
        !           745:        wordp = word;
        !           746:        pendw = 0;
        !           747:        *hyp++ = 0;
        !           748:        setnel();
        !           749:        return(noword);
        !           750: }
        !           751: 
        !           752: 
        !           753: storeword(c, w)
        !           754: tchar c;
        !           755: int    w;
        !           756: {
        !           757: 
        !           758:        if (wordp >= &word[WDSIZE - 1]) {
        !           759:                if (!over) {
        !           760:                        flusho();
        !           761:                        fprintf(stderr, "troff: Word overflow.\n");
        !           762:                        over++;
        !           763:                        c = LEFTHAND;
        !           764:                        w = -1;
        !           765:                        goto s1;
        !           766:                }
        !           767:                return;
        !           768:        }
        !           769: s1:
        !           770:        if (w == -1)
        !           771:                w = width(c);
        !           772:        wne += w;
        !           773:        *wordp++ = c;
        !           774:        wch++;
        !           775: }
        !           776: 
        !           777: 
        !           778: #ifdef NROFF
        !           779: tchar gettch()
        !           780: {
        !           781:        tchar i;
        !           782:        int j;
        !           783: 
        !           784:        i = getch();
        !           785:        j = cbits(i);
        !           786:        if (ismot(i) || i & ulbit)
        !           787:                return(i);
        !           788:        if (cu && trtab[j] == ' ') {
        !           789:                setcbits(i, '_');
        !           790:                i &= ~ulbit;
        !           791:        }
        !           792:        if (!cu && j > 32 && !iscontrol(j) && !(*t.codetab[j-32] & 0200))
        !           793:                i &= ~ulbit;
        !           794:        return(i);
        !           795: }
        !           796: 
        !           797: 
        !           798: #endif

unix.superglobalmegacorp.com

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