+2014-12-30 Eli Zaretskii <eliz@gnu.org>
+
+ * complete.c (stat_char) [_WIN32]: Don't use 'access' and X_OK on
+ Windows, they don't work. Instead, look at the file-name
+ extension to determine whether the file is executable.
+
2013-09-24 Pierre Muller <muller@sourceware.org>
* readline.c (bind_arrow_keys_internal):
#endif
else if (S_ISREG (finfo.st_mode))
{
+#if defined (_WIN32) && !defined (__CYGWIN__)
+ /* Windows 'access' doesn't support X_OK and on latest Windows
+ versions even invokes an invalid parameter exception. */
+ char *ext = strrchr (filename, '.');
+
+ if (ext
+ && (_rl_stricmp (ext, ".exe") == 0
+ || _rl_stricmp (ext, ".cmd") == 0
+ || _rl_stricmp (ext, ".bat") == 0
+ || _rl_stricmp (ext, ".com") == 0))
+ character = '*';
+#else
if (access (filename, X_OK) == 0)
character = '*';
+#endif
}
return (character);
}