4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-21 00:07:36 +08:00

Cygwin: pty: Set console code page only if pseudo console is enabled.

- Input UTF-8 chars are garbled in ConEmu with cygwin connector if
  the environment does not support pseudo console. This patch fixes
  the issue.
This commit is contained in:
Takashi Yano 2020-01-10 20:47:12 +09:00 committed by Ken Brown
parent 145c1db7f8
commit 0ac792dfad

View File

@ -2626,15 +2626,18 @@ fhandler_pty_slave::setup_locale (void)
LCID lcid = get_langinfo (locale, charset);
/* Set console code page form locale */
UINT code_page;
if (lcid == 0 || lcid == (LCID) -1)
code_page = 20127; /* ASCII */
else if (!GetLocaleInfo (lcid,
LOCALE_IDEFAULTCODEPAGE | LOCALE_RETURN_NUMBER,
(char *) &code_page, sizeof (code_page)))
code_page = 20127; /* ASCII */
SetConsoleCP (code_page);
SetConsoleOutputCP (code_page);
if (get_pseudo_console ())
{
UINT code_page;
if (lcid == 0 || lcid == (LCID) -1)
code_page = 20127; /* ASCII */
else if (!GetLocaleInfo (lcid,
LOCALE_IDEFAULTCODEPAGE | LOCALE_RETURN_NUMBER,
(char *) &code_page, sizeof (code_page)))
code_page = 20127; /* ASCII */
SetConsoleCP (code_page);
SetConsoleOutputCP (code_page);
}
/* Set terminal code page from locale */
/* This code is borrowed from mintty: charset.c */