From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from localhost (localhost [127.0.0.1]) by arlo.cworth.org (Postfix) with ESMTP id 2173F6DE02C2 for ; Sat, 2 Apr 2016 07:15:56 -0700 (PDT) X-Virus-Scanned: Debian amavisd-new at cworth.org X-Spam-Flag: NO X-Spam-Score: -0.549 X-Spam-Level: X-Spam-Status: No, score=-0.549 tagged_above=-999 required=5 tests=[AWL=-0.549] autolearn=disabled Received: from arlo.cworth.org ([127.0.0.1]) by localhost (arlo.cworth.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ghxCVSZSnPRV for ; Sat, 2 Apr 2016 07:15:47 -0700 (PDT) Received: from che.mayfirst.org (che.mayfirst.org [209.234.253.108]) by arlo.cworth.org (Postfix) with ESMTP id BA7DF6DE02D1 for ; Sat, 2 Apr 2016 07:15:47 -0700 (PDT) Received: from fifthhorseman.net (dhcp-a244.meeting.ietf.org [31.133.162.68]) by che.mayfirst.org (Postfix) with ESMTPSA id 79C7CF999 for ; Sat, 2 Apr 2016 10:15:45 -0400 (EDT) Received: by fifthhorseman.net (Postfix, from userid 1000) id AF7B62089F; Sat, 2 Apr 2016 11:15:41 -0300 (BRT) From: Daniel Kahn Gillmor To: Notmuch Mail Subject: [PATCH v2 4/7] Add internal functions to search for alternate doc types Date: Sat, 2 Apr 2016 11:15:38 -0300 Message-Id: <1459606541-23889-4-git-send-email-dkg@fifthhorseman.net> X-Mailer: git-send-email 2.8.0.rc3 In-Reply-To: <1459606541-23889-1-git-send-email-dkg@fifthhorseman.net> References: <1459445693-3900-1-git-send-email-dkg@fifthhorseman.net> <1459606541-23889-1-git-send-email-dkg@fifthhorseman.net> X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Apr 2016 14:15:56 -0000 Publicly we are only exposing the non-ghost documents (of "type" "mail"). But internally we might want to inspect the ghost messages as well. This changeset adds two new private interfaces to queries to recover information about alternate document types. --- lib/notmuch-private.h | 10 ++++++++++ lib/query.cc | 18 ++++++++++++++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/lib/notmuch-private.h b/lib/notmuch-private.h index 5dd4770..cbfc144 100644 --- a/lib/notmuch-private.h +++ b/lib/notmuch-private.h @@ -477,6 +477,16 @@ void _notmuch_doc_id_set_remove (notmuch_doc_id_set_t *doc_ids, unsigned int doc_id); +notmuch_status_t +_notmuch_query_search_messages_type_st (notmuch_query_t *query, + const char *type, + notmuch_messages_t **out); + +notmuch_status_t +_notmuch_query_count_messages_type_st (notmuch_query_t *query, + const char *type, + unsigned *count_out); + /* message.cc */ void diff --git a/lib/query.cc b/lib/query.cc index e627bfc..ba6ee49 100644 --- a/lib/query.cc +++ b/lib/query.cc @@ -187,6 +187,14 @@ notmuch_status_t notmuch_query_search_messages_st (notmuch_query_t *query, notmuch_messages_t **out) { + return _notmuch_query_search_messages_type_st (query, "mail", out); +} + +notmuch_status_t +_notmuch_query_search_messages_type_st (notmuch_query_t *query, + const char *type, + notmuch_messages_t **out) +{ notmuch_database_t *notmuch = query->notmuch; const char *query_string = query->query_string; notmuch_mset_messages_t *messages; @@ -208,7 +216,7 @@ notmuch_query_search_messages_st (notmuch_query_t *query, Xapian::Enquire enquire (*notmuch->xapian_db); Xapian::Query mail_query (talloc_asprintf (query, "%s%s", _find_prefix ("type"), - "mail")); + type)); Xapian::Query string_query, final_query, exclude_query; Xapian::MSet mset; Xapian::MSetIterator iterator; @@ -554,6 +562,12 @@ notmuch_query_count_messages (notmuch_query_t *query) notmuch_status_t notmuch_query_count_messages_st (notmuch_query_t *query, unsigned *count_out) { + return _notmuch_query_count_messages_type_st (query, "mail", count_out); +} + +notmuch_status_t +_notmuch_query_count_messages_type_st (notmuch_query_t *query, const char *type, unsigned *count_out) +{ notmuch_database_t *notmuch = query->notmuch; const char *query_string = query->query_string; Xapian::doccount count = 0; @@ -562,7 +576,7 @@ notmuch_query_count_messages_st (notmuch_query_t *query, unsigned *count_out) Xapian::Enquire enquire (*notmuch->xapian_db); Xapian::Query mail_query (talloc_asprintf (query, "%s%s", _find_prefix ("type"), - "mail")); + type)); Xapian::Query string_query, final_query, exclude_query; Xapian::MSet mset; unsigned int flags = (Xapian::QueryParser::FLAG_BOOLEAN | -- 2.8.0.rc3