patch 7.4.2279
Problem: Starting diff mode with the cursor in the last line might end up
only showing one closed fold. (John Beckett)
Solution: Scroll the window to show the same relative cursor position.
diff --git a/src/window.c b/src/window.c
index 65d8b36..6943c8f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5674,8 +5674,6 @@
void
win_new_height(win_T *wp, int height)
{
- linenr_T lnum;
- int sline, line_size;
int prev_height = wp->w_height;
/* Don't want a negative height. Happens when splitting a tiny window.
@@ -5701,6 +5699,16 @@
wp->w_height = height;
wp->w_skipcol = 0;
+ scroll_to_fraction(wp, prev_height);
+}
+
+ void
+scroll_to_fraction(win_T *wp, int prev_height)
+{
+ linenr_T lnum;
+ int sline, line_size;
+ int height = wp->w_height;
+
/* Don't change w_topline when height is zero. Don't set w_topline when
* 'scrollbind' is set and this isn't the current window. */
if (height > 0