[PATCH] Cygwin: pty: Change the timing of setup_locale() call.

Takashi Yano takashi.yano@nifty.ne.jp
Thu Aug 13 05:42:20 GMT 2020


- 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.
---
 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 ())
     {
-- 
2.27.0



More information about the Cygwin-patches mailing list