X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftput.1.html;fp=doc%2Fhtml%2Fman%2Ftput.1.html;h=d60ad9823fb51829576d1521817002dc37105af5;hp=8f5fbb361a5d74f7d0e505340f62add8a379a392;hb=235aa9c4f39efed13a7b9a40d191f3a591095f75;hpb=bf2c36c4930ac5bb04cd2b1ba209cd09b6f510ab diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index 8f5fbb36..d60ad982 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -28,19 +28,19 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: tput.1,v 1.102 2024/01/13 22:47:16 tom Exp @ + * @Id: tput.1,v 1.105 2024/01/20 19:41:02 tom Exp @ -->
-tput(1) User commands tput(1) @@ -48,8 +48,8 @@
- tput, init, reset - initialize a terminal, exercise its capabilities, - or query terminfo database + tput - initialize a terminal, exercise its capabilities, or query term- + info database
@@ -207,57 +207,62 @@ If tput is invoked via link with any of the names clear, init, or reset, it operates as if run with the corresponding (pseudo-)capability operand. For example, executing a link named reset that points to tput - has the same effect as "tput reset". (The tset(1) utility also treats - a link named reset specially.) + has the same effect as "tput reset". - If tput is invoked by a link named init, this has the same effect as - "tput init". Such a link is seldom employed because another program of - that name is in widespread use. + This feature was introduced by ncurses 5.2 in 2000. It is rarely used: + + clear is a separate program, which is both smaller and more frequently + executed. + + init has the same name as another program in widespread use. + + reset is provided by the tset(1) utility (also via a link named + reset).
- Besides the pseudo-capabilities (such as init), tput treats the lines - and cols cap-codes specially: it may call setupterm(3x) to obtain the + Besides the pseudo-capabilities (such as init), tput treats the lines + and cols cap-codes specially: it may call setupterm(3x) to obtain the terminal size. o First, tput attempts to obtain these capabilities from the terminal - database. This generally fails for terminal emulators, which lack + database. This generally fails for terminal emulators, which lack a fixed window size and thus omit the capabilities. - o It then asks the operating system for the terminal's size, which - generally works, unless the connection is via a serial line that + o It then asks the operating system for the terminal's size, which + generally works, unless the connection is via a serial line that does not support "NAWS": negotiations about window size. - o Finally, it inspects the environment variables LINES and COLUMNS, + o Finally, it inspects the environment variables LINES and COLUMNS, which may override the terminal size. - If the -T option is given, tput ignores the environment variables by + If the -T option is given, tput ignores the environment variables by calling use_tioctl(TRUE), relying upon the operating system (or, ultimately, the terminal database).
- -S retrieves more than one capability per invocation of tput. - The capabilities must be passed to tput from the standard - input stream instead of from the command line (see section - "EXAMPLES" below). Only one cap-code is allowed per line. - The -S option changes the meanings of the 0 and 1 exit + -S retrieves more than one capability per invocation of tput. + The capabilities must be passed to tput from the standard + input stream instead of from the command line (see section + "EXAMPLES" below). Only one cap-code is allowed per line. + The -S option changes the meanings of the 0 and 1 exit statuses (see section "EXIT STATUS" below). - Some capabilities use string parameters rather than numeric - ones. tput employs a built-in table and the presence of - parameters in its input to decide how to interpret them, and + Some capabilities use string parameters rather than numeric + ones. tput employs a built-in table and the presence of + parameters in its input to decide how to interpret them, and whether to use tparm(3x). -T type indicates the terminal's type. Normally this option is - unnecessary, because a default is taken from the TERM + unnecessary, because a default is taken from the TERM environment variable. If specified, the environment variables LINES and COLUMNS are also ignored. -V reports the version of ncurses associated with tput, and exits with a successful status. - -x prevents "tput clear" from attempting to clear the scrollback + -x prevents "tput clear" from attempting to clear the scrollback buffer. @@ -283,9 +288,9 @@
- tput command reads one environment variable. + tput reads one environment variable. - TERM denotes the terminal type. Each terminal type is distinct, + TERM denotes the terminal type. Each terminal type is distinct, though many are similar. The -T option overrides its value. @@ -298,190 +303,190 @@
- Over time ncurses tput has differed from that of System V in two + Over time ncurses tput has differed from that of System V in two important respects, one now mostly historical. - o "tput cap-code" writes to the standard output, which need not be a - terminal device. However, the operands that manipulate terminal + o "tput cap-code" writes to the standard output, which need not be a + terminal device. However, the operands that manipulate terminal modes might not use the standard output. - System V tput's init and reset operands use logic from 4.1cBSD + System V tput's init and reset operands use logic from 4.1cBSD tset, manipulating terminal modes. It checks the same file - descriptors (and /dev/tty) for association with a terminal device - as ncurses now does, and if none are, finally assumes a 1200 baud + descriptors (and /dev/tty) for association with a terminal device + as ncurses now does, and if none are, finally assumes a 1200 baud terminal. When updating terminal modes, it ignores errors. - Until ncurses 6.1 (see section "HISTORY" below), tput did not + Until ncurses 6.1 (see section "HISTORY" below), tput did not modify terminal modes. It now employs a scheme similar to System V, using functions shared with tset (and ultimately based on - 4.4BSD tset). If it is not able to open a terminal (for instance, + 4.4BSD tset). If it is not able to open a terminal (for instance, when run by cron(1)), tput exits with an error status. - o System V tput assumes that the type of a cap-code operand is - numeric if all the characters of its value are decimal numbers; if + o System V tput assumes that the type of a cap-code operand is + numeric if all the characters of its value are decimal numbers; if they are not, it treats cap-code as a string capability. Most implementations that provide support for cap-code operands use - the tparm(3x) function to expand its parameters. That function - expects a mixture of numeric and string parameters, requiring tput + the tparm(3x) function to expand its parameters. That function + expects a mixture of numeric and string parameters, requiring tput to know which type to use. - ncurses tput uses a table to determine the parameter types for the - standard cap-code operands, and an internal function to analyze + ncurses tput uses a table to determine the parameter types for the + standard cap-code operands, and an internal function to analyze nonstandard cap-code operands. - While more reliable than System V's utility, a portability problem - is introduced by this analysis. An OpenBSD developer adapted the - internal library function from ncurses to port NetBSD's termcap- - based tput to terminfo, and modified it to interpret multiple cap- - codes (and parameters) on the command line. Portable applications - should not rely upon this feature; ncurses offers it to support + While more reliable than System V's utility, a portability problem + is introduced by this analysis. An OpenBSD developer adapted the + internal library function from ncurses to port NetBSD's termcap- + based tput to terminfo, and modified it to interpret multiple cap- + codes (and parameters) on the command line. Portable applications + should not rely upon this feature; ncurses offers it to support applications written specifically for OpenBSD. - This implementation, unlike others, accepts both termcap and terminfo - cap-codes if termcap support is compiled in. In that case, however, + This implementation, unlike others, accepts both termcap and terminfo + cap-codes if termcap support is compiled in. In that case, however, the predefined termcap and terminfo codes have two ambiguities; ncurses assumes the terminfo code. - o The cap-code dl means delete_line to termcap but parm_delete_line + o The cap-code dl means delete_line to termcap but parm_delete_line to terminfo. termcap uses the code DL for parm_delete_line. term- info uses the code dch1 for delete_line. - o The cap-code ed means exit_delete_mode to termcap but clr_eos to + o The cap-code ed means exit_delete_mode to termcap but clr_eos to terminfo. termcap uses the code cd for clr_eos. terminfo uses the code rmdc for exit_delete_mode. - The longname operand, -S option, and the parameter-substitution - features used in the cup example below, were not supported in AT&T/USL + The longname operand, -S option, and the parameter-substitution + features used in the cup example below, were not supported in AT&T/USL curses before SVr4 (1989). Later, 4.3BSD-Reno (1990) added support for longname, and in 1994, NetBSD added support for the parameter- substitution features. - IEEE Std 1003.1/The Open Group Base Specifications Issue 7 - (POSIX.1-2008) documents only the clear, init, and reset operands. A + IEEE Std 1003.1/The Open Group Base Specifications Issue 7 + (POSIX.1-2008) documents only the clear, init, and reset operands. A few observations of interest arise from that selection. o ncurses supports clear as it does any other standard cap-code. The - others (init and longname) do not correspond to terminal + others (init and longname) do not correspond to terminal capabilities. - o The tput on SVr4-based systems such as Solaris, IRIX64, and HP-UX, + o The tput on SVr4-based systems such as Solaris, IRIX64, and HP-UX, as well as others such as AIX and Tru64, also support standard cap- code operands. - o A few platforms such as FreeBSD recognize termcap names rather than - terminfo capability names in their respective tput commands. Since - 2010, NetBSD's tput uses terminfo names. Before that, it (like - FreeBSD) recognized termcap names. + o A few platforms such as FreeBSD recognize termcap codes rather than + terminfo capability codes in their respective tput commands. Since + 2010, NetBSD's tput uses terminfo codes. Before that, it (like + FreeBSD) recognized termcap codes. - Beginning in 2021, FreeBSD uses ncurses tput, configured for both + Beginning in 2021, FreeBSD uses ncurses tput, configured for both terminfo (tested first) and termcap (as a fallback). Because (apparently) all certified Unix systems support the full set of - capability codes, the reason for documenting only a few may not be + capability codes, the reason for documenting only a few may not be apparent. o X/Open Curses Issue 7 documents tput differently, with cap-code and the other features used in this implementation. - o That is, there are two standards for tput: 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 + o That is, there are two standards for tput: 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 capability database. - o While it is certainly possible to write a tput program without - using curses, no system with a curses implementation provides a + o While it is certainly possible to write a tput program without + using curses, no system with a curses implementation provides a tput utility that does not also support standard cap-codes. X/Open Curses Issue 7 (2009) is the first version to document utilities. However that part of X/Open Curses does not follow existing practice (that is, System V curses behavior). - o It assigns exit status 4 to "invalid operand", which may have the - same meaning as "unknown capability". For instance, the source + o It assigns exit status 4 to "invalid operand", which may have the + same meaning as "unknown capability". For instance, the source code for Solaris xcurses uses the term "invalid" in this case. - o It assigns exit status 255 to a numeric variable that is not + o It assigns exit status 255 to a numeric variable that is not specified in the terminfo database. That likely is a documentation - error, mistaking the "-1" written to the standard output to - indicate an absent or cancelled numeric capability for an + error, mistaking the "-1" written to the standard output to + indicate an absent or cancelled numeric capability for an (unsigned) exit status. The various System V implementations (AIX, HP-UX, Solaris) use the same exit statuses as ncurses. - NetBSD curses documents exit statuses that correspond to neither + NetBSD curses documents exit statuses that correspond to neither ncurses nor X/Open Curses.
- Bill Joy wrote a tput command during development of 4BSD in October - 1980. This initial version only cleared the screen, and did not ship + Bill Joy wrote a tput command during development of 4BSD in October + 1980. This initial version only cleared the screen, and did not ship with official distributions. System V developed a different tput command. - o SVr2 (1984) provided a rudimentary tput that checked the parameter - against each predefined capability and returned the corresponding - value. This version of tput did not use tparm(3x) for + o SVr2 (1984) provided a rudimentary tput that checked the parameter + against each predefined capability and returned the corresponding + value. This version of tput did not use tparm(3x) for parameterized capabilities. - o SVr3 (1987) replaced that with a more extensive program whose - support for init and reset operands (more than half the program) + o SVr3 (1987) replaced that with a more extensive program whose + support for init and reset operands (more than half the program) incorporated the reset feature of BSD tset written by Eric Allman. - o SVr4 (1989) added color initialization by using the orig_colors + o SVr4 (1989) added color initialization by using the orig_colors (oc) and orig_pair (op) capabilities in its init logic. - Keith Bostic refactored BSD tput for shipment in 4.3BSD-Tahoe (1988), - then replaced it the next year with a new implementation based on - System V tput. Bostic's version similarly accepted some parameters - named for terminfo (pseudo-)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 + Keith Bostic refactored BSD tput for shipment in 4.3BSD-Tahoe (1988), + then replaced it the next year with a new implementation based on + System V tput. Bostic's version similarly accepted some parameters + named for terminfo (pseudo-)capabilities: clear, init, longname, and + reset. However, because he had only termcap available, it accepted + termcap codes for other capabilities. Also, Bostic's BSD tput did not modify the terminal modes as the earlier BSD tset had done. - At the same time, Bostic added a shell script named "clear" that used - tput to clear the screen. Both of these appeared in 4.4BSD, becoming + At the same time, Bostic added a shell script named "clear" that used + tput to clear the screen. Both of these appeared in 4.4BSD, becoming the "modern" BSD implementation of tput. - The origin of ncurses tput lies outside both System V and BSD, in Ross - Ridge's mytinfo package, published on comp.sources.unix in December - 1992. Ridge's program made more sophisticated use of the terminal + The origin of ncurses tput lies outside both System V and BSD, in Ross + Ridge's mytinfo package, published on comp.sources.unix in December + 1992. Ridge's program made more sophisticated use of the terminal capabilities than the BSD program. Eric Raymond used that tput program - (and other parts of mytinfo) in ncurses in June 1995. Incorporating - the portions dealing with terminal capabilities almost without change, - Raymond made improvements to the way command-line parameters were + (and other parts of mytinfo) in ncurses in June 1995. Incorporating + the portions dealing with terminal capabilities almost without change, + Raymond made improvements to the way command-line parameters were handled. Before ncurses 6.1 (2018), its tset and tput utilities differed. - o tset was more effective, resetting the terminal modes and special + o tset was more effective, resetting the terminal modes and special characters. - o On the other hand, tset's repertoire of terminal capabilities for + o On the other hand, tset's repertoire of terminal capabilities for resetting the terminal was more limited; it had only equivalents of - reset_1string (rs1), reset_2string (rs2), and reset_file (rf), and + reset_1string (rs1), reset_2string (rs2), and reset_file (rf), and not the tab stop and margin update features of tput. The reset program is traditionally an alias for tset due to its ability to reset terminal modes and special characters. - As of ncurses 6.1, the "reset" features of the two programs are + As of ncurses 6.1, the "reset" features of the two programs are (mostly) the same. Two minor differences remain. - o The tset program waits one second when resetting, in case the + o The tset program waits one second when resetting, in case the terminal happens to be a hardware device. - o The two programs write the terminal initialization strings to - different streams; that is, standard error for tset and standard + o The two programs write the terminal initialization strings to + different streams; that is, standard error for tset and standard output for tput.
tput init Initialize the terminal according to the type of terminal in the - TERM environment variable. If the system does not reliably + TERM environment variable. If the system does not reliably initialize the terminal upon login, this command can be included in $HOME/.profile after exporting the TERM environment variable. @@ -497,7 +502,7 @@ screen, usually known as the "home" cursor position. tput clear - Clear the screen: write the clear_screen capability's value to + Clear the screen: write the clear_screen capability's value to the standard output stream. tput cols @@ -507,29 +512,29 @@ Report the number of columns used by an ADM-3A terminal. strong=`tput smso` normal=`tput rmso` - Set shell variables to capability values: strong and normal, to - begin and end, respectively, stand-out mode for the terminal. + Set shell variables to capability values: strong and normal, to + begin and end, respectively, stand-out mode for the terminal. One might use these to present a prompt. printf "${strong}Username:${normal} " tput hc - Indicate via exit status whether the terminal is a hard copy + Indicate via exit status whether the terminal is a hard copy device. tput cup 23 4 Move the cursor to row 23, column 4. tput cup - Report the value of the cursor_address (cup) capability (used + Report the value of the cursor_address (cup) capability (used for cursor movement), with no parameters substituted. tput longname - Report the terminfo database's description of the terminal type + Report the terminfo database's description of the terminal type specified in the TERM environment variable. tput -S - Process multiple capabilities. The -S option can be profitably + Process multiple capabilities. The -S option can be profitably used with a shell "here document". $ tput -S <<! @@ -538,7 +543,7 @@ > bold > ! - The foregoing clears the screen, moves the cursor to position + The foregoing clears the screen, moves the cursor to position (10, 10) and turns on bold (extra bright) mode. tput clear cup 10 10 bold @@ -550,7 +555,7 @@ -ncurses 6.4 2024-01-13 tput(1) +ncurses 6.4 2024-01-20 tput(1)