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.
This commit is contained in:
David Bremner 2017-06-04 09:32:30 -03:00
parent 411675a6ce
commit 8a8e2b11c2
4 changed files with 28 additions and 0 deletions

View file

@ -946,6 +946,14 @@ notmuch_message_get_filenames (notmuch_message_t *message)
return _notmuch_filenames_create (message, message->filename_list); 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_bool_t
notmuch_message_get_flag (notmuch_message_t *message, notmuch_message_get_flag (notmuch_message_t *message,
notmuch_message_flag_t flag) notmuch_message_flag_t flag)

View file

@ -550,6 +550,12 @@ typedef struct _notmuch_string_list {
notmuch_string_list_t * notmuch_string_list_t *
_notmuch_string_list_create (const void *ctx); _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'. /* Add 'string' to 'list'.
* *
* The list will create its own talloced copy of 'string'. * The list will create its own talloced copy of 'string'.

View file

@ -1341,6 +1341,14 @@ notmuch_message_get_thread_id (notmuch_message_t *message);
notmuch_messages_t * notmuch_messages_t *
notmuch_message_get_replies (notmuch_message_t *message); 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'. * Get a filename for the email corresponding to 'message'.
* *

View file

@ -42,6 +42,12 @@ _notmuch_string_list_create (const void *ctx)
return list; return list;
} }
int
_notmuch_string_list_length (notmuch_string_list_t *list)
{
return list->length;
}
void void
_notmuch_string_list_append (notmuch_string_list_t *list, _notmuch_string_list_append (notmuch_string_list_t *list,
const char *string) const char *string)