diff options
author | Tomi Ollila <tomi.ollila@iki.fi> | 2013-01-12 09:40:14 +0200 |
---|---|---|
committer | David Bremner <bremner@debian.org> | 2013-01-14 19:47:14 -0400 |
commit | 4b5b6f02cc943b83270ad5061166e5d9967b2899 (patch) | |
tree | cd839048d66760772eddba68649e7c3847dd9325 /notmuch-tag.c | |
parent | f1a355febf27de6c2bf5fec1b038af2e96f93263 (diff) |
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.
Diffstat (limited to 'notmuch-tag.c')
-rw-r--r-- | notmuch-tag.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/notmuch-tag.c b/notmuch-tag.c index 6408babb..b54c55dd 100644 --- a/notmuch-tag.c +++ b/notmuch-tag.c @@ -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 |