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>
This commit is contained in:
Bart Trojanowski 2009-11-24 23:28:39 -05:00
parent 7e02b448e7
commit 62878f71c2
2 changed files with 9 additions and 0 deletions

View file

@ -686,6 +686,7 @@ notmuch_message_get_filename (notmuch_message_t *message);
/* Message flags */ /* Message flags */
typedef enum _notmuch_message_flag { typedef enum _notmuch_message_flag {
NOTMUCH_MSG_FLAG_MATCHING_SEARCH,
} notmuch_message_flag_t; } notmuch_message_flag_t;
/* Get a value of a flag for the email corresponding to 'message'. */ /* Get a value of a flag for the email corresponding to 'message'. */

View file

@ -132,6 +132,7 @@ _thread_add_matched_message (notmuch_thread_t *thread,
notmuch_message_t *message) notmuch_message_t *message)
{ {
time_t date; time_t date;
notmuch_message_t *hashed_message;
date = notmuch_message_get_date (message); date = notmuch_message_get_date (message);
@ -142,6 +143,13 @@ _thread_add_matched_message (notmuch_thread_t *thread,
thread->newest = date; thread->newest = date;
thread->matched_messages++; 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 static void