6 char termtab
[NS
]; /* term type added in ptinit() */
7 char fontdir
[NS
]; /* added in casefp; not used by nroff */
8 char devname
[20]; /* default output device */
29 int alphabet
= 256; /* latin-1 */
33 char nextf
[NS
] = TMACDIR
"/tmac.";
38 int fc
= IMP
; /* field character */
47 int smnt
= 0; /* beginning of special fonts */
48 int ascii
= 0; /* ascii normally off for troff, on for nroff; -a turns on */
50 int pnlist
[NPN
] = { -1 };
64 C(PAIR('d', 's'), caseds
),
65 C(PAIR('a', 's'), caseas
),
66 C(PAIR('s', 'p'), casesp
),
67 C(PAIR('f', 't'), caseft
),
68 C(PAIR('p', 's'), caseps
),
69 C(PAIR('v', 's'), casevs
),
70 C(PAIR('n', 'r'), casenr
),
71 C(PAIR('i', 'f'), caseif
),
72 C(PAIR('i', 'e'), caseie
),
73 C(PAIR('e', 'l'), caseel
),
74 C(PAIR('p', 'o'), casepo
),
75 C(PAIR('t', 'l'), casetl
),
76 C(PAIR('t', 'm'), casetm
),
77 C(PAIR('f', 'm'), casefm
),
78 C(PAIR('b', 'p'), casebp
),
79 C(PAIR('c', 'h'), casech
),
80 C(PAIR('p', 'n'), casepn
),
81 C(PAIR('b', 'r'), tbreak
),
82 C(PAIR('t', 'i'), caseti
),
83 C(PAIR('n', 'e'), casene
),
84 C(PAIR('n', 'f'), casenf
),
85 C(PAIR('c', 'e'), casece
),
86 C(PAIR('f', 'i'), casefi
),
87 C(PAIR('i', 'n'), casein
),
88 C(PAIR('l', 'l'), casell
),
89 C(PAIR('n', 's'), casens
),
90 C(PAIR('m', 'k'), casemk
),
91 C(PAIR('r', 't'), casert
),
92 C(PAIR('a', 'm'), caseam
),
93 C(PAIR('d', 'e'), casede
),
94 C(PAIR('d', 'i'), casedi
),
95 C(PAIR('d', 'a'), caseda
),
96 C(PAIR('w', 'h'), casewh
),
97 C(PAIR('d', 't'), casedt
),
98 C(PAIR('i', 't'), caseit
),
99 C(PAIR('r', 'm'), caserm
),
100 C(PAIR('r', 'r'), caserr
),
101 C(PAIR('r', 'n'), casern
),
102 C(PAIR('a', 'd'), casead
),
103 C(PAIR('r', 's'), casers
),
104 C(PAIR('n', 'a'), casena
),
105 C(PAIR('p', 'l'), casepl
),
106 C(PAIR('t', 'a'), caseta
),
107 C(PAIR('t', 'r'), casetr
),
108 C(PAIR('u', 'l'), caseul
),
109 C(PAIR('c', 'u'), casecu
),
110 C(PAIR('l', 't'), caselt
),
111 C(PAIR('n', 'x'), casenx
),
112 C(PAIR('s', 'o'), caseso
),
113 C(PAIR('i', 'g'), caseig
),
114 C(PAIR('t', 'c'), casetc
),
115 C(PAIR('f', 'c'), casefc
),
116 C(PAIR('e', 'c'), caseec
),
117 C(PAIR('e', 'o'), caseeo
),
118 C(PAIR('l', 'c'), caselc
),
119 C(PAIR('e', 'v'), caseev
),
120 C(PAIR('r', 'd'), caserd
),
121 C(PAIR('a', 'b'), caseab
),
122 C(PAIR('f', 'l'), casefl
),
123 C(PAIR('e', 'x'), caseex
),
124 C(PAIR('s', 's'), casess
),
125 C(PAIR('f', 'p'), casefp
),
126 C(PAIR('c', 's'), casecs
),
127 C(PAIR('b', 'd'), casebd
),
128 C(PAIR('l', 'g'), caselg
),
129 C(PAIR('h', 'c'), casehc
),
130 C(PAIR('h', 'y'), casehy
),
131 C(PAIR('n', 'h'), casenh
),
132 C(PAIR('n', 'm'), casenm
),
133 C(PAIR('n', 'n'), casenn
),
134 C(PAIR('s', 'v'), casesv
),
135 C(PAIR('o', 's'), caseos
),
136 C(PAIR('l', 's'), casels
),
137 C(PAIR('c', 'c'), casecc
),
138 C(PAIR('c', '2'), casec2
),
139 C(PAIR('e', 'm'), caseem
),
140 C(PAIR('a', 'f'), caseaf
),
141 C(PAIR('h', 'a'), caseha
),
142 C(PAIR('h', 'w'), casehw
),
143 C(PAIR('m', 'c'), casemc
),
144 C(PAIR('p', 'm'), casepm
),
145 C(PAIR('p', 'i'), casepi
),
146 C(PAIR('u', 'f'), caseuf
),
147 C(PAIR('p', 'c'), casepc
),
148 C(PAIR('h', 't'), caseht
),
149 C(PAIR('c', 'f'), casecf
),
150 C(PAIR('s', 'y'), casesy
),
151 C(PAIR('l', 'f'), caself
),
152 C(PAIR('p', 't'), casept
),
153 C(PAIR('g', 'd'), casegd
),
160 * troff environment block
163 Env env
[NEV
] = { { /* this sets up env[0] */
164 /* int ics */ 0, /* insertion character space, set by .mc */
173 /* Tchar ic */ 0, /* insertion character (= margin character) */
174 /* int icf */ 0, /* insertion character flag */
175 /* Tchar chbits */ 0, /* size+font bits for current character */
176 /* Tchar spbits */ 0,
177 /* Tchar nmbits */ 0, /* size+font bits for number from .nm */
178 /* int apts */ PS
, /* actual point size -- as requested by user */
179 /* int apts1 */ PS
, /* need not match an existent size */
180 /* int pts */ PS
, /* hence, this is the size that really exists */
187 /* int nms */ 1, /* .nm multiplier */
188 /* int ndf */ 1, /* .nm separator */
189 /* int nmwid */ 3, /* max width of .nm numbers */
194 /* int tdelim */ IMP
,
197 /* int hyphalg */ HYPHALG
,
201 /* int adsp */ 0, /* add this much space to each padding point */
202 /* int adrem */ 0, /* excess space to add until it runs out */
203 /* int lastl */ 0, /* last text on current output line */
204 /* int nel */ 0, /* how much space left on current output line */
205 /* int admod */ 0, /* adjust mode */
206 /* Tchar *wordp */ 0,
207 /* int spflg */ 0, /* probably to indicate space after punctuation needed */
208 /* Tchar *linep */ 0,
209 /* Tchar *wdend */ 0,
210 /* Tchar *wdstart */ 0,
212 /* int ne */ 0, /* how much space taken on current output line */
213 /* int nc */ 0, /* #characters (incl blank) on output line */
215 /* int lnmod */ 0, /* line number mode, set by .nm */
216 /* int nwd */ 0, /* number of words on current output line */
217 /* int nn */ 0, /* from .nn command */
218 /* int ni */ 0, /* indent of .nm numbers, probably */
222 /* int in */ 0, /* indent and previous value */
224 /* int un */ 0, /* unindent of left margin in some way */
227 /* Tchar *pendw */ (Tchar
*)0,
230 /* int it */ 0, /* input trap count */
234 Env
*envp
= env
; /* start off in env 0 */
238 Stack
*frame
, *stk
, *ejl
;
242 int hflg
; /* used in nroff only */
243 int eqflg
; /* used in nroff only */
263 Tchar pbbuf
[NC
]; /* pushback buffer for arguments, \n, etc. */
264 Tchar
*pbp
= pbbuf
; /* next free slot in pbbuf */
265 Tchar
*lastpbp
= pbbuf
; /* pbp in previous stack frame */
274 Ushort trtab
[NTRTAB
];
315 int sfont
= FT
; /* appears to be "standard" font; used by .ul */
327 Wcache widcache
[NWIDCACHE
];
366 &c_dagger
, "dg", /* not in nroff?? */
373 Tchar (*makem
)(int i
);
374 Tchar (*setabs
)(void);
375 Tchar (*setch
)(int c
);
376 Tchar (*sethl
)(int k
);
377 Tchar (*setht
)(void);
378 Tchar (*setslant
)(void);
381 int (*findft
)(int i
);
382 int (*width
)(Tchar j
);
383 void (*mchbits
)(void);
384 void (*ptlead
)(void);
385 void (*ptout
)(Tchar i
);
386 void (*ptpause
)(void);
387 void (*setfont
)(int a
);