mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.0137: crash when using win_execute() from a new tab
Problem: Crash when using win_execute() from a new tab. Solution: Set the tp_*win pointers. (Ozaki Kiichi, closes #5512)
This commit is contained in:
parent
ed5adff1e6
commit
a44b3eeafa
@ -160,7 +160,7 @@ func Test_winfixwidth_on_close()
|
||||
endfunction
|
||||
|
||||
" Test that 'winfixheight' will be respected even there is non-leaf frame
|
||||
fun! Test_winfixheight_non_leaf_frame()
|
||||
func Test_winfixheight_non_leaf_frame()
|
||||
vsplit
|
||||
botright 11new
|
||||
let l:wid = win_getid()
|
||||
@ -173,7 +173,7 @@ fun! Test_winfixheight_non_leaf_frame()
|
||||
endf
|
||||
|
||||
" Test that 'winfixwidth' will be respected even there is non-leaf frame
|
||||
fun! Test_winfixwidth_non_leaf_frame()
|
||||
func Test_winfixwidth_non_leaf_frame()
|
||||
split
|
||||
topleft 11vnew
|
||||
let l:wid = win_getid()
|
||||
@ -184,3 +184,13 @@ fun! Test_winfixwidth_non_leaf_frame()
|
||||
call assert_equal(11, winwidth(l:wid))
|
||||
%bwipe!
|
||||
endf
|
||||
|
||||
func Test_tabwin_close()
|
||||
enew
|
||||
let l:wid = win_getid()
|
||||
tabedit
|
||||
call win_execute(l:wid, 'close')
|
||||
" Should not crash.
|
||||
call assert_true(v:true)
|
||||
%bwipe!
|
||||
endfunc
|
||||
|
@ -742,6 +742,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
137,
|
||||
/**/
|
||||
136,
|
||||
/**/
|
||||
|
@ -3616,6 +3616,9 @@ win_alloc_first(void)
|
||||
return FAIL;
|
||||
first_tabpage->tp_topframe = topframe;
|
||||
curtab = first_tabpage;
|
||||
curtab->tp_firstwin = firstwin;
|
||||
curtab->tp_lastwin = lastwin;
|
||||
curtab->tp_curwin = curwin;
|
||||
|
||||
return OK;
|
||||
}
|
||||
@ -3854,6 +3857,8 @@ win_new_tabpage(int after)
|
||||
newtp->tp_next = tp->tp_next;
|
||||
tp->tp_next = newtp;
|
||||
}
|
||||
newtp->tp_firstwin = newtp->tp_lastwin = newtp->tp_curwin = curwin;
|
||||
|
||||
win_init_size();
|
||||
firstwin->w_winrow = tabline_height();
|
||||
win_comp_scroll(curwin);
|
||||
|
Loading…
x
Reference in New Issue
Block a user