Skip to content

Commit

Permalink
patch 8.2.4154: ml_get error when exchanging windows in Visual mode
Browse files Browse the repository at this point in the history
Problem:    ml_get error when exchanging windows in Visual mode.
Solution:   Correct end of Visual area when entering another buffer.
  • Loading branch information
brammool committed Jan 20, 2022
1 parent 4ac893f commit 05b2761
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 1 deletion.
10 changes: 10 additions & 0 deletions src/testdir/test_visual.vim
Expand Up @@ -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
2 changes: 2 additions & 0 deletions src/version.c
Expand Up @@ -750,6 +750,8 @@ static char *(features[]) =

static int included_patches[] =
{ /* Add new patch number below this line */
/**/
4154,
/**/
4153,
/**/
Expand Down
7 changes: 6 additions & 1 deletion src/window.c
Expand Up @@ -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);
}
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 05b2761

Please sign in to comment.