X-Git-Url: https://git.xinqibao.xyz/st.git/blobdiff_plain/93901ca4fee8a1ab71cb8b918f3d65404460f9ce..ff040e9894f62fe28bf100488211d0a407740668:/st.c?ds=sidebyside diff --git a/st.c b/st.c index 4b7e4eb..b9bab29 100644 --- a/st.c +++ b/st.c @@ -1203,6 +1203,18 @@ csihandle(void) { DEFAULT(escseq.arg[0], 1); tmoveto(0, term.c.y-escseq.arg[0]); break; + case 'g': /* TBC -- Tabulation clear */ + switch (escseq.arg[0]) { + case 0: /* clear current tab stop */ + term.tabs[term.c.x] = 0; + break; + case 3: /* clear all the tabs */ + memset(term.tabs, 0, term.col * sizeof(*term.tabs)); + break; + default: + goto unknown; + } + break; case 'G': /* CHA -- Move to */ case '`': /* XXX: HPA -- same? */ DEFAULT(escseq.arg[0], 1); @@ -1214,6 +1226,11 @@ csihandle(void) { DEFAULT(escseq.arg[1], 1); tmoveto(escseq.arg[1]-1, escseq.arg[0]-1); break; + case 'I': /* CHT -- Cursor Forward Tabulation tab stops */ + DEFAULT(escseq.arg[0], 1); + while (escseq.arg[0]--) + tputtab(); + break; case 'J': /* ED -- Clear screen */ sel.bx = -1; switch(escseq.arg[0]) {