Patch 8.2.4091
Problem:    Virtcol is recomputed for statusline unnecessarily.
Solution:   Just use "w_virtcol". (closes #9523)
Files:      src/buffer.c, src/testdir/test_statusline.vim


*** ../vim-8.2.4090/src/buffer.c        2022-01-08 12:41:12.200795557 +0000
--- src/buffer.c        2022-01-14 20:07:22.337166752 +0000
***************
*** 4610,4624 ****
  
        case STL_VIRTCOL:
        case STL_VIRTCOL_ALT:
!           // In list mode virtcol needs to be recomputed
!           virtcol = wp->w_virtcol;
!           if (wp->w_p_list && wp->w_lcs_chars.tab1 == NUL)
!           {
!               wp->w_p_list = FALSE;
!               getvcol(wp, &wp->w_cursor, NULL, &virtcol, NULL);
!               wp->w_p_list = TRUE;
!           }
!           ++virtcol;
            // Don't display %V if it's the same as %c.
            if (opt == STL_VIRTCOL_ALT
                    && (virtcol == (colnr_T)(!(State & INSERT) && empty_line
--- 4610,4616 ----
  
        case STL_VIRTCOL:
        case STL_VIRTCOL_ALT:
!           virtcol = wp->w_virtcol + 1;
            // Don't display %V if it's the same as %c.
            if (opt == STL_VIRTCOL_ALT
                    && (virtcol == (colnr_T)(!(State & INSERT) && empty_line
*** ../vim-8.2.4090/src/testdir/test_statusline.vim     2021-10-08 
18:39:23.595208057 +0100
--- src/testdir/test_statusline.vim     2022-01-14 20:07:22.337166752 +0000
***************
*** 196,202 ****
--- 196,211 ----
    set virtualedit=all
    norm 10|
    call assert_match('^10,-10\s*$', s:get_statusline())
+   set list
+   call assert_match('^10,-10\s*$', s:get_statusline())
    set virtualedit&
+   exe "norm A\<Tab>\<Tab>a\<Esc>"
+   " In list mode a <Tab> is shown as "^I", which is 2-wide.
+   call assert_match('^9,-9\s*$', s:get_statusline())
+   set list&
+   " Now the second <Tab> ends at the 16th screen column.
+   call assert_match('^17,-17\s*$', s:get_statusline())
+   undo
  
    " %w: Preview window flag, text is "[Preview]".
    " %W: Preview window flag, text is ",PRV".
*** ../vim-8.2.4090/src/version.c       2022-01-14 13:19:40.054831855 +0000
--- src/version.c       2022-01-14 20:11:17.761624745 +0000
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     4091,
  /**/

-- 
   LAUNCELOT leaps into SHOT with a mighty cry and runs the GUARD through and
   hacks him to the floor.  Blood.  Swashbuckling music (perhaps).
   LAUNCELOT races through into the castle screaming.
SECOND SENTRY: Hey!
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// 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/20220114201214.265DE1C1B3A%40moolenaar.net.

Raspunde prin e-mail lui