READ_CACHE_DATA(msginfo->date, fp);
READ_CACHE_DATA(msginfo->from, fp);
READ_CACHE_DATA(msginfo->to, fp);
+ READ_CACHE_DATA(msginfo->cc, fp);
READ_CACHE_DATA(msginfo->newsgroups, fp);
READ_CACHE_DATA(msginfo->subject, fp);
READ_CACHE_DATA(msginfo->msgid, fp);
READ_CACHE_DATA(msginfo->inreplyto, fp);
+ READ_CACHE_DATA(msginfo->references, fp);
MSG_SET_FLAGS(msginfo->flags, default_flags);
debug_print(_("\tMarking the messages..."));
markdir = folder_item_get_path(item);
+ if (!is_dir_exist(markdir))
+ make_dir_hier(markdir);
+
mark_table = procmsg_read_mark_file(markdir);
g_free(markdir);
return last;
}
+void procmsg_msg_list_free(GSList *mlist)
+{
+ GSList *cur;
+ MsgInfo *msginfo;
+
+ for (cur = mlist; cur != NULL; cur = cur->next) {
+ msginfo = (MsgInfo *)cur->data;
+ procmsg_msginfo_free(msginfo);
+ }
+ g_slist_free(mlist);
+}
+
void procmsg_write_cache(MsgInfo *msginfo, FILE *fp)
{
MsgFlags flags = msginfo->flags & MSG_CACHED_FLAG_MASK;
WRITE_CACHE_DATA(msginfo->date, fp);
WRITE_CACHE_DATA(msginfo->from, fp);
WRITE_CACHE_DATA(msginfo->to, fp);
+ WRITE_CACHE_DATA(msginfo->cc, fp);
WRITE_CACHE_DATA(msginfo->newsgroups, fp);
WRITE_CACHE_DATA(msginfo->subject, fp);
WRITE_CACHE_DATA(msginfo->msgid, fp);
WRITE_CACHE_DATA(msginfo->inreplyto, fp);
+ WRITE_CACHE_DATA(msginfo->references, fp);
}
void procmsg_write_flags(MsgInfo *msginfo, FILE *fp)
MsgFlags flags = GPOINTER_TO_UINT(value);
struct MarkSum *marksum = data;
- if (MSG_IS_NEW(flags)) (*marksum->new)++;
- if (MSG_IS_UNREAD(flags)) (*marksum->unread)++;
+ if (MSG_IS_NEW(flags) && !MSG_IS_IGNORE_THREAD(flags)) (*marksum->new)++;
+ if (MSG_IS_UNREAD(flags) && !MSG_IS_IGNORE_THREAD(flags)) (*marksum->unread)++;
(*marksum->total)++;
}
file = g_strdup(msginfo->plaintext_file);
else {
path = folder_item_get_path(msginfo->folder);
+
file = g_strconcat(path, G_DIR_SEPARATOR_S,
itos(msginfo->msgnum), NULL);
g_free(path);
if (msginfo->date) fprintf(prfp, "Date: %s\n", msginfo->date);
if (msginfo->from) fprintf(prfp, "From: %s\n", msginfo->from);
if (msginfo->to) fprintf(prfp, "To: %s\n", msginfo->to);
+ if (msginfo->cc) fprintf(prfp, "Cc: %s\n", msginfo->cc);
if (msginfo->newsgroups)
fprintf(prfp, "Newsgroups: %s\n", msginfo->newsgroups);
if (msginfo->subject) fprintf(prfp, "Subject: %s\n", msginfo->subject);
MEMBDUP(date);
MEMBDUP(from);
MEMBDUP(to);
+ MEMBDUP(cc);
MEMBDUP(newsgroups);
MEMBDUP(subject);
MEMBDUP(msgid);
MEMBDUP(xface);
MEMBDUP(dispositionnotificationto);
+ MEMBDUP(returnreceiptto);
+ MEMBDUP(references);
+
+ MEMBCOPY(score);
+ MEMBCOPY(threadscore);
return newmsginfo;
}
{
if (msginfo == NULL) return;
+ g_free(msginfo->fromspace);
+ g_free(msginfo->references);
+ g_free(msginfo->returnreceiptto);
g_free(msginfo->dispositionnotificationto);
g_free(msginfo->xface);
g_free(msginfo->date);
g_free(msginfo->from);
g_free(msginfo->to);
+ g_free(msginfo->cc);
g_free(msginfo->newsgroups);
g_free(msginfo->subject);
g_free(msginfo->msgid);