diff --git a/termo.c b/termo.c index 05f3f31..130ff40 100644 --- a/termo.c +++ b/termo.c @@ -429,6 +429,7 @@ termo_new (int fd, const char *encoding, int flags) && termo_start (tk)) return tk; + // FIXME: resource leak on termo_start() failure free (tk); return NULL; } @@ -990,6 +991,9 @@ peekkey_simple (termo_t *tk, termo_key_t *key, int force, size_t *nbytep) } else if (!(tk->flags & TERMO_FLAG_RAW)) { + // XXX: this way DEL is never recognised as backspace, even if it is + // specified in the terminfo entry key_backspace. Just because it + // doesn't form an escape sequence. uint32_t codepoint; termo_result_t res = parse_multibyte (tk, tk->buffer + tk->buffstart, tk->buffcount, &codepoint, nbytep);