Author: rinrab
Date: Mon Jun 9 16:31:15 2025
New Revision: 1926293
URL: http://svn.apache.org/viewvc?rev=1926293&view=rev
Log:
Do not include apr_xlate.h into svn_utf.h, but manually wrap the
SVN_APR_*_CHARSET constants into APR_*_CHARSET.
* subversion/include/svn_utf.h
(includes): Remove apr_xlate.h.
(SVN_APR_LOCALE_CHARSET,
SVN_APR_DEFAULT_CHARSET): Define them like APR does instead of forwarding
straight to APR.
* subversion/libsvn_subr/utf.c
(get_apr_xlate_charset): New function that forwards SVN_APR_*_CHARSET into
APR_*_CHARSET or returns unchanged charset for APR xlate call;
(xlate_alloc_handle): Call get_apr_xlate_charset() for each codepage when
creating xlate handle.
No functional changes and no API changes.
Modified:
subversion/trunk/subversion/include/svn_utf.h
subversion/trunk/subversion/libsvn_subr/utf.c
Modified: subversion/trunk/subversion/include/svn_utf.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/svn_utf.h?rev=1926293&r1=1926292&r2=1926293&view=diff
==============================================================================
--- subversion/trunk/subversion/include/svn_utf.h (original)
+++ subversion/trunk/subversion/include/svn_utf.h Mon Jun 9 16:31:15 2025
@@ -33,7 +33,6 @@
#define SVN_UTF_H
#include <apr_pools.h>
-#include <apr_xlate.h> /* for APR_*_CHARSET */
#include "svn_types.h"
#include "svn_string.h"
@@ -42,8 +41,17 @@
extern "C" {
#endif /* __cplusplus */
-#define SVN_APR_LOCALE_CHARSET APR_LOCALE_CHARSET
-#define SVN_APR_DEFAULT_CHARSET APR_DEFAULT_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_LOCALE_CHARSET (const char *)0
+
+/**
+ * To indicate charset names of the current locale
+ */
+#define SVN_APR_DEFAULT_CHARSET (const char *)1
/**
* Initialize the UTF-8 encoding/decoding routines.
Modified: subversion/trunk/subversion/libsvn_subr/utf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/utf.c?rev=1926293&r1=1926292&r2=1926293&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/utf.c (original)
+++ subversion/trunk/subversion/libsvn_subr/utf.c Mon Jun 9 16:31:15 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
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.