diff options
Diffstat (limited to '')
-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; |