mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2024-12-27 07:49:06 +08:00
5606eb4861
+ add check in tic for some syntax errors of delays, as well as use of proportional delays for non-line capabilities. + document history of the clear program and the E3 extension, prompted by various discussions including http://unix.stackexchange.com/questions/87469/clearing-the-old-scrollback-buffer
418 lines
22 KiB
HTML
418 lines
22 KiB
HTML
<!--
|
|
****************************************************************************
|
|
* Copyright (c) 1998-2013,2016 Free Software Foundation, Inc. *
|
|
* *
|
|
* Permission is hereby granted, free of charge, to any person obtaining a *
|
|
* copy of this software and associated documentation files (the *
|
|
* "Software"), to deal in the Software without restriction, including *
|
|
* without limitation the rights to use, copy, modify, merge, publish, *
|
|
* distribute, distribute with modifications, sublicense, and/or sell *
|
|
* copies of the Software, and to permit persons to whom the Software is *
|
|
* furnished to do so, subject to the following conditions: *
|
|
* *
|
|
* The above copyright notice and this permission notice shall be included *
|
|
* in all copies or substantial portions of the Software. *
|
|
* *
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
|
|
* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
|
|
* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
|
|
* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
|
|
* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
|
|
* THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
|
|
* *
|
|
* Except as contained in this notice, the name(s) of the above copyright *
|
|
* holders shall not be used in advertising or otherwise to promote the *
|
|
* sale, use or other dealings in this Software without prior written *
|
|
* authorization. *
|
|
****************************************************************************
|
|
* @Id: tset.1,v 1.43 2016/08/06 23:16:39 tom Exp @
|
|
-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
|
|
<meta name="generator" content="Manpage converted by man2html - see http://invisible-island.net/scripts/readme.html#others_scripts">
|
|
<TITLE>tset 1</TITLE>
|
|
<link rev=made href="mailto:bug-ncurses@gnu.org">
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
</HEAD>
|
|
<BODY>
|
|
<H1 class="no-header">tset 1</H1>
|
|
<PRE>
|
|
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG> <STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
|
|
|
|
|
|
|
|
|
|
</PRE><H2><a name="h2-NAME">NAME</a></H2><PRE>
|
|
<STRONG>tset</STRONG>, <STRONG>reset</STRONG> - terminal initialization
|
|
|
|
|
|
</PRE><H2><a name="h2-SYNOPSIS">SYNOPSIS</a></H2><PRE>
|
|
<STRONG>tset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
|
|
[<EM>terminal</EM>]
|
|
<STRONG>reset</STRONG> [<STRONG>-IQVcqrsw</STRONG>] [<STRONG>-</STRONG>] [<STRONG>-e</STRONG> <EM>ch</EM>] [<STRONG>-i</STRONG> <EM>ch</EM>] [<STRONG>-k</STRONG> <EM>ch</EM>] [<STRONG>-m</STRONG> <EM>mapping</EM>]
|
|
[<EM>terminal</EM>]
|
|
|
|
|
|
</PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
|
|
|
|
</PRE><H3><a name="h3-tset---initialization">tset - initialization</a></H3><PRE>
|
|
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.
|
|
|
|
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".
|
|
|
|
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).
|
|
Then, if the terminal type begins with a question mark
|
|
("?"), 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-
|
|
minal type.
|
|
|
|
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-
|
|
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>
|
|
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
|
|
|
|
<EM><LF></EM><STRONG>reset</STRONG><EM><LF></EM>
|
|
|
|
(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
|
|
echo the command.
|
|
|
|
|
|
</PRE><H2><a name="h2-OPTIONS">OPTIONS</a></H2><PRE>
|
|
The options are as follows:
|
|
|
|
<STRONG>-c</STRONG> Set control characters and modes.
|
|
|
|
<STRONG>-e</STRONG> Set the erase character to <EM>ch</EM>.
|
|
|
|
<STRONG>-I</STRONG> Do not send the terminal or tab initialization
|
|
strings to the terminal.
|
|
|
|
<STRONG>-i</STRONG> Set the interrupt character to <EM>ch</EM>.
|
|
|
|
<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.
|
|
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
|
|
and line kill characters. Normally <STRONG>tset</STRONG> displays 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>-r</STRONG> Print the terminal type to the standard error output.
|
|
|
|
<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>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-
|
|
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
|
|
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
|
|
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
|
|
terminal used on such ports.
|
|
|
|
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-
|
|
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 "!"
|
|
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
|
|
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-
|
|
ble mapping is used.
|
|
|
|
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-
|
|
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
|
|
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>
|
|
<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
|
|
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
|
|
marks ("!").
|
|
|
|
|
|
</PRE><H2><a name="h2-HISTORY">HISTORY</a></H2><PRE>
|
|
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 <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.
|
|
|
|
|
|
</PRE><H2><a name="h2-ENVIRONMENT">ENVIRONMENT</a></H2><PRE>
|
|
The <STRONG>tset</STRONG> command uses these environment variables:
|
|
|
|
SHELL
|
|
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
|
|
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 "/",
|
|
<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
|
|
(BSD versions only).
|
|
|
|
/usr/share/terminfo
|
|
terminal capability database
|
|
|
|
|
|
</PRE><H2><a name="h2-SEE-ALSO">SEE ALSO</a></H2><PRE>
|
|
<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 20161119).
|
|
|
|
|
|
|
|
<STRONG><A HREF="tset.1.html">tset(1)</A></STRONG>
|
|
</PRE>
|
|
<div class="nav">
|
|
<ul>
|
|
<li><a href="#h2-NAME">NAME</a></li>
|
|
<li><a href="#h2-SYNOPSIS">SYNOPSIS</a></li>
|
|
<li><a href="#h2-DESCRIPTION">DESCRIPTION</a>
|
|
<ul>
|
|
<li><a href="#h3-tset---initialization">tset - initialization</a></li>
|
|
<li><a href="#h3-reset---reinitialization">reset - reinitialization</a></li>
|
|
</ul>
|
|
</li>
|
|
<li><a href="#h2-OPTIONS">OPTIONS</a></li>
|
|
<li><a href="#h2-SETTING-THE-ENVIRONMENT">SETTING THE ENVIRONMENT</a></li>
|
|
<li><a href="#h2-TERMINAL-TYPE-MAPPING">TERMINAL TYPE MAPPING</a></li>
|
|
<li><a href="#h2-HISTORY">HISTORY</a></li>
|
|
<li><a href="#h2-COMPATIBILITY">COMPATIBILITY</a></li>
|
|
<li><a href="#h2-ENVIRONMENT">ENVIRONMENT</a></li>
|
|
<li><a href="#h2-FILES">FILES</a></li>
|
|
<li><a href="#h2-SEE-ALSO">SEE ALSO</a></li>
|
|
</ul>
|
|
</div>
|
|
</BODY>
|
|
</HTML>
|