patch 8.2.4154: ml_get error when exchanging windows in Visual mode
Problem: ml_get error when exchanging windows in Visual mode. Solution: Correct end of Visual area when entering another buffer.
This commit is contained in:
@ -1318,5 +1318,15 @@ func Test_visual_block_insert_round_off()
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
" this was causing an ml_get error
|
||||
func Test_visual_exchange_windows()
|
||||
enew!
|
||||
new
|
||||
call setline(1, ['foo', 'bar'])
|
||||
exe "normal G\<C-V>gg\<C-W>\<C-X>OO\<Esc>"
|
||||
bwipe!
|
||||
bwipe!
|
||||
endfunc
|
||||
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4154,
|
||||
/**/
|
||||
4153,
|
||||
/**/
|
||||
|
||||
@ -1691,6 +1691,11 @@ win_exchange(long Prenum)
|
||||
|
||||
(void)win_comp_pos(); // recompute window positions
|
||||
|
||||
if (wp->w_buffer != curbuf)
|
||||
reset_VIsual_and_resel();
|
||||
else if (VIsual_active)
|
||||
wp->w_cursor = curwin->w_cursor;
|
||||
|
||||
win_enter(wp, TRUE);
|
||||
redraw_all_later(NOT_VALID);
|
||||
}
|
||||
@ -5332,7 +5337,7 @@ frame_remove(frame_T *frp)
|
||||
win_alloc_lines(win_T *wp)
|
||||
{
|
||||
wp->w_lines_valid = 0;
|
||||
wp->w_lines = ALLOC_CLEAR_MULT(wline_T, Rows );
|
||||
wp->w_lines = ALLOC_CLEAR_MULT(wline_T, Rows);
|
||||
if (wp->w_lines == NULL)
|
||||
return FAIL;
|
||||
return OK;
|
||||
|
||||
Reference in New Issue
Block a user