URI: 
       Add HTS sequence - st - simple terminal
  HTML git clone https://git.parazyd.org/st
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 93901ca4fee8a1ab71cb8b918f3d65404460f9ce
   DIR parent ee7fd748ac7bfabda2ac37251d230b45adb3e138
  HTML Author: Roberto E. Vargas Caballero <k0ga@shike2.com>
       Date:   Wed, 29 Aug 2012 19:59:43 +0200
       
       Add HTS sequence
       
       This sequence adds a new tab stop in the current horizontal position. This
       means that tputtab must be look for the next tab stop in the tabs array
       instead of using a hard coded value offset. Also, CHT sequence XXX message
       is removed because it is not a vt10x sequence (as far as I know it is a
       vt50x sequence), and it is not implemented by linux virtual terminal neither
       by xterm.
       
       Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
       ---
        st.c |   12 +++++++++---
        1 file changed, 9 insertions(+), 3 deletions(-)
       Diffstat:
         M st.c                                |      12 +++++++++---
       
       1 file changed, 9 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/st.c b/st.c
       @@ -1214,7 +1214,6 @@ csihandle(void) {
                        DEFAULT(escseq.arg[1], 1);
                        tmoveto(escseq.arg[1]-1, escseq.arg[0]-1);
                        break;
       -        /* XXX: (CSI n I) CHT -- Cursor Forward Tabulation <n> tab stops */
                case 'J': /* ED -- Clear screen */
                        sel.bx = -1;
                        switch(escseq.arg[0]) {
       @@ -1429,8 +1428,11 @@ csireset(void) {
        
        void
        tputtab(void) {
       -        int space = TAB - term.c.x % TAB;
       -        tmoveto(term.c.x + space, term.c.y);
       +        unsigned x;
       +
       +        for (x = term.c.x + 1; x < term.col && !term.tabs[x]; ++x)
       +                /* nothing */ ;
       +        tmoveto(x, term.c.y);
        }
        
        void
       @@ -1491,6 +1493,10 @@ tputc(char *c) {
                                        tnewline(1); /* always go to first col */
                                        term.esc = 0;
                                        break;
       +                        case 'H': /* HTS -- Horizontal tab stop */
       +                                term.tabs[term.c.x] = 1;
       +                                term.esc = 0;
       +                                break;
                                case 'M': /* RI -- Reverse index */
                                        if(term.c.y == term.top)
                                                tscrolldown(term.top, 1);