cli: propagate batch tagging warnings to exit value

In case last input for batch tagging was either invalid or skippable
line, notmuch command exited with non-zero value.
After this change if there is at least one invalid line, notmuch
command will exit with non-zero value. Additionally, skipped lines
(last or other) doesn't cause non-zero value to be returned.
This commit is contained in:
Tomi Ollila 2013-01-12 09:40:14 +02:00 committed by David Bremner
parent f1a355febf
commit 4b5b6f02cc

View file

@ -140,6 +140,7 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
size_t line_size = 0;
ssize_t line_len;
int ret = 0;
int warn = 0;
tag_op_list_t *tag_ops;
tag_ops = tag_op_list_create (ctx);
@ -154,8 +155,13 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
ret = parse_tag_line (ctx, line, TAG_FLAG_NONE,
&query_string, tag_ops);
if (ret > 0)
if (ret > 0) {
if (ret != TAG_PARSE_SKIPPED)
/* remember there has been problematic lines */
warn = 1;
ret = 0;
continue;
}
if (ret < 0)
break;
@ -168,7 +174,7 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
if (line)
free (line);
return ret;
return ret || warn;
}
int