1 /*
2  * term.h
3  *
4  * XCurses Library
5  *
6  * **** THIS FILE IS MACHINE GENERATED.
7  * **** DO NOT EDIT THIS FILE.
8  *
9  * Copyright 1990, 1995 by Mortice Kern Systems Inc.  All rights reserved.
10  *
11  * $Header$
12  */
13 
14 #ifndef __term_h__
15 #define __term_h__	1
16 
17 #define _XOPEN_CURSES
18 
19 #ifndef NCCS
20 #include <termios.h>
21 #endif
22 #ifndef STDIN_FILENO
23 #include <sys/types.h>
24 #include <unistd.h>
25 #endif
26 
27 #define __TERM cur_term->
28 #define auto_left_margin               __TERM _bool[0]
29 #define auto_right_margin              __TERM _bool[1]
30 #define no_esc_ctlc                    __TERM _bool[2]
31 #define ceol_standout_glitch           __TERM _bool[3]
32 #define eat_newline_glitch             __TERM _bool[4]
33 #define erase_overstrike               __TERM _bool[5]
34 #define generic_type                   __TERM _bool[6]
35 #define hard_copy                      __TERM _bool[7]
36 #define has_meta_key                   __TERM _bool[8]
37 #define has_status_line                __TERM _bool[9]
38 #define insert_null_glitch             __TERM _bool[10]
39 #define memory_above                   __TERM _bool[11]
40 #define memory_below                   __TERM _bool[12]
41 #define move_insert_mode               __TERM _bool[13]
42 #define move_standout_mode             __TERM _bool[14]
43 #define over_strike                    __TERM _bool[15]
44 #define status_line_esc_ok             __TERM _bool[16]
45 #define dest_tabs_magic_smso           __TERM _bool[17]
46 #define tilde_glitch                   __TERM _bool[18]
47 #define transparent_underline          __TERM _bool[19]
48 #define xon_xoff                       __TERM _bool[20]
49 #define needs_xon_xoff                 __TERM _bool[21]
50 #define prtr_silent                    __TERM _bool[22]
51 #define hard_cursor                    __TERM _bool[23]
52 #define non_rev_rmcup                  __TERM _bool[24]
53 #define no_pad_char                    __TERM _bool[25]
54 #define non_dest_scroll_region         __TERM _bool[26]
55 #define can_change                     __TERM _bool[27]
56 #define back_color_erase               __TERM _bool[28]
57 #define hue_lightness_saturation       __TERM _bool[29]
58 #define col_addr_glitch                __TERM _bool[30]
59 #define cr_cancels_micro_mode          __TERM _bool[31]
60 #define has_print_wheel                __TERM _bool[32]
61 #define row_addr_glitch                __TERM _bool[33]
62 #define semi_auto_right_margin         __TERM _bool[34]
63 #define cpi_changes_res                __TERM _bool[35]
64 #define lpi_changes_res                __TERM _bool[36]
65 #define columns                        __TERM _num[0]
66 #define init_tabs                      __TERM _num[1]
67 #define lines                          __TERM _num[2]
68 #define lines_of_memory                __TERM _num[3]
69 #define magic_cookie_glitch            __TERM _num[4]
70 #define padding_baud_rate              __TERM _num[5]
71 #define virtual_terminal               __TERM _num[6]
72 #define width_status_line              __TERM _num[7]
73 #define num_labels                     __TERM _num[8]
74 #define label_height                   __TERM _num[9]
75 #define label_width                    __TERM _num[10]
76 #define max_attributes                 __TERM _num[11]
77 #define maximum_windows                __TERM _num[12]
78 #define max_colors                     __TERM _num[13]
79 #define max_pairs                      __TERM _num[14]
80 #define no_color_video                 __TERM _num[15]
81 #define buffer_capacity                __TERM _num[16]
82 #define dot_vert_spacing               __TERM _num[17]
83 #define dot_horz_spacing               __TERM _num[18]
84 #define max_micro_address              __TERM _num[19]
85 #define max_micro_jump                 __TERM _num[20]
86 #define micro_char_size                __TERM _num[21]
87 #define micro_line_size                __TERM _num[22]
88 #define number_of_pins                 __TERM _num[23]
89 #define output_res_char                __TERM _num[24]
90 #define output_res_line                __TERM _num[25]
91 #define output_res_horz_inch           __TERM _num[26]
92 #define output_res_vert_inch           __TERM _num[27]
93 #define print_rate                     __TERM _num[28]
94 #define wide_char_size                 __TERM _num[29]
95 #define buttons                        __TERM _num[30]
96 #define bit_image_entwining            __TERM _num[31]
97 #define bit_image_type                 __TERM _num[32]
98 #define back_tab                       __TERM _str[0]
99 #define bell                           __TERM _str[1]
100 #define carriage_return                __TERM _str[2]
101 #define change_scroll_region           __TERM _str[3]
102 #define clear_all_tabs                 __TERM _str[4]
103 #define clear_screen                   __TERM _str[5]
104 #define clr_eol                        __TERM _str[6]
105 #define clr_eos                        __TERM _str[7]
106 #define column_address                 __TERM _str[8]
107 #define command_character              __TERM _str[9]
108 #define cursor_address                 __TERM _str[10]
109 #define cursor_down                    __TERM _str[11]
110 #define cursor_home                    __TERM _str[12]
111 #define cursor_invisible               __TERM _str[13]
112 #define cursor_left                    __TERM _str[14]
113 #define cursor_mem_address             __TERM _str[15]
114 #define cursor_normal                  __TERM _str[16]
115 #define cursor_right                   __TERM _str[17]
116 #define cursor_to_ll                   __TERM _str[18]
117 #define cursor_up                      __TERM _str[19]
118 #define cursor_visible                 __TERM _str[20]
119 #define delete_character               __TERM _str[21]
120 #define delete_line                    __TERM _str[22]
121 #define dis_status_line                __TERM _str[23]
122 #define down_half_line                 __TERM _str[24]
123 #define enter_alt_charset_mode         __TERM _str[25]
124 #define enter_blink_mode               __TERM _str[26]
125 #define enter_bold_mode                __TERM _str[27]
126 #define enter_ca_mode                  __TERM _str[28]
127 #define enter_delete_mode              __TERM _str[29]
128 #define enter_dim_mode                 __TERM _str[30]
129 #define enter_insert_mode              __TERM _str[31]
130 #define enter_secure_mode              __TERM _str[32]
131 #define enter_protected_mode           __TERM _str[33]
132 #define enter_reverse_mode             __TERM _str[34]
133 #define enter_standout_mode            __TERM _str[35]
134 #define enter_underline_mode           __TERM _str[36]
135 #define erase_chars                    __TERM _str[37]
136 #define exit_alt_charset_mode          __TERM _str[38]
137 #define exit_attribute_mode            __TERM _str[39]
138 #define exit_ca_mode                   __TERM _str[40]
139 #define exit_delete_mode               __TERM _str[41]
140 #define exit_insert_mode               __TERM _str[42]
141 #define exit_standout_mode             __TERM _str[43]
142 #define exit_underline_mode            __TERM _str[44]
143 #define flash_screen                   __TERM _str[45]
144 #define form_feed                      __TERM _str[46]
145 #define from_status_line               __TERM _str[47]
146 #define init_1string                   __TERM _str[48]
147 #define init_2string                   __TERM _str[49]
148 #define init_3string                   __TERM _str[50]
149 #define init_file                      __TERM _str[51]
150 #define insert_character               __TERM _str[52]
151 #define insert_line                    __TERM _str[53]
152 #define insert_padding                 __TERM _str[54]
153 #define key_backspace                  __TERM _str[55]
154 #define key_catab                      __TERM _str[56]
155 #define key_clear                      __TERM _str[57]
156 #define key_ctab                       __TERM _str[58]
157 #define key_dc                         __TERM _str[59]
158 #define key_dl                         __TERM _str[60]
159 #define key_down                       __TERM _str[61]
160 #define key_eic                        __TERM _str[62]
161 #define key_eol                        __TERM _str[63]
162 #define key_eos                        __TERM _str[64]
163 #define key_f0                         __TERM _str[65]
164 #define key_f1                         __TERM _str[66]
165 #define key_f10                        __TERM _str[67]
166 #define key_f2                         __TERM _str[68]
167 #define key_f3                         __TERM _str[69]
168 #define key_f4                         __TERM _str[70]
169 #define key_f5                         __TERM _str[71]
170 #define key_f6                         __TERM _str[72]
171 #define key_f7                         __TERM _str[73]
172 #define key_f8                         __TERM _str[74]
173 #define key_f9                         __TERM _str[75]
174 #define key_home                       __TERM _str[76]
175 #define key_ic                         __TERM _str[77]
176 #define key_il                         __TERM _str[78]
177 #define key_left                       __TERM _str[79]
178 #define key_ll                         __TERM _str[80]
179 #define key_npage                      __TERM _str[81]
180 #define key_ppage                      __TERM _str[82]
181 #define key_right                      __TERM _str[83]
182 #define key_sf                         __TERM _str[84]
183 #define key_sr                         __TERM _str[85]
184 #define key_stab                       __TERM _str[86]
185 #define key_up                         __TERM _str[87]
186 #define keypad_local                   __TERM _str[88]
187 #define keypad_xmit                    __TERM _str[89]
188 #define lab_f0                         __TERM _str[90]
189 #define lab_f1                         __TERM _str[91]
190 #define lab_f10                        __TERM _str[92]
191 #define lab_f2                         __TERM _str[93]
192 #define lab_f3                         __TERM _str[94]
193 #define lab_f4                         __TERM _str[95]
194 #define lab_f5                         __TERM _str[96]
195 #define lab_f6                         __TERM _str[97]
196 #define lab_f7                         __TERM _str[98]
197 #define lab_f8                         __TERM _str[99]
198 #define lab_f9                         __TERM _str[100]
199 #define meta_off                       __TERM _str[101]
200 #define meta_on                        __TERM _str[102]
201 #define newline                        __TERM _str[103]
202 #define pad_char                       __TERM _str[104]
203 #define parm_dch                       __TERM _str[105]
204 #define parm_delete_line               __TERM _str[106]
205 #define parm_down_cursor               __TERM _str[107]
206 #define parm_ich                       __TERM _str[108]
207 #define parm_index                     __TERM _str[109]
208 #define parm_insert_line               __TERM _str[110]
209 #define parm_left_cursor               __TERM _str[111]
210 #define parm_right_cursor              __TERM _str[112]
211 #define parm_rindex                    __TERM _str[113]
212 #define parm_up_cursor                 __TERM _str[114]
213 #define pkey_key                       __TERM _str[115]
214 #define pkey_local                     __TERM _str[116]
215 #define pkey_xmit                      __TERM _str[117]
216 #define print_screen                   __TERM _str[118]
217 #define prtr_off                       __TERM _str[119]
218 #define prtr_on                        __TERM _str[120]
219 #define repeat_char                    __TERM _str[121]
220 #define reset_1string                  __TERM _str[122]
221 #define reset_2string                  __TERM _str[123]
222 #define reset_3string                  __TERM _str[124]
223 #define reset_file                     __TERM _str[125]
224 #define restore_cursor                 __TERM _str[126]
225 #define row_address                    __TERM _str[127]
226 #define save_cursor                    __TERM _str[128]
227 #define scroll_forward                 __TERM _str[129]
228 #define scroll_reverse                 __TERM _str[130]
229 #define set_attributes                 __TERM _str[131]
230 #define set_tab                        __TERM _str[132]
231 #define set_window                     __TERM _str[133]
232 #define tab                            __TERM _str[134]
233 #define to_status_line                 __TERM _str[135]
234 #define underline_char                 __TERM _str[136]
235 #define up_half_line                   __TERM _str[137]
236 #define init_prog                      __TERM _str[138]
237 #define key_a1                         __TERM _str[139]
238 #define key_a3                         __TERM _str[140]
239 #define key_b2                         __TERM _str[141]
240 #define key_c1                         __TERM _str[142]
241 #define key_c3                         __TERM _str[143]
242 #define prtr_non                       __TERM _str[144]
243 #define char_padding                   __TERM _str[145]
244 #define acs_chars                      __TERM _str[146]
245 #define plab_norm                      __TERM _str[147]
246 #define key_btab                       __TERM _str[148]
247 #define enter_xon_mode                 __TERM _str[149]
248 #define exit_xon_mode                  __TERM _str[150]
249 #define enter_am_mode                  __TERM _str[151]
250 #define exit_am_mode                   __TERM _str[152]
251 #define xon_character                  __TERM _str[153]
252 #define xoff_character                 __TERM _str[154]
253 #define ena_acs                        __TERM _str[155]
254 #define label_on                       __TERM _str[156]
255 #define label_off                      __TERM _str[157]
256 #define key_beg                        __TERM _str[158]
257 #define key_cancel                     __TERM _str[159]
258 #define key_close                      __TERM _str[160]
259 #define key_command                    __TERM _str[161]
260 #define key_copy                       __TERM _str[162]
261 #define key_create                     __TERM _str[163]
262 #define key_end                        __TERM _str[164]
263 #define key_enter                      __TERM _str[165]
264 #define key_exit                       __TERM _str[166]
265 #define key_find                       __TERM _str[167]
266 #define key_help                       __TERM _str[168]
267 #define key_mark                       __TERM _str[169]
268 #define key_message                    __TERM _str[170]
269 #define key_move                       __TERM _str[171]
270 #define key_next                       __TERM _str[172]
271 #define key_open                       __TERM _str[173]
272 #define key_options                    __TERM _str[174]
273 #define key_previous                   __TERM _str[175]
274 #define key_print                      __TERM _str[176]
275 #define key_redo                       __TERM _str[177]
276 #define key_reference                  __TERM _str[178]
277 #define key_refresh                    __TERM _str[179]
278 #define key_replace                    __TERM _str[180]
279 #define key_restart                    __TERM _str[181]
280 #define key_resume                     __TERM _str[182]
281 #define key_save                       __TERM _str[183]
282 #define key_suspend                    __TERM _str[184]
283 #define key_undo                       __TERM _str[185]
284 #define key_sbeg                       __TERM _str[186]
285 #define key_scancel                    __TERM _str[187]
286 #define key_scommand                   __TERM _str[188]
287 #define key_scopy                      __TERM _str[189]
288 #define key_screate                    __TERM _str[190]
289 #define key_sdc                        __TERM _str[191]
290 #define key_sdl                        __TERM _str[192]
291 #define key_select                     __TERM _str[193]
292 #define key_send                       __TERM _str[194]
293 #define key_seol                       __TERM _str[195]
294 #define key_sexit                      __TERM _str[196]
295 #define key_sfind                      __TERM _str[197]
296 #define key_shelp                      __TERM _str[198]
297 #define key_shome                      __TERM _str[199]
298 #define key_sic                        __TERM _str[200]
299 #define key_sleft                      __TERM _str[201]
300 #define key_smessage                   __TERM _str[202]
301 #define key_smove                      __TERM _str[203]
302 #define key_snext                      __TERM _str[204]
303 #define key_soptions                   __TERM _str[205]
304 #define key_sprevious                  __TERM _str[206]
305 #define key_sprint                     __TERM _str[207]
306 #define key_sredo                      __TERM _str[208]
307 #define key_sreplace                   __TERM _str[209]
308 #define key_sright                     __TERM _str[210]
309 #define key_srsume                     __TERM _str[211]
310 #define key_ssave                      __TERM _str[212]
311 #define key_ssuspend                   __TERM _str[213]
312 #define key_sundo                      __TERM _str[214]
313 #define req_for_input                  __TERM _str[215]
314 #define key_f11                        __TERM _str[216]
315 #define key_f12                        __TERM _str[217]
316 #define key_f13                        __TERM _str[218]
317 #define key_f14                        __TERM _str[219]
318 #define key_f15                        __TERM _str[220]
319 #define key_f16                        __TERM _str[221]
320 #define key_f17                        __TERM _str[222]
321 #define key_f18                        __TERM _str[223]
322 #define key_f19                        __TERM _str[224]
323 #define key_f20                        __TERM _str[225]
324 #define key_f21                        __TERM _str[226]
325 #define key_f22                        __TERM _str[227]
326 #define key_f23                        __TERM _str[228]
327 #define key_f24                        __TERM _str[229]
328 #define key_f25                        __TERM _str[230]
329 #define key_f26                        __TERM _str[231]
330 #define key_f27                        __TERM _str[232]
331 #define key_f28                        __TERM _str[233]
332 #define key_f29                        __TERM _str[234]
333 #define key_f30                        __TERM _str[235]
334 #define key_f31                        __TERM _str[236]
335 #define key_f32                        __TERM _str[237]
336 #define key_f33                        __TERM _str[238]
337 #define key_f34                        __TERM _str[239]
338 #define key_f35                        __TERM _str[240]
339 #define key_f36                        __TERM _str[241]
340 #define key_f37                        __TERM _str[242]
341 #define key_f38                        __TERM _str[243]
342 #define key_f39                        __TERM _str[244]
343 #define key_f40                        __TERM _str[245]
344 #define key_f41                        __TERM _str[246]
345 #define key_f42                        __TERM _str[247]
346 #define key_f43                        __TERM _str[248]
347 #define key_f44                        __TERM _str[249]
348 #define key_f45                        __TERM _str[250]
349 #define key_f46                        __TERM _str[251]
350 #define key_f47                        __TERM _str[252]
351 #define key_f48                        __TERM _str[253]
352 #define key_f49                        __TERM _str[254]
353 #define key_f50                        __TERM _str[255]
354 #define key_f51                        __TERM _str[256]
355 #define key_f52                        __TERM _str[257]
356 #define key_f53                        __TERM _str[258]
357 #define key_f54                        __TERM _str[259]
358 #define key_f55                        __TERM _str[260]
359 #define key_f56                        __TERM _str[261]
360 #define key_f57                        __TERM _str[262]
361 #define key_f58                        __TERM _str[263]
362 #define key_f59                        __TERM _str[264]
363 #define key_f60                        __TERM _str[265]
364 #define key_f61                        __TERM _str[266]
365 #define key_f62                        __TERM _str[267]
366 #define key_f63                        __TERM _str[268]
367 #define clr_bol                        __TERM _str[269]
368 #define clear_margins                  __TERM _str[270]
369 #define set_left_margin                __TERM _str[271]
370 #define set_right_margin               __TERM _str[272]
371 #define label_format                   __TERM _str[273]
372 #define set_clock                      __TERM _str[274]
373 #define display_clock                  __TERM _str[275]
374 #define remove_clock                   __TERM _str[276]
375 #define create_window                  __TERM _str[277]
376 #define goto_window                    __TERM _str[278]
377 #define hangup                         __TERM _str[279]
378 #define dial_phone                     __TERM _str[280]
379 #define quick_dial                     __TERM _str[281]
380 #define tone                           __TERM _str[282]
381 #define pulse                          __TERM _str[283]
382 #define flash_hook                     __TERM _str[284]
383 #define fixed_pause                    __TERM _str[285]
384 #define wait_tone                      __TERM _str[286]
385 #define user0                          __TERM _str[287]
386 #define user1                          __TERM _str[288]
387 #define user2                          __TERM _str[289]
388 #define user3                          __TERM _str[290]
389 #define user4                          __TERM _str[291]
390 #define user5                          __TERM _str[292]
391 #define user6                          __TERM _str[293]
392 #define user7                          __TERM _str[294]
393 #define user8                          __TERM _str[295]
394 #define user9                          __TERM _str[296]
395 #define orig_pair                      __TERM _str[297]
396 #define orig_colors                    __TERM _str[298]
397 #define initialize_color               __TERM _str[299]
398 #define initialize_pair                __TERM _str[300]
399 #define set_color_pair                 __TERM _str[301]
400 #define set_foreground                 __TERM _str[302]
401 #define set_background                 __TERM _str[303]
402 #define change_char_pitch              __TERM _str[304]
403 #define change_line_pitch              __TERM _str[305]
404 #define change_res_horz                __TERM _str[306]
405 #define change_res_vert                __TERM _str[307]
406 #define define_char                    __TERM _str[308]
407 #define enter_doublewide_mode          __TERM _str[309]
408 #define enter_draft_quality            __TERM _str[310]
409 #define enter_italics_mode             __TERM _str[311]
410 #define enter_leftward_mode            __TERM _str[312]
411 #define enter_micro_mode               __TERM _str[313]
412 #define enter_near_letter_quality      __TERM _str[314]
413 #define enter_normal_quality           __TERM _str[315]
414 #define enter_shadow_mode              __TERM _str[316]
415 #define enter_subscript_mode           __TERM _str[317]
416 #define enter_superscript_mode         __TERM _str[318]
417 #define enter_upward_mode              __TERM _str[319]
418 #define exit_doublewide_mode           __TERM _str[320]
419 #define exit_italics_mode              __TERM _str[321]
420 #define exit_leftward_mode             __TERM _str[322]
421 #define exit_micro_mode                __TERM _str[323]
422 #define exit_shadow_mode               __TERM _str[324]
423 #define exit_subscript_mode            __TERM _str[325]
424 #define exit_superscript_mode          __TERM _str[326]
425 #define exit_upward_mode               __TERM _str[327]
426 #define micro_column_address           __TERM _str[328]
427 #define micro_down                     __TERM _str[329]
428 #define micro_left                     __TERM _str[330]
429 #define micro_right                    __TERM _str[331]
430 #define micro_row_address              __TERM _str[332]
431 #define micro_up                       __TERM _str[333]
432 #define order_of_pins                  __TERM _str[334]
433 #define parm_down_micro                __TERM _str[335]
434 #define parm_left_micro                __TERM _str[336]
435 #define parm_right_micro               __TERM _str[337]
436 #define parm_up_micro                  __TERM _str[338]
437 #define select_char_set                __TERM _str[339]
438 #define set_bottom_margin              __TERM _str[340]
439 #define set_bottom_margin_parm         __TERM _str[341]
440 #define set_left_margin_parm           __TERM _str[342]
441 #define set_right_margin_parm          __TERM _str[343]
442 #define set_top_margin                 __TERM _str[344]
443 #define set_top_margin_parm            __TERM _str[345]
444 #define start_bit_image                __TERM _str[346]
445 #define start_char_set_def             __TERM _str[347]
446 #define stop_bit_image                 __TERM _str[348]
447 #define stop_char_set_def              __TERM _str[349]
448 #define subscript_characters           __TERM _str[350]
449 #define superscript_characters         __TERM _str[351]
450 #define these_cause_cr                 __TERM _str[352]
451 #define zero_motion                    __TERM _str[353]
452 #define char_set_names                 __TERM _str[354]
453 #define key_mouse                      __TERM _str[355]
454 #define mouse_info                     __TERM _str[356]
455 #define req_mouse_pos                  __TERM _str[357]
456 #define get_mouse                      __TERM _bool[37]
457 #define set_a_foreground               __TERM _str[358]
458 #define set_a_background               __TERM _str[359]
459 #define pkey_plab                      __TERM _str[360]
460 #define device_type                    __TERM _str[361]
461 #define code_set_init                  __TERM _str[362]
462 #define set0_des_seq                   __TERM _str[363]
463 #define set1_des_seq                   __TERM _str[364]
464 #define set2_des_seq                   __TERM _str[365]
465 #define set3_des_seq                   __TERM _str[366]
466 #define set_lr_margin                  __TERM _str[367]
467 #define set_tb_margin                  __TERM _str[368]
468 #define bit_image_repeat               __TERM _str[369]
469 #define bit_image_newline              __TERM _str[370]
470 #define bit_image_carriage_return      __TERM _str[371]
471 #define color_names                    __TERM _str[372]
472 #define define_bit_image_region        __TERM _str[373]
473 #define end_bit_image_region           __TERM _str[374]
474 #define set_color_band                 __TERM _str[375]
475 #define set_page_length                __TERM _str[376]
476 #define display_pc_char                __TERM _str[377]
477 #define enter_pc_charset_mode          __TERM _str[378]
478 #define exit_pc_charset_mode           __TERM _str[379]
479 #define enter_scancode_mode            __TERM _str[380]
480 #define exit_scancode_mode             __TERM _str[381]
481 #define pc_term_options                __TERM _str[382]
482 #define scancode_escape                __TERM _str[383]
483 #define alt_scancode_esc               __TERM _str[384]
484 #define enter_horizontal_hl_mode       __TERM _str[385]
485 #define enter_left_hl_mode             __TERM _str[386]
486 #define enter_low_hl_mode              __TERM _str[387]
487 #define enter_right_hl_mode            __TERM _str[388]
488 #define enter_top_hl_mode              __TERM _str[389]
489 #define enter_vertical_hl_mode         __TERM _str[390]
490 #define set_a_attributes               __TERM _str[391]
491 #define set_pglen_inch                 __TERM _str[392]
492 
493 #define __COUNT_BOOL		38
494 #define __COUNT_NUM		33
495 #define __COUNT_STR		393
496 
497 /*
498  * MKS Header format for terminfo database files.
499  *
500  * The header consists of six short integers, stored using VAX/PDP style
501  * byte swapping (least-significant byte first).  The integers are
502  *
503  *  1) magic number (octal 0432);
504  *  2) the size, in bytes, of the names sections;
505  *  3) the number of bytes in the boolean section;
506  *  4) the number of short integers in the numbers section;
507  *  5) the number of offsets (short integers) in the strings section;
508  *  6) the size, in bytes, of the string table.
509  *
510  * Between the boolean and number sections, a null byte is inserted, if
511  * necessary, to ensure that the number section begins on an even byte
512  * offset.  All short integers are aligned on a short word boundary.
513  */
514 
515 #define __TERMINFO_MAGIC		0432
516 
517 typedef struct {
518 	short magic;
519 	short name_size;
520 	short bool_count;
521 	short num_count;
522 	short str_count;
523 	short str_size;
524 } terminfo_header_t;
525 
526 /*
527  * The following __MOVE_ constants are indices into the _move[] member
528  * of a SCREEN structure.  The array is used by m_mvcur() for cursor
529  * motion costs and initialized by newterm().
530  *
531  * The following indices refer to relative cursor motion actions that
532  * have a base-cost times the distance/count.
533  */
534 #define __MOVE_UP		0
535 #define __MOVE_DOWN		1
536 #define __MOVE_LEFT		2
537 #define __MOVE_RIGHT		3
538 #define __MOVE_TAB		4
539 #define __MOVE_BACK_TAB		5
540 
541 #define __MOVE_MAX_RELATIVE	6
542 
543 /*
544  * These should have fixed costs.
545  */
546 #define __MOVE_RETURN		6
547 #define __MOVE_HOME		7
548 #define __MOVE_LAST_LINE	8
549 
550 /*
551  * These have worst case cost based on moving the maximum possible
552  * value for a parameter given the screen size.
553  */
554 #define __MOVE_N_UP		9
555 #define __MOVE_N_DOWN		10
556 #define __MOVE_N_LEFT		11
557 #define __MOVE_N_RIGHT		12
558 #define __MOVE_ROW		13
559 #define __MOVE_COLUMN		14
560 #define __MOVE_ROW_COLUMN	15
561 
562 #define __MOVE_MAX		16
563 
564 /*
565  * For a cursor motion to be used there must be a base-cost of at least 1.
566  */
567 #define __MOVE_INFINITY		1000
568 
569 #define __TERM_ISATTY_IN	0x0001	/* Input is a terminal */
570 #define __TERM_ISATTY_OUT	0x0002	/* Output is a terminal */
571 #define __TERM_HALF_DELAY	0x0004	/* halfdelay() has priority. */
572 #define __TERM_INSERT_MODE	0x0008	/* Terminal is in insert mode. */
573 #define __TERM_NL_IS_CRLF	0x8000	/* Newline is mapped on output. */
574 
575 /***
576  *** Opaque data type.  Keep your grubby mits off.
577  ***/
578 typedef struct {
579 	int _ifd;			/* Input file descriptor */
580 	int _ofd;			/* Output file descriptor */
581 	struct termios _prog;
582 	struct termios _shell;
583 	struct termios _save;
584 	short _co;			/* Current colour-pair. */
585 	unsigned short _at;		/* Current attribute state. */
586 	short (*_pair)[2];
587 	short (*_color)[3];
588 	unsigned short _flags;
589 	char _bool[__COUNT_BOOL];
590 	short _num[__COUNT_NUM];
591 	char *_str[__COUNT_STR];	/* Pointers into _str_table. */
592 	char *_str_table;
593 	char *_names;			/* Terminal alias in _str_table. */
594 	char *_term;			/* TERM name loaded. */
595 	struct {
596 		char *_seq;
597 		short _cost;
598 	} _move[__MOVE_MAX];
599 } TERMINAL;
600 
601 extern TERMINAL *cur_term;
602 
603 extern char *__m_boolnames[];
604 extern char *__m_boolcodes[];
605 extern char *__m_boolfnames[];
606 extern char *__m_numnames[];
607 extern char *__m_numcodes[];
608 extern char *__m_numfnames[];
609 extern char *__m_strnames[];
610 extern char *__m_strcodes[];
611 extern char *__m_strfnames[];
612 
613 #ifndef _XOPEN_SOURCE
614 /*
615  * Old System V array names.
616  */
617 #define boolnames	__m_boolnames
618 #define boolcodes	__m_boolcodes
619 #define boolfnames	__m_boolfnames
620 #define numnames	__m_numnames
621 #define numcodes	__m_numcodes
622 #define numfnames	__m_numfnames
623 #define strnames	__m_strnames
624 #define strcodes	__m_strcodes
625 #define strfnames	__m_strfnames
626 #endif /* _XOPEN_SOURCE */
627 
628 /*
629  * Exposed internal functions.
630  */
631 extern int __m_putchar(int);
632 extern int __m_mvcur(int, int, int, int, int (*)(int));
633 extern int __m_read_terminfo(const char *, TERMINAL *);
634 extern int __m_setupterm(const char *, int, int, int *);
635 
636 /*
637  * Globals
638  */
639 extern int del_curterm(TERMINAL *);
640 extern TERMINAL *set_curterm(TERMINAL *);
641 extern int restartterm(const char *, int, int *);
642 extern int setupterm(const char *, int, int *);
643 
644 extern int tgetent(char *, char *);
645 extern int tgetflag(const char *);
646 extern int tgetnum(const char *);
647 extern char *tgetstr(const char *, char **);
648 extern char *tgoto(const char *, int, int);
649 
650 extern int tigetflag(const char *);
651 extern int tigetnum(const char *);
652 extern char *tigetstr(const char *);
653 
654 extern int putp(const char *);
655 extern const char *tparm(
656 	const char *, long, long, long, long, long, long, long, long, long);
657 extern int tputs(const char *, int, int (*)(int));
658 
659 #ifndef _XOPEN_SOURCE_EXTENDED
660 
661 #define putp(str)		tputs(str,1,__m_putchar)
662 #define del_term		del_curterm
663 #define setterm(t)		setupterm(t,STDOUT_FILENO,(int *) 0)
664 #define tgoto(cm,c,r)		tparm((char *)(cm), (long)(r), (long)(c))
665 
666 #ifndef _XOPEN_SOURCE
667 #define beehive_glitch		no_esc_ctrlc
668 #define teleray_glitch		dest_tabs_magic_smso
669 #endif /* _XOPEN_SOURCE */
670 
671 #endif /* _XOPEN_SOURCE_EXTENDED */
672 
673 #endif /* __term_h__ */
674