static gboolean persist_prefs_free (gpointer key, gpointer val, gpointer data);
void folder_item_read_cache (FolderItem *item);
void folder_item_free_cache (FolderItem *item);
+gint folder_item_scan_full (FolderItem *item, gboolean filtering);
static GSList *classlist;
FolderItem *item = (FolderItem *)node->data;
folder_item_restore_persist_prefs(item, pptable);
- folder_item_scan(item);
+ folder_item_scan_full(item, FALSE);
return FALSE;
}
gint folder_item_open(FolderItem *item)
{
if(((FOLDER_TYPE(item->folder) == F_IMAP) && !item->no_select) || (FOLDER_TYPE(item->folder) == F_NEWS)) {
- folder_item_scan(item);
+ folder_item_scan_full(item, TRUE);
}
/* Processing */
folder_item_update(item, F_ITEM_UPDATE_MSGCNT);
}
-gint folder_item_scan(FolderItem *item)
+gint folder_item_scan_full(FolderItem *item, gboolean filtering)
{
Folder *folder;
GSList *folder_list = NULL, *cache_list = NULL;
MsgInfo *msginfo = (MsgInfo *) elem->data;
msgcache_add_msg(item->cache, msginfo);
- if ((item->stype == F_INBOX) &&
+ if ((filtering == TRUE) &&
+ (item->stype == F_INBOX) &&
(item->folder->account != NULL) &&
(item->folder->account->filter_on_recv) &&
procmsg_msginfo_filter(msginfo))
return 0;
}
+gint folder_item_scan(FolderItem *item)
+{
+ return folder_item_scan_full(item, TRUE);
+}
+
static gboolean folder_scan_all_items_func(GNode *node, gpointer data)
{
FolderItem *item = node->data;
item->cache = msgcache_read_cache(item, cache_file);
if (!item->cache) {
item->cache = msgcache_new();
- folder_item_scan(item);
+ folder_item_scan_full(item, TRUE);
}
msgcache_read_mark(item->cache, mark_file);
g_free(cache_file);
dest->last_num = num;
} else if (num == 0) {
- folder_item_scan(dest);
+ folder_item_scan_full(dest, FALSE);
num = folder_item_get_msg_num_by_file(dest, file);
}
gchar *file;
if (!folderscan) {
- folder_item_scan(dest);
+ folder_item_scan_full(dest, FALSE);
folderscan = TRUE;
}
file = folder_item_fetch_msg(msginfo->folder, msginfo->msgnum);
gchar *file;
if (!folderscan) {
- folder_item_scan(dest);
+ folder_item_scan_full(dest, FALSE);
folderscan = TRUE;
}
file = folder_item_fetch_msg(msginfo->folder, msginfo->msgnum);