Author: brane
Date: Fri May 22 17:22:56 2026
New Revision: 1934506

Log:
* branches/1.15.x/STATUS: +0 for r1934466 and the r1934437 group.

Modified:
   subversion/branches/1.15.x/   (props changed)
   subversion/branches/1.15.x/STATUS
   subversion/branches/1.15.x/subversion/include/private/svn_utf_private.h
   subversion/branches/1.15.x/subversion/libsvn_subr/sysinfo.c
   subversion/branches/1.15.x/subversion/libsvn_subr/utf.c
   subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.c
   subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.h

Modified: subversion/branches/1.15.x/STATUS
==============================================================================
--- subversion/branches/1.15.x/STATUS   Fri May 22 17:17:47 2026        
(r1934505)
+++ subversion/branches/1.15.x/STATUS   Fri May 22 17:22:56 2026        
(r1934506)
@@ -46,6 +46,7 @@ Candidate changes:
      Fix vcxproj build with zlib 1.3.2+ on Windows.
    Votes:
      +1: jun66j5
+     +0: brane (review only, can't test)
 
  * r1934437, r1934438, r1934443, r1934444
    Make `svn --version -v` report actual character encoding used on Windows.
@@ -59,6 +60,7 @@ Candidate changes:
        support" option is used on Windows.
    Votes:
      +1: ivan
+     +0: brane (review only, can't test)
 
  * r1934497, r1934500
    Make test work without the 'venv' Python module.

Modified: 
subversion/branches/1.15.x/subversion/include/private/svn_utf_private.h
==============================================================================
--- subversion/branches/1.15.x/subversion/include/private/svn_utf_private.h     
Fri May 22 17:17:47 2026        (r1934505)
+++ subversion/branches/1.15.x/subversion/include/private/svn_utf_private.h     
Fri May 22 17:22:56 2026        (r1934506)
@@ -93,6 +93,10 @@ svn_utf__cstring_from_utf8_fuzzy(const c
                                                const char *,
                                                apr_pool_t *));
 
+/* Get the actual name of the character that will be used when
+ * SVN_APR_LOCALE_CHARSET is provided.
+ * Allocate result in POOL. */
+const char *svn_utf__locale_encoding(apr_pool_t *pool);
 
 #if defined(WIN32)
 /* On Windows: Convert the UTF-8 string SRC to UTF-16.

Modified: subversion/branches/1.15.x/subversion/libsvn_subr/sysinfo.c
==============================================================================
--- subversion/branches/1.15.x/subversion/libsvn_subr/sysinfo.c Fri May 22 
17:17:47 2026        (r1934505)
+++ subversion/branches/1.15.x/subversion/libsvn_subr/sysinfo.c Fri May 22 
17:22:56 2026        (r1934506)
@@ -35,7 +35,6 @@
 #include <apr_thread_proc.h>
 #include <apr_version.h>
 #include <apu_version.h>
-#include <apr_portable.h>       /* for apr_os_locale_encoding() */
 
 #include "svn_pools.h"
 #include "svn_ctype.h"
@@ -141,62 +140,78 @@ svn_sysinfo__release_name(apr_pool_t *po
 const char *
 svn_sysinfo__character_encoding(apr_pool_t *pool)
 {
-  return apr_os_locale_encoding(pool);
+  return svn_utf__locale_encoding(pool);
 }
 
 const apr_array_header_t *
 svn_sysinfo__linked_libs(apr_pool_t *pool)
 {
-  svn_version_ext_linked_lib_t *lib;
-  apr_array_header_t *array = apr_array_make(pool, 7, sizeof(*lib));
-  int lz4_version = svn_lz4__runtime_version();
-
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "APR";
-  lib->compiled_version = APR_VERSION_STRING;
-  lib->runtime_version = apr_pstrdup(pool, apr_version_string());
+  apr_array_header_t *array =
+      apr_array_make(pool, 7, sizeof(svn_version_ext_linked_lib_t));
+
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "APR";
+    lib->compiled_version = APR_VERSION_STRING;
+    lib->runtime_version = apr_pstrdup(pool, apr_version_string());
+  }
 
 /* Don't list APR-Util if it isn't linked in, which it may not be if
  * we're using APR 2.x+ which combined APR-Util into APR. */
 #ifdef APU_VERSION_STRING
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "APR-Util";
-  lib->compiled_version = APU_VERSION_STRING;
-  lib->runtime_version = apr_pstrdup(pool, apu_version_string());
-#endif
-
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "Expat";
-  lib->compiled_version = apr_pstrdup(pool, svn_xml__compiled_version());
-  lib->runtime_version = apr_pstrdup(pool, svn_xml__runtime_version());
-
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "SQLite";
-  lib->compiled_version = apr_pstrdup(pool, svn_sqlite__compiled_version());
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "APR-Util";
+    lib->compiled_version = APU_VERSION_STRING;
+    lib->runtime_version = apr_pstrdup(pool, apu_version_string());
+  }
+#endif
+
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "Expat";
+    lib->compiled_version = apr_pstrdup(pool, svn_xml__compiled_version());
+    lib->runtime_version = apr_pstrdup(pool, svn_xml__runtime_version());
+  }
+
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "SQLite";
+    lib->compiled_version = apr_pstrdup(pool, svn_sqlite__compiled_version());
 #ifdef SVN_SQLITE_INLINE
-  lib->runtime_version = NULL;
+    lib->runtime_version = NULL;
 #else
-  lib->runtime_version = apr_pstrdup(pool, svn_sqlite__runtime_version());
+    lib->runtime_version = apr_pstrdup(pool, svn_sqlite__runtime_version());
 #endif
+  }
 
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "Utf8proc";
-  lib->compiled_version = apr_pstrdup(pool, 
svn_utf__utf8proc_compiled_version());
-  lib->runtime_version = apr_pstrdup(pool, 
svn_utf__utf8proc_runtime_version());
-
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "ZLib";
-  lib->compiled_version = apr_pstrdup(pool, svn_zlib__compiled_version());
-  lib->runtime_version = apr_pstrdup(pool, svn_zlib__runtime_version());
-
-  lib = &APR_ARRAY_PUSH(array, svn_version_ext_linked_lib_t);
-  lib->name = "LZ4";
-  lib->compiled_version = apr_pstrdup(pool, svn_lz4__compiled_version());
-
-  lib->runtime_version = apr_psprintf(pool, "%d.%d.%d",
-                                      lz4_version / 100 / 100,
-                                      (lz4_version / 100) % 100,
-                                      lz4_version % 100);
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "Utf8proc";
+    lib->compiled_version =
+        apr_pstrdup(pool, svn_utf__utf8proc_compiled_version());
+    lib->runtime_version =
+        apr_pstrdup(pool, svn_utf__utf8proc_runtime_version());
+  }
+
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    lib->name = "ZLib";
+    lib->compiled_version = apr_pstrdup(pool, svn_zlib__compiled_version());
+    lib->runtime_version = apr_pstrdup(pool, svn_zlib__runtime_version());
+  }
+
+  {
+    svn_version_ext_linked_lib_t *lib = apr_array_push(array);
+    int lz4_version = svn_lz4__runtime_version();
+    lib->name = "LZ4";
+    lib->compiled_version = apr_pstrdup(pool, svn_lz4__compiled_version());
+
+    lib->runtime_version = apr_psprintf(pool, "%d.%d.%d",
+                                        lz4_version / 100 / 100,
+                                        (lz4_version / 100) % 100,
+                                        lz4_version % 100);
+  }
 
   return array;
 }

Modified: subversion/branches/1.15.x/subversion/libsvn_subr/utf.c
==============================================================================
--- subversion/branches/1.15.x/subversion/libsvn_subr/utf.c     Fri May 22 
17:17:47 2026        (r1934505)
+++ subversion/branches/1.15.x/subversion/libsvn_subr/utf.c     Fri May 22 
17:22:56 2026        (r1934506)
@@ -31,6 +31,7 @@
 #include <apr_lib.h>
 #include <apr_xlate.h>
 #include <apr_atomic.h>
+#include <apr_portable.h>       /* for apr_os_locale_encoding() */
 
 #include "svn_hash.h"
 #include "svn_string.h"
@@ -1194,6 +1195,16 @@ svn_utf__utf32_to_utf8(const svn_string_
   return SVN_NO_ERROR;
 }
 
+const char *
+svn_utf__locale_encoding(apr_pool_t *pool)
+{
+#if defined(WIN32)
+  /* We have special code for xlate on Windows. */
+  return svn_subr__win32_xlate_locale_encoding(pool);
+#else
+  return apr_os_locale_encoding(pool);
+#endif
+}
 
 #ifdef WIN32
 

Modified: subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.c
==============================================================================
--- subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.c     Fri May 
22 17:17:47 2026        (r1934505)
+++ subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.c     Fri May 
22 17:22:56 2026        (r1934506)
@@ -248,6 +248,31 @@ svn_subr__win32_xlate_to_stringbuf(svn_s
   return APR_SUCCESS;
 }
 
+const char *
+svn_subr__win32_xlate_locale_encoding(apr_pool_t *pool)
+{
+  CPINFOEXW cpinfo = { 0 };
+
+  if (GetCPInfoExW(CP_THREAD_ACP, 0, &cpinfo))
+    {
+      DWORD codepage = cpinfo.CodePage;
+      if (codepage == CP_UTF8)
+        {
+          return "UTF-8";
+        }
+      else
+        {
+          return apr_psprintf(pool, "CP%u", (unsigned int)cpinfo.CodePage);
+        }
+    }
+  else
+    {
+      /* Fallback to apr_os_default_encoding() like
+       * apr_os_locale_encoding(). */
+      return apr_os_default_encoding(pool);
+    }
+}
+
 #else  /* !WIN32 */
 
 /* Silence OSX ranlib warnings about object files with no symbols. */

Modified: subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.h
==============================================================================
--- subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.h     Fri May 
22 17:17:47 2026        (r1934505)
+++ subversion/branches/1.15.x/subversion/libsvn_subr/win32_xlate.h     Fri May 
22 17:22:56 2026        (r1934506)
@@ -49,6 +49,9 @@ svn_subr__win32_xlate_to_stringbuf(svn_s
                                    svn_stringbuf_t **dest,
                                    apr_pool_t *pool);
 
+/* Windows specific implementation of svn_utf__locale_encoding(). */
+const char *svn_subr__win32_xlate_locale_encoding(apr_pool_t *pool);
+
 #endif /* WIN32 */
 
 #endif /* SVN_LIBSVN_SUBR_WIN32_XLATE_H */

Reply via email to