aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEli Zaretskii2015-08-22 22:14:56 +0300
committerEli Zaretskii2015-08-22 22:14:56 +0300
commitb0fe29ed920e65510ed062c5293c4db3b9a02ab6 (patch)
tree31e868cd4ac006f45e6a38cf7e5273e1151cddef
parent7372c1ab067ba93054fbb042cd13211042b83614 (diff)
downloademacs-b0fe29ed920e65510ed062c5293c4db3b9a02ab6.tar.gz
emacs-b0fe29ed920e65510ed062c5293c4db3b9a02ab6.zip
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)
-rw-r--r--src/w32proc.c12
1 files changed, 11 insertions, 1 deletions
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)
1815 if (egetenv ("CMDPROXY")) 1815 if (egetenv ("CMDPROXY"))
1816 strcpy (cmdname, egetenv ("CMDPROXY")); 1816 strcpy (cmdname, egetenv ("CMDPROXY"));
1817 else 1817 else
1818 strcpy (lispstpcpy (cmdname, Vinvocation_directory), "cmdproxy.exe"); 1818 {
1819 char *q = lispstpcpy (cmdname, Vexec_directory);
1820 /* If we are run from the source tree, use cmdproxy.exe from
1821 the same source tree. */
1822 for (p = q - 2; p > cmdname; p--)
1823 if (*p == '/')
1824 break;
1825 if (*p == '/' && xstrcasecmp (p, "/lib-src/") == 0)
1826 q = stpcpy (p, "/nt/");
1827 strcpy (q, "cmdproxy.exe");
1828 }
1819 1829
1820 /* Can't use unixtodos_filename here, since that needs its file 1830 /* Can't use unixtodos_filename here, since that needs its file
1821 name argument encoded in UTF-8. */ 1831 name argument encoded in UTF-8. */