- For programs which does not work properly with pseudo console, disable_pcon in environment CYGWIN is introduced. If disable_pcon is set, pseudo console support is disabled. --- winsup/cygwin/environ.cc | 1 + winsup/cygwin/fhandler_tty.cc | 2 ++ winsup/cygwin/globals.cc | 1 + 3 files changed, 4 insertions(+)
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index 8c5ce64e1..7eb4780a8 100644 --- a/winsup/cygwin/environ.cc +++ b/winsup/cygwin/environ.cc @@ -120,6 +120,7 @@ static struct parse_thing {"reset_com", {&reset_com}, setbool, NULL, {{false}, {true}}}, {"wincmdln", {&wincmdln}, setbool, NULL, {{false}, {true}}}, {"winsymlinks", {func: set_winsymlinks}, isfunc, NULL, {{0}, {0}}}, + {"disable_pcon", {&disable_pcon}, setbool, NULL, {{false}, {true}}}, {NULL, {0}, setdword, 0, {{0}, {0}}} }; diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index fff5bebe3..a5db0967b 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -3132,6 +3132,8 @@ is_running_as_service (void) bool fhandler_pty_master::setup_pseudoconsole () { + if (disable_pcon) + return false; /* If the legacy console mode is enabled, pseudo console seems not to work as expected. To determine console mode, registry key ForceV2 in HKEY_CURRENT_USER\Console is checked. */ diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc index ebe8b569f..a9648fe6a 100644 --- a/winsup/cygwin/globals.cc +++ b/winsup/cygwin/globals.cc @@ -71,6 +71,7 @@ bool pipe_byte; bool reset_com; bool wincmdln; winsym_t allow_winsymlinks = WSYM_sysfile; +bool disable_pcon; bool NO_COPY in_forkee; -- 2.21.0