summaryrefslogtreecommitdiffstats
path: root/notmuch-count.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2015-09-06 10:15:46 -0300
committerDavid Bremner <david@tethera.net>2015-09-20 08:04:51 -0300
commitdca72205ab550a6adb22a763a3f86083907b1eba (patch)
tree6c0bb67d6cc85d3a8ebeb9b64b410ec4b9637c68 /notmuch-count.c
parent39c54df26dad01e3ec294f7c4a613d9ee71faf3e (diff)
cli/count: update to use notmuch_query_search_messages_st
This brings back status information that may have been hidden by the great library logging conversion. Note the change of the internal API / return-value for count_files. The other count calls to the lib will also get error handling when that API is updated in the lib.
Diffstat (limited to 'notmuch-count.c')
-rw-r--r--notmuch-count.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/notmuch-count.c b/notmuch-count.c
index 07fa5f74..09613e6a 100644
--- a/notmuch-count.c
+++ b/notmuch-count.c
@@ -33,17 +33,19 @@ enum {
EXCLUDE_FALSE,
};
-static unsigned int
+/* Return the number of files matching the query, or -1 for an error */
+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 +73,7 @@ print_count (notmuch_database_t *notmuch, const char *query_str,
{
notmuch_query_t *query;
size_t i;
+ int count;
unsigned long revision;
const char *uuid;
int ret = 0;
@@ -92,7 +95,13 @@ print_count (notmuch_database_t *notmuch, const char *query_str,
printf ("%u", notmuch_query_count_threads (query));
break;
case OUTPUT_FILES:
- printf ("%u", count_files (query));
+ count = count_files (query);
+ if (count >= 0) {
+ printf ("%u", count);
+ } else {
+ ret = -1;
+ goto DONE;
+ }
break;
}
@@ -103,6 +112,7 @@ print_count (notmuch_database_t *notmuch, const char *query_str,
fputs ("\n", stdout);
}
+ DONE:
notmuch_query_destroy (query);
return ret;