summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-05-18 21:38:45 +0200
committerBram Moolenaar <Bram@vim.org>2021-05-18 21:38:45 +0200
commit796139ae3ac89e27ee96dce3c7fdb87d8c839f53 (patch)
tree40044765188bc84813b2e4b37e0d4a51ff3681de
parent485b62710004431a16feb4eb861365d082304a08 (diff)
downloadvim-git-8.2.2870.tar.gz
patch 8.2.2870: CmdlineChange event triggered twice for CTRL-Rv8.2.2870
Problem: CmdlineChange event triggered twice for CTRL-R. Solution: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg(). (closes #8219)
-rw-r--r--src/ex_getln.c5
-rw-r--r--src/testdir/test_cmdline.vim6
-rw-r--r--src/version.c2
3 files changed, 12 insertions, 1 deletions
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 4ebc34110..e7d71a510 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1253,8 +1253,11 @@ cmdline_insert_reg(int *gotesc UNUSED)
}
#endif
}
+ // remove the double quote
redrawcmd();
- return CMDLINE_CHANGED;
+
+ // The text has been stuffed, the command line didn't change yet.
+ return CMDLINE_NOT_CHANGED;
}
/*
diff --git a/src/testdir/test_cmdline.vim b/src/testdir/test_cmdline.vim
index 5ed283f1f..bba7e725e 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -1810,6 +1810,12 @@ func Test_cmd_map_cmdlineChanged()
call feedkeys(":\<F1>\<CR>", 'xt')
call assert_equal(['l', 'ls'], g:log)
+ let @b = 'b'
+ cnoremap <F1> a<C-R>b
+ let g:log = []
+ call feedkeys(":\<F1>\<CR>", 'xt')
+ call assert_equal(['a', 'ab'], g:log)
+
unlet g:log
cunmap <F1>
augroup test
diff --git a/src/version.c b/src/version.c
index 0b17d91af..edc95e561 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 */
/**/
+ 2870,
+/**/
2869,
/**/
2868,