]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
CONTEXT=SEARCH: Handle correctly if the same mail is added and removed (or
authorTimo Sirainen <tss@iki.fi>
Sun, 8 Jun 2008 17:06:18 +0000 (20:06 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 8 Jun 2008 17:06:18 +0000 (20:06 +0300)
removed and added) before next sync.

--HG--
branch : HEAD

src/lib-storage/mailbox-search-result.c

index 2ebdf1bb3459f35fbb4e55167f88e8d0faa06d41..e786bb0267ad4091713b427f735fc34c5583775b 100644 (file)
@@ -110,16 +110,20 @@ void mailbox_search_result_add(struct mail_search_result *result, uint32_t uid)
                return;
 
        seq_range_array_add(&result->uids, 0, uid);
-       if (array_is_created(&result->added_uids))
+       if (array_is_created(&result->added_uids)) {
                seq_range_array_add(&result->added_uids, 0, uid);
+               seq_range_array_remove(&result->removed_uids, uid);
+       }
 }
 
 void mailbox_search_result_remove(struct mail_search_result *result,
                                  uint32_t uid)
 {
        if (seq_range_array_remove(&result->uids, uid)) {
-               if (array_is_created(&result->removed_uids))
+               if (array_is_created(&result->removed_uids)) {
                        seq_range_array_add(&result->removed_uids, 0, uid);
+                       seq_range_array_remove(&result->added_uids, uid);
+               }
        }
 }