diff options
Diffstat (limited to 'src/move.c')
-rw-r--r-- | src/move.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/move.c b/src/move.c index 69091fd3d..aa90b528a 100644 --- a/src/move.c +++ b/src/move.c @@ -541,6 +541,8 @@ set_topline(win_T *wp, linenr_T lnum) #endif // Approximate the value of w_botline wp->w_botline += lnum - wp->w_topline; + if (wp->w_botline > wp->w_buffer->b_ml.ml_line_count + 1) + wp->w_botline = wp->w_buffer->b_ml.ml_line_count + 1; wp->w_topline = lnum; wp->w_topline_was_set = TRUE; #ifdef FEAT_DIFF @@ -595,8 +597,17 @@ changed_line_abv_curs_win(win_T *wp) void validate_botline(void) { - if (!(curwin->w_valid & VALID_BOTLINE)) - comp_botline(curwin); + validate_botline_win(curwin); +} + +/* + * Make sure the value of wp->w_botline is valid. + */ + void +validate_botline_win(win_T *wp) +{ + if (!(wp->w_valid & VALID_BOTLINE)) + comp_botline(wp); } /* |