diff src/process.c @ 90233:ee12d75eb214

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-85 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 556-561) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 122-124) - Update from CVS: lisp/mm-url.el (mm-url-decode-entities): Fix regexp. - Update from CVS
author Miles Bader <miles@gnu.org>
date Sun, 25 Sep 2005 22:07:01 +0000
parents 2d92f5c9d6ae 92275ace8eb5
children b1c1fc853d2f
line wrap: on
line diff
--- a/src/process.c	Fri Sep 23 07:06:33 2005 +0000
+++ b/src/process.c	Sun Sep 25 22:07:01 2005 +0000
@@ -1794,6 +1794,12 @@
 #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 */
@@ -2078,8 +2084,10 @@
 #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);