5984
5988
following information is stored for each message ID:
5992
The ``canonical'' message with this message ID. It is typically the
5993
first message encountered by VM with the message ID.
5987
5994
@item messages:
5988
The list of messages that carry this message ID. The last message in the list
5989
is regarded as the @i{canonical} message for this message ID.
5995
The list of messages that carry this message ID.
5991
5997
The date of the message.
5999
6005
The date of the youngest message in the thread.
6000
6006
@item oldest-date:
6001
6007
The date of the oldest message in the thread.
6002
@inindex thread-subtree
6003
@item thread-subtree:
6004
A list of all the messages contained in the subtree of the canonical
6005
message with this message ID. This data is ideally stored in the
6006
Softdata vector of the message itself. But it is here for now.
6009
6010
The @code{vm-thread-subject-obarray} interns each subject string found
6033
6034
@inindex thread-subtree
6034
6035
@inindex thread-list
6035
6036
@inindex thread-indentation
6036
After the threads are built, the @code{thread-subtree} property of
6037
@code{vm-thread-obarray} and the @code{thread-list} and
6038
@code{thread-indentation} fields of the Softdata vector are calculated
6039
as needed on demand and cached. These fields cannot be calculated without
6040
building threads first.
6037
After the threads are built, the @code{thread-list},
6038
@code{thread-indentation} and the @code{thread-subtree} fields of the
6039
Softdata vector are calculated as needed on demand and cached. These
6040
fields cannot be calculated without building threads first.
6042
6042
When new messages are assimilated, they are added to the threads that
6043
might have been already built, and the @code{thread-subtree} property
6044
is erased for all their ancestors, forcing them to be recalculated.
6045
In addition, the @code{thread-list} and @code{thread-indentation}
6046
fields of all their children are erased as well.
6043
might have been already built, and the thread-related fields in the
6044
Soft data vector are erased, forcing them to be recalculated. The
6045
@code{thread-subtree} field is erased for all the ancestors of the
6046
assimilated message. The @code{thread-list} and
6047
@code{thread-indentation} fields are erased for all the descendants of
6048
the assimilated message.
6048
6050
@inindex unthread
6049
6051
Before messages in the folder are expunged, they are @b{unthreaded}.
6050
6052
This involves removing them from their respective thread trees. It
6051
also involves the erasure of the @code{thread-subtree} property of all
6053
also involves the erasure of the @code{thread-subtree} field of all
6052
6054
their ancestors and the @code{thread-list} and
6053
@code{thread-indentation} fields of the children.
6055
@code{thread-indentation} fields of the descendants.