]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/terminfo.tail
ncurses 6.0 - patch 20150822
[ncurses.git] / man / terminfo.tail
index 58d6857a004ee22c83073068e033229302cecc16..bd8568f8e00dca2721cb17da97d08eb201ee48d0 100644 (file)
@@ -1,4 +1,4 @@
-.\" $Id: terminfo.tail,v 1.61 2013/03/03 00:06:39 tom Exp $
+.\" $Id: terminfo.tail,v 1.69 2015/04/26 14:47:23 tom Exp $
 .\" Beginning of terminfo.tail file
 .\" This file is part of ncurses.
 .\" See "terminfo.head" for copyright.
@@ -53,30 +53,37 @@ The following entry, describing an ANSI-standard terminal, is representative
 of what a \fBterminfo\fR entry for a modern terminal typically looks like.
 .PP
 .nf
-.in -2
-.ta .3i
 .ft CW
 \s-2ansi|ansi/pc-term compatible with color,
-        mc5i,
-        colors#8, ncv#3, pairs#64,
-        cub=\\E[%p1%dD, cud=\\E[%p1%dB, cuf=\\E[%p1%dC,
-        cuu=\\E[%p1%dA, dch=\\E[%p1%dP, dl=\\E[%p1%dM,
-        ech=\\E[%p1%dX, el1=\\E[1K, hpa=\\E[%p1%dG, ht=\\E[I,
-        ich=\\E[%p1%d@, il=\\E[%p1%dL, indn=\\E[%p1%dS, .indn=\\E[%p1%dT,
-        kbs=^H, kcbt=\\E[Z, kcub1=\\E[D, kcud1=\\E[B,
-        kcuf1=\\E[C, kcuu1=\\E[A, kf1=\\E[M, kf10=\\E[V,
-        kf11=\\E[W, kf12=\\E[X, kf2=\\E[N, kf3=\\E[O, kf4=\\E[P,
-        kf5=\\E[Q, kf6=\\E[R, kf7=\\E[S, kf8=\\E[T, kf9=\\E[U,
-        kich1=\\E[L, mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S,
-        op=\\E[37;40m, rep=%p1%c\\E[%p2%{1}%\-%db,
-        rin=\\E[%p1%dT, s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B,
-        s3ds=\\E+B, setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
-        setb=\\E[4%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-        setf=\\E[3%?%p1%{1}%=%t4%e%p1%{3}%=%t6%e%p1%{4}%=%t1%e%p1%{6}%=%t3%e%p1%d%;m,
-        sgr=\\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p6%t;1%;%?%p7%t;8%;%?%p8%t;11%;%?%p9%t;12%;m,
-        sgr0=\\E[0;10m, tbc=\\E[2g, u6=\\E[%d;%dR, u7=\\E[6n,
-        u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%p1%dd,\s+2
-.in +2
+        am, mc5i, mir, msgr,
+        colors#8, cols#80, it#8, lines#24, ncv#3, pairs#64,
+        acsc=+\\020\\,\\021-\\030.^Y0\\333`\\004a\\261f\\370g\\361h\\260
+             j\\331k\\277l\\332m\\300n\\305o~p\\304q\\304r\\304s_t\\303
+             u\\264v\\301w\\302x\\263y\\363z\\362{\\343|\\330}\\234~\\376,
+        bel=^G, blink=\\E[5m, bold=\\E[1m, cbt=\\E[Z, clear=\\E[H\\E[J,
+        cr=^M, cub=\\E[%p1%dD, cub1=\\E[D, cud=\\E[%p1%dB, cud1=\\E[B,
+        cuf=\\E[%p1%dC, cuf1=\\E[C, cup=\\E[%i%p1%d;%p2%dH,
+        cuu=\\E[%p1%dA, cuu1=\\E[A, dch=\\E[%p1%dP, dch1=\\E[P,
+        dl=\\E[%p1%dM, dl1=\\E[M, ech=\\E[%p1%dX, ed=\\E[J, el=\\E[K,
+        el1=\\E[1K, home=\\E[H, hpa=\\E[%i%p1%dG, ht=\\E[I, hts=\\EH,
+        ich=\\E[%p1%d@, il=\\E[%p1%dL, il1=\\E[L, ind=^J,
+        indn=\\E[%p1%dS, invis=\\E[8m, kbs=^H, kcbt=\\E[Z, kcub1=\\E[D,
+        kcud1=\\E[B, kcuf1=\\E[C, kcuu1=\\E[A, khome=\\E[H, kich1=\\E[L,
+        mc4=\\E[4i, mc5=\\E[5i, nel=\\r\\E[S, op=\\E[39;49m,
+        rep=%p1%c\\E[%p2%{1}%-%db, rev=\\E[7m, rin=\\E[%p1%dT,
+        rmacs=\\E[10m, rmpch=\\E[10m, rmso=\\E[m, rmul=\\E[m,
+        s0ds=\\E(B, s1ds=\\E)B, s2ds=\\E*B, s3ds=\\E+B,
+        setab=\\E[4%p1%dm, setaf=\\E[3%p1%dm,
+        sgr=\\E[0;10%?%p1%t;7%;
+                   %?%p2%t;4%;
+                   %?%p3%t;7%;
+                   %?%p4%t;5%;
+                   %?%p6%t;1%;
+                   %?%p7%t;8%;
+                   %?%p9%t;11%;m,
+        sgr0=\\E[0;10m, smacs=\\E[11m, smpch=\\E[11m, smso=\\E[7m,
+        smul=\\E[4m, tbc=\\E[3g, u6=\\E[%i%d;%dR, u7=\\E[6n,
+        u8=\\E[?%[;0123456789]c, u9=\\E[c, vpa=\\E[%i%p1%dd,
 .fi
 .ft R
 .PP
@@ -106,15 +113,15 @@ ANSI-standard terminals have
 (i.e., an automatic return and line-feed
 when the end of a line is reached) is indicated by the capability \fBam\fR.
 Hence the description of ansi includes \fBam\fR.
-Numeric capabilities are followed by the character `#' and then a positive value.
+Numeric capabilities are followed by the character \*(``#\*('' and then a positive value.
 Thus \fBcols\fR, which indicates the number of columns the terminal has,
-gives the value `80' for ansi.
+gives the value \*(``80\*('' for ansi.
 Values for numeric capabilities may be specified in decimal, octal or hexadecimal,
 using the C programming language conventions (e.g., 255, 0377 and 0xff or 0xFF).
 .PP
 Finally, string valued capabilities, such as \fBel\fR (clear to end of line
-sequence) are given by the two-character code, an `=', and then a string
-ending at the next following `,'.
+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.
@@ -153,8 +160,8 @@ $<..> brackets, as in \fBel\fP=\eEK$<5>, and padding characters are supplied by
 .I tputs
 to provide this delay.
 The delay must be a number with at most one decimal
-place of precision; it may be followed by suffixes `*' or '/' or both.
-A `*'
+place of precision; it may be followed by suffixes \*(``*\*('' or \*(``/\*('' or both.
+A \*(``*\*(''
 indicates that the padding required is proportional to the number of lines
 affected by the operation, and the amount given is the per-affected-unit
 padding required.
@@ -163,7 +170,7 @@ number of
 .IR lines
 affected.)  Normally, padding is advisory if the device has the \fBxon\fR
 capability; it is used for cost computation but does not trigger delays.
-A `/'
+A \*(``/\*(''
 suffix indicates that the padding is mandatory and forces a delay of the given
 number of milliseconds even on devices for which \fBxon\fR is present to
 indicate flow control.
@@ -198,7 +205,7 @@ Next, if the environment variable TERMINFO_DIRS is set,
 as a list of colon-separated directories (or database files) to be searched.
 .IP
 An empty directory name (i.e., if the variable begins or ends
-with a colon, or contains adacent colons)
+with a colon, or contains adjacent colons)
 is interpreted as the system location \fI\*d\fR.
 .bP
 Finally, \fBncurses\fP searches these compiled-in locations:
@@ -226,7 +233,7 @@ or bugs in the screen-handling code of the test program.
 .PP
 To get the padding for insert line right (if the terminal manufacturer
 did not document it) a severe test is to edit a large file at 9600 baud,
-delete 16 or so lines from the middle of the screen, then hit the `u'
+delete 16 or so lines from the middle of the screen, then hit the \*(``u\*(''
 key several times quickly.
 If the terminal messes up, more padding is usually needed.
 A similar test can be used for insert character.
@@ -270,7 +277,7 @@ given as
 and
 .BR cud1 .
 These local cursor motions should not alter the text they pass over,
-for example, you would not normally use `\fBcuf1\fP=\ ' because the
+for example, you would not normally use \*(``\fBcuf1\fP=\ \*('' because the
 space would erase the character moved over.
 .PP
 A very important point here is that the local cursor motions encoded
@@ -347,9 +354,10 @@ Thus the model 33 teletype is described as
 .ft CW
 .\".in -2
 \s-133\||\|tty33\||\|tty\||\|model 33 teletype,
-       bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
+        bel=^G, cols#72, cr=^M, cud1=^J, hc, ind=^J, os,\s+1
 .\".in +2
 .ft R
+.fi
 .PP
 while the Lear Siegler \s-1ADM-3\s0 is described as
 .PP
@@ -358,8 +366,8 @@ while the Lear Siegler \s-1ADM-3\s0 is described as
 .ft CW
 .\".in -2
 \s-1adm3\||\|3\||\|lsi adm3,
-       am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
-       ind=^J, lines#24,\s+1
+        am, bel=^G, clear=^Z, cols#80, cr=^M, cub1=^H, cud1=^J,
+        ind=^J, lines#24,\s+1
 .\".in +2
 .ft R
 .fi
@@ -368,9 +376,8 @@ while the Lear Siegler \s-1ADM-3\s0 is described as
 .PP
 Cursor addressing and other strings requiring parameters
 in the terminal are described by a
-parameterized string capability, with
-.IR printf (3)
-like escapes \fB%x\fR in it.
+parameterized string capability,
+with \fIprintf\fP-like escapes such as \fI%x\fR in it.
 For example, to address the cursor, the
 .B cup
 capability is given, using two parameters:
@@ -393,34 +400,34 @@ e.g., in the \fBsgr\fP string.
 The \fB%\fR encodings have the following meanings:
 .PP
 .TP 5
-\s-1%%
-outputs `%'
+\fB%%\fP
+outputs \*(``%\*(''
 .TP
-%\fI[[\fP:\fI]flags][width[.precision]][\fPdoxXs\fI]\fP
-as in \fBprintf\fP, flags are [\-+#] and space.
-Use a `:' to allow the next character to be a `\-' flag,
+\fB%\fP\fI[[\fP:\fI]flags][width[.precision]][\fP\fBdoxXs\fP\fI]\fP
+as in \fBprintf\fP, flags are \fI[\-+#]\fP and \fIspace\fP.
+Use a \*(``:\*('' to allow the next character to be a \*(``\-\*('' flag,
 avoiding interpreting "%\-" as an operator.
 .TP
-%c
+\f(CW%c\fP
 print pop() like %c in \fBprintf\fP
 .TP
-%s
+\fB%s\fP
 print pop() like %s in \fBprintf\fP
 .TP
-%p[1\-9]
+\fB%p\fP\fI[1\-9]\fP
 push \fIi\fP'th parameter
 .TP
-%P[a\-z]
-set dynamic variable [a\-z] to pop()
+\fB%P\fP\fI[a\-z]\fP
+set dynamic variable \fI[a\-z]\fP to pop()
 .TP
-%g[a\-z]
-get dynamic variable [a\-z] and push it
+\fB%g\fP\fI[a\-z]/\fP
+get dynamic variable \fI[a\-z]\fP and push it
 .TP
-%P[A\-Z]
-set static variable [a\-z] to pop()
+\fB%P\fP\fI[A\-Z]\fP
+set static variable \fI[a\-z]\fP to \fIpop()\fP
 .TP
-%g[A\-Z]
-get static variable [a\-z] and push it
+\fB%g\fP\fI[A\-Z]\fP
+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,
@@ -428,43 +435,43 @@ whose values are not reset between calls to \fBtparm\fP.
 However, that fact is not documented in other implementations.
 Relying on it will adversely impact portability to other implementations.
 .TP
-%'\fIc\fP'
+\fB%'\fP\fIc\fP\fB'\fP
 char constant \fIc\fP
 .TP
-%{\fInn\fP}
+\fB%{\fP\fInn\fP\fB}\fP
 integer constant \fInn\fP
 .TP
-%l
+\fB%l\fP
 push strlen(pop)
 .TP
-%+ %\- %* %/ %m
-arithmetic (%m is mod): push(pop() op pop())
+\fB%+\fP, \fB%\-\fP, \fB%*\fP, \fB%/\fP, \fB%m\fP
+arithmetic (%m is mod): \fIpush(pop() op pop())\fP
 .TP
-%& %| %^
-bit operations (AND, OR and exclusive-OR): push(pop() op pop())
+\fB%&\fP, \fB%|\fP, \fB%^\fP
+bit operations (AND, OR and exclusive-OR): \fIpush(pop() op pop())\fP
 .TP
-%= %> %<
-logical operations: push(pop() op pop())
+\fB%=\fP, \fB%>\fP, \fB%<\fP
+logical operations: \fIpush(pop() op pop())\fP
 .TP
-%A, %O
+\fB%A\fP, \fB%O\fP
 logical AND and OR operations (for conditionals)
 .TP
-%! %~
+\fB%!\fP, \fB%~\fP
 unary operations (logical and bit complement): push(op pop())
 .TP
-%i
+\fB%i\fP
 add 1 to first two parameters (for ANSI terminals)
 .TP
-%? \fIexpr\fP %t \fIthenpart\fP %e \fIelsepart\fP %;
+\fB%?\fP \fIexpr\fP \fB%t\fP \fIthenpart\fP \fB%e\fP \fIelsepart\fP \fB%;\fP
 This forms an if-then-else.
-The %e \fIelsepart\fP is optional.
-Usually the %? \fIexpr\fP part pushes a value onto the stack,
-and %t pops it from the stack, testing if it is nonzero (true).
-If it is zero (false), control passes to the %e (else) part.
+The \fB%e\fP \fIelsepart\fP is optional.
+Usually the \fB%?\fP \fIexpr\fP part pushes a value onto the stack,
+and \fB%t\fP pops it from the stack, testing if it is nonzero (true).
+If it is zero (false), control passes to the \fB%e\fP (else) part.
 .IP
 It is possible to form else-if's a la Algol 68:
 .RS
-%? c\d1\u %t b\d1\u %e c\d2\u %t b\d2\u %e c\d3\u %t b\d3\u %e c\d4\u %t b\d4\u %e %;
+\fB%?\fP c\d1\u \fB%t\fP b\d1\u \fB%e\fP c\d2\u \fB%t\fP b\d2\u \fB%e\fP c\d3\u \fB%t\fP b\d3\u \fB%e\fP c\d4\u \fB%t\fP b\d4\u \fB%e\fP \fB%;\fP
 .RE
 .IP
 where c\di\u are conditions, b\di\u are bodies.
@@ -477,7 +484,7 @@ The \fB\-f\fP option splits the string into lines with the parts indented.
 .PP
 Binary operations are in postfix form with the operands in the usual order.
 That is, to get x\-5 one would use "%gx%{5}%-".
-%P and %g variables are
+\fB%P\fP and \fB%g\fP variables are
 persistent across escape-string evaluations.
 .PP
 Consider the HP2645, which, to get to row 3 and column 12, needs
@@ -501,7 +508,7 @@ This turns out to be essential for the Ann Arbor 4080.)
 .PP
 A final example is the \s-1LSI ADM\s0-3a, which uses row and column
 offset by a blank character, thus \*(lqcup=\eE=%p1%' '%+%c%p2%' '%+%c\*(rq.
-After sending `\eE=', this pushes the first parameter, pushes the
+After sending \*(``\eE=\*('', this pushes the first parameter, pushes the
 ASCII value for a space (32), adds them (pushing the sum on the stack
 in place of the two previous values) and outputs that value as a character.
 Then the same is done for the second parameter.
@@ -716,7 +723,7 @@ If post insert padding is needed, give this as a number of milliseconds
 in \fBip\fR (a string option).
 Any other sequence which may need to be
 sent after an insert of a single character may also be given in \fBip\fR.
-If your terminal needs both to be placed into an `insert mode' and
+If your terminal needs both to be placed into an \*(``insert mode\*('' and
 a special code to precede each inserted character, then both
 .BR smir / rmir
 and
@@ -866,6 +873,7 @@ either standout or reverse modes are turned on.
 .PP
 Writing out the above sequences, along with their dependencies yields
 .PP
+.ne 11
 .TS
 center;
 l l l
@@ -873,6 +881,7 @@ l l l
 lw18 lw14 lw18.
 \fBsequence    when to output  terminfo translation\fP
 
+.ft CW
 \\E[0  always  \\E[0
 ;1     if p1 or p6     %?%p1%p6%|%t;1%;
 ;4     if p2   %?%p2%|%t;4%;
@@ -881,14 +890,17 @@ lw18 lw14 lw18.
 ;8     if p7   %?%p7%|%t;8%;
 m      always  m
 ^N or ^O       if p9 ^N, else ^O       %?%p9%t^N%e^O%;
+.ft R
 .TE
 .PP
 Putting this all together into the sgr sequence gives:
 .PP
+.ft CW
 .nf
-    sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;
-        %?%p4%t;5%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
+    sgr=\\E[0%?%p1%p6%|%t;1%;%?%p2%t;4%;%?%p4%t;5%;
+        %?%p1%p3%|%t;7%;%?%p7%t;8%;m%?%p9%t\\016%e\\017%;,
 .fi
+.ft R
 .PP
 Remember that if you specify sgr, you must also specify sgr0.
 Also, some implementations rely on sgr being given if sgr0 is,
@@ -1225,7 +1237,7 @@ Only the first character of the
 string is used.
 .PP
 .SS Status Lines
-Some terminals have an extra `status line' which is not normally used by
+Some terminals have an extra \*(``status line\*('' which is not normally used by
 software (and thus not counted in the terminal's \fBlines\fR capability).
 .PP
 The simplest case is a status line which is cursor-addressable but not
@@ -1317,7 +1329,7 @@ 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'.
+Most color terminals are either \*(``Tektronix-like\*('' or \*(``HP-like\*(''.
 Tektronix-like
 terminals have a predefined set of N colors (where N usually 8), and can set
 character-cell foreground and background characters independently, mixing them
@@ -1434,18 +1446,25 @@ attributes understood by \fBcurses\fR is as follows:
 .PP
 .TS
 center;
-l c c
-lw25 lw2 lw10.
-\fBAttribute   Bit     Decimal\fR
-A_STANDOUT     0       1
-A_UNDERLINE    1       2
-A_REVERSE      2       4
-A_BLINK        3       8
-A_DIM          4       16
-A_BOLD         5       32
-A_INVIS        6       64
-A_PROTECT      7       128
-A_ALTCHARSET   8       256
+l l l l
+lw20 lw2 lw10 lw10.
+\fBAttribute   Bit     Decimal Set by\fR
+A_STANDOUT     0       1       sgr
+A_UNDERLINE    1       2       sgr
+A_REVERSE      2       4       sgr
+A_BLINK        3       8       sgr
+A_DIM          4       16      sgr
+A_BOLD         5       32      sgr
+A_INVIS        6       64      sgr
+A_PROTECT      7       128     sgr
+A_ALTCHARSET   8       256     sgr
+A_HORIZONTAL   9       512     sgr1
+A_LEFT 10      1024    sgr1
+A_LOW  11      2048    sgr1
+A_RIGHT        12      4096    sgr1
+A_TOP  13      8192    sgr1
+A_VERTICAL     14      16384   sgr1
+A_ITALIC       15      32768   sitm
 .TE
 .PP
 For example, on many IBM PC consoles, the underline attribute collides with the
@@ -1484,7 +1503,7 @@ this can be indicated with the parameterized string
 .BR rep .
 The first parameter is the character to be repeated and the second
 is the number of times to repeat it.
-Thus, tparm(repeat_char, 'x', 10) is the same as `xxxxxxxxxx'.
+Thus, tparm(repeat_char, 'x', 10) is the same as \*(``xxxxxxxxxx\*(''.
 .PP
 If the terminal has a settable command character, such as the \s-1TEKTRONIX\s+1 4025,
 this can be indicated with
@@ -1565,7 +1584,7 @@ is in effect.
 .PP
 .SS Glitches and Braindamage
 .PP
-Hazeltine terminals, which do not allow `~' characters to be displayed should
+Hazeltine terminals, which do not allow \*(``~\*('' characters to be displayed should
 indicate \fBhz\fR.
 .PP
 Terminals which ignore a line-feed immediately after an \fBam\fR wrap,
@@ -1580,7 +1599,7 @@ is required to get rid of standout
 .PP
 Teleray terminals, where tabs turn all characters moved over to blanks,
 should indicate \fBxt\fR (destructive tabs).
-Note: the variable indicating this is now `dest_tabs_magic_smso'; in
+Note: the variable indicating this is now \*(``dest_tabs_magic_smso\*(''; in
 older versions, it was teleray_glitch.
 This glitch is also taken to mean that it is not possible to position
 the cursor on top of a \*(``magic cookie\*('',
@@ -1594,7 +1613,7 @@ or control C characters, has
 indicating that the f1 key is used for escape and f2 for control C.
 (Only certain Superbees have this problem, depending on the ROM.)
 Note that in older terminfo versions, this capability was called
-`beehive_glitch'; it is now `no_esc_ctl_c'.
+\*(``beehive_glitch\*(''; it is now \*(``no_esc_ctl_c\*(''.
 .PP
 Other specific terminal problems may be corrected by adding more
 capabilities of the form \fBx\fR\fIx\fR.
@@ -1750,6 +1769,15 @@ The \fBncurses\fR 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.
+Portable applications must assume that numeric capabilities are
+signed 16-bit values.
+This includes the \fIno_color_video\fP (ncv) capability.
+The 32768 mask value used for italics with ncv can be confused with
+an absent or cancelled ncv.
+If italics should work with colors,
+then the ncv value must be specified, even if it is zero.
+.PP
 Different commercial ports of terminfo and curses support different subsets of
 the XSI Curses standard and (in some cases) different extension sets.
 Here