[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: About Wanderlust threading



At Mon, 05 May 2014 01:53:55 +0200,
Juliusz Chroboczek wrote:
> 
> Hi,
> 
> I'm finding Wanderlust's threading somewhat deficient.  In particular,
> Wanderlust appears unable to stich incomplete threads -- threads in
> which one or more messages are missing.  For example, most
> conversations I have consist of odd-numbered mails in my %Sent folder,
> and even-numbered ones in my %INBOX; Wanderlust presents the latter as
> separate messages.  (Yes, I know about wl-summary-search-parent-by-subject)
> I've looked at the code, here are my findings, for future reference.
> 
> There are two headers that control threading.  In-Reply-To and
> References.  In-Reply-To contains the Message-ID of the parent, while
> References contains the whole chain of parents of the current message.
> 
> Now it turns out that Wanderlust does not look at the full References
> header; it merely considers the value of In-Reply-To or the last entry
> in References (depending on elmo-msgdb-prefer-in-reply-to-for-parent).
> It then appears to use this value in order to construct a summary
> buffer by repeatedly calling wl-summary-insert-thread.
> 
> Assuming the above is correct, it looks to me like it would not be
> quite trivial to change the code to use a more refined algorithm:
> 
>  - the msgdb only contains a single parent, not the full References;
>  - using a more refined algorithm might require invalidating (parts
>    of) the cache when a new message arrives and fills a hole;
>  - using a more refined algorithm will break multi folders.

Interesting that you should mention threading, because I, too,
consider threading to be one area WL leaves wanting.  Not invested any
in depth study as you have but it always did seem rather lame that,
e.g. two messages with same subject would be threaded, even if
otherwise totally unrelated.  

There's more strange threading "features" that I cannot recall off the
top of my head just now, as I've pretty much learned to ignore it as
minor inconvenience, turning off threading in certain folders as
workaround, etc.

But now that you've brought it up... it would be much appreciated if
some elisp guru's out there got this sorted.. :-)

Best-- Ken