- TnyMsg *new_msg;
- TnyList *parts = NULL;
- GList *attachments_list = NULL;
-
- new_msg = create_reply_forward_mail (msg, from, FALSE, forward_type);
-
- /* Add attachments */
- parts = TNY_LIST (tny_simple_list_new());
- tny_mime_part_get_parts (TNY_MIME_PART (msg), parts);
- tny_list_foreach (parts, add_if_attachment, attachments_list);
- add_attachments (new_msg, attachments_list);
-
- /* Clean */
- if (attachments_list)
- g_list_free (attachments_list);
- g_object_unref (G_OBJECT (parts));
-
- return new_msg;
-}
-
-TnyMsg*
-modest_mail_operation_create_reply_mail (TnyMsg *msg,
- const gchar *from,
- ModestMailOperationReplyType reply_type,
- ModestMailOperationReplyMode reply_mode)
-{
- TnyMsg *new_msg = NULL;
- TnyHeader *new_header, *header;
- const gchar* reply_to;
- gchar *new_cc = NULL;
- const gchar *cc = NULL, *bcc = NULL;
- GString *tmp = NULL;
-
- new_msg = create_reply_forward_mail (msg, from, TRUE, reply_type);
-
- /* Fill the header */
- header = tny_msg_get_header (msg);
- new_header = tny_msg_get_header (new_msg);
- reply_to = tny_header_get_replyto (header);
-
- if (reply_to)
- tny_header_set_to (new_header, reply_to);
- else
- tny_header_set_to (new_header, tny_header_get_from (header));
-
- switch (reply_mode) {
- case MODEST_MAIL_OPERATION_REPLY_MODE_SENDER:
- /* Do not fill neither cc nor bcc */
- break;
- case MODEST_MAIL_OPERATION_REPLY_MODE_LIST:
- /* TODO */
- break;
- case MODEST_MAIL_OPERATION_REPLY_MODE_ALL:
- /* Concatenate to, cc and bcc */
- cc = tny_header_get_cc (header);
- bcc = tny_header_get_bcc (header);
-
- tmp = g_string_new (tny_header_get_to (header));
- if (cc) g_string_append_printf (tmp, ",%s",cc);
- if (bcc) g_string_append_printf (tmp, ",%s",bcc);
-
- /* Remove my own address from the cc list. TODO:
- remove also the To: of the new message, needed due
- to the new reply_to feature */
- new_cc = (gchar *)
- modest_text_utils_remove_address ((const gchar *) tmp->str,
- from);
- /* FIXME: remove also the mails from the new To: */
- tny_header_set_cc (new_header, new_cc);
-
- /* Clean */
- g_string_free (tmp, TRUE);
- g_free (new_cc);
- break;
- }
-
- /* Clean */
- g_object_unref (G_OBJECT (new_header));
- g_object_unref (G_OBJECT (header));