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);
{
notmuch_query_t *query;
size_t i;
+ int count;
unsigned long revision;
const char *uuid;
int ret = 0;
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;
}
fputs ("\n", stdout);
}
+ DONE:
notmuch_query_destroy (query);
return ret;
size_t line_size;
int ret = 0;
- while (!ret && (line_len = getline (&line, &line_size, input)) != -1) {
+ while (! ret && (line_len = getline (&line, &line_size, input)) != -1) {
chomp_newline (line);
ret = print_count (notmuch, line, exclude_tags, exclude_tags_length,
output, print_lastmod);
notmuch_exit_if_unmatched_db_uuid (notmuch);
- query_str = query_string_from_args (config, argc-opt_index, argv+opt_index);
+ query_str = query_string_from_args (config, argc - opt_index, argv + opt_index);
if (query_str == NULL) {
fprintf (stderr, "Out of memory.\n");
return EXIT_FAILURE;