diff options
Diffstat (limited to '')
-rw-r--r-- | gpgme/op-support.c | 15 |
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. */ |