fix mingw stat() and lstat() implementations for handling symlinks
commit3a8fc9256d6fe6ed824c39e3b475b87dac9dc0fe
authorPat Thoyts <patthoyts@users.sourceforge.net>
Wed, 17 Mar 2010 15:17:34 +0000 (17 15:17 +0000)
committerJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 12 Apr 2010 12:56:17 +0000 (12 14:56 +0200)
treec6d4d18c08ba097d6613e7862b66f9fa72ae9fe5
parentc57b92c1a1733e42d8497156db5596620c3ea7ca
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