emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: address@hidden: Re: address@hidden: emacs-21.2.90 on HP 11.0]]


From: Richard Stallman
Subject: Re: address@hidden: Re: address@hidden: emacs-21.2.90 on HP 11.0]]
Date: Tue, 16 Jul 2002 07:29:00 -0600 (MDT)

If you make this change, and also add

  #define USG_SUBTTY_WORKS

in hpux11.h, does everything work right?

*** process.c.~1.376.~  Mon Jul 15 05:45:00 2002
--- process.c   Mon Jul 15 14:42:52 2002
***************
*** 1562,1570 ****
  
    if (inchannel >= 0)
      {
! #ifndef USG 
!       /* On USG systems it does not work to open the pty's tty here
!              and then close and reopen it in the child.  */
  #ifdef O_NOCTTY
        /* Don't let this terminal become our controlling terminal
         (in case we don't have one).  */
--- 1562,1570 ----
  
    if (inchannel >= 0)
      {
! #if ! defined (USG) || defined (USG_SUBTTY_WORKS)
!       /* On most USG systems it does not work to open the pty's tty here,
!        then close it and reopen it in the child.  */
  #ifdef O_NOCTTY
        /* Don't let this terminal become our controlling terminal
         (in case we don't have one).  */
***************
*** 1576,1582 ****
        report_file_error ("Opening pty", Qnil);
  #else
        forkin = forkout = -1;
! #endif /* not USG */
        pty_flag = 1;
      }
    else
--- 1576,1582 ----
        report_file_error ("Opening pty", Qnil);
  #else
        forkin = forkout = -1;
! #endif /* not USG, or USG_SUBTTY_WORKS */
        pty_flag = 1;
      }
    else
***************
*** 5027,5033 ****
      current_group = Qnil;
  
    /* If we are using pgrps, get a pgrp number and make it negative.  */
!   if (!NILP (current_group))
      {
  #ifdef SIGNALS_VIA_CHARACTERS
        /* If possible, send signals to the entire pgrp
--- 5027,5036 ----
      current_group = Qnil;
  
    /* If we are using pgrps, get a pgrp number and make it negative.  */
!   if (NILP (current_group))
!     /* Send the signal to the shell's process group.  */
!     gid = XFASTINT (p->pid);
!   else
      {
  #ifdef SIGNALS_VIA_CHARACTERS
        /* If possible, send signals to the entire pgrp
***************
*** 5122,5128 ****
  #endif /* defined (SIGNALS_VIA_CHARACTERS) */
  
  #ifdef TIOCGPGRP 
!       /* Get the pgrp using the tty itself, if we have that.
         Otherwise, use the pty to get the pgrp.
         On pfa systems, address@hidden writes:
         "TIOCGPGRP symbol defined in sys/ioctl.h at E50.
--- 5125,5131 ----
  #endif /* defined (SIGNALS_VIA_CHARACTERS) */
  
  #ifdef TIOCGPGRP 
!       /* Get the current pgrp using the tty itself, if we have that.
         Otherwise, use the pty to get the pgrp.
         On pfa systems, address@hidden writes:
         "TIOCGPGRP symbol defined in sys/ioctl.h at E50.
***************
*** 5137,5164 ****
        else
          err = ioctl (XINT (p->infd), TIOCGPGRP, &gid);
  
- #ifdef pfa
        if (err == -1)
!         gid = - XFASTINT (p->pid);
! #endif /* ! defined (pfa) */
        }
        if (gid == -1)
        no_pgrp = 1;
-       else
-       gid = - gid;
  #else  /* ! defined (TIOCGPGRP ) */
        /* Can't select pgrps on this system, so we know that
         the child itself heads the pgrp.  */
!       gid = - XFASTINT (p->pid);
  #endif /* ! defined (TIOCGPGRP ) */
  
        /* If current_group is lambda, and the shell owns the terminal,
         don't send any signal.  */
!       if (EQ (current_group, Qlambda) && gid == - XFASTINT (p->pid))
        return;
      }
-   else
-     gid = - XFASTINT (p->pid);
  
    switch (signo)
      {
--- 5140,5167 ----
        else
          err = ioctl (XINT (p->infd), TIOCGPGRP, &gid);
  
        if (err == -1)
!         /* If we can't get the information, assume
!            the shell owns the tty.  */
!         gid = XFASTINT (p->pid);
        }
+ 
+       /* It is not clear whether anything really can set GID to -1.
+        Perhaps on some system one of those ioctls can or could do so.
+        Or perhaps this is vestigial.  */
        if (gid == -1)
        no_pgrp = 1;
  #else  /* ! defined (TIOCGPGRP ) */
        /* Can't select pgrps on this system, so we know that
         the child itself heads the pgrp.  */
!       gid = XFASTINT (p->pid);
  #endif /* ! defined (TIOCGPGRP ) */
  
        /* If current_group is lambda, and the shell owns the terminal,
         don't send any signal.  */
!       if (EQ (current_group, Qlambda) && gid == XFASTINT (p->pid))
        return;
      }
  
    switch (signo)
      {
***************
*** 5210,5216 ****
        kill (gid, signo);
      }
  #else /* ! defined (TIOCSIGSEND) */
!   EMACS_KILLPG (-gid, signo);
  #endif /* ! defined (TIOCSIGSEND) */
  }
  
--- 5213,5219 ----
        kill (gid, signo);
      }
  #else /* ! defined (TIOCSIGSEND) */
!   EMACS_KILLPG (gid, signo);
  #endif /* ! defined (TIOCSIGSEND) */
  }
  



reply via email to

[Prev in Thread] Current Thread [Next in Thread]