Commit | Line | Data |
---|---|---|
a1f824e5 KA |
1 | .ds f. intro.2 |
2 | .sh 1 Variables | |
3 | .pp | |
4 | Many variables which are used to describe the terminal environment | |
5 | are available to the programmer. They are: | |
6 | .TS | |
7 | .if \n+(b.=1 .nr d. \n(.c-\n(c.-1 | |
8 | .de 35 | |
9 | .ps \n(.s | |
10 | .vs \n(.vu | |
11 | .in \n(.iu | |
12 | .if \n(.u .fi | |
13 | .if \n(.j .ad | |
14 | .if \n(.j=0 .na | |
15 | .. | |
16 | .nf | |
17 | .nr #~ 0 | |
18 | .if n .nr #~ 0.6n | |
19 | .ds #d .d | |
20 | .if \(ts\n(.z\(ts\(ts .ds #d nl | |
21 | .fc | |
22 | .nr 33 \n(.s | |
23 | .rm 80 81 82 | |
24 | .nr 34 \n(.lu | |
25 | .eo | |
26 | .am 82 | |
27 | .br | |
28 | .di a+ | |
29 | .35 | |
30 | .ft \n(.f | |
31 | .ll 50nn | |
32 | .if \n(.l<\n(82 .ll \n(82u | |
33 | .in 0 | |
34 | .fi | |
35 | current version of the screen (terminal screen). | |
36 | .br | |
37 | .di | |
38 | .nr a| \n(dn | |
39 | .nr a- \n(dl | |
40 | .. | |
41 | .ec \ | |
42 | .eo | |
43 | .am 82 | |
44 | .br | |
45 | .di b+ | |
46 | .35 | |
47 | .ft \n(.f | |
48 | .ll 50nn | |
49 | .if \n(.l<\n(82 .ll \n(82u | |
50 | .in 0 | |
51 | standard screen. Most updates are usually done here. | |
52 | .br | |
53 | .di | |
54 | .nr b| \n(dn | |
55 | .nr b- \n(dl | |
56 | .. | |
57 | .ec \ | |
58 | .eo | |
59 | .am 82 | |
60 | .br | |
61 | .di c+ | |
62 | .35 | |
63 | .ft \n(.f | |
64 | .ll 50nn | |
65 | .if \n(.l<\n(82 .ll \n(82u | |
66 | .in 0 | |
67 | default terminal type if type cannot be determined | |
68 | .br | |
69 | .di | |
70 | .nr c| \n(dn | |
71 | .nr c- \n(dl | |
72 | .. | |
73 | .ec \ | |
74 | .eo | |
75 | .am 82 | |
76 | .br | |
77 | .di d+ | |
78 | .35 | |
79 | .ft \n(.f | |
80 | .ll 50nn | |
81 | .if \n(.l<\n(82 .ll \n(82u | |
82 | .in 0 | |
83 | use the terminal specification in \fIDef\*_term\fR as terminal, | |
84 | irrelevant of real terminal type | |
85 | .br | |
86 | .di | |
87 | .nr d| \n(dn | |
88 | .nr d- \n(dl | |
89 | .. | |
90 | .ec \ | |
91 | .eo | |
92 | .am 82 | |
93 | .br | |
94 | .di e+ | |
95 | .35 | |
96 | .ft \n(.f | |
97 | .ll 50nn | |
98 | .if \n(.l<\n(82 .ll \n(82u | |
99 | .in 0 | |
100 | full name of the current terminal. | |
101 | .br | |
102 | .di | |
103 | .nr e| \n(dn | |
104 | .nr e- \n(dl | |
105 | .. | |
106 | .ec \ | |
107 | .eo | |
108 | .am 82 | |
109 | .br | |
110 | .di f+ | |
111 | .35 | |
112 | .ft \n(.f | |
113 | .ll 50nn | |
114 | .if \n(.l<\n(82 .ll \n(82u | |
115 | .in 0 | |
116 | number of lines on the terminal | |
117 | .br | |
118 | .di | |
119 | .nr f| \n(dn | |
120 | .nr f- \n(dl | |
121 | .. | |
122 | .ec \ | |
123 | .eo | |
124 | .am 82 | |
125 | .br | |
126 | .di g+ | |
127 | .35 | |
128 | .ft \n(.f | |
129 | .ll 50nn | |
130 | .if \n(.l<\n(82 .ll \n(82u | |
131 | .in 0 | |
132 | number of columns on the terminal | |
133 | .br | |
134 | .di | |
135 | .nr g| \n(dn | |
136 | .nr g- \n(dl | |
137 | .. | |
138 | .ec \ | |
139 | .eo | |
140 | .am 82 | |
141 | .br | |
142 | .di h+ | |
143 | .35 | |
144 | .ft \n(.f | |
145 | .ll 50nn | |
146 | .if \n(.l<\n(82 .ll \n(82u | |
147 | .in 0 | |
148 | error flag returned by routines on a fail. | |
149 | .br | |
150 | .di | |
151 | .nr h| \n(dn | |
152 | .nr h- \n(dl | |
153 | .. | |
154 | .ec \ | |
155 | .eo | |
156 | .am 82 | |
157 | .br | |
158 | .di i+ | |
159 | .35 | |
160 | .ft \n(.f | |
161 | .ll 50nn | |
162 | .if \n(.l<\n(82 .ll \n(82u | |
163 | .in 0 | |
164 | error flag returned by routines when things go right. | |
165 | .br | |
166 | .di | |
167 | .nr i| \n(dn | |
168 | .nr i- \n(dl | |
169 | .. | |
170 | .ec \ | |
171 | .35 | |
172 | .nf | |
173 | .ll \n(34u | |
174 | .nr 80 0 | |
175 | .nr 38 \w\ 2type\ 2 | |
176 | .if \n(80<\n(38 .nr 80 \n(38 | |
177 | .nr 38 \w\ 2WINDOW *\ 2 | |
178 | .if \n(80<\n(38 .nr 80 \n(38 | |
179 | .nr 38 \w\ 2WINDOW *\ 2 | |
180 | .if \n(80<\n(38 .nr 80 \n(38 | |
181 | .nr 38 \w\ 2char *\ 2 | |
182 | .if \n(80<\n(38 .nr 80 \n(38 | |
183 | .nr 38 \w\ 2bool\ 2 | |
184 | .if \n(80<\n(38 .nr 80 \n(38 | |
185 | .nr 38 \w\ 2char *\ 2 | |
186 | .if \n(80<\n(38 .nr 80 \n(38 | |
187 | .nr 38 \w\ 2int\ 2 | |
188 | .if \n(80<\n(38 .nr 80 \n(38 | |
189 | .nr 38 \w\ 2int\ 2 | |
190 | .if \n(80<\n(38 .nr 80 \n(38 | |
191 | .nr 38 \w\ 2int\ 2 | |
192 | .if \n(80<\n(38 .nr 80 \n(38 | |
193 | .nr 38 \w\ 2int\ 2 | |
194 | .if \n(80<\n(38 .nr 80 \n(38 | |
195 | .80 | |
196 | .rm 80 | |
197 | .nr 38 6mn | |
198 | .if \n(80<\n(38 .nr 80 \n(38 | |
199 | .nr 81 0 | |
200 | .nr 38 \w\ 2name\ 2 | |
201 | .if \n(81<\n(38 .nr 81 \n(38 | |
202 | .nr 38 \w\ 2curscr\ 2 | |
203 | .if \n(81<\n(38 .nr 81 \n(38 | |
204 | .nr 38 \w\ 2stdscr\ 2 | |
205 | .if \n(81<\n(38 .nr 81 \n(38 | |
206 | .nr 38 \w\ 2Def\*_term\ 2 | |
207 | .if \n(81<\n(38 .nr 81 \n(38 | |
208 | .nr 38 \w\ 2My\*_term\ 2 | |
209 | .if \n(81<\n(38 .nr 81 \n(38 | |
210 | .nr 38 \w\ 2ttytype\ 2 | |
211 | .if \n(81<\n(38 .nr 81 \n(38 | |
212 | .nr 38 \w\ 2LINES\ 2 | |
213 | .if \n(81<\n(38 .nr 81 \n(38 | |
214 | .nr 38 \w\ 2COLS\ 2 | |
215 | .if \n(81<\n(38 .nr 81 \n(38 | |
216 | .nr 38 \w\ 2ERR\ 2 | |
217 | .if \n(81<\n(38 .nr 81 \n(38 | |
218 | .nr 38 \w\ 2OK\ 2 | |
219 | .if \n(81<\n(38 .nr 81 \n(38 | |
220 | .81 | |
221 | .rm 81 | |
222 | .nr 38 8nn | |
223 | .if \n(81<\n(38 .nr 81 \n(38 | |
224 | .nr 82 0 | |
225 | .nr 38 \w\ 2description\ 2 | |
226 | .if \n(82<\n(38 .nr 82 \n(38 | |
227 | .82 | |
228 | .rm 82 | |
229 | .nr 38 \n(a- | |
230 | .if \n(82<\n(38 .nr 82 \n(38 | |
231 | .nr 38 \n(b- | |
232 | .if \n(82<\n(38 .nr 82 \n(38 | |
233 | .nr 38 \n(c- | |
234 | .if \n(82<\n(38 .nr 82 \n(38 | |
235 | .nr 38 \n(d- | |
236 | .if \n(82<\n(38 .nr 82 \n(38 | |
237 | .nr 38 \n(e- | |
238 | .if \n(82<\n(38 .nr 82 \n(38 | |
239 | .nr 38 \n(f- | |
240 | .if \n(82<\n(38 .nr 82 \n(38 | |
241 | .nr 38 \n(g- | |
242 | .if \n(82<\n(38 .nr 82 \n(38 | |
243 | .nr 38 \n(h- | |
244 | .if \n(82<\n(38 .nr 82 \n(38 | |
245 | .nr 38 \n(i- | |
246 | .if \n(82<\n(38 .nr 82 \n(38 | |
247 | .nr 38 50nn | |
248 | .if \n(82<\n(38 .nr 82 \n(38 | |
249 | .35 | |
250 | .nf | |
251 | .ll \n(34u | |
252 | .nr 38 0+\n(80+\n(81+\n(82 | |
253 | .nr 38 \n(.l-\n(38 | |
254 | .nr 38 \n(38/6 | |
255 | .if \n(38<0 .nr 38 0 | |
256 | .nr 79 0 | |
257 | .nr 40 \n(79+(0*\n(38) | |
258 | .nr 80 +\n(40 | |
259 | .nr 41 \n(80+(3*\n(38) | |
260 | .nr 81 +\n(41 | |
261 | .nr 42 \n(81+(3*\n(38) | |
262 | .nr 82 +\n(42 | |
263 | .nr TW \n(82 | |
264 | .if t .if (\n(TW+\n(.o)>7.65i .tm Table at line 39 file intro.2 is too wide - \n(TW units | |
265 | .fc \ 2 \ 3 | |
266 | .nr #T 0-1 | |
267 | .nr #a 0-1 | |
268 | .eo | |
269 | .de T# | |
270 | .ds #d .d | |
271 | .if \(ts\n(.z\(ts\(ts .ds #d nl | |
272 | .mk ## | |
273 | .nr ## -1v | |
274 | .ls 1 | |
275 | .ls | |
276 | .. | |
277 | .ec | |
278 | .ta \n(80u \n(81u \n(82u | |
279 | .nr 31 \n(.f | |
280 | .nr 35 1m | |
281 | \&\h'|\n(40u'\ 2type\ 3\ 2\h'|\n(41u'\ 2name\ 3\ 2\h'|\n(42u'\ 2description\ 3\ 2 | |
282 | .nr 36 \n(.v | |
283 | .vs \n(.vu-\n(.sp | |
284 | \h'|0'\s\n(33\l'|\n(TWu\(ul'\s0 | |
285 | .vs \n(36u | |
286 | .ne \n(a|u+\n(.Vu | |
287 | .if (\n(a|+\n(#^-1v)>\n(#- .nr #- +(\n(a|+\n(#^-\n(#--1v) | |
288 | .ta \n(80u \n(81u \n(82u | |
289 | .nr 31 \n(.f | |
290 | .nr 35 1m | |
291 | \&\h'|\n(40u'\ 2WINDOW *\ 3\ 2\h'|\n(41u'\ 2curscr\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
292 | .mk ## | |
293 | .nr 31 \n(## | |
294 | .sp |\n(##u-1v | |
295 | .nr 37 \n(42u | |
296 | .in +\n(37u | |
297 | .a+ | |
298 | .in -\n(37u | |
299 | .mk 32 | |
300 | .if \n(32>\n(31 .nr 31 \n(32 | |
301 | .sp |\n(31u | |
302 | .ne \n(b|u+\n(.Vu | |
303 | .if (\n(b|+\n(#^-1v)>\n(#- .nr #- +(\n(b|+\n(#^-\n(#--1v) | |
304 | .ta \n(80u \n(81u \n(82u | |
305 | .nr 31 \n(.f | |
306 | .nr 35 1m | |
307 | \&\h'|\n(40u'\ 2WINDOW *\ 3\ 2\h'|\n(41u'\ 2stdscr\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
308 | .mk ## | |
309 | .nr 31 \n(## | |
310 | .sp |\n(##u-1v | |
311 | .nr 37 \n(42u | |
312 | .in +\n(37u | |
313 | .b+ | |
314 | .in -\n(37u | |
315 | .mk 32 | |
316 | .if \n(32>\n(31 .nr 31 \n(32 | |
317 | .sp |\n(31u | |
318 | .ne \n(c|u+\n(.Vu | |
319 | .if (\n(c|+\n(#^-1v)>\n(#- .nr #- +(\n(c|+\n(#^-\n(#--1v) | |
320 | .ta \n(80u \n(81u \n(82u | |
321 | .nr 31 \n(.f | |
322 | .nr 35 1m | |
323 | \&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2Def\*_term\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
324 | .mk ## | |
325 | .nr 31 \n(## | |
326 | .sp |\n(##u-1v | |
327 | .nr 37 \n(42u | |
328 | .in +\n(37u | |
329 | .c+ | |
330 | .in -\n(37u | |
331 | .mk 32 | |
332 | .if \n(32>\n(31 .nr 31 \n(32 | |
333 | .sp |\n(31u | |
334 | .ne \n(d|u+\n(.Vu | |
335 | .if (\n(d|+\n(#^-1v)>\n(#- .nr #- +(\n(d|+\n(#^-\n(#--1v) | |
336 | .ta \n(80u \n(81u \n(82u | |
337 | .nr 31 \n(.f | |
338 | .nr 35 1m | |
339 | \&\h'|\n(40u'\ 2bool\ 3\ 2\h'|\n(41u'\ 2My\*_term\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
340 | .mk ## | |
341 | .nr 31 \n(## | |
342 | .sp |\n(##u-1v | |
343 | .nr 37 \n(42u | |
344 | .in +\n(37u | |
345 | .d+ | |
346 | .in -\n(37u | |
347 | .mk 32 | |
348 | .if \n(32>\n(31 .nr 31 \n(32 | |
349 | .sp |\n(31u | |
350 | .ne \n(e|u+\n(.Vu | |
351 | .if (\n(e|+\n(#^-1v)>\n(#- .nr #- +(\n(e|+\n(#^-\n(#--1v) | |
352 | .ta \n(80u \n(81u \n(82u | |
353 | .nr 31 \n(.f | |
354 | .nr 35 1m | |
355 | \&\h'|\n(40u'\ 2char *\ 3\ 2\h'|\n(41u'\ 2ttytype\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
356 | .mk ## | |
357 | .nr 31 \n(## | |
358 | .sp |\n(##u-1v | |
359 | .nr 37 \n(42u | |
360 | .in +\n(37u | |
361 | .e+ | |
362 | .in -\n(37u | |
363 | .mk 32 | |
364 | .if \n(32>\n(31 .nr 31 \n(32 | |
365 | .sp |\n(31u | |
366 | .ne \n(f|u+\n(.Vu | |
367 | .if (\n(f|+\n(#^-1v)>\n(#- .nr #- +(\n(f|+\n(#^-\n(#--1v) | |
368 | .ta \n(80u \n(81u \n(82u | |
369 | .nr 31 \n(.f | |
370 | .nr 35 1m | |
371 | \&\h'|\n(40u'\ 2int\ 3\ 2\h'|\n(41u'\ 2LINES\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
372 | .mk ## | |
373 | .nr 31 \n(## | |
374 | .sp |\n(##u-1v | |
375 | .nr 37 \n(42u | |
376 | .in +\n(37u | |
377 | .f+ | |
378 | .in -\n(37u | |
379 | .mk 32 | |
380 | .if \n(32>\n(31 .nr 31 \n(32 | |
381 | .sp |\n(31u | |
382 | .ne \n(g|u+\n(.Vu | |
383 | .if (\n(g|+\n(#^-1v)>\n(#- .nr #- +(\n(g|+\n(#^-\n(#--1v) | |
384 | .ta \n(80u \n(81u \n(82u | |
385 | .nr 31 \n(.f | |
386 | .nr 35 1m | |
387 | \&\h'|\n(40u'\ 2int\ 3\ 2\h'|\n(41u'\ 2COLS\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
388 | .mk ## | |
389 | .nr 31 \n(## | |
390 | .sp |\n(##u-1v | |
391 | .nr 37 \n(42u | |
392 | .in +\n(37u | |
393 | .g+ | |
394 | .in -\n(37u | |
395 | .mk 32 | |
396 | .if \n(32>\n(31 .nr 31 \n(32 | |
397 | .sp |\n(31u | |
398 | .ne \n(h|u+\n(.Vu | |
399 | .if (\n(h|+\n(#^-1v)>\n(#- .nr #- +(\n(h|+\n(#^-\n(#--1v) | |
400 | .ta \n(80u \n(81u \n(82u | |
401 | .nr 31 \n(.f | |
402 | .nr 35 1m | |
403 | \&\h'|\n(40u'\ 2int\ 3\ 2\h'|\n(41u'\ 2ERR\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
404 | .mk ## | |
405 | .nr 31 \n(## | |
406 | .sp |\n(##u-1v | |
407 | .nr 37 \n(42u | |
408 | .in +\n(37u | |
409 | .h+ | |
410 | .in -\n(37u | |
411 | .mk 32 | |
412 | .if \n(32>\n(31 .nr 31 \n(32 | |
413 | .sp |\n(31u | |
414 | .ne \n(i|u+\n(.Vu | |
415 | .if (\n(i|+\n(#^-1v)>\n(#- .nr #- +(\n(i|+\n(#^-\n(#--1v) | |
416 | .ta \n(80u \n(81u \n(82u | |
417 | .nr 31 \n(.f | |
418 | .nr 35 1m | |
419 | \&\h'|\n(40u'\ 2int\ 3\ 2\h'|\n(41u'\ 2OK\ 3\ 2\h'|\n(42u'\ 2\ 3\ 2 | |
420 | .mk ## | |
421 | .nr 31 \n(## | |
422 | .sp |\n(##u-1v | |
423 | .nr 37 \n(42u | |
424 | .in +\n(37u | |
425 | .i+ | |
426 | .in -\n(37u | |
427 | .mk 32 | |
428 | .if \n(32>\n(31 .nr 31 \n(32 | |
429 | .sp |\n(31u | |
430 | .fc | |
431 | .nr T. 1 | |
432 | .T# 1 | |
433 | .35 | |
434 | .rm a+ | |
435 | .rm b+ | |
436 | .rm c+ | |
437 | .rm d+ | |
438 | .rm e+ | |
439 | .rm f+ | |
440 | .rm g+ | |
441 | .rm h+ | |
442 | .rm i+ | |
443 | .TE | |
444 | .if \n-(b.=0 .nr c. \n(.c-\n(d.-34 | |
445 | .pp | |
446 | There are also several | |
447 | .q #define | |
448 | constants and types | |
449 | which are of general usefulness: | |
450 | .sp | |
451 | .ev 1 | |
452 | .ta 11n | |
453 | .(b L | |
454 | .nf | |
455 | reg storage class ``register'' (e.g., \fIreg int i;\fR\|) | |
456 | bool boolean type, actually a ``char'' (e.g., \fIbool doneit;\fR\|) | |
457 | TRUE boolean ``true'' flag (1). | |
458 | FALSE boolean ``false'' flag (0). | |
459 | .fi | |
460 | .ev | |
461 | .)b | |
462 | .lp |