1 #ifndef lint 2 static char sccsid[] = "@(#)ni.c 2.3 (CWI) 89/08/14"; 3 #endif lint 4 #include "tdef.h" 5 6 /* You may want to change these names */ 7 8 #ifdef NROFF 9 10 char termtab[NS] = "/usr/local/lib/ditroff/term/tab."; 11 /* term type added in ptinit() */ 12 char fontfile[NS] = ""; /* not used */ 13 char devname[20] = "37"; 14 15 #else 16 17 char termtab[NS] = "/usr/local/lib/font"; /* rest added in ptinit() */ 18 char fontfile[NS] = "/usr/local/lib/font"; /* rest added in casefp() */ 19 char devname[20] = "psc"; /* default typesetter */ 20 21 #endif 22 char obuf[OBUFSZ]; /* characters collected here for typesetter output */ 23 char *obufp = obuf; 24 struct numtab numtab[NN] = { 25 { PAIR('%', 0) }, 26 { PAIR('n', 'l') }, 27 { PAIR('y', 'r') }, 28 { PAIR('h', 'p') }, 29 { PAIR('c', 't') }, 30 { PAIR('d', 'n') }, 31 { PAIR('m', 'o') }, 32 { PAIR('d', 'y') }, 33 { PAIR('d', 'w') }, 34 { PAIR('l', 'n') }, 35 { PAIR('d', 'l') }, 36 { PAIR('s', 't') }, 37 { PAIR('s', 'b') }, 38 { PAIR('c', '.') }, 39 { PAIR('$', '$') }, 40 }; 41 42 43 int pto = 10000; 44 int pfrom = 1; 45 int print = 1; 46 char nextf[NS] = "/usr/lib/tmac/tmac."; 47 #ifndef NROFF 48 int oldbits = -1; 49 #endif 50 int init = 1; 51 int fc = IMP; /* field character */ 52 int eschar = '\\'; 53 #ifdef NROFF 54 int pl = 11*INCH; 55 int po = PO; 56 #else 57 int pl; 58 int po; 59 #endif 60 int dfact = 1; 61 int dfactd = 1; 62 int res = 1; 63 int smnt = 0; /* beginning of special fonts */ 64 int ascii = ASCII; 65 int ptid = PTID; 66 int lg = LG; 67 int pnlist[NPN] = { -1 }; 68 69 70 int *pnp = pnlist; 71 int npn = 1; 72 int npnflg = 1; 73 int dpn = -1; 74 int totout = 1; 75 int ulfont = ULFONT; 76 int tabch = TAB; 77 int ldrch = LEADER; 78 79 extern caseds(), caseas(), casesp(), caseft(), caseps(), casevs(), 80 casenr(), caseif(), casepo(), casetl(), casetm(), casebp(), casech(), 81 casepn(), tbreak(), caseti(), casene(), casenf(), casece(), casefi(), 82 casein(), casell(), casens(), casemk(), casert(), caseam(), 83 casede(), casedi(), caseda(), casewh(), casedt(), caseit(), caserm(), 84 casern(), casead(), casers(), casena(), casepl(), caseta(), casetr(), 85 caseul(), caselt(), casenx(), caseso(), caseig(), casetc(), casefc(), 86 caseec(), caseeo(), caselc(), caseev(), caserd(), caseab(), casefl(), 87 done(), casess(), casefp(), casecs(), casebd(), caselg(), casehc(), 88 casehy(), casenh(), casenm(), casenn(), casesv(), caseos(), casels(), 89 casecc(), casec2(), caseem(), caseaf(), casehw(), casemc(), casepm(), 90 casecu(), casepi(), caserr(), caseuf(), caseie(), caseel(), casepc(), 91 caseht(), casecf(), casesy(), caself(), caseha(); 92 93 #define C(a,b) {a, 0, b, 0} 94 struct contab contab[NM] = { 95 C(PAIR('d', 's'), caseds), 96 C(PAIR('a', 's'), caseas), 97 C(PAIR('s', 'p'), casesp), 98 C(PAIR('f', 't'), caseft), 99 C(PAIR('p', 's'), caseps), 100 C(PAIR('v', 's'), casevs), 101 C(PAIR('n', 'r'), casenr), 102 C(PAIR('i', 'f'), caseif), 103 C(PAIR('i', 'e'), caseie), 104 C(PAIR('e', 'l'), caseel), 105 C(PAIR('p', 'o'), casepo), 106 C(PAIR('t', 'l'), casetl), 107 C(PAIR('t', 'm'), casetm), 108 C(PAIR('b', 'p'), casebp), 109 C(PAIR('c', 'h'), casech), 110 C(PAIR('p', 'n'), casepn), 111 C(PAIR('b', 'r'), tbreak), 112 C(PAIR('t', 'i'), caseti), 113 C(PAIR('n', 'e'), casene), 114 C(PAIR('n', 'f'), casenf), 115 C(PAIR('c', 'e'), casece), 116 C(PAIR('f', 'i'), casefi), 117 C(PAIR('i', 'n'), casein), 118 C(PAIR('l', 'l'), casell), 119 C(PAIR('n', 's'), casens), 120 C(PAIR('m', 'k'), casemk), 121 C(PAIR('r', 't'), casert), 122 C(PAIR('a', 'm'), caseam), 123 C(PAIR('d', 'e'), casede), 124 C(PAIR('d', 'i'), casedi), 125 C(PAIR('d', 'a'), caseda), 126 C(PAIR('w', 'h'), casewh), 127 C(PAIR('d', 't'), casedt), 128 C(PAIR('i', 't'), caseit), 129 C(PAIR('r', 'm'), caserm), 130 C(PAIR('r', 'r'), caserr), 131 C(PAIR('r', 'n'), casern), 132 C(PAIR('a', 'd'), casead), 133 C(PAIR('r', 's'), casers), 134 C(PAIR('n', 'a'), casena), 135 C(PAIR('p', 'l'), casepl), 136 C(PAIR('t', 'a'), caseta), 137 C(PAIR('t', 'r'), casetr), 138 C(PAIR('u', 'l'), caseul), 139 C(PAIR('c', 'u'), casecu), 140 C(PAIR('l', 't'), caselt), 141 C(PAIR('n', 'x'), casenx), 142 C(PAIR('s', 'o'), caseso), 143 C(PAIR('i', 'g'), caseig), 144 C(PAIR('t', 'c'), casetc), 145 C(PAIR('f', 'c'), casefc), 146 C(PAIR('e', 'c'), caseec), 147 C(PAIR('e', 'o'), caseeo), 148 C(PAIR('l', 'c'), caselc), 149 C(PAIR('e', 'v'), caseev), 150 C(PAIR('r', 'd'), caserd), 151 C(PAIR('a', 'b'), caseab), 152 C(PAIR('f', 'l'), casefl), 153 C(PAIR('e', 'x'), done), 154 C(PAIR('s', 's'), casess), 155 C(PAIR('f', 'p'), casefp), 156 C(PAIR('c', 's'), casecs), 157 C(PAIR('b', 'd'), casebd), 158 C(PAIR('l', 'g'), caselg), 159 C(PAIR('h', 'c'), casehc), 160 C(PAIR('h', 'y'), casehy), 161 C(PAIR('n', 'h'), casenh), 162 C(PAIR('n', 'm'), casenm), 163 C(PAIR('n', 'n'), casenn), 164 C(PAIR('s', 'v'), casesv), 165 C(PAIR('o', 's'), caseos), 166 C(PAIR('l', 's'), casels), 167 C(PAIR('c', 'c'), casecc), 168 C(PAIR('c', '2'), casec2), 169 C(PAIR('e', 'm'), caseem), 170 C(PAIR('a', 'f'), caseaf), 171 C(PAIR('h', 'w'), casehw), 172 C(PAIR('m', 'c'), casemc), 173 C(PAIR('p', 'm'), casepm), 174 C(PAIR('p', 'i'), casepi), 175 C(PAIR('u', 'f'), caseuf), 176 C(PAIR('p', 'c'), casepc), 177 C(PAIR('h', 't'), caseht), 178 C(PAIR('c', 'f'), casecf), 179 C(PAIR('s', 'y'), casesy), 180 C(PAIR('l', 'f'), caself), 181 C(PAIR('!', 0 ), casesy), /* synonym for .sy */ 182 C(PAIR('h', 'a'), caseha), /* select hyphenation, (jaap) */ 183 }; 184 185 186 tchar oline[LNSIZE+1]; 187 188 /* 189 * troff environment block 190 * 191 * If you change this, don't forget to update tdef.h (jaap) 192 */ 193 194 struct env env = { 195 /* int ics */ 0, 196 /* int sps */ 0, 197 /* int spacesz */ 0, 198 /* int lss */ 0, 199 /* int lss1 */ 0, 200 /* int ll */ 0, 201 /* int ll1 */ 0, 202 /* int lt */ 0, 203 /* int lt1 */ 0, 204 /* tchar i*/ 0, /* insertion character (/* = margin character) */ 205 /* int icf */ 0, 206 /* tchar chbits */ 0, /* size+font bits for current character */ 207 /* tchar spbits */ 0, 208 /* tchar nmbits */ 0, 209 /* int apts */ PS, /* actual point size -- as requested by user */ 210 /* int apts1 */ PS, /* need not match an existent size */ 211 /* int pts */ PS, /* hence, this is the size that really exists */ 212 /* int pts1 */ PS, 213 /* int font */ FT, 214 /* int font1 */ FT, 215 /* int ls */ 1, 216 /* int ls1 */ 1, 217 /* int ad */ 1, 218 /* int nms */ 1, 219 /* int ndf */ 1, 220 /* int fi */ 1, 221 /* int cc */ '.', 222 /* int c2 */ '\'', 223 /* int ohc */ OHC, 224 /* int tdelim */ IMP, 225 #ifdef NROFF 226 /* int hyf */ 0, 227 #else 228 /* int hyf */ 1, 229 #endif 230 /* int hyoff */ 0, 231 /* int hyalg */ ORIGINAL, /* Default hyphenation style (jaap)*/ 232 /* int hyalg1 */ ORIGINAL, 233 /* int thresh */ THRESH, /* now part of environment (jaap) */ 234 /* int un1 */ -1, 235 /* int tabc */ 0, 236 /* int dotc */ '.', 237 /* int adsp */ 0, 238 /* int adrem */ 0, 239 /* int lastl */ 0, 240 /* int nel */ 0, 241 /* int admod */ 0, 242 /* tchar *wordp */ 0, 243 /* int spflg */ 0, /* probably to indicate space after punctuation needed */ 244 /* tchar *linep */ 0, 245 /* tchar *wdend */ 0, 246 /* tchar *wdstart */ 0, 247 /* int wne */ 0, 248 /* int ne */ 0, 249 /* int nc */ 0, 250 /* int nb */ 0, 251 /* int lnmod */ 0, 252 /* int nwd */ 0, 253 /* int nn */ 0, 254 /* int ni */ 0, 255 /* int ul */ 0, 256 /* int cu */ 0, 257 /* int ce */ 0, 258 /* int in */ 0, 259 /* int in1 */ 0, 260 /* int un */ 0, 261 /* int wch */ 0, 262 /* int pendt */ 0, 263 /* tchar *pendw */ (tchar *)0, 264 /* int pendnf */ 0, 265 /* int spread */ 0, 266 /* int it */ 0, 267 /* int itmac */ 0, 268 /* int lnsize */ LNSIZE, 269 }; 270