ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
* path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
ERROR_FILE_NOT_FOUND for the same reason.
2005-04-16 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_disk_file.cc (fhandler_base::utimes_fs): Ignore
+ ERROR_NOT_SUPPORTED to workaround Win9x weirdness.
+ * path.cc (symlink_info::check): Remap ERROR_INVALID_FUNTION to
+ ERROR_FILE_NOT_FOUND for the same reason.
+
+2005-04-16 Corinna Vinschen <corinna@vinschen.de>
Pierre Humblet <pierre.humblet@ieee.org>
* security.h (cygsidlist::addfromgr): Allow duplicate entries.
DWORD errcode = GetLastError ();
if (is_fs_special ())
SetFileAttributes (pc, pc);
- if (!res)
+ /* Opening a directory on a 9x share from a NT machine works(!), but
+ then the SetFileTimes fails with ERROR_NOT_SUPPORTED. Oh well... */
+ if (!res && errcode != ERROR_NOT_SUPPORTED)
{
close ();
__seterrno_from_win_error (errcode);
matter, so we just return 0. For example, getting the
attributes of \\HOST will typically fail. */
debug_printf ("GetFileAttributes (%s) failed", suffix.path);
- set_error (geterrno_from_win_error (GetLastError (), EACCES));
+
+ /* The above comment is not *quite* right. When calling
+ GetFileAttributes for a non-existant file an a Win9x share,
+ GetLastError returns ERROR_INVALID_FUNCTION. Go figure! */
+ DWORD win_error = GetLastError ();
+ if (win_error == ERROR_INVALID_FUNCTION)
+ win_error = ERROR_FILE_NOT_FOUND;
+ set_error (geterrno_from_win_error (win_error, EACCES));
continue;
}