From b23705f60b20d6f4f2160732b97a84ef31ef202f Mon Sep 17 00:00:00 2001 From: Takashi Yano Date: Sun, 15 Sep 2019 13:05:53 +0900 Subject: [PATCH] Cygwin: pty: Change the timing of clearing screen. - The code which clears screen is moved from reset_switch_to_pcon() to fixup_after_exec() because it seems not too early even at this timing. --- 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 3bf8d0b75..5c27510be 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -1041,19 +1041,6 @@ skip_console_setting: void fhandler_pty_slave::reset_switch_to_pcon (void) { - 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; - } - if (isHybrid) this->set_switch_to_pcon (fd); if (get_ttyp ()->pcon_pid && @@ -2742,6 +2729,19 @@ 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 ();