tRevert "support REP (repeat) escape sequence" - st - [fork] customized build o… | |
git clone git://src.adamsgaard.dk/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 475a0a36cb4fda1da30f014da65988e99b222876 | |
parent e8392b282c2eaa28725241a9612804fb55113da4 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sat, 16 May 2020 18:06:42 +0200 | |
Revert "support REP (repeat) escape sequence" | |
This reverts commit e8392b282c2eaa28725241a9612804fb55113da4. | |
There is currently a bug in older ncurses versions (like on OpenBSD) where a | |
fix for a bug with REP is not backported yet. Most likely in tty/tty_update.c: | |
Noticed while using lynx (which uses ncurses/curses). | |
To reproduce using lynx: echo "Z0000000" | lynx -stdin | |
or using the program: | |
int | |
main(void) | |
{ | |
WINDOW *win; | |
win = initscr(); | |
printw("Z0000000"); | |
refresh(); | |
sleep(5); | |
return 0; | |
} | |
This prints "ZZZZZZZ" (incorrectly). | |
Diffstat: | |
M st.c | 10 ---------- | |
M st.info | 1 - | |
2 files changed, 0 insertions(+), 11 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
t@@ -129,7 +129,6 @@ typedef struct { | |
int charset; /* current charset */ | |
int icharset; /* selected charset for sequence */ | |
int *tabs; | |
- Rune lastc; /* last printed char outside of sequence, 0 if control */ | |
} Term; | |
/* CSI Escape sequence structs */ | |
t@@ -1649,12 +1648,6 @@ csihandle(void) | |
if (csiescseq.arg[0] == 0) | |
ttywrite(vtiden, strlen(vtiden), 0); | |
break; | |
- case 'b': /* REP -- if last char is printable print it <n> more times … | |
- DEFAULT(csiescseq.arg[0], 1); | |
- if (term.lastc) | |
- while (csiescseq.arg[0]-- > 0) | |
- tputc(term.lastc); | |
- break; | |
case 'C': /* CUF -- Cursor <n> Forward */ | |
case 'a': /* HPR -- Cursor <n> Forward */ | |
DEFAULT(csiescseq.arg[0], 1); | |
t@@ -2380,8 +2373,6 @@ check_control_code: | |
/* | |
* control codes are not shown ever | |
*/ | |
- if (!term.esc) | |
- term.lastc = 0; | |
return; | |
} else if (term.esc & ESC_START) { | |
if (term.esc & ESC_CSI) { | |
t@@ -2431,7 +2422,6 @@ check_control_code: | |
} | |
tsetchar(u, &term.c.attr, term.c.x, term.c.y); | |
- term.lastc = u; | |
if (width == 2) { | |
gp->mode |= ATTR_WIDE; | |
diff --git a/st.info b/st.info | |
t@@ -184,7 +184,6 @@ st-mono| simpleterm monocolor, | |
# XTerm extensions | |
rmxx=\E[29m, | |
smxx=\E[9m, | |
- rep=%p1%c\E[%p2%{1}%-%db, | |
# tmux extensions, see TERMINFO EXTENSIONS in tmux(1) | |
Tc, | |
Ms=\E]52;%p1%s;%p2%s\007, |