( cvs diff -u -r 1.395.2.449 -r 1.395.2.450 src/summaryview.c; ) > 3.8.1cvs38.patchset
( cvs diff -u -r 1.115.2.252 -r 1.115.2.253 src/main.c; ) > 3.8.1cvs39.patchset
( cvs diff -u -r 1.274.2.348 -r 1.274.2.349 src/mainwindow.c; cvs diff -u -r 1.94.2.237 -r 1.94.2.238 src/messageview.c; cvs diff -u -r 1.83.2.192 -r 1.83.2.193 src/mimeview.c; cvs diff -u -r 1.20.2.37 -r 1.20.2.38 src/mimeview.h; cvs diff -u -r 1.395.2.450 -r 1.395.2.451 src/summaryview.c; cvs diff -u -r 1.96.2.244 -r 1.96.2.245 src/textview.c; cvs diff -u -r 1.5.2.46 -r 1.5.2.47 src/gtk/menu.c; cvs diff -u -r 1.4.2.26 -r 1.4.2.27 src/gtk/menu.h; ) > 3.8.1cvs40.patchset
+( cvs diff -u -r 1.1.2.72 -r 1.1.2.73 src/plugins/pgpcore/sgpgme.c; ) > 3.8.1cvs41.patchset
void sgpgme_init()
{
+ gchar *ctype_locale = NULL, *messages_locale = NULL;
+ gchar *ctype_utf8_locale = NULL, *messages_utf8_locale = NULL;
+
gpgme_engine_info_t engineInfo;
if (gpgme_check_version("1.0.0")) {
#ifdef LC_CTYPE
- gpgme_set_locale(NULL, LC_CTYPE, setlocale(LC_CTYPE, NULL));
+ ctype_locale = g_strdup(setlocale(LC_CTYPE, NULL));
+ if (strchr(ctype_locale, '.'))
+ *(strchr(ctype_locale, '.')) = '\0';
+ else if (strchr(ctype_locale, '@'))
+ *(strchr(ctype_locale, '@')) = '\0';
+ ctype_utf8_locale = g_strconcat(ctype_locale, ".UTF-8", NULL);
+
+ gpgme_set_locale(NULL, LC_CTYPE, ctype_utf8_locale);
+
+ g_free(ctype_utf8_locale);
+ g_free(ctype_locale);
#endif
#ifdef LC_MESSAGES
- gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
+ messages_locale = g_strdup(setlocale(LC_MESSAGES, NULL));
+ if (strchr(messages_locale, '.'))
+ *(strchr(messages_locale, '.')) = '\0';
+ else if (strchr(messages_locale, '@'))
+ *(strchr(messages_locale, '@')) = '\0';
+ messages_utf8_locale = g_strconcat(messages_locale, ".UTF-8", NULL);
+
+ gpgme_set_locale(NULL, LC_MESSAGES, messages_utf8_locale);
+
+ g_free(messages_utf8_locale);
+ g_free(messages_locale);
#endif
if (!gpgme_get_engine_info(&engineInfo)) {
while (engineInfo) {