summaryrefslogtreecommitdiff
path: root/config.c
diff options
context:
space:
mode:
authorJeff King <peff@peff.net>2017-02-24 21:07:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-02-24 21:22:09 (GMT)
commite3394fdce79411fd51e20082c0faf7061007bc1c (patch)
tree9a0da47c010ef9c915f8759aada1ed82c3d1f27e /config.c
parent49624d1e518f14fe03ba6c8824aaaf420e01a834 (diff)
downloadgit-e3394fdce79411fd51e20082c0faf7061007bc1c.zip
git-e3394fdce79411fd51e20082c0faf7061007bc1c.tar.gz
git-e3394fdce79411fd51e20082c0faf7061007bc1c.tar.bz2
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>
Diffstat (limited to 'config.c')
-rw-r--r--config.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/config.c b/config.c
index 617b2e3..a23f260 100644
--- a/config.c
+++ b/config.c
@@ -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;
}