Browse Source

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(-)
master
Roberto E. Vargas Caballero 12 years ago
parent
commit
c084c06b40
2 changed files with 13 additions and 1 deletions
  1. +12
    -0
      st.c
  2. +1
    -1
      st.info

+ 12
- 0
st.c View File

@ -1203,6 +1203,18 @@ csihandle(void) {
DEFAULT(escseq.arg[0], 1); DEFAULT(escseq.arg[0], 1);
tmoveto(0, term.c.y-escseq.arg[0]); tmoveto(0, term.c.y-escseq.arg[0]);
break; 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 'G': /* CHA -- Move to <col> */
case '`': /* XXX: HPA -- same? */ case '`': /* XXX: HPA -- same? */
DEFAULT(escseq.arg[0], 1); DEFAULT(escseq.arg[0], 1);


+ 1
- 1
st.info View File

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


Loading…
Cancel
Save