Remove BSD_PGRPS.
authorDan Nicolaescu <dann@ics.uci.edu>
Tue, 4 May 2010 07:40:53 +0000 (00:40 -0700)
committerDan Nicolaescu <dann@ics.uci.edu>
Tue, 4 May 2010 07:40:53 +0000 (00:40 -0700)
* s/bsd-common.h (BSD_PGRPS): Remove undef.
* s/gnu-linux.h (BSD_PGRPS): Remove.
* term.c (dissociate_if_controlling_tty):
* sysdep.c (narrow_foreground_group, widen_foreground_group)
(init_sys_modes, reset_sys_modes):
* emacs.c (main):
* callproc.c (Fcall_process, child_setup): Remove code depending
on BSD_PGRPS.

src/ChangeLog
src/callproc.c
src/emacs.c
src/s/bsd-common.h
src/s/gnu-linux.h
src/sysdep.c
src/term.c

index 797ab69..91da544 100644 (file)
@@ -1,5 +1,15 @@
 2010-05-04  Dan Nicolaescu  <dann@ics.uci.edu>
 
+       Remove BSD_PGRPS.
+       * s/bsd-common.h (BSD_PGRPS): Remove undef.
+       * s/gnu-linux.h (BSD_PGRPS): Remove.
+       * term.c (dissociate_if_controlling_tty):
+       * sysdep.c (narrow_foreground_group, widen_foreground_group)
+       (init_sys_modes, reset_sys_modes):
+       * emacs.c (main):
+       * callproc.c (Fcall_process, child_setup): Remove code depending
+       on BSD_PGRPS.
+
        Remove POSIX_SIGNALS.
        * s/usg5-4.h (POSIX_SIGNALS):
        * s/netbsd.h (POSIX_SIGNALS):
index 317636d..44dd6ed 100644 (file)
@@ -91,7 +91,7 @@ extern char **environ;
 #endif
 
 #ifdef HAVE_SETPGID
-#if !defined (USG) || defined (BSD_PGRPS)
+#if !defined (USG)
 #undef setpgrp
 #define setpgrp setpgid
 #endif
@@ -581,7 +581,7 @@ usage: (call-process PROGRAM &optional INFILE BUFFER DISPLAY &rest ARGS)  */)
 #ifdef HAVE_SETSID
         setsid ();
 #endif
-#if defined (USG) && !defined (BSD_PGRPS)
+#if defined (USG)
         setpgrp ();
 #else
         setpgrp (pid, pid);
@@ -1251,7 +1251,7 @@ child_setup (in, out, err, new_argv, set_pgrp, current_dir)
 #endif /* not MSDOS */
 #endif /* not WINDOWSNT */
 
-#if defined(USG) && !defined(BSD_PGRPS)
+#if defined(USG)
 #ifndef SETPGRP_RELEASES_CTTY
   setpgrp ();                  /* No arguments but equivalent in this case */
 #endif
index d40ff36..06c686d 100644 (file)
@@ -81,7 +81,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #endif
 
 #ifdef HAVE_SETPGID
-#if !defined (USG) || defined (BSD_PGRPS)
+#if !defined (USG)
 #undef setpgrp
 #define setpgrp setpgid
 #endif
@@ -193,11 +193,6 @@ EMACS_INT emacs_priority;
    data on the first attempt to change it inside asynchronous code.  */
 int running_asynch_code;
 
-#ifdef BSD_PGRPS
-/* See sysdep.c.  */
-extern int inherited_pgroup;
-#endif
-
 #if defined(HAVE_X_WINDOWS) || defined(HAVE_NS)
 /* If non-zero, -d was specified, meaning we're using some window system.  */
 int display_arg;
@@ -1187,17 +1182,9 @@ main (int argc, char **argv)
 
   if (! noninteractive)
     {
-#ifdef BSD_PGRPS
-      if (initialized)
-       {
-         inherited_pgroup = EMACS_GETPGRP (0);
-         setpgrp (0, getpid ());
-       }
-#else
 #if defined (USG5) && defined (INTERRUPT_INPUT)
       setpgrp ();
 #endif
-#endif
 #if defined (HAVE_GTK_AND_PTHREAD) && !defined (SYSTEM_MALLOC) && !defined (DOUG_LEA_MALLOC)
       {
        extern void malloc_enable_thread P_ ((void));
index 9dad7a9..e44757f 100644 (file)
@@ -48,9 +48,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #define SYSV_SYSTEM_DIR
 
-/* POSIX-style pgrp behavior.  */
-#undef BSD_PGRPS
-
 #define UNEXEC unexelf.o
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
index 218af42..b9cab20 100644 (file)
@@ -206,11 +206,6 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #define HAVE_XRMSETDATABASE
 #endif
 
-/* Use BSD process groups, but use setpgid() instead of setpgrp() to
-   actually set a process group. */
-/* Interesting: only GNU/Linux defines this,  but the BSDs do not... */
-/* #define BSD_PGRPS */
-
 #define NARROWPROTO 1
 
 /* Use mmap directly for allocating larger buffers.  */
index 38492c1..1e11465 100644 (file)
@@ -73,7 +73,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <errno.h>
 
 #ifdef HAVE_SETPGID
-#if !defined (USG) || defined (BSD_PGRPS)
+#if !defined (USG)
 #undef setpgrp
 #define setpgrp setpgid
 #endif
@@ -859,65 +859,7 @@ unrequest_sigio ()
 #endif /* FASYNC */
 #endif /* F_SETFL */
 #endif /* SIGIO */
-\f
-/* Saving and restoring the process group of Emacs's terminal.  */
-
-#ifdef BSD_PGRPS
-
-/* The process group of which Emacs was a member when it initially
-   started.
-
-   If Emacs was in its own process group (i.e. inherited_pgroup ==
-   getpid ()), then we know we're running under a shell with job
-   control (Emacs would never be run as part of a pipeline).
-   Everything is fine.
-
-   If Emacs was not in its own process group, then we know we're
-   running under a shell (or a caller) that doesn't know how to
-   separate itself from Emacs (like sh).  Emacs must be in its own
-   process group in order to receive SIGIO correctly.  In this
-   situation, we put ourselves in our own pgroup, forcibly set the
-   tty's pgroup to our pgroup, and make sure to restore and reinstate
-   the tty's pgroup just like any other terminal setting.  If
-   inherited_group was not the tty's pgroup, then we'll get a
-   SIGTTmumble when we try to change the tty's pgroup, and a CONT if
-   it goes foreground in the future, which is what should happen.
-
-   This variable is initialized in emacs.c.  */
-int inherited_pgroup;
-
-/* Split off the foreground process group to Emacs alone.  When we are
-   in the foreground, but not started in our own process group,
-   redirect the tty device handle FD to point to our own process
-   group.  We need to be in our own process group to receive SIGIO
-   properly.  */
-static void
-narrow_foreground_group (int fd)
-{
-  int me = getpid ();
-
-  setpgrp (0, inherited_pgroup);
-#if 0
-  /* XXX inherited_pgroup should not be zero here, but GTK seems to
-     mess this up. */
-  if (! inherited_pgroup)
-    abort ();                   /* Should not happen. */
-#endif
-  if (inherited_pgroup != me)
-      EMACS_SET_TTY_PGRP (fd, &me); /* XXX This only works on the controlling tty. */
-  setpgrp (0, me);
-}
-
-/* Set the tty to our original foreground group.  */
-static void
-widen_foreground_group (int fd)
-{
-  if (inherited_pgroup != getpid ())
-    EMACS_SET_TTY_PGRP (fd, &inherited_pgroup);
-  setpgrp (0, inherited_pgroup);
-}
 
-#endif /* BSD_PGRPS */
 \f
 /* Getting and setting emacs_tty structures.  */
 
@@ -1102,15 +1044,6 @@ init_sys_modes (tty_out)
   if (!tty_out->output)
     return;                     /* The tty is suspended. */
   
-#ifdef BSD_PGRPS
-#if 0
-  /* read_socket_hook is not global anymore.  I think doing this
-     unconditionally will not cause any problems. */
-  if (! read_socket_hook && EQ (Vinitial_window_system, Qnil))
-#endif
-    narrow_foreground_group (fileno (tty_out->input));
-#endif
-
   if (! tty_out->old_tty)
     tty_out->old_tty = (struct emacs_tty *) xmalloc (sizeof (struct emacs_tty));
       
@@ -1560,9 +1493,6 @@ reset_sys_modes (tty_out)
   dos_ttcooked ();
 #endif
 
-#ifdef BSD_PGRPS
-  widen_foreground_group (fileno (tty_out->input));
-#endif
 }
 \f
 #ifdef HAVE_PTYS
index bb14320..fad6e3c 100644 (file)
@@ -3379,7 +3379,7 @@ dissociate_if_controlling_tty (int fd)
   EMACS_GET_TTY_PGRP (fd, &pgid); /* If tcgetpgrp succeeds, fd is the ctty. */
   if (pgid != -1)
     {
-#if defined (USG) && !defined (BSD_PGRPS)
+#if defined (USG)
       setpgrp ();
       no_controlling_tty = 1;
 #elif defined (CYGWIN)