return head;
}
+gchar *
+modest_text_utils_join_addresses (const gchar *from,
+ const gchar *to,
+ const gchar *cc,
+ const gchar *bcc)
+{
+ GString *buffer;
+ gboolean add_separator = FALSE;
+
+ buffer = g_string_new ("");
+
+ if (from && strlen (from)) {
+ buffer = g_string_append (buffer, from);
+ add_separator = TRUE;
+ }
+ if (to && strlen (to)) {
+ if (add_separator)
+ buffer = g_string_append (buffer, "; ");
+ else
+ add_separator = TRUE;
+
+ buffer = g_string_append (buffer, to);
+ }
+ if (cc && strlen (cc)) {
+ if (add_separator)
+ buffer = g_string_append (buffer, "; ");
+ else
+ add_separator = TRUE;
+
+ buffer = g_string_append (buffer, cc);
+ }
+ if (bcc && strlen (bcc)) {
+ if (add_separator)
+ buffer = g_string_append (buffer, "; ");
+ else
+ add_separator = TRUE;
+
+ buffer = g_string_append (buffer, bcc);
+ }
+
+ return g_string_free (buffer, FALSE);
+}
void
modest_text_utils_address_range_at_position (const gchar *recipients_list,
**/
GSList *modest_text_utils_split_addresses_list (const gchar *addresses);
+/**
+ * modest_text_utils_join_addresses:
+ * @from: comma separated string of addresses
+ * @to: comma separated string of addresses
+ * @cc: comma separated string of addresses
+ * @bcc: comma separated string of addresses
+ *
+ * joins all the addresses in a single comma-separated string
+ *
+ * Returns: a newly allocated string with a list of addresses
+ **/
+gchar *modest_text_utils_join_addresses (const gchar *from,
+ const gchar *to,
+ const gchar *cc,
+ const gchar *bcc);
/**
* modest_text_utils_get_addresses_indexes:
{
GSList *recipients = NULL;
gchar *from = NULL, *to = NULL, *cc = NULL, *bcc = NULL;
- gchar *after_remove;
- GString *buffer;
- gboolean add_separator = TRUE;
+ gchar *after_remove, *joined;
if (header == NULL)
return NULL;
- buffer = g_string_new ("");
-
from = tny_header_dup_from (header);
to = tny_header_dup_to (header);
cc = tny_header_dup_cc (header);
bcc = tny_header_dup_bcc (header);
- recipients = NULL;
- if (from) {
- buffer = g_string_append (buffer, from);
- add_separator = TRUE;
- }
- if (to) {
- if (add_separator)
- buffer = g_string_append (buffer, "; ");
- else
- add_separator = TRUE;
-
- buffer = g_string_append (buffer, to);
- }
- if (cc) {
- if (add_separator)
- buffer = g_string_append (buffer, "; ");
- else
- add_separator = TRUE;
-
- buffer = g_string_append (buffer, cc);
- }
- if (bcc) {
- if (add_separator)
- buffer = g_string_append (buffer, "; ");
- else
- add_separator = TRUE;
-
- buffer = g_string_append (buffer, bcc);
- }
-
- after_remove = modest_text_utils_remove_duplicate_addresses (buffer->str);
- g_string_free (buffer, TRUE);
+ joined = modest_text_utils_join_addresses (from, to, cc, bcc);
+ after_remove = modest_text_utils_remove_duplicate_addresses (joined);
+ g_free (joined);
recipients = modest_text_utils_split_addresses_list (after_remove);
g_free (after_remove);