Mercurial > vim
changeset 24800:b032da736676 v8.2.2938
patch 8.2.2938: after using motion force from feedkeys() it sticks
Commit: https://github.com/vim/vim/commit/21492743e80c6740bac65a91311c28bede8ef2f8
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jun 4 21:57:57 2021 +0200
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 https://github.com/vim/vim/issues/8323)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 04 Jun 2021 22:00:05 +0200 |
parents | 7aa2abb13864 |
children | ce2fdacbc25b |
files | src/normal.c src/testdir/test_visual.vim src/version.c |
diffstat | 3 files changed, 12 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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
--- 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