cvs: php4 /ext/standard/ php_string.h string.c
[email protected] ("Hartmut Holzgraefe")
| Newsgroups | php.version4 |
|---|---|
| Message-ID | <cvshholzgra958799273@cvsserver> |
hholzgra Sat May 20 07:07:53 2000 EDT
Modified files:
/php4/ext/standard string.c php_string.h
Log:
patch to explode (bug id #3251) suspended till 4.0.1
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.111 php4/ext/standard/string.c:1.112
--- php4/ext/standard/string.c:1.111 Sat May 20 00:00:38 2000
+++ php4/ext/standard/string.c Sat May 20 07:07:53 2000
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.111 2000/05/19 22:00:38 hholzgra Exp $ */
+/* $Id: string.c,v 1.112 2000/05/20 05:07:53 hholzgra Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -213,7 +213,7 @@
}
/* }}} */
-PHPAPI void php_explode(zval *delim, zval *str, zval *return_value, int limit)
+PHPAPI void php_explode(zval *delim, zval *str, zval *return_value)
{
char *p1, *p2, *endp;
int i = 0;
@@ -229,38 +229,23 @@
do {
add_index_stringl(return_value, i++, 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);
- if ((p1 <= endp)|| ((limit>=0)&&(i>=limit-1))){
+ if (p1 <= endp) {
add_index_stringl(return_value, i++, p1, endp-p1, 1);
}
}
}
-/* {{{ proto array explode(string separator, string str [, int limit])
+/* {{{ proto array explode(string separator, string str)
Split a string on string separator and return array of components */
PHP_FUNCTION(explode)
{
- zval **str, **delim, **zlimit = NULL;
- int limit;
+ zval **str, **delim;
- switch (ARG_COUNT(ht)) {
- case 2:
- if (zend_get_parameters_ex(2, &delim, &str) == FAILURE)
- WRONG_PARAM_COUNT;
- limit=-1;
- break;
- case 3:
- if (zend_get_parameters_ex(3, &delim, &str, &zlimit) == FAILURE)
- WRONG_PARAM_COUNT;
- convert_to_long_ex(zlimit);
- limit = (*zlimit)->value.lval;
- break;
- default:
- WRONG_PARAM_COUNT;
- }
+ if (ARG_COUNT(ht) != 2 || zend_get_parameters_ex(2, &delim, &str) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
convert_to_string_ex(str);
convert_to_string_ex(delim);
@@ -274,11 +259,7 @@
RETURN_FALSE;
}
- 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);
- }
+ php_explode(*delim, *str, return_value);
}
/* }}} */
Index: php4/ext/standard/php_string.h
diff -u php4/ext/standard/php_string.h:1.13 php4/ext/standard/php_string.h:1.14
--- php4/ext/standard/php_string.h:1.13 Sat May 20 00:00:38 2000
+++ php4/ext/standard/php_string.h Sat May 20 07:07:53 2000
@@ -29,7 +29,7 @@
*/
-/* $Id: php_string.h,v 1.13 2000/05/19 22:00:38 hholzgra Exp $ */
+/* $Id: php_string.h,v 1.14 2000/05/20 05:07:53 hholzgra Exp $ */
/* Synced with php 3.0 revision 1.43 1999-06-16 [ssb] */
@@ -109,7 +109,7 @@
PHPAPI void php_char_to_str(char *str, uint len, char from, char *to, int to_len, pval *result);
PHPAPI void php_implode(pval *delim, pval *arr, pval *return_value);
-PHPAPI void php_explode(pval *delim, pval *str, pval *return_value, int limit);
+PHPAPI void php_explode(pval *delim, pval *str, pval *return_value);
PHPAPI inline char *php_memnstr(char *haystack, char *needle, int needle_len, char *end);
PHPAPI size_t php_strspn(char *s1, char *s2, char *s1_end, char *s2_end);
PHPAPI size_t php_strcspn(char *s1, char *s2, char *s1_end, char *s2_end);