X-Git-Url: https://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=man%2Ftset.1;h=154d91587aaa8c8945446fe06e2068a8db49210e;hb=fc11bff62abb32a3e7724180a94c1068c148ea6c;hp=860c087591f2a49b5be220406f947175443ebf88;hpb=16fbf3f4f7d96b6ee6bf9159b22f26e05962aa3d;p=ncurses.git diff --git a/man/tset.1 b/man/tset.1 index 860c0875..154d9158 100644 --- a/man/tset.1 +++ b/man/tset.1 @@ -1,5 +1,5 @@ .\"*************************************************************************** -.\" Copyright 2018-2021,2022 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 * @@ -27,24 +27,36 @@ .\" authorization. * .\"*************************************************************************** .\" -.\" $Id: tset.1,v 1.62 2022/02/12 20:02:20 tom Exp $ -.TH @TSET@ 1 "" -.ie \n(.g .ds `` \(lq -.el .ds `` `` -.ie \n(.g .ds '' \(rq -.el .ds '' '' +.\" $Id: tset.1,v 1.86 2024/05/11 20:39:53 tom Exp $ +.TH @TSET@ 1 2024-05-11 "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 .. +. .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,20 +80,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\*(''. +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 @@ -98,8 +110,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, @@ -114,8 +128,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 @@ -143,87 +156,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. @@ -280,43 +235,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 . -.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 @TERMINFO@ +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. @@ -324,21 +328,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 @@ -382,57 +389,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 +. .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)