summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2003-05-21 21:59:40 +0000
committerMarcus Boerger <helly@php.net>2003-05-21 21:59:40 +0000
commit7af8eadd57b198c7fc91698cdfe68300d3aeec19 (patch)
tree83a864335a1c61be756464bca9ae1bc6238c8cfd /Zend/zend_operators.c
parentbbe87059fb660fa771c0a6d323eb3a0ee06ca0e7 (diff)
downloadphp-git-7af8eadd57b198c7fc91698cdfe68300d3aeec19.tar.gz
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.
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++;
}
}