From: Eli Zaretskii Date: Sat, 22 Aug 2015 19:14:56 +0000 (+0300) Subject: Fix invocation of programs via cmdproxy.exe X-Git-Tag: emacs-25.0.90~1298 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b0fe29ed920e65510ed062c5293c4db3b9a02ab6;p=emacs.git Fix invocation of programs via cmdproxy.exe * src/w32proc.c (sys_spawnve): Use exec-directory, not invocation-directory, for finding cmdproxy.exe. When Emacs is run from the source tree, look for cmdproxy.exe in the same source tree. (Bug#21323) --- diff --git a/src/w32proc.c b/src/w32proc.c index 66a9761ad13..d861edeb78b 100644 --- a/src/w32proc.c +++ b/src/w32proc.c @@ -1815,7 +1815,17 @@ sys_spawnve (int mode, char *cmdname, char **argv, char **envp) if (egetenv ("CMDPROXY")) strcpy (cmdname, egetenv ("CMDPROXY")); else - strcpy (lispstpcpy (cmdname, Vinvocation_directory), "cmdproxy.exe"); + { + char *q = lispstpcpy (cmdname, Vexec_directory); + /* If we are run from the source tree, use cmdproxy.exe from + the same source tree. */ + for (p = q - 2; p > cmdname; p--) + if (*p == '/') + break; + if (*p == '/' && xstrcasecmp (p, "/lib-src/") == 0) + q = stpcpy (p, "/nt/"); + strcpy (q, "cmdproxy.exe"); + } /* Can't use unixtodos_filename here, since that needs its file name argument encoded in UTF-8. */