diff options
Diffstat (limited to 'addressbook/backend/ebook/e-destination.c')
-rw-r--r-- | addressbook/backend/ebook/e-destination.c | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/addressbook/backend/ebook/e-destination.c b/addressbook/backend/ebook/e-destination.c index 44032d9cf6..25e1caa6ec 100644 --- a/addressbook/backend/ebook/e-destination.c +++ b/addressbook/backend/ebook/e-destination.c @@ -598,20 +598,25 @@ e_destination_get_email (const EDestination *dest) if (priv->card != NULL) { /* Pull the address out of the card. */ - EIterator *iter = e_list_get_iterator (priv->card->email); - gint n = priv->card_email_num; - - if (n >= 0) { - while (n > 0) { - e_iterator_next (iter); - --n; - } - - if (e_iterator_is_valid (iter)) { - gconstpointer ptr = e_iterator_get (iter); - priv->email = g_strdup ((gchar *) ptr); + if (priv->card->email) { + EIterator *iter = e_list_get_iterator (priv->card->email); + gint n = priv->card_email_num; + + if (n >= 0) { + while (n > 0) { + e_iterator_next (iter); + --n; + } + + if (e_iterator_is_valid (iter)) { + gconstpointer ptr = e_iterator_get (iter); + priv->email = g_strdup ((gchar *) ptr); + } } } + else { + priv->email = g_strdup (""); + } } else if (priv->raw != NULL) { @@ -625,6 +630,9 @@ e_destination_get_email (const EDestination *dest) camel_object_unref (CAMEL_OBJECT (addr)); } + else { + priv->email = g_strdup (""); + } } return priv->email; |