From f180f6fdeb58f2c24ac8154a70ee6d9f22d434ad Mon Sep 17 00:00:00 2001 From: Thiago de Arruda Date: Sun, 6 Jul 2014 11:37:53 -0300 Subject: getchar: fix infinite loop due to pending events The `inchar` function could enter an infinite loop if there are events pending to be processed when an interrupt is received. --- src/nvim/getchar.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src') diff --git a/src/nvim/getchar.c b/src/nvim/getchar.c index 541f0e5b0a..31fa6a702f 100644 --- a/src/nvim/getchar.c +++ b/src/nvim/getchar.c @@ -49,6 +49,7 @@ #include "nvim/term.h" #include "nvim/ui.h" #include "nvim/undo.h" +#include "nvim/os/event.h" /* * These buffers are used for storing: @@ -2472,6 +2473,7 @@ inchar ( char_u dum[DUM_LEN + 1]; for (;; ) { + event_process(true); len = ui_inchar(dum, DUM_LEN, 0L, 0); if (len == 0 || (len == 1 && dum[0] == 3)) break; -- cgit