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"
This commit is contained in:
parent
5ce9716281
commit
8c68ec5241
10
st.c
10
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 == 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…
Reference in New Issue