diff options
| author | Werner Koch <[email protected]> | 2016-08-23 04:48:50 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2016-08-23 04:48:50 +0000 | 
| commit | 3955dce06e9d056599e5ec7d40301e66b9305195 (patch) | |
| tree | 1336879434595922fb272d220a9584bd27828fe1 /src/key.c | |
| parent | core: New code for parsing mail addresses. (diff) | |
| download | gpgme-3955dce06e9d056599e5ec7d40301e66b9305195.tar.gz gpgme-3955dce06e9d056599e5ec7d40301e66b9305195.zip  | |
core: Extend gpgme_user_id_t with 'address'.
* src/mbox-util.c, src/mbox-util.h: Adjust for use in gpgme.
* src/Makefile.am (main_sources): Add mbox-util.
* src/key.c (_gpgme_key_append_name): Set 'address' field of uid.
(gpgme_key_unref): Free it.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
| -rw-r--r-- | src/key.c | 12 | 
1 files changed, 12 insertions, 0 deletions
@@ -31,6 +31,8 @@  #include "ops.h"  #include "sema.h"  #include "debug.h" +#include "mbox-util.h" +  /* Protects all reference counters in keys.  All other accesses to a @@ -233,6 +235,14 @@ _gpgme_key_append_name (gpgme_key_t key, const char *src, int convert)      parse_user_id (uid->uid, &uid->name, &uid->email,  		   &uid->comment, dst); +  uid->address = _gpgme_mailbox_from_userid (uid->uid); +  if (uid->address && uid->email && !strcmp (uid->address, uid->email)) +    { +      /* The ADDRESS is the same as EMAIL: Save some space.  */ +      free (uid->address); +      uid->address = uid->email; +    } +    if (!key->uids)      key->uids = uid;    if (key->_last_uid) @@ -363,6 +373,8 @@ gpgme_key_unref (gpgme_key_t key)            free (keysig);  	  keysig = next_keysig;          } +      if (uid->address && uid->address != uid->email) +        free (uid->address);        free (uid);        uid = next_uid;      }  | 
