]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/tset.1
ncurses 6.5 - patch 20240504
[ncurses.git] / man / tset.1
index 198a2bc8ef1e61d4703e12db8093c9fb9408eb9f..185227dcdb039007f5e58ac1c6ff94920056d872 100644 (file)
@@ -1,5 +1,5 @@
 .\"***************************************************************************
-.\" Copyright 2018-2022,2023 Thomas E. Dickey                                *
+.\" Copyright 2018-2023,2024 Thomas E. Dickey                                *
 .\" Copyright 1998-2016,2017 Free Software Foundation, Inc.                  *
 .\"                                                                          *
 .\" Permission is hereby granted, free of charge, to any person obtaining a  *
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: tset.1,v 1.64 2023/06/10 15:46:24 tom Exp $
-.TH @TSET@ 1 2023-06-10 "ncurses 6.4" "User commands"
-.ie \n(.g .ds `` \(lq
-.el       .ds `` ``
-.ie \n(.g .ds '' \(rq
-.el       .ds '' ''
+.\" $Id: tset.1,v 1.85 2024/04/27 17:57:47 tom Exp $
+.TH @TSET@ 1 2024-04-27 "ncurses @NCURSES_MAJOR@.@NCURSES_MINOR@" "User commands"
+.ie \n(.g \{\
+.ds `` \(lq
+.ds '' \(rq
+.ds ^  \(ha
+.\}
+.el \{\
+.ie t .ds `` ``
+.el   .ds `` ""
+.ie t .ds '' ''
+.el   .ds '' ""
+.ds       ^  ^
+.\}
+.
 .de bP
 .ie n  .IP \(bu 4
 .el    .IP \(bu 2
 ..
+.
+.ds d @TERMINFO@
 .SH NAME
-\fB@TSET@\fP, \fB@RESET@\fP \- terminal initialization
+\fB\%@TSET@\fP,
+\fB\%@RESET@\fP \-
+initialize or reset terminal state
 .SH SYNOPSIS
-\fB@TSET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal\fP]
+\fB@TSET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal-type\fP]
 .br
-\fB@RESET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal\fP]
+\fB@RESET@\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIch\fP] [\fB\-i\fP \fIch\fP] [\fB\-k\fP \fIch\fP] [\fB\-m\fP \fImapping\fP] [\fIterminal-type\fP]
 .SH DESCRIPTION
-.SS tset - initialization
+.SS "\fItset\fP \(em initialization"
 This program initializes terminals.
 .PP
 First, \fB@TSET@\fP retrieves the current terminal mode settings
@@ -68,21 +81,20 @@ This determination is done as follows, using the first terminal type found.
 .PP
 1. The \fBterminal\fP argument specified on the command line.
 .PP
-2. The value of the \fBTERM\fP environmental variable.
+2. The value of the \fITERM\fP environment variable.
 .PP
 3. (BSD systems only.) The terminal type associated with the standard
 error output device in the \fI/etc/ttys\fP file.
-(On System\-V-like UNIXes and systems using that convention,
-\fBgetty\fP(1) does this job by setting
-\fBTERM\fP according to the type passed to it by \fI/etc/inittab\fP.)
+(On System\ V hosts and systems using that convention,
+\fI\%getty\fP(8) does this job by setting
+\fITERM\fP according to the type passed to it by \fI\%/etc/inittab\fP.)
 .PP
 4. The default terminal type, \*(``unknown\*('',
 is not suitable for curses applications.
 .PP
 If the terminal type was not specified on the command-line, the \fB\-m\fP
-option mappings are then applied (see the section
-.B TERMINAL TYPE MAPPING
-for more information).
+option mappings are then applied;
+see subsection \*(``Terminal Type Mapping\*(''.
 Then, if the terminal type begins with a question mark (\*(``?\*(''), the
 user is prompted for confirmation of the terminal type.
 An empty
@@ -99,8 +111,10 @@ 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),
+but the terminal description
+(or environment,
+e.g.,
+\fILINES\fP and \fI\%COLUMNS\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,
@@ -115,8 +129,7 @@ and \fB@TSET@\fP waits one second (in case a hardware reset was issued).
 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
+.SS "\fIreset\fP \(em reinitialization"
 When invoked as \fB@RESET@\fP, \fB@TSET@\fP sets the terminal
 modes to \*(``sane\*('' values:
 .bP
@@ -144,87 +157,29 @@ you may have to type
 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
-The options are as follows:
-.TP 5
-.B \-c
-Set control characters and modes.
-.TP 5
-.BI \-e\  ch
-Set the erase character to \fIch\fP.
-.TP
-.B \-I
-Do not send the terminal or tab initialization strings to the terminal.
-.TP
-.BI \-i\  ch
-Set the interrupt character to \fIch\fP.
-.TP
-.BI \-k\  ch
-Set the line kill character to \fIch\fP.
-.TP
-.BI \-m\  mapping
-Specify a mapping from a port type to a terminal.
-See the section
-.B TERMINAL TYPE MAPPING
-for more information.
-.TP
-.B \-Q
-Do not display any values for the erase, interrupt and line kill characters.
-Normally \fB@TSET@\fP displays the values for control characters which
-differ from the system's default values.
-.TP
-.B \-q
-The terminal type is displayed to the standard output, and the terminal is
-not initialized in any way.
-The option \*(``\-\*('' by itself is equivalent but archaic.
-.TP
-.B \-r
-Print the terminal type to the standard error output.
-.TP
-.B \-s
-Print the sequence of shell commands to initialize the environment variable
-\fBTERM\fP to the standard output.
-See the section
-.B SETTING THE ENVIRONMENT
-for details.
-.TP
-.B \-V
-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(3X).
-Normally this has no effect,
-unless \fBsetupterm\fP is not able to detect the window size.
-.PP
-The arguments for the \fB\-e\fP, \fB\-i\fP, and \fB\-k\fP
-options may either be entered as actual characters
-or by using the \*(``hat\*(''
-notation, i.e., control-h may be specified as \*(``^H\*('' or \*(``^h\*(''.
-.PP
-If neither \fB\-c\fP or \fB\-w\fP is given, both options are assumed.
-.
-.SH SETTING THE ENVIRONMENT
+.SS "Setting the Environment"
 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 \fB\-s\fP option.
 .PP
 When the \fB\-s\fP option is specified, the commands to enter the information
 into the shell's environment are written to the standard output.
-If
-the \fBSHELL\fP environmental variable ends in \*(``csh\*('', the commands
-are for \fBcsh\fP, otherwise, they are for \fBsh\fP(1).
-Note, the \fBcsh\fP commands set and unset the shell variable
-\fBnoglob\fP, leaving it unset.
+If the \fISHELL\fP environment variable ends in \*(``csh\*('',
+the commands
+are for \fIcsh\fP(1),
+otherwise,
+they are for \fIsh\fP(1).
+The \fIcsh\fP commands set and unset the shell variable \fBnoglob\fP,
+leaving it unset.
 The following line in the \fB.login\fP
 or \fB.profile\fP files will initialize the environment correctly:
 .sp
-    eval \`@TSET@ \-s options ... \`
+    eval \(ga@TSET@ \-s options ... \(ga
 .
-.SH TERMINAL TYPE MAPPING
+.SS "Terminal Type Mapping"
 When the terminal is not hardwired into the system (or the current
 system information is incorrect) the terminal type derived from the
-\fI/etc/ttys\fP file or the \fBTERM\fP environmental variable is often
+\fI/etc/ttys\fP file or the \fITERM\fP environment variable is often
 something generic like \fBnetwork\fP, \fBdialup\fP, or \fBunknown\fP.
 When \fB@TSET@\fP is used in a startup script it is often desirable to
 provide information about the type of terminal used on such ports.
@@ -281,43 +236,92 @@ terminal.
 No whitespace characters are permitted in the \fB\-m\fP option argument.
 Also, to avoid problems with meta-characters, it is suggested that the
 entire \fB\-m\fP option argument be placed within single quote characters,
-and that \fBcsh\fP users insert a backslash character (\*(``\e\*('') before
-any exclamation marks (\*(``!\*('').
-.SH HISTORY
-.PP
-A \fBreset\fP command appeared in 1BSD (March 1978), 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.
-That version of \fBreset\fP did not use the termcap database.
-.PP
-A separate \fBtset\fP command was provided in 1BSD by Eric Allman,
-using the termcap database.
-Allman's comments in the source code indicate
-that he began work in October 1977,
-continuing development over the next few years.
-.PP
-According to comments in the source code,
-the \fBtset\fP program was modified in September 1980,
-to use logic copied from the 3BSD \*(``reset\*(''
-when it was invoked as \fBreset\fP.
-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.
+and that \fIcsh\fP users insert a backslash character (\*(``\e\*('')
+before any exclamation marks (\*(``!\*('').
+.SH OPTIONS
+The options are as follows:
+.TP 5
+.B \-c
+Set control characters and modes.
+.TP 5
+.BI \-e\  ch
+Set the erase character to \fIch\fP.
+.TP
+.B \-I
+Do not send the terminal or tab initialization strings to the terminal.
+.TP
+.BI \-i\  ch
+Set the interrupt character to \fIch\fP.
+.TP
+.BI \-k\  ch
+Set the line kill character to \fIch\fP.
+.TP
+.BI \-m\  mapping
+Specify a mapping from a port type to a terminal;
+see subsection \*(``Terminal Type Mapping\*(''.
+.TP
+.B \-Q
+Do not display any values for the erase, interrupt and line kill characters.
+Normally \fB@TSET@\fP displays the values for control characters which
+differ from the system's default values.
+.TP
+.B \-q
+The terminal type is displayed to the standard output, and the terminal is
+not initialized in any way.
+The option \*(``\-\*('' by itself is equivalent but archaic.
+.TP
+.B \-r
+Print the terminal type to the standard error output.
+.TP
+.B \-s
+Print the sequence of shell commands to initialize the environment variable
+\fITERM\fP to the standard output;
+see subsection \*(``Setting the Environment\*(''.
+.TP
+.B \-V
+reports the version of \fI\%ncurses\fP which was used in this program,
+and exits.
+.TP
+.B \-w
+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
-The \fBncurses\fP implementation
-was lightly adapted from the 4.4BSD sources for a terminfo environment by Eric
-S. Raymond <esr@snark.thyrsus.com>.
-.SH COMPATIBILITY
+The arguments for the \fB\-e\fP, \fB\-i\fP, and \fB\-k\fP
+options may either be entered as actual characters
+or by using the \*(``hat\*(''
+notation, i.e., control-h may be specified as \*(``\*^H\*('' or \*(``\*^h\*(''.
 .PP
+If neither \fB\-c\fP or \fB\-w\fP is given, both options are assumed.
+.SH ENVIRONMENT
+The \fB@TSET@\fP command uses these environment variables:
+.TP 5
+.I SHELL
+tells \fB@TSET@\fP whether to initialize \fITERM\fP using \fIsh\fP(1) or
+\fIcsh\fP(1) syntax.
+.TP 5
+.I TERM
+Denotes your terminal type.
+Each terminal type is distinct, though many are similar.
+.TP 5
+.I TERMCAP
+may denote the location of a termcap database.
+If it is not an absolute pathname, e.g., begins with a \*(``/\*('',
+\fB@TSET@\fP removes the variable from the environment before looking
+for the terminal description.
+.SH FILES
+.TP
+.I /etc/ttys
+system port name to terminal type mapping database (BSD versions only).
+.TP
+.I \*d
+compiled terminal description database directory
+.SH PORTABILITY
 Neither IEEE Std 1003.1/The Open Group Base Specifications Issue 7
 (POSIX.1-2008) nor
 X/Open Curses Issue 7 documents \fB@TSET@\fP or \fB@RESET@\fP.
 .PP
-The AT&T \fBtput\fP utility (AIX, HPUX, Solaris)
+The AT&T \fBtput\fP utility (AIX, HP-UX, Solaris)
 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.
@@ -325,21 +329,24 @@ However, each of those systems still provides \fBtset\fP.
 In fact, the commonly-used \fBreset\fP utility
 is always an alias for \fBtset\fP.
 .PP
-The \fB@TSET@\fP utility provides for backward-compatibility with BSD
-environments (under most modern UNIXes, \fB/etc/inittab\fP and \fBgetty\fP(1)
-can set \fBTERM\fP appropriately for each dial-up line; this obviates what was
-\fB@TSET@\fP's most important use).
-This implementation behaves like 4.4BSD
-\fBtset\fP, with a few exceptions specified here.
+The \fB\%@TSET@\fP utility provides backward compatibility with BSD
+environments;
+under most modern Unices,
+\fI\%/etc/inittab\fP and \fI\%getty\fP(8) can set \fITERM\fP
+appropriately for each dial-up line,
+obviating what was \fB\%@TSET@\fP's most important use.
+This implementation behaves like 4.4BSD \fBtset\fP,
+with a few exceptions we shall consider now.
 .PP
 A few options are different
-because the \fBTERMCAP\fP variable
-is no longer supported under terminfo-based \fBncurses\fP:
+because the \fI\%TERMCAP\fP variable
+is no longer supported under terminfo-based \fI\%ncurses\fP:
 .bP
 The \fB\-S\fP option of BSD \fBtset\fP no longer works;
 it prints an error message to the standard error and dies.
 .bP
-The \fB\-s\fP option only sets \fBTERM\fP, not \fBTERMCAP\fP.
+The \fB\-s\fP option only sets \fITERM\fP,
+not \fI\%TERMCAP\fP.
 .PP
 There was an undocumented 4.4BSD feature
 that invoking \fBtset\fP via a link named
@@ -383,57 +390,75 @@ In 4.4BSD, \fBtset\fP uses the window size from the termcap description
 to set the window size if \fBtset\fP is not able to obtain the window
 size from the operating system.
 .bP
-In ncurses, \fB@TSET@\fP obtains the window size using
-\fBsetupterm\fP, which may be from
+In \fI\%ncurses\fP, \fB@TSET@\fP obtains the window size using
+\fB\%setupterm\fP(3X), which may be from
 the operating system,
-the \fBLINES\fP and \fBCOLUMNS\fP environment variables or
+the \fILINES\fP and \fICOLUMNS\fP environment variables or
 the terminal description.
 .PP
-Obtaining the window size from the terminal description is common to
-both implementations, but considered obsolescent.
+Obtaining the window size from a terminal's type description is common
+to both implementations,
+but considered obsolescent.
 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 operating system
-(and \fBsetupterm\fP would still fail).
-For that reason, the \fBLINES\fP and \fBCOLUMNS\fP 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 \fBresize\fP(1) program.
-.SH ENVIRONMENT
-The \fB@TSET@\fP command uses these environment variables:
-.TP 5
-SHELL
-tells \fB@TSET@\fP whether to initialize \fBTERM\fP using \fBsh\fP(1) or
-\fBcsh\fP(1) syntax.
-.TP 5
-TERM
-Denotes your terminal type.
-Each terminal type is distinct, though many are similar.
-.TP 5
-TERMCAP
-may denote the location of a termcap database.
-If it is not an absolute pathname, e.g., begins with a \*(``/\*('',
-\fB@TSET@\fP removes the variable from the environment before looking
-for the terminal description.
-.SH FILES
-.TP 5
-/etc/ttys
-system port name to terminal type mapping database (BSD versions only).
-.TP
-@TERMINFO@
-terminal capability database
+Generally,
+the window size will remain uninitialized only if there were a problem
+obtaining the value from the operating system
+(and \fB\%setupterm\fP would still fail).
+The \fILINES\fP and \fI\%COLUMNS\fP environment variables
+may thus be useful for working around window-size problems,
+but have the drawback that if the window is resized,
+their values must be recomputed and reassigned.
+The \fI\%resize\fP(1) program distributed with
+\fI\%xterm\fP(1) assists this activity.
+.SH HISTORY
+A \fB\%reset\fP command written by Kurt Shoens appeared in 1BSD
+(March 1978).
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/reset.c
+It set the \fIerase\fP and \fIkill\fP characters
+to \fB\*^H\fP (backspace) and \fB@\fP respectively.
+Mark Horton improved this \fB\%reset\fP 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.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
+.\"   reset.c
+That version of \fB\%reset\fP did not use \fI\%termcap\fP.
+.PP
+Eric Allman wrote a distinct \fBtset\fP command for 1BSD,
+using a forerunner of \fI\%termcap\fP called \fI\%ttycap\fP.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/tset.c
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man7/ttycap.7
+Allman's comments in the source code indicate
+that he began work in October 1977,
+continuing development over the next few years.
+By late 1979,
+it had migrated to \fI\%termcap\fP and handled the \fI\%TERMCAP\fP
+variable.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\
+.\"   tset/tset.c
+Later comments indicate that \fBtset\fP was modified in September 1980
+to use logic copied from the 3BSD \*(``reset\*('' program when it was
+invoked as \fB\%reset\fP.
+.\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/\
+.\"   tset/tset.c
+This version appeared in 4.1cBSD, \" and backported to 2.9BSD
+late in 1982.
+Other developers such as Keith Bostic and Jim Bloom continued to modify
+\fBtset\fP until 4.4BSD was released in 1993.
+.PP
+The \fI\%ncurses\fP implementation was lightly adapted from the 4.4BSD
+sources to use the \fI\%terminfo\fP API by Eric S.\& Raymond
+<esr@snark.thyrsus.com>.
 .SH SEE ALSO
-.hy 0
-\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\fP
-version @NCURSES_MAJOR@.@NCURSES_MINOR@ (patch @NCURSES_PATCH@).
+\fB\%csh\fP(1),
+\fB\%sh\fP(1),
+\fB\%stty\fP(1),
+\fB\%curs_terminfo\fP(3X),
+\fB\%tty\fP(4),
+\fB\%terminfo\fP(5),
+\fB\%ttys\fP(5),
+\fB\%environ\fP(7)