From b3675a091e58b2953b221dcc7abb219d4a41fdff Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sergio=20Villar=20Sen=C3=ADn?= Date: Mon, 11 May 2009 17:37:18 +0200 Subject: [PATCH] Fixes NB#114996, do not add duplicate addresses to the "add to contacts" dialog --- src/modest-tny-msg.c | 41 ++++++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/src/modest-tny-msg.c b/src/modest-tny-msg.c index a0d072c..b1137f3 100644 --- a/src/modest-tny-msg.c +++ b/src/modest-tny-msg.c @@ -1191,6 +1191,7 @@ modest_tny_msg_header_get_all_recipients_list (TnyHeader *header) { GSList *recipients = NULL; gchar *from = NULL, *to = NULL, *cc = NULL, *bcc = NULL; + gchar *tmp = NULL, *old_tmp = NULL; if (header == NULL) return NULL; @@ -1201,19 +1202,33 @@ modest_tny_msg_header_get_all_recipients_list (TnyHeader *header) bcc = tny_header_dup_bcc (header); recipients = NULL; - if (from) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (from)); - if (to) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (to)); - if (cc) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (cc)); - if (bcc) - recipients = g_slist_concat (recipients, modest_text_utils_split_addresses_list (bcc)); - - g_free (from); - g_free (to); - g_free (cc); - g_free (bcc); + if (from) { + tmp = g_strdup (from); + old_tmp = tmp; + g_free (from); + } + if (to) { + tmp = g_strjoin ("; ", old_tmp, to, NULL); + g_free (old_tmp); + old_tmp = tmp; + g_free (to); + } + if (cc) { + tmp = g_strjoin ("; ", old_tmp, cc, NULL); + g_free (old_tmp); + old_tmp = tmp; + g_free (cc); + } + if (bcc) { + tmp = g_strjoin ("; ", old_tmp, bcc, NULL); + g_free (old_tmp); + old_tmp = tmp; + g_free (bcc); + } + + old_tmp = modest_text_utils_remove_duplicate_addresses (tmp); + recipients = modest_text_utils_split_addresses_list (old_tmp); + g_free (tmp); return recipients; } -- 1.7.9.5