X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=man%2Fterminfo.tail;h=152297c12830185bf4dd406a83b9f989c472d7bf;hp=02fe0bd0125de2b382c3109e656b805d4cda7ab0;hb=a8e3f06ac309504143cd56ac9ec55889bfdf4914;hpb=f06e14af5e11df95d6542964bf1b349d2843bb11 diff --git a/man/terminfo.tail b/man/terminfo.tail index 02fe0bd0..152297c1 100644 --- a/man/terminfo.tail +++ b/man/terminfo.tail @@ -1,4 +1,4 @@ -.\" $Id: terminfo.tail,v 1.73 2016/10/22 19:56:17 tom Exp $ +.\" $Id: terminfo.tail,v 1.85 2017/04/22 18:59: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, @@ -157,7 +178,7 @@ Finally, characters may be given as three octal digits after a \fB\e\fR. .PP A delay in milliseconds may appear anywhere in a string capability, enclosed in $<..> brackets, as in \fBel\fP=\eEK$<5>, -and padding characters are supplied by \fBtputs\fP +and padding characters are supplied by \fBtputs\fP(3X) to provide this delay. .bP The delay must be a number with at most one decimal @@ -434,7 +455,7 @@ get static variable \fI[a\-z]\fP and push it .IP The terms "static" and "dynamic" are misleading. Historically, these are simply two different sets of variables, -whose values are not reset between calls to \fBtparm\fP. +whose values are not reset between calls to \fBtparm\fP(3X). However, that fact is not documented in other implementations. Relying on it will adversely impact portability to other implementations. .TP @@ -648,7 +669,7 @@ System V and XSI Curses expect that \fBind\fR, \fBri\fR, \fBindn\fR, and \fBrin\fR will simulate destructive scrolling; their documentation cautions you not to define \fBcsr\fR unless this is true. This \fBcurses\fR implementation is more liberal and will do explicit erases -after scrolling if \fBndstr\fR is defined. +after scrolling if \fBndsrc\fR is defined. .PP If the terminal has the ability to define a window as part of memory, which all commands affect, @@ -1269,52 +1290,65 @@ 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 built-in support for 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 VT100 VT100\fR +\fBName Name Default Char Code\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). +.bP +The AT&T terminal added graphics characters outside that range. +.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 @@ -1324,16 +1358,24 @@ character pairs right to left in sequence; these become the ACSC string. .PP .SS Color Handling .PP -Most color terminals are either \*(``Tektronix-like\*('' or \*(``HP-like\*(''. +The curses library functions \fBinit_pair\fP and \fBinit_color\fP +manipulate the \fIcolor pairs\fP and \fIcolor values\fP discussed in this +section +(see \fBcurs_color\fP(3X) for details on these and related functions). +.PP +Most color terminals are either \*(``Tektronix-like\*('' or \*(``HP-like\*('': +.bP Tektronix-like -terminals have a predefined set of N colors (where N usually 8), and can set +terminals have a predefined set of \fIN\fP colors +(where \fIN\fP is usually 8), +and can set character-cell foreground and background characters independently, mixing them -into N\ *\ N color-pairs. -On HP-like terminals, the use must set each color +into \fIN\fP\ *\ \fIN\fP color-pairs. +.bP +On HP-like terminals, the user must set each color pair up separately (foreground and background are not independently settable). -Up to M color-pairs may be set up from 2*M different colors. -ANSI-compatible -terminals are Tektronix-like. +Up to \fIM\fP color-pairs may be set up from 2*\fIM\fP different colors. +ANSI-compatible terminals are Tektronix-like. .PP Some basic color capabilities are independent of the color method. The numeric @@ -1349,6 +1391,11 @@ terminal emulators) erase screen areas with the current background color rather than the power-up default background; these should have the boolean capability \fBbce\fR. .PP +While the curses library works with \fIcolor pairs\fP +(reflecting the inability of some devices to set foreground +and background colors independently), +there are separate capabilities for setting these features: +.bP To change the current foreground or background color on a Tektronix-type terminal, use \fBsetaf\fR (set ANSI foreground) and \fBsetab\fR (set ANSI background) or \fBsetf\fR (set foreground) and \fBsetb\fR (set background). @@ -1357,12 +1404,12 @@ The SVr4 documentation describes only \fBsetaf\fR/\fBsetab\fR; the XPG4 draft says that "If the terminal supports ANSI escape sequences to set background and foreground, they should be coded as \fBsetaf\fR and \fBsetab\fR, respectively. +.bP If the terminal supports other escape sequences to set background and foreground, they should be coded as \fBsetf\fR and \fBsetb\fR, respectively. -The \fBvidputs\fR -function and the refresh functions use \fBsetaf\fR and \fBsetab\fR if they are -defined." +The \fBvidputs\fR and the \fBrefresh\fP(3X) functions +use the \fBsetaf\fR and \fBsetab\fR capabilities if they are defined. .PP The \fBsetaf\fR/\fBsetab\fR and \fBsetf\fR/\fBsetb\fR capabilities take a single numeric argument each. @@ -1411,6 +1458,8 @@ otherwise red/blue will be interchanged on the display. On an HP-like terminal, use \fBscp\fR with a color-pair number parameter to set which color pair is current. .PP +Some terminals allow the \fIcolor values\fP to be modified: +.bP On a Tektronix-like terminal, the capability \fBccc\fR may be present to indicate that colors can be modified. If so, the \fBinitc\fR capability will @@ -1422,7 +1471,7 @@ If the boolean capability \fBhls\fR is present, they are instead as HLS (Hue, Lightness, Saturation) indices. The ranges are terminal-dependent. -.PP +.bP On an HP-like terminal, \fBinitp\fR may give a capability for changing a color-pair value. It will take seven parameters; a color-pair number (0 to @@ -1613,36 +1662,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 @@ -1760,8 +1779,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. @@ -1777,30 +1796,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 @@ -1811,6 +1830,7 @@ files containing terminal descriptions \fB@TIC@\fR(1M), \fB@INFOCMP@\fR(1M), \fBcurses\fR(3X), +\fBcurs_color\fR(3X), \fBprintf\fR(3), \fBterm\fR(\*n). \fBterm_variables\fR(3X).