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
This commit is contained in:
Jani Nikula 2013-01-08 23:41:54 +02:00 committed by David Bremner
parent ff3cc5534a
commit 4e9fe60422

View file

@ -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