diff options
author | Not Zed <NotZed@Ximian.com> | 2002-10-03 08:15:23 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2002-10-03 08:15:23 +0800 |
commit | 5799cfdceaf45654bba88a2f82b72b0095773ccc (patch) | |
tree | 9e478e975be2f0e9145be552c77c588cadfe8d9c /camel/providers/imap/camel-imap-folder.c | |
parent | cc7c739d5197fa5c9991a859ee528e7bc39476df (diff) | |
download | gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar.gz gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar.bz2 gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar.lz gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar.xz gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.tar.zst gsoc2013-evolution-5799cfdceaf45654bba88a2f82b72b0095773ccc.zip |
/home/notzed/gnome/head/evolution/camel
2002-10-02 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (get_matching): Set *set to
NULL if we dont get any matches.
(imap_sync_online): If we get no matches, skip any work, also
reorder some code to make it easier to skip. See #31031.
* providers/imap/camel-imap-store.c
(imap_check_folder_still_extant): Default to "TRUE", if the list
command failed, it probably means a server problem, assume the
worst. This makes imap_refresh_info not clear the exception and
crash. Fixes crash of #31000.
2002-10-01 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (imap_refresh_info): Make
sure we pass the exception to imap_folder_selected(), otherwise
failures can be lost. See bug #31000.
2002-10-01 Not Zed <NotZed@Ximian.com>
* camel-folder.c (thaw): Add an assertion that the frozen count>0.
(freeze): Same for >= 0.
* camel-vee-folder.c (camel_vee_folder_remove_folder): Use the
unmatched freeze_count when thawing folders removed from
unmatched, rather than the folder's freeze_count. Might be
related to #27391.
svn path=/trunk/; revision=18314
Diffstat (limited to 'camel/providers/imap/camel-imap-folder.c')
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index fda6701693..0dec157509 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -488,7 +488,7 @@ imap_refresh_info (CamelFolder *folder, CamelException *ex) CAMEL_SERVICE_UNLOCK (imap_store, connect_lock); response = camel_imap_command (imap_store, folder, ex, NULL); if (response) { - camel_imap_folder_selected (folder, response, NULL); + camel_imap_folder_selected (folder, response, ex); camel_imap_response_free (imap_store, response); } return; @@ -715,6 +715,7 @@ get_matching (CamelFolder *folder, guint32 flags, guint32 mask, char **set) g_string_free (gset, FALSE); return matches; } else { + *set = NULL g_string_free (gset, TRUE); g_ptr_array_free (matches, TRUE); return NULL; @@ -760,11 +761,7 @@ imap_sync_online (CamelFolder *folder, CamelException *ex) empty-set of flags so... if this is true then we want to unset the previously set flags.*/ unset = !(info->flags & CAMEL_IMAP_SERVER_FLAGS); - - /* FIXME: since we don't know the previously set flags, - if unset is TRUE then just unset all the flags? */ - flaglist = imap_create_flag_list (unset ? CAMEL_IMAP_SERVER_FLAGS : info->flags); - + /* Note: get_matching() uses UID_SET_LIMIT to limit the size of the uid-set string. We don't have to loop here to flush all the matching uids because @@ -773,7 +770,13 @@ imap_sync_online (CamelFolder *folder, CamelException *ex) matches = get_matching (folder, info->flags & (CAMEL_IMAP_SERVER_FLAGS | CAMEL_MESSAGE_FOLDER_FLAGGED), CAMEL_IMAP_SERVER_FLAGS | CAMEL_MESSAGE_FOLDER_FLAGGED, &set); camel_folder_summary_info_free (folder->summary, info); + if (matches == NULL) + continue; + /* FIXME: since we don't know the previously set flags, + if unset is TRUE then just unset all the flags? */ + flaglist = imap_create_flag_list (unset ? CAMEL_IMAP_SERVER_FLAGS : info->flags); + /* Note: to `unset' flags, use -FLAGS.SILENT (<flag list>) */ response = camel_imap_command (store, folder, &local_ex, "UID STORE %s %sFLAGS.SILENT %s", |