buf = curbuf;
// It's like this buffer is deleted. Watch out for autocommands that
// change curbuf! If that happens, allocate a new buffer anyway.
- if (curbuf->b_p_bl)
- apply_autocmds(EVENT_BUFDELETE, NULL, NULL, FALSE, curbuf);
- if (buf == curbuf)
- apply_autocmds(EVENT_BUFWIPEOUT, NULL, NULL, FALSE, curbuf);
+ buf_freeall(buf, BFA_WIPE | BFA_DEL);
+ if (buf != curbuf) // autocommands deleted the buffer!
+ return NULL;
#ifdef FEAT_EVAL
if (aborting()) // autocmds may abort script processing
{
return NULL;
}
#endif
- if (buf == curbuf)
- {
- // Make sure 'bufhidden' and 'buftype' are empty
- clear_string_option(&buf->b_p_bh);
- clear_string_option(&buf->b_p_bt);
- }
}
if (buf != curbuf || curbuf == NULL)
{
if (buf == curbuf)
{
- // free all things allocated for this buffer
- buf_freeall(buf, 0);
- if (buf != curbuf) // autocommands deleted the buffer!
- return NULL;
-#if defined(FEAT_EVAL)
- if (aborting()) // autocmds may abort script processing
- return NULL;
-#endif
free_buffer_stuff(buf, FALSE); // delete local variables et al.
// Init the options.
endfunc
func Test_autocmd_vimgrep()
+ %bwipe!
augroup aucmd_vimgrep
- au QuickfixCmdPre,BufNew,BufDelete,BufReadCmd * sb
- au QuickfixCmdPre,BufNew,BufDelete,BufReadCmd * q9\0
+ au QuickfixCmdPre,BufNew,BufReadCmd * sb
+ au QuickfixCmdPre,BufNew,BufReadCmd * q9\0
augroup END
%bwipe!
call assert_fails('lv ?a? foo', 'E926:')
endfunc
+func Test_noname_autocmd()
+ augroup test_noname_autocmd_group
+ autocmd!
+ autocmd BufEnter * call add(s:li, ["BufEnter", expand("<afile>")])
+ autocmd BufDelete * call add(s:li, ["BufDelete", expand("<afile>")])
+ autocmd BufLeave * call add(s:li, ["BufLeave", expand("<afile>")])
+ autocmd BufUnload * call add(s:li, ["BufUnload", expand("<afile>")])
+ autocmd BufWipeout * call add(s:li, ["BufWipeout", expand("<afile>")])
+ augroup END
+
+ let s:li = []
+ edit foo
+ call assert_equal([['BufUnload', ''], ['BufDelete', ''], ['BufWipeout', ''], ['BufEnter', 'foo']], s:li)
+
+ au! test_noname_autocmd_group
+ augroup! test_noname_autocmd_group
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab