diff --git a/misc/emx.src b/misc/emx.src
new file mode 100644
index 0000000..4720066
--- /dev/null
+++ b/misc/emx.src
@@ -0,0 +1,885 @@
+##############################################################################
+# Copyright (c) 1998-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.                                                             #
+##############################################################################
+# $Id: emx.src,v 1.9 2006/04/22 21:46:17 tom Exp $
+# This is a reformatted copy of the terminfo source for OS/2 EMX from
+# Juan Jose Garcia Ripoll <worm@arrakis.es>.
+# http://www.arrakis.es/~worm/
+#----------------------------------------------------------------------------
+#
+# This section describes terminal classes and maker brands that are still
+# quite common.
+#
+
+#### Specials
+#
+# Special "terminals".  These are used to label tty lines when you don't
+# know what kind of terminal is on it.  The characteristics of an unknown
+# terminal are the lowest common denominator - they look about like a ti 700.
+#
+
+dumb|80-column dumb tty,
+	am,
+	cols#80,
+	bel=^G,
+	cr=^M,
+	cud1=^J,
+	ind=^J,
+unknown|unknown terminal type,
+	gn,
+	use=dumb,
+lpr|printer|line printer,
+	hc,
+	os,
+	cols#132,
+	lines#66,
+	bel=^G,
+	cr=^M,
+	cub1=^H,
+	cud1=^J,
+	ff=^L,
+	ind=^J,
+glasstty|classic glass tty interpreting ASCII control characters,
+	am,
+	cols#80,
+	bel=^G,
+	clear=^L,
+	cr=^M,
+	cub1=^H,
+	cud1=^J,
+	ht=^I,
+	kbs=^H,
+	kcub1=^H,
+	kcud1=^J,
+	nel=^M^J,
+
+#### ANSI.SYS/ISO 6429/ECMA-48 Capabilities
+#
+# See the end-of-file comment for more on these.
+#
+
+# The IBM PC alternate character set.  Plug this into any Intel console entry.
+# We use \E[11m for rmacs rather than \E[12m so the <acsc> string can use the
+# ROM graphics for control characters such as the diamond, up- and down-arrow.
+# This works with the System V, Linux, and BSDI consoles.  It's a safe bet this
+# will work with any Intel console, they all seem to have inherited \E[11m
+# from the ANSI.SYS de-facto standard.
+klone+acs|alternate character set for ansi.sys displays,
+	acsc=+\020\,\021-\030.^Y0\333`\004a\261f\370g\361h\260j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
+	rmacs=\E[10m,
+	smacs=\E[11m,
+
+# Highlight controls corresponding to the ANSI.SYS standard.  Most
+# console drivers for Intel boxes obey these.  Makes the same assumption
+# about \E[11m as klone+acs.  True ANSI/ECMA-48 would have <rmso=\E[27m>,
+# <rmul=\E[24m>, but this isn't a documented feature of ANSI.SYS.
+klone+sgr|attribute control for ansi.sys displays,
+	blink=\E[5m,
+	bold=\E[1m,
+	invis=\E[8m,
+	rev=\E[7m,
+	rmacs=\E[10m,
+	rmpch=\E[10m,
+	rmso=\E[m,
+	rmul=\E[m,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
+	sgr0=\E[0;10m,
+	smacs=\E[11m,
+	smpch=\E[11m,
+	smso=\E[7m,
+	smul=\E[4m,
+	use=klone+acs,
+
+# Highlight controls corresponding to the ANSI.SYS standard.  *All*
+# console drivers for Intel boxes obey these.  Does not assume \E[11m will
+# work; uses \E[12m instead, which is pretty bulletproof but loses you the ACS
+# diamond and arrow characters under curses.
+klone+sgr-dumb|attribute control for ansi.sys displays (no ESC [ 11 m),
+	blink=\E[5m,
+	bold=\E[1m,
+	invis=\E[8m,
+	rev=\E[7m,
+	rmacs=\E[10m,
+	rmso=\E[m,
+	rmul=\E[m,
+	sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;12%;m,
+	sgr0=\E[0;10m,
+	smacs=\E[12m,
+	smso=\E[7m,
+	smul=\E[4m,
+	use=klone+acs,
+
+# ANSI.SYS color control.
+# The DOS 5 manual asserts that these sequences meet the ISO 6429 standard.
+klone+color|color control for ansi.sys and ISO6429-compatible displays,
+	colors#8,
+	ncv#3,
+	pairs#64,
+	op=\E[37;40m,
+	setab=\E[4%p1%dm,
+	setaf=\E[3%p1%dm,
+
+# This is better than klone+color, it doesn't assume white-on-black as the
+# default color pair,  but many `ANSI' terminals don't grok the <op> cap.
+ecma+color|color control for ECMA-48-compatible terminals,
+	AX,
+	colors#8,
+	ncv#3,
+	pairs#64,
+	op=\E[39;49m,
+	setab=\E[4%p1%dm,
+	setaf=\E[3%p1%dm,
+
+#### ANSI/ECMA-48 terminals and terminal emulators
+#
+# See near the end of this file for details on ANSI conformance.
+# Don't mess with these entries!  Lots of other entries depend on them!
+#
+# This section lists entries in a least-capable to most-capable order.
+# if you're in doubt about what `ANSI' matches yours, try them in that
+# order and back off from the first that breaks.
+
+ansi-mini|any ansi terminal with pessimistic assumptions,
+	am,
+	cols#80,
+	it#8,
+	lines#24,
+	clear=\E[H\E[2J$<50>,
+	cub1=\E[D,
+	cud1=\E[B,
+	cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A,
+	el=\E[K,
+	home=\E[H,
+	ht=^I,
+
+#
+# ANSI.SYS entries
+#
+# This completely describes the sequences specified in the DOS 2.1 ANSI.SYS
+# documentation (except for the keyboard key reassignment feature, which
+# doen't fit the <pfkey> model well).  The klone+acs sequences were valid
+# though undocumented.  The <pfkey> capability is untested but should work for
+# keys F1-F10 (%p1 values outside this range will yield unpredictable results).
+# From: Eric S. Raymond <esr@snark.thyrsus.com> Nov 7 1995
+ansi.sys-old|ANSI.SYS under PC-DOS 2.1,
+	am,
+	mir,
+	msgr,
+	xon,
+	cols#80,
+	lines#25,
+	clear=\E[2J,
+	cub1=^H,
+	cud1=\E[B,
+	cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A,
+	el=\E[k,
+	home=\E[H,
+	is2=\E[m\E[?7h,
+	kcub1=^H,
+	kcud1=^J,
+	kcuf1=^L,
+	kcuu1=^K,
+	khome=^^,
+	pfkey=\E[0;%p1%{58}%+%d;%p2"%s",
+	rc=\E[u,
+	rmam=\E[?7l,
+	sc=\E[s,
+	smam=\E[?7h,
+	u6=\E[%i%d;%dR,
+	u7=\E[6n,
+	use=klone+color,
+	use=klone+acs,
+	use=klone+sgr,
+ansi.sys|ANSI.SYS 3.1 and later versions,
+	el=\E[K,
+	use=ansi.sys-old,
+
+### EMX termcap.dat compatibility modes
+#
+# Keypad:	Home=\0G	Up=\0H	PrPag=\0I
+#		ka1,kh		kcuu1		kpp,ka3
+#
+#		Left=\0K	5=\0L		Right=\0M
+#		kcub1		kb2		kcuf1
+#
+#		End=\0O		Down=\0P	NxPag=\0Q
+#		kc1,kend	kcud1		kc3,knp
+#
+#		Ins=\0R		Del=\0S
+#		kich1		kdch1
+#
+# On keyboard with 12 function keys,
+#	shifted f-keys: F13-F24
+#	control f-keys: F25-F36
+#	alt f-keys:     F37-F48
+# The shift/control/alt keys do not modify each other, but alt overrides both,
+# and control overrides shift.
+#
+# Also (possibly only EMX, so we don't put it in ansi.sys, etc): set the
+# no_color_video to inform the application that standout(1), underline(2)
+# reverse(4) and invisible(64) don't work with color.
+emx-base|DOS special keys,
+	bce,
+	bw,
+	it#8,
+	ncv#71,
+	bel=^G,
+	ka1=\0G,
+	ka3=\0I,
+	kb2=\0L,
+	kbs=^H,
+	kc1=\0O,
+	kc3=\0Q,
+	kcbt=\0^O,
+	kcub1=\0K,
+	kcud1=\0P,
+	kcuf1=\0M,
+	kcuu1=\0H,
+	kdch1=\0S,
+	kend=\0O,
+	kf1=\0;,
+	kf10=\0D,
+	kf11=\0\205,
+	kf12=\0\206,
+	kf13=\0T,
+	kf14=\0U,
+	kf15=\0V,
+	kf16=\0W,
+	kf17=\0X,
+	kf18=\0Y,
+	kf19=\0Z,
+	kf2=\0<,
+	kf20=\0[,
+	kf21=\0\\,
+	kf22=\0],
+	kf23=\0\207,
+	kf24=\0\210,
+	kf25=\0\^,
+	kf26=\0_,
+	kf27=\0`,
+	kf28=\0a,
+	kf29=\0b,
+	kf3=\0=,
+	kf30=\0c,
+	kf31=\0d,
+	kf32=\0e,
+	kf33=\0f,
+	kf34=\0g,
+	kf35=\0\211,
+	kf36=\0\212,
+	kf37=\0h,
+	kf38=\0i,
+	kf39=\0j,
+	kf4=\0>,
+	kf40=\0k,
+	kf41=\0l,
+	kf42=\0m,
+	kf43=\0n,
+	kf44=\0o,
+	kf45=\0p,
+	kf46=\0q,
+	kf47=\0\213,
+	kf48=\0\214,
+	kf5=\0?,
+	kf6=\0@,
+	kf7=\0A,
+	kf8=\0B,
+	kf9=\0C,
+	khome=\0G,
+	kich1=\0R,
+	knp=\0Q,
+	kpp=\0I,
+	use=ansi.sys,
+#
+# To properly translate termcap.dat -> terminfo.src remember these
+# equivalences:
+#	ti	<->	smcup	string to start programs using cup(termcap)
+#	te	<->	rmcup	string to end programs using cup
+#	so	<->	smso	begin standout mode
+#	se	<->	rmso	exit standout mode
+#	us	<->	smul	begin underline mode
+#	ue	<->	rmul	exit underline mode
+#	mb	<->	blink	turn on blinking
+#	md	<->	bold	turn on extra bright (bold) mode
+#	mr	<->	rev	turn on reverse video mode
+#	me	<->	sgr0	turn off all atributes
+#
+# On my terminal, \E[4m looks dim.
+ansi-emx|ANSI.SYS color,
+	blink=\E[5m,
+	bold=\E[1m,
+	kmous=\E[M,
+	rev=\E[7m,
+	rmcup=\E[0m,
+	rmso=\E[0m,
+	rmul@,
+	sgr0=\E[0m,
+	smcup=\E[0;37;40m,
+	smso=\E[7m,
+	smul@,
+	use=emx-base,
+window|ANSI.SYS window,
+	blink=\E[5m,
+	bold=\E[1;37;47m,
+	rev=\E[1;37;47m,
+	rmcup=\E[0m,
+	rmso=\E[0;37;40m,
+	rmul=\E[0;37;40m,
+	sgr0=\E[0;37;40m,
+	smcup=\E[0;37;40m,
+	smso=\E[1;37;47m,
+	smul=\E[1;31;47m,
+	use=emx-base,
+os2|OS/2-emx ANSI.SYS,
+	cub=\E[%p1%dD,
+	cub1=\E[D,
+	cud=\E[%p1%dB,
+	cud1=\E[B,
+	cuf=\E[%p1%dC,
+	cuf1=\E[C,
+	cuu=\E[%p1%dA,
+	cuu1=\E[A,
+	rc=\E[u,
+	sc=\E[s,
+	use=ansi-emx,
+	use=mono,
+mono|ANSI.SYS mono,
+	blink=\E[5m,
+	bold=\E[1m,
+	rev=\E[7m,
+	rmcup=\E[0m,
+	rmso=\E[m,
+	rmul=\E[m,
+	sgr0=\E[m,
+	smcup=\E[0m,
+	smso=\E[1m,
+	smul=\E[4m,
+	use=emx-base,
+# same as mono, but use reverse video for standout (nice for Emacs)
+rmono|ANSI.SYS reverse mono,
+	smso=\E[7m,
+	use=mono,
+# same as mono, but use a readable color for underlining
+mono2|ANSI.SYS mono2,
+	rmul=\E[0m,
+	smul=\E[1;31;40m,
+	use=mono,
+# nice colors for Emacs (white on blue, mode line white on cyan)
+ansi-color-2-emx|ANSI.SYS color 2,
+	rmcup=\E[0m,
+	rmso=\E[0;37;44m,
+	rmul=\E[0m,
+	sgr0=\E[0;37;44m,
+	smcup=\E[0;37;44m,
+	smso=\E[1;37;46m,
+	smul=\E[1;31;40m,
+	use=ansi-emx,
+# nice colors for Emacs (white on black, mode line black on cyan)
+ansi-color-3-emx|ANSI.SYS color 3,
+	rmcup=\E[0m,
+	rmso=\E[0m,
+	rmul=\E[0m,
+	sgr0=\E[0m,
+	smcup=\E[0m,
+	smso=\E[30;46m,
+	smul=\E[1;31;40m,
+	use=ansi-emx,
+
+#### X terminal emulators
+#
+# X10/6.6	11/7/86, minus alternate screen, plus (csr)
+# (xterm: ":MT:" changed to ":km:"; added <smam>/<rmam> based on init string;
+# removed (hs, eslok, tsl=\E[?E\E[?%i%dT, fsl=\E[?F, dsl=\E[?E)
+# as these seem not to work -- esr)
+x10term|vs100-x10|xterm terminal emulator (X10 window system),
+	am,
+	km,
+	mir,
+	msgr,
+	xenl,
+	xon,
+	cols#80,
+	it#8,
+	lines#65,
+	bold=\E[1m,
+	clear=\E[H\E[2J,
+	csr=\E[%i%p1%d;%p2%dr,
+	cub1=^H,
+	cud1=^J,
+	cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH,
+	cuu1=\E[A,
+	dch=\E[%p1%dP,
+	dch1=\E[P,
+	dl=\E[%p1%dM,
+	dl1=\E[M,
+	ed=\E[J,
+	el=\E[K,
+	home=\E[H,
+	ht=^I,
+	il=\E[%p1%dL,
+	il1=\E[L,
+	ind=^J,
+	is2=\E\E[m\E[?7h\E[?1;4l,
+	kbs=^H,
+	kcub1=\EOD,
+	kcud1=\EOB,
+	kcuf1=\EOC,
+	kcuu1=\EOA,
+	kf1=\EOP,
+	kf2=\EOQ,
+	kf3=\EOR,
+	kf4=\EOS,
+	rev=\E[7m,
+	ri=\EM,
+	rmam=\E[?7l,
+	rmir=\E[4l,
+	rmkx=\E[?1l\E>,
+	rmso=\E[m,
+	rmul=\E[m,
+	sgr0=\E[m,
+	smam=\E[?7h,
+	smir=\E[4h,
+	smkx=\E[?1h\E=,
+	smso=\E[7m,
+	smul=\E[4m,
+# X11R6 xterm.  This is known good for the XFree86 version under Linux.
+# It is *way* more featureful than the stock X consortium entry (has acsc,
+# for starters).  The <kmous> key is actually the \E[M prefix returned by
+# xterm's internal mouse-tracking facility; ncurses will interpret the
+# following three bytes of mouse status information.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> 14 Dec 1995
+xterm-r6|xterm terminal emulator (X11R6 Window System),
+	am,
+	km,
+	mir,
+	msgr,
+	xenl,
+	xon,
+	cols#80,
+	it#8,
+	lines#65,
+	acsc=++\,\,--..00II``aaffgghhjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+	bel=^G,
+	bold=\E[1m,
+	clear=\E[H\E[2J,
+	cr=^M,
+	csr=\E[%i%p1%d;%p2%dr,
+	cub=\E[%p1%dD,
+	cub1=^H,
+	cud=\E[%p1%dB,
+	cud1=^J,
+	cuf=\E[%p1%dC,
+	cuf1=\E[C,
+	cup=\E[%i%p1%d;%p2%dH,
+	cuu=\E[%p1%dA,
+	cuu1=\E[A,
+	dch=\E[%p1%dP,
+	dch1=\E[P,
+	dl=\E[%p1%dM,
+	dl1=\E[M,
+	ed=\E[J,
+	el=\E[K,
+	enacs=\E(B\E)0,
+	home=\E[H,
+	ht=^I,
+	ich=\E[%p1%d@,
+	ich1=\E[@,
+	il=\E[%p1%dL,
+	il1=\E[L,
+	ind=^J,
+	is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
+	kbs=^H,
+	kcub1=\EOD,
+	kcud1=\EOB,
+	kcuf1=\EOC,
+	kcuu1=\EOA,
+	kend=\EOe,
+	kent=\EOM,
+	kf1=\E[11~,
+	kf10=\E[21~,
+	kf11=\E[23~,
+	kf12=\E[24~,
+	kf13=\E[25~,
+	kf14=\E[26~,
+	kf15=\E[28~,
+	kf16=\E[29~,
+	kf17=\E[31~,
+	kf18=\E[32~,
+	kf19=\E[33~,
+	kf2=\E[12~,
+	kf20=\E[34~,
+	kf3=\E[13~,
+	kf4=\E[14~,
+	kf5=\E[15~,
+	kf6=\E[17~,
+	kf7=\E[18~,
+	kf8=\E[19~,
+	kf9=\E[20~,
+	kfnd=\E[1~,
+	khome=\EO\0,
+	kich1=\E[2~,
+	kmous=\E[M,
+	knp=\E[6~,
+	kpp=\E[5~,
+	rc=\E8,
+	rev=\E[7m,
+	ri=\EM,
+	rmacs=^O,
+	rmam=\E[?7l,
+	rmcup=\E[2J\E[?47l\E8,
+	rmir=\E[4l,
+	rmkx=\E[?1l\E>,
+	rmso=\E[m,
+	rmul=\E[m,
+	rs1=^O,
+	rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E<,
+	sc=\E7,
+	sgr0=\E[m,
+	smacs=^N,
+	smam=\E[?7h,
+	smcup=\E7\E[?47h,
+	smir=\E[4h,
+	smkx=\E[?1h\E=,
+	smso=\E[7m,
+	smul=\E[4m,
+	tbc=\E[3k,
+	u6=\E[%i%d;%dR,
+	u7=\E[6n,
+	u8=\E[?1;2c,
+	u9=\E[c,
+xterm-bold|xterm terminal emulator (X11R6 Window System) standout w/bold,
+	smso=\E[1m,
+	use=xterm,
+xterms|vs100s|xterm terminal emulator (small screen 24x80),
+	cols#80,
+	lines#24,
+	use=xterm,
+# (kterm: this had extension capabilities ":KJ:TY=ascii:" -- esr)
+kterm|kterm kanji terminal emulator (X window system),
+	eslok,
+	hs,
+	csr=\E[%i%p1%d;%p2%dr,
+	dsl=\E[?H,
+	fsl=\E[?F,
+	rc=\E8,
+	sc=\E7,
+	tsl=\E[?E\E[?%i%dT,
+	use=xterm,
+	use=ecma+color,
+
+# See the note on ICH/ICH1 VERSUS RMIR/SMIR near the end of file
+xterm-nic|xterm with ich/ich1 suppressed for non-curses programs,
+	ich@,
+	ich1@,
+	use=xterm,
+
+# Should work with the color xterm on the X11R6 contrib tape.
+# Assumes the xterm attribute default is black on white.
+# From: Eric S. Raymond <esr@snark.thyrsus.com> March 4 1996
+xterm-color|xterm with color support,
+	op=\E[30;47m,
+	use=xterm,
+	use=klone+color,
+
+# From: Thomas Dickey <dickey@clark.net> 13 Dec 1995
+rxvt|rxvt terminal emulator,
+	kend=\EOw,
+	khome=\E[H,
+	kmous@,
+	use=xterm,
+	use=klone+color,
+
+# From: David J. MacKenzie <djm@va.pubnix.com> 20 Apr 1995
+# Here's a termcap entry I've been using for xterm_color, which comes
+# with BSD/OS 2.0, and the X11R6 contrib tape too I think.  Besides the
+# color stuff, I also have a status line defined as the window manager
+# title bar. [I have translated it to terminfo -- ESR]
+xterm-pcolor|xterm with color used for highlights and status line,
+	hs,
+	wsl#40,
+	bold=\E[1m\E[43m,
+	dsl=\E]0;\007,
+	fsl=^G,
+	rev=\E[7m\E[34m,
+	smso=\E[7m\E[31m,
+	smul=\E[4m\E[42m,
+	tsl=\E]0;,
+	use=xterm,
+
+# HP ships this, except for the pb#9600 which was merged in from BSD termcap.
+hpterm|X-hpterm|hp X11 terminal emulator,
+	am,
+	da,
+	db,
+	mir,
+	xhp,
+	cols#80,
+	lh#2,
+	lines#24,
+	lm#0,
+	lw#8,
+	nlab#8,
+	pb#9600,
+	xmc#0,
+	bel=^G,
+	bold=\E&dB,
+	cbt=\Ei,
+	clear=\E&a0y0C\EJ,
+	cr=^M,
+	cub1=^H,
+	cud1=\EB,
+	cuf1=\EC,
+	cup=\E&a%p1%dy%p2%dC,
+	cuu1=\EA,
+	dch1=\EP,
+	dim=\E&dH,
+	dl1=\EM,
+	ed=\EJ$<1>,
+	el=\EK,
+	hpa=\E&a%p1%dC,
+	ht=^I,
+	hts=\E1,
+	il1=\EL,
+	ind=^J,
+	kbs=^H,
+	kclr=\EJ,
+	kctab=\E2,
+	kcub1=\ED,
+	kcud1=\EB,
+	kcuf1=\EC,
+	kcuu1=\EA,
+	kdch1=\EP,
+	kdl1=\EM,
+	ked=\EJ,
+	kel=\EK,
+	kf1=\Ep,
+	kf2=\Eq,
+	kf3=\Er,
+	kf4=\Es,
+	kf5=\Et,
+	kf6=\Eu,
+	kf7=\Ev,
+	kf8=\Ew,
+	khome=\Eh,
+	khts=\E1,
+	kich1=\EQ,
+	kil1=\EL,
+	kind=\ES,
+	kll=\EF,
+	knp=\EU,
+	kpp=\EV,
+	kri=\ET,
+	krmir=\ER,
+	ktbc=\E3,
+	meml=\El,
+	memu=\Em,
+	pfkey=\E&f%p1%dk%p2%l%dL%p2%s,
+	pfloc=\E&f1a%p1%dk%p2%l%dL%p2%s,
+	pfx=\E&f2a%p1%dk%p2%l%dL%p2%s,
+	pln=\E&f%p1%dk%p2%l%dd0L%p2%s,
+	rev=\E&dB,
+	ri=\ET,
+	rmacs=^O,
+	rmir=\ER,
+	rmkx=\E&s0A,
+	rmln=\E&j@,
+	rmso=\E&d@,
+	rmul=\E&d@,
+	sgr=\E&d%?%p7%t%'s'%c%;%p1%p3%|%p6%|%{2}%*%p2%{4}%*%+%p4%+%p5%{8}%*%+%'@'%+%c%?%p9%t%'\016'%c%e%'\017'%c%;,
+	sgr0=\E&d@,
+	smacs=^N,
+	smir=\EQ,
+	smkx=\E&s1A,
+	smln=\E&jB,
+	smso=\E&dJ,
+	smul=\E&dD,
+	tbc=\E3,
+	vpa=\E&a%p1%dY,
+
+# This entry describes an xterm with Sun-style function keys enabled
+# via the X resource setting "xterm*sunFunctionKeys:true"
+# To understand <kf11>/<kf12> note that L1,L2 and F11,F12 are the same.
+# The <kf13>...<kf20> keys are L3-L10.  We don't set <kf16=\E[197z>
+# because we want it to be seen as <kcpy>.
+# The <kf31>...<kf45> keys are R1-R15.  We treat some of these in accordance
+# with their Sun keyboard labels instead.
+# From: Simon J. Gerraty <sjg@zen.void.oz.au> 10 Jan 1996
+xterm-sun|xterm with sunFunctionKeys true,
+	kb2=\E[218z,
+	kcpy=\E[197z,
+	kend=\E[220z,
+	kf1=\E[224z,
+	kf10=\E[233z,
+	kf11=\E[192z,
+	kf12=\E[193z,
+	kf13=\E[194z,
+	kf14=\E[195z,
+	kf15=\E[196z,
+	kf17=\E[198z,
+	kf18=\E[199z,
+	kf19=\E[200z,
+	kf2=\E[225z,
+	kf20=\E[201z,
+	kf3=\E[226z,
+	kf31=\E[208z,
+	kf32=\E[209z,
+	kf33=\E[210z,
+	kf34=\E[211z,
+	kf35=\E[212z,
+	kf36=\E[213z,
+	kf38=\E[215z,
+	kf4=\E[227z,
+	kf40=\E[217z,
+	kf42=\E[219z,
+	kf44=\E[221z,
+	kf5=\E[228z,
+	kf6=\E[229z,
+	kf7=\E[230z,
+	kf8=\E[231z,
+	kf9=\E[232z,
+	kfnd=\E[200z,
+	khlp=\E[196z,
+	khome=\E[214z,
+	kich1=\E[2z,
+	knp=\E[222z,
+	kpp=\E[216z,
+	kund=\E[195z,
+	use=xterm,
+xterms-sun|small (80x24) xterm with sunFunctionKeys true,
+	cols#80,
+	lines#24,
+	use=xterm-sun,
+
+# This is for the extensible terminal emulator on the X11R6 contrib tape.
+emu|emu native mode,
+	mir,
+	msgr,
+	xon,
+	colors#15,
+	cols#80,
+	it#8,
+	lines#24,
+	pairs#64,
+	vt#200,
+	acsc=61a\202f\260g2j\213k\214l\215m\216n\217o\220q\222s\224t\225u\226v\227w\230x\231~\244,
+	bel=^G,
+	blink=\ES\EW,
+	bold=\ES\EU,
+	civis=\EZ,
+	clear=\EP\EE0;0;,
+	cnorm=\Ea,
+	cr=^M,
+	csr=\Ek%p1%d;%p2%d;,
+	cub=\Eq-%p1%d;,
+	cub1=^H,
+	cud=\Ep%p1%d;,
+	cud1=\EB,
+	cuf=\Eq%p1%d;,
+	cuf1=\ED,
+	cup=\EE%p1%d;%p2%d;,
+	cuu=\Ep-%p1%d;,
+	cuu1=\EA,
+	dch=\EI%p1%d;,
+	dch1=\EI1;,
+	dl=\ER%p1%d;,
+	dl1=\ER1;,
+	ech=\Ej%p1%d;,
+	ed=\EN,
+	el=\EK,
+	el1=\EL,
+	enacs=\0,
+	home=\EE0;0;,
+	ht=^I,
+	hts=\Eh,
+	il=\EQ%p1%d;,
+	il1=\EQ1;,
+	ind=\EG,
+	is2=\ES\Er0;\Es0;,
+	kbs=^H,
+	kcub1=\EC,
+	kcud1=\EB,
+	kcuf1=\ED,
+	kcuu1=\EA,
+	kdch1=\177,
+	kent=^M,
+	kf0=\EF00,
+	kf1=\EF01,
+	kf10=\EF10,
+	kf11=\EF11,
+	kf12=\EF12,
+	kf13=\EF13,
+	kf14=\EF14,
+	kf15=\EF15,
+	kf16=\EF16,
+	kf17=\EF17,
+	kf18=\EF18,
+	kf19=\EF19,
+	kf2=\EF02,
+	kf20=\EF20,
+	kf3=\EF03,
+	kf4=\EF04,
+	kf5=\EF05,
+	kf6=\EF06,
+	kf7=\EF07,
+	kf8=\EF08,
+	kf9=\EF09,
+	kfnd=\Efind,
+	kich1=\Eins,
+	knp=\Enext,
+	kpp=\Eprior,
+	kslt=\Esel,
+	oc=\Es0;\Er0;,
+	rev=\ES\ET,
+	ri=\EF,
+	rmacs=\0,
+	rmir=\EX,
+	rmso=\ES,
+	rmul=\ES,
+	rs2=\ES\Es0;\Er0;,
+	setab=\Es%i%p1%d;,
+	setaf=\Er%i%p1%d;,
+	sgr0=\ES,
+	smacs=\0,
+	smir=\EY,
+	smso=\ES\ET,
+	smul=\ES\EV,
+	tbc=\Ej,
+###############################################################################
+# Aliases which conflict with terminfo.src
+ansi|ANSI.SYS color,
+	use=ansi-emx,
+ansi-color-2|ANSI.SYS color 2,
+	use=ansi-color-2-emx,
+ansi-color-3|ANSI.SYS color 3,
+	use=ansi-color-3-emx,
+xterm|vs100|xterm terminal emulator (X11R6 Window System),
+	use=xterm-r6,
