X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftput.1.html;h=8d68b72b147fbff6a4bb93b4a4a891c3478db815;hp=fcdaf71619ee4363a6e984769c972258ca8f5be4;hb=6662c1ccb49cb09d0f2cec2ec6150410a0fd0f7f;hpb=61790aa3ac9e0dff2b443ac567b174fc4d235b86 diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index fcdaf716..8d68b72b 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -1,7 +1,7 @@ - @@ -37,7 +37,7 @@ tput 1 - +

tput 1

@@ -374,7 +374,7 @@ --------------------------------------------------------------------- 0 (capname is a numeric variable that is not specified in the terminfo(5) database for this terminal type, e.g. - tput -T450 lines and tput -T2621 xmc) + tput -T450 lines and tput -Thp2621 xmc) 1 no error message is printed, see the EXIT CODES section. 2 usage error 3 unknown terminal type or no terminfo database @@ -387,102 +387,124 @@ The tput command was begun by Bill Joy in 1980. The initial 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 written by Eric Allman. + AT&T System V provided a different tput command: + + o SVr2 provided a rudimentary tput which checked the parameter + against each predefined capability and returned the corresponding + value. This version of tput did not use tparm(3x) for the + capabilities which are parameterized. + + o SVr3 replaced that, a year later, by a more extensive program whose + init and reset subcommands (more than half the program) were + incorporated from the reset feature of BSD tset written 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 + o SVr4 added color initialization using the orig_colors and orig_pair + capabilities in the init subcommand. + + 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 + Both of these appeared in 4.4BSD, becoming the "modern" BSD implementation of tput. - This implementation of tput began from a different source than AT&T or - BSD: 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. - Using the portions dealing with terminal capabilities almost without - change, Raymond made improvements to the way the command-line + This implementation of tput began from a different source than AT&T or + BSD: 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. + Using the portions dealing with terminal capabilities almost without + change, Raymond made improvements to the way the command-line parameters were handled.

PORTABILITY

-       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
+           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
        not be apparent.
@@ -523,7 +545,7 @@
 

SEE ALSO

        clear(1), stty(1), tabs(1), tset(1), curs_termcap(3x), terminfo(5).
 
-       This describes ncurses version 6.2 (patch 20210102).
+       This describes ncurses version 6.3 (patch 20220724).