aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2023-06-26 07:55:49 +0800
committerGitHub <noreply@github.com>2023-06-26 07:55:49 +0800
commit91aeaeef64da56b1cce37a04b86e831241ce7ff9 (patch)
tree3d9ef689cac7197f5d60823dab12afea7c29a801
parent957d05d16bc80cef14c2e9fe31b6b847e698f9d1 (diff)
parentdc3ee122dc132b5baf11ea0083604927eb6c7443 (diff)
downloadrneovim-91aeaeef64da56b1cce37a04b86e831241ce7ff9.tar.gz
rneovim-91aeaeef64da56b1cce37a04b86e831241ce7ff9.tar.bz2
rneovim-91aeaeef64da56b1cce37a04b86e831241ce7ff9.zip
Merge pull request #24154 from zeertzjq/vim-9.0.1665
vim-patch:8.2.3833,9.0.1665
-rw-r--r--src/nvim/autocmd.c8
-rw-r--r--test/old/testdir/test_ex_mode.vim6
2 files changed, 13 insertions, 1 deletions
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c
index 427bce0e80..36f0183fd8 100644
--- a/src/nvim/autocmd.c
+++ b/src/nvim/autocmd.c
@@ -1783,8 +1783,14 @@ bool apply_autocmds_group(event_T event, char *fname, char *fname_io, bool force
check_lnums_nested(true);
}
+ const int save_did_emsg = did_emsg;
+ const bool save_ex_pressedreturn = get_pressedreturn();
+
// Execute the autocmd. The `getnextac` callback handles iteration.
- do_cmdline(NULL, getnextac, (void *)&patcmd, DOCMD_NOWAIT | DOCMD_VERBOSE | DOCMD_REPEAT);
+ do_cmdline(NULL, getnextac, &patcmd, DOCMD_NOWAIT | DOCMD_VERBOSE | DOCMD_REPEAT);
+
+ did_emsg += save_did_emsg;
+ set_pressedreturn(save_ex_pressedreturn);
if (nesting == 1) {
// restore cursor and topline, unless they were changed
diff --git a/test/old/testdir/test_ex_mode.vim b/test/old/testdir/test_ex_mode.vim
index 3332bc6ab9..42f08868a0 100644
--- a/test/old/testdir/test_ex_mode.vim
+++ b/test/old/testdir/test_ex_mode.vim
@@ -244,6 +244,12 @@ func Test_ex_mode_errors()
au! CmdLineEnter
delfunc ExEnterFunc
+
+ au CmdlineEnter * :
+ call feedkeys("gQecho 1\r", 'xt')
+
+ au! CmdlineEnter
+
quit
endfunc