summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index f89d119fc5..65ce8fcf47 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1581,30 +1581,27 @@ ZEND_API int zval_is_true(zval *op)
return (op->value.lval ? 1 : 0);
}
-ZEND_API char *zend_str_tolower_copy(char *p, unsigned int length)
+ZEND_API char *zend_str_tolower_copy(char *source, char *dest, unsigned int length)
{
- register char *result;
- register char *end = p + length;
- char *start;
+ register unsigned char *str = (unsigned char*)source;
+ register unsigned char *result = dest;
+ register unsigned char *end = str + length;
- result = emalloc(length+1);
- start = result;
-
- while (p < end) {
- *result++ = tolower(*p++);
+ while (str < end) {
+ *result++ = tolower((int)*str++);
}
*result = *end;
- return start;
+ return dest;
}
ZEND_API void zend_str_tolower(char *str, unsigned int length)
{
- register char *p=str;
- register char *end = str + length;
+ register unsigned char *p = (unsigned char*)str;
+ register unsigned char *end = p + length;
while (p < end) {
- *p = tolower(*p);
+ *p = tolower((int)*p);
p++;
}
}