Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTakashi Yano <takashi.yano@nifty.ne.jp>2021-12-12 15:20:47 +0300
committerTakashi Yano <takashi.yano@nifty.ne.jp>2021-12-12 15:46:24 +0300
commite91ea41ef1be3d3e52c451c7bd691e0c2b7de910 (patch)
tree2efdb9072b7958e168ea9d909df2f9803b7ac3f8
parentacc44e09d1d06ae8fdf96ea8d7272de10dd6007b (diff)
Cygwin: pty: Fix Ctrl-C handling for non-cygwin apps in background.
- With pseudo console enabled, if the non-cygwin app is started in the background and put it into the foreground, the process cannot be stopped by Ctrl-C. This patch fixes the issue.
-rw-r--r--winsup/cygwin/fhandler_tty.cc9
1 files changed, 6 insertions, 3 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index 4f135839d..37e27f34a 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -2249,9 +2249,12 @@ fhandler_pty_master::write (const void *ptr, size_t len)
&mbp);
}
- if ((ti.c_lflag & ISIG) && !(ti.c_lflag & NOFLSH)
- && memchr (buf, '\003', nlen))
- get_ttyp ()->discard_input = true;
+ if ((ti.c_lflag & ISIG) && memchr (buf, '\003', nlen))
+ {
+ get_ttyp ()->kill_pgrp (SIGINT);
+ if (!(ti.c_lflag & NOFLSH))
+ get_ttyp ()->discard_input = true;
+ }
DWORD n;
WriteFile (to_slave_nat, buf, nlen, &n, NULL);
ReleaseMutex (input_mutex);