ncurses 6.0 - patch 20170422
[ncurses.git] / man / tset.1
index 07a28674f65461caa77cd2c2df87fc4fe96c71b6..c011f792c9ba759b3317306da6d4b24ee153b2d8 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright (c) 1998-2013,2016 Free Software Foundation, Inc.              *
+.\" Copyright (c) 1998-2016,2017 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            *
@@ -26,7 +26,7 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.42 2016/07/30 21:59:39 tom Exp $
+.\" $Id: tset.1,v 1.49 2017/04/16 21:30:15 tom Exp $
 .TH @TSET@ 1 ""
 .ie \n(.g .ds `` \(lq
 .el       .ds `` ``
@@ -83,29 +83,61 @@ for more information).
 Then, if the terminal type begins with a question mark (\*(``?\*(''), the
 user is prompted for confirmation of the terminal 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
+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.
 .PP
-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 initialization strings are sent to the standard error output.
+Once the terminal description is retrieved,
+.bP
+if the \*(``\fB\-w\fP\*('' option is enabled, \fB@TSET@\fP may update
+the terminal's window size.
+.IP
+If the window size cannot be obtained from the operating system,
+but the terminal description (or environment, e.g., \fBLINES\fP
+and \fBCOLUMNS\fP variables specify this),
+use this to set the operating system's notion of the window size.
+.bP
+if the \*(``\fB\-c\fP\*('' option is enabled,
+the backspace, interrupt and line kill characters (among many other things) are set
+.bP
+unless the \*(``\fB\-I\fP\*('' option is enabled,
+the terminal
+and tab \fIinitialization\fP strings are sent to the standard error output,
+and \fB@TSET@\fP waits one second (in case a hardware reset was issued).
+.bP
 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.
 .SS reset - reinitialization
 .PP
-When invoked as \fB@RESET@\fR, \fB@TSET@\fR sets cooked and echo modes,
-turns off cbreak and raw modes, turns on newline translation 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,
+When invoked as \fB@RESET@\fR, \fB@TSET@\fR sets the terminal
+modes to \*(``sane\*('' values:
+.bP
+sets cooked and echo modes,
+.bP
+turns off cbreak and raw modes,
+.bP
+turns on newline translation and
+.bP
+resets any unset special characters to their default values
+.PP
+before
+doing the terminal initialization described above.
+Also, rather than using the terminal \fIinitialization\fP strings,
+it uses the terminal \fIreset\fP strings.
+.PP
+The \fB@RESET@\fP command is useful
+after a program dies leaving a terminal in an abnormal state:
+.bP
 you may have to type
 .sp
     \fI<LF>\fP\fB@RESET@\fP\fI<LF>\fP
 .sp
 (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.
+.bP
 Also, the terminal will often not echo the command.
 .SH OPTIONS 
 .PP
@@ -156,7 +188,7 @@ for details.
 reports the version of ncurses which was used in this program, and exits.
 .TP
 .B \-w
-Resize the window to match the size deduced via \fBsetupterm\fP.
+Resize the window to match the size deduced via \fBsetupterm\fP(3X).
 Normally this has no effect,
 unless \fBsetupterm\fP is not able to detect the window size.
 .PP
@@ -242,16 +274,37 @@ and that \fBcsh\fR users insert a backslash character (\*(``\e\*('') before
 any exclamation marks (\*(``!\*('').
 .SH HISTORY
 .PP
-A \fBreset\fP command appeared in 2BSD (1979), written by Kurt Shoens.
+A \fBreset\fP command appeared in 2BSD (April 1979), written by Kurt Shoens.
+This program set the \fIerase\fP and \fIkill\fP characters
+to \fB^H\fP (backspace) and \fB@\fP respectively.
+Mark Horton improved that in 3BSD (October 1979), adding
+\fIintr\fP, \fIquit\fP, \fIstart\fP/\fIstop\fP and \fIeof\fP characters
+as well as changing the program to avoid modifying any user settings.
+.PP
+Later in 4.1BSD (December 1980),
+Mark Horton added a call to the \fBtset\fP program
+using the \fB\-I\fP and \fB\-Q\fP options, i.e.,
+using that to improve the terminal modes.
+With those options,
+that version of \fBreset\fP did not use the termcap database.
 .PP
 A separate \fBtset\fP command was provided in 2BSD by Eric Allman.
-While the oldest published source (from 1979) provides both programs,
+While the oldest published source (from 1979)
+provides both \fBtset\fP and \fBreset\fP,
 Allman's comments in the 2BSD source code indicate
 that he began work in October 1977,
 continuing development over the next few years.
 .PP
-In 1980, Eric Allman modified \fBtset\fP to provide a \*(lqreset\*(rq
-feature when the program was invoked as \fBreset\fP.
+In September 1980, Eric Allman modified \fBtset\fP,
+adding the code from the existing \*(lqreset\*(rq
+feature when \fBtset\fP was invoked as \fBreset\fP.
+Rather than simply copying the existing program,
+in this merged version, \fBtset\fP used the termcap database
+to do additional (re)initialization of the terminal.
+This version appeared in 4.1cBSD, late in 1982.
+.PP
+Other developers (e.g., Keith Bostic and Jim Bloom)
+continued to modify \fBtset\fP until 4.4BSD was released in 1993.
 .PP
 The \fBncurses\fR implementation
 was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
@@ -263,7 +316,8 @@ Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
 X/Open Curses Issue 7 documents \fB@TSET@\fP or \fB@RESET@\fP.
 .PP
 The AT&T \fBtput\fP utility (AIX, HPUX, Solaris)
-incorporated the terminal-mode manipulation from \fBtset\fP,
+incorporated the terminal-mode manipulation as well as termcap-based features
+such as resetting tabstops from \fBtset\fP in BSD (4.1c),
 presumably with the intention of making \fBtset\fP obsolete.
 However, each of those systems still provides \fBtset\fP.
 In fact, the commonly-used \fBreset\fP utility
@@ -366,14 +420,14 @@ system port name to terminal type mapping database (BSD versions only).
 terminal capability database
 .SH SEE ALSO
 .hy 0
-csh(1),
-sh(1),
-stty(1),
-curs_terminfo(3X),
-tty(4),
-terminfo(5),
-ttys(5),
-environ(7)
+\fBcsh\fP(1),
+\fBsh\fP(1),
+\fBstty\fP(1),
+\fBcurs_terminfo\fP(3X),
+\fBtty\fP(4),
+\fBterminfo\fP(5),
+\fBttys\fP(5),
+\fBenviron\fP(7)
 .hy
 .PP
 This describes \fBncurses\fR