Browse Source

Revert "Fix cursor move with wide glyphs"

This reverts commit 7473a8d1a5.

This patch needs some more work. It caused regressions with programs that use
GNU readline, etc.

Original test-case example from Tim Culverhouse <tim@timculverhouse.com>:

	printf " 😀" && sleep 2 && printf "\e[D" && sleep 2 && printf "\e[D" && sleep 2

After the patch it caused regressions, example test-case:

	printf "A字\bB\n"
master
Hiltjo Posthuma 1 year ago
parent
commit
8c68ec5241
1 changed files with 3 additions and 7 deletions
  1. +3
    -7
      st.c

+ 3
- 7
st.c View File

@ -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 == 0; ++i)
;
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);


Loading…
Cancel
Save