X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftput.1.html;h=ed9573343acbfafa5f8c5dec35fd2c7ffa5c784f;hb=74433bcf4f6fe40862a28f3c00edaedcd5054b01;hp=ff7fca2ad5956ddb98fbf5d7f0aca655db525eb6;hpb=493e2f7b3fc309879f561a094fdfc15e5304b3d6;p=ncurses.git diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index ff7fca2a..ed957334 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -28,7 +28,7 @@ * sale, use or other dealings in this Software without prior written * * authorization. * **************************************************************************** - * @Id: tput.1,v 1.67 2021/06/17 21:11:08 tom Exp @ + * @Id: tput.1,v 1.75 2021/12/25 21:31:59 tom Exp @ --> @@ -37,7 +37,7 @@
- This implementation of tput differs from AT&T tput in two important + 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 + 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 standard 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, standard error, standard input + 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, standard 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 + 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 ultimately 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. + tset (and ultimately based on the 4.4BSD tset). If it is not able + to open a terminal, e.g., when running in cron(1), 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 + 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 + 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. + Besides providing more reliable operation than AT&T'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. That had been + modified to interpret multiple commands on a line. Portable + applications should not rely upon this feature; ncurses provides it + to support applications written specifically for OpenBSD. + This implementation (unlike others) can accept both termcap and - terminfo names for the capname feature, if termcap support is compiled - in. However, the predefined termcap and terminfo names have two + terminfo names for the capname feature, if termcap support is compiled + in. However, the predefined termcap and terminfo names have two ambiguities in this case (and the terminfo name is assumed): - o The termcap name dl corresponds to the terminfo name dl1 (delete + o The termcap name dl corresponds to the terminfo name dl1 (delete one line). - The terminfo name dl corresponds to the termcap name DL (delete a + The terminfo name dl corresponds to the termcap name DL (delete a given number of lines). - o The termcap name ed corresponds to the terminfo name rmdc (end + o The termcap name ed corresponds to the terminfo name rmdc (end delete mode). - The terminfo name ed corresponds to the termcap name cd (clear to + The terminfo name ed corresponds to the termcap name cd (clear to end of screen). - The longname and -S options, and the parameter-substitution features - used in the cup example, were not supported in BSD curses before + The longname and -S options, and the parameter-substitution 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, init and reset. + IEEE Std 1003.1/The Open Group Base Specifications Issue 7 + (POSIX.1-2008) documents only the operands for clear, init and reset. There are a few interesting observations to make regarding that: - o In this implementation, clear is part of the capname support. The - others (init and longname) do not correspond to terminal + o In this implementation, clear is part of the capname support. The + others (init and longname) do not correspond to terminal capabilities. o Other implementations of tput on SVr4-based systems such as - Solaris, IRIX64 and HPUX as well as others such as AIX and Tru64 + Solaris, IRIX64 and HPUX as well as others such as AIX and Tru64 provide support for capname 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 + 2010, NetBSD's tput uses terminfo names. Before that, it (like FreeBSD) recognized termcap names. - Beginning in 2021, FreeBSD uses the ncurses tput, configured for + Beginning in 2021, FreeBSD uses the ncurses tput, configured for both terminfo (tested first) and termcap (as a fallback). Because (apparently) all of the certified Unix systems support the full - set of capability names, the reasoning for documenting only a few may + set of capability names, the reasoning for documenting only a few may not be apparent. - o X/Open Curses Issue 7 documents tput differently, with capname and + o X/Open Curses Issue 7 documents tput differently, with capname 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 capabilities database. - o While it is certainly possible to write a tput program without - using curses, none of the systems which have a curses - implementation provide a tput utility which does not provide the + o While it is certainly possible to write a tput program without + using curses, none of the systems which have a curses + implementation provide a tput utility which does not provide the capname feature. 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 (i.e., Unix features documented in SVID 3): - o It assigns exit code 4 to "invalid operand", which may be the same - as unknown capability. For instance, the source code for Solaris' + o It assigns exit code 4 to "invalid operand", which may be the same + as unknown capability. For instance, the source code for Solaris' xcurses uses the term "invalid" in this case. - o It assigns exit code 255 to a numeric variable that is not + o It assigns exit code 255 to a numeric variable that is not specified in the terminfo database. That likely is a documentation - error, confusing the -1 written to the standard output for an + error, confusing the -1 written to the standard output for an absent or cancelled numeric value versus an (unsigned) exit code. - The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes + The various Unix systems (AIX, HPUX, Solaris) use the same exit-codes as ncurses. NetBSD curses documents different exit codes which do not correspond to @@ -526,7 +545,7 @@
clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5). - This describes ncurses version 6.2 (patch 20210821). + This describes ncurses version 6.3 (patch 20211225).