* 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:
		@@ -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>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -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);
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user