Jinoh Kang (@iamahuman) commented about dlls/kernel32/tests/file.c:
+ lstrcatA(dest, "\\hardlink"); + ret = CreateHardLinkA(dest, source, NULL); + ok(ret, "CreateHardLinkA: error %ld\n", GetLastError()); + dest[lstrlenA(dest) - 4] = 'L'; + ret = MoveFileA(source, dest); + ok(ret, "MoveFileA: error %ld\n", GetLastError()); + + hfile = FindFirstFileA(dest, &find_data); + ok(hfile != INVALID_HANDLE_VALUE, "FindFirstFileA: failed, error %ld\n", GetLastError()); + if (hfile != INVALID_HANDLE_VALUE) + { + todo_wine + ok(!lstrcmpA(strrchr(dest, '\\') + 1, find_data.cFileName), + "MoveFile failed to change casing on hardlink of itself: got %s\n", find_data.cFileName); + } + FindClose(hfile); (nit) I think `hFind` is better than `hfile` (which implies a file when it's not). Consistent with the above code, let's go with:
```suggestion:-8+0 hFind = FindFirstFileA(dest, &find_data); ok(hFind != INVALID_HANDLE_VALUE, "FindFirstFileA: failed, error %ld\n", GetLastError()); if (hFind != INVALID_HANDLE_VALUE) { todo_wine ok(!lstrcmpA(strrchr(dest, '\\') + 1, find_data.cFileName), "MoveFile failed to change casing on hardlink of itself: got %s\n", find_data.cFileName); } FindClose(hFind); ``` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6855#note_88728