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

Defined functions

caseab defined in line 811; used 2 times
casead defined in line 104; used 2 times
casebp defined in line 333; used 2 times
casec2 defined in line 167; used 2 times
casecc defined in line 164; used 2 times
casece defined in line 199; used 2 times
casech defined in line 299; used 2 times
casecu defined in line 688; used 2 times
caseec defined in line 629; used 2 times
caseel defined in line 432; used 2 times
caseem defined in line 394; used 2 times
caseeo defined in line 632; used 2 times
caseev defined in line 403; used 2 times
casefi defined in line 132; used 2 times
casefl defined in line 399; used 2 times
casehc defined in line 170; used 2 times
casehy defined in line 179; used 2 times
caseie defined in line 439; used 2 times
caseif defined in line 448; used 4 times
casein defined in line 210; used 2 times
caseit defined in line 724; used 2 times
caselc defined in line 176; used 2 times
caseli defined in line 635; used 2 times
casell defined in line 223; used 2 times
casels defined in line 249; used 2 times
caselt defined in line 232; used 2 times
casemc defined in line 736; used 2 times
casemk defined in line 748; used 2 times
casena defined in line 129; used 2 times
casene defined in line 663; used 2 times
casenf defined in line 138; used 2 times
casenh defined in line 190; used 2 times
casenm defined in line 779; used 2 times
casenn defined in line 805; used 2 times
casens defined in line 148; used 2 times
caseos defined in line 768; used 3 times
casepl defined in line 270; used 2 times
casepn defined in line 321; used 2 times
casepo defined in line 259; used 2 times
caserd defined in line 589; used 2 times
casers defined in line 145; used 2 times
casert defined in line 383; used 2 times
casesp defined in line 361; used 4 times
casesv defined in line 759; used 2 times
caseta defined in line 642; used 2 times
casetc defined in line 173; used 2 times
caseti defined in line 240; used 2 times
casetm defined in line 348; used 3 times
casetr defined in line 677; used 2 times
caseuf defined in line 712; used 2 times
caseul defined in line 692; used 3 times
casewh defined in line 278; used 2 times
chget defined in line 151; used 7 times
cmpstr defined in line 528; used 1 times
eatblk defined in line 513; used 2 times
findn defined in line 312; used 2 times
getnm defined in line 794; used 3 times
max defined in line 193; used 16 times
rdtty defined in line 612; used 1 times

Defined variables

iflist defined in line 101; used 3 times
ifx defined in line 102; used 7 times
Last modified: 1981-07-10
Generated: 2016-12-26
Generated by src2html V0.67
page hit count: 2410
Valid CSS Valid XHTML 1.0 Strict