0
0
mirror of https://github.com/vim/vim.git synced 2025-09-27 04:14:06 -04:00

updated for version 7.4.306

Problem:    getchar(0) does not return Esc.
Solution:   Do not wait for an Esc sequence to be complete.  (Yasuhiro
            Matsumoto)
This commit is contained in:
Bram Moolenaar
2014-05-22 18:59:58 +02:00
parent 13600303c5
commit 9a665ba296
3 changed files with 6 additions and 3 deletions

View File

@@ -11313,13 +11313,14 @@ f_getchar(argvars, 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;

View File

@@ -1883,7 +1883,7 @@ vpeekc_nomap()
}
#endif
#if defined(FEAT_INS_EXPAND) || defined(PROTO)
#if defined(FEAT_INS_EXPAND) || defined(FEAT_EVAL) || defined(PROTO)
/*
* Check if any character is available, also half an escape sequence.
* Trick: when no typeahead found, but there is something in the typeahead

View File

@@ -734,6 +734,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
306,
/**/
305,
/**/