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>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
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