Problem: getchar() may return modifiers if no character is available.
Solution: Do not process modifiers when there is no character. (closes #9806)
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;
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 4427,
/**/
4426,
/**/