From: Carl Worth Date: Fri, 9 Apr 2010 23:40:31 +0000 (-0700) Subject: lib: Handle "*" as a query string to match all messages. X-Git-Tag: 0.2~82 X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=commitdiff_plain;h=e100871981daeb3bb9a6c8718c95e6044953b57f lib: Handle "*" as a query string to match all messages. This seems like a generally useful thing to support, (but the previous support through an empty string was not convenient for some users, (such as the command-line client). --- diff --git a/lib/notmuch.h b/lib/notmuch.h index 88da0789..42682854 100644 --- a/lib/notmuch.h +++ b/lib/notmuch.h @@ -325,7 +325,8 @@ notmuch_database_get_all_tags (notmuch_database_t *db); * * http://xapian.org/docs/queryparser.html * - * As a special case, passing a length-zero string, (that is ""), will + * As a special case, passing either a length-zero string, (that is ""), + * or a string consisting of a single asterisk (that is "*"), will * result in a query that returns all messages in the database. * * See notmuch_query_set_sort for controlling the order of results. diff --git a/lib/query.cc b/lib/query.cc index 9266d35f..10f8dc8a 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-> @@ -333,7 +335,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->