parse_config_key: use skip_prefix instead of starts_with
This saves us having to repeatedly add in "section_len" (and also avoids walking over the first part of the string multiple times for a strlen() and strrchr()). Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
49624d1e51
commit
e3394fdce7
7
config.c
7
config.c
@ -2531,11 +2531,10 @@ int parse_config_key(const char *var,
|
|||||||
const char **subsection, int *subsection_len,
|
const char **subsection, int *subsection_len,
|
||||||
const char **key)
|
const char **key)
|
||||||
{
|
{
|
||||||
int section_len = strlen(section);
|
|
||||||
const char *dot;
|
const char *dot;
|
||||||
|
|
||||||
/* Does it start with "section." ? */
|
/* Does it start with "section." ? */
|
||||||
if (!starts_with(var, section) || var[section_len] != '.')
|
if (!skip_prefix(var, section, &var) || *var != '.')
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -2547,12 +2546,12 @@ int parse_config_key(const char *var,
|
|||||||
*key = dot + 1;
|
*key = dot + 1;
|
||||||
|
|
||||||
/* Did we have a subsection at all? */
|
/* Did we have a subsection at all? */
|
||||||
if (dot == var + section_len) {
|
if (dot == var) {
|
||||||
*subsection = NULL;
|
*subsection = NULL;
|
||||||
*subsection_len = 0;
|
*subsection_len = 0;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
*subsection = var + section_len + 1;
|
*subsection = var + 1;
|
||||||
*subsection_len = dot - *subsection;
|
*subsection_len = dot - *subsection;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user