X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftput.1.html;h=00b0e006803be814fd0d0a28f0439e42113a96d2;hb=f6b436c4fb50275df43ea10ba9c744fe195a327d;hp=2378f5acad2c4d4fe4de537f2c442df2d8eef6a4;hpb=a6eb34d7fec8170a8715f9e53ca2f96452dd30dd;p=ncurses.git diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index 2378f5ac..00b0e006 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -1,7 +1,7 @@ - @@ -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,51 +387,62 @@ 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: - 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 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. + + o SVr4 added color initialization using the orig_colors and + orig_pairs 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
+           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.
 
@@ -439,14 +450,21 @@
            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
+           allow tput 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
@@ -483,37 +501,40 @@
            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
+       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
@@ -523,7 +544,7 @@
 

SEE ALSO

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