summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/spawn.cc8
2 files changed, 11 insertions, 2 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index fd94cae92..c1644c6c3 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2006-02-20 Christopher Faylor <cgf@timesys.com>
+
+ * spawn.cc (av::fixup): Check for .bat and friends specifically now
+ since these extensions are no longer automatically detected.
+
2006-02-19 Christopher Faylor <cgf@timesys.com>
* exceptions.cc (stackdump): Avoid dumping more than once.
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 5817a1dfe..1debb93c3 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -1058,9 +1058,13 @@ spawnvpe (int mode, const char *file, const char * const *argv,
int
av::fixup (const char *prog_arg, path_conv& real_path, const char *ext)
{
+ const char *p;
bool exeext = strcasematch (ext, ".exe");
- if (exeext && real_path.iscygexec () || strcasematch (ext, ".bat")
- || strcasematch (ext, ".cmd"))
+ if (exeext && real_path.iscygexec () || strcasematch (ext, ".bat"))
+ return 0;
+ if (!*ext && ((p = ext - 4) > (char *) real_path)
+ && (strcasematch (p, ".bat") || strcasematch (p, ".cmd")
+ || strcasematch (p, ".btm"))
return 0;
while (1)
{