Austin Lund : shell32/tests: Fixed SHPathPrepareForWriteW tests on Asian platforms.

Alexandre Julliard julliard at winehq.org
Fri Dec 3 09:31:39 CST 2010


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

Author: Austin Lund <austin.lund at gmail.com>
Date:   Thu Dec  2 09:34:26 2010 +1000

shell32/tests: Fixed SHPathPrepareForWriteW tests on Asian platforms.

---

 dlls/shell32/tests/shlfileop.c |   15 ++++++++++++++-
 1 files changed, 14 insertions(+), 1 deletions(-)

diff --git a/dlls/shell32/tests/shlfileop.c b/dlls/shell32/tests/shlfileop.c
index 3e9a2e4..a58b4fd 100644
--- a/dlls/shell32/tests/shlfileop.c
+++ b/dlls/shell32/tests/shlfileop.c
@@ -2065,6 +2065,7 @@ static void test_sh_path_prepare(void)
     HRESULT res;
     CHAR path[MAX_PATH];
     CHAR UNICODE_PATH_A[MAX_PATH];
+    BOOL UsedDefaultChar;
 
     if(!pSHPathPrepareForWriteA)
     {
@@ -2156,7 +2157,19 @@ static void test_sh_path_prepare(void)
         win_skip("Skipping SHPathPrepareForWriteW tests\n");
         return;
     }
-    WideCharToMultiByte(CP_ACP, 0, UNICODE_PATH, -1, UNICODE_PATH_A, sizeof(UNICODE_PATH_A), NULL, NULL);
+
+    SetLastError(0xdeadbeef);
+    UsedDefaultChar = FALSE;
+    if (WideCharToMultiByte(CP_ACP, WC_NO_BEST_FIT_CHARS, UNICODE_PATH, -1, UNICODE_PATH_A, sizeof(UNICODE_PATH_A), NULL, &UsedDefaultChar) == 0)
+    {
+        win_skip("Could not convert Unicode path name to multibyte (%d)\n", GetLastError());
+        return;
+    }
+    if (UsedDefaultChar)
+    {
+        win_skip("Could not find unique multibyte representation for directory name using default codepage\n");
+        return;
+    }
 
     /* unicode directory doesn't exist, SHPPFW_NONE */
     RemoveDirectoryA(UNICODE_PATH_A);




More information about the wine-cvs mailing list