]> git.ipfire.org Git - thirdparty/git.git/commitdiff
parseopt: fix :(optional) at command line to only ignore missing files
authorD. Ben Knoble <ben.knoble+github@gmail.com>
Sun, 2 Nov 2025 16:17:44 +0000 (11:17 -0500)
committerJunio C Hamano <gitster@pobox.com>
Tue, 4 Nov 2025 17:25:51 +0000 (09:25 -0800)
Unlike the configuration option magic, the parseopt code also ignores
empty files: compare implementations from ccfcaf399f (parseopt: values
of pathname type can be prefixed with :(optional), 2025-09-28) and
749d6d166d (config: values of pathname type can be prefixed with
:(optional), 2025-09-28).

Unify the 2 by not ignoring empty files, which is less surprising and
the intended semantics from the first patch for config.

Suggested-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: D. Ben Knoble <ben.knoble+github@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
parse-options.c

index 4faf66023ac30cecd9b5637687d6a2829571cbfd..5b7dc29b2ce645daffeed8bcca79f6a7afaa7998 100644 (file)
@@ -226,7 +226,7 @@ static enum parse_opt_result do_get_value(struct parse_opt_ctx_t *p,
                if (!value)
                        is_optional = 0;
                value = fix_filename(p->prefix, value);
-               if (is_optional && is_empty_or_missing_file(value)) {
+               if (is_optional && is_missing_file(value)) {
                        free((char *)value);
                } else {
                        FREE_AND_NULL(*(char **)opt->value);