diff options
-rw-r--r-- | src/normal.c | 17 | ||||
-rw-r--r-- | src/testdir/test_autocmd.vim | 4 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 14 insertions, 9 deletions
diff --git a/src/normal.c b/src/normal.c index 1b5326b136..2f3d12a41b 100644 --- a/src/normal.c +++ b/src/normal.c @@ -975,12 +975,15 @@ normal_end: reset_reg_var(); #endif - // Reset finish_op, in case it was set #ifdef CURSOR_SHAPE int prev_finish_op = finish_op; #endif - finish_op = FALSE; - may_trigger_modechanged(); + if (oap->op_type == OP_NOP) + { + // Reset finish_op, in case it was set + finish_op = FALSE; + may_trigger_modechanged(); + } #ifdef CURSOR_SHAPE // Redraw the cursor with another shape, if we were in Operator-pending // mode or did a replace command. @@ -995,7 +998,7 @@ normal_end: #endif if (oap->op_type == OP_NOP && oap->regname == 0 - && ca.cmdchar != K_CURSORHOLD) + && ca.cmdchar != K_CURSORHOLD) clear_showcmd(); checkpcmark(); // check if we moved since setting pcmark @@ -1496,9 +1499,9 @@ prep_redo_num2( } /* - * check for operator active and clear it + * Check for operator active and clear it. * - * return TRUE if operator was active + * Beep and return TRUE if an operator was active. */ static int checkclearop(oparg_T *oap) @@ -1512,7 +1515,7 @@ checkclearop(oparg_T *oap) /* * Check for operator or Visual active. Clear active operator. * - * Return TRUE if operator or Visual was active. + * Beep and return TRUE if an operator or Visual was active. */ static int checkclearopq(oparg_T *oap) diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 176d2823d6..b74dda956d 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -3672,7 +3672,7 @@ endfunc " Test for ModeChanged pattern func Test_mode_changes() let g:index = 0 - let g:mode_seq = ['n', 'i', 'n', 'v', 'V', 'i', 'ix', 'i', 'ic', 'i', 'n', 'no', 'n', 'V', 'v', 's', 'n'] + let g:mode_seq = ['n', 'i', 'n', 'v', 'V', 'i', 'ix', 'i', 'ic', 'i', 'n', 'no', 'noV', 'n', 'V', 'v', 's', 'n'] func! TestMode() call assert_equal(g:mode_seq[g:index], get(v:event, "old_mode")) call assert_equal(g:mode_seq[g:index + 1], get(v:event, "new_mode")) @@ -3683,7 +3683,7 @@ func Test_mode_changes() au ModeChanged * :call TestMode() let g:n_to_any = 0 au ModeChanged n:* let g:n_to_any += 1 - call feedkeys("i\<esc>vVca\<CR>\<C-X>\<C-L>\<esc>ggdG", 'tnix') + call feedkeys("i\<esc>vVca\<CR>\<C-X>\<C-L>\<esc>ggdV\<MouseMove>G", 'tnix') let g:V_to_v = 0 au ModeChanged V:v let g:V_to_v += 1 diff --git a/src/version.c b/src/version.c index 5aa2c12cf5..e5a6ada0c2 100644 --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1490, +/**/ 1489, /**/ 1488, |