patch 8.2.2870: CmdlineChange event triggered twice for CTRL-R
Problem: CmdlineChange event triggered twice for CTRL-R.
Solution: Return CMDLINE_NOT_CHANGED from cmdline_insert_reg().
(closes #8219)
diff --git a/src/ex_getln.c b/src/ex_getln.c
index 4ebc341..e7d71a5 100644
--- a/src/ex_getln.c
+++ b/src/ex_getln.c
@@ -1253,8 +1253,11 @@
}
#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 5ed283f..bba7e72 100644
--- a/src/testdir/test_cmdline.vim
+++ b/src/testdir/test_cmdline.vim
@@ -1810,6 +1810,12 @@
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 0b17d91..edc95e5 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2870,
+/**/
2869,
/**/
2868,