diff src/move.c @ 23306:90ea5037a7e3 v8.2.2198

patch 8.2.2198: ml_get error when resizing window and using text property Commit: https://github.com/vim/vim/commit/23999d799cfe844b604f193183f8f84052c8e746 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Dec 23 14:36:00 2020 +0100 patch 8.2.2198: ml_get error when resizing window and using text property Problem: ml_get error when resizing window and using text property. Solution: Validate botline of the right window. (closes https://github.com/vim/vim/issues/7528)
author Bram Moolenaar <Bram@vim.org>
date Wed, 23 Dec 2020 14:45:04 +0100
parents 477f1b4c6826
children 68f506771741
line wrap: on
line diff
--- 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);
 }
 
 /*