* sale, use or other dealings in this Software without prior written *
* authorization. *
****************************************************************************
- * @Id: tput.1,v 1.52 2017/01/21 17:38:30 tom Exp @
+ * @Id: tput.1,v 1.54 2017/01/29 00:51:08 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
</PRE><H3><a name="h3-Commands">Commands</a></H3><PRE>
+ A few commands (<STRONG>init</STRONG>, <STRONG>reset</STRONG> and <STRONG>longname</STRONG>) are special;
+ they are defined by the <STRONG>tput</STRONG> program. The others are the
+ names of <EM>capabilities</EM> from the terminal database (see <STRONG>ter-</STRONG>
+ <STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG> for a list). Although <STRONG>init</STRONG> and <STRONG>reset</STRONG> resemble
+ capability names, <STRONG>tput</STRONG> uses several capabilities to per-
+ form these special functions.
+
<EM>capname</EM>
- indicates the capability from the terminal data-
+ indicates the capability from the terminal data-
base.
- If the capability is a string that takes parame-
- ters, the arguments following the capability will
+ If the capability is a string that takes parame-
+ ters, the arguments following the capability will
be used as parameters for the string.
- Most parameters are numbers. Only a few terminal
+ Most parameters are numbers. Only a few terminal
capabilities require string parameters; <STRONG>tput</STRONG> uses a
table to decide which to pass as strings. Normally
- <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the substitution.
+ <STRONG>tput</STRONG> uses <STRONG><A HREF="curs_terminfo.3x.html">tparm(3x)</A></STRONG> to perform the substitution.
If no parameters are given for the capability, <STRONG>tput</STRONG>
- writes the string without performing the substitu-
+ writes the string without performing the substitu-
tion.
- <STRONG>init</STRONG> If the terminal database is present and an entry
+ <STRONG>init</STRONG> If the terminal database is present and an entry
for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM>, above),
the following will occur:
- (1) first, <STRONG>tput</STRONG> retrieves the current terminal
+ (1) first, <STRONG>tput</STRONG> retrieves the current terminal
mode settings for your terminal. It does this
by successively testing
(3) the terminal modes will be updated:
- <STRONG>o</STRONG> any delays (e.g., newline) specified in
+ <STRONG>o</STRONG> any delays (e.g., newline) specified in
the entry will be set in the tty driver,
- <STRONG>o</STRONG> tabs expansion will be turned on or off
+ <STRONG>o</STRONG> tabs expansion will be turned on or off
according to the specification in the
entry, and
- <STRONG>o</STRONG> if tabs are not expanded, standard tabs
+ <STRONG>o</STRONG> if tabs are not expanded, standard tabs
will be set (every 8 spaces).
- (4) if present, the terminal's initialization
+ (4) if present, the terminal's initialization
strings will be output as detailed in the <STRONG>ter-</STRONG>
<STRONG><A HREF="terminfo.5.html">minfo(5)</A></STRONG> section on <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>,
(5) output is flushed.
If an entry does not contain the information needed
- for any of these activities, that activity will
+ for any of these activities, that activity will
silently be skipped.
<STRONG>reset</STRONG> This is similar to <STRONG>init</STRONG>, with two differences:
- (1) before any other initialization, the terminal
+ (1) before any other initialization, the terminal
modes will be reset to a "sane" state:
<STRONG>o</STRONG> set cooked and echo modes,
(2) Instead of putting out <EM>initialization</EM> strings,
the terminal's <EM>reset</EM> strings will be output if
- present (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM>
- strings are not present, but <EM>initialization</EM>
- strings are, the <EM>initialization</EM> strings will
+ present (<STRONG>rs1</STRONG>, <STRONG>rs2</STRONG>, <STRONG>rs3</STRONG>, <STRONG>rf</STRONG>). If the <EM>reset</EM>
+ strings are not present, but <EM>initialization</EM>
+ strings are, the <EM>initialization</EM> strings will
be output.
Otherwise, <STRONG>reset</STRONG> acts identically to <STRONG>init</STRONG>.
<STRONG>longname</STRONG>
- If the terminal database is present and an entry
- for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
+ If the terminal database is present and an entry
+ for the user's terminal exists (see <STRONG>-T</STRONG><EM>type</EM> above),
then the long name of the terminal will be put out.
The long name is the last name in the first line of
the terminal's description in the <STRONG>terminfo</STRONG> database
it allows for the possibility that it is invoked by a link
with those names.
- If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
- same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. The <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility also
+ If <STRONG>tput</STRONG> is invoked by a link named <STRONG>reset</STRONG>, this has the
+ same effect as <STRONG>tput</STRONG> <STRONG>reset</STRONG>. The <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> utility also
treats a link named <STRONG>reset</STRONG> specially.
- Before ncurses 6.1, the two utilities were different from
+ Before ncurses 6.1, the two utilities were different from
each other:
- <STRONG>o</STRONG> <STRONG>tset</STRONG> utility reset the terminal modes and special
+ <STRONG>o</STRONG> <STRONG>tset</STRONG> utility reset the terminal modes and special
characters (not done with <STRONG>tput</STRONG>).
<STRONG>o</STRONG> On the other hand, <STRONG>tset</STRONG>'s repertoire of terminal capa-
- bilities for resetting the terminal was more limited,
+ bilities for resetting the terminal was more limited,
i.e., only <STRONG>reset_1string</STRONG>, <STRONG>reset_2string</STRONG> and <STRONG>reset_file</STRONG>
in contrast to the tab-stops and margins which are set
by this utility.
- <STRONG>o</STRONG> The <STRONG>reset</STRONG> program is usually an alias for <STRONG>tset</STRONG>,
- because of this difference with resetting terminal
+ <STRONG>o</STRONG> The <STRONG>reset</STRONG> program is usually an alias for <STRONG>tset</STRONG>,
+ because of this difference with resetting terminal
modes and special characters.
- With the changes made for ncurses 6.1, the <EM>reset</EM> feature
- of the two programs is (mostly) the same. A few differ-
+ With the changes made for ncurses 6.1, the <EM>reset</EM> feature
+ of the two programs is (mostly) the same. A few differ-
ences remain:
- <STRONG>o</STRONG> The <STRONG>tset</STRONG> program waits one second when resetting, in
+ <STRONG>o</STRONG> The <STRONG>tset</STRONG> program waits one second when resetting, in
case it happens to be a hardware terminal.
- <STRONG>o</STRONG> The two programs write the terminal initialization
- strings to different streams (i.e.,. the standard
+ <STRONG>o</STRONG> The two programs write the terminal initialization
+ strings to different streams (i.e.,. the standard
error for <STRONG>tset</STRONG> and the standard output for <STRONG>tput</STRONG>).
<STRONG>Note:</STRONG> although these programs write to different
- streams, redirecting their output to a file will cap-
- ture only part of their actions. The changes to the
- terminal modes are not affected by redirecting the
+ streams, redirecting their output to a file will cap-
+ ture only part of their actions. The changes to the
+ terminal modes are not affected by redirecting the
output.
If <STRONG>tput</STRONG> is invoked by a link named <STRONG>init</STRONG>, this has the same
- effect as <STRONG>tput</STRONG> <STRONG>init</STRONG>. Again, you are less likely to use
- that link because another program named <STRONG>init</STRONG> has a more
+ effect as <STRONG>tput</STRONG> <STRONG>init</STRONG>. Again, you are less likely to use
+ that link because another program named <STRONG>init</STRONG> has a more
well-established use.
</PRE><H2><a name="h2-EXAMPLES">EXAMPLES</a></H2><PRE>
<STRONG>tput</STRONG> <STRONG>init</STRONG>
Initialize the terminal according to the type of ter-
- minal in the environmental variable <STRONG>TERM</STRONG>. This com-
- mand should be included in everyone's .profile after
+ minal in the environmental variable <STRONG>TERM</STRONG>. This com-
+ mand should be included in everyone's .profile after
the environmental variable <STRONG>TERM</STRONG> has been exported, as
illustrated on the <STRONG>profile(5)</STRONG> manual page.
<STRONG>tput</STRONG> <STRONG>-T5620</STRONG> <STRONG>reset</STRONG>
- Reset an AT&T 5620 terminal, overriding the type of
+ Reset an AT&T 5620 terminal, overriding the type of
terminal in the environmental variable <STRONG>TERM</STRONG>.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>0</STRONG> <STRONG>0</STRONG>
<STRONG>bold=`tput</STRONG> <STRONG>smso`</STRONG> <STRONG>offbold=`tput</STRONG> <STRONG>rmso`</STRONG>
Set the shell variables <STRONG>bold</STRONG>, to begin stand-out mode
sequence, and <STRONG>offbold</STRONG>, to end standout mode sequence,
- for the current terminal. This might be followed by
- a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG>
+ for the current terminal. This might be followed by
+ a prompt: <STRONG>echo</STRONG> <STRONG>"${bold}Please</STRONG> <STRONG>type</STRONG> <STRONG>in</STRONG> <STRONG>your</STRONG> <STRONG>name:</STRONG>
<STRONG>${offbold}\c"</STRONG>
<STRONG>tput</STRONG> <STRONG>hc</STRONG>
- Set exit code to indicate if the current terminal is
+ Set exit code to indicate if the current terminal is
a hard copy terminal.
<STRONG>tput</STRONG> <STRONG>cup</STRONG> <STRONG>23</STRONG> <STRONG>4</STRONG>
- Send the sequence to move the cursor to row 23, col-
+ Send the sequence to move the cursor to row 23, col-
umn 4.
<STRONG>tput</STRONG> <STRONG>cup</STRONG>
parameters substituted.
<STRONG>tput</STRONG> <STRONG>longname</STRONG>
- Print the long name from the <STRONG>terminfo</STRONG> database for
- the type of terminal specified in the environmental
+ Print the long name from the <STRONG>terminfo</STRONG> database for
+ the type of terminal specified in the environmental
variable <STRONG>TERM</STRONG>.
<STRONG>tput</STRONG> <STRONG>-S</STRONG> <STRONG><<!</STRONG>
<STRONG>></STRONG> <STRONG>bold</STRONG>
<STRONG>></STRONG> <STRONG>!</STRONG>
- This example shows <STRONG>tput</STRONG> processing several capabili-
- ties in one invocation. It clears the screen, moves
- the cursor to position 10, 10 and turns on bold
- (extra bright) mode. The list is terminated by an
+ This example shows <STRONG>tput</STRONG> processing several capabili-
+ ties in one invocation. It clears the screen, moves
+ the cursor to position 10, 10 and turns on bold
+ (extra bright) mode. The list is terminated by an
exclamation mark (<STRONG>!</STRONG>) on a line by itself.
<STRONG>/usr/share/tabset/*</STRONG>
tab settings for some terminals, in a format appro-
- priate to be output to the terminal (escape
- sequences that set margins and tabs); for more
- information, see the <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>, sec-
+ priate to be output to the terminal (escape
+ sequences that set margins and tabs); for more
+ information, see the <EM>Tabs</EM> <EM>and</EM> <EM>Initialization</EM>, sec-
tion of <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>
</PRE><H2><a name="h2-EXIT-CODES">EXIT CODES</a></H2><PRE>
If the <STRONG>-S</STRONG> option is used, <STRONG>tput</STRONG> checks for errors from each
- line, and if any errors are found, will set the exit code
- to 4 plus the number of lines with errors. If no errors
- are found, the exit code is <STRONG>0</STRONG>. No indication of which
+ line, and if any errors are found, will set the exit code
+ to 4 plus the number of lines with errors. If no errors
+ are found, the exit code is <STRONG>0</STRONG>. No indication of which
line failed can be given so exit code <STRONG>1</STRONG> will never appear.
- Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
+ Exit codes <STRONG>2</STRONG>, <STRONG>3</STRONG>, and <STRONG>4</STRONG> retain their usual interpretation.
If the <STRONG>-S</STRONG> option is not used, the exit code depends on the
type of <EM>capname</EM>:
<EM>boolean</EM>
a value of <STRONG>0</STRONG> is set for TRUE and <STRONG>1</STRONG> for FALSE.
- <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
- for this terminal <EM>type</EM> (the value of <EM>capname</EM> is
- returned on standard output); a value of <STRONG>1</STRONG> is
- set if <EM>capname</EM> is not defined for this terminal
+ <EM>string</EM> a value of <STRONG>0</STRONG> is set if the <EM>capname</EM> is defined
+ for this terminal <EM>type</EM> (the value of <EM>capname</EM> is
+ returned on standard output); a value of <STRONG>1</STRONG> is
+ set if <EM>capname</EM> is not defined for this terminal
<EM>type</EM> (nothing is written to standard output).
<EM>integer</EM>
- a value of <STRONG>0</STRONG> is always set, whether or not <EM>cap-</EM>
- <EM>name</EM> is defined for this terminal <EM>type</EM>. To
- determine if <EM>capname</EM> is defined for this termi-
- nal <EM>type</EM>, the user must test the value written
- to standard output. A value of <STRONG>-1</STRONG> means that
+ a value of <STRONG>0</STRONG> is always set, whether or not <EM>cap-</EM>
+ <EM>name</EM> is defined for this terminal <EM>type</EM>. To
+ determine if <EM>capname</EM> is defined for this termi-
+ nal <EM>type</EM>, the user must test the value written
+ to standard output. A value of <STRONG>-1</STRONG> means that
<EM>capname</EM> is not defined for this terminal <EM>type</EM>.
- <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respective
- files. In that case, the exit code is set to 4
+ <EM>other</EM> <STRONG>reset</STRONG> or <STRONG>init</STRONG> may fail to find their respective
+ files. In that case, the exit code is set to 4
+ <STRONG>errno</STRONG>.
- Any other exit code indicates an error; see the DIAGNOS-
+ Any other exit code indicates an error; see the DIAGNOS-
TICS section.
exit code error message
---------------------------------------------------------------------
- <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
- the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
+ <STRONG>0</STRONG> (<EM>capname</EM> is a numeric variable that is not specified in
+ the <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG> database for this terminal type, e.g.
<STRONG>tput</STRONG> <STRONG>-T450</STRONG> <STRONG>lines</STRONG> and <STRONG>tput</STRONG> <STRONG>-T2621</STRONG> <STRONG>xmc</STRONG>)
<STRONG>1</STRONG> no error message is printed, see the <STRONG>EXIT</STRONG> <STRONG>CODES</STRONG> section.
<STRONG>2</STRONG> usage error
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The ini-
+ The <STRONG>tput</STRONG> command was begun by Bill Joy in 1980. The ini-
tial version only cleared the screen.
- AT&T System V provided a different <STRONG>tput</STRONG> command, whose
- <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program)
+ AT&T System V provided a different <STRONG>tput</STRONG> command, whose
+ <STRONG>init</STRONG> and <STRONG>reset</STRONG> subcommands (more than half the program)
were incorporated from the <STRONG>reset</STRONG> feature of BSD <STRONG>tset</STRONG> writ-
ten by Eric Allman.
- Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a
- new implementation based on the AT&T System V program
- <STRONG>tput</STRONG>. Like the AT&T program, Bostic's version accepted
- some parameters named for <EM>terminfo</EM> <EM>capabilities</EM> (<STRONG>clear</STRONG>,
- <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he had only
- termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
- capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the
+ Keith Bostic replaced the BSD <STRONG>tput</STRONG> command in 1989 with a
+ new implementation based on the AT&T System V program
+ <STRONG>tput</STRONG>. Like the AT&T program, Bostic's version accepted
+ some parameters named for <EM>terminfo</EM> <EM>capabilities</EM> (<STRONG>clear</STRONG>,
+ <STRONG>init</STRONG>, <STRONG>longname</STRONG> and <STRONG>reset</STRONG>). However (because he had only
+ termcap available), it accepted <EM>termcap</EM> <EM>names</EM> for other
+ capabilities. Also, Bostic's BSD <STRONG>tput</STRONG> did not modify the
terminal I/O modes as the earlier BSD <STRONG>tset</STRONG> had done.
- At the same time, Bostic added a shell script named
+ At the same time, Bostic added a shell script named
"clear", which used <STRONG>tput</STRONG> to clear the screen.
- Both of these appeared in 4.4BSD, becoming the "modern"
+ Both of these appeared in 4.4BSD, becoming the "modern"
BSD implementation of <STRONG>tput</STRONG>.
+ This implementation of <STRONG>tput</STRONG> began from a different source
+ than AT&T or BSD: Ross Ridge's <EM>mytinfo</EM> package, published
+ on <EM>comp.sources.unix</EM> in December 1992. Ridge's program
+ made more sophisticated use of the terminal capabilities
+ than the BSD program. Eric Raymond used the <STRONG>tput</STRONG> program
+ (and other parts of <EM>mytinfo</EM>) in ncurses in June 1995.
+ Using the portions dealing with terminal capabilities
+ almost without change, Raymond made improvements to the
+ way the command-line parameters were handled.
+
</PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
- This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two
+ This implementation of <STRONG>tput</STRONG> differs from AT&T <STRONG>tput</STRONG> in two
important areas:
<STRONG>o</STRONG> <STRONG>tput</STRONG> <EM>capname</EM> writes to the standard output. That need
- not be a regular terminal. However, the subcommands
- which manipulate terminal modes may not use the stan-
+ not be a regular terminal. However, the subcommands
+ which manipulate terminal modes may not use the stan-
dard output.
- The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use
+ The AT&T implementation's <STRONG>init</STRONG> and <STRONG>reset</STRONG> commands use
the BSD (4.1c) <STRONG>tset</STRONG> source, which manipulates terminal
- modes. It successively tries standard output, stan-
- dard error, standard input before falling back to
+ modes. It successively tries standard output, stan-
+ dard error, standard input before falling back to
"/dev/tty" and finally just assumes a 1200Bd terminal.
When updating terminal modes, it ignores errors.
- Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not
+ Until changes made after ncurses 6.0, <STRONG>tput</STRONG> did not
modify terminal modes. <STRONG>tput</STRONG> now uses a similar
- scheme, using functions shared with <STRONG>tset</STRONG> (and ulti-
- mately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
- to open a terminal, e.g., when running in <STRONG>cron</STRONG>, <STRONG>tput</STRONG>
+ scheme, using functions shared with <STRONG>tset</STRONG> (and ulti-
+ mately based on the 4.4BSD <STRONG>tset</STRONG>). If it is not able
+ to open a terminal, e.g., when running in <STRONG>cron</STRONG>, <STRONG>tput</STRONG>
will return an error.
- <STRONG>o</STRONG> AT&T <STRONG>tput</STRONG> guesses the type of its <EM>capname</EM> operands by
+ <STRONG>o</STRONG> AT&T <STRONG>tput</STRONG> guesses the type of its <EM>capname</EM> operands by
seeing if all of the characters are numeric, or not.
Most implementations which provide support for <EM>capname</EM>
- operands use the <EM>tparm</EM> function to expand parameters
+ operands use the <EM>tparm</EM> function to expand parameters
in it. That function expects a mixture of numeric and
- string parameters, requiring <STRONG>tput</STRONG> to know which type
+ string parameters, requiring <STRONG>tput</STRONG> to know which type
to use.
- This implementation uses a table to determine the
+ This implementation uses a table to determine the
parameter types for the standard <EM>capname</EM> operands, and
- an internal library function to analyze nonstandard
+ an internal library function to analyze nonstandard
<EM>capname</EM> operands.
- This implementation (unlike others) can accept both <EM>term-</EM>
+ This implementation (unlike others) can accept both <EM>term-</EM>
<EM>cap</EM> and <EM>terminfo</EM> names for the <EM>capname</EM> feature, if <EM>termcap</EM>
- support is compiled in. However, the predefined <EM>termcap</EM>
- and <EM>terminfo</EM> names have two ambiguities in this case (and
+ support is compiled in. However, the predefined <EM>termcap</EM>
+ and <EM>terminfo</EM> names have two ambiguities in this case (and
the <EM>terminfo</EM> name is assumed):
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>dl</STRONG> corresponds to the <EM>terminfo</EM> name
<STRONG>dl1</STRONG> (delete one line).
- The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name
+ The <EM>terminfo</EM> name <STRONG>dl</STRONG> corresponds to the <EM>termcap</EM> name
<STRONG>DL</STRONG> (delete a given number of lines).
- <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name
+ <STRONG>o</STRONG> The <EM>termcap</EM> name <STRONG>ed</STRONG> corresponds to the <EM>terminfo</EM> name
<STRONG>rmdc</STRONG> (end delete mode).
- The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name
+ The <EM>terminfo</EM> name <STRONG>ed</STRONG> corresponds to the <EM>termcap</EM> name
<STRONG>cd</STRONG> (clear to end of screen).
- The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
- tion features used in the <STRONG>cup</STRONG> example, were not supported
- in BSD curses before 4.3reno (1989) or in AT&T/USL curses
+ The <STRONG>longname</STRONG> and <STRONG>-S</STRONG> options, and the parameter-substitu-
+ tion features used in the <STRONG>cup</STRONG> example, were not supported
+ in BSD curses before 4.3reno (1989) or in AT&T/USL curses
before SVr4 (1988).
- IEEE Std 1003.1/The Open Group Base Specifications Issue
- 7 (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>,
- <STRONG>init</STRONG> and <STRONG>reset</STRONG>. There are a few interesting observations
+ IEEE Std 1003.1/The Open Group Base Specifications Issue
+ 7 (POSIX.1-2008) documents only the operands for <STRONG>clear</STRONG>,
+ <STRONG>init</STRONG> and <STRONG>reset</STRONG>. There are a few interesting observations
to make regarding that:
- <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM>
+ <STRONG>o</STRONG> In this implementation, <STRONG>clear</STRONG> is part of the <EM>capname</EM>
support. The others (<STRONG>init</STRONG> and <STRONG>longname</STRONG>) do not corre-
spond to terminal capabilities.
- <STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems
- such as Solaris, IRIX64 and HPUX as well as others
- such as AIX and Tru64 provide support for <EM>capname</EM> op-
+ <STRONG>o</STRONG> Other implementations of <STRONG>tput</STRONG> on SVr4-based systems
+ such as Solaris, IRIX64 and HPUX as well as others
+ such as AIX and Tru64 provide support for <EM>capname</EM> op-
erands.
- <STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap
- names rather than terminfo capability names in their
- respective <STRONG>tput</STRONG> commands. Since 2010, NetBSD's <STRONG>tput</STRONG>
- uses terminfo names. Before that, it (like FreeBSD)
+ <STRONG>o</STRONG> A few platforms such as FreeBSD recognize termcap
+ names rather than terminfo capability names in their
+ respective <STRONG>tput</STRONG> commands. Since 2010, NetBSD's <STRONG>tput</STRONG>
+ uses terminfo names. Before that, it (like FreeBSD)
recognized termcap names.
- Because (apparently) <EM>all</EM> of the certified Unix systems
- support the full set of capability names, the reasoning
+ Because (apparently) <EM>all</EM> of the certified Unix systems
+ support the full set of capability names, the reasoning
for documenting only a few may not be apparent.
<STRONG>o</STRONG> X/Open Curses Issue 7 documents <STRONG>tput</STRONG> differently, with
- <EM>capname</EM> and the other features used in this implemen-
+ <EM>capname</EM> and the other features used in this implemen-
tation.
- <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a
- subset) and X/Open Curses (the full implementation).
- POSIX documents a subset to avoid the complication of
- including X/Open Curses and the terminal capabilities
+ <STRONG>o</STRONG> That is, there are two standards for <STRONG>tput</STRONG>: POSIX (a
+ subset) and X/Open Curses (the full implementation).
+ POSIX documents a subset to avoid the complication of
+ including X/Open Curses and the terminal capabilities
database.
<STRONG>o</STRONG> While it is certainly possible to write a <STRONG>tput</STRONG> program
without using curses, none of the systems which have a
- curses implementation provide a <STRONG>tput</STRONG> utility which
+ curses implementation provide a <STRONG>tput</STRONG> utility which
does not provide the <EM>capname</EM> feature.
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
- <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
+ <STRONG><A HREF="clear.1.html">clear(1)</A></STRONG>, <STRONG>stty(1)</STRONG>, <STRONG><A HREF="tabs.1.html">tabs(1)</A></STRONG>, <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>, <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>,
<STRONG><A HREF="curs_termcap.3x.html">curs_termcap(3x)</A></STRONG>.
- This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20170121).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20170128).
# Report bugs and new terminal descriptions to
# bug-ncurses@gnu.org
#
-# $Revision: 1.581 $
-# $Date: 2016/12/31 22:04:20 $
+# $Revision: 1.586 $
+# $Date: 2017/01/28 23:50:28 $
#
# The original header is preserved below for reference. It is noted that there
# is a "newer" version which differs in some cosmetic details (but actually
khome=\EOH,
#
# The "PC-style" modifier scheme was introduced in xterm patch #94 (1999/3/27)
-# and revised in patch #167 (2002/8/24). Some other terminal emulators copied
-# the earlier scheme, as noted in the "use=" clauses in this file.
+# and revised in xterm patch #167 (2002/8/24). Some other terminal emulators
+# copied the earlier scheme, as noted in the "use=" clauses in this file.
#
# The original assignments from patch #94 for cursor-keys had some technical
# issues:
xterm-xi|xterm on XI Graphics Accelerated X under BSD/OS 3.1,
rmso=\E[m, rmul=\E[m, use=xterm-xf86-v33,
-# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0 (T.Dickey)
+# 16-colors is one of the variants of XFree86 3.3 xterm, updated for 4.0
+# (T.Dickey)
+#
# If configured to support 88- or 256-colors (which is fairly common in 2009),
# xterm also recognizes the control sequences for initc -TD
xterm-16color|xterm with 16 colors like aixterm,
use=xterm-new,
# 256-colors is a compile-time feature of XFree86 xterm beginning with
-# patch #111 (1999/7/10) -TD
+# xterm patch #111 (1999/7/10) -TD
xterm+256color|xterm 256-color feature,
ccc,
colors#256, pairs#32767,
setb@, setf@,
# 88-colors is a compile-time feature of XFree86 xterm beginning with
-# patch #115 (1999/9/18) -TD
+# xterm patch #115 (1999/9/18) -TD
#
# Note that the escape sequences used are the same as for 256-colors - xterm
# has a different table of default color resource values. If built for
# dates, nor give developer's names. Initial color support was added for rxvt
# "2.0", which was sometime in 1994.
#
-# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my work on
-# vttest, as well as bug reports to Mark Olesen. For instance, the fix
+# rxvt had usable color support with 2.16 (April 2, 1996), with some help by my
+# work on vttest, as well as bug reports to Mark Olesen. For instance, the fix
# mentioned here
# http://web.archiveorange.com/archive/v/6ETvLb5wHtbbzCaS4S9J
# was from one of my bug-reports -TD
# a line.
# b) has xterm-style shifted function-key strings
# meta also is used, but control is ignored.
-# c) has xterm-style modifiers for cursor keys (shift, control, shift+control, meta)
+# c) has xterm-style modifiers for cursor keys (shift, control, shift+control,
+# meta)
# d) some combinations of shift/control send xterm-style sequences for
# insert/delete/home/end.
# e) numeric keypad sends only numbers (compare with vttest).
#### Emacs
+# https://www.emacswiki.org/emacs/AnsiTerm
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/term.el
+#
# The codes supported by the term.el terminal emulation in GNU Emacs 19.30
eterm|gnu emacs term.el terminal emulation,
am, mir, xenl,
sgr0=\E[m, smir=\E[4h, smso=\E[7m, smul=\E[4m,
u6=\E[%i%d;%dR, u7=\E[6n,
+# shell.el can "do" color, though not nearly as well.
+#
+# seen here:
+# http://unix.stackexchange.com/questions/237943/changing-colors-used-by-ls-does-not-work-in-emacs-shell-mode
+#
+# and
+# https://lists.gnu.org/archive/html/bug-gnu-emacs/2012-08/msg00481.html
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/shell.el
+# https://github.com/emacs-mirror/emacs/blob/master/lisp/ansi-color.el
+#
+# however, as tested with Emacs 24.5.1, the result is buggy, losing overlays
+# frequently. The contemporaneous term.el aka ansi-term does not "support"
+# italics but does not lose the color information -TD 2017/01/28.
+dumb-emacs-ansi|Emacs dumb terminal with ANSI color codes,
+ am, hc,
+ colors#8, it#8, ncv#13, pairs#64,
+ bold=\E[1m, cud1=^J, ht=^I, ind=^J, op=\E[39;49m,
+ ritm=\E[23m, rmul=\E[24m, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm, sgr0=\E[m, sitm=\E[3m, smul=\E[4m,
+
#### Screen
# Entries for use by the `screen' program by Juergen Weigert,
sc=\E7, sgr0=\E[m, smir=\E[4h, smkx=\E=, smso=\E[3m,
smul=\E[4m, tbc=\E[3g,
+#### Tmux
+
# tmux is compatible with screen, but has support for italics, and some of the
# xterm cursor bits.
tmux|tmux terminal multiplexer,
- ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m, Ms@,
- use=xterm+sl, use=xterm+tmux, use=screen,
+ ritm=\E[23m, rmso=\E[27m, sitm=\E[3m, smso=\E[7m,
+ use=xterm+edit, use=xterm+pcfkeys, use=xterm+sl,
+ use=xterm+tmux, use=screen,
tmux-256color|tmux with 256 colors,
use=xterm+256setaf, use=tmux,
+#### Dvtm
+
+# dvtwm 0.15
+# http://www.brain-dump.org/projects/dvtm/
+#
+# + This uses ncurses to manage the display, including support for italics and
+# default-colors.
+# + However, default-colors are incomplete: do not set bce.
+# + It does not implement flash (since no \e[?5h)
+# + Do not set XT: dvtm knows about OSC 0 and 2, but not 1.
+# Oddly enough, if $TERM contains "linux", it attempts to set the title.
+# + Some of the program is cut/paste from rxvt-unicode, e.g., the ACS table.
+# + The built-in table of function-keys (based on rxvt) is incomplete (ends
+# with kf22).
+# + It also omits the shifted cursor- and editing-keypad keys.
+# However, it is confused by xterm's shifted cursor- and editing-keypad keys
+# (and passes those through without interpretation)
+# and may simply pass-through rxvt's, making it appear to work.
+# In other cases such as kf23 and up, no pass-through is done.
+# + Most of the mode-settings in the initialization/reset strings are not
+# implemented; dvtm copies its description from rxvt.
+dvtm|dynamic virtual terminal manager,
+ am, eo, mir, msgr, xenl, AX,
+ colors#8, cols#80, it#8, lines#24, ncv@, pairs#64,
+ acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~,
+ bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l,
+ clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M,
+ csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
+ cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
+ cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
+ dl=\E[%p1%dM, dl1=\E[M, ed=\E[J, el=\E[K, el1=\E[1K,
+ enacs=\E(B\E)0, home=\E[H, hpa=\E[%i%p1%dG, ht=^I, hts=\EH,
+ ich=\E[%p1%d@, ich1=\E[@, il=\E[%p1%dL, il1=\E[L, ind=^J,
+ is1=\E[?47l\E=\E[?1l,
+ is2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l,
+ kDC=\E[3$, kEND=\E[8$, kHOM=\E[7$, kIC=\E[2$, kLFT=\E[d,
+ kNXT=\E[6$, kPRV=\E[5$, kRIT=\E[c, ka1=\EOw, ka3=\EOy,
+ kb2=\EOu, kbs=\177, kc1=\EOq, kc3=\EOs, kcbt=\E[Z,
+ kcub1=\E[D, kcud1=\E[B, kcuf1=\E[C, kcuu1=\E[A,
+ kdch1=\E[3~, kel=\E[8\^, kend=\E[8~, kent=\EOM, kf0=\E[21~,
+ kf1=\E[11~, kf10=\E[21~, kf11=\E[23~, kf12=\E[24~,
+ kf13=\E[25~, kf14=\E[26~, kf15=\E[28~, kf16=\E[29~,
+ kf17=\E[31~, kf18=\E[32~, kf19=\E[33~, kf2=\E[12~,
+ kf20=\E[34~, kf21=\E[23$, kf22=\E[24$, kf3=\E[13~,
+ kf4=\E[14~, kf5=\E[15~, kf6=\E[17~, kf7=\E[18~, kf8=\E[19~,
+ kf9=\E[20~, kfnd=\E[1~, khome=\E[7~, kich1=\E[2~,
+ kind=\E[a, kmous=\E[M, knp=\E[6~, kpp=\E[5~, kri=\E[b,
+ kslt=\E[4~, op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM,
+ ritm=\E[23m, rmacs=^O, rmcup=\E[2J\E[?47l\E8, rmir=\E[4l,
+ rmso=\E[27m, rmul=\E[24m,
+ rs1=\E>\E[1;3;4;5;6l\E[?7h\E[m\E[r\E[2J\E[H,
+ rs2=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;3;4;6l\E[4l\E>\E[?1000l\E[?
+ 25h,
+ s0ds=\E(B, s1ds=\E(0, sc=\E7, setab=\E[4%p1%dm,
+ setaf=\E[3%p1%dm,
+ sgr=\E[0%?%p6%t;1%;%?%p2%t;4%;%?%p1%p3%|%t;7%;%?%p4%t;5%;m%?
+ %p9%t\016%e\017%;,
+ sgr0=\E[m\017, sitm=\E[3m, smacs=^N, smcup=\E7\E[?47h,
+ smir=\E[4h, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
+ vpa=\E[%i%p1%dd,
+
+dvtm-256color|dynamic virtual terminal manager with 256 colors,
+ colors#256, pairs#32767,
+ setab=\E[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;
+ 5;%p1%d%;m,
+ setaf=\E[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5
+ ;%p1%d%;m,
+ use=dvtm,
+
#### NCSA Telnet
# Francesco Potorti <F.Potorti@cnuce.cnr.it>:
u8=\001%[ABCPpqrstuvwxyz{|}~\177]\004\r, .invis=\E@,
.u8=\001Cu|\004r, use=minitel1b,
-### Note:
+# Note:
#
# Faire, Fnct T puis "/" (TS+"?") pour activer les touches en 40cols :
#
# Ctrl+Suite-7(F19), Ctrl+Suite-8(F20), Ctrl+Suite-9(F21),
# Ctrl+Suite-0(F22), Ctrl+Suite-*(F23), Ctrl+Suite-#(F24).
#
-### Fonctionne par exemple avec Midnight Commander (mc).
+# Fonctionne par exemple avec Midnight Commander (mc).
minitel2-80|minitel 2 (80cols) avec filets vt100 (DEC),
G0,
#
#### XTERM Extensions:
#
-# Most of the xterm extensions are for function-keys. Since patch #94 (in
+# Most of the xterm extensions are for function-keys. Since xterm patch #94 (in
# 1999), xterm has supported shift/control/alt/meta modifiers which produce
# additional function-key strings. Some other developers copied the feature,
-# though they did not follow xterm's lead in patch #167 (in 2002), to make
+# though they did not follow xterm's lead in xterm patch #167 (in 2002), to make
# these key definitions less ambiguous.
#
# A few terminals provide similar functionality (sending distinct keys when
# * merge Data General terminfo from Hasufin <hasufin@vidnet.net> - TD
#
# 1998/10/10
-# * update xterm-xfree86 to current (patch 84), for is2/rs2 changes - TD
+# * update xterm-xfree86 to current (xterm patch #84), for is2/rs2 changes - TD
# * correct initialization string in xterm-r5, add misc other features
-# to correspond with xterm patch 84 - TD
+# to correspond with xterm patch #84 - TD
#
# 1998/12/19
-# * update xterm-xfree86 to current (patch 90), smcur/rmcur changes - TD
+# * update xterm-xfree86 to current (xterm patch #90), smcur/rmcur changes - TD
# * add Mathew Vernon's mach console entries
# * corrections for ncsa function-keys (report by Larry Virden)
#
# (Jeffrey C Honig)
#
# 1999/3/27
-# * adjust xterm-xfree86 miscellaneous keypad keys, as per patch #94 - TD.
+# * adjust xterm-xfree86 miscellaneous keypad keys, as per xterm patch #94 - TD.
#
# 1999/4/10
# * add linux-lat, from RedHat patches to ncurses 4.2
# * add entries for mterm (mterm, mterm-ansi, decansi) -TD
# * ncr260wy350pp has only 16 color pairs -TD
# * add sun-type4 from NetBSD -TD
-# * update xterm-xfree86 to current (patch 170) -TD
+# * update xterm-xfree86 to current (xterm patch #170) -TD
# * add screen-bce, screen-s entries -TD
# * add xterm-1002, xterm-1003 entries -TD
#
# * similar fixups for cvvis/cnorm various entries -TD
#
# 2004-05-22
-# * remove 'ncv' from xterm-256color (patch 188) -TD
+# * remove 'ncv' from xterm-256color (xterm patch #188) -TD
#
# 2004-06-26
# * add mlterm -TD
#
# 2007-11-11
# * use xterm-xf86-v44 for "xterm-xfree86", reflecting changes to
-# xterm starting with patch #216 -TD
+# xterm starting with xterm patch #216 -TD
# * make legacy xterm entries such as xterm-24 inherit from xterm-old,
# to match xterm #230 -TD
# * extend xterm+pccX entries to match xterm #230 -TD
# * correct padding in sbi entry -TD
#
# 2014-06-07
-# * update xterm-new to patch #305 -TD
+# * update xterm-new to xterm patch #305 -TD
# + change screen's smso to use SGR 7 (ECMA-80 reverse) rather than SGR 3
# (italic). This was a long-ago typo in screen 3.1.1 which was
# overlooked until a few terminal emulators implemented the feature -TD
# + modify flash capability for linux and wyse entries to put the delay
# between the reverse/normal escapes rather than after -TD
#
+# 2017-01-28
+# + minor comment-fixes to help automate links to bug-urls -TD
+# + add dvtm, dvtm-256color -TD
+# + add settings corresponding to xterm-keys option to tmux entry to
+# reflect upcoming change to make that option "on" by default
+# (patch by Nicholas Marriott).
+# + uncancel Ms in tmux entry (Harry Gindi, Nicholas Marriott).
+# + add dumb-emacs-ansi -TD
+#
######## SHANTIH! SHANTIH! SHANTIH!