X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;ds=sidebyside;f=doc%2Fhtml%2Fman%2Ftput.1.html;h=ad00b2358c2def4f48c0a920710bde0385dd2db3;hb=f344f8539c1543f8cd65a5bb142dbaf23b9421d2;hp=b151c13840ec663e5e635b028f28eb36d4a64b8f;hpb=59c1a9740d123db3cecafe76e18f7848081a670b;p=ncurses.git diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index b151c138..ad00b235 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -1,7 +1,7 @@ @@ -53,6 +53,7 @@
tput [-Ttype] capname [parameters] + tput [-Ttype] clear tput [-Ttype] init tput [-Ttype] reset tput [-Ttype] longname @@ -106,7 +107,7 @@ Again, tput uses a table and the presence of param- eters in its input to decide whether to use - tparm(3x), and how to interpret the parameters. + tparm(3x), and how to interpret the parameters. -V reports the version of ncurses which was used in this program, and exits. @@ -125,7 +126,7 @@ Most parameters are numbers. Only a few terminfo capabilities require string parameters; tput uses a table to decide which to pass as strings. Normally - tput uses tparm(3x) to perform the substitution. + tput uses tparm(3x) to perform the substitution. If no parameters are given for the capability, tput writes the string without performing the substitu- tion. @@ -134,30 +135,72 @@ for the user's terminal exists (see -Ttype, above), the following will occur: - (1) if present, the terminal's initialization - strings will be output as detailed in the ter- - minfo(5) section on Tabs and Initialization, + (1) first, tput retrieves the current terminal + mode settings for your terminal. It does this + by successively testing + + o the standard error, + + o standard output, + + o standard input and + + o ultimately "/dev/tty" + + to obtain terminal settings. Having retrieved + these settings, tput remembers which file + descriptor to use when updating settings. + + (2) if the window size cannot be obtained from the + operating system, but the terminal description + (or environment, e.g., LINES and COLUMNS vari- + ables specify this), update the operating sys- + tem's notion of the window size. - (2) any delays (e.g., newline) specified in the - entry will be set in the tty driver, + (3) the terminal modes will be updated: - (3) tabs expansion will be turned on or off - according to the specification in the entry, - and + o any delays (e.g., newline) specified in + the entry will be set in the tty driver, - (4) if tabs are not expanded, standard tabs will - be set (every 8 spaces). + o tabs expansion will be turned on or off + according to the specification in the + entry, and + + o if tabs are not expanded, standard tabs + will be set (every 8 spaces). + + (4) if present, the terminal's initialization + strings will be output as detailed in the ter- + minfo(5) section on Tabs and Initialization, + + (5) output is flushed. If an entry does not contain the information needed for any of these activities, that activity will silently be skipped. - reset Instead of putting out initialization strings, the - terminal's reset strings will be output if present - (rs1, rs2, rs3, rf). If the reset strings are not - present, but initialization strings are, the ini- - tialization strings will be output. Otherwise, - reset acts identically to init. + reset This is similar to init, with two differences: + + (1) before any other initialization, the terminal + modes will be reset to a "sane" state: + + o set cooked and echo modes, + + o turn off cbreak and raw modes, + + o turn on newline translation and + + o reset any unset special characters to + their default values + + (2) Instead of putting out initialization strings, + the terminal's reset strings will be output if + present (rs1, rs2, rs3, rf). If the reset + strings are not present, but initialization + strings are, the initialization strings will + be output. + + Otherwise, reset acts identically to init. longname If the terminfo database is present and an entry @@ -169,26 +212,46 @@
- tput handles the init and reset commands specially: it - allows for the possibility that it is invoked by a link + tput handles the clear, init and reset commands specially: + it allows for the possibility that it is invoked by a link with those names. If tput is invoked by a link named reset, this has the same effect as tput reset. The tset(1) utility also - treats a link named reset specially: + treats a link named reset specially. - o That utility resets the terminal modes and special - characters (not done here). + Before ncurses 6.1, the two utilities were different from + each other: - o On the other hand, tset's repertoire of terminal capa- - bilities for resetting the terminal is more limited, + o tset utility reset the terminal modes and special + characters (not done with tput). + + o On the other hand, tset's repertoire of terminal capa- + bilities for resetting the terminal was more limited, i.e., only reset_1string, reset_2string and reset_file in contrast to the tab-stops and margins which are set by this utility. - o The reset program is usually an alias for tset, due to - the resetting of terminal modes and special charac- - ters. + o The reset program is usually an alias for tset, + because of this difference with resetting terminal + modes and special characters. + + With the changes made for ncurses 6.1, the reset feature + of the two programs is (mostly) the same. A few differ- + ences remain: + + o The tset program waits one second when resetting, in + case it happens to be a hardware terminal. + + o The two programs write the terminal initialization + strings to different streams (i.e.,. the standard + error for tset and the standard output for tput). + + Note: 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 + output. If tput is invoked by a link named init, this has the same effect as tput init. Again, you are less likely to use @@ -268,7 +331,7 @@ 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 "Tabs and Initialization" sec- + information, see the Tabs and Initialization, sec- tion of terminfo(5) @@ -324,10 +387,72 @@ --------------------------------------------------------------------- +
+ The tput command was begun by Bill Joy in 1980. The ini- + tial version only cleared the screen. + + AT&T System V provided a different tput command, whose + init and reset subcommands (more than half the program) + were incorporated from the reset feature of BSD tset writ- + ten by Eric Allman. + + Keith Bostic replaced the BSD tput command in 1989 with a + new implementation based on the AT&T System V program + tput. Like the AT&T program, Bostic's version accepted + some parameters named for terminfo capabilities (clear, + init, longname and reset). However (because he had only + termcap available), it accepted termcap names for other + capabilities. Also, Bostic's BSD tput did not modify the + terminal I/O modes as the earlier BSD tset had done. + + At the same time, Bostic added a shell script named + "clear", which used tput to clear the screen. + + Both of these appeared in 4.4BSD, becoming the "modern" + BSD implementation of tput. + +
- The longname and -S options, and the parameter-substitu- - tion features used in the cup example, are not supported - in BSD curses or in AT&T/USL curses before SVr4. + This implementation of tput differs from AT&T tput in two + important areas: + + o tput capname writes to the standard output. That need + not be a regular terminal. However, the subcommands + which manipulate terminal modes may not use the stan- + dard output. + + The AT&T implementation's init and reset commands use + the BSD (4.1c) tset source, which manipulates terminal + 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, tput did not + modify terminal modes. tput now uses a similar + scheme, using functions shared with tset (and ulti- + mately based on the 4.4BSD tset). If it is not able + to open a terminal, e.g., when running in cron, tput + will return an error. + + o AT&T tput guesses the type of its capname operands by + seeing if all of the characters are numeric, or not. + + Most implementations which provide support for capname + operands use the tparm function to expand parameters + in it. That function expects a mixture of numeric and + string parameters, requiring tput to know which type + to use. + + This implementation uses a table to determine the + parameter types for the standard capname operands, and + an internal library function to analyze nonstandard + capname operands. + + The longname and -S options, and the parameter-substitu- + tion features used in the cup 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 clear, @@ -368,22 +493,12 @@ curses implementation provide a tput utility which does not provide the capname feature. - Most implementations which provide support for capname op- - erands use the tparm function to expand parameters in it. - That function expects a mixture of numeric and string - parameters, requiring tput to know which type to use. - This implementation uses a table to determine that for the - standard capname operands, and an internal library func- - tion to analyze nonstandard capname operands. Other - implementations may simply guess that an operand contain- - ing only digits is intended to be a number. -
clear(1), stty(1), tabs(1), tset(1), terminfo(5), curs_termcap(3x). - This describes ncurses version 6.0 (patch 20160723). + This describes ncurses version 6.0 (patch 20170114). @@ -404,6 +519,7 @@