From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 66461 invoked by alias); 22 Jan 2020 10:06:11 -0000 Mailing-List: contact cygwin-cvs-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cygwin-cvs-owner@cygwin.com Received: (qmail 66443 invoked by uid 9078); 22 Jan 2020 10:06:11 -0000 Date: Wed, 22 Jan 2020 10:06:00 -0000 Message-ID: <20200122100611.66442.qmail@sourceware.org> Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Corinna Vinschen To: cygwin-cvs@sourceware.org Subject: [newlib-cygwin] Cygwin: pty: Introduce disable_pcon in environment CYGWIN. X-Act-Checkin: newlib-cygwin X-Git-Author: Takashi Yano X-Git-Refname: refs/heads/master X-Git-Oldrev: da4ee7d60b9ff0bcdc081609a4467adb428d58e6 X-Git-Newrev: cdf5db22f17b6f8e274168e3ff549f67d662bfb1 X-SW-Source: 2020-q1/txt/msg00023.txt https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=cdf5db22f17b6f8e274168e3ff549f67d662bfb1 commit cdf5db22f17b6f8e274168e3ff549f67d662bfb1 Author: Takashi Yano Date: Tue Jan 21 22:25:13 2020 +0900 Cygwin: pty: Introduce disable_pcon in environment CYGWIN. - 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. Diff: --- winsup/cygwin/environ.cc | 1 + winsup/cygwin/fhandler_tty.cc | 2 ++ winsup/cygwin/globals.cc | 1 + winsup/doc/cygwinenv.xml | 6 ++++++ 4 files changed, 10 insertions(+) diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index 8c5ce64..7eb4780 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 50f0378..1710f25 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -3145,6 +3145,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 ebe8b56..a9648fe 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; diff --git a/winsup/doc/cygwinenv.xml b/winsup/doc/cygwinenv.xml index 6f67cb9..67592cb 100644 --- a/winsup/doc/cygwinenv.xml +++ b/winsup/doc/cygwinenv.xml @@ -99,6 +99,12 @@ system call will immediately fail. . + +disable_pcon - if set, pseudo console support in +pty will be disabled. This is for programs which do not work properly +under pty with pseudo console enabled. Defaults to not set. + +