From 7af8eadd57b198c7fc91698cdfe68300d3aeec19 Mon Sep 17 00:00:00 2001 From: Marcus Boerger Date: Wed, 21 May 2003 21:59:40 +0000 Subject: Make zend_str_tolower_copy() a copy function (like stccpy). Supply a dup version (like estrdup). Fix tolower() handling. # Havin copy and dup allows to use the faster version even with # memory not allocated by emalloc. --- Zend/zend_operators.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) (limited to 'Zend/zend_operators.c') 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++; } } -- cgit v1.2.1