X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch-count.c;h=50b0c193f04625c794b9ab9287ab6bdd9c4f29da;hp=09613e6ad8d96a6170b2c7ed2337593e4aa802f1;hb=85c830405886207196aedbd0a2b757b227ba769d;hpb=33c8777a967ece2dd4bbda7e83a4e07c195abf51 diff --git a/notmuch-count.c b/notmuch-count.c index 09613e6a..50b0c193 100644 --- a/notmuch-count.c +++ b/notmuch-count.c @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program. If not, see http://www.gnu.org/licenses/ . + * along with this program. If not, see https://www.gnu.org/licenses/ . * * Author: Keith Packard */ @@ -43,7 +43,7 @@ count_files (notmuch_query_t *query) notmuch_status_t status; int count = 0; - status = notmuch_query_search_messages_st (query, &messages); + status = notmuch_query_search_messages (query, &messages); if (print_status_query ("notmuch count", query, status)) return -1; @@ -67,6 +67,7 @@ count_files (notmuch_query_t *query) return count; } +/* return 0 on success, -1 on failure */ static int print_count (notmuch_database_t *notmuch, const char *query_str, const char **exclude_tags, size_t exclude_tags_length, int output, int print_lastmod) @@ -74,30 +75,43 @@ print_count (notmuch_database_t *notmuch, const char *query_str, notmuch_query_t *query; size_t i; int count; + unsigned int ucount; unsigned long revision; const char *uuid; int ret = 0; + notmuch_status_t status; query = notmuch_query_create (notmuch, query_str); if (query == NULL) { fprintf (stderr, "Out of memory\n"); - return 1; + return -1; } - for (i = 0; i < exclude_tags_length; i++) - notmuch_query_add_tag_exclude (query, exclude_tags[i]); + for (i = 0; i < exclude_tags_length; i++) { + status = notmuch_query_add_tag_exclude (query, exclude_tags[i]); + if (status && status != NOTMUCH_STATUS_IGNORED) { + print_status_query ("notmuch count", query, status); + return -1; + } + } switch (output) { case OUTPUT_MESSAGES: - printf ("%u", notmuch_query_count_messages (query)); + status = notmuch_query_count_messages (query, &ucount); + if (print_status_query ("notmuch count", query, status)) + return -1; + printf ("%u", ucount); break; case OUTPUT_THREADS: - printf ("%u", notmuch_query_count_threads (query)); + status = notmuch_query_count_threads (query, &ucount); + if (print_status_query ("notmuch count", query, status)) + return -1; + printf ("%u", ucount); break; case OUTPUT_FILES: count = count_files (query); if (count >= 0) { - printf ("%u", count); + printf ("%d", count); } else { ret = -1; goto DONE;