1*7074Srrh #ifndef lint 2*7074Srrh static char sccsid[] = "@(#)ni.c 4.1 06/07/82"; 3*7074Srrh #endif lint 4*7074Srrh 5*7074Srrh #include "tdef.h" 6*7074Srrh char obuf[OBUFSZ]; 7*7074Srrh char *obufp = obuf; 8*7074Srrh int r[NN] = { 9*7074Srrh PAIR('%',0), 10*7074Srrh PAIR('n','l'), 11*7074Srrh PAIR('y','r'), 12*7074Srrh PAIR('h','p'), 13*7074Srrh PAIR('c','t'), 14*7074Srrh PAIR('d','n'), 15*7074Srrh PAIR('m','o'), 16*7074Srrh PAIR('d','y'), 17*7074Srrh PAIR('d','w'), 18*7074Srrh PAIR('l','n'), 19*7074Srrh PAIR('d','l'), 20*7074Srrh PAIR('s','t'), 21*7074Srrh PAIR('s','b'), 22*7074Srrh PAIR('c','.')}; 23*7074Srrh int pto = 10000; 24*7074Srrh int pfrom = 1; 25*7074Srrh int print = 1; 26*7074Srrh char nextf[NS] = "/usr/lib/tmac/tmac.xxxxx"; 27*7074Srrh int nfi = 19; 28*7074Srrh #ifdef NROFF 29*7074Srrh char termtab[NS] = "/usr/lib/term/tab37"; 30*7074Srrh int tti = 17; 31*7074Srrh #endif 32*7074Srrh #ifndef NROFF 33*7074Srrh int oldbits = -1; 34*7074Srrh #endif 35*7074Srrh int init = 1; 36*7074Srrh int fc = IMP; 37*7074Srrh int eschar = '\\'; 38*7074Srrh int pl = 11*INCH; 39*7074Srrh int po = PO; 40*7074Srrh int dfact = 1; 41*7074Srrh int dfactd = 1; 42*7074Srrh int res = 1; 43*7074Srrh int smnt = 4; 44*7074Srrh int ascii = ASCII; 45*7074Srrh int ptid = PTID; 46*7074Srrh char ptname[] = "/dev/cat"; 47*7074Srrh int lg = LG; 48*7074Srrh int pnlist[NPN] = {-1}; 49*7074Srrh int *pnp = pnlist; 50*7074Srrh int npn = 1; 51*7074Srrh int npnflg = 1; 52*7074Srrh int xflg = 1; 53*7074Srrh int dpn = -1; 54*7074Srrh int totout = 1; 55*7074Srrh int ulfont = 1; 56*7074Srrh int ulbit = 1<<9; 57*7074Srrh int tabch = TAB; 58*7074Srrh int ldrch = LEADER; 59*7074Srrh int xxx; 60*7074Srrh extern caseds(), caseas(), casesp(), caseft(), caseps(), casevs(), 61*7074Srrh casenr(), caseif(), casepo(), casetl(), casetm(), casebp(), casech(), 62*7074Srrh casepn(), tbreak(), caseti(), casene(), casenf(), casece(), casefi(), 63*7074Srrh casein(), caseli(), casell(), casens(), casemk(), casert(), caseam(), 64*7074Srrh casede(), casedi(), caseda(), casewh(), casedt(), caseit(), caserm(), 65*7074Srrh casern(), casead(), casers(), casena(), casepl(), caseta(), casetr(), 66*7074Srrh caseul(), caselt(), casenx(), caseso(), caseig(), casetc(), casefc(), 67*7074Srrh caseec(), caseeo(), caselc(), caseev(), caserd(), caseab(), casefl(), 68*7074Srrh done(), casess(), casefp(), casecs(), casebd(), caselg(), casehc(), 69*7074Srrh casehy(), casenh(), casenm(), casenn(), casesv(), caseos(), casels(), 70*7074Srrh casecc(), casec2(), caseem(), caseaf(), casehw(), casemc(), casepm(), 71*7074Srrh casecu(), casepi(), caserr(), caseuf(), caseie(), caseel(), casepc(), 72*7074Srrh caseht(); 73*7074Srrh #ifndef NROFF 74*7074Srrh extern casefz(); 75*7074Srrh #endif 76*7074Srrh extern casecf(); 77*7074Srrh struct contab { 78*7074Srrh int rq; 79*7074Srrh /* 80*7074Srrh union { 81*7074Srrh */ 82*7074Srrh int (*f)(); 83*7074Srrh /* 84*7074Srrh unsigned mx; 85*7074Srrh }x; 86*7074Srrh */ 87*7074Srrh }contab[NM]= { 88*7074Srrh PAIR('d','s'),caseds, 89*7074Srrh PAIR('a','s'),caseas, 90*7074Srrh PAIR('s','p'),casesp, 91*7074Srrh PAIR('f','t'),caseft, 92*7074Srrh PAIR('p','s'),caseps, 93*7074Srrh PAIR('v','s'),casevs, 94*7074Srrh PAIR('n','r'),casenr, 95*7074Srrh PAIR('i','f'),caseif, 96*7074Srrh PAIR('i','e'),caseie, 97*7074Srrh PAIR('e','l'),caseel, 98*7074Srrh PAIR('p','o'),casepo, 99*7074Srrh PAIR('t','l'),casetl, 100*7074Srrh PAIR('t','m'),casetm, 101*7074Srrh PAIR('b','p'),casebp, 102*7074Srrh PAIR('c','h'),casech, 103*7074Srrh PAIR('p','n'),casepn, 104*7074Srrh PAIR('b','r'),tbreak, 105*7074Srrh PAIR('t','i'),caseti, 106*7074Srrh PAIR('n','e'),casene, 107*7074Srrh PAIR('n','f'),casenf, 108*7074Srrh PAIR('c','e'),casece, 109*7074Srrh PAIR('f','i'),casefi, 110*7074Srrh PAIR('i','n'),casein, 111*7074Srrh PAIR('l','i'),caseli, 112*7074Srrh PAIR('l','l'),casell, 113*7074Srrh PAIR('n','s'),casens, 114*7074Srrh PAIR('m','k'),casemk, 115*7074Srrh PAIR('r','t'),casert, 116*7074Srrh PAIR('a','m'),caseam, 117*7074Srrh PAIR('d','e'),casede, 118*7074Srrh PAIR('d','i'),casedi, 119*7074Srrh PAIR('d','a'),caseda, 120*7074Srrh PAIR('w','h'),casewh, 121*7074Srrh PAIR('d','t'),casedt, 122*7074Srrh PAIR('i','t'),caseit, 123*7074Srrh PAIR('r','m'),caserm, 124*7074Srrh PAIR('r','r'),caserr, 125*7074Srrh PAIR('r','n'),casern, 126*7074Srrh PAIR('a','d'),casead, 127*7074Srrh PAIR('r','s'),casers, 128*7074Srrh PAIR('n','a'),casena, 129*7074Srrh PAIR('p','l'),casepl, 130*7074Srrh PAIR('t','a'),caseta, 131*7074Srrh PAIR('t','r'),casetr, 132*7074Srrh PAIR('u','l'),caseul, 133*7074Srrh PAIR('c','u'),casecu, 134*7074Srrh PAIR('l','t'),caselt, 135*7074Srrh PAIR('n','x'),casenx, 136*7074Srrh PAIR('s','o'),caseso, 137*7074Srrh PAIR('i','g'),caseig, 138*7074Srrh PAIR('t','c'),casetc, 139*7074Srrh PAIR('f','c'),casefc, 140*7074Srrh PAIR('e','c'),caseec, 141*7074Srrh PAIR('e','o'),caseeo, 142*7074Srrh PAIR('l','c'),caselc, 143*7074Srrh PAIR('e','v'),caseev, 144*7074Srrh PAIR('r','d'),caserd, 145*7074Srrh PAIR('a','b'),caseab, 146*7074Srrh PAIR('f','l'),casefl, 147*7074Srrh PAIR('e','x'),done, 148*7074Srrh PAIR('s','s'),casess, 149*7074Srrh PAIR('f','p'),casefp, 150*7074Srrh PAIR('c','s'),casecs, 151*7074Srrh PAIR('b','d'),casebd, 152*7074Srrh PAIR('l','g'),caselg, 153*7074Srrh PAIR('h','c'),casehc, 154*7074Srrh PAIR('h','y'),casehy, 155*7074Srrh PAIR('n','h'),casenh, 156*7074Srrh PAIR('n','m'),casenm, 157*7074Srrh PAIR('n','n'),casenn, 158*7074Srrh PAIR('s','v'),casesv, 159*7074Srrh PAIR('o','s'),caseos, 160*7074Srrh PAIR('l','s'),casels, 161*7074Srrh PAIR('c','c'),casecc, 162*7074Srrh PAIR('c','2'),casec2, 163*7074Srrh PAIR('e','m'),caseem, 164*7074Srrh PAIR('a','f'),caseaf, 165*7074Srrh PAIR('h','w'),casehw, 166*7074Srrh PAIR('m','c'),casemc, 167*7074Srrh PAIR('p','m'),casepm, 168*7074Srrh #ifdef NROFF 169*7074Srrh PAIR('p','i'),casepi, 170*7074Srrh #endif 171*7074Srrh PAIR('u','f'),caseuf, 172*7074Srrh PAIR('p','c'),casepc, 173*7074Srrh PAIR('h','t'),caseht, 174*7074Srrh #ifndef NROFF 175*7074Srrh PAIR('f','z'),casefz, 176*7074Srrh #endif 177*7074Srrh PAIR('c', 'f'),casecf, 178*7074Srrh }; 179*7074Srrh 180*7074Srrh /* 181*7074Srrh troff environment block 182*7074Srrh */ 183*7074Srrh 184*7074Srrh int block = 0; 185*7074Srrh int ics = ICS; 186*7074Srrh int ic = 0; 187*7074Srrh int icf = 0; 188*7074Srrh int chbits = 0; 189*7074Srrh int spbits = 0; 190*7074Srrh int nmbits = 0; 191*7074Srrh int apts = PS; 192*7074Srrh int apts1 = PS; 193*7074Srrh int pts = PS; 194*7074Srrh int pts1 = PS; 195*7074Srrh int font = FT; 196*7074Srrh int font1 = FT; 197*7074Srrh int sps = SPS; 198*7074Srrh int spacesz = SS; 199*7074Srrh int lss = VS; 200*7074Srrh int lss1 = VS; 201*7074Srrh int ls = 1; 202*7074Srrh int ls1 = 1; 203*7074Srrh int ll = LL; 204*7074Srrh int ll1 = LL; 205*7074Srrh int lt = LL; 206*7074Srrh int lt1 = LL; 207*7074Srrh int ad = 1; 208*7074Srrh int nms = 1; 209*7074Srrh int ndf = 1; 210*7074Srrh int fi = 1; 211*7074Srrh int cc = '.'; 212*7074Srrh int c2 = '\''; 213*7074Srrh int ohc = OHC; 214*7074Srrh int tdelim = IMP; 215*7074Srrh int hyf = 1; 216*7074Srrh int hyoff = 0; 217*7074Srrh int un1 = -1; 218*7074Srrh int tabc = 0; 219*7074Srrh int dotc = '.'; 220*7074Srrh int adsp = 0; 221*7074Srrh int adrem = 0; 222*7074Srrh int lastl = 0; 223*7074Srrh int nel = 0; 224*7074Srrh int admod = 0; 225*7074Srrh int *wordp = 0; 226*7074Srrh int spflg = 0; 227*7074Srrh int *linep = 0; 228*7074Srrh int *wdend = 0; 229*7074Srrh int *wdstart = 0; 230*7074Srrh int wne = 0; 231*7074Srrh int ne = 0; 232*7074Srrh int nc = 0; 233*7074Srrh int nb = 0; 234*7074Srrh int lnmod = 0; 235*7074Srrh int nwd = 0; 236*7074Srrh int nn = 0; 237*7074Srrh int ni = 0; 238*7074Srrh int ul = 0; 239*7074Srrh int cu = 0; 240*7074Srrh int ce = 0; 241*7074Srrh int in = 0; 242*7074Srrh int in1 = 0; 243*7074Srrh int un = 0; 244*7074Srrh int wch = 0; 245*7074Srrh int pendt = 0; 246*7074Srrh int *pendw = 0; 247*7074Srrh int pendnf = 0; 248*7074Srrh int spread = 0; 249*7074Srrh int it = 0; 250*7074Srrh int itmac = 0; 251*7074Srrh int lnsize = LNSIZE; 252*7074Srrh int *hyptr[NHYP] = {0}; 253*7074Srrh int tabtab[NTAB] = {DTAB,DTAB*2,DTAB*3,DTAB*4,DTAB*5,DTAB*6,DTAB*7,DTAB*8, 254*7074Srrh DTAB*9,DTAB*10,DTAB*11,DTAB*12,DTAB*13,DTAB*14,DTAB*15,0}; 255*7074Srrh int line[LNSIZE] = {0}; 256*7074Srrh int word[WDSIZE] = {0}; 257*7074Srrh int blockxxx[EVS-68-NHYP-NTAB-WDSIZE-LNSIZE] = {0}; 258*7074Srrh /*spare 5 words*/ 259*7074Srrh int oline[LNSIZE+1]; 260