aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1995-06-15 15:29:00 +0000
committerRichard M. Stallman1995-06-15 15:29:00 +0000
commit0a4de642e4db66aa01ea94790c5c9ce78eb75906 (patch)
treef0e62e5720d82b66ebf17e0892c5f4adbd0aca76 /src
parent0774fcf89c25df2a9c3b6952f64c2bc82592925e (diff)
downloademacs-0a4de642e4db66aa01ea94790c5c9ce78eb75906.tar.gz
emacs-0a4de642e4db66aa01ea94790c5c9ce78eb75906.zip
(win32_spawnve): Accept program names without executable suffixes.
Diffstat (limited to 'src')
-rw-r--r--src/w32proc.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/src/w32proc.c b/src/w32proc.c
index 981876e6b16..e7834d6a452 100644
--- a/src/w32proc.c
+++ b/src/w32proc.c
@@ -427,10 +427,30 @@ char ppid_env_var_buffer[64];
427int 427int
428win32_spawnve (int mode, char *cmdname, char **argv, char **envp) 428win32_spawnve (int mode, char *cmdname, char **argv, char **envp)
429{ 429{
430 Lisp_Object program, full;
430 char *cmdline, *env, *parg, **targ; 431 char *cmdline, *env, *parg, **targ;
431 int arglen; 432 int arglen;
432 PROCESS_INFORMATION pi; 433 PROCESS_INFORMATION pi;
433 434
435 /* Handle executable names without an executable suffix. */
436 program = make_string (cmdname, strlen (cmdname));
437 if (NILP (Ffile_executable_p (program)))
438 {
439 struct gcpro gcpro1;
440
441 full = Qnil;
442 GCPRO1 (program);
443 openp (Vexec_path, program, EXEC_SUFFIXES, &full, 1);
444 UNGCPRO;
445 if (NILP (full))
446 {
447 errno = EINVAL;
448 return -1;
449 }
450 cmdname = XSTRING (full)->data;
451 argv[0] = cmdname;
452 }
453
434 if (child_proc_count == MAX_CHILDREN) 454 if (child_proc_count == MAX_CHILDREN)
435 { 455 {
436 errno = EAGAIN; 456 errno = EAGAIN;