diff options
| author | Ondřej Surý <ondrej@sury.org> | 2010-03-09 11:57:54 +0100 |
|---|---|---|
| committer | Ondřej Surý <ondrej@sury.org> | 2010-03-09 11:57:54 +0100 |
| commit | 855a09f4eded707941180c9d90acd17c25e29447 (patch) | |
| tree | a40947efaa9876f31b6ee3956c3f3775768143bb /Zend | |
| parent | c852c28a88fccf6e34a2cb091fdfa72bce2b59c7 (diff) | |
| download | php-upstream/5.3.2.tar.gz | |
Imported Upstream version 5.3.2upstream/5.3.2
Diffstat (limited to 'Zend')
121 files changed, 2816 insertions, 2207 deletions
diff --git a/Zend/acconfig.h b/Zend/acconfig.h index bb949a6cb..75d1cd82e 100644 --- a/Zend/acconfig.h +++ b/Zend/acconfig.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: acconfig.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: acconfig.h 293155 2010-01-05 20:46:53Z sebastian $ */ #if defined(__GNUC__) && __GNUC__ >= 4 # define ZEND_API __attribute__ ((visibility("default"))) diff --git a/Zend/header b/Zend/header index 68bf97b36..868606211 100644 --- a/Zend/header +++ b/Zend/header @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,4 +16,4 @@ +----------------------------------------------------------------------+ */ -/* $Id: header 272619 2009-01-02 20:45:43Z felipe $ */ +/* $Id: header 294437 2010-02-03 18:47:13Z pajoye $ */ diff --git a/Zend/tests/bug44827.phpt b/Zend/tests/bug44827.phpt new file mode 100644 index 000000000..a9f1d87d2 --- /dev/null +++ b/Zend/tests/bug44827.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #44827 (define() allows :: in constant names) +--FILE-- +<?php +define('foo::bar', 1); +define('::', 1); +?> +--EXPECTF-- +Warning: Class constants cannot be defined or redefined in %sbug44827.php on line %d + +Warning: Class constants cannot be defined or redefined in %sbug44827.php on line %d diff --git a/Zend/tests/bug47516.phpt b/Zend/tests/bug47516.phpt index 66304fe3b..a9a20710d 100644 --- a/Zend/tests/bug47516.phpt +++ b/Zend/tests/bug47516.phpt @@ -30,7 +30,7 @@ ppp echo "$htm\n"; ?> ---EXPECT--- +--EXPECT-- abc abc abc diff --git a/Zend/tests/bug48667_1.phpt b/Zend/tests/bug48667_1.phpt new file mode 100644 index 000000000..2d94aed2b --- /dev/null +++ b/Zend/tests/bug48667_1.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #48667 (Implementing both iterator and iteratoraggregate) +--FILE-- +<?php + +abstract class A implements Iterator, IteratorAggregate { } + +?> +--EXPECTF-- +Fatal error: Class A cannot implement both IteratorAggregate and Iterator at the same time in %s on line %d diff --git a/Zend/tests/bug48667_2.phpt b/Zend/tests/bug48667_2.phpt new file mode 100644 index 000000000..57cd5eb8b --- /dev/null +++ b/Zend/tests/bug48667_2.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #48667 (Implementing both iterator and iteratoraggregate) +--FILE-- +<?php + +abstract class A implements IteratorAggregate, Iterator { } + +?> +--EXPECTF-- +Fatal error: Class A cannot implement both Iterator and IteratorAggregate at the same time in %s on line %d diff --git a/Zend/tests/bug49472.phpt b/Zend/tests/bug49472.phpt new file mode 100644 index 000000000..1803d1848 --- /dev/null +++ b/Zend/tests/bug49472.phpt @@ -0,0 +1,27 @@ +--TEST-- +Bug #49472 (Constants defined in Interfaces can be overridden) +--FILE-- +<?php + +interface ia { + const c = 'Sea'; + const y = 2; +} + +class Foo implements ia { +} + +class FooBar extends Foo implements ia { + const x = 1; + const c = 'Ocean'; + + public function show() { + return ia::c; + } +} + +new FooBar; + +?> +--EXPECTF-- +Fatal error: Cannot inherit previously-inherited or override constant c from interface ia in %s on line %d diff --git a/Zend/tests/bug49866.phpt b/Zend/tests/bug49866.phpt new file mode 100644 index 000000000..7fbc0d802 --- /dev/null +++ b/Zend/tests/bug49866.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #49866 (Making reference on string offsets crashes PHP) +--FILE-- +<?php +$a = "string"; +$b = &$a[1]; +$b = "f"; +echo $a; +--EXPECTF-- +Fatal error: Cannot create references to/from string offsets nor overloaded objects in %sbug49866.php on line 3 diff --git a/Zend/tests/bug50005.phpt b/Zend/tests/bug50005.phpt new file mode 100644 index 000000000..bf4fbbda6 --- /dev/null +++ b/Zend/tests/bug50005.phpt @@ -0,0 +1,19 @@ +--TEST-- +Bug #50005 (Throwing through Reflection modified Exception object makes segmentation fault) +--FILE-- +<?php + +class a extends exception { + public function __construct() { + $this->file = null; + } +} + +throw new a; + +?> +--EXPECTF-- +Fatal error: Uncaught exception 'a' in :%d +Stack trace: +#0 {main} + thrown in Unknown on line %d diff --git a/Zend/tests/bug50146.phpt b/Zend/tests/bug50146.phpt new file mode 100644 index 000000000..7aa26a650 --- /dev/null +++ b/Zend/tests/bug50146.phpt @@ -0,0 +1,20 @@ +--TEST-- +Bug #50146 (property_exists: Closure object cannot have properties) +--FILE-- +<?php + +$obj = function(){}; + +var_dump(property_exists($obj,'foo')); + +$ref = new ReflectionObject($obj); +var_dump($ref->hasProperty('b')); + +var_dump(isset($obj->a)); + +?> +--EXPECTF-- +bool(false) +bool(false) + +Catchable fatal error: Closure object cannot have properties in %s on line %d diff --git a/Zend/tests/bug50174.phpt b/Zend/tests/bug50174.phpt new file mode 100644 index 000000000..fef65136b --- /dev/null +++ b/Zend/tests/bug50174.phpt @@ -0,0 +1,33 @@ +--TEST-- +Bug #50174 (Incorrectly matched docComment) +--SKIPIF-- +<?php if (!extension_loaded('reflection') || !extension_loaded('spl')) print "skip"; ?> +--FILE-- +<?php + +class TestClass +{ + /** const comment */ + const C = 0; + + function x() {} +} + +$rm = new ReflectionMethod('TestClass', 'x'); +var_dump($rm->getDocComment()); + +class TestClass2 +{ + /** const comment */ + const C = 0; + + public $x; +} + +$rp = new ReflectionProperty('TestClass2', 'x'); +var_dump($rp->getDocComment()); + +?> +--EXPECT-- +bool(false) +bool(false) diff --git a/Zend/tests/bug50255.phpt b/Zend/tests/bug50255.phpt new file mode 100644 index 000000000..9f390af7c --- /dev/null +++ b/Zend/tests/bug50255.phpt @@ -0,0 +1,30 @@ +--TEST-- +Bug #50255 (isset() and empty() silently casts array to object) +--FILE-- +<?php + +$arr = array('foo' => 'bar'); + +print "isset\n"; +var_dump(isset($arr->foo)); +var_dump(isset($arr->bar)); +var_dump(isset($arr['foo'])); +var_dump(isset($arr['bar'])); +print "empty\n"; +var_dump(empty($arr->foo)); +var_dump(empty($arr->bar)); +var_dump(empty($arr['foo'])); +var_dump(empty($arr['bar'])); + +?> +--EXPECT-- +isset +bool(false) +bool(false) +bool(true) +bool(false) +empty +bool(true) +bool(true) +bool(false) +bool(true) diff --git a/Zend/tests/bug50261.phpt b/Zend/tests/bug50261.phpt new file mode 100644 index 000000000..271a2c480 --- /dev/null +++ b/Zend/tests/bug50261.phpt @@ -0,0 +1,38 @@ +--TEST-- +Bug #50261 (Crash When Calling Parent Constructor with call_user_func()) +--FILE-- +<?php + +class testClass { + function testClass($x) { + echo __METHOD__, " (". $x . ")\n"; + } +} + +class testClass2 extends testClass { + function __construct() { + static $x = 0; + + if ($x) { + print "Infinite loop...\n"; + } else { + $x++; + + parent::__construct(1); + testclass::__construct(2); + call_user_func(array('parent', '__construct'), 3); + call_user_func(array('testclass', '__construct'), 4); + call_user_func(array('testclass', 'testclass'), 5); + } + } +} + +new testClass2; + +?> +--EXPECT-- +testClass::testClass (1) +testClass::testClass (2) +testClass::testClass (3) +testClass::testClass (4) +testClass::testClass (5) diff --git a/Zend/tests/bug50394.phpt b/Zend/tests/bug50394.phpt new file mode 100644 index 000000000..e6069d366 --- /dev/null +++ b/Zend/tests/bug50394.phpt @@ -0,0 +1,24 @@ +--TEST-- +Bug #50394: Reference argument converted to value in __call +--FILE-- +<?php +function inc( &$x ) { $x++; } + +class Proxy { + function __call( $name, $args ) { + echo "$name called!\n"; + call_user_func_array( 'inc', $args ); + } +} + +$arg = 1; +$args = array( &$arg ); +$proxy = new Proxy; +call_user_func_array( array( $proxy, 'bar' ), $args ); +call_user_func_array( array( $proxy, 'bar' ), array(&$arg) ); +var_dump($arg); +--EXPECT-- +bar called! +bar called! +int(3) + diff --git a/Zend/tests/call_user_func_004.phpt b/Zend/tests/call_user_func_004.phpt new file mode 100644 index 000000000..4885c4d3f --- /dev/null +++ b/Zend/tests/call_user_func_004.phpt @@ -0,0 +1,18 @@ +--TEST-- +Calling non-static method with call_user_func() +--FILE-- +<?php + +class foo { + public function teste() { + $this->a = 1; + } +} + +call_user_func(array('foo', 'teste')); + +?> +--EXPECTF-- +Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method foo::teste() should not be called statically in %s on line %d + +Fatal error: Using $this when not in object context in %s on line %d diff --git a/Zend/tests/call_user_func_005.phpt b/Zend/tests/call_user_func_005.phpt new file mode 100644 index 000000000..6c1fa1973 --- /dev/null +++ b/Zend/tests/call_user_func_005.phpt @@ -0,0 +1,35 @@ +--TEST-- +Passing Closure as parameter to an non-existent function +--FILE-- +<?php + +class foo { + public static function __callstatic($x, $y) { + var_dump($x,$y); + return 1; + } + + public function teste() { + return foo::x(function &($a=1,$b) { }); + } +} + +var_dump(call_user_func(array('foo', 'teste'))); + +?> +--EXPECTF-- +Strict Standards: call_user_func() expects parameter 1 to be a valid callback, non-static method foo::teste() should not be called statically in %s on line %d +%string|unicode%(1) "x" +array(1) { + [0]=> + object(Closure)#%d (1) { + ["parameter"]=> + array(2) { + ["$a"]=> + string(10) "<required>" + ["$b"]=> + string(10) "<required>" + } + } +} +int(1) diff --git a/Zend/tests/call_with_refs.phpt b/Zend/tests/call_with_refs.phpt new file mode 100644 index 000000000..acad134f8 --- /dev/null +++ b/Zend/tests/call_with_refs.phpt @@ -0,0 +1,18 @@ +--TEST-- +Check call to non-ref function with call-time refs +--FILE-- +<?php +function my_errorhandler($errno,$errormsg) { + global $my_var; + $my_var=0x12345; + echo $errormsg."\n"; + return true; +} +$oldhandler = set_error_handler("my_errorhandler"); +$my_var = str_repeat("A",64); +$data = call_user_func_array("substr_replace",array(&$my_var, new StdClass(),1)); +echo "OK!"; +--EXPECT-- +Object of class stdClass could not be converted to string +Object of class stdClass to string conversion +OK! diff --git a/Zend/tests/closure_035.phpt b/Zend/tests/closure_035.phpt new file mode 100644 index 000000000..ac8b4caea --- /dev/null +++ b/Zend/tests/closure_035.phpt @@ -0,0 +1,31 @@ +--TEST-- +Testing recursion detection with Closures +--FILE-- +<?php + +$x = function () use (&$x) { + $h = function () use ($x) { + var_dump($x); + return 1; + }; + return $h(); +}; + +var_dump($x()); + +?> +--EXPECTF-- +object(Closure)#%d (1) { + ["static"]=> + array(1) { + [%u|b%"x"]=> + &object(Closure)#%d (1) { + ["static"]=> + array(1) { + [%u|b%"x"]=> + *RECURSION* + } + } + } +} +int(1) diff --git a/Zend/tests/errmsg_025.phpt b/Zend/tests/errmsg_025.phpt index d853f7342..014b40947 100644 --- a/Zend/tests/errmsg_025.phpt +++ b/Zend/tests/errmsg_025.phpt @@ -16,5 +16,5 @@ class test implements test1, test2 { echo "Done\n"; ?> ---EXPECTF-- -Fatal error: Cannot inherit previously-inherited constant FOO from interface test2 in %s on line %d +--EXPECTF-- +Fatal error: Cannot inherit previously-inherited or override constant FOO from interface test2 in %s on line %d diff --git a/Zend/tests/inter_01.phpt b/Zend/tests/inter_01.phpt index db2e86d20..c73397c91 100644 --- a/Zend/tests/inter_01.phpt +++ b/Zend/tests/inter_01.phpt @@ -15,4 +15,4 @@ class foobar implements foo { } ?> --EXPECTF-- -Fatal error: Cannot inherit previously-inherited constant foo from interface foo in %s on line %d +Fatal error: Cannot inherit previously-inherited or override constant foo from interface foo in %s on line %d diff --git a/Zend/tests/unset_cv05.phpt b/Zend/tests/unset_cv05.phpt index 24f9c0091..8e3c6349b 100644 --- a/Zend/tests/unset_cv05.phpt +++ b/Zend/tests/unset_cv05.phpt @@ -19,7 +19,7 @@ echo $HTTP_SESSION_VARS; echo "\nok\n"; ?> --EXPECTF-- -PHP Warning: Directive 'register_long_arrays' is deprecated in PHP %d.%d and greater in Unknown on line 0 +Warning: Directive 'register_long_arrays' is deprecated in PHP %d.%d and greater in Unknown on line 0 ok Warning: session_start(): Cannot send session cookie - headers already sent by (output started at %sunset_cv05.php on line %d diff --git a/Zend/tests/unset_cv06.phpt b/Zend/tests/unset_cv06.phpt index b6825947b..b1ef0cc2a 100644 --- a/Zend/tests/unset_cv06.phpt +++ b/Zend/tests/unset_cv06.phpt @@ -19,7 +19,7 @@ echo $x; echo "ok\n"; ?> --EXPECTF-- -PHP Warning: Directive 'register_globals' is deprecated in PHP %d.%d and greater in Unknown on line 0 +Warning: Directive 'register_globals' is deprecated in PHP %d.%d and greater in Unknown on line 0 1 Deprecated: Function session_register() is deprecated in %s on line %d diff --git a/Zend/zend.c b/Zend/zend.c index df9a86cbd..cd8ba7776 100644 --- a/Zend/zend.c +++ b/Zend/zend.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c 290026 2009-10-28 11:08:33Z pajoye $ */ +/* $Id: zend.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_extensions.h" @@ -114,7 +114,7 @@ ZEND_API zval zval_used_for_init; /* True global variable */ /* version information */ static char *zend_version_info; static uint zend_version_info_length; -#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2009 Zend Technologies\n" +#define ZEND_CORE_VERSION_INFO "Zend Engine v" ZEND_VERSION ", Copyright (c) 1998-2010 Zend Technologies\n" #define PRINT_ZVAL_INDENT 4 static void print_hash(zend_write_func_t write_func, HashTable *ht, int indent, zend_bool is_object TSRMLS_DC) /* {{{ */ diff --git a/Zend/zend.h b/Zend/zend.h index 58f0e5984..3332e7c93 100644 --- a/Zend/zend.h +++ b/Zend/zend.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.h 286859 2009-08-06 01:33:54Z scottmac $ */ +/* $Id: zend.h 294459 2010-02-03 20:44:43Z pajoye $ */ #ifndef ZEND_H #define ZEND_H @@ -166,7 +166,7 @@ char *alloca (); # define ZEND_ATTRIBUTE_DEPRECATED #endif -#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3400 && defined(__i386__) +#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3004 && defined(__i386__) # define ZEND_FASTCALL __attribute__((fastcall)) #elif defined(_MSC_VER) && defined(_M_IX86) # define ZEND_FASTCALL __fastcall @@ -174,7 +174,7 @@ char *alloca (); # define ZEND_FASTCALL #endif -#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3400 +#if defined(__GNUC__) && ZEND_GCC_VERSION >= 3004 #else # define __restrict__ #endif @@ -710,6 +710,11 @@ END_EXTERN_C() FREE_ZVAL(pzv); \ } \ INIT_PZVAL(&(zv)); + +#define MAKE_COPY_ZVAL(ppzv, pzv) \ + *(pzv) = **(ppzv); \ + zval_copy_ctor((pzv)); \ + INIT_PZVAL((pzv)); #define REPLACE_ZVAL_VALUE(ppzv_dest, pzv_src, copy) { \ int is_ref, refcount; \ diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 6a5c5f87a..6d939e682 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c 289431 2009-10-09 17:21:20Z pajoye $ */ +/* $Id: zend_API.c 293980 2010-01-25 14:02:09Z johannes $ */ #include "zend.h" #include "zend_execute.h" @@ -923,7 +923,7 @@ ZEND_API int zend_parse_method_parameters_ex(int flags, int num_args TSRMLS_DC, RETURN_IF_ZERO_ARGS(num_args, p, quiet); va_start(va, type_spec); - retval = zend_parse_va_args(num_args, type_spec, &va, 0 TSRMLS_CC); + retval = zend_parse_va_args(num_args, type_spec, &va, flags TSRMLS_CC); va_end(va); } else { p++; @@ -2335,12 +2335,13 @@ ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_ } /* }}} */ -static int zend_is_callable_check_class(const char *name, int name_len, zend_fcall_info_cache *fcc, char **error TSRMLS_DC) /* {{{ */ +static int zend_is_callable_check_class(const char *name, int name_len, zend_fcall_info_cache *fcc, int *strict_class, char **error TSRMLS_DC) /* {{{ */ { int ret = 0; zend_class_entry **pce; char *lcname = zend_str_tolower_dup(name, name_len); + *strict_class = 0; if (name_len == sizeof("self") - 1 && !memcmp(lcname, "self", sizeof("self") - 1)) { if (!EG(scope)) { @@ -2365,6 +2366,7 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca if (!fcc->object_ptr) { fcc->object_ptr = EG(This); } + *strict_class = 1; ret = 1; } } else if (name_len == sizeof("static") - 1 && @@ -2377,6 +2379,7 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca if (!fcc->object_ptr) { fcc->object_ptr = EG(This); } + *strict_class = 1; ret = 1; } } else if (zend_lookup_class_ex(name, name_len, 1, &pce TSRMLS_CC) == SUCCESS) { @@ -2391,6 +2394,7 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } else { fcc->called_scope = fcc->object_ptr ? Z_OBJCE_P(fcc->object_ptr) : fcc->calling_scope; } + *strict_class = 1; ret = 1; } else { if (error) zend_spprintf(error, 0, "class '%.*s' not found", name_len, name); @@ -2401,7 +2405,7 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca /* }}} */ -static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, char **error TSRMLS_DC) /* {{{ */ +static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, int strict_class, char **error TSRMLS_DC) /* {{{ */ { zend_class_entry *ce_org = fcc->calling_scope; int retval = 0; @@ -2459,7 +2463,7 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca EG(scope) = ce_org; } - if (!zend_is_callable_check_class(Z_STRVAL_P(callable), clen, fcc, error TSRMLS_CC)) { + if (!zend_is_callable_check_class(Z_STRVAL_P(callable), clen, fcc, &strict_class, error TSRMLS_CC)) { EG(scope) = last_scope; return 0; } @@ -2486,7 +2490,15 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } lmname = zend_str_tolower_dup(mname, mlen); - if (zend_hash_find(ftable, lmname, mlen+1, (void**)&fcc->function_handler) == SUCCESS) { + if (strict_class && + fcc->calling_scope && + mlen == sizeof(ZEND_CONSTRUCTOR_FUNC_NAME)-1 && + !memcmp(lmname, ZEND_CONSTRUCTOR_FUNC_NAME, sizeof(ZEND_CONSTRUCTOR_FUNC_NAME))) { + fcc->function_handler = fcc->calling_scope->constructor; + if (fcc->function_handler) { + retval = 1; + } + } else if (zend_hash_find(ftable, lmname, mlen+1, (void**)&fcc->function_handler) == SUCCESS) { retval = 1; if ((fcc->function_handler->op_array.fn_flags & ZEND_ACC_CHANGED) && EG(scope) && @@ -2520,11 +2532,36 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca } else { get_function_via_handler: if (fcc->object_ptr && fcc->calling_scope == ce_org) { - if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) { + if (strict_class && ce_org->__call) { + fcc->function_handler = emalloc(sizeof(zend_internal_function)); + fcc->function_handler->internal_function.type = ZEND_INTERNAL_FUNCTION; + fcc->function_handler->internal_function.module = ce_org->module; + fcc->function_handler->internal_function.handler = zend_std_call_user_call; + fcc->function_handler->internal_function.arg_info = NULL; + fcc->function_handler->internal_function.num_args = 0; + fcc->function_handler->internal_function.scope = ce_org; + fcc->function_handler->internal_function.fn_flags = ZEND_ACC_CALL_VIA_HANDLER; + fcc->function_handler->internal_function.function_name = estrndup(mname, mlen); + fcc->function_handler->internal_function.pass_rest_by_reference = 0; + fcc->function_handler->internal_function.return_reference = ZEND_RETURN_VALUE; + call_via_handler = 1; + retval = 1; + } else if (Z_OBJ_HT_P(fcc->object_ptr)->get_method) { fcc->function_handler = Z_OBJ_HT_P(fcc->object_ptr)->get_method(&fcc->object_ptr, mname, mlen TSRMLS_CC); if (fcc->function_handler) { - retval = 1; - call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0; + if (strict_class && + (!fcc->function_handler->common.scope || + !instanceof_function(ce_org, fcc->function_handler->common.scope TSRMLS_CC))) { + if ((fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0) { + if (fcc->function_handler->type != ZEND_OVERLOADED_FUNCTION) { + efree(fcc->function_handler->common.function_name); + } + efree(fcc->function_handler); + } + } else { + retval = 1; + call_via_handler = (fcc->function_handler->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) != 0; + } } } } else if (fcc->calling_scope) { @@ -2680,7 +2717,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch return 1; } - ret = zend_is_callable_check_func(check_flags, callable, fcc, error TSRMLS_CC); + ret = zend_is_callable_check_func(check_flags, callable, fcc, 0, error TSRMLS_CC); if (fcc == &fcc_local && fcc->function_handler && ((fcc->function_handler->type == ZEND_INTERNAL_FUNCTION && @@ -2698,6 +2735,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch { zval **method = NULL; zval **obj = NULL; + int strict_class = 0; if (zend_hash_num_elements(Z_ARRVAL_P(callable)) == 2) { zend_hash_index_find(Z_ARRVAL_P(callable), 0, (void **) &obj); @@ -2725,7 +2763,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch return 1; } - if (!zend_is_callable_check_class(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), fcc, error TSRMLS_CC)) { + if (!zend_is_callable_check_class(Z_STRVAL_PP(obj), Z_STRLEN_PP(obj), fcc, &strict_class, error TSRMLS_CC)) { return 0; } @@ -2757,7 +2795,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, zval *object_ptr, uint ch } } - ret = zend_is_callable_check_func(check_flags, *method, fcc, error TSRMLS_CC); + ret = zend_is_callable_check_func(check_flags, *method, fcc, strict_class, error TSRMLS_CC); if (fcc == &fcc_local && fcc->function_handler && ((fcc->function_handler->type == ZEND_INTERNAL_FUNCTION && diff --git a/Zend/zend_API.h b/Zend/zend_API.h index 032f83017..73689583a 100644 --- a/Zend/zend_API.h +++ b/Zend/zend_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.h 286469 2009-07-28 21:12:42Z jani $ */ +/* $Id: zend_API.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_API_H #define ZEND_API_H diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c index 683ccf960..dac54543d 100644 --- a/Zend/zend_alloc.c +++ b/Zend/zend_alloc.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.c 287992 2009-09-03 14:33:11Z dmitry $ */ +/* $Id: zend_alloc.c 294518 2010-02-04 09:48:02Z pajoye $ */ #include "zend.h" #include "zend_alloc.h" @@ -84,6 +84,10 @@ static void zend_mm_panic(const char *message) __attribute__ ((noreturn)); static void zend_mm_panic(const char *message) { fprintf(stderr, "%s\n", message); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif #if ZEND_DEBUG && defined(HAVE_KILL) && defined(HAVE_GETPID) kill(getpid(), SIGSEGV); #endif @@ -940,15 +944,27 @@ static void zend_mm_free_cache(zend_mm_heap *heap) #endif #if ZEND_MM_HEAP_PROTECTION || ZEND_MM_COOKIES -static void zend_mm_random(unsigned char *buf, size_t size) +static void zend_mm_random(unsigned char *buf, size_t size) /* {{{ */ { size_t i = 0; unsigned char t; #ifdef ZEND_WIN32 HCRYPTPROV hCryptProv; - - if (CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) { + int has_context = 0; + + if (!CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, 0)) { + /* Could mean that the key container does not exist, let try + again by asking for a new one */ + if (GetLastError() == NTE_BAD_KEYSET) { + if (CryptAcquireContext(&hCryptProv, NULL, NULL, PROV_RSA_FULL, CRYPT_NEWKEYSET)) { + has_context = 1; + } + } + } else { + has_context = 1; + } + if (has_context) { do { BOOL ret = CryptGenRandom(hCryptProv, size, buf); CryptReleaseContext(hCryptProv, 0); @@ -957,7 +973,7 @@ static void zend_mm_random(unsigned char *buf, size_t size) i++; } if (i == size) { - return; + return; } } } while (0); @@ -986,6 +1002,7 @@ static void zend_mm_random(unsigned char *buf, size_t size) t = buf[i++] << 1; } } +/* }}} */ #endif /* Notes: @@ -1031,11 +1048,19 @@ ZEND_API zend_mm_heap *zend_mm_startup_ex(const zend_mm_mem_handlers *handlers, if (zend_mm_low_bit(block_size) != zend_mm_high_bit(block_size)) { fprintf(stderr, "'block_size' must be a power of two\n"); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif exit(255); } storage = handlers->init(params); if (!storage) { fprintf(stderr, "Cannot initialize zend_mm storage [%s]\n", handlers->name); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif exit(255); } storage->handlers = handlers; @@ -1118,9 +1143,17 @@ ZEND_API zend_mm_heap *zend_mm_startup(void) if (!mem_handlers[i].name) { fprintf(stderr, "Wrong or unsupported zend_mm storage type '%s'\n", mem_type); fprintf(stderr, " supported types:\n"); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif for (i = 0; mem_handlers[i].name; i++) { fprintf(stderr, " '%s'\n", mem_handlers[i].name); } +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif exit(255); } } @@ -1131,9 +1164,17 @@ ZEND_API zend_mm_heap *zend_mm_startup(void) seg_size = zend_atoi(tmp, 0); if (zend_mm_low_bit(seg_size) != zend_mm_high_bit(seg_size)) { fprintf(stderr, "ZEND_MM_SEG_SIZE must be a power of two\n"); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif exit(255); } else if (seg_size < ZEND_MM_ALIGNED_SEGMENT_SIZE + ZEND_MM_ALIGNED_HEADER_SIZE) { fprintf(stderr, "ZEND_MM_SEG_SIZE is too small\n"); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif exit(255); } } else { @@ -1672,6 +1713,10 @@ static void zend_mm_safe_error(zend_mm_heap *heap, size); fprintf(stderr, " in %s on line %d\n", error_filename, error_lineno); } +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif } zend_end_try(); } else { heap->overflow = 2; diff --git a/Zend/zend_alloc.h b/Zend/zend_alloc.h index b1ecab948..ac64a3011 100644 --- a/Zend/zend_alloc.h +++ b/Zend/zend_alloc.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_alloc.h 287992 2009-09-03 14:33:11Z dmitry $ */ +/* $Id: zend_alloc.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_ALLOC_H #define ZEND_ALLOC_H diff --git a/Zend/zend_build.h b/Zend/zend_build.h index 4c81fccb7..2c821f353 100755 --- a/Zend/zend_build.h +++ b/Zend/zend_build.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c index ec29a4934..93dbe49ab 100644 --- a/Zend/zend_builtin_functions.c +++ b/Zend/zend_builtin_functions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.c 286878 2009-08-06 11:02:25Z jani $ */ +/* $Id: zend_builtin_functions.c 294034 2010-01-25 23:41:18Z johannes $ */ #include "zend.h" #include "zend_API.h" @@ -629,7 +629,6 @@ ZEND_FUNCTION(define) zend_bool non_cs = 0; int case_sensitive = CONST_CS; zend_constant c; - char *p; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|b", &name, &name_len, &val, &non_cs) == FAILURE) { return; @@ -640,31 +639,9 @@ ZEND_FUNCTION(define) } /* class constant, check if there is name and make sure class is valid & exists */ - if ((p = zend_memnstr(name, "::", sizeof("::") - 1, name + name_len))) { - char *class_name; - int found; - zend_class_entry **ce; - ALLOCA_FLAG(use_heap) - - if (p == (name + name_len - sizeof("::") + 1)) { - zend_error(E_WARNING, "Class constant must have a name"); - RETURN_FALSE; - } else if (p == name) { - zend_error(E_WARNING, "Missing class name"); - RETURN_FALSE; - } - - class_name = do_alloca((p - name + 1), use_heap); - zend_str_tolower_copy(class_name, name, (p - name)); - - found = zend_hash_find(EG(class_table), class_name, p - name + 1, (void **) &ce); - - if (found != SUCCESS) { - zend_error(E_WARNING, "Class '%s' does not exist", class_name); - free_alloca(class_name, use_heap); - RETURN_FALSE; - } - free_alloca(class_name, use_heap); + if (zend_memnstr(name, "::", sizeof("::") - 1, name + name_len)) { + zend_error(E_WARNING, "Class constants cannot be defined or redefined"); + RETURN_FALSE; } repeat: diff --git a/Zend/zend_builtin_functions.h b/Zend/zend_builtin_functions.h index aca6d77e8..03bfd37e5 100644 --- a/Zend/zend_builtin_functions.h +++ b/Zend/zend_builtin_functions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_builtin_functions.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_builtin_functions.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_BUILTIN_FUNCTIONS_H #define ZEND_BUILTIN_FUNCTIONS_H diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c index 96fc56748..a5a2f8472 100644 --- a/Zend/zend_closures.c +++ b/Zend/zend_closures.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_closures.c 287043 2009-08-10 15:18:13Z colder $ */ +/* $Id: zend_closures.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_API.h" @@ -152,7 +152,9 @@ static zval **zend_closure_get_property_ptr_ptr(zval *object, zval *member TSRML static int zend_closure_has_property(zval *object, zval *member, int has_set_exists TSRMLS_DC) /* {{{ */ { - ZEND_CLOSURE_PROPERTY_ERROR(); + if (has_set_exists != 2) { + ZEND_CLOSURE_PROPERTY_ERROR(); + } return 0; } /* }}} */ diff --git a/Zend/zend_closures.h b/Zend/zend_closures.h index 64c476b48..c51079e21 100644 --- a/Zend/zend_closures.h +++ b/Zend/zend_closures.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_closures.h 274683 2009-01-26 22:54:34Z cseiler $ */ +/* $Id: zend_closures.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_CLOSURES_H #define ZEND_CLOSURES_H diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index a02278f27..791a08ed3 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.c 289432 2009-10-09 17:23:01Z pajoye $ */ +/* $Id: zend_compile.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include <zend_language_parser.h> #include "zend.h" @@ -161,6 +161,7 @@ void zend_init_compiler_data_structures(TSRMLS_D) /* {{{ */ CG(encoding_detector) = NULL; CG(encoding_converter) = NULL; CG(encoding_oddlen) = NULL; + CG(encoding_declared) = 0; #endif /* ZEND_MULTIBYTE */ } /* }}} */ @@ -2875,8 +2876,8 @@ static zend_bool do_inherit_constant_check(HashTable *child_constants_table, con zval **old_constant; if (zend_hash_quick_find(child_constants_table, hash_key->arKey, hash_key->nKeyLength, hash_key->h, (void**)&old_constant) == SUCCESS) { - if (*old_constant != *parent_constant) { - zend_error(E_COMPILE_ERROR, "Cannot inherit previously-inherited constant %s from interface %s", hash_key->arKey, iface->name); + if (*old_constant != *parent_constant) { + zend_error(E_COMPILE_ERROR, "Cannot inherit previously-inherited or override constant %s from interface %s", hash_key->arKey, iface->name); } return 0; } @@ -2884,6 +2885,16 @@ static zend_bool do_inherit_constant_check(HashTable *child_constants_table, con } /* }}} */ +static int do_interface_constant_check(zval **val TSRMLS_DC, int num_args, va_list args, const zend_hash_key *key) /* {{{ */ +{ + zend_class_entry **iface = va_arg(args, zend_class_entry**); + + do_inherit_constant_check(&(*iface)->constants_table, (const zval **) val, key, *iface); + + return ZEND_HASH_APPLY_KEEP; +} +/* }}} */ + ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry *iface TSRMLS_DC) /* {{{ */ { zend_uint i, ignore = 0; @@ -2902,7 +2913,10 @@ ZEND_API void zend_do_implement_interface(zend_class_entry *ce, zend_class_entry } } } - if (!ignore) { + if (ignore) { + /* Check for attempt to redeclare interface constants */ + zend_hash_apply_with_arguments(&ce->constants_table TSRMLS_CC, (apply_func_args_t) do_interface_constant_check, 1, &iface); + } else { if (ce->num_interfaces >= current_iface_num) { if (ce->type == ZEND_INTERNAL_CLASS) { ce->interfaces = (zend_class_entry **) realloc(ce->interfaces, sizeof(zend_class_entry *) * (++current_iface_num)); @@ -3658,6 +3672,12 @@ void zend_do_declare_class_constant(znode *var_name, const znode *value TSRMLS_D zend_error(E_COMPILE_ERROR, "Cannot redefine class constant %s::%s", CG(active_class_entry)->name, var_name->u.constant.value.str.val); } FREE_PNODE(var_name); + + if (CG(doc_comment)) { + efree(CG(doc_comment)); + CG(doc_comment) = NULL; + CG(doc_comment_len) = 0; + } } /* }}} */ @@ -4644,7 +4664,7 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC) /* {{{ */ --num; } - if (num > 0 || CG(encoding_declared)) { + if (num > 0) { zend_error(E_COMPILE_ERROR, "Encoding declaration pragma must be the very first statement in the script"); } } diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 3ccd199ba..6b24d09b7 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_compile.h 281737 2009-06-05 23:20:59Z shire $ */ +/* $Id: zend_compile.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_COMPILE_H #define ZEND_COMPILE_H diff --git a/Zend/zend_config.nw.h b/Zend/zend_config.nw.h index ce2a49e20..14467c2d6 100644 --- a/Zend/zend_config.nw.h +++ b/Zend/zend_config.nw.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.nw.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_config.nw.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_CONFIG_NW_H #define ZEND_CONFIG_NW_H diff --git a/Zend/zend_config.w32.h b/Zend/zend_config.w32.h index 57f08b168..4313ec185 100644 --- a/Zend/zend_config.w32.h +++ b/Zend/zend_config.w32.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_config.w32.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_config.w32.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_CONFIG_W32_H #define ZEND_CONFIG_W32_H diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index d7f13de57..2713019cb 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.c 273405 2009-01-12 21:54:37Z stas $ */ +/* $Id: zend_constants.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_constants.h" diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h index 0ae833783..b041c984b 100644 --- a/Zend/zend_constants.h +++ b/Zend/zend_constants.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_constants.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_constants.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_CONSTANTS_H #define ZEND_CONSTANTS_H diff --git a/Zend/zend_default_classes.c b/Zend/zend_default_classes.c index 52c9588a7..d36dabb60 100644 --- a/Zend/zend_default_classes.c +++ b/Zend/zend_default_classes.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_default_classes.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_default_classes.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_dynamic_array.c b/Zend/zend_dynamic_array.c index 3c98ffaae..b6ad4193d 100644 --- a/Zend/zend_dynamic_array.c +++ b/Zend/zend_dynamic_array.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_dynamic_array.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_dynamic_array.h b/Zend/zend_dynamic_array.h index b153a3469..c0e22f6d2 100644 --- a/Zend/zend_dynamic_array.h +++ b/Zend/zend_dynamic_array.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_dynamic_array.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_dynamic_array.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_DYNAMIC_ARRAY_H #define ZEND_DYNAMIC_ARRAY_H diff --git a/Zend/zend_errors.h b/Zend/zend_errors.h index dbfba460b..df5da6ed5 100644 --- a/Zend/zend_errors.h +++ b/Zend/zend_errors.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_errors.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_errors.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_ERRORS_H #define ZEND_ERRORS_H diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 6c3560d05..fcd9f2551 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.c 280362 2009-05-11 15:03:47Z felipe $ */ +/* $Id: zend_exceptions.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_exceptions.h b/Zend/zend_exceptions.h index 28a9be88b..ee2ced932 100644 --- a/Zend/zend_exceptions.h +++ b/Zend/zend_exceptions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_exceptions.h 272584 2009-01-02 13:14:49Z helly $ */ +/* $Id: zend_exceptions.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_EXCEPTIONS_H #define ZEND_EXCEPTIONS_H diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 696112f52..e20312ed4 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c 281670 2009-06-04 18:20:45Z mattwil $ */ +/* $Id: zend_execute.c 294505 2010-02-04 09:13:14Z pajoye $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -1232,6 +1232,10 @@ static int zend_check_symbol(zval **pz TSRMLS_DC) { if (Z_TYPE_PP(pz) > 9) { fprintf(stderr, "Warning! %x has invalid type!\n", *pz); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif } else if (Z_TYPE_PP(pz) == IS_ARRAY) { zend_hash_apply(Z_ARRVAL_PP(pz), (apply_func_t) zend_check_symbol TSRMLS_CC); } else if (Z_TYPE_PP(pz) == IS_OBJECT) { diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h index 6a1f06ab3..6ea325f8e 100644 --- a/Zend/zend_execute.h +++ b/Zend/zend_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.h 287992 2009-09-03 14:33:11Z dmitry $ */ +/* $Id: zend_execute.h 294526 2010-02-04 10:21:05Z pajoye $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H @@ -228,7 +228,7 @@ static inline void *zend_vm_stack_alloc(size_t size TSRMLS_DC) int extra = (ZEND_MM_ALIGNMENT - ((zend_uintptr_t)EG(argument_stack)->top & (ZEND_MM_ALIGNMENT - 1))) / sizeof(void*); if (UNEXPECTED(size + extra + ZEND_MM_ALIGNED_SIZE(sizeof(void*)) / sizeof(void*) > - EG(argument_stack)->end - EG(argument_stack)->top)) { + (zend_uintptr_t)(EG(argument_stack)->end - EG(argument_stack)->top))) { zend_vm_stack_extend(size TSRMLS_CC); } else { void **old_top = EG(argument_stack)->top; diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c index 88df13e2c..849391bef 100644 --- a/Zend/zend_execute_API.c +++ b/Zend/zend_execute_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c 287466 2009-08-18 20:51:49Z stas $ */ +/* $Id: zend_execute_API.c 294505 2010-02-04 09:13:14Z pajoye $ */ #include <stdio.h> #include <signal.h> @@ -74,6 +74,10 @@ static void zend_handle_sigsegv(int dummy) /* {{{ */ get_active_function_name(TSRMLS_C), zend_get_executed_filename(TSRMLS_C), zend_get_executed_lineno(TSRMLS_C)); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif } if (original_sigsegv_handler!=zend_handle_sigsegv) { original_sigsegv_handler(dummy); @@ -837,7 +841,8 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS for (i=0; i<fci->param_count; i++) { zval *param; - if(EX(function_state).function->type == ZEND_INTERNAL_FUNCTION + if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION + && (EX(function_state).function->common.fn_flags & ZEND_ACC_CALL_VIA_HANDLER) == 0 && !ARG_SHOULD_BE_SENT_BY_REF(EX(function_state).function, i + 1) && PZVAL_IS_REF(*fci->params[i])) { SEPARATE_ZVAL(fci->params[i]); @@ -1481,7 +1486,7 @@ void zend_unset_timeout(TSRMLS_D) /* {{{ */ } #else # ifdef HAVE_SETITIMER - { + if (EG(timeout_seconds)) { struct itimerval no_timeout; no_timeout.it_value.tv_sec = no_timeout.it_value.tv_usec = no_timeout.it_interval.tv_sec = no_timeout.it_interval.tv_usec = 0; diff --git a/Zend/zend_extensions.c b/Zend/zend_extensions.c index 0a15a8cd0..cbe6b86a3 100644 --- a/Zend/zend_extensions.c +++ b/Zend/zend_extensions.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.c 286859 2009-08-06 01:33:54Z scottmac $ */ +/* $Id: zend_extensions.c 294505 2010-02-04 09:13:14Z pajoye $ */ #include "zend_extensions.h" @@ -35,6 +35,10 @@ int zend_load_extension(const char *path) if (!handle) { #ifndef ZEND_WIN32 fprintf(stderr, "Failed loading %s: %s\n", path, DL_ERROR()); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif #else fprintf(stderr, "Failed loading %s\n", path); #endif @@ -51,6 +55,10 @@ int zend_load_extension(const char *path) } if (!extension_version_info || !new_extension) { fprintf(stderr, "%s doesn't appear to be a valid Zend extension\n", path); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif DL_UNLOAD(handle); return FAILURE; } @@ -64,6 +72,10 @@ int zend_load_extension(const char *path) new_extension->name, extension_version_info->zend_extension_api_no, ZEND_EXTENSION_API_NO); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif DL_UNLOAD(handle); return FAILURE; } else if (extension_version_info->zend_extension_api_no < ZEND_EXTENSION_API_NO) { @@ -76,6 +88,10 @@ int zend_load_extension(const char *path) new_extension->author, new_extension->URL, new_extension->name); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif DL_UNLOAD(handle); return FAILURE; } @@ -83,6 +99,10 @@ int zend_load_extension(const char *path) (!new_extension->build_id_check || new_extension->build_id_check(ZEND_EXTENSION_BUILD_ID) != SUCCESS)) { fprintf(stderr, "Cannot load %s - it was built with configuration %s, whereas running engine is %s\n", new_extension->name, extension_version_info->build_id, ZEND_EXTENSION_BUILD_ID); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif DL_UNLOAD(handle); return FAILURE; } @@ -90,6 +110,10 @@ int zend_load_extension(const char *path) return zend_register_extension(new_extension, handle); #else fprintf(stderr, "Extensions are not supported on this platform.\n"); +/* See http://support.microsoft.com/kb/190351 */ +#ifdef PHP_WIN32 + fflush(stderr); +#endif return FAILURE; #endif } diff --git a/Zend/zend_extensions.h b/Zend/zend_extensions.h index 449f37bb6..98747cea2 100644 --- a/Zend/zend_extensions.h +++ b/Zend/zend_extensions.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_extensions.h 282827 2009-06-26 15:44:19Z johannes $ */ +/* $Id: zend_extensions.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_EXTENSIONS_H #define ZEND_EXTENSIONS_H diff --git a/Zend/zend_fast_cache.h b/Zend/zend_fast_cache.h index e67c09b5a..afc708ba4 100644 --- a/Zend/zend_fast_cache.h +++ b/Zend/zend_fast_cache.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_fast_cache.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_fast_cache.h 293155 2010-01-05 20:46:53Z sebastian $ */ #if 0 #ifndef ZEND_FAST_CACHE_H #define ZEND_FAST_CACHE_H diff --git a/Zend/zend_float.c b/Zend/zend_float.c index 263e0c7d2..d1ac404a9 100644 --- a/Zend/zend_float.c +++ b/Zend/zend_float.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_float.c 277413 2009-03-18 11:53:10Z dmitry $ */ +/* $Id: zend_float.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_float.h b/Zend/zend_float.h index 45acbfd80..9fdb469ec 100644 --- a/Zend/zend_float.h +++ b/Zend/zend_float.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_float.h 277398 2009-03-18 10:18:10Z dmitry $ */ +/* $Id: zend_float.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_FLOAT_H #define ZEND_FLOAT_H diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c index 0c3166815..6db682ef0 100644 --- a/Zend/zend_gc.c +++ b/Zend/zend_gc.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_gc.c 278220 2009-04-03 18:52:21Z dmitry $ */ +/* $Id: zend_gc.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_gc.h b/Zend/zend_gc.h index 5b99e976f..0fbc9f117 100644 --- a/Zend/zend_gc.h +++ b/Zend/zend_gc.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_gc.h 272619 2009-01-02 20:45:43Z felipe $ */ +/* $Id: zend_gc.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_GC_H #define ZEND_GC_H diff --git a/Zend/zend_globals.h b/Zend/zend_globals.h index d199019a0..f1f6c50b8 100644 --- a/Zend/zend_globals.h +++ b/Zend/zend_globals.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals.h 277761 2009-03-25 15:23:58Z dmitry $ */ +/* $Id: zend_globals.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H diff --git a/Zend/zend_globals_macros.h b/Zend/zend_globals_macros.h index 3175fc530..72ea598a1 100644 --- a/Zend/zend_globals_macros.h +++ b/Zend/zend_globals_macros.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals_macros.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_globals_macros.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_GLOBALS_MACROS_H #define ZEND_GLOBALS_MACROS_H diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c index e62ecbbf4..70d6bf71e 100644 --- a/Zend/zend_hash.c +++ b/Zend/zend_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.c 281778 2009-06-07 19:28:15Z mattwil $ */ +/* $Id: zend_hash.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h index a80cd563e..166003b1e 100644 --- a/Zend/zend_hash.h +++ b/Zend/zend_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_hash.h 281050 2009-05-25 01:18:00Z pollita $ */ +/* $Id: zend_hash.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_HASH_H #define ZEND_HASH_H diff --git a/Zend/zend_highlight.c b/Zend/zend_highlight.c index 60b2bc3da..769456540 100644 --- a/Zend/zend_highlight.c +++ b/Zend/zend_highlight.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.c 279941 2009-05-05 01:35:44Z mattwil $ */ +/* $Id: zend_highlight.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include <zend_language_parser.h> diff --git a/Zend/zend_highlight.h b/Zend/zend_highlight.h index 756175f39..3402f6fa6 100644 --- a/Zend/zend_highlight.h +++ b/Zend/zend_highlight.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_highlight.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_highlight.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_HIGHLIGHT_H #define ZEND_HIGHLIGHT_H diff --git a/Zend/zend_indent.c b/Zend/zend_indent.c index 32d99cbfd..7542e4897 100644 --- a/Zend/zend_indent.c +++ b/Zend/zend_indent.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_indent.c 293155 2010-01-05 20:46:53Z sebastian $ */ /* This indenter doesn't really work, it's here for no particular reason. */ diff --git a/Zend/zend_indent.h b/Zend/zend_indent.h index cc00d11c6..261516473 100644 --- a/Zend/zend_indent.h +++ b/Zend/zend_indent.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_indent.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_indent.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_INDENT_H #define ZEND_INDENT_H diff --git a/Zend/zend_ini.c b/Zend/zend_ini.c index 6914d7bf1..ef6ef3753 100644 --- a/Zend/zend_ini.c +++ b/Zend/zend_ini.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.c 284254 2009-07-17 11:49:50Z jani $ */ +/* $Id: zend_ini.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_qsort.h" diff --git a/Zend/zend_ini.h b/Zend/zend_ini.h index 7f866d9ae..4b4ab02cb 100644 --- a/Zend/zend_ini.h +++ b/Zend/zend_ini.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_ini.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_INI_H #define ZEND_INI_H diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c index cfaf58304..d4e4084f8 100644 --- a/Zend/zend_ini_parser.c +++ b/Zend/zend_ini_parser.c @@ -116,7 +116,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -131,7 +131,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y 272368 2008-12-31 11:13:47Z sebastian $ */ +/* $Id: zend_ini_parser.y 293154 2010-01-05 20:40:23Z sebastian $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y index 121236dca..e4755fb0f 100644 --- a/Zend/zend_ini_parser.y +++ b/Zend/zend_ini_parser.y @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_parser.y 272368 2008-12-31 11:13:47Z sebastian $ */ +/* $Id: zend_ini_parser.y 293154 2010-01-05 20:40:23Z sebastian $ */ #define DEBUG_CFG_PARSER 0 diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c index b09018e98..d05d78ab6 100644 --- a/Zend/zend_ini_scanner.c +++ b/Zend/zend_ini_scanner.c @@ -1,10 +1,10 @@ -/* Generated by re2c 0.13.5 on Fri Aug 7 18:29:12 2009 */ +/* Generated by re2c 0.13.5 on Sun Feb 7 13:25:37 2010 */ #line 1 "Zend/zend_ini_scanner.l" /* +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -22,7 +22,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.c 286914 2009-08-07 15:45:56Z jani $ */ +/* $Id: zend_ini_scanner.c 294698 2010-02-07 12:08:22Z pajoye $ */ #include <errno.h> #include "zend.h" @@ -107,6 +107,17 @@ ZEND_API ts_rsrc_id ini_scanner_globals_id; ZEND_API zend_ini_scanner_globals ini_scanner_globals; #endif +/* Eat leading whitespace */ +#define EAT_LEADING_WHITESPACE() \ + while (yytext[0]) { \ + if (yytext[0] == ' ' || yytext[0] == '\t') { \ + SCNG(yy_text)++; \ + yyleng--; \ + } else { \ + break; \ + } \ + } + /* Eat trailing whitespace + extra char */ #define EAT_TRAILING_WHITESPACE_EX(ch) \ while (yyleng > 0 && ( \ @@ -319,7 +330,7 @@ restart: } } -#line 323 "Zend/zend_ini_scanner.c" +#line 334 "Zend/zend_ini_scanner.c" { YYCTYPE yych; unsigned int yyaccept = 0; @@ -356,49 +367,49 @@ restart: yyc_INITIAL: { static const unsigned char yybm[] = { - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 192, 0, 160, 160, 0, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 192, 128, 128, 160, 128, 160, 128, 160, - 128, 128, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 128, 160, 128, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 128, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 128, 128, 128, 128, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 160, 0, 144, 144, 0, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 240, 128, 128, 144, 128, 144, 128, 144, + 128, 128, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 144, 128, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 128, 128, 128, 128, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, + 144, 144, 144, 144, 144, 144, 144, 144, }; YYDEBUG(0, *YYCURSOR); - YYFILL(6); + YYFILL(5); yych = *YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case '\t': - case ' ': goto yy4; + case '\t': goto yy4; case '\n': goto yy6; case '\r': goto yy8; + case ' ': goto yy9; case '!': case '"': case '$': @@ -408,8 +419,8 @@ yyc_INITIAL: case '{': case '|': case '}': - case '~': goto yy9; - case '#': goto yy11; + case '~': goto yy10; + case '#': goto yy12; case '%': case '\'': case '*': @@ -424,106 +435,136 @@ yyc_INITIAL: case '?': case '@': case ']': - case '^': goto yy12; - case ';': goto yy13; - case '=': goto yy15; + case '^': goto yy13; + case ';': goto yy14; + case '=': goto yy16; case 'F': - case 'f': goto yy17; + case 'f': goto yy18; case 'N': - case 'n': goto yy18; + case 'n': goto yy19; case 'O': - case 'o': goto yy19; + case 'o': goto yy20; case 'T': - case 't': goto yy20; + case 't': goto yy21; case 'Y': - case 'y': goto yy21; - case '[': goto yy22; + case 'y': goto yy22; + case '[': goto yy23; default: goto yy2; } yy2: YYDEBUG(2, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy25; + goto yy26; yy3: YYDEBUG(3, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 406 "Zend/zend_ini_scanner.l" +#line 426 "Zend/zend_ini_scanner.l" { /* Get option name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + RETURN_TOKEN(TC_LABEL, yytext, yyleng); } -#line 456 "Zend/zend_ini_scanner.c" +#line 473 "Zend/zend_ini_scanner.c" yy4: YYDEBUG(4, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy66; + goto yy68; yy5: YYDEBUG(5, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 518 "Zend/zend_ini_scanner.l" +#line 544 "Zend/zend_ini_scanner.l" { /* eat whitespace */ goto restart; } -#line 470 "Zend/zend_ini_scanner.c" +#line 487 "Zend/zend_ini_scanner.c" yy6: YYDEBUG(6, *YYCURSOR); ++YYCURSOR; yy7: YYDEBUG(7, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 523 "Zend/zend_ini_scanner.l" +#line 549 "Zend/zend_ini_scanner.l" { SCNG(lineno)++; return END_OF_LINE; } -#line 482 "Zend/zend_ini_scanner.c" +#line 499 "Zend/zend_ini_scanner.c" yy8: YYDEBUG(8, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy64; + if (yych == '\n') goto yy71; goto yy7; yy9: YYDEBUG(9, *YYCURSOR); - ++YYCURSOR; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + if (yych <= ' ') { + if (yych <= '\n') { + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy67; + goto yy71; + } else { + if (yych == '\r') goto yy72; + if (yych <= 0x1F) goto yy26; + goto yy69; + } + } else { + if (yych <= ':') { + if (yych == '#') goto yy58; + goto yy26; + } else { + if (yych <= ';') goto yy53; + if (yych == '=') goto yy51; + goto yy26; + } + } +yy10: YYDEBUG(10, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(11, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 446 "Zend/zend_ini_scanner.l" +#line 472 "Zend/zend_ini_scanner.l" { /* Disallow these chars outside option values */ return yytext[0]; } -#line 497 "Zend/zend_ini_scanner.c" -yy11: - YYDEBUG(11, *YYCURSOR); - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - goto yy56; +#line 538 "Zend/zend_ini_scanner.c" yy12: YYDEBUG(12, *YYCURSOR); - yych = *++YYCURSOR; - goto yy25; + yyaccept = 1; + yych = *(YYMARKER = ++YYCURSOR); + goto yy59; yy13: YYDEBUG(13, *YYCURSOR); + yych = *++YYCURSOR; + goto yy26; +yy14: + YYDEBUG(14, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - goto yy51; - YYDEBUG(14, *YYCURSOR); + goto yy54; + YYDEBUG(15, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 546 "Zend/zend_ini_scanner.l" +#line 572 "Zend/zend_ini_scanner.l" { return 0; } -#line 518 "Zend/zend_ini_scanner.c" -yy15: - YYDEBUG(15, *YYCURSOR); - ++YYCURSOR; - yych = *YYCURSOR; - goto yy49; +#line 559 "Zend/zend_ini_scanner.c" yy16: YYDEBUG(16, *YYCURSOR); + ++YYCURSOR; + yych = *YYCURSOR; + goto yy52; +yy17: + YYDEBUG(17, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 410 "Zend/zend_ini_scanner.l" +#line 436 "Zend/zend_ini_scanner.l" { /* Start option value */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { yy_push_state(ST_RAW TSRMLS_CC); @@ -532,63 +573,63 @@ yy16: } return '='; } -#line 536 "Zend/zend_ini_scanner.c" -yy17: - YYDEBUG(17, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'A') goto yy45; - if (yych == 'a') goto yy45; - goto yy25; +#line 577 "Zend/zend_ini_scanner.c" yy18: YYDEBUG(18, *YYCURSOR); yych = *++YYCURSOR; + if (yych == 'A') goto yy48; + if (yych == 'a') goto yy48; + goto yy26; +yy19: + YYDEBUG(19, *YYCURSOR); + yych = *++YYCURSOR; if (yych <= 'U') { - if (yych == 'O') goto yy41; - if (yych <= 'T') goto yy25; - goto yy42; + if (yych == 'O') goto yy44; + if (yych <= 'T') goto yy26; + goto yy45; } else { if (yych <= 'o') { - if (yych <= 'n') goto yy25; - goto yy41; + if (yych <= 'n') goto yy26; + goto yy44; } else { - if (yych == 'u') goto yy42; - goto yy25; + if (yych == 'u') goto yy45; + goto yy26; } } -yy19: - YYDEBUG(19, *YYCURSOR); +yy20: + YYDEBUG(20, *YYCURSOR); yych = *++YYCURSOR; if (yych <= 'N') { - if (yych == 'F') goto yy36; - if (yych <= 'M') goto yy25; - goto yy30; + if (yych == 'F') goto yy38; + if (yych <= 'M') goto yy26; + goto yy31; } else { if (yych <= 'f') { - if (yych <= 'e') goto yy25; - goto yy36; + if (yych <= 'e') goto yy26; + goto yy38; } else { - if (yych == 'n') goto yy30; - goto yy25; + if (yych == 'n') goto yy31; + goto yy26; } } -yy20: - YYDEBUG(20, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'R') goto yy34; - if (yych == 'r') goto yy34; - goto yy25; yy21: YYDEBUG(21, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy26; - if (yych == 'e') goto yy26; - goto yy25; + if (yych == 'R') goto yy36; + if (yych == 'r') goto yy36; + goto yy26; yy22: YYDEBUG(22, *YYCURSOR); - ++YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy27; + if (yych == 'e') goto yy27; + goto yy26; +yy23: YYDEBUG(23, *YYCURSOR); + ++YYCURSOR; + YYDEBUG(24, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 344 "Zend/zend_ini_scanner.l" +#line 355 "Zend/zend_ini_scanner.l" { /* Section start */ /* Enter section data lookup state */ if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) { @@ -598,38 +639,41 @@ yy22: } return TC_SECTION; } -#line 602 "Zend/zend_ini_scanner.c" -yy24: - YYDEBUG(24, *YYCURSOR); +#line 643 "Zend/zend_ini_scanner.c" +yy25: + YYDEBUG(25, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy25: - YYDEBUG(25, *YYCURSOR); - if (yybm[0+yych] & 32) { - goto yy24; - } - if (yych == '[') goto yy27; - goto yy3; yy26: YYDEBUG(26, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'S') goto yy30; - if (yych == 's') goto yy30; - goto yy25; + if (yybm[0+yych] & 16) { + goto yy25; + } + if (yych == '[') goto yy28; + goto yy3; yy27: YYDEBUG(27, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'S') goto yy31; + if (yych == 's') goto yy31; + goto yy26; +yy28: + YYDEBUG(28, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(28, *YYCURSOR); - if (yybm[0+yych] & 64) { - goto yy27; - } YYDEBUG(29, *YYCURSOR); + if (yybm[0+yych] & 32) { + goto yy28; + } + YYDEBUG(30, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 369 "Zend/zend_ini_scanner.l" +#line 380 "Zend/zend_ini_scanner.l" { /* Start of option with offset */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + /* Eat trailing whitespace and [ */ EAT_TRAILING_WHITESPACE_EX('['); @@ -638,371 +682,431 @@ yy27: RETURN_TOKEN(TC_OFFSET, yytext, yyleng); } -#line 642 "Zend/zend_ini_scanner.c" -yy30: - YYDEBUG(30, *YYCURSOR); +#line 686 "Zend/zend_ini_scanner.c" +yy31: + YYDEBUG(31, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '$') { + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(32, *YYCURSOR); + if (yybm[0+yych] & 64) { + goto yy31; + } + if (yych <= '&') { if (yych <= '\r') { if (yych <= '\t') { if (yych <= 0x08) goto yy25; - goto yy32; + goto yy34; } else { - if (yych <= '\n') goto yy31; + if (yych <= '\n') goto yy33; if (yych <= '\f') goto yy25; } } else { - if (yych <= ' ') { - if (yych <= 0x1F) goto yy25; - goto yy32; + if (yych <= '#') { + if (yych <= ' ') goto yy25; + if (yych >= '#') goto yy25; } else { - if (yych == '#') goto yy25; + if (yych == '%') goto yy25; } } } else { - if (yych <= ':') { - if (yych <= '&') { - if (yych <= '%') goto yy25; - } else { + if (yych <= '<') { + if (yych <= ')') { if (yych <= '\'') goto yy25; - if (yych >= '*') goto yy25; + } else { + if (yych != ';') goto yy25; } } else { - if (yych <= '=') { - if (yych == '<') goto yy25; + if (yych <= '[') { + if (yych <= '=') goto yy33; + if (yych <= 'Z') goto yy25; + goto yy28; } else { if (yych <= 'z') goto yy25; if (yych >= 0x7F) goto yy25; } } } -yy31: - YYDEBUG(31, *YYCURSOR); +yy33: + YYDEBUG(33, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 398 "Zend/zend_ini_scanner.l" +#line 418 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 687 "Zend/zend_ini_scanner.c" -yy32: - YYDEBUG(32, *YYCURSOR); +#line 738 "Zend/zend_ini_scanner.c" +yy34: + YYDEBUG(34, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(33, *YYCURSOR); - if (yych == '\t') goto yy32; - if (yych == ' ') goto yy32; - goto yy31; -yy34: - YYDEBUG(34, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'U') goto yy35; - if (yych != 'u') goto yy25; -yy35: YYDEBUG(35, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy30; - if (yych == 'e') goto yy30; - goto yy25; + if (yych == '\t') goto yy34; + if (yych == ' ') goto yy34; + goto yy33; yy36: YYDEBUG(36, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'F') goto yy37; - if (yych != 'f') goto yy25; + if (yych == 'U') goto yy37; + if (yych != 'u') goto yy26; yy37: YYDEBUG(37, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'E') goto yy31; + if (yych == 'e') goto yy31; + goto yy26; +yy38: + YYDEBUG(38, *YYCURSOR); + yych = *++YYCURSOR; + if (yych == 'F') goto yy39; + if (yych != 'f') goto yy26; +yy39: + YYDEBUG(39, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) <= '$') { + YYFILL(1); + yych = *YYCURSOR; + YYDEBUG(40, *YYCURSOR); + if (yych <= '%') { if (yych <= '\r') { if (yych <= '\t') { if (yych <= 0x08) goto yy25; - goto yy39; + goto yy42; } else { - if (yych <= '\n') goto yy38; + if (yych <= '\n') goto yy41; if (yych <= '\f') goto yy25; } } else { - if (yych <= ' ') { + if (yych <= '"') { if (yych <= 0x1F) goto yy25; - goto yy39; + if (yych <= ' ') goto yy39; } else { - if (yych == '#') goto yy25; + if (yych != '$') goto yy25; } } } else { - if (yych <= ':') { - if (yych <= '&') { - if (yych <= '%') goto yy25; + if (yych <= '<') { + if (yych <= ')') { + if (yych == '\'') goto yy25; } else { - if (yych <= '\'') goto yy25; - if (yych >= '*') goto yy25; + if (yych != ';') goto yy25; } } else { - if (yych <= '=') { - if (yych == '<') goto yy25; + if (yych <= '[') { + if (yych <= '=') goto yy41; + if (yych <= 'Z') goto yy25; + goto yy28; } else { if (yych <= 'z') goto yy25; if (yych >= 0x7F) goto yy25; } } } -yy38: - YYDEBUG(38, *YYCURSOR); +yy41: + YYDEBUG(41, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 402 "Zend/zend_ini_scanner.l" +#line 422 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 757 "Zend/zend_ini_scanner.c" -yy39: - YYDEBUG(39, *YYCURSOR); +#line 812 "Zend/zend_ini_scanner.c" +yy42: + YYDEBUG(42, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(40, *YYCURSOR); - if (yych == '\t') goto yy39; - if (yych == ' ') goto yy39; - goto yy38; -yy41: - YYDEBUG(41, *YYCURSOR); + YYDEBUG(43, *YYCURSOR); + if (yych == '\t') goto yy42; + if (yych == ' ') goto yy42; + goto yy41; +yy44: + YYDEBUG(44, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '&') { if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy25; - if (yych <= '\t') goto yy39; - goto yy38; + if (yych <= 0x08) goto yy26; + if (yych <= '\t') goto yy42; + goto yy41; } else { - if (yych == '\r') goto yy38; - goto yy25; + if (yych == '\r') goto yy41; + goto yy26; } } else { if (yych <= '#') { if (yych <= ' ') goto yy39; - if (yych <= '"') goto yy38; - goto yy25; + if (yych <= '"') goto yy41; + goto yy26; } else { - if (yych == '%') goto yy25; - goto yy38; + if (yych == '%') goto yy26; + goto yy41; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= '\'') goto yy25; - if (yych <= ')') goto yy38; - goto yy25; + if (yych <= '\'') goto yy26; + if (yych <= ')') goto yy41; + goto yy26; } else { - if (yych == '<') goto yy25; - goto yy38; + if (yych == '<') goto yy26; + goto yy41; } } else { if (yych <= 'm') { - if (yych == 'N') goto yy44; - goto yy25; + if (yych == 'N') goto yy47; + goto yy26; } else { - if (yych <= 'n') goto yy44; - if (yych <= 'z') goto yy25; - if (yych <= '~') goto yy38; - goto yy25; + if (yych <= 'n') goto yy47; + if (yych <= 'z') goto yy26; + if (yych <= '~') goto yy41; + goto yy26; } } } -yy42: - YYDEBUG(42, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy43; - if (yych != 'l') goto yy25; -yy43: - YYDEBUG(43, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'L') goto yy37; - if (yych == 'l') goto yy37; - goto yy25; -yy44: - YYDEBUG(44, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == 'E') goto yy37; - if (yych == 'e') goto yy37; - goto yy25; yy45: YYDEBUG(45, *YYCURSOR); yych = *++YYCURSOR; if (yych == 'L') goto yy46; - if (yych != 'l') goto yy25; + if (yych != 'l') goto yy26; yy46: YYDEBUG(46, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'S') goto yy47; - if (yych != 's') goto yy25; + if (yych == 'L') goto yy39; + if (yych == 'l') goto yy39; + goto yy26; yy47: YYDEBUG(47, *YYCURSOR); yych = *++YYCURSOR; - if (yych == 'E') goto yy37; - if (yych == 'e') goto yy37; - goto yy25; + if (yych == 'E') goto yy39; + if (yych == 'e') goto yy39; + goto yy26; yy48: YYDEBUG(48, *YYCURSOR); - ++YYCURSOR; - YYFILL(1); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'L') goto yy49; + if (yych != 'l') goto yy26; yy49: YYDEBUG(49, *YYCURSOR); - if (yych == '\t') goto yy48; - if (yych == ' ') goto yy48; - goto yy16; + yych = *++YYCURSOR; + if (yych == 'S') goto yy50; + if (yych != 's') goto yy26; yy50: YYDEBUG(50, *YYCURSOR); - ++YYCURSOR; - YYFILL(2); - yych = *YYCURSOR; + yych = *++YYCURSOR; + if (yych == 'E') goto yy39; + if (yych == 'e') goto yy39; + goto yy26; yy51: YYDEBUG(51, *YYCURSOR); - if (yybm[0+yych] & 128) { - goto yy50; - } - if (yych >= '\r') goto yy54; + ++YYCURSOR; + YYFILL(1); + yych = *YYCURSOR; yy52: YYDEBUG(52, *YYCURSOR); - ++YYCURSOR; + if (yych == '\t') goto yy51; + if (yych == ' ') goto yy51; + goto yy17; yy53: YYDEBUG(53, *YYCURSOR); + ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; +yy54: + YYDEBUG(54, *YYCURSOR); + if (yybm[0+yych] & 128) { + goto yy53; + } + if (yych >= '\r') goto yy57; +yy55: + YYDEBUG(55, *YYCURSOR); + ++YYCURSOR; +yy56: + YYDEBUG(56, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 528 "Zend/zend_ini_scanner.l" +#line 554 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 878 "Zend/zend_ini_scanner.c" -yy54: - YYDEBUG(54, *YYCURSOR); +#line 933 "Zend/zend_ini_scanner.c" +yy57: + YYDEBUG(57, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy52; - goto yy53; -yy55: - YYDEBUG(55, *YYCURSOR); + if (yych == '\n') goto yy55; + goto yy56; +yy58: + YYDEBUG(58, *YYCURSOR); yyaccept = 1; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy56: - YYDEBUG(56, *YYCURSOR); +yy59: + YYDEBUG(59, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { if (yych <= '\t') { - if (yych <= 0x08) goto yy55; + if (yych <= 0x08) goto yy58; } else { - if (yych <= '\n') goto yy61; - if (yych <= '\f') goto yy55; - goto yy63; + if (yych <= '\n') goto yy64; + if (yych <= '\f') goto yy58; + goto yy66; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy55; - if (yych >= '#') goto yy55; + if (yych <= ' ') goto yy58; + if (yych >= '#') goto yy58; } else { - if (yych == '%') goto yy55; + if (yych == '%') goto yy58; } } } else { if (yych <= '<') { if (yych <= ')') { - if (yych <= '\'') goto yy55; + if (yych <= '\'') goto yy58; } else { - if (yych != ';') goto yy55; + if (yych != ';') goto yy58; } } else { if (yych <= '[') { - if (yych <= '=') goto yy57; - if (yych <= 'Z') goto yy55; - goto yy59; + if (yych <= '=') goto yy60; + if (yych <= 'Z') goto yy58; + goto yy62; } else { - if (yych <= 'z') goto yy55; - if (yych >= 0x7F) goto yy55; + if (yych <= 'z') goto yy58; + if (yych >= 0x7F) goto yy58; } } } -yy57: - YYDEBUG(57, *YYCURSOR); +yy60: + YYDEBUG(60, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(58, *YYCURSOR); - if (yych == '\n') goto yy61; - if (yych == '\r') goto yy63; - goto yy57; -yy59: - YYDEBUG(59, *YYCURSOR); + YYDEBUG(61, *YYCURSOR); + if (yych == '\n') goto yy64; + if (yych == '\r') goto yy66; + goto yy60; +yy62: + YYDEBUG(62, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(60, *YYCURSOR); + YYDEBUG(63, *YYCURSOR); if (yych <= '\f') { - if (yych <= 0x08) goto yy57; - if (yych <= '\t') goto yy59; - if (yych >= '\v') goto yy57; + if (yych <= 0x08) goto yy60; + if (yych <= '\t') goto yy62; + if (yych >= '\v') goto yy60; } else { - if (yych <= '\r') goto yy63; - if (yych == ' ') goto yy59; - goto yy57; + if (yych <= '\r') goto yy66; + if (yych == ' ') goto yy62; + goto yy60; } -yy61: - YYDEBUG(61, *YYCURSOR); +yy64: + YYDEBUG(64, *YYCURSOR); ++YYCURSOR; -yy62: - YYDEBUG(62, *YYCURSOR); +yy65: + YYDEBUG(65, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 534 "Zend/zend_ini_scanner.l" +#line 560 "Zend/zend_ini_scanner.l" { /* #Comment */ zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno)); BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 965 "Zend/zend_ini_scanner.c" -yy63: - YYDEBUG(63, *YYCURSOR); - yych = *++YYCURSOR; - if (yych == '\n') goto yy61; - goto yy62; -yy64: - YYDEBUG(64, *YYCURSOR); +#line 1020 "Zend/zend_ini_scanner.c" +yy66: + YYDEBUG(66, *YYCURSOR); yych = *++YYCURSOR; - goto yy7; -yy65: - YYDEBUG(65, *YYCURSOR); + if (yych == '\n') goto yy64; + goto yy65; +yy67: + YYDEBUG(67, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy66: - YYDEBUG(66, *YYCURSOR); +yy68: + YYDEBUG(68, *YYCURSOR); if (yych <= ' ') { if (yych <= '\n') { if (yych <= 0x08) goto yy5; - if (yych <= '\t') goto yy65; - goto yy64; + if (yych <= '\t') goto yy67; + goto yy71; } else { - if (yych == '\r') goto yy67; + if (yych == '\r') goto yy72; if (yych <= 0x1F) goto yy5; - goto yy65; + goto yy67; } } else { if (yych <= ':') { - if (yych == '#') goto yy57; + if (yych == '#') goto yy60; goto yy5; } else { - if (yych <= ';') goto yy50; - if (yych == '=') goto yy48; + if (yych <= ';') goto yy53; + if (yych == '=') goto yy51; goto yy5; } } -yy67: - YYDEBUG(67, *YYCURSOR); +yy69: + YYDEBUG(69, *YYCURSOR); + yyaccept = 1; + YYMARKER = ++YYCURSOR; + YYFILL(2); + yych = *YYCURSOR; + YYDEBUG(70, *YYCURSOR); + if (yych <= '%') { + if (yych <= '\r') { + if (yych <= '\t') { + if (yych <= 0x08) goto yy25; + goto yy67; + } else { + if (yych <= '\n') goto yy71; + if (yych <= '\f') goto yy25; + goto yy72; + } + } else { + if (yych <= '"') { + if (yych <= 0x1F) goto yy25; + if (yych <= ' ') goto yy69; + goto yy3; + } else { + if (yych <= '#') goto yy58; + if (yych <= '$') goto yy3; + goto yy25; + } + } + } else { + if (yych <= '<') { + if (yych <= ')') { + if (yych == '\'') goto yy25; + goto yy3; + } else { + if (yych == ';') goto yy53; + goto yy25; + } + } else { + if (yych <= '[') { + if (yych <= '=') goto yy51; + if (yych <= 'Z') goto yy25; + goto yy28; + } else { + if (yych <= 'z') goto yy25; + if (yych <= '~') goto yy3; + goto yy25; + } + } + } +yy71: + YYDEBUG(71, *YYCURSOR); + yych = *++YYCURSOR; + goto yy7; +yy72: + YYDEBUG(72, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy64; + if ((yych = *YYCURSOR) == '\n') goto yy71; goto yy7; } /* *********************************** */ @@ -1042,17 +1146,17 @@ yyc_ST_DOUBLE_QUOTES: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; - YYDEBUG(68, *YYCURSOR); + YYDEBUG(73, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych == '"') goto yy72; - if (yych == '$') goto yy74; - YYDEBUG(70, *YYCURSOR); + if (yych == '"') goto yy77; + if (yych == '$') goto yy79; + YYDEBUG(75, *YYCURSOR); ++YYCURSOR; -yy71: - YYDEBUG(71, *YYCURSOR); +yy76: + YYDEBUG(76, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 478 "Zend/zend_ini_scanner.l" +#line 504 "Zend/zend_ini_scanner.l" { /* Escape double quoted string contents */ if (YYCURSOR > YYLIMIT) { return 0; @@ -1088,46 +1192,46 @@ yy71: zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC); return TC_QUOTED_STRING; } -#line 1092 "Zend/zend_ini_scanner.c" -yy72: - YYDEBUG(72, *YYCURSOR); +#line 1196 "Zend/zend_ini_scanner.c" +yy77: + YYDEBUG(77, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy78; -yy73: - YYDEBUG(73, *YYCURSOR); + goto yy83; +yy78: + YYDEBUG(78, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 473 "Zend/zend_ini_scanner.l" +#line 499 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string ends */ yy_pop_state(TSRMLS_C); return '"'; } -#line 1106 "Zend/zend_ini_scanner.c" -yy74: - YYDEBUG(74, *YYCURSOR); +#line 1210 "Zend/zend_ini_scanner.c" +yy79: + YYDEBUG(79, *YYCURSOR); yych = *++YYCURSOR; - if (yych != '{') goto yy71; - YYDEBUG(75, *YYCURSOR); + if (yych != '{') goto yy76; + YYDEBUG(80, *YYCURSOR); ++YYCURSOR; - YYDEBUG(76, *YYCURSOR); + YYDEBUG(81, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 384 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1120 "Zend/zend_ini_scanner.c" -yy77: - YYDEBUG(77, *YYCURSOR); +#line 1224 "Zend/zend_ini_scanner.c" +yy82: + YYDEBUG(82, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy78: - YYDEBUG(78, *YYCURSOR); +yy83: + YYDEBUG(83, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy77; + goto yy82; } - goto yy73; + goto yy78; } /* *********************************** */ yyc_ST_OFFSET: @@ -1166,495 +1270,496 @@ yyc_ST_OFFSET: 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, }; - YYDEBUG(79, *YYCURSOR); + YYDEBUG(84, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; - if (yych <= ',') { + if (yych <= '-') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy81; - if (yych <= '\t') goto yy83; - goto yy84; + if (yych <= 0x08) goto yy86; + if (yych <= '\t') goto yy88; + goto yy89; } else { - if (yych == '\r') goto yy84; - if (yych >= ' ') goto yy83; + if (yych == '\r') goto yy89; + if (yych >= ' ') goto yy88; } } else { - if (yych <= '#') { - if (yych == '"') goto yy86; + if (yych <= '$') { + if (yych == '"') goto yy91; + if (yych >= '$') goto yy93; } else { - if (yych <= '$') goto yy88; - if (yych == '\'') goto yy89; + if (yych == '\'') goto yy94; + if (yych >= '-') goto yy95; } } } else { - if (yych <= '@') { - if (yych <= '/') { - if (yych <= '-') goto yy90; - if (yych <= '.') goto yy91; + if (yych <= 'Z') { + if (yych <= '9') { + if (yych <= '.') goto yy96; + if (yych >= '0') goto yy97; } else { - if (yych <= '9') goto yy92; - if (yych == ';') goto yy84; + if (yych == ';') goto yy89; + if (yych >= 'A') goto yy99; } } else { - if (yych <= '\\') { - if (yych <= 'Z') goto yy94; - if (yych >= '\\') goto yy96; + if (yych <= '^') { + if (yych <= '[') goto yy86; + if (yych <= '\\') goto yy101; + if (yych <= ']') goto yy102; } else { - if (yych <= ']') goto yy97; - if (yych <= '`') goto yy81; - if (yych <= 'z') goto yy94; + if (yych == '`') goto yy86; + if (yych <= 'z') goto yy99; } } } -yy81: - YYDEBUG(81, *YYCURSOR); +yy86: + YYDEBUG(86, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy100; -yy82: - YYDEBUG(82, *YYCURSOR); + goto yy105; +yy87: + YYDEBUG(87, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 464 "Zend/zend_ini_scanner.l" +#line 490 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 1223 "Zend/zend_ini_scanner.c" -yy83: - YYDEBUG(83, *YYCURSOR); +#line 1328 "Zend/zend_ini_scanner.c" +yy88: + YYDEBUG(88, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy126; + goto yy131; } - if (yych == '"') goto yy128; - if (yych == ']') goto yy129; - goto yy100; -yy84: - YYDEBUG(84, *YYCURSOR); + if (yych == '"') goto yy133; + if (yych == ']') goto yy134; + goto yy105; +yy89: + YYDEBUG(89, *YYCURSOR); ++YYCURSOR; -yy85: - YYDEBUG(85, *YYCURSOR); +yy90: + YYDEBUG(90, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 546 "Zend/zend_ini_scanner.l" +#line 572 "Zend/zend_ini_scanner.l" { return 0; } -#line 1244 "Zend/zend_ini_scanner.c" -yy86: - YYDEBUG(86, *YYCURSOR); +#line 1349 "Zend/zend_ini_scanner.c" +yy91: + YYDEBUG(91, *YYCURSOR); ++YYCURSOR; -yy87: - YYDEBUG(87, *YYCURSOR); +yy92: + YYDEBUG(92, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 468 "Zend/zend_ini_scanner.l" +#line 494 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 1256 "Zend/zend_ini_scanner.c" -yy88: - YYDEBUG(88, *YYCURSOR); +#line 1361 "Zend/zend_ini_scanner.c" +yy93: + YYDEBUG(93, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy85; - if (yych <= '[') goto yy99; - goto yy104; + if (yych <= 0x00) goto yy90; + if (yych <= '[') goto yy104; + goto yy109; } else { - if (yych == '{') goto yy124; - goto yy99; + if (yych == '{') goto yy129; + goto yy104; } -yy89: - YYDEBUG(89, *YYCURSOR); +yy94: + YYDEBUG(94, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy120; + goto yy125; } - goto yy85; -yy90: - YYDEBUG(90, *YYCURSOR); + goto yy90; +yy95: + YYDEBUG(95, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy100; - if (yych <= '9') goto yy118; - goto yy100; -yy91: - YYDEBUG(91, *YYCURSOR); + if (yych <= '/') goto yy105; + if (yych <= '9') goto yy123; + goto yy105; +yy96: + YYDEBUG(96, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy100; - if (yych <= '9') goto yy116; - goto yy100; -yy92: - YYDEBUG(92, *YYCURSOR); + if (yych <= '/') goto yy105; + if (yych <= '9') goto yy121; + goto yy105; +yy97: + YYDEBUG(97, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy93; - if (yych <= '\f') goto yy100; + if (yych == '\n') goto yy98; + if (yych <= '\f') goto yy105; } else { - if (yych == '"') goto yy93; - if (yych <= '&') goto yy100; + if (yych == '"') goto yy98; + if (yych <= '&') goto yy105; } } else { if (yych <= '9') { - if (yych == '.') goto yy112; - if (yych <= '/') goto yy100; - goto yy114; + if (yych == '.') goto yy117; + if (yych <= '/') goto yy105; + goto yy119; } else { if (yych <= ';') { - if (yych <= ':') goto yy100; + if (yych <= ':') goto yy105; } else { - if (yych != ']') goto yy100; + if (yych != ']') goto yy105; } } } -yy93: - YYDEBUG(93, *YYCURSOR); +yy98: + YYDEBUG(98, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 442 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 1322 "Zend/zend_ini_scanner.c" -yy94: - YYDEBUG(94, *YYCURSOR); +#line 1427 "Zend/zend_ini_scanner.c" +yy99: + YYDEBUG(99, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy110; + goto yy115; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy100; + if (yych != '\n') goto yy105; } else { - if (yych <= '\r') goto yy95; - if (yych <= '!') goto yy100; + if (yych <= '\r') goto yy100; + if (yych <= '!') goto yy105; } } else { if (yych <= ':') { - if (yych != '\'') goto yy100; + if (yych != '\'') goto yy105; } else { - if (yych <= ';') goto yy95; - if (yych != ']') goto yy100; + if (yych <= ';') goto yy100; + if (yych != ']') goto yy105; } } -yy95: - YYDEBUG(95, *YYCURSOR); +yy100: + YYDEBUG(100, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 438 "Zend/zend_ini_scanner.l" +#line 464 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 1352 "Zend/zend_ini_scanner.c" -yy96: - YYDEBUG(96, *YYCURSOR); +#line 1457 "Zend/zend_ini_scanner.c" +yy101: + YYDEBUG(101, *YYCURSOR); yych = *++YYCURSOR; - goto yy99; -yy97: - YYDEBUG(97, *YYCURSOR); + goto yy104; +yy102: + YYDEBUG(102, *YYCURSOR); ++YYCURSOR; -yy98: - YYDEBUG(98, *YYCURSOR); +yy103: + YYDEBUG(103, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 379 "Zend/zend_ini_scanner.l" +#line 393 "Zend/zend_ini_scanner.l" { /* End of section or an option offset */ BEGIN(INITIAL); return ']'; } -#line 1368 "Zend/zend_ini_scanner.c" -yy99: - YYDEBUG(99, *YYCURSOR); +#line 1473 "Zend/zend_ini_scanner.c" +yy104: + YYDEBUG(104, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy100: - YYDEBUG(100, *YYCURSOR); +yy105: + YYDEBUG(105, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy99; + goto yy104; } - if (yych == '$') goto yy102; - if (yych != '\\') goto yy82; -yy101: - YYDEBUG(101, *YYCURSOR); + if (yych == '$') goto yy107; + if (yych != '\\') goto yy87; +yy106: + YYDEBUG(106, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy99; -yy102: - YYDEBUG(102, *YYCURSOR); + goto yy104; +yy107: + YYDEBUG(107, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy103; - if (yych <= '[') goto yy99; - goto yy104; + if (yych <= 0x00) goto yy108; + if (yych <= '[') goto yy104; + goto yy109; } else { - if (yych != '{') goto yy99; + if (yych != '{') goto yy104; } -yy103: - YYDEBUG(103, *YYCURSOR); +yy108: + YYDEBUG(108, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy82; + goto yy87; } else { - goto yy85; + goto yy90; } } else { if (yyaccept <= 2) { - goto yy93; + goto yy98; } else { - goto yy95; + goto yy100; } } -yy104: - YYDEBUG(104, *YYCURSOR); +yy109: + YYDEBUG(109, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy105; + goto yy110; } - if (yych == '\\') goto yy107; - goto yy99; -yy105: - YYDEBUG(105, *YYCURSOR); + if (yych == '\\') goto yy112; + goto yy104; +yy110: + YYDEBUG(110, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(106, *YYCURSOR); + YYDEBUG(111, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy105; + goto yy110; } - if (yych == '\\') goto yy109; - goto yy99; -yy107: - YYDEBUG(107, *YYCURSOR); + if (yych == '\\') goto yy114; + goto yy104; +yy112: + YYDEBUG(112, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(108, *YYCURSOR); + YYDEBUG(113, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy105; + goto yy110; } - if (yych == '\\') goto yy107; - goto yy99; -yy109: - YYDEBUG(109, *YYCURSOR); + if (yych == '\\') goto yy112; + goto yy104; +yy114: + YYDEBUG(114, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 4) { - goto yy105; + goto yy110; } - if (yych == '\\') goto yy107; - goto yy99; -yy110: - YYDEBUG(110, *YYCURSOR); + if (yych == '\\') goto yy112; + goto yy104; +yy115: + YYDEBUG(115, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(111, *YYCURSOR); + YYDEBUG(116, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy110; + goto yy115; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy95; - if (yych <= '\f') goto yy99; - goto yy95; + if (yych == '\n') goto yy100; + if (yych <= '\f') goto yy104; + goto yy100; } else { - if (yych == '"') goto yy95; - if (yych <= '#') goto yy99; - goto yy102; + if (yych == '"') goto yy100; + if (yych <= '#') goto yy104; + goto yy107; } } else { if (yych <= ';') { - if (yych == '\'') goto yy95; - if (yych <= ':') goto yy99; - goto yy95; + if (yych == '\'') goto yy100; + if (yych <= ':') goto yy104; + goto yy100; } else { - if (yych <= '[') goto yy99; - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy95; - goto yy99; + if (yych <= '[') goto yy104; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy100; + goto yy104; } } -yy112: - YYDEBUG(112, *YYCURSOR); +yy117: + YYDEBUG(117, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(113, *YYCURSOR); + YYDEBUG(118, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy112; + goto yy117; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy93; - if (yych <= '\f') goto yy99; - goto yy93; + if (yych == '\n') goto yy98; + if (yych <= '\f') goto yy104; + goto yy98; } else { - if (yych == '"') goto yy93; - if (yych <= '#') goto yy99; - goto yy102; + if (yych == '"') goto yy98; + if (yych <= '#') goto yy104; + goto yy107; } } else { if (yych <= ';') { - if (yych == '\'') goto yy93; - if (yych <= ':') goto yy99; - goto yy93; + if (yych == '\'') goto yy98; + if (yych <= ':') goto yy104; + goto yy98; } else { - if (yych <= '[') goto yy99; - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy93; - goto yy99; + if (yych <= '[') goto yy104; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy98; + goto yy104; } } -yy114: - YYDEBUG(114, *YYCURSOR); +yy119: + YYDEBUG(119, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(115, *YYCURSOR); + YYDEBUG(120, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy99; - goto yy93; + if (yych <= '\t') goto yy104; + goto yy98; } else { - if (yych == '\r') goto yy93; - goto yy99; + if (yych == '\r') goto yy98; + goto yy104; } } else { if (yych <= '#') { - if (yych <= '"') goto yy93; - goto yy99; + if (yych <= '"') goto yy98; + goto yy104; } else { - if (yych <= '$') goto yy102; - if (yych <= '&') goto yy99; - goto yy93; + if (yych <= '$') goto yy107; + if (yych <= '&') goto yy104; + goto yy98; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy99; - goto yy112; + if (yych <= '-') goto yy104; + goto yy117; } else { - if (yych <= '/') goto yy99; - if (yych <= '9') goto yy114; - goto yy99; + if (yych <= '/') goto yy104; + if (yych <= '9') goto yy119; + goto yy104; } } else { if (yych <= '[') { - if (yych <= ';') goto yy93; - goto yy99; + if (yych <= ';') goto yy98; + goto yy104; } else { - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy93; - goto yy99; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy98; + goto yy104; } } } -yy116: - YYDEBUG(116, *YYCURSOR); +yy121: + YYDEBUG(121, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(117, *YYCURSOR); + YYDEBUG(122, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy93; - if (yych <= '\f') goto yy99; - goto yy93; + if (yych == '\n') goto yy98; + if (yych <= '\f') goto yy104; + goto yy98; } else { if (yych <= '"') { - if (yych <= '!') goto yy99; - goto yy93; + if (yych <= '!') goto yy104; + goto yy98; } else { - if (yych == '$') goto yy102; - goto yy99; + if (yych == '$') goto yy107; + goto yy104; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy93; - if (yych <= '/') goto yy99; - if (yych <= '9') goto yy116; - goto yy99; + if (yych <= '\'') goto yy98; + if (yych <= '/') goto yy104; + if (yych <= '9') goto yy121; + goto yy104; } else { if (yych <= '[') { - if (yych <= ';') goto yy93; - goto yy99; + if (yych <= ';') goto yy98; + goto yy104; } else { - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy93; - goto yy99; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy98; + goto yy104; } } } -yy118: - YYDEBUG(118, *YYCURSOR); +yy123: + YYDEBUG(123, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(119, *YYCURSOR); + YYDEBUG(124, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy93; - if (yych <= '\f') goto yy99; - goto yy93; + if (yych == '\n') goto yy98; + if (yych <= '\f') goto yy104; + goto yy98; } else { if (yych <= '"') { - if (yych <= '!') goto yy99; - goto yy93; + if (yych <= '!') goto yy104; + goto yy98; } else { - if (yych == '$') goto yy102; - goto yy99; + if (yych == '$') goto yy107; + goto yy104; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy93; - if (yych <= '/') goto yy99; - if (yych <= '9') goto yy118; - goto yy99; + if (yych <= '\'') goto yy98; + if (yych <= '/') goto yy104; + if (yych <= '9') goto yy123; + goto yy104; } else { if (yych <= '[') { - if (yych <= ';') goto yy93; - goto yy99; + if (yych <= ';') goto yy98; + goto yy104; } else { - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy93; - goto yy99; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy98; + goto yy104; } } } -yy120: - YYDEBUG(120, *YYCURSOR); +yy125: + YYDEBUG(125, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(121, *YYCURSOR); + YYDEBUG(126, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy120; + goto yy125; } - YYDEBUG(122, *YYCURSOR); + YYDEBUG(127, *YYCURSOR); ++YYCURSOR; - YYDEBUG(123, *YYCURSOR); + YYDEBUG(128, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 354 "Zend/zend_ini_scanner.l" +#line 365 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -1663,59 +1768,59 @@ yy120: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1667 "Zend/zend_ini_scanner.c" -yy124: - YYDEBUG(124, *YYCURSOR); +#line 1772 "Zend/zend_ini_scanner.c" +yy129: + YYDEBUG(129, *YYCURSOR); ++YYCURSOR; - YYDEBUG(125, *YYCURSOR); + YYDEBUG(130, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 384 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 1678 "Zend/zend_ini_scanner.c" -yy126: - YYDEBUG(126, *YYCURSOR); +#line 1783 "Zend/zend_ini_scanner.c" +yy131: + YYDEBUG(131, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(127, *YYCURSOR); + YYDEBUG(132, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy126; + goto yy131; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy82; - if (yych <= '\f') goto yy99; - goto yy82; + if (yych == '\n') goto yy87; + if (yych <= '\f') goto yy104; + goto yy87; } else { - if (yych == '"') goto yy128; - if (yych <= '#') goto yy99; - goto yy102; + if (yych == '"') goto yy133; + if (yych <= '#') goto yy104; + goto yy107; } } else { if (yych <= ';') { - if (yych == '\'') goto yy82; - if (yych <= ':') goto yy99; - goto yy82; + if (yych == '\'') goto yy87; + if (yych <= ':') goto yy104; + goto yy87; } else { - if (yych <= '[') goto yy99; - if (yych <= '\\') goto yy101; - if (yych <= ']') goto yy129; - goto yy99; + if (yych <= '[') goto yy104; + if (yych <= '\\') goto yy106; + if (yych <= ']') goto yy134; + goto yy104; } } -yy128: - YYDEBUG(128, *YYCURSOR); +yy133: + YYDEBUG(133, *YYCURSOR); yych = *++YYCURSOR; - goto yy87; -yy129: - YYDEBUG(129, *YYCURSOR); + goto yy92; +yy134: + YYDEBUG(134, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy98; + goto yy103; } /* *********************************** */ yyc_ST_RAW: @@ -1754,31 +1859,31 @@ yyc_ST_RAW: 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, }; - YYDEBUG(130, *YYCURSOR); + YYDEBUG(135, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '\r') { if (yych <= '\t') { - if (yych >= '\t') goto yy134; + if (yych >= '\t') goto yy139; } else { - if (yych <= '\n') goto yy135; - if (yych >= '\r') goto yy137; + if (yych <= '\n') goto yy140; + if (yych >= '\r') goto yy142; } } else { if (yych <= ' ') { - if (yych >= ' ') goto yy134; + if (yych >= ' ') goto yy139; } else { - if (yych == ';') goto yy138; + if (yych == ';') goto yy143; } } - YYDEBUG(132, *YYCURSOR); + YYDEBUG(137, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy150; -yy133: - YYDEBUG(133, *YYCURSOR); + goto yy155; +yy138: + YYDEBUG(138, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 419 "Zend/zend_ini_scanner.l" +#line 445 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ /* Eat leading and trailing double quotes */ if (yytext[0] == '"' && yytext[yyleng - 1] == '"') { @@ -1787,120 +1892,120 @@ yy133: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1791 "Zend/zend_ini_scanner.c" -yy134: - YYDEBUG(134, *YYCURSOR); +#line 1896 "Zend/zend_ini_scanner.c" +yy139: + YYDEBUG(139, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 64) { - goto yy146; + goto yy151; } if (yych <= '\f') { - if (yych == '\n') goto yy145; - goto yy149; + if (yych == '\n') goto yy150; + goto yy154; } else { - if (yych <= '\r') goto yy148; - if (yych == ';') goto yy140; - goto yy149; + if (yych <= '\r') goto yy153; + if (yych == ';') goto yy145; + goto yy154; } -yy135: - YYDEBUG(135, *YYCURSOR); +yy140: + YYDEBUG(140, *YYCURSOR); ++YYCURSOR; -yy136: - YYDEBUG(136, *YYCURSOR); +yy141: + YYDEBUG(141, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 432 "Zend/zend_ini_scanner.l" +#line 458 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1819 "Zend/zend_ini_scanner.c" -yy137: - YYDEBUG(137, *YYCURSOR); +#line 1924 "Zend/zend_ini_scanner.c" +yy142: + YYDEBUG(142, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy145; - goto yy136; -yy138: - YYDEBUG(138, *YYCURSOR); + if (yych == '\n') goto yy150; + goto yy141; +yy143: + YYDEBUG(143, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy141; - YYDEBUG(139, *YYCURSOR); + goto yy146; + YYDEBUG(144, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 541 "Zend/zend_ini_scanner.l" +#line 567 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 1837 "Zend/zend_ini_scanner.c" -yy140: - YYDEBUG(140, *YYCURSOR); +#line 1942 "Zend/zend_ini_scanner.c" +yy145: + YYDEBUG(145, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy141: - YYDEBUG(141, *YYCURSOR); +yy146: + YYDEBUG(146, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy140; + goto yy145; } - if (yych >= '\r') goto yy144; -yy142: - YYDEBUG(142, *YYCURSOR); + if (yych >= '\r') goto yy149; +yy147: + YYDEBUG(147, *YYCURSOR); ++YYCURSOR; -yy143: - YYDEBUG(143, *YYCURSOR); +yy148: + YYDEBUG(148, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 528 "Zend/zend_ini_scanner.l" +#line 554 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 1861 "Zend/zend_ini_scanner.c" -yy144: - YYDEBUG(144, *YYCURSOR); +#line 1966 "Zend/zend_ini_scanner.c" +yy149: + YYDEBUG(149, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy142; - goto yy143; -yy145: - YYDEBUG(145, *YYCURSOR); + if (yych == '\n') goto yy147; + goto yy148; +yy150: + YYDEBUG(150, *YYCURSOR); yych = *++YYCURSOR; - goto yy136; -yy146: - YYDEBUG(146, *YYCURSOR); + goto yy141; +yy151: + YYDEBUG(151, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; - YYDEBUG(147, *YYCURSOR); + YYDEBUG(152, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy146; + goto yy151; } if (yych <= '\f') { - if (yych == '\n') goto yy145; - goto yy149; + if (yych == '\n') goto yy150; + goto yy154; } else { - if (yych <= '\r') goto yy148; - if (yych == ';') goto yy140; - goto yy149; + if (yych <= '\r') goto yy153; + if (yych == ';') goto yy145; + goto yy154; } -yy148: - YYDEBUG(148, *YYCURSOR); +yy153: + YYDEBUG(153, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy145; - goto yy136; -yy149: - YYDEBUG(149, *YYCURSOR); + if (yych == '\n') goto yy150; + goto yy141; +yy154: + YYDEBUG(154, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy150: - YYDEBUG(150, *YYCURSOR); +yy155: + YYDEBUG(155, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy149; + goto yy154; } - goto yy133; + goto yy138; } /* *********************************** */ yyc_ST_SECTION_RAW: @@ -1939,85 +2044,85 @@ yyc_ST_SECTION_RAW: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(151, *YYCURSOR); + YYDEBUG(156, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; if (yych <= '\f') { - if (yych == '\n') goto yy155; + if (yych == '\n') goto yy160; } else { - if (yych <= '\r') goto yy155; - if (yych == ']') goto yy157; + if (yych <= '\r') goto yy160; + if (yych == ']') goto yy162; } - YYDEBUG(153, *YYCURSOR); + YYDEBUG(158, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy164; -yy154: - YYDEBUG(154, *YYCURSOR); + goto yy169; +yy159: + YYDEBUG(159, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 428 "Zend/zend_ini_scanner.l" +#line 454 "Zend/zend_ini_scanner.l" { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */ RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 1963 "Zend/zend_ini_scanner.c" -yy155: - YYDEBUG(155, *YYCURSOR); +#line 2068 "Zend/zend_ini_scanner.c" +yy160: + YYDEBUG(160, *YYCURSOR); ++YYCURSOR; - YYDEBUG(156, *YYCURSOR); + YYDEBUG(161, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 546 "Zend/zend_ini_scanner.l" +#line 572 "Zend/zend_ini_scanner.l" { return 0; } -#line 1973 "Zend/zend_ini_scanner.c" -yy157: - YYDEBUG(157, *YYCURSOR); +#line 2078 "Zend/zend_ini_scanner.c" +yy162: + YYDEBUG(162, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy160; -yy158: - YYDEBUG(158, *YYCURSOR); + goto yy165; +yy163: + YYDEBUG(163, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 363 "Zend/zend_ini_scanner.l" +#line 374 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 1988 "Zend/zend_ini_scanner.c" -yy159: - YYDEBUG(159, *YYCURSOR); +#line 2093 "Zend/zend_ini_scanner.c" +yy164: + YYDEBUG(164, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy160: - YYDEBUG(160, *YYCURSOR); +yy165: + YYDEBUG(165, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy159; + goto yy164; } - if (yych == '\n') goto yy161; - if (yych == '\r') goto yy162; - goto yy158; -yy161: - YYDEBUG(161, *YYCURSOR); + if (yych == '\n') goto yy166; + if (yych == '\r') goto yy167; + goto yy163; +yy166: + YYDEBUG(166, *YYCURSOR); yych = *++YYCURSOR; - goto yy158; -yy162: - YYDEBUG(162, *YYCURSOR); + goto yy163; +yy167: + YYDEBUG(167, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy161; - goto yy158; -yy163: - YYDEBUG(163, *YYCURSOR); + if (yych == '\n') goto yy166; + goto yy163; +yy168: + YYDEBUG(168, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy164: - YYDEBUG(164, *YYCURSOR); +yy169: + YYDEBUG(169, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy163; + goto yy168; } - goto yy154; + goto yy159; } /* *********************************** */ yyc_ST_SECTION_VALUE: @@ -2056,522 +2161,523 @@ yyc_ST_SECTION_VALUE: 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, 132, }; - YYDEBUG(165, *YYCURSOR); + YYDEBUG(170, *YYCURSOR); YYFILL(3); yych = *YYCURSOR; - if (yych <= ',') { + if (yych <= '-') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x08) goto yy167; - if (yych <= '\t') goto yy169; - goto yy170; + if (yych <= 0x08) goto yy172; + if (yych <= '\t') goto yy174; + goto yy175; } else { - if (yych == '\r') goto yy170; - if (yych >= ' ') goto yy169; + if (yych == '\r') goto yy175; + if (yych >= ' ') goto yy174; } } else { - if (yych <= '#') { - if (yych == '"') goto yy172; + if (yych <= '$') { + if (yych == '"') goto yy177; + if (yych >= '$') goto yy179; } else { - if (yych <= '$') goto yy174; - if (yych == '\'') goto yy175; + if (yych == '\'') goto yy180; + if (yych >= '-') goto yy181; } } } else { - if (yych <= '@') { - if (yych <= '/') { - if (yych <= '-') goto yy176; - if (yych <= '.') goto yy177; + if (yych <= 'Z') { + if (yych <= '9') { + if (yych <= '.') goto yy182; + if (yych >= '0') goto yy183; } else { - if (yych <= '9') goto yy178; - if (yych == ';') goto yy170; + if (yych == ';') goto yy175; + if (yych >= 'A') goto yy185; } } else { - if (yych <= '\\') { - if (yych <= 'Z') goto yy180; - if (yych >= '\\') goto yy182; + if (yych <= '^') { + if (yych <= '[') goto yy172; + if (yych <= '\\') goto yy187; + if (yych <= ']') goto yy188; } else { - if (yych <= ']') goto yy183; - if (yych <= '`') goto yy167; - if (yych <= 'z') goto yy180; + if (yych == '`') goto yy172; + if (yych <= 'z') goto yy185; } } } -yy167: - YYDEBUG(167, *YYCURSOR); +yy172: + YYDEBUG(172, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy190; -yy168: - YYDEBUG(168, *YYCURSOR); + goto yy195; +yy173: + YYDEBUG(173, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 464 "Zend/zend_ini_scanner.l" +#line 490 "Zend/zend_ini_scanner.l" { /* Get rest as section/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2113 "Zend/zend_ini_scanner.c" -yy169: - YYDEBUG(169, *YYCURSOR); +#line 2219 "Zend/zend_ini_scanner.c" +yy174: + YYDEBUG(174, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 0x1F) { - if (yych == '\t') goto yy216; - goto yy190; + if (yych == '\t') goto yy221; + goto yy195; } else { - if (yych <= ' ') goto yy216; - if (yych == '"') goto yy218; - goto yy190; + if (yych <= ' ') goto yy221; + if (yych == '"') goto yy223; + goto yy195; } -yy170: - YYDEBUG(170, *YYCURSOR); +yy175: + YYDEBUG(175, *YYCURSOR); ++YYCURSOR; -yy171: - YYDEBUG(171, *YYCURSOR); +yy176: + YYDEBUG(176, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 546 "Zend/zend_ini_scanner.l" +#line 572 "Zend/zend_ini_scanner.l" { return 0; } -#line 2136 "Zend/zend_ini_scanner.c" -yy172: - YYDEBUG(172, *YYCURSOR); +#line 2242 "Zend/zend_ini_scanner.c" +yy177: + YYDEBUG(177, *YYCURSOR); ++YYCURSOR; -yy173: - YYDEBUG(173, *YYCURSOR); +yy178: + YYDEBUG(178, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 468 "Zend/zend_ini_scanner.l" +#line 494 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2148 "Zend/zend_ini_scanner.c" -yy174: - YYDEBUG(174, *YYCURSOR); +#line 2254 "Zend/zend_ini_scanner.c" +yy179: + YYDEBUG(179, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy171; - if (yych <= '[') goto yy189; - goto yy194; + if (yych <= 0x00) goto yy176; + if (yych <= '[') goto yy194; + goto yy199; } else { - if (yych == '{') goto yy214; - goto yy189; + if (yych == '{') goto yy219; + goto yy194; } -yy175: - YYDEBUG(175, *YYCURSOR); +yy180: + YYDEBUG(180, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy210; + goto yy215; } - goto yy171; -yy176: - YYDEBUG(176, *YYCURSOR); + goto yy176; +yy181: + YYDEBUG(181, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy190; - if (yych <= '9') goto yy208; - goto yy190; -yy177: - YYDEBUG(177, *YYCURSOR); + if (yych <= '/') goto yy195; + if (yych <= '9') goto yy213; + goto yy195; +yy182: + YYDEBUG(182, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy190; - if (yych <= '9') goto yy206; - goto yy190; -yy178: - YYDEBUG(178, *YYCURSOR); + if (yych <= '/') goto yy195; + if (yych <= '9') goto yy211; + goto yy195; +yy183: + YYDEBUG(183, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '\'') { if (yych <= '\r') { - if (yych == '\n') goto yy179; - if (yych <= '\f') goto yy190; + if (yych == '\n') goto yy184; + if (yych <= '\f') goto yy195; } else { - if (yych == '"') goto yy179; - if (yych <= '&') goto yy190; + if (yych == '"') goto yy184; + if (yych <= '&') goto yy195; } } else { if (yych <= '9') { - if (yych == '.') goto yy202; - if (yych <= '/') goto yy190; - goto yy204; + if (yych == '.') goto yy207; + if (yych <= '/') goto yy195; + goto yy209; } else { if (yych <= ';') { - if (yych <= ':') goto yy190; + if (yych <= ':') goto yy195; } else { - if (yych != ']') goto yy190; + if (yych != ']') goto yy195; } } } -yy179: - YYDEBUG(179, *YYCURSOR); +yy184: + YYDEBUG(184, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 442 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2214 "Zend/zend_ini_scanner.c" -yy180: - YYDEBUG(180, *YYCURSOR); +#line 2320 "Zend/zend_ini_scanner.c" +yy185: + YYDEBUG(185, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 32) { - goto yy200; + goto yy205; } if (yych <= '"') { if (yych <= '\f') { - if (yych != '\n') goto yy190; + if (yych != '\n') goto yy195; } else { - if (yych <= '\r') goto yy181; - if (yych <= '!') goto yy190; + if (yych <= '\r') goto yy186; + if (yych <= '!') goto yy195; } } else { if (yych <= ':') { - if (yych != '\'') goto yy190; + if (yych != '\'') goto yy195; } else { - if (yych <= ';') goto yy181; - if (yych != ']') goto yy190; + if (yych <= ';') goto yy186; + if (yych != ']') goto yy195; } } -yy181: - YYDEBUG(181, *YYCURSOR); +yy186: + YYDEBUG(186, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 438 "Zend/zend_ini_scanner.l" +#line 464 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 2244 "Zend/zend_ini_scanner.c" -yy182: - YYDEBUG(182, *YYCURSOR); +#line 2350 "Zend/zend_ini_scanner.c" +yy187: + YYDEBUG(187, *YYCURSOR); yych = *++YYCURSOR; - goto yy189; -yy183: - YYDEBUG(183, *YYCURSOR); + goto yy194; +yy188: + YYDEBUG(188, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy186; -yy184: - YYDEBUG(184, *YYCURSOR); + goto yy191; +yy189: + YYDEBUG(189, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 363 "Zend/zend_ini_scanner.l" +#line 374 "Zend/zend_ini_scanner.l" { /* End of section */ BEGIN(INITIAL); SCNG(lineno)++; return ']'; } -#line 2263 "Zend/zend_ini_scanner.c" -yy185: - YYDEBUG(185, *YYCURSOR); +#line 2369 "Zend/zend_ini_scanner.c" +yy190: + YYDEBUG(190, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy186: - YYDEBUG(186, *YYCURSOR); +yy191: + YYDEBUG(191, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy185; + goto yy190; } - if (yych == '\n') goto yy187; - if (yych == '\r') goto yy188; - goto yy184; -yy187: - YYDEBUG(187, *YYCURSOR); + if (yych == '\n') goto yy192; + if (yych == '\r') goto yy193; + goto yy189; +yy192: + YYDEBUG(192, *YYCURSOR); yych = *++YYCURSOR; - goto yy184; -yy188: - YYDEBUG(188, *YYCURSOR); + goto yy189; +yy193: + YYDEBUG(193, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy187; - goto yy184; -yy189: - YYDEBUG(189, *YYCURSOR); + if (yych == '\n') goto yy192; + goto yy189; +yy194: + YYDEBUG(194, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy190: - YYDEBUG(190, *YYCURSOR); +yy195: + YYDEBUG(195, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy189; + goto yy194; } - if (yych == '$') goto yy192; - if (yych != '\\') goto yy168; -yy191: - YYDEBUG(191, *YYCURSOR); + if (yych == '$') goto yy197; + if (yych != '\\') goto yy173; +yy196: + YYDEBUG(196, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - goto yy189; -yy192: - YYDEBUG(192, *YYCURSOR); + goto yy194; +yy197: + YYDEBUG(197, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy193; - if (yych <= '[') goto yy189; - goto yy194; + if (yych <= 0x00) goto yy198; + if (yych <= '[') goto yy194; + goto yy199; } else { - if (yych != '{') goto yy189; + if (yych != '{') goto yy194; } -yy193: - YYDEBUG(193, *YYCURSOR); +yy198: + YYDEBUG(198, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy168; + goto yy173; } else { - goto yy171; + goto yy176; } } else { if (yyaccept <= 2) { - goto yy179; + goto yy184; } else { - goto yy181; + goto yy186; } } -yy194: - YYDEBUG(194, *YYCURSOR); +yy199: + YYDEBUG(199, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy195; + goto yy200; } - if (yych == '\\') goto yy197; - goto yy189; -yy195: - YYDEBUG(195, *YYCURSOR); + if (yych == '\\') goto yy202; + goto yy194; +yy200: + YYDEBUG(200, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(196, *YYCURSOR); + YYDEBUG(201, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy195; + goto yy200; } - if (yych == '\\') goto yy199; - goto yy189; -yy197: - YYDEBUG(197, *YYCURSOR); + if (yych == '\\') goto yy204; + goto yy194; +yy202: + YYDEBUG(202, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(198, *YYCURSOR); + YYDEBUG(203, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy195; + goto yy200; } - if (yych == '\\') goto yy197; - goto yy189; -yy199: - YYDEBUG(199, *YYCURSOR); + if (yych == '\\') goto yy202; + goto yy194; +yy204: + YYDEBUG(204, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy195; + goto yy200; } - if (yych == '\\') goto yy197; - goto yy189; -yy200: - YYDEBUG(200, *YYCURSOR); + if (yych == '\\') goto yy202; + goto yy194; +yy205: + YYDEBUG(205, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(201, *YYCURSOR); + YYDEBUG(206, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy200; + goto yy205; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy181; - if (yych <= '\f') goto yy189; - goto yy181; + if (yych == '\n') goto yy186; + if (yych <= '\f') goto yy194; + goto yy186; } else { - if (yych == '"') goto yy181; - if (yych <= '#') goto yy189; - goto yy192; + if (yych == '"') goto yy186; + if (yych <= '#') goto yy194; + goto yy197; } } else { if (yych <= ';') { - if (yych == '\'') goto yy181; - if (yych <= ':') goto yy189; - goto yy181; + if (yych == '\'') goto yy186; + if (yych <= ':') goto yy194; + goto yy186; } else { - if (yych <= '[') goto yy189; - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy181; - goto yy189; + if (yych <= '[') goto yy194; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy186; + goto yy194; } } -yy202: - YYDEBUG(202, *YYCURSOR); +yy207: + YYDEBUG(207, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(203, *YYCURSOR); + YYDEBUG(208, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy202; + goto yy207; } if (yych <= '$') { if (yych <= '\r') { - if (yych == '\n') goto yy179; - if (yych <= '\f') goto yy189; - goto yy179; + if (yych == '\n') goto yy184; + if (yych <= '\f') goto yy194; + goto yy184; } else { - if (yych == '"') goto yy179; - if (yych <= '#') goto yy189; - goto yy192; + if (yych == '"') goto yy184; + if (yych <= '#') goto yy194; + goto yy197; } } else { if (yych <= ';') { - if (yych == '\'') goto yy179; - if (yych <= ':') goto yy189; - goto yy179; + if (yych == '\'') goto yy184; + if (yych <= ':') goto yy194; + goto yy184; } else { - if (yych <= '[') goto yy189; - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy179; - goto yy189; + if (yych <= '[') goto yy194; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy184; + goto yy194; } } -yy204: - YYDEBUG(204, *YYCURSOR); +yy209: + YYDEBUG(209, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(205, *YYCURSOR); + YYDEBUG(210, *YYCURSOR); if (yych <= '\'') { if (yych <= '!') { if (yych <= '\n') { - if (yych <= '\t') goto yy189; - goto yy179; + if (yych <= '\t') goto yy194; + goto yy184; } else { - if (yych == '\r') goto yy179; - goto yy189; + if (yych == '\r') goto yy184; + goto yy194; } } else { if (yych <= '#') { - if (yych <= '"') goto yy179; - goto yy189; + if (yych <= '"') goto yy184; + goto yy194; } else { - if (yych <= '$') goto yy192; - if (yych <= '&') goto yy189; - goto yy179; + if (yych <= '$') goto yy197; + if (yych <= '&') goto yy194; + goto yy184; } } } else { if (yych <= ':') { if (yych <= '.') { - if (yych <= '-') goto yy189; - goto yy202; + if (yych <= '-') goto yy194; + goto yy207; } else { - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy204; - goto yy189; + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy209; + goto yy194; } } else { if (yych <= '[') { - if (yych <= ';') goto yy179; - goto yy189; + if (yych <= ';') goto yy184; + goto yy194; } else { - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy179; - goto yy189; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy184; + goto yy194; } } } -yy206: - YYDEBUG(206, *YYCURSOR); +yy211: + YYDEBUG(211, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(207, *YYCURSOR); + YYDEBUG(212, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy179; - if (yych <= '\f') goto yy189; - goto yy179; + if (yych == '\n') goto yy184; + if (yych <= '\f') goto yy194; + goto yy184; } else { if (yych <= '"') { - if (yych <= '!') goto yy189; - goto yy179; + if (yych <= '!') goto yy194; + goto yy184; } else { - if (yych == '$') goto yy192; - goto yy189; + if (yych == '$') goto yy197; + goto yy194; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy179; - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy206; - goto yy189; + if (yych <= '\'') goto yy184; + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy211; + goto yy194; } else { if (yych <= '[') { - if (yych <= ';') goto yy179; - goto yy189; + if (yych <= ';') goto yy184; + goto yy194; } else { - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy179; - goto yy189; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy184; + goto yy194; } } } -yy208: - YYDEBUG(208, *YYCURSOR); +yy213: + YYDEBUG(213, *YYCURSOR); yyaccept = 2; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(209, *YYCURSOR); + YYDEBUG(214, *YYCURSOR); if (yych <= '&') { if (yych <= '\r') { - if (yych == '\n') goto yy179; - if (yych <= '\f') goto yy189; - goto yy179; + if (yych == '\n') goto yy184; + if (yych <= '\f') goto yy194; + goto yy184; } else { if (yych <= '"') { - if (yych <= '!') goto yy189; - goto yy179; + if (yych <= '!') goto yy194; + goto yy184; } else { - if (yych == '$') goto yy192; - goto yy189; + if (yych == '$') goto yy197; + goto yy194; } } } else { if (yych <= ':') { - if (yych <= '\'') goto yy179; - if (yych <= '/') goto yy189; - if (yych <= '9') goto yy208; - goto yy189; + if (yych <= '\'') goto yy184; + if (yych <= '/') goto yy194; + if (yych <= '9') goto yy213; + goto yy194; } else { if (yych <= '[') { - if (yych <= ';') goto yy179; - goto yy189; + if (yych <= ';') goto yy184; + goto yy194; } else { - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy179; - goto yy189; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy184; + goto yy194; } } } -yy210: - YYDEBUG(210, *YYCURSOR); +yy215: + YYDEBUG(215, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(211, *YYCURSOR); + YYDEBUG(216, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy210; + goto yy215; } - YYDEBUG(212, *YYCURSOR); + YYDEBUG(217, *YYCURSOR); ++YYCURSOR; - YYDEBUG(213, *YYCURSOR); + YYDEBUG(218, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 354 "Zend/zend_ini_scanner.l" +#line 365 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -2580,65 +2686,65 @@ yy210: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 2584 "Zend/zend_ini_scanner.c" -yy214: - YYDEBUG(214, *YYCURSOR); +#line 2690 "Zend/zend_ini_scanner.c" +yy219: + YYDEBUG(219, *YYCURSOR); ++YYCURSOR; - YYDEBUG(215, *YYCURSOR); + YYDEBUG(220, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 384 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 2595 "Zend/zend_ini_scanner.c" -yy216: - YYDEBUG(216, *YYCURSOR); +#line 2701 "Zend/zend_ini_scanner.c" +yy221: + YYDEBUG(221, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(217, *YYCURSOR); + YYDEBUG(222, *YYCURSOR); if (yych <= '"') { if (yych <= '\f') { - if (yych <= 0x08) goto yy189; - if (yych <= '\t') goto yy216; - if (yych <= '\n') goto yy168; - goto yy189; + if (yych <= 0x08) goto yy194; + if (yych <= '\t') goto yy221; + if (yych <= '\n') goto yy173; + goto yy194; } else { if (yych <= 0x1F) { - if (yych <= '\r') goto yy168; - goto yy189; + if (yych <= '\r') goto yy173; + goto yy194; } else { - if (yych <= ' ') goto yy216; - if (yych <= '!') goto yy189; + if (yych <= ' ') goto yy221; + if (yych <= '!') goto yy194; } } } else { if (yych <= ':') { if (yych <= '$') { - if (yych <= '#') goto yy189; - goto yy192; + if (yych <= '#') goto yy194; + goto yy197; } else { - if (yych == '\'') goto yy168; - goto yy189; + if (yych == '\'') goto yy173; + goto yy194; } } else { if (yych <= '[') { - if (yych <= ';') goto yy168; - goto yy189; + if (yych <= ';') goto yy173; + goto yy194; } else { - if (yych <= '\\') goto yy191; - if (yych <= ']') goto yy168; - goto yy189; + if (yych <= '\\') goto yy196; + if (yych <= ']') goto yy173; + goto yy194; } } } -yy218: - YYDEBUG(218, *YYCURSOR); +yy223: + YYDEBUG(223, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy173; + goto yy178; } /* *********************************** */ yyc_ST_VALUE: @@ -2677,27 +2783,27 @@ yyc_ST_VALUE: 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, 162, }; - YYDEBUG(219, *YYCURSOR); + YYDEBUG(224, *YYCURSOR); YYFILL(6); yych = *YYCURSOR; YYDEBUG(-1, yych); switch (yych) { - case 0x00: goto yy221; + case 0x00: goto yy226; case '\t': - case ' ': goto yy225; - case '\n': goto yy227; - case '\r': goto yy229; + case ' ': goto yy230; + case '\n': goto yy232; + case '\r': goto yy234; case '!': case '&': case '(': case ')': case '|': - case '~': goto yy230; - case '"': goto yy232; - case '$': goto yy234; - case '\'': goto yy235; - case '-': goto yy236; - case '.': goto yy237; + case '~': goto yy235; + case '"': goto yy237; + case '$': goto yy239; + case '\'': goto yy240; + case '-': goto yy241; + case '.': goto yy242; case '0': case '1': case '2': @@ -2707,9 +2813,9 @@ yyc_ST_VALUE: case '6': case '7': case '8': - case '9': goto yy238; - case ';': goto yy240; - case '=': goto yy241; + case '9': goto yy243; + case ';': goto yy245; + case '=': goto yy246; case 'A': case 'B': case 'C': @@ -2731,6 +2837,7 @@ yyc_ST_VALUE: case 'W': case 'X': case 'Z': + case '_': case 'a': case 'b': case 'c': @@ -2751,1531 +2858,1531 @@ yyc_ST_VALUE: case 'v': case 'w': case 'x': - case 'z': goto yy243; + case 'z': goto yy248; case 'F': - case 'f': goto yy245; + case 'f': goto yy250; case 'N': - case 'n': goto yy246; + case 'n': goto yy251; case 'O': - case 'o': goto yy247; + case 'o': goto yy252; case 'T': - case 't': goto yy248; + case 't': goto yy253; case 'Y': - case 'y': goto yy249; - default: goto yy223; + case 'y': goto yy254; + default: goto yy228; } -yy221: - YYDEBUG(221, *YYCURSOR); +yy226: + YYDEBUG(226, *YYCURSOR); ++YYCURSOR; -yy222: - YYDEBUG(222, *YYCURSOR); +yy227: + YYDEBUG(227, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 541 "Zend/zend_ini_scanner.l" +#line 567 "Zend/zend_ini_scanner.l" { /* End of option value (if EOF is reached before EOL */ BEGIN(INITIAL); return END_OF_LINE; } -#line 2779 "Zend/zend_ini_scanner.c" -yy223: - YYDEBUG(223, *YYCURSOR); +#line 2886 "Zend/zend_ini_scanner.c" +yy228: + YYDEBUG(228, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - goto yy251; -yy224: - YYDEBUG(224, *YYCURSOR); + goto yy256; +yy229: + YYDEBUG(229, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 460 "Zend/zend_ini_scanner.l" +#line 486 "Zend/zend_ini_scanner.l" { /* Get everything else as option/offset value */ RETURN_TOKEN(TC_STRING, yytext, yyleng); } -#line 2792 "Zend/zend_ini_scanner.c" -yy225: - YYDEBUG(225, *YYCURSOR); +#line 2899 "Zend/zend_ini_scanner.c" +yy230: + YYDEBUG(230, *YYCURSOR); yyaccept = 1; yych = *(YYMARKER = ++YYCURSOR); - goto yy301; -yy226: - YYDEBUG(226, *YYCURSOR); + goto yy306; +yy231: + YYDEBUG(231, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 514 "Zend/zend_ini_scanner.l" +#line 540 "Zend/zend_ini_scanner.l" { RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng); } -#line 2805 "Zend/zend_ini_scanner.c" -yy227: - YYDEBUG(227, *YYCURSOR); +#line 2912 "Zend/zend_ini_scanner.c" +yy232: + YYDEBUG(232, *YYCURSOR); ++YYCURSOR; -yy228: - YYDEBUG(228, *YYCURSOR); +yy233: + YYDEBUG(233, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 432 "Zend/zend_ini_scanner.l" +#line 458 "Zend/zend_ini_scanner.l" { /* End of option value */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 2818 "Zend/zend_ini_scanner.c" -yy229: - YYDEBUG(229, *YYCURSOR); +#line 2925 "Zend/zend_ini_scanner.c" +yy234: + YYDEBUG(234, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy299; - goto yy228; -yy230: - YYDEBUG(230, *YYCURSOR); + if (yych == '\n') goto yy304; + goto yy233; +yy235: + YYDEBUG(235, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy298; -yy231: - YYDEBUG(231, *YYCURSOR); + goto yy303; +yy236: + YYDEBUG(236, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 450 "Zend/zend_ini_scanner.l" +#line 476 "Zend/zend_ini_scanner.l" { /* Boolean operators */ return yytext[0]; } -#line 2836 "Zend/zend_ini_scanner.c" -yy232: - YYDEBUG(232, *YYCURSOR); +#line 2943 "Zend/zend_ini_scanner.c" +yy237: + YYDEBUG(237, *YYCURSOR); ++YYCURSOR; -yy233: - YYDEBUG(233, *YYCURSOR); +yy238: + YYDEBUG(238, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 468 "Zend/zend_ini_scanner.l" +#line 494 "Zend/zend_ini_scanner.l" { /* Double quoted '"' string start */ yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC); return '"'; } -#line 2848 "Zend/zend_ini_scanner.c" -yy234: - YYDEBUG(234, *YYCURSOR); +#line 2955 "Zend/zend_ini_scanner.c" +yy239: + YYDEBUG(239, *YYCURSOR); yych = *++YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy222; - if (yych <= '[') goto yy250; - goto yy257; + if (yych <= 0x00) goto yy227; + if (yych <= '[') goto yy255; + goto yy262; } else { - if (yych == '{') goto yy295; - goto yy250; + if (yych == '{') goto yy300; + goto yy255; } -yy235: - YYDEBUG(235, *YYCURSOR); +yy240: + YYDEBUG(240, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 128) { - goto yy291; + goto yy296; } - goto yy222; -yy236: - YYDEBUG(236, *YYCURSOR); + goto yy227; +yy241: + YYDEBUG(241, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy251; - if (yych <= '9') goto yy289; - goto yy251; -yy237: - YYDEBUG(237, *YYCURSOR); + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy294; + goto yy256; +yy242: + YYDEBUG(242, *YYCURSOR); yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if (yych <= '/') goto yy251; - if (yych <= '9') goto yy287; - goto yy251; -yy238: - YYDEBUG(238, *YYCURSOR); + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy292; + goto yy256; +yy243: + YYDEBUG(243, *YYCURSOR); yyaccept = 3; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '.') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy251; + if (yych >= 0x01) goto yy256; } else { - if (yych <= '\n') goto yy239; - if (yych <= '\f') goto yy251; + if (yych <= '\n') goto yy244; + if (yych <= '\f') goto yy256; } } else { if (yych <= '%') { - if (yych <= 0x1F) goto yy251; - if (yych >= '#') goto yy251; + if (yych <= 0x1F) goto yy256; + if (yych >= '#') goto yy256; } else { - if (yych <= ')') goto yy239; - if (yych <= '-') goto yy251; - goto yy283; + if (yych <= ')') goto yy244; + if (yych <= '-') goto yy256; + goto yy288; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy251; - goto yy285; + if (yych <= '/') goto yy256; + goto yy290; } else { - if (yych != ';') goto yy251; + if (yych != ';') goto yy256; } } else { if (yych <= '|') { - if (yych <= '=') goto yy239; - if (yych <= '{') goto yy251; + if (yych <= '=') goto yy244; + if (yych <= '{') goto yy256; } else { - if (yych != '~') goto yy251; + if (yych != '~') goto yy256; } } } -yy239: - YYDEBUG(239, *YYCURSOR); +yy244: + YYDEBUG(244, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 442 "Zend/zend_ini_scanner.l" +#line 468 "Zend/zend_ini_scanner.l" { /* Get number option value as string */ RETURN_TOKEN(TC_NUMBER, yytext, yyleng); } -#line 2928 "Zend/zend_ini_scanner.c" -yy240: - YYDEBUG(240, *YYCURSOR); +#line 3035 "Zend/zend_ini_scanner.c" +yy245: + YYDEBUG(245, *YYCURSOR); yyaccept = 2; yych = *(YYMARKER = ++YYCURSOR); - goto yy279; -yy241: - YYDEBUG(241, *YYCURSOR); + goto yy284; +yy246: + YYDEBUG(246, *YYCURSOR); ++YYCURSOR; - YYDEBUG(242, *YYCURSOR); + YYDEBUG(247, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 454 "Zend/zend_ini_scanner.l" +#line 480 "Zend/zend_ini_scanner.l" { /* Make = used in option value to trigger error */ yyless(0); BEGIN(INITIAL); return END_OF_LINE; } -#line 2945 "Zend/zend_ini_scanner.c" -yy243: - YYDEBUG(243, *YYCURSOR); +#line 3052 "Zend/zend_ini_scanner.c" +yy248: + YYDEBUG(248, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy252; + goto yy257; } if (yych <= ')') { if (yych <= '\f') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - if (yych >= '\v') goto yy251; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + if (yych >= '\v') goto yy256; } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy251; + if (yych >= 0x0E) goto yy256; } else { - if (yych <= '"') goto yy244; - if (yych <= '%') goto yy251; + if (yych <= '"') goto yy249; + if (yych <= '%') goto yy256; } } } else { if (yych <= '=') { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; } else { if (yych <= '|') { - if (yych <= '{') goto yy251; + if (yych <= '{') goto yy256; } else { - if (yych != '~') goto yy251; + if (yych != '~') goto yy256; } } } -yy244: - YYDEBUG(244, *YYCURSOR); +yy249: + YYDEBUG(249, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 438 "Zend/zend_ini_scanner.l" +#line 464 "Zend/zend_ini_scanner.l" { /* Get constant option value */ RETURN_TOKEN(TC_CONSTANT, yytext, yyleng); } -#line 2985 "Zend/zend_ini_scanner.c" -yy245: - YYDEBUG(245, *YYCURSOR); +#line 3092 "Zend/zend_ini_scanner.c" +yy250: + YYDEBUG(250, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '/') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - goto yy251; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + goto yy256; } else { - if (yych <= '9') goto yy252; - if (yych == ';') goto yy244; - goto yy251; + if (yych <= '9') goto yy257; + if (yych == ';') goto yy249; + goto yy256; } } } else { if (yych <= '`') { if (yych <= 'A') { - if (yych <= '=') goto yy244; - if (yych <= '@') goto yy251; - goto yy275; + if (yych <= '=') goto yy249; + if (yych <= '@') goto yy256; + goto yy280; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych <= 'a') goto yy275; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych <= 'a') goto yy280; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy246: - YYDEBUG(246, *YYCURSOR); +yy251: + YYDEBUG(251, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'N') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - if (yych <= '\n') goto yy244; - goto yy251; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + if (yych <= '\n') goto yy249; + goto yy256; } else { - if (yych <= '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - if (yych <= '"') goto yy244; - goto yy251; + if (yych <= '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + if (yych <= '"') goto yy249; + goto yy256; } } else { if (yych <= ':') { - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - if (yych <= '9') goto yy252; - goto yy251; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy257; + goto yy256; } else { if (yych <= '<') { - if (yych <= ';') goto yy244; - goto yy251; + if (yych <= ';') goto yy249; + goto yy256; } else { - if (yych <= '=') goto yy244; - if (yych <= '@') goto yy251; - goto yy252; + if (yych <= '=') goto yy249; + if (yych <= '@') goto yy256; + goto yy257; } } } } else { if (yych <= 'n') { if (yych <= 'Z') { - if (yych <= 'O') goto yy271; - if (yych == 'U') goto yy272; - goto yy252; + if (yych <= 'O') goto yy276; + if (yych == 'U') goto yy277; + goto yy257; } else { - if (yych == '_') goto yy252; - if (yych <= '`') goto yy251; - goto yy252; + if (yych == '_') goto yy257; + if (yych <= '`') goto yy256; + goto yy257; } } else { if (yych <= 'z') { - if (yych <= 'o') goto yy271; - if (yych == 'u') goto yy272; - goto yy252; + if (yych <= 'o') goto yy276; + if (yych == 'u') goto yy277; + goto yy257; } else { if (yych <= '|') { - if (yych <= '{') goto yy251; - goto yy244; + if (yych <= '{') goto yy256; + goto yy249; } else { - if (yych == '~') goto yy244; - goto yy251; + if (yych == '~') goto yy249; + goto yy256; } } } } -yy247: - YYDEBUG(247, *YYCURSOR); +yy252: + YYDEBUG(252, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= 'E') { if (yych <= '%') { if (yych <= '\f') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - if (yych <= '\n') goto yy244; - goto yy251; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + if (yych <= '\n') goto yy249; + goto yy256; } else { - if (yych <= '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - if (yych <= '"') goto yy244; - goto yy251; + if (yych <= '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + if (yych <= '"') goto yy249; + goto yy256; } } else { if (yych <= ':') { - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - if (yych <= '9') goto yy252; - goto yy251; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy257; + goto yy256; } else { if (yych <= '<') { - if (yych <= ';') goto yy244; - goto yy251; + if (yych <= ';') goto yy249; + goto yy256; } else { - if (yych <= '=') goto yy244; - if (yych <= '@') goto yy251; - goto yy252; + if (yych <= '=') goto yy249; + if (yych <= '@') goto yy256; + goto yy257; } } } } else { if (yych <= 'e') { if (yych <= 'Z') { - if (yych <= 'F') goto yy266; - if (yych == 'N') goto yy260; - goto yy252; + if (yych <= 'F') goto yy271; + if (yych == 'N') goto yy265; + goto yy257; } else { - if (yych == '_') goto yy252; - if (yych <= '`') goto yy251; - goto yy252; + if (yych == '_') goto yy257; + if (yych <= '`') goto yy256; + goto yy257; } } else { if (yych <= 'z') { - if (yych <= 'f') goto yy266; - if (yych == 'n') goto yy260; - goto yy252; + if (yych <= 'f') goto yy271; + if (yych == 'n') goto yy265; + goto yy257; } else { if (yych <= '|') { - if (yych <= '{') goto yy251; - goto yy244; + if (yych <= '{') goto yy256; + goto yy249; } else { - if (yych == '~') goto yy244; - goto yy251; + if (yych == '~') goto yy249; + goto yy256; } } } } -yy248: - YYDEBUG(248, *YYCURSOR); +yy253: + YYDEBUG(253, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'R') { - if (yych <= '@') goto yy251; - if (yych <= 'Q') goto yy252; - goto yy264; + if (yych <= '@') goto yy256; + if (yych <= 'Q') goto yy257; + goto yy269; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'r') goto yy264; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'r') goto yy269; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy249: - YYDEBUG(249, *YYCURSOR); +yy254: + YYDEBUG(254, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy251; - if (yych <= 'D') goto yy252; - goto yy254; + if (yych <= '@') goto yy256; + if (yych <= 'D') goto yy257; + goto yy259; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'e') goto yy254; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'e') goto yy259; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy250: - YYDEBUG(250, *YYCURSOR); +yy255: + YYDEBUG(255, *YYCURSOR); yyaccept = 0; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy251: - YYDEBUG(251, *YYCURSOR); +yy256: + YYDEBUG(256, *YYCURSOR); if (yybm[0+yych] & 2) { - goto yy250; + goto yy255; } - if (yych == '$') goto yy255; - goto yy224; -yy252: - YYDEBUG(252, *YYCURSOR); + if (yych == '$') goto yy260; + goto yy229; +yy257: + YYDEBUG(257, *YYCURSOR); yyaccept = 4; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(253, *YYCURSOR); + YYDEBUG(258, *YYCURSOR); if (yybm[0+yych] & 4) { - goto yy252; + goto yy257; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy244; - goto yy250; + if (yych <= 0x00) goto yy249; + goto yy255; } else { - if (yych <= '\n') goto yy244; - if (yych <= '\f') goto yy250; - goto yy244; + if (yych <= '\n') goto yy249; + if (yych <= '\f') goto yy255; + goto yy249; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy250; - goto yy244; + if (yych <= 0x1F) goto yy255; + goto yy249; } else { - if (yych == '$') goto yy255; - goto yy250; + if (yych == '$') goto yy260; + goto yy255; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy244; - goto yy250; + if (yych <= ')') goto yy249; + goto yy255; } else { - if (yych == '<') goto yy250; - goto yy244; + if (yych == '<') goto yy255; + goto yy249; } } else { if (yych <= '|') { - if (yych <= '{') goto yy250; - goto yy244; + if (yych <= '{') goto yy255; + goto yy249; } else { - if (yych == '~') goto yy244; - goto yy250; + if (yych == '~') goto yy249; + goto yy255; } } } -yy254: - YYDEBUG(254, *YYCURSOR); +yy259: + YYDEBUG(259, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy251; - if (yych <= 'R') goto yy252; - goto yy260; + if (yych <= '@') goto yy256; + if (yych <= 'R') goto yy257; + goto yy265; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 's') goto yy260; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 's') goto yy265; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy255: - YYDEBUG(255, *YYCURSOR); +yy260: + YYDEBUG(260, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yych <= '\\') { - if (yych <= 0x00) goto yy256; - if (yych <= '[') goto yy250; - goto yy257; + if (yych <= 0x00) goto yy261; + if (yych <= '[') goto yy255; + goto yy262; } else { - if (yych != '{') goto yy250; + if (yych != '{') goto yy255; } -yy256: - YYDEBUG(256, *YYCURSOR); +yy261: + YYDEBUG(261, *YYCURSOR); YYCURSOR = YYMARKER; if (yyaccept <= 3) { if (yyaccept <= 1) { if (yyaccept <= 0) { - goto yy224; + goto yy229; } else { - goto yy226; + goto yy231; } } else { if (yyaccept <= 2) { - goto yy222; + goto yy227; } else { - goto yy239; + goto yy244; } } } else { if (yyaccept <= 5) { if (yyaccept <= 4) { - goto yy244; + goto yy249; } else { - goto yy261; + goto yy266; } } else { - goto yy268; + goto yy273; } } -yy257: - YYDEBUG(257, *YYCURSOR); +yy262: + YYDEBUG(262, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; if (yybm[0+yych] & 8) { - goto yy258; + goto yy263; } - goto yy250; -yy258: - YYDEBUG(258, *YYCURSOR); + goto yy255; +yy263: + YYDEBUG(263, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(259, *YYCURSOR); + YYDEBUG(264, *YYCURSOR); if (yybm[0+yych] & 8) { - goto yy258; + goto yy263; } - if (yych <= 0x00) goto yy224; - if (yych == '\\') goto yy257; - goto yy250; -yy260: - YYDEBUG(260, *YYCURSOR); + if (yych <= 0x00) goto yy229; + if (yych == '\\') goto yy262; + goto yy255; +yy265: + YYDEBUG(265, *YYCURSOR); yyaccept = 5; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 16) { - goto yy262; + goto yy267; } if (yych <= ';') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy261; - if (yych <= '\t') goto yy251; + if (yych <= 0x00) goto yy266; + if (yych <= '\t') goto yy256; } else { - if (yych != '\r') goto yy251; + if (yych != '\r') goto yy256; } } else { if (yych <= ')') { - if (yych <= '"') goto yy261; - if (yych <= '%') goto yy251; + if (yych <= '"') goto yy266; + if (yych <= '%') goto yy256; } else { - if (yych <= '/') goto yy251; - if (yych <= '9') goto yy252; - if (yych <= ':') goto yy251; + if (yych <= '/') goto yy256; + if (yych <= '9') goto yy257; + if (yych <= ':') goto yy256; } } } else { if (yych <= '_') { if (yych <= '@') { - if (yych != '=') goto yy251; + if (yych != '=') goto yy256; } else { - if (yych <= 'Z') goto yy252; - if (yych <= '^') goto yy251; - goto yy252; + if (yych <= 'Z') goto yy257; + if (yych <= '^') goto yy256; + goto yy257; } } else { if (yych <= '{') { - if (yych <= '`') goto yy251; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych <= '`') goto yy256; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych >= 0x7F) goto yy251; + if (yych == '}') goto yy256; + if (yych >= 0x7F) goto yy256; } } } -yy261: - YYDEBUG(261, *YYCURSOR); +yy266: + YYDEBUG(266, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 398 "Zend/zend_ini_scanner.l" +#line 418 "Zend/zend_ini_scanner.l" { /* TRUE value (when used outside option value/offset this causes parse error!) */ RETURN_TOKEN(BOOL_TRUE, "1", 1); } -#line 3481 "Zend/zend_ini_scanner.c" -yy262: - YYDEBUG(262, *YYCURSOR); +#line 3588 "Zend/zend_ini_scanner.c" +yy267: + YYDEBUG(267, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(263, *YYCURSOR); + YYDEBUG(268, *YYCURSOR); if (yybm[0+yych] & 16) { - goto yy262; + goto yy267; } - goto yy261; -yy264: - YYDEBUG(264, *YYCURSOR); + goto yy266; +yy269: + YYDEBUG(269, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'U') { - if (yych <= '@') goto yy251; - if (yych <= 'T') goto yy252; + if (yych <= '@') goto yy256; + if (yych <= 'T') goto yy257; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'u') goto yy265; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'u') goto yy270; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy265: - YYDEBUG(265, *YYCURSOR); +yy270: + YYDEBUG(270, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy251; - if (yych <= 'D') goto yy252; - goto yy260; + if (yych <= '@') goto yy256; + if (yych <= 'D') goto yy257; + goto yy265; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'e') goto yy260; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'e') goto yy265; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy266: - YYDEBUG(266, *YYCURSOR); +yy271: + YYDEBUG(271, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'F') { - if (yych <= '@') goto yy251; - if (yych <= 'E') goto yy252; + if (yych <= '@') goto yy256; + if (yych <= 'E') goto yy257; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'f') goto yy267; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'f') goto yy272; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy267: - YYDEBUG(267, *YYCURSOR); +yy272: + YYDEBUG(272, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yybm[0+yych] & 4) { - goto yy252; + goto yy257; } if (yych <= '%') { if (yych <= '\f') { if (yych <= 0x08) { - if (yych >= 0x01) goto yy251; + if (yych >= 0x01) goto yy256; } else { - if (yych <= '\t') goto yy269; - if (yych >= '\v') goto yy251; + if (yych <= '\t') goto yy274; + if (yych >= '\v') goto yy256; } } else { if (yych <= 0x1F) { - if (yych >= 0x0E) goto yy251; + if (yych >= 0x0E) goto yy256; } else { - if (yych <= ' ') goto yy269; - if (yych >= '#') goto yy251; + if (yych <= ' ') goto yy274; + if (yych >= '#') goto yy256; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych >= '*') goto yy251; + if (yych >= '*') goto yy256; } else { - if (yych == '<') goto yy251; + if (yych == '<') goto yy256; } } else { if (yych <= '|') { - if (yych <= '{') goto yy251; + if (yych <= '{') goto yy256; } else { - if (yych != '~') goto yy251; + if (yych != '~') goto yy256; } } } -yy268: - YYDEBUG(268, *YYCURSOR); +yy273: + YYDEBUG(273, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 402 "Zend/zend_ini_scanner.l" +#line 422 "Zend/zend_ini_scanner.l" { /* FALSE value (when used outside option value/offset this causes parse error!)*/ RETURN_TOKEN(BOOL_FALSE, "", 0); } -#line 3685 "Zend/zend_ini_scanner.c" -yy269: - YYDEBUG(269, *YYCURSOR); +#line 3792 "Zend/zend_ini_scanner.c" +yy274: + YYDEBUG(274, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(270, *YYCURSOR); - if (yych == '\t') goto yy269; - if (yych == ' ') goto yy269; - goto yy268; -yy271: - YYDEBUG(271, *YYCURSOR); + YYDEBUG(275, *YYCURSOR); + if (yych == '\t') goto yy274; + if (yych == ' ') goto yy274; + goto yy273; +yy276: + YYDEBUG(276, *YYCURSOR); yyaccept = 6; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '<') { if (yych <= ' ') { if (yych <= '\n') { - if (yych <= 0x00) goto yy268; - if (yych <= 0x08) goto yy251; - if (yych <= '\t') goto yy269; - goto yy268; + if (yych <= 0x00) goto yy273; + if (yych <= 0x08) goto yy256; + if (yych <= '\t') goto yy274; + goto yy273; } else { - if (yych == '\r') goto yy268; - if (yych <= 0x1F) goto yy251; - goto yy269; + if (yych == '\r') goto yy273; + if (yych <= 0x1F) goto yy256; + goto yy274; } } else { if (yych <= '/') { - if (yych <= '"') goto yy268; - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy268; - goto yy251; + if (yych <= '"') goto yy273; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy273; + goto yy256; } else { - if (yych <= '9') goto yy252; - if (yych == ';') goto yy268; - goto yy251; + if (yych <= '9') goto yy257; + if (yych == ';') goto yy273; + goto yy256; } } } else { if (yych <= '`') { if (yych <= 'N') { - if (yych <= '=') goto yy268; - if (yych <= '@') goto yy251; - if (yych <= 'M') goto yy252; - goto yy274; + if (yych <= '=') goto yy273; + if (yych <= '@') goto yy256; + if (yych <= 'M') goto yy257; + goto yy279; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'n') goto yy274; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'n') goto yy279; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy268; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy273; + goto yy256; } } } -yy272: - YYDEBUG(272, *YYCURSOR); +yy277: + YYDEBUG(277, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy251; - if (yych <= 'K') goto yy252; + if (yych <= '@') goto yy256; + if (yych <= 'K') goto yy257; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'l') goto yy273; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'l') goto yy278; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy273: - YYDEBUG(273, *YYCURSOR); +yy278: + YYDEBUG(278, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy251; - if (yych <= 'K') goto yy252; - goto yy267; + if (yych <= '@') goto yy256; + if (yych <= 'K') goto yy257; + goto yy272; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'l') goto yy267; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'l') goto yy272; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy274: - YYDEBUG(274, *YYCURSOR); +yy279: + YYDEBUG(279, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy251; - if (yych <= 'D') goto yy252; - goto yy267; + if (yych <= '@') goto yy256; + if (yych <= 'D') goto yy257; + goto yy272; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'e') goto yy267; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'e') goto yy272; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy275: - YYDEBUG(275, *YYCURSOR); +yy280: + YYDEBUG(280, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'L') { - if (yych <= '@') goto yy251; - if (yych <= 'K') goto yy252; + if (yych <= '@') goto yy256; + if (yych <= 'K') goto yy257; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'l') goto yy276; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'l') goto yy281; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy276: - YYDEBUG(276, *YYCURSOR); +yy281: + YYDEBUG(281, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'S') { - if (yych <= '@') goto yy251; - if (yych <= 'R') goto yy252; + if (yych <= '@') goto yy256; + if (yych <= 'R') goto yy257; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 's') goto yy277; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 's') goto yy282; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy277: - YYDEBUG(277, *YYCURSOR); +yy282: + YYDEBUG(282, *YYCURSOR); yyaccept = 4; yych = *(YYMARKER = ++YYCURSOR); if (yych <= '=') { if (yych <= '"') { if (yych <= '\n') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy251; - goto yy244; + if (yych <= 0x00) goto yy249; + if (yych <= 0x08) goto yy256; + goto yy249; } else { - if (yych == '\r') goto yy244; - if (yych <= 0x1F) goto yy251; - goto yy244; + if (yych == '\r') goto yy249; + if (yych <= 0x1F) goto yy256; + goto yy249; } } else { if (yych <= '9') { - if (yych <= '%') goto yy251; - if (yych <= ')') goto yy244; - if (yych <= '/') goto yy251; - goto yy252; + if (yych <= '%') goto yy256; + if (yych <= ')') goto yy249; + if (yych <= '/') goto yy256; + goto yy257; } else { - if (yych == ';') goto yy244; - if (yych <= '<') goto yy251; - goto yy244; + if (yych == ';') goto yy249; + if (yych <= '<') goto yy256; + goto yy249; } } } else { if (yych <= '`') { if (yych <= 'E') { - if (yych <= '@') goto yy251; - if (yych <= 'D') goto yy252; - goto yy267; + if (yych <= '@') goto yy256; + if (yych <= 'D') goto yy257; + goto yy272; } else { - if (yych <= 'Z') goto yy252; - if (yych == '_') goto yy252; - goto yy251; + if (yych <= 'Z') goto yy257; + if (yych == '_') goto yy257; + goto yy256; } } else { if (yych <= '{') { - if (yych == 'e') goto yy267; - if (yych <= 'z') goto yy252; - goto yy251; + if (yych == 'e') goto yy272; + if (yych <= 'z') goto yy257; + goto yy256; } else { - if (yych == '}') goto yy251; - if (yych <= '~') goto yy244; - goto yy251; + if (yych == '}') goto yy256; + if (yych <= '~') goto yy249; + goto yy256; } } } -yy278: - YYDEBUG(278, *YYCURSOR); +yy283: + YYDEBUG(283, *YYCURSOR); ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy279: - YYDEBUG(279, *YYCURSOR); +yy284: + YYDEBUG(284, *YYCURSOR); if (yybm[0+yych] & 32) { - goto yy278; + goto yy283; } - if (yych >= '\r') goto yy282; -yy280: - YYDEBUG(280, *YYCURSOR); + if (yych >= '\r') goto yy287; +yy285: + YYDEBUG(285, *YYCURSOR); ++YYCURSOR; -yy281: - YYDEBUG(281, *YYCURSOR); +yy286: + YYDEBUG(286, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 528 "Zend/zend_ini_scanner.l" +#line 554 "Zend/zend_ini_scanner.l" { /* Comment */ BEGIN(INITIAL); SCNG(lineno)++; return END_OF_LINE; } -#line 4067 "Zend/zend_ini_scanner.c" -yy282: - YYDEBUG(282, *YYCURSOR); +#line 4174 "Zend/zend_ini_scanner.c" +yy287: + YYDEBUG(287, *YYCURSOR); yych = *++YYCURSOR; - if (yych == '\n') goto yy280; - goto yy281; -yy283: - YYDEBUG(283, *YYCURSOR); + if (yych == '\n') goto yy285; + goto yy286; +yy288: + YYDEBUG(288, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(284, *YYCURSOR); + YYDEBUG(289, *YYCURSOR); if (yybm[0+yych] & 64) { - goto yy283; + goto yy288; } if (yych <= '%') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy239; - goto yy250; + if (yych <= 0x00) goto yy244; + goto yy255; } else { - if (yych <= '\n') goto yy239; - if (yych <= '\f') goto yy250; - goto yy239; + if (yych <= '\n') goto yy244; + if (yych <= '\f') goto yy255; + goto yy244; } } else { if (yych <= '"') { - if (yych <= 0x1F) goto yy250; - goto yy239; + if (yych <= 0x1F) goto yy255; + goto yy244; } else { - if (yych == '$') goto yy255; - goto yy250; + if (yych == '$') goto yy260; + goto yy255; } } } else { if (yych <= '=') { if (yych <= ':') { - if (yych <= ')') goto yy239; - goto yy250; + if (yych <= ')') goto yy244; + goto yy255; } else { - if (yych == '<') goto yy250; - goto yy239; + if (yych == '<') goto yy255; + goto yy244; } } else { if (yych <= '|') { - if (yych <= '{') goto yy250; - goto yy239; + if (yych <= '{') goto yy255; + goto yy244; } else { - if (yych == '~') goto yy239; - goto yy250; + if (yych == '~') goto yy244; + goto yy255; } } } -yy285: - YYDEBUG(285, *YYCURSOR); +yy290: + YYDEBUG(290, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(286, *YYCURSOR); + YYDEBUG(291, *YYCURSOR); if (yych <= '-') { if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x00) goto yy239; - if (yych <= 0x08) goto yy250; - goto yy239; + if (yych <= 0x00) goto yy244; + if (yych <= 0x08) goto yy255; + goto yy244; } else { - if (yych == '\r') goto yy239; - goto yy250; + if (yych == '\r') goto yy244; + goto yy255; } } else { if (yych <= '$') { - if (yych <= '"') goto yy239; - if (yych <= '#') goto yy250; - goto yy255; + if (yych <= '"') goto yy244; + if (yych <= '#') goto yy255; + goto yy260; } else { - if (yych <= '%') goto yy250; - if (yych <= ')') goto yy239; - goto yy250; + if (yych <= '%') goto yy255; + if (yych <= ')') goto yy244; + goto yy255; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '.') goto yy283; - if (yych <= '/') goto yy250; - goto yy285; + if (yych <= '.') goto yy288; + if (yych <= '/') goto yy255; + goto yy290; } else { - if (yych == ';') goto yy239; - goto yy250; + if (yych == ';') goto yy244; + goto yy255; } } else { if (yych <= '|') { - if (yych <= '=') goto yy239; - if (yych <= '{') goto yy250; - goto yy239; + if (yych <= '=') goto yy244; + if (yych <= '{') goto yy255; + goto yy244; } else { - if (yych == '~') goto yy239; - goto yy250; + if (yych == '~') goto yy244; + goto yy255; } } } -yy287: - YYDEBUG(287, *YYCURSOR); +yy292: + YYDEBUG(292, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(288, *YYCURSOR); + YYDEBUG(293, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy239; - goto yy250; + if (yych <= 0x00) goto yy244; + goto yy255; } else { - if (yych <= '\n') goto yy239; - if (yych <= '\f') goto yy250; - goto yy239; + if (yych <= '\n') goto yy244; + if (yych <= '\f') goto yy255; + goto yy244; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy250; - if (yych <= '"') goto yy239; - goto yy250; + if (yych <= 0x1F) goto yy255; + if (yych <= '"') goto yy244; + goto yy255; } else { - if (yych <= '$') goto yy255; - if (yych <= '%') goto yy250; - goto yy239; + if (yych <= '$') goto yy260; + if (yych <= '%') goto yy255; + goto yy244; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy250; - goto yy287; + if (yych <= '/') goto yy255; + goto yy292; } else { - if (yych == ';') goto yy239; - goto yy250; + if (yych == ';') goto yy244; + goto yy255; } } else { if (yych <= '|') { - if (yych <= '=') goto yy239; - if (yych <= '{') goto yy250; - goto yy239; + if (yych <= '=') goto yy244; + if (yych <= '{') goto yy255; + goto yy244; } else { - if (yych == '~') goto yy239; - goto yy250; + if (yych == '~') goto yy244; + goto yy255; } } } -yy289: - YYDEBUG(289, *YYCURSOR); +yy294: + YYDEBUG(294, *YYCURSOR); yyaccept = 3; YYMARKER = ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(290, *YYCURSOR); + YYDEBUG(295, *YYCURSOR); if (yych <= ')') { if (yych <= '\r') { if (yych <= 0x08) { - if (yych <= 0x00) goto yy239; - goto yy250; + if (yych <= 0x00) goto yy244; + goto yy255; } else { - if (yych <= '\n') goto yy239; - if (yych <= '\f') goto yy250; - goto yy239; + if (yych <= '\n') goto yy244; + if (yych <= '\f') goto yy255; + goto yy244; } } else { if (yych <= '#') { - if (yych <= 0x1F) goto yy250; - if (yych <= '"') goto yy239; - goto yy250; + if (yych <= 0x1F) goto yy255; + if (yych <= '"') goto yy244; + goto yy255; } else { - if (yych <= '$') goto yy255; - if (yych <= '%') goto yy250; - goto yy239; + if (yych <= '$') goto yy260; + if (yych <= '%') goto yy255; + goto yy244; } } } else { if (yych <= '<') { if (yych <= '9') { - if (yych <= '/') goto yy250; - goto yy289; + if (yych <= '/') goto yy255; + goto yy294; } else { - if (yych == ';') goto yy239; - goto yy250; + if (yych == ';') goto yy244; + goto yy255; } } else { if (yych <= '|') { - if (yych <= '=') goto yy239; - if (yych <= '{') goto yy250; - goto yy239; + if (yych <= '=') goto yy244; + if (yych <= '{') goto yy255; + goto yy244; } else { - if (yych == '~') goto yy239; - goto yy250; + if (yych == '~') goto yy244; + goto yy255; } } } -yy291: - YYDEBUG(291, *YYCURSOR); +yy296: + YYDEBUG(296, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; - YYDEBUG(292, *YYCURSOR); + YYDEBUG(297, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy291; + goto yy296; } - YYDEBUG(293, *YYCURSOR); + YYDEBUG(298, *YYCURSOR); ++YYCURSOR; - YYDEBUG(294, *YYCURSOR); + YYDEBUG(299, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 354 "Zend/zend_ini_scanner.l" +#line 365 "Zend/zend_ini_scanner.l" { /* Raw string */ /* Eat leading and trailing single quotes */ if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') { @@ -4284,66 +4391,66 @@ yy291: } RETURN_TOKEN(TC_RAW, yytext, yyleng); } -#line 4288 "Zend/zend_ini_scanner.c" -yy295: - YYDEBUG(295, *YYCURSOR); +#line 4395 "Zend/zend_ini_scanner.c" +yy300: + YYDEBUG(300, *YYCURSOR); ++YYCURSOR; - YYDEBUG(296, *YYCURSOR); + YYDEBUG(301, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 384 "Zend/zend_ini_scanner.l" +#line 398 "Zend/zend_ini_scanner.l" { /* Variable start */ yy_push_state(ST_VARNAME TSRMLS_CC); return TC_DOLLAR_CURLY; } -#line 4299 "Zend/zend_ini_scanner.c" -yy297: - YYDEBUG(297, *YYCURSOR); +#line 4406 "Zend/zend_ini_scanner.c" +yy302: + YYDEBUG(302, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy298: - YYDEBUG(298, *YYCURSOR); - if (yych == '\t') goto yy297; - if (yych == ' ') goto yy297; - goto yy231; -yy299: - YYDEBUG(299, *YYCURSOR); +yy303: + YYDEBUG(303, *YYCURSOR); + if (yych == '\t') goto yy302; + if (yych == ' ') goto yy302; + goto yy236; +yy304: + YYDEBUG(304, *YYCURSOR); yych = *++YYCURSOR; - goto yy228; -yy300: - YYDEBUG(300, *YYCURSOR); + goto yy233; +yy305: + YYDEBUG(305, *YYCURSOR); yyaccept = 1; YYMARKER = ++YYCURSOR; YYFILL(2); yych = *YYCURSOR; -yy301: - YYDEBUG(301, *YYCURSOR); +yy306: + YYDEBUG(306, *YYCURSOR); if (yych <= 0x1F) { if (yych <= '\n') { - if (yych <= 0x08) goto yy226; - if (yych <= '\t') goto yy300; - goto yy299; + if (yych <= 0x08) goto yy231; + if (yych <= '\t') goto yy305; + goto yy304; } else { - if (yych == '\r') goto yy303; - goto yy226; + if (yych == '\r') goto yy308; + goto yy231; } } else { if (yych <= '"') { - if (yych <= ' ') goto yy300; - if (yych <= '!') goto yy226; + if (yych <= ' ') goto yy305; + if (yych <= '!') goto yy231; } else { - if (yych == ';') goto yy278; - goto yy226; + if (yych == ';') goto yy283; + goto yy231; } } - YYDEBUG(302, *YYCURSOR); + YYDEBUG(307, *YYCURSOR); yych = *++YYCURSOR; - goto yy233; -yy303: - YYDEBUG(303, *YYCURSOR); + goto yy238; +yy308: + YYDEBUG(308, *YYCURSOR); ++YYCURSOR; - if ((yych = *YYCURSOR) == '\n') goto yy299; - goto yy228; + if ((yych = *YYCURSOR) == '\n') goto yy304; + goto yy233; } /* *********************************** */ yyc_ST_VARNAME: @@ -4353,7 +4460,7 @@ yyc_ST_VARNAME: 128, 0, 0, 128, 128, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 128, 0, 128, 0, 128, + 128, 0, 0, 128, 0, 128, 0, 128, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 128, 0, 128, 128, @@ -4382,87 +4489,93 @@ yyc_ST_VARNAME: 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, }; - YYDEBUG(304, *YYCURSOR); + YYDEBUG(309, *YYCURSOR); YYFILL(2); yych = *YYCURSOR; if (yych <= '\'') { - if (yych <= 0x1F) { + if (yych <= ' ') { if (yych <= '\n') { - if (yych >= '\t') goto yy308; + if (yych >= '\t') goto yy313; } else { - if (yych == '\r') goto yy308; + if (yych == '\r') goto yy313; } } else { if (yych <= '$') { - if (yych != '#') goto yy308; + if (yych != '#') goto yy313; } else { - if (yych == '&') goto yy308; + if (yych == '&') goto yy313; } } } else { if (yych <= 'Z') { if (yych <= ';') { - if (yych <= ')') goto yy308; - if (yych >= ';') goto yy308; + if (yych <= ')') goto yy313; + if (yych >= ';') goto yy313; } else { - if (yych == '=') goto yy308; + if (yych == '=') goto yy313; } } else { if (yych <= '|') { - if (yych <= '[') goto yy308; - if (yych >= '{') goto yy308; + if (yych <= '[') goto yy313; + if (yych >= '{') goto yy313; } else { - if (yych <= '}') goto yy310; - if (yych <= '~') goto yy308; + if (yych <= '}') goto yy315; + if (yych <= '~') goto yy313; } } } - YYDEBUG(306, *YYCURSOR); + YYDEBUG(311, *YYCURSOR); ++YYCURSOR; yych = *YYCURSOR; - goto yy313; -yy307: - YYDEBUG(307, *YYCURSOR); + goto yy318; +yy312: + YYDEBUG(312, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 389 "Zend/zend_ini_scanner.l" +#line 403 "Zend/zend_ini_scanner.l" { /* Variable name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + RETURN_TOKEN(TC_VARNAME, yytext, yyleng); } -#line 4432 "Zend/zend_ini_scanner.c" -yy308: - YYDEBUG(308, *YYCURSOR); +#line 4545 "Zend/zend_ini_scanner.c" +yy313: + YYDEBUG(313, *YYCURSOR); ++YYCURSOR; - YYDEBUG(309, *YYCURSOR); + YYDEBUG(314, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 546 "Zend/zend_ini_scanner.l" +#line 572 "Zend/zend_ini_scanner.l" { return 0; } -#line 4442 "Zend/zend_ini_scanner.c" -yy310: - YYDEBUG(310, *YYCURSOR); +#line 4555 "Zend/zend_ini_scanner.c" +yy315: + YYDEBUG(315, *YYCURSOR); ++YYCURSOR; - YYDEBUG(311, *YYCURSOR); + YYDEBUG(316, *YYCURSOR); yyleng = YYCURSOR - SCNG(yy_text); -#line 393 "Zend/zend_ini_scanner.l" +#line 413 "Zend/zend_ini_scanner.l" { /* Variable end */ yy_pop_state(TSRMLS_C); return '}'; } -#line 4453 "Zend/zend_ini_scanner.c" -yy312: - YYDEBUG(312, *YYCURSOR); +#line 4566 "Zend/zend_ini_scanner.c" +yy317: + YYDEBUG(317, *YYCURSOR); ++YYCURSOR; YYFILL(1); yych = *YYCURSOR; -yy313: - YYDEBUG(313, *YYCURSOR); +yy318: + YYDEBUG(318, *YYCURSOR); if (yybm[0+yych] & 128) { - goto yy312; + goto yy317; } - goto yy307; + goto yy312; } } -#line 550 "Zend/zend_ini_scanner.l" +#line 576 "Zend/zend_ini_scanner.l" } diff --git a/Zend/zend_ini_scanner.h b/Zend/zend_ini_scanner.h index f3109b1c3..07d1102c6 100644 --- a/Zend/zend_ini_scanner.h +++ b/Zend/zend_ini_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_ini_scanner.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef _ZEND_INI_SCANNER_H #define _ZEND_INI_SCANNER_H diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l index e87c6d74e..998665bc2 100644 --- a/Zend/zend_ini_scanner.l +++ b/Zend/zend_ini_scanner.l @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -20,7 +20,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ini_scanner.l 286913 2009-08-07 15:44:37Z jani $ */ +/* $Id: zend_ini_scanner.l 294698 2010-02-07 12:08:22Z pajoye $ */ #include <errno.h> #include "zend.h" @@ -105,6 +105,17 @@ ZEND_API ts_rsrc_id ini_scanner_globals_id; ZEND_API zend_ini_scanner_globals ini_scanner_globals; #endif +/* Eat leading whitespace */ +#define EAT_LEADING_WHITESPACE() \ + while (yytext[0]) { \ + if (yytext[0] == ' ' || yytext[0] == '\t') { \ + SCNG(yy_text)++; \ + yyleng--; \ + } else { \ + break; \ + } \ + } + /* Eat trailing whitespace + extra char */ #define EAT_TRAILING_WHITESPACE_EX(ch) \ while (yyleng > 0 && ( \ @@ -325,8 +336,8 @@ ANY_CHAR (.|[\n\t]) NEWLINE ("\r"|"\n"|"\r\n") TABS_AND_SPACES [ \t] WHITESPACE [ \t]+ -CONSTANT [a-zA-Z][a-zA-Z0-9_]* -LABEL [^=\n\r\t ;|&$~(){}!"\[]+ +CONSTANT [a-zA-Z_][a-zA-Z0-9_]* +LABEL [^=\n\r\t;|&$~(){}!"\[]+ TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}] OPERATORS [&|~()!] DOLLAR_CURLY "${" @@ -367,6 +378,9 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) } <INITIAL>{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + /* Eat trailing whitespace and [ */ EAT_TRAILING_WHITESPACE_EX('['); @@ -387,6 +401,12 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) } <ST_VARNAME>{LABEL} { /* Variable name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + RETURN_TOKEN(TC_VARNAME, yytext, yyleng); } @@ -404,6 +424,12 @@ SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR}) } <INITIAL>{LABEL} { /* Get option name */ + /* Eat leading whitespace */ + EAT_LEADING_WHITESPACE(); + + /* Eat trailing whitespace */ + EAT_TRAILING_WHITESPACE(); + RETURN_TOKEN(TC_LABEL, yytext, yyleng); } diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h index 280132abd..1956b6225 100644 --- a/Zend/zend_ini_scanner_defs.h +++ b/Zend/zend_ini_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Fri Aug 7 18:29:12 2009 */ +/* Generated by re2c 0.13.5 on Sun Feb 7 13:25:37 2010 */ #line 3 "Zend/zend_ini_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c index c14c52437..7dc47b138 100755 --- a/Zend/zend_interfaces.c +++ b/Zend/zend_interfaces.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.c 277750 2009-03-25 10:39:26Z dmitry $ */ +/* $Id: zend_interfaces.c 294549 2010-02-05 00:37:07Z pajoye $ */ #include "zend.h" #include "zend_API.h" @@ -353,6 +353,10 @@ static int zend_implement_aggregate(zend_class_entry *interface, zend_class_entr if (class_type->num_interfaces) { for (i = 0; i < class_type->num_interfaces; i++) { if (class_type->interfaces[i] == zend_ce_iterator) { + zend_error(E_ERROR, "Class %s cannot implement both %s and %s at the same time", + class_type->name, + interface->name, + zend_ce_iterator->name); return FAILURE; } if (class_type->interfaces[i] == zend_ce_traversable) { @@ -378,8 +382,14 @@ static int zend_implement_iterator(zend_class_entry *interface, zend_class_entry if (class_type->type == ZEND_INTERNAL_CLASS) { /* inheritance ensures the class has the necessary userland methods */ return SUCCESS; - } else if (class_type->get_iterator != zend_user_it_get_new_iterator) { + } else { /* c-level get_iterator cannot be changed */ + if (class_type->get_iterator == zend_user_it_get_new_iterator) { + zend_error(E_ERROR, "Class %s cannot implement both %s and %s at the same time", + class_type->name, + interface->name, + zend_ce_aggregate->name); + } return FAILURE; } } diff --git a/Zend/zend_interfaces.h b/Zend/zend_interfaces.h index 7ff906537..c75e6dde8 100755 --- a/Zend/zend_interfaces.h +++ b/Zend/zend_interfaces.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_interfaces.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_interfaces.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_INTERFACES_H #define ZEND_INTERFACES_H diff --git a/Zend/zend_istdiostream.h b/Zend/zend_istdiostream.h index da1cfed87..4b38a8c15 100644 --- a/Zend/zend_istdiostream.h +++ b/Zend/zend_istdiostream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_istdiostream.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_istdiostream.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef _ZEND_STDIOSTREAM #define _ZEND_STDIOSTREAM diff --git a/Zend/zend_iterators.c b/Zend/zend_iterators.c index 9d9f04595..76588e245 100755 --- a/Zend/zend_iterators.c +++ b/Zend/zend_iterators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_iterators.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_API.h" diff --git a/Zend/zend_iterators.h b/Zend/zend_iterators.h index 6c90d817b..b10840373 100755 --- a/Zend/zend_iterators.h +++ b/Zend/zend_iterators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_iterators.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_iterators.h 293155 2010-01-05 20:46:53Z sebastian $ */ /* These iterators were designed to operate within the foreach() * structures provided by the engine, but could be extended for use diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c index faf71f822..6461dc11e 100644 --- a/Zend/zend_language_parser.c +++ b/Zend/zend_language_parser.c @@ -334,7 +334,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -349,7 +349,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y 277815 2009-03-26 12:37:54Z dmitry $ */ +/* $Id: zend_language_parser.y 293154 2010-01-05 20:40:23Z sebastian $ */ /* * LALR shift/reduce conflicts and how they are resolved: diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 5923ff550..2635fdb5d 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_parser.y 277815 2009-03-26 12:37:54Z dmitry $ */ +/* $Id: zend_language_parser.y 293154 2010-01-05 20:40:23Z sebastian $ */ /* * LALR shift/reduce conflicts and how they are resolved: diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c index 1cb027f11..3f5fefa7c 100644 --- a/Zend/zend_language_scanner.c +++ b/Zend/zend_language_scanner.c @@ -1,10 +1,10 @@ -/* Generated by re2c 0.13.5 on Mon May 04 19:38:30 2009 */ +/* Generated by re2c 0.13.5 on Mon Nov 16 23:30:01 2009 */ #line 1 "Zend/zend_language_scanner.l" /* +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -23,7 +23,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.c 279948 2009-05-05 01:44:52Z mattwil $ */ +/* $Id: zend_language_scanner.c 293155 2010-01-05 20:46:53Z sebastian $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -685,12 +685,12 @@ ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC) { if (SCNG(script_org)) { efree(SCNG(script_org)); + SCNG(script_org) = NULL; } - SCNG(script_org_size) = n; - SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size)); - memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n); + SCNG(script_org_size) = n; - SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1); + SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1); + memcpy(SCNG(script_org), buf, n); *(SCNG(script_org)+SCNG(script_org_size)) = '\0'; return 0; diff --git a/Zend/zend_language_scanner.h b/Zend/zend_language_scanner.h index 5add51c97..f564c03c2 100644 --- a/Zend/zend_language_scanner.h +++ b/Zend/zend_language_scanner.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_language_scanner.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_SCANNER_H #define ZEND_SCANNER_H diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l index 9d42299dc..250d307d5 100644 --- a/Zend/zend_language_scanner.l +++ b/Zend/zend_language_scanner.l @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -21,7 +21,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_language_scanner.l 279941 2009-05-05 01:35:44Z mattwil $ */ +/* $Id: zend_language_scanner.l 293154 2010-01-05 20:40:23Z sebastian $ */ #if 0 # define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c) @@ -683,12 +683,12 @@ ZEND_API int zend_multibyte_read_script(unsigned char *buf, size_t n TSRMLS_DC) { if (SCNG(script_org)) { efree(SCNG(script_org)); + SCNG(script_org) = NULL; } - SCNG(script_org_size) = n; - SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size)); - memcpy(SCNG(script_org) + SCNG(script_org_size) - n, buf, n); + SCNG(script_org_size) = n; - SCNG(script_org) = (unsigned char*)erealloc(SCNG(script_org), SCNG(script_org_size) + 1); + SCNG(script_org) = (unsigned char*)emalloc(SCNG(script_org_size) + 1); + memcpy(SCNG(script_org), buf, n); *(SCNG(script_org)+SCNG(script_org_size)) = '\0'; return 0; diff --git a/Zend/zend_language_scanner_defs.h b/Zend/zend_language_scanner_defs.h index 48bd8d539..b2bce820f 100644 --- a/Zend/zend_language_scanner_defs.h +++ b/Zend/zend_language_scanner_defs.h @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Mon May 04 19:38:30 2009 */ +/* Generated by re2c 0.13.5 on Thu Sep 10 15:34:33 2009 */ #line 3 "Zend/zend_language_scanner_defs.h" enum YYCONDTYPE { diff --git a/Zend/zend_list.c b/Zend/zend_list.c index 2f71ea718..985a1fb33 100644 --- a/Zend/zend_list.c +++ b/Zend/zend_list.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_list.c 293155 2010-01-05 20:46:53Z sebastian $ */ /* resource lists */ diff --git a/Zend/zend_list.h b/Zend/zend_list.h index a38e057dc..74ee45146 100644 --- a/Zend/zend_list.h +++ b/Zend/zend_list.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_list.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_list.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_LIST_H #define ZEND_LIST_H diff --git a/Zend/zend_llist.c b/Zend/zend_llist.c index b48b15072..b23fe1cce 100644 --- a/Zend/zend_llist.c +++ b/Zend/zend_llist.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_llist.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_llist.h" diff --git a/Zend/zend_llist.h b/Zend/zend_llist.h index 47ec5a0d0..ab1e643be 100644 --- a/Zend/zend_llist.h +++ b/Zend/zend_llist.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_llist.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_llist.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_LLIST_H #define ZEND_LLIST_H diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h index 67736704f..86807eee2 100644 --- a/Zend/zend_modules.h +++ b/Zend/zend_modules.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_modules.h 282827 2009-06-26 15:44:19Z johannes $ */ +/* $Id: zend_modules.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef MODULES_H #define MODULES_H diff --git a/Zend/zend_multibyte.c b/Zend/zend_multibyte.c index 7d270ade9..4b82a67bd 100644 --- a/Zend/zend_multibyte.c +++ b/Zend/zend_multibyte.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.c 277438 2009-03-18 17:44:25Z moriyoshi $ */ +/* $Id: zend_multibyte.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_compile.h" diff --git a/Zend/zend_multibyte.h b/Zend/zend_multibyte.h index ee3e2743f..c4c0f1c87 100644 --- a/Zend/zend_multibyte.h +++ b/Zend/zend_multibyte.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multibyte.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_multibyte.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_MULTIBYTE_H #define ZEND_MULTIBYTE_H diff --git a/Zend/zend_multiply.h b/Zend/zend_multiply.h index afac089f9..cb790b722 100644 --- a/Zend/zend_multiply.h +++ b/Zend/zend_multiply.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_multiply.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_multiply.h 293155 2010-01-05 20:46:53Z sebastian $ */ #if defined(__i386__) && defined(__GNUC__) diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 7c081caab..f43ed7f91 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.c 282413 2009-06-19 03:29:47Z scottmac $ */ +/* $Id: zend_object_handlers.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_object_handlers.h b/Zend/zend_object_handlers.h index 88871ef29..721bfed43 100644 --- a/Zend/zend_object_handlers.h +++ b/Zend/zend_object_handlers.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_object_handlers.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_object_handlers.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_OBJECT_HANDLERS_H #define ZEND_OBJECT_HANDLERS_H diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c index f69b82d9d..5aa15551b 100644 --- a/Zend/zend_objects.c +++ b/Zend/zend_objects.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.c 289775 2009-10-19 21:43:34Z johannes $ */ +/* $Id: zend_objects.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h index 1a87ca3a2..c27de0af6 100644 --- a/Zend/zend_objects.h +++ b/Zend/zend_objects.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_objects.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_OBJECTS_H #define ZEND_OBJECTS_H diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c index 020796e95..9f83fd486 100644 --- a/Zend/zend_objects_API.c +++ b/Zend/zend_objects_API.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.c 275561 2009-02-11 09:58:23Z tony2001 $ */ +/* $Id: zend_objects_API.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_globals.h" diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h index 643eaffba..1f1a0ffe9 100644 --- a/Zend/zend_objects_API.h +++ b/Zend/zend_objects_API.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects_API.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_objects_API.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_OBJECTS_API_H #define ZEND_OBJECTS_API_H diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index a721b0d7b..f31ba2473 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_opcode.c 281737 2009-06-05 23:20:59Z shire $ */ +/* $Id: zend_opcode.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include <stdio.h> diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index 6ee0d8e59..fa02c75e0 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c 281670 2009-06-04 18:20:45Z mattwil $ */ +/* $Id: zend_operators.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include <ctype.h> @@ -1227,6 +1227,12 @@ ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{ if (result==op1) { /* special case, perform operations on result */ uint res_len = Z_STRLEN_P(op1) + Z_STRLEN_P(op2); + if (Z_STRLEN_P(result) < 0 || (int) (Z_STRLEN_P(op1) + Z_STRLEN_P(op2)) < 0) { + efree(Z_STRVAL_P(result)); + ZVAL_EMPTY_STRING(result); + zend_error(E_ERROR, "String size overflow"); + } + Z_STRVAL_P(result) = erealloc(Z_STRVAL_P(result), res_len+1); memcpy(Z_STRVAL_P(result)+Z_STRLEN_P(result), Z_STRVAL_P(op2), Z_STRLEN_P(op2)); diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index 03cd707d4..bc2428479 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.h 281670 2009-06-04 18:20:45Z mattwil $ */ +/* $Id: zend_operators.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_OPERATORS_H #define ZEND_OPERATORS_H diff --git a/Zend/zend_ptr_stack.c b/Zend/zend_ptr_stack.c index 5625a349d..d866e6b85 100644 --- a/Zend/zend_ptr_stack.c +++ b/Zend/zend_ptr_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_ptr_stack.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_ptr_stack.h" diff --git a/Zend/zend_ptr_stack.h b/Zend/zend_ptr_stack.h index bd2f8b2d3..490b98262 100644 --- a/Zend/zend_ptr_stack.h +++ b/Zend/zend_ptr_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ptr_stack.h 281712 2009-06-05 11:21:31Z lbarnaud $ */ +/* $Id: zend_ptr_stack.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_PTR_STACK_H #define ZEND_PTR_STACK_H diff --git a/Zend/zend_qsort.c b/Zend/zend_qsort.c index 8b65f964d..b1447428f 100644 --- a/Zend/zend_qsort.c +++ b/Zend/zend_qsort.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_qsort.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_qsort.h b/Zend/zend_qsort.h index 1044320d9..667df71bd 100644 --- a/Zend/zend_qsort.h +++ b/Zend/zend_qsort.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_qsort.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_qsort.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_QSORT_H #define ZEND_QSORT_H diff --git a/Zend/zend_sprintf.c b/Zend/zend_sprintf.c index de1dd208f..4e9eb8ecc 100644 --- a/Zend/zend_sprintf.c +++ b/Zend/zend_sprintf.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_sprintf.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_sprintf.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include <stdio.h> diff --git a/Zend/zend_stack.c b/Zend/zend_stack.c index a8da8244c..caa7f3698 100644 --- a/Zend/zend_stack.c +++ b/Zend/zend_stack.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_stack.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_stack.h" diff --git a/Zend/zend_stack.h b/Zend/zend_stack.h index 5aed0321b..408c383ec 100644 --- a/Zend/zend_stack.h +++ b/Zend/zend_stack.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stack.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_stack.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_STACK_H #define ZEND_STACK_H diff --git a/Zend/zend_static_allocator.c b/Zend/zend_static_allocator.c index efa299e94..6a985c7a5 100644 --- a/Zend/zend_static_allocator.c +++ b/Zend/zend_static_allocator.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_static_allocator.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend_static_allocator.h" diff --git a/Zend/zend_static_allocator.h b/Zend/zend_static_allocator.h index 70cfab744..9921a8789 100644 --- a/Zend/zend_static_allocator.h +++ b/Zend/zend_static_allocator.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_static_allocator.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_static_allocator.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_STATIC_ALLOCATOR_H #define ZEND_STATIC_ALLOCATOR_H diff --git a/Zend/zend_stream.c b/Zend/zend_stream.c index 2b99358f0..d3548517a 100644 --- a/Zend/zend_stream.c +++ b/Zend/zend_stream.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.c 277834 2009-03-26 17:28:49Z dmitry $ */ +/* $Id: zend_stream.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" diff --git a/Zend/zend_stream.h b/Zend/zend_stream.h index f9c08eaf8..e40a33b46 100644 --- a/Zend/zend_stream.h +++ b/Zend/zend_stream.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_stream.h 282248 2009-06-16 14:33:33Z felipe $ */ +/* $Id: zend_stream.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_STREAM_H #define ZEND_STREAM_H diff --git a/Zend/zend_strtod.h b/Zend/zend_strtod.h index 01eb99375..c112d295c 100644 --- a/Zend/zend_strtod.h +++ b/Zend/zend_strtod.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_strtod.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_strtod.h 293155 2010-01-05 20:46:53Z sebastian $ */ /* This is a header file for the strtod implementation by David M. Gay which * can be found in zend_strtod.c */ diff --git a/Zend/zend_ts_hash.c b/Zend/zend_ts_hash.c index cc27dc9c5..43f719ddc 100644 --- a/Zend/zend_ts_hash.c +++ b/Zend/zend_ts_hash.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.c 273192 2009-01-09 19:16:55Z tony2001 $ */ +/* $Id: zend_ts_hash.c 293155 2010-01-05 20:46:53Z sebastian $ */ #include "zend.h" #include "zend_ts_hash.h" diff --git a/Zend/zend_ts_hash.h b/Zend/zend_ts_hash.h index d6ffb7726..bdc2a8d8d 100644 --- a/Zend/zend_ts_hash.h +++ b/Zend/zend_ts_hash.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_ts_hash.h 273192 2009-01-09 19:16:55Z tony2001 $ */ +/* $Id: zend_ts_hash.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_TS_HASH_H #define ZEND_TS_HASH_H diff --git a/Zend/zend_types.h b/Zend/zend_types.h index 100b27927..374f600c2 100644 --- a/Zend/zend_types.h +++ b/Zend/zend_types.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_types.h 281712 2009-06-05 11:21:31Z lbarnaud $ */ +/* $Id: zend_types.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_TYPES_H #define ZEND_TYPES_H diff --git a/Zend/zend_variables.c b/Zend/zend_variables.c index 5aad679b0..987351c6e 100644 --- a/Zend/zend_variables.c +++ b/Zend/zend_variables.c @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.c 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_variables.c 294427 2010-02-03 18:07:25Z pajoye $ */ #include <stdio.h> #include "zend.h" @@ -151,16 +151,19 @@ ZEND_API int zend_print_variable(zval *var) } -#if ZEND_DEBUG -ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue) +ZEND_API void _zval_dtor_wrapper(zval *zvalue) { - zval_copy_ctor(zvalue); + TSRMLS_FETCH(); + + GC_REMOVE_ZVAL_FROM_BUFFER(zvalue); + zval_dtor(zvalue); } -ZEND_API void _zval_dtor_wrapper(zval *zvalue) +#if ZEND_DEBUG +ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue) { - zval_dtor(zvalue); + zval_copy_ctor(zvalue); } diff --git a/Zend/zend_variables.h b/Zend/zend_variables.h index fbc989353..b73602e8b 100644 --- a/Zend/zend_variables.h +++ b/Zend/zend_variables.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_variables.h 279681 2009-05-01 21:46:53Z jani $ */ +/* $Id: zend_variables.h 294427 2010-02-03 18:07:25Z pajoye $ */ #ifndef ZEND_VARIABLES_H #define ZEND_VARIABLES_H @@ -50,26 +50,25 @@ ZEND_API int zend_print_variable(zval *var); ZEND_API void _zval_ptr_dtor(zval **zval_ptr ZEND_FILE_LINE_DC); ZEND_API void _zval_internal_dtor(zval *zvalue ZEND_FILE_LINE_DC); ZEND_API void _zval_internal_ptr_dtor(zval **zvalue ZEND_FILE_LINE_DC); +ZEND_API void _zval_dtor_wrapper(zval *zvalue); #define zval_copy_ctor(zvalue) _zval_copy_ctor((zvalue) ZEND_FILE_LINE_CC) #define zval_dtor(zvalue) _zval_dtor((zvalue) ZEND_FILE_LINE_CC) #define zval_ptr_dtor(zval_ptr) _zval_ptr_dtor((zval_ptr) ZEND_FILE_LINE_CC) #define zval_internal_dtor(zvalue) _zval_internal_dtor((zvalue) ZEND_FILE_LINE_CC) #define zval_internal_ptr_dtor(zvalue) _zval_internal_ptr_dtor((zvalue) ZEND_FILE_LINE_CC) +#define zval_dtor_wrapper _zval_dtor_wrapper #if ZEND_DEBUG ZEND_API void _zval_copy_ctor_wrapper(zval *zvalue); -ZEND_API void _zval_dtor_wrapper(zval *zvalue); ZEND_API void _zval_ptr_dtor_wrapper(zval **zval_ptr); ZEND_API void _zval_internal_dtor_wrapper(zval *zvalue); ZEND_API void _zval_internal_ptr_dtor_wrapper(zval **zvalue); #define zval_copy_ctor_wrapper _zval_copy_ctor_wrapper -#define zval_dtor_wrapper _zval_dtor_wrapper #define zval_ptr_dtor_wrapper _zval_ptr_dtor_wrapper #define zval_internal_dtor_wrapper _zval_internal_dtor_wrapper #define zval_internal_ptr_dtor_wrapper _zval_internal_ptr_dtor_wrapper #else #define zval_copy_ctor_wrapper _zval_copy_ctor_func -#define zval_dtor_wrapper _zval_dtor_func #define zval_ptr_dtor_wrapper _zval_ptr_dtor #define zval_internal_dtor_wrapper _zval_internal_dtor #define zval_internal_ptr_dtor_wrapper _zval_internal_ptr_dtor diff --git a/Zend/zend_vm.h b/Zend/zend_vm.h index a80a4b89b..61390d04e 100644 --- a/Zend/zend_vm.h +++ b/Zend/zend_vm.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm.h 272370 2008-12-31 11:15:49Z sebastian $ */ +/* $Id: zend_vm.h 293155 2010-01-05 20:46:53Z sebastian $ */ #ifndef ZEND_VM_H #define ZEND_VM_H diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 485f2cc17..06040f336 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h 290152 2009-11-02 18:11:33Z pajoye $ */ +/* $Id: zend_vm_def.h 293155 2010-01-05 20:46:53Z sebastian $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -1100,7 +1100,7 @@ ZEND_VM_HANDLER(84, ZEND_FETCH_DIM_W, VAR|CV, CONST|TMP|VAR|UNUSED|CV) FREE_OP1_VAR_PTR(); /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -3691,7 +3691,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY) { zend_op *opline = EX(opline); zend_free_op free_op1; - zval *array = GET_OP1_ZVAL_PTR(BP_VAR_R); + zval *array = EX_T(opline->op1.u.var).var.ptr; zval **value; char *str_key; uint str_key_len; @@ -3701,8 +3701,6 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY) int key_type = 0; zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY); - PZVAL_LOCK(array); - switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) { default: case ZEND_ITER_INVALID: @@ -3915,7 +3913,7 @@ ZEND_VM_HELPER_EX(zend_isset_isempty_dim_prop_obj_handler, VAR|UNUSED|CV, CONST| zend_free_op free_op2; zval *offset = GET_OP2_ZVAL_PTR(BP_VAR_R); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 9d931107d..826ba57d1 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -1332,6 +1332,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CONST(int type, ZEND if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) { retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC); + } else { target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC); /* @@ -8850,8 +8851,8 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG static int ZEND_FASTCALL ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) { zend_op *opline = EX(opline); - zend_free_op free_op1; - zval *array = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); + + zval *array = EX_T(opline->op1.u.var).var.ptr; zval **value; char *str_key; uint str_key_len; @@ -8861,8 +8862,6 @@ static int ZEND_FASTCALL ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG int key_type = 0; zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY); - PZVAL_LOCK(array); - switch (zend_iterator_unwrap(array, &iter TSRMLS_CC)) { default: case ZEND_ITER_INVALID: @@ -9865,7 +9864,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -10805,7 +10804,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST( zval *offset = &opline->op2.u.constant; - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -11668,7 +11667,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -12554,7 +12553,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in zend_free_op free_op2; zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -13417,7 +13416,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -14354,7 +14353,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in zend_free_op free_op2; zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -14757,7 +14756,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -15808,7 +15807,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}; /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -16740,7 +16739,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -17930,7 +17929,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON zval *offset = &opline->op2.u.constant; - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -18987,7 +18986,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP zend_free_op free_op2; zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -20044,7 +20043,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR zend_free_op free_op2; zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -21360,7 +21359,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV( zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -21712,6 +21711,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_CV(int type, ZEND_OP if (opline->op2.u.EA.type == ZEND_FETCH_STATIC_MEMBER) { retval = zend_std_get_static_property(EX_T(opline->op2.u.var).class_entry, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0 TSRMLS_CC); + } else { target_symbol_table = zend_get_target_symbol_table(opline, EX(Ts), type, varname TSRMLS_CC); /* @@ -23567,7 +23567,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN } /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -24345,7 +24345,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i zval *offset = &opline->op2.u.constant; - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -25204,7 +25204,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL } /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -25985,7 +25985,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int zend_free_op free_op2; zval *offset = _get_zval_ptr_tmp(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -26844,7 +26844,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL } /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -27675,7 +27675,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int zend_free_op free_op2; zval *offset = _get_zval_ptr_var(&opline->op2, EX(Ts), &free_op2 TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; @@ -28074,7 +28074,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_UNUSED_HANDLER(ZEND_OPCODE_HA } /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -29026,7 +29026,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE } /* We are going to assign the result by reference */ - if (opline->extended_value) { + if (opline->extended_value && EX_T(opline->result.u.var).var.ptr_ptr) { Z_DELREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); SEPARATE_ZVAL_TO_MAKE_IS_REF(EX_T(opline->result.u.var).var.ptr_ptr); Z_ADDREF_PP(EX_T(opline->result.u.var).var.ptr_ptr); @@ -29852,7 +29852,7 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int zval *offset = _get_zval_ptr_cv(&opline->op2, EX(Ts), BP_VAR_R TSRMLS_CC); - if (Z_TYPE_PP(container) == IS_ARRAY) { + if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) { HashTable *ht; int isset = 0; diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index f67296bf0..d7dca6e03 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -3,7 +3,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | @@ -16,7 +16,7 @@ | Authors: Dmitry Stogov <dmitry@zend.com> | +----------------------------------------------------------------------+ - $Id: zend_vm_gen.php 272370 2008-12-31 11:15:49Z sebastian $ + $Id: zend_vm_gen.php 293155 2010-01-05 20:46:53Z sebastian $ */ $header_text = <<< DATA @@ -24,7 +24,7 @@ $header_text = <<< DATA +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | diff --git a/Zend/zend_vm_opcodes.h b/Zend/zend_vm_opcodes.h index 502529bc2..d048a8576 100644 --- a/Zend/zend_vm_opcodes.h +++ b/Zend/zend_vm_opcodes.h @@ -2,7 +2,7 @@ +----------------------------------------------------------------------+ | Zend Engine | +----------------------------------------------------------------------+ - | Copyright (c) 1998-2009 Zend Technologies Ltd. (http://www.zend.com) | + | Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) | +----------------------------------------------------------------------+ | This source file is subject to version 2.00 of the Zend license, | | that is bundled with this package in the file LICENSE, and is | |
