Add documentation to control codes
Add the documentation from the vt100 manual programmer: Control Octal Action Taken Character Code ------------------------------------------- NUL 000 Ignored on input (not stored in input buffer; see full duplex protocol). ENQ 005 Transmit answerback message. BEL 007 Sound bell tone from keyboard. BS 010 Move the cursor to the left one character position, unless it is at the left margin, in which case no action occurs. HT 011 Move the cursor to the next tab stop, or to the right margin if no further tab stops are present on the line. LF 012 This code causes a line feed or a new line operation. (See new line mode). VT 013 Interpreted as LF. FF 014 Interpreted as LF. CR 015 Move cursor to the left margin on the current line. SO 016 Invoke G1 character set, as designated by SCS control sequence. SI 017 Select G0 character set, as selected by ESC ( sequence. XON 021 Causes terminal to resume transmission. XOFF 023 Causes terminal to stop transmitted all codes except XOFF and XON. CAN 030 If sent during a control sequence, the sequence is immediately terminated and not executed. It also causes the error character to be displayed. SUB 032 Interpreted as CAN. ESC 033 Invokes a control sequence. DEL 177 Ignored on input (not stored in input buffer). -------------------------------------------- --- st.c | 28 +++++++++++++++++++--------- 1 file changed, 19 insertions(+), 9 deletions(-)
This commit is contained in:
parent
02f3b37a2d
commit
ac8f05c45a
28
st.c
28
st.c
|
@ -1789,32 +1789,42 @@ tputc(char *c, int len) {
|
||||||
write(iofd, c, len);
|
write(iofd, c, len);
|
||||||
|
|
||||||
switch(ascii) {
|
switch(ascii) {
|
||||||
case '\t':
|
case '\t': /* HT */
|
||||||
tputtab(1);
|
tputtab(1);
|
||||||
return;
|
return;
|
||||||
case '\b':
|
case '\b': /* BS */
|
||||||
tmoveto(term.c.x-1, term.c.y);
|
tmoveto(term.c.x-1, term.c.y);
|
||||||
return;
|
return;
|
||||||
case '\r':
|
case '\r': /* CR */
|
||||||
tmoveto(0, term.c.y);
|
tmoveto(0, term.c.y);
|
||||||
return;
|
return;
|
||||||
case '\f':
|
case '\f': /* LF */
|
||||||
case '\v':
|
case '\v': /* VT */
|
||||||
case '\n':
|
case '\n': /* LF */
|
||||||
/* go to first col if the mode is set */
|
/* go to first col if the mode is set */
|
||||||
tnewline(IS_SET(MODE_CRLF));
|
tnewline(IS_SET(MODE_CRLF));
|
||||||
return;
|
return;
|
||||||
case '\a':
|
case '\a': /* BEL */
|
||||||
if(term.esc & ESC_STR)
|
if(term.esc & ESC_STR)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
if(!(xw.state & WIN_FOCUSED))
|
if(!(xw.state & WIN_FOCUSED))
|
||||||
xseturgency(1);
|
xseturgency(1);
|
||||||
return;
|
return;
|
||||||
case '\033':
|
case '\033': /* ESC */
|
||||||
csireset();
|
csireset();
|
||||||
term.esc = ESC_START;
|
term.esc = ESC_START;
|
||||||
return;
|
return;
|
||||||
|
case '\016': /* XXX: SO */
|
||||||
|
case '\017': /* XXX: SI */
|
||||||
|
case '\032': /* XXX: SUB */
|
||||||
|
case '\030': /* XXX: CAN */
|
||||||
|
default:
|
||||||
|
/* case '\005': ENQ (IGNORED) */
|
||||||
|
/* case '\000': NUL (IGNORED) */
|
||||||
|
/* case '\021': XON (IGNORED) */
|
||||||
|
/* case '\023': XOFF (IGNORED) */
|
||||||
|
/* case 0177: DEL (IGNORED) */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(term.esc & ESC_START) {
|
if(term.esc & ESC_START) {
|
||||||
|
|
Loading…
Reference in a new issue