fix mingw stat() and lstat() implementations for handling symlinks
commit4581c450ca7cd3d533a5b34db90ff6b7c4026618
authorPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 17 Mar 2010 15:17:34 +0000 (17 15:17 +0000)
committerPat Thoyts <patthoyts@users.sourceforge.net>
Fri, 17 Sep 2010 09:30:15 +0000 (17 10:30 +0100)
tree7cef1c1a11e174a6088d9dc4f2bdad9d6e8205ed
parent8f1a3e626d4ed352f44ff6795ea010f090d4346a
fix mingw stat() and lstat() implementations for handling symlinks

In msysGit the stat() function has been implemented using mingw_lstat
which sets the st_mode member to S_IFLNK when a symbolic links is found.
This causes the is_executable function to return when git attempts to
build a list of available commands in the help code and we end up missing
most git commands. (msysGit issue #445)

This patch modifies the implementation so that lstat() will return the link
flag but if we are called as stat() we read the size of the target and set
the mode to that of a regular file.

Signed-off-by: Pat Thoyts <patthoyts@users.sourceforge.net>
compat/mingw.c
compat/mingw.h