aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
Diffstat (limited to 'camel')
-rw-r--r--camel/ChangeLog12
-rw-r--r--camel/camel-folder.c8
-rw-r--r--camel/providers/imap/camel-imap-folder.c2
3 files changed, 17 insertions, 5 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 549841417e..211f714473 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,15 @@
+2001-07-24 Not Zed <NotZed@Ximian.com>
+
+ * providers/imap/camel-imap-folder.c (camel_imap_folder_changed):
+ Change the break into a continue, we should process as many as we
+ can find.
+
+ * camel-folder.c (camel_folder_move_messages_to): If we have no
+ uid's to copy, exit here before going any further. Some code
+ internally [imap] assumes there are uids to copy otherwise it can
+ segfault.
+ (camel_folder_copy_messages_to): Same.
+
2001-07-24 Jeffrey Stedfast <fejj@ximian.com>
* camel-mime-utils.c (header_decode_param): Handle broken mailers
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 2326fb6300..ca40c8b0dc 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -1147,8 +1147,8 @@ camel_folder_copy_messages_to (CamelFolder *source, GPtrArray *uids,
g_return_if_fail (CAMEL_IS_FOLDER (dest));
g_return_if_fail (uids != NULL);
- if (source == dest) {
- /* source and destination folders are the same, do nothing. */
+ if (source == dest || uids->len == 0) {
+ /* source and destination folders are the same, or no work to do, do nothing. */
return;
}
@@ -1228,8 +1228,8 @@ camel_folder_move_messages_to (CamelFolder *source, GPtrArray *uids,
g_return_if_fail (CAMEL_IS_FOLDER (dest));
g_return_if_fail (uids != NULL);
- if (source == dest) {
- /* source and destination folders are the same, nothing to do. */
+ if (source == dest || uids->len == 0) {
+ /* source and destination folders are the same, or no work to do, nothing to do. */
return;
}
diff --git a/camel/providers/imap/camel-imap-folder.c b/camel/providers/imap/camel-imap-folder.c
index 36136d452c..88b8e5f1b5 100644
--- a/camel/providers/imap/camel-imap-folder.c
+++ b/camel/providers/imap/camel-imap-folder.c
@@ -1681,7 +1681,7 @@ camel_imap_folder_changed (CamelFolder *folder, int exists,
if (info == NULL) {
/* FIXME: danw: does this mean that the summary is corrupt? */
/* I guess a message that we never retrieved got expunged? */
- break;
+ continue;
}
camel_folder_change_info_remove_uid (changes, camel_message_info_uid (info));