diff options
| author | Daniel Kahn Gillmor <dkg@fifthhorseman.net> | 2017-10-17 15:09:59 -0400 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2017-10-20 07:58:43 -0300 |
| commit | 0b9e1a2472e50bd56a5e269d51aa729a4290a92a (patch) | |
| tree | b30aff4113a9b38a8bd87d25c8e85456ecccbc81 /lib/message-property.cc | |
| parent | a18bbf7f155369f251b0513788eade23be3555d5 (diff) | |
properties: add notmuch_message_remove_all_properties_with_prefix()
Subsequent patches will introduce a convention that properties whose
name starts with "index." will be stripped (and possibly re-added)
during re-indexing. This patch lays the groundwork for doing that.
Diffstat (limited to 'lib/message-property.cc')
| -rw-r--r-- | lib/message-property.cc | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/lib/message-property.cc b/lib/message-property.cc index d72c74c3..35eaf3c6 100644 --- a/lib/message-property.cc +++ b/lib/message-property.cc @@ -85,8 +85,9 @@ notmuch_message_remove_property (notmuch_message_t *message, const char *key, co return _notmuch_message_modify_property (message, key, value, true); } +static notmuch_status_t -notmuch_message_remove_all_properties (notmuch_message_t *message, const char *key) +_notmuch_message_remove_all_properties (notmuch_message_t *message, const char *key, bool prefix) { notmuch_status_t status; const char * term_prefix; @@ -97,7 +98,8 @@ notmuch_message_remove_all_properties (notmuch_message_t *message, const char *k _notmuch_message_invalidate_metadata (message, "property"); if (key) - term_prefix = talloc_asprintf (message, "%s%s=", _find_prefix ("property"), key); + term_prefix = talloc_asprintf (message, "%s%s%s", _find_prefix ("property"), key, + prefix ? "" : "="); else term_prefix = _find_prefix ("property"); @@ -107,6 +109,18 @@ notmuch_message_remove_all_properties (notmuch_message_t *message, const char *k return NOTMUCH_STATUS_SUCCESS; } +notmuch_status_t +notmuch_message_remove_all_properties (notmuch_message_t *message, const char *key) +{ + return _notmuch_message_remove_all_properties (message, key, false); +} + +notmuch_status_t +notmuch_message_remove_all_properties_with_prefix (notmuch_message_t *message, const char *prefix) +{ + return _notmuch_message_remove_all_properties (message, prefix, true); +} + notmuch_message_properties_t * notmuch_message_get_properties (notmuch_message_t *message, const char *key, notmuch_bool_t exact) { |
