summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/pinfo.cc2
2 files changed, 6 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index af2230ce9..299caf708 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx>
+ * pinfo.cc (_pinfo::set_ctty): Don't reset myself->{pgid,sid} if
+ terminal has no pgid or sid settings.
+
+2011-06-03 Christopher Faylor <me.cygwin2011@cgf.cx>
+
* fhandler.cc (fhandler_base_overlapped::wait_overlapped): Only raise
SIGPIPE when writing.
diff --git a/winsup/cygwin/pinfo.cc b/winsup/cygwin/pinfo.cc
index c81786359..8a1780c82 100644
--- a/winsup/cygwin/pinfo.cc
+++ b/winsup/cygwin/pinfo.cc
@@ -404,7 +404,7 @@ _pinfo::set_ctty (tty_min *tc, int flags, fhandler_termios *fh)
syscall_printf ("attaching %s sid %d, pid %d, pgid %d, tty->pgid %d, tty->sid %d",
__ctty (), sid, pid, pgid, tc->getpgid (), tc->getsid ());
if (!cygwin_finished_initializing && !myself->cygstarted
- && myself->pgid == myself->pid)
+ && myself->pgid == myself->pid && tc->getpgid () && tc->getsid ())
{
myself->pgid = tc->getpgid ();
myself->sid = tc->getsid ();