"Anatoly Lyutin" <[EMAIL PROTECTED]> wrote:

+ WCHAR PROG_FILES_DIR[MAX_PATH];

Looks like that this variable is not used anywhere.

 static DWORD (WINAPI *pGetLongPathNameA)(LPCSTR,LPSTR,DWORD);
 static DWORD (WINAPI *pGetLongPathNameW)(LPWSTR,LPWSTR,DWORD);
+static DWORD (WINAPI *pGetShortPathNameW)(LPWSTR,LPWSTR,DWORD);

I don't see where pGetShortPathNameW is initialized.

+    file = CreateFileW(short_path, GENERIC_READ|GENERIC_WRITE, 0,
+                      NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
+    ok(file != INVALID_HANDLE_VALUE, "File was not created.\n");
+    ret = WriteFile(file, "test", strlen("test"), NULL, NULL);
+    ok(ret, "Can not open file!!\n");

The error message in ok() is not correct.

+    CloseHandle(file);
+    ret = DeleteFileW(short_path);
+    ok(ret, "Can not delete file.\n");
+    GetTempPathW(MAX_PATH, path);
+    lstrcatW(path, src);
+    lstrcatW(path, backSlash);
+    ret = RemoveDirectoryW(path);

'path' at this point already contains what you need, calling GetTempPathW and
friends is not needed, and that would simplify the code a bit.

+static void test_GetShortPathNameW(void)
+{
+    WCHAR empty[MAX_PATH];
+    WCHAR pathE[] = {'p','a','t','h','t','e','s','t',0};
+ WCHAR pathRL[] = {0x0414,0x043B,0x0438,0x043D,0x043D,0x043E,0x0435,0x0418,0x043C,0x044F,0}; /* Long Russian name */
+    WCHAR pathRS[] = {0x0418,0x043C,0x044F,0}; /* Short Russian name */

Do you really need the test to use cyrillic characters? That won't work
if underlying unix locale is not russian regardless what you set the thread
locale to.

+    /* Not present in all windows versions */
+    if(pGetShortPathNameW)
+    {
+        SetLastError(0xdeadbeef);
+        length = pGetShortPathNameW(NULL,NULL,0);
+    if(GetLastError() == ERROR_CALL_NOT_IMPLEMENTED)
+    {
+        skip("GetShortPathNameW is not implemented\n");
+        return;
+    }

Indentation inside of 'if(pGetShortPathNameW)' is completely messed up.


--
Dmitry.


Reply via email to