source: trunk/essentials/sys-libs/ncurses/include/Caps.keys@ 3125

Last change on this file since 3125 was 2621, checked in by bird, 20 years ago

GNU ncurses 5.5

File size: 69.2 KB
Line 
1##############################################################################
2# Copyright (c) 2001 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: Thomas Dickey
30# and: Ilya Zakharevich
31#
32# $Id: Caps.keys,v 1.2 2002/04/20 15:43:49 tom Exp $
33#
34# This is an adaptation of ncurses' termcap/terminfo capability table, which
35# is illustrates an experimental extension to describe alt-, shift- and
36# control-modifiers applied to function and normal keys, as done on IBM pc's.
37#
38# This table is used to generate initializers for tables that drive tic,
39# infocmp, and the library compilation code used to support the termcap
40# compatibility hack. It is also used to generate the tabular portion of the
41# terminfo(5) man page; lines beginning with `#%' are passed through to become
42# the terminfo table.
43#
44# This file has three major sections; a standard-capabilities table, two
45# extension-capability tables, and a section of aliases declarations.
46# The first two have the same format, as follows:
47#
48# FILE FORMAT
49#
50# Column 1: terminfo variable name
51# Column 2: terminfo capability name
52# Column 3: capability type (boolean, numeric, or string)
53# Column 4: termcap capability name
54# Column 5: KEY_xxx name, if any, `-' otherwise
55# Column 6: value for KEY_xxx name, if any, `-' otherwise
56# Column 7: Lead with `Y' if capability should be emitted in termcap
57# translations, `-' otherwise
58# Column 8: capability description
59#
60# The codes following [Y-] in column 7 describe the versions of termcap which
61# use the given capability. This information is not used by the curses library
62# proper; rather, it's there to help the terminfo maintainer avoid emitting
63# termcap entry translations that are more than 1023 bytes long (and tank a
64# lot of old termcap-using programs). The codes read as follows:
65# B = mentioned in the BSD man page for 4.4BSD curses
66# C = used by the 4.4BSD curses library
67# G = mentioned in the documentation for GNU termcap
68# E = used by GNU Emacs
69# K = remove this terminfo capability when translating to standard format
70# The important codes are C and E. A cap with C or E should be preserved in
71# translation if possible. The problem is that preserving all such caps may
72# lead to some termcap translations being too long. The termcap maintainer
73# has a bit of a juggling act to do...potential problem cases are marked with
74# an asterisk (*).
75#
76# The aliases section has the following format:
77#
78# Column 1: either `capalias' or `infoalias'
79# Column 2: name to be aliased
80# Column 3: what name it should translate to. The name IGNORE means it
81# should be discarded with a warning message.
82# Column 4: name of the extension set (used for compiler warning messages)
83# Column 5: capability description (usually an associated terminfo variable)
84#
85# HANDLING TERMCAP AND TERMINFO EXTENSIONS
86#
87# There are basically five different ways to handle termcap and terminfo
88# extensions:
89#
90# 1. Don't list the capname here, or list it but comment it out (the latter
91# is preferable; someone might want to handle it in the future). If you do
92# this, the capability will be treated as unknown and raise a warning from
93# the compiler.
94#
95# 2. Alias it. This is appropriate if the capability has the same meaning
96# as an already-supported one. The compiler will handle aliasing, emitting
97# an appropriate informational message whenever an alias fires.
98#
99# 3. List it in the standard table. You almost certainly do *not* want
100# to do this -- the capabilities in that one, and their order, have been
101# carefully chosen to be SVr4-binary-compatible when they're written out
102# as a terminfo object, and breaking this would be bad. It's up the ncurses
103# library what to do with the terminfo data after it's read in.
104#
105# 4. List it in the aliases table with an IGNORE target field. If you
106# do this, the capability will be ignored on input (though the user will
107# get a warning message about it).
108#
109# 5. List it in the extensions table. If you do this, the compiler will
110# silently accept the capability, but the curses library proper will never
111# see it (because it won't be written out as part of the terminfo object
112# format). It's up to you what you have the compiler do with it.
113#
114# There are two opposite reasons to choose option 5. One is when you want
115# to eat the capability silently and discard it when doing translations
116# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
117# in this class. Nothing will ever use them again.
118#
119# More usually, you want the compiler to try to deduce something from the
120# capability value that it can use to translate it into your output format.
121# You'll need to write custom code, probably in postprocess_termcap() or
122# postprocess_terminfo(), to handle the translation.
123#
124# CONTROLLING ENTRY LENGTH
125#
126# Notes on specific elisions made to fit translations within 1023 bytes:
127#
128# Machines with IBM PC-like keyboards want to be able to define the following
129# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
130# only environments for End or Home-Down), key_dc, and key_ic. This is also
131# the set of keys the `joe' editor will be upset if it can't see. So don't
132# trim those out of the set to be translated to termcap, or various users of
133# the termcap file will become irate.
134#
135# It might look tempting to leave those long init strings out of translations.
136# We can't do it (yet); 4.4BSD tput and tset use them.
137#
138# We retain the sgr capability in translation in spite of the fact that neither
139# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
140# hard to understand without it, and (b) the entries in which it is long tend
141# to be older types that don't use up a lot of string space on function keys.
142# The tic(1) translation code will complain and elide it if it makes a critical
143# difference (there is special code in tic to recognize this situation).
144#
145# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
146# optimizer in BSD curses didn't use them. This omission seems to be the
147# single most effective one, it shortened the resolved length of all thirteen
148# problem entries in the 9.9.0 version of the terminfo master below critical.
149#
150# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
151# translations go back over critical if we do this. As 4.4BSD curses fades
152# into history and GNU termcap's application base shrinks towards being GNU
153# Emacs only, we'll probably elide out some BSD-only capabilities in order
154# to buy space for non-essentials Emacs is still using. Capabilities high
155# on that hit list: rc, sc, uc.
156#
157#############################################################################
158#
159# STANDARD CAPABILITIES
160#
161#%The following is a complete table of the capabilities included in a
162#%terminfo description block and available to terminfo-using code. In each
163#%line of the table,
164#%
165#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
166#%accesses the capability.
167#%
168#%The \fBcapname\fR is the short name used in the text of the database,
169#%and is used by a person updating the database.
170#%Whenever possible, capnames are chosen to be the same as or similar to
171#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
172#%identical or very similar names). Semantics are also intended to match
173#%those of the specification.
174#%
175#%The termcap code is the old
176#%.B termcap
177#%capability name (some capabilities are new, and have names which termcap
178#%did not originate).
179#%.P
180#%Capability names have no hard length limit, but an informal limit of 5
181#%characters has been adopted to keep them short and to allow the tabs in
182#%the source file
183#%.B Caps
184#%to line up nicely.
185#%
186#%Finally, the description field attempts to convey the semantics of the
187#%capability. You may find some codes in the description field:
188#%.TP
189#%(P)
190#%indicates that padding may be specified
191#%.TP
192#%#[1-9]
193#%in the description field indicates that the string is passed through tparm with
194#%parms as given (#\fIi\fP).
195#%.TP
196#%(P*)
197#%indicates that padding may vary in proportion to the number of
198#%lines affected
199#%.TP
200#%(#\d\fIi\fP\u)
201#%indicates the \fIi\fP\uth\d parameter.
202#%
203#%.PP
204#% These are the boolean capabilities:
205#%
206#%.na
207#%.TS H
208#%center expand;
209#%c l l c
210#%c l l c
211#%lw25 lw6 lw2 lw20.
212#%\fBVariable Cap- TCap Description\fR
213#%\fBBooleans name Code\fR
214auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
215auto_right_margin am bool am - - YBCGE terminal has automatic margins
216no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
217ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
218eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
219erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
220generic_type gn bool gn - - YB-G- generic line type
221hard_copy hc bool hc - - YBCG- hardcopy terminal
222has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
223has_status_line hs bool hs - - YB-G- has extra status line
224insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
225memory_above da bool da - - YBCG- display may be retained above the screen
226memory_below db bool db - - YB-GE display may be retained below the screen
227move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
228move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
229over_strike os bool os - - YBCG- terminal can overstrike
230status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
231dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
232tilde_glitch hz bool hz - - YB-GE can't print ~'s (hazeltine)
233transparent_underline ul bool ul - - YBCGE underline character overstrikes
234xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
235needs_xon_xoff nxon bool nx - - ----- padding won't work, xon/xoff required
236prtr_silent mc5i bool 5i - - ----- printer won't echo on screen
237hard_cursor chts bool HC - - ----- cursor is hard to see
238non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
239no_pad_char npc bool NP - - ----- pad character does not exist
240non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
241can_change ccc bool cc - - ----- terminal can re-define existing colors
242back_color_erase bce bool ut - - ----- screen erased with background color
243hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
244col_addr_glitch xhpa bool YA - - ----- only positive motion for hpa/mhpa caps
245cr_cancels_micro_mode crxm bool YB - - ----- using cr turns off micro mode
246has_print_wheel daisy bool YC - - ----- printer needs operator to change character set
247row_addr_glitch xvpa bool YD - - ----- only positive motion for vpa/mvpa caps
248semi_auto_right_margin sam bool YE - - ----- printing in last column causes cr
249cpi_changes_res cpix bool YF - - ----- changing character pitch changes resolution
250lpi_changes_res lpix bool YG - - ----- changing line pitch changes resolution
251#%.TE
252#%.ad
253#%
254#%These are the numeric capabilities:
255#%
256#%.na
257#%.TS H
258#%center expand;
259#%c l l c
260#%c l l c
261#%lw25 lw6 lw2 lw20.
262#%\fBVariable Cap- TCap Description\fR
263#%\fBNumeric name Code\fR
264columns cols num co - - YBCGE number of columns in a line
265init_tabs it num it - - YB-G- tabs initially every # spaces
266lines lines num li - - YBCGE number of lines on screen or page
267lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
268magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
269padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
270virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
271width_status_line wsl num ws - - YB-G- number of columns in status line
272num_labels nlab num Nl - - ----- number of labels on screen