From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 7868) id 03026385C422; Wed, 14 Feb 2024 14:29:47 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 03026385C422 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1707920988; bh=FWaDzWbCraripHE3IIs4p2pI0oEp79ffSEJDj5Grn2E=; h=From:To:Subject:Date:From; b=aCkDz/fMxluv9VkS1kkg8NDhNBJB/r4BM/u217j8hZynWL+SRj3Q/ImVIbmiGHbyE fjJgB/HhXaHi5Mema0DH7rForSWLOwRpJVIprPNvAcQgqJcokv3+gns86ioBgpl2ig 4yfP/nDrQ5vYUe0p23/iwCBdMkDhj6sGi2PHEuuM= Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Takashi Yano To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin/cygwin-3_5-branch] Cygwin: pty: Make GNU screen and tmux work in ConEmu cygwin-connector. X-Act-Checkin: newlib-cygwin X-Git-Author: Takashi Yano X-Git-Refname: refs/heads/cygwin-3_5-branch X-Git-Oldrev: 0795afd68eceb0d81501e81d92d7adce2b2f1a92 X-Git-Newrev: 79db49a1846dd15b4a9b6fc5606e402252d1d50e Message-Id: <20240214142948.03026385C422@sourceware.org> Date: Wed, 14 Feb 2024 14:29:47 +0000 (GMT) List-Id: https://sourceware.org/git/gitweb.cgi?p=3Dnewlib-cygwin.git;h=3D79db49a1846= dd15b4a9b6fc5606e402252d1d50e commit 79db49a1846dd15b4a9b6fc5606e402252d1d50e Author: Takashi Yano Date: Wed Feb 14 23:10:04 2024 +0900 Cygwin: pty: Make GNU screen and tmux work in ConEmu cygwin-connector. =20 Fixes: 3721a756b0d8 ("Cygwin: console: Make the console accessible from= other terminals.") Signed-off-by: Takashi Yano Diff: --- winsup/cygwin/fhandler/pty.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc index d31d30b1f..e52590c9d 100644 --- a/winsup/cygwin/fhandler/pty.cc +++ b/winsup/cygwin/fhandler/pty.cc @@ -970,7 +970,7 @@ fhandler_pty_slave::open (int flags, mode_t) set_output_handle (to_master_local); =20 if (_major (myself->ctty) =3D=3D 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 running on console. Invisible console will be created in primary slave process to prevent overriding code page @@ -1049,6 +1049,8 @@ fhandler_pty_slave::close () fhandler_pty_common::close (); if (!ForceCloseHandle (output_mutex)) termios_printf ("CloseHandle (output_mutex<%p>), %E", output_mutex); + if (!get_ttyp ()->invisible_console_pid && myself->ctty =3D=3D CTTY_RELE= ASED) + FreeConsole(); if (get_ttyp ()->invisible_console_pid && !pinfo (get_ttyp ()->invisible_console_pid)) get_ttyp ()->invisible_console_pid =3D 0;