diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-11-20 10:38:25 +0000 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-11-20 10:38:25 +0000 |
commit | b8e642f7ace5382b4dacb7a8effd86f22b828cc1 (patch) | |
tree | c4b232393cacf2583f7c0ec88c17e2f60710f56a /src | |
parent | 2de9b7c7c8791da8853a9a7ca9c467867465b655 (diff) |
patch 8.2.3626: "au! event" cannot be followed by another commandv8.2.3626
Problem: "au!" and "au! event" cannot be followed by another command as
documented.
Solution: When a bar is found set nextcmd.
Diffstat (limited to 'src')
-rw-r--r-- | src/autocmd.c | 2 | ||||
-rw-r--r-- | src/testdir/test_autocmd.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 |
3 files changed, 10 insertions, 3 deletions
diff --git a/src/autocmd.c b/src/autocmd.c index 14cd4af592..ac21196b9a 100644 --- a/src/autocmd.c +++ b/src/autocmd.c @@ -845,6 +845,7 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit) if (*arg == '|') { + eap->nextcmd = arg + 1; arg = (char_u *)""; group = AUGROUP_ALL; // no argument, use all groups } @@ -869,6 +870,7 @@ do_autocmd(exarg_T *eap, char_u *arg_in, int forceit) pat = skipwhite(pat); if (*pat == '|') { + eap->nextcmd = pat + 1; pat = (char_u *)""; cmd = (char_u *)""; } diff --git a/src/testdir/test_autocmd.vim b/src/testdir/test_autocmd.vim index 045320e5f5..4bdb8dc22e 100644 --- a/src/testdir/test_autocmd.vim +++ b/src/testdir/test_autocmd.vim @@ -357,17 +357,20 @@ endfunc func Test_early_bar() " test that a bar is recognized before the {event} call s:AddAnAutocmd() - augroup vimBarTest | au! | augroup END + augroup vimBarTest | au! | let done = 77 | augroup END call assert_equal(1, len(split(execute('au vimBarTest'), "\n"))) + call assert_equal(77, done) call s:AddAnAutocmd() - augroup vimBarTest| au!| augroup END + augroup vimBarTest| au!| let done = 88 | augroup END call assert_equal(1, len(split(execute('au vimBarTest'), "\n"))) + call assert_equal(88, done) " test that a bar is recognized after the {event} call s:AddAnAutocmd() - augroup vimBarTest| au!BufReadCmd| augroup END + augroup vimBarTest| au!BufReadCmd| let done = 99 | augroup END call assert_equal(1, len(split(execute('au vimBarTest'), "\n"))) + call assert_equal(99, done) " test that a bar is recognized after the {group} call s:AddAnAutocmd() diff --git a/src/version.c b/src/version.c index 8e84cbb456..c54307e15e 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 */ /**/ + 3626, +/**/ 3625, /**/ 3624, |