diff options
-rw-r--r-- | mail/ChangeLog | 6 | ||||
-rw-r--r-- | mail/mail-callbacks.c | 15 |
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)); |