]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/tset.1.html
ncurses 6.0 - patch 20160820
[ncurses.git] / doc / html / man / tset.1.html
index 25da9be737e0cb37d4f522c089051f0806fb64bd..dc475ccae1703f09de3e41ea957b12a621e3831e 100644 (file)
@@ -26,7 +26,7 @@
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: tset.1,v 1.31 2016/01/30 15:41:41 tom Exp @
+  * @Id: tset.1,v 1.43 2016/08/06 23:16:39 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
 </PRE><H3><a name="h3-tset---initialization">tset - initialization</a></H3><PRE>
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
 
 </PRE><H3><a name="h3-tset---initialization">tset - initialization</a></H3><PRE>
-       <STRONG>Tset</STRONG>  initializes  terminals.   <STRONG>Tset</STRONG>  first determines the
-       type of terminal that you are using.   This  determination
-       is done as follows, using the first terminal type found.
+       This program initializes terminals.
+
+       First,  <STRONG>tset</STRONG>  retrieves the current terminal mode settings
+       for your terminal.  It does this by successively testing
+
+       <STRONG>o</STRONG>   the standard error,
+
+       <STRONG>o</STRONG>   standard output,
+
+       <STRONG>o</STRONG>   standard input and
+
+       <STRONG>o</STRONG>   ultimately "/dev/tty"
+
+       to obtain terminal settings.  Having retrieved these  set-
+       tings,  <STRONG>tset</STRONG>  remembers  which file descriptor to use when
+       updating settings.
+
+       Next, <STRONG>tset</STRONG> determines the type of terminal  that  you  are
+       using.   This  determination is done as follows, using the
+       first terminal type found.
 
        1. The <STRONG>terminal</STRONG> argument specified on the command line.
 
        2. The value of the <STRONG>TERM</STRONG> environmental variable.
 
 
        1. The <STRONG>terminal</STRONG> argument specified on the command line.
 
        2. The value of the <STRONG>TERM</STRONG> environmental variable.
 
-       3.  (BSD  systems only.) The terminal type associated with
-       the standard error output device in  the  <EM>/etc/ttys</EM>  file.
-       (On  System-V-like  UNIXes  and systems using that conven-
+       3. (BSD systems only.) The terminal type  associated  with
+       the  standard  error  output device in the <EM>/etc/ttys</EM> file.
+       (On System-V-like UNIXes and systems  using  that  conven-
        tion, <EM>getty</EM> does this job by setting <STRONG>TERM</STRONG> according to the
        type passed to it by <EM>/etc/inittab</EM>.)
 
        4. The default terminal type, "unknown".
 
        tion, <EM>getty</EM> does this job by setting <STRONG>TERM</STRONG> according to the
        type passed to it by <EM>/etc/inittab</EM>.)
 
        4. The default terminal type, "unknown".
 
-       If  the  terminal  type  was not specified on the command-
-       line, the <STRONG>-m</STRONG> option mappings are  then  applied  (see  the
+       If the terminal type was not  specified  on  the  command-
+       line,  the  <STRONG>-m</STRONG>  option  mappings are then applied (see the
        section  <STRONG>TERMINAL</STRONG>  <STRONG>TYPE</STRONG>  <STRONG>MAPPING</STRONG>  for  more  information).
        section  <STRONG>TERMINAL</STRONG>  <STRONG>TYPE</STRONG>  <STRONG>MAPPING</STRONG>  for  more  information).
-       Then, if the terminal type begins  with  a  question  mark
+       Then,  if  the  terminal  type begins with a question mark
        ("?"), the user is prompted for confirmation of the termi-
        ("?"), the user is prompted for confirmation of the termi-
-       nal type.   An  empty  response  confirms  the  type,  or,
-       another  type  can be entered to specify a new type.  Once
-       the terminal type has been determined, the terminfo  entry
-       for  the  terminal  is retrieved.  If no terminfo entry is
-       found for the type, the user is prompted for another  ter-
+       nal  type.   An  empty  response  confirms  the  type, or,
+       another type can be entered to specify a new  type.   Once
+       the  terminal type has been determined, the terminfo entry
+       for the terminal is retrieved.  If no  terminfo  entry  is
+       found  for the type, the user is prompted for another ter-
        minal type.
 
        minal type.
 
-       Once  the  terminfo  entry  is retrieved, the window size,
-       backspace, interrupt and line kill characters (among  many
+       Once the terminfo entry is  retrieved,  the  window  size,
+       backspace,  interrupt and line kill characters (among many
        other things) are set and the terminal and tab initializa-
        other things) are set and the terminal and tab initializa-
-       tion strings  are  sent  to  the  standard  error  output.
-       Finally,  if the erase, interrupt and line kill characters
-       have changed, or are not  set  to  their  default  values,
-       their  values  are displayed to the standard error output.
-       Use the <STRONG>-c</STRONG> or <STRONG>-w</STRONG> option to select only the  window  sizing
-       versus  the  other  initialization.   If neither option is
-       given, both are assumed.
+       tion  strings  are  sent  to  the  standard  error output.
+       Finally, if the erase, interrupt and line kill  characters
+       have  changed,  or  are  not  set to their default values,
+       their values are displayed to the standard error output.
 
 
 </PRE><H3><a name="h3-reset---reinitialization">reset - reinitialization</a></H3><PRE>
 
 
 </PRE><H3><a name="h3-reset---reinitialization">reset - reinitialization</a></H3><PRE>
        leaving  a  terminal  in an abnormal state.  Note, you may
        have to type
 
        leaving  a  terminal  in an abnormal state.  Note, you may
        have to type
 
-           <STRONG>&lt;LF&gt;reset&lt;LF&gt;</STRONG>
+           <EM>&lt;LF&gt;</EM><STRONG>reset</STRONG><EM>&lt;LF&gt;</EM>
 
        (the line-feed character is normally control-J) to get the
        terminal to work, as carriage-return may no longer work in
 
        (the line-feed character is normally control-J) to get the
        terminal to work, as carriage-return may no longer work in
 
        <STRONG>-q</STRONG>   The  terminal  type is displayed to the standard out-
             put, and the terminal is not initialized in any  way.
 
        <STRONG>-q</STRONG>   The  terminal  type is displayed to the standard out-
             put, and the terminal is not initialized in any  way.
-            The option `-' by itself is equivalent but archaic.
+            The option "-" by itself is equivalent but archaic.
 
        <STRONG>-r</STRONG>   Print the terminal type to the standard error output.
 
 
        <STRONG>-r</STRONG>   Print the terminal type to the standard error output.
 
             <STRONG>setupterm</STRONG> is not able to detect the window size.
 
        The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be
             <STRONG>setupterm</STRONG> is not able to detect the window size.
 
        The arguments for the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG> options may either be
-       entered  as  actual characters or by using the `hat' nota-
+       entered  as  actual characters or by using the "hat" nota-
        tion, i.e., control-h may be specified as "^H" or "^h".
 
        tion, i.e., control-h may be specified as "^H" or "^h".
 
+       If neither <STRONG>-c</STRONG> or <STRONG>-w</STRONG> is given, both options are assumed.
+
 
 </PRE><H2><a name="h2-SETTING-THE-ENVIRONMENT">SETTING THE ENVIRONMENT</a></H2><PRE>
        It is often desirable  to  enter  the  terminal  type  and
 
 </PRE><H2><a name="h2-SETTING-THE-ENVIRONMENT">SETTING THE ENVIRONMENT</a></H2><PRE>
        It is often desirable  to  enter  the  terminal  type  and
        often desirable to provide information about the  type  of
        terminal used on such ports.
 
        often desirable to provide information about the  type  of
        terminal used on such ports.
 
-       The  purpose  of  the <STRONG>-m</STRONG> option is to map from some set of
-       conditions to a terminal type, that is, to tell  <STRONG>tset</STRONG>  "If
-       I'm  on this port at a particular speed, guess that I'm on
-       that kind of terminal".
+       The  <STRONG>-m</STRONG> options maps from some set of conditions to a ter-
+       minal type, that is, to tell <STRONG>tset</STRONG> "If I'm on this port  at
+       a  particular speed, guess that I'm on that kind of termi-
+       nal".
 
        The argument to the <STRONG>-m</STRONG> option consists of an optional port
        type, an optional operator, an optional baud rate specifi-
 
        The argument to the <STRONG>-m</STRONG> option consists of an optional port
        type, an optional operator, an optional baud rate specifi-
 
 
 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
-       The <STRONG>tset</STRONG> command appeared in BSD 3.0.  The <STRONG>ncurses</STRONG>  imple-
-       mentation  was lightly adapted from the 4.4BSD sources for
-       a terminfo environment by Eric S. Raymond &lt;esr@snark.thyr-
-       sus.com&gt;.
+       A <STRONG>reset</STRONG> command appeared in 2BSD (1979), written  by  Kurt
+       Shoens.
+
+       A  separate <STRONG>tset</STRONG> command was provided in 2BSD by Eric All-
+       man.  While the oldest published source (from  1979)  pro-
+       vides  both programs, Allman's comments in the 2BSD source
+       code indicate that he began work in October 1977, continu-
+       ing development over the next few years.
+
+       In  1980,  Eric  Allman modified <STRONG>tset</STRONG> to provide a "reset"
+       feature when the program was invoked as <STRONG>reset</STRONG>.
+
+       The <STRONG>ncurses</STRONG> implementation was lightly  adapted  from  the
+       4.4BSD  sources for a terminfo environment by Eric S. Ray-
+       mond &lt;esr@snark.thyrsus.com&gt;.
 
 
 </PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
 
 
 </PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
-       The  <STRONG>tset</STRONG>  utility has been provided for backward-compati-
-       bility with BSD environments (under  most  modern  UNIXes,
-       <STRONG>/etc/inittab</STRONG>  and  <STRONG>getty(1)</STRONG> can set <STRONG>TERM</STRONG> appropriately for
-       each dial-up line; this  obviates  what  was  <STRONG>tset</STRONG>'s  most
-       important  use).   This implementation behaves like 4.4BSD
-       tset, with a few exceptions specified here.
-
-       The <STRONG>-S</STRONG> option of BSD tset no longer works;  it  prints  an
-       error message to stderr and dies.  The <STRONG>-s</STRONG> option only sets
-       <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>.  Both of these changes are because  the
-       <STRONG>TERMCAP</STRONG>  variable  is  no longer supported under terminfo-
-       based <STRONG>ncurses</STRONG>, which makes <STRONG>tset</STRONG> <STRONG>-S</STRONG> useless (we made it die
-       noisily rather than silently induce lossage).
+       Neither IEEE Std 1003.1/The Open Group Base Specifications
+       Issue 7 (POSIX.1-2008) nor X/Open Curses Issue 7 documents
+       <STRONG>tset</STRONG> or <STRONG>reset</STRONG>.
+
+       The AT&amp;T <STRONG>tput</STRONG> utility (AIX,  HPUX,  Solaris)  incorporated
+       the  terminal-mode  manipulation  as well as termcap-based
+       features such as  resetting  tabstops  from  <STRONG>tset</STRONG>  in  BSD
+       (4.1c), presumably with the intention of making <STRONG>tset</STRONG> obso-
+       lete.  However, each of those systems still provides <STRONG>tset</STRONG>.
+       In  fact,  the  commonly-used  <STRONG>reset</STRONG>  utility is always an
+       alias for <STRONG>tset</STRONG>.
+
+       The <STRONG>tset</STRONG> utility provides for backward-compatibility  with
+       BSD  environments  (under most modern UNIXes, <STRONG>/etc/inittab</STRONG>
+       and <STRONG>getty(1)</STRONG> can set <STRONG>TERM</STRONG> appropriately for  each  dial-up
+       line;  this  obviates what was <STRONG>tset</STRONG>'s most important use).
+       This implementation behaves like 4.4BSD <STRONG>tset</STRONG>, with  a  few
+       exceptions specified here.
+
+       A  few  options are different because the <STRONG>TERMCAP</STRONG> variable
+       is no longer supported under terminfo-based <STRONG>ncurses</STRONG>:
+
+       <STRONG>o</STRONG>   The <STRONG>-S</STRONG> option of BSD <STRONG>tset</STRONG> no longer works;  it  prints
+           an error message to the standard error and dies.
+
+       <STRONG>o</STRONG>   The <STRONG>-s</STRONG> option only sets <STRONG>TERM</STRONG>, not <STRONG>TERMCAP</STRONG>.
 
        There  was  an  undocumented  4.4BSD feature that invoking
 
        There  was  an  undocumented  4.4BSD feature that invoking
-       tset via a link named `TSET` (or via any other name begin-
+       <STRONG>tset</STRONG> via a link named "TSET" (or via any other name begin-
        ning  with  an  upper-case letter) set the terminal to use
        upper-case only.  This feature has been omitted.
 
        ning  with  an  upper-case letter) set the terminal to use
        upper-case only.  This feature has been omitted.
 
        <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not documented or useful,
        but were retained as they appear to be in widespread  use.
        It  is  strongly recommended that any usage of these three
        <STRONG>-d</STRONG>, and <STRONG>-p</STRONG> options are similarly not documented or useful,
        but were retained as they appear to be in widespread  use.
        It  is  strongly recommended that any usage of these three
-       options be changed to use the <STRONG>-m</STRONG> option instead.   The  <STRONG>-n</STRONG>
-       option  remains, but has no effect.  The <STRONG>-adnp</STRONG> options are
-       therefore omitted from the usage summary above.
-
-       It is still permissible to specify  the  <STRONG>-e</STRONG>,  <STRONG>-i</STRONG>,  and  <STRONG>-k</STRONG>
-       options  without arguments, although it is strongly recom-
-       mended that such usage be fixed to explicitly specify  the
+       options be changed to use the <STRONG>-m</STRONG> option instead.  The  <STRONG>-a</STRONG>,
+       <STRONG>-d</STRONG>,  and  <STRONG>-p</STRONG>  options are therefore omitted from the usage
+       summary above.
+
+       Very old systems, e.g., 3BSD, used  a  different  terminal
+       driver  which was replaced in 4BSD in the early 1980s.  To
+       accommodate these older systems, the 4BSD <STRONG>tset</STRONG> provided  a
+       <STRONG>-n</STRONG>  option  to specify that the new terminal driver should
+       be  used.   This  implementation  does  not  provide  that
+       choice.
+
+       It  is  still  permissible  to  specify the <STRONG>-e</STRONG>, <STRONG>-i</STRONG>, and <STRONG>-k</STRONG>
+       options without arguments, although it is strongly  recom-
+       mended  that such usage be fixed to explicitly specify the
        character.
 
        character.
 
-       As  of  4.4BSD,  executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG> no longer implies
+       As of 4.4BSD, executing <STRONG>tset</STRONG> as <STRONG>reset</STRONG>  no  longer  implies
        the <STRONG>-Q</STRONG> option.  Also, the interaction between the - option
        and the <EM>terminal</EM> argument in some historic implementations
        of <STRONG>tset</STRONG> has been removed.
 
        the <STRONG>-Q</STRONG> option.  Also, the interaction between the - option
        and the <EM>terminal</EM> argument in some historic implementations
        of <STRONG>tset</STRONG> has been removed.
 
+       The <STRONG>-c</STRONG> and <STRONG>-w</STRONG> options are not found in earlier implementa-
+       tions.  However, a different  window  size-change  feature
+       was provided in 4.4BSD.
+
+       <STRONG>o</STRONG>   In  4.4BSD, <STRONG>tset</STRONG> uses the window size from the termcap
+           description to set the window size if <STRONG>tset</STRONG> is not able
+           to obtain the window size from the operating system.
+
+       <STRONG>o</STRONG>   In   ncurses,  <STRONG>tset</STRONG>  obtains  the  window  size  using
+           <STRONG>setupterm</STRONG>, which may be from the operating system, the
+           <STRONG>LINES</STRONG>  and <STRONG>COLUMNS</STRONG> environment variables or the termi-
+           nal description.
+
+       Obtaining the window size from the terminal description is
+       common  to  both  implementations, but considered obsoles-
+       cent.  Its only practical use is for  hardware  terminals.
+       Generally  speaking,  a window size would be unset only if
+       there were some problem obtaining the value from the oper-
+       ating  system  (and <STRONG>setupterm</STRONG> would still fail).  For that
+       reason, the <STRONG>LINES</STRONG> and <STRONG>COLUMNS</STRONG> environment variables may be
+       useful  for  working  around  window-size problems.  Those
+       have the drawback that if the  window  is  resized,  those
+       variables  must  be recomputed and reassigned.  To do this
+       more easily, use the <STRONG><A HREF="resize.1.html">resize(1)</A></STRONG> program.
+
 
 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
        The <STRONG>tset</STRONG> command uses these environment variables:
 
 </PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
        The <STRONG>tset</STRONG> command uses these environment variables:
 
        TERMCAP
             may denote the location of a termcap database.  If it
 
        TERMCAP
             may denote the location of a termcap database.  If it
-            is not an absolute pathname, e.g., begins with a `/',
+            is not an absolute pathname, e.g., begins with a "/",
             <STRONG>tset</STRONG> removes the variable from the environment before
             looking for the terminal description.
 
             <STRONG>tset</STRONG> removes the variable from the environment before
             looking for the terminal description.
 
        <STRONG>csh(1)</STRONG>,   <STRONG>sh(1)</STRONG>,   <STRONG>stty(1)</STRONG>,   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,   <STRONG>tty(4)</STRONG>,
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
 
        <STRONG>csh(1)</STRONG>,   <STRONG>sh(1)</STRONG>,   <STRONG>stty(1)</STRONG>,   <STRONG><A HREF="curs_terminfo.3x.html">curs_terminfo(3x)</A></STRONG>,   <STRONG>tty(4)</STRONG>,
        <STRONG><A HREF="terminfo.5.html">terminfo(5)</A></STRONG>, <STRONG>ttys(5)</STRONG>, <STRONG>environ(7)</STRONG>
 
-       This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20160130).
+       This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20160820).