This is relatively inexpensive in terms of run time and implementation cost as we are already traversing the list of messages in a thread. --- lib/notmuch.h | 12 ++++++++++++ lib/thread.cc | 9 +++++++++ 2 files changed, 21 insertions(+)
diff --git a/lib/notmuch.h b/lib/notmuch.h index f6ed3990..7bd5346f 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -1097,6 +1097,18 @@ int notmuch_thread_get_total_messages (notmuch_thread_t *thread); /** + * Get the total number of files in 'thread'. + * + * This sums notmuch_message_count_files over all messages in the + * thread + * @returns Non-negative integer + * @since libnotmuch 5.0 (notmuch 0.25) + */ + +int +notmuch_thread_get_total_files (notmuch_thread_t *thread); + +/** * Get a notmuch_messages_t iterator for the top-level messages in * 'thread' in oldest-first order. * diff --git a/lib/thread.cc b/lib/thread.cc index 1a1ecfa5..e17ef63e 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -44,6 +44,7 @@ struct _notmuch_thread { GHashTable *message_hash; int total_messages; + int total_files; int matched_messages; time_t oldest; time_t newest; @@ -266,6 +267,7 @@ _thread_add_message (notmuch_thread_t *thread, _notmuch_message_list_add_message (thread->message_list, talloc_steal (thread, message)); thread->total_messages++; + thread->total_files += notmuch_message_count_files (message); g_hash_table_insert (thread->message_hash, xstrdup (notmuch_message_get_message_id (message)), @@ -495,6 +497,7 @@ _notmuch_thread_create (void *ctx, free, NULL); thread->total_messages = 0; + thread->total_files = 0; thread->matched_messages = 0; thread->oldest = 0; thread->newest = 0; @@ -567,6 +570,12 @@ notmuch_thread_get_total_messages (notmuch_thread_t *thread) } int +notmuch_thread_get_total_files (notmuch_thread_t *thread) +{ + return thread->total_files; +} + +int notmuch_thread_get_matched_messages (notmuch_thread_t *thread) { return thread->matched_messages; -- 2.11.0 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch