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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
|
##############################################################################
# Copyright (c) 1998 Free Software Foundation, Inc. #
# #
# Permission is hereby granted, free of charge, to any person obtaining a #
# copy of this software and associated documentation files (the "Software"), #
# to deal in the Software without restriction, including without limitation #
# the rights to use, copy, modify, merge, publish, distribute, distribute #
# with modifications, sublicense, and/or sell copies of the Software, and to #
# permit persons to whom the Software is furnished to do so, subject to the #
# following conditions: #
# #
# The above copyright notice and this permission notice shall be included in #
# all copies or substantial portions of the Software. #
# #
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
# DEALINGS IN THE SOFTWARE. #
# #
# Except as contained in this notice, the name(s) of the above copyright #
# holders shall not be used in advertising or otherwise to promote the sale, #
# use or other dealings in this Software without prior written #
# authorization. #
##############################################################################
#
# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
# and: Eric S. Raymond <esr@snark.thyrsus.com>
#
# $OpenBSD: Caps,v 1.3 1999/11/28 17:53:40 millert Exp $
# $From: Caps,v 1.25 1999/11/27 20:13:55 tom Exp $
#
# This is the master termcap/terminfo capability table.
#
# This table is used to generate initializers for tables that drive tic,
# infocmp, and the library compilation code used to support the termcap
# compatibility hack. It is also used to generate the tabular portion of the
# terminfo(5) man page; lines beginning with `#%' are passed through to become
# the terminfo table.
#
# This file has three major sections; a standard-capabilities table, two
# extension-capability tables, and a section of aliases declarations.
# The first two have the same format, as follows:
#
# FILE FORMAT
#
# Column 1: terminfo variable name
# Column 2: terminfo capability name
# Column 3: capability type (boolean, numeric, or string)
# Column 4: termcap capability name
# Column 5: Lead with `Y' if capability should be emitted in termcap
# translations, `-' otherwise
# Column 6: capability description
#
# The codes following [Y-] in column 5 describe the versions of termcap which
# use the given capability. This information is not used by the curses library
# proper; rather, it's there to help the terminfo maintainer avoid emitting
# termcap entry translations that are more than 1023 bytes long (and tank a
# lot of old termcap-using programs). The codes read as follows:
# B = mentioned in the BSD man page for 4.4BSD curses
# C = used by the 4.4BSD curses library
# G = mentioned in the documentation for GNU termcap
# E = used by GNU Emacs
# K = remove this terminfo capability when translating to standard format
# The important codes are C and E. A cap with C or E should be preserved in
# translation if possible. The problem is that preserving all such caps may
# lead to some termcap translations being too long. The termcap maintainer
# has a bit of a juggling act to do...potential problem cases are marked with
# a * or **.
#
# The aliases section has the following format:
#
# Column 1: either `capalias' or `infoalias'
# Column 2: name to be aliased
# Column 3: what name it should translate to. The name IGNORE means it
# should be discarded with a warning message.
# Column 4: name of the extension set (used for compiler warning messages)
# Column 5: capability description (usually an associated terminfo variable)
#
# HANDLING TERMCAP AND TERMINFO EXTENSIONS
#
# There are basically five different ways to handle termcap and terminfo
# extensions:
#
# 1. Don't list the capname here, or list it but comment it out (the latter
# is preferable; someone might want to handle it in the future). If you do
# this, the capability will be treated as unknown and raise a warning from
# the compiler.
#
# 2. Alias it. This is appropriate if the capability has the same meaning
# as an already-supported one. The compiler will handle aliasing, emitting
# an appropriate informational message whenever an alias fires.
#
# 3. List it in the standard table. You almost certainly do *not* want
# to do this -- the capabilities in that one, and their order, have been
# carefully chosen to be SVr4-binary-compatible when they're written out
# as a terminfo object, and breaking this would be bad. It's up the ncurses
# library what to do with the terminfo data after it's read in.
#
# 4. List it in the aliases table with an IGNORE target field. If you
# do this, the capability will be ignored on input (though the user will
# get a warning message about it).
#
# 5. List it in the extensions table. If you do this, the compiler will
# silently accept the capability, but the curses library proper will never
# see it (because it won't be written out as part of the terminfo object
# format). It's up to you what you have the compiler do with it.
#
# There are two opposite reasons to choose option 5. One is when you want
# to eat the capability silently and discard it when doing translations
# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
# in this class. Nothing will ever use them again.
#
# More usually, you want the compiler to try to deduce something from the
# capability value that it can use to translate it into your output format.
# You'll need to write custom code, probably in postprocess_termcap() or
# postprocess_terminfo(), to handle the translation.
#
# CONTROLLING ENTRY LENGTH
#
# Notes on specific elisions made to fit translations within 1023 bytes:
#
# Machines with IBM PC-like keyboards want to be able to define the following
# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
# only environments for End or Home-Down), key_dc, and key_ic. This is also
# the set of keys the `joe' editor will be upset if it can't see. So don't
# trim those out of the set to be translated to termcap, or various users of
# the termcap file will become irate.
#
# It might look tempting to leave those long init strings out of translations.
# We can't do it (yet); 4.4BSD tput and tset use them.
#
# We retain the sgr capability in translation in spite of the fact that neither
# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
# hard to understand without it, and (b) the entries in which it is long tend
# to be older types that don't use up a lot of string space on function keys.
# The tic(1) translation code will complain and elide it if it makes a critical
# difference (there is special code in tic to recognize this situation).
#
# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
# optimizer in BSD curses didn't use them. This omission seems to be the
# single most effective one, it shortened the resolved length of all thirteen
# problem entries in the 9.9.0 version of the terminfo master below critical.
#
# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
# translations go back over critical if we do this. As 4.4BSD curses fades
# into history and GNU termcap's application base shrinks towards being GNU
# Emacs only, we'll probably elide out some BSD-only capabilities in order
# to buy space for non-essentials Emacs is still using. Capabilities high
# on that hit list: rc, sc, uc.
#
#############################################################################
#
# STANDARD CAPABILITIES
#
#%The following is a complete table of the capabilities included in a
#%terminfo description block and available to terminfo-using code. In each
#%line of the table,
#%
#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
#%accesses the capability.
#%
#%The \fBcapname\fR is the short name used in the text of the database,
#%and is used by a person updating the database.
#%Whenever possible, capnames are chosen to be the same as or similar to
#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
#%identical or very similar names). Semantics are also intended to match
#%those of the specification.
#%
#%The termcap code is the old
#%.B termcap
#%capability name (some capabilities are new, and have names which termcap
#%did not originate).
#%.P
#%Capability names have no hard length limit, but an informal limit of 5
#%characters has been adopted to keep them short and to allow the tabs in
#%the source file
#%.B Caps
#%to line up nicely.
#%
#%Finally, the description field attempts to convey the semantics of the
#%capability. You may find some codes in the description field:
#%.TP
#%(P)
#%indicates that padding may be specified
#%.TP
#%#[1-9]
#%in the description field indicates that the string is passed through tparm with
#%parms as given (#\fIi\fP).
#%.TP
#%(P*)
#%indicates that padding may vary in proportion to the number of
#%lines affected
#%.TP
#%(#\d\fIi\fP\u)
#%indicates the \fIi\fP\uth\d parameter.
#%
#%.PP
#% These are the boolean capabilities:
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBBooleans name Code\fR
auto_left_margin bw bool bw YB-G- cub1 wraps from column 0 to last column
auto_right_margin am bool am YBCGE terminal has automatic margins
no_esc_ctlc xsb bool xb YBCG- beehive (f1=escape, f2=ctrl C)
ceol_standout_glitch xhp bool xs YBCGE standout not erased by overwriting (hp)
eat_newline_glitch xenl bool xn YBCGE newline ignored after 80 cols (concept)
erase_overstrike eo bool eo YBCG- can erase overstrikes with a blank
generic_type gn bool gn YB-G- generic line type
hard_copy hc bool hc YBCG- hardcopy terminal
has_meta_key km bool km YB-GE Has a meta key (i.e., sets 8th-bit)
has_status_line hs bool hs YB-G- has extra status line
insert_null_glitch in bool in YBCGE insert mode distinguishes nulls
memory_above da bool da YBCG- display may be retained above the screen
memory_below db bool db YB-GE display may be retained below the screen
move_insert_mode mir bool mi YBCGE safe to move while in insert mode
move_standout_mode msgr bool ms YBCGE safe to move while in standout mode
over_strike os bool os YBCG- terminal can overstrike
status_line_esc_ok eslok bool es YB-G- escape can be used on the status line
dest_tabs_magic_smso xt bool xt YBCGE tabs destructive, magic so char (t1061)
tilde_glitch hz bool hz YB-GE can't print ~'s (hazeltine)
transparent_underline ul bool ul YBCGE underline character overstrikes
xon_xoff xon bool xo YB--- terminal uses xon/xoff handshaking
needs_xon_xoff nxon bool nx ----- padding won't work, xon/xoff required
prtr_silent mc5i bool 5i ----- printer won't echo on screen
hard_cursor chts bool HC ----- cursor is hard to see
non_rev_rmcup nrrmc bool NR ----- smcup does not reverse rmcup
no_pad_char npc bool NP ----- pad character does not exist
non_dest_scroll_region ndscr bool ND ----- scrolling region is non-destructive
can_change ccc bool cc ----- terminal can re-define existing colors
back_color_erase bce bool ut ----- screen erased with background color
hue_lightness_saturation hls bool hl ----- terminal uses only HLS color notation (Tektronix)
col_addr_glitch xhpa bool YA ----- only positive motion for hpa/mhpa caps
cr_cancels_micro_mode crxm bool YB ----- using cr turns off micro mode
has_print_wheel daisy bool YC ----- printer needs operator to change character set
row_addr_glitch xvpa bool YD ----- only positive motion for vpa/mvpa caps
semi_auto_right_margin sam bool YE ----- printing in last column causes cr
cpi_changes_res cpix bool YF ----- changing character pitch changes resolution
lpi_changes_res lpix bool YG ----- changing line pitch changes resolution
#%.TE
#%.ad
#%
#%These are the numeric capabilities:
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBNumeric name Code\fR
columns cols num co YBCGE number of columns in a line
init_tabs it num it YB-G- tabs initially every # spaces
lines lines num li YBCGE number of lines on screen or page
lines_of_memory lm num lm YB-G- lines of memory if > line. 0 means varies
magic_cookie_glitch xmc num sg YBCGE number of blank characters left by smso or rmso
padding_baud_rate pb num pb YB-GE lowest baud rate where padding needed
virtual_terminal vt num vt YB--- virtual terminal number (CB/unix)
width_status_line wsl num ws YB-G- number of columns in status line
num_labels nlab num Nl ----- number of labels on screen
label_height lh num lh ----- rows in each label
label_width lw num lw ----- columns in each label
max_attributes ma num ma YBC-- maximum combined attributes terminal can handle
maximum_windows wnum num MW ----- maximum number of defineable windows
# These came in with SVr4's color support
max_colors colors num Co ----- maximum number of colors on screen
max_pairs pairs num pa ----- maximum number of color-pairs on the screen
no_color_video ncv num NC ----- video attributes that can't be used with colors
#%.TE
#%.ad
#%
#%The following numeric capabilities are present in the SVr4.0 term structure,
#%but are not yet documented in the man page. They came in with SVr4's
#%printer support.
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBNumeric name Code\fR
buffer_capacity bufsz num Ya ----- numbers of bytes buffered before printing
dot_vert_spacing spinv num Yb ----- spacing of pins vertically in pins per inch
dot_horz_spacing spinh num Yc ----- spacing of dots horizontally in dots per inch
max_micro_address maddr num Yd ----- maximum value in micro_..._address
max_micro_jump mjump num Ye ----- maximum value in parm_..._micro
micro_col_size mcs num Yf ----- character step size when in micro mode
micro_line_size mls num Yg ----- line step size when in micro mode
number_of_pins npins num Yh ----- numbers of pins in print-head
output_res_char orc num Yi ----- horizontal resolution in units per line
output_res_line orl num Yj ----- vertical resolution in units per line
output_res_horz_inch orhi num Yk ----- horizontal resolution in units per inch
output_res_vert_inch orvi num Yl ----- vertical resolution in units per inch
print_rate cps num Ym ----- print rate in characters per second
wide_char_size widcs num Yn ----- character step size when in double wide mode
buttons btns num BT ----- number of buttons on mouse
bit_image_entwining bitwin num Yo ----- number of passes for each bit-image row
bit_image_type bitype num Yp ----- type of bit-image device
#%.TE
#%.ad
#%
#%These are the string capabilities:
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
back_tab cbt str bt YBCGE back tab (P)
bell bel str bl YB-GE audible signal (bell) (P)
carriage_return cr str cr YBCGE carriage return (P*) (P*)
change_scroll_region csr str cs YBCGE change region to line #1 to line #2 (P)
clear_all_tabs tbc str ct YB-G- clear all tab stops (P)
clear_screen clear str cl YBCGE clear screen and home cursor (P*)
clr_eol el str ce YBCGE clear to end of line (P)
clr_eos ed str cd YBCGE clear to end of screen (P*)
column_address hpa str ch -B-GE** horizontal position #1, absolute (P)
command_character cmdch str CC YB-G- terminal settable cmd character in prototype !?
cursor_address cup str cm YBCGE move to row #1 columns #2
cursor_down cud1 str do YBCGE down one line
cursor_home home str ho YBCGE home cursor (if no cup)
cursor_invisible civis str vi YB-G- make cursor invisible
cursor_left cub1 str le YBCGE move left one space
cursor_mem_address mrcup str CM YB-G- memory relative cursor addressing
cursor_normal cnorm str ve YBCGE make cursor appear normal (undo civis/cvvis)
cursor_right cuf1 str nd YBCGE non-destructive space (move right one space)
cursor_to_ll ll str ll YBCGE last line, first column (if no cup)
cursor_up cuu1 str up YBCGE up one line
cursor_visible cvvis str vs YBCGE make cursor very visible
delete_character dch1 str dc YBCGE delete character (P*)
delete_line dl1 str dl YBCGE delete line (P*)
dis_status_line dsl str ds YB-G- disable status line
down_half_line hd str hd YB-G- half a line down
enter_alt_charset_mode smacs str as YB-G- start alternate character set (P)
enter_blink_mode blink str mb YB-G- turn on blinking
enter_bold_mode bold str md YB-G- turn on bold (extra bright) mode
enter_ca_mode smcup str ti YBCGE string to start programs using cup
enter_delete_mode smdc str dm YBCGE enter delete mode
enter_dim_mode dim str mh YB-G- turn on half-bright mode
enter_insert_mode smir str im YBCGE enter insert mode
enter_secure_mode invis str mk -B-G-* turn on blank mode (characters invisible)
enter_protected_mode prot str mp -B-G-* turn on protected mode
enter_reverse_mode rev str mr YB-G- turn on reverse video mode
enter_standout_mode smso str so YBCGE begin standout mode
enter_underline_mode smul str us YBCGE begin underline mode
erase_chars ech str ec YB-G- erase #1 characters (P)
exit_alt_charset_mode rmacs str ae YB-G- end alternate character set (P)
exit_attribute_mode sgr0 str me YB-GE turn off all attributes
exit_ca_mode rmcup str te YBCGE strings to end programs using cup
exit_delete_mode rmdc str ed YBCGE end delete mode
exit_insert_mode rmir str ei YBCGE exit insert mode
exit_standout_mode rmso str se YBCGE exit standout mode
exit_underline_mode rmul str ue YBCGE exit underline mode
flash_screen flash str vb YBCGE visible bell (may not move cursor)
form_feed ff str ff YB-G- hardcopy terminal page eject (P*)
from_status_line fsl str fs YB-G- return from status line
init_1string is1 str i1 YB-G- initialization string
init_2string is2 str is YB-G- initialization string
init_3string is3 str i3 YB-G- initialization string
init_file if str if YB-G- name of initialization file
insert_character ich1 str ic YBCGE insert character (P)
insert_line il1 str al YBCGE insert line (P*)
insert_padding ip str ip YBCGE insert padding after inserted character
key_backspace kbs str kb YB-G- backspace key
key_catab ktbc str ka -B-G-* clear-all-tabs key
key_clear kclr str kC -B-G-* clear-screen or erase key
key_ctab kctab str kt -B-G-* clear-tab key
key_dc kdch1 str kD YB-G- delete-character key
key_dl kdl1 str kL -B-G-* delete-line key
key_down kcud1 str kd YBCGE down-arrow key
key_eic krmir str kM -B-G-* sent by rmir or smir in insert mode
key_eol kel str kE -B-G-* clear-to-end-of-line key
key_eos ked str kS -B-G-* clear-to-end-of-screen key
key_f0 kf0 str k0 YBCGE F0 function key
key_f1 kf1 str k1 YBCGE F1 function key
key_f10 kf10 str k; ----E F10 function key
key_f2 kf2 str k2 YBCGE F2 function key
key_f3 kf3 str k3 YBCGE F3 function key
key_f4 kf4 str k4 YBCGE F4 function key
key_f5 kf5 str k5 YBCGE F5 function key
key_f6 kf6 str k6 YBCGE F6 function key
key_f7 kf7 str k7 YBCGE F7 function key
key_f8 kf8 str k8 YBCGE F8 function key
key_f9 kf9 str k9 YBCGE F9 function key
key_home khome str kh YBCGE home key
key_ic kich1 str kI YB-GE insert-character key
key_il kil1 str kA -B-G-* insert-line key
key_left kcub1 str kl YBCGE left-arrow key
key_ll kll str kH YB-G- lower-left key (home down)
key_npage knp str kN YB-GE next-page key
key_ppage kpp str kP YB-GE previous-page key
key_right kcuf1 str kr YBCGE right-arrow key
key_sf kind str kF -B-G-* scroll-forward key
key_sr kri str kR -B-G-* scroll-backward key
key_stab khts str kT -B-G-* set-tab key
key_up kcuu1 str ku YBCGE up-arrow key
keypad_local rmkx str ke YBCGE leave 'keyboard_transmit' mode
keypad_xmit smkx str ks YBCGE enter 'keyboard_transmit' mode
lab_f0 lf0 str l0 -B-G-* label on function key f0 if not f0
lab_f1 lf1 str l1 -B-G-* label on function key f1 if not f1
lab_f10 lf10 str la ----- label on function key f10 if not f10
lab_f2 lf2 str l2 -B-G-* label on function key f2 if not f2
lab_f3 lf3 str l3 -B-G-* label on function key f3 if not f3
lab_f4 lf4 str l4 -B-G-* label on function key f4 if not f4
lab_f5 lf5 str l5 -B-G-* label on function key f5 if not f5
lab_f6 lf6 str l6 -B-G-* label on function key f6 if not f6
lab_f7 lf7 str l7 -B-G-* label on function key f7 if not f7
lab_f8 lf8 str l8 -B-G-* label on function key f8 if not f8
lab_f9 lf9 str l9 -B-G-* label on function key f9 if not f9
meta_off rmm str mo YB-G-* turn off meta mode
meta_on smm str mm YB-G-* turn on meta mode (8th-bit on)
newline nel str nw YB-G-* newline (behave like cr followed by lf)
pad_char pad str pc YBCGE padding char (instead of null)
parm_dch dch str DC YB-GE delete #1 characters (P*)
parm_delete_line dl str DL YBCGE delete #1 lines (P*)
parm_down_cursor cud str DO YBCGE down #1 lines (P*)
parm_ich ich str IC YB-GE insert #1 characters (P*)
parm_index indn str SF YBCG- scroll forward #1 lines (P)
parm_insert_line il str AL YBCGE insert #1 lines (P*)
parm_left_cursor cub str LE YBCGE move #1 characters to the left (P)
parm_right_cursor cuf str RI YBCGE move #1 characters to the right (P*)
parm_rindex rin str SR YBCG- scroll back #1 lines (P)
parm_up_cursor cuu str UP YBCGE up #1 lines (P*)
pkey_key pfkey str pk -B--- program function key #1 to type string #2
pkey_local pfloc str pl -B--- program function key #1 to execute string #2
pkey_xmit pfx str px -B--- program function key #1 to transmit string #2
print_screen mc0 str ps -B-G-* print contents of screen
prtr_off mc4 str pf -B-G-* turn off printer
prtr_on mc5 str po -B-G-* turn on printer
repeat_char rep str rp YB-GE repeat char #1 #2 times (P*)
reset_1string rs1 str r1 -B--- reset string
reset_2string rs2 str r2 -B--- reset string
reset_3string rs3 str r3 -B--- reset string
reset_file rf str rf -B--- name of reset file
restore_cursor rc str rc YBCG- restore cursor to position of last save_cursor
row_address vpa str cv -B-GE** vertical position #1 absolute (P)
save_cursor sc str sc YBCG- save current cursor position (P)
scroll_forward ind str sf YBCGE scroll text up (P)
scroll_reverse ri str sr YBCGE scroll text down (P)
set_attributes sgr str sa YB-G- define video attributes #1-#9 (PG9)
set_tab hts str st YB-G- set a tab in every row, current columns
set_window wind str wi -B-GE current window is lines #1-#2 cols #3-#4
tab ht str ta YBCGE tab to next 8-space hardware tab stop
to_status_line tsl str ts YB-G- move to status line
underline_char uc str uc YBCG- underline char and move past it
up_half_line hu str hu YB-G- half a line up
init_prog iprog str iP -B--- path name of program for initialization
key_a1 ka1 str K1 YB-GE upper left of keypad
key_a3 ka3 str K3 YB-GE upper right of keypad
key_b2 kb2 str K2 YB-GE center of keypad
key_c1 kc1 str K4 YB-GE lower left of keypad
key_c3 kc3 str K5 YB-GE lower right of keypad
prtr_non mc5p str pO -B-G-* turn on printer for #1 bytes
#
# SVr1 capabilities stop here. IBM's version of terminfo is the same as
# SVr4 up to this point, but has a different set afterwards.
#
char_padding rmp str rP ----- like ip but when in insert mode
acs_chars acsc str ac ----- graphics charset pairs, based on vt100
plab_norm pln str pn ----- program label #1 to show string #2
key_btab kcbt str kB ----- back-tab key
enter_xon_mode smxon str SX ----- turn on xon/xoff handshaking
exit_xon_mode rmxon str RX ----- turn off xon/xoff handshaking
enter_am_mode smam str SA ----- turn on automatic margins
exit_am_mode rmam str RA ----- turn off automatic margins
xon_character xonc str XN ----- XON character
xoff_character xoffc str XF ----- XOFF character
ena_acs enacs str eA ----- enable alternate char set
label_on smln str LO ----- turn on soft labels
label_off rmln str LF ----- turn off soft labels
key_beg kbeg str @1 ----- begin key
key_cancel kcan str @2 ----- cancel key
key_close kclo str @3 ----- close key
key_command kcmd str @4 ----- command key
key_copy kcpy str @5 ----- copy key
key_create kcrt str @6 ----- create key
key_end kend str @7 ----- end key
key_enter kent str @8 ----- enter/send key
key_exit kext str @9 ----- exit key
key_find kfnd str @0 ----- find key
key_help khlp str %1 ----- help key
key_mark kmrk str %2 ----- mark key
key_message kmsg str %3 ----- message key
key_move kmov str %4 ----- move key
key_next knxt str %5 ----- next key
key_open kopn str %6 ----- open key
key_options kopt str %7 ----- options key
key_previous kprv str %8 ----- previous key
key_print kprt str %9 ----- print key
key_redo krdo str %0 ----- redo key
key_reference kref str &1 ----- reference key
key_refresh krfr str &2 ----- refresh key
key_replace krpl str &3 ----- replace key
key_restart krst str &4 ----- restart key
key_resume kres str &5 ----- resume key
key_save ksav str &6 ----- save key
key_suspend kspd str &7 ----- suspend key
key_undo kund str &8 ----- undo key
key_sbeg kBEG str &9 ----- shifted begin key
key_scancel kCAN str &0 ----- shifted cancel key
key_scommand kCMD str *1 ----- shifted command key
key_scopy kCPY str *2 ----- shifted copy key
key_screate kCRT str *3 ----- shifted create key
key_sdc kDC str *4 ----- shifted delete-character key
key_sdl kDL str *5 ----- shifted delete-line key
key_select kslt str *6 ----- select key
key_send kEND str *7 ----- shifted end key
key_seol kEOL str *8 ----- shifted clear-to-end-of-line key
key_sexit kEXT str *9 ----- shifted exit key
key_sfind kFND str *0 ----- shifted find key
key_shelp kHLP str #1 ----- shifted help key
key_shome kHOM str #2 ----- shifted home key
key_sic kIC str #3 ----- shifted insert-character key
key_sleft kLFT str #4 ----- shifted left-arrow key
key_smessage kMSG str %a ----- shifted message key
key_smove kMOV str %b ----- shifted move key
key_snext kNXT str %c ----- shifted next key
key_soptions kOPT str %d ----- shifted options key
key_sprevious kPRV str %e ----- shifted previous key
key_sprint kPRT str %f ----- shifted print key
key_sredo kRDO str %g ----- shifted redo key
key_sreplace kRPL str %h ----- shifted replace key
key_sright kRIT str %i ----- shifted right-arrow key
key_srsume kRES str %j ----- shifted resume key
key_ssave kSAV str !1 ----- shifted save key
key_ssuspend kSPD str !2 ----- shifted suspend key
key_sundo kUND str !3 ----- shifted undo key
req_for_input rfi str RF ----- send next input char (for ptys)
key_f11 kf11 str F1 ----E F11 function key
key_f12 kf12 str F2 ----E F12 function key
key_f13 kf13 str F3 ----E F13 function key
key_f14 kf14 str F4 ----E F14 function key
key_f15 kf15 str F5 ----E F15 function key
key_f16 kf16 str F6 ----E F16 function key
key_f17 kf17 str F7 ----E F17 function key
key_f18 kf18 str F8 ----E F18 function key
key_f19 kf19 str F9 ----E F19 function key
key_f20 kf20 str FA ----E F20 function key
key_f21 kf21 str FB ----E F21 function key
key_f22 kf22 str FC ----E F22 function key
key_f23 kf23 str FD ----E F23 function key
key_f24 kf24 str FE ----E F24 function key
key_f25 kf25 str FF ----E F25 function key
key_f26 kf26 str FG ----E F26 function key
key_f27 kf27 str FH ----E F27 function key
key_f28 kf28 str FI ----E F28 function key
key_f29 kf29 str FJ ----E F29 function key
key_f30 kf30 str FK ----E F30 function key
key_f31 kf31 str FL ----E F31 function key
key_f32 kf32 str FM ----E F32 function key
key_f33 kf33 str FN ----E F33 function key
key_f34 kf34 str FO ----E F34 function key
key_f35 kf35 str FP ----E F35 function key
key_f36 kf36 str FQ ----E F36 function key
key_f37 kf37 str FR ----E F37 function key
key_f38 kf38 str FS ----E F38 function key
key_f39 kf39 str FT ----E F39 function key
key_f40 kf40 str FU ----E F40 function key
key_f41 kf41 str FV ----E F41 function key
key_f42 kf42 str FW ----E F42 function key
key_f43 kf43 str FX ----E F43 function key
key_f44 kf44 str FY ----E F44 function key
key_f45 kf45 str FZ ----E F45 function key
key_f46 kf46 str Fa ----E F46 function key
key_f47 kf47 str Fb ----E F47 function key
key_f48 kf48 str Fc ----E F48 function key
key_f49 kf49 str Fd ----E F49 function key
key_f50 kf50 str Fe ----E F50 function key
key_f51 kf51 str Ff ----E F51 function key
key_f52 kf52 str Fg ----E F52 function key
key_f53 kf53 str Fh ----E F53 function key
key_f54 kf54 str Fi ----E F54 function key
key_f55 kf55 str Fj ----E F55 function key
key_f56 kf56 str Fk ----E F56 function key
key_f57 kf57 str Fl ----E F57 function key
key_f58 kf58 str Fm ----E F58 function key
key_f59 kf59 str Fn ----E F59 function key
key_f60 kf60 str Fo ----E F60 function key
key_f61 kf61 str Fp ----E F61 function key
key_f62 kf62 str Fq ----E F62 function key
key_f63 kf63 str Fr ----E F63 function key
clr_bol el1 str cb ----- Clear to beginning of line
clear_margins mgc str MC ----- clear right and left soft margins
set_left_margin smgl str ML ----- set left soft margin at current column
set_right_margin smgr str MR ----- set right soft margin at current column
label_format fln str Lf ----- label format
set_clock sclk str SC ----- set clock, #1 hrs #2 mins #3 secs
display_clock dclk str DK ----- display clock at (#1,#2)
remove_clock rmclk str RC ----- remove clock
create_window cwin str CW ----- define a window #1 from #2,#3 to #4,#5
goto_window wingo str WG ----- go to window #1
hangup hup str HU ----- hang-up phone
dial_phone dial str DI ----- dial number #1
quick_dial qdial str QD ----- dial number #1 without checking
tone tone str TO ----- select touch tone dialing
pulse pulse str PU ----- select pulse dialing
flash_hook hook str fh ----- flash switch hook
fixed_pause pause str PA ----- pause for 2-3 seconds
wait_tone wait str WA ----- wait for dial-tone
user0 u0 str u0 ----- User string #0
user1 u1 str u1 ----- User string #1
user2 u2 str u2 ----- User string #2
user3 u3 str u3 ----- User string #3
user4 u4 str u4 ----- User string #4
user5 u5 str u5 ----- User string #5
user6 u6 str u6 ----- User string #6
user7 u7 str u7 ----- User string #7
user8 u8 str u8 ----- User string #8
user9 u9 str u9 ----- User string #9
#
# SVr4 added these capabilities to support color
#
orig_pair op str op ----- Set default pair to its original value
orig_colors oc str oc ----- Set all color pairs to the original ones
initialize_color initc str Ic ----- initialize color #1 to (#2,#3,#4)
initialize_pair initp str Ip ----- Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
set_color_pair scp str sp ----- Set current color pair to #1
set_foreground setf str Sf ----- Set foreground color #1
set_background setb str Sb ----- Set background color #1
#
# SVr4 added these capabilities to support printers
#
change_char_pitch cpi str ZA ----- Change number of characters per inch
change_line_pitch lpi str ZB ----- Change number of lines per inch
change_res_horz chr str ZC ----- Change horizontal resolution
change_res_vert cvr str ZD ----- Change vertical resolution
define_char defc str ZE ----- Define a character
enter_doublewide_mode swidm str ZF ----- Enter double-wide mode
enter_draft_quality sdrfq str ZG ----- Enter draft-quality mode
enter_italics_mode sitm str ZH ----- Enter italic mode
enter_leftward_mode slm str ZI ----- Start leftward carriage motion
enter_micro_mode smicm str ZJ ----- Start micro-motion mode
enter_near_letter_quality snlq str ZK ----- Enter NLQ mode
enter_normal_quality snrmq str ZL ----- Enter normal-quality mode
enter_shadow_mode sshm str ZM ----- Enter shadow-print mode
enter_subscript_mode ssubm str ZN ----- Enter subscript mode
enter_superscript_mode ssupm str ZO ----- Enter superscript mode
enter_upward_mode sum str ZP ----- Start upward carriage motion
exit_doublewide_mode rwidm str ZQ ----- End double-wide mode
exit_italics_mode ritm str ZR ----- End italic mode
exit_leftward_mode rlm str ZS ----- End left-motion mode
exit_micro_mode rmicm str ZT ----- End micro-motion mode
exit_shadow_mode rshm str ZU ----- End shadow-print mode
exit_subscript_mode rsubm str ZV ----- End subscript mode
exit_superscript_mode rsupm str ZW ----- End superscript mode
exit_upward_mode rum str ZX ----- End reverse character motion
micro_column_address mhpa str ZY ----- Like column_address in micro mode
micro_down mcud1 str ZZ ----- Like cursor_down in micro mode
micro_left mcub1 str Za ----- Like cursor_left in micro mode
micro_right mcuf1 str Zb ----- Like cursor_right in micro mode
micro_row_address mvpa str Zc ----- Like row_address in micro mode
micro_up mcuu1 str Zd ----- Like cursor_up in micro mode
order_of_pins porder str Ze ----- Match software bits to print-head pins
parm_down_micro mcud str Zf ----- Like parm_down_cursor in micro mode
parm_left_micro mcub str Zg ----- Like parm_left_cursor in micro mode
parm_right_micro mcuf str Zh ----- Like parm_right_cursor in micro mode
parm_up_micro mcuu str Zi ----- Like parm_up_cursor in micro mode
select_char_set scs str Zj ----- Select character set
set_bottom_margin smgb str Zk ----- Set bottom margin at current line
set_bottom_margin_parm smgbp str Zl ----- Set bottom margin at line #1 or #2 lines from bottom
set_left_margin_parm smglp str Zm ----- Set left (right) margin at column #1 (#2)
set_right_margin_parm smgrp str Zn ----- Set right margin at column #1
set_top_margin smgt str Zo ----- Set top margin at current line
set_top_margin_parm smgtp str Zp ----- Set top (bottom) margin at row #1 (#2)
start_bit_image sbim str Zq ----- Start printing bit image graphics
start_char_set_def scsd str Zr ----- Start character set definition
stop_bit_image rbim str Zs ----- Stop printing bit image graphics
stop_char_set_def rcsd str Zt ----- End definition of character set
subscript_characters subcs str Zu ----- List of subscriptable characters
superscript_characters supcs str Zv ----- List of superscriptable characters
these_cause_cr docr str Zw ----- Printing any of these characters causes CR
zero_motion zerom str Zx ----- No motion for subsequent character
#%.TE
#%.ad
#%
#%The following string capabilities are present in the SVr4.0 term structure,
#%but were originally not documented in the man page.
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw18.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
char_set_names csnm str Zy ----- List of character set names
key_mouse kmous str Km ----- Mouse event has occurred
mouse_info minfo str Mi ----- Mouse status information
req_mouse_pos reqmp str RQ ----- Request mouse position
get_mouse getm str Gm ----- Curses should get button events
set_a_foreground setaf str AF ----- Set foreground color using ANSI escape
set_a_background setab str AB ----- Set background color using ANSI escape
pkey_plab pfxl str xl ----- Program function key #1 to type string #2 and show string #3
device_type devt str dv ----- Indicate language/codeset support
code_set_init csin str ci ----- Init sequence for multiple codesets
set0_des_seq s0ds str s0 ----- Shift to code set 0 (EUC set 0, ASCII)
set1_des_seq s1ds str s1 ----- Shift to code set 1
set2_des_seq s2ds str s2 ----- Shift to code set 2
set3_des_seq s3ds str s3 ----- Shift to code set 3
set_lr_margin smglr str ML ----- Set both left and right margins to #1, #2
set_tb_margin smgtb str MT ----- Sets both top and bottom margins to #1, #2
bit_image_repeat birep str Xy ----- Repeat bit image cell #1 #2 times
bit_image_newline binel str Zz ----- Move to next row of the bit image
bit_image_carriage_return bicr str Yv ----- Move to beginning of same row
color_names colornm str Yw ----- Give name for color #1
define_bit_image_region defbi str Yx ----- Define rectangualar bit image region
end_bit_image_region endbi str Yy ----- End a bit-image region
set_color_band setcolor str Yz ----- Change to ribbon color #1
set_page_length slines str YZ ----- Set page length to #1 lines
#
# SVr4 added these capabilities for direct PC-clone support
#
display_pc_char dispc str S1 ----- Display PC character
enter_pc_charset_mode smpch str S2 ----- Enter PC character display mode
exit_pc_charset_mode rmpch str S3 ----- Exit PC character display mode
enter_scancode_mode smsc str S4 ----- Enter PC scancode mode
exit_scancode_mode rmsc str S5 ----- Exit PC scancode mode
pc_term_options pctrm str S6 ----- PC terminal options
scancode_escape scesc str S7 ----- Escape for scancode emulation
alt_scancode_esc scesa str S8 ----- Alternate escape for scancode emulation
#%.TE
#%.ad
#%
#%.in .8i
#%The XSI Curses standard added these. They are some post-4.1
#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
#%The \fBncurses\fR termcap names for them are invented; according to the
#%XSI Curses standard, they have no termcap names. If your compiled terminfo
#%entries use these, they may not be binary-compatible with System V terminfo
#%entries after SVr4.1; beware!
#%
#%.na
#%.TS H
#%center expand;
#%c l l c
#%c l l c
#%lw25 lw6 lw2 lw20.
#%\fBVariable Cap- TCap Description\fR
#%\fBString name Code\fR
enter_horizontal_hl_mode ehhlm str Xh ----- Enter horizontal highlight mode
enter_left_hl_mode elhlm str Xl ----- Enter left highlight mode
enter_low_hl_mode elohlm str Xo ----- Enter low highlight mode
enter_right_hl_mode erhlm str Xr ----- Enter right highlight mode
enter_top_hl_mode ethlm str Xt ----- Enter top highlight mode
enter_vertical_hl_mode evhlm str Xv ----- Enter vertical highlight mode
set_a_attributes sgr1 str sA ----- Define second set of video attributes #1-#6
set_pglen_inch slength str sL ----- YI Set page length to #1 hundredth of an inch
#%.TE
#%.ad
#
# The magic token below tells the tic compiler-generator code that all the caps
# past it should be ignored (not written out) when dumping terminfo objects. It
# also tells the man page table generator not to pass through following lines
# This means we can have obsolete capabilities and pseudo-capabilities that are
# recognized for termcap or terminfo compilation, but not output.
#
# %%-STOP-HERE-%%
#
# Don't move this casually! In fact, don't move it at all unless you're
# either doing it to add System V or XPG4 extensions, or have decided you
# don't care about SVr4 binary compatibility.
#
#############################################################################
#
# TERMCAP EXTENSION CAPABILITIES
#
# The capabilities below are either obsolete or extensions on certain systems.
# They are not used by SVR4 terminfo. Some are used by captoinfo to translate
# termcap sources; the rest are listed for completeness, and in case somebody
# cares about them enough to hack in code that will translate them into
# terminfo capabilities.
#
# The first part of the list is from Ross Ridge's `mytinfo' package
# (comp.sources.unix, volume 26); the variable names and terminfo names (as
# well as the termcap codes) match his list.
#
# This group of codes is not marked obsolete in 4.4BSD, but have no direct
# terminfo equivalents. The rs capability is specially translated to terminfo
# r2, and vice versa, if an entry does not already have an r2. Similarly,
# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
# The ug capability is thrown away, but assumed to be whatever sg is if the
# latter is nonzero and we're dumping in termcap format.
#
termcap_init2 OTi2 str i2 YB--- secondary initialization string
termcap_reset OTrs str rs YB-G- terminal reset string
magic_cookie_glitch_ul OTug num ug YBCGE number of blanks left by ul
#
# Obsolete termcap capabilities. Some are used for termcap translation. The
# code uses the 'OT' prefix we put on obsolete capabilities to suppress
# printing them in terminfo source dumps of compiled entries.
#
backspaces_with_bs OTbs bool bs YBCGE uses ^H to move left
crt_no_scrolling OTns bool ns YBCG- crt cannot scroll
no_correctly_working_cr OTnc bool nc YBCG- no way to go to start of line
carriage_return_delay OTdC num dC YB-G- pad needed for CR
new_line_delay OTdN num dN YB-G- pad needed for LF
linefeed_if_not_lf OTnl str nl YBCGE use to move down
backspace_if_not_bs OTbc str bc YBCGE move left, if not ^H
#
# GNU termcap library extensions. The GNU termcap file distributed with
# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
# BSD termcap file. The name clash with terminfo MT is resolved by type
# info; MT is converted to km.
#
gnu_has_meta_key OTMT bool MT ----E has meta key
# gnu_tab_width OTtw num tw ----E tab width in spaces
#
# GNU termcap *does* include the following extended capability, Only the
# now-obsolete Ann Arbor terminals used it.
#
# gnu_change_scroll_region OTcS str cS ---GE alternate set scrolling region
#
# The following comments describe capnames so ancient that I believe no
# software uses them any longer. Some of these have to go because they
# clash with terminfo names in ways that cannot be resolved by type
# information.
#
# These mytinfo codes are not used in the 4.4BSD curses code. They are
# marked obsolete in the 4.4BSD manual pages.
#
# There is one conflict with terminfo; ma is in both. This conflict is
# resolved by type information.
#
# The `ko' capability is translated by special code. It should contain a
# comma-separated list of capabilities for which there are corresponding keys.
# The `kn' code is accepted but ignored.
#
# The `ma' capability seems to have been designed to map between the rogue(2)
# motion keys (including jkhl) and characters emitted by arrow keys on some
# primitive pre-ANSI terminals. It's so obsolete it's fossilized...
#
# Here is a description of memory_lock_above and memory_unlock:
# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
# text. All lines above the cursor's current line become locked in place on
# the screen. Then enter data normally. When the screen fills up, any
# further data entered forces the first line of unfrozen line text to scroll
# under the frozen data. Lines scrolled off the screen are inserted into
# memory immediately preceding the first frozen line." (from the HP 700/96
# User's manual). VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
#
# Applications that use terminfo are supposed to behave as though xr is
# always true.
#
linefeed_is_newline OTNL bool NL YB--- move down with \n
# even_parity OTEP bool EP -B--- terminal requires even parity
# odd_parity OTOP bool OP -B--- terminal requires odd parity
# half_duplex OTHD bool HD -B--- terminal is half-duplex
# lower_case_only OTLC bool LC -B--- terminal has only lower case
# upper_case_only OTUC bool UC -B--- terminal has only upper case
backspace_delay OTdB num dB YB-G- padding required for ^H
# form_feed_delay OTdF num dF -B-G- padding required for ^L
horizontal_tab_delay OTdT num dT YB-G- padding required for ^I
# vertical_tab_delay OTdV num dV -B--- padding required for ^V
number_of_function_keys OTkn num kn -B-G- count of function keys
other_non_function_keys OTko str ko -B-G- list of self-mapped keycaps
arrow_key_map OTma str ma YBC-- map arrow keys rogue(1) motion keys
# memory_lock_above OTml str ml -B--- lock visible screen memory above the current line
# memory_unlock OTmu str mu -B--- unlock visible screen memory above the current line
has_hardware_tabs OTpt bool pt YB--- has 8-char tabs invoked with ^I
return_does_clr_eol OTxr bool xr YB--- return clears the line
# tek_4025_insert_line OTxx bool xx -BC-- Tektronix 4025 insert-line glitch
#
# mytinfo described this as a termcap capability, but it's not listed in the
# 4.4BSD man pages, and not found in the 4.4BSD termcap file. The ncurses
# package, like System V, behaves as though it is always true.
#
# rind_only_at_top OTxq bool xq ----- reverse index only works from top line
#
# University of Waterloo termcap extensions (as described in mytinfo).
# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
# be resolved by a type check. The descriptions are guesses from what was
# in the mytinfo tables.
#
# key_interrupt_char OTki str ki ----- string set by interrupt key (?)
# key_kill_char OTkk str kk ----- string set by kill key (?)
# key_suspend_char OTkz str kz ----- string set by suspend key (?)
# initialization_messy OTxc bool xc ----- initialization leaves garbage on the screen (?)
# ind_at_bottom_does_cr OTxl bool xl ----- index does a carriage return
#
# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
# check.
#
# scroll_left OTsl1 str Sl ----- scroll screen leftward
# scroll_right OTsr1 str Sr ----- scroll screen rightward
# parm_scroll_left OTsl str SL ----- scroll screen leftward #1 characters
# parm_scroll_right OTsr str SR ----- scroll screen rightward #1 characters
#
# The mytinfo capabilities end here.
#
# XENIX extensions:
#
# Xenix defined its own set of forms-drawing capabilities:
#
# cap IBM ASCII description ACS ASCII
# --- ----------- -------------------- ------------- ------
# G1 191 \277 M-? single upper right ACS_URCORNER
# G2 218 \332 M-Z single upper left ACS_ULCORNER
# G3 192 \300 M-@ single lower left ACS_LLCORNER
# G4 217 \331 M-Y single lower right ACS_LRCORNER
# G5 187 \273 M-; double upper right
# G6 201 \311 M-I double upper left
# G7 200 \310 M-H double lower left
# G8 188 \274 M-< double lower right
# GC 197 \305 M-E single intersection ACS_PLUS _ _
# GD 194 \302 M-B single down-tick ACS_TTEE |
# GH 196 \304 M-D single horizontal line ACS_HLINE
# GL 180 \264 M-4 single left tick ACS_RTEE -|
# GR 195 \303 M-C single right tick ACS_LTEE |-
# GU 193 \301 M-A single up tick ACS_BTEE _|_
# GV 179 \263 M-3 single vertical line ACS_VLINE
# Gc 206 \316 M-N double intersection
# Gd 203 \313 M-K double down tick
# Gh 205 \315 M-M double horizontal line
# Gl 204 \204 M-L double left tick
# Gr 185 \271 M-9 double right tick
# Gu 202 \312 M-J double up tick
# Gv 186 \272 M-: double vertical line
#
# The compiler will translate the single-line caps and discard the others
# (via IGNORE aliases further down). We don't want to do normal pad
# translation on these, they're often single-character printable ASCII
# strings that happen to be numerics. There's awk code in parametrized.sh
# that detects the acs_ prefix and uses it to suppress pad translation.
# These terminfo names are invented.
#
acs_ulcorner OTG2 str G2 ----- single upper left
acs_llcorner OTG3 str G3 ----- single lower left
acs_urcorner OTG1 str G1 ----- single upper right
acs_lrcorner OTG4 str G4 ----- single lower right
acs_ltee OTGR str GR ----- tee pointing right
acs_rtee OTGL str GL ----- tee pointing left
acs_btee OTGU str GU ----- tee pointing up
acs_ttee OTGD str GD ----- tee pointing down
acs_hline OTGH str GH ----- single horizontal line
acs_vline OTGV str GV ----- single vertical line
acs_plus OTGC str GC ----- single intersection
#
#############################################################################
#
# TERMINFO EXTENSION CAPABILITIES
#
# This section is almost all comments. What it's mainly for is to describe
# what capabilities need to be squeezed out to get down to the XSI Curses
# standard set. They are flagged with K.
#
# HP extensions
#
# These extensions follow ptr_non (replacing everything after it) in HP
# terminfo files. Except for memory_lock and memory_unlock, they are
# functionally identical to SVr4 extensions, but they make the binary format
# different. Grrr....
#
memory_lock meml str ml ----K memory lock above
memory_unlock memu str mu ----K memory unlock
#plab_norm pln str pn ----- program label #1 to show string #2
#label_on smln str LO ----- turn on soft labels
#label_off rmln str LF ----- turn off soft labels
#key_f11 kf11 str F1 ----- F11 function key
#key_f12 kf12 str F2 ----- F12 function key
#key_f13 kf13 str F3 ----- F13 function key
#key_f14 kf14 str F4 ----- F14 function key
#key_f15 kf15 str F5 ----- F15 function key
#key_f16 kf16 str F6 ----- F16 function key
#key_f17 kf17 str F7 ----- F17 function key
#key_f18 kf18 str F8 ----- F18 function key
#key_f19 kf19 str F9 ----- F19 function key
#key_f20 kf20 str FA ----- F20 function key
#key_f21 kf21 str FB ----- F21 function key
#key_f22 kf22 str FC ----- F22 function key
#key_f23 kf23 str FD ----- F23 function key
#key_f24 kf24 str FE ----- F24 function key
#key_f25 kf25 str FF ----- F25 function key
#key_f26 kf26 str FG ----- F26 function key
#key_f27 kf27 str FH ----- F27 function key
#key_f28 kf28 str FI ----- F28 function key
#key_f29 kf29 str FJ ----- F29 function key
#key_f30 kf30 str FK ----- F30 function key
#key_f31 kf31 str FL ----- F31 function key
#key_f32 kf32 str FM ----- F32 function key
#key_f33 kf33 str FN ----- F33 function key
#key_f34 kf34 str FO ----- F34 function key
#key_f35 kf35 str FP ----- F35 function key
#key_f36 kf36 str FQ ----- F36 function key
#key_f37 kf37 str FR ----- F37 function key
#key_f38 kf38 str FS ----- F38 function key
#key_f39 kf39 str FT ----- F39 function key
#key_f40 kf40 str FU ----- F40 function key
#key_f41 kf41 str FV ----- F41 function key
#key_f42 kf42 str FW ----- F42 function key
#key_f43 kf43 str FX ----- F43 function key
#key_f44 kf44 str FY ----- F44 function key
#key_f45 kf45 str FZ ----- F45 function key
#key_f46 kf46 str Fa ----- F46 function key
#key_f47 kf47 str Fb ----- F47 function key
#key_f48 kf48 str Fc ----- F48 function key
#key_f49 kf49 str Fd ----- F49 function key
#key_f50 kf50 str Fe ----- F50 function key
#key_f51 kf51 str Ff ----- F51 function key
#key_f52 kf52 str Fg ----- F52 function key
#key_f53 kf53 str Fh ----- F53 function key
#key_f54 kf54 str Fi ----- F54 function key
#key_f55 kf55 str Fj ----- F55 function key
#key_f56 kf56 str Fk ----- F56 function key
#key_f57 kf57 str Fl ----- F57 function key
#key_f58 kf58 str Fm ----- F58 function key
#key_f59 kf59 str Fn ----- F59 function key
#key_f60 kf60 str Fo ----- F60 function key
#key_f61 kf61 str Fp ----- F61 function key
#key_f62 kf62 str Fq ----- F62 function key
#key_f63 kf63 str Fr ----- F63 function key
#
# IBM extensions
#
# These extensions follow ptr_non (replacing everything after it) in IBM
# terminfo files.
#
# The places in the box[12] capabilities correspond to acsc characters, here is
# the mapping:
#
# box1[0] = ACS_ULCORNER
# box1[1] = ACS_HLINE
# box1[2] = ACS_URCORNER
# box1[3] = ACS_VLINE
# box1[4] = ACS_LRCORNER
# box1[5] = ACS_LLCORNER
# box1[6] = ACS_TTEE
# box1[7] = ACS_RTEE
# box1[8] = ACS_BTEE
# box1[9] = ACS_LTEE
# box1[10] = ACS_PLUS
#
# The box2 characters are the double-line versions of these forms graphics.
#
box_chars_1 box1 str bx ----K box characters primary set
#box_chars_2 box2 str by ----K box characters secondary set
#box_attr_1 batt1 str Bx ----K attributes for box1
#box_attr_2 batt2 str By ----K attributes for box2
#color_bg_0 colb0 str d0 ----K background color 0
#color_bg_1 colb1 str d1 ----K background color 1
#color_bg_2 colb2 str d2 ----K background color 2
#color_bg_3 colb3 str d3 ----K background color 3
#color_bg_4 colb4 str d4 ----K background color 4
#color_bg_5 colb5 str d5 ----K background color 5
#color_bg_6 colb6 str d6 ----K background color 6
#color_bg_7 colb7 str d7 ----K background color 7
#color_fg_0 colf0 str c0 ----K foreground color 0
#color_fg_1 colf1 str c1 ----K foreground color 1
#color_fg_2 colf2 str c2 ----K foreground color 2
#color_fg_3 colf3 str c3 ----K foreground color 3
#color_fg_4 colf4 str c4 ----K foreground color 4
#color_fg_5 colf5 str c5 ----K foreground color 5
#color_fg_6 colf6 str c6 ----K foreground color 6
#color_fg_7 colf7 str c7 ----K foreground color 7
#font_0 font0 str f0 ----- select font 0
#font_1 font1 str f1 ----- select font 1
#font_2 font2 str f2 ----- select font 2
#font_3 font3 str f3 ----- select font 3
#font_4 font4 str f4 ----K select font 4
#font_5 font5 str f5 ----K select font 5
#font_6 font6 str f6 ----K select font 6
#font_7 font7 str f7 ----K select font 7
#key_back_tab kbtab str k0 ----- backtab key
#key_do kdo str ki ----K do request key
#key_command kcmd str kd ----K command-request key
#key_command_pane kcpn str kW ----K command-pane key
#key_end kend str kw ----- end key
#key_help khlp str kq ----- help key
#key_newline knl str nl ----K newline key
#key_next_pane knpn str kv ----K next-pane key
#key_prev_cmd kppn str kp ----K previous-command key
#key_prev_pane kppn str kV ----K previous-pane key
#key_quit kquit str kQ ----K quit key
#key_select ksel str kU ----- select key
#key_scroll_left kscl str kz ----K scroll left
#key_scroll_right kscr str kZ ----K scroll right
#key_tab ktab str ko ----K tab key
#key_smap_in1 kmpf1 str Kv ----K special mapped key 1 input
#key_smap_out1 kmpt1 str KV ----K special mapped key 1 output
#key_smap_in2 kmpf2 str Kw ----K special mapped key 2 input
#key_smap_out2 kmpt2 str KW ----K special mapped key 2 output
#key_smap_in3 kmpf3 str Kx ----K special mapped key 3 input
#key_smap_out3 kmpt3 str KX ----K special mapped key 3 output
#key_smap_in4 kmpf4 str Ky ----K special mapped key 4 input
#key_smap_out4 kmpt4 str KY ----K special mapped key 4 output
#key_smap_in5 kmpf5 str Kz ----K special mapped key 5 input
#key_smap_out5 kmpt5 str KZ ----K special mapped key 5 output
#appl_defined_str apstr str za ----K application-defined string
# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
# the IBM manual pages, so the cap name strings are guesses. The terminfo
# names are almost certainly right, the termcap ones almost certainly wrong.
#key_smap_in6 kmpf6 str k! ----K special mapped key 6 input
#key_smap_out6 kmpt6 str K@ ----K special mapped key 6 output
#key_smap_in7 kmpf7 str k# ----K special mapped key 7 input
#key_smap_out7 kmpt7 str K$ ----K special mapped key 7 output
#key_smap_in8 kmpf8 str k% ----K special mapped key 8 input
#key_smap_out8 kmpt8 str K^ ----K special mapped key 8 output
#key_smap_in9 kmpf9 str k& ----K special mapped key 9 input
#key_smap_out9 kmpt9 str K* ----K special mapped key 9 output
# Undocumented capabilities end here
#key_sf1 ksf1 str S1 ----K special function key 1
#key_sf2 ksf2 str S2 ----K special function key 2
#key_sf3 ksf3 str S3 ----K special function key 3
#key_sf4 ksf4 str S4 ----K special function key 4
#key_sf5 ksf5 str S5 ----K special function key 5
#key_sf6 ksf6 str S6 ----K special function key 6
#key_sf7 ksf7 str S7 ----K special function key 7
#key_sf8 ksf8 str S8 ----K special function key 8
#key_sf9 ksf9 str S9 ----K special function key 9
#key_sf10 ksf10 str SA ----K special function key 10
#key_f11 kf11 str k< ----- function key 11
#key_f12 kf12 str k> ----- function key 12
# The key_f13 through key_f64 capabilities aren't described in
# the IBM manual pages, so the cap name strings are guesses. The terminfo
# names are almost certainly right, the termcap ones certainly wrong.
#key_f13 kf13 str k+ ----- function key 13
#key_f14 kf14 str k+ ----- function key 14
#key_f15 kf15 str k+ ----- function key 15
#key_f16 kf16 str k+ ----- function key 16
#key_f17 kf17 str k+ ----- function key 17
#key_f18 kf18 str k+ ----- function key 18
#key_f19 kf19 str k+ ----- function key 19
#key_f20 kf20 str k+ ----- function key 20
#key_f21 kf21 str k+ ----- function key 21
#key_f22 kf22 str k+ ----- function key 22
#key_f23 kf23 str k+ ----- function key 23
#key_f24 kf24 str k+ ----- function key 24
#key_f25 kf25 str k+ ----- function key 25
#key_f26 kf26 str k+ ----- function key 26
#key_f27 kf26 str k+ ----- function key 26
#key_f28 kf28 str k+ ----- function key 28
#key_f29 kf29 str k+ ----- function key 29
#key_f30 kf30 str k+ ----- function key 30
#key_f31 kf31 str k+ ----- function key 31
#key_f32 kf31 str k+ ----- function key 32
#key_f33 kf33 str k+ ----- function key 33
#key_f34 kf34 str k+ ----- function key 34
#key_f35 kf35 str k+ ----- function key 35
#key_f36 kf36 str k+ ----- function key 36
#key_f37 kf37 str k+ ----- function key 37
#key_f38 kf38 str k+ ----- function key 38
#key_f39 kf39 str k+ ----- function key 39
#key_f40 kf40 str k+ ----- function key 40
#key_f41 kf41 str k+ ----- function key 41
#key_f42 kf42 str k+ ----- function key 42
#key_f43 kf43 str k+ ----- function key 43
#key_f44 kf44 str k+ ----- function key 44
#key_f45 kf45 str k+ ----- function key 45
#key_f46 kf46 str k+ ----- function key 46
#key_f47 kf47 str k+ ----- function key 47
#key_f48 kf48 str k+ ----- function key 48
#key_f49 kf49 str k+ ----- function key 49
#key_f50 kf50 str k+ ----- function key 50
#key_f51 kf51 str k+ ----- function key 51
#key_f52 kf52 str k+ ----- function key 52
#key_f53 kf53 str k+ ----- function key 53
#key_f54 kf54 str k+ ----- function key 54
#key_f55 kf55 str k+ ----- function key 55
#key_f56 kf56 str k+ ----- function key 56
#key_f57 kf57 str k+ ----- function key 57
#key_f58 kf58 str k+ ----- function key 58
#key_f59 kf59 str k+ ----- function key 59
#key_f60 kf60 str k+ ----- function key 60
#key_f61 kf61 str k+ ----- function key 61
#key_f62 kf62 str k+ ----- function key 62
#key_f63 kf63 str k+ ----- function key 63
# Undocumented capabilities end here.
#key_action kact str kJ ----K sent by action key
# The IBM docs say these capabilities are for table-drawing, and are
# valid only for aixterm descriptions.
#enter_topline_mode topl str tp ----K start top-line mode
#enter_bottom_mode btml str bm ----K start bottom-line mode
#enter_rvert_mode rvert str rv ----K start right-vertical mode
#enter_lvert_mode lvert str lv ----K start left-vertical mode
#
#############################################################################
#
# ALIAS DECLARATIONS
#
# Here we set up aliases for translating extensions into standard terminfo.
#
#---------------------------------- Termcap aliases -------------------------
#
# BSD aliases:
#
# This is a common error in many termcap files. We'll get notified during
# translation when this (or any other alias) fires.
#
capalias sb sr BSD scroll text down
#
# AT&T extensions:
#
# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
# nonstandard capabilities. Its signature is the KM capability, used to name
# some sort of keymap file. EE, BO, CI, CV, XS, DS, FL and FE are in this
# set. Comments in the original, and a little cross-checking with other AT&T
# documentation, seem to establish the following mappings:
#
capalias BO mr AT&T enter_reverse_mode
capalias CI vi AT&T cursor_invisible
capalias CV ve AT&T cursor_normal
capalias DS mh AT&T enter_dim_mode
#capalias EE me AT&T exit_attribute_mode
capalias FE LF AT&T label_on
capalias FL LO AT&T label_off
capalias XS mk AT&T enter_secure_mode
#
# We comment out EE because the conflicting XENIX EE is more common in
# old entries.
#
# XENIX extensions:
#
# These are the ones we know how to translate directly:
#
capalias EE mh XENIX exit_attribute_mode
capalias GE ae XENIX exit_alt_charset_mode
capalias GS as XENIX enter_alt_charset_mode
capalias CF vi XENIX cursor_invis
capalias CO ve XENIX cursor_normal
capalias EN @7 XENIX key_end
capalias HM kh XENIX key_home
capalias LD kL XENIX key_dl
capalias PD kN XENIX key_npage
capalias PN po XENIX prtr_off
capalias PS pf XENIX prtr_on
capalias PU kP XENIX key_ppage
capalias RT @8 XENIX kent
capalias UP ku XENIX kcuu1
capalias G6 IGNORE XENIX double-ACS_ULCORNER
capalias G7 IGNORE XENIX double-ACS_LLCORNER
capalias G5 IGNORE XENIX double-ACS_URCORNER
capalias G8 IGNORE XENIX double-ACS_LRCORNER
capalias Gr IGNORE XENIX double-ACS_LTEE
capalias Gr IGNORE XENIX double-ACS_RTEE
capalias Gu IGNORE XENIX double-ACS_BTEE
capalias Gd IGNORE XENIX double ACS_TTEE
capalias Gh IGNORE XENIX double-ACS_HLINE
capalias Gv IGNORE XENIX double-ACS_VLINE
capalias Gc IGNORE XENIX double-ACS_PLUS
capalias GG IGNORE XENIX acs-glitch
#
# IBM extensions:
#
capalias kq %1 IBM key_help
#
# Iris extensions:
#
capalias HS mh IRIS enter_dim_mode
#
# Tektronix extensions:
#
capalias KA k; Tek key_f10
capalias KB F1 Tek key_f11
capalias KC F2 Tek key_f12
capalias KD F3 Tek key_f13
capalias KE F4 Tek key_f14
capalias KF F5 Tek key_f15
capalias BC Sb Tek set_background
capalias FC Sf Tek set_foreground
#
# There are also the following:
#
# XENIX XENIX variable name name clash with terminfo?
# ----- ------------------- -------------------------
# CL key_char_left
# CR key_char_right
# CW key_change_window
# HP ??
# LF key_linefeed label_off
# NU key_next_unlocked_cell
# PL ??
# PR ??
# RC key_recalc remove_clock
# RF key_toggle_ref req_for_input
# WL key_word_left
# WR key_word_right
#
# If you know what any of the question-marked ones mean, please tell us.
#
#--------------------------------- Terminfo aliases ------------------------
#
# IBM extensions:
#
infoalias font0 s0ds IBM set0_des_seq
infoalias font1 s1ds IBM set1_des_seq
infoalias font2 s2ds IBM set2_des_seq
infoalias font3 s3ds IBM set3_des_seq
infoalias kbtab kcbt IBM key_backtab
infoalias ksel kslt IBM key_select
#
# Some others are identical to SVr4/XPG4 capabilities, in particular:
# kcmd, kend, khlp, and kf11...kf63.
#
#############################################################################
#
# The following sets edit modes for GNU EMACS
# Local Variables:
# case-fold-search:nil
# truncate-lines:t
# End:
|