2002-07-24 Not Zed <NotZed@Ximian.com>
+ * providers/imap/camel-imap-folder.c (imap_expunge_uids_online):
+ Sync before doing an expunge if we dont have uidplus. See #25766.
+ (imap_expunge_uids_resyncing): Same here.
+
* providers/imap/camel-imap-store.c (get_folder_info_online):
Duplicated the very much hack in imap_store_refresh_folders() to
avoid a deadlock in #27959. A decent fix has to wait for a
char *set;
CAMEL_IMAP_STORE_LOCK (store, command_lock);
-
+
+ if ((store->capabilities & IMAP_CAPABILITY_UIDPLUS) == 0) {
+ ((CamelFolderClass *)CAMEL_OBJECT_GET_CLASS(folder))->sync(folder, 0, ex);
+ if (camel_exception_is_set(ex)) {
+ CAMEL_IMAP_STORE_UNLOCK (store, command_lock);
+ return;
+ }
+ }
+
while (uid < uids->len) {
set = imap_uid_array_to_set (folder->summary, uids, uid, UID_SET_LIMIT, &uid);
response = camel_imap_command (store, folder, ex,
*/
CAMEL_IMAP_STORE_LOCK (store, command_lock);
+
+ ((CamelFolderClass *)CAMEL_OBJECT_GET_CLASS(folder))->sync(folder, 0, ex);
+ if (camel_exception_is_set(ex)) {
+ CAMEL_IMAP_STORE_UNLOCK (store, command_lock);
+ return;
+ }
+
response = camel_imap_command (store, folder, ex, "UID SEARCH DELETED");
if (!response) {
CAMEL_IMAP_STORE_UNLOCK (store, command_lock);