0
0
mirror of https://github.com/vim/vim.git synced 2025-10-04 05:25:06 -04:00

patch 9.0.1934: :bwipe fails after switching window from aucmd_win.

Problem:  :bwipe fails after switching window from aucmd_win.
Solution: Decrement b_nwindows after switching back to aucmd_win.

closes: #13160

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: zeertzjq <zeertzjq@outlook.com>
This commit is contained in:
zeertzjq
2023-09-24 23:16:08 +02:00
committed by Christian Brabandt
parent edcba96c00
commit 46bdae036a
3 changed files with 15 additions and 3 deletions

View File

@@ -1635,7 +1635,6 @@ aucmd_restbuf(
{
win_T *awp = aucmd_win[aco->use_aucmd_win_idx].auc_win;
--curbuf->b_nwindows;
// Find "awp", it can't be closed, but it may be in another tab
// page. Do not trigger autocommands here.
block_autocmds();
@@ -1656,8 +1655,8 @@ aucmd_restbuf(
}
}
win_found:
--curbuf->b_nwindows;
#ifdef FEAT_JOB_CHANNEL
;
int save_stop_insert_mode = stop_insert_mode;
// May need to stop Insert mode if we were in a prompt buffer.
leaving_window(curwin);

View File

@@ -3630,11 +3630,22 @@ func Test_closing_autocmd_window()
END
call v9.CheckScriptFailure(lines, 'E814:')
au! BufEnter
only!
bwipe Xa.txt
bwipe Xb.txt
endfunc
func Test_switch_window_in_autocmd_window()
edit Xa.txt
tabnew Xb.txt
autocmd BufEnter Xa.txt wincmd w
doautoall BufEnter
au! BufEnter
bwipe Xa.txt
call assert_false(bufexists('Xa.txt'))
bwipe Xb.txt
call assert_false(bufexists('Xb.txt'))
endfunc
func Test_bufwipeout_changes_window()
" This should not crash, but we don't have any expectations about what
" happens, changing window in BufWipeout has unpredictable results.

View File

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