diff options
author | Toomas Soome <tsoome@me.com> | 2016-10-09 12:16:15 +0300 |
---|---|---|
committer | Robert Mustacchi <rm@joyent.com> | 2017-01-07 09:16:09 -0800 |
commit | 9a2c4685271c2f0cb4b08f4cc1192387e67af3f9 (patch) | |
tree | aed121cd1b8b79b5efefd5ef2c2ab57b1b08a961 | |
parent | d98490e4c04a9cb28c4a2c73887e16e5da1d9468 (diff) | |
download | illumos-joyent-9a2c4685271c2f0cb4b08f4cc1192387e67af3f9.tar.gz |
1599 backspace should perform delete on console
Reviewed by: Joshua M. Clulow <jmc@joyent.com>
Reviewed by: Albert Lee <trisk@omniti.com>
Approved by: Robert Mustacchi <rm@joyent.com>
-rw-r--r-- | exception_lists/cstyle | 1 | ||||
-rw-r--r-- | usr/src/cmd/ttymon/stty.c | 6 | ||||
-rw-r--r-- | usr/src/cmd/ttymon/sttyparse.c | 6 | ||||
-rw-r--r-- | usr/src/man/man1/stty.1 | 39 | ||||
-rw-r--r-- | usr/src/man/man3head/termios.h.3head | 17 | ||||
-rw-r--r-- | usr/src/man/man7i/termio.7i | 88 | ||||
-rw-r--r-- | usr/src/uts/common/io/ldterm.c | 4 | ||||
-rw-r--r-- | usr/src/uts/common/io/options.conf | 2 | ||||
-rw-r--r-- | usr/src/uts/common/io/tty_common.c | 5 | ||||
-rw-r--r-- | usr/src/uts/common/sys/termios.h | 4 | ||||
-rw-r--r-- | usr/src/uts/sun4u/blade/io/options.conf | 4 | ||||
-rw-r--r-- | usr/src/uts/sun4u/opl/io/options.conf | 4 |
12 files changed, 76 insertions, 104 deletions
diff --git a/exception_lists/cstyle b/exception_lists/cstyle index e4091bc5ac..446a6533fb 100644 --- a/exception_lists/cstyle +++ b/exception_lists/cstyle @@ -167,6 +167,7 @@ usr/src/cmd/mandoc/term_ps.c usr/src/cmd/mandoc/term.c usr/src/cmd/mandoc/term.h usr/src/cmd/mandoc/tree.c +usr/src/cmd/ttymon/sttyparse.c usr/src/common/ficl/ficltokens.h usr/src/common/bzip2/bzlib.h usr/src/common/bzip2/crctable.c diff --git a/usr/src/cmd/ttymon/stty.c b/usr/src/cmd/ttymon/stty.c index bfccdd3cc0..8ae976fdbd 100644 --- a/usr/src/cmd/ttymon/stty.c +++ b/usr/src/cmd/ttymon/stty.c @@ -321,6 +321,10 @@ prmodes(void) /* print modes, no options, argc is 1 */ pit(cb.c_cc[VQUIT], "quit", "; "); if (cb.c_cc[VERASE] != CERASE) pit(cb.c_cc[VERASE], "erase", "; "); + if (term & TERMIOS) { + if (cb.c_cc[VERASE2] != CERASE2) + pit(cb.c_cc[VERASE], "erase2", "; "); + } if (cb.c_cc[VKILL] != CKILL) pit(cb.c_cc[VKILL], "kill", "; "); if (cb.c_cc[VEOF] != CEOF) @@ -543,6 +547,8 @@ pramodes(void) /* print all modes, -a option */ pit(cb.c_cc[VINTR], "intr", "; "); pit(cb.c_cc[VQUIT], "quit", "; "); pit(cb.c_cc[VERASE], "erase", "; "); + if (term & TERMIOS) + pit(cb.c_cc[VERASE2], "erase2", "; "); pit(cb.c_cc[VKILL], "kill", ";\n"); pit(cb.c_cc[VEOF], "eof", "; "); pit(cb.c_cc[VEOL], "eol", "; "); diff --git a/usr/src/cmd/ttymon/sttyparse.c b/usr/src/cmd/ttymon/sttyparse.c index 03eccb8011..84599af825 100644 --- a/usr/src/cmd/ttymon/sttyparse.c +++ b/usr/src/cmd/ttymon/sttyparse.c @@ -131,11 +131,15 @@ sttyparse(int argc, char *argv[], int term, struct termio *ocb, cb->c_cc[VLNEXT] = gct(*++argv, term); else if (eq("status") && --argc) cb->c_cc[VSTATUS] = gct(*++argv, term); + else if (eq("erase2") && --argc) + cb->c_cc[VERASE2] = gct(*++argv, term); } if (match) continue; if (eq("ek")) { cb->c_cc[VERASE] = CERASE; + if (term & TERMIOS) + cb->c_cc[VERASE2] = CERASE2; cb->c_cc[VKILL] = CKILL; } else if (eq("line") && !(term & TERMIOS) && --argc) { @@ -149,6 +153,8 @@ sttyparse(int argc, char *argv[], int term, struct termio *ocb, cb->c_cc[VEOL] = CNUL; } else if (eq("sane")) { cb->c_cc[VERASE] = CERASE; + if (term & TERMIOS) + cb->c_cc[VERASE2] = CERASE2; cb->c_cc[VKILL] = CKILL; cb->c_cc[VQUIT] = CQUIT; cb->c_cc[VINTR] = CINTR; diff --git a/usr/src/man/man1/stty.1 b/usr/src/man/man1/stty.1 index 21e44cae64..1783a7c613 100644 --- a/usr/src/man/man1/stty.1 +++ b/usr/src/man/man1/stty.1 @@ -11,7 +11,7 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. .\" See the License for the specific language governing permissions and limitations under the License. When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with .\" the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] -.TH STTY 1 "Jan 04, 2014" +.TH STTY 1 "Dec 30, 2016" .SH NAME stty \- set the options for a terminal .SH SYNOPSIS @@ -46,7 +46,6 @@ stty \- set the options for a terminal .fi .SH DESCRIPTION -.sp .LP The \fBstty\fR utility sets certain terminal I/O options for the device that is the current standard input. Without arguments, \fBstty\fR reports the settings @@ -70,7 +69,6 @@ options in the earlier sections. Notice that many combinations of options make no sense, but no sanity checking is performed. Hardware flow control and clock modes options might not be supported by all hardware interfaces. .SH OPTIONS -.sp .LP The following options are supported: .sp @@ -94,11 +92,9 @@ it. Otherwise, it emits termio-type output. .RE .SH OPERANDS -.sp .LP The following \fImode\fR operands are supported: .SS "Control Modes" -.sp .ne 2 .na \fB\fBparenb\fR(\fB-parenb\fR)\fR @@ -293,7 +289,6 @@ the line is hung up immediately. .RE .SS "Input Modes" -.sp .ne 2 .na \fB\fBignbrk\fR (\fB-ignbrk\fR)\fR @@ -427,7 +422,6 @@ stream overflows. .RE .SS "Output Modes" -.sp .ne 2 .na \fB\fBopost\fR (\fB-opost\fR)\fR @@ -555,7 +549,6 @@ Select style of delay for vertical tabs (see \fBtermio\fR(7I)). .RE .SS "Local Modes" -.sp .ne 2 .na \fB\fBisig\fR(\fB-isig\fR)\fR @@ -738,7 +731,6 @@ Use application mode (use line mode) on a synchronous line. .RE .SS "Hardware Flow Control Modes" -.sp .ne 2 .na \fB\fBrtsxoff\fR (\fB-rtsxoff\fR)\fR @@ -784,7 +776,6 @@ Enable (disable) isochronous hardware flow control on input. .RE .SS "Clock Modes" -.sp .ne 2 .na \fB\fBxcibrg\fR\fR @@ -941,7 +932,6 @@ timing (DTE source) lead, CCITT V.24 circuit 128, no EIA-232-D pin. .RE .SS "Control Assignments" -.sp .ne 2 .na \fB\fIcontrol-character\fR \fIc\fR\fR @@ -956,10 +946,10 @@ Set \fIcontrol-character\fR to \fIc\fR, where: .ad .RS 21n is \fBctab\fR, \fBdiscard\fR, \fBdsusp\fR, \fBeof\fR, \fBeol\fR, \fBeol2\fR, -\fBerase\fR, \fBintr\fR, \fBkill\fR, \fBlnext\fR, \fBquit\fR, \fBreprint\fR, -\fBstart\fR, \fBstop\fR, \fBsusp\fR, \fBstatus\fR, \fBswtch\fR, or \fBwerase\fR -(\fBctab\fR is used with \fB-stappl\fR, see \fBtermio\fR(7I)). For information -on \fBswtch\fR, see NOTES. +\fBerase\fR, \fBerase2\fR, \fBintr\fR, \fBkill\fR, \fBlnext\fR, \fBquit\fR, +\fBreprint\fR, \fBstart\fR, \fBstop\fR, \fBsusp\fR, \fBstatus\fR, \fBswtch\fR, +or \fBwerase\fR (\fBctab\fR is used with \fB-stappl\fR, see \fBtermio\fR(7I)). +For information on \fBswtch\fR, see NOTES. .RE .sp @@ -1025,7 +1015,6 @@ Set line discipline to \fIi\fR ( \fB0\fR< \fIi\fR <\fB127\fR). .RE .SS "Combination Modes" -.sp .ne 2 .na \fB\fIsaved\fR \fIsettings\fR\fR @@ -1125,7 +1114,6 @@ stty cs8 -icanon min 1 time 0 -isig -xcase \e .RE .SS "/usr/bin/stty, /usr/xpg6/bin/stty" -.sp .ne 2 .na \fB\fBnl\fR (\fB-nl\fR)\fR @@ -1136,7 +1124,6 @@ Unset (set) \fBicrnl\fR, \fBonlcr\fR. In addition \fB-nl\fR unsets \fBinlcr\fR, .RE .SS "/usr/xpg4/bin/stty" -.sp .ne 2 .na \fB\fBnl\fR (\fB-nl\fR)\fR @@ -1180,7 +1167,8 @@ Preserve (expand to spaces) tabs when printing. \fB\fBek\fR\fR .ad .RS 24n -Reset ERASE and KILL characters back to normal DEL and CTRL-u, respectively. +Reset ERASE, ERASE2, and KILL characters back to normal DEL, CTRL-h, and CTRL-u, +respectively. .RE .sp @@ -1214,7 +1202,6 @@ Set normal asynchronous communications where clock settings are \fBxcibrg\fR, .RE .SS "Window Size" -.sp .ne 2 .na \fB\fBrows\fR \fIn\fR\fR @@ -1261,7 +1248,6 @@ Set horizontal window size to \fIn\fR pixels. .RE .SH USAGE -.sp .LP The \fB-g\fR flag is designed to facilitate the saving and restoring of terminal state from the shell level. For example, a program can: @@ -1281,13 +1267,11 @@ stty $saveterm # restore terminal state Since the \fB-a\fR format is so loosely specified, scripts that save and restore terminal settings should use the \fB-g\fR option. .SH ENVIRONMENT VARIABLES -.sp .LP See \fBenviron\fR(5) for descriptions of the following environment variables that affect the execution of \fBstty\fR: \fBLANG\fR, \fBLC_ALL\fR, \fBLC_CTYPE\fR, \fBLC_MESSAGES\fR, and \fBNLSPATH\fR. .SH EXIT STATUS -.sp .LP The following exit values are returned: .sp @@ -1309,13 +1293,9 @@ An error occurred. .RE .SH ATTRIBUTES -.sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .SS "/usr/xpg4/bin/stty" -.sp - -.sp .TS box; c | c @@ -1328,9 +1308,6 @@ Standard See \fBstandards\fR(5). .TE .SS "/usr/xpg6/bin/stty" -.sp - -.sp .TS box; c | c @@ -1343,13 +1320,11 @@ Standard See \fBstandards\fR(5). .TE .SH SEE ALSO -.sp .LP \fBtabs\fR(1), \fBioctl\fR(2), \fBwrite\fR(2), \fBgetwidth\fR(3C), \fBattributes\fR(5), \fBenviron\fR(5), \fBstandards\fR(5), \fBldterm\fR(7M), \fBtermio\fR(7I), \fBtermiox\fR(7I) .SH NOTES -.sp .LP Solaris does not support any of the actions implied by \fBswtch\fR, which was used by the \fBsxt\fR driver on System V release 4. Solaris allows the diff --git a/usr/src/man/man3head/termios.h.3head b/usr/src/man/man3head/termios.h.3head index cb29f860ac..cbb49a4249 100644 --- a/usr/src/man/man3head/termios.h.3head +++ b/usr/src/man/man3head/termios.h.3head @@ -7,7 +7,7 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] -.TH TERMIOS.H 3HEAD "Jan 04, 2014" +.TH TERMIOS.H 3HEAD "Dec 30, 2016" .SH NAME termios.h, termios \- define values for termios .SH SYNOPSIS @@ -17,13 +17,11 @@ termios.h, termios \- define values for termios .fi .SH DESCRIPTION -.sp .LP The <\fBtermios.h\fR> header contains the definitions used by the terminal I/O interfaces. See \fBtermios\fR(3C) and \fBtermio\fR(7I) for an overview of the terminal interface. .SS "The termios Structure" -.sp .LP The following data types are defined through \fBtypedef\fR: .sp @@ -97,11 +95,13 @@ The following subscript names for the array \fBc_cc\fR are defined: .TS c c c l l l . -Subscript UsageCanonical Mode Subscript UsageNon-Canonical Mode Description +Subscript Usage Subscript Usage Description +Canonical Mode Non-Canonical Mode _ \fBVEOF\fR EOF character \fBVEOL\fR EOL character \fBVERASE\fR ERASE character +\fBVERASE2\fR ERASE2 character \fBVINTR\fR \fBVINTR\fR INTR character \fBVKILL\fR KILL character \fBVMIN\fR MIN value @@ -122,7 +122,6 @@ subscripts, respectively. .LP The header file provides the flags described below. .SS "Input Modes" -.sp .LP The \fBc_iflag\fR field describes the basic terminal input control: .sp @@ -234,7 +233,6 @@ Mark parity errors. .RE .SS "Output Modes" -.sp .LP The \fBc_oflag\fR field specifies the system treatment of output: .sp @@ -490,7 +488,6 @@ form-feed delay type 1 .RE .SS "Baud Rate Selection" -.sp .LP The input and output baud rates are stored in the \fBtermios\fR structure. These are the valid values for objects of type \fBspeed_ t\fR. The following @@ -641,7 +638,6 @@ Hang up .RE .SS "Control Modes" -.sp .LP The \fBc_cflag\fR field describes the hardware control of the terminal; not all values specified are required to be supported by the underlying hardware: @@ -749,7 +745,6 @@ Ignore modem status lines. The implementation supports the functionality associated with the symbols \fBCS7\fR, \fBCS8\fR, \fBCSTOPB\fR, \fBPARODD\fR, and \fBPARENB\fR. .SS "Local Modes" -.sp .LP The \fBc_lflag\fR field of the argument structure is used to control various terminal functions: @@ -835,7 +830,6 @@ Send \fBSIGTTOU\fR for background output. .RE .SS "Attribute Selection" -.sp .LP The following symbolic constants for use with \fBtcsetattr()\fR are defined: .sp @@ -866,7 +860,6 @@ Change attributes when output has drained; also flush pending input. .RE .SS "Line Control" -.sp .LP The following symbolic constants for use with \fBtcflush()\fR are defined: .sp @@ -936,7 +929,6 @@ Restart output. .RE .SH ATTRIBUTES -.sp .LP See \fBattributes\fR(5) for descriptions of the following attributes: .sp @@ -952,7 +944,6 @@ Interface Stability Standard .TE .SH SEE ALSO -.sp .LP \fBgetconf\fR(1), \fBcfgetispeed\fR(3C), \fBcfsetispeed\fR(3C), \fBconfstr\fR(3C), \fBtcdrain\fR(3C), \fBtcflow\fR(3C), \fBtcflush\fR(3C), diff --git a/usr/src/man/man7i/termio.7i b/usr/src/man/man7i/termio.7i index 71c78d0e96..f7fa1bdc44 100644 --- a/usr/src/man/man7i/termio.7i +++ b/usr/src/man/man7i/termio.7i @@ -5,7 +5,7 @@ .\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License. .\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License. .\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner] -.TH TERMIO 7I "Sep 14, 2005" +.TH TERMIO 7I "Dec 30, 2016" .SH NAME termio \- general terminal interface .SH SYNOPSIS @@ -29,7 +29,6 @@ termio \- general terminal interface .fi .SH DESCRIPTION -.sp .LP This release supports a general interface for asynchronous communications ports that is hardware-independent. The user interface to this functionality is using @@ -60,7 +59,6 @@ input characters that have not yet been read by some program. When the input limit is reached, all the characters saved in the buffer up to that point are thrown away without notice. .SS "Session Management (Job Control)" -.sp .LP A control terminal will distinguish one of the process groups in the session associated with it to be the foreground process group. All other process @@ -113,7 +111,6 @@ process is not ignoring or holding \fBSIGTTOU\fR and is a member of an orphaned process group, the write will fail with \fBerrno\fR set to \fBEIO\fR, and no signal will be sent. .SS "Canonical Mode Input Processing" -.sp .LP Normally, terminal input is processed in units of lines. A line is delimited by a newline (\fBASCII LF\fR) character, an end-of-file (\fBASCII EOT\fR) @@ -124,15 +121,15 @@ It is not necessary, however, to read a whole line at once; any number of characters may be requested in a read, even one, without losing information. .sp .LP -During input, erase and kill processing is normally done. The \fBERASE\fR -character (by default, the character \fBDEL\fR) erases the last character +During input, erase, erase2, and kill processing is normally done. The +\fBERASE\fR and \fBERASE2\fR character (by default, the character \fBDEL\fR for \fBERASE\fR and \fBControl-h\fR for \fBERASE2\fR) erases the last character typed. The \fBWERASE\fR character (the character \fBControl-w\fR) erases the last "word" typed in the current input line (but not any preceding spaces or tabs). A "word" is defined as a sequence of non-blank characters, with tabs -counted as blanks. Neither \fBERASE\fR nor \fBWERASE\fR will erase beyond the -beginning of the line. The \fBKILL\fR character (by default, the character -\fBNAK\fR) kills (deletes) the entire input line, and optionally outputs a -newline character. All these characters operate on a key stroke basis, +counted as blanks. None of \fBERASE\fR or \fBERASE2\fR or \fBWERASE\fR will +erase beyond the beginning of the line. The \fBKILL\fR character (by default, +the character \fBNAK\fR) kills (deletes) the entire input line, and optionally +outputs a newline character. All these characters operate on a key stroke basis, independent of any backspacing or tabbing that may have been done. The \fBREPRINT\fR character (the character Control-r) prints a newline followed by all characters that have not been read. Reprinting also occurs automatically if @@ -141,11 +138,11 @@ output. The characters are reprinted as if they were being echoed; consequencely, if \fBECHO\fR is not set, they are not printed. .sp .LP -The \fBERASE\fR and \fBKILL\fR characters may be entered literally by preceding -them with the escape character. In this case, the escape character is not read. -The erase and kill characters may be changed. +The \fBERASE\fR, \fBERASE2\fR, and \fBKILL\fR characters may be entered +literally by preceding them with the escape character. In this case, the +escape character is not read. The erase, erase2, and kill characters may be +changed. .SS "Non-canonical Mode Input Processing" -.sp .LP In non-canonical mode input processing, input characters are not assembled into lines, and erase and kill processing does not occur. The \fBMIN\fR and @@ -222,7 +219,6 @@ returned without waiting for more characters to be input. .RE .SS "Comparing Different Cases of MIN, TIME Interaction" -.sp .LP Some points to note about \fBMIN\fR and \fBTIME\fR : .RS +4 @@ -263,7 +259,6 @@ denote a record length. For example, if a program does a read of 20 bytes, \fBMIN\fR is 10, and 25 characters are present, then 20 characters will be returned to the user. .SS "Writing Characters" -.sp .LP When one or more characters are written, they are transmitted to the terminal as soon as previously written characters have finished typing. Input characters @@ -272,7 +267,6 @@ characters more rapidly than they can be typed, it will be suspended when its output queue exceeds some limit. When the queue is drained down to some threshold, the program is resumed. .SS "Special Characters" -.sp .LP Certain characters have special functions on input. These functions and their default character values are summarized as follows: @@ -307,9 +301,19 @@ file (called \fBcore\fR) will be created in the current working directory. \fB\fBERASE\fR\fR .ad .RS 11n -(DEL) erases the preceding character. It does not erase beyond the start of a -line, as delimited by a \fBNL\fR, \fBEOF\fR, \fBEOL\fR, or \fBEOL2\fR -character. +(DEL) erases the preceding character. It does not erase beyond +the start of a line, as delimited by a \fBNL\fR, \fBEOF\fR, \fBEOL\fR, or +\fBEOL2\fR character. +.RE + +.sp +.ne 2 +.na +\fB\fBERASE2\fR\fR +.ad +.RS 11n +(Control-h or \fBASCII BS\fR) erases the preceding character, with behaviour +identical to that of ERASE. .RE .sp @@ -476,19 +480,20 @@ signal will be ignored. to be ignored. This works for all the special characters mentioned above. It allows characters to be input that would otherwise be interpreted by the system (for example \fBKILL, QUIT\fR). The character values for \fBINTR\fR, -\fBQUIT\fR, \fBERASE\fR, \fBWERASE\fR, \fBKILL\fR, \fBREPRINT\fR, \fBEOF\fR, -\fBEOL\fR, \fBEOL2\fR, \fBSWTCH\fR, \fBSUSP\fR, \fBDSUSP\fR, \fBSTOP\fR, -\fBSTART\fR, \fBDISCARD\fR, \fBSTATUS\fR, and \fBLNEXT\fR may be changed to suit -individual tastes. If the value of a special control character is -_POSIX_VDISABLE (0), the function of that special control character is disabled. -The \fBERASE\fR, \fBKILL\fR, and \fBEOF\fR characters may be escaped by a -preceding backslash (\e) character, in which case no special function is done. +\fBQUIT\fR, \fBERASE\fR, \fBERASE2\fR, \fBWERASE\fR, \fBKILL\fR, \fBREPRINT\fR, +\fBEOF\fR, \fBEOL\fR, \fBEOL2\fR, \fBSWTCH\fR, \fBSUSP\fR, \fBDSUSP\fR, +\fBSTOP\fR, \fBSTART\fR, \fBDISCARD\fR, \fBSTATUS\fR, and \fBLNEXT\fR may be +changed to suit individual tastes. If the value of a special control character +is _POSIX_VDISABLE (0), the function of that special control character is +disabled. +The \fBERASE\fR, \fBERASE2\fR, \fBKILL\fR, and \fBEOF\fR characters may be +escaped by a preceding backslash (\e) character, in which case no special +function is done. Any of the special characters may be preceded by the \fBLNEXT\fR character, in which case no special function is done. .RE .SS "Modem Disconnect" -.sp .LP When a modem disconnect is detected, a \fBSIGHUP\fR signal is sent to the terminal's controlling process. Unless other arrangements have been made, these @@ -514,7 +519,6 @@ The controlling terminal will remain in this state until it is reinitialized with a successful open by the controlling process, or deallocated by the controlling process. .SS "Terminal Parameters" -.sp .LP The parameters that control the behavior of devices and modules providing the \fBtermios\fR interface are specified by the \fBtermios\fR structure defined by @@ -580,11 +584,12 @@ _ _ 16 VSTATUS DC4 _ -17-19 Reserved +17 VERASE2 BS +_ +18-19 Reserved .TE .SS "Input Modes" -.sp .LP The \fBc_iflag\fR field describes the basic terminal input control: .sp @@ -785,7 +790,6 @@ the input stream is not disturbed. If \fBIMAXBEL\fR is not set, no \fBBEL\fR character is echoed, and all input present in the input queue is discarded if the input stream overflows. .SS "Output Modes" -.sp .LP The \fBc_oflag\fR field specifies the system treatment of output: .sp @@ -1064,7 +1068,6 @@ character is transmitted. .LP The actual delays depend on line speed and system load. .SS "Control Modes" -.sp .LP The \fBc_cflag\fR field describes the hardware control of the terminal: .sp @@ -1619,7 +1622,6 @@ flow control and RTS signal to do inbound flow control. .RE .SS "Local Modes" -.sp .LP The \fBc_lflag\fR field of the argument structure is used by the line discipline to control terminal functions. The basic line discipline provides @@ -1820,16 +1822,16 @@ When \fBICANON\fR is set, the following echo functions are possible. .ie t \(bu .el o If \fBECHO\fR and \fBECHOE\fR are set, and \fBECHOPRT\fR is not set, the -\fBERASE\fR and \fBWERASE\fR characters are echoed as one or more ASCII BS SP -BS, which clears the last character(s) from a \fBCRT\fR screen. +\fBERASE\fR, \fBERASE2\fR, and \fBWERASE\fR characters are echoed as one or +more ASCII BS SP BS, which clears the last character(s) from a \fBCRT\fR screen. .RE .RS +4 .TP .ie t \(bu .el o -If \fBECHO\fR, \fBECHOPRT\fR, and \fBIEXTEN\fR are set, the first \fBERASE\fR -and \fBWERASE\fR character in a sequence echoes as a backslash (\fB\e\fR), -followed by the characters being erased. Subsequent \fBERASE\fR and +If \fBECHO\fR, \fBECHOPRT\fR, and \fBIEXTEN\fR are set, the first \fBERASE\fR, +\fBERASE2\fR, and \fBWERASE\fR character in a sequence echoes as a backslash +(\fB\e\fR), followed by the characters being erased. Subsequent \fBERASE\fR and \fBWERASE\fR characters echo the characters being erased, in reverse order. The next non-erase character causes a `/' (slash) to be typed before it is echoed. \fBECHOPRT\fR should be used for hard copy terminals. @@ -1900,13 +1902,11 @@ enabled: special characters ( \fBWERASE\fR, \fBREPRINT\fR, \fBDISCARD\fR, and \fBLNEXT\fR) and local flags ( \fBTOSTOP\fR, \fBECHOCTL\fR, \fBECHOPRT\fR, \fBECHOKE\fR, \fBFLUSHO\fR, and \fBPENDIN\fR). .SS "Minimum and Timeout" -.sp .LP The \fBMIN\fR and \fBTIME\fR values were described previously, in the subsection, \fBNon-canonical Mode Input Processing\fR. The initial value of \fBMIN\fR is 1, and the initial value of \fBTIME\fR is 0. .SS "Terminal Size" -.sp .LP The number of lines and columns on the terminal's display is specified in the \fBwinsize\fR structure defined by \fBsys/termios.h\fR and includes the @@ -1922,7 +1922,6 @@ unsigned short ws_ypixel; /* vertical size, in pixels */ .in -2 .SS "Termio Structure" -.sp .LP The SunOS/SVR4 \fBtermio\fR structure is used by some \fBioctl\fRs; it is defined by \fBsys/termio.h\fR and includes the following members: @@ -1983,7 +1982,6 @@ The calls that use the \fBtermio\fR structure only affect the flags and control characters that can be stored in the \fBtermio\fR structure; all other flags and control characters are unaffected. .SS "Modem Lines" -.sp .LP On special files representing serial ports, modem control lines can be read. Control lines (if the underlying hardware supports it) may also be changed. @@ -2093,7 +2091,6 @@ To be able to issue the \fBTIOCGSOFTCAR\fR and \fBTIOCSSOFTCAR\fR \fBioctl\fR calls, the \fBtty\fR line should be opened with \fBO_NDELAY\fR so that the \fBopen\fR(2) will not wait for the carrier. .SS "Default Values" -.sp .LP The initial \fBtermios\fR values upon driver open is configurable. This is accomplished by setting the "ttymodes" property in the file @@ -2111,7 +2108,6 @@ effect. The initial input control value is \fBBRKINT\fR, \fBICRNL\fR, \fBISIG\fR, \fBICANON\fR, \fBIEXTEN\fR, \fBECHO\fR, \fBECHOK\fR, \fBECHOE\fR, \fBECHOKE\fR, \fBECHOCTL\fR. .SH IOCTLS -.sp .LP The \fBioctl\fRs supported by devices and \fBSTREAMS\fR modules providing the \fBtermios\fR(3C) interface are listed below. Some calls may not be supported @@ -2415,11 +2411,9 @@ will automatically calibrate to it. .RE .SH FILES -.sp .LP Files in or under /\fBdev\fR .SH SEE ALSO -.sp .LP \fBstty\fR(1), \fBfork\fR(2), \fBgetpgid\fR(2), \fBgetsid\fR(2), \fBioctl\fR(2), \fBsetsid\fR(2), \fBsigaction\fR(2), \fBsignal\fR(3C), diff --git a/usr/src/uts/common/io/ldterm.c b/usr/src/uts/common/io/ldterm.c index 9d4baf4790..f48b126ead 100644 --- a/usr/src/uts/common/io/ldterm.c +++ b/usr/src/uts/common/io/ldterm.c @@ -1768,7 +1768,7 @@ ldterm_docanon(uchar_t c, mblk_t *bpt, size_t ebsize, queue_t *q, * the end of the buffer is a multi-byte and/or multi-column * character. */ - if (c == tp->t_modes.c_cc[VERASE]) { + if (c == tp->t_modes.c_cc[VERASE] || c == tp->t_modes.c_cc[VERASE2]) { if (tp->t_state & TS_QUOT) { /* * Get rid of the backslash, and put the @@ -3972,7 +3972,7 @@ outofbufs: #if !defined(__sparc) int movtuc(size_t size, unsigned char *from, unsigned char *origto, - unsigned char *table) + unsigned char *table) { unsigned char *to = origto; unsigned char c; diff --git a/usr/src/uts/common/io/options.conf b/usr/src/uts/common/io/options.conf index d88ae22788..8a315e7b8d 100644 --- a/usr/src/uts/common/io/options.conf +++ b/usr/src/uts/common/io/options.conf @@ -45,4 +45,4 @@ # name="options" class="root" -ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14"; +ttymodes="2502:1805:bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8"; diff --git a/usr/src/uts/common/io/tty_common.c b/usr/src/uts/common/io/tty_common.c index 0ad4a3b25a..c967af2c5e 100644 --- a/usr/src/uts/common/io/tty_common.c +++ b/usr/src/uts/common/io/tty_common.c @@ -52,7 +52,8 @@ static struct termios default_termios = { CFLUSH, CWERASE, CLNEXT, - CSTATUS + CSTATUS, + CERASE2 } }; @@ -421,7 +422,7 @@ allocfailure: return (ioctlrespsize); } -#define NFIELDS 21 /* 16 control characters + 4 sets of modes */ +#define NFIELDS 22 /* 18 control characters + 4 sets of modes */ /* * Init routine run from main at boot time. diff --git a/usr/src/uts/common/sys/termios.h b/usr/src/uts/common/sys/termios.h index 09be20858d..53b96b7aa4 100644 --- a/usr/src/uts/common/sys/termios.h +++ b/usr/src/uts/common/sys/termios.h @@ -144,7 +144,8 @@ extern pid_t tcgetsid(int); #define VWERASE 14 #define VLNEXT 15 #define VSTATUS 16 -/* 17 through 19 reserved for future use */ +#define VERASE2 17 +/* 18 through 19 reserved for future use */ /* * control characters form Xenix termio.h @@ -161,6 +162,7 @@ extern pid_t tcgetsid(int); #define CINTR CTRL('c') #define CQUIT 034 /* FS, cntl | */ #define CERASE 0177 /* DEL */ +#define CERASE2 CTRL('h') #define CKILL CTRL('u') #define CEOT 04 #define CEOL 0 diff --git a/usr/src/uts/sun4u/blade/io/options.conf b/usr/src/uts/sun4u/blade/io/options.conf index 6f46d75247..99dabb338d 100644 --- a/usr/src/uts/sun4u/blade/io/options.conf +++ b/usr/src/uts/sun4u/blade/io/options.conf @@ -23,8 +23,6 @@ # Copyright 2002 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" -# # The property "ttymodes" defines the default termios modes # (upon driver open) for the console ttys on Stiletto/JBOS blades. # @@ -40,4 +38,4 @@ # name="options" class="root" -ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16"; +ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8"; diff --git a/usr/src/uts/sun4u/opl/io/options.conf b/usr/src/uts/sun4u/opl/io/options.conf index ecf2bf358e..0a26d7abc3 100644 --- a/usr/src/uts/sun4u/opl/io/options.conf +++ b/usr/src/uts/sun4u/opl/io/options.conf @@ -22,8 +22,6 @@ # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # -#ident "%Z%%M% %I% %E% SMI" -# # The property "ttymodes" defines the default termios modes # (upon driver open) for the console ttys on OPL platform. # @@ -39,4 +37,4 @@ # name="options" class="root" -ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16"; +ttymodes="2502:1805:800000bd:8a3b:3:1c:7f:15:4:0:0:0:11:13:1a:19:12:f:17:16:14:8"; |