
Neil Mitchell wrote:
returns True for execute permission on Windows, and the one in GHC 6.8.1 returns True if the filename ends in something like ".exe" or ".bat" (both are wrong, just wrong in different ways).
The GHC one is pretty wrong, since ".com" is also a valid extension for executables.
Um, I said "something like ...". The code in fact is Microsoft's implementation of stat(), in the CRT. The list it uses is: /* see if file appears to be executable - check extension of name */ if (p = _tcsrchr(name, _T('.'))) { if ( !_tcsicmp(p, _T(".exe")) || !_tcsicmp(p, _T(".cmd")) || !_tcsicmp(p, _T(".bat")) || !_tcsicmp(p, _T(".com")) ) uxmode |= _S_IEXEC; } Cheers, Simon