diff options
author | Andrei Zmievski <andrei@php.net> | 2000-05-23 12:38:12 +0000 |
---|---|---|
committer | Andrei Zmievski <andrei@php.net> | 2000-05-23 12:38:12 +0000 |
commit | 03851ced5f07836cd971486c6425f32a60d90621 (patch) | |
tree | 499a70dd4ea41769a47efcf9e9b048ef415e06b8 /ext/standard/string.c | |
parent | ae0d73e87da86645d4f3c017990f018616568896 (diff) | |
download | php-git-03851ced5f07836cd971486c6425f32a60d90621.tar.gz |
Clean up the patch by Hartmut.
Diffstat (limited to 'ext/standard/string.c')
-rw-r--r-- | ext/standard/string.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c index 4b2cf4dbe5..a43eff7cb6 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -216,7 +216,6 @@ PHP_FUNCTION(ltrim) PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit) { char *p1, *p2, *endp; - int i = 0; endp = str->value.str.val + str->value.str.len; @@ -224,18 +223,16 @@ PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit) p2 = php_memnstr(str->value.str.val, delim->value.str.val, delim->value.str.len, endp); if (p2 == NULL) { - add_index_stringl(return_value, i++, p1, str->value.str.len, 1); + add_next_index_stringl(return_value, p1, str->value.str.len, 1); } else { do { - add_index_stringl(return_value, i++, p1, p2-p1, 1); + add_next_index_stringl(return_value, p1, p2-p1, 1); p1 = p2 + delim->value.str.len; - if((limit>=0)&&(i>=limit-1)) - break; - } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL); + } while ((p2 = php_memnstr(p1, delim->value.str.val, delim->value.str.len, endp)) != NULL && + (limit == -1 || --limit > 1)); - if ((p1 <= endp)|| ((limit>=0)&&(i>=limit-1))){ - add_index_stringl(return_value, i++, p1, endp-p1, 1); - } + if (p1 <= endp) + add_next_index_stringl(return_value, p1, endp-p1, 1); } } @@ -274,7 +271,7 @@ PHP_FUNCTION(explode) RETURN_FALSE; } - if((limit==0)||(limit==1)) { + if(limit==0 || limit==1) { add_index_stringl(return_value, 0, (*str)->value.str.val, (*str)->value.str.len, 1); } else { php_explode(*delim, *str, return_value, limit); |