diff options
| author | Werner Koch <[email protected]> | 2016-07-13 11:57:14 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2016-07-13 11:57:14 +0000 | 
| commit | 2095b1573a8196ba3efdf817324d1b3ee05cbb93 (patch) | |
| tree | a557df1a306a68c47f448c38ba2ab3a8ad61f14f /src/engine-gpg.c | |
| parent | Cpp: Add feature enum for new identify (diff) | |
| download | gpgme-2095b1573a8196ba3efdf817324d1b3ee05cbb93.tar.gz gpgme-2095b1573a8196ba3efdf817324d1b3ee05cbb93.zip  | |
core: Pass the engine's version string to the engine's new function.
* src/engine-backend.h (engine_ops): Add arg 'version' to NEW.
* src/engine-assuan.c (llass_new): Add dummy arg 'version'.
* src/engine-g13.c (g13_new): Ditto.
* src/engine-gpgconf.c (gpgconf_new): Ditto.
* src/engine-gpgsm.c (gpgsm_new): Ditto.
* src/engine-spawn.c (engspawn_new): Ditto.
* src/engine-uiserver.c (uiserver_new): Ditto.
* src/engine.c (_gpgme_engine_new): Pass version string to the new
function.
* src/engine-gpg.c (struct engine_gpg): Add field 'version'.
(gpg_new): Add arg 'version'.
(gpg_release): Free VERSION.
Signed-off-by: Werner Koch <[email protected]>
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;  | 
