On June 3, 2001 at 19:46, J C Lawrence wrote:
How does MHonArc currently attempt to thread messages which are
missing In-Reply-To/References headers, but which share date and
subject strings with an extant thread?
In-Reply-To/References header fields take highest precedence.
For pseudo threads (same subject), these get ordered by date and
listed after any exlicit sub-threads (which is the "possible follow-ups"
section) from the root message of the thread (or sub-thread if
match against a message with different subject but tied to a thread
via an explicit In-Reply-To/References).
It is a double pass process. The first pass is to find the root
messages of subject-based pseudo threads. The second pass is to
compute the actual thread listing order. A message cannot be
the start of a subject-based thread if the message has explicit
references AND one of the references exist in the archive. Subject
detection is done by stripping all MUA additions (eg. "Re: ") and
normalizing to lowercase.
If you love punishment, you can look at the mhthread.pl library of
MHonArc. I do have some comments within the code to provide some
explanation on the insanity. Start with the compute_threads()
function. Two items to be aware of when examining the code is that
resource variable resolution support, and index pages size vs archive
size, affect the process. The resource variable resolution support
is a major reason why a flat list-type structure is created.