X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fhildon2%2Fmodest-address-book.c;h=fa6af98d5de31c88737da5ed438a97cad3392c5f;hb=fea9cf6f2c8f608c8e2edb38244b2235f1f66766;hp=31e6e9ead07ab357b6de79052027c5460aca7606;hpb=4cded6641b87db71547140e9c68020ff9ec126d6;p=modest diff --git a/src/hildon2/modest-address-book.c b/src/hildon2/modest-address-book.c index 31e6e9e..fa6af98 100644 --- a/src/hildon2/modest-address-book.c +++ b/src/hildon2/modest-address-book.c @@ -671,13 +671,31 @@ select_email_addrs_for_contact(GList * email_addr_list) return selected_email_addr_list; } +/* Assumes that the second argument (the user provided one) is a pure + email address without name */ +static gint +compare_addresses (const gchar *address1, + const gchar *mail2) +{ + gint retval; + gchar *mail1; + + mail1 = modest_text_utils_get_email_address (address1); + retval = g_strcmp0 (mail1, mail2); + g_free (mail1); + + return retval; +} + static EContact * get_contact_for_address (GList *contacts, const gchar *address) { EContact *retval = NULL, *contact; GList *iter; + gchar *email; + email = modest_text_utils_get_email_address (address); iter = contacts; while (iter && !retval) { GList *emails = NULL; @@ -686,7 +704,7 @@ get_contact_for_address (GList *contacts, emails = e_contact_get (contact, E_CONTACT_EMAIL); if (emails) { /* Look for the email address */ - if (g_list_find_custom (emails, address, (GCompareFunc) g_strcmp0)) + if (g_list_find_custom (emails, email, (GCompareFunc) compare_addresses)) retval = contact; /* Free the list */ @@ -695,6 +713,8 @@ get_contact_for_address (GList *contacts, } iter = g_list_next (iter); } + g_free (email); + return retval; } @@ -1330,3 +1350,17 @@ modest_address_book_has_address (const gchar *address) return result; } + +const gchar * +modest_address_book_get_my_name () +{ + OssoABookSelfContact *self_contact = osso_abook_self_contact_get_default (); + + /* We are not using osso_abook_contact_get_display_name + because that method fallbacks to another fields if the name + is not defined */ + if (self_contact) + return e_contact_get ((EContact *) self_contact, E_CONTACT_FULL_NAME); + else + return NULL; +}