X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftset.1.html;h=45dc271b4b256330aab15f0f4be48f731c9d35ef;hb=dcfe712cb3492636e8d50c9867cf05aec089a576;hp=8d2b4e3edd4fe746e46f5172898fec0e833f07b5;hpb=b11cef1e315b58820ea0cde239ebf2f741ef8948;p=ncurses.git diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html index 8d2b4e3e..45dc271b 100644 --- a/doc/html/man/tset.1.html +++ b/doc/html/man/tset.1.html @@ -1,6 +1,6 @@ @@ -45,75 +45,123 @@ - -
+
tset, reset - terminal initialization --
+
tset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] reset [-IQVcqrsw] [-] [-e ch] [-i ch] [-k ch] [-m mapping] [terminal] --
- Tset initializes terminals. Tset 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, tset retrieves the current terminal mode settings + for your terminal. It does this by successively testing + + o the standard error, + + o standard output, + + o standard input and + + o ultimately "/dev/tty" + + to obtain terminal settings. Having retrieved these set- + tings, tset remembers which file descriptor to use when + updating settings. + + Next, tset determines the type of terminal that you are + using. This determination is done as follows, using the + first terminal type found. 1. The terminal argument specified on the command line. 2. The value of the TERM environmental variable. - 3. (BSD systems only.) The terminal type associated with - the standard error output device in the /etc/ttys 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 /etc/ttys file. + (On System-V-like UNIXes and systems using that conven- tion, getty does this job by setting TERM according to the type passed to it by /etc/inittab.) 4. The default terminal type, "unknown". - If the terminal type was not specified on the command- - line, the -m option mappings are then applied (see the + If the terminal type was not specified on the command- + line, the -m option mappings are then applied (see the section TERMINAL TYPE MAPPING 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- - 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. - Use the -c or -w option to select only the window sizing - versus the other initialization. If neither option is - given, both are assumed. - - When invoked as reset, tset 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 - - <LF>reset<LF> - - (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. + 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 terminal + description for the terminal is retrieved. If no terminal + description is found for the type, the user is prompted + for another terminal type. + + Once the terminal description is retrieved, + + o if the "-w" option is enabled, tset may update the + terminal's window size. + + If the window size cannot be obtained from the operat- + ing system, but the terminal description (or environ- + ment, e.g., LINES and COLUMNS variables specify this), + use this to set the operating system's notion of the + window size. + + o if the "-c" option is enabled, the backspace, inter- + rupt and line kill characters (among many other + things) are set + + o unless the "-I" option is enabled, the terminal and + tab initialization strings are sent to the standard + error output, and tset waits one second (in case a + hardware reset was issued). + + o Finally, if the erase, interrupt and line kill charac- + ters have changed, or are not set to their default + values, their values are displayed to the standard + error output. + + +
+ When invoked as reset, tset sets the terminal modes to + "sane" values: + + o sets cooked and echo modes, + + o turns off cbreak and raw modes, + + o turns on newline translation and + o resets any unset special characters to their default + values + + before doing the terminal initialization described above. + Also, rather than using the terminal initialization + strings, it uses the terminal reset strings. + + The reset command is useful after a program dies leaving a + terminal in an abnormal state: + + o you may have to type + + <LF>reset<LF> + + (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. + + o Also, the terminal will often not echo the command. + + +
The options are as follows: -c Set control characters and modes. @@ -127,141 +175,180 @@ -k Set the line kill character to ch. - -m Specify a mapping from a port type to a terminal. + -m Specify a mapping from a port type to a terminal. See the section TERMINAL TYPE MAPPING for more infor- mation. - -Q Do not display any values for the erase, interrupt + -Q Do not display any values for the erase, interrupt and line kill characters. Normally tset displays the - values for control characters which differ from the + values for control characters which differ from the system's default values. - -q 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. + -q 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. -r Print the terminal type to the standard error output. - -s Print the sequence of shell commands to initialize + -s Print the sequence of shell commands to initialize the environment variable TERM to the standard output. See the section SETTING THE ENVIRONMENT for details. -V reports the version of ncurses which was used in this program, and exits. - -w Resize the window to match the size deduced via - setupterm. Normally this has no effect, unless + -w Resize the window to match the size deduced via + setupterm(3x). Normally this has no effect, unless setupterm is not able to detect the window size. The arguments for the -e, -i, and -k 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 -c or -w is given, both options are assumed. --
- 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 -s option. When the -s option is specified, the commands to enter the - information into the shell's environment are written to - the standard output. If the SHELL environmental variable - ends in "csh", the commands are for csh, otherwise, they - are for sh. Note, the csh commands set and unset the - shell variable noglob, leaving it unset. The following - line in the .login or .profile files will initialize the + information into the shell's environment are written to + the standard output. If the SHELL environmental variable + ends in "csh", the commands are for csh, otherwise, they + are for sh. Note, the csh commands set and unset the + shell variable noglob, leaving it unset. The following + line in the .login or .profile files will initialize the environment correctly: eval `tset -s options ... ` --
+
When the terminal is not hardwired into the system (or the current system information is incorrect) the terminal type - derived from the /etc/ttys file or the TERM environmental - variable is often something generic like network, dialup, - or unknown. When tset is used in a startup script it is - often desirable to provide information about the type of + derived from the /etc/ttys file or the TERM environmental + variable is often something generic like network, dialup, + or unknown. When tset 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 -m option is to map from some set of - conditions to a terminal type, that is, to tell tset "If - I'm on this port at a particular speed, guess that I'm on - that kind of terminal". + The -m options maps from some set of conditions to a ter- + minal type, that is, to tell tset "If I'm on this port at + a particular speed, guess that I'm on that kind of termi- + nal". The argument to the -m 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 -m 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 -m 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: dialup>9600:vt100. 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 dialup, and the baud rate - is greater than 9600 baud, a terminal type of vt100 will + is greater than 9600 baud, a terminal type of vt100 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, -m + type will match any port type. For example, -m dialup:vt100 -m :?xterm 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 -m option - argument. Also, to avoid problems with meta-characters, - it is suggested that the entire -m option argument be - placed within single quote characters, and that csh users - insert a backslash character ("\") before any exclamation + No whitespace characters are permitted in the -m option + argument. Also, to avoid problems with meta-characters, + it is suggested that the entire -m option argument be + placed within single quote characters, and that csh users + insert a backslash character ("\") before any exclamation marks ("!"). --
- The tset command appeared in BSD 3.0. The ncurses imple- - mentation was lightly adapted from the 4.4BSD sources for - a terminfo environment by Eric S. Raymond <esr@snark.thyr- - sus.com>. - - --
- The tset utility has been provided for backward-compati- - bility with BSD environments (under most modern UNIXes, - /etc/inittab and getty(1) can set TERM appropriately for - each dial-up line; this obviates what was tset's most - important use). This implementation behaves like 4.4BSD - tset, with a few exceptions specified here. - - The -S option of BSD tset no longer works; it prints an - error message to stderr and dies. The -s option only sets - TERM, not TERMCAP. Both of these changes are because the - TERMCAP variable is no longer supported under terminfo- - based ncurses, which makes tset -S useless (we made it die - noisily rather than silently induce lossage). +
+ A reset command appeared in 2BSD (April 1979), written by + Kurt Shoens. This program set the erase and kill charac- + ters to ^H (backspace) and @ respectively. Mark Horton + improved that in 3BSD (October 1979), adding intr, quit, + start/stop and eof 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 tset program using the -I and -Q options, i.e., + using that to improve the terminal modes. With those + options, that version of reset did not use the termcap + database. + + A separate tset command was provided in 2BSD by Eric All- + man. While the oldest published source (from 1979) pro- + vides both tset and reset, 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 tset, adding the + code from the existing "reset" feature when tset was + invoked as reset. Rather than simply copying the existing + program, in this merged version, tset 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 tset until 4.4BSD was released in 1993. + + The ncurses implementation was lightly adapted from the + 4.4BSD sources for a terminfo environment by Eric S. Ray- + mond <esr@snark.thyrsus.com>. + + +
+ Neither IEEE Std 1003.1/The Open Group Base Specifications + Issue 7 (POSIX.1-2008) nor X/Open Curses Issue 7 documents + tset or reset. + + The AT&T tput utility (AIX, HPUX, Solaris) incorporated + the terminal-mode manipulation as well as termcap-based + features such as resetting tabstops from tset in BSD + (4.1c), presumably with the intention of making tset obso- + lete. However, each of those systems still provides tset. + In fact, the commonly-used reset utility is always an + alias for tset. + + The tset utility provides for backward-compatibility with + BSD environments (under most modern UNIXes, /etc/inittab + and getty(1) can set TERM appropriately for each dial-up + line; this obviates what was tset's most important use). + This implementation behaves like 4.4BSD tset, with a few + exceptions specified here. + + A few options are different because the TERMCAP variable + is no longer supported under terminfo-based ncurses: + + o The -S option of BSD tset no longer works; it prints + an error message to the standard error and dies. + + o The -s option only sets TERM, not TERMCAP. There was an undocumented 4.4BSD feature that invoking - tset via a link named `TSET` (or via any other name begin- + tset 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. @@ -271,23 +358,54 @@ -d, and -p 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 -m option instead. The -n - option remains, but has no effect. The -adnp options are - therefore omitted from the usage summary above. - - It is still permissible to specify the -e, -i, and -k - options without arguments, although it is strongly recom- - mended that such usage be fixed to explicitly specify the + options be changed to use the -m option instead. The -a, + -d, and -p 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 tset provided a + -n 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 -e, -i, and -k + options without arguments, although it is strongly recom- + mended that such usage be fixed to explicitly specify the character. - As of 4.4BSD, executing tset as reset no longer implies + As of 4.4BSD, executing tset as reset no longer implies the -Q option. Also, the interaction between the - option and the terminal argument in some historic implementations of tset has been removed. - --
+ The -c and -w options are not found in earlier implementa- + tions. However, a different window size-change feature + was provided in 4.4BSD. + + o In 4.4BSD, tset uses the window size from the termcap + description to set the window size if tset is not able + to obtain the window size from the operating system. + + o In ncurses, tset obtains the window size using + setupterm, which may be from the operating system, the + LINES and COLUMNS 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 setupterm would still fail). For that + reason, the LINES and COLUMNS 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 resize(1) program. + + +
The tset command uses these environment variables: SHELL @@ -299,13 +417,12 @@ 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 "/", tset removes the variable from the environment before looking for the terminal description. --
+
/etc/ttys system port name to terminal type mapping database (BSD versions only). @@ -314,12 +431,11 @@ terminal capability database --
+
csh(1), sh(1), stty(1), curs_terminfo(3x), tty(4), terminfo(5), ttys(5), environ(7) - This describes ncurses version 6.0 (patch 20151205). + This describes ncurses version 6.0 (patch 20170304). @@ -329,7 +445,13 @@