aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog5
-rw-r--r--mail/mail-callbacks.c20
2 files changed, 18 insertions, 7 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 7103ef39b7..085fd9c29a 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,8 @@
+2002-03-01 Jeffrey Stedfast <fejj@ximian.com>
+
+ * mail-callbacks.c (forward_message): Forward all selected
+ messages. Fixes bug #21190.
+
2002-02-26 Jeffrey Stedfast <fejj@ximian.com>
* mail-format.c (handle_text_html): Get the Content-Base if the
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index 41733c7f23..87c7b3e506 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -1231,21 +1231,27 @@ do_forward_non_attached (CamelFolder *folder, char *uid, CamelMimeMessage *messa
static void
forward_message (FolderBrowser *fb, MailConfigForwardStyle style)
{
+ GPtrArray *uids;
+ int i;
+
if (FOLDER_BROWSER_IS_DESTROYED (fb))
return;
if (!check_send_configuration (fb))
return;
- if (fb->mail_display && fb->mail_display->current_message) {
- do_forward_non_attached (fb->folder, NULL,
- fb->mail_display->current_message,
- GINT_TO_POINTER (style));
- } else {
- mail_get_message (fb->folder, fb->message_list->cursor_uid,
- do_forward_non_attached, GINT_TO_POINTER (style),
+ uids = g_ptr_array_new ();
+ message_list_foreach (fb->message_list, enumerate_msg, uids);
+
+ for (i = 0; i < uids->len; i++) {
+ mail_get_message (fb->folder, uids->pdata[i],
+ do_forward_non_attached,
+ GINT_TO_POINTER (style),
mail_thread_new);
+ g_free (uids->pdata[i]);
}
+
+ g_ptr_array_free (uids, TRUE);
}
void