Commit f333bf47 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

ntdll: Keep drive letter size in RtlGetFullPathName_U when full path is specified.

parent 7cda73e8
...@@ -625,7 +625,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size) ...@@ -625,7 +625,7 @@ static ULONG get_full_path_helper(LPCWSTR name, LPWSTR buffer, ULONG size)
case ABSOLUTE_DRIVE_PATH: /* c:\foo */ case ABSOLUTE_DRIVE_PATH: /* c:\foo */
reqsize = sizeof(WCHAR); reqsize = sizeof(WCHAR);
tmp[0] = toupperW(name[0]); tmp[0] = name[0];
ins_str = tmp; ins_str = tmp;
dep = 1; dep = 1;
mark = 3; mark = 3;
......
...@@ -265,7 +265,7 @@ static void test_RtlGetFullPathName_U(void) ...@@ -265,7 +265,7 @@ static void test_RtlGetFullPathName_U(void)
{ "c:/test/ .... .. ", "c:\\test\\", NULL}, { "c:/test/ .... .. ", "c:\\test\\", NULL},
{ "c:/test/..", "c:\\", NULL}, { "c:/test/..", "c:\\", NULL},
{ "c:/test/.. ", "c:\\test\\", NULL}, { "c:/test/.. ", "c:\\test\\", NULL},
{ "c:/TEST", "c:\\test", "test"}, { "c:/TEST", "c:\\TEST", "TEST"},
{ "c:/test/file", "c:\\test\\file", "file"}, { "c:/test/file", "c:\\test\\file", "file"},
{ "c:/test./file", "c:\\test\\file", "file"}, { "c:/test./file", "c:\\test\\file", "file"},
{ "c:/test.. /file", "c:\\test.. \\file","file"}, { "c:/test.. /file", "c:\\test.. \\file","file"},
...@@ -279,6 +279,7 @@ static void test_RtlGetFullPathName_U(void) ...@@ -279,6 +279,7 @@ static void test_RtlGetFullPathName_U(void)
{ "c:///test\\..\\file\\..\\//", "c:\\", NULL}, { "c:///test\\..\\file\\..\\//", "c:\\", NULL},
{ "c:/test../file", "c:\\test.\\file", "file", { "c:/test../file", "c:\\test.\\file", "file",
"c:\\test..\\file", "file"}, /* vista */ "c:\\test..\\file", "file"}, /* vista */
{ "c:\\test", "c:\\test", "test"},
{ NULL, NULL, NULL} { NULL, NULL, NULL}
}; };
...@@ -325,14 +326,14 @@ static void test_RtlGetFullPathName_U(void) ...@@ -325,14 +326,14 @@ static void test_RtlGetFullPathName_U(void)
"Wrong result %d/%d for \"%s\"\n", ret, len, test->path ); "Wrong result %d/%d for \"%s\"\n", ret, len, test->path );
ok(pRtlUnicodeToMultiByteN(rbufferA,MAX_PATH,&reslen,rbufferW,(lstrlenW(rbufferW) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS, ok(pRtlUnicodeToMultiByteN(rbufferA,MAX_PATH,&reslen,rbufferW,(lstrlenW(rbufferW) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS,
"RtlUnicodeToMultiByteN failed\n"); "RtlUnicodeToMultiByteN failed\n");
ok(!lstrcmpiA(rbufferA,test->rname) || (test->alt_rname && !lstrcmpiA(rbufferA,test->alt_rname)), ok(!lstrcmpA(rbufferA,test->rname) || (test->alt_rname && !lstrcmpA(rbufferA,test->alt_rname)),
"Got \"%s\" expected \"%s\"\n",rbufferA,test->rname); "Got \"%s\" expected \"%s\"\n",rbufferA,test->rname);
if (file_part) if (file_part)
{ {
ok(pRtlUnicodeToMultiByteN(rfileA,MAX_PATH,&reslen,file_part,(lstrlenW(file_part) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS, ok(pRtlUnicodeToMultiByteN(rfileA,MAX_PATH,&reslen,file_part,(lstrlenW(file_part) + 1) * sizeof(WCHAR)) == STATUS_SUCCESS,
"RtlUnicodeToMultiByteN failed\n"); "RtlUnicodeToMultiByteN failed\n");
ok((test->rfile && !lstrcmpiA(rfileA,test->rfile)) || ok((test->rfile && !lstrcmpA(rfileA,test->rfile)) ||
(test->alt_rfile && !lstrcmpiA(rfileA,test->alt_rfile)), (test->alt_rfile && !lstrcmpA(rfileA,test->alt_rfile)),
"Got \"%s\" expected \"%s\"\n",rfileA,test->rfile); "Got \"%s\" expected \"%s\"\n",rfileA,test->rfile);
} }
else else
......
...@@ -248,7 +248,7 @@ static void test_get_set(void) ...@@ -248,7 +248,7 @@ static void test_get_set(void)
strcpy(buffer,"garbage"); strcpy(buffer,"garbage");
r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH); r = IShellLinkA_GetPath(sl, buffer, sizeof(buffer), NULL, SLGP_RAWPATH);
ok(r==S_OK, "GetPath failed (0x%08x)\n", r); ok(r==S_OK, "GetPath failed (0x%08x)\n", r);
ok(!strcmp(buffer, "C:\\nonexistent\\file") || todo_wine ok(!strcmp(buffer, "C:\\nonexistent\\file") ||
broken(!strcmp(buffer, "C:\\\"c:\\nonexistent\\file\"")), /* NT4 */ broken(!strcmp(buffer, "C:\\\"c:\\nonexistent\\file\"")), /* NT4 */
"case doesn't match\n"); "case doesn't match\n");
......
...@@ -980,7 +980,7 @@ a d ...@@ -980,7 +980,7 @@ a d
a a
C r C r
foo bar baz foo bar baz
@todo_wine@c:\ c:\
------ skip option ------ skip option
c c
no output no output
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment