summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSascha Schumann <sas@php.net>2000-05-08 10:05:19 +0000
committerSascha Schumann <sas@php.net>2000-05-08 10:05:19 +0000
commit36c1a9a39d429c333861f1752d16e9a0066e3cbe (patch)
tree7dfc3e8a4cd16dd3ce1813687ffd99bbad803824
parent9930bab2a6aadca0b84f7e13f4146675e47b8da6 (diff)
downloadphp-git-36c1a9a39d429c333861f1752d16e9a0066e3cbe.tar.gz
Make strcasecmp() act correctly WRT SUS II.
Patch by: hholzgra@php.net PR: #3556
-rw-r--r--Zend/zend_operators.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 991385932b..73577e6181 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1299,21 +1299,19 @@ ZEND_API int zend_binary_strncmp(char *s1, uint len1, char *s2, uint len2, uint
ZEND_API int zend_binary_strcasecmp(char *s1, uint len1, char *s2, uint len2)
{
- unsigned char c1 = 0, c2 = 0;
+ int len;
- if (len1 != len2 || !len1) {
- return len1 - len2;
- }
+ len = MIN(len1, len2);
- while (len1--) {
+ while (len--) {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
if (c1 != c2) {
- break;
+ return c1 - c2;
}
}
- return c1 - c2;
+ return len1 - len2;
}