+2002-06-02 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_disk_file.cc (fhandler_disk_file::fstat_by_name): Check
+ specifically for non-existent file, first.
+ (fhandler_disk_file::fstat): Perform fd open on files with funny
+ characters.
+
2002-06-02 Christopher January <chris@atomice.net>
* fhandler_process.cc (fhandler_process::open): Set fileid.
HANDLE handle;
WIN32_FIND_DATA local;
- if ((handle = FindFirstFile (pc->get_win32 (), &local)) == INVALID_HANDLE_VALUE)
+ if (!pc->exists ())
+ {
+ set_errno (ENOENT);
+ res = -1;
+ }
+ else if ((handle = FindFirstFile (pc->get_win32 (), &local)) == INVALID_HANDLE_VALUE)
{
__seterrno ();
res = -1;
else
query_open_already = false;
- if (query_open_already && strncasematch (pc->volname (), "FAT", 3))
+ if (query_open_already && strncasematch (pc->volname (), "FAT", 3)
+ && !strpbrk (get_win32_name (), "?*|<>|"))
oret = 0;
else if (!(oret = open (pc, open_flags, 0)))
{