diff options
-rw-r--r-- | src/diff.c | 6 | ||||
-rw-r--r-- | src/testdir/test47.in | 17 | ||||
-rw-r--r-- | src/testdir/test47.ok | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 23 insertions, 3 deletions
@@ -615,11 +615,13 @@ diff_redraw(dofold) #endif /* A change may have made filler lines invalid, need to take care * of that for other windows. */ - if (wp != curwin && wp->w_topfill > 0) + n = diff_check(wp, wp->w_topline); + if ((wp != curwin && wp->w_topfill > 0) || n > 0) { - n = diff_check(wp, wp->w_topline); if (wp->w_topfill > n) wp->w_topfill = (n < 0 ? 0 : n); + else if (n > 0 && n > wp->w_topfill) + wp->w_topfill = n; } } } diff --git a/src/testdir/test47.in b/src/testdir/test47.in index c87387b2..13ad8246 100644 --- a/src/testdir/test47.in +++ b/src/testdir/test47.in @@ -36,7 +36,22 @@ j:let three = three . "-" . winline() :call append("$", two) :call append("$", three) :$-2,$w! test.out -:unlet one two three +:" Test that diffing shows correct filler lines +:diffoff! +:windo :bw! +:enew +:put =range(4,10) +:1d _ +:vnew +:put =range(1,10) +:1d _ +:windo :diffthis +:wincmd h +:let w0=line('w0') +:enew +:put =w0 +:.w >> test.out +:unlet! one two three w0 :qa! ENDTEST diff --git a/src/testdir/test47.ok b/src/testdir/test47.ok index 3307b934..b1cba92b 100644 --- a/src/testdir/test47.ok +++ b/src/testdir/test47.ok @@ -1,3 +1,4 @@ 2-4-5-6-8-9 1-2-4-5-8 2-3-4-5-6-7-8 +1 diff --git a/src/version.c b/src/version.c index 4631c720..ddd39342 100644 --- a/src/version.c +++ b/src/version.c @@ -726,6 +726,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 708, +/**/ 707, /**/ 706, |