Return-Path: X-Original-To: notmuch@notmuchmail.org Delivered-To: notmuch@notmuchmail.org Received: from localhost (localhost [127.0.0.1]) by olra.theworths.org (Postfix) with ESMTP id 298DC431FB6 for ; Fri, 11 Jan 2013 23:40:30 -0800 (PST) X-Virus-Scanned: Debian amavisd-new at olra.theworths.org X-Spam-Flag: NO X-Spam-Score: 0 X-Spam-Level: X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] autolearn=disabled Received: from olra.theworths.org ([127.0.0.1]) by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id MZeLts13m+so for ; Fri, 11 Jan 2013 23:40:25 -0800 (PST) Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) by olra.theworths.org (Postfix) with ESMTP id 52F92431FAF for ; Fri, 11 Jan 2013 23:40:25 -0800 (PST) Received: by guru.guru-group.fi (Postfix, from userid 501) id 0D0841001F1; Sat, 12 Jan 2013 09:40:16 +0200 (EET) From: Tomi Ollila To: notmuch@notmuchmail.org Subject: [PATCH 1/1] cli: propagate batch tagging warnings to exit value Date: Sat, 12 Jan 2013 09:40:14 +0200 Message-Id: <1357976414-7468-1-git-send-email-tomi.ollila@iki.fi> X-Mailer: git-send-email 1.8.0 Cc: tomi.ollila@iki.fi X-BeenThere: notmuch@notmuchmail.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: "Use and development of the notmuch mail system." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 12 Jan 2013 07:40:30 -0000 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. --- notmuch-tag.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/notmuch-tag.c b/notmuch-tag.c index 6408bab..b54c55d 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 -- 1.8.0