# HG changeset patch # User Christian Brabandt # Date 1441134005 -7200 # Node ID ad4c039349f693bdecd3cc0f6540e3bbc5f403c3 # Parent 0b3ad7730e6ea9821896b36bb7d10a2eebe3b002 commit https://github.com/vim/vim/commit/cf619daa8e0ef9a335f27f65eb74e422a17d4f92 Author: Bram Moolenaar Date: Tue Sep 1 20:53:24 2015 +0200 patch 7.4.853 Problem: "zt" in diff mode does not always work properly. (Gary Johnson) Solution: Don't count filler lines twice. (Christian Brabandt) diff --git a/src/move.c b/src/move.c --- a/src/move.c +++ b/src/move.c @@ -1732,7 +1732,7 @@ scroll_cursor_top(min_scroll, always) * - at least 'scrolloff' lines above and below the cursor */ validate_cheight(); - used = curwin->w_cline_height; + used = curwin->w_cline_height; /* includes filler lines above */ if (curwin->w_cursor.lnum < curwin->w_topline) scrolled = used; @@ -1751,10 +1751,12 @@ scroll_cursor_top(min_scroll, always) new_topline = top + 1; #ifdef FEAT_DIFF - /* count filler lines of the cursor window as context */ - i = diff_check_fill(curwin, curwin->w_cursor.lnum); - used += i; - extra += i; + /* used already contains the number of filler lines above, don't add it + * again. + * TODO: if filler lines above new top are to be considered as context for + * the current window, leave next statement commented, else hide filler + * lines above cursor line, by adding them to extra */ + /* extra += diff_check_fill(curwin, curwin->w_cursor.lnum); */ #endif /* diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -742,6 +742,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 853, +/**/ 852, /**/ 851,