mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-26 01:40:12 -05:00
vt: ignore 0x7f (DEL) in ground state
This ensures *all* bytes mapped to action_print() have wcwidth == 1. DEL has wcwidth == -1, and would thus have been ignored by term_print() anwyway.
This commit is contained in:
parent
6183f7f64a
commit
9508804b18
1 changed files with 4 additions and 1 deletions
5
vt.c
5
vt.c
|
|
@ -223,6 +223,8 @@ action_print(struct terminal *term, uint8_t c)
|
|||
L'│', L'≤', L'≥', L'π', L'≠', L'£', L'·', /* x - ~ */
|
||||
};
|
||||
|
||||
assert(wcwidth(c) == 1);
|
||||
|
||||
if (unlikely(term->charsets.set[term->charsets.selected] == CHARSET_GRAPHIC) &&
|
||||
c >= 0x60 && c <= 0x7e)
|
||||
{
|
||||
|
|
@ -739,7 +741,8 @@ state_ground_switch(struct terminal *term, uint8_t data)
|
|||
case 0x19:
|
||||
case 0x1c ... 0x1f: action_execute(term, data); return STATE_GROUND;
|
||||
|
||||
case 0x20 ... 0x7f: action_print(term, data); return STATE_GROUND;
|
||||
/* modified from 0x20..0x7f to 0x20..0x7e, since 0x7f is DEL, which is a zero-width character */
|
||||
case 0x20 ... 0x7e: action_print(term, data); return STATE_GROUND;
|
||||
|
||||
case 0xc2 ... 0xdf: action_utf8_21(term, data); return STATE_UTF8_21;
|
||||
case 0xe0 ... 0xef: action_utf8_31(term, data); return STATE_UTF8_31;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue