reverse msgcache_get_msg_list order
[claws.git] / src / msgcache.c
index e8d5b1f..00a4c72 100644 (file)
@@ -195,7 +195,7 @@ MsgCache *msgcache_read_cache(FolderItem *item, const gchar *cache_file)
        MsgCache *cache;
        FILE *fp;
        MsgInfo *msginfo;
-/*     MsgFlags default_flags; */
+       MsgTmpFlags tmp_flags = 0;
        gchar file_buf[BUFFSIZE];
        gint ver;
        guint num;
@@ -220,6 +220,12 @@ MsgCache *msgcache_read_cache(FolderItem *item, const gchar *cache_file)
                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);
@@ -245,11 +251,8 @@ MsgCache *msgcache_read_cache(FolderItem *item, const gchar *cache_file)
                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)
@@ -446,7 +449,7 @@ static void msgcache_get_msg_list_func(gpointer key, gpointer value, gpointer us
        GSList **listptr = user_data;
        MsgInfo *msginfo = value;
 
-       *listptr = g_slist_prepend(*listptr, procmsg_msginfo_new_ref(msginfo));
+       *listptr = g_slist_append(*listptr, procmsg_msginfo_new_ref(msginfo));
 }
 
 GSList *msgcache_get_msg_list(MsgCache *cache)