From: Corinna Vinschen Date: Wed, 7 Jan 2009 14:12:40 +0000 (+0000) Subject: * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if X-Git-Tag: sid-snapshot-20090201~52 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=3bee7767a8437f9e555791c0fa01d97cf48bc35b;p=newlib-cygwin.git * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if original file has .exe as well. * path.cc (path_conv::is_binary): Only recognize Windows 32 and 64 bit apps as binaries. --- diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c80307170..2faa2e514 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2009-01-07 Corinna Vinschen + + * fhandler_disk_file.cc (fhandler_disk_file::link): Only add .exe if + original file has .exe as well. + * path.cc (path_conv::is_binary): Only recognize Windows 32 and 64 bit + apps as binaries. + 2009-01-02 Christopher Faylor Remove unneeded header files from source files throughout. diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 15ad76fc0..2ad72b749 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -1153,6 +1153,8 @@ fhandler_disk_file::link (const char *newpath) } else if (!pc.isdir () && pc.is_binary () + && RtlEqualUnicodePathSuffix (pc.get_nt_native_path (), + L".exe", TRUE) && !RtlEqualUnicodePathSuffix (newpc.get_nt_native_path (), L".exe", TRUE)) { diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc index f44650a4a..da96cde01 100644 --- a/winsup/cygwin/path.cc +++ b/winsup/cygwin/path.cc @@ -1116,7 +1116,8 @@ path_conv::is_binary () PWCHAR bintest = tp.w_get (); DWORD bin; - return GetBinaryTypeW (get_wide_win32_path (bintest), &bin); + return GetBinaryTypeW (get_wide_win32_path (bintest), &bin) + && (bin == SCS_32BIT_BINARY || bin == SCS_64BIT_BINARY); } /* Normalize a Win32 path.