xref: /freebsd/contrib/ncurses/include/Caps (revision 7a69bbfb278952228c9aa1eca241e65fcdef425e)
1##############################################################################
2# Copyright (c) 1998 Free Software Foundation, Inc.                          #
3#                                                                            #
4# Permission is hereby granted, free of charge, to any person obtaining a    #
5# copy of this software and associated documentation files (the "Software"), #
6# to deal in the Software without restriction, including without limitation  #
7# the rights to use, copy, modify, merge, publish, distribute, distribute    #
8# with modifications, sublicense, and/or sell copies of the Software, and to #
9# permit persons to whom the Software is furnished to do so, subject to the  #
10# following conditions:                                                      #
11#                                                                            #
12# The above copyright notice and this permission notice shall be included in #
13# all copies or substantial portions of the Software.                        #
14#                                                                            #
15# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
16# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
17# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
18# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
19# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
20# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
21# DEALINGS IN THE SOFTWARE.                                                  #
22#                                                                            #
23# Except as contained in this notice, the name(s) of the above copyright     #
24# holders shall not be used in advertising or otherwise to promote the sale, #
25# use or other dealings in this Software without prior written               #
26# authorization.                                                             #
27##############################################################################
28#
29# Author: Zeyd M. Ben-Halim <zmbenhal@netcom.com> 1992,1995
30#    and: Eric S. Raymond <esr@snark.thyrsus.com>
31#
32# $Id: Caps,v 1.31 2001/05/05 21:01:27 tom Exp $
33#
34# This is the master termcap/terminfo capability table.
35#
36# This table is used to generate initializers for tables that drive tic,
37# infocmp, and the library compilation code used to support the termcap
38# compatibility hack.  It is also used to generate the tabular portion of the
39# terminfo(5) man page; lines beginning with `#%' are passed through to become
40# the terminfo table.
41#
42# This file has three major sections; a standard-capabilities table, two
43# extension-capability tables, and a section of aliases declarations.
44# The first two have the same format, as follows:
45#
46# FILE FORMAT
47#
48# Column 1: terminfo variable name
49# Column 2: terminfo capability name
50# Column 3: capability type (boolean, numeric, or string)
51# Column 4: termcap capability name
52# Column 5: Lead with `Y' if capability should be emitted in termcap
53#           translations, `-' otherwise
54# Column 6: capability description
55#
56# The codes following [Y-] in column 5 describe the versions of termcap which
57# use the given capability.  This information is not used by the curses library
58# proper; rather, it's there to help the terminfo maintainer avoid emitting
59# termcap entry translations that are more than 1023 bytes long (and tank a
60# lot of old termcap-using programs).  The codes read as follows:
61#	B = mentioned in the BSD man page for 4.4BSD curses
62#	C = used by the 4.4BSD curses library
63#	G = mentioned in the documentation for GNU termcap
64#	E = used by GNU Emacs
65#	K = remove this terminfo capability when translating to standard format
66# The important codes are C and E.  A cap with C or E should be preserved in
67# translation if possible.  The problem is that preserving all such caps may
68# lead to some termcap translations being too long.  The termcap maintainer
69# has a bit of a juggling act to do...potential problem cases are marked with
70# a * or **.
71#
72# The aliases section has the following format:
73#
74# Column 1: either `capalias' or `infoalias'
75# Column 2: name to be aliased
76# Column 3: what name it should translate to.  The name IGNORE means it
77#           should be discarded with a warning message.
78# Column 4: name of the extension set (used for compiler warning messages)
79# Column 5: capability description (usually an associated terminfo variable)
80#
81# HANDLING TERMCAP AND TERMINFO EXTENSIONS
82#
83# There are basically five different ways to handle termcap and terminfo
84# extensions:
85#
86# 1. Don't list the capname here, or list it but comment it out (the latter
87# is preferable; someone might want to handle it in the future).  If you do
88# this, the capability will be treated as unknown and raise a warning from
89# the compiler.
90#
91# 2. Alias it.  This is appropriate if the capability has the same meaning
92# as an already-supported one.  The compiler will handle aliasing, emitting
93# an appropriate informational message whenever an alias fires.
94#
95# 3. List it in the standard table.  You almost certainly do *not* want
96# to do this -- the capabilities in that one, and their order, have been
97# carefully chosen to be SVr4-binary-compatible when they're written out
98# as a terminfo object, and breaking this would be bad.  It's up the ncurses
99# library what to do with the terminfo data after it's read in.
100#
101# 4. List it in the aliases table with an IGNORE target field.  If you
102# do this, the capability will be ignored on input (though the user will
103# get a warning message about it).
104#
105# 5. List it in the extensions table. If you do this, the compiler will
106# silently accept the capability, but the curses library proper will never
107# see it (because it won't be written out as part of the terminfo object
108# format).  It's up to you what you have the compiler do with it.
109#
110# There are two opposite reasons to choose option 5.  One is when you want
111# to eat the capability silently and discard it when doing translations
112# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
113# in this class.  Nothing will ever use them again.
114#
115# More usually, you want the compiler to try to deduce something from the
116# capability value that it can use to translate it into your output format.
117# You'll need to write custom code, probably in postprocess_termcap() or
118# postprocess_terminfo(), to handle the translation.
119#
120# CONTROLLING ENTRY LENGTH
121#
122# Notes on specific elisions made to fit translations within 1023 bytes:
123#
124# Machines with IBM PC-like keyboards want to be able to define the following
125# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
126# only environments for End or Home-Down), key_dc, and key_ic.  This is also
127# the set of keys the `joe' editor will be upset if it can't see.  So don't
128# trim those out of the set to be translated to termcap, or various users of
129# the termcap file will become irate.
130#
131# It might look tempting to leave those long init strings out of translations.
132# We can't do it (yet); 4.4BSD tput and tset use them.
133#
134# We retain the sgr capability in translation in spite of the fact that neither
135# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
136# hard to understand without it, and (b) the entries in which it is long tend
137# to be older types that don't use up a lot of string space on function keys.
138# The tic(1) translation code will complain and elide it if it makes a critical
139# difference (there is special code in tic to recognize this situation).
140#
141# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
142# optimizer in BSD curses didn't use them.  This omission seems to be the
143# single most effective one, it shortened the resolved length of all thirteen
144# problem entries in the 9.9.0 version of the terminfo master below critical.
145#
146# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
147# translations go back over critical if we do this.  As 4.4BSD curses fades
148# into history and GNU termcap's application base shrinks towards being GNU
149# Emacs only, we'll probably elide out some BSD-only capabilities in order
150# to buy space for non-essentials Emacs is still using.  Capabilities high
151# on that hit list: rc, sc, uc.
152#
153#############################################################################
154#
155# STANDARD CAPABILITIES
156#
157#%The following is a complete table of the capabilities included in a
158#%terminfo description block and available to terminfo-using code.  In each
159#%line of the table,
160#%
161#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
162#%accesses the capability.
163#%
164#%The \fBcapname\fR is the short name used in the text of the database,
165#%and is used by a person updating the database.
166#%Whenever possible, capnames are chosen to be the same as or similar to
167#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
168#%identical or very similar names).  Semantics are also intended to match
169#%those of the specification.
170#%
171#%The termcap code is the old
172#%.B termcap
173#%capability name (some capabilities are new, and have names which termcap
174#%did not originate).
175#%.P
176#%Capability names have no hard length limit, but an informal limit of 5
177#%characters has been adopted to keep them short and to allow the tabs in
178#%the source file
179#%.B Caps
180#%to line up nicely.
181#%
182#%Finally, the description field attempts to convey the semantics of the
183#%capability.  You may find some codes in the description field:
184#%.TP
185#%(P)
186#%indicates that padding may be specified
187#%.TP
188#%#[1-9]
189#%in the description field indicates that the string is passed through tparm with
190#%parms as given (#\fIi\fP).
191#%.TP
192#%(P*)
193#%indicates that padding may vary in proportion to the number of
194#%lines affected
195#%.TP
196#%(#\d\fIi\fP\u)
197#%indicates the \fIi\fP\uth\d parameter.
198#%
199#%.PP
200#% These are the boolean capabilities:
201#%
202#%.na
203#%.TS H
204#%center expand;
205#%c l l c
206#%c l l c
207#%lw25 lw6 lw2 lw20.
208#%\fBVariable	Cap-	TCap	Description\fR
209#%\fBBooleans	name	Code\fR
210auto_left_margin	bw	bool	bw	YB-G-	cub1 wraps from column 0 to last column
211auto_right_margin	am	bool	am	YBCGE	terminal has automatic margins
212no_esc_ctlc     	xsb	bool	xb	YBCG-	beehive (f1=escape, f2=ctrl C)
213ceol_standout_glitch	xhp	bool	xs	YBCGE	standout not erased by overwriting (hp)
214eat_newline_glitch	xenl	bool	xn	YBCGE	newline ignored after 80 cols (concept)
215erase_overstrike	eo	bool	eo	YBCG-	can erase overstrikes with a blank
216generic_type    	gn	bool	gn	YB-G-	generic line type
217hard_copy       	hc	bool	hc	YBCG-	hardcopy terminal
218has_meta_key    	km	bool	km	YB-GE	Has a meta key (i.e., sets 8th-bit)
219has_status_line 	hs	bool	hs	YB-G-	has extra status line
220insert_null_glitch	in	bool	in	YBCGE	insert mode distinguishes nulls
221memory_above    	da	bool	da	YBCG-	display may be retained above the screen
222memory_below    	db	bool	db	YB-GE	display may be retained below the screen
223move_insert_mode	mir	bool	mi	YBCGE	safe to move while in insert mode
224move_standout_mode	msgr	bool	ms	YBCGE	safe to move while in standout mode
225over_strike     	os	bool	os	YBCG-	terminal can overstrike
226status_line_esc_ok	eslok	bool	es	YB-G-	escape can be used on the status line
227dest_tabs_magic_smso	xt	bool	xt	YBCGE	tabs destructive, magic so char (t1061)
228tilde_glitch    	hz	bool	hz	YB-GE	can't print ~'s (hazeltine)
229transparent_underline	ul	bool	ul	YBCGE	underline character overstrikes
230xon_xoff        	xon	bool	xo	YB---	terminal uses xon/xoff handshaking
231needs_xon_xoff  	nxon	bool	nx	-----	padding won't work, xon/xoff required
232prtr_silent     	mc5i	bool	5i	-----	printer won't echo on screen
233hard_cursor     	chts	bool	HC	-----	cursor is hard to see
234non_rev_rmcup   	nrrmc	bool	NR	-----	smcup does not reverse rmcup
235no_pad_char     	npc	bool	NP	-----	pad character does not exist
236non_dest_scroll_region	ndscr	bool	ND	-----	scrolling region is non-destructive
237can_change      	ccc	bool	cc	-----	terminal can re-define existing colors
238back_color_erase	bce	bool	ut	-----	screen erased with background color
239hue_lightness_saturation	hls	bool	hl	-----	terminal uses only HLS color notation (Tektronix)
240col_addr_glitch 	xhpa	bool	YA	-----	only positive motion for hpa/mhpa caps
241cr_cancels_micro_mode	crxm	bool	YB	-----	using cr turns off micro mode
242has_print_wheel 	daisy	bool	YC	-----	printer needs operator to change character set
243row_addr_glitch 	xvpa	bool	YD	-----	only positive motion for vpa/mvpa caps
244semi_auto_right_margin	sam	bool	YE	-----	printing in last column causes cr
245cpi_changes_res 	cpix	bool	YF	-----	changing character pitch changes resolution
246lpi_changes_res 	lpix	bool	YG	-----	changing line pitch changes resolution
247#%.TE
248#%.ad
249#%
250#%These are the numeric capabilities:
251#%
252#%.na
253#%.TS H
254#%center expand;
255#%c l l c
256#%c l l c
257#%lw25 lw6 lw2 lw20.
258#%\fBVariable	Cap-	TCap	Description\fR
259#%\fBNumeric	name	Code\fR
260columns         	cols	num	co	YBCGE	number of columns in a line
261init_tabs       	it	num	it	YB-G-	tabs initially every # spaces
262lines           	lines	num	li	YBCGE	number of lines on screen or page
263lines_of_memory 	lm	num	lm	YB-G-	lines of memory if > line. 0 means varies
264magic_cookie_glitch	xmc	num	sg	YBCGE	number of blank characters left by smso or rmso
265padding_baud_rate	pb	num	pb	YB-GE	lowest baud rate where padding needed
266virtual_terminal	vt	num	vt	YB---	virtual terminal number (CB/unix)
267width_status_line	wsl	num	ws	YB-G-	number of columns in status line
268num_labels      	nlab	num	Nl	-----	number of labels on screen
269label_height    	lh	num	lh	-----	rows in each label
270label_width     	lw	num	lw	-----	columns in each label
271max_attributes  	ma	num	ma	YBC--	maximum combined attributes terminal can handle
272maximum_windows 	wnum	num	MW	-----	maximum number of defineable windows
273# These came in with SVr4's color support
274max_colors      	colors	num	Co	-----	maximum number of colors on screen
275max_pairs       	pairs	num	pa	-----	maximum number of color-pairs on the screen
276no_color_video  	ncv	num	NC	-----	video attributes that can't be used with colors
277#%.TE
278#%.ad
279#%
280#%The following numeric capabilities are present in the SVr4.0 term structure,
281#%but are not yet documented in the man page.  They came in with SVr4's
282#%printer support.
283#%
284#%.na
285#%.TS H
286#%center expand;
287#%c l l c
288#%c l l c
289#%lw25 lw6 lw2 lw20.
290#%\fBVariable	Cap-	TCap	Description\fR
291#%\fBNumeric	name	Code\fR
292buffer_capacity 	bufsz	num	Ya	-----	numbers of bytes buffered before printing
293dot_vert_spacing	spinv	num	Yb	-----	spacing of pins vertically in pins per inch
294dot_horz_spacing	spinh	num	Yc	-----	spacing of dots horizontally in dots per inch
295max_micro_address	maddr	num	Yd	-----	maximum value in micro_..._address
296max_micro_jump  	mjump	num	Ye	-----	maximum value in parm_..._micro
297micro_col_size  	mcs	num	Yf	-----	character step size when in micro mode
298micro_line_size 	mls	num	Yg	-----	line step size when in micro mode
299number_of_pins  	npins	num	Yh	-----	numbers of pins in print-head
300output_res_char 	orc	num	Yi	-----	horizontal resolution in units per line
301output_res_line 	orl	num	Yj	-----	vertical resolution in units per line
302output_res_horz_inch	orhi	num	Yk	-----	horizontal resolution in units per inch
303output_res_vert_inch	orvi	num	Yl	-----	vertical resolution in units per inch
304print_rate      	cps	num	Ym	-----	print rate in characters per second
305wide_char_size  	widcs	num	Yn	-----	character step size when in double wide mode
306buttons         	btns	num	BT	-----	number of buttons on mouse
307bit_image_entwining	bitwin	num	Yo	-----	number of passes for each bit-image row
308bit_image_type  	bitype	num	Yp	-----	type of bit-image device
309#%.TE
310#%.ad
311#%
312#%These are the string capabilities:
313#%
314#%.na
315#%.TS H
316#%center expand;
317#%c l l c
318#%c l l c
319#%lw25 lw6 lw2 lw20.
320#%\fBVariable	Cap-	TCap	Description\fR
321#%\fBString	name	Code\fR
322back_tab        	cbt	str	bt	YBCGE	back tab (P)
323bell            	bel	str	bl	YB-GE	audible signal (bell) (P)
324carriage_return 	cr	str	cr	YBCGE	carriage return (P*) (P*)
325change_scroll_region	csr	str	cs	YBCGE	change region to line #1 to line #2 (P)
326clear_all_tabs  	tbc	str	ct	YB-G-	clear all tab stops (P)
327clear_screen    	clear	str	cl	YBCGE	clear screen and home cursor (P*)
328clr_eol         	el	str	ce	YBCGE	clear to end of line (P)
329clr_eos         	ed	str	cd	YBCGE	clear to end of screen (P*)
330column_address  	hpa	str	ch	-B-GE**	horizontal position #1, absolute (P)
331command_character	cmdch	str	CC	YB-G-	terminal settable cmd character in prototype !?
332cursor_address  	cup	str	cm	YBCGE	move to row #1 columns #2
333cursor_down     	cud1	str	do	YBCGE	down one line
334cursor_home     	home	str	ho	YBCGE	home cursor (if no cup)
335cursor_invisible	civis	str	vi	YB-G-	make cursor invisible
336cursor_left     	cub1	str	le	YBCGE	move left one space
337cursor_mem_address	mrcup	str	CM	YB-G-	memory relative cursor addressing, move to row #1 columns #2
338cursor_normal   	cnorm	str	ve	YBCGE	make cursor appear normal (undo civis/cvvis)
339cursor_right    	cuf1	str	nd	YBCGE	non-destructive space (move right one space)
340cursor_to_ll    	ll	str	ll	YBCGE	last line, first column (if no cup)
341cursor_up       	cuu1	str	up	YBCGE	up one line
342cursor_visible  	cvvis	str	vs	YBCGE	make cursor very visible
343delete_character	dch1	str	dc	YBCGE	delete character (P*)
344delete_line     	dl1	str	dl	YBCGE	delete line (P*)
345dis_status_line 	dsl	str	ds	YB-G-	disable status line
346down_half_line  	hd	str	hd	YB-G-	half a line down
347enter_alt_charset_mode	smacs	str	as	YB-G-	start alternate character set (P)
348enter_blink_mode	blink	str	mb	YB-G-	turn on blinking
349enter_bold_mode 	bold	str	md	YB-G-	turn on bold (extra bright) mode
350enter_ca_mode   	smcup	str	ti	YBCGE	string to start programs using cup
351enter_delete_mode	smdc	str	dm	YBCGE	enter delete mode
352enter_dim_mode  	dim	str	mh	YB-G-	turn on half-bright mode
353enter_insert_mode	smir	str	im	YBCGE	enter insert mode
354enter_secure_mode	invis	str	mk	-B-G-*	turn on blank mode (characters invisible)
355enter_protected_mode	prot	str	mp	-B-G-*	turn on protected mode
356enter_reverse_mode	rev	str	mr	YB-G-	turn on reverse video mode
357enter_standout_mode	smso	str	so	YBCGE	begin standout mode
358enter_underline_mode	smul	str	us	YBCGE	begin underline mode
359erase_chars     	ech	str	ec	YB-G-	erase #1 characters (P)
360exit_alt_charset_mode	rmacs	str	ae	YB-G-	end alternate character set (P)
361exit_attribute_mode	sgr0	str	me	YB-GE	turn off all attributes
362exit_ca_mode    	rmcup	str	te	YBCGE	strings to end programs using cup
363exit_delete_mode	rmdc	str	ed	YBCGE	end delete mode
364exit_insert_mode	rmir	str	ei	YBCGE	exit insert mode
365exit_standout_mode	rmso	str	se	YBCGE	exit standout mode
366exit_underline_mode	rmul	str	ue	YBCGE	exit underline mode
367flash_screen    	flash	str	vb	YBCGE	visible bell (may not move cursor)
368form_feed       	ff	str	ff	YB-G-	hardcopy terminal page eject (P*)
369from_status_line	fsl	str	fs	YB-G-	return from status line
370init_1string    	is1	str	i1	YB-G-	initialization string
371init_2string    	is2	str	is	YB-G-	initialization string
372init_3string    	is3	str	i3	YB-G-	initialization string
373init_file       	if	str	if	YB-G-	name of initialization file
374insert_character	ich1	str	ic	YBCGE	insert character (P)
375insert_line     	il1	str	al	YBCGE	insert line (P*)
376insert_padding  	ip	str	ip	YBCGE	insert padding after inserted character
377key_backspace   	kbs	str	kb	YB-G-	backspace key
378key_catab       	ktbc	str	ka	-B-G-*	clear-all-tabs key
379key_clear       	kclr	str	kC	-B-G-*	clear-screen or erase key
380key_ctab        	kctab	str	kt	-B-G-*	clear-tab key
381key_dc          	kdch1	str	kD	YB-G-	delete-character key
382key_dl          	kdl1	str	kL	-B-G-*	delete-line key
383key_down        	kcud1	str	kd	YBCGE	down-arrow key
384key_eic         	krmir	str	kM	-B-G-*	sent by rmir or smir in insert mode
385key_eol         	kel	str	kE	-B-G-*	clear-to-end-of-line key
386key_eos         	ked	str	kS	-B-G-*	clear-to-end-of-screen key
387key_f0          	kf0	str	k0	YBCGE	F0 function key
388key_f1          	kf1	str	k1	YBCGE	F1 function key
389key_f10         	kf10	str	k;	----E	F10 function key
390key_f2          	kf2	str	k2	YBCGE	F2 function key
391key_f3          	kf3	str	k3	YBCGE	F3 function key
392key_f4          	kf4	str	k4	YBCGE	F4 function key
393key_f5          	kf5	str	k5	YBCGE	F5 function key
394key_f6          	kf6	str	k6	YBCGE	F6 function key
395key_f7          	kf7	str	k7	YBCGE	F7 function key
396key_f8          	kf8	str	k8	YBCGE	F8 function key
397key_f9          	kf9	str	k9	YBCGE	F9 function key
398key_home        	khome	str	kh	YBCGE	home key
399key_ic          	kich1	str	kI	YB-GE	insert-character key
400key_il          	kil1	str	kA	-B-G-*	insert-line key
401key_left        	kcub1	str	kl	YBCGE	left-arrow key
402key_ll          	kll	str	kH	YB-G-	lower-left key (home down)
403key_npage        	knp	str	kN	YB-GE	next-page key
404key_ppage       	kpp	str	kP	YB-GE	previous-page key
405key_right       	kcuf1	str	kr	YBCGE	right-arrow key
406key_sf          	kind	str	kF	-B-G-*	scroll-forward key
407key_sr          	kri	str	kR	-B-G-*	scroll-backward key
408key_stab        	khts	str	kT	-B-G-*	set-tab key
409key_up          	kcuu1	str	ku	YBCGE	up-arrow key
410keypad_local    	rmkx	str	ke	YBCGE	leave 'keyboard_transmit' mode
411keypad_xmit     	smkx	str	ks	YBCGE	enter 'keyboard_transmit' mode
412lab_f0          	lf0	str	l0	-B-G-*	label on function key f0 if not f0
413lab_f1          	lf1	str	l1	-B-G-*	label on function key f1 if not f1
414lab_f10          	lf10	str	la	-----	label on function key f10 if not f10
415lab_f2          	lf2	str	l2	-B-G-*	label on function key f2 if not f2
416lab_f3          	lf3	str	l3	-B-G-*	label on function key f3 if not f3
417lab_f4          	lf4	str	l4	-B-G-*	label on function key f4 if not f4
418lab_f5          	lf5	str	l5	-B-G-*	label on function key f5 if not f5
419lab_f6          	lf6	str	l6	-B-G-*	label on function key f6 if not f6
420lab_f7          	lf7	str	l7	-B-G-*	label on function key f7 if not f7
421lab_f8          	lf8	str	l8	-B-G-*	label on function key f8 if not f8
422lab_f9          	lf9	str	l9	-B-G-*	label on function key f9 if not f9
423meta_off          	rmm	str	mo	YB-G-*	turn off meta mode
424meta_on         	smm	str	mm	YB-G-*	turn on meta mode (8th-bit on)
425newline         	nel	str	nw	YB-G-*	newline (behave like cr followed by lf)
426pad_char          	pad	str	pc	YBCGE	padding char (instead of null)
427parm_dch          	dch	str	DC	YB-GE	delete #1 characters (P*)
428parm_delete_line	dl	str	DL	YBCGE	delete #1 lines (P*)
429parm_down_cursor	cud	str	DO	YBCGE	down #1 lines (P*)
430parm_ich          	ich	str	IC	YB-GE	insert #1 characters (P*)
431parm_index          	indn	str	SF	YBCG-	scroll forward #1 lines (P)
432parm_insert_line	il	str	AL	YBCGE	insert #1 lines (P*)
433parm_left_cursor	cub	str	LE	YBCGE	move #1 characters to the left (P)
434parm_right_cursor	cuf	str	RI	YBCGE	move #1 characters to the right (P*)
435parm_rindex          	rin	str	SR	YBCG-	scroll back #1 lines (P)
436parm_up_cursor  	cuu	str	UP	YBCGE	up #1 lines (P*)
437pkey_key        	pfkey	str	pk	-B---	program function key #1 to type string #2
438pkey_local          	pfloc	str	pl	-B---	program function key #1 to execute string #2
439pkey_xmit          	pfx	str	px	-B---	program function key #1 to transmit string #2
440print_screen          	mc0	str	ps	-B-G-*	print contents of screen
441prtr_off          	mc4	str	pf	-B-G-*	turn off printer
442prtr_on         	mc5	str	po	-B-G-*	turn on printer
443repeat_char          	rep	str	rp	YB-GE	repeat char #1 #2 times (P*)
444reset_1string          	rs1	str	r1	-B---	reset string
445reset_2string          	rs2	str	r2	-B---	reset string
446reset_3string          	rs3	str	r3	-B---	reset string
447reset_file          	rf	str	rf	-B---	name of reset file
448restore_cursor        	rc	str	rc	YBCG-	restore cursor to position of last save_cursor
449row_address          	vpa	str	cv	-B-GE**	vertical position #1 absolute (P)
450save_cursor          	sc	str	sc	YBCG-	save current cursor position (P)
451scroll_forward        	ind	str	sf	YBCGE	scroll text up (P)
452scroll_reverse        	ri	str	sr	YBCGE	scroll text down (P)
453set_attributes        	sgr	str	sa	YB-G-	define video attributes #1-#9 (PG9)
454set_tab         	hts	str	st	YB-G-	set a tab in every row, current columns
455set_window      	wind	str	wi	-B-GE	current window is lines #1-#2 cols #3-#4
456tab             	ht	str	ta	YBCGE	tab to next 8-space hardware tab stop
457to_status_line  	tsl	str	ts	YB-G-	move to status line, column #1
458underline_char  	uc	str	uc	YBCG-	underline char and move past it
459up_half_line    	hu	str	hu	YB-G-	half a line up
460init_prog       	iprog	str	iP	-B---	path name of program for initialization
461key_a1          	ka1	str	K1	YB-GE	upper left of keypad
462key_a3          	ka3	str	K3	YB-GE	upper right of keypad
463key_b2          	kb2	str	K2	YB-GE	center of keypad
464key_c1          	kc1	str	K4	YB-GE	lower left of keypad
465key_c3          	kc3	str	K5	YB-GE	lower right of keypad
466prtr_non        	mc5p	str	pO	-B-G-*	turn on printer for #1 bytes
467#
468# SVr1 capabilities stop here.	IBM's version of terminfo is the same as
469# SVr4 up to this point, but has a different set afterwards.
470#
471char_padding    	rmp	str	rP	-----	like ip but when in insert mode
472acs_chars       	acsc	str	ac	-----	graphics charset pairs, based on vt100
473plab_norm       	pln	str	pn	-----	program label #1 to show string #2
474key_btab        	kcbt	str	kB	-----	back-tab key
475enter_xon_mode  	smxon	str	SX	-----	turn on xon/xoff handshaking
476exit_xon_mode   	rmxon	str	RX	-----	turn off xon/xoff handshaking
477enter_am_mode   	smam	str	SA	-----	turn on automatic margins
478exit_am_mode    	rmam	str	RA	-----	turn off automatic margins
479xon_character   	xonc	str	XN	-----	XON character
480xoff_character  	xoffc	str	XF	-----	XOFF character
481ena_acs          	enacs	str	eA	-----	enable alternate char set
482label_on        	smln	str	LO	-----	turn on soft labels
483label_off       	rmln	str	LF	-----	turn off soft labels
484key_beg          	kbeg	str	@1	-----	begin key
485key_cancel      	kcan	str	@2	-----	cancel key
486key_close       	kclo	str	@3	-----	close key
487key_command     	kcmd	str	@4	-----	command key
488key_copy        	kcpy	str	@5	-----	copy key
489key_create      	kcrt	str	@6	-----	create key
490key_end          	kend	str	@7	-----	end key
491key_enter       	kent	str	@8	-----	enter/send key
492key_exit        	kext	str	@9	-----	exit key
493key_find        	kfnd	str	@0	-----	find key
494key_help          	khlp	str	%1	-----	help key
495key_mark          	kmrk	str	%2	-----	mark key
496key_message          	kmsg	str	%3	-----	message key
497key_move          	kmov	str	%4	-----	move key
498key_next          	knxt	str	%5	-----	next key
499key_open          	kopn	str	%6	-----	open key
500key_options          	kopt	str	%7	-----	options key
501key_previous          	kprv	str	%8	-----	previous key
502key_print          	kprt	str	%9	-----	print key
503key_redo          	krdo	str	%0	-----	redo key
504key_reference          	kref	str	&1	-----	reference key
505key_refresh          	krfr	str	&2	-----	refresh key
506key_replace          	krpl	str	&3	-----	replace key
507key_restart          	krst	str	&4	-----	restart key
508key_resume          	kres	str	&5	-----	resume key
509key_save          	ksav	str	&6	-----	save key
510key_suspend          	kspd	str	&7	-----	suspend key
511key_undo        	kund	str	&8	-----	undo key
512key_sbeg        	kBEG	str	&9	-----	shifted begin key
513key_scancel     	kCAN	str	&0	-----	shifted cancel key
514key_scommand    	kCMD	str	*1	-----	shifted command key
515key_scopy       	kCPY	str	*2	-----	shifted copy key
516key_screate     	kCRT	str	*3	-----	shifted create key
517key_sdc         	kDC	str	*4	-----	shifted delete-character key
518key_sdl          	kDL	str	*5	-----	shifted delete-line key
519key_select      	kslt	str	*6	-----	select key
520key_send        	kEND	str	*7	-----	shifted end key
521key_seol          	kEOL	str	*8	-----	shifted clear-to-end-of-line key
522key_sexit          	kEXT	str	*9	-----	shifted exit key
523key_sfind          	kFND	str	*0	-----	shifted find key
524key_shelp          	kHLP	str	#1	-----	shifted help key
525key_shome          	kHOM	str	#2	-----	shifted home key
526key_sic          	kIC	str	#3	-----	shifted insert-character key
527key_sleft          	kLFT	str	#4	-----	shifted left-arrow key
528key_smessage          	kMSG	str	%a	-----	shifted message key
529key_smove          	kMOV	str	%b	-----	shifted move key
530key_snext          	kNXT	str	%c	-----	shifted next key
531key_soptions          	kOPT	str	%d	-----	shifted options key
532key_sprevious          	kPRV	str	%e	-----	shifted previous key
533key_sprint          	kPRT	str	%f	-----	shifted print key
534key_sredo          	kRDO	str	%g	-----	shifted redo key
535key_sreplace          	kRPL	str	%h	-----	shifted replace key
536key_sright      	kRIT	str	%i	-----	shifted right-arrow key
537key_srsume      	kRES	str	%j	-----	shifted resume key
538key_ssave       	kSAV	str	!1	-----	shifted save key
539key_ssuspend    	kSPD	str	!2	-----	shifted suspend key
540key_sundo       	kUND	str	!3	-----	shifted undo key
541req_for_input   	rfi	str	RF	-----	send next input char (for ptys)
542key_f11         	kf11	str	F1	----E	F11 function key
543key_f12         	kf12	str	F2	----E	F12 function key
544key_f13         	kf13	str	F3	----E	F13 function key
545key_f14         	kf14	str	F4	----E	F14 function key
546key_f15         	kf15	str	F5	----E	F15 function key
547key_f16         	kf16	str	F6	----E	F16 function key
548key_f17         	kf17	str	F7	----E	F17 function key
549key_f18         	kf18	str	F8	----E	F18 function key
550key_f19         	kf19	str	F9	----E	F19 function key
551key_f20         	kf20	str	FA	----E	F20 function key
552key_f21         	kf21	str	FB	----E	F21 function key
553key_f22         	kf22	str	FC	----E	F22 function key
554key_f23         	kf23	str	FD	----E	F23 function key
555key_f24         	kf24	str	FE	----E	F24 function key
556key_f25         	kf25	str	FF	----E	F25 function key
557key_f26         	kf26	str	FG	----E	F26 function key
558key_f27         	kf27	str	FH	----E	F27 function key
559key_f28         	kf28	str	FI	----E	F28 function key
560key_f29         	kf29	str	FJ	----E	F29 function key
561key_f30         	kf30	str	FK	----E	F30 function key
562key_f31         	kf31	str	FL	----E	F31 function key
563key_f32         	kf32	str	FM	----E	F32 function key
564key_f33         	kf33	str	FN	----E	F33 function key
565key_f34         	kf34	str	FO	----E	F34 function key
566key_f35         	kf35	str	FP	----E	F35 function key
567key_f36         	kf36	str	FQ	----E	F36 function key
568key_f37         	kf37	str	FR	----E	F37 function key
569key_f38         	kf38	str	FS	----E	F38 function key
570key_f39         	kf39	str	FT	----E	F39 function key
571key_f40         	kf40	str	FU	----E	F40 function key
572key_f41         	kf41	str	FV	----E	F41 function key
573key_f42         	kf42	str	FW	----E	F42 function key
574key_f43         	kf43	str	FX	----E	F43 function key
575key_f44         	kf44	str	FY	----E	F44 function key
576key_f45         	kf45	str	FZ	----E	F45 function key
577key_f46         	kf46	str	Fa	----E	F46 function key
578key_f47         	kf47	str	Fb	----E	F47 function key
579key_f48         	kf48	str	Fc	----E	F48 function key
580key_f49         	kf49	str	Fd	----E	F49 function key
581key_f50         	kf50	str	Fe	----E	F50 function key
582key_f51         	kf51	str	Ff	----E	F51 function key
583key_f52         	kf52	str	Fg	----E	F52 function key
584key_f53         	kf53	str	Fh	----E	F53 function key
585key_f54         	kf54	str	Fi	----E	F54 function key
586key_f55         	kf55	str	Fj	----E	F55 function key
587key_f56         	kf56	str	Fk	----E	F56 function key
588key_f57         	kf57	str	Fl	----E	F57 function key
589key_f58         	kf58	str	Fm	----E	F58 function key
590key_f59         	kf59	str	Fn	----E	F59 function key
591key_f60         	kf60	str	Fo	----E	F60 function key
592key_f61         	kf61	str	Fp	----E	F61 function key
593key_f62         	kf62	str	Fq	----E	F62 function key
594key_f63         	kf63	str	Fr	----E	F63 function key
595clr_bol         	el1	str	cb	-----	Clear to beginning of line
596clear_margins    	mgc	str	MC	-----	clear right and left soft margins
597set_left_margin    	smgl	str	ML	-----	set left soft margin at current column.  See smgl. (ML is not in BSD termcap).
598set_right_margin	smgr	str	MR	-----	set right soft margin at current column
599label_format    	fln	str	Lf	-----	label format
600set_clock       	sclk	str	SC	-----	set clock, #1 hrs #2 mins #3 secs
601display_clock   	dclk	str	DK	-----	display clock
602remove_clock    	rmclk	str	RC	-----	remove clock
603create_window   	cwin	str	CW	-----	define a window #1 from #2,#3 to #4,#5
604goto_window     	wingo	str	WG	-----	go to window #1
605hangup           	hup	str	HU	-----	hang-up phone
606dial_phone      	dial	str	DI	-----	dial number #1
607quick_dial      	qdial	str	QD	-----	dial number #1 without checking
608tone             	tone	str	TO	-----	select touch tone dialing
609pulse           	pulse	str	PU	-----	select pulse dialing
610flash_hook      	hook	str	fh	-----	flash switch hook
611fixed_pause     	pause	str	PA	-----	pause for 2-3 seconds
612wait_tone       	wait	str	WA	-----	wait for dial-tone
613user0           	u0	str	u0	-----	User string #0
614user1           	u1	str	u1	-----	User string #1
615user2           	u2	str	u2	-----	User string #2
616user3           	u3	str	u3	-----	User string #3
617user4           	u4	str	u4	-----	User string #4
618user5           	u5	str	u5	-----	User string #5
619user6           	u6	str	u6	-----	User string #6
620user7           	u7	str	u7	-----	User string #7
621user8           	u8	str	u8	-----	User string #8
622user9           	u9	str	u9	-----	User string #9
623#
624# SVr4 added these capabilities to support color
625#
626orig_pair       	op	str	op	-----	Set default pair to its original value
627orig_colors     	oc	str	oc	-----	Set all color pairs to the original ones
628initialize_color	initc	str	Ic	-----	initialize color #1 to (#2,#3,#4)
629initialize_pair  	initp	str	Ip	-----	Initialize color pair #1 to fg=(#2,#3,#4), bg=(#5,#6,#7)
630set_color_pair  	scp	str	sp	-----	Set current color pair to #1
631set_foreground  	setf	str	Sf	-----	Set foreground color #1
632set_background  	setb	str	Sb	-----	Set background color #1
633#
634# SVr4 added these capabilities to support printers
635#
636change_char_pitch	cpi	str	ZA	-----	Change number of characters per inch to #1
637change_line_pitch	lpi	str	ZB	-----	Change number of lines per inch to #1
638change_res_horz  	chr	str	ZC	-----	Change horizontal resolution to #1
639change_res_vert  	cvr	str	ZD	-----	Change vertical resolution to #1
640define_char     	defc	str	ZE	-----	Define a character #1, #2 dots wide, descender #3
641enter_doublewide_mode	swidm	str	ZF	-----	Enter double-wide mode
642enter_draft_quality	sdrfq	str	ZG	-----	Enter draft-quality mode
643enter_italics_mode	sitm	str	ZH	-----	Enter italic mode
644enter_leftward_mode	slm	str	ZI	-----	Start leftward carriage motion
645enter_micro_mode	smicm	str	ZJ	-----	Start micro-motion mode
646enter_near_letter_quality	snlq	str	ZK	-----	Enter NLQ mode
647enter_normal_quality	snrmq	str	ZL	-----	Enter normal-quality mode
648enter_shadow_mode	sshm	str	ZM	-----	Enter shadow-print mode
649enter_subscript_mode	ssubm	str	ZN	-----	Enter subscript mode
650enter_superscript_mode	ssupm	str	ZO	-----	Enter superscript mode
651enter_upward_mode	sum	str	ZP	-----	Start upward carriage motion
652exit_doublewide_mode	rwidm	str	ZQ	-----	End double-wide mode
653exit_italics_mode	ritm	str	ZR	-----	End italic mode
654exit_leftward_mode	rlm	str	ZS	-----	End left-motion mode
655exit_micro_mode 	rmicm	str	ZT	-----	End micro-motion mode
656exit_shadow_mode	rshm	str	ZU	-----	End shadow-print mode
657exit_subscript_mode	rsubm	str	ZV	-----	End subscript mode
658exit_superscript_mode	rsupm	str	ZW	-----	End superscript mode
659exit_upward_mode	rum	str	ZX	-----	End reverse character motion
660micro_column_address	mhpa	str	ZY	-----	Like column_address in micro mode
661micro_down      	mcud1	str	ZZ	-----	Like cursor_down in micro mode
662micro_left      	mcub1	str	Za	-----	Like cursor_left in micro mode
663micro_right     	mcuf1	str	Zb	-----	Like cursor_right in micro mode
664micro_row_address	mvpa	str	Zc	-----	Like row_address #1 in micro mode
665micro_up        	mcuu1	str	Zd	-----	Like cursor_up in micro mode
666order_of_pins   	porder	str	Ze	-----	Match software bits to print-head pins
667parm_down_micro 	mcud	str	Zf	-----	Like parm_down_cursor in micro mode
668parm_left_micro 	mcub	str	Zg	-----	Like parm_left_cursor in micro mode
669parm_right_micro	mcuf	str	Zh	-----	Like parm_right_cursor in micro mode
670parm_up_micro   	mcuu	str	Zi	-----	Like parm_up_cursor in micro mode
671select_char_set 	scs	str	Zj	-----	Select character set, #1
672set_bottom_margin	smgb	str	Zk	-----	Set bottom margin at current line
673set_bottom_margin_parm	smgbp	str	Zl	-----	Set bottom margin at line #1 or (if smgtp is not given) #2 lines from bottom
674set_left_margin_parm	smglp	str	Zm	-----	Set left (right) margin at column #1
675set_right_margin_parm	smgrp	str	Zn	-----	Set right margin at column #1
676set_top_margin  	smgt	str	Zo	-----	Set top margin at current line
677set_top_margin_parm	smgtp	str	Zp	-----	Set top (bottom) margin at row #1
678start_bit_image 	sbim	str	Zq	-----	Start printing bit image graphics
679start_char_set_def	scsd	str	Zr	-----	Start character set definition #1, with #2 characters in the set
680stop_bit_image  	rbim	str	Zs	-----	Stop printing bit image graphics
681stop_char_set_def	rcsd	str	Zt	-----	End definition of character set #1
682subscript_characters	subcs	str	Zu	-----	List of subscriptable characters
683superscript_characters	supcs	str	Zv	-----	List of superscriptable characters
684these_cause_cr  	docr	str	Zw	-----	Printing any of these characters causes CR
685zero_motion     	zerom	str	Zx	-----	No motion for subsequent character
686#%.TE
687#%.ad
688#%
689#%The following string capabilities are present in the SVr4.0 term structure,
690#%but were originally not documented in the man page.
691#%
692#%.na
693#%.TS H
694#%center expand;
695#%c l l c
696#%c l l c
697#%lw25 lw6 lw2 lw18.
698#%\fBVariable	Cap-	TCap	Description\fR
699#%\fBString	name	Code\fR
700char_set_names  	csnm	str	Zy	-----	Produce #1'th item from list of character set names
701key_mouse       	kmous	str	Km	-----	Mouse event has occurred
702mouse_info      	minfo	str	Mi	-----	Mouse status information
703req_mouse_pos   	reqmp	str	RQ	-----	Request mouse position
704get_mouse       	getm	str	Gm	-----	Curses should get button events, parameter #1 not documented.
705set_a_foreground	setaf	str	AF	-----	Set foreground color to #1, using ANSI escape
706set_a_background	setab	str	AB	-----	Set background color to #1, using ANSI escape
707pkey_plab       	pfxl	str	xl	-----	Program function key #1 to type string #2 and show string #3
708device_type     	devt	str	dv	-----	Indicate language/codeset support
709code_set_init   	csin	str	ci	-----	Init sequence for multiple codesets
710set0_des_seq    	s0ds	str	s0	-----	Shift to code set 0 (EUC set 0, ASCII)
711set1_des_seq    	s1ds	str	s1	-----	Shift to code set 1
712set2_des_seq    	s2ds	str	s2	-----	Shift to code set 2
713set3_des_seq    	s3ds	str	s3	-----	Shift to code set 3
714set_lr_margin   	smglr	str	ML	-----	Set both left and right margins to #1, #2.  (ML is not in BSD termcap).
715set_tb_margin   	smgtb	str	MT	-----	Sets both top and bottom margins to #1, #2
716bit_image_repeat	birep	str	Xy	-----	Repeat bit image cell #1 #2 times
717bit_image_newline	binel	str	Zz	-----	Move to next row of the bit image
718bit_image_carriage_return	bicr	str	Yv	-----	Move to beginning of same row
719color_names     	colornm	str	Yw	-----	Give name for color #1
720define_bit_image_region	defbi	str	Yx	-----	Define rectangualar bit image region
721end_bit_image_region	endbi	str	Yy	-----	End a bit-image region
722set_color_band  	setcolor	str	Yz	-----	Change to ribbon color #1
723set_page_length 	slines	str	YZ	-----	Set page length to #1 lines
724#
725# SVr4 added these capabilities for direct PC-clone support
726#
727display_pc_char 	dispc	str	S1	-----	Display PC character #1
728enter_pc_charset_mode	smpch	str	S2	-----	Enter PC character display mode
729exit_pc_charset_mode	rmpch	str	S3	-----	Exit PC character display mode
730enter_scancode_mode	smsc	str	S4	-----	Enter PC scancode mode
731exit_scancode_mode	rmsc	str	S5	-----	Exit PC scancode mode
732pc_term_options 	pctrm	str	S6	-----	PC terminal options
733scancode_escape 	scesc	str	S7	-----	Escape for scancode emulation
734alt_scancode_esc	scesa	str	S8	-----	Alternate escape for scancode emulation
735#%.TE
736#%.ad
737#%
738#%.in .8i
739#%The XSI Curses standard added these.  They are some post-4.1
740#%versions of System V curses, e.g., Solaris 2.5 and IRIX 6.x.
741#%The \fBncurses\fR termcap names for them are invented; according to the
742#%XSI Curses standard, they have no termcap names.  If your compiled terminfo
743#%entries use these, they may not be binary-compatible with System V terminfo
744#%entries after SVr4.1; beware!
745#%
746#%.na
747#%.TS H
748#%center expand;
749#%c l l c
750#%c l l c
751#%lw25 lw6 lw2 lw20.
752#%\fBVariable	Cap-	TCap	Description\fR
753#%\fBString	name	Code\fR
754enter_horizontal_hl_mode	ehhlm	str	Xh	-----	Enter horizontal highlight mode
755enter_left_hl_mode	elhlm	str	Xl	-----	Enter left highlight mode
756enter_low_hl_mode	elohlm	str	Xo	-----	Enter low highlight mode
757enter_right_hl_mode	erhlm	str	Xr	-----	Enter right highlight mode
758enter_top_hl_mode	ethlm	str	Xt	-----	Enter top highlight mode
759enter_vertical_hl_mode	evhlm	str	Xv	-----	Enter vertical highlight mode
760set_a_attributes	sgr1	str	sA	-----	Define second set of video attributes #1-#6
761set_pglen_inch  	slength	str	sL	-----	YI Set page length to #1 hundredth of an inch
762#%.TE
763#%.ad
764#
765# The magic token below tells the tic compiler-generator code that all the caps
766# past it should be ignored (not written out) when dumping terminfo objects. It
767# also tells the man page table generator not to pass through following lines
768# This means we can have obsolete capabilities and pseudo-capabilities that are
769# recognized for termcap or terminfo compilation, but not output.
770#
771# %%-STOP-HERE-%%
772#
773# Don't move this casually!  In fact, don't move it at all unless you're
774# either doing it to add System V or XPG4 extensions, or have decided you
775# don't care about SVr4 binary compatibility.
776#
777#############################################################################
778#
779# TERMCAP EXTENSION CAPABILITIES
780#
781# The capabilities below are either obsolete or extensions on certain systems.
782# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
783# termcap sources; the rest are listed for completeness, and in case somebody
784# cares about them enough to hack in code that will translate them into
785# terminfo capabilities.
786#
787# The first part of the list is from Ross Ridge's `mytinfo' package
788# (comp.sources.unix, volume 26); the variable names and terminfo names (as
789# well as the termcap codes) match his list.
790#
791# This group of codes is not marked obsolete in 4.4BSD, but have no direct
792# terminfo equivalents.  The rs capability is specially translated to terminfo
793# r2, and vice versa, if an entry does not already have an r2.  Similarly,
794# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
795# The ug capability is thrown away, but assumed to be whatever sg is if the
796# latter is nonzero and we're dumping in termcap format.
797#
798termcap_init2		OTi2	str	i2	YB---	secondary initialization string
799termcap_reset		OTrs	str	rs	YB-G-	terminal reset string
800magic_cookie_glitch_ul	OTug	num	ug	YBCGE	number of blanks left by ul
801#
802# Obsolete termcap capabilities.  Some are used for termcap translation.  The
803# code uses the 'OT' prefix we put on obsolete capabilities to suppress
804# printing them in terminfo source dumps of compiled entries.
805#
806backspaces_with_bs      OTbs	bool	bs	YBCGE	uses ^H to move left
807crt_no_scrolling    	OTns	bool	ns	YBCG-	crt cannot scroll
808no_correctly_working_cr	OTnc	bool	nc	YBCG-	no way to go to start of line
809carriage_return_delay	OTdC	num	dC	YB-G-	pad needed for CR
810new_line_delay		OTdN	num	dN	YB-G-	pad needed for LF
811linefeed_if_not_lf      OTnl	str	nl	YBCGE	use to move down
812backspace_if_not_bs     OTbc	str	bc	YBCGE	move left, if not ^H
813#
814# GNU termcap library extensions.  The GNU termcap file distributed with
815# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
816# BSD termcap file.  The name clash with terminfo MT is resolved by type
817# info; MT is converted to km.
818#
819gnu_has_meta_key	OTMT	bool	MT	----E	has meta key
820# gnu_tab_width		OTtw	num	tw	----E	tab width in spaces
821#
822# GNU termcap *does* include the following extended capability,  Only the
823# now-obsolete Ann Arbor terminals used it.
824#
825# gnu_change_scroll_region	OTcS	str	cS	---GE	alternate set scrolling region
826#
827# The following comments describe capnames so ancient that I believe no
828# software uses them any longer.  Some of these have to go because they
829# clash with terminfo names in ways that cannot be resolved by type
830# information.
831#
832# These mytinfo codes are not used in the 4.4BSD curses code.  They are
833# marked obsolete in the 4.4BSD manual pages.
834#
835# There is one conflict with terminfo; ma is in both.  This conflict is
836# resolved by type information.
837#
838# The `ko' capability is translated by special code.  It should contain a
839# comma-separated list of capabilities for which there are corresponding keys.
840# The `kn' code is accepted but ignored.
841#
842# The `ma' capability seems to have been designed to map between the rogue(2)
843# motion keys (including jkhl) and characters emitted by arrow keys on some
844# primitive pre-ANSI terminals.  It's so obsolete it's fossilized...
845#
846# Here is a description of memory_lock_above and memory_unlock:
847# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
848# text.  All lines above the cursor's current line become locked in place on
849# the screen.  Then enter data normally.  When the screen fills up, any
850# further data entered forces the first line of unfrozen line text to scroll
851# under the frozen data.  Lines scrolled off the screen are inserted into
852# memory immediately preceding the first frozen line." (from the HP 700/96
853# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
854#
855# Applications that use terminfo are supposed to behave as though xr is
856# always true.
857#
858linefeed_is_newline     OTNL	bool	NL	YB---	move down with \n
859# even_parity		OTEP	bool	EP	-B---	terminal requires even parity
860# odd_parity		OTOP	bool	OP	-B---	terminal requires odd parity
861# half_duplex		OTHD	bool	HD	-B---	terminal is half-duplex
862# lower_case_only	OTLC	bool	LC	-B---	terminal has only lower case
863# upper_case_only	OTUC	bool	UC	-B---	terminal has only upper case
864backspace_delay		OTdB	num	dB	YB-G-	padding required for ^H
865# form_feed_delay	OTdF	num	dF	-B-G-	padding required for ^L
866horizontal_tab_delay	OTdT	num	dT	YB-G-	padding required for ^I
867# vertical_tab_delay	OTdV	num	dV	-B---	padding required for ^V
868number_of_function_keys	OTkn	num	kn	-B-G-	count of function keys
869other_non_function_keys OTko	str	ko	-B-G-	list of self-mapped keycaps
870arrow_key_map           OTma	str	ma	YBC--	map arrow keys rogue(1) motion keys
871# memory_lock_above     OTml	str	ml	-B---	lock visible screen memory above the current line
872# memory_unlock         OTmu	str	mu	-B---	unlock visible screen memory above the current line
873has_hardware_tabs       OTpt	bool	pt	YB---	has 8-char tabs invoked with ^I
874return_does_clr_eol	OTxr	bool	xr	YB---	return clears the line
875# tek_4025_insert_line	OTxx	bool	xx	-BC--	Tektronix 4025 insert-line glitch
876#
877# mytinfo described this as a termcap capability, but it's not listed in the
878# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
879# package, like System V, behaves as though it is always true.
880#
881# rind_only_at_top	OTxq	bool	xq	-----	reverse index only works from top line
882#
883# University of Waterloo termcap extensions (as described in mytinfo).
884# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
885# be resolved by a type check.  The descriptions are guesses from what was
886# in the mytinfo tables.
887#
888# key_interrupt_char    OTki	str	ki	-----	string set by interrupt key (?)
889# key_kill_char         OTkk	str	kk	-----	string set by kill key (?)
890# key_suspend_char      OTkz	str	kz	-----	string set by suspend key (?)
891# initialization_messy	OTxc	bool	xc	-----	initialization leaves garbage on the screen (?)
892# ind_at_bottom_does_cr	OTxl	bool	xl	-----	index does a carriage return
893#
894# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
895# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
896# check.
897#
898# scroll_left          	OTsl1	str	Sl	-----	scroll screen leftward
899# scroll_right         	OTsr1	str	Sr	-----	scroll screen rightward
900# parm_scroll_left     	OTsl	str	SL	-----	scroll screen leftward #1 characters
901# parm_scroll_right    	OTsr	str	SR	-----	scroll screen rightward #1 characters
902#
903# The mytinfo capabilities end here.
904#
905# XENIX extensions:
906#
907# Xenix defined its own set of forms-drawing capabilities:
908#
909# cap	IBM ASCII	description             ACS         	ASCII
910# ---	-----------	--------------------    -------------	------
911# G1	191 \277 M-?	single upper right   	ACS_URCORNER
912# G2	218 \332 M-Z	single upper left	ACS_ULCORNER
913# G3	192 \300 M-@	single lower left	ACS_LLCORNER
914# G4	217 \331 M-Y	single lower right	ACS_LRCORNER
915# G5	187 \273 M-;	double upper right
916# G6	201 \311 M-I	double upper left
917# G7	200 \310 M-H	double lower left
918# G8	188 \274 M-<	double lower right
919# GC	197 \305 M-E	single intersection	ACS_PLUS	_ _
920# GD	194 \302 M-B	single down-tick	ACS_TTEE	 |
921# GH	196 \304 M-D	single horizontal line	ACS_HLINE
922# GL	180 \264 M-4	single left tick	ACS_RTEE	-|
923# GR	195 \303 M-C	single right tick	ACS_LTEE	|-
924# GU	193 \301 M-A	single up tick		ACS_BTEE	_|_
925# GV	179 \263 M-3	single vertical line	ACS_VLINE
926# Gc	206 \316 M-N	double intersection
927# Gd	203 \313 M-K	double down tick
928# Gh	205 \315 M-M	double horizontal line
929# Gl	204 \204 M-L	double left tick
930# Gr	185 \271 M-9	double right tick
931# Gu	202 \312 M-J	double up tick
932# Gv	186 \272 M-:	double vertical line
933#
934# The compiler will translate the single-line caps and discard the others
935# (via IGNORE aliases further down).  We don't want to do normal pad
936# translation on these, they're often single-character printable ASCII
937# strings that happen to be numerics.  There's awk code in parametrized.sh
938# that detects the acs_ prefix and uses it to suppress pad translation.
939# These terminfo names are invented.
940#
941acs_ulcorner    	OTG2	str	G2	-----	single upper left
942acs_llcorner    	OTG3	str	G3	-----	single lower left
943acs_urcorner    	OTG1	str	G1	-----	single upper right
944acs_lrcorner    	OTG4	str	G4	-----	single lower right
945acs_ltee        	OTGR	str	GR	-----	tee pointing right
946acs_rtee        	OTGL	str	GL	-----	tee pointing left
947acs_btee        	OTGU	str	GU	-----	tee pointing up
948acs_ttee        	OTGD	str	GD	-----	tee pointing down
949acs_hline       	OTGH	str	GH	-----	single horizontal line
950acs_vline       	OTGV	str	GV	-----	single vertical line
951acs_plus        	OTGC	str	GC	-----	single intersection
952#
953#############################################################################
954#
955# TERMINFO EXTENSION CAPABILITIES
956#
957# This section is almost all comments.  What it's mainly for is to describe
958# what capabilities need to be squeezed out to get down to the XSI Curses
959# standard set.  They are flagged with K.
960#
961# HP extensions
962#
963# These extensions follow ptr_non (replacing everything after it) in HP
964# terminfo files.  Except for memory_lock and memory_unlock, they are
965# functionally identical to SVr4 extensions, but they make the binary format
966# different.  Grrr....
967#
968memory_lock		meml	str	ml	----K	memory lock above
969memory_unlock    	memu	str	mu	----K	memory unlock
970#plab_norm       	pln	str	pn	-----	program label #1 to show string #2
971#label_on        	smln	str	LO	-----	turn on soft labels
972#label_off       	rmln	str	LF	-----	turn off soft labels
973#key_f11         	kf11	str	F1	-----	F11 function key
974#key_f12         	kf12	str	F2	-----	F12 function key
975#key_f13         	kf13	str	F3	-----	F13 function key
976#key_f14         	kf14	str	F4	-----	F14 function key
977#key_f15         	kf15	str	F5	-----	F15 function key
978#key_f16         	kf16	str	F6	-----	F16 function key
979#key_f17         	kf17	str	F7	-----	F17 function key
980#key_f18         	kf18	str	F8	-----	F18 function key
981#key_f19         	kf19	str	F9	-----	F19 function key
982#key_f20         	kf20	str	FA	-----	F20 function key
983#key_f21         	kf21	str	FB	-----	F21 function key
984#key_f22         	kf22	str	FC	-----	F22 function key
985#key_f23         	kf23	str	FD	-----	F23 function key
986#key_f24         	kf24	str	FE	-----	F24 function key
987#key_f25         	kf25	str	FF	-----	F25 function key
988#key_f26         	kf26	str	FG	-----	F26 function key
989#key_f27         	kf27	str	FH	-----	F27 function key
990#key_f28         	kf28	str	FI	-----	F28 function key
991#key_f29         	kf29	str	FJ	-----	F29 function key
992#key_f30         	kf30	str	FK	-----	F30 function key
993#key_f31         	kf31	str	FL	-----	F31 function key
994#key_f32         	kf32	str	FM	-----	F32 function key
995#key_f33         	kf33	str	FN	-----	F33 function key
996#key_f34         	kf34	str	FO	-----	F34 function key
997#key_f35         	kf35	str	FP	-----	F35 function key
998#key_f36         	kf36	str	FQ	-----	F36 function key
999#key_f37         	kf37	str	FR	-----	F37 function key
1000#key_f38         	kf38	str	FS	-----	F38 function key
1001#key_f39         	kf39	str	FT	-----	F39 function key
1002#key_f40         	kf40	str	FU	-----	F40 function key
1003#key_f41         	kf41	str	FV	-----	F41 function key
1004#key_f42         	kf42	str	FW	-----	F42 function key
1005#key_f43         	kf43	str	FX	-----	F43 function key
1006#key_f44         	kf44	str	FY	-----	F44 function key
1007#key_f45         	kf45	str	FZ	-----	F45 function key
1008#key_f46         	kf46	str	Fa	-----	F46 function key
1009#key_f47         	kf47	str	Fb	-----	F47 function key
1010#key_f48         	kf48	str	Fc	-----	F48 function key
1011#key_f49         	kf49	str	Fd	-----	F49 function key
1012#key_f50         	kf50	str	Fe	-----	F50 function key
1013#key_f51         	kf51	str	Ff	-----	F51 function key
1014#key_f52         	kf52	str	Fg	-----	F52 function key
1015#key_f53         	kf53	str	Fh	-----	F53 function key
1016#key_f54         	kf54	str	Fi	-----	F54 function key
1017#key_f55         	kf55	str	Fj	-----	F55 function key
1018#key_f56         	kf56	str	Fk	-----	F56 function key
1019#key_f57         	kf57	str	Fl	-----	F57 function key
1020#key_f58         	kf58	str	Fm	-----	F58 function key
1021#key_f59         	kf59	str	Fn	-----	F59 function key
1022#key_f60         	kf60	str	Fo	-----	F60 function key
1023#key_f61         	kf61	str	Fp	-----	F61 function key
1024#key_f62         	kf62	str	Fq	-----	F62 function key
1025#key_f63         	kf63	str	Fr	-----	F63 function key
1026#
1027# IBM extensions
1028#
1029# These extensions follow ptr_non (replacing everything after it) in IBM
1030# terminfo files.
1031#
1032# The places in the box[12] capabilities correspond to acsc characters, here is
1033# the mapping:
1034#
1035#	box1[0]  = ACS_ULCORNER
1036#	box1[1]  = ACS_HLINE
1037#	box1[2]  = ACS_URCORNER
1038#	box1[3]  = ACS_VLINE
1039#	box1[4]  = ACS_LRCORNER
1040#	box1[5]  = ACS_LLCORNER
1041#	box1[6]  = ACS_TTEE
1042#	box1[7]  = ACS_RTEE
1043#	box1[8]  = ACS_BTEE
1044#	box1[9]  = ACS_LTEE
1045#	box1[10] = ACS_PLUS
1046#
1047# The box2 characters are the double-line versions of these forms graphics.
1048#
1049box_chars_1    	box1	str	bx	----K	box characters primary set
1050#box_chars_2          	box2	str	by	----K	box characters secondary set
1051#box_attr_1     	batt1	str	Bx	----K	attributes for box1
1052#box_attr_2     	batt2	str	By	----K	attributes for box2
1053#color_bg_0     	colb0	str	d0	----K	background color 0
1054#color_bg_1     	colb1	str	d1	----K	background color 1
1055#color_bg_2     	colb2	str	d2	----K	background color 2
1056#color_bg_3     	colb3	str	d3	----K	background color 3
1057#color_bg_4     	colb4	str	d4	----K	background color 4
1058#color_bg_5     	colb5	str	d5	----K	background color 5
1059#color_bg_6     	colb6	str	d6	----K	background color 6
1060#color_bg_7     	colb7	str	d7	----K	background color 7
1061#color_fg_0     	colf0	str	c0	----K	foreground color 0
1062#color_fg_1     	colf1	str	c1	----K	foreground color 1
1063#color_fg_2     	colf2	str	c2	----K	foreground color 2
1064#color_fg_3     	colf3	str	c3	----K	foreground color 3
1065#color_fg_4     	colf4	str	c4	----K	foreground color 4
1066#color_fg_5     	colf5	str	c5	----K	foreground color 5
1067#color_fg_6     	colf6	str	c6	----K	foreground color 6
1068#color_fg_7     	colf7	str	c7	----K	foreground color 7
1069#font_0         	font0	str	f0	-----	select font 0
1070#font_1         	font1	str	f1	-----	select font 1
1071#font_2         	font2	str	f2	-----	select font 2
1072#font_3         	font3	str	f3	-----	select font 3
1073#font_4         	font4	str	f4	----K	select font 4
1074#font_5         	font5	str	f5	----K	select font 5
1075#font_6         	font6	str	f6	----K	select font 6
1076#font_7         	font7	str	f7	----K	select font 7
1077#key_back_tab   	kbtab	str	k0	-----	backtab key
1078#key_do         	kdo	str	ki	----K	do request key
1079#key_command    	kcmd	str	kd	----K	command-request key
1080#key_command_pane	kcpn	str	kW	----K	command-pane key
1081#key_end        	kend	str	kw	-----	end key
1082#key_help       	khlp	str	kq	-----	help key
1083#key_newline		knl	str	nl	----K	newline key
1084#key_next_pane  	knpn	str	kv	----K	next-pane key
1085#key_prev_cmd   	kppn	str	kp	----K	previous-command key
1086#key_prev_pane  	kppn	str	kV	----K	previous-pane key
1087#key_quit       	kquit	str	kQ	----K	quit key
1088#key_select     	ksel	str	kU	-----	select key
1089#key_scroll_left	kscl	str	kz	----K	scroll left
1090#key_scroll_right	kscr	str	kZ	----K	scroll right
1091#key_tab        	ktab	str	ko	----K	tab key
1092#key_smap_in1   	kmpf1	str	Kv	----K	special mapped key 1 input
1093#key_smap_out1  	kmpt1	str	KV	----K	special mapped key 1 output
1094#key_smap_in2   	kmpf2	str	Kw	----K	special mapped key 2 input
1095#key_smap_out2  	kmpt2	str	KW	----K	special mapped key 2 output
1096#key_smap_in3   	kmpf3	str	Kx	----K	special mapped key 3 input
1097#key_smap_out3  	kmpt3	str	KX	----K	special mapped key 3 output
1098#key_smap_in4   	kmpf4	str	Ky	----K	special mapped key 4 input
1099#key_smap_out4  	kmpt4	str	KY	----K	special mapped key 4 output
1100#key_smap_in5   	kmpf5	str	Kz	----K	special mapped key 5 input
1101#key_smap_out5  	kmpt5	str	KZ	----K	special mapped key 5 output
1102#appl_defined_str      	apstr	str	za	----K	application-defined string
1103# The key_smap_in[6789] and key_smap_out[6789] capabilities aren't described in
1104# the IBM manual pages, so the cap name strings are guesses.  The terminfo
1105# names are almost certainly right, the termcap ones almost certainly wrong.
1106#key_smap_in6   	kmpf6	str	k!	----K	special mapped key 6 input
1107#key_smap_out6  	kmpt6	str	K@	----K	special mapped key 6 output
1108#key_smap_in7   	kmpf7	str	k#	----K	special mapped key 7 input
1109#key_smap_out7  	kmpt7	str	K$	----K	special mapped key 7 output
1110#key_smap_in8   	kmpf8	str	k%	----K	special mapped key 8 input
1111#key_smap_out8  	kmpt8	str	K^	----K	special mapped key 8 output
1112#key_smap_in9   	kmpf9	str	k&	----K	special mapped key 9 input
1113#key_smap_out9  	kmpt9	str	K*	----K	special mapped key 9 output
1114# Undocumented capabilities end here
1115#key_sf1        	ksf1	str	S1	----K	special function key 1
1116#key_sf2        	ksf2	str	S2	----K	special function key 2
1117#key_sf3        	ksf3	str	S3	----K	special function key 3
1118#key_sf4        	ksf4	str	S4	----K	special function key 4
1119#key_sf5        	ksf5	str	S5	----K	special function key 5
1120#key_sf6        	ksf6	str	S6	----K	special function key 6
1121#key_sf7        	ksf7	str	S7	----K	special function key 7
1122#key_sf8        	ksf8	str	S8	----K	special function key 8
1123#key_sf9        	ksf9	str	S9	----K	special function key 9
1124#key_sf10        	ksf10	str	SA	----K	special function key 10
1125# AIX version 3 documents different codes for F11, F12 and does not mention
1126# F13-F64.  AIX version 4 uses the same naming for F0-F63 as above.
1127#key_f11        	kf11	str	k<	-----	function key 11
1128#key_f12        	kf12	str	k>	-----	function key 12
1129# Undocumented capabilities end here.
1130#key_action     	kact	str	kJ	----K	sent by action key
1131# The IBM docs say these capabilities are for table-drawing, and are
1132# valid only for aixterm descriptions.
1133#enter_topline_mode	topl	str	tp	----K	start top-line mode
1134#enter_bottom_mode	btml	str	bm	----K	start bottom-line mode
1135#enter_rvert_mode	rvert	str	rv	----K	start right-vertical mode
1136#enter_lvert_mode	lvert	str	lv	----K	start left-vertical mode
1137#
1138#############################################################################
1139#
1140# ALIAS DECLARATIONS
1141#
1142# Here we set up aliases for translating extensions into standard terminfo.
1143#
1144#---------------------------------- Termcap aliases -------------------------
1145#
1146# BSD aliases:
1147#
1148# This is a common error in many termcap files.  We'll get notified during
1149# translation when this (or any other alias) fires.
1150#
1151capalias	sb	sr	BSD	scroll text down
1152#
1153# AT&T extensions:
1154#
1155# The old AT&T 5410, 5420, 5425, pc6300plus, 610, and s4 entries used a set of
1156# nonstandard capabilities.  Its signature is the KM capability, used to name
1157# some sort of keymap file.  EE, BO, CI, CV, XS, DS, FL and FE are in this
1158# set.  Comments in the original, and a little cross-checking with other AT&T
1159# documentation, seem to establish the following mappings:
1160#
1161capalias	BO	mr	AT&T	enter_reverse_mode
1162capalias	CI	vi	AT&T	cursor_invisible
1163capalias	CV	ve	AT&T	cursor_normal
1164capalias	DS	mh	AT&T	enter_dim_mode
1165#capalias	EE	me	AT&T	exit_attribute_mode
1166capalias	FE	LF	AT&T	label_on
1167capalias	FL	LO	AT&T	label_off
1168capalias	XS	mk	AT&T	enter_secure_mode
1169#
1170# We comment out EE because the conflicting XENIX EE is more common in
1171# old entries.
1172#
1173# XENIX extensions:
1174#
1175# These are the ones we know how to translate directly:
1176#
1177capalias	EE	mh	XENIX	exit_attribute_mode
1178capalias	GE	ae	XENIX	exit_alt_charset_mode
1179capalias	GS	as	XENIX	enter_alt_charset_mode
1180capalias	CF	vi	XENIX	cursor_invis
1181capalias	CO	ve	XENIX	cursor_normal
1182capalias	EN	@7	XENIX	key_end
1183capalias	HM	kh	XENIX	key_home
1184capalias	LD	kL	XENIX	key_dl
1185capalias	PD	kN	XENIX	key_npage
1186capalias	PN	po	XENIX	prtr_off
1187capalias	PS	pf	XENIX	prtr_on
1188capalias	PU	kP	XENIX	key_ppage
1189capalias	RT	@8	XENIX	kent
1190capalias	UP	ku	XENIX	kcuu1
1191capalias	G6	IGNORE	XENIX	double-ACS_ULCORNER
1192capalias	G7	IGNORE	XENIX	double-ACS_LLCORNER
1193capalias	G5	IGNORE	XENIX	double-ACS_URCORNER
1194capalias	G8	IGNORE	XENIX	double-ACS_LRCORNER
1195capalias	Gr	IGNORE	XENIX	double-ACS_LTEE
1196capalias	Gr	IGNORE	XENIX	double-ACS_RTEE
1197capalias	Gu	IGNORE	XENIX	double-ACS_BTEE
1198capalias	Gd	IGNORE	XENIX	double ACS_TTEE
1199capalias	Gh	IGNORE	XENIX	double-ACS_HLINE
1200capalias	Gv	IGNORE	XENIX	double-ACS_VLINE
1201capalias	Gc	IGNORE	XENIX	double-ACS_PLUS
1202capalias	GG	IGNORE	XENIX	acs-glitch
1203#
1204# IBM extensions:
1205#
1206capalias	kq	%1	IBM	key_help
1207#
1208# Iris extensions:
1209#
1210capalias	HS	mh	IRIS	enter_dim_mode
1211#
1212# Tektronix extensions:
1213#
1214capalias	KA	k;	Tek	key_f10
1215capalias	KB	F1	Tek	key_f11
1216capalias	KC	F2	Tek	key_f12
1217capalias	KD	F3	Tek	key_f13
1218capalias	KE	F4	Tek	key_f14
1219capalias	KF	F5	Tek	key_f15
1220capalias	BC	Sb	Tek	set_background
1221capalias	FC	Sf	Tek	set_foreground
1222#
1223# There are also the following:
1224#
1225#	XENIX	XENIX variable name	name clash with terminfo?
1226#	-----	-------------------	-------------------------
1227#	CL	key_char_left
1228#	CR	key_char_right
1229#	CW	key_change_window
1230#	HP	??
1231#	LF	key_linefeed 		label_off
1232#	NU	key_next_unlocked_cell
1233#	PL	??
1234#	PR	??
1235#	RC	key_recalc		remove_clock
1236#	RF	key_toggle_ref		req_for_input
1237#	WL	key_word_left
1238#	WR	key_word_right
1239#
1240# If you know what any of the question-marked ones mean, please tell us.
1241#
1242#--------------------------------- Terminfo aliases ------------------------
1243#
1244# IBM extensions:
1245#
1246infoalias	font0	s0ds	IBM	set0_des_seq
1247infoalias	font1	s1ds	IBM	set1_des_seq
1248infoalias	font2	s2ds	IBM	set2_des_seq
1249infoalias	font3	s3ds	IBM	set3_des_seq
1250infoalias	kbtab	kcbt	IBM	key_backtab
1251infoalias	ksel	kslt	IBM	key_select
1252#
1253# Some others are identical to SVr4/XPG4 capabilities, in particular:
1254# kcmd, kend, khlp, and kf11...kf63.
1255#
1256#############################################################################
1257#
1258# The following sets edit modes for GNU EMACS
1259# Local Variables:
1260# case-fold-search:nil
1261# truncate-lines:t
1262# End:
1263