* fhandler_termios.cc (tcinit): Remove previously applied change.

Replace with...
	* fhandler_tty.cc (fhandler_tty_slave::init): Become process group
	leader if called from dtable::init_std_file_from_handle.  Add comment
	to explain.
This commit is contained in:
Corinna Vinschen 2010-04-21 19:36:40 +00:00
parent 3ee7760b3e
commit 05c98e076e
3 changed files with 20 additions and 9 deletions

View File

@ -1,3 +1,12 @@
2010-04-21 Corinna Vinschen <corinna@vinschen.de>
Christopher Faylor <me+cygwin@cgf.cx>
* fhandler_termios.cc (tcinit): Remove previously applied change.
Replace with...
* fhandler_tty.cc (fhandler_tty_slave::init): Become process group
leader if called from dtable::init_std_file_from_handle. Add comment
to explain.
2010-04-21 Corinna Vinschen <corinna@vinschen.de>
* dtable.cc (dtable::init_std_file_from_handle): Set access mask for

View File

@ -1,7 +1,7 @@
/* fhandler_termios.cc
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009
Red Hat, Inc.
Copyright 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2009,
2010 Red Hat, Inc.
This file is part of Cygwin.
@ -58,13 +58,6 @@ fhandler_termios::tcinit (tty_min *this_tc, bool force)
tc->pgid = myself->pgid;
tc->initialized (true);
}
else if (myself->ppid == 1 && myself->pid == myself->pgid
&& myself->pgid == myself->sid)
/* We have been started from a non-Cygwin process. So we just become
tty process group leader.
TODO: Investigate how SIGTTIN should be handled with pure-windows
programs. */
tc->pgid = myself->pgid;
}
int

View File

@ -719,6 +719,15 @@ fhandler_tty_slave::init (HANDLE f, DWORD a, mode_t)
flags = O_RDWR;
int ret = open (flags);
if (ret && !cygwin_finished_initializing)
{
/* This only occurs when called from dtable::init_std_file_from_handle
We have been started from a non-Cygwin process. So we should become
tty process group leader.
TODO: Investigate how SIGTTIN should be handled with pure-windows
programs. */
tc->pgid = myself->pgid;
}
if (f != INVALID_HANDLE_VALUE)
CloseHandle (f); /* Reopened by open */