]> git.ipfire.org Git - thirdparty/vim.git/commitdiff
patch 9.2.0950: transstr() can be improved (after 9.2.0906) v9.2.0950
authorHirohito Higashi <h.east.727@gmail.com>
Wed, 12 Aug 2026 19:47:43 +0000 (19:47 +0000)
committerChristian Brabandt <cb@256bit.org>
Wed, 12 Aug 2026 19:47:43 +0000 (19:47 +0000)
Problem:  transstr() has comments that do not add anything to what the
          code says, and it casts a length to int only to cast it back to
          size_t.
Solution: Drop the comments and keep the length in a size_t
          (Hirohito Higashi).

related: #20925
closes:  #21026

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Hirohito Higashi <h.east.727@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
src/charset.c
src/testdir/test_functions.vim
src/version.c

index 3be32f5fb4b4dbaf23c87636fedcf0344b6aba3e..8a8b930c3d0913f0b3625821484abe30adc340ec 100644 (file)
@@ -383,8 +383,6 @@ transstr(char_u *s)
     if (res == NULL)
        return NULL;
 
-    // Keep a tail pointer to append to, appending with STRCAT would make
-    // this loop quadratic.
     char_u *d = res;
 
     p = s;
@@ -395,7 +393,6 @@ transstr(char_u *s)
            c = (*mb_ptr2char)(p);
            if (vim_isprintc(c))
            {
-               // append printable multi-byte char
                mch_memmove(d, p, (size_t)l);
                d += l;
            }
@@ -409,9 +406,9 @@ transstr(char_u *s)
        else
        {
            char_u      *trs = transchar_byte(*p++);
-           int         trs_len = (int)STRLEN(trs);
+           size_t      trs_len = STRLEN(trs);
 
-           mch_memmove(d, trs, (size_t)trs_len);
+           mch_memmove(d, trs, trs_len);
            d += trs_len;
        }
     }
index 3aec6c524070d6232710a87df6158182761fe5b3..c49d9dba0c4aa953b9bb07f53dec61500ee11ab3 100644 (file)
@@ -253,7 +253,6 @@ func Test_strtrans()
   call assert_equal('^A^_^?', strtrans("\x01\x1f\x7f"))
   " an unprintable byte above 0x7f uses the meta notation
   call assert_equal('| ', strtrans("\xa0"))
-  " a printable high byte is unchanged
   call assert_equal("\xe9", strtrans("\xe9"))
   call assert_equal("x^B\xe9| y", strtrans("x\x02\xe9\xa0y"))
   set encoding=utf-8
index ffe735bba72708ac1d315f7d3d174ff54b84b620..18210eb028a86f525f5df39d11e94fa2fedcff08 100644 (file)
@@ -763,6 +763,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    950,
 /**/
     949,
 /**/