From: Tomi Ollila <tomi.ollila@iki.fi>
Date: Sat, 12 Jan 2013 07:40:14 +0000 (+0200)
Subject: cli: propagate batch tagging warnings to exit value
X-Git-Tag: 0.15_rc1~7
X-Git-Url: https://git.cworth.org/git?a=commitdiff_plain;h=4b5b6f02cc943b83270ad5061166e5d9967b2899;p=obsolete%2Fnotmuch-old

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

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