diff options
| author | Werner Koch <[email protected]> | 2021-03-05 14:33:40 +0000 |
|---|---|---|
| committer | Werner Koch <[email protected]> | 2021-03-05 14:33:40 +0000 |
| commit | 8c41b8aac3efb78178fe1eaf52d8d1bbc44941a8 (patch) | |
| tree | 8e2a964084519e4ff4864643573d1d41ebec0e66 /common/init.c | |
| parent | w32: Free memory allocated by new function w32_write_console. (diff) | |
| download | gnupg-8c41b8aac3efb78178fe1eaf52d8d1bbc44941a8.tar.gz gnupg-8c41b8aac3efb78178fe1eaf52d8d1bbc44941a8.zip | |
w32: Always use Unicode for console input and output.
* common/init.c (_init_common_subsystems) [W32]: Set the codepage to
UTF-8 for input and putput. Switch gettext to UTF-8.
* tools/gpgconf.c (main): Display the input and output codepage if
they differ.
* g10/gpg.c (utf8_strings) [W32]: Make sure this is always set.
--
With this patch the former patch to use ReadConsoleW and WriteConsoleW
in ttyio.c are kind of superfluous because the ANSI version of these
functions are also able to read/write UTF-8 directly given the console
code page has been set correctly. However, this seems to work only
with recent versions of Windows-10.
GnuPG-bug-id: 4365
Diffstat (limited to 'common/init.c')
| -rw-r--r-- | common/init.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/init.c b/common/init.c index ba20cd8d0..7b6b4aea0 100644 --- a/common/init.c +++ b/common/init.c @@ -202,6 +202,17 @@ _init_common_subsystems (gpg_err_source_t errsource, int *argcp, char ***argvp) parse_std_file_handles (argcp, argvp); #endif +#ifdef HAVE_W32_SYSTEM + /* We want gettext to always output UTF-8 and we put the console in + * utf-8 mode. */ + gettext_use_utf8 (1); + if (!SetConsoleCP (CP_UTF8) || !SetConsoleOutputCP (CP_UTF8)) + { + log_info ("SetConsoleCP failed: %s\n", w32_strerror (-1)); + log_info ("Warning: Garbled console data possible\n"); + } +#endif + /* Access the standard estreams as early as possible. If we don't do this the original stdio streams may have been closed when _es_get_std_stream is first use and in turn it would connect to |
