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"