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

Re: [PATCH 1/5] parseopt: fix :(optional) at command line to only ignore missing files

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Nov 5, 2025, 16:35 UTC
Message-ID
<5951a930-0e57-4201-9b56-12a41cb44333@gmail.com>
In-Reply-To
<xmqqwm45puqr.fsf@gitster.g>
On 04/11/2025 17:34, Junio C Hamano wrote:
Show 16 quoted lines
> Junio C Hamano <gitster@pobox.com> writes:
> 
> Let me have this on top of Ben's 5-patch series.
> 
> ----- >8 -----
> Subject: [PATCH] parseopt: remove unreachable code
> 
> At this point in the code after running skip_prefix() on the
> variable and receiving the result in the same variable, the contents
> of the variable can never be NULL.  The function either (1) updates
> the variable to point at a later part of the string it originally
> pointed at, or (2) leaves it intact if the string does not have the
> prefix.  (1) will never make the variable NULL, and (2) cannot be
> the source of NULL, because the variable cannot be NULL before
> calling skip_prefix(), which would die immediately by dereferencing
> the NULL pointer in that case.
Nicely explained, the changes below look good
Thanks
Phillip
Show 19 quoted lines
> Helped-by: Phillip Wood <phillip.wood@dunelm.org.uk>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
>   parse-options.c | 2 --
>   1 file changed, 2 deletions(-)
> 
> diff --git a/parse-options.c b/parse-options.c
> index 27c1e75d53..97a55300e8 100644
> --- a/parse-options.c
> +++ b/parse-options.c
> @@ -223,8 +223,6 @@ static enum parse_opt_result do_get_value(struct parse_opt_ctx_t *p,
>   			return 0;
>   
>   		is_optional = skip_prefix(value, ":(optional)", &value);
> -		if (!value)
> -			is_optional = false;
>   		value = fix_filename(p->prefix, value);
>   		if (is_optional && is_missing_file(value)) {
>   			free((char *)value);
Previous: D. Ben KnobleNext: Junio C Hamano
Message 7 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.