andrey Wed Oct 9 06:33:22 2002 EDT
Modified files:
/php4/ext/standard string.c
Log:
Returning to the old behavior of str_shuffle() a bit. Now the passed string is
left unmodified and the shuffled string is returned.
Index: php4/ext/standard/string.c
diff -u php4/ext/standard/string.c:1.316 php4/ext/standard/string.c:1.317
--- php4/ext/standard/string.c:1.316 Tue Oct 8 05:52:59 2002
+++ php4/ext/standard/string.c Wed Oct 9 06:33:22 2002
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.316 2002/10/08 09:52:59 andrey Exp $ */
+/* $Id: string.c,v 1.317 2002/10/09 10:33:22 andrey Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -4025,15 +4025,18 @@
Shuffles string. One permutation of all possible is created */
PHP_FUNCTION(str_shuffle)
{
- char *str;
- int str_len;
+ zval **arg;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) ==
FAILURE) {
- RETURN_FALSE;
+ if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
+ WRONG_PARAM_COUNT;
}
- php_string_shuffle(str, str_len TSRMLS_CC);
- return;
+ convert_to_string_ex(arg);
+ *return_value = **arg;
+ zval_copy_ctor(return_value);
+ if (Z_STRLEN_P(return_value) > 1) {
+ php_string_shuffle(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value)
+TSRMLS_CC);
+ }
}
/* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php