X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=lib%2Fquery.cc;h=7e1b6b52984330d82f6c82462f64d02c2450f0f4;hp=9106b92deeccfe7a646091c5e8cc35bc660569ed;hb=aadb15a002dc01903d60ca40048d6d4ef3990863;hpb=e991148b00fc683d1591ba27c387c6156d0ee67e diff --git a/lib/query.cc b/lib/query.cc index 9106b92d..7e1b6b52 100644 --- a/lib/query.cc +++ b/lib/query.cc @@ -125,7 +125,9 @@ notmuch_query_search_messages (notmuch_query_t *query) Xapian::QueryParser::FLAG_WILDCARD | Xapian::QueryParser::FLAG_PURE_NOT); - if (strcmp (query_string, "") == 0) { + if (strcmp (query_string, "") == 0 || + strcmp (query_string, "*") == 0) + { final_query = mail_query; } else { string_query = notmuch->query_parser-> @@ -134,6 +136,8 @@ notmuch_query_search_messages (notmuch_query_t *query) mail_query, string_query); } + enquire.set_weighting_scheme (Xapian::BoolWeight()); + switch (query->sort) { case NOTMUCH_SORT_OLDEST_FIRST: enquire.set_sort_by_value (NOTMUCH_VALUE_TIMESTAMP, FALSE); @@ -144,6 +148,8 @@ notmuch_query_search_messages (notmuch_query_t *query) case NOTMUCH_SORT_MESSAGE_ID: enquire.set_sort_by_value (NOTMUCH_VALUE_MESSAGE_ID, FALSE); break; + case NOTMUCH_SORT_UNSORTED: + break; } #if DEBUG_QUERY @@ -168,7 +174,7 @@ notmuch_query_search_messages (notmuch_query_t *query) } notmuch_bool_t -_notmuch_mset_messages_has_more (notmuch_messages_t *messages) +_notmuch_mset_messages_valid (notmuch_messages_t *messages) { notmuch_mset_messages_t *mset_messages; @@ -187,7 +193,7 @@ _notmuch_mset_messages_get (notmuch_messages_t *messages) mset_messages = (notmuch_mset_messages_t *) messages; - if (! _notmuch_mset_messages_has_more (&mset_messages->base)) + if (! _notmuch_mset_messages_valid (&mset_messages->base)) return NULL; doc_id = *mset_messages->iterator; @@ -206,7 +212,7 @@ _notmuch_mset_messages_get (notmuch_messages_t *messages) } void -_notmuch_mset_messages_advance (notmuch_messages_t *messages) +_notmuch_mset_messages_move_to_next (notmuch_messages_t *messages) { notmuch_mset_messages_t *mset_messages; @@ -256,14 +262,14 @@ notmuch_query_destroy (notmuch_query_t *query) } notmuch_bool_t -notmuch_threads_has_more (notmuch_threads_t *threads) +notmuch_threads_valid (notmuch_threads_t *threads) { notmuch_message_t *message; if (threads->thread_id) return TRUE; - while (notmuch_messages_has_more (threads->messages)) + while (notmuch_messages_valid (threads->messages)) { message = notmuch_messages_get (threads->messages); @@ -275,11 +281,11 @@ notmuch_threads_has_more (notmuch_threads_t *threads) { g_hash_table_insert (threads->threads, xstrdup (threads->thread_id), NULL); - notmuch_messages_advance (threads->messages); + notmuch_messages_move_to_next (threads->messages); return TRUE; } - notmuch_messages_advance (threads->messages); + notmuch_messages_move_to_next (threads->messages); } threads->thread_id = NULL; @@ -289,17 +295,18 @@ notmuch_threads_has_more (notmuch_threads_t *threads) notmuch_thread_t * notmuch_threads_get (notmuch_threads_t *threads) { - if (! notmuch_threads_has_more (threads)) + if (! notmuch_threads_valid (threads)) return NULL; return _notmuch_thread_create (threads->query, threads->query->notmuch, threads->thread_id, - threads->query->query_string); + threads->query->query_string, + threads->query->sort); } void -notmuch_threads_advance (notmuch_threads_t *threads) +notmuch_threads_move_to_next (notmuch_threads_t *threads) { threads->thread_id = NULL; } @@ -331,7 +338,9 @@ notmuch_query_count_messages (notmuch_query_t *query) Xapian::QueryParser::FLAG_WILDCARD | Xapian::QueryParser::FLAG_PURE_NOT); - if (strcmp (query_string, "") == 0) { + if (strcmp (query_string, "") == 0 || + strcmp (query_string, "*") == 0) + { final_query = mail_query; } else { string_query = notmuch->query_parser->