From 0a5f931a43595e099bca6a2fa11bb8ae55e02bd2 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Mon, 20 Feb 2006 16:15:51 +0000 Subject: [PATCH] * spawn.cc (av::fixup): Check for .bat and friends specifically now since these extensions are no longer automatically detected. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/spawn.cc | 8 ++++++-- 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 + + * spawn.cc (av::fixup): Check for .bat and friends specifically now + since these extensions are no longer automatically detected. + 2006-02-19 Christopher Faylor * 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) {