# HG changeset patch # User Christian Brabandt # Date 1712940307 -7200 # Node ID 4e6b29ea6ed2c19bd20b2af38d03c288411f75e3 # Parent 56f77a6b54aa7bfb1d326041c3e30cd499474b3c patch 9.1.0310: Filler lines not checked properly in get_scroll_overlap() Commit: https://github.com/vim/vim/commit/92325540876252eb7375e34ff8f92cd4265fa7ae Author: zeertzjq Date: Fri Apr 12 18:38:38 2024 +0200 patch 9.1.0310: Filler lines not checked properly in get_scroll_overlap() Problem: Filler lines not checked properly in get_scroll_overlap(). Solution: Add missing parentheses (zeertzjq). The missing parentheses causes the second argument to diff_check_fill() to always be 0 as it is the result of a comparison between a positive integer and -1 (the value of BACKWARD), in which case diff_check_fill() always returns 0 instead of the number of filler lines above a line. It's very hard to add a test for this, because this mistake at most leads to 2 screen lines of difference in scrolling behavior, and in cases where it may indeed lead to a difference in behavior, neither behavior achieves complete symmetry between CTRL-F and CTRL-B. closes: #14527 Signed-off-by: zeertzjq Signed-off-by: Christian Brabandt diff --git a/src/move.c b/src/move.c --- a/src/move.c +++ b/src/move.c @@ -3102,7 +3102,7 @@ static int get_scroll_overlap(int dir) loff.lnum = dir == FORWARD ? curwin->w_botline : curwin->w_topline - 1; #ifdef FEAT_DIFF - loff.fill = diff_check_fill(curwin, loff.lnum + dir == BACKWARD) + loff.fill = diff_check_fill(curwin, loff.lnum + (dir == BACKWARD)) - (dir == FORWARD ? curwin->w_filler_rows : curwin->w_topfill); loff.height = loff.fill > 0 ? 1 : plines_nofill(loff.lnum); #else diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -705,6 +705,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 310, +/**/ 309, /**/ 308,