Revision 3197

View differences:

libsylph/mh.c
1665 1665
			mh_remove_missing_folder_items_func, folder);
1666 1666
}
1667 1667

  
1668
#define MAX_RECURSION_LEVEL	64
1669

  
1668 1670
static void mh_scan_tree_recursive(FolderItem *item)
1669 1671
{
1670 1672
	Folder *folder;
......
1691 1693

  
1692 1694
	folder = item->folder;
1693 1695

  
1696
	debug_print("scanning %s ...\n",
1697
		    item->path ? item->path : LOCAL_FOLDER(folder)->rootpath);
1698
	if (folder->ui_func)
1699
		folder->ui_func(folder, item, folder->ui_func_data);
1700

  
1701
	if (item->path) {
1702
		gint new, unread, total, min, max;
1703

  
1704
		procmsg_get_mark_sum
1705
			(item, &new, &unread, &total, &min, &max, 0);
1706
		if (n_msg > total) {
1707
			new += n_msg - total;
1708
			unread += n_msg - total;
1709
		}
1710
		item->new = new;
1711
		item->unread = unread;
1712
		item->total = n_msg;
1713
		item->updated = TRUE;
1714
		item->mtime = 0;
1715
	}
1716

  
1717
	if (g_node_depth(item->node) >= MAX_RECURSION_LEVEL) {
1718
		g_warning("mh_scan_tree_recursive(): max recursion level (%u) reached.", MAX_RECURSION_LEVEL);
1719
		return;
1720
	}
1721

  
1694 1722
	fs_path = item->path ?
1695 1723
		g_filename_from_utf8(item->path, -1, NULL, NULL, NULL)
1696 1724
		: g_strdup(".");
......
1713 1741
#endif
1714 1742
	g_free(fs_path);
1715 1743

  
1716
	debug_print("scanning %s ...\n",
1717
		    item->path ? item->path
1718
		    : LOCAL_FOLDER(item->folder)->rootpath);
1719
	if (folder->ui_func)
1720
		folder->ui_func(folder, item, folder->ui_func_data);
1721

  
1722 1744
#ifdef G_OS_WIN32
1723 1745
	do {
1724 1746
		if (!wfd.file_name) continue;
......
1845 1867
#else
1846 1868
	closedir(dp);
1847 1869
#endif
1848

  
1849
	if (item->path) {
1850
		gint new, unread, total, min, max;
1851

  
1852
		procmsg_get_mark_sum
1853
			(item, &new, &unread, &total, &min, &max, 0);
1854
		if (n_msg > total) {
1855
			new += n_msg - total;
1856
			unread += n_msg - total;
1857
		}
1858
		item->new = new;
1859
		item->unread = unread;
1860
		item->total = n_msg;
1861
		item->updated = TRUE;
1862
		item->mtime = 0;
1863
	}
1864 1870
}
1865 1871

  
1866 1872
static gboolean mh_rename_folder_func(GNode *node, gpointer data)
ChangeLog
1 1
2013-01-25
2 2

  
3
	* libsylph/mh.c: mh_scan_tree_recursive(): limit the recursion level
4
	  to 64.
5

  
6
2013-01-25
7

  
3 8
	* src/prefs_filter_edit.c: prefs_filter_edit_action_hbox_to_action():
4 9
	  check the existence of destination folder.
5 10

  

Also available in: Unified diff