From: Elizabeth Figura zfigura@codeweavers.com
--- dlls/ntdll/tests/file.c | 13 +++++-------- dlls/ntdll/unix/file.c | 1 + 2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/dlls/ntdll/tests/file.c b/dlls/ntdll/tests/file.c index ac7a0dcf3db..87b5ca6a16c 100644 --- a/dlls/ntdll/tests/file.c +++ b/dlls/ntdll/tests/file.c @@ -6375,14 +6375,11 @@ static void test_reparse_points(void)
swprintf( path, ARRAY_SIZE(path), L"%s/testreparse_dirlink", temp_path ); find_handle = FindFirstFileW( path, &find_data ); - todo_wine ok( find_handle != INVALID_HANDLE_VALUE, "got error %lu\n", GetLastError() ); - if (find_handle != INVALID_HANDLE_VALUE) - { - todo_wine ok( find_data.dwFileAttributes == (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_REPARSE_POINT), - "got attributes %#lx\n", find_data.dwFileAttributes ); - todo_wine ok( find_data.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT, "got tag %#lx\n", find_data.dwReserved0 ); - FindClose( find_handle ); - } + ok( find_handle != INVALID_HANDLE_VALUE, "got error %lu\n", GetLastError() ); + todo_wine ok( find_data.dwFileAttributes == (FILE_ATTRIBUTE_DIRECTORY | FILE_ATTRIBUTE_REPARSE_POINT), + "got attributes %#lx\n", find_data.dwFileAttributes ); + todo_wine ok( find_data.dwReserved0 == IO_REPARSE_TAG_MOUNT_POINT, "got tag %#lx\n", find_data.dwReserved0 ); + FindClose( find_handle );
/* Test using the reparse point as a parent. * On some machines this returns STATUS_REPARSE_POINT_NOT_RESOLVED (which diff --git a/dlls/ntdll/unix/file.c b/dlls/ntdll/unix/file.c index 23c181650ed..114ca7679aa 100644 --- a/dlls/ntdll/unix/file.c +++ b/dlls/ntdll/unix/file.c @@ -1591,6 +1591,7 @@ static BOOL append_entry( struct dir_data *data, const char *long_name,
long_len = ntdll_umbstowcs( long_name, strlen(long_name), long_nameW, ARRAY_SIZE(long_nameW) ); if (long_len == ARRAY_SIZE(long_nameW)) return TRUE; + if (long_nameW[long_len - 1] == '?') --long_len; long_nameW[long_len] = 0;
if (short_name)