Re: [PATCH] parse-options: detect attempt to add a duplicate short option name
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 4, 2014, 17:24 UTC
- Message-ID
- <xmqqegvruwmz.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <540802F5.1070708@web.de>
René Scharfe <l.s.r@web.de> writes:
Show 5 quoted lines
>> Not quite, as an opt with long name is reported with the long name >> only, which is not very nice when the problem we are reporting is >> about its short variant. > > Perhaps something like the patch below helps, here and in general?
Excellent. Not just this particular case, but we would show both when both are available.
Thanks; will reroll.
Show 20 quoted lines
> parse-options.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/parse-options.c b/parse-options.c
> index b7925c5..f1c0b5d 100644
> --- a/parse-options.c
> +++ b/parse-options.c
> @@ -14,8 +14,12 @@ static int parse_options_usage(struct parse_opt_ctx_t *ctx,
>
> int optbug(const struct option *opt, const char *reason)
> {
> - if (opt->long_name)
> + if (opt->long_name) {
> + if (opt->short_name)
> + return error("BUG: switch '%c' (--%s) %s",
> + opt->short_name, opt->long_name, reason);
> return error("BUG: option '%s' %s", opt->long_name, reason);
> + }
> return error("BUG: switch '%c' %s", opt->short_name, reason);
> }