The will allow the indexing process to override the values in the files. This is potentially useful for encrypted headers, or in resolving duplicate files for the same message(-id). --- lib/message.cc | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/message.cc b/lib/message.cc index f59f0a5c..c3c71fd4 100644 --- a/lib/message.cc +++ b/lib/message.cc @@ -552,11 +552,30 @@ _notmuch_message_get_header_from_xapian (notmuch_message_t *message, return NULL; } +static const char * +_notmuch_message_get_header_from_data (notmuch_message_t *message, const char *header) { + _notmuch_message_ensure_data_map (message); + + if (! (message->notmuch->features & NOTMUCH_FEATURE_MESSAGE_DATA)) + return NULL; + + const char *key = talloc_asprintf (message->data_map, "header.%s", header); + + if (! key) + return NULL; + + return _notmuch_string_map_get (message->data_map, key); +} + const char * notmuch_message_get_header (notmuch_message_t *message, const char *header) { - Xapian::valueno slot = Xapian::BAD_VALUENO; + /* Have we explicitly chosen / set this header */ + const char *value = _notmuch_message_get_header_from_data (message, header); + if (value) + return value; + Xapian::valueno slot = Xapian::BAD_VALUENO; /* Fetch header from the appropriate xapian value field if * available */ if (strcasecmp (header, "from") == 0) -- 2.17.1 _______________________________________________ notmuch mailing list notmuch@notmuchmail.org https://notmuchmail.org/mailman/listinfo/notmuch