[PATCH 3/3] Cygwin: console: Fix console mode of non-cygwin apps in background.

Takashi Yano takashi.yano@nifty.ne.jp
Sun Dec 12 13:05:01 GMT 2021


- If the non-cygwin app is started in the background in console, the
  console mode is broken for the app. This patch fixes the issue.
---
 winsup/cygwin/spawn.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index e160fa3bb..465fb5fc3 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -631,11 +631,14 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
 		      cons_ti = &((tty *)cons->tc ())->ti;
 		      cons_owner = cons->get_owner ();
 		    }
+		  tty::cons_mode conmode =
+		    (ctty_pgid && ctty_pgid == myself->pgid) ?
+		    tty::native : tty::restore;
 		  if (fd == 0)
-		    fhandler_console::set_input_mode (tty::native,
+		    fhandler_console::set_input_mode (conmode,
 					   cons_ti, cons->get_handle_set ());
 		  else if (fd == 1 || fd == 2)
-		    fhandler_console::set_output_mode (tty::native,
+		    fhandler_console::set_output_mode (conmode,
 					   cons_ti, cons->get_handle_set ());
 		}
 	    }
-- 
2.34.1



More information about the Cygwin-patches mailing list