mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-02-16 15:13:18 +01:00
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:
parent
f1a355febf
commit
4b5b6f02cc
1 changed files with 8 additions and 2 deletions
|
@ -140,6 +140,7 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
|
||||||
size_t line_size = 0;
|
size_t line_size = 0;
|
||||||
ssize_t line_len;
|
ssize_t line_len;
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
int warn = 0;
|
||||||
tag_op_list_t *tag_ops;
|
tag_op_list_t *tag_ops;
|
||||||
|
|
||||||
tag_ops = tag_op_list_create (ctx);
|
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,
|
ret = parse_tag_line (ctx, line, TAG_FLAG_NONE,
|
||||||
&query_string, tag_ops);
|
&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;
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
break;
|
break;
|
||||||
|
@ -168,7 +174,7 @@ tag_file (void *ctx, notmuch_database_t *notmuch, tag_op_flag_t flags,
|
||||||
if (line)
|
if (line)
|
||||||
free (line);
|
free (line);
|
||||||
|
|
||||||
return ret;
|
return ret || warn;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
|
Loading…
Add table
Reference in a new issue