Re: [BUG] submodule config does not apply to upper case submodules?
From: Junio C Hamano <hidden>
Date: 2017-02-15 23:38:26
Stefan Beller [off-list ref] writes:
Yes; though I'd place it in strbuf.{c,h} as it is operating
on the internals of the strbuf. (Do we make any promises outside of
strbuf about the internals? I mean we use .buf all the time, so maybe
I am overly cautious here)I'd rather have it not use struct strbuf as an interface. It only needs to pass "char *" and its promise that it touches the string in-place without changing the length need to be documented as a comment before the function.
quoted
config.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-)diff --git a/config.c b/config.c index c6b874a7bf..98bf8fee32 100644 --- a/config.c +++ b/config.c@@ -201,6 +201,20 @@ void git_config_push_parameter(const char *text) strbuf_release(&env); } +static void canonicalize_config_variable_name(struct strbuf *var) +{ + char *first_dot = strchr(var->buf, '.'); + char *last_dot = strrchr(var->buf, '.');If first_dot != NULL, then last_dot !+ NULL as well. (either both are NULL or none of them), so we can loose one condition below.
I do not think it is worth it, though.
quoted
+ char *cp; + + if (first_dot) + for (cp = var->buf; *cp && cp < first_dot; cp++) + *cp = tolower(*cp); + if (last_dot) + for (cp = last_dot; *cp; cp++) + *cp = tolower(*cp);
if (first_dot) {
scan up to first dot
if (last_dot)
scan from last dot to the end
}
would be uglier.