* dcrt0.cc (_dll_crt0): Accommodate breaking apart of early_stuff_init.

* exceptions.cc (early_stuff_init): Delete.
(init_console_handler): New function - top half of early_stuff_init.
(init_global_security): New function - bottom half of early_stuff_init.
(sig_handle): Avoid special hExeced test for SIGINT.  Just terminate the
captive process.
(signal_exit): Add debugging output.
* fhandler_tty.cc (fhandler_tty_slave::open): Don't allocate a console if one
already seems to exist.  Properly initialize ctrl-c handling if we do allocate
a console.
* winsup.h (early_stuff_init): Delete declaration.
(init_console_handler): New declaration.
(init_global_security): New declaration.
This commit is contained in:
Christopher Faylor
2003-09-12 06:41:53 +00:00
parent 3a25635489
commit fb3dd71676
5 changed files with 36 additions and 9 deletions

View File

@@ -555,8 +555,8 @@ fhandler_tty_slave::open (path_conv *, int flags, mode_t)
set_output_handle (to_master_local);
set_open_status ();
if (fhandler_console::open_fhs++ == 0 && !output_done_event
&& wincap.pty_needs_alloc_console ())
if (fhandler_console::open_fhs++ == 0 && !GetConsoleCP ()
&& !output_done_event && wincap.pty_needs_alloc_console ())
{
BOOL b;
HWINSTA h = CreateWindowStation (NULL, 0, GENERIC_READ | GENERIC_WRITE, &sec_none_nih);
@@ -567,8 +567,10 @@ fhandler_tty_slave::open (path_conv *, int flags, mode_t)
termios_printf ("SetProcessWindowStation %d, %E", b);
}
b = AllocConsole (); // will cause flashing if workstation
// stuff fails
termios_printf ("%d = AllocConsole ()", b);
// stuff fails
termios_printf ("%d = AllocConsole (), %E", b);
if (b)
init_console_handler ();
}
termios_printf ("incremented open_fhs %d", fhandler_console::open_fhs);
termios_printf ("tty%d opened", ttynum);