https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=095972ce5b1d319915501a7e381802914bed790c
commit 095972ce5b1d319915501a7e381802914bed790c Author: Takashi Yano via Cygwin-patches <[email protected]> Date: Thu Aug 13 14:42:20 2020 +0900 Cygwin: pty: Change the timing of setup_locale() call. - If native app is exec()'ed in a new pty, setup_locale() loses the chance to be called. For example, with "mintty -e cmd", charset conversion does not work as expected. This patch fixes the issue. Diff: --- winsup/cygwin/fhandler_tty.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/winsup/cygwin/fhandler_tty.cc b/winsup/cygwin/fhandler_tty.cc index 92449ad7e..40b79bfbb 100644 --- a/winsup/cygwin/fhandler_tty.cc +++ b/winsup/cygwin/fhandler_tty.cc @@ -2983,6 +2983,10 @@ 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", ""); + + /* Set locale */ + if (get_ttyp ()->term_code_page == 0) + setup_locale (); } void @@ -3020,10 +3024,6 @@ fhandler_pty_slave::fixup_after_exec () } } - /* Set locale */ - if (get_ttyp ()->term_code_page == 0) - setup_locale (); - /* Hook Console API */ if (get_pseudo_console ()) {
