1
0
forked from aniani/vim

patch 8.2.2244: crash when making the window width negative

Problem:    Crash when making the window width of the not-current window
            negative.
Solution:   Make sure the window width is not negative. (closes #7568)
This commit is contained in:
Bram Moolenaar
2020-12-29 12:46:51 +01:00
parent 4012d26207
commit 89015a6759
3 changed files with 12 additions and 0 deletions

View File

@@ -1148,6 +1148,14 @@ func Test_window_resize()
exe other_winnr .. 'resize +1' exe other_winnr .. 'resize +1'
call assert_equal(12, winheight(other_winnr)) call assert_equal(12, winheight(other_winnr))
call assert_equal(&lines - 10 - 3 -2, winheight(0)) call assert_equal(&lines - 10 - 3 -2, winheight(0))
close
vsplit
wincmd l
let other_winnr = winnr('h')
call assert_notequal(winnr(), other_winnr)
exe 'vert ' .. other_winnr .. 'resize -100'
call assert_equal(0, winwidth(other_winnr))
%bwipe! %bwipe!
endfunc endfunc

View File

@@ -750,6 +750,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 */
/**/
2244,
/**/ /**/
2243, 2243,
/**/ /**/

View File

@@ -5687,6 +5687,8 @@ win_setwidth_win(int width, win_T *wp)
if (width == 0) if (width == 0)
width = 1; width = 1;
} }
else if (width < 0)
width = 0;
frame_setwidth(wp->w_frame, width + wp->w_vsep_width); frame_setwidth(wp->w_frame, width + wp->w_vsep_width);