From e3394fdce79411fd51e20082c0faf7061007bc1c Mon Sep 17 00:00:00 2001 From: Jeff King Date: Fri, 24 Feb 2017 16:07:19 -0500 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- config.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/config.c b/config.c index 617b2e3cf4..a23f260792 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; }