diff options
| author | David Bremner <david@tethera.net> | 2017-06-04 09:32:30 -0300 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-08-01 21:17:47 -0400 |
| commit | 8a8e2b11c208050aa1d719ec0933f58d51628fdd (patch) | |
| tree | 886ee56fb742482b88fae41fe0949e906c7ca15f /lib | |
| parent | 411675a6ce78988157c4a078f504b3b7805e54c6 (diff) | |
lib: add notmuch_message_count_files
This operation is relatively inexpensive, as the needed metadata is
already computed by our lazy metadata fetching. The goal is to support
better UI for messages with multipile files.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/message.cc | 8 | ||||
| -rw-r--r-- | lib/notmuch-private.h | 6 | ||||
| -rw-r--r-- | lib/notmuch.h | 8 | ||||
| -rw-r--r-- | lib/string-list.c | 6 |
4 files changed, 28 insertions, 0 deletions
diff --git a/lib/message.cc b/lib/message.cc index f78e5a9d..68c02001 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -946,6 +946,14 @@ notmuch_message_get_filenames (notmuch_message_t *message) return _notmuch_filenames_create (message, message->filename_list); } +int +notmuch_message_count_files (notmuch_message_t *message) +{ + _notmuch_message_ensure_filename_list (message); + + return _notmuch_string_list_length (message->filename_list); +} + notmuch_bool_t notmuch_message_get_flag (notmuch_message_t *message, notmuch_message_flag_t flag) diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 57c61639..544788bc 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -550,6 +550,12 @@ typedef struct _notmuch_string_list { notmuch_string_list_t * _notmuch_string_list_create (const void *ctx); +/* + * return the number of strings in 'list' + */ +int +_notmuch_string_list_length (notmuch_string_list_t *list); + /* Add 'string' to 'list'. * * The list will create its own talloced copy of 'string'. diff --git a/lib/notmuch.h b/lib/notmuch.h index 17f0872e..f5018497 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -1342,6 +1342,14 @@ notmuch_messages_t * notmuch_message_get_replies (notmuch_message_t *message); /** + * Get the total number of files associated with a message. + * @returns Non-negative integer + * @since libnotmuch 5.0 (notmuch 0.25) + */ +int +notmuch_message_count_files (notmuch_message_t *message); + +/** * Get a filename for the email corresponding to 'message'. * * The returned filename is an absolute filename, (the initial diff --git a/lib/string-list.c b/lib/string-list.c index 43ebe499..9c3ae7ef 100644 --- a/lib/string-list.c +++ b/lib/string-list.c @@ -42,6 +42,12 @@ _notmuch_string_list_create (const void *ctx) return list; } +int +_notmuch_string_list_length (notmuch_string_list_t *list) +{ + return list->length; +} + void _notmuch_string_list_append (notmuch_string_list_t *list, const char *string) |
