Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  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
##############################################################################
# Copyright 2019,2020 Thomas E. Dickey                                       #
# Copyright 2001-2015,2016 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: Thomas Dickey
#
# $Id: Caps.uwin,v 1.12 2020/02/02 23:34:34 tom Exp $
#
# This is an adaptation of ncurses' termcap/terminfo capability table, which
# is designed to align with U/Win's terminfo.
#
# 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: KEY_xxx name, if any, `-' otherwise
# Column 6: value for KEY_xxx name, if any, `-' otherwise
# Column 7: Lead with `Y' if capability should be emitted in termcap
#           translations, `-' otherwise
# Column 8: capability description
#
# The codes following [Y-] in column 7 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
# an asterisk (*).
#
# 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 to 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	cannot 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 will not work, xon/xoff required
prtr_silent			mc5i	bool	5i	-	-	-----	printer will not 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
back_color_erase		bce	bool	ut	-	-	-----	screen erased with background color
can_change			ccc	bool	cc	-	-	-----	terminal can re-define existing colors
hue_lightness_saturation	hls	bool	hl	-	-	-----	terminal uses only HLS color notation (Tektronix)
#%.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
buttons				btns	num	BT	-	-	-----	number of buttons on mouse
#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 cannot 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
#%
#%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, move to row #1 columns #2
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	KEY_BACKSPACE	0407	YB-G-	backspace key
key_catab			ktbc	str	ka	KEY_CATAB	0526	-B-G-*	clear-all-tabs key
key_clear			kclr	str	kC	KEY_CLEAR	0515	-B-G-*	clear-screen or erase key
key_ctab			kctab	str	kt	KEY_CTAB	0525	-B-G-*	clear-tab key
key_dc				kdch1	str	kD	KEY_DC		0512	YB-G-	delete-character key
key_dl				kdl1	str	kL	KEY_DL		0510	-B-G-*	delete-line key
key_down			kcud1	str	kd	KEY_DOWN	0402	YBCGE	down-arrow key
key_eic				krmir	str	kM	KEY_EIC		0514	-B-G-*	sent by rmir or smir in insert mode
key_eol				kel	str	kE	KEY_EOL		0517	-B-G-*	clear-to-end-of-line key
key_eos				ked	str	kS	KEY_EOS		0516	-B-G-*	clear-to-end-of-screen key
key_f0				kf0	str	k0	KEY_F(0)	0410	YBCGE	F0 function key
key_f1				kf1	str	k1	KEY_F(1)	-	YBCGE	F1 function key
key_f10				kf10	str	k;	KEY_F(10)	-	----E	F10 function key
key_f2				kf2	str	k2	KEY_F(2)	-	YBCGE	F2 function key
key_f3				kf3	str	k3	KEY_F(3)	-	YBCGE	F3 function key
key_f4				kf4	str	k4	KEY_F(4)	-	YBCGE	F4 function key
key_f5				kf5	str	k5	KEY_F(5)	-	YBCGE	F5 function key
key_f6				kf6	str	k6	KEY_F(6)	-	YBCGE	F6 function key
key_f7				kf7	str	k7	KEY_F(7)	-	YBCGE	F7 function key
key_f8				kf8	str	k8	KEY_F(8)	-	YBCGE	F8 function key
key_f9				kf9	str	k9	KEY_F(9)	-	YBCGE	F9 function key
key_home			khome	str	kh	KEY_HOME	0406	YBCGE	home key
key_ic				kich1	str	kI	KEY_IC		0513	YB-GE	insert-character key
key_il				kil1	str	kA	KEY_IL		0511	-B-G-*	insert-line key
key_left			kcub1	str	kl	KEY_LEFT	0404	YBCGE	left-arrow key
key_ll				kll	str	kH	KEY_LL		0533	YB-G-	lower-left key (home down)
key_npage			knp	str	kN	KEY_NPAGE	0522	YB-GE	next-page key
key_ppage			kpp	str	kP	KEY_PPAGE	0523	YB-GE	previous-page key
key_right			kcuf1	str	kr	KEY_RIGHT	0405	YBCGE	right-arrow key
key_sf				kind	str	kF	KEY_SF		0520	-B-G-*	scroll-forward key
key_sr				kri	str	kR	KEY_SR		0521	-B-G-*	scroll-backward key
key_stab			khts	str	kT	KEY_STAB	0524	-B-G-*	set-tab key
key_up				kcuu1	str	ku	KEY_UP		0403	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, column #1
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	KEY_A1		0534	YB-GE	upper left of keypad
key_a3				ka3	str	K3	KEY_A3		0535	YB-GE	upper right of keypad
key_b2				kb2	str	K2	KEY_B2		0536	YB-GE	center of keypad
key_c1				kc1	str	K4	KEY_C1		0537	YB-GE	lower left of keypad
key_c3				kc3	str	K5	KEY_C3		0540	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	KEY_BTAB	0541	-----	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	KEY_BEG		0542	-----	begin key
key_cancel			kcan	str	@2	KEY_CANCEL	0543	-----	cancel key
key_close			kclo	str	@3	KEY_CLOSE	0544	-----	close key
key_command			kcmd	str	@4	KEY_COMMAND	0545	-----	command key
key_copy			kcpy	str	@5	KEY_COPY	0546	-----	copy key
key_create			kcrt	str	@6	KEY_CREATE	0547	-----	create key
key_end				kend	str	@7	KEY_END		0550	-----	end key
key_enter			kent	str	@8	KEY_ENTER	0527	-----	enter/send key
key_exit			kext	str	@9	KEY_EXIT	0551	-----	exit key
key_find			kfnd	str	@0	KEY_FIND	0552	-----	find key
key_help			khlp	str	%1	KEY_HELP	0553	-----	help key
key_mark			kmrk	str	%2	KEY_MARK	0554	-----	mark key
key_message			kmsg	str	%3	KEY_MESSAGE	0555	-----	message key
key_move			kmov	str	%4	KEY_MOVE	0556	-----	move key
key_next			knxt	str	%5	KEY_NEXT	0557	-----	next key
key_open			kopn	str	%6	KEY_OPEN	0560	-----	open key
key_options			kopt	str	%7	KEY_OPTIONS	0561	-----	options key
key_previous			kprv	str	%8	KEY_PREVIOUS	0562	-----	previous key
key_print			kprt	str	%9	KEY_PRINT	0532	-----	print key
key_redo			krdo	str	%0	KEY_REDO	0563	-----	redo key
key_reference			kref	str	&1	KEY_REFERENCE	0564	-----	reference key
key_refresh			krfr	str	&2	KEY_REFRESH	0565	-----	refresh key
key_replace			krpl	str	&3	KEY_REPLACE	0566	-----	replace key
key_restart			krst	str	&4	KEY_RESTART	0567	-----	restart key
key_resume			kres	str	&5	KEY_RESUME	0570	-----	resume key
key_save			ksav	str	&6	KEY_SAVE	0571	-----	save key
key_suspend			kspd	str	&7	KEY_SUSPEND	0627	-----	suspend key
key_undo			kund	str	&8	KEY_UNDO	0630	-----	undo key
key_sbeg			kBEG	str	&9	KEY_SBEG	0572	-----	shifted begin key
key_scancel			kCAN	str	&0	KEY_SCANCEL	0573	-----	shifted cancel key
key_scommand			kCMD	str	*1	KEY_SCOMMAND	0574	-----	shifted command key
key_scopy			kCPY	str	*2	KEY_SCOPY	0575	-----	shifted copy key
key_screate			kCRT	str	*3	KEY_SCREATE	0576	-----	shifted create key
key_sdc				kDC	str	*4	KEY_SDC		0577	-----	shifted delete-character key
key_sdl				kDL	str	*5	KEY_SDL		0600	-----	shifted delete-line key
key_select			kslt	str	*6	KEY_SELECT	0601	-----	select key
key_send			kEND	str	*7	KEY_SEND	0602	-----	shifted end key
key_seol			kEOL	str	*8	KEY_SEOL	0603	-----	shifted clear-to-end-of-line key
key_sexit			kEXT	str	*9	KEY_SEXIT	0604	-----	shifted exit key
key_sfind			kFND	str	*0	KEY_SFIND	0605	-----	shifted find key
key_shelp			kHLP	str	#1	KEY_SHELP	0606	-----	shifted help key
key_shome			kHOM	str	#2	KEY_SHOME	0607	-----	shifted home key
key_sic				kIC	str	#3	KEY_SIC		0610	-----	shifted insert-character key
key_sleft			kLFT	str	#4	KEY_SLEFT	0611	-----	shifted left-arrow key
key_smessage			kMSG	str	%a	KEY_SMESSAGE	0612	-----	shifted message key
key_smove			kMOV	str	%b	KEY_SMOVE	0613	-----	shifted move key
key_snext			kNXT	str	%c	KEY_SNEXT	0614	-----	shifted next key
key_soptions			kOPT	str	%d	KEY_SOPTIONS	0615	-----	shifted options key
key_sprevious			kPRV	str	%e	KEY_SPREVIOUS	0616	-----	shifted previous key
key_sprint			kPRT	str	%f	KEY_SPRINT	0617	-----	shifted print key
key_sredo			kRDO	str	%g	KEY_SREDO	0620	-----	shifted redo key
key_sreplace			kRPL	str	%h	KEY_SREPLACE	0621	-----	shifted replace key
key_sright			kRIT	str	%i	KEY_SRIGHT	0622	-----	shifted right-arrow key
key_srsume			kRES	str	%j	KEY_SRSUME	0623	-----	shifted resume key
key_ssave			kSAV	str	!1	KEY_SSAVE	0624	-----	shifted save key
key_ssuspend			kSPD	str	!2	KEY_SSUSPEND	0625	-----	shifted suspend key
key_sundo			kUND	str	!3	KEY_SUNDO	0626	-----	shifted undo key
req_for_input			rfi	str	RF	-		-	-----	send next input char (for ptys)
key_f11				kf11	str	F1	KEY_F(11)	-	----E	F11 function key
key_f12				kf12	str	F2	KEY_F(12)	-	----E	F12 function key
key_f13				kf13	str	F3	KEY_F(13)	-	----E	F13 function key
key_f14				kf14	str	F4	KEY_F(14)	-	----E	F14 function key
key_f15				kf15	str	F5	KEY_F(15)	-	----E	F15 function key
key_f16				kf16	str	F6	KEY_F(16)	-	----E	F16 function key
key_f17				kf17	str	F7	KEY_F(17)	-	----E	F17 function key
key_f18				kf18	str	F8	KEY_F(18)	-	----E	F18 function key
key_f19				kf19	str	F9	KEY_F(19)	-	----E	F19 function key
key_f20				kf20	str	FA	KEY_F(20)	-	----E	F20 function key
key_f21				kf21	str	FB	KEY_F(21)	-	----E	F21 function key
key_f22				kf22	str	FC	KEY_F(22)	-	----E	F22 function key
key_f23				kf23	str	FD	KEY_F(23)	-	----E	F23 function key
key_f24				kf24	str	FE	KEY_F(24)	-	----E	F24 function key
key_f25				kf25	str	FF	KEY_F(25)	-	----E	F25 function key
key_f26				kf26	str	FG	KEY_F(26)	-	----E	F26 function key
key_f27				kf27	str	FH	KEY_F(27)	-	----E	F27 function key
key_f28				kf28	str	FI	KEY_F(28)	-	----E	F28 function key
key_f29				kf29	str	FJ	KEY_F(29)	-	----E	F29 function key
key_f30				kf30	str	FK	KEY_F(30)	-	----E	F30 function key
key_f31				kf31	str	FL	KEY_F(31)	-	----E	F31 function key
key_f32				kf32	str	FM	KEY_F(32)	-	----E	F32 function key
key_f33				kf33	str	FN	KEY_F(33)	-	----E	F33 function key
key_f34				kf34	str	FO	KEY_F(34)	-	----E	F34 function key
key_f35				kf35	str	FP	KEY_F(35)	-	----E	F35 function key
key_f36				kf36	str	FQ	KEY_F(36)	-	----E	F36 function key
key_f37				kf37	str	FR	KEY_F(37)	-	----E	F37 function key
key_f38				kf38	str	FS	KEY_F(38)	-	----E	F38 function key
key_f39				kf39	str	FT	KEY_F(39)	-	----E	F39 function key
key_f40				kf40	str	FU	KEY_F(40)	-	----E	F40 function key
key_f41				kf41	str	FV	KEY_F(41)	-	----E	F41 function key
key_f42				kf42	str	FW	KEY_F(42)	-	----E	F42 function key
key_f43				kf43	str	FX	KEY_F(43)	-	----E	F43 function key
key_f44				kf44	str	FY	KEY_F(44)	-	----E	F44 function key
key_f45				kf45	str	FZ	KEY_F(45)	-	----E	F45 function key
key_f46				kf46	str	Fa	KEY_F(46)	-	----E	F46 function key
key_f47				kf47	str	Fb	KEY_F(47)	-	----E	F47 function key
key_f48				kf48	str	Fc	KEY_F(48)	-	----E	F48 function key
key_f49				kf49	str	Fd	KEY_F(49)	-	----E	F49 function key
key_f50				kf50	str	Fe	KEY_F(50)	-	----E	F50 function key
key_f51				kf51	str	Ff	KEY_F(51)	-	----E	F51 function key
key_f52				kf52	str	Fg	KEY_F(52)	-	----E	F52 function key
key_f53				kf53	str	Fh	KEY_F(53)	-	----E	F53 function key
key_f54				kf54	str	Fi	KEY_F(54)	-	----E	F54 function key
key_f55				kf55	str	Fj	KEY_F(55)	-	----E	F55 function key
key_f56				kf56	str	Fk	KEY_F(56)	-	----E	F56 function key
key_f57				kf57	str	Fl	KEY_F(57)	-	----E	F57 function key
key_f58				kf58	str	Fm	KEY_F(58)	-	----E	F58 function key
key_f59				kf59	str	Fn	KEY_F(59)	-	----E	F59 function key
key_f60				kf60	str	Fo	KEY_F(60)	-	----E	F60 function key
key_f61				kf61	str	Fp	KEY_F(61)	-	----E	F61 function key
key_f62				kf62	str	Fq	KEY_F(62)	-	----E	F62 function key
key_f63				kf63	str	Fr	KEY_F(63)	-	----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.	 See smgl. (ML is not in BSD termcap).
set_right_margin		smgr	str	MR	-		-	-----	set right soft margin at current column
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 codeset 0 (EUC set 0, ASCII)
set1_des_seq			s1ds	str	s1	-		-	-----	Shift to codeset 1
set2_des_seq			s2ds	str	s2	-		-	-----	Shift to codeset 2
set3_des_seq			s3ds	str	s3	-		-	-----	Shift to codeset 3
key_mouse			kmous	str	Km	KEY_MOUSE	0631	-----	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, parameter #1 not documented.
release_mouse			relm	str	Rm	-		-	-----	Curses should release the mouse */
color_names			colornm	str	Yw	-		-	-----	Give name for color #1
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)
orig_colors			oc	str	oc	-		-	-----	Set all color pairs to the original ones
orig_pair			op	str	op	-		-	-----	Set default pair to its original value
set_a_background		setab	str	AB	-		-	-----	Set background color to #1, using ANSI escape
set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
set_background			setb	str	Sb	-		-	-----	Set background color #1
set_color_pair			scp	str	sp	-		-	-----	Set current color pair to #1
set_foreground			setf	str	Sf	-		-	-----	Set foreground color #1
#%.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 was a 4.0BSD feature used by vi version 2.
# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
# Besides being obsolete, that interpretation conflicts with max_attributes.
#
# 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 motion-keys for vi version 2
# 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
#
# (see Caps-ncurses for the complete set of comments)
#
memory_lock			meml	str	ml	-		-	----K	lock memory above cursor
memory_unlock			memu	str	mu	-		-	----K	unlock memory
box_chars_1			box1	str	bx	-		-	----K	box characters primary set
#
#############################################################################