[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]]
!!! 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. */
What happens if you change USG to 0 in that conditional?
Does subtty get set up properly? Does everything work after that?
I suppose that what you wanted is to execute the code inside the #ifndef
so I have replaced
#ifndef USG
by
#ifndef THIS_IS_NOT_DEFINED
(replaced USG by 0 was giving a compilation error).
After this, the following works properly:
M-x shell
cat
C-c C-c
(or Signals -> Break)
Note however that it is still needed to initialise int gid = 1;
in process_send_signal to have C-c C-c killing the cat. If I remove
the initialisation of int gid; then C-c C-c does not work while
Signals -> Break works.
Also, independent of that, if you take away the #if 0 that currently
surrounds these two lines, and make them unconditional,
if (err == -1)
gid = - XFASTINT (p->pid);
does that fix the problem?
(NB: in emacs-21.2, it is not #if 0
but #ifdef pfa).
Yes, it also fixes the problem. But I think this is just another way to put
any value in gid which makes the rest of the code work.
If I put gid = 12345; it works as good as if I put gid = - XFASTINT
(p->pid)
The ioctl TIOCPGRP still fails (err = -1, errno= 25 ENOTTY).
But any value in gid is ok because when TIOCSIGSEND is defined, gid is only
used afterwards to compare to -1.
After, when TIOCSIGSEND is defined and current_group is not nil, gid is
unused to send the signal.