Permalink
Browse files

patch 8.1.0060: crash when autocommands delete the current buffer

Problem:    Crash when autocommands delete the current buffer. (Dominique
            Pelle)
Solution:   Check that autocommands don't change the buffer.
  • Loading branch information...
brammool committed Jun 16, 2018
1 parent bc5020a commit 600323b4ef51a58a8e800d8ca469383a3c911db7
Showing with 22 additions and 0 deletions.
  1. +8 −0 src/quickfix.c
  2. +12 −0 src/testdir/test_quickfix.vim
  3. +2 −0 src/version.c
@@ -6272,8 +6272,16 @@ ex_cbuffer(exarg_T *eap)
if (res >= 0)
qf_list_changed(qi, qi->qf_curlist);
if (au_name != NULL)
{
buf_T *curbuf_old = curbuf;
apply_autocmds(EVENT_QUICKFIXCMDPOST, au_name,
curbuf->b_fname, TRUE, curbuf);
if (curbuf != curbuf_old)
// Autocommands changed buffer, don't jump now, "qi" may
// be invalid.
res = 0;
}
if (res > 0 && (eap->cmdidx == CMD_cbuffer ||
eap->cmdidx == CMD_lbuffer))
qf_jump(qi, 0, 0, eap->forceit); /* display first error */
@@ -3350,3 +3350,15 @@ func Test_qftitle()
call assert_equal('Errors', w:quickfix_title)
cclose
endfunc
func Test_lbuffer_with_bwipe()
new
new
augroup nasty
au * * bwipe
augroup END
lbuffer
augroup nasty
au!
augroup END
endfunc
@@ -761,6 +761,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
60,
/**/
59,
/**/

0 comments on commit 600323b

Please sign in to comment.