]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix invocation of programs via cmdproxy.exe
authorEli Zaretskii <eliz@gnu.org>
Sat, 22 Aug 2015 19:14:56 +0000 (22:14 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sat, 22 Aug 2015 19:14:56 +0000 (22:14 +0300)
* 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)

src/w32proc.c

index 66a9761ad13823998ce7f90ae696c97b51e9bce3..d861edeb78b3d6b3406d6710c4470897063ca191 100644 (file)
@@ -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.  */