0
0
mirror of https://github.com/vim/vim.git synced 2025-09-30 04:44:14 -04:00

patch 8.2.2473: crash when leaving command line window triggers autocommand

Problem:    Crash when leaving command line window triggers autocommand.
            (houyunsong)
Solution:   Make sure not to close the current window or buffer.
This commit is contained in:
Bram Moolenaar
2021-02-06 18:08:45 +01:00
parent aad5f9d79a
commit 8c6951fa28
3 changed files with 14 additions and 3 deletions

View File

@@ -4403,12 +4403,12 @@ open_cmdwin(void)
// win_goto() may trigger an autocommand that already closes the
// cmdline window.
if (win_valid(wp))
if (win_valid(wp) && wp != curwin)
win_close(wp, TRUE);
// win_close() may have already wiped the buffer when 'bh' is
// set to 'wipe'
if (bufref_valid(&bufref))
// set to 'wipe', autocommands may have closed other windows
if (bufref_valid(&bufref) && bufref.br_buf != curbuf)
close_buffer(NULL, bufref.br_buf, DOBUF_WIPE, FALSE, FALSE);
// Restore window sizes.

View File

@@ -2774,4 +2774,13 @@ func Test_autocmd_normal_mess()
augroup END
endfunc
func Test_autocmd_closing_cmdwin()
au BufWinLeave * nested q
call assert_fails("norm 7q?\n", 'E855:')
au! BufWinLeave
new
only
endfunc
" vim: shiftwidth=2 sts=2 expandtab

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2473,
/**/
2472,
/**/