diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-06-04 21:57:57 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-06-04 21:57:57 +0200 |
commit | 21492743e80c6740bac65a91311c28bede8ef2f8 (patch) | |
tree | e3330a096ce98a5e4b8c36b748c0a6621ef14d16 | |
parent | 56cddb38790ba535919524d9d2f32dbec9f3f07a (diff) | |
download | vim-git-21492743e80c6740bac65a91311c28bede8ef2f8.tar.gz |
patch 8.2.2938: after using motion force from feedkeys() it sticksv8.2.2938
Problem: After using motion force from feedkeys() it may not be reset.
Solution: Clear motion_force in clearop(). (closes #8323)
-rw-r--r-- | src/normal.c | 1 | ||||
-rw-r--r-- | src/testdir/test_visual.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 12 insertions, 0 deletions
diff --git a/src/normal.c b/src/normal.c index c4c167935..fe47e2b74 100644 --- a/src/normal.c +++ b/src/normal.c @@ -1750,6 +1750,7 @@ clearop(oparg_T *oap) 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 1b3661c22..b368c32b1 100644 --- a/src/testdir/test_visual.vim +++ b/src/testdir/test_visual.vim @@ -913,6 +913,15 @@ func Test_visual_block_mode() 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 d59df5c3c..3ac26ab40 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2938, +/**/ 2937, /**/ 2936, |