* src/filter.c
[claws.git] / src / mh.c
index daf12ae16630e835140776f01e041c03ec535b70..2c4a7659eedf93ca02dccbec6ca8df70bff43b27 100644 (file)
--- a/src/mh.c
+++ b/src/mh.c
@@ -126,10 +126,10 @@ void mh_folder_destroy(MHFolder *folder)
 
 static void mh_folder_init(Folder *folder, const gchar *name, const gchar *path)
 {
-       folder_local_folder_init(folder, name, path);
-
        folder->type = F_MH;
 
+       folder_local_folder_init(folder, name, path);
+
 /*
        folder->get_msg_list        = mh_get_msg_list;
 */
@@ -334,6 +334,11 @@ MsgInfo *mh_fetch_msginfo(Folder *folder, FolderItem *item, gint num)
 
        folder_item_set_default_flags(item, &flags);
        msginfo = procheader_parse_file(file, flags, TRUE, FALSE);
+       if(!msginfo) {
+               g_free(file);
+               return NULL;
+       }
+
        msginfo->msgnum = num;
        msginfo->folder = item;
 
@@ -858,7 +863,7 @@ void mh_scan_tree(Folder *folder)
 
        g_return_if_fail(folder != NULL);
 
-       item = folder_item_new(folder->name, NULL);
+       item = folder_item_new(folder, folder->name, NULL);
        item->folder = folder;
        folder->node = g_node_new(item);
 
@@ -937,7 +942,7 @@ FolderItem *mh_create_folder(Folder *folder, FolderItem *parent,
                                   NULL);
        else
                path = g_strdup(name);
-       new_item = folder_item_new(name, path);
+       new_item = folder_item_new(folder, name, path);
        folder_item_append(parent, new_item);
        g_free(path);
 
@@ -1222,7 +1227,7 @@ static void mh_scan_tree_recursive(FolderItem *item)
                                continue;
                        }
 
-                       new_item = folder_item_new(d->d_name, entry);
+                       new_item = folder_item_new(item->folder, d->d_name, entry);
                        folder_item_append(item, new_item);
                        if (!item->path) {
                                if (!strcmp(d->d_name, INBOX_DIR)) {