X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fmessage-property.cc;h=710ba0460665c6e506a2efe24b2a12c242321980;hp=210a15cca81e99d36ae8f5f7635971b3e21083c0;hb=bbe3015b3ea503b2834811f6cdd7276f9742faa1;hpb=9088db76d89264b733f6b45e776d8952da237921 diff --git a/lib/message-property.cc b/lib/message-property.cc index 210a15cc..710ba046 100644 --- a/lib/message-property.cc +++ b/lib/message-property.cc @@ -36,6 +36,31 @@ notmuch_message_get_property (notmuch_message_t *message, const char *key, const return NOTMUCH_STATUS_SUCCESS; } +notmuch_status_t +notmuch_message_count_properties (notmuch_message_t *message, const char *key, unsigned int *count) +{ + if (! count || ! key || ! message) + return NOTMUCH_STATUS_NULL_POINTER; + + notmuch_string_map_t *map; + map = _notmuch_message_property_map (message); + if (! map) + return NOTMUCH_STATUS_NULL_POINTER; + + notmuch_string_map_iterator_t *matcher = _notmuch_string_map_iterator_create (map, key, true); + if (! matcher) + return NOTMUCH_STATUS_OUT_OF_MEMORY; + + *count = 0; + while (_notmuch_string_map_iterator_valid (matcher)) { + (*count)++; + _notmuch_string_map_iterator_move_to_next (matcher); + } + + _notmuch_string_map_iterator_destroy (matcher); + return NOTMUCH_STATUS_SUCCESS; +} + static notmuch_status_t _notmuch_message_modify_property (notmuch_message_t *message, const char *key, const char *value, bool delete_it)