1 /* $NetBSD: term.h,v 1.26 2022/05/11 14:58:00 andvar Exp $ */
2 
3 /*
4  * Copyright (c) 2009, 2010, 2011, 2013, 2020 The NetBSD Foundation, Inc.
5  *
6  * This code is derived from software contributed to The NetBSD Foundation
7  * by Roy Marples.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  * 1. Redistributions of source code must retain the above copyright
13  *    notice, this list of conditions and the following disclaimer.
14  * 2. Redistributions in binary form must reproduce the above copyright
15  *    notice, this list of conditions and the following disclaimer in the
16  *    documentation and/or other materials provided with the distribution.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
19  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
20  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
21  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
22  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
23  * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
27  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #ifndef _TERM_H_
31 #define   _TERM_H_
32 
33 #ifndef ERR
34 #define   ERR       (-1)      /* Error return */
35 #define   OK        (0)       /* Success return */
36 #endif
37 
38 /* Define available terminfo flags */
39 enum TIFLAGS {
40           TICODE_bw,
41           TICODE_am,
42           TICODE_bce,
43           TICODE_ccc,
44           TICODE_xhp,
45           TICODE_xhpa,
46           TICODE_cpix,
47           TICODE_crxm,
48           TICODE_xt,
49           TICODE_xenl,
50           TICODE_eo,
51           TICODE_gn,
52           TICODE_hc,
53           TICODE_chts,
54           TICODE_km,
55           TICODE_daisy,
56           TICODE_hs,
57           TICODE_hls,
58           TICODE_in,
59           TICODE_lpix,
60           TICODE_da,
61           TICODE_db,
62           TICODE_mir,
63           TICODE_msgr,
64           TICODE_nxon,
65           TICODE_xsb,
66           TICODE_npc,
67           TICODE_ndscr,
68           TICODE_nrrmc,
69           TICODE_os,
70           TICODE_mc5i,
71           TICODE_xvpa,
72           TICODE_sam,
73           TICODE_eslok,
74           TICODE_hz,
75           TICODE_ul,
76           TICODE_xon
77 };
78 #define TIFLAGMAX   TICODE_xon
79 
80 #define t_auto_left_margin(t)           (t)->flags[TICODE_bw]
81 #define t_auto_right_margin(t)                    (t)->flags[TICODE_am]
82 #define t_back_color_erase(t)           (t)->flags[TICODE_bce]
83 #define t_can_change(t)                           (t)->flags[TICODE_ccc]
84 #define t_ceol_standout_glitch(t)       (t)->flags[TICODE_xhp]
85 #define t_col_addr_glitch(t)            (t)->flags[TICODE_xhpa]
86 #define t_cpi_changes_res(t)            (t)->flags[TICODE_cpix]
87 #define t_cr_cancels_micro_mode(t)      (t)->flags[TICODE_crxm]
88 #define t_dest_tabs_magic_smso(t)       (t)->flags[TICODE_xt]
89 #define t_eat_newline_glitch(t)                   (t)->flags[TICODE_xenl]
90 #define t_erase_overstrike(t)           (t)->flags[TICODE_eo]
91 #define t_generic_type(t)               (t)->flags[TICODE_gn]
92 #define t_hard_copy(t)                            (t)->flags[TICODE_hc]
93 #define t_hard_cursor(t)                (t)->flags[TICODE_chts]
94 #define t_has_meta_key(t)               (t)->flags[TICODE_km]
95 #define t_has_print_wheel(t)            (t)->flags[TICODE_daisy]
96 #define t_has_status_line(t)            (t)->flags[TICODE_hs]
97 #define t_hue_light_saturation(t)       (t)->flags[TICODE_hls]
98 #define t_insert_null_glitch(t)                   (t)->flags[TICODE_in]
99 #define t_lpi_changes_yes(t)            (t)->flags[TICODE_lpix]
100 #define t_memory_above(t)               (t)->flags[TICODE_da]
101 #define t_memory_below(t)               (t)->flags[TICODE_db]
102 #define t_move_insert_mode(t)           (t)->flags[TICODE_mir]
103 #define t_move_standout_mode(t)                   (t)->flags[TICODE_msgr]
104 #define t_needs_xon_xoff(t)             (t)->flags[TICODE_nxon]
105 #define t_no_esc_ctlc(t)                (t)->flags[TICODE_xsb]
106 #define t_no_pad_char(t)                (t)->flags[TICODE_npc]
107 #define t_non_dest_scroll_region(t)     (t)->flags[TICODE_ndscr]
108 #define t_non_rev_rmcup(t)              (t)->flags[TICODE_nrrmc]
109 #define t_over_strike(t)                (t)->flags[TICODE_os]
110 #define t_prtr_silent(t)                (t)->flags[TICODE_mc5i]
111 #define t_row_addr_glitch(t)            (t)->flags[TICODE_xvpa]
112 #define t_semi_auto_right_margin(t)     (t)->flags[TICODE_sam]
113 #define t_status_line_esc_ok(t)                   (t)->flags[TICODE_eslok]
114 #define t_tilde_glitch(t)               (t)->flags[TICODE_hz]
115 #define t_transparent_underline(t)      (t)->flags[TICODE_ul]
116 #define t_xon_xoff(t)                             (t)->flags[TICODE_xon]
117 
118 #define auto_left_margin                t_auto_left_margin(cur_term)
119 #define auto_right_margin               t_auto_right_margin(cur_term)
120 #define back_color_erase                t_back_color_erase(cur_term)
121 #define can_change                      t_can_change(cur_term)
122 #define ceol_standout_glitch            t_ceol_standout_glitch(cur_term)
123 #define col_addr_glitch                           t_col_addr_glitch(cur_term)
124 #define cpi_changes_res                           t_cpi_changes_res(cur_term)
125 #define cr_cancels_micro_mode           t_cr_cancels_micro_mode(cur_term)
126 #define dest_tabs_magic_smso            t_dest_tabs_magic_smso(cur_term)
127 #define eat_newline_glitch              t_eat_newline_glitch(cur_term)
128 #define erase_overstrike                t_erase_overstrike(cur_term)
129 #define generic_type                              t_generic_type(cur_term)
130 #define hard_copy                       t_hard_copy(cur_term)
131 #define hard_cursor                     t_hard_cursor(cur_term)
132 #define has_meta_key                              t_has_meta_key(cur_term)
133 #define has_print_wheel                           t_has_print_wheel(cur_term)
134 #define has_status_line                           t_has_status_line(cur_term)
135 #define hue_light_saturation            t_hue_light_saturation(cur_term)
136 #define insert_null_glitch              t_insert_null_glitch(cur_term)
137 #define lpi_changes_yes                           t_lpi_changes_yes(cur_term)
138 #define memory_above                              t_memory_above(cur_term)
139 #define memory_below                              t_memory_below(cur_term)
140 #define move_insert_mode                t_move_insert_mode(cur_term)
141 #define move_standout_mode              t_move_standout_mode(cur_term)
142 #define needs_xon_xoff                            t_needs_xon_xoff(cur_term)
143 #define no_esc_ctlc                     t_no_esc_ctlc(cur_term)
144 #define no_pad_char                     t_no_pad_char(cur_term)
145 #define non_dest_scroll_region                    t_non_dest_scroll_region(cur_term)
146 #define non_rev_rmcup                             t_non_rev_rmcup(cur_term)
147 #define over_strike                     t_over_strike(cur_term)
148 #define prtr_silent                     t_prtr_silent(cur_term)
149 #define row_addr_glitch                           t_row_addr_glitch(cur_term)
150 #define semi_auto_right_margin                    t_semi_auto_right_margin(cur_term)
151 #define status_line_esc_ok              t_status_line_esc_ok(cur_term)
152 #define tilde_glitch                              t_tilde_glitch(cur_term)
153 #define transparent_underline           t_transparent_underline(cur_term)
154 #define xon_xoff                        t_xon_xoff(cur_term)
155 
156 /*
157  * BOOLEAN DESCRIPTIONS
158  *
159  * auto_left_margin: cub1 wraps from column 0 to last column
160  * auto_right_margin: Terminal has automatic margins
161  * back_color_erase: Screen erased with background colour
162  * can_change: Terminal can re-define existing colour
163  * ceol_standout_glitch: Standout not erased by overwriting (hp)
164  * col_addr_glitch: Only positive motion for hpa/mhba caps
165  * cpi_changes_res: Changing character pitch changes resolution
166  * cr_cancels_micro_mode: Using cr turns off micro mode
167  * dest_tabs_magic_smso: Destructive tabs, magic smso char (t1061)
168  * eat_newline_glitch: Newline ignored after 80 columns (Concept)
169  * erase_overstrike: Can erase overstrikes with a blank line
170  * generic_type: Generic line type (e.g. dialup, switch)
171  * hard_copy: Hardcopy terminal
172  * hard_cursor: Cursor is hard to see
173  * has_meta_key: Has a meta key (shift, sets parity bit)
174  * has_print_wheel: Printer needs operator to change character set
175  * has_status_line: Has extra "status line"
176  * hue_light_saturation: Terminal only uses HLS colour notion (Tektronix)
177  * insert_null_glitch: Insert mode distinguishes nulls
178  * lpi_changes_yes: Changing line pitch changes resolution
179  * memory_above: Display may be retained above the screen
180  * memory_below: Display may be retained below the screen
181  * move_insert_mode: Safe to move while in insert mode
182  * move_standout_mode: Safe to move in standout modes
183  * needs_xon_xoff: Padding won't work, xon/xoff required
184  * no_esc_ctlc: Beehive (f1=escape, f2=ctrl C)
185  * no_pad_char: Pad character doesn't exist
186  * non_dest_scroll_region: Scrolling region is nondestructive
187  * non_rev_rmcup: smcup does not reverse rmcup
188  * over_strike: Terminal overstrikes on hard-copy terminal
189  * prtr_silent: Printer won't echo on screen
190  * row_addr_glitch: Only positive motion for vpa/mvpa caps
191  * semi_auto_right_margin: Printing in last column causes cr
192  * status_line_esc_ok: Escape can be used on the status line
193  * tilde_glitch: Hazeltine; can't print tilde (~)
194  * transparent_underline: Underline character overstrikes
195  * xon_xoff: Terminal uses xon/xoff handshaking
196 */
197 
198 /* Define available terminfo numbers */
199 enum TINUMS {
200           TICODE_bitwin,
201           TICODE_bitype,
202           TICODE_bufsz,
203           TICODE_btns,
204           TICODE_cols,
205           TICODE_spinh,
206           TICODE_spinv,
207           TICODE_it,
208           TICODE_lh,
209           TICODE_lw,
210           TICODE_lines,
211           TICODE_lm,
212           TICODE_ma,
213           TICODE_xmc,
214           TICODE_colors,
215           TICODE_maddr,
216           TICODE_mjump,
217           TICODE_pairs,
218           TICODE_wnum,
219           TICODE_mcs,
220           TICODE_mls,
221           TICODE_ncv,
222           TICODE_nlab,
223           TICODE_npins,
224           TICODE_orc,
225           TICODE_orl,
226           TICODE_orhi,
227           TICODE_orvi,
228           TICODE_pb,
229           TICODE_cps,
230           TICODE_vt,
231           TICODE_widcs,
232           TICODE_wsl
233 };
234 #define TINUMMAX                        TICODE_wsl
235 
236 #define t_bit_image_entwining(t)        (t)->nums[TICODE_bitwin]
237 #define t_bit_image_type(t)             (t)->nums[TICODE_bitype]
238 #define t_buffer_capacity(t)            (t)->nums[TICODE_bufsz]
239 #define t_buttons(t)                              (t)->nums[TICODE_btns]
240 #define t_columns(t)                              (t)->nums[TICODE_cols]
241 #define t_dot_horz_spacing(t)           (t)->nums[TICODE_spinh]
242 #define t_dot_vert_spacing(t)           (t)->nums[TICODE_spinv]
243 #define t_init_tabs(t)                            (t)->nums[TICODE_it]
244 #define t_label_height(t)               (t)->nums[TICODE_lh]
245 #define t_label_width(t)                (t)->nums[TICODE_lw]
246 #define t_lines(t)                      (t)->nums[TICODE_lines]
247 #define t_lines_of_memory(t)            (t)->nums[TICODE_lm]
248 #define t_max_attributes(t)             (t)->nums[TICODE_ma]
249 #define t_magic_cookie_glitch(t)        (t)->nums[TICODE_xmc]
250 #define t_max_colors(t)                           (t)->nums[TICODE_colors]
251 #define t_max_micro_address(t)                    (t)->nums[TICODE_maddr]
252 #define t_max_micro_jump(t)             (t)->nums[TICODE_mjump]
253 #define t_max_pairs(t)                            (t)->nums[TICODE_pairs]
254 #define t_maximum_windows(t)            (t)->nums[TICODE_wnum]
255 #define t_micro_col_size(t)             (t)->nums[TICODE_mcs]
256 #define t_micro_line_size(t)            (t)->nums[TICODE_mls]
257 #define t_no_color_video(t)             (t)->nums[TICODE_ncv]
258 #define t_num_labels(t)                           (t)->nums[TICODE_nlab]
259 #define t_number_of_pins(t)             (t)->nums[TICODE_npins]
260 #define t_output_res_char(t)            (t)->nums[TICODE_orc]
261 #define t_output_res_line(t)            (t)->nums[TICODE_orl]
262 #define t_output_res_horz_inch(t)       (t)->nums[TICODE_orhi]
263 #define t_output_res_vert_inch(t)       (t)->nums[TICODE_orvi]
264 #define t_padding_baud_rate(t)                    (t)->nums[TICODE_pb]
265 #define t_print_rate(t)                           (t)->nums[TICODE_cps]
266 #define t_virtual_terminal(t)           (t)->nums[TICODE_vt]
267 #define t_wide_char_size(t)             (t)->nums[TICODE_widcs]
268 #define t_width_status_line(t)                    (t)->nums[TICODE_wsl]
269 
270 #define bit_image_entwining              t_bit_image_entwining(cur_term)
271 #define bit_image_type                             t_bit_image_type(cur_term)
272 #define buffer_capacity                            t_buffer_capacity(cur_term)
273 #define buttons                                    t_buttons(cur_term)
274 #define columns                                    t_columns(cur_term)
275 #define dot_horz_spacing                 t_dot_horz_spacing(cur_term)
276 #define dot_vert_spacing                 t_dot_vert_spacing(cur_term)
277 #define init_tabs                        t_init_tabs(cur_term)
278 #define label_height                               t_label_height(cur_term)
279 #define label_width                      t_label_width(cur_term)
280 #define lines                                      t_lines(cur_term)
281 #define lines_of_memory                            t_lines_of_memory(cur_term)
282 #define max_attributes                             t_max_attributes(cur_term)
283 #define magic_cookie_glitch              t_magic_cookie_glitch(cur_term)
284 #define max_colors                       t_max_colors(cur_term)
285 #define max_micro_address                t_max_micro_address(cur_term)
286 #define max_micro_jump                             t_max_micro_jump(cur_term)
287 #define max_pairs                        t_max_pairs(cur_term)
288 #define maximum_windows                            t_maximum_windows(cur_term)
289 #define micro_col_size                             t_micro_col_size(cur_term)
290 #define micro_line_size                            t_micro_line_size(cur_term)
291 #define no_color_video                             t_no_color_video(cur_term)
292 #define num_labels                       t_num_labels(cur_term)
293 #define number_of_pins                             t_number_of_pins(cur_term)
294 #define output_res_char                            t_output_res_char(cur_term)
295 #define output_res_line                            t_output_res_line(cur_term)
296 #define output_res_horz_inch             t_output_res_horz_inch(cur_term)
297 #define output_res_vert_inch             t_output_res_vert_inch(cur_term)
298 #define padding_baud_rate                t_padding_baud_rate(cur_term)
299 #define print_rate                       t_print_rate(cur_term)
300 #define virtual_terminal                 t_virtual_terminal(cur_term)
301 #define wide_char_size                             t_wide_char_size(cur_term)
302 #define width_status_line                t_width_status_line(cur_term)
303 
304 /*
305  * NUMBER DESCRIPTIONS
306  *
307  * bit_image_entwining: Number of passes for each bit-map row
308  * bit_image_type: Type of bit image device
309  * buffer_capacity: Number of bytes buffered before printing
310  * buttons: Number of buttons on the mouse
311  * columns: Number of columns in a line
312  * dot_horz_spacing: Spacing of dots horizontally in dots per inch
313  * dot_vert_spacing: Spacing of pins vertically in pins per inch
314  * init_tabs: Tabs initially every #1 spaces
315  * label_height: Number of rows in each label
316  * label_width: Number of columns in each label
317  * lines: Number of lines on a screen or a page
318  * lines_of_memory: Lines of memory of > lines; 0 means varies
319  * max_attributes: Maximum combined video attributes terminal can display
320  * magic_cookie_glitch: Number of blank characters left by smso or rmso
321  * max_colors: Maximum number of colours on the screen
322  * max_micro_address: Maximum value in micro_..._address
323  * max_micro_jump: Maximum value in parm_..._micro
324  * max_pairs: Maximum number of colour-pairs on the screen
325  * maximum_windows: Maximum number of definable windows
326  * micro_col_size: Character step size when in micro mode
327  * micro_line_size: Line step size when in micro mode
328  * no_color_video: Video attributes that can't be used with colours
329  * num_labels: Number of labels on screen (start at 1)
330  * number_of_pins: Number of pins in print-head
331  * output_res_char: Horizontal resolution in units per character
332  * output_res_line: Vertical resolution in units per line
333  * output_res_horz_inch: Horizontal resolution in units per inch
334  * output_res_vert_inch: Vertical resolution in units per inch
335  * padding_baud_rate: Lowest baud rate where padding needed
336  * print_rate: Print rate in characters per second
337  * virtual_terminal: Virtual terminal number
338  * wide_char_size: Character step size when in double-wide mode
339  * width_status_line: Number of columns in status line
340  */
341 
342 /* Define available terminfo strings */
343 enum TISTRS{
344           TICODE_acsc,
345           TICODE_scesa,
346           TICODE_cbt,
347           TICODE_bel,
348           TICODE_bicr,
349           TICODE_binel,
350           TICODE_birep,
351           TICODE_cr,
352           TICODE_cpi,
353           TICODE_lpi,
354           TICODE_chr,
355           TICODE_cvr,
356           TICODE_csr,
357           TICODE_rmp,
358           TICODE_csnm,
359           TICODE_tbc,
360           TICODE_mgc,
361           TICODE_clear,
362           TICODE_el1,
363           TICODE_el,
364           TICODE_ed,
365           TICODE_csin,
366           TICODE_colornm,
367           TICODE_hpa,
368           TICODE_cmdch,
369           TICODE_cwin,
370           TICODE_cup,
371           TICODE_cud1,
372           TICODE_home,
373           TICODE_civis,
374           TICODE_cub1,
375           TICODE_mrcup,
376           TICODE_cnorm,
377           TICODE_cuf1,
378           TICODE_ll,
379           TICODE_cuu1,
380           TICODE_cvvis,
381           TICODE_defbi,
382           TICODE_defc,
383           TICODE_dch1,
384           TICODE_dl1,
385           TICODE_devt,
386           TICODE_dial,
387           TICODE_dsl,
388           TICODE_dclk,
389           TICODE_dispc,
390           TICODE_hd,
391           TICODE_enacs,
392           TICODE_endbi,
393           TICODE_smacs,
394           TICODE_smam,
395           TICODE_blink,
396           TICODE_bold,
397           TICODE_smcup,
398           TICODE_smdc,
399           TICODE_dim,
400           TICODE_swidm,
401           TICODE_sdrfq,
402           TICODE_ehhlm,
403           TICODE_smir,
404           TICODE_sitm,
405           TICODE_elhlm,
406           TICODE_slm,
407           TICODE_elohlm,
408           TICODE_smicm,
409           TICODE_snlq,
410           TICODE_snrmq,
411           TICODE_smpch,
412           TICODE_prot,
413           TICODE_rev,
414           TICODE_erhlm,
415           TICODE_smsc,
416           TICODE_invis,
417           TICODE_sshm,
418           TICODE_smso,
419           TICODE_ssubm,
420           TICODE_ssupm,
421           TICODE_ethlm,
422           TICODE_smul,
423           TICODE_sum,
424           TICODE_evhlm,
425           TICODE_smxon,
426           TICODE_ech,
427           TICODE_rmacs,
428           TICODE_rmam,
429           TICODE_sgr0,
430           TICODE_rmcup,
431           TICODE_rmdc,
432           TICODE_rwidm,
433           TICODE_rmir,
434           TICODE_ritm,
435           TICODE_rlm,
436           TICODE_rmicm,
437           TICODE_rmpch,
438           TICODE_rmsc,
439           TICODE_rshm,
440           TICODE_rmso,
441           TICODE_rsubm,
442           TICODE_rsupm,
443           TICODE_rmul,
444           TICODE_rum,
445           TICODE_rmxon,
446           TICODE_pause,
447           TICODE_hook,
448           TICODE_flash,
449           TICODE_ff,
450           TICODE_fsl,
451           TICODE_getm,
452           TICODE_wingo,
453           TICODE_hup,
454           TICODE_is1,
455           TICODE_is2,
456           TICODE_is3,
457           TICODE_if,
458           TICODE_iprog,
459           TICODE_initc,
460           TICODE_initp,
461           TICODE_ich1,
462           TICODE_il1,
463           TICODE_ip,
464           TICODE_ka1,
465           TICODE_ka3,
466           TICODE_kb2,
467           TICODE_kbs,
468           TICODE_kbeg,
469           TICODE_kcbt,
470           TICODE_kc1,
471           TICODE_kc3,
472           TICODE_kcan,
473           TICODE_ktbc,
474           TICODE_kclr,
475           TICODE_kclo,
476           TICODE_kcmd,
477           TICODE_kcpy,
478           TICODE_kcrt,
479           TICODE_kctab,
480           TICODE_kdch1,
481           TICODE_kdl1,
482           TICODE_kcud1,
483           TICODE_krmir,
484           TICODE_kend,
485           TICODE_kent,
486           TICODE_kel,
487           TICODE_ked,
488           TICODE_kext,
489           TICODE_kf0,
490           TICODE_kf1,
491           TICODE_kf2,
492           TICODE_kf3,
493           TICODE_kf4,
494           TICODE_kf5,
495           TICODE_kf6,
496           TICODE_kf7,
497           TICODE_kf8,
498           TICODE_kf9,
499           TICODE_kf10,
500           TICODE_kf11,
501           TICODE_kf12,
502           TICODE_kf13,
503           TICODE_kf14,
504           TICODE_kf15,
505           TICODE_kf16,
506           TICODE_kf17,
507           TICODE_kf18,
508           TICODE_kf19,
509           TICODE_kf20,
510           TICODE_kf21,
511           TICODE_kf22,
512           TICODE_kf23,
513           TICODE_kf24,
514           TICODE_kf25,
515           TICODE_kf26,
516           TICODE_kf27,
517           TICODE_kf28,
518           TICODE_kf29,
519           TICODE_kf30,
520           TICODE_kf31,
521           TICODE_kf32,
522           TICODE_kf33,
523           TICODE_kf34,
524           TICODE_kf35,
525           TICODE_kf36,
526           TICODE_kf37,
527           TICODE_kf38,
528           TICODE_kf39,
529           TICODE_kf40,
530           TICODE_kf41,
531           TICODE_kf42,
532           TICODE_kf43,
533           TICODE_kf44,
534           TICODE_kf45,
535           TICODE_kf46,
536           TICODE_kf47,
537           TICODE_kf48,
538           TICODE_kf49,
539           TICODE_kf50,
540           TICODE_kf51,
541           TICODE_kf52,
542           TICODE_kf53,
543           TICODE_kf54,
544           TICODE_kf55,
545           TICODE_kf56,
546           TICODE_kf57,
547           TICODE_kf58,
548           TICODE_kf59,
549           TICODE_kf60,
550           TICODE_kf61,
551           TICODE_kf62,
552           TICODE_kf63,
553           TICODE_kfnd,
554           TICODE_khlp,
555           TICODE_khome,
556           TICODE_kich1,
557           TICODE_kil1,
558           TICODE_kcub1,
559           TICODE_kll,
560           TICODE_kmrk,
561           TICODE_kmsg,
562           TICODE_kmous,
563           TICODE_kmov,
564           TICODE_knxt,
565           TICODE_knp,
566           TICODE_kopn,
567           TICODE_kopt,
568           TICODE_kpp,
569           TICODE_kprv,
570           TICODE_kprt,
571           TICODE_krdo,
572           TICODE_kref,
573           TICODE_krfr,
574           TICODE_krpl,
575           TICODE_krst,
576           TICODE_kres,
577           TICODE_kcuf1,
578           TICODE_ksav,
579           TICODE_kBEG,
580           TICODE_kCAN,
581           TICODE_kCMD,
582           TICODE_kCPY,
583           TICODE_kCRT,
584           TICODE_kDC,
585           TICODE_kDL,
586           TICODE_kslt,
587           TICODE_kEND,
588           TICODE_kEOL,
589           TICODE_kEXT,
590           TICODE_kind,
591           TICODE_kFND,
592           TICODE_kHLP,
593           TICODE_kHOM,
594           TICODE_kIC,
595           TICODE_kLFT,
596           TICODE_kMSG,
597           TICODE_kMOV,
598           TICODE_kNXT,
599           TICODE_kOPT,
600           TICODE_kPRV,
601           TICODE_kPRT,
602           TICODE_kri,
603           TICODE_kRDO,
604           TICODE_kRPL,
605           TICODE_kRIT,
606           TICODE_kRES,
607           TICODE_kSAV,
608           TICODE_kSPD,
609           TICODE_khts,
610           TICODE_kUND,
611           TICODE_kspd,
612           TICODE_kund,
613           TICODE_kcuu1,
614           TICODE_rmkx,
615           TICODE_smkx,
616           TICODE_lf0,
617           TICODE_lf1,
618           TICODE_lf2,
619           TICODE_lf3,
620           TICODE_lf4,
621           TICODE_lf5,
622           TICODE_lf6,
623           TICODE_lf7,
624           TICODE_lf8,
625           TICODE_lf9,
626           TICODE_lf10,
627           TICODE_fln,
628           TICODE_rmln,
629           TICODE_smln,
630           TICODE_rmm,
631           TICODE_smm,
632           TICODE_mhpa,
633           TICODE_mcud1,
634           TICODE_mcub1,
635           TICODE_mcuf1,
636           TICODE_mvpa,
637           TICODE_mcuu1,
638           TICODE_minfo,
639           TICODE_nel,
640           TICODE_porder,
641           TICODE_oc,
642           TICODE_op,
643           TICODE_pad,
644           TICODE_dch,
645           TICODE_dl,
646           TICODE_cud,
647           TICODE_mcud,
648           TICODE_ich,
649           TICODE_indn,
650           TICODE_il,
651           TICODE_cub,
652           TICODE_mcub,
653           TICODE_cuf,
654           TICODE_mcuf,
655           TICODE_rin,
656           TICODE_cuu,
657           TICODE_mcuu,
658           TICODE_pctrm,
659           TICODE_pfkey,
660           TICODE_pfloc,
661           TICODE_pfxl,
662           TICODE_pfx,
663           TICODE_pln,
664           TICODE_mc0,
665           TICODE_mc5p,
666           TICODE_mc4,
667           TICODE_mc5,
668           TICODE_pulse,
669           TICODE_qdial,
670           TICODE_rmclk,
671           TICODE_rep,
672           TICODE_rfi,
673           TICODE_reqmp,
674           TICODE_rs1,
675           TICODE_rs2,
676           TICODE_rs3,
677           TICODE_rf,
678           TICODE_rc,
679           TICODE_vpa,
680           TICODE_sc,
681           TICODE_scesc,
682           TICODE_ind,
683           TICODE_ri,
684           TICODE_scs,
685           TICODE_s0ds,
686           TICODE_s1ds,
687           TICODE_s2ds,
688           TICODE_s3ds,
689           TICODE_sgr1,
690           TICODE_setab,
691           TICODE_setaf,
692           TICODE_sgr,
693           TICODE_setb,
694           TICODE_smgb,
695           TICODE_smgbp,
696           TICODE_sclk,
697           TICODE_setcolor,
698           TICODE_scp,
699           TICODE_setf,
700           TICODE_smgl,
701           TICODE_smglp,
702           TICODE_smglr,
703           TICODE_slines,
704           TICODE_slength,
705           TICODE_smgr,
706           TICODE_smgrp,
707           TICODE_hts,
708           TICODE_smgtb,
709           TICODE_smgt,
710           TICODE_smgtp,
711           TICODE_wind,
712           TICODE_sbim,
713           TICODE_scsd,
714           TICODE_rbim,
715           TICODE_rcsd,
716           TICODE_subcs,
717           TICODE_supcs,
718           TICODE_ht,
719           TICODE_docr,
720           TICODE_tsl,
721           TICODE_tone,
722           TICODE_u0,
723           TICODE_u1,
724           TICODE_u2,
725           TICODE_u3,
726           TICODE_u4,
727           TICODE_u5,
728           TICODE_u6,
729           TICODE_u7,
730           TICODE_u8,
731           TICODE_u9,
732           TICODE_uc,
733           TICODE_hu,
734           TICODE_wait,
735           TICODE_xoffc,
736           TICODE_xonc,
737           TICODE_zerom
738 };
739 #define TISTRMAX                        TICODE_zerom
740 
741 #define t_acs_chars(t)                            (t)->strs[TICODE_acsc]
742 #define t_alt_scancode_esc(t)           (t)->strs[TICODE_scesa]
743 #define t_back_tab(t)                             (t)->strs[TICODE_cbt]
744 #define t_bell(t)                       (t)->strs[TICODE_bel]
745 #define t_bit_image_carriage_return(t)  (t)->strs[TICODE_bicr]
746 #define t_bit_image_newline(t)                    (t)->strs[TICODE_binel]
747 #define t_bit_image_repeat(t)           (t)->strs[TICODE_birep]
748 #define t_carriage_return(t)            (t)->strs[TICODE_cr]
749 #define t_change_char_pitch(t)                    (t)->strs[TICODE_cpi]
750 #define t_change_line_pitch(t)                    (t)->strs[TICODE_lpi]
751 #define t_change_res_horz(t)            (t)->strs[TICODE_chr]
752 #define t_change_res_vert(t)            (t)->strs[TICODE_cvr]
753 #define t_change_scroll_region(t)       (t)->strs[TICODE_csr]
754 #define t_char_padding(t)               (t)->strs[TICODE_rmp]
755 #define t_char_set_names(t)             (t)->strs[TICODE_csnm]
756 #define t_clear_all_tabs(t)             (t)->strs[TICODE_tbc]
757 #define t_clear_margins(t)              (t)->strs[TICODE_mgc]
758 #define t_clear_screen(t)               (t)->strs[TICODE_clear]
759 #define t_clr_bol(t)                              (t)->strs[TICODE_el1]
760 #define t_clr_eol(t)                              (t)->strs[TICODE_el]
761 #define t_clr_eos(t)                              (t)->strs[TICODE_ed]
762 #define t_code_set_init(t)              (t)->strs[TICODE_csin]
763 #define t_color_names(t)                (t)->strs[TICODE_colornm]
764 #define t_column_address(t)             (t)->strs[TICODE_hpa]
765 #define t_command_character(t)                    (t)->strs[TICODE_cmdch]
766 #define t_create_window(t)              (t)->strs[TICODE_cwin]
767 #define t_cursor_address(t)             (t)->strs[TICODE_cup]
768 #define t_cursor_down(t)                (t)->strs[TICODE_cud1]
769 #define t_cursor_home(t)                (t)->strs[TICODE_home]
770 #define t_cursor_invisible(t)           (t)->strs[TICODE_civis]
771 #define t_cursor_left(t)                (t)->strs[TICODE_cub1]
772 #define t_cursor_mem_address(t)                   (t)->strs[TICODE_mrcup]
773 #define t_cursor_normal(t)              (t)->strs[TICODE_cnorm]
774 #define t_cursor_right(t)               (t)->strs[TICODE_cuf1]
775 #define t_cursor_to_ll(t)               (t)->strs[TICODE_ll]
776 #define t_cursor_up(t)                            (t)->strs[TICODE_cuu1]
777 #define t_cursor_visible(t)             (t)->strs[TICODE_cvvis]
778 #define t_define_bit_image_region(t)    (t)->strs[TICODE_defbi]
779 #define t_define_char(t)                (t)->strs[TICODE_defc]
780 #define t_delete_character(t)           (t)->strs[TICODE_dch1]
781 #define t_delete_line(t)                (t)->strs[TICODE_dl1]
782 #define t_device_type(t)                (t)->strs[TICODE_devt]
783 #define t_dial_phone(t)                           (t)->strs[TICODE_dial]
784 #define t_dis_status_line(t)            (t)->strs[TICODE_dsl]
785 #define t_display_clock(t)              (t)->strs[TICODE_dclk]
786 #define t_display_pc_char(t)            (t)->strs[TICODE_dispc]
787 #define t_down_half_time(t)             (t)->strs[TICODE_hd]
788 #define t_ena_acs(t)                              (t)->strs[TICODE_enacs]
789 #define t_end_bit_image_region(t)       (t)->strs[TICODE_endbi]
790 #define t_enter_alt_charset_mode(t)     (t)->strs[TICODE_smacs]
791 #define t_enter_am_mode(t)              (t)->strs[TICODE_smam]
792 #define t_enter_blink_mode(t)           (t)->strs[TICODE_blink]
793 #define t_enter_bold_mode(t)            (t)->strs[TICODE_bold]
794 #define t_enter_ca_mode(t)              (t)->strs[TICODE_smcup]
795 #define t_enter_delete_mode(t)                    (t)->strs[TICODE_smdc]
796 #define t_enter_dim_mode(t)             (t)->strs[TICODE_dim]
797 #define t_enter_doublewide_mode(t)      (t)->strs[TICODE_swidm]
798 #define t_enter_draft_quality(t)        (t)->strs[TICODE_sdrfq]
799 #define t_enter_horizontal_hl_mode(t)   (t)->strs[TICODE_ehhlm]
800 #define t_enter_insert_mode(t)                    (t)->strs[TICODE_smir]
801 #define t_enter_italics_mode(t)                   (t)->strs[TICODE_sitm]
802 #define t_enter_left_hl_mode(t)                   (t)->strs[TICODE_elhlm]
803 #define t_enter_leftward_mode(t)        (t)->strs[TICODE_slm]
804 #define t_enter_low_hl_mode(t)                    (t)->strs[TICODE_elohlm]
805 #define t_enter_micro_mode(t)           (t)->strs[TICODE_smicm]
806 #define t_enter_near_quality_letter(t)  (t)->strs[TICODE_snlq]
807 #define t_enter_normal_quality(t)       (t)->strs[TICODE_snrmq]
808 #define t_enter_pc_charset_mode(t)      (t)->strs[TICODE_smpch]
809 #define t_enter_protected_mode(t)       (t)->strs[TICODE_prot]
810 #define t_enter_reverse_mode(t)                   (t)->strs[TICODE_rev]
811 #define t_enter_right_hl_mode(t)        (t)->strs[TICODE_erhlm]
812 #define t_enter_scancode_mode(t)        (t)->strs[TICODE_smsc]
813 #define t_enter_secure_mode(t)                    (t)->strs[TICODE_invis]
814 #define t_enter_shadow_mode(t)                    (t)->strs[TICODE_sshm]
815 #define t_enter_standout_mode(t)        (t)->strs[TICODE_smso]
816 #define t_enter_subscript_mode(t)       (t)->strs[TICODE_ssubm]
817 #define t_enter_superscript_mode(t)     (t)->strs[TICODE_ssupm]
818 #define t_enter_top_hl_mode(t)                    (t)->strs[TICODE_ethlm]
819 #define t_enter_underline_mode(t)       (t)->strs[TICODE_smul]
820 #define t_enter_upward_mode(t)                    (t)->strs[TICODE_sum]
821 #define t_enter_vertical_hl_mode(t)     (t)->strs[TICODE_evhlm]
822 #define t_enter_xon_mode(t)             (t)->strs[TICODE_smxon]
823 #define t_erase_chars(t)                (t)->strs[TICODE_ech]
824 #define t_exit_alt_charset_mode(t)      (t)->strs[TICODE_rmacs]
825 #define t_exit_am_mode(t)               (t)->strs[TICODE_rmam]
826 #define t_exit_attribute_mode(t)        (t)->strs[TICODE_sgr0]
827 #define t_exit_ca_mode(t)               (t)->strs[TICODE_rmcup]
828 #define t_exit_delete_mode(t)           (t)->strs[TICODE_rmdc]
829 #define t_exit_doublewide_mode(t)       (t)->strs[TICODE_rwidm]
830 #define t_exit_insert_mode(t)           (t)->strs[TICODE_rmir]
831 #define t_exit_italics_mode(t)                    (t)->strs[TICODE_ritm]
832 #define t_exit_leftward_mode(t)                   (t)->strs[TICODE_rlm]
833 #define t_exit_micro_mode(t)            (t)->strs[TICODE_rmicm]
834 #define t_exit_pc_charset_mode(t)       (t)->strs[TICODE_rmpch]
835 #define t_exit_scancode_mode(t)                   (t)->strs[TICODE_rmsc]
836 #define t_exit_shadow_mode(t)           (t)->strs[TICODE_rshm]
837 #define t_exit_standout_mode(t)                   (t)->strs[TICODE_rmso]
838 #define t_exit_subscript_mode(t)        (t)->strs[TICODE_rsubm]
839 #define t_exit_superscript_mode(t)      (t)->strs[TICODE_rsupm]
840 #define t_exit_underline_mode(t)        (t)->strs[TICODE_rmul]
841 #define t_exit_upward_mode(t)           (t)->strs[TICODE_rum]
842 #define t_exit_xon_mode(t)              (t)->strs[TICODE_rmxon]
843 #define t_fixed_pause(t)                (t)->strs[TICODE_pause]
844 #define t_flash_hook(t)                           (t)->strs[TICODE_hook]
845 #define t_flash_screen(t)               (t)->strs[TICODE_flash]
846 #define t_form_feed(t)                            (t)->strs[TICODE_ff]
847 #define t_from_status_line(t)           (t)->strs[TICODE_fsl]
848 #define t_get_mouse(t)                            (t)->strs[TICODE_getm]
849 #define t_goto_window(t)                (t)->strs[TICODE_wingo]
850 #define t_hangup(t)                     (t)->strs[TICODE_hup]
851 #define t_init_1string(t)               (t)->strs[TICODE_is1]
852 #define t_init_2string(t)               (t)->strs[TICODE_is2]
853 #define t_init_3string(t)               (t)->strs[TICODE_is3]
854 #define t_init_file(t)                            (t)->strs[TICODE_if]
855 #define t_init_prog(t)                            (t)->strs[TICODE_iprog]
856 #define t_initialize_color(t)           (t)->strs[TICODE_initc]
857 #define t_initialize_pair(t)            (t)->strs[TICODE_initp]
858 #define t_insert_character(t)           (t)->strs[TICODE_ich1]
859 #define t_insert_line(t)                (t)->strs[TICODE_il1]
860 #define t_insert_padding(t)             (t)->strs[TICODE_ip]
861 #define t_key_a1(t)                     (t)->strs[TICODE_ka1]
862 #define t_key_a3(t)                     (t)->strs[TICODE_ka3]
863 #define t_key_b2(t)                     (t)->strs[TICODE_kb2]
864 #define t_key_backspace(t)              (t)->strs[TICODE_kbs]
865 #define t_key_beg(t)                              (t)->strs[TICODE_kbeg]
866 #define t_key_btab(t)                             (t)->strs[TICODE_kcbt]
867 #define t_key_c1(t)                     (t)->strs[TICODE_kc1]
868 #define t_key_c3(t)                     (t)->strs[TICODE_kc3]
869 #define t_key_cancel(t)                           (t)->strs[TICODE_kcan]
870 #define t_key_catab(t)                            (t)->strs[TICODE_ktbc]
871 #define t_key_clear(t)                            (t)->strs[TICODE_kclr]
872 #define t_key_close(t)                            (t)->strs[TICODE_kclo]
873 #define t_key_command(t)                (t)->strs[TICODE_kcmd]
874 #define t_key_copy(t)                             (t)->strs[TICODE_kcpy]
875 #define t_key_create(t)                           (t)->strs[TICODE_kcrt]
876 #define t_key_ctab(t)                             (t)->strs[TICODE_kctab]
877 #define t_key_dc(t)                     (t)->strs[TICODE_kdch1]
878 #define t_key_dl(t)                     (t)->strs[TICODE_kdl1]
879 #define t_key_down(t)                             (t)->strs[TICODE_kcud1]
880 #define t_key_eic(t)                              (t)->strs[TICODE_krmir]
881 #define t_key_end(t)                              (t)->strs[TICODE_kend]
882 #define t_key_enter(t)                            (t)->strs[TICODE_kent]
883 #define t_key_eol(t)                              (t)->strs[TICODE_kel]
884 #define t_key_eos(t)                              (t)->strs[TICODE_ked]
885 #define t_key_exit(t)                             (t)->strs[TICODE_kext]
886 #define t_key_f0(t)                     (t)->strs[TICODE_kf0]
887 #define t_key_f1(t)                     (t)->strs[TICODE_kf1]
888 #define t_key_f2(t)                     (t)->strs[TICODE_kf2]
889 #define t_key_f3(t)                     (t)->strs[TICODE_kf3]
890 #define t_key_f4(t)                     (t)->strs[TICODE_kf4]
891 #define t_key_f5(t)                     (t)->strs[TICODE_kf5]
892 #define t_key_f6(t)                     (t)->strs[TICODE_kf6]
893 #define t_key_f7(t)                     (t)->strs[TICODE_kf7]
894 #define t_key_f8(t)                     (t)->strs[TICODE_kf8]
895 #define t_key_f9(t)                     (t)->strs[TICODE_kf9]
896 #define t_key_f10(t)                              (t)->strs[TICODE_kf10]
897 #define t_key_f11(t)                              (t)->strs[TICODE_kf11]
898 #define t_key_f12(t)                              (t)->strs[TICODE_kf12]
899 #define t_key_f13(t)                              (t)->strs[TICODE_kf13]
900 #define t_key_f14(t)                              (t)->strs[TICODE_kf14]
901 #define t_key_f15(t)                              (t)->strs[TICODE_kf15]
902 #define t_key_f16(t)                              (t)->strs[TICODE_kf16]
903 #define t_key_f17(t)                              (t)->strs[TICODE_kf17]
904 #define t_key_f18(t)                              (t)->strs[TICODE_kf18]
905 #define t_key_f19(t)                              (t)->strs[TICODE_kf19]
906 #define t_key_f20(t)                              (t)->strs[TICODE_kf20]
907 #define t_key_f21(t)                              (t)->strs[TICODE_kf21]
908 #define t_key_f22(t)                              (t)->strs[TICODE_kf22]
909 #define t_key_f23(t)                              (t)->strs[TICODE_kf23]
910 #define t_key_f24(t)                              (t)->strs[TICODE_kf24]
911 #define t_key_f25(t)                              (t)->strs[TICODE_kf25]
912 #define t_key_f26(t)                              (t)->strs[TICODE_kf26]
913 #define t_key_f27(t)                              (t)->strs[TICODE_kf27]
914 #define t_key_f28(t)                              (t)->strs[TICODE_kf28]
915 #define t_key_f29(t)                              (t)->strs[TICODE_kf29]
916 #define t_key_f30(t)                              (t)->strs[TICODE_kf30]
917 #define t_key_f31(t)                              (t)->strs[TICODE_kf31]
918 #define t_key_f32(t)                              (t)->strs[TICODE_kf32]
919 #define t_key_f33(t)                              (t)->strs[TICODE_kf33]
920 #define t_key_f34(t)                              (t)->strs[TICODE_kf34]
921 #define t_key_f35(t)                              (t)->strs[TICODE_kf35]
922 #define t_key_f36(t)                              (t)->strs[TICODE_kf36]
923 #define t_key_f37(t)                              (t)->strs[TICODE_kf37]
924 #define t_key_f38(t)                              (t)->strs[TICODE_kf38]
925 #define t_key_f39(t)                              (t)->strs[TICODE_kf39]
926 #define t_key_f40(t)                              (t)->strs[TICODE_kf40]
927 #define t_key_f41(t)                              (t)->strs[TICODE_kf41]
928 #define t_key_f42(t)                              (t)->strs[TICODE_kf42]
929 #define t_key_f43(t)                              (t)->strs[TICODE_kf43]
930 #define t_key_f44(t)                              (t)->strs[TICODE_kf44]
931 #define t_key_f45(t)                              (t)->strs[TICODE_kf45]
932 #define t_key_f46(t)                              (t)->strs[TICODE_kf46]
933 #define t_key_f47(t)                              (t)->strs[TICODE_kf47]
934 #define t_key_f48(t)                              (t)->strs[TICODE_kf48]
935 #define t_key_f49(t)                              (t)->strs[TICODE_kf49]
936 #define t_key_f50(t)                              (t)->strs[TICODE_kf50]
937 #define t_key_f51(t)                              (t)->strs[TICODE_kf51]
938 #define t_key_f52(t)                              (t)->strs[TICODE_kf52]
939 #define t_key_f53(t)                              (t)->strs[TICODE_kf53]
940 #define t_key_f54(t)                              (t)->strs[TICODE_kf54]
941 #define t_key_f55(t)                              (t)->strs[TICODE_kf55]
942 #define t_key_f56(t)                              (t)->strs[TICODE_kf56]
943 #define t_key_f57(t)                              (t)->strs[TICODE_kf57]
944 #define t_key_f58(t)                              (t)->strs[TICODE_kf58]
945 #define t_key_f59(t)                              (t)->strs[TICODE_kf59]
946 #define t_key_f60(t)                              (t)->strs[TICODE_kf60]
947 #define t_key_f61(t)                              (t)->strs[TICODE_kf61]
948 #define t_key_f62(t)                              (t)->strs[TICODE_kf62]
949 #define t_key_f63(t)                              (t)->strs[TICODE_kf63]
950 #define t_key_find(t)                             (t)->strs[TICODE_kfnd]
951 #define t_key_help(t)                             (t)->strs[TICODE_khlp]
952 #define t_key_home(t)                             (t)->strs[TICODE_khome]
953 #define t_key_ic(t)                     (t)->strs[TICODE_kich1]
954 #define t_key_il(t)                     (t)->strs[TICODE_kil1]
955 #define t_key_left(t)                             (t)->strs[TICODE_kcub1]
956 #define t_key_ll(t)                     (t)->strs[TICODE_kll]
957 #define t_key_mark(t)                             (t)->strs[TICODE_kmrk]
958 #define t_key_message(t)                (t)->strs[TICODE_kmsg]
959 #define t_key_mouse(t)                            (t)->strs[TICODE_kmous]
960 #define t_key_move(t)                             (t)->strs[TICODE_kmov]
961 #define t_key_next(t)                             (t)->strs[TICODE_knxt]
962 #define t_key_npage(t)                            (t)->strs[TICODE_knp]
963 #define t_key_open(t)                             (t)->strs[TICODE_kopn]
964 #define t_key_options(t)                (t)->strs[TICODE_kopt]
965 #define t_key_ppage(t)                            (t)->strs[TICODE_kpp]
966 #define t_key_previous(t)               (t)->strs[TICODE_kprv]
967 #define t_key_print(t)                            (t)->strs[TICODE_kprt]
968 #define t_key_redo(t)                             (t)->strs[TICODE_krdo]
969 #define t_key_reference(t)              (t)->strs[TICODE_kref]
970 #define t_key_refresh(t)                (t)->strs[TICODE_krfr]
971 #define t_key_replace(t)                (t)->strs[TICODE_krpl]
972 #define t_key_restart(t)                (t)->strs[TICODE_krst]
973 #define t_key_resume(t)                           (t)->strs[TICODE_kres]
974 #define t_key_right(t)                            (t)->strs[TICODE_kcuf1]
975 #define t_key_save(t)                             (t)->strs[TICODE_ksav]
976 #define t_key_sbeg(t)                             (t)->strs[TICODE_kBEG]
977 #define t_key_scancel(t)                (t)->strs[TICODE_kCAN]
978 #define t_key_scommand(t)               (t)->strs[TICODE_kCMD]
979 #define t_key_scopy(t)                            (t)->strs[TICODE_kCPY]
980 #define t_key_screate(t)                (t)->strs[TICODE_kCRT]
981 #define t_key_sdc(t)                              (t)->strs[TICODE_kDC]
982 #define t_key_sdl(t)                              (t)->strs[TICODE_kDL]
983 #define t_key_select(t)                           (t)->strs[TICODE_kslt]
984 #define t_key_send(t)                             (t)->strs[TICODE_kEND]
985 #define t_key_seol(t)                             (t)->strs[TICODE_kEOL]
986 #define t_key_sexit(t)                            (t)->strs[TICODE_kEXT]
987 #define t_key_sf(t)                     (t)->strs[TICODE_kind]
988 #define t_key_sfind(t)                            (t)->strs[TICODE_kFND]
989 #define t_key_shelp(t)                            (t)->strs[TICODE_kHLP]
990 #define t_key_shome(t)                            (t)->strs[TICODE_kHOM]
991 #define t_key_sic(t)                              (t)->strs[TICODE_kIC]
992 #define t_key_sleft(t)                            (t)->strs[TICODE_kLFT]
993 #define t_key_smessage(t)               (t)->strs[TICODE_kMSG]
994 #define t_key_smove(t)                            (t)->strs[TICODE_kMOV]
995 #define t_key_snext(t)                            (t)->strs[TICODE_kNXT]
996 #define t_key_soptions(t)               (t)->strs[TICODE_kOPT]
997 #define t_key_sprevious(t)              (t)->strs[TICODE_kPRV]
998 #define t_key_sprint(t)                           (t)->strs[TICODE_kPRT]
999 #define t_key_sr(t)                     (t)->strs[TICODE_kri]
1000 #define t_key_sredo(t)                            (t)->strs[TICODE_kRDO]
1001 #define t_key_sreplace(t)               (t)->strs[TICODE_kRPL]
1002 #define t_key_sright(t)                           (t)->strs[TICODE_kRIT]
1003 #define t_key_srsume(t)                           (t)->strs[TICODE_kRES]
1004 #define t_key_ssave(t)                            (t)->strs[TICODE_kSAV]
1005 #define t_key_ssuspend(t)               (t)->strs[TICODE_kSPD]
1006 #define t_key_stab(t)                             (t)->strs[TICODE_khts]
1007 #define t_key_sundo(t)                            (t)->strs[TICODE_kUND]
1008 #define t_key_suspend(t)                (t)->strs[TICODE_kspd]
1009 #define t_key_undo(t)                             (t)->strs[TICODE_kund]
1010 #define t_key_up(t)                     (t)->strs[TICODE_kcuu1]
1011 #define t_keypad_local(t)               (t)->strs[TICODE_rmkx]
1012 #define t_keypad_xmit(t)                (t)->strs[TICODE_smkx]
1013 #define t_lab_f0(t)                     (t)->strs[TICODE_lf0]
1014 #define t_lab_f1(t)                     (t)->strs[TICODE_lf1]
1015 #define t_lab_f2(t)                     (t)->strs[TICODE_lf2]
1016 #define t_lab_f3(t)                     (t)->strs[TICODE_lf3]
1017 #define t_lab_f4(t)                     (t)->strs[TICODE_lf4]
1018 #define t_lab_f5(t)                     (t)->strs[TICODE_lf5]
1019 #define t_lab_f6(t)                     (t)->strs[TICODE_lf6]
1020 #define t_lab_f7(t)                     (t)->strs[TICODE_lf7]
1021 #define t_lab_f8(t)                     (t)->strs[TICODE_lf8]
1022 #define t_lab_f9(t)                     (t)->strs[TICODE_lf9]
1023 #define t_lab_f10(t)                              (t)->strs[TICODE_lf10]
1024 #define t_label_format(t)               (t)->strs[TICODE_fln]
1025 #define t_label_off(t)                            (t)->strs[TICODE_rmln]
1026 #define t_label_on(t)                             (t)->strs[TICODE_smln]
1027 #define t_meta_off(t)                             (t)->strs[TICODE_rmm]
1028 #define t_meta_on(t)                              (t)->strs[TICODE_smm]
1029 #define t_micro_column_address(t)       (t)->strs[TICODE_mhpa]
1030 #define t_micro_down(t)                           (t)->strs[TICODE_mcud1]
1031 #define t_micro_left(t)                           (t)->strs[TICODE_mcub1]
1032 #define t_micro_right(t)                (t)->strs[TICODE_mcuf1]
1033 #define t_micro_row_address(t)                    (t)->strs[TICODE_mvpa]
1034 #define t_micro_up(t)                             (t)->strs[TICODE_mcuu1]
1035 #define t_mouse_info(t)                           (t)->strs[TICODE_minfo]
1036 #define t_newline(t)                              (t)->strs[TICODE_nel]
1037 #define t_order_of_pins(t)              (t)->strs[TICODE_porder]
1038 #define t_orig_colors(t)                (t)->strs[TICODE_oc]
1039 #define t_orig_pair(t)                            (t)->strs[TICODE_op]
1040 #define t_pad_char(t)                             (t)->strs[TICODE_pad]
1041 #define t_parm_dch(t)                             (t)->strs[TICODE_dch]
1042 #define t_parm_delete_line(t)           (t)->strs[TICODE_dl]
1043 #define t_parm_down_cursor(t)           (t)->strs[TICODE_cud]
1044 #define t_parm_down_micro(t)            (t)->strs[TICODE_mcud]
1045 #define t_parm_ich(t)                             (t)->strs[TICODE_ich]
1046 #define t_parm_index(t)                           (t)->strs[TICODE_indn]
1047 #define t_parm_insert_line(t)           (t)->strs[TICODE_il]
1048 #define t_parm_left_cursor(t)           (t)->strs[TICODE_cub]
1049 #define t_parm_left_micro(t)            (t)->strs[TICODE_mcub]
1050 #define t_parm_right_cursor(t)                    (t)->strs[TICODE_cuf]
1051 #define t_parm_right_micro(t)           (t)->strs[TICODE_mcuf]
1052 #define t_parm_rindex(t)                (t)->strs[TICODE_rin]
1053 #define t_parm_up_cursor(t)             (t)->strs[TICODE_cuu]
1054 #define t_parm_up_micro(t)              (t)->strs[TICODE_mcuu]
1055 #define t_pc_term_options(t)            (t)->strs[TICODE_pctrm]
1056 #define t_pkey_key(t)                             (t)->strs[TICODE_pfkey]
1057 #define t_pkey_local(t)                           (t)->strs[TICODE_pfloc]
1058 #define t_pkey_plab(t)                            (t)->strs[TICODE_pfxl]
1059 #define t_pkey_xmit(t)                            (t)->strs[TICODE_pfx]
1060 #define t_plab_norm(t)                            (t)->strs[TICODE_pln]
1061 #define t_print_screen(t)               (t)->strs[TICODE_mc0]
1062 #define t_ptr_non(t)                              (t)->strs[TICODE_mc5p]
1063 #define t_ptr_off(t)                              (t)->strs[TICODE_mc4]
1064 #define t_ptr_on(t)                     (t)->strs[TICODE_mc5]
1065 #define t_pulse(t)                      (t)->strs[TICODE_pulse]
1066 #define t_quick_dial(t)                           (t)->strs[TICODE_qdial]
1067 #define t_remove_clock(t)               (t)->strs[TICODE_rmclk]
1068 #define t_repeat_char(t)                (t)->strs[TICODE_rep]
1069 #define t_req_for_input(t)              (t)->strs[TICODE_rfi]
1070 #define t_req_mouse_pos(t)              (t)->strs[TICODE_reqmp]
1071 #define t_reset_1string(t)              (t)->strs[TICODE_rs1]
1072 #define t_reset_2string(t)              (t)->strs[TICODE_rs2]
1073 #define t_reset_3string(t)              (t)->strs[TICODE_rs3]
1074 #define t_reset_file(t)                           (t)->strs[TICODE_rf]
1075 #define t_restore_cursor(t)             (t)->strs[TICODE_rc]
1076 #define t_row_address(t)                (t)->strs[TICODE_vpa]
1077 #define t_save_cursor(t)                (t)->strs[TICODE_sc]
1078 #define t_scancode_escape(t)            (t)->strs[TICODE_scesc]
1079 #define t_scroll_forward(t)             (t)->strs[TICODE_ind]
1080 #define t_scroll_reverse(t)             (t)->strs[TICODE_ri]
1081 #define t_select_char_set(t)            (t)->strs[TICODE_scs]
1082 #define t_set0_des_seq(t)               (t)->strs[TICODE_s0ds]
1083 #define t_set1_des_seq(t)               (t)->strs[TICODE_s1ds]
1084 #define t_set2_des_seq(t)               (t)->strs[TICODE_s2ds]
1085 #define t_set3_des_seq(t)               (t)->strs[TICODE_s3ds]
1086 #define t_set_a_attributes(t)           (t)->strs[TICODE_sgr1]
1087 #define t_set_a_background(t)           (t)->strs[TICODE_setab]
1088 #define t_set_a_foreground(t)           (t)->strs[TICODE_setaf]
1089 #define t_set_attributes(t)             (t)->strs[TICODE_sgr]
1090 #define t_set_background(t)             (t)->strs[TICODE_setb]
1091 #define t_set_bottom_margin(t)                    (t)->strs[TICODE_smgb]
1092 #define t_set_bottom_margin_parm(t)     (t)->strs[TICODE_smgbp]
1093 #define t_set_clock(t)                            (t)->strs[TICODE_sclk]
1094 #define t_set_color_band(t)             (t)->strs[TICODE_setcolor]
1095 #define t_set_color_pair(t)             (t)->strs[TICODE_scp]
1096 #define t_set_foreground(t)             (t)->strs[TICODE_setf]
1097 #define t_set_left_margin(t)            (t)->strs[TICODE_smgl]
1098 #define t_set_left_margin_parm(t)       (t)->strs[TICODE_smglp]
1099 #define t_set_lr_margin(t)              (t)->strs[TICODE_smglr]
1100 #define t_set_page_length(t)            (t)->strs[TICODE_slines]
1101 #define t_set_pglen_inch(t)             (t)->strs[TICODE_slength]
1102 #define t_set_right_margin(t)           (t)->strs[TICODE_smgr]
1103 #define t_set_right_margin_parm(t)      (t)->strs[TICODE_smgrp]
1104 #define t_set_tab(t)                              (t)->strs[TICODE_hts]
1105 #define t_set_tb_margin(t)              (t)->strs[TICODE_smgtb]
1106 #define t_set_top_margin(t)             (t)->strs[TICODE_smgt]
1107 #define t_set_top_margin_parm(t)        (t)->strs[TICODE_smgtp]
1108 #define t_set_window(t)                           (t)->strs[TICODE_wind]
1109 #define t_start_bit_image(t)            (t)->strs[TICODE_sbim]
1110 #define t_start_char_set_def(t)                   (t)->strs[TICODE_scsd]
1111 #define t_stop_bit_image(t)             (t)->strs[TICODE_rbim]
1112 #define t_stop_char_set_def(t)                    (t)->strs[TICODE_rcsd]
1113 #define t_subscript_characters(t)       (t)->strs[TICODE_subcs]
1114 #define t_superscript_characters(t)     (t)->strs[TICODE_supcs]
1115 #define t_tab(t)                        (t)->strs[TICODE_ht]
1116 #define t_these_cause_cr(t)             (t)->strs[TICODE_docr]
1117 #define t_to_status_line(t)             (t)->strs[TICODE_tsl]
1118 #define t_tone(t)                       (t)->strs[TICODE_tone]
1119 #define t_user0(t)                      (t)->strs[TICODE_u0]
1120 #define t_user1(t)                      (t)->strs[TICODE_u1]
1121 #define t_user2(t)                      (t)->strs[TICODE_u2]
1122 #define t_user3(t)                      (t)->strs[TICODE_u3]
1123 #define t_user4(t)                      (t)->strs[TICODE_u4]
1124 #define t_user5(t)                      (t)->strs[TICODE_u5]
1125 #define t_user6(t)                      (t)->strs[TICODE_u6]
1126 #define t_user7(t)                      (t)->strs[TICODE_u7]
1127 #define t_user8(t)                      (t)->strs[TICODE_u8]
1128 #define t_user9(t)                      (t)->strs[TICODE_u9]
1129 #define t_underline_char(t)             (t)->strs[TICODE_uc]
1130 #define t_up_half_line(t)               (t)->strs[TICODE_hu]
1131 #define t_wait_tone(t)                            (t)->strs[TICODE_wait]
1132 #define t_xoff_character(t)             (t)->strs[TICODE_xoffc]
1133 #define t_xon_character(t)              (t)->strs[TICODE_xonc]
1134 #define t_zero_motion(t)                (t)->strs[TICODE_zerom]
1135 
1136 #define acs_chars                        t_acs_chars(cur_term)
1137 #define alt_scancode_esc                 t_alt_scancode_esc(cur_term)
1138 #define back_tab                         t_back_tab(cur_term)
1139 #define bell                                       t_bell(cur_term)
1140 #define bit_image_carriage_return        t_bit_image_carriage_return(cur_term)
1141 #define bit_image_newline                t_bit_image_newline(cur_term)
1142 #define bit_image_repeat                 t_bit_image_repeat(cur_term)
1143 #define carriage_return                            t_carriage_return(cur_term)
1144 #define change_char_pitch                t_change_char_pitch(cur_term)
1145 #define change_line_pitch                t_change_line_pitch(cur_term)
1146 #define change_res_horz                            t_change_res_horz(cur_term)
1147 #define change_res_vert                            t_change_res_vert(cur_term)
1148 #define change_scroll_region             t_change_scroll_region(cur_term)
1149 #define char_padding                               t_char_padding(cur_term)
1150 #define char_set_names                             t_char_set_names(cur_term)
1151 #define clear_all_tabs                             t_clear_all_tabs(cur_term)
1152 #define clear_margins                              t_clear_margins(cur_term)
1153 #define clear_screen                               t_clear_screen(cur_term)
1154 #define clr_bol                                    t_clr_bol(cur_term)
1155 #define clr_eol                                    t_clr_eol(cur_term)
1156 #define clr_eos                                    t_clr_eos(cur_term)
1157 #define code_set_init                              t_code_set_init(cur_term)
1158 #define color_names                      t_color_names(cur_term)
1159 #define column_address                             t_column_address(cur_term)
1160 #define command_character                t_command_character(cur_term)
1161 #define create_window                              t_create_window(cur_term)
1162 #define cursor_address                             t_cursor_address(cur_term)
1163 #define cursor_down                      t_cursor_down(cur_term)
1164 #define cursor_home                      t_cursor_home(cur_term)
1165 #define cursor_invisible                 t_cursor_invisible(cur_term)
1166 #define cursor_left                      t_cursor_left(cur_term)
1167 #define cursor_mem_address               t_cursor_mem_address(cur_term)
1168 #define cursor_normal                              t_cursor_normal(cur_term)
1169 #define cursor_right                               t_cursor_right(cur_term)
1170 #define cursor_to_ll                               t_cursor_to_ll(cur_term)
1171 #define cursor_up                        t_cursor_up(cur_term)
1172 #define cursor_visible                             t_cursor_visible(cur_term)
1173 #define define_bit_image_region                    t_define_bit_image_region(cur_term)
1174 #define define_char                      t_define_char(cur_term)
1175 #define delete_character                 t_delete_character(cur_term)
1176 #define delete_line                      t_delete_line(cur_term)
1177 #define device_type                      t_device_type(cur_term)
1178 #define dial_phone                       t_dial_phone(cur_term)
1179 #define dis_status_line                            t_dis_status_line(cur_term)
1180 #define display_clock                              t_display_clock(cur_term)
1181 #define display_pc_char                            t_display_pc_char(cur_term)
1182 #define down_half_time                             t_down_half_time(cur_term)
1183 #define ena_acs                                    t_ena_acs(cur_term)
1184 #define end_bit_image_region             t_end_bit_image_region(cur_term)
1185 #define enter_alt_charset_mode                     t_enter_alt_charset_mode(cur_term)
1186 #define enter_am_mode                              t_enter_am_mode(cur_term)
1187 #define enter_blink_mode                 t_enter_blink_mode(cur_term)
1188 #define enter_bold_mode                            t_enter_bold_mode(cur_term)
1189 #define enter_ca_mode                              t_enter_ca_mode(cur_term)
1190 #define enter_delete_mode                t_enter_delete_mode(cur_term)
1191 #define enter_dim_mode                             t_enter_dim_mode(cur_term)
1192 #define enter_doublewide_mode            t_enter_doublewide_mode(cur_term)
1193 #define enter_draft_quality              t_enter_draft_quality(cur_term)
1194 #define enter_horizontal_hl_mode         t_enter_horizontal_hl_mode(cur_term)
1195 #define enter_insert_mode                t_enter_insert_mode(cur_term)
1196 #define enter_italics_mode               t_enter_italics_mode(cur_term)
1197 #define enter_left_hl_mode               t_enter_left_hl_mode(cur_term)
1198 #define enter_leftward_mode              t_enter_leftward_mode(cur_term)
1199 #define enter_low_hl_mode                t_enter_low_hl_mode(cur_term)
1200 #define enter_micro_mode                 t_enter_micro_mode(cur_term)
1201 #define enter_near_quality_letter        t_enter_near_quality_letter(cur_term)
1202 #define enter_normal_quality             t_enter_normal_quality(cur_term)
1203 #define enter_pc_charset_mode            t_enter_pc_charset_mode(cur_term)
1204 #define enter_protected_mode             t_enter_protected_mode(cur_term)
1205 #define enter_reverse_mode               t_enter_reverse_mode(cur_term)
1206 #define enter_right_hl_mode              t_enter_right_hl_mode(cur_term)
1207 #define enter_scancode_mode              t_enter_scancode_mode(cur_term)
1208 #define enter_secure_mode                t_enter_secure_mode(cur_term)
1209 #define enter_shadow_mode                t_enter_shadow_mode(cur_term)
1210 #define enter_standout_mode              t_enter_standout_mode(cur_term)
1211 #define enter_subscript_mode             t_enter_subscript_mode(cur_term)
1212 #define enter_superscript_mode                     t_enter_superscript_mode(cur_term)
1213 #define enter_top_hl_mode                t_enter_top_hl_mode(cur_term)
1214 #define enter_underline_mode             t_enter_underline_mode(cur_term)
1215 #define enter_upward_mode                t_enter_upward_mode(cur_term)
1216 #define enter_vertical_hl_mode                     t_enter_vertical_hl_mode(cur_term)
1217 #define enter_xon_mode                             t_enter_xon_mode(cur_term)
1218 #define erase_chars                      t_erase_chars(cur_term)
1219 #define exit_alt_charset_mode            t_exit_alt_charset_mode(cur_term)
1220 #define exit_am_mode                               t_exit_am_mode(cur_term)
1221 #define exit_attribute_mode              t_exit_attribute_mode(cur_term)
1222 #define exit_ca_mode                               t_exit_ca_mode(cur_term)
1223 #define exit_delete_mode                 t_exit_delete_mode(cur_term)
1224 #define exit_doublewide_mode             t_exit_doublewide_mode(cur_term)
1225 #define exit_insert_mode                 t_exit_insert_mode(cur_term)
1226 #define exit_italics_mode                t_exit_italics_mode(cur_term)
1227 #define exit_leftward_mode               t_exit_leftward_mode(cur_term)
1228 #define exit_micro_mode                            t_exit_micro_mode(cur_term)
1229 #define exit_pc_charset_mode             t_exit_pc_charset_mode(cur_term)
1230 #define exit_scancode_mode               t_exit_scancode_mode(cur_term)
1231 #define exit_shadow_mode                 t_exit_shadow_mode(cur_term)
1232 #define exit_standout_mode               t_exit_standout_mode(cur_term)
1233 #define exit_subscript_mode              t_exit_subscript_mode(cur_term)
1234 #define exit_superscript_mode            t_exit_superscript_mode(cur_term)
1235 #define exit_underline_mode              t_exit_underline_mode(cur_term)
1236 #define exit_upward_mode                 t_exit_upward_mode(cur_term)
1237 #define exit_xon_mode                              t_exit_xon_mode(cur_term)
1238 #define fixed_pause                      t_fixed_pause(cur_term)
1239 #define flash_hook                       t_flash_hook(cur_term)
1240 #define flash_screen                               t_flash_screen(cur_term)
1241 #define form_feed                        t_form_feed(cur_term)
1242 #define from_status_line                 t_from_status_line(cur_term)
1243 #define get_mouse                        t_get_mouse(cur_term)
1244 #define goto_window                      t_goto_window(cur_term)
1245 #define hangup                                     t_hangup(cur_term)
1246 #define init_1string                               t_init_1string(cur_term)
1247 #define init_2string                               t_init_2string(cur_term)
1248 #define init_3string                               t_init_3string(cur_term)
1249 #define init_file                        t_init_file(cur_term)
1250 #define init_prog                        t_init_prog(cur_term)
1251 #define initialize_color                 t_initialize_color(cur_term)
1252 #define initialize_pair                            t_initialize_pair(cur_term)
1253 #define insert_character                 t_insert_character(cur_term)
1254 #define insert_line                      t_insert_line(cur_term)
1255 #define insert_padding                             t_insert_padding(cur_term)
1256 #define key_a1                                     t_key_a1(cur_term)
1257 #define key_a3                                     t_key_a3(cur_term)
1258 #define key_b2                                     t_key_b2(cur_term)
1259 #define key_backspace                              t_key_backspace(cur_term)
1260 #define key_beg                                    t_key_beg(cur_term)
1261 #define key_btab                         t_key_btab(cur_term)
1262 #define key_c1                                     t_key_c1(cur_term)
1263 #define key_c3                                     t_key_c3(cur_term)
1264 #define key_cancel                       t_key_cancel(cur_term)
1265 #define key_catab                        t_key_catab(cur_term)
1266 #define key_clear                        t_key_clear(cur_term)
1267 #define key_close                        t_key_close(cur_term)
1268 #define key_command                      t_key_command(cur_term)
1269 #define key_copy                         t_key_copy(cur_term)
1270 #define key_create                       t_key_create(cur_term)
1271 #define key_ctab                         t_key_ctab(cur_term)
1272 #define key_dc                                     t_key_dc(cur_term)
1273 #define key_dl                                     t_key_dl(cur_term)
1274 #define key_down                         t_key_down(cur_term)
1275 #define key_eic                                    t_key_eic(cur_term)
1276 #define key_end                                    t_key_end(cur_term)
1277 #define key_enter                        t_key_enter(cur_term)
1278 #define key_eol                                    t_key_eol(cur_term)
1279 #define key_eos                                    t_key_eos(cur_term)
1280 #define key_exit                         t_key_exit(cur_term)
1281 #define key_f0                                     t_key_f0(cur_term)
1282 #define key_f1                                     t_key_f1(cur_term)
1283 #define key_f2                                     t_key_f2(cur_term)
1284 #define key_f3                                     t_key_f3(cur_term)
1285 #define key_f4                                     t_key_f4(cur_term)
1286 #define key_f5                                     t_key_f5(cur_term)
1287 #define key_f6                                     t_key_f6(cur_term)
1288 #define key_f7                                     t_key_f7(cur_term)
1289 #define key_f8                                     t_key_f8(cur_term)
1290 #define key_f9                                     t_key_f9(cur_term)
1291 #define key_f10                                    t_key_f10(cur_term)
1292 #define key_f11                                    t_key_f11(cur_term)
1293 #define key_f12                                    t_key_f12(cur_term)
1294 #define key_f13                                    t_key_f13(cur_term)
1295 #define key_f14                                    t_key_f14(cur_term)
1296 #define key_f15                                    t_key_f15(cur_term)
1297 #define key_f16                                    t_key_f16(cur_term)
1298 #define key_f17                                    t_key_f17(cur_term)
1299 #define key_f18                                    t_key_f18(cur_term)
1300 #define key_f19                                    t_key_f19(cur_term)
1301 #define key_f20                                    t_key_f20(cur_term)
1302 #define key_f21                                    t_key_f21(cur_term)
1303 #define key_f22                                    t_key_f22(cur_term)
1304 #define key_f23                                    t_key_f23(cur_term)
1305 #define key_f24                                    t_key_f24(cur_term)
1306 #define key_f25                                    t_key_f25(cur_term)
1307 #define key_f26                                    t_key_f26(cur_term)
1308 #define key_f27                                    t_key_f27(cur_term)
1309 #define key_f28                                    t_key_f28(cur_term)
1310 #define key_f29                                    t_key_f29(cur_term)
1311 #define key_f30                                    t_key_f30(cur_term)
1312 #define key_f31                                    t_key_f31(cur_term)
1313 #define key_f32                                    t_key_f32(cur_term)
1314 #define key_f33                                    t_key_f33(cur_term)
1315 #define key_f34                                    t_key_f34(cur_term)
1316 #define key_f35                                    t_key_f35(cur_term)
1317 #define key_f36                                    t_key_f36(cur_term)
1318 #define key_f37                                    t_key_f37(cur_term)
1319 #define key_f38                                    t_key_f38(cur_term)
1320 #define key_f39                                    t_key_f39(cur_term)
1321 #define key_f40                                    t_key_f40(cur_term)
1322 #define key_f41                                    t_key_f41(cur_term)
1323 #define key_f42                                    t_key_f42(cur_term)
1324 #define key_f43                                    t_key_f43(cur_term)
1325 #define key_f44                                    t_key_f44(cur_term)
1326 #define key_f45                                    t_key_f45(cur_term)
1327 #define key_f46                                    t_key_f46(cur_term)
1328 #define key_f47                                    t_key_f47(cur_term)
1329 #define key_f48                                    t_key_f48(cur_term)
1330 #define key_f49                                    t_key_f49(cur_term)
1331 #define key_f50                                    t_key_f50(cur_term)
1332 #define key_f51                                    t_key_f51(cur_term)
1333 #define key_f52                                    t_key_f52(cur_term)
1334 #define key_f53                                    t_key_f53(cur_term)
1335 #define key_f54                                    t_key_f54(cur_term)
1336 #define key_f55                                    t_key_f55(cur_term)
1337 #define key_f56                                    t_key_f56(cur_term)
1338 #define key_f57                                    t_key_f57(cur_term)
1339 #define key_f58                                    t_key_f58(cur_term)
1340 #define key_f59                                    t_key_f59(cur_term)
1341 #define key_f60                                    t_key_f60(cur_term)
1342 #define key_f61                                    t_key_f61(cur_term)
1343 #define key_f62                                    t_key_f62(cur_term)
1344 #define key_f63                                    t_key_f63(cur_term)
1345 #define key_find                         t_key_find(cur_term)
1346 #define key_help                         t_key_help(cur_term)
1347 #define key_home                         t_key_home(cur_term)
1348 #define key_ic                                     t_key_ic(cur_term)
1349 #define key_il                                     t_key_il(cur_term)
1350 #define key_left                         t_key_left(cur_term)
1351 #define key_ll                                     t_key_ll(cur_term)
1352 #define key_mark                         t_key_mark(cur_term)
1353 #define key_message                      t_key_message(cur_term)
1354 #define key_mouse                        t_key_mouse(cur_term)
1355 #define key_move                         t_key_move(cur_term)
1356 #define key_next                         t_key_next(cur_term)
1357 #define key_npage                        t_key_npage(cur_term)
1358 #define key_open                         t_key_open(cur_term)
1359 #define key_options                      t_key_options(cur_term)
1360 #define key_ppage                        t_key_ppage(cur_term)
1361 #define key_previous                               t_key_previous(cur_term)
1362 #define key_print                        t_key_print(cur_term)
1363 #define key_redo                         t_key_redo(cur_term)
1364 #define key_reference                              t_key_reference(cur_term)
1365 #define key_refresh                      t_key_refresh(cur_term)
1366 #define key_replace                      t_key_replace(cur_term)
1367 #define key_restart                      t_key_restart(cur_term)
1368 #define key_resume                       t_key_resume(cur_term)
1369 #define key_right                        t_key_right(cur_term)
1370 #define key_save                         t_key_save(cur_term)
1371 #define key_sbeg                         t_key_sbeg(cur_term)
1372 #define key_scancel                      t_key_scancel(cur_term)
1373 #define key_scommand                               t_key_scommand(cur_term)
1374 #define key_scopy                        t_key_scopy(cur_term)
1375 #define key_screate                      t_key_screate(cur_term)
1376 #define key_sdc                                    t_key_sdc(cur_term)
1377 #define key_sdl                                    t_key_sdl(cur_term)
1378 #define key_select                       t_key_select(cur_term)
1379 #define key_send                         t_key_send(cur_term)
1380 #define key_seol                         t_key_seol(cur_term)
1381 #define key_sexit                        t_key_sexit(cur_term)
1382 #define key_sf                                     t_key_sf(cur_term)
1383 #define key_sfind                        t_key_sfind(cur_term)
1384 #define key_shelp                        t_key_shelp(cur_term)
1385 #define key_shome                        t_key_shome(cur_term)
1386 #define key_sic                                    t_key_sic(cur_term)
1387 #define key_sleft                        t_key_sleft(cur_term)
1388 #define key_smessage                               t_key_smessage(cur_term)
1389 #define key_smove                        t_key_smove(cur_term)
1390 #define key_snext                        t_key_snext(cur_term)
1391 #define key_soptions                               t_key_soptions(cur_term)
1392 #define key_sprevious                              t_key_sprevious(cur_term)
1393 #define key_sprint                       t_key_sprint(cur_term)
1394 #define key_sr                                     t_key_sr(cur_term)
1395 #define key_sredo                        t_key_sredo(cur_term)
1396 #define key_sreplace                               t_key_sreplace(cur_term)
1397 #define key_sright                       t_key_sright(cur_term)
1398 #define key_srsume                       t_key_srsume(cur_term)
1399 #define key_ssave                        t_key_ssave(cur_term)
1400 #define key_ssuspend                               t_key_ssuspend(cur_term)
1401 #define key_stab                         t_key_stab(cur_term)
1402 #define key_sundo                        t_key_sundo(cur_term)
1403 #define key_suspend                      t_key_suspend(cur_term)
1404 #define key_undo                         t_key_undo(cur_term)
1405 #define key_up                                     t_key_up(cur_term)
1406 #define keypad_local                               t_keypad_local(cur_term)
1407 #define keypad_xmit                      t_keypad_xmit(cur_term)
1408 #define lab_f0                                     t_lab_f0(cur_term)
1409 #define lab_f1                                     t_lab_f1(cur_term)
1410 #define lab_f2                                     t_lab_f2(cur_term)
1411 #define lab_f3                                     t_lab_f3(cur_term)
1412 #define lab_f4                                     t_lab_f4(cur_term)
1413 #define lab_f5                                     t_lab_f5(cur_term)
1414 #define lab_f6                                     t_lab_f6(cur_term)
1415 #define lab_f7                                     t_lab_f7(cur_term)
1416 #define lab_f8                                     t_lab_f8(cur_term)
1417 #define lab_f9                                     t_lab_f9(cur_term)
1418 #define lab_f10                                    t_lab_f10(cur_term)
1419 #define label_format                               t_label_format(cur_term)
1420 #define label_off                        t_label_off(cur_term)
1421 #define label_on                         t_label_on(cur_term)
1422 #define meta_off                         t_meta_off(cur_term)
1423 #define meta_on                                    t_meta_on(cur_term)
1424 #define micro_column_address             t_micro_column_address(cur_term)
1425 #define micro_down                       t_micro_down(cur_term)
1426 #define micro_left                       t_micro_left(cur_term)
1427 #define micro_right                      t_micro_right(cur_term)
1428 #define micro_row_address                t_micro_row_address(cur_term)
1429 #define micro_up                         t_micro_up(cur_term)
1430 #define mouse_info                       t_mouse_info(cur_term)
1431 #define newline                                    t_newline(cur_term)
1432 #define order_of_pins                              t_order_of_pins(cur_term)
1433 #define orig_colors                      t_orig_colors(cur_term)
1434 #define orig_pair                        t_orig_pair(cur_term)
1435 #define pad_char                         t_pad_char(cur_term)
1436 #define parm_dch                         t_parm_dch(cur_term)
1437 #define parm_delete_line                 t_parm_delete_line(cur_term)
1438 #define parm_down_cursor                 t_parm_down_cursor(cur_term)
1439 #define parm_down_micro                            t_parm_down_micro(cur_term)
1440 #define parm_ich                         t_parm_ich(cur_term)
1441 #define parm_index                       t_parm_index(cur_term)
1442 #define parm_insert_line                 t_parm_insert_line(cur_term)
1443 #define parm_left_cursor                 t_parm_left_cursor(cur_term)
1444 #define parm_left_micro                            t_parm_left_micro(cur_term)
1445 #define parm_right_cursor                t_parm_right_cursor(cur_term)
1446 #define parm_right_micro                 t_parm_right_micro(cur_term)
1447 #define parm_rindex                      t_parm_rindex(cur_term)
1448 #define parm_up_cursor                             t_parm_up_cursor(cur_term)
1449 #define parm_up_micro                              t_parm_up_micro(cur_term)
1450 #define pc_term_options                            t_pc_term_options(cur_term)
1451 #define pkey_key                         t_pkey_key(cur_term)
1452 #define pkey_local                       t_pkey_local(cur_term)
1453 #define pkey_plab                        t_pkey_plab(cur_term)
1454 #define pkey_xmit                        t_pkey_xmit(cur_term)
1455 #define plab_norm                        t_plab_norm(cur_term)
1456 #define print_screen                               t_print_screen(cur_term)
1457 #define ptr_non                                    t_ptr_non(cur_term)
1458 #define ptr_off                                    t_ptr_off(cur_term)
1459 #define ptr_on                                     t_ptr_on(cur_term)
1460 #define pulse                                      t_pulse(cur_term)
1461 #define quick_dial                       t_quick_dial(cur_term)
1462 #define remove_clock                               t_remove_clock(cur_term)
1463 #define repeat_char                      t_repeat_char(cur_term)
1464 #define req_for_input                              t_req_for_input(cur_term)
1465 #define req_mouse_pos                              t_req_mouse_pos(cur_term)
1466 #define reset_1string                              t_reset_1string(cur_term)
1467 #define reset_2string                              t_reset_2string(cur_term)
1468 #define reset_3string                              t_reset_3string(cur_term)
1469 #define reset_file                       t_reset_file(cur_term)
1470 #define restore_cursor                             t_restore_cursor(cur_term)
1471 #define row_address                      t_row_address(cur_term)
1472 #define save_cursor                      t_save_cursor(cur_term)
1473 #define scancode_escape                            t_scancode_escape(cur_term)
1474 #define scroll_forward                             t_scroll_forward(cur_term)
1475 #define scroll_reverse                             t_scroll_reverse(cur_term)
1476 #define select_char_set                            t_select_char_set(cur_term)
1477 #define set0_des_seq                               t_set0_des_seq(cur_term)
1478 #define set1_des_seq                               t_set1_des_seq(cur_term)
1479 #define set2_des_seq                               t_set2_des_seq(cur_term)
1480 #define set3_des_seq                               t_set3_des_seq(cur_term)
1481 #define set_a_attributes                 t_set_a_attributes(cur_term)
1482 #define set_a_background                 t_set_a_background(cur_term)
1483 #define set_a_foreground                 t_set_a_foreground(cur_term)
1484 #define set_attributes                             t_set_attributes(cur_term)
1485 #define set_background                             t_set_background(cur_term)
1486 #define set_bottom_margin                t_set_bottom_margin(cur_term)
1487 #define set_bottom_margin_parm                     t_set_bottom_margin_parm(cur_term)
1488 #define set_clock                        t_set_clock(cur_term)
1489 #define set_color_band                             t_set_color_band(cur_term)
1490 #define set_color_pair                             t_set_color_pair(cur_term)
1491 #define set_foreground                             t_set_foreground(cur_term)
1492 #define set_left_margin                            t_set_left_margin(cur_term)
1493 #define set_left_margin_parm             t_set_left_margin_parm(cur_term)
1494 #define set_lr_margin                              t_set_lr_margin(cur_term)
1495 #define set_page_length                            t_set_page_length(cur_term)
1496 #define set_pglen_inch                             t_set_pglen_inch(cur_term)
1497 #define set_right_margin                 t_set_right_margin(cur_term)
1498 #define set_right_margin_parm            t_set_right_margin_parm(cur_term)
1499 #define set_tab                                    t_set_tab(cur_term)
1500 #define set_tb_margin                              t_set_tb_margin(cur_term)
1501 #define set_top_margin                             t_set_top_margin(cur_term)
1502 #define set_top_margin_parm              t_set_top_margin_parm(cur_term)
1503 #define set_window                       t_set_window(cur_term)
1504 #define start_bit_image                            t_start_bit_image(cur_term)
1505 #define start_char_set_def               t_start_char_set_def(cur_term)
1506 #define stop_bit_image                             t_stop_bit_image(cur_term)
1507 #define stop_char_set_def                t_stop_char_set_def(cur_term)
1508 #define subscript_characters             t_subscript_characters(cur_term)
1509 #define superscript_characters                     t_superscript_characters(cur_term)
1510 #define tab                                        t_tab(cur_term)
1511 #define these_cause_cr                             t_these_cause_cr(cur_term)
1512 #define to_status_line                             t_to_status_line(cur_term)
1513 #define tone                                       t_tone(cur_term)
1514 #define user0                                      t_user0(cur_term)
1515 #define user1                                      t_user1(cur_term)
1516 #define user2                                      t_user2(cur_term)
1517 #define user3                                      t_user3(cur_term)
1518 #define user4                                      t_user4(cur_term)
1519 #define user5                                      t_user5(cur_term)
1520 #define user6                                      t_user6(cur_term)
1521 #define user7                                      t_user7(cur_term)
1522 #define user8                                      t_user8(cur_term)
1523 #define user9                                      t_user9(cur_term)
1524 #define underline_char                             t_underline_char(cur_term)
1525 #define up_half_line                               t_up_half_line(cur_term)
1526 #define wait_tone                        t_wait_tone(cur_term)
1527 #define xoff_character                             t_xoff_character(cur_term)
1528 #define xon_character                              t_xon_character(cur_term)
1529 #define zero_motion                      t_zero_motion(cur_term)
1530 
1531 /*
1532  * STRING DESCRIPTIONS
1533  *
1534  * acs_chars: Graphic charset pairs aAbBcC
1535  * alt_scancode_esc: Alternate escape for scancode emulation
1536  * back_tab: Back tab
1537  * bell: Audible signal (bell)
1538  * bit_image_carriage_return: Move to beginning of same row
1539  * bit_image_newline: Move to next row of the bit image
1540  * bit_image_repeat: Repeat bit-image cell #1 #2 times
1541  * carriage_return: Carriage return
1542  * change_char_pitch: Change number of characters per inch
1543  * change_line_pitch: Change number of lines per inch
1544  * change_res_horz: Change horizontal resolution
1545  * change_res_vert: Change vertical resolution
1546  * change_scroll_region: Change to lines #1 through #2 (VT100)
1547  * char_padding: Like ip but when in replace mode
1548  * char_set_names: Returns a list of character set names
1549  * clear_all_tabs: Clear all tab stops
1550  * clear_margins: Clear all margins (top, bottom and sides)
1551  * clear_screen: Clear screen and home cursor
1552  * clr_bol: Clear to beginning of line, inclusive
1553  * clr_eol: Clear to end of line
1554  * clr_eos: Clear to end of display
1555  * code_set_init: Init sequence for multiple codesets
1556  * color_names: Give name for colour #1
1557  * column_address: Set horizontal position to absolute #1
1558  * command_character: Terminal settable cmd character in prototype
1559  * create_window: Define win #1 to go from #2,#3 to #4,#5
1560  * cursor_address: Move to row #1, col #2
1561  * cursor_down: Down one line
1562  * cursor_home: Home cursor (if no cup)
1563  * cursor_invisible: Make cursor invisible
1564  * cursor_left: Move left one space
1565  * cursor_mem_address: Memory relative cursor addressing
1566  * cursor_normal: Make cursor appear normal (under vs/vi)
1567  * cursor_right: Non-destructive space (cursor or carriage right)
1568  * cursor_to_ll: Last line, first column (if no cup)
1569  * cursor_up: Upline (cursor up)
1570  * cursor_visible: Make cursor very visible
1571  * define_bit_image_region: Define rectangular bit-image region
1572  * define_char: Define a character in a character set
1573  * delete_character: Delete character
1574  * delete_line: Delete line
1575  * device_type: Indicate language/codeset support
1576  * dial_phone: Dial phone number #1
1577  * dis_status_line: Disable status line
1578  * display_clock: Display time-of-day clock
1579  * display_pc_char: Display PC character
1580  * down_half_time: Half-line down (forward 1/2 linefeed)
1581  * ena_acs: Enable alternate character set
1582  * end_bit_image_region: End a bit-image region
1583  * enter_alt_charset_mode: Start alternate character set
1584  * enter_am_mode: Turn on automatic margins
1585  * enter_blink_mode: Turn on blinking
1586  * enter_bold_mode: Turn on bold (extra bright) mode
1587  * enter_ca_mode: String to begin programs that use cup
1588  * enter_delete_mode: Delete mode (enter)
1589  * enter_dim_mode: Turn on half-bright mode
1590  * enter_doublewide_mode: Enable double wide printing
1591  * enter_draft_quality: Set draft qualify print
1592  * enter_horizontal_hl_mode: Turn on horizontal highlight mode
1593  * enter_insert_mode: Insert mode (enter)
1594  * enter_italics_mode: Enable italics
1595  * enter_left_hl_mode: Turn on left highlight mode
1596  * enter_leftward_mode: Enable leftward carriage motion
1597  * enter_low_hl_mode: Turn on low highlight mode
1598  * enter_micro_mode: Enable micro motion capabilities
1599  * enter_near_quality_letter: Set near-letter quality print
1600  * enter_normal_quality: Set normal quality print
1601  * enter_pc_charset_mode: Enter PC character display mode
1602  * enter_protected_mode: Turn on protected mode
1603  * enter_reverse_mode: Turn on reverse video mode
1604  * enter_right_hl_mode: Turn on right highlight mode
1605  * enter_scancode_mode: Enter PC scancode mode
1606  * enter_secure_mode: Turn on blank mode (characters invisible)
1607  * enter_shadow_mode: Enable shadow printing
1608  * enter_standout_mode: Begin standout mode
1609  * enter_subscript_mode: Enable subscript printing
1610  * enter_superscript_mode: Enable superscript printing
1611  * enter_top_hl_mode: Turn on top highlight mode
1612  * enter_underline_mode: Start underscore mode
1613  * enter_upward_mode: Enable upward carriage motion
1614  * enter_vertical_hl_mode: Turn on vertical highlight mode
1615  * enter_xon_mode: Turn on xon/xoff handshaking
1616  * erase_chars: Erase #1 characters
1617  * exit_alt_charset_mode: End alternate character set
1618  * exit_am_mode: Turn off automatic margins
1619  * exit_attribute_mode: Turn off all attributes
1620  * exit_ca_mode: String to end programs that use cup
1621  * exit_delete_mode: End delete mode
1622  * exit_doublewide_mode: Disable double wide printing
1623  * exit_insert_mode: End insert mode
1624  * exit_italics_mode: Disable italics
1625  * exit_leftward_mode: Enable rightward (normal) carriage motion
1626  * exit_micro_mode: Disable micro motion capabilities
1627  * exit_pc_charset_mode: Disable PC character display mode
1628  * exit_scancode_mode: Disable PC scancode mode
1629  * exit_shadow_mode: Disable shadow printing
1630  * exit_standout_mode: End standout mode
1631  * exit_subscript_mode: Disable subscript printing
1632  * exit_superscript_mode: Disable superscript printing
1633  * exit_underline_mode: End underscore mode
1634  * exit_upward_mode: Enable downward (normal) carriage motion
1635  * exit_xon_mode: Turn off xon/xoff handshaking
1636  * fixed_pause: Pause for 2-3 seconds
1637  * flash_hook: Flash the switch hook
1638  * flash_screen: Visible bell (may move cursor)
1639  * form_feed: Hardcopy terminal eject page
1640  * from_status_line: Return from status line
1641  * get_mouse: Curses should get button events
1642  * goto_window: Go to window #1
1643  * hangup: Hang-up phone
1644  * init_1string: Terminal or printer initialisation string
1645  * init_2string: Terminal or printer initialisation string
1646  * init_3string: Terminal or printer initialisation string
1647  * init_file: Name of initialisation file
1648  * init_prog: Path name of program for initialisation
1649  * initialize_color: Set colour #1 to RGB #2, #3, #4
1650  * initialize_pair: Set colour-pair #1 to fg #2, bg #3
1651  * insert_character: Insert character
1652  * insert_line: Add new blank line
1653  * insert_padding: Insert pad after character inserted
1654  * key_a1: upper left of keypad
1655  * key_a3: upper right of keypad
1656  * key_b2: center of keypad
1657  * key_backspace: set by backspace key
1658  * key_beg: 1
1659  * key_btab: sent by back-tab key
1660  * key_c1: lower left of keypad
1661  * key_c3: lower right of keypad
1662  * key_cancel: 2
1663  * key_catab: sent by clear-all-tabs key
1664  * key_clear: sent by clear-screen or erase key
1665  * key_close: 3
1666  * key_command: 4
1667  * key_copy: 5
1668  * key_create: 6
1669  * key_ctab: sent by clear-tab key
1670  * key_dc: sent by delete-character key
1671  * key_dl: sent by delete-line key
1672  * key_down: sent by terminal down-arrow key
1673  * key_eic: sent by rmir or smir in insert mode
1674  * key_end: 7
1675  * key_enter: 8
1676  * key_eol: sent by clear-to-end-of-line key
1677  * key_eos: sent by clear-to-end-of-screen key
1678  * key_exit: 9
1679  * key_f0: sent by function key f0
1680  * key_f1: sent by function key f1
1681  * key_f2: sent by function key f2
1682  * key_f3: sent by function key f3
1683  * key_f4: sent by function key f4
1684  * key_f5: sent by function key f5
1685  * key_f6: sent by function key f6
1686  * key_f7: sent by function key f7
1687  * key_f8: sent by function key f8
1688  * key_f9: sent by function key f9
1689  * key_f10: sent by function key f10
1690  * key_f11: sent by function key f11
1691  * key_f12: sent by function key f12
1692  * key_f13: sent by function key f13
1693  * key_f14: sent by function key f14
1694  * key_f15: sent by function key f15
1695  * key_f16: sent by function key f16
1696  * key_f17: sent by function key f17
1697  * key_f18: sent by function key f18
1698  * key_f19: sent by function key f19
1699  * key_f20: sent by function key f20
1700  * key_f21: sent by function key f21
1701  * key_f22: sent by function key f22
1702  * key_f23: sent by function key f23
1703  * key_f24: sent by function key f24
1704  * key_f25: sent by function key f25
1705  * key_f26: sent by function key f26
1706  * key_f27: sent by function key f27
1707  * key_f28: sent by function key f28
1708  * key_f29: sent by function key f29
1709  * key_f30: sent by function key f30
1710  * key_f31: sent by function key f31
1711  * key_f32: sent by function key f32
1712  * key_f33: sent by function key f33
1713  * key_f34: sent by function key f34
1714  * key_f35: sent by function key f35
1715  * key_f36: sent by function key f36
1716  * key_f37: sent by function key f37
1717  * key_f38: sent by function key f38
1718  * key_f39: sent by function key f39
1719  * key_f40: sent by function key f40
1720  * key_f41: sent by function key f41
1721  * key_f42: sent by function key f42
1722  * key_f43: sent by function key f43
1723  * key_f44: sent by function key f44
1724  * key_f45: sent by function key f45
1725  * key_f46: sent by function key f46
1726  * key_f47: sent by function key f47
1727  * key_f48: sent by function key f48
1728  * key_f49: sent by function key f49
1729  * key_f50: sent by function key f50
1730  * key_f51: sent by function key f51
1731  * key_f52: sent by function key f52
1732  * key_f53: sent by function key f53
1733  * key_f54: sent by function key f54
1734  * key_f55: sent by function key f55
1735  * key_f56: sent by function key f56
1736  * key_f57: sent by function key f57
1737  * key_f58: sent by function key f58
1738  * key_f59: sent by function key f59
1739  * key_f60: sent by function key f60
1740  * key_f61: sent by function key f61
1741  * key_f62: sent by function key f62
1742  * key_f63: sent by function key f63
1743  * key_find: 0
1744  * key_help: sent by help key
1745  * key_home: sent by home key
1746  * key_ic: sent by ins-char/enter ins-mode key
1747  * key_il: sent by insert-line key
1748  * key_left: sent by terminal left-arrow key
1749  * key_ll: sent by home-down key
1750  * key_mark: sent by mark key
1751  * key_message: sent by message key
1752  * key_mouse: 0631, Mouse event has occurred
1753  * key_move: sent by move key
1754  * key_next: sent by next-object key
1755  * key_npage: sent by next-page key
1756  * key_open: sent by open key
1757  * key_options: sent by options key
1758  * key_ppage: sent by previous-page key
1759  * key_previous: sent by previous-object key
1760  * key_print: sent by print or copy key
1761  * key_redo: sent by redo key
1762  * key_reference: sent by ref(erence) key
1763  * key_refresh: sent by refresh key
1764  * key_replace: sent by replace key
1765  * key_restart: sent by restart key
1766  * key_resume: sent by resume key
1767  * key_right: sent by terminal right-arrow key
1768  * key_save: sent by save key
1769  * key_sbeg: sent by shifted beginning key
1770  * key_scancel: sent by shifted cancel key
1771  * key_scommand: sent by shifted command key
1772  * key_scopy: sent by shifted copy key
1773  * key_screate: sent by shifted create key
1774  * key_sdc: sent by shifted delete-char key
1775  * key_sdl: sent by shifted delete-line key
1776  * key_select: sent by select key
1777  * key_send: sent by shifted end key
1778  * key_seol: sent by shifted clear-line key
1779  * key_sexit: sent by shifted exit key
1780  * key_sf: sent by scroll-forward/down key
1781  * key_sfind: sent by shifted find key
1782  * key_shelp: sent by shifted help key
1783  * key_shome: sent by shifted home key
1784  * key_sic: sent by shifted input key
1785  * key_sleft: sent by shifted left-arrow key
1786  * key_smessage: sent by shifted message key
1787  * key_smove: sent by shifted move key
1788  * key_snext: sent by shifted next key
1789  * key_soptions: sent by shifted options key
1790  * key_sprevious: sent by shifted prev key
1791  * key_sprint: sent by shifted print key
1792  * key_sr: sent by scroll-backwards/up key
1793  * key_sredo: sent by shifted redo key
1794  * key_sreplace: sent by shifted replace key
1795  * key_sright: sent by shifted right-arrow key
1796  * key_srsume: sent by shifted resume key
1797  * key_ssave: sent by shifted save key
1798  * key_ssuspend: sent by shifted suspend key
1799  * key_stab: sent by set-tab key
1800  * key_sundo: sent by shifted undo key
1801  * key_suspend: sent by suspend key
1802  * key_undo: sent by undo key
1803  * key_up: sent by terminal up-arrow key
1804  * keypad_local: Out of "keypad-transmit" mode
1805  * keypad_xmit: Put terminal in "keypad-transmit" mode
1806  * lab_f0: Labels on function key f0 if not f0
1807  * lab_f1: Labels on function key f1 if not f1
1808  * lab_f2: Labels on function key f2 if not f2
1809  * lab_f3: Labels on function key f3 if not f3
1810  * lab_f4: Labels on function key f4 if not f4
1811  * lab_f5: Labels on function key f5 if not f5
1812  * lab_f6: Labels on function key f6 if not f6
1813  * lab_f7: Labels on function key f7 if not f7
1814  * lab_f8: Labels on function key f8 if not f8
1815  * lab_f9: Labels on function key f9 if not f9
1816  * lab_f10: Labels on function key f10 if not f10
1817  * label_format: Label format
1818  * label_off: Turn off soft labels
1819  * label_on: Turn on soft labels
1820  * meta_off: Turn off "meta mode"
1821  * meta_on: Turn on "meta mode" (8th bit)
1822  * micro_column_address: Like column_address for micro adjustment
1823  * micro_down: Like cursor_down for micro adjustment
1824  * micro_left: Like cursor_left for micro adjustment
1825  * micro_right: Like cursor_right for micro adjustment
1826  * micro_row_address: Like row_address for micro adjustment
1827  * micro_up: Like cursor_up for micro adjustment
1828  * mouse_info: Mouse status information
1829  * newline: Newline (behaves like cr followed by lf)
1830  * order_of_pins: Matches software bits to print-head pins
1831  * orig_colors: Set all colour(-pair)s to original ones
1832  * orig_pair: Set default colour-pair to the original one
1833  * pad_char: Pad character (rather than NULL)
1834  * parm_dch: Delete #1 chars
1835  * parm_delete_line: Delete #1 lines
1836  * parm_down_cursor: Move down #1 lines
1837  * parm_down_micro: Like parm_down_cursor for micro adjustment
1838  * parm_ich: Insert #1 blank chars
1839  * parm_index: Scroll forward #1 lines
1840  * parm_insert_line: Add #1 new blank lines
1841  * parm_left_cursor: Move cursor left #1 lines
1842  * parm_left_micro: Like parm_left_cursor for micro adjustment
1843  * parm_right_cursor: Move right #1 spaces
1844  * parm_right_micro: Like parm_right_cursor for micro adjustment
1845  * parm_rindex: Scroll backward #1 lines
1846  * parm_up_cursor: Move cursor up #1 lines
1847  * parm_up_micro: Like parm_up_cursor for micro adjustment
1848  * pc_term_options: PC terminal options
1849  * pkey_key: Prog funct key #1 to type string #2
1850  * pkey_local: Prog funct key #1 to execute string #2
1851  * pkey_plab: Prog key #1 to xmit string #2 and show string #3
1852  * pkey_xmit: Prog funct key #1 to xmit string #2
1853  * plab_norm: Prog label #1 to show string #2
1854  * print_screen: Print contents of screen
1855  * ptr_non: Turn off printer for #1 bytes
1856  * ptr_off: Turn off the printer
1857  * ptr_on: Turn on the printer
1858  * pulse: Select pulse dialing
1859  * quick_dial: Dial phone number #1, without progress detection
1860  * remove_clock: Remove time-of-day clock
1861  * repeat_char: Repeat char #1 #2 times
1862  * req_for_input: Send next input char (for ptys)
1863  * req_mouse_pos: Request mouse position report
1864  * reset_1string: Reset terminal completely to sane modes
1865  * reset_2string: Reset terminal completely to sane modes
1866  * reset_3string: Reset terminal completely to sane modes
1867  * reset_file: Name of file containing reset string
1868  * restore_cursor: Restore cursor to position of last sc
1869  * row_address: Set vertical position to absolute #1
1870  * save_cursor: Save cursor position
1871  * scancode_escape: Escape for scancode emulation
1872  * scroll_forward: Scroll text up
1873  * scroll_reverse: Scroll text down
1874  * select_char_set: Select character set
1875  * set0_des_seq: Shift into codeset 0 (EUC set 0, ASCII)
1876  * set1_des_seq: Shift into codeset 1
1877  * set2_des_seq: Shift into codeset 2
1878  * set3_des_seq: Shift into codeset 3
1879  * set_a_attributes: Define second set of video attributes #1-#6
1880  * set_a_background: Set background colour to #1 using ANSI escape
1881  * set_a_foreground: Set foreground colour to #1 using ANSI escape
1882  * set_attributes: Define first set of video attributes #1-#9
1883  * set_background: Set background colour to #1
1884  * set_bottom_margin: Set bottom margin at current line
1885  * set_bottom_margin_parm: Set bottom margin at line #1 or #2 lines from bottom
1886  * set_clock: Set clock to hours (#1), minutes (#2), seconds (#3)
1887  * set_color_band: Change ribbon to colour #1
1888  * set_color_pair: Set current colour pair to #1
1889  * set_foreground: Set foreground colour to #1
1890  * set_left_margin: Set left margin at current column
1891  * set_left_margin_parm: Set left (right) margin at column #1 (#2)
1892  * set_lr_margin: Sets both left and right margins
1893  * set_page_length: Set page length to #1 lines
1894  * set_pglen_inch: Set page length to #1 hundredth of an inch
1895  * set_right_margin: Set right margin at current column
1896  * set_right_margin_parm: Set right margin at #1
1897  * set_tab: Set a tab in all rows, current column
1898  * set_tb_margin: Sets both top and bottom margins
1899  * set_top_margin: Set top margin at current line
1900  * set_top_margin_parm: Set top (bottom) margin at line #1 (#2)
1901  * set_window: Current window is lines #1-#2 cols #3-#4
1902  * start_bit_image: Start printing bit image graphics
1903  * start_char_set_def: Start definition of a character set
1904  * stop_bit_image: End printing bit image graphics
1905  * stop_char_set_def: End definition of a character set
1906  * subscript_characters: List of "subscript-able" characters
1907  * superscript_characters: List of "superscript-able" characters
1908  * tab: Tab to next 8-space hardware tab stop
1909  * these_cause_cr: Printing any of these characters causes cr
1910  * to_status_line: Go to status line, col #1
1911  * tone: Select tone touch dialing
1912  * user0: User string 0
1913  * user1: User string 1
1914  * user2: User string 2
1915  * user3: User string 3
1916  * user4: User string 4
1917  * user5: User string 5
1918  * user6: User string 6
1919  * user7: User string 7
1920  * user8: User string 8
1921  * user9: User string 9
1922  * underline_char: Underscore one char and move past it
1923  * up_half_line: Half-line up (reverse 1/2 linefeed)
1924  * wait_tone: Wait for dial tone
1925  * xoff_character: X-off character
1926  * xon_character: X-on character
1927  * zero_motion: No motion for the subsequent character
1928  */
1929 
1930 #ifndef _TERMINFO
1931 typedef struct {
1932           int fildes;
1933           /* We need to expose these so that the macros work */
1934           const char *name;
1935           const char *desc;
1936           signed char *flags;
1937           int *nums;
1938           const char **strs;
1939 } TERMINAL;
1940 #endif
1941 
1942 #include <sys/cdefs.h>
1943 
1944 __BEGIN_DECLS
1945 
1946 extern TERMINAL *cur_term;
1947 
1948 /* setup functions */
1949 int                 setupterm(const char *, int, int *);
1950 TERMINAL *          set_curterm(TERMINAL *);
1951 int                 del_curterm(TERMINAL *);
1952 char *              termname(void);
1953 char *              longname(void);
1954 
1955 /* information functions */
1956 int                 tigetflag(const char *);
1957 int                 tigetnum(const char *);
1958 char *              tigetstr(const char *);
1959 /* You should note that the spec allows stuffing a char * into a long
1960  * if the platform allows and the %pN is followed immediately by %l or %s */
1961 char *              tparm(const char *, long, long, long, long, long,
1962                     long, long, long, long);
1963 
1964 /* Non standard functions, but provide a level of thread safety */
1965 int                 ti_setupterm(TERMINAL **, const char *, int, int *);
1966 int                 ti_getflag(const TERMINAL *, const char *);
1967 int                 ti_getnum(const TERMINAL *, const char *);
1968 const char *        ti_getstr(const TERMINAL *, const char *);
1969 char *              ti_parm(TERMINAL *, const char *,
1970     long, long, long, long, long, long, long, long, long);
1971 
1972 /* These functions do not use PC or speed, but the terminal */
1973 int                 ti_puts(const TERMINAL *, const char *, int,
1974     int (*)(int, void *), void *);
1975 int                 ti_putp(const TERMINAL *, const char *);
1976 
1977 /* Using tparm can be kunkly, so provide a variadic function
1978  * Numbers have to be passed as int */
1979 /* This is not standard, but ncurses also provides this */
1980 char *              tiparm(const char *, ...);
1981 /* And a thread safe version */
1982 char *              ti_tiparm(TERMINAL *, const char *, ...);
1983 
1984 #ifdef TPARM_TLPARM
1985 /* Same as the above, but numbers have to be passed as long */
1986 char *              tlparm(const char *, ...);
1987 /* And a thread safe version */
1988 char *              ti_tlparm(TERMINAL *, const char *, ...);
1989 #endif
1990 
1991 /* Default to X/Open tparm, but allow it to be variadic also */
1992 #ifdef TPARM_VARARGS
1993 #  define tparm     tiparm
1994 #  define ti_parm ti_tiparm
1995 #endif
1996 
1997 /* Convert a termcap string into a terminfo string.
1998  * The passed string is destroyed and the return string needs to be freed. */
1999 char *              captoinfo(char *);
2000 
2001 /* POSIX says that term.h should also pull in our termcap definitions. */
2002 #include <termcap.h>
2003 
2004 __END_DECLS
2005 #endif
2006