[PATCH] Cygwin: pty: Skip term_has_pcon_cap() if pseudo console is disabled.

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Cygwin: pty: Skip term_has_pcon_cap() if pseudo console is disabled.

cygwin-patches mailing list
- This patch skips unnecessary term_has_pcon_cap() call if pseudo
  console is disabled.
---
 winsup/cygwin/fhandler_tty.cc | 2 --
 winsup/cygwin/spawn.cc        | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index a6dc8e93b..845e51184 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -2459,8 +2459,6 @@ fhandler_pty_slave::setup_pseudoconsole (STARTUPINFOEXW *si, bool nopcon)
   if (get_ttyp ()->pcon_pid && get_ttyp ()->pcon_pid != myself->pid
       && !!pinfo (get_ttyp ()->pcon_pid))
     return false;
-  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/spawn.cc b/winsup/cygwin/spawn.cc
index 83b216f52..5057af932 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -656,7 +656,7 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
       if (!iscygwin () && ptys_primary && is_console_app (runpath))
  {
   bool nopcon = mode != _P_OVERLAY && mode != _P_WAIT;
-  if (!ptys_primary->term_has_pcon_cap (envblock))
+  if (disable_pcon || !ptys_primary->term_has_pcon_cap (envblock))
     nopcon = true;
   if (ptys_primary->setup_pseudoconsole (&si_pcon, nopcon))
     {
--
2.29.2

Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Cygwin: pty: Skip term_has_pcon_cap() if pseudo console is disabled.

cygwin-patches mailing list
On Dec 14 17:25, Takashi Yano via Cygwin-patches wrote:

> - This patch skips unnecessary term_has_pcon_cap() call if pseudo
>   console is disabled.
> ---
>  winsup/cygwin/fhandler_tty.cc | 2 --
>  winsup/cygwin/spawn.cc        | 2 +-
>  2 files changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
> index a6dc8e93b..845e51184 100644
> --- a/winsup/cygwin/fhandler_tty.cc
> +++ b/winsup/cygwin/fhandler_tty.cc
> @@ -2459,8 +2459,6 @@ fhandler_pty_slave::setup_pseudoconsole (STARTUPINFOEXW *si, bool nopcon)
>    if (get_ttyp ()->pcon_pid && get_ttyp ()->pcon_pid != myself->pid
>        && !!pinfo (get_ttyp ()->pcon_pid))
>      return false;
> -  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/spawn.cc b/winsup/cygwin/spawn.cc
> index 83b216f52..5057af932 100644
> --- a/winsup/cygwin/spawn.cc
> +++ b/winsup/cygwin/spawn.cc
> @@ -656,7 +656,7 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
>        if (!iscygwin () && ptys_primary && is_console_app (runpath))
>   {
>    bool nopcon = mode != _P_OVERLAY && mode != _P_WAIT;
> -  if (!ptys_primary->term_has_pcon_cap (envblock))
> +  if (disable_pcon || !ptys_primary->term_has_pcon_cap (envblock))
>      nopcon = true;
>    if (ptys_primary->setup_pseudoconsole (&si_pcon, nopcon))
>      {
> --
> 2.29.2

All three patches pushed.

Thanks,
Corinna