git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 3/5] parseopt: use boolean type for a simple flag

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 3, 2025, 05:19 UTC
Message-ID
<xmqq5xbrwv4t.fsf@gitster.g>
In-Reply-To
<10d531daf2c90d1bb53c07f1d72b087ebc1dd9c8.1762100242.git.ben.knoble+github@gmail.com>
"D. Ben Knoble" <ben.knoble+github@gmail.com> writes:
Show 25 quoted lines
> Suggested-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
> ---
>  parse-options.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/parse-options.c b/parse-options.c
> index 6211b55a83..197c01987e 100644
> --- a/parse-options.c
> +++ b/parse-options.c
> @@ -208,7 +208,7 @@ static enum parse_opt_result do_get_value(struct parse_opt_ctx_t *p,
>  	case OPTION_FILENAME:
>  	{
>  		const char *value;
> -		int is_optional;
> +		bool is_optional;
>  
>  		if (unset)
>  			value = NULL;
> @@ -224,7 +224,7 @@ static enum parse_opt_result do_get_value(struct parse_opt_ctx_t *p,
>  
>  		is_optional = skip_prefix(value, ":(optional)", &value);
>  		if (!value)
> -			is_optional = 0;
> +			is_optional = false;

Whether it is spelled 0 or false, I do not think this makes any sense. skip_prefix() either touches &value to point at the substring in value that comes after ":(optional)", or it does not touch it at all, so there is no way value can be NULL here (and we know value is not NULL before we call skip_prefix()).

Shouldn't you be removing the entire "if value is NULL, it is not optional" thing instead? That is exactly what Phillip pointed out in his review.

>  		value = fix_filename(p->prefix, value);
>  		if (is_optional && is_missing_file(value)) {
>  			free((char *)value);
Previous: D. Ben KnobleNext: Phillip Wood
Message 11 of 15 in “Fixes for :(optional) path code”
  1. 0/5 Fixes for :(optional) path codeD. Ben Knoble, Nov 2, 2025
  2. 1/5 parseopt: fix :(optional) at command line to only ignore missing filesD. Ben Knoble, Nov 2, 2025
  3. Phillip WoodNov 4, 2025
  4. Junio C HamanoNov 4, 2025
  5. Junio C HamanoNov 4, 2025
  6. D. Ben KnobleNov 4, 2025
  7. Phillip WoodNov 5, 2025
  8. Junio C HamanoNov 6, 2025
  9. 2/5 doc: clarify command equivalence commentD. Ben Knoble, Nov 2, 2025
  10. 3/5 parseopt: use boolean type for a simple flagD. Ben Knoble, Nov 2, 2025
  11. Junio C HamanoNov 3, 2025
  12. Phillip WoodNov 4, 2025
  13. D. Ben KnobleNov 4, 2025
  14. 4/5 config: use boolean type for a simple flagD. Ben Knoble, Nov 2, 2025
  15. 5/5 parseopt: restore const qualifier to parsed filenameD. Ben Knoble, Nov 2, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.