"Anatoly Lyutin" vostok@etersoft.ru 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.