Cygwin: pty: Change the timing of set_locale() call again.
- After commit 095972ce5b
, charset
conversion in mintty is broken if charset is set to other than
UTF-8. This seems to be caused because mintty does not set locale
yet at fork() call. This patch changes the timing of set_locale()
call again to avoid this issue.
This commit is contained in:
parent
095972ce5b
commit
70d02aaca6
@ -2852,6 +2852,9 @@ get_langinfo (char *locale_out, char *charset_out)
|
||||
void
|
||||
fhandler_pty_slave::setup_locale (void)
|
||||
{
|
||||
if (get_ttyp ()->term_code_page != 0)
|
||||
return;
|
||||
|
||||
char locale[ENCODING_LEN + 1] = "C";
|
||||
char charset[ENCODING_LEN + 1] = "ASCII";
|
||||
LCID lcid = get_langinfo (locale, charset);
|
||||
@ -2983,10 +2986,6 @@ 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
|
||||
@ -3024,6 +3023,9 @@ fhandler_pty_slave::fixup_after_exec ()
|
||||
}
|
||||
}
|
||||
|
||||
/* Set locale */
|
||||
setup_locale ();
|
||||
|
||||
/* Hook Console API */
|
||||
if (get_pseudo_console ())
|
||||
{
|
||||
|
@ -628,6 +628,18 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
|
||||
}
|
||||
}
|
||||
|
||||
if (!iscygwin ())
|
||||
{
|
||||
cfd.rewind ();
|
||||
while (cfd.next () >= 0)
|
||||
if (cfd->get_major () == DEV_PTYS_MAJOR)
|
||||
{
|
||||
fhandler_pty_slave *ptys =
|
||||
(fhandler_pty_slave *)(fhandler_base *) cfd;
|
||||
ptys->setup_locale ();
|
||||
}
|
||||
}
|
||||
|
||||
/* Set up needed handles for stdio */
|
||||
si.dwFlags = STARTF_USESTDHANDLES;
|
||||
si.hStdInput = handle ((in__stdin < 0 ? 0 : in__stdin), false,
|
||||
|
Loading…
Reference in New Issue
Block a user