<<< Date Index >>>     <<< Thread Index >>>

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/>.