diff options
Diffstat (limited to 'main.c')
| -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; |
