mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-24 20:08:10 +01:00
lib: Add an iterator over all messages in a thread
Previously, getting the list of all messages in a thread required recursively traversing the thread's message hierarchy, which was both difficult and resulted in messages being out of order. This adds a public function to retrieve an iterator over all of the messages in a thread in oldest-first order.
This commit is contained in:
parent
d6e3905df7
commit
f29bcc59df
2 changed files with 13 additions and 6 deletions
|
@ -719,20 +719,21 @@ int
|
||||||
notmuch_thread_get_total_messages (notmuch_thread_t *thread);
|
notmuch_thread_get_total_messages (notmuch_thread_t *thread);
|
||||||
|
|
||||||
/* Get a notmuch_messages_t iterator for the top-level messages in
|
/* Get a notmuch_messages_t iterator for the top-level messages in
|
||||||
* 'thread'.
|
* 'thread' in oldest-first order.
|
||||||
*
|
*
|
||||||
* This iterator will not necessarily iterate over all of the messages
|
* This iterator will not necessarily iterate over all of the messages
|
||||||
* in the thread. It will only iterate over the messages in the thread
|
* in the thread. It will only iterate over the messages in the thread
|
||||||
* which are not replies to other messages in the thread.
|
* which are not replies to other messages in the thread.
|
||||||
*
|
|
||||||
* To iterate over all messages in the thread, the caller will need to
|
|
||||||
* iterate over the result of notmuch_message_get_replies for each
|
|
||||||
* top-level message (and do that recursively for the resulting
|
|
||||||
* messages, etc.).
|
|
||||||
*/
|
*/
|
||||||
notmuch_messages_t *
|
notmuch_messages_t *
|
||||||
notmuch_thread_get_toplevel_messages (notmuch_thread_t *thread);
|
notmuch_thread_get_toplevel_messages (notmuch_thread_t *thread);
|
||||||
|
|
||||||
|
/* Get a notmuch_thread_t iterator for all messages in 'thread' in
|
||||||
|
* oldest-first order.
|
||||||
|
*/
|
||||||
|
notmuch_messages_t *
|
||||||
|
notmuch_thread_get_messages (notmuch_thread_t *thread);
|
||||||
|
|
||||||
/* Get the number of messages in 'thread' that matched the search.
|
/* Get the number of messages in 'thread' that matched the search.
|
||||||
*
|
*
|
||||||
* This count includes only the messages in this thread that were
|
* This count includes only the messages in this thread that were
|
||||||
|
|
|
@ -508,6 +508,12 @@ notmuch_thread_get_toplevel_messages (notmuch_thread_t *thread)
|
||||||
return _notmuch_messages_create (thread->toplevel_list);
|
return _notmuch_messages_create (thread->toplevel_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notmuch_messages_t *
|
||||||
|
notmuch_thread_get_messages (notmuch_thread_t *thread)
|
||||||
|
{
|
||||||
|
return _notmuch_messages_create (thread->message_list);
|
||||||
|
}
|
||||||
|
|
||||||
const char *
|
const char *
|
||||||
notmuch_thread_get_thread_id (notmuch_thread_t *thread)
|
notmuch_thread_get_thread_id (notmuch_thread_t *thread)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue