[newlib-cygwin] Cygwin: console: Fix the console mode for background non-cygwin app
Takashi Yano
tyan0@sourceware.org
Fri May 9 22:25:06 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=854150fda3106955762c8b6b915f91e3ba7a29ae
commit 854150fda3106955762c8b6b915f91e3ba7a29ae
Author: Takashi Yano <takashi.yano@nifty.ne.jp>
Date: Sat May 10 07:07:32 2025 +0900
Cygwin: console: Fix the console mode for background non-cygwin app
In the commit 0bfd91d57863, the behaviour of the tty::restore was
changed so that the console mode is set to the previouslly stored
console mode. Therefore, the console mode for the background non-
cygwin app should not be set to tty::restore anymore in setup_for_
non_cygwin_app(). This should have been fixed in that commit.
This patch belatedly fixes it.
Fixes: 0bfd91d57863 ("Cygwin: console: tty::restore really restores the previous mode")
Signed-off-by: Takashi Yano <takashi.yano@nifty.ne.jp>
Diff:
---
winsup/cygwin/fhandler/console.cc | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/winsup/cygwin/fhandler/console.cc b/winsup/cygwin/fhandler/console.cc
index 16352d04d..5a55d122e 100644
--- a/winsup/cygwin/fhandler/console.cc
+++ b/winsup/cygwin/fhandler/console.cc
@@ -905,13 +905,14 @@ fhandler_console::setup_for_non_cygwin_app ()
/* Setting-up console mode for non-cygwin app. */
/* If conmode is set to tty::native for non-cygwin apps
in background, tty settings of the shell is reflected
- to the console mode of the app. So, use tty::restore
- for background process instead. */
- tty::cons_mode conmode =
- (get_ttyp ()->getpgid ()== myself->pgid) ? tty::native : tty::restore;
- set_input_mode (conmode, &tc ()->ti, get_handle_set ());
- set_output_mode (conmode, &tc ()->ti, get_handle_set ());
- set_disable_master_thread (true, this);
+ to the console mode of the app. So, do not change the
+ console mode. */
+ if (get_ttyp ()->getpgid () == myself->pgid)
+ {
+ set_input_mode (tty::native, &tc ()->ti, get_handle_set ());
+ set_output_mode (tty::native, &tc ()->ti, get_handle_set ());
+ set_disable_master_thread (true, this);
+ }
}
void
More information about the Cygwin-cvs
mailing list