mirror of
https://github.com/git/git.git
synced 2025-12-12 20:36:24 +01:00
Merge branch 'dk/parseopt-optional-filename-fixes'
A recently added configuration variable and command line option syntax ":(optional)" for values that are of filename type inconsistently behaved on an empty file (configuration took it happily, while the command line option pretended as if it did not exist), which has been corrected. * dk/parseopt-optional-filename-fixes: parseopt: remove unreachable code parseopt: restore const qualifier to parsed filename config: use boolean type for a simple flag parseopt: use boolean type for a simple flag doc: clarify command equivalence comment parseopt: fix :(optional) at command line to only ignore missing files
This commit is contained in:
@@ -208,12 +208,12 @@ 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;
|
||||
else if (opt->flags & PARSE_OPT_OPTARG && !p->opt)
|
||||
value = (char *)opt->defval;
|
||||
value = (const char *)opt->defval;
|
||||
else {
|
||||
int err = get_arg(p, opt, flags, &value);
|
||||
if (err)
|
||||
@@ -223,10 +223,8 @@ 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 = 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);
|
||||
|
||||
Reference in New Issue
Block a user