Base version of ncurses-5.7 library
diff --git a/include/Caps b/include/Caps
new file mode 100644
index 0000000..7c63c7f
--- /dev/null
+++ b/include/Caps
@@ -0,0 +1,1264 @@
+##############################################################################
+# Copyright (c) 1998-2002,2006 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.36 2006/05/27 15:33:04 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: 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 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
+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 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
+#%.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, 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
+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
+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 to #1
+change_line_pitch		lpi	str	ZB	-		-	-----	Change number of lines per inch to #1
+change_res_horz			chr	str	ZC	-		-	-----	Change horizontal resolution to #1
+change_res_vert			cvr	str	ZD	-		-	-----	Change vertical resolution to #1
+define_char			defc	str	ZE	-		-	-----	Define a character #1, #2 dots wide, descender #3
+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 #1 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, #1
+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 (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm		smglp	str	Zm	-		-	-----	Set left (right) margin at column #1
+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
+start_bit_image			sbim	str	Zq	-		-	-----	Start printing bit image graphics
+start_char_set_def		scsd	str	Zr	-		-	-----	Start character set definition #1, with #2 characters in the set
+stop_bit_image			rbim	str	Zs	-		-	-----	Stop printing bit image graphics
+stop_char_set_def		rcsd	str	Zt	-		-	-----	End definition of character set #1
+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	-		-	-----	Produce #1'th item from list of character set names
+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.
+set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
+set_a_background		setab	str	AB	-		-	-----	Set background color to #1, 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 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
+set_lr_margin			smglr	str	ML	-		-	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+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 #1
+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	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#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
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11			kf11	str	k<	-		-	-----	function key 11
+#key_f12			kf12	str	k>	-		-	-----	function key 12
+# 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:
diff --git a/include/Caps.aix4 b/include/Caps.aix4
new file mode 100644
index 0000000..75913dc
--- /dev/null
+++ b/include/Caps.aix4
@@ -0,0 +1,1255 @@
+##############################################################################
+# Copyright (c) 2001-2002,2006 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.aix4,v 1.7 2006/05/27 15:33:04 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with AIX 4.x'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 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
+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 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
+#%.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, 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
+#
+# 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	-		-	----K	select font 0
+font_1				font1	str	f1	-		-	----K	select font 1
+font_2				font2	str	f2	-		-	----K	select font 2
+font_3				font3	str	f3	-		-	----K	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	-		-	----K	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	KEY_END		0550	-----	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_aix			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
+key_smap_in6			kmpf6	str	kr	-		-	----K	special mapped key 6 input
+key_smap_out6			kmpt6	str	KR	-		-	----K	special mapped key 6 output
+key_smap_in7			kmpf7	str	ks	-		-	----K	special mapped key 7 input
+key_smap_out7			kmpt7	str	KS	-		-	----K	special mapped key 7 output
+key_smap_in8			kmpf8	str	kt	-		-	----K	special mapped key 8 input
+key_smap_out8			kmpt8	str	KT	-		-	----K	special mapped key 8 output
+key_smap_in9			kmpf9	str	ku	-		-	----K	special mapped key 9 input
+key_smap_out9			kmpt9	str	KU	-		-	----K	special mapped key 9 output
+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	S0	-		-	----K	special function key 10
+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
+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
+#
+# SVr4 capabilities resume here.  Note that key_end is in the IBM-extensions.
+#
+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)
+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
+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
+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 to #1
+change_line_pitch		lpi	str	ZB	-		-	-----	Change number of lines per inch to #1
+change_res_horz			chr	str	ZC	-		-	-----	Change horizontal resolution to #1
+change_res_vert			cvr	str	ZD	-		-	-----	Change vertical resolution to #1
+define_char			defc	str	ZE	-		-	-----	Define a character #1, #2 dots wide, descender #3
+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 #1 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, #1
+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 (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm		smglp	str	Zm	-		-	-----	Set left (right) margin at column #1
+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
+start_bit_image			sbim	str	Zq	-		-	-----	Start printing bit image graphics
+start_char_set_def		scsd	str	Zr	-		-	-----	Start character set definition #1, with #2 characters in the set
+stop_bit_image			rbim	str	Zs	-		-	-----	Stop printing bit image graphics
+stop_char_set_def		rcsd	str	Zt	-		-	-----	End definition of character set #1
+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	-		-	-----	Produce #1'th item from list of character set names
+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.
+set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
+set_a_background		setab	str	AB	-		-	-----	Set background color to #1, 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 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
+set_lr_margin			smglr	str	ML	-		-	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+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 #1
+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	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#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
+#
+#############################################################################
+#
+# 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:
diff --git a/include/Caps.hpux11 b/include/Caps.hpux11
new file mode 100644
index 0000000..b74acdb
--- /dev/null
+++ b/include/Caps.hpux11
@@ -0,0 +1,1278 @@
+##############################################################################
+# Copyright (c) 2002-2003,2006 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.hpux11,v 1.4 2006/05/27 15:33:04 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with HPUX 11.x'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 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
+# end booleans for HPUX 9, 10 (non-color curses)
+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
+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
+# end numbers for HPUX 9, 10 (non-color curses)
+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 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
+#%.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, 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.
+#
+# HPUX defines these if __HP_CURSES_COMPAT is defined:
+memory_lock			meml	str	ml	-		-	----K	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#
+#
+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	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
+# end of strings in HPUX 9
+char_padding			rmp	str	rP	-		-	-----	like ip but when in insert mode
+acs_chars			acsc	str	ac	-		-	-----	graphics charset pairs, based on vt100
+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
+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)
+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
+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
+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 to #1
+change_line_pitch		lpi	str	ZB	-		-	-----	Change number of lines per inch to #1
+change_res_horz			chr	str	ZC	-		-	-----	Change horizontal resolution to #1
+change_res_vert			cvr	str	ZD	-		-	-----	Change vertical resolution to #1
+define_char			defc	str	ZE	-		-	-----	Define a character #1, #2 dots wide, descender #3
+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 #1 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, #1
+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 (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm		smglp	str	Zm	-		-	-----	Set left (right) margin at column #1
+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
+start_bit_image			sbim	str	Zq	-		-	-----	Start printing bit image graphics
+start_char_set_def		scsd	str	Zr	-		-	-----	Start character set definition #1, with #2 characters in the set
+stop_bit_image			rbim	str	Zs	-		-	-----	Stop printing bit image graphics
+stop_char_set_def		rcsd	str	Zt	-		-	-----	End definition of character set #1
+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	-		-	-----	Produce #1'th item from list of character set names
+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.
+set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
+set_a_background		setab	str	AB	-		-	-----	Set background color to #1, 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 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
+set_lr_margin			smglr	str	ML	-		-	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+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 #1
+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
+set_pglen_inch			slength	str	sL	-		-	-----	YI Set page length to #1 hundredth of an inch
+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
+exit_horizontal_hl_mode 	rhhlm	str	XH	-		-	----K	Exit horizontal highlight mode
+exit_left_hl_mode 		rlhlm	str	XL	-		-	----K	Exit left highlight mode
+exit_low_hl_mode 		rlohlm	str	XO	-		-	----K	Exit low highlight mode
+exit_right_hl_mode 		rrhlm	str	XR	-		-	----K	Exit right highlight mode
+exit_top_hl_mode 		rthlm	str	XT	-		-	----K	Exit top highlight mode
+exit_vertical_hl_mode 		rvhlm	str	XV	-		-	----K	Exit vertical highlight mode
+#%.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
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11			kf11	str	k<	-		-	-----	function key 11
+#key_f12			kf12	str	k>	-		-	-----	function key 12
+# 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:
diff --git a/include/Caps.keys b/include/Caps.keys
new file mode 100644
index 0000000..6841ae5
--- /dev/null
+++ b/include/Caps.keys
@@ -0,0 +1,1354 @@
+##############################################################################
+# Copyright (c) 2001-2002,2006 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
+#    and: Ilya Zakharevich
+#
+# $Id: Caps.keys,v 1.3 2006/05/27 15:33:04 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is illustrates an experimental extension to describe alt-, shift- and
+# control-modifiers applied to function and normal keys, as done on IBM pc's.
+#
+# 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 the ncurses
+# library what to do with the terminfo data after it's read in.
+#
+# 4. List it in the aliases table with an IGNORE target field.  If you
+# do this, the capability will be ignored on input (though the user will
+# get a warning message about it).
+#
+# 5. List it in the extensions table. If you do this, the compiler will
+# silently accept the capability, but the curses library proper will never
+# see it (because it won't be written out as part of the terminfo object
+# format).  It's up to you what you have the compiler do with it.
+#
+# There are two opposite reasons to choose option 5.  One is when you want
+# to eat the capability silently and discard it when doing translations
+# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
+# in this class.  Nothing will ever use them again.
+#
+# More usually, you want the compiler to try to deduce something from the
+# capability value that it can use to translate it into your output format.
+# You'll need to write custom code, probably in postprocess_termcap() or
+# postprocess_terminfo(), to handle the translation.
+#
+# CONTROLLING ENTRY LENGTH 
+#
+# Notes on specific elisions made to fit translations within 1023 bytes:
+#
+# Machines with IBM PC-like keyboards want to be able to define the following
+# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
+# only environments for End or Home-Down), key_dc, and key_ic.  This is also
+# the set of keys the `joe' editor will be upset if it can't see.  So don't 
+# trim those out of the set to be translated to termcap, or various users of
+# the termcap file will become irate.
+#
+# It might look tempting to leave those long init strings out of translations.
+# We can't do it (yet); 4.4BSD tput and tset use them.
+#
+# We retain the sgr capability in translation in spite of the fact that neither
+# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
+# hard to understand without it, and (b) the entries in which it is long tend
+# to be older types that don't use up a lot of string space on function keys.
+# The tic(1) translation code will complain and elide it if it makes a critical
+# difference (there is special code in tic to recognize this situation).
+#
+# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
+# optimizer in BSD curses didn't use them.  This omission seems to be the
+# single most effective one, it shortened the resolved length of all thirteen
+# problem entries in the 9.9.0 version of the terminfo master below critical.
+#
+# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
+# translations go back over critical if we do this.  As 4.4BSD curses fades
+# into history and GNU termcap's application base shrinks towards being GNU 
+# Emacs only, we'll probably elide out some BSD-only capabilities in order
+# to buy space for non-essentials Emacs is still using.  Capabilities high
+# on that hit list: rc, sc, uc.
+#
+#############################################################################
+#
+# STANDARD CAPABILITIES
+#
+#%The following is a complete table of the capabilities included in a
+#%terminfo description block and available to terminfo-using code.  In each
+#%line of the table,
+#%
+#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
+#%accesses the capability.
+#%
+#%The \fBcapname\fR is the short name used in the text of the database,
+#%and is used by a person updating the database.
+#%Whenever possible, capnames are chosen to be the same as or similar to
+#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses 
+#%identical or very similar names).  Semantics are also intended to match
+#%those of the specification.
+#%
+#%The termcap code is the old
+#%.B termcap
+#%capability name (some capabilities are new, and have names which termcap
+#%did not originate).
+#%.P
+#%Capability names have no hard length limit, but an informal limit of 5
+#%characters has been adopted to keep them short and to allow the tabs in
+#%the source file
+#%.B Caps
+#%to line up nicely.
+#%
+#%Finally, the description field attempts to convey the semantics of the
+#%capability.  You may find some codes in the description field:
+#%.TP
+#%(P)
+#%indicates that padding may be specified
+#%.TP
+#%#[1-9]
+#%in the description field indicates that the string is passed through tparm with
+#%parms as given (#\fIi\fP).
+#%.TP
+#%(P*)
+#%indicates that padding may vary in proportion to the number of
+#%lines affected
+#%.TP
+#%(#\d\fIi\fP\u)
+#%indicates the \fIi\fP\uth\d parameter.
+#%
+#%.PP
+#% These are the boolean capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable	Cap-	TCap	Description\fR
+#%\fBBooleans	name	Code\fR
+auto_left_margin		bw	bool	bw	-	-	YB-G-	cub1 wraps from column 0 to last column
+auto_right_margin		am	bool	am	-	-	YBCGE	terminal has automatic margins
+no_esc_ctlc			xsb	bool	xb	-	-	YBCG-	beehive (f1=escape, f2=ctrl C)
+ceol_standout_glitch		xhp	bool	xs	-	-	YBCGE	standout not erased by overwriting (hp)
+eat_newline_glitch		xenl	bool	xn	-	-	YBCGE	newline ignored after 80 cols (concept)
+erase_overstrike		eo	bool	eo	-	-	YBCG-	can erase overstrikes with a blank
+generic_type			gn	bool	gn	-	-	YB-G-	generic line type
+hard_copy			hc	bool	hc	-	-	YBCG-	hardcopy terminal
+has_meta_key			km	bool	km	-	-	YB-GE	Has a meta key (i.e., sets 8th-bit)
+has_status_line			hs	bool	hs	-	-	YB-G-	has extra status line
+insert_null_glitch		in	bool	in	-	-	YBCGE	insert mode distinguishes nulls
+memory_above			da	bool	da	-	-	YBCG-	display may be retained above the screen
+memory_below			db	bool	db	-	-	YB-GE	display may be retained below the screen
+move_insert_mode		mir	bool	mi	-	-	YBCGE	safe to move while in insert mode
+move_standout_mode		msgr	bool	ms	-	-	YBCGE	safe to move while in standout mode
+over_strike			os	bool	os	-	-	YBCG-	terminal can overstrike
+status_line_esc_ok		eslok	bool	es	-	-	YB-G-	escape can be used on the status line
+dest_tabs_magic_smso		xt	bool	xt	-	-	YBCGE	tabs destructive, magic so char (t1061)
+tilde_glitch			hz	bool	hz	-	-	YB-GE	can't print ~'s (hazeltine)
+transparent_underline		ul	bool	ul	-	-	YBCGE	underline character overstrikes
+xon_xoff			xon	bool	xo	-	-	YB---	terminal uses xon/xoff handshaking
+needs_xon_xoff			nxon	bool	nx	-	-	-----	padding won't work, xon/xoff required
+prtr_silent			mc5i	bool	5i	-	-	-----	printer won't echo on screen
+hard_cursor			chts	bool	HC	-	-	-----	cursor is hard to see
+non_rev_rmcup			nrrmc	bool	NR	-	-	-----	smcup does not reverse rmcup
+no_pad_char			npc	bool	NP	-	-	-----	pad character does not exist
+non_dest_scroll_region		ndscr	bool	ND	-	-	-----	scrolling region is non-destructive
+can_change			ccc	bool	cc	-	-	-----	terminal can re-define existing colors
+back_color_erase		bce	bool	ut	-	-	-----	screen erased with background color
+hue_lightness_saturation	hls	bool	hl	-	-	-----	terminal uses only HLS color notation (Tektronix)
+col_addr_glitch			xhpa	bool	YA	-	-	-----	only positive motion for hpa/mhpa caps
+cr_cancels_micro_mode		crxm	bool	YB	-	-	-----	using cr turns off micro mode
+has_print_wheel			daisy	bool	YC	-	-	-----	printer needs operator to change character set
+row_addr_glitch			xvpa	bool	YD	-	-	-----	only positive motion for vpa/mvpa caps
+semi_auto_right_margin		sam	bool	YE	-	-	-----	printing in last column causes cr
+cpi_changes_res			cpix	bool	YF	-	-	-----	changing character pitch changes resolution
+lpi_changes_res			lpix	bool	YG	-	-	-----	changing line pitch changes resolution
+#%.TE
+#%.ad
+#%
+#%These are the numeric capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable	Cap-	TCap	Description\fR
+#%\fBNumeric	name	Code\fR
+columns				cols	num	co	-	-	YBCGE	number of columns in a line
+init_tabs			it	num	it	-	-	YB-G-	tabs initially every # spaces
+lines				lines	num	li	-	-	YBCGE	number of lines on screen or page
+lines_of_memory			lm	num	lm	-	-	YB-G-	lines of memory if > line. 0 means varies
+magic_cookie_glitch		xmc	num	sg	-	-	YBCGE	number of blank characters left by smso or rmso
+padding_baud_rate		pb	num	pb	-	-	YB-GE	lowest baud rate where padding needed
+virtual_terminal		vt	num	vt	-	-	YB---	virtual terminal number (CB/unix)
+width_status_line		wsl	num	ws	-	-	YB-G-	number of columns in status line
+num_labels			nlab	num	Nl	-	-	-----	number of labels on screen
+label_height			lh	num	lh	-	-	-----	rows in each label
+label_width			lw	num	lw	-	-	-----	columns in each label
+max_attributes			ma	num	ma	-	-	YBC--	maximum combined attributes terminal can handle
+maximum_windows			wnum	num	MW	-	-	-----	maximum number of defineable windows
+# These came in with SVr4's color support
+max_colors			colors	num	Co	-	-	-----	maximum number of colors on screen
+max_pairs			pairs	num	pa	-	-	-----	maximum number of color-pairs on the screen
+no_color_video			ncv	num	NC	-	-	-----	video attributes that can't be used with colors
+#%.TE
+#%.ad
+#%
+#%The following numeric capabilities are present in the SVr4.0 term structure,
+#%but are not yet documented in the man page.  They came in with SVr4's
+#%printer support.
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable	Cap-	TCap	Description\fR
+#%\fBNumeric	name	Code\fR
+buffer_capacity			bufsz	num	Ya	-	-	-----	numbers of bytes buffered before printing
+dot_vert_spacing		spinv	num	Yb	-	-	-----	spacing of pins vertically in pins per inch
+dot_horz_spacing		spinh	num	Yc	-	-	-----	spacing of dots horizontally in dots per inch
+max_micro_address		maddr	num	Yd	-	-	-----	maximum value in micro_..._address
+max_micro_jump			mjump	num	Ye	-	-	-----	maximum value in parm_..._micro
+micro_col_size			mcs	num	Yf	-	-	-----	character step size when in micro mode
+micro_line_size			mls	num	Yg	-	-	-----	line step size when in micro mode
+number_of_pins			npins	num	Yh	-	-	-----	numbers of pins in print-head
+output_res_char			orc	num	Yi	-	-	-----	horizontal resolution in units per line
+output_res_line			orl	num	Yj	-	-	-----	vertical resolution in units per line
+output_res_horz_inch		orhi	num	Yk	-	-	-----	horizontal resolution in units per inch
+output_res_vert_inch		orvi	num	Yl	-	-	-----	vertical resolution in units per inch
+print_rate			cps	num	Ym	-	-	-----	print rate in characters per second
+wide_char_size			widcs	num	Yn	-	-	-----	character step size when in double wide mode
+buttons				btns	num	BT	-	-	-----	number of buttons on mouse
+bit_image_entwining		bitwin	num	Yo	-	-	-----	number of passes for each bit-image row
+bit_image_type			bitype	num	Yp	-	-	-----	type of bit-image device
+#%.TE
+#%.ad
+#%
+#%These are the string capabilities:
+#%
+#%.na
+#%.TS H
+#%center expand;
+#%c l l c
+#%c l l c
+#%lw25 lw6 lw2 lw20.
+#%\fBVariable	Cap-	TCap	Description\fR
+#%\fBString	name	Code\fR
+back_tab			cbt	str	bt	-		-	YBCGE	back tab (P)
+bell				bel	str	bl	-		-	YB-GE	audible signal (bell) (P)
+carriage_return			cr	str	cr	-		-	YBCGE	carriage return (P*) (P*)
+change_scroll_region		csr	str	cs	-		-	YBCGE	change region to line #1 to line #2 (P)
+clear_all_tabs			tbc	str	ct	-		-	YB-G-	clear all tab stops (P)
+clear_screen			clear	str	cl	-		-	YBCGE	clear screen and home cursor (P*)
+clr_eol				el	str	ce	-		-	YBCGE	clear to end of line (P)
+clr_eos				ed	str	cd	-		-	YBCGE	clear to end of screen (P*)
+column_address			hpa	str	ch	-		-	-B-GE*	horizontal position #1, absolute (P)
+command_character		cmdch	str	CC	-		-	YB-G-	terminal settable cmd character in prototype !?
+cursor_address			cup	str	cm	-		-	YBCGE	move to row #1 columns #2
+cursor_down			cud1	str	do	-		-	YBCGE	down one line
+cursor_home			home	str	ho	-		-	YBCGE	home cursor (if no cup)
+cursor_invisible		civis	str	vi	-		-	YB-G-	make cursor invisible
+cursor_left			cub1	str	le	-		-	YBCGE	move left one space
+cursor_mem_address		mrcup	str	CM	-		-	YB-G-	memory relative cursor addressing, 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
+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
+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
+#
+# NCurses extensions for keys accessible on most PC consoles
+#
+key_sup				kUP	str	!5	KEY_SUP		+	-----	shifted up-arrow key
+key_sdown			kDOWN	str	!6	KEY_SDOWN	+	-----	shifted down-arrow key
+key_sbackspace			kBS	str	!7	KEY_SBACKSPACE	+	-----	shifted backspace key
+key_c_delete			kcdelete str	!8	KEY_C_DELETE	+	-----	control- delete-character key
+key_c_end			kcend	str	!9	KEY_C_END	+	-----	control- end key
+key_c_home			kchom	str	!0	KEY_C_HOME	+	-----	control- home key
+key_c_insert			kcinsert str	!_	KEY_C_INSERT	+	-----	control- insert-character key
+key_c_left			kclft	str	%k	KEY_C_LEFT	+	-----	control- left-arrow key
+key_c_next			kcnxt	str	%l	KEY_C_NEXT	+	-----	control- next key
+key_c_previous			kcprv	str	%m	KEY_C_PREVIOUS	+	-----	control- previous key
+key_c_print			kcprt	str	%n	KEY_C_PRINT	+	-----	control- print key
+key_c_right			kcrit	str	%o	KEY_C_RIGHT	+	-----	control- right-arrow key
+key_c_backspace			kcbs	str	%p	KEY_C_BACKSPACE	+	-----	control- backspace key
+key_c_up			kcup	str	%q	KEY_C_UP	+	-----	control- up-arrow key
+key_c_down			kcdown	str	%r	KEY_C_DOWN	+	-----	control- down-arrow key
+key_a_delete			kadelete str	%s	KEY_A_DELETE	+	-----	alt- delete-character key
+key_a_end			kaend	str	%t	KEY_A_END	+	-----	alt- end key
+key_a_home			kahom	str	%u	KEY_A_HOME	+	-----	alt- home key
+key_a_insert			kainsert str	%v	KEY_A_INSERT	+	-----	alt- insert-character key
+key_a_left			kalft	str	%w	KEY_A_LEFT	+	-----	alt- left-arrow key
+key_a_next			kanxt	str	%x	KEY_A_NEXT	+	-----	alt- next key
+key_a_previous			kaprv	str	%y	KEY_A_PREVIOUS	+	-----	alt- previous key
+key_a_print			kaprt	str	%z	KEY_A_PRINT	+	-----	alt- print key
+key_a_right			karit	str	%!	KEY_A_RIGHT	+	-----	alt- right-arrow key
+key_a_backspace			kabs	str	%@	KEY_A_BACKSPACE	+	-----	alt- backspace key
+key_a_up			kaup	str	%#	KEY_A_UP	+	-----	alt- up-arrow key
+key_a_down			kadown	str	%$	KEY_A_DOWN	+	-----	alt- down-arrow key
+key_a_a				kaa	str	$a	KEY_A_A		+	-----	alt- a key
+key_a_b				kab	str	$b	KEY_A_B		+	-----	alt- b key
+key_a_c				kac	str	$c	KEY_A_C		+	-----	alt- c key
+key_a_d				kad	str	$d	KEY_A_D		+	-----	alt- d key
+key_a_e				kae	str	$e	KEY_A_E		+	-----	alt- e key
+key_a_f				kaf	str	$f	KEY_A_F		+	-----	alt- f key
+key_a_g				kag	str	$g	KEY_A_G		+	-----	alt- g key
+key_a_h				kah	str	$h	KEY_A_H		+	-----	alt- h key
+key_a_i				kai	str	$i	KEY_A_I		+	-----	alt- i key
+key_a_j				kaj	str	$j	KEY_A_J		+	-----	alt- j key
+key_a_k				kak	str	$k	KEY_A_K		+	-----	alt- k key
+key_a_l				kal	str	$l	KEY_A_L		+	-----	alt- l key
+key_a_m				kam	str	$m	KEY_A_M		+	-----	alt- m key
+key_a_n				kan	str	$n	KEY_A_N		+	-----	alt- n key
+key_a_o				kao	str	$o	KEY_A_O		+	-----	alt- o key
+key_a_p				kap	str	$p	KEY_A_P		+	-----	alt- p key
+key_a_q				kaq	str	$q	KEY_A_Q		+	-----	alt- q key
+key_a_r				kar	str	$r	KEY_A_R		+	-----	alt- r key
+key_a_s				kas	str	$s	KEY_A_S		+	-----	alt- s key
+key_a_t				kat	str	$t	KEY_A_T		+	-----	alt- t key
+key_a_u				kau	str	$u	KEY_A_U		+	-----	alt- u key
+key_a_v				kav	str	$v	KEY_A_V		+	-----	alt- v key
+key_a_w				kaw	str	$w	KEY_A_W		+	-----	alt- w key
+key_a_x				kax	str	$x	KEY_A_X		+	-----	alt- x key
+key_a_y				kay	str	$y	KEY_A_Y		+	-----	alt- y key
+key_a_z				kaz	str	$z	KEY_A_Z		+	-----	alt- z key
+key_a_0				ka_0	str	$0	KEY_A_0		+	-----	alt- 0 key
+key_a_1				ka_1	str	$1	KEY_A_1		+	-----	alt- 1 key
+key_a_2				ka_2	str	$2	KEY_A_2		+	-----	alt- 2 key
+key_a_3				ka_3	str	$3	KEY_A_3		+	-----	alt- 3 key
+key_a_4				ka_4	str	$4	KEY_A_4		+	-----	alt- 4 key
+key_a_5				ka_5	str	$5	KEY_A_5		+	-----	alt- 5 key
+key_a_6				ka_6	str	$6	KEY_A_6		+	-----	alt- 6 key
+key_a_7				ka_7	str	$7	KEY_A_7		+	-----	alt- 7 key
+key_a_8				ka_8	str	$8	KEY_A_8		+	-----	alt- 8 key
+key_a_9				ka_9	str	$9	KEY_A_9		+	-----	alt- 9 key
+key_a_backtick			ka_bt	str	$`	KEY_A_BACKTICK	+	-----	alt- ` key
+key_a_under			ka_und	str	$_	KEY_A_UNDER	+	-----	alt- _ key
+key_a_equals			ka_eq	str	$=	KEY_A_EQUALS	+	-----	alt- = key
+key_a_bar			ka_bsl	str	$|	KEY_A_BAR	+	-----	alt- | key
+key_a_lbracker			ka_lbr	str	$[	KEY_A_LBRACKER	+	-----	alt- [ key
+key_a_rbracker			ka_rbr	str	$]	KEY_A_RBRACKER	+	-----	alt- ] key
+key_a_semi			ka_semi str	$;	KEY_A_SEMI	+	-----	alt- ; key
+key_a_tick			ka_tick str	$'	KEY_A_TICK	+	-----	alt- ' key
+key_a_comma			ka_com	str	$,	KEY_A_COMMA	+	-----	alt- , key
+key_a_dot			ka_dot	str	$.	KEY_A_DOT	+	-----	alt- . key
+key_a_question			ka_sla	str	$?	KEY_A_QUESTION	+	-----	alt- ? key
+key_a_divide			ka_div	str	$/	KEY_A_DIVIDE	+	-----	alt- keypad / key
+key_a_multiply			ka_mul	str	$*	KEY_A_MULTIPLY	+	-----	alt- keypad * key
+key_a_add			ka_add	str	$+	KEY_A_ADD	+	-----	alt- keypad + key
+key_a_subtract			ka_sub	str	$-	KEY_A_SUBTRACT	+	-----	alt- keypad - key
+key_a_kenter			ka_kent str	$<	KEY_A_KENTER	+	-----	alt- keypad enter key
+key_a_enter			ka_ent	str	$>	KEY_A_ENTER	+	-----	alt- enter key
+key_c_at			kcat	str	%%	KEY_C_AT	+	-----	control- @ key
+key_c_divide			kcdiv	str	%/	KEY_C_DIVIDE	+	-----	control- keypad / key
+key_c_multiply			kcmul	str	%*	KEY_C_MULTIPLY	+	-----	control- keypad * key
+key_c_add			kcadd	str	%+	KEY_C_ADD	+	-----	control- keypad + key
+key_c_subtract			kcsub	str	%-	KEY_C_SUBTRACT	+	-----	control- keypad - key
+#
+# 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 to #1
+change_line_pitch		lpi	str	ZB	-		-	-----	Change number of lines per inch to #1
+change_res_horz			chr	str	ZC	-		-	-----	Change horizontal resolution to #1
+change_res_vert			cvr	str	ZD	-		-	-----	Change vertical resolution to #1
+define_char			defc	str	ZE	-		-	-----	Define a character #1, #2 dots wide, descender #3
+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 #1 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, #1
+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 (if smgtp is not given) #2 lines from bottom
+set_left_margin_parm		smglp	str	Zm	-		-	-----	Set left (right) margin at column #1
+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
+start_bit_image			sbim	str	Zq	-		-	-----	Start printing bit image graphics
+start_char_set_def		scsd	str	Zr	-		-	-----	Start character set definition #1, with #2 characters in the set
+stop_bit_image			rbim	str	Zs	-		-	-----	Stop printing bit image graphics
+stop_char_set_def		rcsd	str	Zt	-		-	-----	End definition of character set #1
+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	-		-	-----	Produce #1'th item from list of character set names
+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.
+set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
+set_a_background		setab	str	AB	-		-	-----	Set background color to #1, 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 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
+set_lr_margin			smglr	str	ML	-		-	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+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 #1
+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	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#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
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11			kf11	str	k<	-		-	-----	function key 11
+#key_f12			kf12	str	k>	-		-	-----	function key 12
+# 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:
diff --git a/include/Caps.osf1r5 b/include/Caps.osf1r5
new file mode 100644
index 0000000..d9ea564
--- /dev/null
+++ b/include/Caps.osf1r5
@@ -0,0 +1,1274 @@
+##############################################################################
+# Copyright (c) 2002,2006 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.osf1r5,v 1.4 2006/05/27 15:33:04 tom Exp $
+#
+# This is an adaptation of ncurses' termcap/terminfo capability table, which
+# is designed to align with OSF/1 version 5 (Tru64) 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 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
+back_color_erase		bce	bool	ut	-	-	-----	screen erased with background color
+can_change			ccc	bool	cc	-	-	-----	terminal can re-define existing colors
+col_addr_glitch			xhpa	bool	YA	-	-	-----	only positive motion for hpa/mhpa caps
+cpi_changes_res			cpix	bool	YF	-	-	-----	changing character pitch changes resolution
+cr_cancels_micro_mode		crxm	bool	YB	-	-	-----	using cr turns off micro mode
+hard_cursor			chts	bool	HC	-	-	-----	cursor is hard to see
+has_print_wheel			daisy	bool	YC	-	-	-----	printer needs operator to change character set
+hue_lightness_saturation	hls	bool	hl	-	-	-----	terminal uses only HLS color notation (Tektronix)
+lpi_changes_res			lpix	bool	YG	-	-	-----	changing line pitch changes resolution
+needs_xon_xoff			nxon	bool	nx	-	-	-----	padding will not work, xon/xoff required
+non_dest_scroll_region		ndscr	bool	ND	-	-	-----	scrolling region is non-destructive
+non_rev_rmcup			nrrmc	bool	NR	-	-	-----	smcup does not reverse rmcup
+no_pad_char			npc	bool	NP	-	-	-----	pad character does not exist
+prtr_silent			mc5i	bool	5i	-	-	-----	printer will not echo on screen
+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
+#%.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
+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
+buffer_capacity			bufsz	num	Ya	-	-	-----	numbers of bytes buffered before printing
+buttons				btns	num	BT	-	-	-----	number of buttons on mouse
+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
+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
+max_colors			colors	num	Co	-	-	-----	maximum number of colors on screen
+max_micro_address		maddr	num	Yd	-	-	-----	maximum value in micro_..._address
+max_micro_jump			mjump	num	Ye	-	-	-----	maximum value in parm_..._micro
+max_pairs			pairs	num	pa	-	-	-----	maximum number of color-pairs on the screen
+maximum_windows			wnum	num	MW	-	-	-----	maximum number of defineable windows
+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
+no_color_video			ncv	num	NC	-	-	-----	video attributes that can not be used with colors
+number_of_pins			npins	num	Yh	-	-	-----	numbers of pins in print-head
+num_labels			nlab	num	Nl	-	-	-----	number of labels on screen
+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
+#%.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, 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.
+#
+# OSF1 differences start here, based on IBM version:
+#
+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	kc	KEY_COMMAND	0545	-----	command key
+key_command_pane		kcpn	str	kW	-		-	----K	command-pane key
+key_end				kend	str	@7	KEY_END		0550	-----	end key
+key_help			khlp	str	%1	KEY_HELP	0553	-----	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			kslt	str	*6	KEY_SELECT	0601	-----	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 are described in
+# the Tru64 manual pages.
+key_smap_in6			kmpf6	str	Kr	-		-	----K	special mapped key 6 input
+key_smap_out6			kmpt6	str	KR	-		-	----K	special mapped key 6 output
+key_smap_in7			kmpf7	str	Ks	-		-	----K	special mapped key 7 input
+key_smap_out7			kmpt7	str	KS	-		-	----K	special mapped key 7 output
+key_smap_in8			kmpf8	str	Kt	-		-	----K	special mapped key 8 input
+key_smap_out8			kmpt8	str	KT	-		-	----K	special mapped key 8 output
+key_smap_in9			kmpf9	str	Ku	-		-	----K	special mapped key 9 input
+key_smap_out9			kmpt9	str	KU	-		-	----K	special mapped key 9 output
+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	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_action			kact	str	kJ	KEY_ACTION	0541	----K	sent by action key
+acs_chars			acsc	str	ac	-		-	-----	graphics charset pairs, based on vt100
+alt_scancode_esc		scesa	str	S8	-		-	-----	Alternate escape for scancode emulation
+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
+change_char_pitch		cpi	str	ZA	-		-	-----	Change number of characters per inch to #1
+change_line_pitch		lpi	str	ZB	-		-	-----	Change number of lines per inch to #1
+change_res_horz			chr	str	ZC	-		-	-----	Change horizontal resolution to #1
+change_res_vert			cvr	str	ZD	-		-	-----	Change vertical resolution to #1
+char_padding			rmp	str	rP	-		-	-----	like ip but when in insert mode
+char_set_names			csnm	str	Zy	-		-	-----	Produce #1'th item from list of character set names
+clear_margins			mgc	str	MC	-		-	-----	clear right and left soft margins
+clr_bol				el1	str	cb	-		-	-----	Clear to beginning of line
+code_set_init			csin	str	ci	-		-	-----	Init sequence for multiple codesets
+color_names			colornm	str	Yw	-		-	-----	Give name for color #1
+create_window			cwin	str	CW	-		-	-----	define a window #1 from #2,#3 to #4,#5
+define_bit_image_region		defbi	str	Yx	-		-	-----	Define rectangualar bit image region
+define_char			defc	str	ZE	-		-	-----	Define a character #1, #2 dots wide, descender #3
+device_type			devt	str	dv	-		-	-----	Indicate language/codeset support
+dial_phone			dial	str	DI	-		-	-----	dial number #1
+display_clock			dclk	str	DK	-		-	-----	display clock
+display_pc_char			dispc	str	S1	-		-	-----	Display PC character #1
+ena_acs				enacs	str	eA	-		-	-----	enable alternate char set
+end_bit_image_region		endbi	str	Yy	-		-	-----	End a bit-image region
+enter_am_mode			smam	str	SA	-		-	-----	turn on automatic margins
+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_pc_charset_mode		smpch	str	S2	-		-	-----	Enter PC character display mode
+enter_scancode_mode		smsc	str	S4	-		-	-----	Enter PC scancode 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
+enter_xon_mode			smxon	str	SX	-		-	-----	turn on xon/xoff handshaking
+exit_am_mode			rmam	str	RA	-		-	-----	turn off automatic margins
+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_pc_charset_mode		rmpch	str	S3	-		-	-----	Exit PC character display mode
+exit_scancode_mode		rmsc	str	S5	-		-	-----	Exit PC scancode 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
+exit_xon_mode			rmxon	str	RX	-		-	-----	turn off xon/xoff handshaking
+fixed_pause			pause	str	PA	-		-	-----	pause for 2-3 seconds
+flash_hook			hook	str	fh	-		-	-----	flash switch hook
+get_mouse			getm	str	Gm	-		-	-----	Curses should get button events, parameter #1 not documented.
+goto_window			wingo	str	WG	-		-	-----	go to window #1
+hangup				hup	str	HU	-		-	-----	hang-up phone
+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)
+key_beg				kbeg	str	@1	KEY_BEG		0542	-----	begin key
+key_btab			kcbt	str	kB	KEY_BTAB	0632	-----	back-tab key
+key_cancel			kcan	str	@2	KEY_CANCEL	0543	-----	cancel key
+key_close			kclo	str	@3	KEY_CLOSE	0544	-----	close key
+key_copy			kcpy	str	@5	KEY_COPY	0546	-----	copy key
+key_create			kcrt	str	@6	KEY_CREATE	0547	-----	create key
+key_enter			kent	str	@8	KEY_ENTER	0527	-----	enter/send key
+key_exit			kext	str	@9	KEY_EXIT	0551	-----	exit 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
+key_find			kfnd	str	@0	KEY_FIND	0552	-----	find key
+key_mark			kmrk	str	%2	KEY_MARK	0554	-----	mark key
+key_message			kmsg	str	%3	KEY_MESSAGE	0555	-----	message key
+key_mouse			kmous	str	Km	KEY_MOUSE	0631	-----	Mouse event has occurred
+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_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_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
+key_suspend			kspd	str	&7	KEY_SUSPEND	0627	-----	suspend key
+key_undo			kund	str	&8	KEY_UNDO	0630	-----	undo key
+label_format			fln	str	Lf	-		-	-----	label format
+label_off			rmln	str	LF	-		-	-----	turn off soft labels
+label_on			smln	str	LO	-		-	-----	turn on soft labels
+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 #1 in micro mode
+micro_up			mcuu1	str	Zd	-		-	-----	Like cursor_up in micro mode
+mouse_info			minfo	str	Mi	-		-	-----	Mouse status information
+order_of_pins			porder	str	Ze	-		-	-----	Match software bits to print-head pins
+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
+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
+pc_term_options			pctrm	str	S6	-		-	-----	PC terminal options
+pkey_plab			pfxl	str	xl	-		-	-----	Program function key #1 to type string #2 and show string #3
+plab_norm			pln	str	pn	-		-	-----	program label #1 to show string #2
+pulse				pulse	str	PU	-		-	-----	select pulse dialing
+quick_dial			qdial	str	QD	-		-	-----	dial number #1 without checking
+req_for_input			rfi	str	RF	-		-	-----	send next input char (for ptys)
+req_mouse_pos			reqmp	str	RQ	-		-	-----	Request mouse position
+remove_clock			rmclk	str	RC	-		-	-----	remove clock
+scancode_escape			scesc	str	S7	-		-	-----	Escape for scancode emulation
+select_char_set			scs	str	Zj	-		-	-----	Select character set, #1
+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
+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_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 (if smgtp is not given) #2 lines from bottom
+set_clock			sclk	str	SC	-		-	-----	set clock, #1 hrs #2 mins #3 secs
+set_color_band		setcolor	str	Yz	-		-	-----	Change to ribbon color #1
+set_color_pair			scp	str	sp	-		-	-----	Set current color pair to #1
+set_foreground			setf	str	Sf	-		-	-----	Set foreground color #1
+set_left_margin			smgl	str	ML	-		-	-----	set left soft margin at current column.	 See smgl. (ML is not in BSD termcap).
+set_left_margin_parm		smglp	str	Zm	-		-	-----	Set left (right) margin at column #1
+set_lr_margin			smglr	str	ML	-		-	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
+set_page_length			slines	str	YZ	-		-	-----	Set page length to #1 lines
+set_right_margin		smgr	str	MR	-		-	-----	set right soft margin at current column
+set_right_margin_parm		smgrp	str	Zn	-		-	-----	Set right margin at column #1
+set_tb_margin			smgtb	str	MT	-		-	-----	Sets both top and bottom margins to #1, #2
+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
+start_bit_image			sbim	str	Zq	-		-	-----	Start printing bit image graphics
+start_char_set_def		scsd	str	Zr	-		-	-----	Start character set definition #1, with #2 characters in the set
+stop_bit_image			rbim	str	Zs	-		-	-----	Stop printing bit image graphics
+stop_char_set_def		rcsd	str	Zt	-		-	-----	End definition of character set #1
+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
+tone				tone	str	TO	-		-	-----	select touch tone dialing
+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
+wait_tone			wait	str	WA	-		-	-----	wait for dial-tone
+xoff_character			xoffc	str	XF	-		-	-----	XOFF character
+xon_character			xonc	str	XN	-		-	-----	XON character
+zero_motion			zerom	str	Zx	-		-	-----	No motion for subsequent character
+set_pglen_inch			slength	str	sL	-		-	-----	YI Set page length to #1 hundredth of an inch
+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
+#
+#
+#
+# %%-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	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#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
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11			kf11	str	k<	-		-	-----	function key 11
+#key_f12			kf12	str	k>	-		-	-----	function key 12
+# 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:
diff --git a/include/Caps.uwin b/include/Caps.uwin
new file mode 100644
index 0000000..450eaeb
--- /dev/null
+++ b/include/Caps.uwin
@@ -0,0 +1,1090 @@
+##############################################################################
+# Copyright (c) 2001-2002,2006 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.4 2006/05/27 15:33:04 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 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 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	lock memory above cursor
+memory_unlock			memu	str	mu	-		-	----K	unlock memory
+#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
+# AIX version 3 documents different codes for F11, F12 and does not mention
+# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
+#key_f11			kf11	str	k<	-		-	-----	function key 11
+#key_f12			kf12	str	k>	-		-	-----	function key 12
+# 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:
diff --git a/include/MKhashsize.sh b/include/MKhashsize.sh
new file mode 100755
index 0000000..11b3111
--- /dev/null
+++ b/include/MKhashsize.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+##############################################################################
+# Copyright (c) 1998,2006 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.                                                             #
+##############################################################################
+# $Id: MKhashsize.sh,v 1.7 2006/10/22 00:45:39 tom Exp $
+#
+# MKhashsize.sh --- generate size include for hash functions
+#
+echo "/*"
+echo " * hashsize.h -- hash and token table constants"
+echo " */"
+
+CAPS="${1-Caps}"
+TABSIZE=`grep -v '^[ #]' $CAPS | grep -v "^$" | grep -v "^capalias"| grep -v "^infoalias" | wc -l`
+
+echo ""
+echo "#define CAPTABSIZE	${TABSIZE}"
+echo "#define HASHTABSIZE	(${TABSIZE} * 2)"
diff --git a/include/MKkey_defs.sh b/include/MKkey_defs.sh
new file mode 100755
index 0000000..b3cb4f7
--- /dev/null
+++ b/include/MKkey_defs.sh
@@ -0,0 +1,182 @@
+#! /bin/sh
+# $Id: MKkey_defs.sh,v 1.14 2003/12/06 17:10:09 tom Exp $
+##############################################################################
+# Copyright (c) 2001-2002,2003 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.                                                             #
+##############################################################################
+#
+# MKkey_defs.sh -- generate function-key definitions for curses.h
+#
+# Author: Thomas E. Dickey 2001
+#
+# Extract function-key definitions from the Caps file
+#
+: ${AWK-awk}
+DATA=${1-Caps}
+
+data=data$$
+pass1=pass1_$$
+pass2=pass2_$$
+pass3=pass3_$$
+pass4=pass4_$$
+trap 'rm -f $data pass[1234]_$$' 0 1 2 5 15
+
+# change repeated tabs (used for readability) to single tabs (needed to make
+# awk see the right field alignment of the corresponding columns):
+if sort -k 6 $DATA >$data 2>/dev/null
+then
+	# POSIX
+	sed -e 's/[	][	]*/	/g' < $DATA |sort -n -k 6 >$data
+elif sort -n +5 $DATA >$data 2>/dev/null
+then
+	# SunOS (and SVr4, marked as obsolete but still recognized)
+	sed -e 's/[	][	]*/	/g' < $DATA |sort -n +5 >$data
+else
+	echo "Your sort utility is broken.  Please install one that works." >&2
+	exit 1
+fi
+
+# add keys that we generate automatically:
+cat >>$data <<EOF
+key_resize	kr1	str	R1	KEY_RESIZE	+	-----	Terminal resize event
+key_event	kv1	str	V1	KEY_EVENT	+	-----	We were interrupted by an event
+EOF
+
+cat <<EOF
+/*
+ * These definitions were generated by $0 $DATA
+ */
+EOF
+
+# KEY_RESET
+maxkey=345
+
+for pass in 1 2 3 4
+do
+
+output=pass${pass}_$$
+
+${AWK-awk} >$output <$data '
+function print_cols(text,cols) {
+	printf "%s", text
+	len = length(text);
+	while (len < cols) {
+		printf "	"
+		len += 8;
+	}
+}
+function decode(keycode) {
+	result = 0;
+	if (substr(keycode, 1, 2) == "0x") {
+		digits="0123456789abcdef";
+	} else if (substr(keycode, 1, 1) == "0") {
+		digits="01234567";
+	} else {
+		digits="0123456789";
+	}
+	while (length(keycode) != 0) {
+		digit=substr(keycode, 1, 1);
+		keycode=substr(keycode, 2);
+		result = result * length(digits) + index(digits, digit) - 1;
+	}
+	return result;
+}
+
+BEGIN	{
+	maxkey='$maxkey';
+	pass='$pass';
+	key_max=1;
+	bits=1;
+	while (key_max < maxkey) {
+		bits = bits + 1;
+		key_max = (key_max * 2) + 1;
+	}
+	octal_fmt = sprintf ("%%0%do", (bits + 2) / 3 + 1);
+}
+
+/^$/		{next;}
+/^#/		{next;}
+/^capalias/	{next;}
+/^infoalias/	{next;}
+
+$5 != "-" && $6 != "-" {
+		if ($6 == "+") {
+			if (pass == 1 || pass == 2)
+				next;
+			thiskey=maxkey + 1;
+		} else {
+			if (pass == 3)
+				next;
+			thiskey=decode($6);
+		}
+		if (thiskey > maxkey)
+			maxkey = thiskey;
+		if (pass == 2 || pass == 3) {
+			showkey=sprintf(octal_fmt, thiskey);
+			if ($5 == "KEY_F(0)" ) {
+				printf "#define "
+				print_cols("KEY_F0", 16);
+				print_cols(showkey, 16);
+				print "/* Function keys.  Space for 64 */";
+				printf "#define "
+				print_cols("KEY_F(n)", 16);
+				print_cols("(KEY_F0+(n))", 16);
+				print "/* Value of function key n */"
+			} else {
+				printf "#define "
+				print_cols($5, 16);
+				print_cols(showkey, 16);
+				printf "/*"
+				for (i = 8; i <= NF; i++)
+					printf " %s", $i
+				print " */"
+			}
+		}
+	}
+END	{
+		if (pass == 1) {
+			print maxkey;
+		} else if (pass == 4) {
+			print "";
+			printf "#define ";
+			print_cols("KEY_MAX", 16);
+			result = sprintf (octal_fmt, key_max);
+			print_cols(result, 16);
+			printf "/* Maximum key value is ";
+			printf octal_fmt, maxkey;
+			print " */";
+		}
+	}
+'
+if test $pass = 1 ; then
+	maxkey=`cat $pass1`
+fi
+
+done
+
+cat $pass2
+cat $pass3
+cat $pass4
diff --git a/include/MKncurses_def.sh b/include/MKncurses_def.sh
new file mode 100755
index 0000000..4aac865
--- /dev/null
+++ b/include/MKncurses_def.sh
@@ -0,0 +1,80 @@
+#! /bin/sh
+# $Id: MKncurses_def.sh,v 1.2 2003/10/25 16:19:46 tom Exp $
+##############################################################################
+# Copyright (c) 2000 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.                                                             #
+##############################################################################
+#
+# MKncurses_def.sh -- generate fallback definitions for ncurses_cfg.h
+#
+# Author: Thomas E. Dickey 2000
+#
+# Given the choice between constructs such as
+#
+#	#if defined(foo) && foo
+#	#if foo
+#
+# we chose the latter.  It is guaranteed by the language standard, and there
+# appear to be no broken compilers that do not honor that detail.  But some
+# people want to use gcc's -Wundef option (corresponding to one of the less
+# useful features in Watcom's compiler) to check for misspellings.  So we
+# generate a set of fallback definitions to quiet the warnings without making
+# the code ugly.
+#
+DEFS="${1-ncurses_defs}"
+cat <<EOF
+/*
+ * This file is generated by $0
+ */
+
+#ifndef NC_DEFINE_H
+#define NC_DEFINE_H 1
+
+EOF
+
+${AWK-awk} <$DEFS '
+!/^[@#]/ {
+	if ( NF == 1 )
+	{
+		print "#ifndef", $1
+		print "#define", $1, "0"
+		print "#endif"
+		print ""
+	} else if ( NF != 0 ) {
+		print "#ifndef", $1
+		printf "#define"
+		for (n = 1; n <= NF; n++) {
+			printf " %s", $n
+		}
+		print ""
+		print "#endif"
+		print ""
+	}
+}
+END	{
+print "#endif /* NC_DEFINE_H */"
+	}
+'
diff --git a/include/MKparametrized.sh b/include/MKparametrized.sh
new file mode 100755
index 0000000..2825c82
--- /dev/null
+++ b/include/MKparametrized.sh
@@ -0,0 +1,62 @@
+#!/bin/sh
+##############################################################################
+# Copyright (c) 1998-2000,2006 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.                                                             #
+##############################################################################
+# $Id: MKparametrized.sh,v 1.6 2006/04/22 21:36:16 tom Exp $
+#
+# MKparametrized.sh -- generate indirection vectors for various sort methods
+#
+# The output of this script is C source for an array specifying whether
+# termcap strings should undergo parameter and padding translation.
+#
+CAPS="${1-Caps}"
+cat <<EOF
+/*
+ * parametrized.h --- is a termcap capability parametrized?
+ *
+ * Note: this file is generated using MKparametrized.sh, do not edit by hand.
+ * A value of -1 in the table means suppress both pad and % translations.
+ * A value of 0 in the table means do pad but not % translations.
+ * A value of 1 in the table means do both pad and % translations.
+ */
+
+static short const parametrized[] = {
+EOF
+
+# We detect whether % translations should be done by looking for #[0-9] in the
+# description field.  We presently suppress padding translation only for the
+# XENIX acs_* capabilities.  Maybe someday we'll dedicate a flag field for
+# this, that would be cleaner....
+
+${AWK-awk} <$CAPS '
+$3 != "str"	{next;}
+$1 ~ /^acs_/	{print "-1,\t/* ", $2, " */"; count++; next;}
+$0 ~ /#[0-9]/	{print "1,\t/* ", $2, " */"; count++; next;}
+		{print "0,\t/* ", $2, " */"; count++;}
+END		{printf("} /* %d entries */;\n\n", count);}
+'
+
diff --git a/include/MKterm.h.awk.in b/include/MKterm.h.awk.in
new file mode 100644
index 0000000..5fc2052
--- /dev/null
+++ b/include/MKterm.h.awk.in
@@ -0,0 +1,320 @@
+# vile:awkmode
+BEGIN		{
+		    print  "/****************************************************************************"
+		    print  " * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *"
+		    print  " *                                                                          *"
+		    print  " * Permission is hereby granted, free of charge, to any person obtaining a  *"
+		    print  " * copy of this software and associated documentation files (the            *"
+		    print  " * \"Software\"), to deal in the Software without restriction, including      *"
+		    print  " * without limitation the rights to use, copy, modify, merge, publish,      *"
+		    print  " * distribute, distribute with modifications, sublicense, and/or sell       *"
+		    print  " * copies of the Software, and to permit persons to whom the Software is    *"
+		    print  " * furnished to do so, subject to the following conditions:                 *"
+		    print  " *                                                                          *"
+		    print  " * The above copyright notice and this permission notice shall be included  *"
+		    print  " * in all copies or substantial portions of the Software.                   *"
+		    print  " *                                                                          *"
+		    print  " * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *"
+		    print  " * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *"
+		    print  " * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *"
+		    print  " * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *"
+		    print  " * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *"
+		    print  " * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *"
+		    print  " * THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *"
+		    print  " *                                                                          *"
+		    print  " * Except as contained in this notice, the name(s) of the above copyright   *"
+		    print  " * holders shall not be used in advertising or otherwise to promote the     *"
+		    print  " * sale, use or other dealings in this Software without prior written       *"
+		    print  " * authorization.                                                           *"
+		    print  " ****************************************************************************/"
+		    print  ""
+		    print  "/****************************************************************************/"
+		    print  "/* Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995                */"
+		    print  "/*    and: Eric S. Raymond <esr@snark.thyrsus.com>                          */"
+		    print  "/*    and: Thomas E. Dickey                        1995-on                  */"
+		    print  "/****************************************************************************/"
+		    print  ""
+		    print  "/* $Id: MKterm.h.awk.in,v 1.50 2008/05/24 23:13:59 tom Exp $ */"
+		    print  ""
+		    print  "/*"
+		    print  "**	term.h -- Definition of struct term"
+		    print  "*/"
+		    print  ""
+		    print  "#ifndef NCURSES_TERM_H_incl"
+		    print  "#define NCURSES_TERM_H_incl 1"
+		    print  ""
+		    print  "#undef  NCURSES_VERSION"
+		    print  "#define NCURSES_VERSION \"@NCURSES_MAJOR@.@NCURSES_MINOR@\""
+		    print  ""
+		    print  "#include <ncurses_dll.h>"
+		    print  ""
+		    print  "#ifdef __cplusplus"
+		    print  "extern \"C\" {"
+		    print  "#endif"
+		    print  ""
+		    print  "/* Make this file self-contained by providing defaults for the HAVE_TERMIO[S]_H"
+		    print  " * definition (based on the system for which this was configured)."
+		    print  " */"
+		    print  ""
+		    print  "#undef  NCURSES_CONST"
+		    print  "#define NCURSES_CONST @NCURSES_CONST@"
+		    print  ""
+		    print  "#undef  NCURSES_SBOOL"
+		    print  "#define NCURSES_SBOOL @NCURSES_SBOOL@"
+		    print  ""
+		    print  "#undef  NCURSES_XNAMES"
+		    print  "#define NCURSES_XNAMES @NCURSES_XNAMES@"
+		    print  ""
+		    print  "/* We will use these symbols to hide differences between"
+		    print  " * termios/termio/sgttyb interfaces."
+		    print  " */"
+		    print  "#undef  TTY"
+		    print  "#undef  SET_TTY"
+		    print  "#undef  GET_TTY"
+		    print  ""
+		    print  "/* Assume POSIX termio if we have the header and function */"
+		    print  "/* #if HAVE_TERMIOS_H && HAVE_TCGETATTR */"
+		    print  "#if @HAVE_TERMIOS_H@ && @HAVE_TCGETATTR@"
+		    print  ""
+		    print  "#undef  TERMIOS"
+		    print  "#define TERMIOS 1"
+		    print  ""
+		    print  "#include <termios.h>"
+		    print  "#define TTY struct termios"
+		    print  ""
+		    print  "#else /* !HAVE_TERMIOS_H */"
+		    print  ""
+		    print  "/* #if HAVE_TERMIO_H */"
+		    print  "#if @HAVE_TERMIO_H@"
+		    print  ""
+		    print  "#undef  TERMIOS"
+		    print  "#define TERMIOS 1"
+		    print  ""
+		    print  "#include <termio.h>"
+		    print  "#define TTY struct termio"
+		    print  ""
+		    print  "/* Add definitions to make termio look like termios."
+		    print  " * But ifdef it, since there are some implementations"
+		    print  " * that try to do this for us in a fake <termio.h>."
+		    print  " */"
+		    print  "#ifndef TCSANOW"
+		    print  "#define TCSANOW TCSETA"
+		    print  "#endif"
+		    print  "#ifndef TCSADRAIN"
+		    print  "#define TCSADRAIN TCSETAW"
+		    print  "#endif"
+		    print  "#ifndef TCSAFLUSH"
+		    print  "#define TCSAFLUSH TCSETAF"
+		    print  "#endif"
+		    print  "#ifndef tcsetattr"
+		    print  "#define tcsetattr(fd, cmd, arg) ioctl(fd, cmd, arg)"
+		    print  "#endif"
+		    print  "#ifndef tcgetattr"
+		    print  "#define tcgetattr(fd, arg) ioctl(fd, TCGETA, arg)"
+		    print  "#endif"
+		    print  "#ifndef cfgetospeed"
+		    print  "#define cfgetospeed(t) ((t)->c_cflag & CBAUD)"
+		    print  "#endif"
+		    print  "#ifndef TCIFLUSH "
+		    print  "#define TCIFLUSH 0"
+		    print  "#endif"
+		    print  "#ifndef TCOFLUSH "
+		    print  "#define TCOFLUSH 1"
+		    print  "#endif"
+		    print  "#ifndef TCIOFLUSH "
+		    print  "#define TCIOFLUSH 2"
+		    print  "#endif"
+		    print  "#ifndef tcflush"
+		    print  "#define tcflush(fd, arg) ioctl(fd, TCFLSH, arg)"
+		    print  "#endif"
+		    print  ""
+		    print  "#else /* !HAVE_TERMIO_H */"
+		    print  ""
+		    print  "#undef TERMIOS"
+		    print  "#include <sgtty.h>"
+		    print  "#include <sys/ioctl.h>"
+		    print  "#define TTY struct sgttyb"
+		    print  ""
+		    print  "#endif /* HAVE_TERMIO_H */"
+		    print  ""
+		    print  "#endif /* HAVE_TERMIOS_H */"
+		    print  ""
+		    print  "#ifdef TERMIOS"
+		    print  "#define GET_TTY(fd, buf) tcgetattr(fd, buf)"
+		    print  "#define SET_TTY(fd, buf) tcsetattr(fd, TCSADRAIN, buf)"
+		    print  "#else"
+		    print  "#define GET_TTY(fd, buf) gtty(fd, buf)"
+		    print  "#define SET_TTY(fd, buf) stty(fd, buf)"
+		    print  "#endif"
+		    print  ""
+		    print  "#define NAMESIZE 256"
+		    print  ""
+		    print  "#define CUR cur_term->type."
+		    print  ""
+		}
+
+$2 == "%%-STOP-HERE-%%"	{
+			print  ""
+			printf "#define BOOLWRITE %d\n", BoolCount
+			printf "#define NUMWRITE  %d\n", NumberCount
+			printf "#define STRWRITE  %d\n", StringCount
+			print  ""
+			print  "/* older synonyms for some capabilities */"
+			print  "#define beehive_glitch	no_esc_ctlc"
+			print  "#define teleray_glitch	dest_tabs_magic_smso"
+			print  "#define micro_char_size micro_col_size"
+			print  ""
+			print  "#ifdef __INTERNAL_CAPS_VISIBLE"
+		}
+
+/^#/		{next;}
+
+$1 == "acs_chars"	{acsindex = StringCount}
+
+$3 == "bool"	{
+		    printf "#define %-30s CUR Booleans[%d]\n", $1, BoolCount++
+		}
+
+$3 == "num"	{
+		    printf "#define %-30s CUR Numbers[%d]\n", $1, NumberCount++
+		}
+
+$3 == "str"	{
+		    printf "#define %-30s CUR Strings[%d]\n", $1, StringCount++
+		}
+
+END		{
+			print  "#endif /* __INTERNAL_CAPS_VISIBLE */"
+			print  ""
+			print  ""
+			print  "/*"
+			print  " * Predefined terminfo array sizes"
+			print  " */"
+			printf "#define BOOLCOUNT %d\n", BoolCount
+			printf "#define NUMCOUNT  %d\n", NumberCount
+			printf "#define STRCOUNT  %d\n", StringCount
+			print  ""
+			print  "/* used by code for comparing entries */"
+			print  "#define acs_chars_index	", acsindex
+			print  ""
+			print  "typedef struct termtype {	/* in-core form of terminfo data */"
+			print  "    char  *term_names;		/* str_table offset of term names */"
+			print  "    char  *str_table;		/* pointer to string table */"
+			print  "    NCURSES_SBOOL  *Booleans;	/* array of boolean values */"
+			print  "    short *Numbers;		/* array of integer values */"
+			print  "    char  **Strings;		/* array of string offsets */"
+			print  ""
+			print  "#if NCURSES_XNAMES"
+			print  "    char  *ext_str_table;	/* pointer to extended string table */"
+			print  "    char  **ext_Names;		/* corresponding names */"
+			print  ""
+			print  "    unsigned short num_Booleans;/* count total Booleans */"
+			print  "    unsigned short num_Numbers;	/* count total Numbers */"
+			print  "    unsigned short num_Strings;	/* count total Strings */"
+			print  ""
+			print  "    unsigned short ext_Booleans;/* count extensions to Booleans */"
+			print  "    unsigned short ext_Numbers;	/* count extensions to Numbers */"
+			print  "    unsigned short ext_Strings;	/* count extensions to Strings */"
+			print  "#endif /* NCURSES_XNAMES */"
+			print  ""
+			print  "} TERMTYPE;"
+			print  ""
+			print  "typedef struct term {		/* describe an actual terminal */"
+			print  "    TERMTYPE	type;		/* terminal type description */"
+			print  "    short	Filedes;	/* file description being written to */"
+			print  "    TTY		Ottyb,		/* original state of the terminal */"
+			print  "		Nttyb;		/* current state of the terminal */"
+			print  "    int		_baudrate;	/* used to compute padding */"
+			print  "    char *      _termname;      /* used for termname() */"
+			print  "} TERMINAL;"
+			print  ""
+			print  "#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@"
+			print  "NCURSES_WRAPPED_VAR(TERMINAL *, cur_term);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, boolfnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, numfnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strnames);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strcodes);"
+			print  "NCURSES_WRAPPED_VAR(NCURSES_CONST char * const *, strfnames);"
+			print  ""
+			print  "#define cur_term   NCURSES_PUBLIC_VAR(cur_term())"
+			print  "#define boolnames  NCURSES_PUBLIC_VAR(boolnames())"
+			print  "#define boolcodes  NCURSES_PUBLIC_VAR(boolcodes())"
+			print  "#define boolfnames NCURSES_PUBLIC_VAR(boolfnames())"
+			print  "#define numnames   NCURSES_PUBLIC_VAR(numnames())"
+			print  "#define numcodes   NCURSES_PUBLIC_VAR(numcodes())"
+			print  "#define numfnames  NCURSES_PUBLIC_VAR(numfnames())"
+			print  "#define strnames   NCURSES_PUBLIC_VAR(strnames())"
+			print  "#define strcodes   NCURSES_PUBLIC_VAR(strcodes())"
+			print  "#define strfnames  NCURSES_PUBLIC_VAR(strfnames())"
+			print  ""
+			print  "#else"
+			print  ""
+			print  "extern NCURSES_EXPORT_VAR(TERMINAL *) cur_term;"
+			print  ""
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolnames[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolcodes[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) boolfnames[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numnames[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numcodes[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) numfnames[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strnames[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strcodes[];"
+			print  "extern NCURSES_EXPORT_VAR(NCURSES_CONST char * const ) strfnames[];"
+			print  ""
+			print  "#endif"
+			print  ""
+			print  "/* internals */"
+			print  "extern NCURSES_EXPORT(int) _nc_set_tty_mode (TTY *buf);"
+			print  "extern NCURSES_EXPORT(int) _nc_get_tty_mode (TTY *buf);"
+			print  "extern NCURSES_EXPORT(int) _nc_read_entry (const char * const, char * const, TERMTYPE *const);"
+			print  "extern NCURSES_EXPORT(int) _nc_read_file_entry (const char *const, TERMTYPE *);"
+			print  "extern NCURSES_EXPORT(int) _nc_read_termtype (TERMTYPE *, char *, int);"
+			print  "extern NCURSES_EXPORT(char *) _nc_first_name (const char *const);"
+			print  "extern NCURSES_EXPORT(int) _nc_name_match (const char *const, const char *const, const char *const);"
+			print  "extern NCURSES_EXPORT(const TERMTYPE *) _nc_fallback (const char *);"
+			print  ""
+			print  "/* entry points */"
+			print  "extern NCURSES_EXPORT(TERMINAL *) set_curterm (TERMINAL *);"
+			print  "extern NCURSES_EXPORT(int) del_curterm (TERMINAL *);"
+			print  ""
+			print  "/* miscellaneous entry points */"
+			print  "extern NCURSES_EXPORT(int) restartterm (NCURSES_CONST char *, int, int *);"
+			print  "extern NCURSES_EXPORT(int) setupterm (NCURSES_CONST char *,int,int *);"
+			print  ""
+			print  "/* terminfo entry points, also declared in curses.h */"
+			print  "#if !defined(__NCURSES_H)"
+			print  "extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT_VAR(char) ttytype[];"
+			print  "extern NCURSES_EXPORT(int) putp (const char *);"
+			print  "extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);"
+			print  ""
+			print  "#if @NCURSES_TPARM_VARARGS@ /* NCURSES_TPARM_VARARGS */"
+			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */"
+			print  "#else"
+			print  "extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */"
+			print  "extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */"
+			print  "#endif"
+			print  ""
+			print  "#endif /* __NCURSES_H */"
+			print  ""
+			print  "/* termcap database emulation (XPG4 uses const only for 2nd param of tgetent) */"
+			print  "#if !defined(NCURSES_TERMCAP_H_incl)"
+			print  "extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);"
+			print  "extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);"
+			print  "extern NCURSES_EXPORT(int) tgetent (char *, const char *);"
+			print  "extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);"
+			print  "extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));"
+			print  "#endif /* NCURSES_TERMCAP_H_incl */"
+			print  ""
+			print  "#ifdef __cplusplus"
+			print  "}"
+			print  "#endif"
+			print  ""
+			print  "#endif /* NCURSES_TERM_H_incl */"
+		}
diff --git a/include/Makefile.in b/include/Makefile.in
new file mode 100644
index 0000000..1a48a17
--- /dev/null
+++ b/include/Makefile.in
@@ -0,0 +1,126 @@
+# $Id: Makefile.in,v 1.35 2001/12/08 18:50:06 tom Exp $
+##############################################################################
+# Copyright (c) 1998,2000,2001 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 E. Dickey 1996-2001
+#
+# Makefile for ncurses source code.
+#
+# This makes/installs ncurses include-files
+#
+# The variable 'srcdir' refers to the source-distribution, and can be set with
+# the configure script by "--srcdir=DIR".
+
+# turn off _all_ suffix rules; we'll generate our own
+.SUFFIXES:
+
+SHELL		= /bin/sh
+THIS		= Makefile
+
+DESTDIR		= @DESTDIR@
+srcdir		= @srcdir@
+prefix		= @prefix@
+exec_prefix	= @exec_prefix@
+includedir	= @includedir@
+
+INSTALL		= @INSTALL@
+INSTALL_DATA	= @INSTALL_DATA@
+
+AWK		= @AWK@
+LN_S		= @LN_S@
+
+VERSION		= @cf_cv_rel_version@
+
+# The "Caps" file specifies the terminfo database format, as well as the list
+# of function keys.
+TERMINFO_CAPS	= $(srcdir)/@TERMINFO_CAPS@
+
+# These files are generated by the configure script
+CONFIG_SRC = \
+	MKterm.h.awk \
+	curses.head \
+	termcap.h \
+	unctrl.h
+
+# These files are generated by this makefile
+AUTO_SRC = \
+	curses.h \
+	hashsize.h \
+	ncurses_def.h \
+	parametrized.h \
+	term.h
+
+################################################################################
+all \
+libs \
+depend \
+sources \
+install ::	$(AUTO_SRC)
+
+curses.h : $(TERMINFO_CAPS) \
+		curses.head \
+		$(srcdir)/curses.tail \
+		$(srcdir)/MKkey_defs.sh
+	cat curses.head >$@
+	AWK=$(AWK) sh $(srcdir)/MKkey_defs.sh $(TERMINFO_CAPS) >>$@
+	sh -c 'if test "@NCURSES_CH_T@" = "cchar_t" ; then cat $(srcdir)/curses.wide >>$@ ; fi'
+	cat $(srcdir)/curses.tail >>$@
+
+term.h: $(TERMINFO_CAPS) MKterm.h.awk
+	$(AWK) -f MKterm.h.awk $(TERMINFO_CAPS) > $@
+	sh $(srcdir)/edit_cfg.sh ../include/ncurses_cfg.h $@
+
+hashsize.h: $(TERMINFO_CAPS) $(srcdir)/MKhashsize.sh
+	sh $(srcdir)/MKhashsize.sh $(TERMINFO_CAPS) >$@
+
+ncurses_def.h: $(srcdir)/ncurses_defs $(srcdir)/MKncurses_def.sh
+	AWK=$(AWK) sh $(srcdir)/MKncurses_def.sh $(srcdir)/ncurses_defs >$@
+
+parametrized.h: $(TERMINFO_CAPS) $(srcdir)/MKparametrized.sh
+	AWK=$(AWK) sh $(srcdir)/MKparametrized.sh $(TERMINFO_CAPS) >$@
+
+tags:
+	ctags *.[ch]
+
+@MAKE_UPPER_TAGS@TAGS:
+@MAKE_UPPER_TAGS@	etags *.[ch]
+
+mostlyclean ::
+	-rm -f core tags TAGS *~ *.bak *.i *.ln *.atac trace
+
+clean :: mostlyclean
+	-rm -f $(AUTO_SRC)
+
+distclean :: clean
+	-rm -f Makefile $(CONFIG_SRC)
+
+realclean :: distclean
+
+###############################################################################
+# The remainder of this file is automatically generated during configuration
+###############################################################################
diff --git a/include/capdefaults.c b/include/capdefaults.c
new file mode 100644
index 0000000..33f2fe8
--- /dev/null
+++ b/include/capdefaults.c
@@ -0,0 +1,86 @@
+/****************************************************************************
+ * Copyright (c) 1998-2000,2008 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>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ ****************************************************************************/
+
+/* $Id: capdefaults.c,v 1.13 2008/08/04 12:33:42 tom Exp $ */
+
+    /*
+     * Compute obsolete capabilities.  The reason this is an include file is
+     * that the two places where it's needed want the macros to generate
+     * offsets to different structures.  See the file Caps for explanations of
+     * these conversions.
+     *
+     * Note:  This code is the functional inverse of the first part of
+     * postprocess_termcap().
+     */
+{
+    char *sp;
+    short capval;
+
+#define EXTRACT_DELAY(str) \
+    	(short) (sp = strchr(str, '*'), sp ? atoi(sp+1) : 0)
+
+    /* current (4.4BSD) capabilities marked obsolete */
+    if (VALID_STRING(carriage_return)
+	&& (capval = EXTRACT_DELAY(carriage_return)))
+	carriage_return_delay = capval;
+    if (VALID_STRING(newline) && (capval = EXTRACT_DELAY(newline)))
+	new_line_delay = capval;
+
+    /* current (4.4BSD) capabilities not obsolete */
+    if (!VALID_STRING(termcap_init2) && VALID_STRING(init_3string)) {
+	termcap_init2 = init_3string;
+	init_3string = ABSENT_STRING;
+    }
+    if (!VALID_STRING(termcap_reset)
+     && VALID_STRING(reset_2string)
+     && !VALID_STRING(reset_1string)
+     && !VALID_STRING(reset_3string)) {
+	termcap_reset = reset_2string;
+	reset_2string = ABSENT_STRING;
+    }
+    if (magic_cookie_glitch_ul == ABSENT_NUMERIC
+	&& magic_cookie_glitch != ABSENT_NUMERIC
+	&& VALID_STRING(enter_underline_mode))
+	magic_cookie_glitch_ul = magic_cookie_glitch;
+
+    /* totally obsolete capabilities */
+    linefeed_is_newline = (char) (VALID_STRING(newline)
+				  && (strcmp("\n", newline) == 0));
+    if (VALID_STRING(cursor_left)
+	&& (capval = EXTRACT_DELAY(cursor_left)))
+	backspace_delay = capval;
+    if (VALID_STRING(tab) && (capval = EXTRACT_DELAY(tab)))
+	horizontal_tab_delay = capval;
+#undef EXTRACT_DELAY
+}
diff --git a/include/curses.h.in b/include/curses.h.in
new file mode 100644
index 0000000..53da9a5
--- /dev/null
+++ b/include/curses.h.in
@@ -0,0 +1,1231 @@
+/****************************************************************************
+ * Copyright (c) 1998-2007,2008 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>                         *
+ *     and: Thomas E. Dickey                        1996-on                 *
+ ****************************************************************************/
+
+/* $Id: curses.h.in,v 1.187 2008/08/30 20:11:29 tom Exp $ */
+
+#ifndef __NCURSES_H
+#define __NCURSES_H
+
+#define CURSES 1
+#define CURSES_H 1
+
+/* This should be defined for the enhanced functionality to be visible.
+ * However, some of the wide-character (enhanced) functionality is missing.
+ * So we do not define it (yet).
+#define _XOPEN_CURSES 1
+ */
+
+/* These are defined only in curses.h, and are used for conditional compiles */
+#define NCURSES_VERSION_MAJOR @NCURSES_MAJOR@
+#define NCURSES_VERSION_MINOR @NCURSES_MINOR@
+#define NCURSES_VERSION_PATCH @NCURSES_PATCH@
+
+/* This is defined in more than one ncurses header, for identification */
+#undef  NCURSES_VERSION
+#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
+
+/*
+ * Identify the mouse encoding version.
+ */
+#define NCURSES_MOUSE_VERSION @NCURSES_MOUSE_VERSION@
+
+/*
+ * Definitions to facilitate DLL's.
+ */
+#include <ncurses_dll.h>
+
+/*
+ * User-definable tweak to disable the include of <stdbool.h>.
+ */
+#ifndef NCURSES_ENABLE_STDBOOL_H
+#define NCURSES_ENABLE_STDBOOL_H @cf_cv_header_stdbool_h@
+#endif
+
+/*
+ * NCURSES_ATTR_T is used to quiet compiler warnings when building ncurses
+ * configured using --disable-macros.
+ */
+#ifdef NCURSES_NOMACROS
+#ifndef NCURSES_ATTR_T
+#define NCURSES_ATTR_T attr_t
+#endif
+#endif /* NCURSES_NOMACROS */
+
+#ifndef NCURSES_ATTR_T
+#define NCURSES_ATTR_T int
+#endif
+
+/*
+ * Expands to 'const' if ncurses is configured using --enable-const.  Note that
+ * doing so makes it incompatible with other implementations of X/Open Curses.
+ */
+#undef  NCURSES_CONST
+#define NCURSES_CONST @NCURSES_CONST@
+
+#undef NCURSES_INLINE
+#define NCURSES_INLINE @NCURSES_INLINE@
+
+/*
+ * The internal type used for color values
+ */
+#undef	NCURSES_COLOR_T
+#define	NCURSES_COLOR_T short
+
+/*
+ * Definition used to make WINDOW and similar structs opaque.
+ */
+#ifndef @cf_cv_enable_opaque@
+#define NCURSES_OPAQUE @NCURSES_OPAQUE@
+#endif
+
+/*
+ * The internal type used for window dimensions.
+ */
+#undef	NCURSES_SIZE_T
+#define	NCURSES_SIZE_T @NCURSES_SIZE_T@
+
+/*
+ * Control whether tparm() supports varargs or fixed-parameter list.
+ */
+#undef NCURSES_TPARM_VARARGS
+#define NCURSES_TPARM_VARARGS @NCURSES_TPARM_VARARGS@
+
+/*
+ * NCURSES_CH_T is used in building the library, but not used otherwise in
+ * this header file, since that would make the normal/wide-character versions
+ * of the header incompatible.
+ */
+#undef	NCURSES_CH_T
+#define NCURSES_CH_T @NCURSES_CH_T@
+
+#if @cf_cv_enable_lp64@ && defined(_LP64)
+typedef unsigned chtype;
+typedef unsigned mmask_t;
+#else
+typedef unsigned @cf_cv_typeof_chtype@ chtype;
+typedef unsigned @cf_cv_typeof_mmask_t@ mmask_t;
+#endif
+
+#include <stdio.h>
+#include <unctrl.h>
+#include <stdarg.h>	/* we need va_list */
+#ifdef _XOPEN_SOURCE_EXTENDED
+#include <stddef.h>	/* we want wchar_t */
+#endif /* _XOPEN_SOURCE_EXTENDED */
+
+/* X/Open and SVr4 specify that curses implements 'bool'.  However, C++ may also
+ * implement it.  If so, we must use the C++ compiler's type to avoid conflict
+ * with other interfaces.
+ *
+ * A further complication is that <stdbool.h> may declare 'bool' to be a
+ * different type, such as an enum which is not necessarily compatible with
+ * C++.  If we have <stdbool.h>, make 'bool' a macro, so users may #undef it.
+ * Otherwise, let it remain a typedef to avoid conflicts with other #define's.
+ * In either case, make a typedef for NCURSES_BOOL which can be used if needed
+ * from either C or C++.
+ */
+
+#undef TRUE
+#define TRUE    1
+
+#undef FALSE
+#define FALSE   0
+
+typedef @cf_cv_type_of_bool@ NCURSES_BOOL;
+
+#if @USE_CXX_BOOL@	/* __cplusplus, etc. */
+
+/* use the C++ compiler's bool type */
+#define NCURSES_BOOL bool
+
+#else			/* c89, c99, etc. */
+
+#if NCURSES_ENABLE_STDBOOL_H
+#include <stdbool.h>
+/* use whatever the C compiler decides bool really is */
+#define NCURSES_BOOL bool
+#else
+/* there is no predefined bool - use our own */
+#undef bool
+#define bool NCURSES_BOOL
+#endif
+
+#endif /* !__cplusplus, etc. */
+
+#ifdef __cplusplus
+extern "C" {
+#define NCURSES_CAST(type,value) static_cast<type>(value)
+#else
+#define NCURSES_CAST(type,value) (type)(value)
+#endif
+
+/*
+ * X/Open attributes.  In the ncurses implementation, they are identical to the
+ * A_ attributes.
+ */
+#define WA_ATTRIBUTES	A_ATTRIBUTES
+#define WA_NORMAL	A_NORMAL
+#define WA_STANDOUT	A_STANDOUT
+#define WA_UNDERLINE	A_UNDERLINE
+#define WA_REVERSE	A_REVERSE
+#define WA_BLINK	A_BLINK
+#define WA_DIM		A_DIM
+#define WA_BOLD		A_BOLD
+#define WA_ALTCHARSET	A_ALTCHARSET
+#define WA_INVIS	A_INVIS
+#define WA_PROTECT	A_PROTECT
+#define WA_HORIZONTAL	A_HORIZONTAL
+#define WA_LEFT		A_LEFT
+#define WA_LOW		A_LOW
+#define WA_RIGHT	A_RIGHT
+#define WA_TOP		A_TOP
+#define WA_VERTICAL	A_VERTICAL
+
+/* colors */
+#define COLOR_BLACK	0
+#define COLOR_RED	1
+#define COLOR_GREEN	2
+#define COLOR_YELLOW	3
+#define COLOR_BLUE	4
+#define COLOR_MAGENTA	5
+#define COLOR_CYAN	6
+#define COLOR_WHITE	7
+
+/* line graphics */
+
+#if @BROKEN_LINKER@ || @cf_cv_enable_reentrant@
+NCURSES_WRAPPED_VAR(chtype*, acs_map);
+#define acs_map (_nc_acs_map())
+#else
+extern NCURSES_EXPORT_VAR(chtype) acs_map[];
+#endif
+
+#define NCURSES_ACS(c)	(acs_map[NCURSES_CAST(unsigned char,c)])
+
+/* VT100 symbols begin here */
+#define ACS_ULCORNER	NCURSES_ACS('l') /* upper left corner */
+#define ACS_LLCORNER	NCURSES_ACS('m') /* lower left corner */
+#define ACS_URCORNER	NCURSES_ACS('k') /* upper right corner */
+#define ACS_LRCORNER	NCURSES_ACS('j') /* lower right corner */
+#define ACS_LTEE	NCURSES_ACS('t') /* tee pointing right */
+#define ACS_RTEE	NCURSES_ACS('u') /* tee pointing left */
+#define ACS_BTEE	NCURSES_ACS('v') /* tee pointing up */
+#define ACS_TTEE	NCURSES_ACS('w') /* tee pointing down */
+#define ACS_HLINE	NCURSES_ACS('q') /* horizontal line */
+#define ACS_VLINE	NCURSES_ACS('x') /* vertical line */
+#define ACS_PLUS	NCURSES_ACS('n') /* large plus or crossover */
+#define ACS_S1		NCURSES_ACS('o') /* scan line 1 */
+#define ACS_S9		NCURSES_ACS('s') /* scan line 9 */
+#define ACS_DIAMOND	NCURSES_ACS('`') /* diamond */
+#define ACS_CKBOARD	NCURSES_ACS('a') /* checker board (stipple) */
+#define ACS_DEGREE	NCURSES_ACS('f') /* degree symbol */
+#define ACS_PLMINUS	NCURSES_ACS('g') /* plus/minus */
+#define ACS_BULLET	NCURSES_ACS('~') /* bullet */
+/* Teletype 5410v1 symbols begin here */
+#define ACS_LARROW	NCURSES_ACS(',') /* arrow pointing left */
+#define ACS_RARROW	NCURSES_ACS('+') /* arrow pointing right */
+#define ACS_DARROW	NCURSES_ACS('.') /* arrow pointing down */
+#define ACS_UARROW	NCURSES_ACS('-') /* arrow pointing up */
+#define ACS_BOARD	NCURSES_ACS('h') /* board of squares */
+#define ACS_LANTERN	NCURSES_ACS('i') /* lantern symbol */
+#define ACS_BLOCK	NCURSES_ACS('0') /* solid square block */
+/*
+ * These aren't documented, but a lot of System Vs have them anyway
+ * (you can spot pprryyzz{{||}} in a lot of AT&T terminfo strings).
+ * The ACS_names may not match AT&T's, our source didn't know them.
+ */
+#define ACS_S3		NCURSES_ACS('p') /* scan line 3 */
+#define ACS_S7		NCURSES_ACS('r') /* scan line 7 */
+#define ACS_LEQUAL	NCURSES_ACS('y') /* less/equal */
+#define ACS_GEQUAL	NCURSES_ACS('z') /* greater/equal */
+#define ACS_PI		NCURSES_ACS('{') /* Pi */
+#define ACS_NEQUAL	NCURSES_ACS('|') /* not equal */
+#define ACS_STERLING	NCURSES_ACS('}') /* UK pound sign */
+
+/*
+ * Line drawing ACS names are of the form ACS_trbl, where t is the top, r
+ * is the right, b is the bottom, and l is the left.  t, r, b, and l might
+ * be B (blank), S (single), D (double), or T (thick).  The subset defined
+ * here only uses B and S.
+ */
+#define ACS_BSSB	ACS_ULCORNER
+#define ACS_SSBB	ACS_LLCORNER
+#define ACS_BBSS	ACS_URCORNER
+#define ACS_SBBS	ACS_LRCORNER
+#define ACS_SBSS	ACS_RTEE
+#define ACS_SSSB	ACS_LTEE
+#define ACS_SSBS	ACS_BTEE
+#define ACS_BSSS	ACS_TTEE
+#define ACS_BSBS	ACS_HLINE
+#define ACS_SBSB	ACS_VLINE
+#define ACS_SSSS	ACS_PLUS
+
+#undef	ERR
+#define ERR     (-1)
+
+#undef	OK
+#define OK      (0)
+
+/* values for the _flags member */
+#define _SUBWIN         0x01	/* is this a sub-window? */
+#define _ENDLINE        0x02	/* is the window flush right? */
+#define _FULLWIN        0x04	/* is the window full-screen? */
+#define _SCROLLWIN      0x08	/* bottom edge is at screen bottom? */
+#define _ISPAD	        0x10	/* is this window a pad? */
+#define _HASMOVED       0x20	/* has cursor moved since last refresh? */
+#define _WRAPPED        0x40	/* cursor was just wrappped */
+
+/*
+ * this value is used in the firstchar and lastchar fields to mark
+ * unchanged lines
+ */
+#define _NOCHANGE       -1
+
+/*
+ * this value is used in the oldindex field to mark lines created by insertions
+ * and scrolls.
+ */
+#define _NEWINDEX	-1
+
+typedef struct screen  SCREEN;
+typedef struct _win_st WINDOW;
+
+typedef	chtype	attr_t;		/* ...must be at least as wide as chtype */
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+
+#if @NCURSES_LIBUTF8@
+#ifdef mblen			/* libutf8.h defines it w/o undefining first */
+#undef mblen
+#endif
+#include <libutf8.h>
+#endif
+
+#if @NEED_WCHAR_H@
+#include <wchar.h>		/* ...to get mbstate_t, etc. */
+#endif
+
+#if @NCURSES_WCHAR_T@
+typedef unsigned short wchar_t@NCURSES_OK_WCHAR_T@;
+#endif
+
+#if @NCURSES_WINT_T@
+typedef unsigned int wint_t@NCURSES_OK_WCHAR_T@;
+#endif
+
+#define CCHARW_MAX	5
+typedef struct
+{
+    attr_t	attr;
+    wchar_t	chars[CCHARW_MAX];
+#if @NCURSES_EXT_COLORS@
+#undef NCURSES_EXT_COLORS
+#define NCURSES_EXT_COLORS @NCURSES_PATCH@
+    int		ext_color;	/* color pair, must be more than 16-bits */
+#endif
+}
+cchar_t;
+
+#endif /* _XOPEN_SOURCE_EXTENDED */
+
+#if !NCURSES_OPAQUE
+struct ldat;
+
+struct _win_st
+{
+	NCURSES_SIZE_T _cury, _curx; /* current cursor position */
+
+	/* window location and size */
+	NCURSES_SIZE_T _maxy, _maxx; /* maximums of x and y, NOT window size */
+	NCURSES_SIZE_T _begy, _begx; /* screen coords of upper-left-hand corner */
+
+	short   _flags;		/* window state flags */
+
+	/* attribute tracking */
+	attr_t  _attrs;		/* current attribute for non-space character */
+	chtype  _bkgd;		/* current background char/attribute pair */
+
+	/* option values set by user */
+	bool	_notimeout;	/* no time out on function-key entry? */
+	bool	_clear;		/* consider all data in the window invalid? */
+	bool	_leaveok;	/* OK to not reset cursor on exit? */
+	bool	_scroll;	/* OK to scroll this window? */
+	bool	_idlok;		/* OK to use insert/delete line? */
+	bool	_idcok;		/* OK to use insert/delete char? */
+	bool	_immed;		/* window in immed mode? (not yet used) */
+	bool	_sync;		/* window in sync mode? */
+	bool	_use_keypad;	/* process function keys into KEY_ symbols? */
+	int	_delay;		/* 0 = nodelay, <0 = blocking, >0 = delay */
+
+	struct ldat *_line;	/* the actual line data */
+
+	/* global screen state */
+	NCURSES_SIZE_T _regtop;	/* top line of scrolling region */
+	NCURSES_SIZE_T _regbottom; /* bottom line of scrolling region */
+
+	/* these are used only if this is a sub-window */
+	int	_parx;		/* x coordinate of this window in parent */
+	int	_pary;		/* y coordinate of this window in parent */
+	WINDOW	*_parent;	/* pointer to parent if a sub-window */
+
+	/* these are used only if this is a pad */
+	struct pdat
+	{
+	    NCURSES_SIZE_T _pad_y,      _pad_x;
+	    NCURSES_SIZE_T _pad_top,    _pad_left;
+	    NCURSES_SIZE_T _pad_bottom, _pad_right;
+	} _pad;
+
+	NCURSES_SIZE_T _yoffset; /* real begy is _begy + _yoffset */
+
+#ifdef _XOPEN_SOURCE_EXTENDED
+	cchar_t  _bkgrnd;	/* current background char/attribute pair */
+#if @NCURSES_EXT_COLORS@
+	int	_color;		/* current color-pair for non-space character */
+#endif
+#endif
+};
+#endif /* NCURSES_OPAQUE */
+
+/*
+ * This is an extension to support events...
+ */
+#if @NCURSES_EXT_FUNCS@
+#ifdef NCURSES_WGETCH_EVENTS
+#if !defined(__BEOS__) || defined(__HAIKU__)
+   /* Fix _nc_timed_wait() on BEOS... */
+#  define NCURSES_EVENT_VERSION	1
+#endif	/* !defined(__BEOS__) */
+
+/*
+ * Bits to set in _nc_event.data.flags
+ */
+#  define _NC_EVENT_TIMEOUT_MSEC	1
+#  define _NC_EVENT_FILE		2
+#  define _NC_EVENT_FILE_READABLE	2
+#  if 0					/* Not supported yet... */
+#    define _NC_EVENT_FILE_WRITABLE	4
+#    define _NC_EVENT_FILE_EXCEPTION	8
+#  endif
+
+typedef struct
+{
+    int type;
+    union
+    {
+	long timeout_msec;	/* _NC_EVENT_TIMEOUT_MSEC */
+	struct
+	{
+	    unsigned int flags;
+	    int fd;
+	    unsigned int result;
+	} fev;				/* _NC_EVENT_FILE */
+    } data;
+} _nc_event;
+
+typedef struct
+{
+    int count;
+    int result_flags;	/* _NC_EVENT_TIMEOUT_MSEC or _NC_EVENT_FILE_READABLE */
+    _nc_event *events[1];
+} _nc_eventlist;
+
+extern NCURSES_EXPORT(int) wgetch_events(WINDOW *, _nc_eventlist *);	/* experimental */
+extern NCURSES_EXPORT(int) wgetnstr_events(WINDOW *,char *,int,_nc_eventlist *);/* experimental */
+
+#endif /* NCURSES_WGETCH_EVENTS */
+#endif /* NCURSES_EXT_FUNCS */
+
+/*
+ * GCC (and some other compilers) define '__attribute__'; we're using this
+ * macro to alert the compiler to flag inconsistencies in printf/scanf-like
+ * function calls.  Just in case '__attribute__' isn't defined, make a dummy.
+ * Old versions of G++ do not accept it anyway, at least not consistently with
+ * GCC.
+ */
+#if !(defined(__GNUC__) || defined(__GNUG__) || defined(__attribute__))
+#define __attribute__(p) /* nothing */
+#endif
+
+/*
+ * We cannot define these in ncurses_cfg.h, since they require parameters to be
+ * passed (that is non-portable).  If you happen to be using gcc with warnings
+ * enabled, define
+ *	GCC_PRINTF
+ *	GCC_SCANF
+ * to improve checking of calls to printw(), etc.
+ */
+#ifndef GCC_PRINTFLIKE
+#if defined(GCC_PRINTF) && !defined(printf)
+#define GCC_PRINTFLIKE(fmt,var) __attribute__((format(printf,fmt,var)))
+#else
+#define GCC_PRINTFLIKE(fmt,var) /*nothing*/
+#endif
+#endif
+
+#ifndef GCC_SCANFLIKE
+#if defined(GCC_SCANF) && !defined(scanf)
+#define GCC_SCANFLIKE(fmt,var)  __attribute__((format(scanf,fmt,var)))
+#else
+#define GCC_SCANFLIKE(fmt,var)  /*nothing*/
+#endif
+#endif
+
+#ifndef	GCC_NORETURN
+#define	GCC_NORETURN /* nothing */
+#endif
+
+#ifndef	GCC_UNUSED
+#define	GCC_UNUSED /* nothing */
+#endif
+
+/*
+ * Function prototypes.  This is the complete X/Open Curses list of required
+ * functions.  Those marked `generated' will have sources generated from the
+ * macro definitions later in this file, in order to satisfy XPG4.2
+ * requirements.
+ */
+
+extern NCURSES_EXPORT(int) addch (const chtype);			/* generated */
+extern NCURSES_EXPORT(int) addchnstr (const chtype *, int);		/* generated */
+extern NCURSES_EXPORT(int) addchstr (const chtype *);			/* generated */
+extern NCURSES_EXPORT(int) addnstr (const char *, int);			/* generated */
+extern NCURSES_EXPORT(int) addstr (const char *);			/* generated */
+extern NCURSES_EXPORT(int) attroff (NCURSES_ATTR_T);			/* generated */
+extern NCURSES_EXPORT(int) attron (NCURSES_ATTR_T);			/* generated */
+extern NCURSES_EXPORT(int) attrset (NCURSES_ATTR_T);			/* generated */
+extern NCURSES_EXPORT(int) attr_get (attr_t *, short *, void *);	/* generated */
+extern NCURSES_EXPORT(int) attr_off (attr_t, void *);			/* generated */
+extern NCURSES_EXPORT(int) attr_on (attr_t, void *);			/* generated */
+extern NCURSES_EXPORT(int) attr_set (attr_t, short, void *);		/* generated */
+extern NCURSES_EXPORT(int) baudrate (void);				/* implemented */
+extern NCURSES_EXPORT(int) beep  (void);				/* implemented */
+extern NCURSES_EXPORT(int) bkgd (chtype);				/* generated */
+extern NCURSES_EXPORT(void) bkgdset (chtype);				/* generated */
+extern NCURSES_EXPORT(int) border (chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);	/* generated */
+extern NCURSES_EXPORT(int) box (WINDOW *, chtype, chtype);		/* generated */
+extern NCURSES_EXPORT(bool) can_change_color (void);			/* implemented */
+extern NCURSES_EXPORT(int) cbreak (void);				/* implemented */
+extern NCURSES_EXPORT(int) chgat (int, attr_t, short, const void *);	/* generated */
+extern NCURSES_EXPORT(int) clear (void);				/* generated */
+extern NCURSES_EXPORT(int) clearok (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(int) clrtobot (void);				/* generated */
+extern NCURSES_EXPORT(int) clrtoeol (void);				/* generated */
+extern NCURSES_EXPORT(int) color_content (short,short*,short*,short*);	/* implemented */
+extern NCURSES_EXPORT(int) color_set (short,void*);			/* generated */
+extern NCURSES_EXPORT(int) COLOR_PAIR (int);				/* generated */
+extern NCURSES_EXPORT(int) copywin (const WINDOW*,WINDOW*,int,int,int,int,int,int,int);	/* implemented */
+extern NCURSES_EXPORT(int) curs_set (int);				/* implemented */
+extern NCURSES_EXPORT(int) def_prog_mode (void);			/* implemented */
+extern NCURSES_EXPORT(int) def_shell_mode (void);			/* implemented */
+extern NCURSES_EXPORT(int) delay_output (int);				/* implemented */
+extern NCURSES_EXPORT(int) delch (void);				/* generated */
+extern NCURSES_EXPORT(void) delscreen (SCREEN *);			/* implemented */
+extern NCURSES_EXPORT(int) delwin (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) deleteln (void);				/* generated */
+extern NCURSES_EXPORT(WINDOW *) derwin (WINDOW *,int,int,int,int);	/* implemented */
+extern NCURSES_EXPORT(int) doupdate (void);				/* implemented */
+extern NCURSES_EXPORT(WINDOW *) dupwin (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(int) echo (void);					/* implemented */
+extern NCURSES_EXPORT(int) echochar (const chtype);			/* generated */
+extern NCURSES_EXPORT(int) erase (void);				/* generated */
+extern NCURSES_EXPORT(int) endwin (void);				/* implemented */
+extern NCURSES_EXPORT(char) erasechar (void);				/* implemented */
+extern NCURSES_EXPORT(void) filter (void);				/* implemented */
+extern NCURSES_EXPORT(int) flash (void);				/* implemented */
+extern NCURSES_EXPORT(int) flushinp (void);				/* implemented */
+extern NCURSES_EXPORT(chtype) getbkgd (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getch (void);				/* generated */
+extern NCURSES_EXPORT(int) getnstr (char *, int);			/* generated */
+extern NCURSES_EXPORT(int) getstr (char *);				/* generated */
+extern NCURSES_EXPORT(WINDOW *) getwin (FILE *);			/* implemented */
+extern NCURSES_EXPORT(int) halfdelay (int);				/* implemented */
+extern NCURSES_EXPORT(bool) has_colors (void);				/* implemented */
+extern NCURSES_EXPORT(bool) has_ic (void);				/* implemented */
+extern NCURSES_EXPORT(bool) has_il (void);				/* implemented */
+extern NCURSES_EXPORT(int) hline (chtype, int);				/* generated */
+extern NCURSES_EXPORT(void) idcok (WINDOW *, bool);			/* implemented */
+extern NCURSES_EXPORT(int) idlok (WINDOW *, bool);			/* implemented */
+extern NCURSES_EXPORT(void) immedok (WINDOW *, bool);			/* implemented */
+extern NCURSES_EXPORT(chtype) inch (void);				/* generated */
+extern NCURSES_EXPORT(int) inchnstr (chtype *, int);			/* generated */
+extern NCURSES_EXPORT(int) inchstr (chtype *);				/* generated */
+extern NCURSES_EXPORT(WINDOW *) initscr (void);				/* implemented */
+extern NCURSES_EXPORT(int) init_color (short,short,short,short);	/* implemented */
+extern NCURSES_EXPORT(int) init_pair (short,short,short);		/* implemented */
+extern NCURSES_EXPORT(int) innstr (char *, int);			/* generated */
+extern NCURSES_EXPORT(int) insch (chtype);				/* generated */
+extern NCURSES_EXPORT(int) insdelln (int);				/* generated */
+extern NCURSES_EXPORT(int) insertln (void);				/* generated */
+extern NCURSES_EXPORT(int) insnstr (const char *, int);			/* generated */
+extern NCURSES_EXPORT(int) insstr (const char *);			/* generated */
+extern NCURSES_EXPORT(int) instr (char *);				/* generated */
+extern NCURSES_EXPORT(int) intrflush (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(bool) isendwin (void);				/* implemented */
+extern NCURSES_EXPORT(bool) is_linetouched (WINDOW *,int);		/* implemented */
+extern NCURSES_EXPORT(bool) is_wintouched (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(NCURSES_CONST char *) keyname (int);		/* implemented */
+extern NCURSES_EXPORT(int) keypad (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(char) killchar (void);				/* implemented */
+extern NCURSES_EXPORT(int) leaveok (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(char *) longname (void);				/* implemented */
+extern NCURSES_EXPORT(int) meta (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(int) move (int, int);				/* generated */
+extern NCURSES_EXPORT(int) mvaddch (int, int, const chtype);		/* generated */
+extern NCURSES_EXPORT(int) mvaddchnstr (int, int, const chtype *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvaddchstr (int, int, const chtype *);	/* generated */
+extern NCURSES_EXPORT(int) mvaddnstr (int, int, const char *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvaddstr (int, int, const char *);		/* generated */
+extern NCURSES_EXPORT(int) mvchgat (int, int, int, attr_t, short, const void *);	/* generated */
+extern NCURSES_EXPORT(int) mvcur (int,int,int,int);			/* implemented */
+extern NCURSES_EXPORT(int) mvdelch (int, int);				/* generated */
+extern NCURSES_EXPORT(int) mvderwin (WINDOW *, int, int);		/* implemented */
+extern NCURSES_EXPORT(int) mvgetch (int, int);				/* generated */
+extern NCURSES_EXPORT(int) mvgetnstr (int, int, char *, int);		/* generated */
+extern NCURSES_EXPORT(int) mvgetstr (int, int, char *);			/* generated */
+extern NCURSES_EXPORT(int) mvhline (int, int, chtype, int);		/* generated */
+extern NCURSES_EXPORT(chtype) mvinch (int, int);			/* generated */
+extern NCURSES_EXPORT(int) mvinchnstr (int, int, chtype *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvinchstr (int, int, chtype *);		/* generated */
+extern NCURSES_EXPORT(int) mvinnstr (int, int, char *, int);		/* generated */
+extern NCURSES_EXPORT(int) mvinsch (int, int, chtype);			/* generated */
+extern NCURSES_EXPORT(int) mvinsnstr (int, int, const char *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvinsstr (int, int, const char *);		/* generated */
+extern NCURSES_EXPORT(int) mvinstr (int, int, char *);			/* generated */
+extern NCURSES_EXPORT(int) mvprintw (int,int, const char *,...)		/* implemented */
+		GCC_PRINTFLIKE(3,4);
+extern NCURSES_EXPORT(int) mvscanw (int,int, NCURSES_CONST char *,...)	/* implemented */
+		GCC_SCANFLIKE(3,4);
+extern NCURSES_EXPORT(int) mvvline (int, int, chtype, int);		/* generated */
+extern NCURSES_EXPORT(int) mvwaddch (WINDOW *, int, int, const chtype);	/* generated */
+extern NCURSES_EXPORT(int) mvwaddchnstr (WINDOW *, int, int, const chtype *, int);/* generated */
+extern NCURSES_EXPORT(int) mvwaddchstr (WINDOW *, int, int, const chtype *);	/* generated */
+extern NCURSES_EXPORT(int) mvwaddnstr (WINDOW *, int, int, const char *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvwaddstr (WINDOW *, int, int, const char *);	/* generated */
+extern NCURSES_EXPORT(int) mvwchgat (WINDOW *, int, int, int, attr_t, short, const void *);/* generated */
+extern NCURSES_EXPORT(int) mvwdelch (WINDOW *, int, int);		/* generated */
+extern NCURSES_EXPORT(int) mvwgetch (WINDOW *, int, int);		/* generated */
+extern NCURSES_EXPORT(int) mvwgetnstr (WINDOW *, int, int, char *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvwgetstr (WINDOW *, int, int, char *);	/* generated */
+extern NCURSES_EXPORT(int) mvwhline (WINDOW *, int, int, chtype, int);	/* generated */
+extern NCURSES_EXPORT(int) mvwin (WINDOW *,int,int);			/* implemented */
+extern NCURSES_EXPORT(chtype) mvwinch (WINDOW *, int, int);			/* generated */
+extern NCURSES_EXPORT(int) mvwinchnstr (WINDOW *, int, int, chtype *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvwinchstr (WINDOW *, int, int, chtype *);		/* generated */
+extern NCURSES_EXPORT(int) mvwinnstr (WINDOW *, int, int, char *, int);		/* generated */
+extern NCURSES_EXPORT(int) mvwinsch (WINDOW *, int, int, chtype);		/* generated */
+extern NCURSES_EXPORT(int) mvwinsnstr (WINDOW *, int, int, const char *, int);	/* generated */
+extern NCURSES_EXPORT(int) mvwinsstr (WINDOW *, int, int, const char *);		/* generated */
+extern NCURSES_EXPORT(int) mvwinstr (WINDOW *, int, int, char *);		/* generated */
+extern NCURSES_EXPORT(int) mvwprintw (WINDOW*,int,int, const char *,...)	/* implemented */
+		GCC_PRINTFLIKE(4,5);
+extern NCURSES_EXPORT(int) mvwscanw (WINDOW *,int,int, NCURSES_CONST char *,...)	/* implemented */
+		GCC_SCANFLIKE(4,5);
+extern NCURSES_EXPORT(int) mvwvline (WINDOW *,int, int, chtype, int);	/* generated */
+extern NCURSES_EXPORT(int) napms (int);					/* implemented */
+extern NCURSES_EXPORT(WINDOW *) newpad (int,int);				/* implemented */
+extern NCURSES_EXPORT(SCREEN *) newterm (NCURSES_CONST char *,FILE *,FILE *);	/* implemented */
+extern NCURSES_EXPORT(WINDOW *) newwin (int,int,int,int);			/* implemented */
+extern NCURSES_EXPORT(int) nl (void);					/* implemented */
+extern NCURSES_EXPORT(int) nocbreak (void);				/* implemented */
+extern NCURSES_EXPORT(int) nodelay (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(int) noecho (void);				/* implemented */
+extern NCURSES_EXPORT(int) nonl (void);					/* implemented */
+extern NCURSES_EXPORT(void) noqiflush (void);				/* implemented */
+extern NCURSES_EXPORT(int) noraw (void);				/* implemented */
+extern NCURSES_EXPORT(int) notimeout (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(int) overlay (const WINDOW*,WINDOW *);		/* implemented */
+extern NCURSES_EXPORT(int) overwrite (const WINDOW*,WINDOW *);		/* implemented */
+extern NCURSES_EXPORT(int) pair_content (short,short*,short*);		/* implemented */
+extern NCURSES_EXPORT(int) PAIR_NUMBER (int);				/* generated */
+extern NCURSES_EXPORT(int) pechochar (WINDOW *, const chtype);		/* implemented */
+extern NCURSES_EXPORT(int) pnoutrefresh (WINDOW*,int,int,int,int,int,int);/* implemented */
+extern NCURSES_EXPORT(int) prefresh (WINDOW *,int,int,int,int,int,int);	/* implemented */
+extern NCURSES_EXPORT(int) printw (const char *,...)			/* implemented */
+		GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(int) putwin (WINDOW *, FILE *);			/* implemented */
+extern NCURSES_EXPORT(void) qiflush (void);				/* implemented */
+extern NCURSES_EXPORT(int) raw (void);					/* implemented */
+extern NCURSES_EXPORT(int) redrawwin (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) refresh (void);				/* generated */
+extern NCURSES_EXPORT(int) resetty (void);				/* implemented */
+extern NCURSES_EXPORT(int) reset_prog_mode (void);			/* implemented */
+extern NCURSES_EXPORT(int) reset_shell_mode (void);			/* implemented */
+extern NCURSES_EXPORT(int) ripoffline (int, int (*)(WINDOW *, int));	/* implemented */
+extern NCURSES_EXPORT(int) savetty (void);				/* implemented */
+extern NCURSES_EXPORT(int) scanw (NCURSES_CONST char *,...)		/* implemented */
+		GCC_SCANFLIKE(1,2);
+extern NCURSES_EXPORT(int) scr_dump (const char *);			/* implemented */
+extern NCURSES_EXPORT(int) scr_init (const char *);			/* implemented */
+extern NCURSES_EXPORT(int) scrl (int);					/* generated */
+extern NCURSES_EXPORT(int) scroll (WINDOW *);				/* generated */
+extern NCURSES_EXPORT(int) scrollok (WINDOW *,bool);			/* implemented */
+extern NCURSES_EXPORT(int) scr_restore (const char *);			/* implemented */
+extern NCURSES_EXPORT(int) scr_set (const char *);			/* implemented */
+extern NCURSES_EXPORT(int) setscrreg (int,int);				/* generated */
+extern NCURSES_EXPORT(SCREEN *) set_term (SCREEN *);			/* implemented */
+extern NCURSES_EXPORT(int) slk_attroff (const chtype);			/* implemented */
+extern NCURSES_EXPORT(int) slk_attr_off (const attr_t, void *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) slk_attron (const chtype);			/* implemented */
+extern NCURSES_EXPORT(int) slk_attr_on (attr_t,void*);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) slk_attrset (const chtype);			/* implemented */
+extern NCURSES_EXPORT(attr_t) slk_attr (void);				/* implemented */
+extern NCURSES_EXPORT(int) slk_attr_set (const attr_t,short,void*);	/* implemented */
+extern NCURSES_EXPORT(int) slk_clear (void);				/* implemented */
+extern NCURSES_EXPORT(int) slk_color (short);				/* implemented */
+extern NCURSES_EXPORT(int) slk_init (int);				/* implemented */
+extern NCURSES_EXPORT(char *) slk_label (int);				/* implemented */
+extern NCURSES_EXPORT(int) slk_noutrefresh (void);			/* implemented */
+extern NCURSES_EXPORT(int) slk_refresh (void);				/* implemented */
+extern NCURSES_EXPORT(int) slk_restore (void);				/* implemented */
+extern NCURSES_EXPORT(int) slk_set (int,const char *,int);		/* implemented */
+extern NCURSES_EXPORT(int) slk_touch (void);				/* implemented */
+extern NCURSES_EXPORT(int) standout (void);				/* generated */
+extern NCURSES_EXPORT(int) standend (void);				/* generated */
+extern NCURSES_EXPORT(int) start_color (void);				/* implemented */
+extern NCURSES_EXPORT(WINDOW *) subpad (WINDOW *, int, int, int, int);	/* implemented */
+extern NCURSES_EXPORT(WINDOW *) subwin (WINDOW *, int, int, int, int);	/* implemented */
+extern NCURSES_EXPORT(int) syncok (WINDOW *, bool);			/* implemented */
+extern NCURSES_EXPORT(chtype) termattrs (void);				/* implemented */
+extern NCURSES_EXPORT(char *) termname (void);				/* implemented */
+extern NCURSES_EXPORT(void) timeout (int);				/* generated */
+extern NCURSES_EXPORT(int) touchline (WINDOW *, int, int);		/* generated */
+extern NCURSES_EXPORT(int) touchwin (WINDOW *);				/* generated */
+extern NCURSES_EXPORT(int) typeahead (int);				/* implemented */
+extern NCURSES_EXPORT(int) ungetch (int);				/* implemented */
+extern NCURSES_EXPORT(int) untouchwin (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(void) use_env (bool);				/* implemented */
+extern NCURSES_EXPORT(int) vidattr (chtype);				/* implemented */
+extern NCURSES_EXPORT(int) vidputs (chtype, int (*)(int));		/* implemented */
+extern NCURSES_EXPORT(int) vline (chtype, int);				/* generated */
+extern NCURSES_EXPORT(int) vwprintw (WINDOW *, const char *,va_list);	/* implemented */
+extern NCURSES_EXPORT(int) vw_printw (WINDOW *, const char *,va_list);	/* generated */
+extern NCURSES_EXPORT(int) vwscanw (WINDOW *, NCURSES_CONST char *,va_list);	/* implemented */
+extern NCURSES_EXPORT(int) vw_scanw (WINDOW *, NCURSES_CONST char *,va_list);	/* generated */
+extern NCURSES_EXPORT(int) waddch (WINDOW *, const chtype);		/* implemented */
+extern NCURSES_EXPORT(int) waddchnstr (WINDOW *,const chtype *,int);	/* implemented */
+extern NCURSES_EXPORT(int) waddchstr (WINDOW *,const chtype *);		/* generated */
+extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int);	/* implemented */
+extern NCURSES_EXPORT(int) waddstr (WINDOW *,const char *);		/* generated */
+extern NCURSES_EXPORT(int) wattron (WINDOW *, int);			/* generated */
+extern NCURSES_EXPORT(int) wattroff (WINDOW *, int);			/* generated */
+extern NCURSES_EXPORT(int) wattrset (WINDOW *, int);			/* generated */
+extern NCURSES_EXPORT(int) wattr_get (WINDOW *, attr_t *, short *, void *);	/* generated */
+extern NCURSES_EXPORT(int) wattr_on (WINDOW *, attr_t, void *);		/* implemented */
+extern NCURSES_EXPORT(int) wattr_off (WINDOW *, attr_t, void *);	/* implemented */
+extern NCURSES_EXPORT(int) wattr_set (WINDOW *, attr_t, short, void *);	/* generated */
+extern NCURSES_EXPORT(int) wbkgd (WINDOW *, chtype);			/* implemented */
+extern NCURSES_EXPORT(void) wbkgdset (WINDOW *,chtype);			/* implemented */
+extern NCURSES_EXPORT(int) wborder (WINDOW *,chtype,chtype,chtype,chtype,chtype,chtype,chtype,chtype);	/* implemented */
+extern NCURSES_EXPORT(int) wchgat (WINDOW *, int, attr_t, short, const void *);/* implemented */
+extern NCURSES_EXPORT(int) wclear (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) wclrtobot (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(int) wclrtoeol (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(int) wcolor_set (WINDOW*,short,void*);		/* implemented */
+extern NCURSES_EXPORT(void) wcursyncup (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(int) wdelch (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) wdeleteln (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) wechochar (WINDOW *, const chtype);		/* implemented */
+extern NCURSES_EXPORT(int) werase (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) wgetch (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) wgetnstr (WINDOW *,char *,int);		/* implemented */
+extern NCURSES_EXPORT(int) wgetstr (WINDOW *, char *);			/* generated */
+extern NCURSES_EXPORT(int) whline (WINDOW *, chtype, int);		/* implemented */
+extern NCURSES_EXPORT(chtype) winch (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) winchnstr (WINDOW *, chtype *, int);		/* implemented */
+extern NCURSES_EXPORT(int) winchstr (WINDOW *, chtype *);		/* generated */
+extern NCURSES_EXPORT(int) winnstr (WINDOW *, char *, int);		/* implemented */
+extern NCURSES_EXPORT(int) winsch (WINDOW *, chtype);			/* implemented */
+extern NCURSES_EXPORT(int) winsdelln (WINDOW *,int);			/* implemented */
+extern NCURSES_EXPORT(int) winsertln (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) winsnstr (WINDOW *, const char *,int);	/* implemented */
+extern NCURSES_EXPORT(int) winsstr (WINDOW *, const char *);		/* generated */
+extern NCURSES_EXPORT(int) winstr (WINDOW *, char *);			/* generated */
+extern NCURSES_EXPORT(int) wmove (WINDOW *,int,int);			/* implemented */
+extern NCURSES_EXPORT(int) wnoutrefresh (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(int) wprintw (WINDOW *, const char *,...)		/* implemented */
+		GCC_PRINTFLIKE(2,3);
+extern NCURSES_EXPORT(int) wredrawln (WINDOW *,int,int);		/* implemented */
+extern NCURSES_EXPORT(int) wrefresh (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(int) wscanw (WINDOW *, NCURSES_CONST char *,...)	/* implemented */
+		GCC_SCANFLIKE(2,3);
+extern NCURSES_EXPORT(int) wscrl (WINDOW *,int);			/* implemented */
+extern NCURSES_EXPORT(int) wsetscrreg (WINDOW *,int,int);		/* implemented */
+extern NCURSES_EXPORT(int) wstandout (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) wstandend (WINDOW *);			/* generated */
+extern NCURSES_EXPORT(void) wsyncdown (WINDOW *);			/* implemented */
+extern NCURSES_EXPORT(void) wsyncup (WINDOW *);				/* implemented */
+extern NCURSES_EXPORT(void) wtimeout (WINDOW *,int);			/* implemented */
+extern NCURSES_EXPORT(int) wtouchln (WINDOW *,int,int,int);		/* implemented */
+extern NCURSES_EXPORT(int) wvline (WINDOW *,chtype,int);		/* implemented */
+
+/*
+ * These are also declared in <term.h>:
+ */
+extern NCURSES_EXPORT(int) tigetflag (NCURSES_CONST char *);		/* implemented */
+extern NCURSES_EXPORT(int) tigetnum (NCURSES_CONST char *);		/* implemented */
+extern NCURSES_EXPORT(char *) tigetstr (NCURSES_CONST char *);		/* implemented */
+extern NCURSES_EXPORT(int) putp (const char *);				/* implemented */
+
+#if NCURSES_TPARM_VARARGS
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, ...);	/* special */
+#else
+extern NCURSES_EXPORT(char *) tparm (NCURSES_CONST char *, long,long,long,long,long,long,long,long,long);	/* special */
+extern NCURSES_EXPORT(char *) tparm_varargs (NCURSES_CONST char *, ...);	/* special */
+#endif
+
+/*
+ * These functions are not in X/Open, but we use them in macro definitions:
+ */
+extern NCURSES_EXPORT(int) getattrs (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getcurx (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getcury (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getbegx (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getbegy (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getmaxx (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getmaxy (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getparx (const WINDOW *);			/* generated */
+extern NCURSES_EXPORT(int) getpary (const WINDOW *);			/* generated */
+
+/*
+ * vid_attr() was implemented originally based on a draft of X/Open curses.
+ */
+#ifndef _XOPEN_SOURCE_EXTENDED
+#define vid_attr(a,pair,opts) vidattr(a)
+#endif
+
+/*
+ * These functions are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#undef  NCURSES_EXT_FUNCS
+#define NCURSES_EXT_FUNCS @NCURSES_PATCH@
+typedef int (*NCURSES_WINDOW_CB)(WINDOW *, void *);
+typedef int (*NCURSES_SCREEN_CB)(SCREEN *, void *);
+extern NCURSES_EXPORT(bool) is_term_resized (int, int);
+extern NCURSES_EXPORT(char *) keybound (int, int);
+extern NCURSES_EXPORT(const char *) curses_version (void);
+extern NCURSES_EXPORT(int) assume_default_colors (int, int);
+extern NCURSES_EXPORT(int) define_key (const char *, int);
+extern NCURSES_EXPORT(int) key_defined (const char *);
+extern NCURSES_EXPORT(int) keyok (int, bool);
+extern NCURSES_EXPORT(int) resize_term (int, int);
+extern NCURSES_EXPORT(int) resizeterm (int, int);
+extern NCURSES_EXPORT(int) set_escdelay (int);
+extern NCURSES_EXPORT(int) set_tabsize (int);
+extern NCURSES_EXPORT(int) use_default_colors (void);
+extern NCURSES_EXPORT(int) use_extended_names (bool);
+extern NCURSES_EXPORT(int) use_legacy_coding (int);
+extern NCURSES_EXPORT(int) use_screen (SCREEN *, NCURSES_SCREEN_CB, void *);
+extern NCURSES_EXPORT(int) use_window (WINDOW *, NCURSES_WINDOW_CB, void *);
+extern NCURSES_EXPORT(int) wresize (WINDOW *, int, int);
+extern NCURSES_EXPORT(void) nofilter(void);
+
+/*
+ * These extensions provide access to information stored in the WINDOW even
+ * when NCURSES_OPAQUE is set:
+ */
+extern NCURSES_EXPORT(WINDOW *) wgetparent (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_cleared (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_idcok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_idlok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_immedok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_keypad (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(bool) is_leaveok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_nodelay (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_notimeout (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_scrollok (const WINDOW *);	/* generated */
+extern NCURSES_EXPORT(bool) is_syncok (const WINDOW *);		/* generated */
+extern NCURSES_EXPORT(int) wgetscrreg (const WINDOW *, int *, int *); /* generated */
+
+#else
+#define curses_version() NCURSES_VERSION
+#endif
+
+/* attributes */
+
+#define NCURSES_ATTR_SHIFT       8
+#define NCURSES_BITS(mask,shift) ((mask) << ((shift) + NCURSES_ATTR_SHIFT))
+
+#define A_NORMAL	(@cf_cv_1UL@ - @cf_cv_1UL@)
+#define A_ATTRIBUTES	NCURSES_BITS(~(@cf_cv_1UL@ - @cf_cv_1UL@),0)
+#define A_CHARTEXT	(NCURSES_BITS(@cf_cv_1UL@,0) - @cf_cv_1UL@)
+#define A_COLOR		NCURSES_BITS(((@cf_cv_1UL@) << 8) - @cf_cv_1UL@,0)
+#define A_STANDOUT	NCURSES_BITS(@cf_cv_1UL@,8)
+#define A_UNDERLINE	NCURSES_BITS(@cf_cv_1UL@,9)
+#define A_REVERSE	NCURSES_BITS(@cf_cv_1UL@,10)
+#define A_BLINK		NCURSES_BITS(@cf_cv_1UL@,11)
+#define A_DIM		NCURSES_BITS(@cf_cv_1UL@,12)
+#define A_BOLD		NCURSES_BITS(@cf_cv_1UL@,13)
+#define A_ALTCHARSET	NCURSES_BITS(@cf_cv_1UL@,14)
+#define A_INVIS		NCURSES_BITS(@cf_cv_1UL@,15)
+#define A_PROTECT	NCURSES_BITS(@cf_cv_1UL@,16)
+#define A_HORIZONTAL	NCURSES_BITS(@cf_cv_1UL@,17)
+#define A_LEFT		NCURSES_BITS(@cf_cv_1UL@,18)
+#define A_LOW		NCURSES_BITS(@cf_cv_1UL@,19)
+#define A_RIGHT		NCURSES_BITS(@cf_cv_1UL@,20)
+#define A_TOP		NCURSES_BITS(@cf_cv_1UL@,21)
+#define A_VERTICAL	NCURSES_BITS(@cf_cv_1UL@,22)
+
+/*
+ * Most of the pseudo functions are macros that either provide compatibility
+ * with older versions of curses, or provide inline functionality to improve
+ * performance.
+ */
+
+/*
+ * These pseudo functions are always implemented as macros:
+ */
+
+#define getyx(win,y,x)   	(y = getcury(win), x = getcurx(win))
+#define getbegyx(win,y,x)	(y = getbegy(win), x = getbegx(win))
+#define getmaxyx(win,y,x)	(y = getmaxy(win), x = getmaxx(win))
+#define getparyx(win,y,x)	(y = getpary(win), x = getparx(win))
+
+#define getsyx(y,x) do { if (newscr) { \
+			     if (is_leaveok(newscr)) \
+				(y) = (x) = -1; \
+			     else \
+				 getyx(newscr,(y), (x)); \
+			} \
+		    } while(0)
+
+#define setsyx(y,x) do { if (newscr) { \
+			    if ((y) == -1 && (x) == -1) \
+				leaveok(newscr, TRUE); \
+			    else { \
+				leaveok(newscr, FALSE); \
+				wmove(newscr, (y), (x)); \
+			    } \
+			} \
+		    } while(0)
+
+#ifndef NCURSES_NOMACROS
+
+/*
+ * These miscellaneous pseudo functions are provided for compatibility:
+ */
+
+#define wgetstr(w, s)		wgetnstr(w, s, -1)
+#define getnstr(s, n)		wgetnstr(stdscr, s, n)
+
+#define setterm(term)		setupterm(term, 1, (int *)0)
+
+#define fixterm()		reset_prog_mode()
+#define resetterm()		reset_shell_mode()
+#define saveterm()		def_prog_mode()
+#define crmode()		cbreak()
+#define nocrmode()		nocbreak()
+#define gettmode()
+
+/* It seems older SYSV curses versions define these */
+#if !NCURSES_OPAQUE
+#define getattrs(win)		((win) ? (win)->_attrs : A_NORMAL)
+#define getcurx(win)		((win) ? (win)->_curx : ERR)
+#define getcury(win)		((win) ? (win)->_cury : ERR)
+#define getbegx(win)		((win) ? (win)->_begx : ERR)
+#define getbegy(win)		((win) ? (win)->_begy : ERR)
+#define getmaxx(win)		((win) ? ((win)->_maxx + 1) : ERR)
+#define getmaxy(win)		((win) ? ((win)->_maxy + 1) : ERR)
+#define getparx(win)		((win) ? (win)->_parx : ERR)
+#define getpary(win)		((win) ? (win)->_pary : ERR)
+#endif /* NCURSES_OPAQUE */
+
+#define wstandout(win)      	(wattrset(win,A_STANDOUT))
+#define wstandend(win)      	(wattrset(win,A_NORMAL))
+
+#define wattron(win,at)		wattr_on(win, NCURSES_CAST(attr_t, at), NULL)
+#define wattroff(win,at)	wattr_off(win, NCURSES_CAST(attr_t, at), NULL)
+
+#if !NCURSES_OPAQUE
+#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
+#define wattrset(win,at)	((win)->_color = PAIR_NUMBER(at), \
+				 (win)->_attrs = (at))
+#else
+#define wattrset(win,at)	((win)->_attrs = (at))
+#endif
+#endif /* NCURSES_OPAQUE */
+
+#define scroll(win)		wscrl(win,1)
+
+#define touchwin(win)		wtouchln((win), 0, getmaxy(win), 1)
+#define touchline(win, s, c)	wtouchln((win), s, c, 1)
+#define untouchwin(win)		wtouchln((win), 0, getmaxy(win), 0)
+
+#define box(win, v, h)		wborder(win, v, v, h, h, 0, 0, 0, 0)
+#define border(ls, rs, ts, bs, tl, tr, bl, br)	wborder(stdscr, ls, rs, ts, bs, tl, tr, bl, br)
+#define hline(ch, n)		whline(stdscr, ch, n)
+#define vline(ch, n)		wvline(stdscr, ch, n)
+
+#define winstr(w, s)		winnstr(w, s, -1)
+#define winchstr(w, s)		winchnstr(w, s, -1)
+#define winsstr(w, s)		winsnstr(w, s, -1)
+
+#if !NCURSES_OPAQUE
+#define redrawwin(win)		wredrawln(win, 0, (win)->_maxy+1)
+#endif /* NCURSES_OPAQUE */
+
+#define waddstr(win,str)	waddnstr(win,str,-1)
+#define waddchstr(win,str)	waddchnstr(win,str,-1)
+
+/*
+ * These apply to the first 256 color pairs.
+ */
+#define COLOR_PAIR(n)	NCURSES_BITS(n, 0)
+#define PAIR_NUMBER(a)	(NCURSES_CAST(int,(((a) & A_COLOR) >> NCURSES_ATTR_SHIFT)))
+
+/*
+ * pseudo functions for standard screen
+ */
+
+#define addch(ch)		waddch(stdscr,ch)
+#define addchnstr(str,n)	waddchnstr(stdscr,str,n)
+#define addchstr(str)		waddchstr(stdscr,str)
+#define addnstr(str,n)		waddnstr(stdscr,str,n)
+#define addstr(str)		waddnstr(stdscr,str,-1)
+#define attroff(at)		wattroff(stdscr,at)
+#define attron(at)		wattron(stdscr,at)
+#define attrset(at)		wattrset(stdscr,at)
+#define attr_get(ap,cp,o)	wattr_get(stdscr,ap,cp,o)
+#define attr_off(a,o)		wattr_off(stdscr,a,o)
+#define attr_on(a,o)		wattr_on(stdscr,a,o)
+#define attr_set(a,c,o)		wattr_set(stdscr,a,c,o)
+#define bkgd(ch)		wbkgd(stdscr,ch)
+#define bkgdset(ch)		wbkgdset(stdscr,ch)
+#define chgat(n,a,c,o)		wchgat(stdscr,n,a,c,o)
+#define clear()			wclear(stdscr)
+#define clrtobot()		wclrtobot(stdscr)
+#define clrtoeol()		wclrtoeol(stdscr)
+#define color_set(c,o)		wcolor_set(stdscr,c,o)
+#define delch()			wdelch(stdscr)
+#define deleteln()		winsdelln(stdscr,-1)
+#define echochar(c)		wechochar(stdscr,c)
+#define erase()			werase(stdscr)
+#define getch()			wgetch(stdscr)
+#define getstr(str)		wgetstr(stdscr,str)
+#define inch()			winch(stdscr)
+#define inchnstr(s,n)		winchnstr(stdscr,s,n)
+#define inchstr(s)		winchstr(stdscr,s)
+#define innstr(s,n)		winnstr(stdscr,s,n)
+#define insch(c)		winsch(stdscr,c)
+#define insdelln(n)		winsdelln(stdscr,n)
+#define insertln()		winsdelln(stdscr,1)
+#define insnstr(s,n)		winsnstr(stdscr,s,n)
+#define insstr(s)		winsstr(stdscr,s)
+#define instr(s)		winstr(stdscr,s)
+#define move(y,x)		wmove(stdscr,y,x)
+#define refresh()		wrefresh(stdscr)
+#define scrl(n)			wscrl(stdscr,n)
+#define setscrreg(t,b)		wsetscrreg(stdscr,t,b)
+#define standend()		wstandend(stdscr)
+#define standout()		wstandout(stdscr)
+#define timeout(delay)		wtimeout(stdscr,delay)
+#define wdeleteln(win)		winsdelln(win,-1)
+#define winsertln(win)		winsdelln(win,1)
+
+/*
+ * mv functions
+ */
+
+#define mvwaddch(win,y,x,ch)		(wmove(win,y,x) == ERR ? ERR : waddch(win,ch))
+#define mvwaddchnstr(win,y,x,str,n)	(wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,n))
+#define mvwaddchstr(win,y,x,str)	(wmove(win,y,x) == ERR ? ERR : waddchnstr(win,str,-1))
+#define mvwaddnstr(win,y,x,str,n)	(wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,n))
+#define mvwaddstr(win,y,x,str)		(wmove(win,y,x) == ERR ? ERR : waddnstr(win,str,-1))
+#define mvwdelch(win,y,x)		(wmove(win,y,x) == ERR ? ERR : wdelch(win))
+#define mvwchgat(win,y,x,n,a,c,o)	(wmove(win,y,x) == ERR ? ERR : wchgat(win,n,a,c,o))
+#define mvwgetch(win,y,x)		(wmove(win,y,x) == ERR ? ERR : wgetch(win))
+#define mvwgetnstr(win,y,x,str,n)	(wmove(win,y,x) == ERR ? ERR : wgetnstr(win,str,n))
+#define mvwgetstr(win,y,x,str)		(wmove(win,y,x) == ERR ? ERR : wgetstr(win,str))
+#define mvwhline(win,y,x,c,n)		(wmove(win,y,x) == ERR ? ERR : whline(win,c,n))
+#define mvwinch(win,y,x)		(wmove(win,y,x) == ERR ? NCURSES_CAST(chtype, ERR) : winch(win))
+#define mvwinchnstr(win,y,x,s,n)	(wmove(win,y,x) == ERR ? ERR : winchnstr(win,s,n))
+#define mvwinchstr(win,y,x,s)		(wmove(win,y,x) == ERR ? ERR : winchstr(win,s))
+#define mvwinnstr(win,y,x,s,n)		(wmove(win,y,x) == ERR ? ERR : winnstr(win,s,n))
+#define mvwinsch(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : winsch(win,c))
+#define mvwinsnstr(win,y,x,s,n)		(wmove(win,y,x) == ERR ? ERR : winsnstr(win,s,n))
+#define mvwinsstr(win,y,x,s)		(wmove(win,y,x) == ERR ? ERR : winsstr(win,s))
+#define mvwinstr(win,y,x,s)		(wmove(win,y,x) == ERR ? ERR : winstr(win,s))
+#define mvwvline(win,y,x,c,n)		(wmove(win,y,x) == ERR ? ERR : wvline(win,c,n))
+
+#define mvaddch(y,x,ch)			mvwaddch(stdscr,y,x,ch)
+#define mvaddchnstr(y,x,str,n)		mvwaddchnstr(stdscr,y,x,str,n)
+#define mvaddchstr(y,x,str)		mvwaddchstr(stdscr,y,x,str)
+#define mvaddnstr(y,x,str,n)		mvwaddnstr(stdscr,y,x,str,n)
+#define mvaddstr(y,x,str)		mvwaddstr(stdscr,y,x,str)
+#define mvchgat(y,x,n,a,c,o)		mvwchgat(stdscr,y,x,n,a,c,o)
+#define mvdelch(y,x)			mvwdelch(stdscr,y,x)
+#define mvgetch(y,x)			mvwgetch(stdscr,y,x)
+#define mvgetnstr(y,x,str,n)		mvwgetnstr(stdscr,y,x,str,n)
+#define mvgetstr(y,x,str)		mvwgetstr(stdscr,y,x,str)
+#define mvhline(y,x,c,n)		mvwhline(stdscr,y,x,c,n)
+#define mvinch(y,x)			mvwinch(stdscr,y,x)
+#define mvinchnstr(y,x,s,n)		mvwinchnstr(stdscr,y,x,s,n)
+#define mvinchstr(y,x,s)		mvwinchstr(stdscr,y,x,s)
+#define mvinnstr(y,x,s,n)		mvwinnstr(stdscr,y,x,s,n)
+#define mvinsch(y,x,c)			mvwinsch(stdscr,y,x,c)
+#define mvinsnstr(y,x,s,n)		mvwinsnstr(stdscr,y,x,s,n)
+#define mvinsstr(y,x,s)			mvwinsstr(stdscr,y,x,s)
+#define mvinstr(y,x,s)			mvwinstr(stdscr,y,x,s)
+#define mvvline(y,x,c,n)		mvwvline(stdscr,y,x,c,n)
+
+/*
+ * Some wide-character functions can be implemented without the extensions.
+ */
+#if !NCURSES_OPAQUE
+#define getbkgd(win)                    ((win)->_bkgd)
+#endif /* NCURSES_OPAQUE */
+
+#define slk_attr_off(a,v)		((v) ? ERR : slk_attroff(a))
+#define slk_attr_on(a,v)		((v) ? ERR : slk_attron(a))
+
+#if !NCURSES_OPAQUE
+#if defined(_XOPEN_SOURCE_EXTENDED) && @NCURSES_EXT_COLORS@
+#define wattr_set(win,a,p,opts)		((win)->_attrs = ((a) & ~A_COLOR), \
+					 (win)->_color = (p), \
+					 OK)
+#define wattr_get(win,a,p,opts)		((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+					 (void)((p) != (void *)0 && (*(p) = (win)->_color)), \
+					 OK)
+#else
+#define wattr_set(win,a,p,opts)		((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
+#define wattr_get(win,a,p,opts)		((void)((a) != (void *)0 && (*(a) = (win)->_attrs)), \
+					 (void)((p) != (void *)0 && (*(p) = PAIR_NUMBER((win)->_attrs))), \
+					 OK)
+#endif
+#endif /* NCURSES_OPAQUE */
+
+/*
+ * X/Open curses deprecates SVr4 vwprintw/vwscanw, which are supposed to use
+ * varargs.h.  It adds new calls vw_printw/vw_scanw, which are supposed to
+ * use POSIX stdarg.h.  The ncurses versions of vwprintw/vwscanw already
+ * use stdarg.h, so...
+ */
+#define vw_printw		vwprintw
+#define vw_scanw		vwscanw
+
+/*
+ * Export fallback function for use in C++ binding.
+ */
+#if !@HAVE_VSSCANF@
+#define vsscanf(a,b,c) _nc_vsscanf(a,b,c)
+NCURSES_EXPORT(int) vsscanf(const char *, const char *, va_list);
+#endif
+
+/*
+ * These macros are extensions - not in X/Open Curses.
+ */
+#if @NCURSES_EXT_FUNCS@
+#if !NCURSES_OPAQUE
+#define is_cleared(win)		((win)->_clear)
+#define is_idcok(win)		((win)->_idcok)
+#define is_idlok(win)		((win)->_idlok)
+#define is_immedok(win)		((win)->_immed)
+#define is_keypad(win)		((win)->_use_keypad)
+#define is_leaveok(win)		((win)->_leaveok)
+#define is_nodelay(win)		((win)->_delay == 0)
+#define is_notimeout(win)	((win)->_notimeout)
+#define is_scrollok(win)	((win)->_scroll)
+#define is_syncok(win)		((win)->_sync)
+#define wgetparent(win)		((win) ? (win)->_parent : 0)
+#define wgetscrreg(win,t,b)	((win) ? (*(t) = (win)->_regtop, *(b) = (win)->_regbottom, OK) : ERR)
+#endif
+#endif
+
+#endif /* NCURSES_NOMACROS */
+
+/*
+ * Public variables.
+ *
+ * Notes:
+ *	a. ESCDELAY was an undocumented feature under AIX curses.
+ *	   It gives the ESC expire time in milliseconds.
+ *	b. ttytype is needed for backward compatibility
+ */
+#if @cf_cv_enable_reentrant@
+
+NCURSES_WRAPPED_VAR(WINDOW *, curscr);
+NCURSES_WRAPPED_VAR(WINDOW *, newscr);
+NCURSES_WRAPPED_VAR(WINDOW *, stdscr);
+NCURSES_WRAPPED_VAR(char *, ttytype);
+NCURSES_WRAPPED_VAR(int, COLORS);
+NCURSES_WRAPPED_VAR(int, COLOR_PAIRS);
+NCURSES_WRAPPED_VAR(int, COLS);
+NCURSES_WRAPPED_VAR(int, ESCDELAY);
+NCURSES_WRAPPED_VAR(int, LINES);
+NCURSES_WRAPPED_VAR(int, TABSIZE);
+
+#define curscr      NCURSES_PUBLIC_VAR(curscr())
+#define newscr      NCURSES_PUBLIC_VAR(newscr())
+#define stdscr      NCURSES_PUBLIC_VAR(stdscr())
+#define ttytype     NCURSES_PUBLIC_VAR(ttytype())
+#define COLORS      NCURSES_PUBLIC_VAR(COLORS())
+#define COLOR_PAIRS NCURSES_PUBLIC_VAR(COLOR_PAIRS())
+#define COLS        NCURSES_PUBLIC_VAR(COLS())
+#define ESCDELAY    NCURSES_PUBLIC_VAR(ESCDELAY())
+#define LINES       NCURSES_PUBLIC_VAR(LINES())
+#define TABSIZE     NCURSES_PUBLIC_VAR(TABSIZE())
+
+#else
+
+extern NCURSES_EXPORT_VAR(WINDOW *) curscr;
+extern NCURSES_EXPORT_VAR(WINDOW *) newscr;
+extern NCURSES_EXPORT_VAR(WINDOW *) stdscr;
+extern NCURSES_EXPORT_VAR(char) ttytype[];
+extern NCURSES_EXPORT_VAR(int) COLORS;
+extern NCURSES_EXPORT_VAR(int) COLOR_PAIRS;
+extern NCURSES_EXPORT_VAR(int) COLS;
+extern NCURSES_EXPORT_VAR(int) ESCDELAY;
+extern NCURSES_EXPORT_VAR(int) LINES;
+extern NCURSES_EXPORT_VAR(int) TABSIZE;
+
+#endif
+
+/*
+ * Pseudo-character tokens outside ASCII range.  The curses wgetch() function
+ * will return any given one of these only if the corresponding k- capability
+ * is defined in your terminal's terminfo entry.
+ *
+ * Some keys (KEY_A1, etc) are arranged like this:
+ *	a1     up    a3
+ *	left   b2    right
+ *	c1     down  c3
+ *
+ * A few key codes do not depend upon the terminfo entry.
+ */
+#define KEY_CODE_YES	0400		/* A wchar_t contains a key code */
+#define KEY_MIN		0401		/* Minimum curses key */
+#define KEY_BREAK	0401		/* Break key (unreliable) */
+#define KEY_SRESET	0530		/* Soft (partial) reset (unreliable) */
+#define KEY_RESET	0531		/* Reset or hard reset (unreliable) */
diff --git a/include/curses.tail b/include/curses.tail
new file mode 100644
index 0000000..aef7c37
--- /dev/null
+++ b/include/curses.tail
@@ -0,0 +1,179 @@
+/* $Id: curses.tail,v 1.16 2008/07/05 20:20:38 tom Exp $ */
+/*
+ * vile:cmode:
+ * This file is part of ncurses, designed to be appended after curses.h.in
+ * (see that file for the relevant copyright).
+ */
+
+/* mouse interface */
+
+#if NCURSES_MOUSE_VERSION > 1
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 5))
+#else
+#define NCURSES_MOUSE_MASK(b,m) ((m) << (((b) - 1) * 6))
+#endif
+
+#define	NCURSES_BUTTON_RELEASED	001L
+#define	NCURSES_BUTTON_PRESSED	002L
+#define	NCURSES_BUTTON_CLICKED	004L
+#define	NCURSES_DOUBLE_CLICKED	010L
+#define	NCURSES_TRIPLE_CLICKED	020L
+#define	NCURSES_RESERVED_EVENT	040L
+
+/* event masks */
+#define	BUTTON1_RELEASED	NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_RELEASED)
+#define	BUTTON1_PRESSED		NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_PRESSED)
+#define	BUTTON1_CLICKED		NCURSES_MOUSE_MASK(1, NCURSES_BUTTON_CLICKED)
+#define	BUTTON1_DOUBLE_CLICKED	NCURSES_MOUSE_MASK(1, NCURSES_DOUBLE_CLICKED)
+#define	BUTTON1_TRIPLE_CLICKED	NCURSES_MOUSE_MASK(1, NCURSES_TRIPLE_CLICKED)
+
+#define	BUTTON2_RELEASED	NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_RELEASED)
+#define	BUTTON2_PRESSED		NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_PRESSED)
+#define	BUTTON2_CLICKED		NCURSES_MOUSE_MASK(2, NCURSES_BUTTON_CLICKED)
+#define	BUTTON2_DOUBLE_CLICKED	NCURSES_MOUSE_MASK(2, NCURSES_DOUBLE_CLICKED)
+#define	BUTTON2_TRIPLE_CLICKED	NCURSES_MOUSE_MASK(2, NCURSES_TRIPLE_CLICKED)
+
+#define	BUTTON3_RELEASED	NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_RELEASED)
+#define	BUTTON3_PRESSED		NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_PRESSED)
+#define	BUTTON3_CLICKED		NCURSES_MOUSE_MASK(3, NCURSES_BUTTON_CLICKED)
+#define	BUTTON3_DOUBLE_CLICKED	NCURSES_MOUSE_MASK(3, NCURSES_DOUBLE_CLICKED)
+#define	BUTTON3_TRIPLE_CLICKED	NCURSES_MOUSE_MASK(3, NCURSES_TRIPLE_CLICKED)
+
+#define	BUTTON4_RELEASED	NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_RELEASED)
+#define	BUTTON4_PRESSED		NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_PRESSED)
+#define	BUTTON4_CLICKED		NCURSES_MOUSE_MASK(4, NCURSES_BUTTON_CLICKED)
+#define	BUTTON4_DOUBLE_CLICKED	NCURSES_MOUSE_MASK(4, NCURSES_DOUBLE_CLICKED)
+#define	BUTTON4_TRIPLE_CLICKED	NCURSES_MOUSE_MASK(4, NCURSES_TRIPLE_CLICKED)
+
+/*
+ * In 32 bits the version-1 scheme does not provide enough space for a 5th
+ * button, unless we choose to change the ABI by omitting the reserved-events.
+ */
+#if NCURSES_MOUSE_VERSION > 1
+
+#define	BUTTON5_RELEASED	NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_RELEASED)
+#define	BUTTON5_PRESSED		NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_PRESSED)
+#define	BUTTON5_CLICKED		NCURSES_MOUSE_MASK(5, NCURSES_BUTTON_CLICKED)
+#define	BUTTON5_DOUBLE_CLICKED	NCURSES_MOUSE_MASK(5, NCURSES_DOUBLE_CLICKED)
+#define	BUTTON5_TRIPLE_CLICKED	NCURSES_MOUSE_MASK(5, NCURSES_TRIPLE_CLICKED)
+
+#define	BUTTON_CTRL		NCURSES_MOUSE_MASK(6, 0001L)
+#define	BUTTON_SHIFT		NCURSES_MOUSE_MASK(6, 0002L)
+#define	BUTTON_ALT		NCURSES_MOUSE_MASK(6, 0004L)
+#define	REPORT_MOUSE_POSITION	NCURSES_MOUSE_MASK(6, 0010L)
+
+#else
+
+#define	BUTTON1_RESERVED_EVENT	NCURSES_MOUSE_MASK(1, NCURSES_RESERVED_EVENT)
+#define	BUTTON2_RESERVED_EVENT	NCURSES_MOUSE_MASK(2, NCURSES_RESERVED_EVENT)
+#define	BUTTON3_RESERVED_EVENT	NCURSES_MOUSE_MASK(3, NCURSES_RESERVED_EVENT)
+#define	BUTTON4_RESERVED_EVENT	NCURSES_MOUSE_MASK(4, NCURSES_RESERVED_EVENT)
+
+#define	BUTTON_CTRL		NCURSES_MOUSE_MASK(5, 0001L)
+#define	BUTTON_SHIFT		NCURSES_MOUSE_MASK(5, 0002L)
+#define	BUTTON_ALT		NCURSES_MOUSE_MASK(5, 0004L)
+#define	REPORT_MOUSE_POSITION	NCURSES_MOUSE_MASK(5, 0010L)
+
+#endif
+
+#define	ALL_MOUSE_EVENTS	(REPORT_MOUSE_POSITION - 1)
+
+/* macros to extract single event-bits from masks */
+#define	BUTTON_RELEASE(e, x)		((e) & NCURSES_MOUSE_MASK(x, 001))
+#define	BUTTON_PRESS(e, x)		((e) & NCURSES_MOUSE_MASK(x, 002))
+#define	BUTTON_CLICK(e, x)		((e) & NCURSES_MOUSE_MASK(x, 004))
+#define	BUTTON_DOUBLE_CLICK(e, x)	((e) & NCURSES_MOUSE_MASK(x, 010))
+#define	BUTTON_TRIPLE_CLICK(e, x)	((e) & NCURSES_MOUSE_MASK(x, 020))
+#define	BUTTON_RESERVED_EVENT(e, x)	((e) & NCURSES_MOUSE_MASK(x, 040))
+
+typedef struct
+{
+    short id;		/* ID to distinguish multiple devices */
+    int x, y, z;	/* event coordinates (character-cell) */
+    mmask_t bstate;	/* button state bits */
+}
+MEVENT;
+
+extern NCURSES_EXPORT(int) getmouse (MEVENT *);
+extern NCURSES_EXPORT(int) ungetmouse (MEVENT *);
+extern NCURSES_EXPORT(mmask_t) mousemask (mmask_t, mmask_t *);
+extern NCURSES_EXPORT(bool) wenclose (const WINDOW *, int, int);
+extern NCURSES_EXPORT(int) mouseinterval (int);
+extern NCURSES_EXPORT(bool) wmouse_trafo (const WINDOW*, int*, int*, bool);
+extern NCURSES_EXPORT(bool) mouse_trafo (int*, int*, bool);              /* generated */
+
+#define mouse_trafo(y,x,to_screen) wmouse_trafo(stdscr,y,x,to_screen)
+
+/* other non-XSI functions */
+
+extern NCURSES_EXPORT(int) mcprint (char *, int);	/* direct data to printer */
+extern NCURSES_EXPORT(int) has_key (int);		/* do we have given key? */
+
+/* Debugging : use with libncurses_g.a */
+
+extern NCURSES_EXPORT(void) _tracef (const char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(void) _tracedump (const char *, WINDOW *);
+extern NCURSES_EXPORT(char *) _traceattr (attr_t);
+extern NCURSES_EXPORT(char *) _traceattr2 (int, chtype);
+extern NCURSES_EXPORT(char *) _nc_tracebits (void);
+extern NCURSES_EXPORT(char *) _tracechar (int);
+extern NCURSES_EXPORT(char *) _tracechtype (chtype);
+extern NCURSES_EXPORT(char *) _tracechtype2 (int, chtype);
+#ifdef _XOPEN_SOURCE_EXTENDED
+#define _tracech_t		_tracecchar_t
+extern NCURSES_EXPORT(char *) _tracecchar_t (const cchar_t *);
+#define _tracech_t2		_tracecchar_t2
+extern NCURSES_EXPORT(char *) _tracecchar_t2 (int, const cchar_t *);
+#else
+#define _tracech_t		_tracechtype
+#define _tracech_t2		_tracechtype2
+#endif
+extern NCURSES_EXPORT(char *) _tracemouse (const MEVENT *);
+extern NCURSES_EXPORT(void) trace (const unsigned int);
+
+/* trace masks */
+#define TRACE_DISABLE	0x0000	/* turn off tracing */
+#define TRACE_TIMES	0x0001	/* trace user and system times of updates */
+#define TRACE_TPUTS	0x0002	/* trace tputs calls */
+#define TRACE_UPDATE	0x0004	/* trace update actions, old & new screens */
+#define TRACE_MOVE	0x0008	/* trace cursor moves and scrolls */
+#define TRACE_CHARPUT	0x0010	/* trace all character outputs */
+#define TRACE_ORDINARY	0x001F	/* trace all update actions */
+#define TRACE_CALLS	0x0020	/* trace all curses calls */
+#define TRACE_VIRTPUT	0x0040	/* trace virtual character puts */
+#define TRACE_IEVENT	0x0080	/* trace low-level input processing */
+#define TRACE_BITS	0x0100	/* trace state of TTY control bits */
+#define TRACE_ICALLS	0x0200	/* trace internal/nested calls */
+#define TRACE_CCALLS	0x0400	/* trace per-character calls */
+#define TRACE_DATABASE	0x0800	/* trace read/write of terminfo/termcap data */
+#define TRACE_ATTRS	0x1000	/* trace attribute updates */
+
+#define TRACE_SHIFT	13	/* number of bits in the trace masks */
+#define TRACE_MAXIMUM	((1 << TRACE_SHIFT) - 1) /* maximum trace level */
+
+#if defined(TRACE) || defined(NCURSES_TEST)
+extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable;		/* enable optimizations */
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+#define OPTIMIZE_MVCUR		0x01	/* cursor movement optimization */
+#define OPTIMIZE_HASHMAP	0x02	/* diff hashing to detect scrolls */
+#define OPTIMIZE_SCROLL		0x04	/* scroll optimization */
+#define OPTIMIZE_ALL		0xff	/* enable all optimizations (dflt) */
+#endif
+
+#ifdef __cplusplus
+
+#ifndef NCURSES_NOMACROS
+
+/* these names conflict with STL */
+#undef box
+#undef clear
+#undef erase
+#undef move
+#undef refresh
+
+#endif /* NCURSES_NOMACROS */
+
+}
+#endif
+
+#endif /* __NCURSES_H */
diff --git a/include/curses.wide b/include/curses.wide
new file mode 100644
index 0000000..0c799e4
--- /dev/null
+++ b/include/curses.wide
@@ -0,0 +1,252 @@
+/* $Id: curses.wide,v 1.34 2007/03/10 17:52:23 tom Exp $ */
+/*
+ * vile:cmode:
+ * This file is part of ncurses, designed to be appended after curses.h.in
+ * (see that file for the relevant copyright).
+ */
+#ifdef _XOPEN_SOURCE_EXTENDED
+
+extern NCURSES_EXPORT_VAR(cchar_t *) _nc_wacs;
+
+#define NCURSES_WACS(c)	(&_nc_wacs[(unsigned char)c])
+
+#define WACS_BSSB	NCURSES_WACS('l')
+#define WACS_SSBB	NCURSES_WACS('m')
+#define WACS_BBSS	NCURSES_WACS('k')
+#define WACS_SBBS	NCURSES_WACS('j')
+#define WACS_SBSS	NCURSES_WACS('u')
+#define WACS_SSSB	NCURSES_WACS('t')
+#define WACS_SSBS	NCURSES_WACS('v')
+#define WACS_BSSS	NCURSES_WACS('w')
+#define WACS_BSBS	NCURSES_WACS('q')
+#define WACS_SBSB	NCURSES_WACS('x')
+#define WACS_SSSS	NCURSES_WACS('n')
+
+#define WACS_ULCORNER	WACS_BSSB
+#define WACS_LLCORNER	WACS_SSBB
+#define WACS_URCORNER	WACS_BBSS
+#define WACS_LRCORNER	WACS_SBBS
+#define WACS_RTEE	WACS_SBSS
+#define WACS_LTEE	WACS_SSSB
+#define WACS_BTEE	WACS_SSBS
+#define WACS_TTEE	WACS_BSSS
+#define WACS_HLINE	WACS_BSBS
+#define WACS_VLINE	WACS_SBSB
+#define WACS_PLUS	WACS_SSSS
+
+#define WACS_S1		NCURSES_WACS('o') /* scan line 1 */
+#define WACS_S9 	NCURSES_WACS('s') /* scan line 9 */
+#define WACS_DIAMOND	NCURSES_WACS('`') /* diamond */
+#define WACS_CKBOARD	NCURSES_WACS('a') /* checker board */
+#define WACS_DEGREE	NCURSES_WACS('f') /* degree symbol */
+#define WACS_PLMINUS	NCURSES_WACS('g') /* plus/minus */
+#define WACS_BULLET	NCURSES_WACS('~') /* bullet */
+
+	/* Teletype 5410v1 symbols */
+#define WACS_LARROW	NCURSES_WACS(',') /* arrow left */
+#define WACS_RARROW	NCURSES_WACS('+') /* arrow right */
+#define WACS_DARROW	NCURSES_WACS('.') /* arrow down */
+#define WACS_UARROW	NCURSES_WACS('-') /* arrow up */
+#define WACS_BOARD	NCURSES_WACS('h') /* board of squares */
+#define WACS_LANTERN	NCURSES_WACS('i') /* lantern symbol */
+#define WACS_BLOCK	NCURSES_WACS('0') /* solid square block */
+
+	/* ncurses extensions */
+#define WACS_S3		NCURSES_WACS('p') /* scan line 3 */
+#define WACS_S7		NCURSES_WACS('r') /* scan line 7 */
+#define WACS_LEQUAL	NCURSES_WACS('y') /* less/equal */
+#define WACS_GEQUAL	NCURSES_WACS('z') /* greater/equal */
+#define WACS_PI		NCURSES_WACS('{') /* Pi */
+#define WACS_NEQUAL	NCURSES_WACS('|') /* not equal */
+#define WACS_STERLING	NCURSES_WACS('}') /* UK pound sign */
+
+/*
+ * Function prototypes for wide-character operations.
+ *
+ * "generated" comments should include ":WIDEC" to make the corresponding
+ * functions ifdef'd in lib_gen.c
+ *
+ * "implemented" comments do not need this marker.
+ */
+
+extern NCURSES_EXPORT(int) add_wch (const cchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchnstr (const cchar_t *, int);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) add_wchstr (const cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) addnwstr (const wchar_t *, int);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) addwstr (const wchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) bkgrnd (const cchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(void) bkgrndset (const cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) border_set (const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) box_set (WINDOW *, const cchar_t *, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) echo_wchar (const cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) erasewchar (wchar_t*);			/* implemented */
+extern NCURSES_EXPORT(int) get_wch (wint_t *);				/* generated:WIDEC */
+extern NCURSES_EXPORT(int) get_wstr (wint_t *);				/* generated:WIDEC */
+extern NCURSES_EXPORT(int) getbkgrnd (cchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) getcchar (const cchar_t *, wchar_t*, attr_t*, short*, void*);	/* implemented */
+extern NCURSES_EXPORT(int) getn_wstr (wint_t *, int);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) hline_set (const cchar_t *, int);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wch (cchar_t *);				/* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchnstr (cchar_t *, int);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) in_wchstr (cchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) innwstr (wchar_t *, int);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_nwstr (const wchar_t *, int);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wch (const cchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) ins_wstr (const wchar_t *);			/* generated:WIDEC */
+extern NCURSES_EXPORT(int) inwstr (wchar_t *);				/* generated:WIDEC */
+extern NCURSES_EXPORT(NCURSES_CONST char*) key_name (wchar_t);		/* implemented */
+extern NCURSES_EXPORT(int) killwchar (wchar_t *);			/* implemented */
+extern NCURSES_EXPORT(int) mvadd_wch (int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchnstr (int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvadd_wchstr (int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddnwstr (int, int, const wchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvaddwstr (int, int, const wchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wch (int, int, wint_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvget_wstr (int, int, wint_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvgetn_wstr (int, int, wint_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvhline_set (int, int, const cchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wch (int, int, cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchnstr (int, int, cchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvin_wchstr (int, int, cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinnwstr (int, int, wchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_nwstr (int, int, const wchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wch (int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvins_wstr (int, int, const wchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvinwstr (int, int, wchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvvline_set (int, int, const cchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wch (WINDOW *, int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchnstr (WINDOW *, int, int, const cchar_t *, int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwadd_wchstr (WINDOW *, int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddnwstr (WINDOW *, int, int, const wchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwaddwstr (WINDOW *, int, int, const wchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wch (WINDOW *, int, int, wint_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwget_wstr (WINDOW *, int, int, wint_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwgetn_wstr (WINDOW *, int, int, wint_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwhline_set (WINDOW *, int, int, const cchar_t *, int);/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wch (WINDOW *, int, int, cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchnstr (WINDOW *, int,int, cchar_t *,int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwin_wchstr (WINDOW *, int, int, cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinnwstr (WINDOW *, int, int, wchar_t *, int);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_nwstr (WINDOW *, int,int, const wchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wch (WINDOW *, int, int, const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwins_wstr (WINDOW *, int, int, const wchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwinwstr (WINDOW *, int, int, wchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) mvwvline_set (WINDOW *, int,int, const cchar_t *,int); /* generated:WIDEC */
+extern NCURSES_EXPORT(int) pecho_wchar (WINDOW *, const cchar_t *);	/* implemented */
+extern NCURSES_EXPORT(int) setcchar (cchar_t *, const wchar_t *, const attr_t, short, const void *);	/* implemented */
+extern NCURSES_EXPORT(int) slk_wset (int, const wchar_t *, int);	/* implemented */
+extern NCURSES_EXPORT(attr_t) term_attrs (void);			/* implemented */
+extern NCURSES_EXPORT(int) unget_wch (const wchar_t);			/* implemented */
+extern NCURSES_EXPORT(int) vid_attr (attr_t, short, void *);		/* implemented */
+extern NCURSES_EXPORT(int) vid_puts (attr_t, short, void *, int (*)(int)); /* implemented */
+extern NCURSES_EXPORT(int) vline_set (const cchar_t *, int);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) wadd_wch (WINDOW *,const cchar_t *);		/* implemented */
+extern NCURSES_EXPORT(int) wadd_wchnstr (WINDOW *,const cchar_t *,int);	/* implemented */
+extern NCURSES_EXPORT(int) wadd_wchstr (WINDOW *,const cchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) waddnwstr (WINDOW *,const wchar_t *,int);	/* implemented */
+extern NCURSES_EXPORT(int) waddwstr (WINDOW *,const wchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) wbkgrnd (WINDOW *,const cchar_t *);		/* implemented */
+extern NCURSES_EXPORT(void) wbkgrndset (WINDOW *,const cchar_t *);	/* implemented */
+extern NCURSES_EXPORT(int) wborder_set (WINDOW *,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*,const cchar_t*);	/* implemented */
+extern NCURSES_EXPORT(int) wecho_wchar (WINDOW *, const cchar_t *);	/* implemented */
+extern NCURSES_EXPORT(int) wget_wch (WINDOW *, wint_t *);		/* implemented */
+extern NCURSES_EXPORT(int) wget_wstr (WINDOW *, wint_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) wgetbkgrnd (WINDOW *, cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) wgetn_wstr (WINDOW *,wint_t *, int);		/* implemented */
+extern NCURSES_EXPORT(int) whline_set (WINDOW *, const cchar_t *, int);	/* implemented */
+extern NCURSES_EXPORT(int) win_wch (WINDOW *, cchar_t *);		/* implemented */
+extern NCURSES_EXPORT(int) win_wchnstr (WINDOW *, cchar_t *, int);	/* implemented */
+extern NCURSES_EXPORT(int) win_wchstr (WINDOW *, cchar_t *);		/* generated:WIDEC */
+extern NCURSES_EXPORT(int) winnwstr (WINDOW *, wchar_t *, int);		/* implemented */
+extern NCURSES_EXPORT(int) wins_nwstr (WINDOW *, const wchar_t *, int);	/* implemented */
+extern NCURSES_EXPORT(int) wins_wch (WINDOW *, const cchar_t *);	/* implemented */
+extern NCURSES_EXPORT(int) wins_wstr (WINDOW *, const wchar_t *);	/* generated:WIDEC */
+extern NCURSES_EXPORT(int) winwstr (WINDOW *, wchar_t *);		/* implemented */
+extern NCURSES_EXPORT(wchar_t*) wunctrl (cchar_t *);			/* implemented */
+extern NCURSES_EXPORT(int) wvline_set (WINDOW *, const cchar_t *, int);	/* implemented */
+
+#ifndef NCURSES_NOMACROS
+
+/*
+ * XSI curses macros for XPG4 conformance.
+ */
+#define add_wch(c)			wadd_wch(stdscr,c)
+#define add_wchnstr(str,n)		wadd_wchnstr(stdscr,str,n)
+#define add_wchstr(str)			wadd_wchstr(stdscr,str)
+#define addnwstr(wstr,n)		waddnwstr(stdscr,wstr,n)
+#define addwstr(wstr)			waddwstr(stdscr,wstr)
+#define bkgrnd(c)			wbkgrnd(stdscr,c)
+#define bkgrndset(c)			wbkgrndset(stdscr,c)
+#define border_set(l,r,t,b,tl,tr,bl,br) wborder_set(stdscr,l,r,t,b,tl,tr,bl,br)
+#define box_set(w,v,h)			wborder_set(w,v,v,h,h,0,0,0,0)
+#define echo_wchar(c)			wecho_wchar(stdscr,c)
+#define get_wch(c)			wget_wch(stdscr,c)
+#define get_wstr(t)			wget_wstr(stdscr,t)
+#define getbkgrnd(wch)			wgetbkgrnd(stdscr,wch)
+#define getn_wstr(t,n)			wgetn_wstr(stdscr,t,n)
+#define hline_set(c,n)			whline_set(stdscr,c,n)
+#define in_wch(c)			win_wch(stdscr,c)
+#define in_wchnstr(c,n)			win_wchnstr(stdscr,c,n)
+#define in_wchstr(c)			win_wchstr(stdscr,c)
+#define innwstr(c,n)			winnwstr(stdscr,c,n)
+#define ins_nwstr(t,n)			wins_nwstr(stdscr,t,n)
+#define ins_wch(c)			wins_wch(stdscr,c)
+#define ins_wstr(t)			wins_wstr(stdscr,t)
+#define inwstr(c)			winwstr(stdscr,c)
+#define vline_set(c,n)			wvline_set(stdscr,c,n)
+#define wadd_wchstr(win,str)		wadd_wchnstr(win,str,-1)
+#define waddwstr(win,wstr)		waddnwstr(win,wstr,-1)
+#define wget_wstr(w,t)			wgetn_wstr(w,t,-1)
+#define win_wchstr(w,c)			win_wchnstr(w,c,-1)
+#define wins_wstr(w,t)			wins_nwstr(w,t,-1)
+
+#if !NCURSES_OPAQUE
+#define wgetbkgrnd(win,wch)		(*wch = win->_bkgrnd, OK)
+#endif
+
+#define mvadd_wch(y,x,c)		mvwadd_wch(stdscr,y,x,c)
+#define mvadd_wchnstr(y,x,s,n)		mvwadd_wchnstr(stdscr,y,x,s,n)
+#define mvadd_wchstr(y,x,s)		mvwadd_wchstr(stdscr,y,x,s)
+#define mvaddnwstr(y,x,wstr,n)		mvwaddnwstr(stdscr,y,x,wstr,n)
+#define mvaddwstr(y,x,wstr)		mvwaddwstr(stdscr,y,x,wstr)
+#define mvget_wch(y,x,c)		mvwget_wch(stdscr,y,x,c)
+#define mvget_wstr(y,x,t)		mvwget_wstr(stdscr,y,x,t)
+#define mvgetn_wstr(y,x,t,n)		mvwgetn_wstr(stdscr,y,x,t,n)
+#define mvhline_set(y,x,c,n)		mvwhline_set(stdscr,y,x,c,n)
+#define mvin_wch(y,x,c)			mvwin_wch(stdscr,y,x,c)
+#define mvin_wchnstr(y,x,c,n)		mvwin_wchnstr(stdscr,y,x,c,n)
+#define mvin_wchstr(y,x,c)		mvwin_wchstr(stdscr,y,x,c)
+#define mvinnwstr(y,x,c,n)		mvwinnwstr(stdscr,y,x,c,n)
+#define mvins_nwstr(y,x,t,n)		mvwins_nwstr(stdscr,y,x,t,n)
+#define mvins_wch(y,x,c)		mvwins_wch(stdscr,y,x,c)
+#define mvins_wstr(y,x,t)		mvwins_wstr(stdscr,y,x,t)
+#define mvinwstr(y,x,c)			mvwinwstr(stdscr,y,x,c)
+#define mvvline_set(y,x,c,n)		mvwvline_set(stdscr,y,x,c,n)
+
+#define mvwadd_wch(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : wadd_wch(win,c))
+#define mvwadd_wchnstr(win,y,x,s,n)	(wmove(win,y,x) == ERR ? ERR : wadd_wchnstr(win,s,n))
+#define mvwadd_wchstr(win,y,x,s)	(wmove(win,y,x) == ERR ? ERR : wadd_wchstr(win,s))
+#define mvwaddnwstr(win,y,x,wstr,n)	(wmove(win,y,x) == ERR ? ERR : waddnwstr(win,wstr,n))
+#define mvwaddwstr(win,y,x,wstr)	(wmove(win,y,x) == ERR ? ERR : waddwstr(win,wstr))
+#define mvwget_wch(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : wget_wch(win,c))
+#define mvwget_wstr(win,y,x,t)		(wmove(win,y,x) == ERR ? ERR : wget_wstr(win,t))
+#define mvwgetn_wstr(win,y,x,t,n)	(wmove(win,y,x) == ERR ? ERR : wgetn_wstr(win,t,n))
+#define mvwhline_set(win,y,x,c,n)	(wmove(win,y,x) == ERR ? ERR : whline_set(win,c,n))
+#define mvwin_wch(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : win_wch(win,c))
+#define mvwin_wchnstr(win,y,x,c,n)	(wmove(win,y,x) == ERR ? ERR : win_wchnstr(win,c,n))
+#define mvwin_wchstr(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : win_wchstr(win,c))
+#define mvwinnwstr(win,y,x,c,n)		(wmove(win,y,x) == ERR ? ERR : winnwstr(win,c,n))
+#define mvwins_nwstr(win,y,x,t,n)	(wmove(win,y,x) == ERR ? ERR : wins_nwstr(win,t,n))
+#define mvwins_wch(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : wins_wch(win,c))
+#define mvwins_wstr(win,y,x,t)		(wmove(win,y,x) == ERR ? ERR : wins_wstr(win,t))
+#define mvwinwstr(win,y,x,c)		(wmove(win,y,x) == ERR ? ERR : winwstr(win,c))
+#define mvwvline_set(win,y,x,c,n)	(wmove(win,y,x) == ERR ? ERR : wvline_set(win,c,n))
+
+#endif /* NCURSES_NOMACROS */
+
+#if defined(TRACE) || defined(NCURSES_TEST)
+extern NCURSES_EXPORT(const char *) _nc_viswbuf(const wchar_t *);
+extern NCURSES_EXPORT(const char *) _nc_viswibuf(const wint_t *);
+#endif
+
+#endif /* _XOPEN_SOURCE_EXTENDED */
diff --git a/include/edit_cfg.sh b/include/edit_cfg.sh
new file mode 100755
index 0000000..8d64fee
--- /dev/null
+++ b/include/edit_cfg.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+# $Id: edit_cfg.sh,v 1.12 2001/12/23 00:52:40 tom Exp $
+##############################################################################
+# Copyright (c) 1998,2000,2001 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 E. Dickey <dickey@clark.net> 1996,1997,2000
+#
+# Edit the default value of the term.h file based on the autoconf-generated
+# values:
+#
+#	$1 = ncurses_cfg.h
+#	$2 = term.h
+#
+BAK=save$$
+TMP=edit$$
+trap "rm -f $BAK $TMP" 0 1 2 5 15
+for name in \
+	HAVE_TCGETATTR \
+	HAVE_TERMIOS_H \
+	HAVE_TERMIO_H \
+	BROKEN_LINKER
+do
+	mv $2 $BAK
+	if ( grep "[ 	]$name[ 	]" $1 2>&1 >$TMP )
+	then
+		value=1
+	else
+		value=0
+	fi
+	echo '** edit: '$name $value
+	sed \
+		-e "s@#define ${name}.*\$@#define $name $value@" \
+		-e "s@#if $name\$@#if $value /* $name */@" \
+		-e "s@#if !$name\$@#if $value /* !$name */@" \
+		$BAK >$2
+	if (cmp -s $2 $BAK)
+	then
+		mv $BAK $2
+	else
+		rm -f $BAK
+	fi
+done
diff --git a/include/hashed_db.h b/include/hashed_db.h
new file mode 100644
index 0000000..4dd3933
--- /dev/null
+++ b/include/hashed_db.h
@@ -0,0 +1,67 @@
+/****************************************************************************
+ * Copyright (c) 2006 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 E. Dickey                        2006                    *
+ ****************************************************************************/
+
+/*
+ * $Id: hashed_db.h,v 1.5 2006/08/19 15:58:34 tom Exp $
+ */
+
+#ifndef HASHED_DB_H
+#define HASHED_DB_H 1
+
+#include <curses.h>
+
+#if USE_HASHED_DB
+
+#include <db.h>
+
+#ifndef DBN_SUFFIX
+#define DBM_SUFFIX ".db"
+#endif
+
+#ifdef DB_VERSION_MAJOR
+#define HASHED_DB_API DB_VERSION_MAJOR
+#else
+#define HASHED_DB_API 1		/* e.g., db 1.8.5 */
+#endif
+
+extern NCURSES_EXPORT(DB *) _nc_db_open(const char * /* path */, bool /* modify */);
+extern NCURSES_EXPORT(bool) _nc_db_have_data(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */);
+extern NCURSES_EXPORT(bool) _nc_db_have_index(DBT * /* key */, DBT * /* data */, char ** /* buffer */, int * /* size */);
+extern NCURSES_EXPORT(int) _nc_db_close(DB * /* db */);
+extern NCURSES_EXPORT(int) _nc_db_first(DB * /* db */, DBT * /* key */, DBT * /* data */);
+extern NCURSES_EXPORT(int) _nc_db_next(DB * /* db */, DBT * /* key */, DBT * /* data */);
+extern NCURSES_EXPORT(int) _nc_db_get(DB * /* db */, DBT * /* key */, DBT * /* data */);
+extern NCURSES_EXPORT(int) _nc_db_put(DB * /* db */, DBT * /* key */, DBT * /* data */);
+
+#endif
+
+#endif /* HASHED_DB_H */
diff --git a/include/headers b/include/headers
new file mode 100644
index 0000000..a24bd90
--- /dev/null
+++ b/include/headers
@@ -0,0 +1,42 @@
+# $Id: headers,v 1.9 2007/01/20 19:57:04 Miroslav.Lichvar Exp $
+##############################################################################
+# Copyright (c) 1998-2006,2007 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 E. Dickey	1996-on
+#
+term.h
+curses.h
+unctrl.h
+termcap.h
+$(srcdir)/ncurses_dll.h
+@ ticlib
+$(srcdir)/tic.h
+$(srcdir)/term_entry.h
+$(srcdir)/nc_tparm.h
+
+# vile:makemode
diff --git a/include/nc_alloc.h b/include/nc_alloc.h
new file mode 100644
index 0000000..f521bff
--- /dev/null
+++ b/include/nc_alloc.h
@@ -0,0 +1,106 @@
+/****************************************************************************
+ * Copyright (c) 1998-2007,2008 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 E. Dickey                    1996-on                     *
+ ****************************************************************************/
+/* $Id: nc_alloc.h,v 1.16 2008/09/27 22:30:33 tom Exp $ */
+
+#ifndef NC_ALLOC_included
+#define NC_ALLOC_included 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if HAVE_LIBDMALLOC
+#include <string.h>
+#undef strndup		/* workaround for #define in GLIBC 2.7 */
+#include <dmalloc.h>    /* Gray Watson's library */
+#else
+#undef  HAVE_LIBDMALLOC
+#define HAVE_LIBDMALLOC 0
+#endif
+
+#if HAVE_LIBDBMALLOC
+#include <dbmalloc.h>   /* Conor Cahill's library */
+#else
+#undef  HAVE_LIBDBMALLOC
+#define HAVE_LIBDBMALLOC 0
+#endif
+
+#if HAVE_LIBMPATROL
+#include <mpatrol.h>    /* Memory-Patrol library */
+#else
+#undef  HAVE_LIBMPATROL
+#define HAVE_LIBMPATROL 0
+#endif
+
+#ifndef NO_LEAKS
+#define NO_LEAKS 0
+#endif
+
+#if HAVE_LIBDBMALLOC || HAVE_LIBDMALLOC || NO_LEAKS
+#define HAVE_NC_FREEALL 1
+struct termtype;
+extern NCURSES_EXPORT(void) _nc_free_and_exit(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tinfo(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tic(int) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_free_tparm(void);
+extern NCURSES_EXPORT(void) _nc_leaks_dump_entry(void);
+extern NCURSES_EXPORT(void) _nc_leaks_tic(void);
+#define ExitProgram(code) _nc_free_and_exit(code)
+#endif
+
+#ifndef HAVE_NC_FREEALL
+#define HAVE_NC_FREEALL 0
+#endif
+
+#ifndef ExitProgram
+#define ExitProgram(code) exit(code)
+#endif
+
+/* doalloc.c */
+extern NCURSES_EXPORT(void *) _nc_doalloc(void *, size_t);
+#if !HAVE_STRDUP
+#define strdup _nc_strdup
+extern NCURSES_EXPORT(char *) _nc_strdup(const char *);
+#endif
+
+/* entries.c */
+extern NCURSES_EXPORT(void) _nc_leaks_tinfo(void);
+
+#define typeMalloc(type,elts) (type *)malloc((elts)*sizeof(type))
+#define typeCalloc(type,elts) (type *)calloc((elts),sizeof(type))
+#define typeRealloc(type,elts,ptr) (type *)_nc_doalloc(ptr, (elts)*sizeof(type))
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NC_ALLOC_included */
diff --git a/include/nc_panel.h b/include/nc_panel.h
new file mode 100644
index 0000000..6578577
--- /dev/null
+++ b/include/nc_panel.h
@@ -0,0 +1,69 @@
+/****************************************************************************
+ * Copyright (c) 1998-2000,2008 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: Juergen Pfeifer                        1997                     *
+ *     and: Thomas E. Dickey                                                *
+ ****************************************************************************/
+
+
+/*
+ * $Id: nc_panel.h,v 1.5 2008/08/04 18:26:46 tom Exp $
+ *
+ *	nc_panel.h
+ *
+ *	Headerfile to provide an interface for the panel layer into
+ *      the SCREEN structure of the ncurses core.
+ */
+
+#ifndef NC_PANEL_H
+#define NC_PANEL_H 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct panel; /* Forward Declaration */
+
+struct panelhook {
+  struct panel*   top_panel;
+  struct panel*   bottom_panel;
+  struct panel*   stdscr_pseudo_panel;
+#if NO_LEAKS
+  int (*destroy)(struct panel *);
+#endif
+};
+
+/* Retrieve the panelhook of the current screen */
+extern NCURSES_EXPORT(struct panelhook*) _nc_panelhook (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NC_PANEL_H */
diff --git a/include/nc_tparm.h b/include/nc_tparm.h
new file mode 100644
index 0000000..d1d769b
--- /dev/null
+++ b/include/nc_tparm.h
@@ -0,0 +1,65 @@
+/****************************************************************************
+ * Copyright (c) 2006 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 E. Dickey                        2006                    *
+ ****************************************************************************/
+
+/* $Id: nc_tparm.h,v 1.4 2006/11/26 00:49:25 tom Exp $ */
+
+/*
+ * Cast parameters past the formatting-string for tparm() to match the
+ * assumption of the varargs code.
+ */
+#define TPARM_ARG long
+#define TPARM_N(n) (TPARM_ARG)(n)
+
+#define TPARM_9(a,b,c,d,e,f,g,h,i,j) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i),TPARM_N(j))
+
+#if NCURSES_TPARM_VARARGS
+#define TPARM_8(a,b,c,d,e,f,g,h,i) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h),TPARM_N(i))
+#define TPARM_7(a,b,c,d,e,f,g,h) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g),TPARM_N(h))
+#define TPARM_6(a,b,c,d,e,f,g) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f),TPARM_N(g))
+#define TPARM_5(a,b,c,d,e,f) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e),TPARM_N(f))
+#define TPARM_4(a,b,c,d,e) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d),TPARM_N(e))
+#define TPARM_3(a,b,c,d) tparm(a,TPARM_N(b),TPARM_N(c),TPARM_N(d))
+#define TPARM_2(a,b,c) tparm(a,TPARM_N(b),TPARM_N(c))
+#define TPARM_1(a,b) tparm(a,TPARM_N(b))
+#define TPARM_0(a) tparm(a)
+#else
+#define TPARM_8(a,b,c,d,e,f,g,h,i) TPARM_9(a,b,c,d,e,f,g,h,i,0)
+#define TPARM_7(a,b,c,d,e,f,g,h) TPARM_8(a,b,c,d,e,f,g,h,0)
+#define TPARM_6(a,b,c,d,e,f,g) TPARM_7(a,b,c,d,e,f,g,0)
+#define TPARM_5(a,b,c,d,e,f) TPARM_6(a,b,c,d,e,f,0)
+#define TPARM_4(a,b,c,d,e) TPARM_5(a,b,c,d,e,0)
+#define TPARM_3(a,b,c,d) TPARM_4(a,b,c,d,0)
+#define TPARM_2(a,b,c) TPARM_3(a,b,c,0)
+#define TPARM_1(a,b) TPARM_2(a,b,0)
+#define TPARM_1(a,b) TPARM_2(a,b,0)
+#define TPARM_0(a) TPARM_1(a,0)
+#endif
diff --git a/include/ncurses_cfg.hin b/include/ncurses_cfg.hin
new file mode 100644
index 0000000..3f8a482
--- /dev/null
+++ b/include/ncurses_cfg.hin
@@ -0,0 +1,72 @@
+/****************************************************************************
+ * Copyright (c) 1998-2004,2005 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 E. Dickey <dickey@clark.net> 1997                        *
+ ****************************************************************************/
+/*
+ * $Id: ncurses_cfg.hin,v 1.7 2005/01/02 01:26:58 tom Exp $
+ *
+ * This is a template-file used to generate the "ncurses_cfg.h" file.
+ *
+ * Rather than list every definition, the configuration script substitutes the
+ * definitions that it finds using 'sed'.  You need a patch (original date
+ * 971222) to autoconf 2.12 or 2.13 to do this.
+ *
+ * See:
+ *	http://invisible-island.net/autoconf/
+ *	ftp://invisible-island.net/autoconf/
+ */
+#ifndef NC_CONFIG_H
+#define NC_CONFIG_H
+@DEFS@
+
+#include <ncurses_def.h>
+
+	/* The C compiler may not treat these properly but C++ has to */
+#ifdef __cplusplus
+#undef const
+#undef inline
+#else
+#if defined(lint) || defined(TRACE)
+#undef inline
+#define inline /* nothing */
+#endif
+#endif
+
+	/* On HP-UX, the C compiler doesn't grok mbstate_t without
+	   -D_XOPEN_SOURCE=500. However, this causes problems on
+	   IRIX. So, we #define mbstate_t to int in configure.in
+	   only for the C compiler if needed. */
+#ifndef __cplusplus
+#ifdef NEED_MBSTATE_T_DEF
+#define mbstate_t int
+#endif
+#endif
+
+#endif /* NC_CONFIG_H */
diff --git a/include/ncurses_defs b/include/ncurses_defs
new file mode 100644
index 0000000..97a377d
--- /dev/null
+++ b/include/ncurses_defs
@@ -0,0 +1,208 @@
+# $Id: ncurses_defs,v 1.40 2008/09/06 15:57:41 tom Exp $
+##############################################################################
+# Copyright (c) 2000-2007,2008 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.                                                             #
+##############################################################################
+#
+# See "MKncurses_def.sh" for an explanation.
+#
+# (hint: don't try to define NDEBUG ;-)
+
+BROKEN_LINKER
+BSD_TPUTS
+CC_HAS_PROTOS
+CPP_HAS_PARAM_INIT
+CURSES_ACS_ARRAY	acs_map
+CURSES_WACS_ARRAY	_nc_wacs
+DECL_ERRNO
+ETIP_NEEDS_MATH_H
+GCC_NORETURN	/* nothing */
+GCC_UNUSED	/* nothing */
+HAVE_BIG_CORE
+HAVE_BSD_CGETENT
+HAVE_BSD_SIGNAL_H
+HAVE_BTOWC 
+HAVE_BUILTIN_H
+HAVE_CHGAT	1
+HAVE_COLOR_SET	1
+HAVE_DIRENT_H
+HAVE_ERRNO
+HAVE_FCNTL_H
+HAVE_FILTER	1
+HAVE_FORM_H
+HAVE_GETBEGX	1
+HAVE_GETCURX	1
+HAVE_GETCWD
+HAVE_GETEGID
+HAVE_GETEUID
+HAVE_GETMAXX	1
+HAVE_GETNSTR
+HAVE_GETOPT_H
+HAVE_GETPARX	1
+HAVE_GETTIMEOFDAY
+HAVE_GETTTYNAM
+HAVE_GETWIN	1
+HAVE_GPM_H
+HAVE_GPP_BUILTIN_H
+HAVE_GXX_BUILTIN_H
+HAVE_HAS_KEY
+HAVE_IOSTREAM
+HAVE_ISASCII
+HAVE_ISSETUGID
+HAVE_LANGINFO_CODESET
+HAVE_LIBC_H
+HAVE_LIBDBMALLOC
+HAVE_LIBDMALLOC
+HAVE_LIBFORM
+HAVE_LIBGPM
+HAVE_LIBMENU
+HAVE_LIBMPATROL
+HAVE_LIBPANEL
+HAVE_LIMITS_H
+HAVE_LINK
+HAVE_LOCALE_H
+HAVE_LONG_FILE_NAMES
+HAVE_MBLEN
+HAVE_MBRLEN
+HAVE_MBRTOWC
+HAVE_MBSRTOWCS
+HAVE_MBSTOWCS
+HAVE_MBTOWC
+HAVE_MENU_H
+HAVE_MKSTEMP
+HAVE_MVVLINE	1
+HAVE_MVWVLINE	1
+HAVE_NANOSLEEP
+HAVE_NC_ALLOC_H
+HAVE_PANEL_H
+HAVE_POLL
+HAVE_POLL_H
+HAVE_PURIFY
+HAVE_PUTWC 
+HAVE_PUTWIN	1
+HAVE_REGEXPR_H_FUNCS
+HAVE_REGEXP_H_FUNCS
+HAVE_REGEX_H_FUNCS
+HAVE_REMOVE
+HAVE_RESIZETERM
+HAVE_RESIZE_TERM
+HAVE_RIPOFFLINE	1
+HAVE_SELECT
+HAVE_SETBUF
+HAVE_SETBUFFER
+HAVE_SETUPTERM	1
+HAVE_SETVBUF
+HAVE_SIGACTION
+HAVE_SIGVEC
+HAVE_SIZECHANGE
+HAVE_SLK_COLOR
+HAVE_SLK_INIT	1
+HAVE_STRDUP
+HAVE_STRSTR
+HAVE_SYMLINK
+HAVE_SYS_BSDTYPES_H
+HAVE_SYS_IOCTL_H
+HAVE_SYS_PARAM_H
+HAVE_SYS_POLL_H
+HAVE_SYS_SELECT_H
+HAVE_SYS_TERMIO_H
+HAVE_SYS_TIMES_H
+HAVE_SYS_TIME_H
+HAVE_SYS_TIME_SELECT
+HAVE_TCGETATTR
+HAVE_TCGETPGRP
+HAVE_TELL
+HAVE_TERMATTRS	1
+HAVE_TERMIOS_H
+HAVE_TERMIO_H
+HAVE_TERMNAME	1
+HAVE_TERM_H	1
+HAVE_TGETENT	1
+HAVE_TIGETNUM	1
+HAVE_TIGETSTR	1
+HAVE_TIMES
+HAVE_TTYENT_H
+HAVE_TYPEAHEAD	1
+HAVE_TYPEINFO
+HAVE_TYPE_ATTR_T
+HAVE_TYPE_SIGACTION
+HAVE_UNISTD_H
+HAVE_UNLINK
+HAVE_USE_DEFAULT_COLORS
+HAVE_VFSCANF
+HAVE_VSNPRINTF
+HAVE_VSSCANF
+HAVE_WCSRTOMBS
+HAVE_WCSTOMBS
+HAVE_WCTOB 
+HAVE_WCTOMB
+HAVE_WCTYPE_H
+HAVE_WINSSTR	1
+HAVE_WORKING_POLL
+HAVE_WRESIZE
+HAVE__DOSCAN
+MIXEDCASE_FILENAMES
+NCURSES_CHAR_EQ
+NCURSES_EXPANDED
+NCURSES_EXT_COLORS
+NCURSES_EXT_FUNCS
+NCURSES_NO_PADDING
+NCURSES_PATHSEP	':'
+NDEBUG
+NEED_PTEM_H
+NO_LEAKS
+PURE_TERMINFO
+RETSIGTYPE
+STDC_HEADERS
+SVR4_ACTION
+SVR4_TERMIO
+SYSTEM_NAME	"unknown"
+TERMINFO	"none"
+TERMPATH	"none"
+TIME_WITH_SYS_TIME
+TYPEOF_CHTYPE
+USE_COLORFGBG
+USE_DATABASE
+USE_GETCAP
+USE_GETCAP_CACHE
+USE_HARD_TABS
+USE_HASHED_DB
+USE_HASHMAP
+USE_HOME_TERMINFO
+USE_LINKS
+USE_MY_MEMMOVE
+USE_OK_BCOPY
+USE_RCS_IDS
+USE_REENTRANT
+USE_SAFE_SPRINTF
+USE_SCROLL_HINTS
+USE_SIGWINCH
+USE_SYMLINKS
+USE_SYSMOUSE
+USE_TERMCAP
+USE_WEAK_SYMBOLS
+USE_WIDEC_SUPPORT
+USE_XMC_SUPPORT
diff --git a/include/ncurses_dll.h b/include/ncurses_dll.h
new file mode 100644
index 0000000..e24feee
--- /dev/null
+++ b/include/ncurses_dll.h
@@ -0,0 +1,86 @@
+/****************************************************************************
+ * Copyright (c) 1998-2006,2007 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.                                                           *
+ ****************************************************************************/
+/* $Id: ncurses_dll.h,v 1.6 2007/03/10 19:21:49 tom Exp $ */
+
+#ifndef NCURSES_DLL_H_incl
+#define NCURSES_DLL_H_incl 1
+
+/* no longer needed on cygwin or mingw, thanks to auto-import       */
+/* but this structure may be useful at some point for an MSVC build */
+/* so, for now unconditionally define the important flags           */
+/* "the right way" for proper static and dll+auto-import behavior   */
+#undef NCURSES_DLL
+#define NCURSES_STATIC
+
+#if defined(__CYGWIN__)
+#  if defined(NCURSES_DLL)
+#    if defined(NCURSES_STATIC)
+#      undef NCURSES_STATIC
+#    endif
+#  endif
+#  undef NCURSES_IMPEXP
+#  undef NCURSES_API
+#  undef NCURSES_EXPORT
+#  undef NCURSES_EXPORT_VAR
+#  if defined(NCURSES_DLL)
+/* building a DLL */
+#    define NCURSES_IMPEXP __declspec(dllexport)
+#  elif defined(NCURSES_STATIC)
+/* building or linking to a static library */
+#    define NCURSES_IMPEXP /* nothing */
+#  else
+/* linking to the DLL */
+#    define NCURSES_IMPEXP __declspec(dllimport)
+#  endif
+#  define NCURSES_API __cdecl
+#  define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+#  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+#endif
+
+/* Take care of non-cygwin platforms */
+#if !defined(NCURSES_IMPEXP)
+#  define NCURSES_IMPEXP /* nothing */
+#endif
+#if !defined(NCURSES_API)
+#  define NCURSES_API /* nothing */
+#endif
+#if !defined(NCURSES_EXPORT)
+#  define NCURSES_EXPORT(type) NCURSES_IMPEXP type NCURSES_API
+#endif
+#if !defined(NCURSES_EXPORT_VAR)
+#  define NCURSES_EXPORT_VAR(type) NCURSES_IMPEXP type
+#endif
+
+/*
+ * For reentrant code, we map the various global variables into SCREEN by
+ * using functions to access them.
+ */
+#define NCURSES_PUBLIC_VAR(name) _nc_##name
+#define NCURSES_WRAPPED_VAR(type,name) extern type NCURSES_PUBLIC_VAR(name)(void)
+
+#endif /* NCURSES_DLL_H_incl */
diff --git a/include/term_entry.h b/include/term_entry.h
new file mode 100644
index 0000000..fb87540
--- /dev/null
+++ b/include/term_entry.h
@@ -0,0 +1,168 @@
+/****************************************************************************
+ * Copyright (c) 1998-2005,2008 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>                         *
+ *     and: Thomas E. Dickey                        1998-on                 *
+ ****************************************************************************/
+
+/* $Id: term_entry.h,v 1.35 2008/08/16 16:16:03 tom Exp $ */
+
+/*
+ *	term_entry.h -- interface to entry-manipulation code
+ */
+
+#ifndef NCURSES_TERM_ENTRY_H_incl
+#define NCURSES_TERM_ENTRY_H_incl 1
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <term.h>
+
+#define MAX_USES	32
+#define MAX_CROSSLINKS	16
+
+typedef struct entry {
+	TERMTYPE	tterm;
+	unsigned	nuses;
+	struct
+        {
+	    char		*name;
+	    struct entry	*link;
+	    long		line;
+        }
+	uses[MAX_USES];
+	int		ncrosslinks;
+	struct entry	*crosslinks[MAX_CROSSLINKS];
+	long		cstart, cend;
+	long		startline;
+	struct entry	*next;
+	struct entry	*last;
+}
+ENTRY;
+
+#if NCURSES_XNAMES
+#define NUM_BOOLEANS(tp) (tp)->num_Booleans
+#define NUM_NUMBERS(tp)  (tp)->num_Numbers
+#define NUM_STRINGS(tp)  (tp)->num_Strings
+#define EXT_NAMES(tp,i,limit,index,table) (i >= limit) ? tp->ext_Names[index] : table[i]
+#else
+#define NUM_BOOLEANS(tp) BOOLCOUNT
+#define NUM_NUMBERS(tp)  NUMCOUNT
+#define NUM_STRINGS(tp)  STRCOUNT
+#define EXT_NAMES(tp,i,limit,index,table) table[i]
+#endif
+
+#define NUM_EXT_NAMES(tp) ((tp)->ext_Booleans + (tp)->ext_Numbers + (tp)->ext_Strings)
+
+#define for_each_boolean(n,tp) for(n = 0; n < NUM_BOOLEANS(tp); n++)
+#define for_each_number(n,tp)  for(n = 0; n < NUM_NUMBERS(tp);  n++)
+#define for_each_string(n,tp)  for(n = 0; n < NUM_STRINGS(tp);  n++)
+
+#define ExtBoolname(tp,i,names) EXT_NAMES(tp, i, BOOLCOUNT, (i - (tp->num_Booleans - tp->ext_Booleans)), names)
+#define ExtNumname(tp,i,names)  EXT_NAMES(tp, i, NUMCOUNT, (i - (tp->num_Numbers - tp->ext_Numbers)) + tp->ext_Booleans, names)
+#define ExtStrname(tp,i,names)  EXT_NAMES(tp, i, STRCOUNT, (i - (tp->num_Strings - tp->ext_Strings)) + (tp->ext_Numbers + tp->ext_Booleans), names)
+
+extern NCURSES_EXPORT_VAR(ENTRY *) _nc_head;
+extern NCURSES_EXPORT_VAR(ENTRY *) _nc_tail;
+#define for_entry_list(qp)	for (qp = _nc_head; qp; qp = qp->next)
+
+#define MAX_LINE	132
+
+#define NULLHOOK        (bool(*)(ENTRY *))0
+
+/*
+ * Note that WANTED and PRESENT are not simple inverses!  If a capability
+ * has been explicitly cancelled, it's not considered WANTED.
+ */
+#define WANTED(s)	((s) == ABSENT_STRING)
+#define PRESENT(s)	(((s) != ABSENT_STRING) && ((s) != CANCELLED_STRING))
+
+#define ANDMISSING(p,q) \
+		{if (PRESENT(p) && !PRESENT(q)) _nc_warning(#p " but no " #q);}
+
+#define PAIRED(p,q) \
+		{ \
+		if (PRESENT(q) && !PRESENT(p)) \
+			_nc_warning(#q " but no " #p); \
+		if (PRESENT(p) && !PRESENT(q)) \
+			_nc_warning(#p " but no " #q); \
+		}
+
+/* alloc_entry.c: elementary allocation code */
+extern NCURSES_EXPORT(ENTRY *) _nc_copy_entry (ENTRY *oldp);
+extern NCURSES_EXPORT(char *) _nc_save_str (const char *const);
+extern NCURSES_EXPORT(void) _nc_init_entry (TERMTYPE *const);
+extern NCURSES_EXPORT(void) _nc_merge_entry (TERMTYPE *const, TERMTYPE *const);
+extern NCURSES_EXPORT(void) _nc_wrap_entry (ENTRY *const, bool);
+
+/* alloc_ttype.c: elementary allocation code */
+extern NCURSES_EXPORT(void) _nc_align_termtype (TERMTYPE *, TERMTYPE *);
+extern NCURSES_EXPORT(void) _nc_copy_termtype (TERMTYPE *, TERMTYPE *);
+
+/* free_ttype.c: elementary allocation code */
+extern NCURSES_EXPORT(void) _nc_free_termtype (TERMTYPE *);
+
+/* lib_acs.c */
+extern NCURSES_EXPORT(void) _nc_init_acs (void);	/* corresponds to traditional 'init_acs()' */
+
+/* lib_termcap.c: trim sgr0 string for termcap users */
+extern NCURSES_EXPORT(char *) _nc_trim_sgr0 (TERMTYPE *);
+
+/* parse_entry.c: entry-parsing code */
+#if NCURSES_XNAMES
+extern NCURSES_EXPORT_VAR(bool) _nc_user_definable;
+extern NCURSES_EXPORT_VAR(bool) _nc_disable_period;
+#endif
+extern NCURSES_EXPORT(int) _nc_parse_entry (ENTRY *, int, bool);
+extern NCURSES_EXPORT(int) _nc_capcmp (const char *, const char *);
+
+/* write_entry.c: writing an entry to the file system */
+extern NCURSES_EXPORT(void) _nc_set_writedir (char *);
+extern NCURSES_EXPORT(void) _nc_write_entry (TERMTYPE *const);
+
+/* comp_parse.c: entry list handling */
+extern NCURSES_EXPORT(void) _nc_read_entry_source (FILE*, char*, int, bool, bool (*)(ENTRY*));
+extern NCURSES_EXPORT(bool) _nc_entry_match (char *, char *);
+extern NCURSES_EXPORT(int) _nc_resolve_uses (bool); /* obs 20040705 */
+extern NCURSES_EXPORT(int) _nc_resolve_uses2 (bool, bool);
+extern NCURSES_EXPORT(void) _nc_free_entries (ENTRY *);
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype)(TERMTYPE *); /* obs 20040705 */
+extern NCURSES_IMPEXP void NCURSES_API (*_nc_check_termtype2)(TERMTYPE *, bool);
+
+/* trace_xnames.c */
+extern NCURSES_EXPORT(void) _nc_trace_xnames (TERMTYPE *);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NCURSES_TERM_ENTRY_H_incl */
diff --git a/include/termcap.h.in b/include/termcap.h.in
new file mode 100644
index 0000000..6adc312
--- /dev/null
+++ b/include/termcap.h.in
@@ -0,0 +1,75 @@
+/****************************************************************************
+ * Copyright (c) 1998,2000 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: termcap.h.in,v 1.16 2001/03/24 21:53:27 tom Exp $ */
+
+#ifndef NCURSES_TERMCAP_H_incl
+#define NCURSES_TERMCAP_H_incl	1
+
+#undef  NCURSES_VERSION
+#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
+
+#include <ncurses_dll.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+#include <sys/types.h>
+
+#undef  NCURSES_CONST 
+#define NCURSES_CONST @NCURSES_CONST@ 
+
+#undef  NCURSES_OSPEED 
+#define NCURSES_OSPEED @NCURSES_OSPEED@ 
+
+extern NCURSES_EXPORT_VAR(char) PC;
+extern NCURSES_EXPORT_VAR(char *) UP;
+extern NCURSES_EXPORT_VAR(char *) BC;
+extern NCURSES_EXPORT_VAR(NCURSES_OSPEED) ospeed; 
+
+#if !defined(NCURSES_TERM_H_incl)
+extern NCURSES_EXPORT(char *) tgetstr (NCURSES_CONST char *, char **);
+extern NCURSES_EXPORT(char *) tgoto (const char *, int, int);
+extern NCURSES_EXPORT(int) tgetent (char *, const char *);
+extern NCURSES_EXPORT(int) tgetflag (NCURSES_CONST char *);
+extern NCURSES_EXPORT(int) tgetnum (NCURSES_CONST char *);
+extern NCURSES_EXPORT(int) tputs (const char *, int, int (*)(int));
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NCURSES_TERMCAP_H_incl */
diff --git a/include/tic.h b/include/tic.h
new file mode 100644
index 0000000..4e10399
--- /dev/null
+++ b/include/tic.h
@@ -0,0 +1,332 @@
+/****************************************************************************
+ * Copyright (c) 1998-2006,2007 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>                         *
+ *     and: Thomas E. Dickey 1996 on                                        *
+ ****************************************************************************/
+
+/*
+ * $Id: tic.h,v 1.62 2007/08/11 16:12:43 tom Exp $
+ *	tic.h - Global variables and structures for the terminfo
+ *			compiler.
+ */
+
+#ifndef __TIC_H
+#define __TIC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <curses.h>	/* for the _tracef() prototype, ERR/OK, bool defs */
+
+/*
+** The format of compiled terminfo files is as follows:
+**
+**		Header (12 bytes), containing information given below
+**		Names Section, containing the names of the terminal
+**		Boolean Section, containing the values of all of the
+**				boolean capabilities
+**				A null byte may be inserted here to make
+**				sure that the Number Section begins on an
+**				even word boundary.
+**		Number Section, containing the values of all of the numeric
+**				capabilities, each as a short integer
+**		String Section, containing short integer offsets into the
+**				String Table, one per string capability
+**		String Table, containing the actual characters of the string
+**				capabilities.
+**
+**	NOTE that all short integers in the file are stored using VAX/PDP-style
+**	byte-order, i.e., least-significant byte first.
+**
+**	There is no structure definition here because it would only confuse
+**	matters.  Terminfo format is a raw byte layout, not a structure
+**	dump.  If you happen to be on a little-endian machine with 16-bit
+**	shorts that requires no padding between short members in a struct,
+**	then there is a natural C structure that captures the header, but
+**	not very helpfully.
+*/
+
+#define MAGIC		0432	/* first two bytes of a compiled entry */
+
+#undef  BYTE
+#define BYTE(p,n)	(unsigned char)((p)[n])
+
+#define IS_NEG1(p)	((BYTE(p,0) == 0377) && (BYTE(p,1) == 0377))
+#define IS_NEG2(p)	((BYTE(p,0) == 0376) && (BYTE(p,1) == 0377))
+#define LOW_MSB(p)	(BYTE(p,0) + 256*BYTE(p,1))
+
+#define IS_TIC_MAGIC(p)	(LOW_MSB(p) == MAGIC)
+
+/*
+ * The "maximum" here is misleading; XSI guarantees minimum values, which a
+ * given implementation may exceed.
+ */
+#define MAX_NAME_SIZE	512	/* maximum legal name field size (XSI:127) */
+#define MAX_ENTRY_SIZE	4096	/* maximum legal entry size */
+
+/*
+ * The maximum size of individual name or alias is guaranteed in XSI to be at
+ * least 14, since that corresponds to the older filename lengths.  Newer
+ * systems allow longer aliases, though not many terminal descriptions are
+ * written to use them.  The MAX_ALIAS symbol is used for warnings.
+ */
+#if HAVE_LONG_FILE_NAMES
+#define MAX_ALIAS	32	/* smaller than POSIX minimum for PATH_MAX */
+#else
+#define MAX_ALIAS	14	/* SVr3 filename length */
+#endif
+
+/* location of user's personal info directory */
+#define PRIVATE_INFO	"%s/.terminfo"	/* plug getenv("HOME") into %s */
+
+/*
+ * Some traces are designed to be used via tic's verbose option (and similar in
+ * infocmp and toe) rather than the 'trace()' function.  So we use the bits
+ * above the normal trace() parameter as a debug-level.
+ */
+
+#define MAX_DEBUG_LEVEL 15
+#define DEBUG_LEVEL(n)	((n) << TRACE_SHIFT)
+
+#define set_trace_level(n) \
+	_nc_tracing &= DEBUG_LEVEL(MAX_DEBUG_LEVEL), \
+	_nc_tracing |= DEBUG_LEVEL(n)
+
+#ifdef TRACE
+#define DEBUG(n, a)	if (_nc_tracing >= DEBUG_LEVEL(n)) _tracef a
+#else
+#define DEBUG(n, a)	/*nothing*/
+#endif
+
+extern NCURSES_EXPORT_VAR(unsigned) _nc_tracing;
+extern NCURSES_EXPORT(void) _nc_tracef (char *, ...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT(const char *) _nc_visbuf (const char *);
+extern NCURSES_EXPORT(const char *) _nc_visbuf2 (int, const char *);
+
+/*
+ * These are the types of tokens returned by the scanner.  The first
+ * three are also used in the hash table of capability names.  The scanner
+ * returns one of these values after loading the specifics into the global
+ * structure curr_token.
+ */
+
+#define BOOLEAN 0		/* Boolean capability */
+#define NUMBER 1		/* Numeric capability */
+#define STRING 2		/* String-valued capability */
+#define CANCEL 3		/* Capability to be cancelled in following tc's */
+#define NAMES  4		/* The names for a terminal type */
+#define UNDEF  5		/* Undefined */
+
+#define NO_PUSHBACK	-1	/* used in pushtype to indicate no pushback */
+
+	/*
+	 *	The global structure in which the specific parts of a
+	 *	scanned token are returned.
+	 *
+	 */
+
+struct token
+{
+	char	*tk_name;		/* name of capability */
+	int	tk_valnumber;	/* value of capability (if a number) */
+	char	*tk_valstring;	/* value of capability (if a string) */
+};
+
+extern NCURSES_EXPORT_VAR(struct token)	_nc_curr_token;
+
+	/*
+	 * Offsets to string capabilities, with the corresponding functionkey
+	 * codes.
+	 */
+struct tinfo_fkeys {
+	unsigned offset;
+	chtype code;
+	};
+
+#if	BROKEN_LINKER
+
+#define	_nc_tinfo_fkeys	_nc_tinfo_fkeysf()
+extern NCURSES_EXPORT(const struct tinfo_fkeys *) _nc_tinfo_fkeysf (void);
+
+#else
+
+extern NCURSES_EXPORT_VAR(const struct tinfo_fkeys) _nc_tinfo_fkeys[];
+
+#endif
+
+	/*
+	 * The file comp_captab.c contains an array of these structures, one
+	 * per possible capability.  These are indexed by a hash table array of
+	 * pointers to the same structures for use by the parser.
+	 */
+
+struct name_table_entry
+{
+	const char *nte_name;	/* name to hash on */
+	int	nte_type;	/* BOOLEAN, NUMBER or STRING */
+	short	nte_index;	/* index of associated variable in its array */
+	short	nte_link;	/* index in table of next hash, or -1 */
+};
+
+struct alias
+{
+	const char	*from;
+	const char	*to;
+	const char	*source;
+};
+
+extern NCURSES_EXPORT(const struct name_table_entry *) _nc_get_table (bool);
+extern NCURSES_EXPORT(const short *) _nc_get_hash_table (bool);
+extern NCURSES_EXPORT(const struct alias *) _nc_get_alias_table (bool);
+
+#define NOTFOUND	((struct name_table_entry *) 0)
+
+/* out-of-band values for representing absent capabilities */
+#define ABSENT_BOOLEAN		((signed char)-1)	/* 255 */
+#define ABSENT_NUMERIC		(-1)
+#define ABSENT_STRING		(char *)0
+
+/* out-of-band values for representing cancels */
+#define CANCELLED_BOOLEAN	((signed char)-2)	/* 254 */
+#define CANCELLED_NUMERIC	(-2)
+#define CANCELLED_STRING	(char *)(-1)
+
+#define VALID_BOOLEAN(s) ((unsigned char)(s) <= 1) /* reject "-1" */
+#define VALID_NUMERIC(s) ((s) >= 0)
+#define VALID_STRING(s)  ((s) != CANCELLED_STRING && (s) != ABSENT_STRING)
+
+/* termcap entries longer than this may break old binaries */
+#define MAX_TERMCAP_LENGTH	1023
+
+/* this is a documented limitation of terminfo */
+#define MAX_TERMINFO_LENGTH	4096
+
+#ifndef TERMINFO
+#define TERMINFO "/usr/share/terminfo"
+#endif
+
+/* access.c */
+extern NCURSES_EXPORT(unsigned) _nc_pathlast (const char *);
+extern NCURSES_EXPORT(bool) _nc_is_abs_path (const char *);
+extern NCURSES_EXPORT(bool) _nc_is_dir_path (const char *);
+extern NCURSES_EXPORT(bool) _nc_is_file_path (const char *);
+extern NCURSES_EXPORT(char *) _nc_basename (char *);
+extern NCURSES_EXPORT(char *) _nc_rootname (char *);
+
+/* comp_hash.c: name lookup */
+extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_entry
+	(const char *, const short *);
+extern NCURSES_EXPORT(struct name_table_entry const *) _nc_find_type_entry
+	(const char *, int, const struct name_table_entry *);
+
+/* comp_scan.c: lexical analysis */
+extern NCURSES_EXPORT(int)  _nc_get_token (bool);
+extern NCURSES_EXPORT(void) _nc_panic_mode (char);
+extern NCURSES_EXPORT(void) _nc_push_token (int);
+extern NCURSES_EXPORT(void) _nc_reset_input (FILE *, char *);
+extern NCURSES_EXPORT_VAR(int) _nc_curr_col;
+extern NCURSES_EXPORT_VAR(int) _nc_curr_line;
+extern NCURSES_EXPORT_VAR(int) _nc_syntax;
+extern NCURSES_EXPORT_VAR(long) _nc_comment_end;
+extern NCURSES_EXPORT_VAR(long) _nc_comment_start;
+extern NCURSES_EXPORT_VAR(long) _nc_curr_file_pos;
+extern NCURSES_EXPORT_VAR(long) _nc_start_line;
+#define SYN_TERMINFO	0
+#define SYN_TERMCAP	1
+
+/* comp_error.c: warning & abort messages */
+extern NCURSES_EXPORT(const char *) _nc_get_source (void);
+extern NCURSES_EXPORT(void) _nc_err_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_get_type (char *name);
+extern NCURSES_EXPORT(void) _nc_set_source (const char *const);
+extern NCURSES_EXPORT(void) _nc_set_type (const char *const);
+extern NCURSES_EXPORT(void) _nc_syserr_abort (const char *const,...) GCC_PRINTFLIKE(1,2) GCC_NORETURN;
+extern NCURSES_EXPORT(void) _nc_warning (const char *const,...) GCC_PRINTFLIKE(1,2);
+extern NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings;
+
+/* comp_expand.c: expand string into readable form */
+extern NCURSES_EXPORT(char *) _nc_tic_expand (const char *, bool, int);
+
+/* comp_scan.c: decode string from readable form */
+extern NCURSES_EXPORT(int) _nc_trans_string (char *, char *);
+
+/* captoinfo.c: capability conversion */
+extern NCURSES_EXPORT(char *) _nc_captoinfo (const char *, const char *, int const);
+extern NCURSES_EXPORT(char *) _nc_infotocap (const char *, const char *, int const);
+
+/* home_terminfo.c */
+extern NCURSES_EXPORT(char *) _nc_home_terminfo (void);
+
+/* lib_tparm.c */
+#define NUM_PARM 9
+
+extern NCURSES_EXPORT_VAR(int) _nc_tparm_err;
+
+extern NCURSES_EXPORT(int) _nc_tparm_analyze(const char *, char **, int *);
+
+/* lib_tputs.c */
+extern NCURSES_EXPORT_VAR(int) _nc_nulls_sent;		/* Add one for every null sent */
+
+/* comp_main.c: compiler main */
+extern const char * _nc_progname;
+
+/* db_iterator.c */
+typedef enum {
+    dbdTIC = 0,
+#if USE_DATABASE
+    dbdEnvOnce,
+    dbdHome,
+    dbdEnvList,
+    dbdCfgList,
+    dbdCfgOnce,
+#endif
+#if USE_TERMCAP
+    dbdEnvOnce2,
+    dbdEnvList2,
+    dbdCfgList2,
+#endif
+    dbdLAST
+} DBDIRS;
+
+extern NCURSES_EXPORT(const char *) _nc_next_db(DBDIRS *, int *);
+extern NCURSES_EXPORT(const char *) _nc_tic_dir (const char *);
+extern NCURSES_EXPORT(void) _nc_first_db(DBDIRS *, int *);
+extern NCURSES_EXPORT(void) _nc_last_db(void);
+
+/* write_entry.c */
+extern NCURSES_EXPORT(int) _nc_tic_written (void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __TIC_H */
diff --git a/include/unctrl.h.in b/include/unctrl.h.in
new file mode 100644
index 0000000..70d74b7
--- /dev/null
+++ b/include/unctrl.h.in
@@ -0,0 +1,63 @@
+/****************************************************************************
+ * Copyright (c) 1998,2000 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>                         *
+ ****************************************************************************/
+
+/*
+ * unctrl.h
+ *
+ * Display a printable version of a control character.
+ * Control characters are displayed in caret notation (^x), DELETE is displayed
+ * as ^?. Printable characters are displayed as is.
+ */
+
+/* $Id: unctrl.h.in,v 1.10 2001/03/24 21:53:25 tom Exp $ */
+
+#ifndef NCURSES_UNCTRL_H_incl
+#define NCURSES_UNCTRL_H_incl	1
+
+#undef  NCURSES_VERSION
+#define NCURSES_VERSION "@NCURSES_MAJOR@.@NCURSES_MINOR@"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <curses.h>
+
+#undef unctrl
+NCURSES_EXPORT(NCURSES_CONST char *) unctrl (chtype);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* NCURSES_UNCTRL_H_incl */