Author: rinrab
Date: Tue Jun 17 14:09:00 2025
New Revision: 1926502

URL: http://svn.apache.org/viewvc?rev=1926502&view=rev
Log:
On the 'utf8-cmdline-prototype' branch: sync with trunk

Added:
    subversion/branches/utf8-cmdline-prototype/build/cmake/extractor.cmake
      - copied unchanged from r1926501, 
subversion/trunk/build/cmake/extractor.cmake
Modified:
    subversion/branches/utf8-cmdline-prototype/   (props changed)
    subversion/branches/utf8-cmdline-prototype/.github/workflows/cmake.yml
    subversion/branches/utf8-cmdline-prototype/CMakeLists.txt
    subversion/branches/utf8-cmdline-prototype/build/cmake/FindAPR.cmake
    subversion/branches/utf8-cmdline-prototype/build/cmake/FindSerf.cmake
    subversion/branches/utf8-cmdline-prototype/build/generator/gen_cmake.py
    
subversion/branches/utf8-cmdline-prototype/build/generator/templates/targets.cmake.ezt
    subversion/branches/utf8-cmdline-prototype/configure.ac
    
subversion/branches/utf8-cmdline-prototype/subversion/include/private/svn_opt_private.h
    subversion/branches/utf8-cmdline-prototype/subversion/include/svn_utf.h
    subversion/branches/utf8-cmdline-prototype/subversion/libsvn_subr/utf.c
    subversion/branches/utf8-cmdline-prototype/subversion/svnserve/logger.c
    subversion/branches/utf8-cmdline-prototype/subversion/svnserve/serve.c
    subversion/branches/utf8-cmdline-prototype/subversion/svnserve/svnserve.c

Propchange: subversion/branches/utf8-cmdline-prototype/
------------------------------------------------------------------------------
  Merged /subversion/trunk:r1926278-1926501

Modified: subversion/branches/utf8-cmdline-prototype/.github/workflows/cmake.yml
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/.github/workflows/cmake.yml?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/.github/workflows/cmake.yml 
(original)
+++ subversion/branches/utf8-cmdline-prototype/.github/workflows/cmake.yml Tue 
Jun 17 14:09:00 2025
@@ -83,6 +83,11 @@ jobs:
               libdbus-1-dev
               qtbase5-dev
               libsecret-1-dev
+          - name: Mac OS
+            os: macos-latest
+            build_shared: ON
+            cmake_generator: Ninja
+            run_tests: true
 
     runs-on: ${{ matrix.os }}
     name: ${{ matrix.name }}
@@ -106,6 +111,11 @@ jobs:
         run: |
           # nothing yet
 
+      - name: Prepare Environment (Mac OS)
+        if: runner.os == 'macOS'
+        run: |
+          "CMAKE_PREFIX_PATH=/opt/homebrew/opt/subversion/libexec/serf"  >> 
$env:GITHUB_ENV
+
       - name: Export GitHub Actions cache environment variables
         if: runner.os == 'Windows'
         uses: actions/github-script@v7
@@ -138,6 +148,13 @@ jobs:
           ninja-build
           ${{ matrix.extra_packages }}
 
+      - name: Install dependencies (Mac OS, homebrew)
+        if: runner.os == 'macOS'
+        # hack to get serf installed, since there is no separate package.
+        run: >
+          brew install subversion
+          ${{ matrix.extra_packages }}
+
       - name: Use LF for Git checkout
         run: |
           git config --global core.autocrlf false

Modified: subversion/branches/utf8-cmdline-prototype/CMakeLists.txt
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/CMakeLists.txt?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/CMakeLists.txt (original)
+++ subversion/branches/utf8-cmdline-prototype/CMakeLists.txt Tue Jun 17 
14:09:00 2025
@@ -114,6 +114,10 @@ option(SVN_USE_DSO "Defined if svn shoul
 set(SVN_SOVERSION "0" CACHE STRING "Subversion library ABI version")
 mark_as_advanced(SVN_SOVERSION)
 
+# Check whether we have pkg-config executable or not; Silence any messages.
+find_package(PkgConfig QUIET)
+cmake_dependent_option(SVN_USE_PKG_CONFIG "Use pkg-config for the 
dependencies" ON "PKG_CONFIG_FOUND" OFF)
+
 # Dependecies
 option(SVN_USE_INTERNAL_LZ4 "Use internal version of lz4" ON)
 option(SVN_USE_INTERNAL_UTF8PROC "Use internal version of utf8proc" ON)
@@ -247,25 +251,63 @@ endif()
 
 list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake")
 
-### APR
+# Require pkg-config if we are going to use it, to show the `Found PkgConfig`
+# meassge and insure it has actually been found. (yea, this invokes the module
+# for second time, but we are guaranteed to from it to not perform actual look
+# for the path due to the cache. It's fine to include the same modules for
+# multiple times).
+if(SVN_USE_PKG_CONFIG)
+  find_package(PkgConfig REQUIRED)
+endif()
+
+### APR and APR-Util
+
+if(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(apr1 IMPORTED_TARGET apr-1)
 
-find_package(APR REQUIRED)
-add_library(external-apr ALIAS apr::apr)
+  if(apr1_FOUND)
+    # apr-1
+    add_library(external-apr ALIAS PkgConfig::apr1)
 
-### APR-Util
+    pkg_check_modules(aprutil-1 REQUIRED IMPORTED_TARGET apr-util-1)
+    add_library(external-aprutil ALIAS PkgConfig::aprutil-1)
+  else()
+    # apr-2
+    pkg_check_modules(apr2 REQUIRED IMPORTED_TARGET apr-2)
+    add_library(external-apr ALIAS PkgConfig::apr2)
+    add_library(external-aprutil ALIAS PkgConfig::apr2)
+  endif()
+else()
+  find_package(APR REQUIRED)
+  add_library(external-apr ALIAS apr::apr)
 
-find_package(APRUtil REQUIRED)
-add_library(external-aprutil ALIAS apr::aprutil)
+  if(APR_VERSION VERSION_LESS 2.0.0)
+    find_package(APRUtil REQUIRED)
+    add_library(external-aprutil ALIAS apr::aprutil)
+  else()
+    add_library(external-aprutil ALIAS apr::apr)
+  endif()
+endif()
 
 ### ZLIB
 
-find_package(ZLIB REQUIRED)
-add_library(external-zlib ALIAS ZLIB::ZLIB)
+if(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(zlib REQUIRED IMPORTED_TARGET zlib)
+  add_library(external-zlib ALIAS PkgConfig::zlib)
+else()
+  find_package(ZLIB REQUIRED)
+  add_library(external-zlib ALIAS ZLIB::ZLIB)
+endif()
 
 ### EXPAT
 
-find_package(EXPAT REQUIRED)
-add_library(external-xml ALIAS EXPAT::EXPAT)
+if(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(expat REQUIRED IMPORTED_TARGET expat)
+  add_library(external-xml ALIAS PkgConfig::expat)
+else()
+  find_package(EXPAT REQUIRED)
+  add_library(external-xml ALIAS EXPAT::EXPAT)
+endif()
 
 ### LZ4
 
@@ -277,6 +319,9 @@ if(SVN_USE_INTERNAL_LZ4)
     "subversion/libsvn_subr/lz4/lz4internal.h" lz4_VERSION
     LZ4_VERSION_MAJOR LZ4_VERSION_MINOR LZ4_VERSION_RELEASE
   )
+elseif(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(lz4 REQUIRED IMPORTED_TARGET liblz4)
+  add_library(external-lz4 ALIAS PkgConfig::lz4)
 else()
   find_package(lz4 CONFIG REQUIRED)
   add_library(external-lz4 ALIAS lz4::lz4)
@@ -292,6 +337,9 @@ if(SVN_USE_INTERNAL_UTF8PROC)
     "subversion/libsvn_subr/utf8proc/utf8proc_internal.h" UTF8PROC_VERSION
     UTF8PROC_VERSION_MAJOR UTF8PROC_VERSION_MINOR UTF8PROC_VERSION_PATCH
   )
+elseif(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(utf8proc REQUIRED IMPORTED_TARGET libutf8proc)
+  add_library(external-utf8proc ALIAS PkgConfig::utf8proc)
 else()
   find_package(UTF8PROC REQUIRED)
   add_library(external-utf8proc ALIAS UTF8PROC::UTF8PROC)
@@ -302,6 +350,9 @@ endif()
 if(SVN_SQLITE_USE_AMALGAMATION)
   find_package(SQLiteAmalgamation REQUIRED)
   add_library(external-sqlite ALIAS SQLite::SQLite3Amalgamation)
+elseif(SVN_USE_PKG_CONFIG)
+  pkg_check_modules(sqlite3 REQUIRED IMPORTED_TARGET sqlite3)
+  add_library(external-sqlite ALIAS PkgConfig::sqlite3)
 else()
   # It should be not required.
   find_package(SQLite3)
@@ -323,8 +374,21 @@ endif()
 
 ### Serf
 if (SVN_ENABLE_RA_SERF)
-  find_package(Serf REQUIRED)
-  add_library(external-serf ALIAS Serf::Serf)
+  if(SVN_USE_PKG_CONFIG)
+    pkg_check_modules(serf1 IMPORTED_TARGET serf-1)
+
+    if(serf1_FOUND)
+      # serf-1
+      add_library(external-serf ALIAS PkgConfig::serf1)
+    else()
+      # serf-2
+      pkg_check_modules(serf2 REQUIRED IMPORTED_TARGET serf-2)
+      add_library(external-serf ALIAS PkgConfig::serf2)
+    endif()
+  else()
+    find_package(Serf REQUIRED)
+    add_library(external-serf ALIAS Serf::Serf)
+  endif()
 endif()
 
 ### Python
@@ -373,9 +437,12 @@ endif()
 if(SVN_ENABLE_AUTH_GNOME_KEYRING)
   add_library(external-gnome-keyring INTERFACE)
 
-  find_package(PkgConfig REQUIRED)
-  pkg_check_modules(libsecret-1 REQUIRED IMPORTED_TARGET libsecret-1)
-  target_link_libraries(external-gnome-keyring INTERFACE 
PkgConfig::libsecret-1)
+  if(SVN_USE_PKG_CONFIG OR PKG_CONFIG_FOUND)
+    pkg_check_modules(libsecret-1 REQUIRED IMPORTED_TARGET libsecret-1)
+    target_link_libraries(external-gnome-keyring INTERFACE 
PkgConfig::libsecret-1)
+  else()
+    message(ERROR "GNOME Keyring requires pkg-config")
+  endif()
 
   add_private_config_definition(
     "Is libsecret support enabled?"
@@ -516,52 +583,22 @@ function(target_exports target_name)
     )
 
     set(def_file_path ${CMAKE_BINARY_DIR}/${target_name}.def)
+    set(headers)
 
-    # see build/generator/extractor.py
-    set(func_regex "(^|\n)((([A-Za-z0-9_]+|[*]) 
)+[*]?)?((svn|apr)_[A-Za-z0-9_]+)[ \t\r\n]*\\(")
-
-    set(defs)
     foreach(file ${ARGN})
-      file(READ ${file} contents)
-      string(REGEX MATCHALL "${func_regex}" funcs ${contents})
-
-      foreach(func_string ${funcs})
-        string(REGEX MATCH "[A-Za-z0-9_]+[ \t\r\n]*\\($" func_name 
${func_string})
-        string(REGEX REPLACE "[ \t\r\n]*\\($" "" func_name ${func_name})
-        list(APPEND defs "${func_name}")
-      endforeach()
-
-      get_filename_component(filename ${file} NAME)
-      if(${filename} STREQUAL "svn_ctype.h")
-        # See libsvn_subr/ctype.c for an explanation why we use CONSTANT and 
not
-        # DATA, even though it causes an LNK4087 warning!
-        list(APPEND defs "svn_ctype_table = svn_ctype_table_internal CONSTANT")
-      elseif(${filename} STREQUAL "svn_wc_private.h")
-        # svn_wc__internal_walk_children() is now internal to libsvn_wc
-        # but entries-dump.c still calls it
-        list(APPEND defs "svn_wc__internal_walk_children")
-      endif()
-    endforeach()
-
-    list(SORT defs)
-    list(REMOVE_DUPLICATES defs)
-
-    set(def_file_content "EXPORTS\n")
-    foreach(def ${defs})
-      list(FIND filter_names "${def}" skip)
-      if(skip LESS 0)
-        string(APPEND def_file_content "${def}\n")
-      endif()
+      list(APPEND headers "${CMAKE_CURRENT_SOURCE_DIR}/${file}")
     endforeach()
 
-    if(EXISTS "${def_file_path}")
-      file(READ "${def_file_path}" old_file_content)
-    else()
-      set(old_file_content "NOT_EXISTS")
-    endif()
-    if(NOT ${old_file_content} STREQUAL ${def_file_content})
-      file(WRITE "${def_file_path}" ${def_file_content})
-    endif()
+    add_custom_command(
+      OUTPUT "${def_file_path}"
+      DEPENDS ${headers}
+      COMMAND ${CMAKE_COMMAND}
+              "-DEXPORT_HEADER_FILE_PATHS=${headers}"
+              "-DEXPORT_DEF_FILE_PATH=${def_file_path}"
+              "-DEXPORT_BLACKLIST=${filter_names}"
+              -P "${CMAKE_CURRENT_SOURCE_DIR}/build/cmake/extractor.cmake"
+      WORKING_DIRECTORY "${SERF_SOURCE_DIR}"
+    )
 
     target_sources("${target_name}" PRIVATE "${def_file_path}")
   endif()
@@ -724,6 +761,13 @@ if(SVN_ENABLE_NLS)
     "ENABLE_NLS" "1"
   )
 
+  if (NOT WIN32)
+    add_private_config_definition(
+      "Defined to be the path to the installed locale dirs"
+      "SVN_LOCALE_DIR" "\"${CMAKE_INSTALL_PREFIX}/share/locale\""
+    )
+  endif()
+
   add_custom_target(locale ALL)
 
   file(GLOB SVN_PO_FILES "subversion/po/*.po")
@@ -915,6 +959,7 @@ message(STATUS "  Build type ...........
 message(STATUS "    Build shared libraries ........ : ${BUILD_SHARED_LIBS}")
 message(STATUS "    Build shared FS Modues ........ : ${SVN_BUILD_SHARED_FS}")
 message(STATUS "    Build shared RA Modues ........ : ${SVN_BUILD_SHARED_RA}")
+message(STATUS "    Use pkg-config dependencies ... : ${SVN_USE_PKG_CONFIG}")
 message(STATUS "  FS modules:")
 message(STATUS "    Enable FSFS ................... : ${SVN_ENABLE_FS_FS}")
 message(STATUS "    Enable FSX .................... : ${SVN_ENABLE_FS_X}")

Modified: subversion/branches/utf8-cmdline-prototype/build/cmake/FindAPR.cmake
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/build/cmake/FindAPR.cmake?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/build/cmake/FindAPR.cmake 
(original)
+++ subversion/branches/utf8-cmdline-prototype/build/cmake/FindAPR.cmake Tue 
Jun 17 14:09:00 2025
@@ -25,20 +25,40 @@ find_path(APR_INCLUDE_DIR
     include
     include/apr-1
     include/apr-1.0
+    include/apr-2
+    include/apr-2.0
 )
 
+if (APR_INCLUDE_DIR AND EXISTS ${APR_INCLUDE_DIR}/apr_version.h)
+  file(
+    STRINGS "${APR_INCLUDE_DIR}/apr_version.h" VERSION_STRINGS
+    REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)"
+  )
+
+  string(REGEX REPLACE ".*APR_MAJOR_VERSION +([0-9]+).*" "\\1" 
APR_MAJOR_VERSION ${VERSION_STRINGS})
+  string(REGEX REPLACE ".*APR_MINOR_VERSION +([0-9]+).*" "\\1" 
APR_MINOR_VERSION ${VERSION_STRINGS})
+  string(REGEX REPLACE ".*APR_PATCH_VERSION +([0-9]+).*" "\\1" 
APR_PATCH_VERSION ${VERSION_STRINGS})
+else()
+  # Default version to 1.0.0 if not found.
+  set(APR_MAJOR_VERSION 1)
+  set(APR_MINOR_VERSION 0)
+  set(APR_PATCH_VERSION 0)
+endif()
+
+set(APR_VERSION 
"${APR_MAJOR_VERSION}.${APR_MINOR_VERSION}.${APR_PATCH_VERSION}")
+
 find_library(APR_LIBRARY_SHARED
-  NAMES libapr-1
+  NAMES libapr-${APR_MAJOR_VERSION}
   PATH_SUFFIXES lib
 )
 
 find_library(APR_LIBRARY_STATIC
-  NAMES apr-1
+  NAMES apr-${APR_MAJOR_VERSION}
   PATH_SUFFIXES lib
 )
 
 find_file(APR_DLL
-  NAMES libapr-1.dll
+  NAMES libapr-${APR_MAJOR_VERSION}.dll
   PATH_SUFFIXES bin
 )
 
@@ -55,19 +75,6 @@ elseif(APR_LIBRARY_STATIC)
   set(APR_LIBRARY ${APR_LIBRARY_STATIC})
 endif()
 
-if (APR_INCLUDE_DIR AND EXISTS ${APR_INCLUDE_DIR}/apr_version.h)
-  file(
-    STRINGS "${APR_INCLUDE_DIR}/apr_version.h" VERSION_STRINGS
-    REGEX "#define (APR_MAJOR_VERSION|APR_MINOR_VERSION|APR_PATCH_VERSION)"
-  )
-
-  string(REGEX REPLACE ".*APR_MAJOR_VERSION +([0-9]+).*" "\\1" 
APR_MAJOR_VERSION ${VERSION_STRINGS})
-  string(REGEX REPLACE ".*APR_MINOR_VERSION +([0-9]+).*" "\\1" 
APR_MINOR_VERSION ${VERSION_STRINGS})
-  string(REGEX REPLACE ".*APR_PATCH_VERSION +([0-9]+).*" "\\1" 
APR_PATCH_VERSION ${VERSION_STRINGS})
-
-  set(APR_VERSION 
"${APR_MAJOR_VERSION}.${APR_MINOR_VERSION}.${APR_PATCH_VERSION}")
-endif()
-
 include(FindPackageHandleStandardArgs)
 
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(

Modified: subversion/branches/utf8-cmdline-prototype/build/cmake/FindSerf.cmake
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/build/cmake/FindSerf.cmake?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/build/cmake/FindSerf.cmake 
(original)
+++ subversion/branches/utf8-cmdline-prototype/build/cmake/FindSerf.cmake Tue 
Jun 17 14:09:00 2025
@@ -77,16 +77,19 @@ set_target_properties(Serf::Serf PROPERT
 
 find_package(OpenSSL REQUIRED)
 find_package(APR REQUIRED)
-find_package(APRUtil REQUIRED)
 find_package(ZLIB REQUIRED)
 
 target_link_libraries(Serf::Serf INTERFACE
   apr::apr
-  apr::aprutil
   OpenSSL::SSL
   ZLIB::ZLIB
 )
 
+if(APR_VERSION VERSION_LESS 2.0.0)
+  find_package(APRUtil REQUIRED)
+  target_link_libraries(Serf::Serf INTERFACE apr::aprutil)
+endif()
+
 if (WIN32)
   target_link_libraries(Serf::Serf INTERFACE
     crypt32.lib

Modified: 
subversion/branches/utf8-cmdline-prototype/build/generator/gen_cmake.py
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/build/generator/gen_cmake.py?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/build/generator/gen_cmake.py 
(original)
+++ subversion/branches/utf8-cmdline-prototype/build/generator/gen_cmake.py Tue 
Jun 17 14:09:00 2025
@@ -146,7 +146,8 @@ class Generator(gen_base.GeneratorBase):
           msvc_export.append("subversion/include/" + export)
 
       sources = []
-      libs = []
+      private_libs = []
+      public_libs = []
 
       for dep in self.get_dependencies(target.name):
         enable_condition += get_target_conditions(dep)
@@ -157,9 +158,9 @@ class Generator(gen_base.GeneratorBase):
         elif isinstance(dep, gen_base.TargetLinked):
           if dep.external_lib:
             if dep.name == "ra-libs":
-              libs.append("ra-libs")
+              private_libs.append("ra-libs")
             elif dep.name == "fs-libs":
-              libs.append("fs-libs")
+              private_libs.append("fs-libs")
             elif dep.name in ["apriconv",
                               "apr_memcache",
                               "magic",
@@ -170,9 +171,17 @@ class Generator(gen_base.GeneratorBase):
               # TODO:
               pass
             else:
-              libs.append("external-" + dep.name)
+              dep_name = "external-" + dep.name
+
+              # APR and APR-Util are part of our public interface and should be
+              # declared PUBLIC in library target dependencies.
+              if (dep_name in ["external-apr", "external-aprutil"]
+                  and not isinstance(target, gen_base.TargetExe)):
+                public_libs.append(dep_name)
+              else:
+                private_libs.append(dep_name)
           else:
-            libs.append(dep.name)
+            private_libs.append(dep.name)
         elif isinstance(dep, gen_base.ObjectFile):
           for source in self.graph.get_sources(gen_base.DT_OBJECT, dep,
                                                gen_base.SourceFile):
@@ -212,7 +221,9 @@ class Generator(gen_base.GeneratorBase):
           output_name = get_output_name(target),
           type = target_type,
           sources = sources,
-          libs = libs,
+          libs = public_libs + private_libs,
+          public_libs = public_libs,
+          private_libs = private_libs,
           msvc_libs = msvc_libs,
           msvc_objects = msvc_objects,
           msvc_export = msvc_export,

Modified: 
subversion/branches/utf8-cmdline-prototype/build/generator/templates/targets.cmake.ezt
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/build/generator/templates/targets.cmake.ezt?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- 
subversion/branches/utf8-cmdline-prototype/build/generator/templates/targets.cmake.ezt
 (original)
+++ 
subversion/branches/utf8-cmdline-prototype/build/generator/templates/targets.cmake.ezt
 Tue Jun 17 14:09:00 2025
@@ -69,9 +69,12 @@ if ([targets.enable_condition])[is targe
     WORKING_DIRECTORY $<TARGET_FILE_DIR:[targets.name]>
   )
   set_tests_properties([targets.namespace].[targets.name] PROPERTIES 
ENVIRONMENT LD_LIBRARY_PATH=$<TARGET_FILE_DIR:[targets.name]>)
-  [end]target_link_libraries([targets.name] PRIVATE[for targets.libs]
-    [targets.libs][end]
-  )[if-any targets.msvc_libs]
+  [end][if-any targets.public_libs]target_link_libraries([targets.name] 
PUBLIC[for targets.public_libs]
+    [targets.public_libs][end]
+  )
+  [end][if-any targets.private_libs]target_link_libraries([targets.name] 
PRIVATE[for targets.private_libs]
+    [targets.private_libs][end]
+  )[end][if-any targets.msvc_libs]
   if (WIN32)
     target_link_libraries([targets.name] PRIVATE[for targets.msvc_libs] 
[targets.msvc_libs][end])
   endif()[end][if-any targets.msvc_objects]

Modified: subversion/branches/utf8-cmdline-prototype/configure.ac
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/configure.ac?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/configure.ac (original)
+++ subversion/branches/utf8-cmdline-prototype/configure.ac Tue Jun 17 14:09:00 
2025
@@ -1868,12 +1868,7 @@ AC_DEFINE_UNQUOTED([SVN_BUILD_TARGET], "
 AC_OUTPUT
 
 # ==== Generate the .clangd file =============================================
-if test "x$svn_dot_clangdcc_contents$svn_dot_clangdxx_contents" = "x" ; then
-   if test -f "$svn_dot_clangd_file"; then
-      AC_MSG_NOTICE([Removing $svn_dot_clangd_file])
-      rm -f "$svn_dot_clangd_file"
-   fi
-else
+if test "x$svn_dot_clangdcc_contents$svn_dot_clangdxx_contents" != "x" ; then
   AC_MSG_NOTICE([Writing $svn_dot_clangd_file])
   echo "$svn_dot_clangdcc_contents" > "$svn_dot_clangd_file"
   echo "$svn_dot_clangdxx_contents" >> "$svn_dot_clangd_file"

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/include/private/svn_opt_private.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/include/private/svn_opt_private.h?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- 
subversion/branches/utf8-cmdline-prototype/subversion/include/private/svn_opt_private.h
 (original)
+++ 
subversion/branches/utf8-cmdline-prototype/subversion/include/private/svn_opt_private.h
 Tue Jun 17 14:09:00 2025
@@ -90,7 +90,7 @@ svn_opt__arg_canonicalize_path(const cha
                                apr_pool_t *pool);
 
 /*
- * Processes arguments from from @a utf8_input_targets into @a targets_p.
+ * Processes arguments from @a utf8_input_targets into @a targets_p.
  *
  * On each URL target, do some IRI-to-URI encoding and some
  * auto-escaping.  On each local path, canonicalize case and path

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/include/svn_utf.h
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/include/svn_utf.h?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/subversion/include/svn_utf.h 
(original)
+++ subversion/branches/utf8-cmdline-prototype/subversion/include/svn_utf.h Tue 
Jun 17 14:09:00 2025
@@ -42,10 +42,19 @@
 extern "C" {
 #endif /* __cplusplus */
 
-#define SVN_APR_LOCALE_CHARSET APR_LOCALE_CHARSET
+/**
+  * Indicates the charset of the sourcecode at compile time names.  This is
+  * useful if there are literal strings in the source code which must
+  * be translated according to the charset of the source code.
+  */
 #define SVN_APR_DEFAULT_CHARSET APR_DEFAULT_CHARSET
 
 /**
+ * To indicate charset names of the current locale
+ */
+#define SVN_APR_LOCALE_CHARSET APR_LOCALE_CHARSET
+
+  /**
  * Initialize the UTF-8 encoding/decoding routines.
  * Allocate cached translation handles in a subpool of @a pool.
  *

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/libsvn_subr/utf.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/libsvn_subr/utf.c?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/subversion/libsvn_subr/utf.c 
(original)
+++ subversion/branches/utf8-cmdline-prototype/subversion/libsvn_subr/utf.c Tue 
Jun 17 14:09:00 2025
@@ -199,6 +199,17 @@ atomic_swap(void * volatile * mem, void
 #endif
 }
 
+static const char *
+get_apr_xlate_charset(const char *charset)
+{
+  if (charset == SVN_APR_DEFAULT_CHARSET)
+    return APR_DEFAULT_CHARSET;
+  else if (charset == SVN_APR_LOCALE_CHARSET)
+    return APR_LOCALE_CHARSET;
+  else
+    return charset;
+}
+
 /* Set *RET to a newly created handle node for converting from FROMPAGE
    to TOPAGE, If apr_xlate_open() returns APR_EINVAL or APR_ENOTIMPL, set
    (*RET)->handle to NULL.  If fail for any other reason, return the error.
@@ -225,7 +236,10 @@ xlate_alloc_handle(xlate_handle_node_t *
                                        frompage, pool);
   name = "win32-xlate: ";
 #else
-  apr_err = apr_xlate_open(&handle, topage, frompage, pool);
+  apr_err = apr_xlate_open(&handle,
+                           get_apr_xlate_charset(topage),
+                           get_apr_xlate_charset(frompage),
+                           pool);
   name = "APR: ";
 #endif
 

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/svnserve/logger.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/svnserve/logger.c?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/subversion/svnserve/logger.c 
(original)
+++ subversion/branches/utf8-cmdline-prototype/subversion/svnserve/logger.c Tue 
Jun 17 14:09:00 2025
@@ -38,6 +38,8 @@
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>   /* For getpid() */
+#elif WIN32
+#include <process.h>  /* For getpid() */
 #endif
 
 struct logger_t

Modified: subversion/branches/utf8-cmdline-prototype/subversion/svnserve/serve.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/svnserve/serve.c?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/subversion/svnserve/serve.c 
(original)
+++ subversion/branches/utf8-cmdline-prototype/subversion/svnserve/serve.c Tue 
Jun 17 14:09:00 2025
@@ -58,6 +58,8 @@
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>   /* For getpid() */
+#elif WIN32
+#include <process.h>  /* For getpid() */
 #endif
 
 #include "server.h"

Modified: 
subversion/branches/utf8-cmdline-prototype/subversion/svnserve/svnserve.c
URL: 
http://svn.apache.org/viewvc/subversion/branches/utf8-cmdline-prototype/subversion/svnserve/svnserve.c?rev=1926502&r1=1926501&r2=1926502&view=diff
==============================================================================
--- subversion/branches/utf8-cmdline-prototype/subversion/svnserve/svnserve.c 
(original)
+++ subversion/branches/utf8-cmdline-prototype/subversion/svnserve/svnserve.c 
Tue Jun 17 14:09:00 2025
@@ -66,6 +66,8 @@
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>   /* For getpid() */
+#elif WIN32
+#include <process.h>  /* For getpid() */
 #endif
 
 #include "server.h"


Reply via email to