From aea6940043826f88f768d638dbbc6896ab9be494 Mon Sep 17 00:00:00 2001 From: Takashi Yano Date: Sun, 8 May 2022 22:04:38 +0900 Subject: [PATCH] Cygwin: pty: Change the condition to send Ctrl-C event. - Previously, non-cygwin app started by "script -c " receives Ctrl-C twice. This patch fixes the issue. --- winsup/cygwin/fhandler_termios.cc | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/winsup/cygwin/fhandler_termios.cc b/winsup/cygwin/fhandler_termios.cc index 4eff5eab3..735423bf2 100644 --- a/winsup/cygwin/fhandler_termios.cc +++ b/winsup/cygwin/fhandler_termios.cc @@ -324,9 +324,6 @@ fhandler_termios::process_sigs (char c, tty* ttyp, fhandler_termios *fh) pid_t pgid = ttyp->pgid; /* The name *_nat stands for 'native' which means non-cygwin apps. */ - pinfo leader (pgid); - bool cyg_leader = /* The process leader is a cygwin process. */ - leader && !(leader->process_state & PID_NOTCYGWIN); bool ctrl_c_event_sent = false; bool need_discard_input = false; bool pg_with_nat = false; /* The process group has non-cygwin processes. */ @@ -373,9 +370,9 @@ fhandler_termios::process_sigs (char c, tty* ttyp, fhandler_termios *fh) instead. */ if (p->process_state & PID_NEW_PG) GenerateConsoleCtrlEvent (CTRL_BREAK_EVENT, p->dwProcessId); - else if ((!fh || fh->need_send_ctrl_c_event () || cyg_leader) - && !ctrl_c_event_sent) /* cyg_leader is needed by GDB - with non-cygwin inferior */ + else if ((!fh || fh->need_send_ctrl_c_event () + || p->exec_dwProcessId == p->dwProcessId) + && !ctrl_c_event_sent) { GenerateConsoleCtrlEvent (CTRL_C_EVENT, 0); ctrl_c_event_sent = true;