]> sourceware.org Git - newlib-cygwin.git/commitdiff
Cygwin: console: Fix console mode of non-cygwin apps in background.
authorTakashi Yano <takashi.yano@nifty.ne.jp>
Sun, 12 Dec 2021 12:26:57 +0000 (21:26 +0900)
committerTakashi Yano <takashi.yano@nifty.ne.jp>
Sun, 12 Dec 2021 12:46:37 +0000 (21:46 +0900)
- 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

index e160fa3bb592c8fb9e40cda8a6b4a714a74f9977..bea4d019428ace97acebbd2d1f67921787943664 100644 (file)
@@ -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 ());
                }
            }
This page took 0.033759 seconds and 5 git commands to generate.