tAdd TBC sequence - st - [fork] customized build of st, the simple terminal | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit c084c06b402de4fe995734a2c89cae26ff7c9064 | |
parent 93901ca4fee8a1ab71cb8b918f3d65404460f9ce | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Wed, 29 Aug 2012 19:59:47 +0200 | |
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 | |
tthe 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 <[email protected]> | |
--- | |
st.c | 12 ++++++++++++ | |
st.info | 2 +- | |
2 files changed, 13 insertions(+), 1 deletion(-) | |
Diffstat: | |
M st.c | 12 ++++++++++++ | |
M st.info | 2 +- | |
2 files changed, 13 insertions(+), 1 deletion(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -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 <col> */ | |
case '`': /* XXX: HPA -- same? */ | |
DEFAULT(escseq.arg[0], 1); | |
diff --git a/st.info b/st.info | |
t@@ -97,7 +97,7 @@ st| simpleterm, | |
smcup=\E[?1049h, | |
smso=\E[7m, | |
smul=\E[4m, | |
- tbc=\E[2g, | |
+ tbc=\E[3g, | |
tsl=\E]0;, | |
ul, | |
xenl, |