if (mbox->prev_mail_cache.uid == _mail->uid)
imapc_mail_cache_get(mail, &mbox->prev_mail_cache);
+ /* try to get as much from cache as possible */
+ imapc_mail_update_access_parts(&mail->imail);
+
if ((data->wanted_fields & MAIL_FETCH_RECEIVED_DATE) != 0 &&
data->received_date == (time_t)-1)
fields |= MAIL_FETCH_RECEIVED_DATE;
return TRUE;
}
-static void index_mail_update_access_parts(struct index_mail *mail)
+void imapc_mail_update_access_parts(struct index_mail *mail)
{
struct mail *_mail = &mail->mail.mail;
struct imapc_mailbox *mbox = (struct imapc_mailbox *)_mail->box;
struct index_mail *mail = (struct index_mail *)_mail;
index_mail_add_temp_wanted_fields(_mail, fields, headers);
- index_mail_update_access_parts(mail);
+ imapc_mail_update_access_parts(mail);
}
static void imapc_mail_close(struct mail *_mail)
void imapc_mail_fetch_update(struct imapc_mail *mail,
const struct imapc_untagged_reply *reply,
const struct imap_arg *args);
+void imapc_mail_update_access_parts(struct index_mail *mail);
#endif