[evolution-ews] Skip empty street addresses in contacts



commit a05df2fbb45513be2d6ce3fdb31cdde48188404f
Author: Milan Crha <mcrha redhat com>
Date:   Fri Apr 20 12:18:38 2018 +0200

    Skip empty street addresses in contacts
    
    Online GAL could return Contact information with empty street
    addresses, which had been shown empty in Evolution as well, but
    such addresses do not have much meaning, thus skip them.

 src/addressbook/e-book-backend-ews.c |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/src/addressbook/e-book-backend-ews.c b/src/addressbook/e-book-backend-ews.c
index 078da09..50f93de 100644
--- a/src/addressbook/e-book-backend-ews.c
+++ b/src/addressbook/e-book-backend-ews.c
@@ -561,6 +561,24 @@ copy_ews_address_to_contact_address (EContactAddress *contact_addr,
        contact_addr->code = g_strdup (address->postal_code);
        contact_addr->country = g_strdup (address->country);
 }
+
+static gboolean
+ews_address_is_empty (const EwsAddress *address)
+{
+       if (!address)
+               return TRUE;
+
+#define is_empty_str(x) (!(x) || (!*(x)))
+
+       return is_empty_str (address->street) &&
+               is_empty_str (address->city) &&
+               is_empty_str (address->state) &&
+               is_empty_str (address->postal_code) &&
+               is_empty_str (address->country);
+
+#undef is_empty_str
+}
+
 static void
 set_address (EContact *contact,
              EContactField field,
@@ -570,7 +588,7 @@ set_address (EContact *contact,
        const EwsAddress *address;
 
        address = e_ews_item_get_physical_address (item, item_field);
-       if (address) {
+       if (address && !ews_address_is_empty (address)) {
                EContactAddress *addr;
 
                addr = g_new0 (EContactAddress, 1);


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