-
Notifications
You must be signed in to change notification settings - Fork 19
/
terminfo_term.h
2005 lines (1976 loc) · 75.5 KB
/
terminfo_term.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* $NetBSD: term.h,v 1.22 2017/03/23 00:39:06 roy Exp $ */
/*
* Copyright (c) 2009, 2010, 2011, 2013 The NetBSD Foundation, Inc.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Roy Marples.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _TERM_H_
#define _TERM_H_
#ifndef ERR
#define ERR (-1) /* Error return */
#define OK (0) /* Success return */
#endif
/* Define available terminfo flags */
enum TIFLAGS {
TICODE_bw,
TICODE_am,
TICODE_bce,
TICODE_ccc,
TICODE_xhp,
TICODE_xhpa,
TICODE_cpix,
TICODE_crxm,
TICODE_xt,
TICODE_xenl,
TICODE_eo,
TICODE_gn,
TICODE_hc,
TICODE_chts,
TICODE_km,
TICODE_daisy,
TICODE_hs,
TICODE_hls,
TICODE_in,
TICODE_lpix,
TICODE_da,
TICODE_db,
TICODE_mir,
TICODE_msgr,
TICODE_nxon,
TICODE_xsb,
TICODE_npc,
TICODE_ndscr,
TICODE_nrrmc,
TICODE_os,
TICODE_mc5i,
TICODE_xvpa,
TICODE_sam,
TICODE_eslok,
TICODE_hz,
TICODE_ul,
TICODE_xon
};
#define TIFLAGMAX TICODE_xon
#define t_auto_left_margin(t) (t)->flags[TICODE_bw]
#define t_auto_right_margin(t) (t)->flags[TICODE_am]
#define t_back_color_erase(t) (t)->flags[TICODE_bce]
#define t_can_change(t) (t)->flags[TICODE_ccc]
#define t_ceol_standout_glitch(t) (t)->flags[TICODE_xhp]
#define t_col_addr_glitch(t) (t)->flags[TICODE_xhpa]
#define t_cpi_changes_res(t) (t)->flags[TICODE_cpix]
#define t_cr_cancels_micro_mode(t) (t)->flags[TICODE_crxm]
#define t_dest_tabs_magic_smso(t) (t)->flags[TICODE_xt]
#define t_eat_newline_glitch(t) (t)->flags[TICODE_xenl]
#define t_erase_overstrike(t) (t)->flags[TICODE_eo]
#define t_generic_type(t) (t)->flags[TICODE_gn]
#define t_hard_copy(t) (t)->flags[TICODE_hc]
#define t_hard_cursor(t) (t)->flags[TICODE_chts]
#define t_has_meta_key(t) (t)->flags[TICODE_km]
#define t_has_print_wheel(t) (t)->flags[TICODE_daisy]
#define t_has_status_line(t) (t)->flags[TICODE_hs]
#define t_hue_light_saturation(t) (t)->flags[TICODE_hls]
#define t_insert_null_glitch(t) (t)->flags[TICODE_in]
#define t_lpi_changes_yes(t) (t)->flags[TICODE_lpix]
#define t_memory_above(t) (t)->flags[TICODE_da]
#define t_memory_below(t) (t)->flags[TICODE_db]
#define t_move_insert_mode(t) (t)->flags[TICODE_mir]
#define t_move_standout_mode(t) (t)->flags[TICODE_msgr]
#define t_needs_xon_xoff(t) (t)->flags[TICODE_nxon]
#define t_no_esc_ctlc(t) (t)->flags[TICODE_xsb]
#define t_no_pad_char(t) (t)->flags[TICODE_npc]
#define t_non_dest_scroll_region(t) (t)->flags[TICODE_ndscr]
#define t_non_rev_rmcup(t) (t)->flags[TICODE_nrrmc]
#define t_over_strike(t) (t)->flags[TICODE_os]
#define t_prtr_silent(t) (t)->flags[TICODE_mc5i]
#define t_row_addr_glitch(t) (t)->flags[TICODE_xvpa]
#define t_semi_auto_right_margin(t) (t)->flags[TICODE_sam]
#define t_status_line_esc_ok(t) (t)->flags[TICODE_eslok]
#define t_tilde_glitch(t) (t)->flags[TICODE_hz]
#define t_transparent_underline(t) (t)->flags[TICODE_ul]
#define t_xon_xoff(t) (t)->flags[TICODE_xon]
#define auto_left_margin t_auto_left_margin(cur_term)
#define auto_right_margin t_auto_right_margin(cur_term)
#define back_color_erase t_back_color_erase(cur_term)
#define can_change t_can_change(cur_term)
#define ceol_standout_glitch t_ceol_standout_glitch(cur_term)
#define col_addr_glitch t_col_addr_glitch(cur_term)
#define cpi_changes_res t_cpi_changes_res(cur_term)
#define cr_cancels_micro_mode t_cr_cancels_micro_mode(cur_term)
#define dest_tabs_magic_smso t_dest_tabs_magic_smso(cur_term)
#define eat_newline_glitch t_eat_newline_glitch(cur_term)
#define erase_overstrike t_erase_overstrike(cur_term)
#define generic_type t_generic_type(cur_term)
#define hard_copy t_hard_copy(cur_term)
#define hard_cursor t_hard_cursor(cur_term)
#define has_meta_key t_has_meta_key(cur_term)
#define has_print_wheel t_has_print_wheel(cur_term)
#define has_status_line t_has_status_line(cur_term)
#define hue_light_saturation t_hue_light_saturation(cur_term)
#define insert_null_glitch t_insert_null_glitch(cur_term)
#define lpi_changes_yes t_lpi_changes_yes(cur_term)
#define memory_above t_memory_above(cur_term)
#define memory_below t_memory_below(cur_term)
#define move_insert_mode t_move_insert_mode(cur_term)
#define move_standout_mode t_move_standout_mode(cur_term)
#define needs_xon_xoff t_needs_xon_xoff(cur_term)
#define no_esc_ctlc t_no_esc_ctlc(cur_term)
#define no_pad_char t_no_pad_char(cur_term)
#define non_dest_scroll_region t_non_dest_scroll_region(cur_term)
#define non_rev_rmcup t_non_rev_rmcup(cur_term)
#define over_strike t_over_strike(cur_term)
#define prtr_silent t_prtr_silent(cur_term)
#define row_addr_glitch t_row_addr_glitch(cur_term)
#define semi_auto_right_margin t_semi_auto_right_margin(cur_term)
#define status_line_esc_ok t_status_line_esc_ok(cur_term)
#define tilde_glitch t_tilde_glitch(cur_term)
#define transparent_underline t_transparent_underline(cur_term)
#define xon_xoff t_xon_xoff(cur_term)
/*
* BOOLEAN DESCRIPTIONS
*
* auto_left_margin: cub1 wraps from column 0 to last column
* auto_right_margin: Terminal has automatic margins
* back_color_erase: Screen erased with background colour
* can_change: Terminal can re-define existing colour
* ceol_standout_glitch: Standout not erased by overwriting (hp)
* col_addr_glitch: Only positive motion for hpa/mhba caps
* cpi_changes_res: Changing character pitch changes resolution
* cr_cancels_micro_mode: Using cr turns off micro mode
* dest_tabs_magic_smso: Destructive tabs, magic smso char (t1061)
* eat_newline_glitch: Newline ignored after 80 columns (Concept)
* erase_overstrike: Can erase overstrikes with a blank line
* generic_type: Generic line type (e.g. dialup, switch)
* hard_copy: Hardcopy terminal
* hard_cursor: Cursor is hard to see
* has_meta_key: Has a meta key (shift, sets parity bit)
* has_print_wheel: Printer needs operator to change character set
* has_status_line: Has extra "status line"
* hue_light_saturation: Terminal only uses HLS colour notion (Tektronix)
* insert_null_glitch: Insert mode distinguishes nulls
* lpi_changes_yes: Changing line pitch changes resolution
* memory_above: Display may be retained above the screen
* memory_below: Display may be retained below the screen
* move_insert_mode: Safe to move while in insert mode
* move_standout_mode: Safe to move in standout modes
* needs_xon_xoff: Padding won't work, xon/xoff required
* no_esc_ctlc: Beehive (f1=escape, f2=ctrl C)
* no_pad_char: Pad character doesn't exist
* non_dest_scroll_region: Scrolling region is nondestructive
* non_rev_rmcup: smcup does not reverse rmcup
* over_strike: Terminal overstrikes on hard-copy terminal
* prtr_silent: Printer won't echo on screen
* row_addr_glitch: Only positive motion for vpa/mvpa caps
* semi_auto_right_margin: Printing in last column causes cr
* status_line_esc_ok: Escape can be used on the status line
* tilde_glitch: Hazeltine; can't print tilde (~)
* transparent_underline: Underline character overstrikes
* xon_xoff: Terminal uses xon/xoff handshaking
*/
/* Define available terminfo numbers */
enum TINUMS {
TICODE_bitwin,
TICODE_bitype,
TICODE_bufsz,
TICODE_btns,
TICODE_cols,
TICODE_spinh,
TICODE_spinv,
TICODE_it,
TICODE_lh,
TICODE_lw,
TICODE_lines,
TICODE_lm,
TICODE_ma,
TICODE_xmc,
TICODE_colors,
TICODE_maddr,
TICODE_mjump,
TICODE_pairs,
TICODE_wnum,
TICODE_mcs,
TICODE_mls,
TICODE_ncv,
TICODE_nlab,
TICODE_npins,
TICODE_orc,
TICODE_orl,
TICODE_orhi,
TICODE_orvi,
TICODE_pb,
TICODE_cps,
TICODE_vt,
TICODE_widcs,
TICODE_wsl
};
#define TINUMMAX TICODE_wsl
#define t_bit_image_entwining(t) (t)->nums[TICODE_bitwin]
#define t_bit_image_type(t) (t)->nums[TICODE_bitype]
#define t_buffer_capacity(t) (t)->nums[TICODE_bufsz]
#define t_buttons(t) (t)->nums[TICODE_btns]
#define t_columns(t) (t)->nums[TICODE_cols]
#define t_dot_horz_spacing(t) (t)->nums[TICODE_spinh]
#define t_dot_vert_spacing(t) (t)->nums[TICODE_spinv]
#define t_init_tabs(t) (t)->nums[TICODE_it]
#define t_label_height(t) (t)->nums[TICODE_lh]
#define t_label_width(t) (t)->nums[TICODE_lw]
#define t_lines(t) (t)->nums[TICODE_lines]
#define t_lines_of_memory(t) (t)->nums[TICODE_lm]
#define t_max_attributes(t) (t)->nums[TICODE_ma]
#define t_magic_cookie_glitch(t) (t)->nums[TICODE_xmc]
#define t_max_colors(t) (t)->nums[TICODE_colors]
#define t_max_micro_address(t) (t)->nums[TICODE_maddr]
#define t_max_micro_jump(t) (t)->nums[TICODE_mjump]
#define t_max_pairs(t) (t)->nums[TICODE_pairs]
#define t_maximum_windows(t) (t)->nums[TICODE_wnum]
#define t_micro_col_size(t) (t)->nums[TICODE_mcs]
#define t_micro_line_size(t) (t)->nums[TICODE_mls]
#define t_no_color_video(t) (t)->nums[TICODE_ncv]
#define t_num_labels(t) (t)->nums[TICODE_nlab]
#define t_number_of_pins(t) (t)->nums[TICODE_npins]
#define t_output_res_char(t) (t)->nums[TICODE_orc]
#define t_output_res_line(t) (t)->nums[TICODE_orl]
#define t_output_res_horz_inch(t) (t)->nums[TICODE_orhi]
#define t_output_res_vert_inch(t) (t)->nums[TICODE_orvi]
#define t_padding_baud_rate(t) (t)->nums[TICODE_pb]
#define t_print_rate(t) (t)->nums[TICODE_cps]
#define t_virtual_terminal(t) (t)->nums[TICODE_vt]
#define t_wide_char_size(t) (t)->nums[TICODE_widcs]
#define t_width_status_line(t) (t)->nums[TICODE_wsl]
#define bit_image_entwining t_bit_image_entwining(cur_term)
#define bit_image_type t_bit_image_type(cur_term)
#define buffer_capacity t_buffer_capacity(cur_term)
#define buttons t_buttons(cur_term)
#define columns t_columns(cur_term)
#define dot_horz_spacing t_dot_horz_spacing(cur_term)
#define dot_vert_spacing t_dot_vert_spacing(cur_term)
#define init_tabs t_init_tabs(cur_term)
#define label_height t_label_height(cur_term)
#define label_width t_label_width(cur_term)
#define lines t_lines(cur_term)
#define lines_of_memory t_lines_of_memory(cur_term)
#define max_attributes t_max_attributes(cur_term)
#define magic_cookie_glitch t_magic_cookie_glitch(cur_term)
#define max_colors t_max_colors(cur_term)
#define max_micro_address t_max_micro_address(cur_term)
#define max_micro_jump t_max_micro_jump(cur_term)
#define max_pairs t_max_pairs(cur_term)
#define maximum_windows t_maximum_windows(cur_term)
#define micro_col_size t_micro_col_size(cur_term)
#define micro_line_size t_micro_line_size(cur_term)
#define no_color_video t_no_color_video(cur_term)
#define num_labels t_num_labels(cur_term)
#define number_of_pins t_number_of_pins(cur_term)
#define output_res_char t_output_res_char(cur_term)
#define output_res_line t_output_res_line(cur_term)
#define output_res_horz_inch t_output_res_horz_inch(cur_term)
#define output_res_vert_inch t_output_res_vert_inch(cur_term)
#define padding_baud_rate t_padding_baud_rate(cur_term)
#define print_rate t_print_rate(cur_term)
#define virtual_terminal t_virtual_terminal(cur_term)
#define wide_char_size t_wide_char_size(cur_term)
#define width_status_line t_width_status_line(cur_term)
/*
* NUMBER DESCRIPTIONS
*
* bit_image_entwining: Number of passes for each bit-map row
* bit_image_type: Type of bit image device
* buffer_capacity: Number of bytes buffered before printing
* buttons: Number of buttons on the mouse
* columns: Number of columns in a line
* dot_horz_spacing: Spacing of dots horizontally in dots per inch
* dot_vert_spacing: Spacing of pins vertically in pins per inch
* init_tabs: Tabs initially every #1 spaces
* label_height: Number of rows in each label
* label_width: Numbre of columns in each label
* lines: Number of lines on a screen or a page
* lines_of_memory: Lines of memory of > lines; 0 means varies
* max_attributes: Maximum combined video attributes terminal can display
* magic_cookie_glitch: Number of blank characters left by smso or rmso
* max_colors: Maximum number of colours on the screen
* max_micro_address: Maximum value in micro_..._addresss
* max_micro_jump: Maximum value in parm_..._micro
* max_pairs: Maximum number of colour-pairs on the screen
* maximum_windows: Maximum number of definable windows
* micro_col_size: Character step size when in micro mode
* micro_line_size: Line step size when in micro mode
* no_color_video: Video attributes that can't be used with colours
* num_labels: Number of labels on screen (start at 1)
* number_of_pins: Number of pins in print-head
* output_res_char: Horizontal resolution in units per character
* output_res_line: Vertical resolution in units per line
* output_res_horz_inch: Horizontal resolution in units per inch
* output_res_vert_inch: Vertical resolution in units per inch
* padding_baud_rate: Lowest baud rate where padding needed
* print_rate: Print rate in characters per second
* virtual_terminal: Virtual terminal number
* wide_char_size: Character step size when in double-wide mode
* width_status_line: Number of columns in status line
*/
/* Define available terminfo strings */
enum TISTRS{
TICODE_acsc,
TICODE_scesa,
TICODE_cbt,
TICODE_bel,
TICODE_bicr,
TICODE_binel,
TICODE_birep,
TICODE_cr,
TICODE_cpi,
TICODE_lpi,
TICODE_chr,
TICODE_cvr,
TICODE_csr,
TICODE_rmp,
TICODE_csnm,
TICODE_tbc,
TICODE_mgc,
TICODE_clear,
TICODE_el1,
TICODE_el,
TICODE_ed,
TICODE_csin,
TICODE_colornm,
TICODE_hpa,
TICODE_cmdch,
TICODE_cwin,
TICODE_cup,
TICODE_cud1,
TICODE_home,
TICODE_civis,
TICODE_cub1,
TICODE_mrcup,
TICODE_cnorm,
TICODE_cuf1,
TICODE_ll,
TICODE_cuu1,
TICODE_cvvis,
TICODE_defbi,
TICODE_defc,
TICODE_dch1,
TICODE_dl1,
TICODE_devt,
TICODE_dial,
TICODE_dsl,
TICODE_dclk,
TICODE_dispc,
TICODE_hd,
TICODE_enacs,
TICODE_endbi,
TICODE_smacs,
TICODE_smam,
TICODE_blink,
TICODE_bold,
TICODE_smcup,
TICODE_smdc,
TICODE_dim,
TICODE_swidm,
TICODE_sdrfq,
TICODE_ehhlm,
TICODE_smir,
TICODE_sitm,
TICODE_elhlm,
TICODE_slm,
TICODE_elohlm,
TICODE_smicm,
TICODE_snlq,
TICODE_snrmq,
TICODE_smpch,
TICODE_prot,
TICODE_rev,
TICODE_erhlm,
TICODE_smsc,
TICODE_invis,
TICODE_sshm,
TICODE_smso,
TICODE_ssubm,
TICODE_ssupm,
TICODE_ethlm,
TICODE_smul,
TICODE_sum,
TICODE_evhlm,
TICODE_smxon,
TICODE_ech,
TICODE_rmacs,
TICODE_rmam,
TICODE_sgr0,
TICODE_rmcup,
TICODE_rmdc,
TICODE_rwidm,
TICODE_rmir,
TICODE_ritm,
TICODE_rlm,
TICODE_rmicm,
TICODE_rmpch,
TICODE_rmsc,
TICODE_rshm,
TICODE_rmso,
TICODE_rsubm,
TICODE_rsupm,
TICODE_rmul,
TICODE_rum,
TICODE_rmxon,
TICODE_pause,
TICODE_hook,
TICODE_flash,
TICODE_ff,
TICODE_fsl,
TICODE_getm,
TICODE_wingo,
TICODE_hup,
TICODE_is1,
TICODE_is2,
TICODE_is3,
TICODE_if,
TICODE_iprog,
TICODE_initc,
TICODE_initp,
TICODE_ich1,
TICODE_il1,
TICODE_ip,
TICODE_ka1,
TICODE_ka3,
TICODE_kb2,
TICODE_kbs,
TICODE_kbeg,
TICODE_kcbt,
TICODE_kc1,
TICODE_kc3,
TICODE_kcan,
TICODE_ktbc,
TICODE_kclr,
TICODE_kclo,
TICODE_kcmd,
TICODE_kcpy,
TICODE_kcrt,
TICODE_kctab,
TICODE_kdch1,
TICODE_kdl1,
TICODE_kcud1,
TICODE_krmir,
TICODE_kend,
TICODE_kent,
TICODE_kel,
TICODE_ked,
TICODE_kext,
TICODE_kf0,
TICODE_kf1,
TICODE_kf2,
TICODE_kf3,
TICODE_kf4,
TICODE_kf5,
TICODE_kf6,
TICODE_kf7,
TICODE_kf8,
TICODE_kf9,
TICODE_kf10,
TICODE_kf11,
TICODE_kf12,
TICODE_kf13,
TICODE_kf14,
TICODE_kf15,
TICODE_kf16,
TICODE_kf17,
TICODE_kf18,
TICODE_kf19,
TICODE_kf20,
TICODE_kf21,
TICODE_kf22,
TICODE_kf23,
TICODE_kf24,
TICODE_kf25,
TICODE_kf26,
TICODE_kf27,
TICODE_kf28,
TICODE_kf29,
TICODE_kf30,
TICODE_kf31,
TICODE_kf32,
TICODE_kf33,
TICODE_kf34,
TICODE_kf35,
TICODE_kf36,
TICODE_kf37,
TICODE_kf38,
TICODE_kf39,
TICODE_kf40,
TICODE_kf41,
TICODE_kf42,
TICODE_kf43,
TICODE_kf44,
TICODE_kf45,
TICODE_kf46,
TICODE_kf47,
TICODE_kf48,
TICODE_kf49,
TICODE_kf50,
TICODE_kf51,
TICODE_kf52,
TICODE_kf53,
TICODE_kf54,
TICODE_kf55,
TICODE_kf56,
TICODE_kf57,
TICODE_kf58,
TICODE_kf59,
TICODE_kf60,
TICODE_kf61,
TICODE_kf62,
TICODE_kf63,
TICODE_kfnd,
TICODE_khlp,
TICODE_khome,
TICODE_kich1,
TICODE_kil1,
TICODE_kcub1,
TICODE_kll,
TICODE_kmrk,
TICODE_kmsg,
TICODE_kmous,
TICODE_kmov,
TICODE_knxt,
TICODE_knp,
TICODE_kopn,
TICODE_kopt,
TICODE_kpp,
TICODE_kprv,
TICODE_kprt,
TICODE_krdo,
TICODE_kref,
TICODE_krfr,
TICODE_krpl,
TICODE_krst,
TICODE_kres,
TICODE_kcuf1,
TICODE_ksav,
TICODE_kBEG,
TICODE_kCAN,
TICODE_kCMD,
TICODE_kCPY,
TICODE_kCRT,
TICODE_kDC,
TICODE_kDL,
TICODE_kslt,
TICODE_kEND,
TICODE_kEOL,
TICODE_kEXT,
TICODE_kind,
TICODE_kFND,
TICODE_kHLP,
TICODE_kHOM,
TICODE_kIC,
TICODE_kLFT,
TICODE_kMSG,
TICODE_kMOV,
TICODE_kNXT,
TICODE_kOPT,
TICODE_kPRV,
TICODE_kPRT,
TICODE_kri,
TICODE_kRDO,
TICODE_kRPL,
TICODE_kRIT,
TICODE_kRES,
TICODE_kSAV,
TICODE_kSPD,
TICODE_khts,
TICODE_kUND,
TICODE_kspd,
TICODE_kund,
TICODE_kcuu1,
TICODE_rmkx,
TICODE_smkx,
TICODE_lf0,
TICODE_lf1,
TICODE_lf2,
TICODE_lf3,
TICODE_lf4,
TICODE_lf5,
TICODE_lf6,
TICODE_lf7,
TICODE_lf8,
TICODE_lf9,
TICODE_lf10,
TICODE_fln,
TICODE_rmln,
TICODE_smln,
TICODE_rmm,
TICODE_smm,
TICODE_mhpa,
TICODE_mcud1,
TICODE_mcub1,
TICODE_mcuf1,
TICODE_mvpa,
TICODE_mcuu1,
TICODE_minfo,
TICODE_nel,
TICODE_porder,
TICODE_oc,
TICODE_op,
TICODE_pad,
TICODE_dch,
TICODE_dl,
TICODE_cud,
TICODE_mcud,
TICODE_ich,
TICODE_indn,
TICODE_il,
TICODE_cub,
TICODE_mcub,
TICODE_cuf,
TICODE_mcuf,
TICODE_rin,
TICODE_cuu,
TICODE_mcuu,
TICODE_pctrm,
TICODE_pfkey,
TICODE_pfloc,
TICODE_pfxl,
TICODE_pfx,
TICODE_pln,
TICODE_mc0,
TICODE_mc5p,
TICODE_mc4,
TICODE_mc5,
TICODE_pulse,
TICODE_qdial,
TICODE_rmclk,
TICODE_rep,
TICODE_rfi,
TICODE_reqmp,
TICODE_rs1,
TICODE_rs2,
TICODE_rs3,
TICODE_rf,
TICODE_rc,
TICODE_vpa,
TICODE_sc,
TICODE_scesc,
TICODE_ind,
TICODE_ri,
TICODE_scs,
TICODE_s0ds,
TICODE_s1ds,
TICODE_s2ds,
TICODE_s3ds,
TICODE_sgr1,
TICODE_setab,
TICODE_setaf,
TICODE_sgr,
TICODE_setb,
TICODE_smgb,
TICODE_smgbp,
TICODE_sclk,
TICODE_setcolor,
TICODE_scp,
TICODE_setf,
TICODE_smgl,
TICODE_smglp,
TICODE_smglr,
TICODE_slines,
TICODE_slength,
TICODE_smgr,
TICODE_smgrp,
TICODE_hts,
TICODE_smgtb,
TICODE_smgt,
TICODE_smgtp,
TICODE_wind,
TICODE_sbim,
TICODE_scsd,
TICODE_rbim,
TICODE_rcsd,
TICODE_subcs,
TICODE_supcs,
TICODE_ht,
TICODE_docr,
TICODE_tsl,
TICODE_tone,
TICODE_u0,
TICODE_u1,
TICODE_u2,
TICODE_u3,
TICODE_u4,
TICODE_u5,
TICODE_u6,
TICODE_u7,
TICODE_u8,
TICODE_u9,
TICODE_uc,
TICODE_hu,
TICODE_wait,
TICODE_xoffc,
TICODE_xonc,
TICODE_zerom
};
#define TISTRMAX TICODE_zerom
#define t_acs_chars(t) (t)->strs[TICODE_acsc]
#define t_alt_scancode_esc(t) (t)->strs[TICODE_scesa]
#define t_back_tab(t) (t)->strs[TICODE_cbt]
#define t_bell(t) (t)->strs[TICODE_bel]
#define t_bit_image_carriage_return(t) (t)->strs[TICODE_bicr]
#define t_bit_image_newline(t) (t)->strs[TICODE_binel]
#define t_bit_image_repeat(t) (t)->strs[TICODE_birep]
#define t_carriage_return(t) (t)->strs[TICODE_cr]
#define t_change_char_pitch(t) (t)->strs[TICODE_cpi]
#define t_change_line_pitch(t) (t)->strs[TICODE_lpi]
#define t_change_res_horz(t) (t)->strs[TICODE_chr]
#define t_change_res_vert(t) (t)->strs[TICODE_cvr]
#define t_change_scroll_region(t) (t)->strs[TICODE_csr]
#define t_char_padding(t) (t)->strs[TICODE_rmp]
#define t_char_set_names(t) (t)->strs[TICODE_csnm]
#define t_clear_all_tabs(t) (t)->strs[TICODE_tbc]
#define t_clear_margins(t) (t)->strs[TICODE_mgc]
#define t_clear_screen(t) (t)->strs[TICODE_clear]
#define t_clr_bol(t) (t)->strs[TICODE_el1]
#define t_clr_eol(t) (t)->strs[TICODE_el]
#define t_clr_eos(t) (t)->strs[TICODE_ed]
#define t_code_set_init(t) (t)->strs[TICODE_csin]
#define t_color_names(t) (t)->strs[TICODE_colornm]
#define t_column_address(t) (t)->strs[TICODE_hpa]
#define t_command_character(t) (t)->strs[TICODE_cmdch]
#define t_create_window(t) (t)->strs[TICODE_cwin]
#define t_cursor_address(t) (t)->strs[TICODE_cup]
#define t_cursor_down(t) (t)->strs[TICODE_cud1]
#define t_cursor_home(t) (t)->strs[TICODE_home]
#define t_cursor_invisible(t) (t)->strs[TICODE_civis]
#define t_cursor_left(t) (t)->strs[TICODE_cub1]
#define t_cursor_mem_address(t) (t)->strs[TICODE_mrcup]
#define t_cursor_normal(t) (t)->strs[TICODE_cnorm]
#define t_cursor_right(t) (t)->strs[TICODE_cuf1]
#define t_cursor_to_ll(t) (t)->strs[TICODE_ll]
#define t_cursor_up(t) (t)->strs[TICODE_cuu1]
#define t_cursor_visible(t) (t)->strs[TICODE_cvvis]
#define t_define_bit_image_region(t) (t)->strs[TICODE_defbi]
#define t_define_char(t) (t)->strs[TICODE_defc]
#define t_delete_character(t) (t)->strs[TICODE_dch1]
#define t_delete_line(t) (t)->strs[TICODE_dl1]
#define t_device_type(t) (t)->strs[TICODE_devt]
#define t_dial_phone(t) (t)->strs[TICODE_dial]
#define t_dis_status_line(t) (t)->strs[TICODE_dsl]
#define t_display_clock(t) (t)->strs[TICODE_dclk]
#define t_display_pc_char(t) (t)->strs[TICODE_dispc]
#define t_down_half_time(t) (t)->strs[TICODE_hd]
#define t_ena_acs(t) (t)->strs[TICODE_enacs]
#define t_end_bit_image_region(t) (t)->strs[TICODE_endbi]
#define t_enter_alt_charset_mode(t) (t)->strs[TICODE_smacs]
#define t_enter_am_mode(t) (t)->strs[TICODE_smam]
#define t_enter_blink_mode(t) (t)->strs[TICODE_blink]
#define t_enter_bold_mode(t) (t)->strs[TICODE_bold]
#define t_enter_ca_mode(t) (t)->strs[TICODE_smcup]
#define t_enter_delete_mode(t) (t)->strs[TICODE_smdc]
#define t_enter_dim_mode(t) (t)->strs[TICODE_dim]
#define t_enter_doublewide_mode(t) (t)->strs[TICODE_swidm]
#define t_enter_draft_quality(t) (t)->strs[TICODE_sdrfq]
#define t_enter_horizontal_hl_mode(t) (t)->strs[TICODE_ehhlm]
#define t_enter_insert_mode(t) (t)->strs[TICODE_smir]
#define t_enter_italics_mode(t) (t)->strs[TICODE_sitm]
#define t_enter_left_hl_mode(t) (t)->strs[TICODE_elhlm]
#define t_enter_leftward_mode(t) (t)->strs[TICODE_slm]
#define t_enter_low_hl_mode(t) (t)->strs[TICODE_elohlm]
#define t_enter_micro_mode(t) (t)->strs[TICODE_smicm]
#define t_enter_near_quality_letter(t) (t)->strs[TICODE_snlq]
#define t_enter_normal_quality(t) (t)->strs[TICODE_snrmq]
#define t_enter_pc_charset_mode(t) (t)->strs[TICODE_smpch]
#define t_enter_protected_mode(t) (t)->strs[TICODE_prot]
#define t_enter_reverse_mode(t) (t)->strs[TICODE_rev]
#define t_enter_right_hl_mode(t) (t)->strs[TICODE_erhlm]
#define t_enter_scancode_mode(t) (t)->strs[TICODE_smsc]
#define t_enter_secure_mode(t) (t)->strs[TICODE_invis]
#define t_enter_shadow_mode(t) (t)->strs[TICODE_sshm]
#define t_enter_standout_mode(t) (t)->strs[TICODE_smso]
#define t_enter_subscript_mode(t) (t)->strs[TICODE_ssubm]
#define t_enter_superscript_mode(t) (t)->strs[TICODE_ssupm]
#define t_enter_top_hl_mode(t) (t)->strs[TICODE_ethlm]
#define t_enter_underline_mode(t) (t)->strs[TICODE_smul]
#define t_enter_upward_mode(t) (t)->strs[TICODE_sum]
#define t_enter_vertical_hl_mode(t) (t)->strs[TICODE_evhlm]
#define t_enter_xon_mode(t) (t)->strs[TICODE_smxon]
#define t_erase_chars(t) (t)->strs[TICODE_ech]
#define t_exit_alt_charset_mode(t) (t)->strs[TICODE_rmacs]
#define t_exit_am_mode(t) (t)->strs[TICODE_rmam]
#define t_exit_attribute_mode(t) (t)->strs[TICODE_sgr0]
#define t_exit_ca_mode(t) (t)->strs[TICODE_rmcup]
#define t_exit_delete_mode(t) (t)->strs[TICODE_rmdc]
#define t_exit_doublewide_mode(t) (t)->strs[TICODE_rwidm]
#define t_exit_insert_mode(t) (t)->strs[TICODE_rmir]
#define t_exit_italics_mode(t) (t)->strs[TICODE_ritm]
#define t_exit_leftward_mode(t) (t)->strs[TICODE_rlm]
#define t_exit_micro_mode(t) (t)->strs[TICODE_rmicm]
#define t_exit_pc_charset_mode(t) (t)->strs[TICODE_rmpch]
#define t_exit_scancode_mode(t) (t)->strs[TICODE_rmsc]
#define t_exit_shadow_mode(t) (t)->strs[TICODE_rshm]
#define t_exit_standout_mode(t) (t)->strs[TICODE_rmso]
#define t_exit_subscript_mode(t) (t)->strs[TICODE_rsubm]
#define t_exit_superscript_mode(t) (t)->strs[TICODE_rsupm]
#define t_exit_underline_mode(t) (t)->strs[TICODE_rmul]
#define t_exit_upward_mode(t) (t)->strs[TICODE_rum]
#define t_exit_xon_mode(t) (t)->strs[TICODE_rmxon]
#define t_fixed_pause(t) (t)->strs[TICODE_pause]
#define t_flash_hook(t) (t)->strs[TICODE_hook]
#define t_flash_screen(t) (t)->strs[TICODE_flash]
#define t_form_feed(t) (t)->strs[TICODE_ff]
#define t_from_status_line(t) (t)->strs[TICODE_fsl]
#define t_get_mouse(t) (t)->strs[TICODE_getm]
#define t_goto_window(t) (t)->strs[TICODE_wingo]
#define t_hangup(t) (t)->strs[TICODE_hup]
#define t_init_1string(t) (t)->strs[TICODE_is1]
#define t_init_2string(t) (t)->strs[TICODE_is2]
#define t_init_3string(t) (t)->strs[TICODE_is3]
#define t_init_file(t) (t)->strs[TICODE_if]
#define t_init_prog(t) (t)->strs[TICODE_iprog]
#define t_initialize_color(t) (t)->strs[TICODE_initc]
#define t_initialize_pair(t) (t)->strs[TICODE_initp]
#define t_insert_character(t) (t)->strs[TICODE_ich1]
#define t_insert_line(t) (t)->strs[TICODE_il1]
#define t_insert_padding(t) (t)->strs[TICODE_ip]
#define t_key_a1(t) (t)->strs[TICODE_ka1]
#define t_key_a3(t) (t)->strs[TICODE_ka3]
#define t_key_b2(t) (t)->strs[TICODE_kb2]
#define t_key_backspace(t) (t)->strs[TICODE_kbs]
#define t_key_beg(t) (t)->strs[TICODE_kbeg]
#define t_key_btab(t) (t)->strs[TICODE_kcbt]
#define t_key_c1(t) (t)->strs[TICODE_kc1]
#define t_key_c3(t) (t)->strs[TICODE_kc3]
#define t_key_cancel(t) (t)->strs[TICODE_kcan]
#define t_key_catab(t) (t)->strs[TICODE_ktbc]
#define t_key_clear(t) (t)->strs[TICODE_kclr]
#define t_key_close(t) (t)->strs[TICODE_kclo]
#define t_key_command(t) (t)->strs[TICODE_kcmd]
#define t_key_copy(t) (t)->strs[TICODE_kcpy]
#define t_key_create(t) (t)->strs[TICODE_kcrt]
#define t_key_ctab(t) (t)->strs[TICODE_kctab]
#define t_key_dc(t) (t)->strs[TICODE_kdch1]
#define t_key_dl(t) (t)->strs[TICODE_kdl1]
#define t_key_down(t) (t)->strs[TICODE_kcud1]
#define t_key_eic(t) (t)->strs[TICODE_krmir]
#define t_key_end(t) (t)->strs[TICODE_kend]
#define t_key_enter(t) (t)->strs[TICODE_kent]
#define t_key_eol(t) (t)->strs[TICODE_kel]
#define t_key_eos(t) (t)->strs[TICODE_ked]
#define t_key_exit(t) (t)->strs[TICODE_kext]
#define t_key_f0(t) (t)->strs[TICODE_kf0]
#define t_key_f1(t) (t)->strs[TICODE_kf1]
#define t_key_f2(t) (t)->strs[TICODE_kf2]
#define t_key_f3(t) (t)->strs[TICODE_kf3]
#define t_key_f4(t) (t)->strs[TICODE_kf4]
#define t_key_f5(t) (t)->strs[TICODE_kf5]
#define t_key_f6(t) (t)->strs[TICODE_kf6]
#define t_key_f7(t) (t)->strs[TICODE_kf7]
#define t_key_f8(t) (t)->strs[TICODE_kf8]
#define t_key_f9(t) (t)->strs[TICODE_kf9]
#define t_key_f10(t) (t)->strs[TICODE_kf10]
#define t_key_f11(t) (t)->strs[TICODE_kf11]
#define t_key_f12(t) (t)->strs[TICODE_kf12]
#define t_key_f13(t) (t)->strs[TICODE_kf13]
#define t_key_f14(t) (t)->strs[TICODE_kf14]
#define t_key_f15(t) (t)->strs[TICODE_kf15]
#define t_key_f16(t) (t)->strs[TICODE_kf16]
#define t_key_f17(t) (t)->strs[TICODE_kf17]
#define t_key_f18(t) (t)->strs[TICODE_kf18]
#define t_key_f19(t) (t)->strs[TICODE_kf19]
#define t_key_f20(t) (t)->strs[TICODE_kf20]
#define t_key_f21(t) (t)->strs[TICODE_kf21]
#define t_key_f22(t) (t)->strs[TICODE_kf22]
#define t_key_f23(t) (t)->strs[TICODE_kf23]
#define t_key_f24(t) (t)->strs[TICODE_kf24]
#define t_key_f25(t) (t)->strs[TICODE_kf25]
#define t_key_f26(t) (t)->strs[TICODE_kf26]
#define t_key_f27(t) (t)->strs[TICODE_kf27]
#define t_key_f28(t) (t)->strs[TICODE_kf28]
#define t_key_f29(t) (t)->strs[TICODE_kf29]
#define t_key_f30(t) (t)->strs[TICODE_kf30]
#define t_key_f31(t) (t)->strs[TICODE_kf31]
#define t_key_f32(t) (t)->strs[TICODE_kf32]
#define t_key_f33(t) (t)->strs[TICODE_kf33]
#define t_key_f34(t) (t)->strs[TICODE_kf34]
#define t_key_f35(t) (t)->strs[TICODE_kf35]
#define t_key_f36(t) (t)->strs[TICODE_kf36]
#define t_key_f37(t) (t)->strs[TICODE_kf37]
#define t_key_f38(t) (t)->strs[TICODE_kf38]
#define t_key_f39(t) (t)->strs[TICODE_kf39]
#define t_key_f40(t) (t)->strs[TICODE_kf40]
#define t_key_f41(t) (t)->strs[TICODE_kf41]
#define t_key_f42(t) (t)->strs[TICODE_kf42]
#define t_key_f43(t) (t)->strs[TICODE_kf43]
#define t_key_f44(t) (t)->strs[TICODE_kf44]
#define t_key_f45(t) (t)->strs[TICODE_kf45]
#define t_key_f46(t) (t)->strs[TICODE_kf46]
#define t_key_f47(t) (t)->strs[TICODE_kf47]
#define t_key_f48(t) (t)->strs[TICODE_kf48]
#define t_key_f49(t) (t)->strs[TICODE_kf49]
#define t_key_f50(t) (t)->strs[TICODE_kf50]
#define t_key_f51(t) (t)->strs[TICODE_kf51]
#define t_key_f52(t) (t)->strs[TICODE_kf52]
#define t_key_f53(t) (t)->strs[TICODE_kf53]
#define t_key_f54(t) (t)->strs[TICODE_kf54]
#define t_key_f55(t) (t)->strs[TICODE_kf55]
#define t_key_f56(t) (t)->strs[TICODE_kf56]
#define t_key_f57(t) (t)->strs[TICODE_kf57]
#define t_key_f58(t) (t)->strs[TICODE_kf58]
#define t_key_f59(t) (t)->strs[TICODE_kf59]
#define t_key_f60(t) (t)->strs[TICODE_kf60]
#define t_key_f61(t) (t)->strs[TICODE_kf61]
#define t_key_f62(t) (t)->strs[TICODE_kf62]
#define t_key_f63(t) (t)->strs[TICODE_kf63]
#define t_key_find(t) (t)->strs[TICODE_kfnd]
#define t_key_help(t) (t)->strs[TICODE_khlp]
#define t_key_home(t) (t)->strs[TICODE_khome]
#define t_key_ic(t) (t)->strs[TICODE_kich1]
#define t_key_il(t) (t)->strs[TICODE_kil1]
#define t_key_left(t) (t)->strs[TICODE_kcub1]
#define t_key_ll(t) (t)->strs[TICODE_kll]
#define t_key_mark(t) (t)->strs[TICODE_kmrk]
#define t_key_message(t) (t)->strs[TICODE_kmsg]
#define t_key_mouse(t) (t)->strs[TICODE_kmous]
#define t_key_move(t) (t)->strs[TICODE_kmov]
#define t_key_next(t) (t)->strs[TICODE_knxt]
#define t_key_npage(t) (t)->strs[TICODE_knp]
#define t_key_open(t) (t)->strs[TICODE_kopn]
#define t_key_options(t) (t)->strs[TICODE_kopt]
#define t_key_ppage(t) (t)->strs[TICODE_kpp]
#define t_key_previous(t) (t)->strs[TICODE_kprv]
#define t_key_print(t) (t)->strs[TICODE_kprt]
#define t_key_redo(t) (t)->strs[TICODE_krdo]
#define t_key_reference(t) (t)->strs[TICODE_kref]
#define t_key_refresh(t) (t)->strs[TICODE_krfr]
#define t_key_replace(t) (t)->strs[TICODE_krpl]
#define t_key_restart(t) (t)->strs[TICODE_krst]
#define t_key_resume(t) (t)->strs[TICODE_kres]
#define t_key_right(t) (t)->strs[TICODE_kcuf1]
#define t_key_save(t) (t)->strs[TICODE_ksav]
#define t_key_sbeg(t) (t)->strs[TICODE_kBEG]
#define t_key_scancel(t) (t)->strs[TICODE_kCAN]
#define t_key_scommand(t) (t)->strs[TICODE_kCMD]
#define t_key_scopy(t) (t)->strs[TICODE_kCPY]
#define t_key_screate(t) (t)->strs[TICODE_kCRT]
#define t_key_sdc(t) (t)->strs[TICODE_kDC]
#define t_key_sdl(t) (t)->strs[TICODE_kDL]
#define t_key_select(t) (t)->strs[TICODE_kslt]
#define t_key_send(t) (t)->strs[TICODE_kEND]
#define t_key_seol(t) (t)->strs[TICODE_kEOL]
#define t_key_sexit(t) (t)->strs[TICODE_kEXT]
#define t_key_sf(t) (t)->strs[TICODE_kind]
#define t_key_sfind(t) (t)->strs[TICODE_kFND]
#define t_key_shelp(t) (t)->strs[TICODE_kHLP]
#define t_key_shome(t) (t)->strs[TICODE_kHOM]
#define t_key_sic(t) (t)->strs[TICODE_kIC]
#define t_key_sleft(t) (t)->strs[TICODE_kLFT]
#define t_key_smessage(t) (t)->strs[TICODE_kMSG]
#define t_key_smove(t) (t)->strs[TICODE_kMOV]
#define t_key_snext(t) (t)->strs[TICODE_kNXT]
#define t_key_soptions(t) (t)->strs[TICODE_kOPT]
#define t_key_sprevious(t) (t)->strs[TICODE_kPRV]
#define t_key_sprint(t) (t)->strs[TICODE_kPRT]
#define t_key_sr(t) (t)->strs[TICODE_kri]
#define t_key_sredo(t) (t)->strs[TICODE_kRDO]