xref: /freebsd/contrib/ncurses/include/Caps.uwin (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
1##############################################################################
2# Copyright 2019-2023,2024 Thomas E. Dickey                                  #
3# Copyright 2001-2015,2016 Free Software Foundation, Inc.                    #
4#                                                                            #
5# Permission is hereby granted, free of charge, to any person obtaining a    #
6# copy of this software and associated documentation files (the "Software"), #
7# to deal in the Software without restriction, including without limitation  #
8# the rights to use, copy, modify, merge, publish, distribute, distribute    #
9# with modifications, sublicense, and/or sell copies of the Software, and to #
10# permit persons to whom the Software is furnished to do so, subject to the  #
11# following conditions:                                                      #
12#                                                                            #
13# The above copyright notice and this permission notice shall be included in #
14# all copies or substantial portions of the Software.                        #
15#                                                                            #
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
19# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
21# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
22# DEALINGS IN THE SOFTWARE.                                                  #
23#                                                                            #
24# Except as contained in this notice, the name(s) of the above copyright     #
25# holders shall not be used in advertising or otherwise to promote the sale, #
26# use or other dealings in this Software without prior written               #
27# authorization.                                                             #
28##############################################################################
29#
30# Author: Thomas Dickey
31#
32# $Id: Caps.uwin,v 1.23 2024/04/20 21:05:02 tom Exp $
33#
34# This is an adaptation of ncurses' termcap/terminfo capability table, which
35# is designed to align with U/Win's terminfo.
36#
37# This table is used to generate initializers for tables that drive tic,
38# infocmp, and the library compilation code used to support the termcap
39# compatibility hack.  It is also used to generate the tabular portion of the
40# terminfo(5) man page; lines beginning with `#%' are passed through to become
41# the terminfo table.
42#
43# This file has three major sections; a standard-capabilities table, two
44# extension-capability tables, and a section of aliases declarations.
45# The first two have the same format, as follows:
46#
47# FILE FORMAT
48#
49# Column 1: terminfo variable name
50# Column 2: terminfo capability name
51# Column 3: capability type (Boolean, numeric, or string)
52# Column 4: termcap capability name
53# Column 5: KEY_xxx name, if any, `-' otherwise
54# Column 6: value for KEY_xxx name, if any, `-' otherwise
55# Column 7: Lead with `Y' if capability should be emitted in termcap
56#           translations, `-' otherwise
57# Column 8: capability description
58#
59# The codes following [Y-] in column 7 describe the versions of termcap which
60# use the given capability.  This information is not used by the curses library
61# proper; rather, it is there to help the terminfo maintainer avoid emitting
62# termcap entry translations that are more than 1023 bytes long (and tank a
63# lot of old termcap-using programs).  The codes read as follows:
64#	B = mentioned in the BSD man page for 4.4BSD curses
65#	C = used by the 4.4BSD curses library
66#	G = mentioned in the documentation for GNU termcap
67#	E = used by GNU Emacs
68#	K = remove this terminfo capability when translating to standard format
69# The important codes are C and E.  A cap with C or E should be preserved in
70# translation if possible.  The problem is that preserving all such caps may
71# lead to some termcap translations being too long.  The termcap maintainer
72# has a bit of a juggling act to do...potential problem cases are marked with
73# an asterisk (*).
74#
75# The aliases section has the following format:
76#
77# Column 1: either `capalias' or `infoalias'
78# Column 2: name to be aliased
79# Column 3: what name it should translate to.  The name IGNORE means it
80#           should be discarded with a warning message.
81# Column 4: name of the extension set (used for compiler warning messages)
82# Column 5: capability description (usually an associated terminfo variable)
83#
84# HANDLING TERMCAP AND TERMINFO EXTENSIONS
85#
86# There are basically five different ways to handle termcap and terminfo
87# extensions:
88#
89# 1. Don't list the capname here, or list it but comment it out (the latter
90# is preferable; someone might want to handle it in the future).  If you do
91# this, the capability will be treated as unknown and raise a warning from
92# the compiler.
93#
94# 2. Alias it.  This is appropriate if the capability has the same meaning
95# as an already-supported one.  The compiler will handle aliasing, emitting
96# an appropriate informational message whenever an alias fires.
97#
98# 3. List it in the standard table.  You almost certainly do *not* want
99# to do this -- the capabilities in that one, and their order, have been
100# carefully chosen to be SVr4-binary-compatible when they're written out
101# as a terminfo object, and breaking this would be bad.  It is up to the ncurses
102# library what to do with the terminfo data after it is read in.
103#
104# 4. List it in the aliases table with an IGNORE target field.  If you
105# do this, the capability will be ignored on input (though the user will
106# get a warning message about it).
107#
108# 5. List it in the extensions table. If you do this, the compiler will
109# silently accept the capability, but the curses library proper will never
110# see it (because it won't be written out as part of the terminfo object
111# format).  It is up to you what you have the compiler do with it.
112#
113# There are two opposite reasons to choose option 5.  One is when you want
114# to eat the capability silently and discard it when doing translations
115# to terminfo with tic -I.  Some very old obsolete BSD caps like :kn: are
116# in this class.  Nothing will ever use them again.
117#
118# More usually, you want the compiler to try to deduce something from the
119# capability value that it can use to translate it into your output format.
120# You'll need to write custom code, probably in postprocess_termcap() or
121# postprocess_terminfo(), to handle the translation.
122#
123# CONTROLLING ENTRY LENGTH
124#
125# Notes on specific elisions made to fit translations within 1023 bytes:
126#
127# Machines with IBM PC-like keyboards want to be able to define the following
128# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
129# only environments for End or Home-Down), key_dc, and key_ic.  This is also
130# the set of keys the `joe' editor will be upset if it can't see.  So don't
131# trim those out of the set to be translated to termcap, or various users of
132# the termcap file will become irate.
133#
134# It might look tempting to leave those long init strings out of translations.
135# We can't do it (yet); 4.4BSD tput and tset use them.
136#
137# We retain the sgr capability in translation in spite of the fact that neither
138# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
139# hard to understand without it, and (b) the entries in which it is long tend
140# to be older types that don't use up a lot of string space on function keys.
141# The tic(1) translation code will complain and elide it if it makes a critical
142# difference (there is special code in tic to recognize this situation).
143#
144# Yes, BSD tset(1) uses hpa.  We elide hpa/vpa anyway because the motion
145# optimizer in BSD curses didn't use them.  This omission seems to be the
146# single most effective one, it shortened the resolved length of all thirteen
147# problem entries in the 9.9.0 version of the terminfo master below critical.
148#
149# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
150# translations go back over critical if we do this.  As 4.4BSD curses fades
151# into history and GNU termcap's application base shrinks towards being GNU
152# Emacs only, we'll probably elide out some BSD-only capabilities in order
153# to buy space for non-essentials Emacs is still using.  Capabilities high
154# on that hit list: rc, sc, uc.
155#
156# FORMATTING THE TABLES
157#
158# We manually specify a (minimum) column width for the capability name
159# and terminfo code columns in the tables to achieve a consistent
160# arrangement; as used here, tbl(1) cannot know the width required by
161# one table's data while formatting another's.
162#
163# The longest capability names (C variable) is
164# "hue_lightness_saturation" (24n), and the longest terminfo code is
165# "colornm" (7n).
166#
167# The tables are a tight fit on traditional man(7) implementations that
168# use a line length of 65n, and the "Description" column has little room
169# within which the formatter can make breaking or adjustment decisions.
170# Words like "micro_..._address" and "parm_..._micro" don't break.
171# Reducing the inter-column gaps to 2 ens gives them enough room.  --GBR
172#
173#############################################################################
174#
175# STANDARD CAPABILITIES
176#
177#%Tables of capabilities
178#%.I \%ncurses
179#%recognizes in a
180#%.I \%term\%info
181#%terminal type description and available to
182#%.IR \%term\%info -using
183#%code follow.
184#%.bP
185#%The capability name identifies the symbol by which the programmer
186#%using the
187#%.I \%term\%info
188#%API accesses the capability.
189#%.bP
190#%The TI
191#%.RI ( \%term\%info )
192#%code is the short name used by a person composing or updating a
193#%terminal type entry.
194#%.IP
195#%Whenever possible,
196#%these codes are the same as or similar to those of the ANSI X3.64-1979
197#%standard
198#%(now superseded by ECMA-48,
199#%which uses identical or very similar names).
200#%Semantics are also intended to match those of the specification.
201#%.IP
202#%.I \%term\%info
203#%codes have no hard length limit,
204#%but
205#%.I \%ncurses
206#%maintains an informal one of 5 characters to keep them short and to
207#%allow the tabs in the source file
208#%.I Caps
209#%to line up nicely.
210#%(Some standard codes exceed this limit regardless.)
211#%.bP
212#%The TC
213#%.RI ( termcap )
214#%code is that used by the corresponding API of
215#%.IR \%ncurses .
216#%(Some capabilities are new,
217#%and have names that BSD
218#%.I termcap
219#%did not originate.)
220#%.bP
221#%The description field attempts to convey the capability's semantics.
222#%.PP
223#%The description field employs a handful of notations.
224#%.TP
225#%.B (P)
226#%indicates that padding may be specified.
227#%.TP
228#%.B (P*)
229#%indicates that padding may vary in proportion to the number of output
230#%lines affected.
231#%.TP
232#%.BI # i
233#%indicates the
234#%.IR i th
235#%parameter of a string capability;
236#%the programmer should pass the string to \fB\%tparm\fP(3X) with the
237#%parameters listed.
238#%.IP
239#%If the description lists no parameters,
240#%passing the string to \fB\%tparm\fP(3X) may produce unexpected
241#%behavior,
242#%for instance if the string contains percent signs.
243#%.
244#%.PP
245#%.TS
246#%center;
247#%Lb        Cb       S   Lb
248#%Lb        Lb       Lb  Lb
249#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
250#%\&	Code	\&
251#%Boolean Capability Name	TI	TC	Description
252#%_
253auto_left_margin		bw	bool	bw	-	-	YB-G-	cub1 wraps from column 0 to last column
254auto_right_margin		am	bool	am	-	-	YBCGE	terminal has automatic margins
255no_esc_ctlc			xsb	bool	xb	-	-	YBCG-	beehive (f1=escape, f2=ctrl C)
256ceol_standout_glitch		xhp	bool	xs	-	-	YBCGE	standout not erased by overwriting (hp)
257eat_newline_glitch		xenl	bool	xn	-	-	YBCGE	newline ignored after 80 cols (concept)
258erase_overstrike		eo	bool	eo	-	-	YBCG-	can erase overstrikes with a blank
259generic_type			gn	bool	gn	-	-	YB-G-	generic line type
260hard_copy			hc	bool	hc	-	-	YBCG-	hardcopy terminal
261has_meta_key			km	bool	km	-	-	YB-GE	Has a meta key (i.e., sets 8th-bit)
262has_status_line			hs	bool	hs	-	-	YB-G-	has extra status line
263insert_null_glitch		in	bool	in	-	-	YBCGE	insert mode distinguishes nulls
264memory_above			da	bool	da	-	-	YBCG-	display may be retained above the screen
265memory_below			db	bool	db	-	-	YB-GE	display may be retained below the screen
266move_insert_mode		mir	bool	mi	-	-	YBCGE	safe to move while in insert mode
267move_standout_mode		msgr	bool	ms	-	-	YBCGE	safe to move while in standout mode
268over_strike			os	bool	os	-	-	YBCG-	terminal can overstrike
269status_line_esc_ok		eslok	bool	es	-	-	YB-G-	escape can be used on the status line
270dest_tabs_magic_smso		xt	bool	xt	-	-	YBCGE	tabs destructive, magic so char (t1061)
271tilde_glitch			hz	bool	hz	-	-	YB-GE	cannot print ~'s (Hazeltine)
272transparent_underline		ul	bool	ul	-	-	YBCGE	underline character overstrikes
273xon_xoff			xon	bool	xo	-	-	YB---	terminal uses xon/xoff handshaking
274needs_xon_xoff			nxon	bool	nx	-	-	-----	padding will not work, xon/xoff required
275prtr_silent			mc5i	bool	5i	-	-	-----	printer will not echo on screen
276hard_cursor			chts	bool	HC	-	-	-----	cursor is hard to see
277non_rev_rmcup			nrrmc	bool	NR	-	-	-----	smcup does not reverse rmcup
278no_pad_char			npc	bool	NP	-	-	-----	pad character does not exist
279non_dest_scroll_region		ndscr	bool	ND	-	-	-----	scrolling region is non-destructive
280back_color_erase		bce	bool	ut	-	-	-----	screen erased with background color
281can_change			ccc	bool	cc	-	-	-----	terminal can re-define existing colors
282hue_lightness_saturation	hls	bool	hl	-	-	-----	terminal uses only HLS color notation (Tektronix)
283#%.TE
284#%.PP
285#%.
286#%.TS
287#%center;
288#%Lb        Cb       S   Lb
289#%Lb        Lb       Lb  Lb
290#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
291#%\&	Code	\&
292#%Numeric Capability Name	TI	TC	Description
293#%_
294columns				cols	num	co	-	-	YBCGE	number of columns in a line
295init_tabs			it	num	it	-	-	YB-G-	tabs initially every # spaces
296lines				lines	num	li	-	-	YBCGE	number of lines on screen or page
297lines_of_memory			lm	num	lm	-	-	YB-G-	lines of memory if > line. 0 means varies
298magic_cookie_glitch		xmc	num	sg	-	-	YBCGE	number of blank characters left by smso or rmso
299padding_baud_rate		pb	num	pb	-	-	YB-GE	lowest baud rate where padding needed
300virtual_terminal		vt	num	vt	-	-	YB---	virtual terminal number (CB/unix)
301width_status_line		wsl	num	ws	-	-	YB-G-	number of columns in status line
302num_labels			nlab	num	Nl	-	-	-----	number of labels on screen
303label_height			lh	num	lh	-	-	-----	rows in each label
304label_width			lw	num	lw	-	-	-----	columns in each label
305buttons				btns	num	BT	-	-	-----	number of buttons on mouse
306#max_attributes			ma	num	ma	-	-	YBC--	maximum combined attributes terminal can handle
307#maximum_windows		wnum	num	MW	-	-	-----	maximum number of defineable windows
308# These came in with SVr4's color support
309max_colors			colors	num	Co	-	-	-----	maximum number of colors on screen
310max_pairs			pairs	num	pa	-	-	-----	maximum number of color-pairs on the screen
311no_color_video			ncv	num	NC	-	-	-----	video attributes that cannot be used with colors
312#%.TE
313#%.PP
314#%.
315#%.TS
316#%center;
317#%Lb        Cb       S   Lb
318#%Lb        Lb       Lb  Lb
319#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
320#%\&	Code	\&
321#%String Capability Name	TI	TC	Description
322#%_
323back_tab			cbt	str	bt	-		-	YBCGE	back tab (P)
324bell				bel	str	bl	-		-	YB-GE	audible signal (bell) (P)
325carriage_return			cr	str	cr	-		-	YBCGE	carriage return (P*) (P*)
326change_scroll_region		csr	str	cs	-		-	YBCGE	change region to line #1 to line #2 (P)
327clear_all_tabs			tbc	str	ct	-		-	YB-G-	clear all tab stops (P)
328clear_screen			clear	str	cl	-		-	YBCGE	clear screen and home cursor (P*)
329clr_eol				el	str	ce	-		-	YBCGE	clear to end of line (P)
330clr_eos				ed	str	cd	-		-	YBCGE	clear to end of screen (P*)
331column_address			hpa	str	ch	-		-	-B-GE*	horizontal position #1, absolute (P)
332command_character		cmdch	str	CC	-		-	YB-G-	terminal settable cmd character in prototype !?
333cursor_address			cup	str	cm	-		-	YBCGE	move to row #1 columns #2
334cursor_down			cud1	str	do	-		-	YBCGE	down one line
335cursor_home			home	str	ho	-		-	YBCGE	home cursor (if no cup)
336cursor_invisible		civis	str	vi	-		-	YB-G-	make cursor invisible
337cursor_left			cub1	str	le	-		-	YBCGE	move left one space
338cursor_mem_address		mrcup	str	CM	-		-	YB-G-	memory relative cursor addressing, move to row #1 columns #2
339cursor_normal			cnorm	str	ve	-		-	YBCGE	make cursor appear normal (undo civis/cvvis)
340cursor_right			cuf1	str	nd	-		-	YBCGE	non-destructive space (move right one space)
341cursor_to_ll			ll	str	ll	-		-	YBCGE	last line, first column (if no cup)
342cursor_up			cuu1	str	up	-		-	YBCGE	up one line
343cursor_visible			cvvis	str	vs	-		-	YBCGE	make cursor very visible
344delete_character		dch1	str	dc	-		-	YBCGE	delete character (P*)
345delete_line			dl1	str	dl	-		-	YBCGE	delete line (P*)
346dis_status_line			dsl	str	ds	-		-	YB-G-	disable status line
347down_half_line			hd	str	hd	-		-	YB-G-	half a line down
348enter_alt_charset_mode		smacs	str	as	-		-	YB-G-	start alternate character set (P)
349enter_blink_mode		blink	str	mb	-		-	YB-G-	turn on blinking
350enter_bold_mode			bold	str	md	-		-	YB-G-	turn on bold (extra bright) mode
351enter_ca_mode			smcup	str	ti	-		-	YBCGE	string to start programs using cup
352enter_delete_mode		smdc	str	dm	-		-	YBCGE	enter delete mode
353enter_dim_mode			dim	str	mh	-		-	YB-G-	turn on half-bright mode
354enter_insert_mode		smir	str	im	-		-	YBCGE	enter insert mode
355enter_secure_mode		invis	str	mk	-		-	-B-G-*	turn on blank mode (characters invisible)
356enter_protected_mode		prot	str	mp	-		-	-B-G-*	turn on protected mode
357enter_reverse_mode		rev	str	mr	-		-	YB-G-	turn on reverse video mode
358enter_standout_mode		smso	str	so	-		-	YBCGE	begin standout mode
359enter_underline_mode		smul	str	us	-		-	YBCGE	begin underline mode
360erase_chars			ech	str	ec	-		-	YB-G-	erase #1 characters (P)
361exit_alt_charset_mode		rmacs	str	ae	-		-	YB-G-	end alternate character set (P)
362exit_attribute_mode		sgr0	str	me	-		-	YB-GE	turn off all attributes
363exit_ca_mode			rmcup	str	te	-		-	YBCGE	strings to end programs using cup
364exit_delete_mode		rmdc	str	ed	-		-	YBCGE	end delete mode
365exit_insert_mode		rmir	str	ei	-		-	YBCGE	exit insert mode
366exit_standout_mode		rmso	str	se	-		-	YBCGE	exit standout mode
367exit_underline_mode		rmul	str	ue	-		-	YBCGE	exit underline mode
368flash_screen			flash	str	vb	-		-	YBCGE	visible bell (may not move cursor)
369form_feed			ff	str	ff	-		-	YB-G-	hardcopy terminal page eject (P*)
370from_status_line		fsl	str	fs	-		-	YB-G-	return from status line
371init_1string			is1	str	i1	-		-	YB-G-	initialization string
372init_2string			is2	str	is	-		-	YB-G-	initialization string
373init_3string			is3	str	i3	-		-	YB-G-	initialization string
374init_file			if	str	if	-		-	YB-G-	name of initialization file
375insert_character		ich1	str	ic	-		-	YBCGE	insert character (P)
376insert_line			il1	str	al	-		-	YBCGE	insert line (P*)
377insert_padding			ip	str	ip	-		-	YBCGE	insert padding after inserted character
378key_backspace			kbs	str	kb	KEY_BACKSPACE	0407	YB-G-	backspace key
379key_catab			ktbc	str	ka	KEY_CATAB	0526	-B-G-*	clear-all-tabs key
380key_clear			kclr	str	kC	KEY_CLEAR	0515	-B-G-*	clear-screen or erase key
381key_ctab			kctab	str	kt	KEY_CTAB	0525	-B-G-*	clear-tab key
382key_dc				kdch1	str	kD	KEY_DC		0512	YB-G-	delete-character key
383key_dl				kdl1	str	kL	KEY_DL		0510	-B-G-*	delete-line key
384key_down			kcud1	str	kd	KEY_DOWN	0402	YBCGE	down-arrow key
385#%.TE
386#%.TS
387#%center;
388#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
389key_eic				krmir	str	kM	KEY_EIC		0514	-B-G-*	sent by rmir or smir in insert mode
390key_eol				kel	str	kE	KEY_EOL		0517	-B-G-*	clear-to-end-of-line key
391key_eos				ked	str	kS	KEY_EOS		0516	-B-G-*	clear-to-end-of-screen key
392key_f0				kf0	str	k0	KEY_F(0)	0410	YBCGE	F0 function key
393key_f1				kf1	str	k1	KEY_F(1)	-	YBCGE	F1 function key
394key_f10				kf10	str	k;	KEY_F(10)	-	----E	F10 function key
395key_f2				kf2	str	k2	KEY_F(2)	-	YBCGE	F2 function key
396key_f3				kf3	str	k3	KEY_F(3)	-	YBCGE	F3 function key
397key_f4				kf4	str	k4	KEY_F(4)	-	YBCGE	F4 function key
398key_f5				kf5	str	k5	KEY_F(5)	-	YBCGE	F5 function key
399key_f6				kf6	str	k6	KEY_F(6)	-	YBCGE	F6 function key
400key_f7				kf7	str	k7	KEY_F(7)	-	YBCGE	F7 function key
401key_f8				kf8	str	k8	KEY_F(8)	-	YBCGE	F8 function key
402key_f9				kf9	str	k9	KEY_F(9)	-	YBCGE	F9 function key
403key_home			khome	str	kh	KEY_HOME	0406	YBCGE	home key
404key_ic				kich1	str	kI	KEY_IC		0513	YB-GE	insert-character key
405key_il				kil1	str	kA	KEY_IL		0511	-B-G-*	insert-line key
406key_left			kcub1	str	kl	KEY_LEFT	0404	YBCGE	left-arrow key
407key_ll				kll	str	kH	KEY_LL		0533	YB-G-	lower-left key (home down)
408key_npage			knp	str	kN	KEY_NPAGE	0522	YB-GE	next-page key
409key_ppage			kpp	str	kP	KEY_PPAGE	0523	YB-GE	previous-page key
410key_right			kcuf1	str	kr	KEY_RIGHT	0405	YBCGE	right-arrow key
411key_sf				kind	str	kF	KEY_SF		0520	-B-G-*	scroll-forward key
412key_sr				kri	str	kR	KEY_SR		0521	-B-G-*	scroll-backward key
413key_stab			khts	str	kT	KEY_STAB	0524	-B-G-*	set-tab key
414key_up				kcuu1	str	ku	KEY_UP		0403	YBCGE	up-arrow key
415keypad_local			rmkx	str	ke	-		-	YBCGE	leave 'keyboard_transmit' mode
416keypad_xmit			smkx	str	ks	-		-	YBCGE	enter 'keyboard_transmit' mode
417lab_f0				lf0	str	l0	-		-	-B-G-*	label on function key f0 if not f0
418lab_f1				lf1	str	l1	-		-	-B-G-*	label on function key f1 if not f1
419lab_f10				lf10	str	la	-		-	-----	label on function key f10 if not f10
420lab_f2				lf2	str	l2	-		-	-B-G-*	label on function key f2 if not f2
421lab_f3				lf3	str	l3	-		-	-B-G-*	label on function key f3 if not f3
422lab_f4				lf4	str	l4	-		-	-B-G-*	label on function key f4 if not f4
423lab_f5				lf5	str	l5	-		-	-B-G-*	label on function key f5 if not f5
424lab_f6				lf6	str	l6	-		-	-B-G-*	label on function key f6 if not f6
425lab_f7				lf7	str	l7	-		-	-B-G-*	label on function key f7 if not f7
426lab_f8				lf8	str	l8	-		-	-B-G-*	label on function key f8 if not f8
427lab_f9				lf9	str	l9	-		-	-B-G-*	label on function key f9 if not f9
428meta_off			rmm	str	mo	-		-	YB-G-*	turn off meta mode
429meta_on				smm	str	mm	-		-	YB-G-*	turn on meta mode (8th-bit on)
430newline				nel	str	nw	-		-	YB-G-*	newline (behave like cr followed by lf)
431pad_char			pad	str	pc	-		-	YBCGE	padding char (instead of null)
432parm_dch			dch	str	DC	-		-	YB-GE	delete #1 characters (P*)
433parm_delete_line		dl	str	DL	-		-	YBCGE	delete #1 lines (P*)
434parm_down_cursor		cud	str	DO	-		-	YBCGE	down #1 lines (P*)
435parm_ich			ich	str	IC	-		-	YB-GE	insert #1 characters (P*)
436parm_index			indn	str	SF	-		-	YBCG-	scroll forward #1 lines (P)
437parm_insert_line		il	str	AL	-		-	YBCGE	insert #1 lines (P*)
438parm_left_cursor		cub	str	LE	-		-	YBCGE	move #1 characters to the left (P)
439parm_right_cursor		cuf	str	RI	-		-	YBCGE	move #1 characters to the right (P*)
440parm_rindex			rin	str	SR	-		-	YBCG-	scroll back #1 lines (P)
441parm_up_cursor			cuu	str	UP	-		-	YBCGE	up #1 lines (P*)
442pkey_key			pfkey	str	pk	-		-	-B---	program function key #1 to type string #2
443pkey_local			pfloc	str	pl	-		-	-B---	program function key #1 to execute string #2
444pkey_xmit			pfx	str	px	-		-	-B---	program function key #1 to transmit string #2
445print_screen			mc0	str	ps	-		-	-B-G-*	print contents of screen
446prtr_off			mc4	str	pf	-		-	-B-G-*	turn off printer
447prtr_on				mc5	str	po	-		-	-B-G-*	turn on printer
448repeat_char			rep	str	rp	-		-	YB-GE	repeat char #1 #2 times (P*)
449reset_1string			rs1	str	r1	-		-	-B---	reset string
450reset_2string			rs2	str	r2	-		-	-B---	reset string
451#%.TE
452#%.TS
453#%center;
454#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
455reset_3string			rs3	str	r3	-		-	-B---	reset string
456reset_file			rf	str	rf	-		-	-B---	name of reset file
457restore_cursor			rc	str	rc	-		-	YBCG-	restore cursor to position of last save_cursor
458row_address			vpa	str	cv	-		-	-B-GE*	vertical position #1 absolute (P)
459save_cursor			sc	str	sc	-		-	YBCG-	save current cursor position (P)
460scroll_forward			ind	str	sf	-		-	YBCGE	scroll text up (P)
461scroll_reverse			ri	str	sr	-		-	YBCGE	scroll text down (P)
462set_attributes			sgr	str	sa	-		-	YB-G-	define video attributes #1-#9 (PG9)
463set_tab				hts	str	st	-		-	YB-G-	set a tab in every row, current columns
464set_window			wind	str	wi	-		-	-B-GE	current window is lines #1-#2 cols #3-#4
465tab				ht	str	ta	-		-	YBCGE	tab to next 8-space hardware tab stop
466to_status_line			tsl	str	ts	-		-	YB-G-	move to status line, column #1
467underline_char			uc	str	uc	-		-	YBCG-	underline char and move past it
468up_half_line			hu	str	hu	-		-	YB-G-	half a line up
469init_prog			iprog	str	iP	-		-	-B---	path name of program for initialization
470key_a1				ka1	str	K1	KEY_A1		0534	YB-GE	upper left of keypad
471key_a3				ka3	str	K3	KEY_A3		0535	YB-GE	upper right of keypad
472key_b2				kb2	str	K2	KEY_B2		0536	YB-GE	center of keypad
473key_c1				kc1	str	K4	KEY_C1		0537	YB-GE	lower left of keypad
474key_c3				kc3	str	K5	KEY_C3		0540	YB-GE	lower right of keypad
475prtr_non			mc5p	str	pO	-		-	-B-G-*	turn on printer for #1 bytes
476#
477# SVr1 capabilities stop here.	IBM's version of terminfo is the same as
478# SVr4 up to this point, but has a different set afterwards.
479#
480char_padding			rmp	str	rP	-		-	-----	like ip but when in insert mode
481acs_chars			acsc	str	ac	-		-	-----	graphics charset pairs, based on vt100
482plab_norm			pln	str	pn	-		-	-----	program label #1 to show string #2
483key_btab			kcbt	str	kB	KEY_BTAB	0541	-----	back-tab key
484enter_xon_mode			smxon	str	SX	-		-	-----	turn on xon/xoff handshaking
485exit_xon_mode			rmxon	str	RX	-		-	-----	turn off xon/xoff handshaking
486enter_am_mode			smam	str	SA	-		-	-----	turn on automatic margins
487exit_am_mode			rmam	str	RA	-		-	-----	turn off automatic margins
488xon_character			xonc	str	XN	-		-	-----	XON character
489xoff_character			xoffc	str	XF	-		-	-----	XOFF character
490ena_acs				enacs	str	eA	-		-	-----	enable alternate char set
491label_on			smln	str	LO	-		-	-----	turn on soft labels
492label_off			rmln	str	LF	-		-	-----	turn off soft labels
493key_beg				kbeg	str	@1	KEY_BEG		0542	-----	begin key
494key_cancel			kcan	str	@2	KEY_CANCEL	0543	-----	cancel key
495key_close			kclo	str	@3	KEY_CLOSE	0544	-----	close key
496key_command			kcmd	str	@4	KEY_COMMAND	0545	-----	command key
497key_copy			kcpy	str	@5	KEY_COPY	0546	-----	copy key
498key_create			kcrt	str	@6	KEY_CREATE	0547	-----	create key
499key_end				kend	str	@7	KEY_END		0550	-----	end key
500key_enter			kent	str	@8	KEY_ENTER	0527	-----	enter/send key
501key_exit			kext	str	@9	KEY_EXIT	0551	-----	exit key
502key_find			kfnd	str	@0	KEY_FIND	0552	-----	find key
503key_help			khlp	str	%1	KEY_HELP	0553	-----	help key
504key_mark			kmrk	str	%2	KEY_MARK	0554	-----	mark key
505key_message			kmsg	str	%3	KEY_MESSAGE	0555	-----	message key
506key_move			kmov	str	%4	KEY_MOVE	0556	-----	move key
507key_next			knxt	str	%5	KEY_NEXT	0557	-----	next key
508key_open			kopn	str	%6	KEY_OPEN	0560	-----	open key
509key_options			kopt	str	%7	KEY_OPTIONS	0561	-----	options key
510key_previous			kprv	str	%8	KEY_PREVIOUS	0562	-----	previous key
511key_print			kprt	str	%9	KEY_PRINT	0532	-----	print key
512key_redo			krdo	str	%0	KEY_REDO	0563	-----	redo key
513key_reference			kref	str	&1	KEY_REFERENCE	0564	-----	reference key
514key_refresh			krfr	str	&2	KEY_REFRESH	0565	-----	refresh key
515key_replace			krpl	str	&3	KEY_REPLACE	0566	-----	replace key
516key_restart			krst	str	&4	KEY_RESTART	0567	-----	restart key
517key_resume			kres	str	&5	KEY_RESUME	0570	-----	resume key
518key_save			ksav	str	&6	KEY_SAVE	0571	-----	save key
519key_suspend			kspd	str	&7	KEY_SUSPEND	0627	-----	suspend key
520key_undo			kund	str	&8	KEY_UNDO	0630	-----	undo key
521#%.TE
522#%.TS
523#%center;
524#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
525key_sbeg			kBEG	str	&9	KEY_SBEG	0572	-----	shifted begin key
526key_scancel			kCAN	str	&0	KEY_SCANCEL	0573	-----	shifted cancel key
527key_scommand			kCMD	str	*1	KEY_SCOMMAND	0574	-----	shifted command key
528key_scopy			kCPY	str	*2	KEY_SCOPY	0575	-----	shifted copy key
529key_screate			kCRT	str	*3	KEY_SCREATE	0576	-----	shifted create key
530key_sdc				kDC	str	*4	KEY_SDC		0577	-----	shifted delete-character key
531key_sdl				kDL	str	*5	KEY_SDL		0600	-----	shifted delete-line key
532key_select			kslt	str	*6	KEY_SELECT	0601	-----	select key
533key_send			kEND	str	*7	KEY_SEND	0602	-----	shifted end key
534key_seol			kEOL	str	*8	KEY_SEOL	0603	-----	shifted clear-to-end-of-line key
535key_sexit			kEXT	str	*9	KEY_SEXIT	0604	-----	shifted exit key
536key_sfind			kFND	str	*0	KEY_SFIND	0605	-----	shifted find key
537key_shelp			kHLP	str	#1	KEY_SHELP	0606	-----	shifted help key
538key_shome			kHOM	str	#2	KEY_SHOME	0607	-----	shifted home key
539key_sic				kIC	str	#3	KEY_SIC		0610	-----	shifted insert-character key
540key_sleft			kLFT	str	#4	KEY_SLEFT	0611	-----	shifted left-arrow key
541key_smessage			kMSG	str	%a	KEY_SMESSAGE	0612	-----	shifted message key
542key_smove			kMOV	str	%b	KEY_SMOVE	0613	-----	shifted move key
543key_snext			kNXT	str	%c	KEY_SNEXT	0614	-----	shifted next key
544key_soptions			kOPT	str	%d	KEY_SOPTIONS	0615	-----	shifted options key
545key_sprevious			kPRV	str	%e	KEY_SPREVIOUS	0616	-----	shifted previous key
546key_sprint			kPRT	str	%f	KEY_SPRINT	0617	-----	shifted print key
547key_sredo			kRDO	str	%g	KEY_SREDO	0620	-----	shifted redo key
548key_sreplace			kRPL	str	%h	KEY_SREPLACE	0621	-----	shifted replace key
549key_sright			kRIT	str	%i	KEY_SRIGHT	0622	-----	shifted right-arrow key
550key_srsume			kRES	str	%j	KEY_SRSUME	0623	-----	shifted resume key
551key_ssave			kSAV	str	!1	KEY_SSAVE	0624	-----	shifted save key
552key_ssuspend			kSPD	str	!2	KEY_SSUSPEND	0625	-----	shifted suspend key
553key_sundo			kUND	str	!3	KEY_SUNDO	0626	-----	shifted undo key
554req_for_input			rfi	str	RF	-		-	-----	send next input char (for ptys)
555key_f11				kf11	str	F1	KEY_F(11)	-	----E	F11 function key
556key_f12				kf12	str	F2	KEY_F(12)	-	----E	F12 function key
557key_f13				kf13	str	F3	KEY_F(13)	-	----E	F13 function key
558key_f14				kf14	str	F4	KEY_F(14)	-	----E	F14 function key
559key_f15				kf15	str	F5	KEY_F(15)	-	----E	F15 function key
560key_f16				kf16	str	F6	KEY_F(16)	-	----E	F16 function key
561key_f17				kf17	str	F7	KEY_F(17)	-	----E	F17 function key
562key_f18				kf18	str	F8	KEY_F(18)	-	----E	F18 function key
563key_f19				kf19	str	F9	KEY_F(19)	-	----E	F19 function key
564key_f20				kf20	str	FA	KEY_F(20)	-	----E	F20 function key
565key_f21				kf21	str	FB	KEY_F(21)	-	----E	F21 function key
566key_f22				kf22	str	FC	KEY_F(22)	-	----E	F22 function key
567key_f23				kf23	str	FD	KEY_F(23)	-	----E	F23 function key
568key_f24				kf24	str	FE	KEY_F(24)	-	----E	F24 function key
569key_f25				kf25	str	FF	KEY_F(25)	-	----E	F25 function key
570key_f26				kf26	str	FG	KEY_F(26)	-	----E	F26 function key
571key_f27				kf27	str	FH	KEY_F(27)	-	----E	F27 function key
572key_f28				kf28	str	FI	KEY_F(28)	-	----E	F28 function key
573key_f29				kf29	str	FJ	KEY_F(29)	-	----E	F29 function key
574key_f30				kf30	str	FK	KEY_F(30)	-	----E	F30 function key
575key_f31				kf31	str	FL	KEY_F(31)	-	----E	F31 function key
576key_f32				kf32	str	FM	KEY_F(32)	-	----E	F32 function key
577key_f33				kf33	str	FN	KEY_F(33)	-	----E	F33 function key
578key_f34				kf34	str	FO	KEY_F(34)	-	----E	F34 function key
579key_f35				kf35	str	FP	KEY_F(35)	-	----E	F35 function key
580key_f36				kf36	str	FQ	KEY_F(36)	-	----E	F36 function key
581key_f37				kf37	str	FR	KEY_F(37)	-	----E	F37 function key
582key_f38				kf38	str	FS	KEY_F(38)	-	----E	F38 function key
583key_f39				kf39	str	FT	KEY_F(39)	-	----E	F39 function key
584key_f40				kf40	str	FU	KEY_F(40)	-	----E	F40 function key
585key_f41				kf41	str	FV	KEY_F(41)	-	----E	F41 function key
586key_f42				kf42	str	FW	KEY_F(42)	-	----E	F42 function key
587#%.TE
588#%.TS
589#%center;
590#%Lbw(24n)2 Lbw(7n)2 Lb2 Lx.
591key_f43				kf43	str	FX	KEY_F(43)	-	----E	F43 function key
592key_f44				kf44	str	FY	KEY_F(44)	-	----E	F44 function key
593key_f45				kf45	str	FZ	KEY_F(45)	-	----E	F45 function key
594key_f46				kf46	str	Fa	KEY_F(46)	-	----E	F46 function key
595key_f47				kf47	str	Fb	KEY_F(47)	-	----E	F47 function key
596key_f48				kf48	str	Fc	KEY_F(48)	-	----E	F48 function key
597key_f49				kf49	str	Fd	KEY_F(49)	-	----E	F49 function key
598key_f50				kf50	str	Fe	KEY_F(50)	-	----E	F50 function key
599key_f51				kf51	str	Ff	KEY_F(51)	-	----E	F51 function key
600key_f52				kf52	str	Fg	KEY_F(52)	-	----E	F52 function key
601key_f53				kf53	str	Fh	KEY_F(53)	-	----E	F53 function key
602key_f54				kf54	str	Fi	KEY_F(54)	-	----E	F54 function key
603key_f55				kf55	str	Fj	KEY_F(55)	-	----E	F55 function key
604key_f56				kf56	str	Fk	KEY_F(56)	-	----E	F56 function key
605key_f57				kf57	str	Fl	KEY_F(57)	-	----E	F57 function key
606key_f58				kf58	str	Fm	KEY_F(58)	-	----E	F58 function key
607key_f59				kf59	str	Fn	KEY_F(59)	-	----E	F59 function key
608key_f60				kf60	str	Fo	KEY_F(60)	-	----E	F60 function key
609key_f61				kf61	str	Fp	KEY_F(61)	-	----E	F61 function key
610key_f62				kf62	str	Fq	KEY_F(62)	-	----E	F62 function key
611key_f63				kf63	str	Fr	KEY_F(63)	-	----E	F63 function key
612clr_bol				el1	str	cb	-		-	-----	Clear to beginning of line
613clear_margins			mgc	str	MC	-		-	-----	clear right and left soft margins
614set_left_margin			smgl	str	ML	-		-	-----	set left soft margin at current column (not in BSD \fItermcap\fP)
615set_right_margin		smgr	str	MR	-		-	-----	set right soft margin at current column
616device_type			devt	str	dv	-		-	-----	Indicate language/codeset support
617code_set_init			csin	str	ci	-		-	-----	Init sequence for multiple codesets
618set0_des_seq			s0ds	str	s0	-		-	-----	Shift to codeset 0 (EUC set 0, ASCII)
619set1_des_seq			s1ds	str	s1	-		-	-----	Shift to codeset 1
620set2_des_seq			s2ds	str	s2	-		-	-----	Shift to codeset 2
621set3_des_seq			s3ds	str	s3	-		-	-----	Shift to codeset 3
622key_mouse			kmous	str	Km	KEY_MOUSE	0631	-----	Mouse event has occurred
623mouse_info			minfo	str	Mi	-		-	-----	Mouse status information
624req_mouse_pos			reqmp	str	RQ	-		-	-----	Request mouse position
625get_mouse			getm	str	Gm	-		-	-----	Curses should get button events, parameter #1 not documented.
626release_mouse			relm	str	Rm	-		-	-----	Curses should release the mouse */
627color_names			colornm	str	Yw	-		-	-----	Give name for color #1
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)
630orig_colors			oc	str	oc	-		-	-----	Set all color pairs to the original ones
631orig_pair			op	str	op	-		-	-----	Set default pair to its original value
632set_a_background		setab	str	AB	-		-	-----	Set background color to #1, using ANSI escape
633set_a_foreground		setaf	str	AF	-		-	-----	Set foreground color to #1, using ANSI escape
634set_background			setb	str	Sb	-		-	-----	Set background color #1
635set_color_pair			scp	str	sp	-		-	-----	Set current color pair to #1
636set_foreground			setf	str	Sf	-		-	-----	Set foreground color #1
637#%.TE
638#%
639# The magic token below tells the tic compiler-generator code that all the caps
640# past it should be ignored (not written out) when dumping terminfo objects. It
641# also tells the man page table generator not to pass through following lines
642# This means we can have obsolete capabilities and pseudo-capabilities that are
643# recognized for termcap or terminfo compilation, but not output.
644#
645# %%-STOP-HERE-%%
646#
647# Don't move this casually!  In fact, don't move it at all unless you're
648# either doing it to add System V or XPG4 extensions, or have decided you
649# don't care about SVr4 binary compatibility.
650#
651#############################################################################
652#
653# TERMCAP EXTENSION CAPABILITIES
654#
655# The capabilities below are either obsolete or extensions on certain systems.
656# They are not used by SVR4 terminfo.  Some are used by captoinfo to translate
657# termcap sources; the rest are listed for completeness, and in case somebody
658# cares about them enough to hack in code that will translate them into
659# terminfo capabilities.
660#
661# The first part of the list is from Ross Ridge's `mytinfo' package
662# (comp.sources.unix, volume 26); the variable names and terminfo names (as
663# well as the termcap codes) match his list.
664#
665# This group of codes is not marked obsolete in 4.4BSD, but have no direct
666# terminfo equivalents.  The rs capability is specially translated to terminfo
667# r2, and vice versa, if an entry does not already have an r2.  Similarly,
668# i2 is translated to r3 if there is no r3 (because SV terminfo maps is to i2).
669# The ug capability is thrown away, but assumed to be whatever sg is if the
670# latter is nonzero and we're dumping in termcap format.
671#
672termcap_init2			OTi2	str	i2	-		-	YB---	secondary initialization string
673termcap_reset			OTrs	str	rs	-		-	YB-G-	terminal reset string
674magic_cookie_glitch_ul		OTug	num	ug	-		-	YBCGE	number of blanks left by ul
675#
676# Obsolete termcap capabilities.  Some are used for termcap translation.  The
677# code uses the 'OT' prefix we put on obsolete capabilities to suppress
678# printing them in terminfo source dumps of compiled entries.
679#
680backspaces_with_bs		OTbs	bool	bs	-		-	YBCGE	uses ^H to move left
681crt_no_scrolling		OTns	bool	ns	-		-	YBCG-	crt cannot scroll
682no_correctly_working_cr		OTnc	bool	nc	-		-	YBCG-	no way to go to start of line
683carriage_return_delay		OTdC	num	dC	-		-	YB-G-	pad needed for CR
684new_line_delay			OTdN	num	dN	-		-	YB-G-	pad needed for LF
685linefeed_if_not_lf		OTnl	str	nl	-		-	YBCGE	use to move down
686backspace_if_not_bs		OTbc	str	bc	-		-	YBCGE	move left, if not ^H
687#
688# GNU termcap library extensions.  The GNU termcap file distributed with
689# Emacs no longer uses these, but MT showed up in pre-9.0 versions of the
690# BSD termcap file.  The name clash with terminfo MT is resolved by type
691# info; MT is converted to km.
692#
693gnu_has_meta_key		OTMT	bool	MT	-		-	----E	has meta key
694# gnu_tab_width			OTtw	num	tw	-		-	----E	tab width in spaces
695#
696# GNU termcap *does* include the following extended capability,  Only the
697# now-obsolete Ann Arbor terminals used it.
698#
699# gnu_change_scroll_region	OTcS	str	cS	-		-	---GE	alternate set scrolling region
700#
701# The following comments describe capnames so ancient that I believe no
702# software uses them any longer.  Some of these have to go because they
703# clash with terminfo names in ways that cannot be resolved by type
704# information.
705#
706# These mytinfo codes are not used in the 4.4BSD curses code.  They are
707# marked obsolete in the 4.4BSD manual pages.
708#
709# There is one conflict with terminfo; ma is in both.  This conflict is
710# resolved by type information.
711#
712# The `ko' capability is translated by special code.  It should contain a
713# comma-separated list of capabilities for which there are corresponding keys.
714# The `kn' code is accepted but ignored.
715#
716# The `ma' capability was a 4.0BSD feature used by vi version 2.
717# It consists of pairs of characters corresponding to kl, kr, ku, kd, and kh.
718# Besides being obsolete, that interpretation conflicts with max_attributes.
719#
720# Here is a description of memory_lock_above and memory_unlock:
721# "You can 'freeze' data on the screen by turning on Memory Lock in a line of
722# text.  All lines above the cursor's current line become locked in place on
723# the screen.  Then enter data normally.  When the screen fills up, any
724# further data entered forces the first line of unfrozen line text to scroll
725# under the frozen data.  Lines scrolled off the screen are inserted into
726# memory immediately preceding the first frozen line." (from the HP 700/96
727# User's manual).  VT100/ANSI memory lock set is \E[>2h, reset is \E[>2l.
728#
729# Applications that use terminfo are supposed to behave as though xr is
730# always true.
731#
732linefeed_is_newline		OTNL	bool	NL	-		-	YB---	move down with \n
733# even_parity			OTEP	bool	EP	-		-	-B---	terminal requires even parity
734# odd_parity			OTOP	bool	OP	-		-	-B---	terminal requires odd parity
735# half_duplex			OTHD	bool	HD	-		-	-B---	terminal is half-duplex
736# lower_case_only		OTLC	bool	LC	-		-	-B---	terminal has only lower case
737# upper_case_only		OTUC	bool	UC	-		-	-B---	terminal has only upper case
738backspace_delay			OTdB	num	dB	-		-	YB-G-	padding required for ^H
739# form_feed_delay		OTdF	num	dF	-		-	-B-G-	padding required for ^L
740horizontal_tab_delay		OTdT	num	dT	-		-	YB-G-	padding required for ^I
741# vertical_tab_delay		OTdV	num	dV	-		-	-B---	padding required for ^V
742number_of_function_keys		OTkn	num	kn	-		-	-B-G-	count of function keys
743other_non_function_keys		OTko	str	ko	-		-	-B-G-	list of self-mapped keycaps
744arrow_key_map			OTma	str	ma	-		-	YBC--	map motion-keys for vi version 2
745# memory_lock_above		OTml	str	ml	-		-	-B---	lock visible screen memory above the current line
746# memory_unlock			OTmu	str	mu	-		-	-B---	unlock visible screen memory above the current line
747has_hardware_tabs		OTpt	bool	pt	-		-	YB---	has 8-char tabs invoked with ^I
748return_does_clr_eol		OTxr	bool	xr	-		-	YB---	return clears the line
749# tek_4025_insert_line		OTxx	bool	xx	-		-	-BC--	Tektronix 4025 insert-line glitch
750#
751# mytinfo described this as a termcap capability, but it is not listed in the
752# 4.4BSD man pages, and not found in the 4.4BSD termcap file.  The ncurses
753# package, like System V, behaves as though it is always true.
754#
755# rind_only_at_top		OTxq	bool	xq	-		-	-----	reverse index only works from top line
756#
757# University of Waterloo termcap extensions (as described in mytinfo).
758# The `xl' termcap file clashes with a terminfo name; this ambiguity cannot
759# be resolved by a type check.  The descriptions are guesses from what was
760# in the mytinfo tables.
761#
762# key_interrupt_char		OTki	str	ki	-		-	-----	string set by interrupt key (?)
763# key_kill_char			OTkk	str	kk	-		-	-----	string set by kill key (?)
764# key_suspend_char		OTkz	str	kz	-		-	-----	string set by suspend key (?)
765# initialization_messy		OTxc	bool	xc	-		-	-----	initialization leaves garbage on the screen (?)
766# ind_at_bottom_does_cr		OTxl	bool	xl	-		-	-----	index does a carriage return
767#
768# Nonstandard capabilities unique to Ross Ridge's `mytinfo' package.
769# SR clashes with a terminfo name; this ambiguity cannot be resolved by a type
770# check.
771#
772# scroll_left			OTsl1	str	Sl	-		-	-----	scroll screen leftward
773# scroll_right			OTsr1	str	Sr	-		-	-----	scroll screen rightward
774# parm_scroll_left		OTsl	str	SL	-		-	-----	scroll screen leftward #1 characters
775# parm_scroll_right		OTsr	str	SR	-		-	-----	scroll screen rightward #1 characters
776#
777# The mytinfo capabilities end here.
778#
779# XENIX extensions:
780#
781# Xenix defined its own set of forms-drawing capabilities:
782#
783# cap	IBM ASCII	description             ACS         	ASCII
784# ---	-----------	--------------------    -------------	------
785# G1	191 \277 M-?	single upper right   	ACS_URCORNER
786# G2	218 \332 M-Z	single upper left	ACS_ULCORNER
787# G3	192 \300 M-@	single lower left	ACS_LLCORNER
788# G4	217 \331 M-Y	single lower right	ACS_LRCORNER
789# G5	187 \273 M-;	double upper right
790# G6	201 \311 M-I	double upper left
791# G7	200 \310 M-H	double lower left
792# G8	188 \274 M-<	double lower right
793# GC	197 \305 M-E	single intersection	ACS_PLUS	_ _
794# GD	194 \302 M-B	single down-tick	ACS_TTEE	 |
795# GH	196 \304 M-D	single horizontal line	ACS_HLINE
796# GL	180 \264 M-4	single left tick	ACS_RTEE	-|
797# GR	195 \303 M-C	single right tick	ACS_LTEE	|-
798# GU	193 \301 M-A	single up tick		ACS_BTEE	_|_
799# GV	179 \263 M-3	single vertical line	ACS_VLINE
800# Gc	206 \316 M-N	double intersection
801# Gd	203 \313 M-K	double down tick
802# Gh	205 \315 M-M	double horizontal line
803# Gl	204 \204 M-L	double left tick
804# Gr	185 \271 M-9	double right tick
805# Gu	202 \312 M-J	double up tick
806# Gv	186 \272 M-:	double vertical line
807#
808# The compiler will translate the single-line caps and discard the others
809# (via IGNORE aliases further down).  We don't want to do normal pad
810# translation on these, they're often single-character printable ASCII
811# strings that happen to be numerics.  There's awk code in parametrized.sh
812# that detects the acs_ prefix and uses it to suppress pad translation.
813# These terminfo names are invented.
814#
815acs_ulcorner			OTG2	str	G2	-		-	-----	single upper left
816acs_llcorner			OTG3	str	G3	-		-	-----	single lower left
817acs_urcorner			OTG1	str	G1	-		-	-----	single upper right
818acs_lrcorner			OTG4	str	G4	-		-	-----	single lower right
819acs_ltee			OTGR	str	GR	-		-	-----	tee pointing right
820acs_rtee			OTGL	str	GL	-		-	-----	tee pointing left
821acs_btee			OTGU	str	GU	-		-	-----	tee pointing up
822acs_ttee			OTGD	str	GD	-		-	-----	tee pointing down
823acs_hline			OTGH	str	GH	-		-	-----	single horizontal line
824acs_vline			OTGV	str	GV	-		-	-----	single vertical line
825acs_plus			OTGC	str	GC	-		-	-----	single intersection
826#
827#############################################################################
828#
829# TERMINFO EXTENSION CAPABILITIES
830#
831# (see Caps-ncurses for the complete set of comments)
832#
833memory_lock			meml	str	ml	-		-	----K	lock memory above cursor
834memory_unlock			memu	str	mu	-		-	----K	unlock memory
835box_chars_1			box1	str	bx	-		-	----K	box characters primary set
836#
837#############################################################################
838