* 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.
This commit is contained in:
Corinna Vinschen 2005-04-16 17:17:33 +00:00
parent 68a3f0d34a
commit 68401acd24
3 changed files with 18 additions and 2 deletions

View File

@ -1,3 +1,10 @@
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>

View File

@ -870,7 +870,9 @@ fhandler_base::utimes_fs (const struct timeval *tvp)
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);

View File

@ -3112,7 +3112,14 @@ symlink_info::check (char *path, const suffix_info *suffixes, unsigned opt)
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;
}