diff options
Diffstat (limited to 'src/engine-gpg.c')
| -rw-r--r-- | src/engine-gpg.c | 16 | 
1 files changed, 15 insertions, 1 deletions
| diff --git a/src/engine-gpg.c b/src/engine-gpg.c index e507c683..e279f04b 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -78,6 +78,7 @@ typedef gpgme_error_t (*colon_preprocessor_t) (char *line, char **rline);  struct engine_gpg  {    char *file_name; +  char *version;    char *lc_messages;    char *lc_ctype; @@ -388,6 +389,8 @@ gpg_release (void *engine)    if (gpg->file_name)      free (gpg->file_name); +  if (gpg->version) +    free (gpg->version);    if (gpg->lc_messages)      free (gpg->lc_messages); @@ -416,7 +419,8 @@ gpg_release (void *engine)  static gpgme_error_t -gpg_new (void **engine, const char *file_name, const char *home_dir) +gpg_new (void **engine, const char *file_name, const char *home_dir, +         const char *version)  {    engine_gpg_t gpg;    gpgme_error_t rc = 0; @@ -438,6 +442,16 @@ gpg_new (void **engine, const char *file_name, const char *home_dir)  	}      } +  if (version) +    { +      gpg->version = strdup (version); +      if (!gpg->version) +	{ +	  rc = gpg_error_from_syserror (); +	  goto leave; +	} +    } +    gpg->argtail = &gpg->arglist;    gpg->status.fd[0] = -1;    gpg->status.fd[1] = -1; | 
