ret = -1;
if (ret < 0)
- g_warning(_("Cache data is corrupted\n"));
+ g_warning("Cache data is corrupted\n");
return ret;
}
#define READ_CACHE_DATA_INT(n, fp) \
{ \
if (fread(&n, sizeof(n), 1, fp) != 1) { \
- g_warning(_("Cache data is corrupted\n")); \
+ g_warning("Cache data is corrupted\n"); \
procmsg_msginfo_free(msginfo); \
error = TRUE; \
break; \
MsgCache *cache;
FILE *fp;
MsgInfo *msginfo;
-/* MsgFlags default_flags; */
+ MsgTmpFlags tmp_flags = 0;
gchar file_buf[BUFFSIZE];
gint ver;
guint num;
return NULL;
}
+ if (item->stype == F_QUEUE) {
+ tmp_flags |= MSG_QUEUED;
+ } else if (item->stype == F_DRAFT) {
+ tmp_flags |= MSG_DRAFT;
+ }
+
cache = msgcache_new();
g_hash_table_freeze(cache->msgnum_table);
READ_CACHE_DATA(msginfo->references, fp);
READ_CACHE_DATA(msginfo->xref, fp);
-/*
- MSG_SET_PERM_FLAGS(msginfo->flags, default_flags.perm_flags);
- MSG_SET_TMP_FLAGS(msginfo->flags, default_flags.tmp_flags);
-*/
msginfo->folder = item;
+ msginfo->flags.tmp_flags |= tmp_flags;
g_hash_table_insert(cache->msgnum_table, &msginfo->msgnum, msginfo);
if(msginfo->msgid)
#define WRITE_CACHE_DATA(data, fp) \
{ \
gint len; \
- \
- if (data == NULL || (len = strlen(data)) == 0) { \
+ if (data == NULL) \
len = 0; \
- WRITE_CACHE_DATA_INT(len, fp); \
- } else { \
+ else \
len = strlen(data); \
- WRITE_CACHE_DATA_INT(len, fp); \
+ WRITE_CACHE_DATA_INT(len, fp); \
+ if (len > 0) { \
fwrite(data, len, 1, fp); \
} \
}
g_hash_table_foreach((GHashTable *)cache->msgnum_table, msgcache_get_msg_list_func, (gpointer)&msg_list);
cache->last_access = time(NULL);
+
+ msg_list = g_slist_reverse(msg_list);
return msg_list;
}