diff options
| author | katalx | 2026-01-29 03:20:42 -0500 |
|---|---|---|
| committer | katalx | 2026-01-29 03:20:42 -0500 |
| commit | 0feb6a86d49cedd15285064670382d2790524f21 (patch) | |
| tree | 747696182e6fe2846ded6d6a30105ea987be27f0 | |
| parent | 4173408110e55deb44644d9a8e15a8bb698f913d (diff) | |
utf-8 bullshit i guess
| -rw-r--r-- | main.c | 13 |
1 files changed, 12 insertions, 1 deletions
@@ -40,7 +40,7 @@ txt_insert(DynStr *s, int i, Str ins) } int -txt_delete(DynStr *s, int i, int n) +txt_delete_byte(DynStr *s, int i, int n) { if (n > i) n = i; if (n > 0) { @@ -51,6 +51,17 @@ txt_delete(DynStr *s, int i, int n) } int +txt_delete(DynStr *s, int i, int n) +{ + while (n--) { + i = txt_delete_byte(s, i, 1); + while (i > 0 && (~s->v[i-1] & 0x80)) + i = txt_delete_byte(s, i, 1); + } + return i; +} + +int read_all(FILE *f, DynStr *out, Arena *a) { char buf[256]; |
