OSDN Git Service

* path.cc (path_conv::is_binary): Always check for GetBinaryType.
authorcorinna <corinna>
Thu, 9 Oct 2008 09:43:02 +0000 (09:43 +0000)
committercorinna <corinna>
Thu, 9 Oct 2008 09:43:02 +0000 (09:43 +0000)
* syscalls.cc (rename): Fix test for just changing case of name on
case insensitive filesystems.

winsup/cygwin/ChangeLog
winsup/cygwin/path.cc
winsup/cygwin/syscalls.cc

index 0c8e76e..3093264 100644 (file)
@@ -1,5 +1,11 @@
 2008-10-09  Corinna Vinschen  <corinna@vinschen.de>
 
+       * path.cc (path_conv::is_binary): Always check for GetBinaryType.
+       * syscalls.cc (rename): Fix test for just changing case of name on
+       case insensitive filesystems.
+
+2008-10-09  Corinna Vinschen  <corinna@vinschen.de>
+
        * path.cc (symlink_info::check_shortcut): Don't check for executability
        here.
        (symlink_info::check_sysfile): Ditto.
index 47513ae..9b85a93 100644 (file)
@@ -1299,11 +1299,8 @@ path_conv::is_binary ()
   tmp_pathbuf tp;
   PWCHAR bintest = tp.w_get ();
   DWORD bin;
-  /* Do NOT check for .exe suffix, otherwise rename(2) misbehaves
-     when renaming files to existing executables with omitted suffix.
-     strip(1) is a candidate uncovering wrong behaviour here. */
-  return exec_state () == is_executable
-        || GetBinaryTypeW (get_wide_win32_path (bintest), &bin);
+
+  return GetBinaryTypeW (get_wide_win32_path (bintest), &bin);
 }
 
 /* Normalize a Win32 path.
index 1bbf570..68bfa93 100644 (file)
@@ -1608,7 +1608,8 @@ rename (const char *oldpath, const char *newpath)
      just a request to change the case of the filename.  By simply setting
      the file attributes to INVALID_FILE_ATTRIBUTES (which translates to
      "file doesn't exist"), all later tests are skipped. */
-  if (oldpc.objcaseinsensitive () && newpc.exists () && equal_path)
+  if (oldpc.objcaseinsensitive () && newpc.exists () && equal_path
+      && old_explicit_suffix == new_explicit_suffix)
     {
       if (RtlEqualUnicodeString (oldpc.get_nt_native_path (),
                                 newpc.get_nt_native_path (),