On Fri 2018-04-13 22:46:08 -0300, David Bremner wrote:
> Other parts of notmuch (e.g. notmuch show) expect each thread to
> contain at least one top level message, and crash if this expectation
> is not met.
> ---
>  lib/thread.cc    | 8 +++++++-
>  test/T050-new.sh | 1 -
>  2 files changed, 7 insertions(+), 2 deletions(-)
>
> diff --git a/lib/thread.cc b/lib/thread.cc
> index 3561b27f..dbac002f 100644
> --- a/lib/thread.cc
> +++ b/lib/thread.cc
> @@ -397,7 +397,13 @@ _resolve_thread_relationships (notmuch_thread_t *thread)
>      for (node = thread->message_list->head; node; node = node->next) {
>       message = node->message;
>       in_reply_to = _notmuch_message_get_in_reply_to (message);
> -     if (in_reply_to && strlen (in_reply_to) &&
> +     /*
> +      * if we reach the end of the list without finding a top-level
> +      * message, that means the thread is a cycle (or set of
> +      * cycles) and any message can be considered top-level
> +      */

Just how arbitrary should we be?  Do we want it to be non-deterministic?

If we care about determinism, i'd recommend selecting the message with
the earliest date as the top-level message, and if multiple messages
have the same date, we should sort by Message-ID.

     --dkg
_______________________________________________
notmuch mailing list
notmuch@notmuchmail.org
https://notmuchmail.org/mailman/listinfo/notmuch

Reply via email to