cygwin: Remove the Win32 l/stat() implementation
Commitadbc0b6b("cygwin: Use native Win32 API for stat", 30-09-2008) added a Win32 specific implementation of the stat functions. In order to handle absolute paths, cygwin mount points and symbolic links, this implementation may fall back on the standard cygwin l/stat() functions. Also, the choice of cygwin or Win32 functions is made lazily (by the first call(s) to l/stat) based on the state of some config variables. Unfortunately, this "schizophrenic stat" implementation has been the source of many problems ever since. For example, see commits7faee6b8,79748439,452993c2,085479e7,b8a97333,924aaf3e,05bab3eaand0117c2f0. In order to avoid further problems, such as the issue raised by the new reference handling API, remove the Win32 l/stat() implementation. Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
001b0976af
commit
f66450ae94
5
help.c
5
help.c
@ -107,10 +107,7 @@ static int is_executable(const char *name)
|
||||
!S_ISREG(st.st_mode))
|
||||
return 0;
|
||||
|
||||
#if defined(GIT_WINDOWS_NATIVE) || defined(__CYGWIN__)
|
||||
#if defined(__CYGWIN__)
|
||||
if ((st.st_mode & S_IXUSR) == 0)
|
||||
#endif
|
||||
#if defined(GIT_WINDOWS_NATIVE)
|
||||
{ /* cannot trust the executable bit, peek into the file instead */
|
||||
char buf[3] = { 0 };
|
||||
int n;
|
||||
|
||||
Reference in New Issue
Block a user