aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-10-05 21:30:25 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-10-05 22:40:28 +0800
commit42afb9153a8380fdbace81c86f789e7b8af2c65c (patch)
treecf8ab14d9ca09143da876cfb945707c9af8e3d34
parent824a31cd0d55752b01a9bdd1f38f756e079e25e8 (diff)
downloadrneovim-42afb9153a8380fdbace81c86f789e7b8af2c65c.tar.gz
rneovim-42afb9153a8380fdbace81c86f789e7b8af2c65c.tar.bz2
rneovim-42afb9153a8380fdbace81c86f789e7b8af2c65c.zip
vim-patch:8.2.3886: can define autocmd for every event by using "au!"
Problem: Can define autocmd for every event by using "au!". Solution: Check if a command is present also for "au!". https://github.com/vim/vim/commit/b6db1467622be046dbf00b2213fd9f49f4f3cccb
-rw-r--r--src/nvim/autocmd.c2
-rw-r--r--src/nvim/testdir/test_arglist.vim2
-rw-r--r--src/nvim/testdir/test_autocmd.vim1
3 files changed, 3 insertions, 2 deletions
diff --git a/src/nvim/autocmd.c b/src/nvim/autocmd.c
index 1f23e7ab79..439704d120 100644
--- a/src/nvim/autocmd.c
+++ b/src/nvim/autocmd.c
@@ -881,7 +881,7 @@ void do_autocmd(char *arg_in, int forceit)
}
} else {
if (*arg == '*' || *arg == NUL || *arg == '|') {
- if (!forceit && *cmd != NUL) {
+ if (*cmd != NUL) {
emsg(_(e_cannot_define_autocommands_for_all_events));
} else {
do_all_autocmd_events(pat, once, nested, cmd, forceit, group);
diff --git a/src/nvim/testdir/test_arglist.vim b/src/nvim/testdir/test_arglist.vim
index 1fa31b6ecc..c01ae87fd8 100644
--- a/src/nvim/testdir/test_arglist.vim
+++ b/src/nvim/testdir/test_arglist.vim
@@ -605,7 +605,7 @@ endfunc
func Test_clear_arglist_in_all()
n 0 00 000 0000 00000 000000
- au! * 0 n 0
+ au WinNew 0 n 0
call assert_fails("all", "E1156")
au! *
endfunc
diff --git a/src/nvim/testdir/test_autocmd.vim b/src/nvim/testdir/test_autocmd.vim
index c320d3ca78..025bda4515 100644
--- a/src/nvim/testdir/test_autocmd.vim
+++ b/src/nvim/testdir/test_autocmd.vim
@@ -2054,6 +2054,7 @@ endfunc
func Test_autocommand_all_events()
call assert_fails('au * * bwipe', 'E1155:')
call assert_fails('au * x bwipe', 'E1155:')
+ call assert_fails('au! * x bwipe', 'E1155:')
endfunc
func Test_autocmd_user()