Revert "Fix cursor move with wide glyphs" - st - simple terminal | |
git clone git://git.suckless.org/st | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 8c68ec52419f3f965164cafcf589b87e8961348d | |
parent 5ce971628106fb767ef91bf4386227423f5fdf98 | |
Author: Hiltjo Posthuma <[email protected]> | |
Date: Sat, 30 Mar 2024 12:30:49 +0100 | |
Revert "Fix cursor move with wide glyphs" | |
This reverts commit 7473a8d1a57e5f9aba41b953f4e498c35e1c9dc5. | |
This patch needs some more work. It caused regressions with programs that use | |
GNU readline, etc. | |
Original test-case example from Tim Culverhouse <[email protected]>: | |
printf " đ" && sleep 2 && printf "\e[D" && sleep 2 && printf "\e[D" … | |
After the patch it caused regressions, example test-case: | |
printf "Ać\bB\n" | |
Diffstat: | |
M st.c | 10 +++------- | |
1 file changed, 3 insertions(+), 7 deletions(-) | |
--- | |
diff --git a/st.c b/st.c | |
@@ -86,8 +86,8 @@ enum escape_state { | |
typedef struct { | |
Glyph attr; /* current char attributes */ | |
- int x; /* terminal column */ | |
- int y; /* terminal row */ | |
+ int x; | |
+ int y; | |
char state; | |
} TCursor; | |
@@ -2175,16 +2175,12 @@ tstrsequence(uchar c) | |
void | |
tcontrolcode(uchar ascii) | |
{ | |
- size_t i; | |
- | |
switch (ascii) { | |
case '\t': /* HT */ | |
tputtab(1); | |
return; | |
case '\b': /* BS */ | |
- for (i = 1; term.c.x && term.line[term.c.y][term.c.x - i].u ==… | |
- ; | |
- tmoveto(term.c.x - i, term.c.y); | |
+ tmoveto(term.c.x-1, term.c.y); | |
return; | |
case '\r': /* CR */ | |
tmoveto(0, term.c.y); |