summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2006-08-16 18:07:22 +0000
committerAndrei Zmievski <andrei@php.net>2006-08-16 18:07:22 +0000
commit253a82d0cc35ad4219dbdefe04315fb94e069cd9 (patch)
tree94c2d9dcfd2bdcb61ad1d185cde9b927bcd36421
parent24441c81dac418f3d85a28055f4ad025f8bfdf1b (diff)
downloadphp-git-253a82d0cc35ad4219dbdefe04315fb94e069cd9.tar.gz
Simplify php_u_trim().
-rw-r--r--ext/standard/string.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 418a4ef836..d0c453498c 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -709,10 +709,6 @@ static UChar *php_u_trim(UChar *c, int len, UChar *what, int what_len, zval *ret
UChar ch = 0, wh = 0;
int32_t start = 0, end = len;
- /*
- * UTODO
- * fix trim("a") results in ""
- */
if ( what ) {
what = eustrndup(what, what_len);
php_expand_u_trim_range(&what, &what_len TSRMLS_CC);
@@ -722,11 +718,9 @@ static UChar *php_u_trim(UChar *c, int len, UChar *what, int what_len, zval *ret
for ( i = k = 0 ; i < end ; ) {
U16_NEXT(c, k, end, ch);
if ( what ) {
- for ( j = 0 ; j < what_len ; ) {
- U16_NEXT(what, j, what_len, wh);
- if ( wh == ch ) break;
+ if (u_memchr32(what, ch, what_len) == NULL) {
+ break;
}
- if ( wh != ch ) break;
} else {
if ( u_isWhitespace(ch) == FALSE ) {
break;
@@ -740,11 +734,9 @@ static UChar *php_u_trim(UChar *c, int len, UChar *what, int what_len, zval *ret
for ( i = k = end ; i > start ; ) {
U16_PREV(c, 0, k, ch);
if ( what ) {
- for ( j = 0 ; j < what_len ; ) {
- U16_NEXT(what, j, what_len, wh);
- if ( wh == ch ) break;
+ if (u_memchr32(what, ch, what_len) == NULL) {
+ break;
}
- if ( wh != ch ) break;
} else {
if ( u_isWhitespace(ch) == FALSE ) {
break;