patch 8.2.2938: after using motion force from feedkeys() it sticks
Problem: After using motion force from feedkeys() it may not be reset.
Solution: Clear motion_force in clearop(). (closes #8323)
diff --git a/src/normal.c b/src/normal.c
index c4c1679..fe47e2b 100644
--- a/src/normal.c
+++ b/src/normal.c
@@ -1750,6 +1750,7 @@
oap->regname = 0;
oap->motion_force = NUL;
oap->use_reg_one = FALSE;
+ motion_force = NUL;
}
void
diff --git a/src/testdir/test_visual.vim b/src/testdir/test_visual.vim
index 1b3661c..b368c32 100644
--- a/src/testdir/test_visual.vim
+++ b/src/testdir/test_visual.vim
@@ -913,6 +913,15 @@
set tabstop& shiftwidth&
endfunc
+func Test_visual_force_motion_feedkeys()
+ onoremap <expr> i- execute('let g:mode = mode(1)')->slice(0, 0)
+ call feedkeys('dvi-', 'x')
+ call assert_equal('nov', g:mode)
+ call feedkeys('di-', 'x')
+ call assert_equal('no', g:mode)
+ ounmap i-
+endfunc
+
" Test block-insert using cursor keys for movement
func Test_visual_block_insert_cursor_keys()
new
diff --git a/src/version.c b/src/version.c
index d59df5c..3ac26ab 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2938,
+/**/
2937,
/**/
2936,