[PATCH 2/4] ntdll: If read_directory_getattrlist() finds that the file doesn't exist, return successful "no file" result to stop search.
Matteo Bruni
matteo.mystral at gmail.com
Wed May 20 14:38:57 CDT 2015
----
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index 0e5af8a..42e1842 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -2185,6 +2185,11 @@ static int read_directory_getattrlist( int fd,
IO_STATUS_BLOCK *io, void *buffer
}
else io->u.Status = STATUS_NO_MORE_FILES;
}
+ else if (errno == ENOENT || errno == ENOTDIR)
+ {
+ io->u.Status = STATUS_NO_MORE_FILES;
+ ret = 0;
+ }
}
else ret = -1;
----
Actually that's how my patch originally looked like
(http://source.winehq.org/patches/data/111375) but then I realized
that would break if the filesystem is case-sensitive, since it would
return the file as missing while it might be present with a different
name casing. I haven't actually tested it though.
More information about the wine-devel
mailing list