summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog8
-rw-r--r--winsup/cygwin/fhandler_console.cc6
2 files changed, 10 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index ae09ed80d..8d1b8cf6e 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,13 @@
2012-03-02 Corinna Vinschen <corinna@vinschen.de>
+ * fhandler_console.cc (fhandler_console::input_tcsetattr): Revert
+ prevois patch.
+ (fhandler_console::open_setup): Install Ctrl-C handler here, if this
+ console is the controlling tty and the process hasn't been started by
+ a Cygwin process.
+
+2012-03-02 Corinna Vinschen <corinna@vinschen.de>
+
* fhandler_console.cc (fhandler_console::input_tcsetattr): Set the
state of the Ctrl-C handler depending on the setting of
ENABLE_PROCESSED_INPUT.
diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc
index f4e8b10e6..4ed56635f 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -828,7 +828,8 @@ void
fhandler_console::open_setup (int flags)
{
set_flags ((flags & ~O_TEXT) | O_BINARY);
- myself->set_ctty (this, flags);
+ if (myself->set_ctty (this, flags) && !myself->cygstarted)
+ init_console_handler (true);
}
int
@@ -1009,9 +1010,6 @@ fhandler_console::input_tcsetattr (int, struct termios const *t)
res = SetConsoleMode (get_io_handle (), flags) ? 0 : -1;
if (res < 0)
__seterrno ();
- else
- /* Set state of ctrl_c handler depending on ENABLE_PROCESSED_INPUT. */
- init_console_handler (flags & ENABLE_PROCESSED_INPUT);
syscall_printf ("%d = tcsetattr(,%x) enable flags %p, c_lflag %p iflag %p",
res, t, flags, t->c_lflag, t->c_iflag);
}