Commit 923fe4557f441f1cb94e02acda527d2785726afa

Carlos Martín Nieto 2011-03-30T16:02:57

Add strtolower and strntolower functions As parts of variable names are case-sensitive, we need these functions. Signed-off-by: Carlos Martín Nieto <cmn@elego.de>

diff --git a/src/config.c b/src/config.c
index 0870ce6..4c4db91 100644
--- a/src/config.c
+++ b/src/config.c
@@ -70,6 +70,20 @@ static git_cvar *cvar_list_find(git_cvar *start, const char *name)
 	return NULL;
 }
 
+void strntolower(char *str, int len)
+{
+	int i;
+
+	for (i = 0; i < len; ++i) {
+		str[len] = tolower(str[len]);
+	}
+}
+
+void strtolower(char *str)
+{
+	strntolower(str, strlen(str));
+}
+
 int git_config_open(git_config **cfg_out, const char *path)
 {
 	git_config *cfg;
@@ -544,6 +558,7 @@ static int parse_section_header(git_config *cfg, char **section_out, const char 
 	}
 
 	name[name_length] = 0;
+	strtolower(name);
 	*section_out = name;
 	return GIT_SUCCESS;
 
diff --git a/src/config.h b/src/config.h
index b718453..c8e9fe0 100644
--- a/src/config.h
+++ b/src/config.h
@@ -30,4 +30,7 @@ struct git_cvar {
 #define CVAR_LIST_FOREACH(start, iter) \
 	for ((iter) = (start); (iter) != NULL; (iter) = (iter)->next)
 
+void strtolower(char *str);
+void strntolower(char *str, int len);
+
 #endif