From 4e9fe60422d9092737550bd8a3b8525ee2a20daf Mon Sep 17 00:00:00 2001 From: Jani Nikula Date: Tue, 8 Jan 2013 23:41:54 +0200 Subject: [PATCH 1/1] cli: bail out and propagate tagging errors in notmuch tag Checking and propagating tag_op_list_apply() errors is especially important with batch tagging, as the processing of the batch input would not stop otherwise. Additionally this sets the exit code, which is useful in scripts. Amended by: David Bremner --- notmuch-tag.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/notmuch-tag.c b/notmuch-tag.c index 42724266..6408babb 100644 --- a/notmuch-tag.c +++ b/notmuch-tag.c @@ -97,6 +97,7 @@ tag_query (void *ctx, notmuch_database_t *notmuch, const char *query_string, notmuch_query_t *query; notmuch_messages_t *messages; notmuch_message_t *message; + int ret = 0; /* Optimize the query so it excludes messages that already have * the specified set of tags. */ @@ -119,13 +120,15 @@ tag_query (void *ctx, notmuch_database_t *notmuch, const char *query_string, notmuch_messages_valid (messages) && ! interrupted; notmuch_messages_move_to_next (messages)) { message = notmuch_messages_get (messages); - tag_op_list_apply (message, tag_ops, flags | TAG_FLAG_PRE_OPTIMIZED); + ret = tag_op_list_apply (message, tag_ops, flags | TAG_FLAG_PRE_OPTIMIZED); notmuch_message_destroy (message); + if (ret != NOTMUCH_STATUS_SUCCESS) + break; } notmuch_query_destroy (query); - return interrupted; + return ret || interrupted; } static int -- 2.43.0