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:
committed by
Christian Brabandt
parent
edcba96c00
commit
46bdae036a
@@ -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);
|
||||
|
@@ -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.
|
||||
|
@@ -699,6 +699,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1934,
|
||||
/**/
|
||||
1933,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user