}
}
+void free_resolved_addresses_list (gpointer data,
+ gpointer ignored)
+{
+ GSList *list = (GSList *)data;
+ g_slist_foreach (list, (GFunc) g_free, NULL);
+ g_slist_free (list);
+}
+
gboolean
modest_address_book_check_names (ModestRecptEditor *recpt_editor, gboolean update_addressbook)
{
if (result) {
gint new_length;
- GSList *contact_ids_node, *resolved_addresses_node;
-
- contact_ids_node = contact_ids;
- resolved_addresses_node = resolved_addresses;
-
- while (contact_ids_node != NULL) {
- gchar *contact_id = (gchar *) contact_ids_node->data;
- GSList *resolved_addresses_for_contact =
- (GSList *) resolved_addresses_node->data;
-
- /* replace string */
- modest_recpt_editor_replace_with_resolved_recipient
- (recpt_editor,
- &start_iter, &end_iter,
- resolved_addresses_for_contact,
- contact_id);
-
- g_free (contact_id);
- g_slist_foreach (resolved_addresses_for_contact, (GFunc) g_free, NULL);
- g_slist_free (resolved_addresses_for_contact);
-
- contact_ids_node = g_slist_next (contact_ids_node);
- resolved_addresses_node = g_slist_next (resolved_addresses_node);
- }
+
+ modest_recpt_editor_replace_with_resolved_recipients (recpt_editor,
+ &start_iter, &end_iter,
+ resolved_addresses,
+ contact_ids);
+ g_slist_foreach (contact_ids, (GFunc) g_free, NULL);
+ g_slist_foreach (resolved_addresses, free_resolved_addresses_list, NULL);
g_slist_free (contact_ids);
g_slist_free (resolved_addresses);
GtkTextIter *start, GtkTextIter *end,
GSList *email_list, const gchar * recipient_id)
{
+ GSList *email_lists_list;
+ GSList *recipient_ids_list;
+
+ email_lists_list = g_slist_append (NULL, email_list);
+ recipient_ids_list = g_slist_append (NULL, (gpointer) recipient_id);
+
+ modest_recpt_editor_replace_with_resolved_recipients (recpt_editor, start, end,
+ email_lists_list, recipient_ids_list);
+
+ g_slist_free (email_lists_list);
+ g_slist_free (recipient_ids_list);
+
+}
+
+void
+modest_recpt_editor_replace_with_resolved_recipients (ModestRecptEditor *recpt_editor,
+ GtkTextIter *start, GtkTextIter *end,
+ GSList *email_lists_list, GSList * recipient_ids_list)
+{
ModestRecptEditorPrivate *priv;
GtkTextBuffer *buffer;
GtkTextTag *tag;
gtk_text_buffer_delete (buffer, start, end);
- if (email_list) {
+ while (email_lists_list) {
+ gchar *recipient_id = (gchar *) recipient_ids_list->data;
+ GSList *email_list = (GSList *) email_lists_list->data;
+
tag = gtk_text_buffer_create_tag (buffer, NULL,
"underline", PANGO_UNDERLINE_SINGLE,
is_first_recipient = FALSE;
}
}
+
+ email_lists_list = g_slist_next (email_lists_list);
+ recipient_ids_list = g_slist_next (recipient_ids_list);
}
g_signal_handlers_unblock_by_func (buffer, modest_recpt_editor_on_insert_text, recpt_editor);
GSList *email_list,
const gchar *recipient_id);
+void modest_recpt_editor_replace_with_resolved_recipients (ModestRecptEditor *recpt_editor,
+ GtkTextIter *start, GtkTextIter *end,
+ GSList *email_lists_list,
+ GSList *recipient_ids_list);
+
void modest_recpt_editor_set_field_size_group (ModestRecptEditor *recpt_editor, GtkSizeGroup *size_group);
GtkTextBuffer *modest_recpt_editor_get_buffer (ModestRecptEditor *recpt_editor);
void modest_recpt_editor_grab_focus (ModestRecptEditor *recpt_editor);