[newlib-cygwin] Cygwin: pty: Change the timing of setup_locale() call.

Corinna Vinschen corinna@sourceware.org
Thu Aug 13 08:21:24 GMT 2020


https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=095972ce5b1d319915501a7e381802914bed790c

commit 095972ce5b1d319915501a7e381802914bed790c
Author: Takashi Yano via Cygwin-patches <cygwin-patches@cygwin.com>
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 ())
     {


More information about the Cygwin-cvs mailing list