4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-18 23:12:15 +08:00

Cygwin: pty: Make GNU screen and tmux work in ConEmu cygwin-connector.

Fixes: 3721a756b0d8 ("Cygwin: console: Make the console accessible from other terminals.")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
This commit is contained in:
Takashi Yano 2024-02-14 23:10:04 +09:00
parent 0795afd68e
commit 79db49a184

View File

@ -970,7 +970,7 @@ fhandler_pty_slave::open (int flags, mode_t)
set_output_handle (to_master_local); set_output_handle (to_master_local);
if (_major (myself->ctty) == DEV_CONS_MAJOR if (_major (myself->ctty) == DEV_CONS_MAJOR
&& !(!pinfo (myself->ppid) && getenv ("ConEmuPID"))) && !(!pinfo (myself->ppid) && GetModuleHandle ("ConEmuHk64.dll")))
/* This process is supposed to be a master process which is /* This process is supposed to be a master process which is
running on console. Invisible console will be created in running on console. Invisible console will be created in
primary slave process to prevent overriding code page primary slave process to prevent overriding code page
@ -1049,6 +1049,8 @@ fhandler_pty_slave::close ()
fhandler_pty_common::close (); fhandler_pty_common::close ();
if (!ForceCloseHandle (output_mutex)) if (!ForceCloseHandle (output_mutex))
termios_printf ("CloseHandle (output_mutex<%p>), %E", output_mutex); termios_printf ("CloseHandle (output_mutex<%p>), %E", output_mutex);
if (!get_ttyp ()->invisible_console_pid && myself->ctty == CTTY_RELEASED)
FreeConsole();
if (get_ttyp ()->invisible_console_pid if (get_ttyp ()->invisible_console_pid
&& !pinfo (get_ttyp ()->invisible_console_pid)) && !pinfo (get_ttyp ()->invisible_console_pid))
get_ttyp ()->invisible_console_pid = 0; get_ttyp ()->invisible_console_pid = 0;