typedef struct _MsgInfoUpdate MsgInfoUpdate;
typedef struct _MailFilteringData MailFilteringData;
+typedef struct _MsgInfoExtraData MsgInfoExtraData;
+
typedef GSList MsgInfoList;
typedef GSList MsgNumberList;
#define MSG_MOVE (1U << 0)
#define MSG_COPY (1U << 1)
+#define MSG_MOVE_DONE (1U << 15)
#define MSG_QUEUED (1U << 16)
#define MSG_DRAFT (1U << 17)
#define MSG_ENCRYPTED (1U << 18)
#define MSG_IS_MOVE(msg) (((msg).tmp_flags & MSG_MOVE) != 0)
#define MSG_IS_COPY(msg) (((msg).tmp_flags & MSG_COPY) != 0)
+#define MSG_IS_MOVE_DONE(msg) (((msg).tmp_flags & MSG_MOVE_DONE) != 0)
#define MSG_IS_QUEUED(msg) (((msg).tmp_flags & MSG_QUEUED) != 0)
#define MSG_IS_DRAFT(msg) (((msg).tmp_flags & MSG_DRAFT) != 0)
MsgTmpFlags tmp_flags;
};
-
+/* *********************************************************** *
+ * WARNING: When adding or removing members to this structure, *
+ * be sure to update procmsg.c::procmsg_msginfo_memusage() to *
+ * avoid underestimating cache memory usage - especially since *
+ * this would cause an overflow and metadata loss when writing *
+ * the cache to disk. *
+ * *********************************************************** */
struct _MsgInfo
{
guint refcnt;
gboolean is_move;
gboolean is_copy;
- gchar *xface;
- gchar *face;
-
- gchar *dispositionnotificationto;
- gchar *returnreceiptto;
-
GSList *references;
gchar *fromspace;
gchar *plaintext_file;
gint hidden;
-
+
/* used only for partially received messages */
- gchar *partial_recv;
gint total_size;
+ gint planned_download;
+
+ MsgInfoExtraData *extradata;
+};
+
+struct _MsgInfoExtraData
+{
+ gchar *xface;
+ gchar *face;
+
+ gchar *dispositionnotificationto;
+ gchar *returnreceiptto;
+
+ /* used only for partially received messages */
+ gchar *partial_recv;
gchar *account_server;
gchar *account_login;
- gint planned_download;
/* Mailing list support */
gchar *list_post;
gint procmsg_cmp_msgnum_for_sort (gconstpointer a,
gconstpointer b);
gint procmsg_send_message_queue (const gchar *file,
- gchar **errstr);
+ gchar **errstr,
+ FolderItem *queue,
+ gint msgnum);
void procmsg_msginfo_set_flags (MsgInfo *msginfo,
MsgPermFlags perm_flags,
gboolean newly_marked);
void procmsg_msginfo_set_to_folder (MsgInfo *msginfo,
FolderItem *to_folder);
-gboolean procmsg_msginfo_filter (MsgInfo *msginfo);
+gboolean procmsg_msginfo_filter (MsgInfo *msginfo,
+ PrefsAccount *ac_prefs);
MsgInfo *procmsg_msginfo_new_from_mimeinfo
(MsgInfo *src_msginfo,
MimeInfo *mimeinfo);
void procmsg_spam_set_folder (const char *item_identifier);
FolderItem *procmsg_spam_get_folder (void);
int procmsg_spam_learner_learn (MsgInfo *msginfo, GSList *msglist, gboolean spam);
+gboolean procmsg_have_queued_mails_fast (void);
+gboolean procmsg_is_sending(void);
#endif /* __PROCMSG_H__ */