-</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
- A <STRONG>reset</STRONG> command appeared in 2BSD (April 1979), written by
- Kurt Shoens. This program set the <EM>erase</EM> and <EM>kill</EM> charac-
- ters to <STRONG>^H</STRONG> (backspace) and <STRONG>@</STRONG> respectively. Mark Horton
- improved that in 3BSD (October 1979), adding <EM>intr</EM>, <EM>quit</EM>,
- <EM>start</EM>/<EM>stop</EM> and <EM>eof</EM> characters as well as changing the pro-
- gram to avoid modifying any user settings.
-
- Later in 4.1BSD (December 1980), Mark Horton added a call
- to the <STRONG>tset</STRONG> program using the <STRONG>-I</STRONG> and <STRONG>-Q</STRONG> options, i.e.,
- using that to improve the terminal modes. With those
- options, that version of <STRONG>reset</STRONG> did not use the termcap
- database.
-
- A separate <STRONG>tset</STRONG> command was provided in 2BSD by Eric All-
- man. While the oldest published source (from 1979) pro-
- vides both <STRONG>tset</STRONG> and <STRONG>reset</STRONG>, Allman's comments in the 2BSD
- source code indicate that he began work in October 1977,
- continuing development over the next few years.
-
- In September 1980, Eric Allman modified <STRONG>tset</STRONG>, adding the
- code from the existing "reset" feature when <STRONG>tset</STRONG> was
- invoked as <STRONG>reset</STRONG>. Rather than simply copying the existing
- program, in this merged version, <STRONG>tset</STRONG> used the termcap
- database to do additional (re)initialization of the termi-
- nal. This version appeared in 4.1cBSD, late in 1982.
-
- Other developers (e.g., Keith Bostic and Jim Bloom) con-
- tinued to modify <STRONG>tset</STRONG> until 4.4BSD was released in 1993.
-
- The <STRONG>ncurses</STRONG> implementation was lightly adapted from the
- 4.4BSD sources for a terminfo environment by Eric S. Ray-
- mond <esr@snark.thyrsus.com>.
-
-
-</PRE><H2><a name="h2-COMPATIBILITY">COMPATIBILITY</a></H2><PRE>
- 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&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
- <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.
-
- The <STRONG>-A</STRONG>, <STRONG>-E</STRONG>, <STRONG>-h</STRONG>, <STRONG>-u</STRONG> and <STRONG>-v</STRONG> options were deleted from the
- <STRONG>tset</STRONG> utility in 4.4BSD. None of them were documented in
- 4.3BSD and all are of limited utility at best. The <STRONG>-a</STRONG>,
- <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>-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.
-
- 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>-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.