diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/gpgme.h.in | 3 | ||||
| -rw-r--r-- | src/key.c | 1 | ||||
| -rw-r--r-- | src/keylist.c | 6 | 
3 files changed, 10 insertions, 0 deletions
| diff --git a/src/gpgme.h.in b/src/gpgme.h.in index 722ce68b..a52901bb 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -728,6 +728,9 @@ struct _gpgme_user_id    /* Time of the last refresh of this user id.  0 if unknown.  */    unsigned long last_update; + +  /* The string to exactly identify a userid.  Might be NULL.  */ +  char *uidhash;  };  typedef struct _gpgme_user_id *gpgme_user_id_t; @@ -385,6 +385,7 @@ gpgme_key_unref (gpgme_key_t key)          }        free (uid->address); +      free (uid->uidhash);        free (uid);        uid = next_uid;      } diff --git a/src/keylist.c b/src/keylist.c index a0de7666..a4de3ad5 100644 --- a/src/keylist.c +++ b/src/keylist.c @@ -831,6 +831,12 @@ keylist_colon_handler (void *priv, char *line)            if (field[1])              set_userid_flags (key, field[1]); +          if (field[7] && *field[7]) +            { +              gpgme_user_id_t uid = key->_last_uid; +              assert (uid); +              uid->uidhash = strdup (field[7]); +            }            opd->tmp_uid = key->_last_uid;            if (fields >= 20)              { | 
