# [PATCH] name-rev: use OPT_HIDDEN_BOOL for --peel-tag

3 messages from 2023-09-02 to 2023-09-07. Participants: René Scharfe, Jeff King.
Thread: https://gitlist.dev/t/60186

## René Scharfe, 2023-09-02 18:38

Subject: [PATCH] name-rev: use OPT_HIDDEN_BOOL for --peel-tag
Message-ID: <5a86c8f8-fcdc-fee9-8af5-aa5ecb036d2e@web.de>
URL: https://gitlist.dev/e/5a86c8f8-fcdc-fee9-8af5-aa5ecb036d2e%40web.de

```
adfc1857bd (describe: fix --contains when a tag is given as input,
2013-07-18) added the option --peel-tag, defining it using a positional
struct option initializer and a comment indicating that it's intended to
be a hidden OPT_BOOL.  4741edd549 (Remove deprecated OPTION_BOOLEAN for
parsing arguments, 2013-08-03) added the macro OPT_HIDDEN_BOOL, which
allows to express this more succinctly.  Use it.

Signed-off-by: René Scharfe <l.s.r@web.de>
---
 builtin/name-rev.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/builtin/name-rev.c b/builtin/name-rev.c
index c706fa3720..2dd1807c4e 100644
--- a/builtin/name-rev.c
+++ b/builtin/name-rev.c
@@ -582,12 +582,8 @@ int cmd_name_rev(int argc, const char **argv, const char *prefix)
 		OPT_BOOL(0, "undefined", &allow_undefined, N_("allow to print `undefined` names (default)")),
 		OPT_BOOL(0, "always",     &always,
 			   N_("show abbreviated commit object as fallback")),
-		{
-			/* A Hidden OPT_BOOL */
-			OPTION_SET_INT, 0, "peel-tag", &peel_tag, NULL,
-			N_("dereference tags in the input (internal use)"),
-			PARSE_OPT_NOARG | PARSE_OPT_HIDDEN, NULL, 1,
-		},
+		OPT_HIDDEN_BOOL(0, "peel-tag", &peel_tag,
+			   N_("dereference tags in the input (internal use)")),
 		OPT_END(),
 	};

--
2.42.0

```

## Jeff King, 2023-09-05 07:17

Subject: Re: [PATCH] name-rev: use OPT_HIDDEN_BOOL for --peel-tag
Message-ID: <20230905071719.GF199565@coredump.intra.peff.net>
URL: https://gitlist.dev/e/20230905071719.GF199565%40coredump.intra.peff.net
In-Reply-To: <5a86c8f8-fcdc-fee9-8af5-aa5ecb036d2e@web.de>

```
On Sat, Sep 02, 2023 at 08:38:34PM +0200, René Scharfe wrote:

> adfc1857bd (describe: fix --contains when a tag is given as input,
> 2013-07-18) added the option --peel-tag, defining it using a positional
> struct option initializer and a comment indicating that it's intended to
> be a hidden OPT_BOOL.  4741edd549 (Remove deprecated OPTION_BOOLEAN for
> parsing arguments, 2013-08-03) added the macro OPT_HIDDEN_BOOL, which
> allows to express this more succinctly.  Use it.

Yeah, this is a definite improvement.

OPT_HIDDEN_BOOL() itself is a little funny to me. I guess back then we
did not have the "_F" variants, but really it is just:

  OPT_BOOL_F(0, "peel-tag", &peel_tag,
	     N_("dereference tags in the input (internal use)")),
	     PARSE_OPT_HIDDEN);

which would remove one more special case (after all, being hidden is
orthogonal to the type). But there are enough of them that maybe having
a special name for this is worth it. I dunno. But we could probably
simplify the definition, at least. :)

-Peff

```

## René Scharfe, 2023-09-07 20:20

Subject: Re: [PATCH] name-rev: use OPT_HIDDEN_BOOL for --peel-tag
Message-ID: <e4cec1b9-fb9e-3b12-355f-d4375f2da161@web.de>
URL: https://gitlist.dev/e/e4cec1b9-fb9e-3b12-355f-d4375f2da161%40web.de
In-Reply-To: <20230905071719.GF199565@coredump.intra.peff.net>

```
Am 05.09.23 um 09:17 schrieb Jeff King:
> On Sat, Sep 02, 2023 at 08:38:34PM +0200, René Scharfe wrote:
>
> OPT_HIDDEN_BOOL() itself is a little funny to me. I guess back then we
> did not have the "_F" variants, but really it is just:
>
>   OPT_BOOL_F(0, "peel-tag", &peel_tag,
> 	     N_("dereference tags in the input (internal use)")),
> 	     PARSE_OPT_HIDDEN);
>
> which would remove one more special case (after all, being hidden is
> orthogonal to the type).

Good point!

> But there are enough of them that maybe having
> a special name for this is worth it. I dunno.

A special case just for a flag feels wasteful.  _F is more general at a
reasonable price of some verbosity:

	OPT_HIDDEN_BOOL(s, l, v, h),
	OPT_BOOL_F(s, l, v, h, PARSE_OPT_HIDDEN),

Hindsight..

> But we could probably simplify the definition, at least. :)

Sure, that would be some kind of consolation price.

René

```
