Re: Threading bug due to a duplicated reference
On 2005-03-20 17:57:27 +0900, Tamotsu Takahashi wrote:
> I guess that Mutt thinks of the duplicated IDs as a thread loop,
> here in thread.c:
> | if (is_descendant (new, thread)) /* no loops! */
> | break;
> So we have to remove duplicated IDs somewhere before the
> loop-detection.
> I made a patch to do it while parsing headers.
> Give it a try.
Mhh.... The loop detection currently seems to work by bailing out
of the loop that cycles over all references in a given message. I'm
wondering why we don't just do this:
diff -u -r3.10 thread.c
--- thread.c 3 Feb 2005 17:01:44 -0000 3.10
+++ thread.c 24 Jul 2005 16:46:18 -0000
@@ -928,7 +928,7 @@
if (new->duplicate_thread)
new = new->parent;
if (is_descendant (new, thread)) /* no loops! */
- break;
+ continue;
}
I.e., go on with the next reference?
I'm committing that patch for now; it seems not to have any adverse
consequences here.
Regards,
--
Thomas Roessler · Personal soap box at <http://log.does-not-exist.org/>.