Commit 67802943 authored by Dan Nicolaescu's avatar Dan Nicolaescu
Browse files

* src/callproc.c (child_setup): Reorder code to simplify #ifdefs.

No code changes.
parent 84992dff
2010-11-15 Dan Nicolaescu <dann@ics.uci.edu> 2010-11-15 Dan Nicolaescu <dann@ics.uci.edu>
   
* callproc.c (child_setup): Reorder code to simplify #ifdefs.
No code changes.
* process.c: Include <sys/ioctl.h> unconditionally, * process.c: Include <sys/ioctl.h> unconditionally,
keyboard.c already does it. keyboard.c already does it.
   
......
...@@ -1154,6 +1154,14 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L ...@@ -1154,6 +1154,14 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L
#ifdef WINDOWSNT #ifdef WINDOWSNT
prepare_standard_handles (in, out, err, handles); prepare_standard_handles (in, out, err, handles);
set_process_dir (SDATA (current_dir)); set_process_dir (SDATA (current_dir));
/* Spawn the child. (See ntproc.c:Spawnve). */
cpid = spawnve (_P_NOWAIT, new_argv[0], new_argv, env);
reset_standard_handles (in, out, err, handles);
if (cpid == -1)
/* An error occurred while trying to spawn the process. */
report_file_error ("Spawning child process", Qnil);
return cpid;
#else /* not WINDOWSNT */ #else /* not WINDOWSNT */
/* Make sure that in, out, and err are not actually already in /* Make sure that in, out, and err are not actually already in
descriptors zero, one, or two; this could happen if Emacs is descriptors zero, one, or two; this could happen if Emacs is
...@@ -1192,34 +1200,15 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L ...@@ -1192,34 +1200,15 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L
emacs_close (out); emacs_close (out);
if (err != in && err != out) if (err != in && err != out)
emacs_close (err); emacs_close (err);
#endif /* not MSDOS */
#endif /* not WINDOWSNT */
#if defined(USG) #if defined(USG)
#ifndef SETPGRP_RELEASES_CTTY #ifndef SETPGRP_RELEASES_CTTY
setpgrp (); /* No arguments but equivalent in this case */ setpgrp (); /* No arguments but equivalent in this case */
#endif #endif
#else #else /* not USG */
setpgrp (pid, pid); setpgrp (pid, pid);
#endif /* USG */ #endif /* not USG */
#ifdef MSDOS
pid = run_msdos_command (new_argv, pwd_var + 4, in, out, err, env);
xfree (pwd_var);
if (pid == -1)
/* An error occurred while trying to run the subprocess. */
report_file_error ("Spawning child process", Qnil);
return pid;
#else /* not MSDOS */
#ifdef WINDOWSNT
/* Spawn the child. (See ntproc.c:Spawnve). */
cpid = spawnve (_P_NOWAIT, new_argv[0], new_argv, env);
reset_standard_handles (in, out, err, handles);
if (cpid == -1)
/* An error occurred while trying to spawn the process. */
report_file_error ("Spawning child process", Qnil);
return cpid;
#else /* not WINDOWSNT */
/* setpgrp_of_tty is incorrect here; it uses input_fd. */ /* setpgrp_of_tty is incorrect here; it uses input_fd. */
tcsetpgrp (0, pid); tcsetpgrp (0, pid);
...@@ -1233,8 +1222,15 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L ...@@ -1233,8 +1222,15 @@ child_setup (int in, int out, int err, register char **new_argv, int set_pgrp, L
emacs_write (1, new_argv[0], strlen (new_argv[0])); emacs_write (1, new_argv[0], strlen (new_argv[0]));
emacs_write (1, "\n", 1); emacs_write (1, "\n", 1);
_exit (1); _exit (1);
#endif /* not WINDOWSNT */
#endif /* not MSDOS */ #else /* MSDOS */
pid = run_msdos_command (new_argv, pwd_var + 4, in, out, err, env);
xfree (pwd_var);
if (pid == -1)
/* An error occurred while trying to run the subprocess. */
report_file_error ("Spawning child process", Qnil);
return pid;
#endif /* MSDOS */
} }
#ifndef WINDOWSNT #ifndef WINDOWSNT
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment