Introduction
Introduction Statistics Contact Development Disclaimer Help
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);
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.