Patch 9.0.1542
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)
Files:      src/move.c, src/testdir/test_display.vim,
            src/testdir/dumps/Test_display_cursor_long_line.dump


*** ../vim-9.0.1541/src/move.c  2023-05-09 16:00:59.958881540 +0100
--- src/move.c  2023-05-11 18:33:27.165576908 +0100
***************
*** 2772,2782 ****
      topline = loff.lnum;
  
      int want_height;
!     int smooth_scroll = FALSE;
!     if (curwin->w_p_sms && curwin->w_p_wrap)
      {
        // 'smoothscroll' and 'wrap' are set
-       smooth_scroll = TRUE;
        if (atend)
        {
            want_height = (curwin->w_height - used) / 2;
--- 2772,2781 ----
      topline = loff.lnum;
  
      int want_height;
!     int do_sms = curwin->w_p_wrap && curwin->w_p_sms;
!     if (do_sms)
      {
        // 'smoothscroll' and 'wrap' are set
        if (atend)
        {
            want_height = (curwin->w_height - used) / 2;
***************
*** 2790,2796 ****
      {
        // If using smoothscroll, we can precisely scroll to the
        // exact point where the cursor is halfway down the screen.
!       if (smooth_scroll)
        {
            topline_back_winheight(&loff, FALSE);
            if (loff.height == MAXCOL)
--- 2789,2795 ----
      {
        // If using smoothscroll, we can precisely scroll to the
        // exact point where the cursor is halfway down the screen.
!       if (do_sms)
        {
            topline_back_winheight(&loff, FALSE);
            if (loff.height == MAXCOL)
***************
*** 2892,2898 ****
                curwin->w_skipcol = skipcol;
                redraw_later(UPD_NOT_VALID);
            }
!           else
                reset_skipcol();
        }
      }
--- 2891,2897 ----
                curwin->w_skipcol = skipcol;
                redraw_later(UPD_NOT_VALID);
            }
!           else if (do_sms)
                reset_skipcol();
        }
      }
*** ../vim-9.0.1541/src/testdir/test_display.vim        2023-04-30 
19:15:09.285424145 +0100
--- src/testdir/test_display.vim        2023-05-11 18:33:27.165576908 +0100
***************
*** 489,492 ****
--- 489,510 ----
    call StopVimInTerminal(buf)
  endfunc
  
+ " Moving the cursor to a line that doesn't fit in the window should show
+ " correctly.
+ func Test_display_cursor_long_line()
+   CheckScreendump
+ 
+   let lines =<< trim END
+     call setline(1, ['a', 'bbbbb '->repeat(100), 'c'])
+     norm $j
+   END
+ 
+   call writefile(lines, 'XdispCursorLongline', 'D')
+   let buf = RunVimInTerminal('-S XdispCursorLongline', #{rows: 8})
+ 
+   call VerifyScreenDump(buf, 'Test_display_cursor_long_line', {})
+ 
+   call StopVimInTerminal(buf)
+ endfunc
+ 
  " vim: shiftwidth=2 sts=2 expandtab
*** ../vim-9.0.1541/src/testdir/dumps/Test_display_cursor_long_line.dump        
2023-05-11 18:37:45.325592764 +0100
--- src/testdir/dumps/Test_display_cursor_long_line.dump        2023-05-11 
18:33:27.165576908 +0100
***************
*** 0 ****
--- 1,8 ----
+ |<+0#4040ff13#ffffff0@2|b+0#0000000&@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| 
|b@4| |b@4| |b@4| |b@4| |b@4| 
+ |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@2
+ @2| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| 
+ |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@2
+ @2| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| 
+ |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@2
+ @2| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4| |b@4> 
+ @57|2|,|6|0@1| @8|5|0|%| 
*** ../vim-9.0.1541/src/version.c       2023-05-11 15:22:55.071745165 +0100
--- src/version.c       2023-05-11 18:36:20.065599004 +0100
***************
*** 697,698 ****
--- 697,700 ----
  {   /* Add new patch number below this line */
+ /**/
+     1542,
  /**/

-- 
How To Keep A Healthy Level Of Insanity:
16. Have your coworkers address you by your wrestling name, Rock Hard Kim.

 /// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net   \\\
///                                                                      \\\
\\\        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/vim_dev/20230511173845.DD9311C1B32%40moolenaar.net.

Raspunde prin e-mail lui