diff options
author | Bart Trojanowski <bart@jukie.net> | 2009-11-24 23:54:34 -0500 |
---|---|---|
committer | Carl Worth <cworth@cworth.org> | 2009-11-27 17:07:06 -0800 |
commit | bede40987a64b7c2565d771922a3eac0a229ee28 (patch) | |
tree | 5a6029f117dafa89a0438c10988f6dfd1c045359 /lib | |
parent | c57a0b4f8b78d655b90f4f2e6f986c85f477aef7 (diff) |
have _notmuch_thread_create mark which messages matched the query
When _notmuch_thread_create() is given a query string, it can return more
messages than just those matching the query. To distinguish those that
matched the query expression, the MATCHING_SEARCH flag is set
appropriately.
Signed-off-by: Bart Trojanowski <bart@jukie.net>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/notmuch.h | 1 | ||||
-rw-r--r-- | lib/thread.cc | 8 |
2 files changed, 9 insertions, 0 deletions
diff --git a/lib/notmuch.h b/lib/notmuch.h index 293a859b..e4f39929 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -711,6 +711,7 @@ notmuch_message_get_filename (notmuch_message_t *message); /* Message flags */ typedef enum _notmuch_message_flag { + NOTMUCH_MSG_FLAG_MATCHING_SEARCH, } notmuch_message_flag_t; /* Get a value of a flag for the email corresponding to 'message'. */ diff --git a/lib/thread.cc b/lib/thread.cc index 58d88c2d..9e4cb5c8 100644 --- a/lib/thread.cc +++ b/lib/thread.cc @@ -132,6 +132,7 @@ _thread_add_matched_message (notmuch_thread_t *thread, notmuch_message_t *message) { time_t date; + notmuch_message_t *hashed_message; date = notmuch_message_get_date (message); @@ -142,6 +143,13 @@ _thread_add_matched_message (notmuch_thread_t *thread, thread->newest = date; thread->matched_messages++; + + if (g_hash_table_lookup_extended (thread->message_hash, + notmuch_message_get_message_id (message), NULL, + (void **) &hashed_message)) { + notmuch_message_set_flag (hashed_message, + NOTMUCH_MSG_FLAG_MATCHING_SEARCH, 1); + } } static void |