nlopess Sat Jul 1 12:29:38 2006 UTC Modified files: /php-src/ext/standard assert.c /php-src/ext/standard/tests/assert assert02.phpt Log: MFB5.2: fix assert() problems http://cvs.php.net/viewvc.cgi/php-src/ext/standard/assert.c?r1=1.65&r2=1.66&diff_format=u Index: php-src/ext/standard/assert.c diff -u php-src/ext/standard/assert.c:1.65 php-src/ext/standard/assert.c:1.66 --- php-src/ext/standard/assert.c:1.65 Fri Jun 23 11:40:14 2006 +++ php-src/ext/standard/assert.c Sat Jul 1 12:29:38 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: assert.c,v 1.65 2006/06/23 11:40:14 iliaa Exp $ */ +/* $Id: assert.c,v 1.66 2006/07/01 12:29:38 nlopess Exp $ */ /* {{{ includes/startup/misc */ @@ -162,7 +162,10 @@ if (zend_eval_string(myeval, &retval, compiled_string_description TSRMLS_CC) == FAILURE) { efree(compiled_string_description); php_error_docref(NULL TSRMLS_CC, E_RECOVERABLE_ERROR, "Failure evaluating code: %s%s", PHP_EOL, myeval); - /* php_error_docref() does not return in this case. */ + if (ASSERTG(bail)) { + zend_bailout(); + } + RETURN_FALSE; } if (free_tmp) { zval_dtor(&tmp); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/assert/assert02.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/assert/assert02.phpt diff -u /dev/null php-src/ext/standard/tests/assert/assert02.phpt:1.2 --- /dev/null Sat Jul 1 12:29:38 2006 +++ php-src/ext/standard/tests/assert/assert02.phpt Sat Jul 1 12:29:38 2006 @@ -0,0 +1,58 @@ +--TEST-- +catch assert() errors +--FILE-- +<?php +function handler($errno, $errstr) { + echo "in handler()\n"; + assert(E_RECOVERABLE_ERROR === $errno); + var_dump($errstr); +} + +set_error_handler('handler', E_RECOVERABLE_ERROR); + +assert(1); +assert('1'); +assert('$a'); + +assert('aa=sd+as+safsafasfasafsaf'); + +assert('0'); + +assert_options(ASSERT_BAIL, 1); +assert('aa=sd+as+safsafasfasafsaf'); + +echo "done\n"; + +?> +--EXPECTF-- +Notice: Undefined variable: a in %sassert02.php(12) : assert code on line 1 + +Warning: assert(): Assertion "$a" failed in %sassert02.php on line 12 + +Parse error: syntax error, unexpected '=' in %sassert02.php(14) : assert code on line 1 +in handler() +string(61) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf" + +Warning: assert(): Assertion "0" failed in %sassert02.php on line 16 + +Parse error: syntax error, unexpected '=' in %sassert02.php(19) : assert code on line 1 +in handler() +string(61) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf" +--EXPECTUF-- +Notice: Undefined variable: a in %sassert02.php(12) : assert code on line 1 + +Warning: assert(): Assertion "$a" failed in %sassert02.php on line 12 + +Parse error: syntax error, unexpected '=' in %sassert02.php(14) : assert code on line 1 +in handler() +unicode(61) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf" + +Warning: assert(): Assertion "0" failed in %sassert02.php on line 16 + +Parse error: syntax error, unexpected '=' in %sassert02.php(19) : assert code on line 1 +in handler() +unicode(61) "assert(): Failure evaluating code: +aa=sd+as+safsafasfasafsaf"
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php