Alexandre Julliard : kernel32: On Mac OS, recompose the Unicode strings we get from the OS.

Alexandre Julliard julliard at winehq.org
Fri Feb 15 05:36:12 CST 2008


Module: wine
Branch: master
Commit: 58913b439b797462a70794774b87e63283109617
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=58913b439b797462a70794774b87e63283109617

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Fri Feb 15 12:07:56 2008 +0100

kernel32: On Mac OS, recompose the Unicode strings we get from the OS.

---

 dlls/kernel32/locale.c |    3 +++
 dlls/ntdll/rtlstr.c    |    5 ++++-
 2 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/dlls/kernel32/locale.c b/dlls/kernel32/locale.c
index a13c346..1130349 100644
--- a/dlls/kernel32/locale.c
+++ b/dlls/kernel32/locale.c
@@ -1830,6 +1830,9 @@ INT WINAPI MultiByteToWideChar( UINT page, DWORD flags, LPCSTR src, INT srclen,
             ret = wine_cp_mbstowcs( unix_cptable, flags, src, srclen, dst, dstlen );
             break;
         }
+#ifdef __APPLE__
+        flags |= MB_COMPOSITE;  /* work around broken Mac OS X filesystem that enforces decomposed Unicode */
+#endif
         /* fall through */
     case CP_UTF8:
         ret = wine_utf8_mbstowcs( flags, src, srclen, dst, dstlen );
diff --git a/dlls/ntdll/rtlstr.c b/dlls/ntdll/rtlstr.c
index ecd8523..deec931 100644
--- a/dlls/ntdll/rtlstr.c
+++ b/dlls/ntdll/rtlstr.c
@@ -64,7 +64,10 @@ void __wine_init_codepages( const union cptable *ansi, const union cptable *oem,
 }
 
 int ntdll_umbstowcs(DWORD flags, const char* src, int srclen, WCHAR* dst, int dstlen)
-{ 
+{
+#ifdef __APPLE__
+    flags |= MB_COMPOSITE;  /* work around broken Mac OS X filesystem that enforces decomposed Unicode */
+#endif
     return (unix_table) ?
         wine_cp_mbstowcs( unix_table, flags, src, srclen, dst, dstlen ) :
         wine_utf8_mbstowcs( flags, src, srclen, dst, dstlen );




More information about the wine-cvs mailing list