aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/eval.c
diff options
context:
space:
mode:
authorWill Stamper <epmatsw@gmail.com>2014-06-13 22:08:04 -0500
committerJustin M. Keyes <justinkz@gmail.com>2014-07-11 16:42:45 -0400
commit1cdd4ff7f6ea2a6430ab96885bdbc98b23d619f0 (patch)
tree3c3bb2efe0ca34ffef41f645bd8df1f151d497c5 /src/nvim/eval.c
parentfdeb132cad2b1fe409376c047f5899c38e79aaaa (diff)
downloadrneovim-1cdd4ff7f6ea2a6430ab96885bdbc98b23d619f0.tar.gz
rneovim-1cdd4ff7f6ea2a6430ab96885bdbc98b23d619f0.tar.bz2
rneovim-1cdd4ff7f6ea2a6430ab96885bdbc98b23d619f0.zip
vim-patch:7.4.306 #842
Problem: getchar(0) does not return Esc. Solution: Do not wait for an Esc sequence to be complete. (Yasuhiro Matsumoto) https://code.google.com/p/vim/source/detail?r=05e1d8afcc5e375bf708ccc9810e2fd1a5a8a3cf
Diffstat (limited to 'src/nvim/eval.c')
-rw-r--r--src/nvim/eval.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/eval.c b/src/nvim/eval.c
index 88f4765f54..8db50d6517 100644
--- a/src/nvim/eval.c
+++ b/src/nvim/eval.c
@@ -8989,13 +8989,14 @@ static void f_getchar(typval_T *argvars, typval_T *rettv)
n = safe_vgetc();
else if (get_tv_number_chk(&argvars[0], &error) == 1)
/* getchar(1): only check if char avail */
- n = vpeekc();
- else if (error || vpeekc() == NUL)
+ n = vpeekc_any();
+ else if (error || vpeekc_any() == NUL)
/* illegal argument or getchar(0) and no char avail: return zero */
n = 0;
else
/* getchar(0) and char avail: return char */
n = safe_vgetc();
+
if (n == K_IGNORE)
continue;
break;