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:
Jeff King 2017-02-24 16:07:19 -05:00 коммит произвёл Junio C Hamano
Родитель 49624d1e51
Коммит e3394fdce7
1 изменённых файлов: 3 добавлений и 4 удалений

Просмотреть файл

@ -2531,11 +2531,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;
/*
@ -2547,12 +2546,12 @@ int parse_config_key(const char *var,
*key = dot + 1;
/* Did we have a subsection at all? */
if (dot == var + section_len) {
if (dot == var) {
*subsection = NULL;
*subsection_len = 0;
}
else {
*subsection = var + section_len + 1;
*subsection = var + 1;
*subsection_len = dot - *subsection;
}