URI: 
       Add documentation to control codes - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit ac8f05c45a65788523af7223b1a94e8baf890b6e
   DIR parent 02f3b37a2d354c74169f5ed038bb1cb6225d691a
  HTML Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Sat,  6 Oct 2012 19:12:46 +0200
       
       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(-)
       Diffstat:
         M st.c                                |      28 +++++++++++++++++++---------
       
       1 file changed, 19 insertions(+), 9 deletions(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -1789,32 +1789,42 @@ tputc(char *c, int len) {
                        write(iofd, c, len);
        
                switch(ascii) {
       -        case '\t':
       +        case '\t':        /* HT */
                        tputtab(1);
                        return;
       -        case '\b':
       +        case '\b':        /* BS */
                        tmoveto(term.c.x-1, term.c.y);
                        return;
       -        case '\r':
       +        case '\r':        /* CR */
                        tmoveto(0, term.c.y);
                        return;
       -        case '\f':
       -        case '\v':
       -        case '\n':
       +        case '\f':        /* LF */
       +        case '\v':        /* VT */
       +        case '\n':        /* LF */
                        /* go to first col if the mode is set */
                        tnewline(IS_SET(MODE_CRLF));
                        return;
       -        case '\a':
       +        case '\a':        /* BEL */
                        if(term.esc & ESC_STR)
                                break;
       -
                        if(!(xw.state & WIN_FOCUSED))
                                xseturgency(1);
                        return;
       -        case '\033':
       +        case '\033':        /* ESC */
                        csireset();
                        term.esc = ESC_START;
                        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) {