mirror of
https://github.com/vim/vim.git
synced 2025-09-27 04:14:06 -04:00
patch 8.2.4427: getchar() may return modifiers if no character is available
Problem: getchar() may return modifiers if no character is available. Solution: Do not process modifiers when there is no character. (closes #9806)
This commit is contained in:
@@ -2103,7 +2103,7 @@ getchar_common(typval_T *argvars, typval_T *rettv)
|
||||
set_vim_var_nr(VV_MOUSE_COL, 0);
|
||||
|
||||
rettv->vval.v_number = n;
|
||||
if (IS_SPECIAL(n) || mod_mask != 0)
|
||||
if (n != 0 && (IS_SPECIAL(n) || mod_mask != 0))
|
||||
{
|
||||
char_u temp[10]; // modifier: 3, mbyte-char: 6, NUL: 1
|
||||
int i = 0;
|
||||
|
@@ -1818,6 +1818,10 @@ func Test_getchar()
|
||||
call assert_equal('', getcharstr(0))
|
||||
call assert_equal('', getcharstr(1))
|
||||
|
||||
call feedkeys("\<M-F2>", '')
|
||||
call assert_equal("\<M-F2>", getchar(0))
|
||||
call assert_equal(0, getchar(0))
|
||||
|
||||
call setline(1, 'xxxx')
|
||||
call test_setmouse(1, 3)
|
||||
let v:mouse_win = 9
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4427,
|
||||
/**/
|
||||
4426,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user