diff --git a/src/move.c b/src/move.c index ec1ad38ad7..767134f56d 100644 --- a/src/move.c +++ b/src/move.c @@ -2681,6 +2681,7 @@ halfpage(int flag, linenr_T Prenum) if (curwin->w_topfill > 0) { i = 1; + --n; --curwin->w_topfill; } else diff --git a/src/testdir/test_diffmode.vim b/src/testdir/test_diffmode.vim index a3f6d5867b..c0c5d0d44e 100644 --- a/src/testdir/test_diffmode.vim +++ b/src/testdir/test_diffmode.vim @@ -1130,4 +1130,24 @@ func Test_diff_multilineconceal() redraw endfunc +func Test_diff_and_scroll() + " this was causing an ml_get error + set ls=2 + for i in range(winheight(0) * 2) + call setline(i, i < winheight(0) - 10 ? i : i + 10) + endfor + vnew + for i in range(winheight(0)*2 + 10) + call setline(i, i < winheight(0) - 10 ? 0 : i) + endfor + diffthis + wincmd p + diffthis + execute 'normal ' . winheight(0) . "\" + + bwipe! + bwipe! + set ls& +endfunc + " vim: shiftwidth=2 sts=2 expandtab diff --git a/src/version.c b/src/version.c index 6be113dcac..95b0857fa4 100644 --- a/src/version.c +++ b/src/version.c @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 1211, /**/ 1210, /**/