diff options
-rw-r--r-- | camel/ChangeLog | 7 | ||||
-rw-r--r-- | camel/providers/imap/camel-imap-folder.c | 12 |
2 files changed, 16 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog index ea8e16e36b..6a0b9c8cd4 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -3,6 +3,13 @@ * providers/imap/camel-imap-folder.c (camel_imap_folder_init): Set some default permanent_flags. This is the other cause of bug #28038. + (imap_refresh_info): After calling camel_imap_command() with a + NULL format value (this is a shortcut to change the current_folder + by SELECTing it), call camel_imap_folder_selected(). This may have + been why permanent_flags never got set on the folder even after + going online in bug #28038. + (imap_update_summary): Same here. Also NULL-guard + camel_imap_response_free(). 2002-08-07 Jeffrey Stedfast <fejj@ximian.com> diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c index 9e390800f4..7976c7d19e 100644 --- a/camel/providers/imap/camel-imap-folder.c +++ b/camel/providers/imap/camel-imap-folder.c @@ -473,13 +473,16 @@ imap_refresh_info (CamelFolder *folder, CamelException *ex) } /* If the folder isn't selected, select it (which will force - * a rescan if one is needed. + * a rescan if one is needed). */ CAMEL_IMAP_STORE_LOCK (imap_store, command_lock); if (imap_store->current_folder != folder) { CAMEL_IMAP_STORE_UNLOCK (imap_store, command_lock); response = camel_imap_command (imap_store, folder, ex, NULL); - camel_imap_response_free (imap_store, response); + if (response) { + camel_imap_folder_selected (folder, response, NULL); + camel_imap_response_free (imap_store, response); + } return; } CAMEL_IMAP_STORE_UNLOCK (imap_store, command_lock); @@ -2264,7 +2267,10 @@ imap_update_summary (CamelFolder *folder, int exists, /* now re-select it and process the EXISTS response */ response = camel_imap_command (imap_store, folder, ex, NULL); - camel_imap_response_free (imap_store, response); + if (response) { + camel_imap_folder_selected (folder, response, NULL); + camel_imap_response_free (imap_store, response); + } } return; |