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