aboutsummaryrefslogtreecommitdiffstats
path: root/gpgme/op-support.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--gpgme/op-support.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/gpgme/op-support.c b/gpgme/op-support.c
index 68ff77d0..8a428512 100644
--- a/gpgme/op-support.c
+++ b/gpgme/op-support.c
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <errno.h>
#include <string.h>
+#include <locale.h>
#include "gpgme.h"
#include "context.h"
@@ -86,11 +87,21 @@ _gpgme_op_reset (gpgme_ctx_t ctx, int type)
}
/* Create an engine object. */
- err = _gpgme_engine_new (info, &ctx->engine,
- ctx->lc_ctype, ctx->lc_messages);
+ err = _gpgme_engine_new (info, &ctx->engine);
if (err)
return err;
+ err = _gpgme_engine_set_locale (ctx->engine, LC_CTYPE, ctx->lc_ctype);
+ if (!err)
+ err = _gpgme_engine_set_locale (ctx->engine,
+ LC_MESSAGES, ctx->lc_messages);
+ if (err)
+ {
+ _gpgme_engine_release (ctx->engine);
+ ctx->engine = NULL;
+ return err;
+ }
+
if (type == 1 || (type == 2 && !ctx->io_cbs.add))
{
/* Use private event loop. */