https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=22953c530ce5d4b00d161f36774b1ad246a892db

commit 22953c530ce5d4b00d161f36774b1ad246a892db
Author: Takashi Yano <[email protected]>
Date:   Sun Dec 12 21:26:57 2021 +0900

    Cygwin: console: Fix console mode of non-cygwin apps in background.
    
    - 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.

Diff:
---
 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..bea4d0194 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 ());
                }
            }

Reply via email to