tAdd HTS sequence - st - [fork] customized build of st, the simple terminal | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 93901ca4fee8a1ab71cb8b918f3d65404460f9ce | |
parent ee7fd748ac7bfabda2ac37251d230b45adb3e138 | |
Author: Roberto E. Vargas Caballero <[email protected]> | |
Date: Wed, 29 Aug 2012 19:59:43 +0200 | |
Add HTS sequence | |
This sequence adds a new tab stop in the current horizontal position. This | |
means that tputtab must be look for the next tab stop in the tabs array | |
instead of using a hard coded value offset. Also, CHT sequence XXX message | |
is removed because it is not a vt10x sequence (as far as I know it is a | |
vt50x sequence), and it is not implemented by linux virtual terminal neither | |
by xterm. | |
Signed-off-by: Roberto E. Vargas Caballero <[email protected]> | |
--- | |
st.c | 12 +++++++++--- | |
1 file changed, 9 insertions(+), 3 deletions(-) | |
Diffstat: | |
M st.c | 12 +++++++++--- | |
1 file changed, 9 insertions(+), 3 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -1214,7 +1214,6 @@ csihandle(void) { | |
DEFAULT(escseq.arg[1], 1); | |
tmoveto(escseq.arg[1]-1, escseq.arg[0]-1); | |
break; | |
- /* XXX: (CSI n I) CHT -- Cursor Forward Tabulation <n> tab stops */ | |
case 'J': /* ED -- Clear screen */ | |
sel.bx = -1; | |
switch(escseq.arg[0]) { | |
t@@ -1429,8 +1428,11 @@ csireset(void) { | |
void | |
tputtab(void) { | |
- int space = TAB - term.c.x % TAB; | |
- tmoveto(term.c.x + space, term.c.y); | |
+ unsigned x; | |
+ | |
+ for (x = term.c.x + 1; x < term.col && !term.tabs[x]; ++x) | |
+ /* nothing */ ; | |
+ tmoveto(x, term.c.y); | |
} | |
void | |
t@@ -1491,6 +1493,10 @@ tputc(char *c) { | |
tnewline(1); /* always go to first col */ | |
term.esc = 0; | |
break; | |
+ case 'H': /* HTS -- Horizontal tab stop */ | |
+ term.tabs[term.c.x] = 1; | |
+ term.esc = 0; | |
+ break; | |
case 'M': /* RI -- Reverse index */ | |
if(term.c.y == term.top) | |
tscrolldown(term.top, 1); |