aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog6
-rw-r--r--mail/mail-callbacks.c15
2 files changed, 20 insertions, 1 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index 9f048cffe2..78add1937b 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,3 +1,9 @@
+2001-07-03 Joe Shaw <joe@ximian.com>
+
+ * mail-callbacks.c (mail_reply): If msg is NULL, fetch the message
+ and requeue a mail_reply call. Fixes bug #3816.
+ (requeue_mail_reply): Callback from mail_get_message().
+
2001-07-03 Jeffrey Stedfast <fejj@ximian.com>
* mail-config.c (mail_config_get_show_preview): Use a better
diff --git a/mail/mail-callbacks.c b/mail/mail-callbacks.c
index cfa2cf9ba0..9deda6b17b 100644
--- a/mail/mail-callbacks.c
+++ b/mail/mail-callbacks.c
@@ -763,6 +763,14 @@ mail_generate_reply (CamelFolder *folder, CamelMimeMessage *message, const char
return composer;
}
+static void
+requeue_mail_reply(CamelFolder *folder, char *uid, CamelMimeMessage *msg, void *data)
+{
+ int mode = GPOINTER_TO_INT(data);
+
+ mail_reply(folder, msg, uid, mode);
+}
+
void
mail_reply (CamelFolder *folder, CamelMimeMessage *msg, const char *uid, int mode)
{
@@ -770,9 +778,14 @@ mail_reply (CamelFolder *folder, CamelMimeMessage *msg, const char *uid, int mod
struct post_send_data *psd;
g_return_if_fail (folder != NULL);
- g_return_if_fail (msg != NULL);
g_return_if_fail (uid != NULL);
+ if (!msg) {
+ mail_get_message (folder, uid, requeue_mail_reply,
+ GINT_TO_POINTER(mode), mail_thread_new);
+ return;
+ }
+
psd = g_new (struct post_send_data, 1);
psd->folder = folder;
camel_object_ref (CAMEL_OBJECT (psd->folder));