summaryrefslogtreecommitdiff
path: root/src/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.c')
-rw-r--r--src/util.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/util.c b/src/util.c
index 9813eb694..831b07385 100644
--- a/src/util.c
+++ b/src/util.c
@@ -199,9 +199,17 @@ int git__strncmp(const char *a, const char *b, size_t sz)
int git__strncasecmp(const char *a, const char *b, size_t sz)
{
- while (sz && *a && *b && tolower(*a) == tolower(*b))
+ int al, bl;
+
+ while (sz && *a && *b) {
+ al = (unsigned char)tolower(*a);
+ bl = (unsigned char)tolower(*b);
+ if (al != bl)
+ break;
--sz, ++a, ++b;
- return !sz ? 0 : (tolower(*a) - tolower(*b));
+ }
+
+ return !sz ? 0 : al - bl;
}
void git__strntolower(char *str, size_t len)