Patch 8.2.2935 (after 8.2.2934)
Problem:    Calculating register width is not always needed. (Christian
            Brabandt)
Solution:   Only calculate the width when the type is MBLOCK.
Files:      src/register.c


*** ../vim-8.2.2934/src/register.c      2021-06-04 18:33:46.476081798 +0200
--- src/register.c      2021-06-04 19:13:46.606773878 +0200
***************
*** 2836,2842 ****
      char_u    **ss;
      char_u    **pp;
      long      maxlen;
-     int       charlen;
  
      if (y_ptr->y_array == NULL)               // NULL means empty register
        y_ptr->y_size = 0;
--- 2836,2841 ----
***************
*** 2895,2917 ****
      {
        for (ss = (char_u **) str; *ss != NULL; ++ss, ++lnum)
        {
!           charlen = MB_CHARLEN(*ss);
!           i = (long)STRLEN(*ss);
!           pp[lnum] = vim_strnsave(*ss, i);
!           if (charlen > maxlen)
!               maxlen = charlen;
        }
      }
      else
      {
        for (start = 0; start < len + extraline; start += i + 1)
        {
!           charlen = 0;
            for (i = start; i < len; ++i)       // find the end of the line
            {
                if (str[i] == '\n')
                    break;
!               charlen += mb_ptr2cells_len(str + i, len - i);
            }
            i -= start;                 // i is now length of line
            if (charlen > maxlen)
--- 2894,2921 ----
      {
        for (ss = (char_u **) str; *ss != NULL; ++ss, ++lnum)
        {
!           pp[lnum] = vim_strsave(*ss);
!           if (type == MBLOCK)
!           {
!               int charlen = mb_string2cells(*ss, -1);
! 
!               if (charlen > maxlen)
!                   maxlen = charlen;
!           }
        }
      }
      else
      {
        for (start = 0; start < len + extraline; start += i + 1)
        {
!           int charlen = 0;
! 
            for (i = start; i < len; ++i)       // find the end of the line
            {
                if (str[i] == '\n')
                    break;
!               if (type == MBLOCK)
!                   charlen += mb_ptr2cells_len(str + i, len - i);
            }
            i -= start;                 // i is now length of line
            if (charlen > maxlen)
*** ../vim-8.2.2934/src/version.c       2021-06-04 18:33:46.476081798 +0200
--- src/version.c       2021-06-04 19:05:11.760138025 +0200
***************
*** 752,753 ****
--- 752,755 ----
  {   /* Add new patch number below this line */
+ /**/
+     2935,
  /**/

-- 
A law to reduce crime states: "It is mandatory for a motorist with criminal
intentions to stop at the city limits and telephone the chief of police as he
is entering the town.
                [real standing law in Washington, United States of America]

 /// 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/202106041717.154HHYng3162399%40masaka.moolenaar.net.

Raspunde prin e-mail lui