X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftput.1.html;h=a7e1c8356b8f0f7c10fe63db91007a0270bbdc9a;hp=3bd8ea6c1f0f1d361538234a5aea824e263ebe0e;hb=8e397cccba0aad135cb9a8a353756f4273a7cdf6;hpb=092f1e4b79bca1d1cd3e24baa7abc3ad4cea8420 diff --git a/doc/html/man/tput.1.html b/doc/html/man/tput.1.html index 3bd8ea6c..a7e1c835 100644 --- a/doc/html/man/tput.1.html +++ b/doc/html/man/tput.1.html @@ -1,7 +1,7 @@ @@ -53,6 +53,7 @@

SYNOPSIS

        tput [-Ttype] capname [parameters]
+       tput [-Ttype] clear
        tput [-Ttype] init
        tput [-Ttype] reset
        tput [-Ttype] longname
@@ -106,61 +107,109 @@
 
               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.
 
 
 

Commands

+       A  few  commands  (init,  reset and longname) are special;
+       they are defined by the tput program.  The others are  the
+       names of capabilities from the terminal database (see ter-
+       minfo(5) for a list).  Although init  and  reset  resemble
+       capability  names,  tput uses several capabilities to per-
+       form these special functions.
+
        capname
-              indicates  the  capability  from the terminfo data-
-              base.  When termcap support  is  compiled  in,  the
-              termcap name for the capability is also accepted.
+              indicates the capability from  the  terminal  data-
+              base.
 
               If  the  capability  is a string that takes parame-
               ters, the arguments following the  capability  will
               be used as parameters for the string.
 
-              Most  parameters  are numbers.  Only a few terminfo
+              Most  parameters  are numbers.  Only a few terminal
               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.
 
-       init   If  the  terminfo  database is present and an entry
+       init   If  the  terminal  database is present and an entry
               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
+              If the terminal database is present  and  an  entry
               for  the user's terminal exists (see -Ttype above),
               then the long name of the terminal will be put out.
               The long name is the last name in the first line of
@@ -169,26 +218,46 @@
 
 
 

Aliases

-       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.
+
+       Before  ncurses 6.1, the two utilities were different from
+       each other:
 
-       o   That  utility  resets  the  terminal modes and special
-           characters (not done here).
+       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 is more limited,
+       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 +337,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 +393,98 @@
        ---------------------------------------------------------------------
 
 
+

HISTORY

+       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.
+
+       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 the 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

-       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.
+
+       This  implementation (unlike others) can accept both term-
+       cap and 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 one line).
+           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 delete mode).
+           The terminfo name ed corresponds to the  termcap  name
+           cd (clear to end of screen).
+
+       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 +525,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.
-
 
 

SEE ALSO

        clear(1),    stty(1),   tabs(1),   tset(1),   terminfo(5),
        curs_termcap(3x).
 
-       This describes ncurses version 6.0 (patch 20160402).
+       This describes ncurses version 6.0 (patch 20170429).
 
 
 
@@ -404,6 +551,7 @@
 
  • FILES
  • EXIT CODES
  • DIAGNOSTICS
  • +
  • HISTORY
  • PORTABILITY
  • SEE ALSO