pex-win32.c (no_suffixes): Remove.

2006-11-08  Vladimir Prus  <vladimir@codesourcery.com>

        * pex-win32.c (no_suffixes): Remove.
        (std_suffixes): Add "" as first element.
        (find_executable): Remove detection of already-present
        extension. Try all suffixes in std_suffixes.

From-SVN: r118595
This commit is contained in:
Vladimir Prus 2006-11-08 18:16:27 +00:00 committed by Vladimir Prus
parent 5cdc4a2674
commit e9903c672a
2 changed files with 15 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2006-11-08 Vladimir Prus <vladimir@codesourcery.com>
* pex-win32.c (no_suffixes): Remove.
(std_suffixes): Add "" as first element.
(find_executable): Remove detection of already-present
extension. Try all suffixes in std_suffixes.
2006-11-07 Julian Brown <julian@codesourcery.com>
* floatformat.c (get_field): Fix segfault with little-endian word

View File

@ -382,16 +382,18 @@ argv_to_cmdline (char *const *argv)
return cmdline;
}
/* We'll try the passed filename with all the known standard
extensions, and then without extension. We try no extension
last so that we don't try to run some random extension-less
file that might be hanging around. We try both extension
and no extension so that we don't need any fancy logic
to determine if a file has extension. */
static const char *const
std_suffixes[] = {
".com",
".exe",
".bat",
".cmd",
0
};
static const char *const
no_suffixes[] = {
"",
0
};
@ -409,7 +411,6 @@ find_executable (const char *program, BOOL search)
const char *const *ext;
const char *p, *q;
size_t proglen = strlen (program);
int has_extension = !!strchr (program, '.');
int has_slash = (strchr (program, '/') || strchr (program, '\\'));
HANDLE h;
@ -432,7 +433,7 @@ find_executable (const char *program, BOOL search)
if (*q == ';')
q++;
}
fe_len = fe_len + 1 + proglen + (has_extension ? 1 : 5);
fe_len = fe_len + 1 + proglen + 5 /* space for extension */;
full_executable = XNEWVEC (char, fe_len);
p = path;
@ -458,7 +459,7 @@ find_executable (const char *program, BOOL search)
/* At this point, e points to the terminating NUL character for
full_executable. */
for (ext = has_extension ? no_suffixes : std_suffixes; *ext; ext++)
for (ext = std_suffixes; *ext; ext++)
{
/* Remove any current extension. */
*e = '\0';