Merge branch 'cc/skip-to-optional-val'
Introduce a helper to simplify code to parse a common pattern that expects either "--key" or "--key=<something>". * cc/skip-to-optional-val: t4045: reindent to make helpers readable diff: add tests for --relative without optional prefix value diff: use skip_to_optional_arg_default() in parsing --relative diff: use skip_to_optional_arg_default() diff: use skip_to_optional_arg() index-pack: use skip_to_optional_arg() git-compat-util: introduce skip_to_optional_arg()
This commit is contained in:
22
strbuf.c
22
strbuf.c
@ -11,6 +11,28 @@ int starts_with(const char *str, const char *prefix)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int skip_to_optional_arg_default(const char *str, const char *prefix,
|
||||
const char **arg, const char *def)
|
||||
{
|
||||
const char *p;
|
||||
|
||||
if (!skip_prefix(str, prefix, &p))
|
||||
return 0;
|
||||
|
||||
if (!*p) {
|
||||
if (arg)
|
||||
*arg = def;
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (*p != '=')
|
||||
return 0;
|
||||
|
||||
if (arg)
|
||||
*arg = p + 1;
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Used as the default ->buf value, so that people can always assume
|
||||
* buf is non NULL and ->buf is NUL terminated even for a freshly
|
||||
|
Reference in New Issue
Block a user