*** process.c ons feb 12 22:24:25 2003 --- emacsRC/emacs/src/process.c lör feb 15 13:22:21 2003 *************** *** 3755,3760 **** --- 3755,3772 ---- else err = ioctl (XINT (p->infd), TIOCGPGRP, &gid); + if (err == -1 && NILP (p->subtty) && ! NILP (p->tty_name)) + { + int fd; + fd = emacs_open (XSTRING (p->tty_name)->data, O_RDONLY, 0); + + if (fd != -1) + { + err = ioctl (fd, TIOCGPGRP, &gid); + emacs_close (fd); + } + } + #ifdef pfa if (err == -1) gid = - XFASTINT (p->pid); *************** *** 3821,3827 **** /* gid may be a pid, or minus a pgrp's number */ #ifdef TIOCSIGSEND if (!NILP (current_group)) ! ioctl (XINT (p->infd), TIOCSIGSEND, signo); else { gid = - XFASTINT (p->pid); --- 3833,3845 ---- /* gid may be a pid, or minus a pgrp's number */ #ifdef TIOCSIGSEND if (! NILP (current_group)) ! { ! if (ioctl (XINT (p->infd), TIOCSIGSEND, signo) == -1) ! { ! EMACS_KILLPG (gid, signo); ! fprintf(stderr, "Kill 2: %d\n", gid); ! } ! } else { gid = - XFASTINT (p->pid);