tset(1) tset(1)
NAME
tset, reset - set or reset the teletype bits to a sensible
state
SYNOPSIS
tset [-e] [-k] [-I] [-m port] [-Q] [-s] [-S]
reset
DESCRIPTION
tset causes terminal-dependent processing, such as setting
erase and kill characters, setting or resetting delays, and
the like. It first determines the type of terminal
involved, names for which are specified by the /etc/termcap
data base, and then does necessary initializations and mode
settings. In the case where no argument types are
specified, tset simply reads the terminal type out of the
environment variable TERM and re-initializes the terminal.
The rest of this manual concerns itself with type
initialization, done typically once at login, and flag
options used at initialization time to determine the
terminal type and set up terminal modes.
When used in a startup script .profile (for sh(1) users) or
.login (for csh(1) users), it is desirable to give
information about the types of terminal usually used, for
terminals which are connected to the computer through a
modem. These ports are initially identified as being dialup
or plugboard or arpanet, etc. To specify which terminal
type is usually used on these ports, -m is followed by the
appropriate port type identifier, an optional baud-rate
specification, and the terminal type to be used if the
mapping conditions are satisfied. If more than one mapping
is specified, the first applicable mapping prevails. A
missing type identifier matches all identifiers.
Baud rates are specified as with stty(1), and are compared
with the speed of the diagnostic output (which is almost
always the control terminal). The baud rate test may be any
combination of: >, =, <, @, and !; @ is a synonym for = and
! inverts the sense of the test. To avoid problems with
metacharacters, it is best to place the entire argument to
-m within '' characters; users of csh(1) must also put a \
before any ! used here.
Thus:
tset -m 'dialup>300:adm3a' -m dialup:dw2
-m 'plugboard:?adm3a'
causes the terminal type to be set to an adm3a if the port
in use is a dialup at a speed greater than 300 baud; to a
dw2 if the port is (otherwise) a dialup (i.e., at 300 baud
Page 1 (last mod. 1/22/87)
tset(1) tset(1)
or less). If the type above begins with a question mark,
you are asked if you really want that type. A null response
means to use that type; otherwise, another type can be
entered which will be used instead. Thus, in this case, you
will be queried on a plugboard port as to whether you are
using an adm3a. For other ports the port type will be taken
from the /etc/ttytype file or a final, default type flag
option may be given on the command line, not preceded by a
-m.
It is often desirable to return the terminal type, as
specified by the -m flag options, and information about the
terminal to a shell's environment. This can be done using
the -s flag option; using the Bourne shell, sh(1):
eval `tset -s options ... `
or using the C shell, csh(1):
tset -s options ... > tset$$
source tset$$
rm tset$$
These commands cause tset to generate as output a sequence
of shell commands which place the variables TERM and TERMCAP
in the environment; see environ(5).
Once it knows the terminal type, tset engages in terminal
mode setting. This normally involves sending an
initialization sequence to the terminal and setting the
single character erase (and optionally the line-kill (full
line erase)) characters.
On terminals that can backspace but not overstrike (such as
a CRT), and when the erase character is the default erase
character (``#'' on standard systems), the erase character
is changed to a CONTROL-h (backspace).
Other flag options are:
-e set the erase character to be the named character c on
all terminals, the default being the backspace character
on the terminal, usually CONTROL-h.
-k is similar to -e, but for the line kill character,
rather than the erase character; c defaults to CONTROL-x
(for purely historical reasons); CONTROL-u is the
preferred setting. No kill processing is done if -k is
not specified.
-I suppresses outputting terminal initialization strings.
Page 2 (last mod. 1/22/87)
tset(1) tset(1)
-Q suppresses printing the Erase set to and Kill set to
messages.
-S Outputs the strings to be assigned to TERM and TERMCAP
in the environment, rather than commands for a shell.
reset sets the terminal to cooked mode, turns off cbreak and
raw modes, turns on nl, and restores special characters that
are undefined to their default values.
This is most useful after a program dies, leaving a terminal
in a funny state; you have to type newlineresetnewline to
get it to work then to the shell, as RETURN often doesn't
work; often none of this will echo.
It is a good idea to follow reset with tset(1) .
EXAMPLE
A typical csh .login file using tset would be:
set noglob
set term = (`tset -e -S -r -d\?h19`)
setenv TERM "$term[1]"
setenv TERMCAP "$term[2]"
unset term noglob
This .login sets the environment variables TERM and TERMCAP
for the user's current terminal according to the file
/etc/ttytype. If the terminal line is a dialup line, the
user is prompted for the proper terminal type.
reset
returns the user's terminal to a usable state after being
accidentally set by an interrupted process.
FILES
/bin/tset
/bin/reset
/etc/ttytype terminal ID to type map database
/etc/termcap terminal capability database
SEE ALSO
csh(1), sh(1), stty(1), environ(5), ttytype(4), termcap(5).
BUGS
Should be merged with stty(1).
reset doesn't set tabs properly; it can't intuit personal
Page 3 (last mod. 1/22/87)
tset(1) tset(1)
choices for interrupt and line kill characters, so it leaves
these set to the local system standards.
It could well be argued that the shell should be responsible
for insuring that the terminal remains in a sane state; this
would eliminate the need for this program.
NOTES
For compatibility with earlier versions of tset, a number of
flags are accepted whose use is discouraged:
-d type equivalent to -m dialup:type
-p type equivalent to -m plugboard:type
-a type equivalent to -m arpanet:type
-E c Sets the erase character to c only if the
terminal can backspace.
- prints the terminal type on the standard output
-r prints the terminal type on the diagnostic
output.
Page 4 (last mod. 1/22/87)