summaryrefslogtreecommitdiff
path: root/src/process.c
diff options
context:
space:
mode:
authorYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2005-09-21 08:03:30 +0000
committerYAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>2005-09-21 08:03:30 +0000
commit21375f1e3352e37082ab1f14e6759134e806ccc0 (patch)
treeb7820aa38202f802a835507594a54189ec50191d /src/process.c
parent2f2db7cc5821edca922195fde2f3ae9467974a99 (diff)
downloademacs-21375f1e3352e37082ab1f14e6759134e806ccc0.tar.gz
emacs-21375f1e3352e37082ab1f14e6759134e806ccc0.tar.bz2
emacs-21375f1e3352e37082ab1f14e6759134e806ccc0.zip
(create_process) [RTU || UNIPLUS || DONT_REOPEN_PTY]:
Setup slave tty options before forking.
Diffstat (limited to 'src/process.c')
-rw-r--r--src/process.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/process.c b/src/process.c
index 18a446e9561..6f41788a45c 100644
--- a/src/process.c
+++ b/src/process.c
@@ -1793,6 +1793,12 @@ create_process (process, new_argv, current_dir)
#endif
if (forkin < 0)
report_file_error ("Opening pty", Qnil);
+#if defined (RTU) || defined (UNIPLUS) || defined (DONT_REOPEN_PTY)
+ /* In the case that vfork is defined as fork, the parent process
+ (Emacs) may send some data before the child process completes
+ tty options setup. So we setup tty before forking. */
+ child_setup_tty (forkout);
+#endif /* RTU or UNIPLUS or DONT_REOPEN_PTY */
#else
forkin = forkout = -1;
#endif /* not USG, or USG_SUBTTY_WORKS */
@@ -2077,8 +2083,10 @@ create_process (process, new_argv, current_dir)
#endif /* SIGCHLD */
#endif /* !POSIX_SIGNALS */
+#if !defined (RTU) && !defined (UNIPLUS) && !defined (DONT_REOPEN_PTY)
if (pty_flag)
child_setup_tty (xforkout);
+#endif /* not RTU and not UNIPLUS and not DONT_REOPEN_PTY */
#ifdef WINDOWSNT
pid = child_setup (xforkin, xforkout, xforkout,
new_argv, 1, current_dir);