* dcrt0.cc (dll_crt0_0): Don't bother with setting init_console_handler here

since it will be set later when we discover if we have a ctty or not.
* exceptions.cc (init_console_handler): Properly remove NULL handler.
This commit is contained in:
Christopher Faylor 2006-03-20 01:11:30 +00:00
parent c9b5e25474
commit cba9ecfffd
3 changed files with 11 additions and 7 deletions

View File

@ -1,3 +1,10 @@
2006-03-19 Christopher Faylor <cgf@timesys.com>
* dcrt0.cc (dll_crt0_0): Don't bother with setting init_console_handler
here since it will be set later when we discover if we have a ctty or
not.
* exceptions.cc (init_console_handler): Properly remove NULL handler.
2006-03-18 Christopher Faylor <cgf@timesys.com> 2006-03-18 Christopher Faylor <cgf@timesys.com>
* pinfo.h (EXITCODE_OK): Define new constant. * pinfo.h (EXITCODE_OK): Define new constant.

View File

@ -707,10 +707,7 @@ dll_crt0_0 ()
child_proc_info = get_cygwin_startup_info (); child_proc_info = get_cygwin_startup_info ();
if (!child_proc_info) if (!child_proc_info)
{
memory_init (); memory_init ();
init_console_handler (!!GetConsoleCP ());
}
else else
{ {
cygwin_user_h = child_proc_info->user_h; cygwin_user_h = child_proc_info->user_h;

View File

@ -104,8 +104,9 @@ init_console_handler (bool install_handler)
{ {
BOOL res; BOOL res;
while (SetConsoleCtrlHandler (ctrl_c_handler, FALSE)) SetConsoleCtrlHandler (ctrl_c_handler, FALSE);
continue; if (wincap.has_null_console_handler_routine ())
SetConsoleCtrlHandler (NULL, FALSE);
if (install_handler) if (install_handler)
res = SetConsoleCtrlHandler (ctrl_c_handler, TRUE); res = SetConsoleCtrlHandler (ctrl_c_handler, TRUE);
else if (wincap.has_null_console_handler_routine ()) else if (wincap.has_null_console_handler_routine ())
@ -114,7 +115,6 @@ init_console_handler (bool install_handler)
res = SetConsoleCtrlHandler (dummy_ctrl_c_handler, TRUE); res = SetConsoleCtrlHandler (dummy_ctrl_c_handler, TRUE);
if (!res) if (!res)
system_printf ("SetConsoleCtrlHandler failed, %E"); system_printf ("SetConsoleCtrlHandler failed, %E");
return;
} }
extern "C" void extern "C" void