Subject: Re: [PATCH 1/2] parse-options.[ch]: revert use of "enum" for parse_options()

From: Junio C Hamano <[email-masked]>
Date: Tue, 09 Nov 2021 09:45:15 -0800

Ævar Arnfjörð Bjarmason  <[email-masked]> writes:

> Revert the parse_options() prototype change in my recent
> 352e761388b (parse-options.[ch]: consistently use "enum
> parse_opt_result", 2021-10-08) was incorrect. The parse_options()
> function returns the number of argc elements that haven't been
> processed, not "enum parse_opt_result".
>
> Reported-by: SZEDER Gábor <[email-masked]>
> Signed-off-by: Ævar Arnfjörð Bjarmason <[email-masked]>
> ---
>  parse-options.c | 10 +++++-----
>  parse-options.h |  9 ++++-----
>  2 files changed, 9 insertions(+), 10 deletions(-)

Yes, this makes total sense.  We went overboard during the series.

> diff --git a/parse-options.c b/parse-options.c
> index 9a0484c8831..fc5b43ff0b2 100644
> --- a/parse-options.c
> +++ b/parse-options.c
> @@ -860,11 +860,11 @@ int parse_options_end(struct parse_opt_ctx_t *ctx)
>  	return ctx->cpidx + ctx->argc;
>  }
>  
> -enum parse_opt_result parse_options(int argc, const char **argv,
> -				    const char *prefix,
> -				    const struct option *options,
> -				    const char * const usagestr[],
> -				    enum parse_opt_flags flags)
> +int parse_options(int argc, const char **argv,
> +		  const char *prefix,
> +		  const struct option *options,
> +		  const char * const usagestr[],
> +		  enum parse_opt_flags flags)
>  {
>  	struct parse_opt_ctx_t ctx;
>  	struct option *real_options;
> diff --git a/parse-options.h b/parse-options.h
> index bdea052c399..275fb440818 100644
> --- a/parse-options.h
> +++ b/parse-options.h
> @@ -213,11 +213,10 @@ struct option {
>   * untouched and parse_options() returns the number of options
>   * processed.
>   */
> -enum parse_opt_result parse_options(int argc, const char **argv,
> -				    const char *prefix,
> -				    const struct option *options,
> -				    const char * const usagestr[],
> -				    enum parse_opt_flags flags);
> +int parse_options(int argc, const char **argv, const char *prefix,
> +		  const struct option *options,
> +		  const char * const usagestr[],
> +		  enum parse_opt_flags flags);
>  
>  NORETURN void usage_with_options(const char * const *usagestr,
>  				 const struct option *options);