| 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]; |