diff options
| author | WormHeamer | 2026-01-03 01:57:50 -0500 |
|---|---|---|
| committer | WormHeamer | 2026-01-03 01:57:50 -0500 |
| commit | 5d32fe1b077d9b61c90b122cb342864ce0d533ad (patch) | |
| tree | 4c7f5c50bc0696d031b0ea6cf39e544556c7809d | |
| parent | 484705f20d0fc0e2c3f425e3f0ce94ca3806a30f (diff) | |
fix some unicode issues in line_edit
| -rw-r--r-- | main.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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; |
