summaryrefslogtreecommitdiff
path: root/src/move.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/move.c')
-rw-r--r--src/move.c15
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);
}
/*