aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-callbacks.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-callbacks.c')
-rw-r--r--mail/mail-callbacks.c15
1 files changed, 14 insertions, 1 deletions
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));