+2003-01-14 [melvin] 0.8.8claws97
+
+ * src/folderview.c
+ folderview_check_new(): return the number of new messages
+ since last check.
+ * src/inc.c
+ inc_account_mail(): Disable counting of new messages for IMAP
+ and NNTP until bug [19] and [14] are fixed.
+
2003-01-14 [paul] 0.8.8claws96
* sync with 0.8.8cvs6
}
#endif
+/** folderview_check_new()
+ * Count the number of new messages since last check.
+ * \param folder the folder to check for new messages
+ * \return the number of new messages since last check
+ */
gint folderview_check_new(Folder *folder)
{
GList *list;
GtkCTree *ctree;
GtkCTreeNode *node;
gint new_msgs = 0;
+ gint former_new_msgs = 0;
+ gint former_new = 0;
for (list = folderview_list; list != NULL; list = list->next) {
folderview = (FolderView *)list->data;
if (!folder && !FOLDER_IS_LOCAL(item->folder)) continue;
folderview_scan_tree_func(item->folder, item, NULL);
+ former_new = item->new;
if (folder_item_scan(item) < 0) {
if (folder && !FOLDER_IS_LOCAL(folder))
break;
}
folderview_update_node(folderview, node);
new_msgs += item->new;
+ former_new_msgs += former_new;
}
gtk_widget_set_sensitive(folderview->ctree, TRUE);
}
folder_write_list();
+ /* Number of new messages since last check is the just the difference
+ * between former_new_msgs and new_msgs. If new_msgs is less than
+ * former_new_msgs, that would mean another session accessed the folder
+ * and the result is not well defined.
+ */
+ new_msgs = (former_new_msgs < new_msgs ? new_msgs - former_new_msgs : 0);
return new_msgs;
}
switch (account->protocol) {
case A_IMAP4:
case A_NNTP:
- return folderview_check_new(FOLDER(account->folder));
-
+ /* Melvin: bug [14]
+ * FIXME: it should return foldeview_check_new() value.
+ * TODO: do it when bug [19] is fixed (IMAP folder sets
+ * an incorrect new message count)
+ */
+ folderview_check_new(FOLDER(account->folder));
+ return 0;
case A_POP3:
case A_APOP:
session = inc_session_new(account);