From: David Bremner Date: Sun, 7 Jun 2015 15:02:02 +0000 (+0200) Subject: [PATCH 09/10] cli/count: update to use notmuch_query_search_messages_st X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=1461afc4b49f084f940c26cece3a1d3574ee3b6d;p=notmuch-archives.git [PATCH 09/10] cli/count: update to use notmuch_query_search_messages_st --- diff --git a/f0/17a24c41106f72711a52abdcd0ef385d46d2b2 b/f0/17a24c41106f72711a52abdcd0ef385d46d2b2 new file mode 100644 index 000000000..253c1f4fd --- /dev/null +++ b/f0/17a24c41106f72711a52abdcd0ef385d46d2b2 @@ -0,0 +1,145 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by arlo.cworth.org (Postfix) with ESMTP id C9E5C6DE15C9 + for ; Sun, 7 Jun 2015 08:04:26 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at cworth.org +X-Spam-Flag: NO +X-Spam-Score: 0.223 +X-Spam-Level: +X-Spam-Status: No, score=0.223 tagged_above=-999 required=5 tests=[AWL=0.213, + T_HEADER_FROM_DIFFERENT_DOMAINS=0.01] 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 dI5h3XPQr1ie for ; + Sun, 7 Jun 2015 08:04:25 -0700 (PDT) +Received: from mx.xen14.node3324.gplhost.com (gitolite.debian.net + [87.98.215.224]) + by arlo.cworth.org (Postfix) with ESMTPS id 1B0096DE1557 + for ; Sun, 7 Jun 2015 08:04:25 -0700 (PDT) +Received: from remotemail by mx.xen14.node3324.gplhost.com with local (Exim + 4.80) (envelope-from ) + id 1Z1c6x-0004oy-EG; Sun, 07 Jun 2015 15:03:43 +0000 +Received: (nullmailer pid 7866 invoked by uid 1000); Sun, 07 Jun 2015 + 15:02:11 -0000 +From: David Bremner +To: notmuch@notmuchmail.org +Subject: [PATCH 09/10] cli/count: update to use + notmuch_query_search_messages_st +Date: Sun, 7 Jun 2015 17:02:02 +0200 +Message-Id: <1433689323-7520-10-git-send-email-david@tethera.net> +X-Mailer: git-send-email 2.1.4 +In-Reply-To: <1433689323-7520-1-git-send-email-david@tethera.net> +References: <1433689323-7520-1-git-send-email-david@tethera.net> +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.18 +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: Sun, 07 Jun 2015 15:04:26 -0000 + +This brings back status information that may have been hidden by the +great library logging conversion. +--- + notmuch-count.c | 16 ++++++++++------ + test/T060-count.sh | 30 ++++++++++++++++++++++++++++++ + 2 files changed, 40 insertions(+), 6 deletions(-) + +diff --git a/notmuch-count.c b/notmuch-count.c +index 57a88a8..25b05df 100644 +--- a/notmuch-count.c ++++ b/notmuch-count.c +@@ -33,17 +33,18 @@ enum { + EXCLUDE_FALSE, + }; + +-static unsigned int ++static int + count_files (notmuch_query_t *query) + { + notmuch_messages_t *messages; + notmuch_message_t *message; + notmuch_filenames_t *filenames; +- unsigned int count = 0; ++ notmuch_status_t status; ++ int count = 0; + +- messages = notmuch_query_search_messages (query); +- if (messages == NULL) +- return 0; ++ status = notmuch_query_search_messages_st (query, &messages); ++ if (print_status_query ("notmuch count", query, status)) ++ return -1; + + for (; + notmuch_messages_valid (messages); +@@ -71,6 +72,7 @@ print_count (notmuch_database_t *notmuch, const char *query_str, + { + notmuch_query_t *query; + size_t i; ++ int count; + + query = notmuch_query_create (notmuch, query_str); + if (query == NULL) { +@@ -89,7 +91,9 @@ print_count (notmuch_database_t *notmuch, const char *query_str, + printf ("%u\n", notmuch_query_count_threads (query)); + break; + case OUTPUT_FILES: +- printf ("%u\n", count_files (query)); ++ count = count_files (query); ++ if (count >= 0) ++ printf ("%u\n", count); + break; + } + +diff --git a/test/T060-count.sh b/test/T060-count.sh +index da86c8c..973a42d 100755 +--- a/test/T060-count.sh ++++ b/test/T060-count.sh +@@ -93,5 +93,35 @@ notmuch count --output=messages >>EXPECTED + notmuch count --output=messages tag:inbox >>EXPECTED + test_expect_equal_file EXPECTED OUTPUT + ++backup_database ++test_begin_subtest "error message for database open" ++dd if=/dev/zero of="${MAIL_DIR}/.notmuch/xapian/postlist.DB" count=3 ++notmuch count '*' 2>OUTPUT 1>/dev/null ++output=$(sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' OUTPUT) ++test_expect_equal "${output}" "A Xapian exception occurred opening database" ++restore_database ++ ++cat < count-files.gdb ++set breakpoint pending on ++break count_files ++commands ++shell cp /dev/null ${MAIL_DIR}/.notmuch/xapian/postlist.DB ++continue ++end ++run ++EOF ++ ++backup_database ++test_begin_subtest "error message from query_search_messages" ++gdb --batch-silent --return-child-result -x count-files.gdb \ ++ --args notmuch count --output=files '*' 2>OUTPUT 1>/dev/null ++cat < EXPECTED ++notmuch count: A Xapian exception occurred ++A Xapian exception occurred performing query ++Query string was: * ++EOF ++sed 's/^\(A Xapian exception [^:]*\):.*$/\1/' < OUTPUT > OUTPUT.clean ++test_expect_equal_file EXPECTED OUTPUT.clean ++restore_database + + test_done +-- +2.1.4 +