aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoberto E. Vargas Caballero <k0ga@shike2.com>2012-10-06 19:12:46 +0200
committerRoberto E. Vargas Caballero <k0ga@shike2.com>2012-10-06 19:12:46 +0200
commit70aeaf7f2fb26073431b4884098cf561ac0d585b (patch)
treeb56eba170a4b06aded540ab6f0338d1593524b28
parentec9fe428b81f478569f80ffab8a933334549ede4 (diff)
downloadst-patched-70aeaf7f2fb26073431b4884098cf561ac0d585b.tar.bz2
st-patched-70aeaf7f2fb26073431b4884098cf561ac0d585b.tar.xz
st-patched-70aeaf7f2fb26073431b4884098cf561ac0d585b.zip
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(-)
-rw-r--r--st.c28
1 files changed, 19 insertions, 9 deletions
diff --git a/st.c b/st.c
index 64e0aff..aa5f085 100644
--- a/st.c
+++ b/st.c
@@ -1789,32 +1789,42 @@ tputc(char *c, int len) {
1789 write(iofd, c, len); 1789 write(iofd, c, len);
1790 1790
1791 switch(ascii) { 1791 switch(ascii) {
1792 case '\t': 1792 case '\t': /* HT */
1793 tputtab(1); 1793 tputtab(1);
1794 return; 1794 return;
1795 case '\b': 1795 case '\b': /* BS */
1796 tmoveto(term.c.x-1, term.c.y); 1796 tmoveto(term.c.x-1, term.c.y);
1797 return; 1797 return;
1798 case '\r': 1798 case '\r': /* CR */
1799 tmoveto(0, term.c.y); 1799 tmoveto(0, term.c.y);
1800 return; 1800 return;
1801 case '\f': 1801 case '\f': /* LF */
1802 case '\v': 1802 case '\v': /* VT */
1803 case '\n': 1803 case '\n': /* LF */
1804 /* go to first col if the mode is set */ 1804 /* go to first col if the mode is set */
1805 tnewline(IS_SET(MODE_CRLF)); 1805 tnewline(IS_SET(MODE_CRLF));
1806 return; 1806 return;
1807 case '\a': 1807 case '\a': /* BEL */
1808 if(term.esc & ESC_STR) 1808 if(term.esc & ESC_STR)
1809 break; 1809 break;
1810
1811 if(!(xw.state & WIN_FOCUSED)) 1810 if(!(xw.state & WIN_FOCUSED))
1812 xseturgency(1); 1811 xseturgency(1);
1813 return; 1812 return;
1814 case '\033': 1813 case '\033': /* ESC */
1815 csireset(); 1814 csireset();
1816 term.esc = ESC_START; 1815 term.esc = ESC_START;
1817 return; 1816 return;
1817 case '\016': /* XXX: SO */
1818 case '\017': /* XXX: SI */
1819 case '\032': /* XXX: SUB */
1820 case '\030': /* XXX: CAN */
1821 default:
1822 /* case '\005': ENQ (IGNORED) */
1823 /* case '\000': NUL (IGNORED) */
1824 /* case '\021': XON (IGNORED) */
1825 /* case '\023': XOFF (IGNORED) */
1826 /* case 0177: DEL (IGNORED) */
1827 break;
1818 } 1828 }
1819 1829
1820 if(term.esc & ESC_START) { 1830 if(term.esc & ESC_START) {