##############################################################################
# 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>
#
# $Id: Caps,v 1.24 1999/01/17 02:01:44 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 (shift, sets parity 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:
