Author: rinrab
Date: Wed May 20 08:20:15 2026
New Revision: 1934424

Log:
Align author in 'svn list -v' by considering UTF-8 characters.

* subversion/svn/list-cmd.c
  (#includes): Add svn_utf_private.h.
  (print_dirent): Use svn_utf_cstring_utf8_width() to process author_width and
   align it using svn_utf__cstring_utf8_align_left() instead of relying on
   printf syntax.

Modified:
   subversion/trunk/subversion/svn/list-cmd.c

Modified: subversion/trunk/subversion/svn/list-cmd.c
==============================================================================
--- subversion/trunk/subversion/svn/list-cmd.c  Wed May 20 08:15:53 2026        
(r1934423)
+++ subversion/trunk/subversion/svn/list-cmd.c  Wed May 20 08:20:15 2026        
(r1934424)
@@ -31,6 +31,7 @@
 #include "svn_path.h"
 #include "svn_utf.h"
 #include "svn_opt.h"
+#include "private/svn_utf_private.h"
 
 #include "cl.h"
 
@@ -169,7 +170,7 @@ print_dirent(void *baton,
       /* We may have to adjust the width of th 'author' field. */
       if (dirent->last_author)
         {
-          const int author_width = (int)strlen(dirent->last_author);
+          int author_width = svn_utf_cstring_utf8_width(dirent->last_author);
           if (author_width > pb->author_width)
             {
               if (author_width < pb->max_author_width)
@@ -187,10 +188,12 @@ print_dirent(void *baton,
         }
 
       return svn_cmdline_printf
-              (scratch_pool, "%7ld %-*.*s %c %*s %12s %s%s\n",
+              (scratch_pool, "%7ld %s %c %*s %12s %s%s\n",
                dirent->created_rev,
-               pb->author_width, pb->author_width,
-               dirent->last_author ? dirent->last_author : " ? ",
+               svn_utf__cstring_utf8_align_left(
+                   dirent->last_author ? dirent->last_author : " ? ",
+                   pb->author_width,
+                   scratch_pool),
                lock ? 'O' : ' ',
                sizewidth, sizestr,
                utf8_timestr,

Reply via email to