* 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:
@@ -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);
|
||||
|
Reference in New Issue
Block a user