Hi Sven,
On 10/18/19 10:07 PM, Sven Baars wrote:
--- a/dlls/msvcp140/tests/msvcp140.c +++ b/dlls/msvcp140/tests/msvcp140.c @@ -1400,7 +1400,7 @@ static void test_Equivalent(void) { f1W, NULL, 0 }, { f1W, wine_test_dirW, 0 }, { wine_test_dirW, f1W, 0 },
{ wine_test_dirW, wine_test_dirW, -1 },
{ wine_test_dirW, wine_test_dirW, 1 },
This change breaks the tests on some versions of msvcp140. Please mark the old behavior as broken.
+/* _Equivalent, msvcp140 version */ +int __cdecl _Equivalent(WCHAR const* path1, WCHAR const* path2) +{
- HANDLE h1, h2;
- int ret;
- BY_HANDLE_FILE_INFORMATION info1, info2;
- TRACE("(%s %s)\n", debugstr_w(path1), debugstr_w(path2));
- h1 = CreateFileW(path1, 0, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
- h2 = CreateFileW(path2, 0, FILE_SHARE_DELETE | FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, 0);
- if(h1 == INVALID_HANDLE_VALUE) {
if(h2 == INVALID_HANDLE_VALUE) {
return -1;
}else {
CloseHandle(h2);
return 0;
}
- }else if(h2 == INVALID_HANDLE_VALUE) {
CloseHandle(h1);
return 0;
- }
- ret = GetFileInformationByHandle(h1, &info1) && GetFileInformationByHandle(h2, &info2);
- CloseHandle(h1);
- CloseHandle(h2);
- if(!ret)
return -1;
- return (info1.dwVolumeSerialNumber == info2.dwVolumeSerialNumber
&& info1.nFileIndexHigh == info2.nFileIndexHigh
&& info1.nFileIndexLow == info2.nFileIndexLow
);
+}
Please add a helper function instead of duplicating the implementation.
Thanks, Piotr