summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-10-03 16:22:05 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-03 16:22:05 +0100
commit5a9357d0bff9059f547906d8d03b31bca7215af1 (patch)
treee6ff1a6a5ed5adf5181d11967c566cd4e9dc2fd5
parentcc8cd4453332276d55b4a1109eace5785a4f319d (diff)
patch 8.2.3467: CursorHoldI event interferes with "CTRL-G U"v8.2.3467
Problem: CursorHoldI event interferes with "CTRL-G U". (Naohiro Ono) Solution: Restore the flag for "CTRL-G U" after triggering CursorHoldI. (closes #8937)
-rw-r--r--src/edit.c3
-rw-r--r--src/testdir/test_autocmd.vim16
-rw-r--r--src/version.c2
3 files changed, 21 insertions, 0 deletions
diff --git a/src/edit.c b/src/edit.c
index 070d84c609..4f8e374017 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -1057,6 +1057,9 @@ doESCkey:
case K_CURSORHOLD: // Didn't type something for a while.
ins_apply_autocmds(EVENT_CURSORHOLDI);
did_cursorhold = TRUE;
+ // If CTRL-G U was used apply it to the next typed key.
+ if (dont_sync_undo == TRUE)
+ dont_sync_undo = MAYBE;
break;
#ifdef FEAT_GUI_MSWIN
diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim
index f769eec17f..db1efba12d 100644
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -100,6 +100,22 @@ if has('timers')
set updatetime&
endfunc
+ func Test_cursorhold_insert_ctrl_g_U()
+ au CursorHoldI * :
+ set updatetime=20
+ new
+ call timer_start(100, { -> feedkeys("\<Left>foo\<Esc>", 't') })
+ call feedkeys("i()\<C-g>U", 'tx!')
+ sleep 200m
+ call assert_equal('(foo)', getline(1))
+ undo
+ call assert_equal('', getline(1))
+
+ bwipe!
+ au! CursorHoldI
+ set updatetime&
+ endfunc
+
func Test_OptionSet_modeline()
call test_override('starting', 1)
au! OptionSet
diff --git a/src/version.c b/src/version.c
index 0801704085..410776742f 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3467,
+/**/
3466,
/**/
3465,