]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.1.0310: Filler lines not checked properly in get_scroll_overlap() v9.1.0310
authorzeertzjq <zeertzjq@outlook.com>
Fri, 12 Apr 2024 16:38:38 +0000 (18:38 +0200)
committerChristian Brabandt <cb@256bit.org>
Fri, 12 Apr 2024 16:38:38 +0000 (18:38 +0200)
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 <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/move.c
src/version.c

index 8c6fbd6b88cbbb00d30d9f7b7f2bac1f77f8e2f8..20c575c66a1c2c8fc8d857f7ab856c404ea8086f 100644 (file)
@@ -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
index b9db49e15ed03c780050e8ce10c433244d0a1b14..e30a1bc0d89c9c66a48d08b9125406d237e436e2 100644 (file)
@@ -704,6 +704,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    310,
 /**/
     309,
 /**/