changeset 108235:9aa39b975b8a

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.
author Dan Nicolaescu <dann@ics.uci.edu>
date Tue, 04 May 2010 00:40:53 -0700
parents 06c34f190db1
children 9fd9b1a102cd
files src/ChangeLog src/callproc.c src/emacs.c src/s/bsd-common.h src/s/gnu-linux.h src/sysdep.c src/term.c
diffstat 7 files changed, 17 insertions(+), 98 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Mon May 03 21:00:10 2010 -0700
+++ b/src/ChangeLog	Tue May 04 00:40:53 2010 -0700
@@ -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):
--- a/src/callproc.c	Mon May 03 21:00:10 2010 -0700
+++ b/src/callproc.c	Tue May 04 00:40:53 2010 -0700
@@ -91,7 +91,7 @@
 #endif
 
 #ifdef HAVE_SETPGID
-#if !defined (USG) || defined (BSD_PGRPS)
+#if !defined (USG)
 #undef setpgrp
 #define setpgrp setpgid
 #endif
@@ -581,7 +581,7 @@
 #ifdef HAVE_SETSID
         setsid ();
 #endif
-#if defined (USG) && !defined (BSD_PGRPS)
+#if defined (USG)
         setpgrp ();
 #else
         setpgrp (pid, pid);
@@ -1251,7 +1251,7 @@
 #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
--- a/src/emacs.c	Mon May 03 21:00:10 2010 -0700
+++ b/src/emacs.c	Tue May 04 00:40:53 2010 -0700
@@ -81,7 +81,7 @@
 #endif
 
 #ifdef HAVE_SETPGID
-#if !defined (USG) || defined (BSD_PGRPS)
+#if !defined (USG)
 #undef setpgrp
 #define setpgrp setpgid
 #endif
@@ -193,11 +193,6 @@
    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 @@
 
   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));
--- a/src/s/bsd-common.h	Mon May 03 21:00:10 2010 -0700
+++ b/src/s/bsd-common.h	Tue May 04 00:40:53 2010 -0700
@@ -48,9 +48,6 @@
 
 #define SYSV_SYSTEM_DIR
 
-/* POSIX-style pgrp behavior.  */
-#undef BSD_PGRPS
-
 #define UNEXEC unexelf.o
 
 /* If the system's imake configuration file defines `NeedWidePrototypes'
--- a/src/s/gnu-linux.h	Mon May 03 21:00:10 2010 -0700
+++ b/src/s/gnu-linux.h	Tue May 04 00:40:53 2010 -0700
@@ -206,11 +206,6 @@
 #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.  */
--- a/src/sysdep.c	Mon May 03 21:00:10 2010 -0700
+++ b/src/sysdep.c	Tue May 04 00:40:53 2010 -0700
@@ -73,7 +73,7 @@
 #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 @@
 #endif /* FASYNC */
 #endif /* F_SETFL */
 #endif /* SIGIO */
-
-/* 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 */
+
 
 /* Getting and setting emacs_tty structures.  */
 
@@ -1102,15 +1044,6 @@
   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 @@
   dos_ttcooked ();
 #endif
 
-#ifdef BSD_PGRPS
-  widen_foreground_group (fileno (tty_out->input));
-#endif
 }
 
 #ifdef HAVE_PTYS
--- a/src/term.c	Mon May 03 21:00:10 2010 -0700
+++ b/src/term.c	Tue May 04 00:40:53 2010 -0700
@@ -3379,7 +3379,7 @@
   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)