[PATCH] Cygwin: pty: Change the timing of clear screen.

Ken Brown kbrown@cornell.edu
Thu Oct 17 14:55:00 GMT 2019


On 10/16/2019 8:34 AM, Takashi Yano wrote:
> ---
>   winsup/cygwin/fhandler_tty.cc | 26 +++++++++++++-------------
>   1 file changed, 13 insertions(+), 13 deletions(-)
> 
> diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
> index 1095c82eb..baf3c9794 100644
> --- a/winsup/cygwin/fhandler_tty.cc
> +++ b/winsup/cygwin/fhandler_tty.cc
> @@ -2714,6 +2714,19 @@ fhandler_pty_slave::fixup_after_fork (HANDLE parent)
>     // fork_fixup (parent, inuse, "inuse");
>     // fhandler_pty_common::fixup_after_fork (parent);
>     report_tty_counts (this, "inherited", "");
> +
> +  if (get_ttyp ()->need_clear_screen)
> +    {
> +      const char *term = getenv ("TERM");
> +      if (term && strcmp (term, "dumb") && !strstr (term, "emacs"))
> +	{
> +	  /* FIXME: Clearing sequence may not be "^[[H^[[J"
> +	     depending on the terminal type. */
> +	  DWORD n;
> +	  WriteFile (get_output_handle_cyg (), "\033[H\033[J", 6, &n, NULL);
> +	}
> +      get_ttyp ()->need_clear_screen = false;
> +    }
>   }
>   
>   void
> @@ -2757,19 +2770,6 @@ fhandler_pty_slave::fixup_after_exec ()
>   	}
>       }
>   
> -  if (get_ttyp ()->need_clear_screen)
> -    {
> -      const char *term = getenv ("TERM");
> -      if (term && strcmp (term, "dumb") && !strstr (term, "emacs"))
> -	{
> -	  /* FIXME: Clearing sequence may not be "^[[H^[[J"
> -	     depending on the terminal type. */
> -	  DWORD n;
> -	  WriteFile (get_output_handle_cyg (), "\033[H\033[J", 6, &n, NULL);
> -	}
> -      get_ttyp ()->need_clear_screen = false;
> -    }
> -
>     /* Set locale */
>     setup_locale ();

This and the previous patch look good to me, but we should probably wait 
for Haubi to confirm that they fix the problems he reported.

Ken


More information about the Cygwin-patches mailing list