* 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:
parent
3ee7760b3e
commit
05c98e076e
@ -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
|
||||
|
@ -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
|
||||
|
@ -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 */
|
||||
|
Loading…
Reference in New Issue
Block a user