SignatureStatus sgpgme_sigstat_gpgme_to_privacy(gpgme_ctx_t ctx, gpgme_verify_result_t status)
{
- unsigned long validity = 0;
gpgme_signature_t sig = NULL;
if (GPOINTER_TO_INT(status) == -GPG_ERR_SYSTEM_ERROR) {
debug_print("sig == NULL\n");
return SIGNATURE_UNCHECKED;
}
- validity = sig->validity;
debug_print("err code %d\n", gpg_err_code(sig->status));
switch (gpg_err_code(sig->status)) {
sig = status->signatures;
while (sig) {
+ char buf[100];
+ struct tm lt;
gpgme_user_id_t user = NULL;
gpgme_key_t key;
gpgme_error_t err;
keyid = "?";
uid = "?";
}
+
+ memset(buf, 0, sizeof(buf));
+ fast_strftime(buf, sizeof(buf)-1, prefs_common_get_prefs()->date_format, localtime_r(&sig->timestamp, <));
g_string_append_printf(siginfo,
- _("Signature made using %s key ID %s\n"),
- keytype, keyid);
+ _("Signature made on %s using %s key ID %s\n"),
+ buf, keytype, keyid);
switch (gpg_err_code(sig->status)) {
case GPG_ERR_NO_ERROR:
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));
+ debug_print("setting gpgme CTYPE locale\n");
+#ifdef G_OS_WIN32
+ ctype_locale = g_win32_getlocale();
+#else
+ ctype_locale = g_strdup(setlocale(LC_CTYPE, NULL));
+#endif
+ debug_print("setting gpgme locale to: %s\n", ctype_locale ? ctype_locale : "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);
+
+ debug_print("setting gpgme locale to UTF8: %s\n", ctype_utf8_locale ? ctype_utf8_locale : "NULL");
+ gpgme_set_locale(NULL, LC_CTYPE, ctype_utf8_locale);
+
+ debug_print("done\n");
+ g_free(ctype_utf8_locale);
+ g_free(ctype_locale);
#endif
#ifdef LC_MESSAGES
- gpgme_set_locale(NULL, LC_MESSAGES, setlocale(LC_MESSAGES, NULL));
+ debug_print("setting gpgme MESSAGES locale\n");
+#ifdef G_OS_WIN32
+ messages_locale = g_win32_getlocale();
+#else
+ messages_locale = g_strdup(setlocale(LC_MESSAGES, NULL));
+#endif
+ debug_print("setting gpgme locale to: %s\n", messages_locale ? messages_locale : "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);
+ debug_print("setting gpgme locale to UTF8: %s\n", messages_utf8_locale ? messages_utf8_locale : "NULL");
+
+ gpgme_set_locale(NULL, LC_MESSAGES, messages_utf8_locale);
+
+ debug_print("done\n");
+ g_free(messages_utf8_locale);
+ g_free(messages_locale);
#endif
if (!gpgme_get_engine_info(&engineInfo)) {
while (engineInfo) {
-#ifndef G_OS_WIN32
debug_print("GpgME Protocol: %s\n"
"Version: %s (req %s)\n"
"Executable: %s\n",
engineInfo->version ? engineInfo->version:"???",
engineInfo->req_version ? engineInfo->req_version:"???",
engineInfo->file_name ? engineInfo->file_name:"???");
-#endif
if (engineInfo->protocol == GPGME_PROTOCOL_OpenPGP
&& gpgme_engine_check_version(engineInfo->protocol) !=
GPG_ERR_NO_ERROR) {