##############################################################################
# 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,
