--- /dev/null
+Return-Path: <jani@nikula.org>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+ by olra.theworths.org (Postfix) with ESMTP id BF61C431FAF\r
+ for <notmuch@notmuchmail.org>; Sun, 11 Mar 2012 12:26:19 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+ tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+ by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+ with ESMTP id 6nUreTTVMYrA for <notmuch@notmuchmail.org>;\r
+ Sun, 11 Mar 2012 12:26:15 -0700 (PDT)\r
+Received: from mail-lb0-f181.google.com (mail-lb0-f181.google.com\r
+ [209.85.217.181]) (using TLSv1 with cipher RC4-SHA (128/128 bits))\r
+ (No client certificate requested)\r
+ by olra.theworths.org (Postfix) with ESMTPS id EDDE3431FAE\r
+ for <notmuch@notmuchmail.org>; Sun, 11 Mar 2012 12:26:14 -0700 (PDT)\r
+Received: by lbok6 with SMTP id k6so1094911lbo.26\r
+ for <notmuch@notmuchmail.org>; Sun, 11 Mar 2012 12:26:12 -0700 (PDT)\r
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r
+ d=google.com; s=20120113;\r
+ h=from:to:subject:in-reply-to:references:user-agent:date:message-id\r
+ :mime-version:content-type:x-gm-message-state;\r
+ bh=M+ezVKHFb+hK0x36S8SDYFu+W1WGDBgin6zLK2KPWmQ=;\r
+ b=Bbyl4+fYEOQLOEOzJ9W4iEYDyreDB260yVPGIe3BMao78tkvFkUv0Hck9SG13Jv7dk\r
+ YeQsWwqreP+BS31XLytyzpfhwVVtJ/EThyVH6hE4TjOMY0duJ4C5bzxDixT/GF+3COHe\r
+ CZhXqAboSx202MOwP180UZAFIyNUWd9UeKay84zbmkDPh9hfpSrHjN2LmLmjStA28an9\r
+ JREyIPSUzxJe8TyfyfXw8wUdqhC++ER+Ow8OABDeZlVYmSMtgGJW0V6WpLPyD+kaAN/e\r
+ ec/gUrdUmdoBx2oT+up7orkPBX2c3mejXxWT/jl7ueh2EOft1rnbxe5CwEzIONdnKp86\r
+ 6ZZQ==\r
+Received: by 10.152.127.9 with SMTP id nc9mr7204136lab.20.1331493971948;\r
+ Sun, 11 Mar 2012 12:26:11 -0700 (PDT)\r
+Received: from localhost (dsl-hkibrasgw4-fe50f800-253.dhcp.inet.fi.\r
+ [84.248.80.253])\r
+ by mx.google.com with ESMTPS id nq2sm11631359lab.4.2012.03.11.12.26.09\r
+ (version=SSLv3 cipher=OTHER); Sun, 11 Mar 2012 12:26:10 -0700 (PDT)\r
+From: Jani Nikula <jani@nikula.org>\r
+To: Mark Walters <markwalters1009@gmail.com>, notmuch@notmuchmail.org\r
+Subject: Re: [PATCH 0/3] argument parsing additions\r
+In-Reply-To: <87vcmchf8c.fsf@qmul.ac.uk>\r
+References: <87399iicit.fsf@qmul.ac.uk> <cover.1331329406.git.jani@nikula.org>\r
+ <87vcmchf8c.fsf@qmul.ac.uk>\r
+User-Agent: Notmuch/0.11.1+295~g780f284 (http://notmuchmail.org) Emacs/23.3.1\r
+ (i686-pc-linux-gnu)\r
+Date: Sun, 11 Mar 2012 21:26:07 +0200\r
+Message-ID: <87ty1vym5s.fsf@nikula.org>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=us-ascii\r
+X-Gm-Message-State:\r
+ ALoCoQmLHvi+0/Qb2OyX8TyCRguk20Rr4jd7oUWeLzS0F2u+kPS79hJ0MXzDBGTrc7EBKC0+RNbP\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+ <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+ <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Sun, 11 Mar 2012 19:26:19 -0000\r
+\r
+On Sat, 10 Mar 2012 11:23:15 +0000, Mark Walters <markwalters1009@gmail.com> wrote:\r
+> On Sat, 10 Mar 2012 00:33:27 +0200, Jani Nikula <jani@nikula.org> wrote:\r
+> > Hi Mark -\r
+> > \r
+> > I'm not sure which is worse, criticizing or rewriting other people's\r
+> > patches. I already did the former, and now I'm doing the\r
+> > latter. Apologies for both. I didn't really mean to write these patches,\r
+> > but it turned out to be more fun writing a proper reply in C than in\r
+> > English.\r
+> > \r
+> > Patch 1 adds --arg=true and --arg=false support for booleans. It's not\r
+> > strictly required for the --entire-thread support in patch 3, which uses\r
+> > the extension of keyword arguments from patch 2, but it's for\r
+> > consistency across boolean arguments.\r
+> \r
+> Hi \r
+> \r
+> I like patch 1: I have an almost identical to my version (in the series\r
+> I just sent to the list\r
+> id:"1331377533-30262-1-git-send-email-markwalters1009@gmail.com>\r
+> X-Mailer: git-send-email 1.7.9.1"). \r
+\r
+id:"1331377533-30262-1-git-send-email-markwalters1009@gmail.com" (fixed\r
+reference)\r
+\r
+Either of the patches should be pushed forward. The command line\r
+interface is sound, in line with notmuch style, and allows boolean\r
+parameters defaulting to true that you can switch off. And it needs no\r
+changes to argument parser users.\r
+\r
+> I am not sure about patch 2 and patch 3. Do you have a use case for\r
+> --option except when option is a boolean?\r
+\r
+For the sake of example, if some command produced some unformatted\r
+output by default, you could enable some formatting with --format and\r
+specify details with --format=foo or --format=bar. But admittedly it's a\r
+bit contrived.\r
+\r
+And using that for the bool case is also abusing it.\r
+\r
+> Otherwise I think I prefer either my\r
+> approach (abusing a notmuch_bool_t) or just adding an option\r
+> NOTMUCH_OPT_BOOLEAN_AS_INT which does boolean parsing but returns an\r
+> int. I guess I am saying that I think allowing boolean options which can\r
+> sometimes default to true and sometimes to false is more useful than\r
+> allowing --option for arbitrary keywords (*).\r
+> \r
+> What do you think? \r
+\r
+I think we're somewhere between overengineering and bikeshedding, and we\r
+should just fix the issue at hand with the "boolean" -1 value hack. Your\r
+v2 series accomplishes what's needed. Let's go with it, and consider a\r
+more general approach if another case comes up. (I actually wrote\r
+patches to add generic support for getting info about which arguments\r
+were set in the command line, but I think it's more trouble than its\r
+worth.)\r
+\r
+\r
+BR,\r
+Jani.\r
+\r
+\r
+> \r
+> Best wishes \r
+> \r
+> Mark\r
+> \r
+> (*) Indeed, I was thinking of the former as a possibility for the\r
+> exclude code, but I am erring towards just using keywords so I can allow\r
+> more options as you suggested.\r
+> \r
+> \r
+> > \r
+> > Please let me know what you think.\r
+> > \r
+> > BR,\r
+> > Jani.\r
+> > \r
+> > \r
+> > Jani Nikula (3):\r
+> > command-line-arguments: allow true and false keywords for booleans\r
+> > command-line-arguments: support keyword arguments with default value\r
+> > cli: allow switching off entire thread mode in notmuch show json\r
+> > format\r
+> > \r
+> > command-line-arguments.c | 45 +++++++++++++++++++++++++++++++++++++++------\r
+> > command-line-arguments.h | 1 +\r
+> > notmuch-show.c | 12 ++++++++++--\r
+> > 3 files changed, 50 insertions(+), 8 deletions(-)\r
+> > \r
+> > -- \r
+> > 1.7.5.4\r
+> > \r