ncurses 6.0 - patch 20170826
[ncurses.git] / man / terminfo.tail
index 6b6a1b279aa2e32651ae3c56c1012cdd43f46ab9..37db325e41d0a19048f717d94345335288f63024 100644 (file)
@@ -1,4 +1,4 @@
-.\" $Id: terminfo.tail,v 1.76 2017/01/07 18:32:49 tom Exp $
+.\" $Id: terminfo.tail,v 1.88 2017/08/12 22:26:02 tom Exp $
 .\" Beginning of terminfo.tail file
 .\" This file is part of ncurses.
 .\" See "terminfo.head" for copyright.
@@ -21,7 +21,7 @@ That is, if \fB@TIC@\fP encounters a capability name
 which it does not recognize,
 it infers its type (boolean, number or string) from the syntax
 and makes an extended table entry for that capability.
-The \fBuse_extended_names\fP function makes this information
+The \fBuse_extended_names\fP(3X) function makes this information
 conditionally available to applications.
 The ncurses library provides the data leaving most of the behavior
 to applications:
@@ -124,12 +124,33 @@ sequence) are given by the two-character code, an \*(``=\*('', and then a string
 ending at the next following \*(``,\*(''.
 .PP
 A number of escape sequences are provided in the string valued capabilities
-for easy encoding of characters there.
+for easy encoding of characters there:
+.bP
 Both \fB\eE\fR and \fB\ee\fR
 map to an \s-1ESCAPE\s0 character,
-\fB^x\fR maps to a control-x for any appropriate x, and the sequences
-\fB\en \el \er \et \eb \ef \es\fR give
-a newline, line-feed, return, tab, backspace, form-feed, and space.
+.bP
+\fB^x\fR maps to a control-x for any appropriate \fIx\fP, and
+.bP
+the sequences
+.RS 6
+.PP
+\fB\en\fP, \fB\el\fP, \fB\er\fP, \fB\et\fP, \fB\eb\fP, \fB\ef\fP, and \fB\es\fR
+.RE
+.IP
+produce
+.RS 6
+.PP
+\fInewline\fP, \fIline-feed\fP, \fIreturn\fP, \fItab\fP, \fIbackspace\fP, \fIform-feed\fP, and \fIspace\fP,
+.RE
+.IP
+respectively.
+.PP
+X/Open Curses does not say what \*(``appropriate \fIx\fP\*('' might be.
+In practice, that is a printable ASCII graphic character.
+The special case \*(``^?\*('' is interpreted as DEL (127).
+In all other cases, the character value is AND'd with 0x1f,
+mapping to ASCII control codes in the range 0 through 31.
+.PP
 Other escapes include
 .bP
 \fB\e^\fR for \fB^\fR,
@@ -144,7 +165,7 @@ and \fB\e0\fR for null.
 .IP
 \fB\e0\fR will produce \e200, which does not terminate a string but behaves
 as a null character on most terminals, providing CS7 is specified.
-See stty(1).
+See \fBstty\fP(1).
 .IP
 The reason for this quirk is to maintain binary compatibility of the
 compiled terminfo files with other implementations,
@@ -1269,52 +1290,74 @@ They are documented here in case they ever become important.
 .SS Line Graphics
 .PP
 Many terminals have alternate character sets useful for forms-drawing.
-Terminfo and \fBcurses\fR build in support for the drawing characters
+Terminfo and \fBcurses\fR have built-in support
+for most of the drawing characters
 supported by the VT100, with some characters from the AT&T 4410v1 added.
 This alternate character set may be specified by the \fBacsc\fR capability.
 .PP
 .TS H
 center expand;
-l l l l
-l l l l
-lw25 lw10 lw6 lw6.
+l l l l l
+l l l l l
+_ _ _ _ _
+lw25 lw10 lw6 lw6 lw6.
 .\".TH
-\fBGlyph       ACS     Ascii   VT100\fR
-\fBName        Name    Default Name\fR
-UK pound sign          ACS_STERLING    f       }
-arrow pointing down    ACS_DARROW      v       .
-arrow pointing left    ACS_LARROW      <       ,
-arrow pointing right   ACS_RARROW      >       +
-arrow pointing up      ACS_UARROW      ^       \-
-board of squares       ACS_BOARD       #       h
-bullet                 ACS_BULLET      o       ~
-checker board (stipple)        ACS_CKBOARD     :       a
-degree symbol          ACS_DEGREE      \e      f
-diamond                ACS_DIAMOND     +       `
-greater-than-or-equal-to       ACS_GEQUAL      >       z
-greek pi               ACS_PI  *       {
-horizontal line        ACS_HLINE       \-      q
-lantern symbol         ACS_LANTERN     #       i
-large plus or crossover        ACS_PLUS        +       n
-less-than-or-equal-to  ACS_LEQUAL      <       y
-lower left corner      ACS_LLCORNER    +       m
-lower right corner     ACS_LRCORNER    +       j
-not-equal              ACS_NEQUAL      !       |
-plus/minus             ACS_PLMINUS     #       g
-scan line 1            ACS_S1          ~       o
-scan line 3            ACS_S3          \-      p
-scan line 7            ACS_S7          \-      r
-scan line 9            ACS_S9          \&_     s
-solid square block     ACS_BLOCK       #       0
-tee pointing down      ACS_TTEE        +       w
-tee pointing left      ACS_RTEE        +       u
-tee pointing right     ACS_LTEE        +       t
-tee pointing up        ACS_BTEE        +       v
-upper left corner      ACS_ULCORNER    +       l
-upper right corner     ACS_URCORNER    +       k
-vertical line          ACS_VLINE       |       x
+\fBGlyph       ACS     Ascii   acsc    acsc\fR
+\fBName        Name    Default Char    Value\fR
+arrow pointing right   ACS_RARROW      >       +       0x2b
+arrow pointing left    ACS_LARROW      <       ,       0x2c
+arrow pointing up      ACS_UARROW      ^       \-      0x2d
+arrow pointing down    ACS_DARROW      v       .       0x2e
+solid square block     ACS_BLOCK       #       0       0x30
+diamond                ACS_DIAMOND     +       `       0x60
+checker board (stipple)        ACS_CKBOARD     :       a       0x61
+degree symbol          ACS_DEGREE      \e      f       0x66
+plus/minus             ACS_PLMINUS     #       g       0x67
+board of squares       ACS_BOARD       #       h       0x68
+lantern symbol         ACS_LANTERN     #       i       0x69
+lower right corner     ACS_LRCORNER    +       j       0x6a
+upper right corner     ACS_URCORNER    +       k       0x6b
+upper left corner      ACS_ULCORNER    +       l       0x6c
+lower left corner      ACS_LLCORNER    +       m       0x6d
+large plus or crossover        ACS_PLUS        +       n       0x6e
+scan line 1            ACS_S1          ~       o       0x6f
+scan line 3            ACS_S3          \-      p       0x70
+horizontal line        ACS_HLINE       \-      q       0x71
+scan line 7            ACS_S7          \-      r       0x72
+scan line 9            ACS_S9          \&_     s       0x73
+tee pointing right     ACS_LTEE        +       t       0x74
+tee pointing left      ACS_RTEE        +       u       0x75
+tee pointing up        ACS_BTEE        +       v       0x76
+tee pointing down      ACS_TTEE        +       w       0x77
+vertical line          ACS_VLINE       |       x       0x78
+less-than-or-equal-to  ACS_LEQUAL      <       y       0x79
+greater-than-or-equal-to       ACS_GEQUAL      >       z       0x7a
+greek pi               ACS_PI  *       {       0x7b
+not-equal              ACS_NEQUAL      !       |       0x7c
+UK pound sign          ACS_STERLING    f       }       0x7d
+bullet                 ACS_BULLET      o       ~       0x7e
 .TE
 .PP
+A few notes apply to the table itself:
+.bP
+X/Open Curses incorrectly states that the mapping for \fIlantern\fP is
+uppercase \*(``I\*('' although Unix implementations use the
+lowercase \*(``i\*('' mapping.
+.bP
+The DEC VT100 implemented graphics using the alternate character set
+feature, temporarily switching \fImodes\fP and sending characters
+in the range 0x60 (96) to 0x7e (126)
+(the \fBacsc Value\fP column in the table).
+.bP
+The AT&T terminal added graphics characters outside that range.
+.IP
+Some of the characters within the range do not match the VT100;
+presumably they were used in the AT&T terminal:
+\fIboard of squares\fP replaces the VT100 \fInewline\fP symbol, while
+\fIlantern symbol\fP replaces the VT100 \fIvertical tab\fP symbol.
+The other VT100 symbols for control characters (\fIhorizontal tab\fP,
+\fIcarriage return\fP and \fIline-feed\fP) are not (re)used in curses.
+.PP
 The best way to define a new device's graphics set is to add a column
 to a copy of this table for your terminal, giving the character which
 (when emitted between \fBsmacs\fR/\fBrmacs\fR switches) will be rendered
@@ -1628,36 +1671,6 @@ Note that in older terminfo versions, this capability was called
 Other specific terminal problems may be corrected by adding more
 capabilities of the form \fBx\fR\fIx\fR.
 .PP
-.SS Similar Terminals
-.PP
-If there are two very similar terminals, one (the variant) can be defined as
-being just like the other (the base) with certain exceptions.
-In the
-definition of the variant, the string capability \fBuse\fR can be given with
-the name of the base terminal.
-The capabilities given before
-.B use
-override those in the base type named by
-.BR use .
-If there are multiple \fBuse\fR capabilities, they are merged in reverse order.
-That is, the rightmost \fBuse\fR reference is processed first, then the one to
-its left, and so forth.
-Capabilities given explicitly in the entry override
-those brought in by \fBuse\fR references.
-.PP
-A capability can be canceled by placing \fBxx@\fR to the left of the
-use reference that imports it, where \fIxx\fP is the capability.
-For example, the entry
-.RS
-.PP
-2621\-nl, smkx@, rmkx@, use=2621,
-.RE
-.PP
-defines a 2621\-nl that does not have the \fBsmkx\fR or \fBrmkx\fR capabilities,
-and hence does not turn on the function key labels when in visual mode.
-This is useful for different modes for a terminal, or for different
-user preferences.
-.PP
 .SS Pitfalls of Long Entries
 .PP
 Long terminfo entries are unlikely to be a problem; to date, no entry has even
@@ -1775,8 +1788,8 @@ They are deduced from the
 documentation for the AT&T 505 terminal.
 .PP
 Be careful assigning the \fBkmous\fR capability.
-The \fBncurses\fR wants to
-interpret it as \fBKEY_MOUSE\fR, for use by terminals and emulators like xterm
+The \fBncurses\fR library wants to interpret it as \fBKEY_MOUSE\fR,
+for use by terminals and emulators like xterm
 that can return mouse-tracking information in the keyboard-input stream.
 .PP
 X/Open Curses does not mention italics.
@@ -1792,30 +1805,30 @@ Different commercial ports of terminfo and curses support different subsets of
 the XSI Curses standard and (in some cases) different extension sets.
 Here
 is a summary, accurate as of October 1995:
-.PP
+.bP
 \fBSVR4, Solaris, ncurses\fR \-\-
 These support all SVr4 capabilities.
-.PP
+.bP
 \fBSGI\fR \-\-
 Supports the SVr4 set, adds one undocumented extended string
 capability (\fBset_pglen\fR).
-.PP
+.bP
 \fBSVr1, Ultrix\fR \-\-
 These support a restricted subset of terminfo capabilities.
 The booleans end with \fBxon_xoff\fR;
 the numerics with \fBwidth_status_line\fR;
 and the strings with \fBprtr_non\fR.
-.PP
+.bP
 \fBHP/UX\fR \-\-
 Supports the SVr1 subset, plus the SVr[234] numerics \fBnum_labels\fR,
 \fBlabel_height\fR, \fBlabel_width\fR, plus function keys 11 through 63, plus
 \fBplab_norm\fR, \fBlabel_on\fR, and \fBlabel_off\fR, plus some incompatible
 extensions in the string table.
-.PP
+.bP
 \fBAIX\fR \-\-
 Supports the SVr1 subset, plus function keys 11 through 63, plus a number
 of incompatible string table extensions.
-.PP
+.bP
 \fBOSF\fR \-\-
 Supports both the SVr4 set and the AIX extensions.
 .SH FILES
@@ -1830,6 +1843,7 @@ files containing terminal descriptions
 \fBprintf\fR(3),
 \fBterm\fR(\*n).
 \fBterm_variables\fR(3X).
+\fBuser_caps\fR(5).
 .SH AUTHORS
 Zeyd M. Ben-Halim, Eric S. Raymond, Thomas E. Dickey.
 Based on pcurses by Pavel Curtis.