[evolution-ews] Overlooked that contacts could have lost email address (bug #765398)



commit 924c45d5cab2f0ba4bf638ca8cfbd6250bad58fb
Author: Milan Crha <mcrha redhat com>
Date:   Wed Apr 27 19:12:14 2016 +0200

    Overlooked that contacts could have lost email address (bug #765398)

 src/addressbook/e-book-backend-ews.c |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-ews.c b/src/addressbook/e-book-backend-ews.c
index b4154ee..1b9407e 100644
--- a/src/addressbook/e-book-backend-ews.c
+++ b/src/addressbook/e-book-backend-ews.c
@@ -586,14 +586,15 @@ static void
 set_email_address (EContact *contact,
                    EContactField field,
                    EEwsItem *item,
-                   const gchar *item_field)
+                   const gchar *item_field,
+                  gboolean require_smtp_prefix)
 {
        const gchar *ea;
 
        ea = e_ews_item_get_email_address (item, item_field);
        if (ea && g_ascii_strncasecmp (ea, "SMTP:", 5) == 0)
                ea = ea + 5;
-       else
+       else if (require_smtp_prefix)
                ea = NULL;
 
        if (ea && *ea)
@@ -601,15 +602,24 @@ set_email_address (EContact *contact,
 }
 
 static void
+ebews_populate_emails_ex (EBookBackendEws *ebews,
+                         EContact *contact,
+                         EEwsItem *item,
+                         gboolean require_smtp_prefix)
+{
+       set_email_address (contact, E_CONTACT_EMAIL_1, item, "EmailAddress1", require_smtp_prefix);
+       set_email_address (contact, E_CONTACT_EMAIL_2, item, "EmailAddress2", require_smtp_prefix);
+       set_email_address (contact, E_CONTACT_EMAIL_3, item, "EmailAddress3", require_smtp_prefix);
+}
+
+static void
 ebews_populate_emails (EBookBackendEws *ebews,
                       EContact *contact,
                       EEwsItem *item,
                       GCancellable *cancellable,
                       GError **errror)
 {
-       set_email_address (contact, E_CONTACT_EMAIL_1, item, "EmailAddress1");
-       set_email_address (contact, E_CONTACT_EMAIL_2, item, "EmailAddress2");
-       set_email_address (contact, E_CONTACT_EMAIL_3, item, "EmailAddress3");
+       ebews_populate_emails_ex (ebews, contact, item, FALSE);
 }
 
 static void
@@ -3438,7 +3448,7 @@ e_book_backend_ews_start_view (EBookBackend *backend,
 
                str = e_contact_get_const (contact, E_CONTACT_EMAIL_1);
                if ((!str || !*str) && contact_item && e_ews_item_get_item_type (contact_item) == 
E_EWS_ITEM_TYPE_CONTACT)
-                       ebews_populate_emails (ebews, contact, contact_item, NULL, NULL);
+                       ebews_populate_emails_ex (ebews, contact, contact_item, TRUE);
 
                str = e_contact_get_const (contact, E_CONTACT_EMAIL_1);
                if (!str || !*str)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]