diff options
Diffstat (limited to 'src/key.c')
-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; } |