End a sequence only on CAN, SUB, \a and C1s. - st - Personal fork of st
 (HTM) git clone git://git.drkhsh.at/st.git
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit e31829f659a818e438bf2fe45708abb2983f8765
 (DIR) parent 5e917ab2874de556de12ce43e9a97300c9c722a2
 (HTM) Author: Colona <colona@ycc.fr>
       Date:   Fri,  9 May 2014 10:23:53 +0200
       
       End a sequence only on CAN, SUB, \a and C1s.
       
       Diffstat:
         M st.c                                |      14 ++++++++------
       
       1 file changed, 8 insertions(+), 6 deletions(-)
       ---
 (DIR) diff --git a/st.c b/st.c
       @@ -2335,19 +2335,19 @@ tcontrolcode(uchar ascii) {
                switch(ascii) {
                case '\t':   /* HT */
                        tputtab(1);
       -                break;
       +                return;
                case '\b':   /* BS */
                        tmoveto(term.c.x-1, term.c.y);
       -                break;
       +                return;
                case '\r':   /* CR */
                        tmoveto(0, term.c.y);
       -                break;
       +                return;
                case '\f':   /* LF */
                case '\v':   /* VT */
                case '\n':   /* LF */
                        /* go to first col if the mode is set */
                        tnewline(IS_SET(MODE_CRLF));
       -                break;
       +                return;
                case '\a':   /* BEL */
                        if(term.esc & ESC_STR_END) {
                                /* backwards compatibility to xterm */
       @@ -2366,10 +2366,10 @@ tcontrolcode(uchar ascii) {
                        return;
                case '\016': /* SO */
                        term.charset = 0;
       -                break;
       +                return;
                case '\017': /* SI */
                        term.charset = 1;
       -                break;
       +                return;
                case '\032': /* SUB */
                        tsetchar(question, &term.c.attr, term.c.x, term.c.y);
                case '\030': /* CAN */
       @@ -2380,6 +2380,7 @@ tcontrolcode(uchar ascii) {
                case '\021': /* XON (IGNORED) */
                case '\023': /* XOFF (IGNORED) */
                case 0177:   /* DEL (IGNORED) */
       +                return;
                case 0x84:   /* TODO: IND */
                case 0x85:   /* TODO: NEL */
                case 0x88:   /* TODO: HTS */
       @@ -2396,6 +2397,7 @@ tcontrolcode(uchar ascii) {
                case 0x9f:   /* TODO: APC */
                        break;
                }
       +        /* only CAN, SUB, \a and C1 chars interrupt a sequence */
                term.esc &= ~(ESC_STR_END|ESC_STR);
                return;
        }