Changes for Irix 4.0, tested this time:
authorJim Blandy <jimb@redhat.com>
Fri, 18 Jun 1993 23:33:20 +0000 (23:33 +0000)
committerJim Blandy <jimb@redhat.com>
Fri, 18 Jun 1993 23:33:20 +0000 (23:33 +0000)
* s/irix4-0.h: Get rid of our fake definitions for setpgrp and
getpgrp.
* callproc.c (Fcall_process): Go ahead and use the USG calling
convention for setpgrp.
* ymakefile (pre-crt0.o): Add rule for this.  Perhaps it will help
separate-source-directory compilation.
* emacs.c (shut_down_emacs): Some USG systems #define
EMACS_HAVE_TTY_PGRP; call getpgrp as appropriate for such systems.
* sysdep.c (sys_suspend): Call getpgrp as appropriate for USG and
non-USG.
* process.c [IRIX] (create_process): Don't put child in process
group zero before opening the tty; Irix is like USG in this
regard.

src/callproc.c
src/emacs.c
src/process.c
src/s/irix4-0.h
src/sysdep.c

index 1436a23..28e6c00 100644 (file)
@@ -255,7 +255,7 @@ If you quit, the process is killed with SIGINT, or SIGKILL if you quit again.")
       {
        if (fd[0] >= 0)
          close (fd[0]);
-#if defined (USG) && !defined (IRIX)
+#ifdef USG
         setpgrp ();
 #else
         setpgrp (pid, pid);
index c38811f..96040e1 100644 (file)
@@ -681,9 +681,14 @@ shut_down_emacs (sig, no_x, stuff)
   /* If we are controlling the terminal, reset terminal modes */
 #ifdef EMACS_HAVE_TTY_PGRP
   {
+#ifdef USG
+    int pgrp = getpgrp ();
+#else
+    int pgrp = getpgrp (0);
+#endif
     int tpgrp;
     if (EMACS_GET_TTY_PGRP (0, &tpgrp) != -1
-       && tpgrp == getpgrp (0))
+       && tpgrp == pgrp)
       {
        fflush (stdout);
        reset_sys_modes ();
index 8769734..4c2fa5d 100644 (file)
@@ -1282,7 +1282,7 @@ create_process (process, new_argv, current_dir)
            int j = open ("/dev/tty", O_RDWR, 0);
            ioctl (j, TIOCNOTTY, 0);
            close (j);
-#if !defined (USG) || defined (IRIX)
+#ifndef USG
            /* In order to get a controlling terminal on some versions
               of BSD, it is necessary to put the process in pgrp 0
               before it opens the terminal.  */
index e2dbb37..589773a 100644 (file)
   strcpy (pty_name, name);                                     \
 }
 
-/* Use the BSD versions of the getpgrp and setpgrp functions.  */
-#define setpgrp(pid, pgrp) BSDsetpgrp((pid), (pgrp))
-#define getpgrp(pid)       BSDgetpgrp(pid)
-
 /* jpff@maths.bath.ac.uk reports `struct exception' is not defined
    on this system, so inhibit use of matherr.  */
 #define NO_MATHERR
index 5d0d480..8e7858f 100644 (file)
@@ -571,7 +571,14 @@ sys_suspend ()
 #else
 #ifdef SIGTSTP
 
-  EMACS_KILLPG (getpgrp (0), SIGTSTP);
+  {
+#ifdef USG
+    int pgrp = getpgrp ();
+#else
+    int pgrp = getpgrp (0);
+#endif
+    EMACS_KILLPG (pgrp, SIGTSTP);
+  }
 
 #else /* No SIGTSTP */
 #ifdef USG_JOBCTRL /* If you don't know what this is don't mess with it */