From c084c06b402de4fe995734a2c89cae26ff7c9064 Mon Sep 17 00:00:00 2001 From: "Roberto E. Vargas Caballero" Date: Wed, 29 Aug 2012 19:59:47 +0200 Subject: 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 --- st.c | 12 ++++++++++++ st.info | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) --- st.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'st.c') diff --git a/st.c b/st.c index 4b7e4eb..b7dfd55 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); -- cgit v1.2.3