aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2024-12-22 18:54:46 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2024-12-22 19:33:48 +0300
commit8aa8c05089dd59cf669753cbf75670b58ab3a5bd (patch)
tree1602ebb893c50840df68b48c68ac8c3687707577 /src
parent6cd143f86d3c39be633c1dcf5a4165f2f06a04f6 (diff)
downloadsciteco-8aa8c05089dd59cf669753cbf75670b58ab3a5bd.tar.gz
Curses: fixed inserting null-byte (^@) by pressing Ctrl+@
* g_utf8_get_char_validated() returns -2 for null-bytes (sometimes!?)
Diffstat (limited to 'src')
-rw-r--r--src/interface-curses/interface.c6
1 files changed, 3 insertions, 3 deletions
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)) {