From: zeertzjq Date: Sun, 28 Jun 2026 19:27:31 +0000 (+0000) Subject: patch 9.2.0748: 'autocompletedelay' interferes with CTRL-G U X-Git-Tag: v9.2.0748^0 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9fb5b5d8765e39dafc88f178ad9fd1879c683daf;p=thirdparty%2Fvim.git patch 9.2.0748: 'autocompletedelay' interferes with CTRL-G U Problem: 'autocompletedelay' interferes with CTRL-G U (after 9.2.0739). Solution: Restore the flag for CTRL-G U. related: #8937 related: #20666 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt --- diff --git a/src/edit.c b/src/edit.c index 1860ba3716..93910de6b5 100644 --- a/src/edit.c +++ b/src/edit.c @@ -1171,6 +1171,9 @@ doESCkey: break; case K_COMPLETE_DELAY: // 'autocompletedelay' expired + // If CTRL-G U was used apply it to the next typed key. + if (dont_sync_undo == TRUE) + dont_sync_undo = MAYBE; ins_compl_clear_autocomplete_delay(); if (!ins_compl_has_autocomplete() || char_avail() || curwin->w_cursor.col == 0) diff --git a/src/testdir/test_ins_complete.vim b/src/testdir/test_ins_complete.vim index 00fcf4e44d..b178ad272b 100644 --- a/src/testdir/test_ins_complete.vim +++ b/src/testdir/test_ins_complete.vim @@ -5976,6 +5976,30 @@ func Test_autocompletedelay() call StopVimInTerminal(buf) endfunc +func Run_test_autocompletedelay_ctrl_g_U(delay1, delay2) + new + call setline(1, 'foo bar baz') + inoremap ( ()U + set autocomplete autocompletedelay=200 + + call timer_start(a:delay1, { -> feedkeys('(', 't') }) + call timer_start(a:delay2, { -> feedkeys("\a\", 't') }) + call feedkeys('ob', 'tx!') + call assert_equal(['foo bar baz', 'b(a)'], getline(1, '$')) + undo + call assert_equal(['foo bar baz'], getline(1, '$')) + + set autocomplete& autocompletedelay& + bwipe! +endfunc + +func Test_autocompletedelay_ctrl_g_U() + " '(' typed after 'autocompletedelay' expires + call Run_test_autocompletedelay_ctrl_g_U(250, 500) + " '(' typed before 'autocompletedelay' expires + call Run_test_autocompletedelay_ctrl_g_U(150, 500) +endfunc + " Preinsert longest prefix when autocomplete func Test_autocomplete_longest() func GetLine() diff --git a/src/version.c b/src/version.c index 696a78c404..784016772a 100644 --- a/src/version.c +++ b/src/version.c @@ -759,6 +759,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 748, /**/ 747, /**/