summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelipe Pena <felipe@php.net>2008-08-10 21:48:22 +0000
committerFelipe Pena <felipe@php.net>2008-08-10 21:48:22 +0000
commitb9b83ec794f2377b25c8c407076d88a8e971c065 (patch)
tree3493d55c737884ab0d124779146438e09f87ebb3
parent4a015008b67a7155c5d3f0a13c8d68c9035e1472 (diff)
downloadphp-git-b9b83ec794f2377b25c8c407076d88a8e971c065.tar.gz
- New parameter parsing API (for *printf())
-rw-r--r--ext/standard/formatted_print.c23
-rwxr-xr-xext/standard/tests/strings/printf.phpt2
-rw-r--r--ext/standard/tests/strings/sprintf_error.phpt2
-rw-r--r--ext/standard/tests/strings/vfprintf_error4.phpt2
-rw-r--r--ext/standard/tests/strings/vsprintf_error.phpt2
5 files changed, 14 insertions, 17 deletions
diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c
index d8d1fb88b0..49bc3dad5b 100644
--- a/ext/standard/formatted_print.c
+++ b/ext/standard/formatted_print.c
@@ -980,16 +980,13 @@ static zstr php_u_formatted_print(int ht, int *len, int use_array, int format_of
int always_sign;
zstr result_str;
- argc = ZEND_NUM_ARGS();
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "+", &args, &argc) == FAILURE) {
+ return NULL_ZSTR;
+ }
/* verify the number of args */
if ((use_array && argc != (2 + format_offset))
|| (!use_array && argc < (1 + format_offset))) {
- WRONG_PARAM_COUNT_WITH_RETVAL(NULL_ZSTR);
- }
- args = (zval ***)safe_emalloc(argc, sizeof(zval *), 0);
-
- if (zend_get_parameters_array_ex(argc, args) == FAILURE) {
efree(args);
WRONG_PARAM_COUNT_WITH_RETVAL(NULL_ZSTR);
}
@@ -1364,19 +1361,19 @@ PHP_FUNCTION(vprintf)
PHP_FUNCTION(fprintf)
{
php_stream *stream;
- zval **arg1, **arg2;
+ zval *arg1, **arg2;
zstr result;
int len, ret;
if (ZEND_NUM_ARGS() < 2) {
WRONG_PARAM_COUNT;
}
-
- if (zend_get_parameters_ex(2, &arg1, &arg2)==FAILURE) {
+
+ if (zend_parse_parameters(2 TSRMLS_CC, "rZ", &arg1, &arg2) == FAILURE) {
RETURN_FALSE;
}
- php_stream_from_zval(stream, arg1);
+ php_stream_from_zval(stream, &arg1);
if (Z_TYPE_PP(arg2) != IS_STRING && Z_TYPE_PP(arg2) != IS_UNICODE) {
convert_to_text_ex(arg2);
@@ -1406,7 +1403,7 @@ PHP_FUNCTION(fprintf)
PHP_FUNCTION(vfprintf)
{
php_stream *stream;
- zval **arg1, **arg2;
+ zval *arg1, **arg2;
zstr result;
int len, ret;
@@ -1414,11 +1411,11 @@ PHP_FUNCTION(vfprintf)
WRONG_PARAM_COUNT;
}
- if (zend_get_parameters_ex(2, &arg1, &arg2)==FAILURE) {
+ if (zend_parse_parameters(2 TSRMLS_CC, "rZ", &arg1, &arg2) == FAILURE) {
RETURN_FALSE;
}
- php_stream_from_zval(stream, arg1);
+ php_stream_from_zval(stream, &arg1);
if (Z_TYPE_PP(arg2) != IS_STRING && Z_TYPE_PP(arg2) != IS_UNICODE) {
convert_to_text_ex(arg2);
diff --git a/ext/standard/tests/strings/printf.phpt b/ext/standard/tests/strings/printf.phpt
index c6858eea56..d2e6143ce1 100755
--- a/ext/standard/tests/strings/printf.phpt
+++ b/ext/standard/tests/strings/printf.phpt
@@ -227,7 +227,7 @@ printf("%d", $tempstring);
--EXPECTF--
*** Output for zero argument ***
-Warning: Wrong parameter count for printf() in %s on line %d
+Warning: printf() expects at least %d parameter, %d given in %s on line %d
*** Output for insufficient number of arguments ***
diff --git a/ext/standard/tests/strings/sprintf_error.phpt b/ext/standard/tests/strings/sprintf_error.phpt
index 1200ab27a6..f7f9e37e77 100644
--- a/ext/standard/tests/strings/sprintf_error.phpt
+++ b/ext/standard/tests/strings/sprintf_error.phpt
@@ -39,7 +39,7 @@ echo "Done";
-- Testing sprintf() function with Zero arguments --
-Warning: Wrong parameter count for sprintf() in %s on line %d
+Warning: sprintf() expects at least %d parameter, %d given in %s on line %d
bool(false)
-- Testing sprintf() function with less than expected no. of arguments --
diff --git a/ext/standard/tests/strings/vfprintf_error4.phpt b/ext/standard/tests/strings/vfprintf_error4.phpt
index 384d9cd740..57be8f7e3c 100644
--- a/ext/standard/tests/strings/vfprintf_error4.phpt
+++ b/ext/standard/tests/strings/vfprintf_error4.phpt
@@ -36,7 +36,7 @@ unlink( $file );
--EXPECTF--
-- Testing vfprintf() function with other strangeties --
-Warning: vfprintf(): supplied argument is not a valid stream resource in %s on line %d
+Warning: vfprintf() expects parameter 1 to be resource, Unicode string given in %s on line %d
bool(false)
Warning: vfprintf(): Zero is not a valid argument number in %s on line %d
diff --git a/ext/standard/tests/strings/vsprintf_error.phpt b/ext/standard/tests/strings/vsprintf_error.phpt
index 0ece4a420f..8d581474b4 100644
--- a/ext/standard/tests/strings/vsprintf_error.phpt
+++ b/ext/standard/tests/strings/vsprintf_error.phpt
@@ -31,7 +31,7 @@ echo "Done";
-- Testing vsprintf() function with Zero arguments --
-Warning: Wrong parameter count for vsprintf() in %s on line %d
+Warning: vsprintf() expects at least %d parameter, %d given in %s on line %d
bool(false)
-- Testing vsprintf() function with less than expected no. of arguments --