Merge branch 'jk/parse-config-key-cleanup' into maint

The "parse_config_key()" API function has been cleaned up.

* jk/parse-config-key-cleanup:
  parse_hide_refs_config: tell parse_config_key we don't want a subsection
  parse_config_key: allow matching single-level config
  parse_config_key: use skip_prefix instead of starts_with
  refs: parse_hide_refs_config to use parse_config_key
This commit is contained in:
Junio C Hamano
2017-03-28 13:52:18 -07:00
3 changed files with 16 additions and 10 deletions

View File

@ -2540,11 +2540,10 @@ int parse_config_key(const char *var,
const char **subsection, int *subsection_len,
const char **key)
{
int section_len = strlen(section);
const char *dot;
/* Does it start with "section." ? */
if (!starts_with(var, section) || var[section_len] != '.')
if (!skip_prefix(var, section, &var) || *var != '.')
return -1;
/*
@ -2556,12 +2555,16 @@ int parse_config_key(const char *var,
*key = dot + 1;
/* Did we have a subsection at all? */
if (dot == var + section_len) {
*subsection = NULL;
*subsection_len = 0;
if (dot == var) {
if (subsection) {
*subsection = NULL;
*subsection_len = 0;
}
}
else {
*subsection = var + section_len + 1;
if (!subsection)
return -1;
*subsection = var + 1;
*subsection_len = dot - *subsection;
}