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"
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.