X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Ftset.1.html;h=70599a4e3345171dcced9076dcbe1aa937705e94;hb=ce4803687b821efbc5fb2c5a5f06d69cd4dc2656;hp=7eae63c7c7edf7283b5bb6b2618f16021fdcb5c0;hpb=59c1a9740d123db3cecafe76e18f7848081a670b;p=ncurses.git diff --git a/doc/html/man/tset.1.html b/doc/html/man/tset.1.html index 7eae63c7..70599a4e 100644 --- a/doc/html/man/tset.1.html +++ b/doc/html/man/tset.1.html @@ -1,6 +1,6 @@ @@ -59,58 +59,106 @@
- 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. + 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 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 + When invoked as reset, tset sets the terminal modes to + "sane" values: - <LF>reset<LF> + o sets cooked and echo modes, - (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. + 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.
@@ -150,7 +198,7 @@ program, and exits. -w Resize the window to match the size deduced via - setupterm. Normally this has no effect, unless + 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 @@ -186,10 +234,10 @@ 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- @@ -237,10 +285,38 @@
- 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>. + 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>.
@@ -248,75 +324,84 @@ Issue 7 (POSIX.1-2008) nor X/Open Curses Issue 7 documents tset or reset. - 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). - - There was an undocumented 4.4BSD feature that invoking + 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- - ning with an upper-case letter) set the terminal to use + ning with an upper-case letter) set the terminal to use upper-case only. This feature has been omitted. - The -A, -E, -h, -u and -v options were deleted from the - tset utility in 4.4BSD. None of them were documented in - 4.3BSD and all are of limited utility at best. The -a, + The -A, -E, -h, -u and -v options were deleted from the + tset utility in 4.4BSD. None of them were documented in + 4.3BSD and all are of limited utility at best. The -a, -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 -a, - -d, and -p options are therefore omitted from the usage + 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 -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 + 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 + 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 + 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 + 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 + 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- + 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 + 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 + 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 + 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. @@ -327,7 +412,7 @@ tells tset whether to initialize TERM using sh or csh 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 @@ -339,7 +424,7 @@
/etc/ttys - system port name to terminal type mapping database + system port name to terminal type mapping database (BSD versions only). /usr/share/terminfo @@ -350,7 +435,7 @@ csh(1), sh(1), stty(1), curs_terminfo(3x), tty(4), terminfo(5), ttys(5), environ(7) - This describes ncurses version 6.0 (patch 20160723). + This describes ncurses version 6.0 (patch 20170218).