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!".
b6db146762
This commit is contained in:
zeertzjq 2022-10-05 21:30:25 +08:00
parent 824a31cd0d
commit 42afb9153a
3 changed files with 3 additions and 2 deletions

View File

@ -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);

View File

@ -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

View File

@ -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()