summaryrefslogtreecommitdiff
path: root/StdLib/LibC/String/Comparison.c
diff options
context:
space:
mode:
Diffstat (limited to 'StdLib/LibC/String/Comparison.c')
-rw-r--r--StdLib/LibC/String/Comparison.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/StdLib/LibC/String/Comparison.c b/StdLib/LibC/String/Comparison.c
index e656fe73f5..b4980c7c1e 100644
--- a/StdLib/LibC/String/Comparison.c
+++ b/StdLib/LibC/String/Comparison.c
@@ -109,10 +109,15 @@ strcasecmp(const char *s1, const char *s2)
{
const unsigned char *us1 = (const unsigned char *)s1,
*us2 = (const unsigned char *)s2;
+ int Difference;
- while (tolower(*us1) == tolower(*us2++))
- if (*us1++ == '\0')
+ while ( 0 == ( Difference = tolower(*us1) - tolower(*us2))) {
+ if (*us1 == 0) {
return (0);
- return (tolower(*us1) - tolower(*--us2));
+ }
+ us1 += 1;
+ us2 += 1;
+ }
+ return Difference;
}