diff options
author | Stanislav Malyshev <stas@php.net> | 2000-07-26 11:32:15 +0000 |
---|---|---|
committer | Stanislav Malyshev <stas@php.net> | 2000-07-26 11:32:15 +0000 |
commit | 1373a16280f98f8d0f3fab762979e7a7400363fe (patch) | |
tree | dcfe5d2d46eddc791bc4a81831d661419426e297 /Zend/zend_operators.c | |
parent | 9bb4011d06ea64af4b357468e08521d4295e52d3 (diff) | |
download | php-git-1373a16280f98f8d0f3fab762979e7a7400363fe.tar.gz |
Add strncasecmp function
@ Added strncasecmp function (Andi)
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r-- | Zend/zend_operators.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 6b51218827..e1e7cd2d36 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -1473,6 +1473,25 @@ ZEND_API int zend_binary_strcasecmp(char *s1, uint len1, char *s2, uint len2) } +ZEND_API int zend_binary_strncasecmp(char *s1, uint len1, char *s2, uint len2, uint length) +{ + int len; + int c1,c2; + + len = MIN(length, MIN(len1, len2)); + + while (len--) { + c1 = tolower(*s1++); + c2 = tolower(*s2++); + if (c1 != c2) { + return c1 - c2; + } + } + + return len1 - len2; +} + + ZEND_API int zend_binary_zval_strcmp(zval *s1, zval *s2) { return zend_binary_strcmp(s1->value.str.val, s1->value.str.len, s2->value.str.val, s2->value.str.len); @@ -1490,6 +1509,12 @@ ZEND_API int zend_binary_zval_strcasecmp(zval *s1, zval *s2) } +ZEND_API int zend_binary_zval_strncasecmp(zval *s1, zval *s2, zval *s3) +{ + return zend_binary_strncasecmp(s1->value.str.val, s1->value.str.len, s2->value.str.val, s2->value.str.len, s3->value.lval); +} + + ZEND_API void zendi_smart_strcmp(zval *result, zval *s1, zval *s2) { int ret1,ret2; |