mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
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.
This commit is contained in:
parent
a18bbf7f15
commit
0b9e1a2472
2 changed files with 32 additions and 2 deletions
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -1823,6 +1823,22 @@ notmuch_message_remove_property (notmuch_message_t *message, const char *key, co
|
|||
notmuch_status_t
|
||||
notmuch_message_remove_all_properties (notmuch_message_t *message, const char *key);
|
||||
|
||||
/**
|
||||
* Remove all (prefix*,value) pairs from the given message
|
||||
*
|
||||
* @param[in,out] message message to operate on.
|
||||
* @param[in] prefix delete properties with keys that start with prefix.
|
||||
* If NULL, delete all properties
|
||||
* @returns
|
||||
* - NOTMUCH_STATUS_READ_ONLY_DATABASE: Database was opened in
|
||||
* read-only mode so message cannot be modified.
|
||||
* - NOTMUCH_STATUS_SUCCESS: No error occured.
|
||||
*
|
||||
* @since libnotmuch 5.1 (notmuch 0.26)
|
||||
*/
|
||||
notmuch_status_t
|
||||
notmuch_message_remove_all_properties_with_prefix (notmuch_message_t *message, const char *prefix);
|
||||
|
||||
/**
|
||||
* Opaque message property iterator
|
||||
*/
|
||||
|
|
Loading…
Reference in a new issue