aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-folder-thread.c
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-08-21 22:27:48 +0800
committerDan Winship <danw@src.gnome.org>2001-08-21 22:27:48 +0800
commitd3027e6fa9158b10ef87c3f6433dac5917e0891d (patch)
tree83d0617ded2b045cd8527e8e224059081eeb94c0 /camel/camel-folder-thread.c
parentd0901d2ff2e9858c4f472d08cdbd6f7d4640845f (diff)
downloadgsoc2013-evolution-d3027e6fa9158b10ef87c3f6433dac5917e0891d.tar.gz
gsoc2013-evolution-d3027e6fa9158b10ef87c3f6433dac5917e0891d.tar.zst
gsoc2013-evolution-d3027e6fa9158b10ef87c3f6433dac5917e0891d.zip
Fix the duplicate message check so it doesn't mess up threading when a
* camel-folder-thread.c (camel_folder_thread_messages_new_summary): Fix the duplicate message check so it doesn't mess up threading when a reply appears in the folder before the message it's a reply to. Fixes bug #3357. (camel_folder_thread_messages_new): Likewise, although I don't think this function is used any more. svn path=/trunk/; revision=12341
Diffstat (limited to 'camel/camel-folder-thread.c')
-rw-r--r--camel/camel-folder-thread.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/camel/camel-folder-thread.c b/camel/camel-folder-thread.c
index 4417668ae1..40f0d3d77f 100644
--- a/camel/camel-folder-thread.c
+++ b/camel/camel-folder-thread.c
@@ -484,13 +484,13 @@ camel_folder_thread_messages_new(CamelFolder *folder, GPtrArray *uids)
if (mi->message_id.id.id) {
c = g_hash_table_lookup(id_table, &mi->message_id);
/* check for duplicate messages */
- if (c) {
+ if (c && c->order) {
/* if duplicate, just make out it is a no-id message, but try and insert it
into the right spot in the tree */
d(printf("doing: (duplicate message id)\n"));
c = e_memchunk_alloc0(thread->node_chunks);
g_hash_table_insert(no_id_table, (void *)mi, c);
- } else {
+ } else if (!c) {
d(printf("doing : %08x%08x (%s)\n", mi->message_id.id.part.hi, mi->message_id.id.part.lo, camel_message_info_subject(mi)));
c = e_memchunk_alloc0(thread->node_chunks);
g_hash_table_insert(id_table, (void *)&mi->message_id, c);
@@ -635,13 +635,13 @@ camel_folder_thread_messages_new_summary(GPtrArray *summary)
if (mi->message_id.id.id) {
c = g_hash_table_lookup(id_table, &mi->message_id);
/* check for duplicate messages */
- if (c) {
+ if (c && c->order) {
/* if duplicate, just make out it is a no-id message, but try and insert it
into the right spot in the tree */
d(printf("doing: (duplicate message id)\n"));
c = e_memchunk_alloc0(thread->node_chunks);
g_hash_table_insert(no_id_table, (void *)mi, c);
- } else {
+ } else if (!c) {
d(printf("doing : %08x%08x (%s)\n", mi->message_id.id.part.hi, mi->message_id.id.part.lo, camel_message_info_subject(mi)));
c = e_memchunk_alloc0(thread->node_chunks);
g_hash_table_insert(id_table, (void *)&mi->message_id, c);