* 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.37 2016/05/21 23:36:51 tom Exp @
-->
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<HTML>
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.
+ their values are displayed to the standard error output.
</PRE><H3><a name="h3-reset---reinitialization">reset - reinitialization</a></H3><PRE>
- When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets cooked and echo modes,
- turns off cbreak and raw modes, turns on newline transla-
- tion and resets any unset special characters to their
- default values before doing the terminal initialization
- described above. This is useful after a program dies
- leaving a terminal in an abnormal state. Note, you may
+ When invoked as <STRONG>reset</STRONG>, <STRONG>tset</STRONG> sets cooked and echo modes,
+ turns off cbreak and raw modes, turns on newline transla-
+ tion and resets any unset special characters to their
+ default values before doing the terminal initialization
+ described above. This is useful after a program dies
+ leaving a terminal in an abnormal state. Note, you may
have to type
<STRONG><LF>reset<LF></STRONG>
(the line-feed character is normally control-J) to get the
terminal to work, as carriage-return may no longer work in
- the abnormal state. Also, the terminal will often not
+ the abnormal state. Also, the terminal will often not
echo the command.
<STRONG>-k</STRONG> Set the line kill character to <EM>ch</EM>.
- <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
+ <STRONG>-m</STRONG> Specify a mapping from a port type to a terminal.
See the section <STRONG>TERMINAL</STRONG> <STRONG>TYPE</STRONG> <STRONG>MAPPING</STRONG> for more infor-
mation.
- <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
+ <STRONG>-Q</STRONG> Do not display any values for the erase, interrupt
and line kill characters. Normally <STRONG>tset</STRONG> displays the
- values for control characters which differ from the
+ values for control characters which differ from the
system's default values.
- <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.
+ <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.
<STRONG>-r</STRONG> Print the terminal type to the standard error output.
- <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
+ <STRONG>-s</STRONG> Print the sequence of shell commands to initialize
the environment variable <STRONG>TERM</STRONG> to the standard output.
See the section <STRONG>SETTING</STRONG> <STRONG>THE</STRONG> <STRONG>ENVIRONMENT</STRONG> for details.
<STRONG>-V</STRONG> reports the version of ncurses which was used in this
program, and exits.
- <STRONG>-w</STRONG> Resize the window to match the size deduced via
+ <STRONG>-w</STRONG> Resize the window to match the size deduced via
<STRONG>setupterm</STRONG>. Normally this has no effect, unless
<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".
+ 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
- information about the terminal's capabilities into the
+ It is often desirable to enter the terminal type and
+ information about the terminal's capabilities into the
shell's environment. This is done using the <STRONG>-s</STRONG> option.
When the <STRONG>-s</STRONG> option is specified, the commands to enter the
- information into the shell's environment are written to
- the standard output. If the <STRONG>SHELL</STRONG> environmental variable
- ends in "csh", the commands are for <STRONG>csh</STRONG>, otherwise, they
- are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the
- shell variable <STRONG>noglob</STRONG>, leaving it unset. The following
- line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the
+ information into the shell's environment are written to
+ the standard output. If the <STRONG>SHELL</STRONG> environmental variable
+ ends in "csh", the commands are for <STRONG>csh</STRONG>, otherwise, they
+ are for <STRONG>sh</STRONG>. Note, the <STRONG>csh</STRONG> commands set and unset the
+ shell variable <STRONG>noglob</STRONG>, leaving it unset. The following
+ line in the <STRONG>.login</STRONG> or <STRONG>.profile</STRONG> files will initialize the
environment correctly:
eval `tset -s options ... `
</PRE><H2><a name="h2-TERMINAL-TYPE-MAPPING">TERMINAL TYPE MAPPING</a></H2><PRE>
When the terminal is not hardwired into the system (or the
current system information is incorrect) the terminal type
- derived from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
- variable is often something generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>,
- or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a startup script it is
- often desirable to provide information about the type of
+ derived from the <EM>/etc/ttys</EM> file or the <STRONG>TERM</STRONG> environmental
+ variable is often something generic like <STRONG>network</STRONG>, <STRONG>dialup</STRONG>,
+ or <STRONG>unknown</STRONG>. When <STRONG>tset</STRONG> is used in a startup script it is
+ 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
+ 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 argument to the <STRONG>-m</STRONG> option consists of an optional port
type, an optional operator, an optional baud rate specifi-
- cation, an optional colon (":") character and a terminal
- type. The port type is a string (delimited by either the
+ cation, an optional colon (":") character and a terminal
+ type. The port type is a string (delimited by either the
operator or the colon character). The operator may be any
- combination of ">", "<", "@", and "!"; ">" means greater
- than, "<" means less than, "@" means equal to and "!"
+ combination of ">", "<", "@", and "!"; ">" means greater
+ than, "<" means less than, "@" means equal to and "!"
inverts the sense of the test. The baud rate is specified
as a number and is compared with the speed of the standard
- error output (which should be the control terminal). The
+ error output (which should be the control terminal). The
terminal type is a string.
If the terminal type is not specified on the command line,
- the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
- port type and baud rate match the mapping, the terminal
- type specified in the mapping replaces the current type.
- If more than one mapping is specified, the first applica-
+ the <STRONG>-m</STRONG> mappings are applied to the terminal type. If the
+ port type and baud rate match the mapping, the terminal
+ type specified in the mapping replaces the current type.
+ If more than one mapping is specified, the first applica-
ble mapping is used.
- For example, consider the following mapping:
+ For example, consider the following mapping:
<STRONG>dialup>9600:vt100</STRONG>. The port type is dialup , the operator
- is >, the baud rate specification is 9600, and the termi-
+ is >, the baud rate specification is 9600, and the termi-
nal type is vt100. The result of this mapping is to spec-
ify that if the terminal type is <STRONG>dialup</STRONG>, and the baud rate
- is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
+ is greater than 9600 baud, a terminal type of <STRONG>vt100</STRONG> will
be used.
If no baud rate is specified, the terminal type will match
any baud rate. If no port type is specified, the terminal
- type will match any port type. For example, <STRONG>-m</STRONG>
+ type will match any port type. For example, <STRONG>-m</STRONG>
<STRONG>dialup:vt100</STRONG> <STRONG>-m</STRONG> <STRONG>:?xterm</STRONG> will cause any dialup port,
regardless of baud rate, to match the terminal type vt100,
- and any non-dialup port type to match the terminal type
- ?xterm. Note, because of the leading question mark, the
- user will be queried on a default port as to whether they
+ and any non-dialup port type to match the terminal type
+ ?xterm. Note, because of the leading question mark, the
+ user will be queried on a default port as to whether they
are actually using an xterm terminal.
- No whitespace characters are permitted in the <STRONG>-m</STRONG> option
- argument. Also, to avoid problems with meta-characters,
- it is suggested that the entire <STRONG>-m</STRONG> option argument be
- placed within single quote characters, and that <STRONG>csh</STRONG> users
- insert a backslash character ("\") before any exclamation
+ No whitespace characters are permitted in the <STRONG>-m</STRONG> option
+ argument. Also, to avoid problems with meta-characters,
+ it is suggested that the entire <STRONG>-m</STRONG> option argument be
+ placed within single quote characters, and that <STRONG>csh</STRONG> users
+ insert a backslash character ("\") before any exclamation
marks ("!").
</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
+ 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 <esr@snark.thyr-
sus.com>.
</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
+ 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 <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
+ 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-
+ <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).
- There was an undocumented 4.4BSD feature that invoking
- tset via a link named `TSET` (or via any other name begin-
- ning with an upper-case letter) set the terminal to use
+ 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>,
+ 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>-n</STRONG>
- option remains, but has no effect. The <STRONG>-adnp</STRONG> options are
- therefore omitted from the usage summary above.
+ 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-
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:
tells <STRONG>tset</STRONG> whether to initialize <STRONG>TERM</STRONG> using <STRONG>sh</STRONG> or <STRONG>csh</STRONG>
syntax.
- TERM Denotes your terminal type. Each terminal type is
+ TERM Denotes your terminal type. Each terminal type is
distinct, though many are similar.
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.
</PRE><H2><a name="h2-FILES">FILES</a></H2><PRE>
/etc/ttys
- system port name to terminal type mapping database
+ system port name to terminal type mapping database
(BSD versions only).
/usr/share/terminfo
<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 20160326).
+ This describes <STRONG>ncurses</STRONG> version 6.0 (patch 20160723).