0.8.11claws97
[claws.git] / src / msgcache.c
index 00a4c72..961b0df 100644 (file)
@@ -165,7 +165,7 @@ static gint msgcache_read_cache_data_str(FILE *fp, gchar **str)
                ret = -1;
 
        if (ret < 0)
-               g_warning(_("Cache data is corrupted\n"));
+               g_warning("Cache data is corrupted\n");
 
        return ret;
 }
@@ -183,7 +183,7 @@ static gint msgcache_read_cache_data_str(FILE *fp, gchar **str)
 #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; \
@@ -311,13 +311,12 @@ void msgcache_read_mark(MsgCache *cache, const gchar *mark_file)
 #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); \
        } \
 }
@@ -364,7 +363,7 @@ static void msgcache_write_func(gpointer key, gpointer value, gpointer user_data
 {
        MsgInfo *msginfo;
        struct write_fps *write_fps;
-       
+
        msginfo = (MsgInfo *)value;
        write_fps = user_data;
 
@@ -446,20 +445,22 @@ MsgInfo *msgcache_get_msg_by_id(MsgCache *cache, const gchar *msgid)
 
 static void msgcache_get_msg_list_func(gpointer key, gpointer value, gpointer user_data)
 {
-       GSList **listptr = user_data;
+       MsgInfoList **listptr = user_data;
        MsgInfo *msginfo = value;
 
-       *listptr = g_slist_append(*listptr, procmsg_msginfo_new_ref(msginfo));
+       *listptr = g_slist_prepend(*listptr, procmsg_msginfo_new_ref(msginfo));
 }
 
-GSList *msgcache_get_msg_list(MsgCache *cache)
+MsgInfoList *msgcache_get_msg_list(MsgCache *cache)
 {
-       GSList *msg_list = NULL;
+       MsgInfoList *msg_list = NULL;
 
        g_return_val_if_fail(cache != NULL, NULL);
 
        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;
 }