[Top][All Lists]
[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]]
Hi, I installed the patch to process.c, added the line to hpux11.h, took out
the change of Philippe's in atimer.c, uncommented the lines in hpux11.h that I
had commented out (the POSIX stuff), then compiled it with HP's cc.
Results: 1) I can now abort a running job in a shell fine.
2) (sleep-for 3) still never comes back.
3) Cursor doesn't blink and still goes away until you touch a key.
Thanks for all your efforts.
===========================================================================
Recently Richard Stallman <address@hidden> wrote:
> Date: Tue, 16 Jul 2002 07:29:00 -0600 (MDT)
> From: Richard Stallman <address@hidden>
> CC: address@hidden, address@hidden,
> address@hidden, address@hidden
> Reply-to: address@hidden
>
> 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) */
> }
>
>
>