aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--libsylph/mh.c42
2 files changed, 26 insertions, 21 deletions
diff --git a/ChangeLog b/ChangeLog
index be9eeaf3..442cbaf0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-03-13
+
+ * libsylph/mh.c: mh_scan_tree_recursive(): fixed rebuilding of folder
+ tree which had been broken at 3.4.0beta1 (#103).
+
2013-02-15
* procheader_scan_date_string(): optimized.
diff --git a/libsylph/mh.c b/libsylph/mh.c
index e8afa6b9..e30c0078 100644
--- a/libsylph/mh.c
+++ b/libsylph/mh.c
@@ -1693,32 +1693,16 @@ static void mh_scan_tree_recursive(FolderItem *item)
folder = item->folder;
- debug_print("scanning %s ...\n",
- item->path ? item->path : LOCAL_FOLDER(folder)->rootpath);
- if (folder->ui_func)
- folder->ui_func(folder, item, folder->ui_func_data);
-
- if (item->path) {
- gint new, unread, total, min, max;
-
- procmsg_get_mark_sum
- (item, &new, &unread, &total, &min, &max, 0);
- if (n_msg > total) {
- new += n_msg - total;
- unread += n_msg - total;
- }
- item->new = new;
- item->unread = unread;
- item->total = n_msg;
- item->updated = TRUE;
- item->mtime = 0;
- }
-
if (g_node_depth(item->node) >= MAX_RECURSION_LEVEL) {
g_warning("mh_scan_tree_recursive(): max recursion level (%u) reached.", MAX_RECURSION_LEVEL);
return;
}
+ debug_print("scanning %s ...\n",
+ item->path ? item->path : LOCAL_FOLDER(folder)->rootpath);
+ if (folder->ui_func)
+ folder->ui_func(folder, item, folder->ui_func_data);
+
fs_path = item->path ?
g_filename_from_utf8(item->path, -1, NULL, NULL, NULL)
: g_strdup(".");
@@ -1867,6 +1851,22 @@ static void mh_scan_tree_recursive(FolderItem *item)
#else
closedir(dp);
#endif
+
+ if (item->path) {
+ gint new, unread, total, min, max;
+
+ procmsg_get_mark_sum
+ (item, &new, &unread, &total, &min, &max, 0);
+ if (n_msg > total) {
+ new += n_msg - total;
+ unread += n_msg - total;
+ }
+ item->new = new;
+ item->unread = unread;
+ item->total = n_msg;
+ item->updated = TRUE;
+ item->mtime = 0;
+ }
}
static gboolean mh_rename_folder_func(GNode *node, gpointer data)