source: trunk/ncurses/include/Caps.uwin@ 2751

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

GNU ncurses 5.5

File size: 54.4 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#
31# $Id: Caps.uwin,v 1.3 2002/07/07 00:05:00 tom Exp $
32#
33# This is an adaptation of ncurses' termcap/terminfo capability table, which
34# is designed to align with U/Win's terminfo.
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: KEY_xxx name, if any, `-' otherwise
53# Column 6: value for KEY_xxx name, if any, `-' otherwise
54# Column 7: Lead with `Y' if capability should be emitted in termcap
55# translations, `-' otherwise
56# Column 8: capability description
57#
58# The codes following [Y-] in column 7 describe the versions of termcap which
59# use the given capability. This information is not used by the curses library
60# proper; rather, it's there to help the terminfo maintainer avoid emitting
61# termcap entry translations that are more than 1023 bytes long (and tank a
62# lot of old termcap-using programs). The codes read as follows:
63# B = mentioned in the BSD man page for 4.4BSD curses
64# C = used by the 4.4BSD curses library
65# G = mentioned in the documentation for GNU termcap
66# E = used by GNU Emacs
67# K = remove this terminfo capability when translating to standard format
68# The important codes are C and E. A cap with C or E should be preserved in
69# translation if possible. The problem is that preserving all such caps may
70# lead to some termcap translations being too long. The termcap maintainer
71# has a bit of a juggling act to do...potential problem cases are marked with
72# an asterisk (*).
73#
74# The aliases section has the following format:
75#
76# Column 1: either `capalias' or `infoalias'
77# Column 2: name to be aliased
78# Column 3: what name it should translate to. The name IGNORE means it
79# should be discarded with a warning message.
80# Column 4: name of the extension set (used for compiler warning messages)
81# Column 5: capability description (usually an associated terminfo variable)
82#
83# HANDLING TERMCAP AND TERMINFO EXTENSIONS
84#
85# There are basically five different ways to handle termcap and terminfo
86# extensions:
87#
88# 1. Don't list the capname here, or list it but comment it out (the latter
89# is preferable; someone might want to handle it in the future). If you do
90# this, the capability will be treated as unknown and raise a warning from
91# the compiler.
92#
93# 2. Alias it. This is appropriate if the capability has the same meaning
94# as an already-supported one. The compiler will handle aliasing, emitting
95# an appropriate informational message whenever an alias fires.
96#
97# 3. List it in the standard table. You almost certainly do *not* want
98# to do this -- the capabilities in that one, and their order, have been
99# carefully chosen to be SVr4-binary-compatible when they're written out
100# as a terminfo object, and breaking this would be bad. It's up the ncurses
101# library what to do with the terminfo data after it's read in.
102#
103# 4. List it in the aliases table with an IGNORE target field. If you
104# do this, the capability will be ignored on input (though the user will
105# get a warning message about it).
106#
107# 5. List it in the extensions table. If you do this, the compiler will
108# silently accept the capability, but the curses library proper will never
109# see it (because it won't be written out as part of the terminfo object
110# format). It's up to you what you have the compiler do with it.
111#
112# There are two opposite reasons to choose option 5. One is when you want
113# to eat the capability silently and discard it when doing translations
114# to terminfo with tic -I. Some very old obsolete BSD caps like :kn: are
115# in this class. Nothing will ever use them again.
116#
117# More usually, you want the compiler to try to deduce something from the
118# capability value that it can use to translate it into your output format.
119# You'll need to write custom code, probably in postprocess_termcap() or
120# postprocess_terminfo(), to handle the translation.
121#
122# CONTROLLING ENTRY LENGTH
123#
124# Notes on specific elisions made to fit translations within 1023 bytes:
125#
126# Machines with IBM PC-like keyboards want to be able to define the following
127# keys: key_npage, key_ppage, key_home, key_ll (which is used for in termcap-
128# only environments for End or Home-Down), key_dc, and key_ic. This is also
129# the set of keys the `joe' editor will be upset if it can't see. So don't
130# trim those out of the set to be translated to termcap, or various users of
131# the termcap file will become irate.
132#
133# It might look tempting to leave those long init strings out of translations.
134# We can't do it (yet); 4.4BSD tput and tset use them.
135#
136# We retain the sgr capability in translation in spite of the fact that neither
137# 4.4BSD nor GNU Emacs uses it, because (a) some entry naming distinctions are
138# hard to understand without it, and (b) the entries in which it is long tend
139# to be older types that don't use up a lot of string space on function keys.
140# The tic(1) translation code will complain and elide it if it makes a critical
141# difference (there is special code in tic to recognize this situation).
142#
143# Yes, BSD tset(1) uses hpa. We elide hpa/vpa anyway because the motion
144# optimizer in BSD curses didn't use them. This omission seems to be the
145# single most effective one, it shortened the resolved length of all thirteen
146# problem entries in the 9.9.0 version of the terminfo master below critical.
147#
148# It would be nice to keep f11 and f12 for Emacs use, but a couple of termcap
149# translations go back over critical if we do this. As 4.4BSD curses fades
150# into history and GNU termcap's application base shrinks towards being GNU
151# Emacs only, we'll probably elide out some BSD-only capabilities in order
152# to buy space for non-essentials Emacs is still using. Capabilities high
153# on that hit list: rc, sc, uc.
154#
155#############################################################################
156#
157# STANDARD CAPABILITIES
158#
159#%The following is a complete table of the capabilities included in a
160#%terminfo description block and available to terminfo-using code. In each
161#%line of the table,
162#%
163#%The \fBvariable\fR is the name by which the programmer (at the terminfo level)
164#%accesses the capability.
165#%
166#%The \fBcapname\fR is the short name used in the text of the database,
167#%and is used by a person updating the database.
168#%Whenever possible, capnames are chosen to be the same as or similar to
169#%the ANSI X3.64-1979 standard (now superseded by ECMA-48, which uses
170#%identical or very similar names). Semantics are also intended to match
171#%those of the specification.
172#%
173#%The termcap code is the old
174#%.B termcap
175#%capability name (some capabilities are new, and have names which termcap
176#%did not originate).
177#%.P
178#%Capability names have no hard length limit, but an informal limit of 5
179#%characters has been adopted to keep them short and to allow the tabs in
180#%the source file
181#%.B Caps
182#%to line up nicely.
183#%
184#%Finally, the description field attempts to convey the semantics of the
185#%capability. You may find some codes in the description field:
186#%.TP
187#%(P)
188#%indicates that padding may be specified
189#%.TP
190#%#[1-9]
191#%in the description field indicates that the string is passed through tparm with
192#%parms as given (#\fIi\fP).
193#%.TP
194#%(P*)
195#%indicates that padding may vary in proportion to the number of
196#%lines affected
197#%.TP
198#%(#\d\fIi\fP\u)
199#%indicates the \fIi\fP\uth\d parameter.
200#%
201#%.PP
202#% These are the boolean capabilities:
203#%
204#%.na
205#%.TS H
206#%center expand;
207#%c l l c
208#%c l l c
209#%lw25 lw6 lw2 lw20.
210#%\fBVariable Cap- TCap Description\fR
211#%\fBBooleans name Code\fR
212auto_left_margin bw bool bw - - YB-G- cub1 wraps from column 0 to last column
213auto_right_margin am bool am - - YBCGE terminal has automatic margins
214no_esc_ctlc xsb bool xb - - YBCG- beehive (f1=escape, f2=ctrl C)
215ceol_standout_glitch xhp bool xs - - YBCGE standout not erased by overwriting (hp)
216eat_newline_glitch xenl bool xn - - YBCGE newline ignored after 80 cols (concept)
217erase_overstrike eo bool eo - - YBCG- can erase overstrikes with a blank
218generic_type gn bool gn - - YB-G- generic line type
219hard_copy hc bool hc - - YBCG- hardcopy terminal
220has_meta_key km bool km - - YB-GE Has a meta key (i.e., sets 8th-bit)
221has_status_line hs bool hs - - YB-G- has extra status line
222insert_null_glitch in bool in - - YBCGE insert mode distinguishes nulls
223memory_above da bool da - - YBCG- display may be retained above the screen
224memory_below db bool db - - YB-GE display may be retained below the screen
225move_insert_mode mir bool mi - - YBCGE safe to move while in insert mode
226move_standout_mode msgr bool ms - - YBCGE safe to move while in standout mode
227over_strike os bool os - - YBCG- terminal can overstrike
228status_line_esc_ok eslok bool es - - YB-G- escape can be used on the status line
229dest_tabs_magic_smso xt bool xt - - YBCGE tabs destructive, magic so char (t1061)
230tilde_glitch hz bool hz - - YB-GE cannot print ~'s (hazeltine)
231transparent_underline ul bool ul - - YBCGE underline character overstrikes
232xon_xoff xon bool xo - - YB--- terminal uses xon/xoff handshaking
233needs_xon_xoff nxon bool nx - - ----- padding will not work, xon/xoff required
234prtr_silent mc5i bool 5i - - ----- printer will not echo on screen
235hard_cursor chts bool HC - - ----- cursor is hard to see
236non_rev_rmcup nrrmc bool NR - - ----- smcup does not reverse rmcup
237no_pad_char npc bool NP - - ----- pad character does not exist
238non_dest_scroll_region ndscr bool ND - - ----- scrolling region is non-destructive
239back_color_erase bce bool ut - - ----- screen erased with background color
240can_change ccc bool cc - - ----- terminal can re-define existing colors
241hue_lightness_saturation hls bool hl - - ----- terminal uses only HLS color notation (Tektronix)
242#%.TE
243#%.ad
244#%
245#%These are the numeric capabilities:
246#%
247#%.na
248#%.TS H
249#%center expand;
250#%c l l c
251#%c l l c
252#%lw25 lw6 lw2 lw20.
253#%\fBVariable Cap- TCap Description\fR
254#%\fBNumeric name Code\fR
255columns cols num co - - YBCGE number of columns in a line
256init_tabs it num it - - YB-G- tabs initially every # spaces
257lines lines num li - - YBCGE number of lines on screen or page
258lines_of_memory lm num lm - - YB-G- lines of memory if > line. 0 means varies
259magic_cookie_glitch xmc num sg - - YBCGE number of blank characters left by smso or rmso
260padding_baud_rate pb num pb - - YB-GE lowest baud rate where padding needed
261virtual_terminal vt num vt - - YB--- virtual terminal number (CB/unix)
262width_status_line wsl num ws - - YB-G- number of columns in status line
263num_labels nlab num Nl - - ----- number of labels on screen
264label_height lh num lh - - ----- rows in each label
265label_width lw num lw - - ----- columns in each label
266buttons btns num BT - - ----- number of buttons on mouse
267#max_attributes ma num ma - - YBC-- maximum combined attributes terminal can handle
268#maximum_windows wnum num MW - - ----- maximum number of defineable windows
269# These came in with SVr4's color support
270max_colors colors num Co - - ----- maximum number of colors on screen
271max_pairs pairs num pa - - ----- maximum number of color-pairs on the screen
272no_color_video ncv num NC - - ----- video attributes that cannot be used with colors
273#%.TE
274#%.ad
275#%
276#%The following numeric capabilities are present in the SVr4.0 term structure,
277#%but are not yet documented in the man page. They came in with SVr4's
278#%printer support.
279#%
280#%.na
281#%
282#%These are the string capabilities:
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#%\fBString name Code\fR
292back_tab cbt str bt - - YBCGE back tab (P)
293bell bel str bl - - YB-GE audible signal (bell) (P)
294carriage_return cr str cr - - YBCGE carriage return (P*) (P*)
295change_scroll_region csr str cs - - YBCGE change region to line #1 to line #2 (P)
296clear_all_tabs tbc str ct - - YB-G- clear all tab stops (P)
297clear_screen clear str cl - - YBCGE clear screen and home cursor (P*)
298clr_eol el str ce - - YBCGE clear to end of line (P)
299clr_eos ed str cd - - YBCGE clear to end of screen (P*)
300column_address hpa str ch - - -B-GE* horizontal position #1, absolute (P)
301command_character cmdch str CC - - YB-G- terminal settable cmd character in prototype !?
302cursor_address cup str cm - - YBCGE move to row #1 columns #2
303cursor_down cud1 str do - - YBCGE down one line
304cursor_home home str ho - - YBCGE home cursor (if no cup)
305cursor_invisible civis str vi - - YB-G- make cursor invisible
306cursor_left cub1 str le - - YBCGE move left one space
307cursor_mem_address mrcup str CM - - YB-G- memory relative cursor addressing, move to row #1 columns #2
308cursor_normal cnorm str ve - - YBCGE make cursor appear normal (undo civis/cvvis)
309cursor_right cuf1 str nd - - YBCGE non-destructive space (move right one space)
310cursor_to_ll ll str ll - - YBCGE last line, first column (if no cup)
311cursor_up cuu1 str up - - YBCGE up one line
312cursor_visible cvvis str vs - - YBCGE make cursor very visible
313delete_character dch1 str dc - - YBCGE delete character (P*)
314delete_line dl1 str dl - - YBCGE delete line (P*)
315dis_status_line dsl str ds - - YB-G- disable status line
316down_half_line hd str hd - - YB-G- half a line down
317enter_alt_charset_mode smacs str as - - YB-G- start alternate character set (P)
318enter_blink_mode blink str mb - - YB-G- turn on blinking
319enter_bold_mode bold str md - - YB-G- turn on bold (extra bright) mode
320enter_ca_mode smcup str ti - - YBCGE string to start programs using cup
321enter_delete_mode smdc str dm - - YBCGE enter delete mode
322enter_dim_mode dim str mh - - YB-G- turn on half-bright mode
323enter_insert_mode smir str im - - YBCGE enter insert mode
324enter_secure_mode invis str mk - - -B-G-* turn on blank mode (characters invisible)
325enter_protected_mode prot str mp - - -B-G-* turn on protected mode
326enter_reverse_mode rev str mr - - YB-G- turn on reverse video mode
327enter_standout_mode smso str so - - YBCGE begin standout mode
328enter_underline_mode smul str us - - YBCGE begin underline mode
329erase_chars ech str ec - - YB-G- erase #1 characters (P)
330exit_alt_charset_mode rmacs str ae - - YB-G- end alternate character set (P)
331exit_attribute_mode sgr0 str me - - YB-GE turn off all attributes
332exit_ca_mode rmcup str te - - YBCGE strings to end programs using cup
333exit_delete_mode rmdc str ed - - YBCGE end delete mode
334exit_insert_mode rmir str ei - - YBCGE exit insert mode
335exit_standout_mode rmso str se - - YBCGE exit standout mode
336exit_underline_mode rmul str ue - - YBCGE exit underline mode
337flash_screen flash str vb - - YBCGE visible bell (may not move cursor)
338form_feed ff str ff - - YB-G- hardcopy terminal page eject (P*)
339from_status_line fsl str fs - - YB-G- return from status line
340init_1string is1 str i1 - - YB-G- initialization string
341init_2string is2 str is - - YB-G- initialization string
342init_3string is3 str i3 - - YB-G- initialization string
343init_file if str if - - YB-G- name of initialization file
344insert_character ich1 str ic - - YBCGE insert character (P)
345insert_line il1 str al - - YBCGE insert line (P*)
346insert_padding ip str ip - - YBCGE insert padding after inserted character
347key_backspace kbs str kb KEY_BACKSPACE 0407 YB-G- backspace key
348key_catab ktbc str ka KEY_CATAB 0526 -B-G-* clear-all-tabs key
349key_clear kclr str kC KEY_CLEAR 0515 -B-G-* clear-screen or erase key
350key_ctab kctab str kt KEY_CTAB 0525 -B-G-* clear-tab key
351key_dc kdch1 str kD KEY_DC 0512 YB-G- delete-character key
352key_dl kdl1 str kL KEY_DL 0510 -B-G-* delete-line key
353key_down kcud1 str kd KEY_DOWN 0402 YBCGE down-arrow key
354key_eic krmir str kM KEY_EIC 0514 -B-G-* sent by rmir or smir in insert mode
355key_eol kel str kE KEY_EOL 0517 -B-G-* clear-to-end-of-line key
356key_eos ked str kS KEY_EOS 0516 -B-G-* clear-to-end-of-screen key
357key_f0 kf0 str k0 KEY_F(0) 0410 YBCGE F0 function key
358key_f1 kf1 str k1 KEY_F(1) - YBCGE F1 function key
359key_f10 kf10 str k; KEY_F(10) - ----E F10 function key
360key_f2 kf2 str k2 KEY_F(2) - YBCGE F2 function key
361key_f3 kf3 str k3 KEY_F(3) - YBCGE F3 function key
362key_f4 kf4 str k4 KEY_F(4) - YBCGE F4 function key
363key_f5 kf5 str k5 KEY_F(5) - YBCGE F5 function key
364key_f6 kf6 str k6 KEY_F(6) - YBCGE F6 function key
365key_f7 kf7 str k7 KEY_F(7) - YBCGE F7 function key
366key_f8 kf8 str k8 KEY_F(8) - YBCGE F8 function key
367key_f9 kf9 str k9 KEY_F(9) - YBCGE F9 function key
368key_home khome str kh KEY_HOME 0406 YBCGE home key
369key_ic kich1 str kI KEY_IC 0513 YB-GE insert-character key
370key_il kil1 str kA KEY_IL 0511 -B-G-* insert-line key
371key_left kcub1 str kl KEY_LEFT 0404 YBCGE left-arrow key
372key_ll kll str kH KEY_LL 0533 YB-G- lower-left key (home down)
373key_npage knp str kN KEY_NPAGE 0522 YB-GE next-page key
374key_ppage kpp str kP KEY_PPAGE 0523 YB-GE previous-page key
375key_right kcuf1 str kr KEY_RIGHT 0405 YBCGE right-arrow key
376key_sf kind str kF KEY_SF 0520 -B-G-* scroll-forward key
377key_sr kri str kR KEY_SR 0521 -B-G-* scroll-backward key
378key_stab khts str kT KEY_STAB 0524 -B-G-* set-tab key
379key_up kcuu1 str ku KEY_UP 0403 YBCGE up-arrow key
380keypad_local rmkx str ke - - YBCGE leave 'keyboard_transmit' mode
381keypad_xmit smkx str ks - - YBCGE enter 'keyboard_transmit' mode
382lab_f0 lf0 str l0 - - -B-G-* label on function key f0 if not f0
383lab_f1 lf1 str l1 - - -B-G-* label on function key f1 if not f1
384lab_f10 lf10 str la - - ----- label on function key f10 if not f10
385lab_f2 lf2 str l2 - - -B-G-* label on function key f2 if not f2
386lab_f3 lf3 str l3 - - -B-G-* label on function key f3 if not f3
387lab_f4 lf4 str l4 - - -B-G-* label on function key f4 if not f4
388lab_f5 lf5 str l5 - - -B-G-* label on function key f5 if not f5
389lab_f6 lf6 str l6 - - -B-G-* label on function key f6 if not f6
390lab_f7 lf7 str l7 - - -B-G-* label on function key f7 if not f7
391lab_f8 lf8 str l8 - - -B-G-* label on function key f8 if not f8
392lab_f9 lf9 str l9 - - -B-G-* label on function key f9 if not f9
393meta_off rmm str mo - - YB-G-* turn off meta mode
394meta_on smm str mm - - YB-G-* turn on meta mode (8th-bit on)
395newline nel str nw - - YB-G-* newline (behave like cr followed by lf)
396pad_char pad str pc - - YBCGE padding char (instead of null)
397parm_dch dch str DC - - YB-GE delete #1 characters (P*)
398parm_delete_line dl str DL - - YBCGE delete #1 lines (P*)
399parm_down_cursor cud str DO - - YBCGE down #1 lines (P*)
400parm_ich ich str IC - - YB-GE insert #1 characters (P*)
401parm_index indn str SF - - YBCG- scroll forward #1 lines (P)
402parm_insert_line il str AL - - YBCGE insert #1 lines (P*)
403parm_left_cursor cub str LE - - YBCGE move #1 characters to the left (P)
404parm_right_cursor cuf str RI - - YBCGE move #1 characters to the right (P*)
405parm_rindex rin str SR - - YBCG- scroll back #1 lines (P)
406parm_up_cursor cuu str UP - - YBCGE up #1 lines (P*)
407pkey_key pfkey str pk - - -B--- program function key #1 to type string #2
408pkey_local pfloc str pl - - -B--- program function key #1 to execute string #2
409pkey_xmit pfx str px - - -B--- program function key #1 to transmit string #2
410print_screen mc0 str ps - - -B-G-* print contents of screen
411prtr_off mc4 str pf - - -B-G-* turn off printer
412prtr_on mc5 str po - - -B-G-* turn on printer
413repeat_char rep str rp - - YB-GE repeat char #1 #2 times (P*)
414reset_1string rs1 str r1 - - -B--- reset string
415reset_2string rs2 str r2 - - -B--- reset string
416reset_3string rs3 str r3 - - -B--- reset string
417reset_file rf str rf - - -B--- name of reset file
418restore_cursor rc str rc - - YBCG- restore cursor to position of last save_cursor
419row_address vpa str cv - - -B-GE* vertical position #1 absolute (P)
420save_cursor sc str sc - - YBCG- save current cursor position (P)
421scroll_forward ind str sf - - YBCGE scroll text up (P)
422scroll_reverse ri str sr - - YBCGE scroll text down (P)
423set_attributes sgr str sa - - YB-G- define video attributes #1-#9 (PG9)
424set_tab hts str st - - YB-G- set a tab in every row, current columns
425set_window wind str wi - - -B-GE current window is lines #1-#2 cols #3-#4
426tab ht str ta - - YBCGE tab to next 8-space hardware tab stop
427to_status_line tsl str ts - - YB-G- move to status line, column #1
428underline_char uc str uc - - YBCG- underline char and move past it
429up_half_line hu str hu - - YB-G- half a line up
430init_prog iprog str iP - - -B--- path name of program for initialization