Commit b5aaed99 authored by Jim Blandy's avatar Jim Blandy

* callproc.c (Fcall_process, child_setup): If IRIX is #defined,

	call setpgrp with arguments, even if USG is #defined.
	* process.c [IRIX] (create_process): Don't call setpgrp before
	opening the pty.  Call it after doing the TIOCNOTTY ioctl.
parent cca310da
...@@ -255,7 +255,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.") ...@@ -255,7 +255,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
{ {
if (fd[0] >= 0) if (fd[0] >= 0)
close (fd[0]); close (fd[0]);
#ifdef USG #if defined (USG) && !defined (IRIX)
setpgrp (); setpgrp ();
#else #else
setpgrp (pid, pid); setpgrp (pid, pid);
...@@ -519,7 +519,7 @@ child_setup (in, out, err, new_argv, set_pgrp, current_dir) ...@@ -519,7 +519,7 @@ child_setup (in, out, err, new_argv, set_pgrp, current_dir)
close (out); close (out);
close (err); close (err);
#ifdef USG #if defined (USG) && !defined (IRIX)
setpgrp (); /* No arguments but equivalent in this case */ setpgrp (); /* No arguments but equivalent in this case */
#else #else
setpgrp (pid, pid); setpgrp (pid, pid);
......
...@@ -1265,7 +1265,7 @@ create_process (process, new_argv, current_dir) ...@@ -1265,7 +1265,7 @@ create_process (process, new_argv, current_dir)
ioctl (xforkin, TIOCSCTTY, 0); ioctl (xforkin, TIOCSCTTY, 0);
#endif #endif
#else /* not HAVE_SETSID */ #else /* not HAVE_SETSID */
#ifdef USG #if defined (USG) && !defined (IRIX)
/* It's very important to call setpgrp() here and no time /* It's very important to call setpgrp() here and no time
afterwards. Otherwise, we lose our controlling tty which afterwards. Otherwise, we lose our controlling tty which
is set when we open the pty. */ is set when we open the pty. */
...@@ -1282,7 +1282,7 @@ create_process (process, new_argv, current_dir) ...@@ -1282,7 +1282,7 @@ create_process (process, new_argv, current_dir)
int j = open ("/dev/tty", O_RDWR, 0); int j = open ("/dev/tty", O_RDWR, 0);
ioctl (j, TIOCNOTTY, 0); ioctl (j, TIOCNOTTY, 0);
close (j); close (j);
#ifndef USG #if !defined (USG) || defined (IRIX)
/* In order to get a controlling terminal on some versions /* In order to get a controlling terminal on some versions
of BSD, it is necessary to put the process in pgrp 0 of BSD, it is necessary to put the process in pgrp 0
before it opens the terminal. */ before it opens the terminal. */
......
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