diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 9eecb64ac..cf58c1c65 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,7 @@ +2008-07-02 Corinna Vinschen + + * path.cc (path_conv::is_binary): Fix test. Add comment. + 2008-06-24 Corinna Vinschen * net.cc (cygwin_bindresvport_sa): Fix usage of last_used_bindresvport. diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index 0eeee8cd8..c69f9d88e 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1314,9 +1314,11 @@ 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 - && RtlEqualUnicodePathSuffix (get_nt_native_path (), L".exe", TRUE) - && GetBinaryTypeW (get_wide_win32_path (bintest), &bin); + || GetBinaryTypeW (get_wide_win32_path (bintest), &bin); } /* Normalize a Win32 path.