From 23400eab5bfcd24eabfcba4a17584f61d48aedb3 Mon Sep 17 00:00:00 2001 From: corinna Date: Wed, 7 Jan 2009 14:12:39 +0000 Subject: [PATCH] * 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. --- winsup/cygwin/ChangeLog | 7 +++++++ winsup/cygwin/fhandler_disk_file.cc | 2 ++ winsup/cygwin/path.cc | 3 ++- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index c80307170a..2faa2e5147 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 15ad76fc07..2ad72b749c 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 f44650a4a9..da96cde013 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. -- 2.11.0