summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Yano <takashi.yano@nifty.ne.jp>2019-10-16 21:34:09 +0900
committerKen Brown <kbrown@cornell.edu>2019-10-16 15:15:47 -0400
commit43d7f33e2cab414a9f42a03b3347bc41e029dbbc (patch)
treec635d375c5bf9c9e9f71169ac4d554451362535b
parent9bedd6807dc3a1ad6c80e62a6a7aae27ca769de0 (diff)
downloadcygnal-43d7f33e2cab414a9f42a03b3347bc41e029dbbc.tar.gz
cygnal-43d7f33e2cab414a9f42a03b3347bc41e029dbbc.tar.bz2
cygnal-43d7f33e2cab414a9f42a03b3347bc41e029dbbc.zip
Cygwin: pty: Change the timing of clear screen.
-rw-r--r--winsup/cygwin/fhandler_tty.cc26
1 files changed, 13 insertions, 13 deletions
diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc
index dbb035ff3..da6119dfb 100644
--- a/winsup/cygwin/fhandler_tty.cc
+++ b/winsup/cygwin/fhandler_tty.cc
@@ -2716,6 +2716,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
@@ -2759,19 +2772,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 ();