Paul Vriens wrote:
Nicolas Le Cam wrote:
2009/7/24 Paul Vriens paul.vriens.wine@gmail.com:
Nicolas Le Cam wrote:
2009/7/24 Paul Vriens paul.vriens.wine@gmail.com:
Hi Alexandre,
This one introduced a test failure on several W2K, XP and W2K3 boxes. No idea why (yet) though.
-- Cheers,
Paul.
Hi Paul, Alexandre,
It seems to only be a short vs long pathname problem.
But where? There doesn't seem to be much difference in the tmpdir variable before or after this patch (both short pathname, with the one after the patch being slightly longer of course).
-- Cheers,
Paul.
I will have a look at it this evening as one of the failing boxes is mine. Perhaps GetTempFileName is now returning a short path to not override MAX_PATH characters.
My W2K fails as well, so I'm able to test something.
From test.winehq.org one can see that this test only seems to fail for boxes with a TMP/TEMP variable that's converted to a short notation (see the kernel32/path tests for that).
Adding a "GetLongPathName(filename, filename, MAX_PATH);" hack just before the failing test fixes the failure.
So, for some reason this test now fails whereas before it would succeed and the differences between before and after the patch are not that big.
Looks like there is a behavior changes somewhere when double backslashes are involved.
This fixes the issue on my W2K box:
diff --git a/dlls/shell32/tests/shlexec.c b/dlls/shell32/tests/shlexec.c index 5f0776a..0b06154 100644 --- a/dlls/shell32/tests/shlexec.c +++ b/dlls/shell32/tests/shlexec.c @@ -1527,6 +1527,7 @@ static void init_test(void) DeleteFileA( tmpdir ); rc = CreateDirectoryA( tmpdir, NULL ); ok( rc, "failed to create %s err %u\n", tmpdir, GetLastError() ); + lstrcatA(tmpdir, "\"); rc = GetTempFileNameA(tmpdir, "wt", 0, child_file); assert(rc != 0); init_event(child_file);
This is not a fix as it will introduce the issue with the double backslashes on Win95 again.