https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=ba2fbfec95b03ccd01c4d3f5a5179e7cc5f95e19
commit ba2fbfec95b03ccd01c4d3f5a5179e7cc5f95e19 Author: Takashi Yano <[email protected]> Date: Mon Apr 5 17:32:13 2021 +0900 Cygwin: pty: Use find_exec() rather than path_conv::check(). - With this patch, find_exec() rather than path_conv::check() is used in order to enable searching executable file in the path. Diff: --- winsup/cygwin/fhandler_tty.cc | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 12247dd99..d78afb3ad 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -183,19 +183,20 @@ CreateProcessA_Hooked char *p = prog; char *p1; do - if ((p1 = strstr (p, ".exe")) || (p1 = strstr (p, ".com"))) + if ((p1 = strchr (p, ' ')) || (p1 = p + strlen (p))) { - p = p1 + 4; + p = p1; if (*p == ' ') { *p = '\0'; - path.check (prog); + find_exec (prog, path); *p = ' '; + p ++; } else if (*p == '\0') - path.check (prog); + find_exec (prog, path); } - while (!path.exists() && p1); + while (!path.exists() && *p); } const char *argv[] = {"", NULL}; /* Dummy */ av av1; @@ -239,19 +240,20 @@ CreateProcessW_Hooked char *p = prog; char *p1; do - if ((p1 = strstr (p, ".exe")) || (p1 = strstr (p, ".com"))) + if ((p1 = strchr (p, ' ')) || (p1 = p + strlen (p))) { - p = p1 + 4; + p = p1; if (*p == ' ') { *p = '\0'; - path.check (prog); + find_exec (prog, path); *p = ' '; + p ++; } else if (*p == '\0') - path.check (prog); + find_exec (prog, path); } - while (!path.exists() && p1); + while (!path.exists() && *p); } const char *argv[] = {"", NULL}; /* Dummy */ av av1;
