aboutsummaryrefslogtreecommitdiffstats
path: root/camel/providers/imap/camel-imap-folder.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2002-09-27 13:34:05 +0800
committerMichael Zucci <zucchi@src.gnome.org>2002-09-27 13:34:05 +0800
commit636a54437376dcf8b8ad0665fbf82b18cbf02e57 (patch)
tree2022fb7d1c09064bf5e4a13c2b6c373b2f0d6ef7 /camel/providers/imap/camel-imap-folder.c
parent1dcca79ec4ade696bb31dd9d3914a92ab3fd0cef (diff)
downloadgsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar.gz
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar.bz2
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar.lz
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar.xz
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.tar.zst
gsoc2013-evolution-636a54437376dcf8b8ad0665fbf82b18cbf02e57.zip
Use the summary's last uid as the one to fetch from, ignoring the cache.
2002-09-27 Not Zed <NotZed@Ximian.com> * providers/imap/camel-imap-folder.c (imap_update_summary): Use the summary's last uid as the one to fetch from, ignoring the cache. Use strotul instead of atoi as well. * providers/imap/camel-imap-store.c (get_folder_counts): If we have the folder open, and the unread count has changed, refresh it. Should fix #30399 enough. Also in non-check-all mode, if we have the folder open, use it anyway. svn path=/trunk/; revision=18242
Diffstat (limited to 'camel/providers/imap/camel-imap-folder.c')
-rw-r--r--camel/providers/imap/camel-imap-folder.c28
1 files changed, 8 insertions, 20 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 51c46d6d8c..1365c720eb 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -2055,7 +2055,7 @@ imap_update_summary (CamelFolder *folder, int exists,
CamelImapStore *store = CAMEL_IMAP_STORE (folder->parent_store);
CamelImapFolder *imap_folder = CAMEL_IMAP_FOLDER (folder);
GPtrArray *fetch_data = NULL, *messages = NULL, *needheaders;
- guint32 flags, uidval, maxuid;
+ guint32 flags, uidval;
int i, seq, first, size, got;
CamelImapResponseType type;
const char *header_spec;
@@ -2079,30 +2079,18 @@ imap_update_summary (CamelFolder *folder, int exists,
first = seq + 1;
if (seq > 0) {
mi = camel_folder_summary_index (folder->summary, seq - 1);
- uidval = atoi (camel_message_info_uid (mi));
+ uidval = strtoul(camel_message_info_uid (mi), NULL, 10);
camel_folder_summary_info_free (folder->summary, mi);
} else
uidval = 0;
- size = (exists - seq) * (IMAP_PRETEND_SIZEOF_FLAGS + IMAP_PRETEND_SIZEOF_SIZE);
+ size = (exists - seq) * (IMAP_PRETEND_SIZEOF_FLAGS + IMAP_PRETEND_SIZEOF_SIZE + IMAP_PRETEND_SIZEOF_HEADERS);
got = 0;
-
- maxuid = camel_imap_message_cache_max_uid (imap_folder->cache);
- if (uidval >= maxuid) {
- /* None of the new messages are cached */
- size += (exists - seq) * IMAP_PRETEND_SIZEOF_HEADERS;
- if (!camel_imap_command_start (store, folder, ex,
- "UID FETCH %d:* (FLAGS RFC822.SIZE INTERNALDATE BODY.PEEK[%s])",
- maxuid + 1, header_spec))
- return;
- camel_operation_start (NULL, _("Fetching summary information for new messages"));
- } else {
- if (!camel_imap_command_start (store, folder, ex,
- "UID FETCH %d:* (FLAGS RFC822.SIZE)",
- uidval + 1))
- return;
- camel_operation_start (NULL, _("Scanning for new messages"));
- }
+ if (!camel_imap_command_start (store, folder, ex,
+ "UID FETCH %d:* (FLAGS RFC822.SIZE INTERNALDATE BODY.PEEK[%s])",
+ uidval + 1, header_spec))
+ return;
+ camel_operation_start (NULL, _("Fetching summary information for new messages"));
/* Parse the responses. We can't add a message to the summary
* until we've gotten its headers, and there's no guarantee