Commit e9903c67 by Vladimir Prus Committed by Vladimir Prus

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
parent 5cdc4a26
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> 2006-11-07 Julian Brown <julian@codesourcery.com>
* floatformat.c (get_field): Fix segfault with little-endian word * floatformat.c (get_field): Fix segfault with little-endian word
......
...@@ -382,16 +382,18 @@ argv_to_cmdline (char *const *argv) ...@@ -382,16 +382,18 @@ argv_to_cmdline (char *const *argv)
return cmdline; 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 static const char *const
std_suffixes[] = { std_suffixes[] = {
".com", ".com",
".exe", ".exe",
".bat", ".bat",
".cmd", ".cmd",
0
};
static const char *const
no_suffixes[] = {
"", "",
0 0
}; };
...@@ -409,7 +411,6 @@ find_executable (const char *program, BOOL search) ...@@ -409,7 +411,6 @@ find_executable (const char *program, BOOL search)
const char *const *ext; const char *const *ext;
const char *p, *q; const char *p, *q;
size_t proglen = strlen (program); size_t proglen = strlen (program);
int has_extension = !!strchr (program, '.');
int has_slash = (strchr (program, '/') || strchr (program, '\\')); int has_slash = (strchr (program, '/') || strchr (program, '\\'));
HANDLE h; HANDLE h;
...@@ -432,7 +433,7 @@ find_executable (const char *program, BOOL search) ...@@ -432,7 +433,7 @@ find_executable (const char *program, BOOL search)
if (*q == ';') if (*q == ';')
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); full_executable = XNEWVEC (char, fe_len);
p = path; p = path;
...@@ -458,7 +459,7 @@ find_executable (const char *program, BOOL search) ...@@ -458,7 +459,7 @@ find_executable (const char *program, BOOL search)
/* At this point, e points to the terminating NUL character for /* At this point, e points to the terminating NUL character for
full_executable. */ full_executable. */
for (ext = has_extension ? no_suffixes : std_suffixes; *ext; ext++) for (ext = std_suffixes; *ext; ext++)
{ {
/* Remove any current extension. */ /* Remove any current extension. */
*e = '\0'; *e = '\0';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment