patch 9.0.1542: line not fully displayed if it doesn't fit in the screen
Problem: Line not fully displayed if it doesn't fit in the screen.
Solution: Do not reset s_skipcol if not needed. (Luuk van Baal,
closes #12376)
diff --git a/src/move.c b/src/move.c
index 3e5f6d5..8775607 100644
--- a/src/move.c
+++ b/src/move.c
@@ -2772,11 +2772,10 @@
topline = loff.lnum;
int want_height;
- int smooth_scroll = FALSE;
- if (curwin->w_p_sms && curwin->w_p_wrap)
+ int do_sms = curwin->w_p_wrap && curwin->w_p_sms;
+ if (do_sms)
{
// 'smoothscroll' and 'wrap' are set
- smooth_scroll = TRUE;
if (atend)
{
want_height = (curwin->w_height - used) / 2;
@@ -2790,7 +2789,7 @@
{
// If using smoothscroll, we can precisely scroll to the
// exact point where the cursor is halfway down the screen.
- if (smooth_scroll)
+ if (do_sms)
{
topline_back_winheight(&loff, FALSE);
if (loff.height == MAXCOL)
@@ -2892,7 +2891,7 @@
curwin->w_skipcol = skipcol;
redraw_later(UPD_NOT_VALID);
}
- else
+ else if (do_sms)
reset_skipcol();
}
}