|
|
1.1 root 1: /*
2: * env.h
3: * Nroff/Troff.
4: * Environment header file.
5: */
6:
7: /* Buffer sizes. */
8: #define ENVSIZE 5 /* Total number of environments */
9: #define ENVS 3 /* Number of .ev environments */
10: #define ENVWIDTH 3 /* Special \w environment */
11: #define ENVTITLE 4 /* Special .tl environment */
12: #define ENVSTACK 20 /* Pushdown stack for environments */
13: #define LINSIZE 300 /* Size of line buffer */
14: #define NFONTS 50 /* Max number of fonts */
15: #define TABSIZE 20 /* Maximum number of tab stops */
16: #define WORSIZE 200 /* Size of word buffer */
17:
18: /*
19: * Tab stop entry.
20: */
21: typedef struct {
22: int t_pos; /* Tab position */
23: int t_jus; /* Type of justification */
24: } TAB;
25:
26: /*
27: * Environments.
28: */
29: typedef struct {
30: int e_adj; /* Adjust justification type */
31: int e_adm; /* Adjust mode */
32: char e_ccc; /* Current control character */
33: int e_cec; /* Count for center command */
34: int e_csz; /* Constant character size */
35: int e_curfont; /* Current font */
36: int e_enb; /* Enbolden by this amount */
37: int e_fcsz[NFONTS]; /* Font character size */
38: int e_fill; /* Fill mode */
39: char e_fon[2]; /* Font name */
40: unsigned char *e_fonwidt; /* Current font width table */
41: int e_fpsz[NFONTS]; /* Font pointsizes */
42: char e_hic; /* Hyphenation indicator character */
43: int e_hyp; /* Hyphenation mode */
44: int e_hypf; /* Hyphenation of last word flag */
45: int e_ind; /* Indent */
46: int e_inpltrc; /* Input line trap count */
47: char e_inptrap[2]; /* Input line trap */
48: char e_ldc; /* Leader dot character */
49: int e_lgm; /* Ligature mode */
50: CODE e_linebuf[LINSIZE]; /* Line buffer */
51: int e_llindir; /* Last directive count */
52: CODE *e_llinptr; /* Last line pointer */
53: int e_llinsiz; /* Last line size */
54: int e_lln; /* Line length */
55: int e_lmn; /* Line number multiple */
56: int e_lni; /* Line number indent */
57: int e_lnn; /* Current line number */
58: int e_lns; /* Line number separation */
59: int e_lsp; /* Line spacing */
60: char e_ltabchr; /* Last tab character */
61: int e_mar; /* Margin separation */
62: char e_mrc; /* Margin character */
63: char e_mrch; /* Margin character here */
64: char e_nbc; /* No break character */
65: int e_nlindir; /* New directive count */
66: CODE *e_nlinptr; /* New line pointer */
67: int e_nlinsiz; /* New line size */
68: int e_nnc; /* Count for no number command */
69: char e_oldfon[2]; /* Last value of fon */
70: int e_oldind; /* Last value of ind */
71: int e_oldlln; /* Last value of lln */
72: int e_oldlsp; /* Last value of lsp */
73: int e_oldpsz; /* Last value of psz */
74: int e_oldtln; /* Last value of tln */
75: int e_oldvls; /* Last value of vls */
76: int e_posexls; /* Post extra line space */
77: int e_preexls; /* Pre extra line space */
78: int e_psz; /* Pointsize */
79: int e_spcnt; /* Space padding size */
80: int e_ssz; /* Space size */
81: int e_sszdiv; /* Space size divisor */
82: int e_sszmul; /* Space size multiplier */
83: long e_swddiv; /* Width table divisor */
84: long e_swdmul; /* Width table multiplier */
85: TAB e_tab[TABSIZE]; /* Tab table */
86: TAB *e_tabptr; /* Tab pointer */
87: char e_tbc; /* Tab character */
88: int e_tbs; /* Tab spacing */
89: int e_tfn; /* Tab font number */
90: int e_tif; /* Temporary indent flag */
91: int e_tin; /* Temporary indent */
92: CODE *e_tlinptr; /* Tab line pointer */
93: int e_tlinsiz; /* Tab line size */
94: int e_tln; /* Title length */
95: char e_tpc; /* Page character in title */
96: int e_ufn; /* Underline font number */
97: int e_ufp; /* Underline font previous */
98: int e_ulc; /* Count for underline command */
99: int e_vls; /* Vertical line spacing */
100: CODE e_wordbuf[WORSIZE]; /* Word buffer */
101: } ENV;
102:
103: /*
104: * Variables in current environment.
105: */
106: #define adj env.e_adj /* Adjust justification type */
107: #define adm env.e_adm /* Adjust mode */
108: #define ccc env.e_ccc /* Current control character */
109: #define cec env.e_cec /* Count for center command */
110: #define csz env.e_csz /* Constant character size */
111: #define curfont env.e_curfont /* Current font */
112: #define enb env.e_enb /* Enbolden by this amount */
113: #define fcsz env.e_fcsz /* Font character size */
114: #define fill env.e_fill /* Fill mode */
115: #define fon env.e_fon /* Font name */
116: #define fonwidt env.e_fonwidt /* Current font width table */
117: #define fpsz env.e_fpsz /* Font pointsizes */
118: #define hic env.e_hic /* Hyphenation indicator character */
119: #define hyp env.e_hyp /* Hyphenation mode */
120: #define hypf env.e_hypf /* Hyphenation of last word flag */
121: #define ind env.e_ind /* Indent */
122: #define inpltrc env.e_inpltrc /* Input line trap count */
123: #define inptrap env.e_inptrap /* Input line trap */
124: #define ldc env.e_ldc /* Leader dot character */
125: #define lgm env.e_lgm /* Ligature mode */
126: #define linebuf env.e_linebuf /* Line buffer */
127: #define llindir env.e_llindir /* Last directive count */
128: #define llinptr env.e_llinptr /* Last line pointer */
129: #define llinsiz env.e_llinsiz /* Last line size */
130: #define lln env.e_lln /* Line length */
131: #define lmn env.e_lmn /* Line number multiple */
132: #define lni env.e_lni /* Line number indent */
133: #define lnn env.e_lnn /* Current line number */
134: #define lns env.e_lns /* Line number separation */
135: #define lsp env.e_lsp /* Line spacing */
136: #define ltabchr env.e_ltabchr /* Last tab character */
137: #define mar env.e_mar /* Margin separation */
138: #define mrc env.e_mrc /* Margin character */
139: #define mrch env.e_mrch /* Margin character here */
140: #define nbc env.e_nbc /* No break character */
141: #define nlindir env.e_nlindir /* Current directive count */
142: #define nlinptr env.e_nlinptr /* New line pointer */
143: #define nlinsiz env.e_nlinsiz /* New line size */
144: #define nnc env.e_nnc /* Count for no number command */
145: #define oldfon env.e_oldfon /* Last value of fon */
146: #define oldind env.e_oldind /* Last value of ind */
147: #define oldlln env.e_oldlln /* Last value of lln */
148: #define oldlsp env.e_oldlsp /* Last value of lsp */
149: #define oldpsz env.e_oldpsz /* Last value of psz */
150: #define oldtln env.e_oldtln /* Last value of tln */
151: #define oldvls env.e_oldvls /* Last value of vls */
152: #define posexls env.e_posexls /* Post extra line space */
153: #define preexls env.e_preexls /* Pre extra line space */
154: #define psz env.e_psz /* Pointsize */
155: #define spcnt env.e_spcnt /* Space padding size */
156: #define ssz env.e_ssz /* Space size */
157: #define sszdiv env.e_sszdiv /* Space size divisor */
158: #define sszmul env.e_sszmul /* Space size multiplier */
159: #define swddiv env.e_swddiv /* Width table divisor */
160: #define swdmul env.e_swdmul /* Width table multiplier */
161: #define tab env.e_tab /* Tab table */
162: #define tabptr env.e_tabptr /* Tab pointer */
163: #define tbc env.e_tbc /* Tab character */
164: #define tbs env.e_tbs /* Tab spacing */
165: #define tfn env.e_tfn /* Tab font number */
166: #define tif env.e_tif /* Temporary indent flag */
167: #define tin env.e_tin /* Temporary indent */
168: #define tlinptr env.e_tlinptr /* Tab line pointer */
169: #define tlinsiz env.e_tlinsiz /* Tab line size */
170: #define tln env.e_tln /* Title length */
171: #define tpc env.e_tpc /* Page character in title */
172: #define ufn env.e_ufn /* Underline font number */
173: #define ufp env.e_ufp /* Underline font previous */
174: #define ulc env.e_ulc /* Count for underline command */
175: #define vls env.e_vls /* Vertical line spacing */
176: #define wordbuf env.e_wordbuf /* Word buffer */
177:
178: /*
179: * Global variables.
180: */
181: extern ENV env; /* Current environment */
182: extern int envinit[ENVSIZE]; /* If initialized */
183: extern int envs; /* Environment stack index */
184: extern int envstak[ENVSTACK]; /* Environment stack */
185:
186: /* end of env.h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.