You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by br...@apache.org on 2013/10/21 14:08:32 UTC

svn commit: r1534118 - in /subversion/trunk/subversion: bindings/javahl/native/ include/private/ libsvn_subr/

Author: brane
Date: Mon Oct 21 12:08:32 2013
New Revision: 1534118

URL: http://svn.apache.org/r1534118
Log:
Move the new Win32-specific UTF-8 <-> UTF-16 conversion functions
to the svn_utf namespace.

* subversion/include/private/svn_subr_private.h
  (svn_subr__win32_utf8_to_utf16, svn_subr__win32_utf16_to_utf8):
   Move prototypes from here to ...
* subversion/include/private/svn_utf_private.h
  (svn_utf__win32_utf8_to_utf16, svn_utf__win32_utf16_to_utf8): ... here.

* subversion/libsvn_subr/win32_xlate.c
  (svn_subr__win32_utf8_to_utf16, svn_subr__win32_utf16_to_utf8):
   Move implementation from here to ...
* subversion/libsvn_subr/utf.c
  (svn_utf__win32_utf8_to_utf16, svn_utf__win32_utf16_to_utf8): ... here.

* subversion/bindings/javahl/native/JNIUtil.cpp,
  subversion/libsvn_subr/cmdline.c,
  subversion/libsvn_subr/config_win.c,
  subversion/libsvn_subr/nls.c: Update uses.
  Include svn_utf_private.h instead of svn_subr_private.h for
  svn_utf__win32_utf8_to_utf16 and svn_utf__win32_utf16_to_utf8.

Modified:
    subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp
    subversion/trunk/subversion/include/private/svn_subr_private.h
    subversion/trunk/subversion/include/private/svn_utf_private.h
    subversion/trunk/subversion/libsvn_subr/cmdline.c
    subversion/trunk/subversion/libsvn_subr/config_win.c
    subversion/trunk/subversion/libsvn_subr/nls.c
    subversion/trunk/subversion/libsvn_subr/utf.c
    subversion/trunk/subversion/libsvn_subr/win32_xlate.c

Modified: subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/JNIUtil.cpp Mon Oct 21 12:08:32 2013
@@ -54,6 +54,7 @@
 #include "svn_path.h"
 #include "svn_cache_config.h"
 #include "private/svn_atomic.h"
+#include "private/svn_utf_private.h"
 #include "svn_private_config.h"
 
 #include "SVNBase.h"
@@ -312,7 +313,7 @@ bool JNIUtil::JNIGlobalInit(JNIEnv *env)
     HINSTANCE moduleHandle = GetModuleHandle("libsvnjavahl-1");
     GetModuleFileNameW(moduleHandle, ucs2_path,
                        sizeof(ucs2_path) / sizeof(ucs2_path[0]));
-    err = svn_subr__win32_utf16_to_utf8(&utf8_path, ucs2_path, pool);
+    err = svn_utf__win32_utf16_to_utf8(&utf8_path, ucs2_path, pool);
     if (err)
       {
         if (stderr)

Modified: subversion/trunk/subversion/include/private/svn_subr_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_subr_private.h?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_subr_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_subr_private.h Mon Oct 21 12:08:32 2013
@@ -474,27 +474,6 @@ void svn_config__set_read_only(svn_confi
 
 /** @} */
 
-#if defined(WIN32) || defined(DOXYGEN)
-/**
- * @defgroup svn_win32_private Private Windows-specific API
- * @{
- */
-
-/* On Windows: Convert the UTF-8 string SRC to UTF-16. */
-svn_error_t *
-svn_subr__win32_utf8_to_utf16(const WCHAR **result,
-                              const char *src,
-                              apr_pool_t *result_pool);
-
-/* On Windows: Convert the UTF-18 string SRC to UTF-8. */
-svn_error_t *
-svn_subr__win32_utf16_to_utf8(const char **result,
-                              const WCHAR *src,
-                              apr_pool_t *result_pool);
-
-/** @} */
-#endif /* WIN32 || DOXYGEN*/
-
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */

Modified: subversion/trunk/subversion/include/private/svn_utf_private.h
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_utf_private.h?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_utf_private.h (original)
+++ subversion/trunk/subversion/include/private/svn_utf_private.h Mon Oct 21 12:08:32 2013
@@ -93,6 +93,22 @@ svn_utf__cstring_from_utf8_fuzzy(const c
                                                const char *,
                                                apr_pool_t *));
 
+
+#if defined(WIN32)
+/* On Windows: Convert the UTF-8 string SRC to UTF-16. */
+svn_error_t *
+svn_utf__win32_utf8_to_utf16(const WCHAR **result,
+                             const char *src,
+                             apr_pool_t *result_pool);
+
+/* On Windows: Convert the UTF-18 string SRC to UTF-8. */
+svn_error_t *
+svn_utf__win32_utf16_to_utf8(const char **result,
+                             const WCHAR *src,
+                             apr_pool_t *result_pool);
+#endif /* WIN32*/
+
+
 /* A constant used for many length parameters in the utf8proc wrappers
  * to indicate that the length of a string is unknonw. */
 #define SVN_UTF__UNKNOWN_LENGTH ((apr_size_t) -1)

Modified: subversion/trunk/subversion/libsvn_subr/cmdline.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/cmdline.c?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/cmdline.c (original)
+++ subversion/trunk/subversion/libsvn_subr/cmdline.c Mon Oct 21 12:08:32 2013
@@ -65,7 +65,6 @@
 #include "private/svn_cmdline_private.h"
 #include "private/svn_utf_private.h"
 #include "private/svn_string_private.h"
-#include "private/svn_subr_private.h"
 
 #include "win32_crashrpt.h"
 
@@ -407,7 +406,7 @@ svn_cmdline_fputs(const char *string, FI
 
       SVN_ERR(svn_cmdline_fflush(stream)); /* Flush existing output */
 
-      SVN_ERR(svn_subr__win32_utf8_to_utf16(&result, string, pool));
+      SVN_ERR(svn_utf__win32_utf8_to_utf16(&result, string, pool));
 
       if (_cputws(result))
         {

Modified: subversion/trunk/subversion/libsvn_subr/config_win.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/config_win.c?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/config_win.c (original)
+++ subversion/trunk/subversion/libsvn_subr/config_win.c Mon Oct 21 12:08:32 2013
@@ -44,7 +44,7 @@
 #include "svn_path.h"
 #include "svn_pools.h"
 #include "svn_utf.h"
-#include "private/svn_subr_private.h"
+#include "private/svn_utf_private.h"
 
 svn_error_t *
 svn_config__win_config_path(const char **folder, int system_path,
@@ -65,8 +65,8 @@ svn_config__win_config_path(const char *
                            ? "Can't determine the system config path"
                            : "Can't determine the user's config path"));
 
-  return svn_error_trace(svn_subr__win32_utf16_to_utf8(folder, folder_ucs2,
-                                                       result_pool));
+  return svn_error_trace(svn_utf__win32_utf16_to_utf8(folder, folder_ucs2,
+                                                      result_pool));
 }
 
 

Modified: subversion/trunk/subversion/libsvn_subr/nls.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/nls.c?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/nls.c (original)
+++ subversion/trunk/subversion/libsvn_subr/nls.c Mon Oct 21 12:08:32 2013
@@ -37,7 +37,7 @@
 #include "svn_pools.h"
 #include "svn_path.h"
 
-#include "private/svn_subr_private.h"
+#include "private/svn_utf_private.h"
 
 #include "svn_private_config.h"
 
@@ -70,8 +70,8 @@ svn_nls_init(void)
         }
 
       if (! err)
-        err = svn_subr__win32_utf16_to_utf8(&utf8_path, ucs2_path,
-                                            scratch_pool);
+        err = svn_utf__win32_utf16_to_utf8(&utf8_path, ucs2_path,
+                                           scratch_pool);
 
       if (! err)
         {

Modified: subversion/trunk/subversion/libsvn_subr/utf.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/utf.c?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/utf.c (original)
+++ subversion/trunk/subversion/libsvn_subr/utf.c Mon Oct 21 12:08:32 2013
@@ -1020,3 +1020,74 @@ svn_utf_cstring_from_utf8_string(const c
 
   return err;
 }
+
+
+#ifdef WIN32
+
+
+svn_error_t *
+svn_utf__win32_utf8_to_utf16(const WCHAR **result,
+                             const char *src,
+                             apr_pool_t *result_pool)
+{
+  const int utf8_count = strlen(src);
+  WCHAR *wide_str;
+  int wide_count;
+
+  if (!utf8_count)
+    {
+      *result = L"";
+      return SVN_NO_ERROR;
+    }
+
+  wide_count = MultiByteToWideChar(CP_UTF8, 0, src, utf8_count, NULL, 0);
+  if (wide_count == 0)
+    return svn_error_wrap_apr(apr_get_os_error(),
+                              _("Conversion to UTF-16 failed"));
+
+  wide_str = apr_palloc(result_pool, (wide_count + 1) * sizeof(*wide_str));
+  if (0 == MultiByteToWideChar(CP_UTF8, 0, src, utf8_count,
+                               wide_str, wide_count))
+    return svn_error_wrap_apr(apr_get_os_error(),
+                              _("Conversion to UTF-16 failed"));
+
+  wide_str[wide_count] = 0;
+  *result = wide_str;
+
+  return SVN_NO_ERROR;
+}
+
+svn_error_t *
+svn_utf__win32_utf16_to_utf8(const char **result,
+                             const WCHAR *src,
+                             apr_pool_t *result_pool)
+{
+  const int wide_count = lstrlenW(src);
+  char *utf8_str;
+  int utf8_count;
+
+  if (!wide_count)
+    {
+      *result = "";
+      return SVN_NO_ERROR;
+    }
+
+  utf8_count = WideCharToMultiByte(CP_UTF8, 0, src, wide_count,
+                                   NULL, 0, NULL, FALSE);
+  if (utf8_count == 0)
+    return svn_error_wrap_apr(apr_get_os_error(),
+                              _("Conversion from UTF-16 failed"));
+
+  utf8_str = apr_palloc(result_pool, (utf8_count + 1) * sizeof(*utf8_str));
+  if (0 == WideCharToMultiByte(CP_UTF8, 0, src, wide_count,
+                               utf8_str, utf8_count, NULL, FALSE))
+    return svn_error_wrap_apr(apr_get_os_error(),
+                              _("Conversion from UTF-16 failed"));
+
+  utf8_str[utf8_count] = 0;
+  *result = utf8_str;
+
+  return SVN_NO_ERROR;
+}
+
+#endif /* WIN32 */

Modified: subversion/trunk/subversion/libsvn_subr/win32_xlate.c
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/win32_xlate.c?rev=1534118&r1=1534117&r2=1534118&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/win32_xlate.c (original)
+++ subversion/trunk/subversion/libsvn_subr/win32_xlate.c Mon Oct 21 12:08:32 2013
@@ -238,69 +238,4 @@ svn_subr__win32_xlate_to_stringbuf(win32
   return APR_SUCCESS;
 }
 
-svn_error_t *
-svn_subr__win32_utf8_to_utf16(const WCHAR **result,
-                              const char *src,
-                              apr_pool_t *result_pool)
-{
-  const int utf8_count = strlen(src);
-  WCHAR *wide_str;
-  int wide_count;
-
-  if (!utf8_count)
-    {
-      *result = L"";
-      return SVN_NO_ERROR;
-    }
-
-  wide_count = MultiByteToWideChar(CP_UTF8, 0, src, utf8_count, NULL, 0);
-  if (wide_count == 0)
-    return svn_error_wrap_apr(apr_get_os_error(),
-                              _("Conversion to UTF-16 failed"));
-
-  wide_str = apr_palloc(result_pool, (wide_count + 1) * sizeof(*wide_str));
-  if (0 == MultiByteToWideChar(CP_UTF8, 0, src, utf8_count,
-                               wide_str, wide_count))
-    return svn_error_wrap_apr(apr_get_os_error(),
-                              _("Conversion to UTF-16 failed"));
-
-  wide_str[wide_count] = 0;
-  *result = wide_str;
-
-  return SVN_NO_ERROR;
-}
-
-svn_error_t *
-svn_subr__win32_utf16_to_utf8(const char **result,
-                              const WCHAR *src,
-                              apr_pool_t *result_pool)
-{
-  const int wide_count = lstrlenW(src);
-  char *utf8_str;
-  int utf8_count;
-
-  if (!wide_count)
-    {
-      *result = "";
-      return SVN_NO_ERROR;
-    }
-
-  utf8_count = WideCharToMultiByte(CP_UTF8, 0, src, wide_count,
-                                   NULL, 0, NULL, FALSE);
-  if (utf8_count == 0)
-    return svn_error_wrap_apr(apr_get_os_error(),
-                              _("Conversion from UTF-16 failed"));
-
-  utf8_str = apr_palloc(result_pool, (utf8_count + 1) * sizeof(*utf8_str));
-  if (0 == WideCharToMultiByte(CP_UTF8, 0, src, wide_count,
-                               utf8_str, utf8_count, NULL, FALSE))
-    return svn_error_wrap_apr(apr_get_os_error(),
-                              _("Conversion from UTF-16 failed"));
-
-  utf8_str[utf8_count] = 0;
-  *result = utf8_str;
-
-  return SVN_NO_ERROR;
-}
-
 #endif /* WIN32 */