diff options
| author | Andrei Zmievski <andrei@php.net> | 2006-08-16 18:07:22 +0000 |
|---|---|---|
| committer | Andrei Zmievski <andrei@php.net> | 2006-08-16 18:07:22 +0000 |
| commit | 253a82d0cc35ad4219dbdefe04315fb94e069cd9 (patch) | |
| tree | 94c2d9dcfd2bdcb61ad1d185cde9b927bcd36421 | |
| parent | 24441c81dac418f3d85a28055f4ad025f8bfdf1b (diff) | |
| download | php-git-253a82d0cc35ad4219dbdefe04315fb94e069cd9.tar.gz | |
Simplify php_u_trim().
| -rw-r--r-- | ext/standard/string.c | 16 |
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; |
