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