diff options
Diffstat (limited to 'src/util.c')
-rw-r--r-- | src/util.c | 12 |
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) |