all repos — st @ c084c06b402de4fe995734a2c89cae26ff7c9064

st (suckless terminal) config

Add TBC sequence

This sequence clears tab stops in the terminal. If the argument is not present
or is zero, then removes the tab stop of the current horizontal position. If
the argument is 3 then removes all the tab stops of the terminal. It was
necessary modify the terminfo entry tbc, because it has \E[2g instead of the
correct \E[3g.

Signed-off-by: Roberto E. Vargas Caballero <k0ga@shike2.com>
---
 st.c    |   12 ++++++++++++
 st.info |    2 +-
 2 files changed, 13 insertions(+), 1 deletion(-)
Roberto E. Vargas Caballero k0ga@shike2.com
commit

c084c06b402de4fe995734a2c89cae26ff7c9064

parent

93901ca4fee8a1ab71cb8b918f3d65404460f9ce

2 files changed, 13 insertions(+), 1 deletions(-)

jump to
M st.cst.c

@@ -1203,6 +1203,18 @@ case 'F': /* CPL -- Cursor <n> Up and first col */

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 <col> */ case '`': /* XXX: HPA -- same? */ DEFAULT(escseq.arg[0], 1);
M st.infost.info

@@ -97,7 +97,7 @@ smacs=\E(0,

smcup=\E[?1049h, smso=\E[7m, smul=\E[4m, - tbc=\E[2g, + tbc=\E[3g, tsl=\E]0;, ul, xenl,