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