Patch 9.0.1072
Problem:    screenpos() column result in fold may be too small.
Solution:   Add space of 'number', sign column, etc. (closes #11715)
Files:      src/move.c, src/testdir/test_cursor_func.vim


*** ../vim-9.0.1071/src/move.c  2022-12-05 22:26:40.255110186 +0000
--- src/move.c  2022-12-18 12:28:25.966350301 +0000
***************
*** 1416,1422 ****
  
      if (pos->lnum >= wp->w_topline && pos->lnum <= wp->w_botline)
      {
-       colnr_T     off;
        colnr_T     col;
        int         width;
        linenr_T    lnum = pos->lnum;
--- 1416,1421 ----
***************
*** 1432,1442 ****
        row += diff_check_fill(wp, lnum);
  #endif
  
  #ifdef FEAT_FOLDING
        if (is_folded)
        {
            row += W_WINROW(wp);
!           coloff = wp->w_wincol + 1;
        }
        else
  #endif
--- 1431,1442 ----
        row += diff_check_fill(wp, lnum);
  #endif
  
+       colnr_T off = win_col_off(wp);
  #ifdef FEAT_FOLDING
        if (is_folded)
        {
            row += W_WINROW(wp);
!           coloff = wp->w_wincol + 1 + off;
        }
        else
  #endif
***************
*** 1445,1451 ****
  
            // similar to what is done in validate_cursor_col()
            col = scol;
-           off = win_col_off(wp);
            col += off;
            width = wp->w_width - off + win_col_off2(wp);
  
--- 1445,1450 ----
*** ../vim-9.0.1071/src/testdir/test_cursor_func.vim    2022-12-05 
22:26:40.259110192 +0000
--- src/testdir/test_cursor_func.vim    2022-12-18 12:13:08.735443175 +0000
***************
*** 150,157 ****
    redraw
    call assert_equal(2, screenpos(1, 2, 1).row)
    call assert_equal(#{col: 1, row: 3, endcol: 1, curscol: 1}, screenpos(1, 3, 
1))
!   call assert_equal(3, screenpos(1, 4, 1).row)
!   call assert_equal(3, screenpos(1, 5, 1).row)
    call assert_equal(4, screenpos(1, 6, 1).row)
    bwipe!
  endfunc
--- 150,161 ----
    redraw
    call assert_equal(2, screenpos(1, 2, 1).row)
    call assert_equal(#{col: 1, row: 3, endcol: 1, curscol: 1}, screenpos(1, 3, 
1))
!   call assert_equal(#{col: 1, row: 3, endcol: 1, curscol: 1}, screenpos(1, 4, 
1))
!   call assert_equal(#{col: 1, row: 3, endcol: 1, curscol: 1}, screenpos(1, 5, 
1))
!   setlocal number
!   call assert_equal(#{col: 5, row: 3, endcol: 5, curscol: 5}, screenpos(1, 3, 
1))
!   call assert_equal(#{col: 5, row: 3, endcol: 5, curscol: 5}, screenpos(1, 4, 
1))
!   call assert_equal(#{col: 5, row: 3, endcol: 5, curscol: 5}, screenpos(1, 5, 
1))
    call assert_equal(4, screenpos(1, 6, 1).row)
    bwipe!
  endfunc
*** ../vim-9.0.1071/src/version.c       2022-12-17 15:47:41.398038024 +0000
--- src/version.c       2022-12-18 12:15:46.843246042 +0000
***************
*** 697,698 ****
--- 697,700 ----
  {   /* Add new patch number below this line */
+ /**/
+     1072,
  /**/

-- 
ARTHUR:    Will you ask your master if he wants to join my court at Camelot?!
GUARD #1:  But then of course African swallows are not migratory.
GUARD #2:  Oh, yeah...
GUARD #1:  So they couldn't bring a coconut back anyway...
                                  The Quest for the Holy Grail (Monty Python)

 /// 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/20221218123157.C5CCD1C0D15%40moolenaar.net.

Raspunde prin e-mail lui