summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2024-01-05 18:11:43 +0100
committerChristian Brabandt <cb@256bit.org>2024-01-05 18:11:43 +0100
commitb1ed7ec9f7d1a0142d4f1c8c83bab9172bc92c7c (patch)
tree07503e493afa381d37d2c744a3dc0e56cd93b080
parent68a89470693c7687d4e736ca056c05de632e3ac7 (diff)
patch 9.1.0014: incorrect use of W_WINROW in edit.cv9.1.0014
Problem: incorrect use of W_WINROW in edit.c Solution: compare against curwin->w_height instead Remove incorrect use of W_WINROW In structs.h it is mentioned that w_wrow is relative to w_winrow, so using W_WINROW doesn't make sense when comparing with window height. This change won't lead to any observable behavior change: The condition intends to check if there are 'scrolloff' lines between the current cursor when the bottom of the window. When W_WINROW(curwin) is added to curwin->w_height - 1 - get_scrolloff_value(), the condition is instead satisfied when the cursor is on some screen line below that position. However, - If 'scrolloff' is smaller than half the window height, this condition can only be satisfied when W_WINROW(curwin) == 0. And if it is not satisfied, update_topline() does the actual scrolling. - If 'scrolloff' is larger than half the window height, update_topline() will put the cursor at the center of the window soon afterwards anyway, because set_topline() now unsets VALID_TOPLINE flag starting from https://github.com/vim/vim-history/commit/7db7bb45b0f919ff0615d463ebd4fde881c69d1f. To put it in another way, https://github.com/vim/vim-history/commit/7db7bb45b0f919ff0615d463ebd4fde881c69d1f makes the update_topline() just below correct the mistakes made in this block, so this incorrect use of W_WINROW() no longer affects observable behavior. closes: #12331 Signed-off-by: zeertzjq <zeertzjq@outlook.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
-rw-r--r--src/edit.c4
-rw-r--r--src/version.c2
2 files changed, 4 insertions, 2 deletions
diff --git a/src/edit.c b/src/edit.c
index f89d43eec6..cb6ae7ee9b 100644
--- a/src/edit.c
+++ b/src/edit.c
@@ -525,8 +525,8 @@ edit(
#else
(int)curwin->w_wcol < mincol - curbuf->b_p_ts
#endif
- && curwin->w_wrow == W_WINROW(curwin)
- + curwin->w_height - 1 - get_scrolloff_value()
+ && curwin->w_wrow ==
+ curwin->w_height - 1 - get_scrolloff_value()
&& (curwin->w_cursor.lnum != curwin->w_topline
#ifdef FEAT_DIFF
|| curwin->w_topfill > 0
diff --git a/src/version.c b/src/version.c
index 8f6446fd88..a6dae87b5b 100644
--- 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 */
/**/
+ 14,
+/**/
13,
/**/
12,