Commit a9fe8ae0ee1ddcc289fad53f1a671f02a3e9a88f

Carlos Martín Nieto 2012-01-23T22:14:04

config: don't use 'section "subsection"' internal form on config_set This had been left over from a time when I believed what the git documentation had to say about case-sensitivity. The rest of the code doesn't recognize this form and we hadn't noticed because most tests don't try to get a recently-set variable but free and reload the configuration, causing the right format to be used.

diff --git a/src/config_file.c b/src/config_file.c
index 2374b38..481c593 100644
--- a/src/config_file.c
+++ b/src/config_file.c
@@ -230,23 +230,13 @@ static char *interiorize_section(const char *orig)
 	if (last_dot == dot)
 		return git__strndup(orig, dot - orig);
 
-	section = git__malloc(len + 4);
+	section = git__strndup(orig, len);
 	if (section == NULL)
 		return NULL;
 
-	memset(section, 0x0, len + 4);
 	ret = section;
 	len = dot - orig;
-	memcpy(section, orig, len);
-	section += len;
-	len = strlen(" \"");
-	memcpy(section, " \"", len);
-	section += len;
-	len = last_dot - dot - 1;
-	memcpy(section, dot + 1, len);
-	section += len;
-	*section = '"';
-
+	git__strntolower(section, len);
 	return ret;
 }