diff options
| author | David Bremner <david@tethera.net> | 2019-02-25 22:10:29 -0400 |
|---|---|---|
| committer | David Bremner <david@tethera.net> | 2019-05-25 07:21:13 -0300 |
| commit | adb53b073791f710b93a8fc755b6b7b606bf7fd1 (patch) | |
| tree | f51eeba8b63bb72c3976e3a27764cb202af5b3ff /lib/index.cc | |
| parent | 75bdce79527571c12c5de0c630747d6262b73fbd (diff) | |
lib/database: index user headers.
This essentially involves calling _notmuch_message_gen_terms once for
each user defined header.
Diffstat (limited to 'lib/index.cc')
| -rw-r--r-- | lib/index.cc | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/index.cc b/lib/index.cc index 41822488..f216ae5d 100644 --- a/lib/index.cc +++ b/lib/index.cc @@ -572,6 +572,31 @@ _index_encrypted_mime_part (notmuch_message_t *message, } +static notmuch_status_t +_notmuch_message_index_user_headers (notmuch_message_t *message, GMimeMessage *mime_message) +{ + + notmuch_database_t *notmuch = notmuch_message_get_database (message); + notmuch_string_map_iterator_t *iter = _notmuch_database_user_headers (notmuch); + + for (; _notmuch_string_map_iterator_valid (iter); + _notmuch_string_map_iterator_move_to_next (iter)) { + + const char *prefix_name = _notmuch_string_map_iterator_key (iter); + + const char *header_name = _notmuch_string_map_iterator_value (iter); + + const char *header = g_mime_object_get_header (GMIME_OBJECT (mime_message), header_name); + if (header) + _notmuch_message_gen_terms (message, prefix_name, header); + } + + if (iter) + _notmuch_string_map_iterator_destroy (iter); + return NOTMUCH_STATUS_SUCCESS; + +} + notmuch_status_t _notmuch_message_index_file (notmuch_message_t *message, notmuch_indexopts_t *indexopts, @@ -601,6 +626,8 @@ _notmuch_message_index_file (notmuch_message_t *message, subject = g_mime_message_get_subject (mime_message); _notmuch_message_gen_terms (message, "subject", subject); + status = _notmuch_message_index_user_headers (message, mime_message); + _index_mime_part (message, indexopts, g_mime_message_get_mime_part (mime_message)); return NOTMUCH_STATUS_SUCCESS; |
