summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWormHeamer2026-01-03 01:57:50 -0500
committerWormHeamer2026-01-03 01:57:50 -0500
commit5d32fe1b077d9b61c90b122cb342864ce0d533ad (patch)
tree4c7f5c50bc0696d031b0ea6cf39e544556c7809d
parent484705f20d0fc0e2c3f425e3f0ce94ca3806a30f (diff)
fix some unicode issues in line_edit
-rw-r--r--main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/main.c b/main.c
index bac7fac..8156bb0 100644
--- a/main.c
+++ b/main.c
@@ -695,6 +695,7 @@ static LineEditStatus line_edit(LineEditor *le, u32 c) {
e.input_prompt = (Str) { 0, 0 };
return LEDIT_EMPTY;
case KEY_BKSP:
+ while (le->s.n > 0 && (le->s.v[le->s.n-1] & 0xc0) == 0x80) le->s.n--;
if (le->s.n > 0) le->s.n--;
break;
case 0x17 /* ^W */:
@@ -705,7 +706,7 @@ static LineEditStatus line_edit(LineEditor *le, u32 c) {
if (c > 0 && c <= KEY_UTF8_MAX && c >= ' ') {
u32 n = utf8_encode_len(&c, 1);
DA_AFIT(&le->s, le->a, le->s.n + n);
- utf8_encode(&le->s.v[le->s.n], &c, n);
+ utf8_encode(&le->s.v[le->s.n], &c, 1);
le->s.n += n;
}
e.opti = 0;