OSDN Git Service

Retire LDP man-pages repository
[linuxjm/LDP_man-pages.git] / original / man4 / console_codes.4
diff --git a/original/man4/console_codes.4 b/original/man4/console_codes.4
deleted file mode 100644 (file)
index 24e6857..0000000
+++ /dev/null
@@ -1,654 +0,0 @@
-'\" t
-.\" Copyright (c) 1996 Andries Brouwer <aeb@cwi.nl>, Mon Oct 31 22:13:04 1996
-.\"
-.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
-.\" This is free documentation; you can redistribute it and/or
-.\" modify it under the terms of the GNU General Public License as
-.\" published by the Free Software Foundation; either version 2 of
-.\" the License, or (at your option) any later version.
-.\" %%%LICENSE_END
-.\"
-.\" This is combined from many sources.
-.\" For Linux, the definitive source is of course console.c.
-.\" About vt100-like escape sequences in general there are
-.\" the ISO 6429 and ISO 2022 norms, the descriptions of
-.\" an actual vt100, and the xterm docs (ctlseqs.ms).
-.\" Substantial portions of this text are derived from a write-up
-.\" by Eric S. Raymond <esr@thyrsus.com>.
-.\"
-.\" Tiny correction, aeb, 961107.
-.\"
-.\" 2006-05-27, Several corrections - Thomas E. Dickey
-.\"
-.TH CONSOLE_CODES 4 2012-08-05 "Linux" "Linux Programmer's Manual"
-.SH NAME
-console_codes \- Linux console escape and control sequences
-.SH DESCRIPTION
-The Linux console implements a large subset of the VT102 and ECMA-48/ISO
-6429/ANSI X3.64 terminal controls, plus certain private-mode sequences
-for changing the color palette, character-set mapping, and so on.
-In the tabular descriptions below, the second column gives ECMA-48 or DEC
-mnemonics (the latter if prefixed with DEC) for the given function.
-Sequences without a mnemonic are neither ECMA-48 nor VT102.
-.LP
-After all the normal output processing has been done, and a
-stream of characters arrives at the console driver for actual
-printing, the first thing that happens is a translation from
-the code used for processing to the code used for printing.
-.LP
-If the console is in UTF-8 mode, then the incoming bytes are
-first assembled into 16-bit Unicode codes.
-Otherwise, each byte is transformed according to the current mapping table
-(which translates it to a Unicode value).
-See the \fBCharacter Sets\fP section below for discussion.
-.LP
-In the normal case, the Unicode value is converted to a font index,
-and this is stored in video memory, so that the corresponding glyph
-(as found in video ROM) appears on the screen.
-Note that the use of Unicode (and the design of the PC hardware)
-allows us to use 512 different glyphs simultaneously.
-.LP
-If the current Unicode value is a control character, or we are
-currently processing an escape sequence, the value will treated
-specially.
-Instead of being turned into a font index and rendered as
-a glyph, it may trigger cursor movement or other control functions.
-See the \fBLinux Console Controls\fP section below for discussion.
-.LP
-It is generally not good practice to hard-wire terminal controls into
-programs.
-Linux supports a
-.BR terminfo (5)
-database of terminal capabilities.
-Rather than emitting console escape sequences by hand, you will almost
-always want to use a terminfo-aware screen library or utility such as
-.BR ncurses (3),
-.BR tput (1),
-or
-.BR reset (1).
-.SS Linux console controls
-This section describes all the control characters and escape sequences
-that invoke special functions (i.e., anything other than writing a
-glyph at the current cursor location) on the Linux console.
-.PP
-.B "Control characters"
-.sp
-A character is a control character if (before transformation
-according to the mapping table) it has one of the 14 codes
-00 (NUL), 07 (BEL), 08 (BS), 09 (HT), 0a (LF), 0b (VT),
-0c (FF), 0d (CR), 0e (SO), 0f (SI), 18 (CAN), 1a (SUB),
-1b (ESC), 7f (DEL).
-One can set a "display control characters" mode (see below),
-and allow 07, 09, 0b, 18, 1a, 7f to be displayed as glyphs.
-On the other hand, in UTF-8 mode all codes 00-1f are regarded
-as control characters, regardless of any "display control characters"
-mode.
-.PP
-If we have a control character, it is acted upon immediately
-and then discarded (even in the middle of an escape sequence)
-and the escape sequence continues with the next character.
-(However, ESC starts a new escape sequence, possibly aborting a previous
-unfinished one, and CAN and SUB abort any escape sequence.)
-The recognized control characters are BEL, BS, HT, LF, VT, FF,
-CR, SO, SI, CAN, SUB, ESC, DEL, CSI.
-They do what one would expect:
-.HP
-BEL (0x07, \fB^G\fP) beeps;
-.HP
-BS (0x08, \fB^H\fP) backspaces one column
-(but not past the beginning of the line);
-.HP
-HT (0x09, \fB^I\fP) goes to the next tab stop or to the end of the line
-if there is no earlier tab stop;
-.HP
-LF (0x0A, \fB^J\fP), VT (0x0B, \fB^K\fP) and
-FF (0x0C, \fB^L\fP) all give a linefeed,
-and if LF/NL (new-line mode) is set also a carriage return;
-.HP
-CR (0x0D, \fB^M\fP) gives a carriage return;
-.HP
-SO (0x0E, \fB^N\fP) activates the G1 character set;
-.HP
-SI (0x0F, \fB^O\fP) activates the G0 character set;
-.HP
-CAN (0x18, \fB^X\fP) and SUB (0x1A, \fB^Z\fP) interrupt escape sequences;
-.HP
-ESC (0x1B, \fB^[\fP) starts an escape sequence;
-.HP
-DEL (0x7F) is ignored;
-.HP
-CSI (0x9B) is equivalent to ESC [.
-.PP
-.B "ESC- but not CSI-sequences"
-.TS
-l l l.
-ESC c  RIS     Reset.
-ESC D  IND     Linefeed.
-ESC E  NEL     Newline.
-ESC H  HTS     Set tab stop at current column.
-ESC M  RI      Reverse linefeed.
-ESC Z  DECID   T{
-DEC private identification. The kernel
-returns the string  ESC [ ? 6 c, claiming
-that it is a VT102.
-T}
-ESC 7  DECSC   T{
-Save current state (cursor coordinates,
-attributes, character sets pointed at by G0, G1).
-T}
-ESC 8  DECRC   Restore state most recently saved by ESC 7.
-ESC [  CSI     Control sequence introducer
-ESC %          Start sequence selecting character set
-ESC % @                \0\0\0Select default (ISO 646 / ISO 8859-1)
-ESC % G                \0\0\0Select UTF-8
-ESC % 8                \0\0\0Select UTF-8 (obsolete)
-ESC # 8        DECALN  DEC screen alignment test \- fill screen with E's.
-ESC (          Start sequence defining G0 character set
-ESC ( B                \0\0\0Select default (ISO 8859-1 mapping)
-ESC ( 0                \0\0\0Select VT100 graphics mapping
-ESC ( U                \0\0\0Select null mapping \- straight to character ROM
-ESC ( K                \0\0\0Select user mapping \- the map that is loaded by
-               \0\0\0the utility \fBmapscrn\fP(8).
-ESC )          Start sequence defining G1
-               (followed by one of B, 0, U, K, as above).
-ESC >  DECPNM  Set numeric keypad mode
-ESC =  DECPAM  Set application keypad mode
-ESC ]  OSC     T{
-(Should be: Operating system command)
-ESC ] P \fInrrggbb\fP: set palette, with parameter
-given in 7 hexadecimal digits after the final P :-(.
-Here \fIn\fP is the color (0-15), and \fIrrggbb\fP indicates
-the red/green/blue values (0-255).
-ESC ] R: reset palette
-T}
-.TE
-.PP
-.B "ECMA-48 CSI sequences"
-.sp
-CSI (or ESC [) is followed by a sequence of parameters,
-at most NPAR (16), that are decimal numbers separated by
-semicolons.
-An empty or absent parameter is taken to be 0.
-The sequence of parameters may be preceded by a single question mark.
-.PP
-However, after CSI [ (or ESC [ [) a single character is read
-and this entire sequence is ignored.
-(The idea is to ignore an echoed function key.)
-.PP
-The action of a CSI sequence is determined by its final character.
-.TS
-l l l.
-@      ICH     Insert the indicated # of blank characters.
-A      CUU     Move cursor up the indicated # of rows.
-B      CUD     Move cursor down the indicated # of rows.
-C      CUF     Move cursor right the indicated # of columns.
-D      CUB     Move cursor left the indicated # of columns.
-E      CNL     Move cursor down the indicated # of rows, to column 1.
-F      CPL     Move cursor up the indicated # of rows, to column 1.
-G      CHA     Move cursor to indicated column in current row.
-H      CUP     Move cursor to the indicated row, column (origin at 1,1).
-J      ED      Erase display (default: from cursor to end of display).
-               ESC [ 1 J: erase from start to cursor.
-               ESC [ 2 J: erase whole display.
-               ESC [ 3 J: erase whole display including scroll-back
-                          buffer (since Linux 3.0).
-.\" ESC [ 3 J: commit f8df13e0a901fe55631fed66562369b4dba40f8b
-K      EL      Erase line (default: from cursor to end of line).
-               ESC [ 1 K: erase from start of line to cursor.
-               ESC [ 2 K: erase whole line.
-L      IL      Insert the indicated # of blank lines.
-M      DL      Delete the indicated # of lines.
-P      DCH     Delete the indicated # of characters on current line.
-X      ECH     Erase the indicated # of characters on current line.
-a      HPR     Move cursor right the indicated # of columns.
-c      DA      Answer ESC [ ? 6 c: "I am a VT102".
-d      VPA     Move cursor to the indicated row, current column.
-e      VPR     Move cursor down the indicated # of rows.
-f      HVP     Move cursor to the indicated row, column.
-g      TBC     Without parameter: clear tab stop at current position.
-               ESC [ 3 g: delete all tab stops.
-h      SM      Set Mode (see below).
-l      RM      Reset Mode (see below).
-m      SGR     Set attributes (see below).
-n      DSR     Status report (see below).
-q      DECLL   Set keyboard LEDs.
-               ESC [ 0 q: clear all LEDs
-               ESC [ 1 q: set Scroll Lock LED
-               ESC [ 2 q: set Num Lock LED
-               ESC [ 3 q: set Caps Lock LED
-r      DECSTBM Set scrolling region; parameters are top and bottom row.
-s      ?       Save cursor location.
-u      ?       Restore cursor location.
-\`     HPA     Move cursor to indicated column in current row.
-.TE
-.PP
-.B ECMA-48 Set Graphics Rendition
-.sp
-The ECMA-48 SGR sequence ESC [ \fIparameters\fP m sets display
-attributes.
-Several attributes can be set in the same sequence, separated by
-semicolons.
-An empty parameter (between semicolons or string initiator or
-terminator) is interpreted as a zero.
-.TS
-l l.
-param  result
-0      reset all attributes to their defaults
-1      set bold
-2      set half-bright (simulated with color on a color display)
-4      T{
-set underscore (simulated with color on a color display)
-(the colors used to simulate dim or underline are set
-using ESC ] ...)
-T}
-5      set blink
-7      set reverse video
-10     T{
-reset selected mapping, display control flag,
-and toggle meta flag (ECMA-48 says "primary font").
-T}
-11     T{
-select null mapping, set display control flag,
-reset toggle meta flag (ECMA-48 says "first alternate font").
-T}
-12     T{
-select null mapping, set display control flag,
-set toggle meta flag (ECMA-48 says "second alternate font").
-The toggle meta flag
-causes the high bit of a byte to be toggled
-before the mapping table translation is done.
-T}
-21     set normal intensity (ECMA-48 says "doubly underlined")
-22     set normal intensity
-24     underline off
-25     blink off
-27     reverse video off
-30     set black foreground
-31     set red foreground
-32     set green foreground
-33     set brown foreground
-34     set blue foreground
-35     set magenta foreground
-36     set cyan foreground
-37     set white foreground
-38     set underscore on, set default foreground color
-39     set underscore off, set default foreground color
-40     set black background
-41     set red background
-42     set green background
-43     set brown background
-44     set blue background
-45     set magenta background
-46     set cyan background
-47     set white background
-49     set default background color
-.TE
-.PP
-.B ECMA-48 Mode Switches
-.TP
-ESC [ 3 h
-DECCRM (default off): Display control chars.
-.TP
-ESC [ 4 h
-DECIM (default off): Set insert mode.
-.TP
-ESC [ 20 h
-LF/NL (default off): Automatically follow echo of LF, VT or FF with CR.
-.\"
-.PP
-.B ECMA-48 Status Report Commands
-.\"
-.TP
-ESC [ 5 n
-Device status report (DSR): Answer is ESC [ 0 n (Terminal OK).
-.TP
-ESC [ 6 n
-Cursor position report (CPR): Answer is ESC [ \fIy\fP ; \fIx\fP R,
-where \fIx,y\fP is the cursor location.
-.\"
-.PP
-.B DEC Private Mode (DECSET/DECRST) sequences
-.sp
-.\"
-These are not described in ECMA-48.
-We list the Set Mode sequences;
-the Reset Mode sequences are obtained by replacing the final \(aqh\(aq
-by \(aql\(aq.
-.TP
-ESC [ ? 1 h
-DECCKM (default off): When set, the cursor keys send an ESC O prefix,
-rather than ESC [.
-.TP
-ESC [ ? 3 h
-DECCOLM (default off = 80 columns): 80/132 col mode switch.
-The driver sources note that this alone does not suffice; some user-mode
-utility such as
-.BR resizecons (8)
-has to change the hardware registers on the console video card.
-.TP
-ESC [ ? 5 h
-DECSCNM (default off): Set reverse-video mode.
-.TP
-ESC [ ? 6 h
-DECOM (default off): When set, cursor addressing is relative to
-the upper left corner of the scrolling region.
-.TP
-ESC [ ? 7 h
-DECAWM (default on): Set autowrap on.
-In this mode, a graphic
-character emitted after column 80 (or column 132 of DECCOLM is on)
-forces a wrap to the beginning of the following line first.
-.TP
-ESC [ ? 8 h
-DECARM (default on): Set keyboard autorepeat on.
-.TP
-ESC [ ? 9 h
-X10 Mouse Reporting (default off): Set reporting mode to 1 (or reset to
-0)\(emsee below.
-.TP
-ESC [ ? 25 h
-DECTECM (default on): Make cursor visible.
-.TP
-ESC [ ? 1000 h
-X11 Mouse Reporting (default off): Set reporting mode to 2 (or reset
-to 0)\(emsee below.
-.\"
-.PP
-.B Linux Console Private CSI Sequences
-.sp
-.\"
-The following sequences are neither ECMA-48 nor native VT102.
-They are native to the Linux console driver.
-Colors are in SGR parameters:
-0 = black, 1 = red, 2 = green, 3 = brown, 4 = blue, 5 = magenta, 6 =
-cyan, 7 = white.
-.TS
-l l.
-ESC [ 1 ; \fIn\fP ]    Set color \fIn\fP as the underline color
-ESC [ 2 ; \fIn\fP ]    Set color \fIn\fP as the dim color
-ESC [ 8 ]              Make the current color pair the default attributes.
-ESC [ 9 ; \fIn\fP ]    Set screen blank timeout to \fIn\fP minutes.
-ESC [ 10 ; \fIn\fP ]   Set bell frequency in Hz.
-ESC [ 11 ; \fIn\fP ]   Set bell duration in msec.
-ESC [ 12 ; \fIn\fP ]   Bring specified console to the front.
-ESC [ 13 ]             Unblank the screen.
-ESC [ 14 ; \fIn\fP ]           Set the VESA powerdown interval in minutes.
-.TE
-.SS Character sets
-The kernel knows about 4 translations of bytes into console-screen
-symbols.
-The four tables are: a) Latin1 \-> PC,
-b) VT100 graphics \-> PC, c) PC \-> PC, d) user-defined.
-.PP
-There are two character sets, called G0 and G1, and one of them
-is the current character set.
-(Initially G0.)
-Typing \fB^N\fP causes G1 to become current,
-\fB^O\fP causes G0 to become current.
-.PP
-These variables G0 and G1 point at a translation table, and can be
-changed by the user.
-Initially they point at tables a) and b), respectively.
-The sequences ESC ( B and ESC ( 0 and ESC ( U and ESC ( K cause G0 to
-point at translation table a), b), c) and d), respectively.
-The sequences ESC ) B and ESC ) 0 and ESC ) U and ESC ) K cause G1 to
-point at translation table a), b), c) and d), respectively.
-.PP
-The sequence ESC c causes a terminal reset, which is what you want if the
-screen is all garbled.
-The oft-advised "echo ^V^O" will make only G0 current,
-but there is no guarantee that G0 points at table a).
-In some distributions there is a program
-.BR reset (1)
-that just does "echo ^[c".
-If your terminfo entry for the console is correct
-(and has an entry rs1=\\Ec), then "tput reset" will also work.
-.PP
-The user-defined mapping table can be set using
-.BR mapscrn (8).
-The result of the mapping is that if a symbol c is printed, the symbol
-s = map[c] is sent to the video memory.
-The bitmap that corresponds to
-s is found in the character ROM, and can be changed using
-.BR setfont (8).
-.SS Mouse tracking
-The mouse tracking facility is intended to return
-.BR xterm (1)-compatible
-mouse status reports.
-Because the console driver has no way to know
-the device or type of the mouse, these reports are returned in the
-console input stream only when the virtual terminal driver receives
-a mouse update ioctl.
-These ioctls must be generated by a mouse-aware
-user-mode application such as the
-.BR gpm (8)
-daemon.
-.PP
-The mouse tracking escape sequences generated by
-\fBxterm\fP(1) encode numeric parameters in a single character as
-\fIvalue\fP+040.
-For example, \(aq!\(aq is 1.
-The screen coordinate system is 1-based.
-.PP
-The X10 compatibility mode sends an escape sequence on button press
-encoding the location and the mouse button pressed.
-It is enabled by sending ESC [ ? 9 h and disabled with ESC [ ? 9 l.
-On button press, \fBxterm\fP(1) sends
-ESC [ M \fIbxy\fP (6 characters).
-Here \fIb\fP is button\-1,
-and \fIx\fP and \fIy\fP are the x and y coordinates of the mouse
-when the button was pressed.
-This is the same code the kernel also produces.
-.PP
-Normal tracking mode (not implemented in Linux 2.0.24) sends an escape
-sequence on both button press and release.
-Modifier information is also sent.
-It is enabled by sending ESC [ ? 1000 h and disabled with
-ESC [ ? 1000 l.
-On button press or release, \fBxterm\fP(1) sends ESC [ M
-\fIbxy\fP.
-The low two bits of \fIb\fP encode button information:
-0=MB1 pressed, 1=MB2 pressed, 2=MB3 pressed, 3=release.
-The upper bits encode what modifiers were down when the button was
-pressed and are added together: 4=Shift, 8=Meta, 16=Control.
-Again \fIx\fP and
-\fIy\fP are the x and y coordinates of the mouse event.
-The upper left corner is (1,1).
-.SS Comparisons with other terminals
-Many different terminal types are described, like the Linux console,
-as being "VT100-compatible".
-Here we discuss differences between the
-Linux console and the two most important others, the DEC VT102 and
-.BR xterm (1).
-.\"
-.PP
-.B Control-character handling
-.sp
-The VT102 also recognized the following control characters:
-.HP
-NUL (0x00) was ignored;
-.HP
-ENQ (0x05) triggered an answerback message;
-.HP
-DC1 (0x11, \fB^Q\fP, XON) resumed transmission;
-.HP
-DC3 (0x13, \fB^S\fP, XOFF) caused VT100 to ignore (and stop transmitting)
-all codes except XOFF and XON.
-.LP
-VT100-like DC1/DC3 processing may be enabled by the terminal driver.
-.LP
-The
-.BR xterm (1)
-program (in VT100 mode) recognizes the control characters
-BEL, BS, HT, LF, VT, FF, CR, SO, SI, ESC.
-.\"
-.PP
-.B Escape sequences
-.sp
-VT100 console sequences not implemented on the Linux console:
-.TS
-l l l.
-ESC N  SS2     Single shift 2. (Select G2 character set for the next
-               character only.)
-ESC O  SS3     Single shift 3. (Select G3 character set for the next
-               character only.)
-ESC P  DCS     Device control string (ended by ESC \\)
-ESC X  SOS     Start of string.
-ESC ^  PM      Privacy message (ended by ESC \\)
-ESC \\ ST      String terminator
-ESC * ...              Designate G2 character set
-ESC + ...              Designate G3 character set
-.TE
-.PP
-The program
-.BR xterm (1)
-(in VT100 mode) recognizes ESC c, ESC # 8, ESC >, ESC =,
-ESC D, ESC E, ESC H, ESC M, ESC N, ESC O, ESC P ... ESC \\,
-ESC Z (it answers ESC [ ? 1 ; 2 c, "I am a VT100 with
-advanced video option")
-and ESC ^ ... ESC \\ with the same meanings as indicated above.
-It accepts ESC (, ESC ), ESC *,  ESC + followed by 0, A, B for
-the DEC special character and line drawing set, UK, and US-ASCII,
-respectively.
-.PP
-The user can configure \fBxterm\fP(1) to respond to VT220-specific
-control sequences, and it will identify itself as a VT52, VT100, and
-up depending on the way it is configured and initialized.
-.PP
-It accepts ESC ] (OSC) for the setting of certain resources.
-In addition to the ECMA-48 string terminator (ST),
-\fBxterm\fP(1) accepts a BEL to terminate an OSC string.
-These are a few of the OSC control sequences recognized by \fBxterm\fP(1):
-.TS
-l l.
-ESC ] 0 ; \fItxt\fP ST Set icon name and window title to \fItxt\fP.
-ESC ] 1 ; \fItxt\fP ST Set icon name to \fItxt\fP.
-ESC ] 2 ; \fItxt\fP ST Set window title to \fItxt\fP.
-ESC ] 4 ; \fInum\fP; \fItxt\fP ST      Set ANSI color \fInum\fP to \fItxt\fP.
-ESC ] 10 ; \fItxt\fP ST        Set dynamic text color to \fItxt\fP.
-ESC ] 4 6 ; \fIname\fP ST      Change log file to \fIname\fP (normally disabled
-       by a compile-time option)
-ESC ] 5 0 ; \fIfn\fP ST        Set font to \fIfn\fP.
-.TE
-.PP
-It recognizes the following with slightly modified meaning
-(saving more state, behaving closer to VT100/VT220):
-.TS
-l l l.
-ESC 7  DECSC   Save cursor
-ESC 8  DECRC   Restore cursor
-.TE
-.PP
-It also recognizes
-.TS
-l l l.
-ESC F          Cursor to lower left corner of screen (if enabled by
-               \fBxterm\fP(1)'s \fBhpLowerleftBugCompat\fP resource)
-ESC l          Memory lock (per HP terminals).
-               Locks memory above the cursor.
-ESC m          Memory unlock (per HP terminals).
-ESC n  LS2     Invoke the G2 character set.
-ESC o  LS3     Invoke the G3 character set.
-ESC |  LS3R    Invoke the G3 character set as GR.
-ESC }  LS2R    Invoke the G2 character set as GR.
-ESC ~  LS1R    Invoke the G1 character set as GR.
-.TE
-.PP
-It also recognizes ESC % and provides a more complete UTF-8
-implementation than Linux console.
-.\"
-.PP
-.B CSI Sequences
-.sp
-Old versions of \fBxterm\fP(1), for example, from X11R5,
-interpret the blink SGR as a bold SGR.
-Later versions which implemented ANSI colors, for example,
-XFree86 3.1.2A in 1995, improved this by allowing
-the blink attribute to be displayed as a color.
-Modern versions of xterm implement blink SGR as blinking text
-and still allow colored text as an alternate rendering of SGRs.
-Stock X11R6 versions did not recognize the color-setting SGRs until
-the X11R6.8 release, which incorporated XFree86 xterm.
-All ECMA-48 CSI sequences recognized by Linux are also recognized by
-.IR xterm ,
-however \fBxterm\fP(1) implements several ECMA-48 and DEC control sequences
-not recognized by Linux.
-.PP
-The \fBxterm\fP(1)
-program recognizes all of the DEC Private Mode sequences listed
-above, but none of the Linux private-mode sequences.
-For discussion of \fBxterm\fP(1)'s
-own private-mode sequences, refer to the
-\fIXterm Control Sequences\fP
-document by
-Edward Moy,
-Stephen Gildea,
-and Thomas E. Dickey
-available with the X distribution.
-That document, though terse, is much longer than this manual page.
-For a chronological overview,
-.PP
-.RS
-.UR http://invisible-island.net\:/xterm\:/xterm.log.html
-.UE
-.RE
-.PP
-details changes to xterm.
-.PP
-The \fIvttest\fP program
-.PP
-.RS
-.UR http://invisible-island.net\:/vttest/
-.UE
-.RE
-.PP
-demonstrates many of these control sequences.
-The \fBxterm\fP(1) source distribution also contains sample
-scripts which exercise other features.
-.SH NOTES
-ESC 8 (DECRC) is not able to restore the character set changed with
-ESC %.
-.SH BUGS
-In 2.0.23, CSI is broken, and NUL is not ignored inside
-escape sequences.
-.PP
-Some older kernel versions (after 2.0) interpret 8-bit control
-sequences.
-These "C1 controls" use codes between 128 and 159 to replace
-ESC [, ESC ] and similar two-byte control sequence initiators.
-There are fragments of that in modern kernels (either overlooked or
-broken by changes to support UTF-8),
-but the implementation is incomplete and should be regarded
-as unreliable.
-.PP
-Linux "private mode" sequences do not follow the rules in ECMA-48
-for private mode control sequences.
-In particular, those ending with ] do not use a standard terminating
-character.
-The OSC (set palette) sequence is a greater problem,
-since \fBxterm\fP(1) may interpret this as a control sequence
-which requires a string terminator (ST).
-Unlike the \fBsetterm\fP(1) sequences which will be ignored (since
-they are invalid control sequences), the palette sequence will make
-\fBxterm\fP(1) appear to hang (though pressing the return-key
-will fix that).
-To accommodate applications which have been hardcoded to use Linux
-control sequences,
-set the \fBxterm\fP(1) resource \fBbrokenLinuxOSC\fP to true.
-.PP
-An older version of this document implied that Linux recognizes the
-ECMA-48 control sequence for invisible text.
-It is ignored.
-.SH SEE ALSO
-.BR console (4),
-.BR console_ioctl (4),
-.BR charsets (7)
-.SH COLOPHON
-This page is part of release 3.79 of the Linux
-.I man-pages
-project.
-A description of the project,
-information about reporting bugs,
-and the latest version of this page,
-can be found at
-\%http://www.kernel.org/doc/man\-pages/.