diff options
author | Sascha Schumann <sas@php.net> | 2000-05-08 10:05:19 +0000 |
---|---|---|
committer | Sascha Schumann <sas@php.net> | 2000-05-08 10:05:19 +0000 |
commit | 36c1a9a39d429c333861f1752d16e9a0066e3cbe (patch) | |
tree | 7dfc3e8a4cd16dd3ce1813687ffd99bbad803824 /Zend | |
parent | 9930bab2a6aadca0b84f7e13f4146675e47b8da6 (diff) | |
download | php-git-36c1a9a39d429c333861f1752d16e9a0066e3cbe.tar.gz |
Make strcasecmp() act correctly WRT SUS II.
Patch by: hholzgra@php.net
PR: #3556
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_operators.c | 12 |
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; } |