diff options
author | Christopher Faylor <me@cgf.cx> | 2005-06-30 02:52:14 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2005-06-30 02:52:14 +0000 |
commit | 5b3e1f7358338fa4fe7223fb34df9a06fda7e97c (patch) | |
tree | 8627ea790d932d24c96ba83d8cfac61d59560126 /winsup/cygwin/exceptions.cc | |
parent | d573a471af3908faf346e61d51e04944ca33a38e (diff) | |
download | cygnal-5b3e1f7358338fa4fe7223fb34df9a06fda7e97c.tar.gz cygnal-5b3e1f7358338fa4fe7223fb34df9a06fda7e97c.tar.bz2 cygnal-5b3e1f7358338fa4fe7223fb34df9a06fda7e97c.zip |
* cygerrno.h: Make multi-inclusion safe.
* fhandler_termios.cc (fhandler_termios::tcsetpgrp): Deal with EINTR.
* dcrt0.cc (dll_crt0_0): Accommodate init_console_handler argument change.
* winsup.h: Ditto.
* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
* exceptions.cc (init_console_handler): Ditto. Ignore console events if we're
not attached to a terminal.
* fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
* wincap.cc: Implement has_null_console_handler_routine throughout.
* wincap.h: Ditto.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index 6e44b5b21..0e7a09fdf 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -114,11 +114,24 @@ init_exceptions (exception_list *el) init_exception_handler (el, handle_exceptions); } +BOOL WINAPI +dummy_ctrl_c_handler (DWORD dwCtrlType) +{ + return TRUE; +} + void -init_console_handler () +init_console_handler (BOOL install_handler) { + BOOL res; (void) SetConsoleCtrlHandler (ctrl_c_handler, FALSE); - if (!SetConsoleCtrlHandler (ctrl_c_handler, TRUE)) + if (install_handler) + res = SetConsoleCtrlHandler (ctrl_c_handler, TRUE); + else if (wincap.has_null_console_handler_routine ()) + res = SetConsoleCtrlHandler (NULL, TRUE); + else + res = SetConsoleCtrlHandler (dummy_ctrl_c_handler, TRUE); + if (!res) system_printf ("SetConsoleCtrlHandler failed, %E"); } |