diff options
author | Dan Winship <danw@src.gnome.org> | 2001-08-21 22:27:48 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-08-21 22:27:48 +0800 |
commit | d3027e6fa9158b10ef87c3f6433dac5917e0891d (patch) | |
tree | 83d0617ded2b045cd8527e8e224059081eeb94c0 /camel/camel-folder-thread.c | |
parent | d0901d2ff2e9858c4f472d08cdbd6f7d4640845f (diff) | |
download | gsoc2013-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.c | 8 |
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); |