https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=db6269c2aee5f797cb8e2c71ac902e50acd29b20
commit db6269c2aee5f797cb8e2c71ac902e50acd29b20 Author: Takashi Yano <[email protected]> Date: Tue Mar 3 22:00:56 2026 +0900 Cygwin: pty: Do not switch input to to_nat if native app is background If the native (non-cygwin) app is started as background process, the input should be kept in to_cyg mode because input data should go to the cygwin shell that start the non-cygwin app. However, currently it is switched to to_nat mode in a short time and reverted to to_cyg mode just after that. With this patch, to avoid this behaviour, switching to to_nat mode is inhibited by checking PGID of the process, that is newly created for a background process and differs from PGID of the tty. Fixes: Fixes: 9fc746d17dc3 ("Cygwin: pty: Fix transferring type-ahead input between input pipes.") Signed-off-by: Takashi Yano <[email protected]> Reviewed-by: Johannes Schindelin <[email protected]> Diff: --- winsup/cygwin/fhandler/pty.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/winsup/cygwin/fhandler/pty.cc b/winsup/cygwin/fhandler/pty.cc index b59f54096..59396c4a7 100644 --- a/winsup/cygwin/fhandler/pty.cc +++ b/winsup/cygwin/fhandler/pty.cc @@ -2204,6 +2204,7 @@ fhandler_pty_master::write (const void *ptr, size_t len) { /* Pseudo console initialization has been done in above code. */ pinfo pp (get_ttyp ()->pcon_start_pid); if (get_ttyp ()->switch_to_nat_pipe + && pp && pp->pgid == get_ttyp ()->getpgid () && get_ttyp ()->pty_input_state_eq (tty::to_cyg)) { /* This accept_input() call is needed in order to transfer input
