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;
|
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
|
// Find "awp", it can't be closed, but it may be in another tab
|
||||||
// page. Do not trigger autocommands here.
|
// page. Do not trigger autocommands here.
|
||||||
block_autocmds();
|
block_autocmds();
|
||||||
@@ -1656,8 +1655,8 @@ aucmd_restbuf(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
win_found:
|
win_found:
|
||||||
|
--curbuf->b_nwindows;
|
||||||
#ifdef FEAT_JOB_CHANNEL
|
#ifdef FEAT_JOB_CHANNEL
|
||||||
;
|
|
||||||
int save_stop_insert_mode = stop_insert_mode;
|
int save_stop_insert_mode = stop_insert_mode;
|
||||||
// May need to stop Insert mode if we were in a prompt buffer.
|
// May need to stop Insert mode if we were in a prompt buffer.
|
||||||
leaving_window(curwin);
|
leaving_window(curwin);
|
||||||
|
@@ -3630,11 +3630,22 @@ func Test_closing_autocmd_window()
|
|||||||
END
|
END
|
||||||
call v9.CheckScriptFailure(lines, 'E814:')
|
call v9.CheckScriptFailure(lines, 'E814:')
|
||||||
au! BufEnter
|
au! BufEnter
|
||||||
only!
|
|
||||||
bwipe Xa.txt
|
bwipe Xa.txt
|
||||||
bwipe Xb.txt
|
bwipe Xb.txt
|
||||||
endfunc
|
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()
|
func Test_bufwipeout_changes_window()
|
||||||
" This should not crash, but we don't have any expectations about what
|
" This should not crash, but we don't have any expectations about what
|
||||||
" happens, changing window in BufWipeout has unpredictable results.
|
" happens, changing window in BufWipeout has unpredictable results.
|
||||||
|
@@ -699,6 +699,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
1934,
|
||||||
/**/
|
/**/
|
||||||
1933,
|
1933,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user