From d256ba7cc57d9bfcfa05fb05cf66dc992efbb695 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ingo=20Kl=C3=B6cker?= Date: Tue, 4 Apr 2023 12:11:15 +0200 Subject: [PATCH] w32: Always use UTF-8 for localized texts * configure.ac: Define GPG_ERR_ENABLE_GETTEXT_MACROS. * src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8. -- On Windows, applications using GpgME can now rely on localized texts returned by GpgME, e.g. the texts for error codes, to be UTF-8 encoded. In particular, this saves a useless and possibly lossy conversion to native encoding and back to UTF-8. On other OSes, where we use the system provided gettext, we assume that UTF-8 is used nowadays. GnuPG-bug-id: 5960 --- NEWS | 3 +++ configure.ac | 3 +++ src/version.c | 3 +++ 3 files changed, 9 insertions(+) diff --git a/NEWS b/NEWS index bcabe2ce..a945fb5b 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,9 @@ Noteworthy changes in version 1.20.0 (unreleased) ------------------------------------------------- + * On Windows, the gettext functions provided by gpgrt are switched into utf8 + mode, so that all localized texts returned by GpgME or gpgrt, e.g. the + texts for error codes are now UTF-8 encoded. * Interface changes relative to the 1.19.0 release: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/configure.ac b/configure.ac index 0c15ab08..3ec1ea44 100644 --- a/configure.ac +++ b/configure.ac @@ -922,6 +922,9 @@ AH_BOTTOM([ # define GPGME_GCC_A_PURE #endif +/* Under Windows we use the gettext code from gpgrt. */ +#define GPG_ERR_ENABLE_GETTEXT_MACROS + /* Under WindowsCE we need gpg-error's strerror macro. */ #define GPG_ERR_ENABLE_ERRNO_MACROS 1 diff --git a/src/version.c b/src/version.c index 5beb63a3..693a1e83 100644 --- a/src/version.c +++ b/src/version.c @@ -72,6 +72,9 @@ do_subsystem_inits (void) WSAStartup (0x202, &wsadat); } + + /* We want gpgrt's gettext to always output UTF-8. */ + gettext_use_utf8 (1); #endif _gpgme_debug_subsystem_init ();