* fhandler_termios.cc (fhandler_termios::tcgetpgrp): Only return
valid pgid if tty is controlling tty. Set errno to ENOTTY and
return -1 otherwise.
(fhandler_pty_master::tcgetpgrp): New function. Return 0 for
master side of pty if it's not the controlling tty of the process.
+2009-10-07 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler.h (fhandler_pty_master::tcgetpgrp): Declare.
+ * fhandler_termios.cc (fhandler_termios::tcgetpgrp): Only return
+ valid pgid if tty is controlling tty. Set errno to ENOTTY and
+ return -1 otherwise.
+ (fhandler_pty_master::tcgetpgrp): New function. Return 0 for
+ master side of pty if it's not the controlling tty of the process.
+
2009-10-05 Charles Wilson <cygwin@cwilson.fastmail.fm>
Add cygwin wrapper for ExitProcess and TerminateProcess.
int dup (fhandler_base *);
void fixup_after_fork (HANDLE parent);
void fixup_after_exec ();
+ int tcgetpgrp ();
};
class fhandler_tty_master: public fhandler_pty_master
int
fhandler_termios::tcgetpgrp ()
{
- return tc->pgid;
+ if (myself->ctty != -1 && myself->ctty == tc->ntty)
+ return tc->pgid;
+ set_errno (ENOTTY);
+ return -1;
+}
+
+int
+fhandler_pty_master::tcgetpgrp ()
+{
+ return myself->ctty != -1 && myself->ctty == tc->ntty ? tc->pgid : 0;
}
void