From 8aa8c05089dd59cf669753cbf75670b58ab3a5bd Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Sun, 22 Dec 2024 18:54:46 +0300 Subject: Curses: fixed inserting null-byte (^@) by pressing Ctrl+@ * g_utf8_get_char_validated() returns -2 for null-bytes (sometimes!?) --- src/interface-curses/interface.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/interface-curses/interface.c') diff --git a/src/interface-curses/interface.c b/src/interface-curses/interface.c index 9e4f947..f713bc1 100644 --- a/src/interface-curses/interface.c +++ b/src/interface-curses/interface.c @@ -1723,10 +1723,10 @@ teco_interface_event_loop_iter(void) */ keybuf[keybuf_i++] = key; gsize len = keybuf_i; - gunichar cp = g_utf8_get_char_validated(keybuf, len); - if (keybuf_i >= sizeof(keybuf) || cp != (gunichar)-2) + gint32 cp = *keybuf ? g_utf8_get_char_validated(keybuf, len) : 0; + if (keybuf_i >= sizeof(keybuf) || cp != -2) keybuf_i = 0; - if ((gint32)cp < 0) + if (cp < 0) /* incomplete or invalid */ return; switch (teco_cmdline_keymacro(keybuf, len, error)) { -- cgit v1.2.3