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 */
39enum 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 */
199enum 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 */
343enum 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
1931typedef 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
1946extern TERMINAL *cur_term;
1947
1948/* setup functions */
1949int		setupterm(const char *, int, int *);
1950TERMINAL *	set_curterm(TERMINAL *);
1951int		del_curterm(TERMINAL *);
1952char *		termname(void);
1953char *		longname(void);
1954
1955/* information functions */
1956int		tigetflag(const char *);
1957int		tigetnum(const char *);
1958char *		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 */
1961char *		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 */
1965int		ti_setupterm(TERMINAL **, const char *, int, int *);
1966int		ti_getflag(const TERMINAL *, const char *);
1967int		ti_getnum(const TERMINAL *, const char *);
1968const char *	ti_getstr(const TERMINAL *, const char *);
1969char *		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 */
1973int		ti_puts(const TERMINAL *, const char *, int,
1974    int (*)(int, void *), void *);
1975int		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 */
1980char *		tiparm(const char *, ...);
1981/* And a thread safe version */
1982char *		ti_tiparm(TERMINAL *, const char *, ...);
1983
1984#ifdef TPARM_TLPARM
1985/* Same as the above, but numbers have to be passed as long */
1986char *		tlparm(const char *, ...);
1987/* And a thread safe version */
1988char *		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. */
1999char *		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