Merge lp:~legolas/ubuntu/natty/php5/5.3.5 into lp:ubuntu/natty/php5

Proposed by Stas Verberkt
Status: Rejected
Rejected by: James Westby
Proposed branch: lp:~legolas/ubuntu/natty/php5/5.3.5
Merge into: lp:ubuntu/natty/php5
Diff against target: 125436 lines (+46026/-23883)
660 files modified
INSTALL (+24/-12)
LICENSE (+1/-1)
Makefile.global (+1/-0)
NEWS (+359/-3)
TSRM/tsrm_virtual_cwd.c (+214/-87)
TSRM/tsrm_virtual_cwd.h (+14/-10)
UPGRADING (+14/-1)
UPGRADING.INTERNALS (+23/-0)
Zend/acinclude.m4 (+2/-2)
Zend/tests/bug45180.phpt (+4/-4)
Zend/tests/bug45186.phpt (+4/-4)
Zend/tests/bug51176.phpt (+3/-3)
Zend/tests/bug52361.phpt (+35/-0)
Zend/tests/bug52484.phpt (+19/-0)
Zend/tests/bug52484_2.phpt (+19/-0)
Zend/tests/bug52484_3.phpt (+19/-0)
Zend/tests/bug52508.phpt (+20/-0)
Zend/tests/bug52879.phpt (+16/-0)
Zend/tests/bug52939.phpt (+40/-0)
Zend/tests/bug53305.phpt (+19/-0)
Zend/tests/bug53632.phpt (+10/-0)
Zend/tests/call_static_003.phpt (+2/-2)
Zend/tests/call_static_007.phpt (+1/-1)
Zend/tests/declare_001.phpt (+6/-0)
Zend/tests/gc_032.phpt (+40/-0)
Zend/tests/objects_032.phpt (+40/-0)
Zend/tests/unset_cv05.phpt (+1/-1)
Zend/tests/unset_cv06.phpt (+1/-1)
Zend/zend_API.c (+2/-2)
Zend/zend_compile.c (+12/-5)
Zend/zend_constants.c (+11/-3)
Zend/zend_exceptions.c (+7/-6)
Zend/zend_execute.c (+2/-2)
Zend/zend_execute_API.c (+3/-2)
Zend/zend_gc.c (+26/-22)
Zend/zend_hash.c (+4/-1)
Zend/zend_hash.h (+5/-5)
Zend/zend_ini_scanner.c (+1767/-1759)
Zend/zend_ini_scanner.l (+2/-2)
Zend/zend_ini_scanner_defs.h (+1/-1)
Zend/zend_language_scanner.c (+6/-335)
Zend/zend_language_scanner.l (+5/-1)
Zend/zend_language_scanner_defs.h (+1/-2)
Zend/zend_object_handlers.c (+45/-11)
Zend/zend_objects.c (+4/-6)
Zend/zend_strtod.c (+2/-2)
Zend/zend_variables.c (+12/-1)
Zend/zend_variables.h (+12/-1)
Zend/zend_vm_execute.h (+44/-0)
acinclude.m4 (+21/-16)
aclocal.m4 (+21/-16)
configure (+2831/-3473)
configure.in (+6/-6)
debian/changelog (+66/-0)
debian/patches/006-debian_quirks.patch (+2/-6)
debian/patches/fpm-config.patch (+10/-9)
debian/patches/gentoo/009_ob-memory-leaks.patch (+9/-7)
debian/patches/php-fpm-man-section-and-cleanup.patch (+3/-9)
debian/patches/php5-CVE-2010-3436-regression.patch (+32/-0)
debian/patches/php5-CVE-2010-3436.patch (+29/-0)
debian/patches/php5-CVE-2010-3709.patch (+24/-0)
debian/patches/php5-CVE-2010-3710.patch (+53/-0)
debian/patches/php5-CVE-2010-3870.patch (+204/-0)
debian/patches/php5-CVE-2010-4156.patch (+65/-0)
debian/patches/php5-CVE-2010-4409.patch (+90/-0)
debian/patches/php5-CVE-2010-4645.patch (+25/-0)
debian/patches/series (+13/-5)
debian/patches/ubuntu/ubuntu-php-version.patch (+4/-4)
debian/rules (+1/-1)
ext/bz2/bz2.c (+5/-2)
ext/calendar/calendar.c (+10/-3)
ext/calendar/tests/bug52744.phpt (+12/-0)
ext/com_dotnet/com_persist.c (+8/-1)
ext/curl/interface.c (+17/-17)
ext/curl/php_curl.h (+1/-3)
ext/curl/tests/bug52202.phpt (+16/-0)
ext/curl/tests/bug52827.phpt (+32/-0)
ext/curl/tests/curl_multi_getcontent_basic3.phpt (+6/-1)
ext/curl/tests/curl_multi_getcontent_error1.phpt (+2/-2)
ext/curl/tests/curl_multi_getcontent_error2.phpt (+2/-2)
ext/curl/tests/curl_multi_getcontent_error3.phpt (+2/-2)
ext/curl/tests/curl_multi_getcontent_error4.phpt (+2/-2)
ext/curl/tests/curl_setopt_basic001.phpt (+1/-1)
ext/curl/tests/curl_setopt_error.phpt (+1/-0)
ext/date/lib/parse_date.c (+9/-3)
ext/date/lib/parse_date.c.orig (+109/-103)
ext/date/lib/parse_date.re (+8/-2)
ext/date/lib/parse_iso_intervals.c (+2/-2)
ext/date/lib/timelib.c (+14/-3)
ext/date/lib/timelib.h (+2/-1)
ext/date/lib/timezonedb.h (+718/-657)
ext/date/lib/tm2unixtime.c (+2/-1)
ext/date/lib/unixtime2tm.c (+7/-1)
ext/date/php_date.c (+33/-32)
ext/date/php_date.h (+7/-1)
ext/date/tests/010.phpt (+19/-586)
ext/date/tests/DateTime_modify_variation1.phpt (+66/-166)
ext/date/tests/big_year.phpt (+17/-0)
ext/date/tests/bug33415-2.phpt (+2/-2)
ext/date/tests/bug46874.phpt (+31/-0)
ext/date/tests/bug52342.phpt (+23/-0)
ext/date/tests/bug52430.phpt (+37/-0)
ext/date/tests/bug52454.phpt (+22/-0)
ext/date/tests/bug52577.phpt (+19/-0)
ext/date/tests/bug52668.phpt (+25/-0)
ext/date/tests/date_modify_variation2.phpt (+66/-166)
ext/date/tests/timezone_abbreviations_list_basic1.phpt (+2/-2)
ext/dba/config.m4 (+2/-2)
ext/dba/tests/dba_cdb_make.phpt (+1/-1)
ext/dom/tests/bug52656.phpt (+14/-0)
ext/dom/text.c (+2/-2)
ext/enchant/enchant.c (+10/-2)
ext/exif/tests/exif006.phpt (+1/-1)
ext/ext_skel (+2/-2)
ext/fileinfo/fileinfo.c (+4/-1)
ext/filter/logical_filters.c (+36/-15)
ext/filter/tests/030.phpt (+38/-17)
ext/filter/tests/bug39763.phpt (+1/-1)
ext/filter/tests/bug52929.phpt (+18/-0)
ext/gd/gd.c (+17/-1)
ext/gd/gd_ctx.c (+4/-1)
ext/gmp/gmp.c (+32/-23)
ext/gmp/tests/005.phpt (+5/-5)
ext/gmp/tests/040.phpt (+1/-1)
ext/gmp/tests/bug50283.phpt (+5/-4)
ext/gmp/tests/bug52906.phpt (+46/-0)
ext/gmp/tests/gmp_nextprime.phpt (+1/-1)
ext/hash/php_hash_tiger.h (+2/-2)
ext/iconv/iconv.c (+43/-10)
ext/iconv/tests/bug51250.phpt (+29/-0)
ext/iconv/tests/bug52941.phpt (+41/-0)
ext/iconv/tests/bug53304.phpt (+13/-0)
ext/iconv/tests/iconv_stream_filter_delimiter.phpt (+1/-1)
ext/imap/php_imap.c (+11/-5)
ext/interbase/config.w32 (+3/-2)
ext/intl/dateformat/dateformat_attr.c (+1/-0)
ext/intl/dateformat/dateformat_format.c (+24/-2)
ext/intl/dateformat/dateformat_parse.c (+7/-6)
ext/intl/formatter/formatter_attr.c (+7/-2)
ext/intl/tests/bug50590.phpt (+13/-0)
ext/intl/tests/dateformat_format.phpt (+135/-3)
ext/intl/tests/dateformat_format_parse.phpt (+7/-13)
ext/intl/tests/dateformat_get_locale.phpt (+6/-0)
ext/intl/tests/dateformat_parse_timestamp_parsepos.phpt (+2/-4)
ext/intl/tests/formatter_get_set_symbol.phpt (+6/-1)
ext/json/json.c (+2/-2)
ext/ldap/config.w32 (+8/-5)
ext/mbstring/libmbfl/mbfl/mbfilter.c (+4/-0)
ext/mbstring/mbstring.c (+7/-5)
ext/mbstring/tests/bug43301.phpt (+2/-2)
ext/mbstring/tests/bug52861.phpt (+26/-0)
ext/mbstring/tests/bug52931.phpt (+22/-0)
ext/mbstring/tests/bug52981.phpt (+23/-0)
ext/mbstring/tests/mb_decode_mimeheader_variation1.phpt (+3/-6)
ext/mbstring/tests/mb_send_mail01.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail02.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail03.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail04.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail05.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail06.phpt (+2/-2)
ext/mbstring/tests/mb_send_mail07.phpt (+2/-2)
ext/mbstring/tests/mb_strcut_missing_boundary_check.phpt (+31/-0)
ext/mbstring/ucgendat/OPENLDAP_LICENSE (+47/-0)
ext/mbstring/ucgendat/README (+9/-0)
ext/mbstring/ucgendat/ucgendat.c (+1985/-0)
ext/mbstring/unicode_data.h (+4271/-2737)
ext/mssql/php_mssql.c (+10/-2)
ext/mysql/php_mysql.c (+82/-82)
ext/mysql/tests/mysql_trace_mode.phpt (+2/-0)
ext/mysqli/config.m4 (+2/-1)
ext/mysqli/mysqli.c (+130/-69)
ext/mysqli/mysqli_api.c (+92/-67)
ext/mysqli/mysqli_driver.c (+3/-3)
ext/mysqli/mysqli_embedded.c (+3/-3)
ext/mysqli/mysqli_exception.c (+3/-2)
ext/mysqli/mysqli_fe.c (+17/-12)
ext/mysqli/mysqli_fe.h (+135/-0)
ext/mysqli/mysqli_libmysql.h (+1/-1)
ext/mysqli/mysqli_nonapi.c (+52/-53)
ext/mysqli/mysqli_priv.h (+156/-0)
ext/mysqli/mysqli_prop.c (+39/-38)
ext/mysqli/mysqli_report.c (+8/-6)
ext/mysqli/mysqli_report.h (+2/-2)
ext/mysqli/mysqli_warning.c (+10/-9)
ext/mysqli/php_mysqli.h (+1/-1)
ext/mysqli/php_mysqli_structs.h (+12/-250)
ext/mysqli/tests/002.phpt (+3/-3)
ext/mysqli/tests/003.phpt (+3/-3)
ext/mysqli/tests/004.phpt (+3/-3)
ext/mysqli/tests/005.phpt (+4/-4)
ext/mysqli/tests/006.phpt (+3/-3)
ext/mysqli/tests/007.phpt (+3/-3)
ext/mysqli/tests/008.phpt (+3/-3)
ext/mysqli/tests/009.phpt (+6/-6)
ext/mysqli/tests/010.phpt (+3/-3)
ext/mysqli/tests/011.phpt (+3/-3)
ext/mysqli/tests/012.phpt (+3/-3)
ext/mysqli/tests/013.phpt (+4/-4)
ext/mysqli/tests/016.phpt (+3/-3)
ext/mysqli/tests/017.phpt (+3/-3)
ext/mysqli/tests/018.phpt (+3/-3)
ext/mysqli/tests/019.phpt (+5/-5)
ext/mysqli/tests/020.phpt (+5/-5)
ext/mysqli/tests/021.phpt (+5/-5)
ext/mysqli/tests/022.phpt (+5/-5)
ext/mysqli/tests/023.phpt (+5/-5)
ext/mysqli/tests/024.phpt (+5/-5)
ext/mysqli/tests/025.phpt (+5/-5)
ext/mysqli/tests/026.phpt (+8/-8)
ext/mysqli/tests/042.phpt (+2/-2)
ext/mysqli/tests/043.phpt (+3/-3)
ext/mysqli/tests/045.phpt (+5/-5)
ext/mysqli/tests/046.phpt (+2/-2)
ext/mysqli/tests/047.phpt (+3/-3)
ext/mysqli/tests/050.phpt (+1/-1)
ext/mysqli/tests/051.phpt (+1/-1)
ext/mysqli/tests/052.phpt (+1/-1)
ext/mysqli/tests/057.phpt (+6/-6)
ext/mysqli/tests/058.phpt (+11/-11)
ext/mysqli/tests/059.phpt (+5/-5)
ext/mysqli/tests/065.phpt (+2/-2)
ext/mysqli/tests/bug35759.phpt (+1/-1)
ext/mysqli/tests/bug52891.phpt (+160/-0)
ext/mysqli/tests/bug_mysql_49406.phpt (+107/-0)
ext/mysqli/tests/connect.inc (+95/-0)
ext/mysqli/tests/mysqli_change_user_set_names.phpt (+2/-2)
ext/mysqli/tests/mysqli_character_set.phpt (+12/-10)
ext/mysqli/tests/mysqli_character_set_name.phpt (+3/-3)
ext/mysqli/tests/mysqli_character_set_name_oo.phpt (+2/-2)
ext/mysqli/tests/mysqli_class_mysqli_interface.phpt (+1/-0)
ext/mysqli/tests/mysqli_class_mysqli_reflection.phpt (+51/-0)
ext/mysqli/tests/mysqli_constants.phpt (+6/-0)
ext/mysqli/tests/mysqli_fetch_array_large.phpt (+54/-41)
ext/mysqli/tests/mysqli_fetch_field.phpt (+29/-11)
ext/mysqli/tests/mysqli_fetch_field_oo.phpt (+24/-10)
ext/mysqli/tests/mysqli_fetch_fields.phpt (+21/-3)
ext/mysqli/tests/mysqli_field_seek.phpt (+20/-6)
ext/mysqli/tests/mysqli_get_client_stats.phpt (+79/-4)
ext/mysqli/tests/mysqli_get_client_stats_off.phpt (+8/-10)
ext/mysqli/tests/mysqli_insert_packet_overflow.phpt (+2/-2)
ext/mysqli/tests/mysqli_magic_quotes.phpt (+128/-0)
ext/mysqli/tests/mysqli_options.phpt (+52/-41)
ext/mysqli/tests/mysqli_options_int_and_float_native.phpt (+109/-0)
ext/mysqli/tests/mysqli_pconn_conn_multiple.phpt (+0/-3)
ext/mysqli/tests/mysqli_pconn_disabled.phpt (+0/-3)
ext/mysqli/tests/mysqli_pconn_kill.phpt (+0/-2)
ext/mysqli/tests/mysqli_pconn_limits.phpt (+0/-3)
ext/mysqli/tests/mysqli_pconn_max_links.phpt (+13/-9)
ext/mysqli/tests/mysqli_pconn_reuse.phpt (+0/-3)
ext/mysqli/tests/mysqli_pconn_twice.phpt (+0/-2)
ext/mysqli/tests/mysqli_pconnect.phpt (+0/-3)
ext/mysqli/tests/mysqli_prepare.phpt (+5/-5)
ext/mysqli/tests/mysqli_set_charset.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_attr_set.phpt (+6/-0)
ext/mysqli/tests/mysqli_stmt_bind_param.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_bind_param_check_param_no_change.phpt (+1/-0)
ext/mysqli/tests/mysqli_stmt_bind_result.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_fetch.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_get_result_metadata_fetch_field.phpt (+30/-12)
ext/mysqli/tests/mysqli_stmt_num_rows.phpt (+3/-3)
ext/mysqli/tests/mysqli_stmt_param_count.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_result_metadata.phpt (+1/-1)
ext/mysqli/tests/mysqli_stmt_send_long_data.phpt (+1/-1)
ext/mysqlnd/config9.m4 (+3/-6)
ext/mysqlnd/mysqlnd.c (+61/-69)
ext/mysqlnd/mysqlnd.h (+7/-9)
ext/mysqlnd/mysqlnd_block_alloc.c (+1/-2)
ext/mysqlnd/mysqlnd_charset.c (+295/-310)
ext/mysqlnd/mysqlnd_debug.c (+189/-29)
ext/mysqlnd/mysqlnd_debug.h (+67/-14)
ext/mysqlnd/mysqlnd_enum_n_def.h (+24/-9)
ext/mysqlnd/mysqlnd_loaddata.c (+5/-3)
ext/mysqlnd/mysqlnd_net.c (+3/-6)
ext/mysqlnd/mysqlnd_portability.h (+6/-6)
ext/mysqlnd/mysqlnd_priv.h (+25/-10)
ext/mysqlnd/mysqlnd_ps.c (+80/-50)
ext/mysqlnd/mysqlnd_ps_codec.c (+138/-75)
ext/mysqlnd/mysqlnd_result.c (+114/-80)
ext/mysqlnd/mysqlnd_result_meta.c (+12/-13)
ext/mysqlnd/mysqlnd_statistics.c (+10/-8)
ext/mysqlnd/mysqlnd_statistics.h (+2/-2)
ext/mysqlnd/mysqlnd_structs.h (+11/-6)
ext/mysqlnd/mysqlnd_wireprotocol.c (+60/-49)
ext/mysqlnd/mysqlnd_wireprotocol.h (+2/-2)
ext/mysqlnd/php_mysqlnd.c (+5/-3)
ext/oci8/oci8.c (+8/-16)
ext/oci8/oci8_interface.c (+22/-12)
ext/oci8/package.xml (+60/-8)
ext/oci8/php_oci8.h (+2/-2)
ext/oci8/tests/bind_char_1.phpt (+8/-3)
ext/oci8/tests/bind_char_2.phpt (+8/-3)
ext/oci8/tests/bind_char_3.phpt (+8/-3)
ext/oci8/tests/bind_char_4.phpt (+8/-3)
ext/oci8/tests/bug27303_1.phpt (+8/-3)
ext/oci8/tests/bug27303_2.phpt (+8/-3)
ext/oci8/tests/bug27303_4.phpt (+8/-3)
ext/oci8/tests/connect_without_oracle_home.phpt (+4/-0)
ext/oci8/tests/connect_without_oracle_home_11.phpt (+41/-0)
ext/oci8/tests/connect_without_oracle_home_old.phpt (+4/-0)
ext/oci8/tests/connect_without_oracle_home_old_11.phpt (+41/-0)
ext/oci8/tests/debug.phpt (+5/-51)
ext/oci8/tests/null_byte_1.phpt (+38/-0)
ext/oci8/tests/null_byte_2.phpt (+69/-0)
ext/oci8/tests/oci8safemode.phpt (+1/-1)
ext/odbc/php_odbc.c (+48/-4)
ext/openssl/openssl.c (+48/-14)
ext/openssl/xp_ssl.c (+1/-2)
ext/pcntl/pcntl.c (+135/-3)
ext/pcntl/php_pcntl.h (+6/-1)
ext/pcntl/php_signal.c (+12/-3)
ext/pcntl/php_signal.h (+2/-1)
ext/pcntl/tests/pcntl_get_last_error.phpt (+17/-0)
ext/pcre/pcrelib/ChangeLog (+95/-0)
ext/pcre/pcrelib/NEWS (+11/-0)
ext/pcre/pcrelib/NON-UNIX-USE (+4/-4)
ext/pcre/pcrelib/config.h (+16/-3)
ext/pcre/pcrelib/doc/pcre.txt (+892/-578)
ext/pcre/pcrelib/pcre.h (+6/-3)
ext/pcre/pcrelib/pcre_chartables.c (+1/-1)
ext/pcre/pcrelib/pcre_compile.c (+528/-224)
ext/pcre/pcrelib/pcre_exec.c (+744/-315)
ext/pcre/pcrelib/pcre_internal.h (+51/-26)
ext/pcre/pcrelib/pcre_printint.src (+8/-0)
ext/pcre/pcrelib/pcre_study.c (+217/-75)
ext/pcre/pcrelib/pcre_tables.c (+17/-5)
ext/pcre/pcrelib/pcre_xclass.c (+32/-4)
ext/pcre/pcrelib/pcreposix.c (+14/-6)
ext/pcre/pcrelib/pcreposix.h (+1/-0)
ext/pcre/pcrelib/testdata/testinput10 (+12/-1)
ext/pcre/pcrelib/testdata/testinput2 (+265/-6)
ext/pcre/pcrelib/testdata/testinput5 (+49/-0)
ext/pcre/pcrelib/testdata/testinput6 (+50/-0)
ext/pcre/pcrelib/testdata/testinput9 (+139/-0)
ext/pcre/pcrelib/testdata/testoutput10 (+42/-1)
ext/pcre/pcrelib/testdata/testoutput2 (+471/-13)
ext/pcre/pcrelib/testdata/testoutput5 (+146/-0)
ext/pcre/pcrelib/testdata/testoutput6 (+68/-0)
ext/pcre/pcrelib/testdata/testoutput9 (+360/-0)
ext/pcre/php_pcre.c (+15/-3)
ext/pcre/tests/backtrack_limit.phpt (+1/-1)
ext/pcre/tests/bug33200.phpt (+1/-1)
ext/pcre/tests/bug52732.phpt (+13/-0)
ext/pcre/tests/bug52971.phpt (+43/-0)
ext/pcre/tests/invalid_utf8_offset.phpt (+1/-1)
ext/pcre/tests/recursion_limit.phpt (+1/-1)
ext/pdo/pdo_stmt.c (+8/-6)
ext/pdo/tests/bug47769.phpt (+5/-0)
ext/pdo/tests/bug_38253.phpt (+7/-1)
ext/pdo/tests/bug_43139.phpt (+6/-1)
ext/pdo/tests/pdo_018.phpt (+7/-1)
ext/pdo/tests/pdo_021.phpt (+0/-2)
ext/pdo/tests/pdo_034.phpt (+2/-2)
ext/pdo_dblib/dblib_stmt.c (+3/-3)
ext/pdo_firebird/config.w32 (+4/-2)
ext/pdo_firebird/firebird_driver.c (+6/-2)
ext/pdo_firebird/firebird_statement.c (+34/-1)
ext/pdo_firebird/tests/rowCount.phpt (+48/-0)
ext/pdo_mysql/mysql_statement.c (+2/-2)
ext/pdo_mysql/php_pdo_mysql_int.h (+3/-3)
ext/pdo_mysql/tests/bug_42499.phpt (+2/-2)
ext/pdo_mysql/tests/bug_44454.phpt (+8/-4)
ext/pdo_mysql/tests/bug_pecl_12925.phpt (+3/-3)
ext/pdo_mysql/tests/mysql_pdo_test.inc (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_attr_autocommit.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_attr_case.phpt (+5/-5)
ext/pdo_mysql/tests/pdo_mysql_attr_oracle_nulls.phpt (+3/-3)
ext/pdo_mysql/tests/pdo_mysql_attr_server_info.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_begintransaction.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_commit.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_exec.phpt (+9/-9)
ext/pdo_mysql/tests/pdo_mysql_exec_load_data.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_exec_select.phpt (+4/-4)
ext/pdo_mysql/tests/pdo_mysql_interface.phpt (+12/-11)
ext/pdo_mysql/tests/pdo_mysql_last_insert_id.phpt (+6/-6)
ext/pdo_mysql/tests/pdo_mysql_prepare_emulated.phpt (+4/-4)
ext/pdo_mysql/tests/pdo_mysql_prepare_emulated_anonymous.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_prepare_emulated_placeholder_everywhere.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_prepare_load_data.phpt (+3/-3)
ext/pdo_mysql/tests/pdo_mysql_prepare_native.phpt (+4/-4)
ext/pdo_mysql/tests/pdo_mysql_prepare_native_clear_error.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_prepare_native_dup_named_placeholder.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_prepare_native_named_placeholder.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_prepare_native_placeholder_everywhere.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_rollback.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_stmt_columncount.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_stmt_fetch_non_select.phpt (+3/-3)
ext/pdo_mysql/tests/pdo_mysql_stmt_fetch_serialize_simple.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_stmt_fetchobject.phpt (+13/-3)
ext/pdo_mysql/tests/pdo_mysql_stmt_getcolumnmeta.phpt (+10/-5)
ext/pdo_mysql/tests/pdo_mysql_subclass.phpt (+1/-1)
ext/pdo_mysql/tests/pdo_mysql_types.phpt (+2/-2)
ext/pdo_mysql/tests/pdo_mysql_types_zerofill.phpt (+7/-2)
ext/pdo_oci/tests/pdo_oci_attr_client.phpt (+1/-1)
ext/pdo_pgsql/tests/bug36727.phpt (+1/-1)
ext/pdo_sqlite/tests/bug52487.phpt (+21/-0)
ext/pgsql/pgsql.c (+19/-7)
ext/pgsql/tests/bug47199.phpt (+67/-0)
ext/phar/phar.c (+4/-4)
ext/phar/phar_object.c (+6/-2)
ext/phar/stream.c (+1/-1)
ext/phar/tests/phpinfo_001.phpt (+2/-2)
ext/phar/tests/phpinfo_002.phpt (+1/-1)
ext/phar/tests/phpinfo_003.phpt (+1/-1)
ext/phar/tests/phpinfo_004.phpt (+2/-2)
ext/posix/posix.c (+14/-2)
ext/posix/tests/posix_access.phpt (+1/-1)
ext/posix/tests/posix_access_error_modes.phpt (+1/-1)
ext/posix/tests/posix_access_error_wrongparams.phpt (+1/-1)
ext/posix/tests/posix_access_safemode.phpt (+1/-1)
ext/posix/tests/posix_mkfifo_safemode.phpt (+1/-1)
ext/pspell/pspell.c (+13/-1)
ext/recode/CREDITS (+1/-1)
ext/reflection/php_reflection.c (+36/-6)
ext/reflection/tests/ReflectionClass_getConstructor_basic.phpt (+2/-5)
ext/reflection/tests/ReflectionClass_isIterateable_001.phpt (+21/-7)
ext/reflection/tests/ReflectionMethod_constructor_basic.phpt (+0/-2)
ext/reflection/tests/ReflectionObject_getConstructor_basic.phpt (+1/-4)
ext/reflection/tests/ReflectionParameter_isDefault.phpt (+34/-0)
ext/reflection/tests/bug52854.phpt (+28/-0)
ext/reflection/tests/bug53366.phpt (+25/-0)
ext/session/config.m4 (+2/-1)
ext/session/session.c (+3/-3)
ext/session/tests/001.phpt (+1/-1)
ext/session/tests/003.phpt (+1/-1)
ext/session/tests/004.phpt (+1/-1)
ext/session/tests/005.phpt (+1/-1)
ext/session/tests/006.phpt (+1/-1)
ext/session/tests/007.phpt (+2/-2)
ext/session/tests/008-php4.2.3.phpt (+1/-1)
ext/session/tests/009.phpt (+1/-1)
ext/session/tests/012.phpt (+1/-1)
ext/session/tests/013.phpt (+1/-1)
ext/session/tests/014.phpt (+1/-1)
ext/session/tests/019.phpt (+1/-1)
ext/session/tests/bug53141.phpt (+26/-0)
ext/simplexml/simplexml.c (+2/-2)
ext/soap/php_encoding.c (+5/-5)
ext/soap/php_http.c (+8/-1)
ext/soap/php_packet_soap.c (+2/-2)
ext/soap/php_sdl.c (+12/-9)
ext/soap/tests/bugs/bug50698_1.phpt (+2/-0)
ext/soap/tests/bugs/bug50698_2.phpt (+2/-0)
ext/soap/tests/bugs/bug50698_3.phpt (+2/-0)
ext/soap/tests/bugs/bug50698_4.phpt (+2/-0)
ext/soap/tests/bugs/bug50762.phpt (+2/-0)
ext/spl/php_spl.c (+10/-7)
ext/spl/spl_array.c (+50/-2)
ext/spl/spl_directory.c (+155/-10)
ext/spl/spl_dllist.c (+25/-1)
ext/spl/spl_fixedarray.c (+9/-2)
ext/spl/spl_heap.c (+24/-1)
ext/spl/spl_iterators.c (+234/-4)
ext/spl/spl_observer.c (+122/-12)
ext/spl/tests/SplFileObject_fgetcsv_escape_default.phpt (+24/-0)
ext/spl/tests/arrayObject_count_basic1.phpt (+6/-2)
ext/spl/tests/bug50579.phpt (+40/-0)
ext/spl/tests/bug52573.phpt (+18/-0)
ext/spl/tests/bug53071.phpt (+26/-0)
ext/spl/tests/bug53144.phpt (+20/-0)
ext/spl/tests/bug53362.phpt (+22/-0)
ext/spl/tests/fileobject_005.phpt (+4/-2)
ext/spl/tests/spl_fileinfo_getlinktarget_basic.phpt (+1/-1)
ext/sqlite/sqlite.c (+12/-2)
ext/sqlite3/libsqlite/sqlite3.c (+14857/-6580)
ext/sqlite3/libsqlite/sqlite3.h (+793/-346)
ext/sqlite3/sqlite3.c (+11/-2)
ext/sqlite3/tests/bug53463.phpt (+28/-0)
ext/sqlite3/tests/sqlite3_15_open_error.phpt (+2/-2)
ext/standard/array.c (+5/-5)
ext/standard/base64.c (+2/-2)
ext/standard/basic_functions.c (+39/-2)
ext/standard/credits.c (+3/-3)
ext/standard/dir.c (+13/-1)
ext/standard/dns.c (+3/-5)
ext/standard/dns_win32.c (+2/-3)
ext/standard/file.c (+96/-13)
ext/standard/file.h (+3/-2)
ext/standard/filestat.c (+27/-2)
ext/standard/formatted_print.c (+2/-2)
ext/standard/ftok.c (+5/-1)
ext/standard/ftp_fopen_wrapper.c (+4/-4)
ext/standard/html.c (+75/-42)
ext/standard/http_fopen_wrapper.c (+37/-28)
ext/standard/iptc.c (+5/-1)
ext/standard/link.c (+22/-2)
ext/standard/link_win32.c (+8/-67)
ext/standard/math.c (+13/-3)
ext/standard/proc_open.c (+56/-48)
ext/standard/quot_print.c (+2/-2)
ext/standard/rand.c (+9/-3)
ext/standard/streamsfuncs.c (+25/-7)
ext/standard/string.c (+14/-12)
ext/standard/tests/array/bug52534.phpt (+14/-0)
ext/standard/tests/array/extract_safety.phpt (+24/-0)
ext/standard/tests/assert/assert02.phpt (+1/-1)
ext/standard/tests/file/bug52820.phpt (+49/-0)
ext/standard/tests/file/bug53241.phpt (+23/-0)
ext/standard/tests/file/copy_variation12.phpt (+2/-2)
ext/standard/tests/file/copy_variation4.phpt (+6/-13)
ext/standard/tests/file/disk_free_space_variation.phpt (+8/-8)
ext/standard/tests/file/file_get_contents_variation8-win32.phpt (+0/-2)
ext/standard/tests/file/file_get_contents_variation8.phpt (+0/-2)
ext/standard/tests/file/file_put_contents_variation8.phpt (+1/-3)
ext/standard/tests/file/filegroup_variation3.phpt (+2/-2)
ext/standard/tests/file/fileinode_variation3.phpt (+2/-2)
ext/standard/tests/file/fileowner_variation3.phpt (+2/-2)
ext/standard/tests/file/fileperms_variation3.phpt (+2/-2)
ext/standard/tests/file/fnmatch_variation.phpt (+17/-17)
ext/standard/tests/file/glob_variation.phpt (+7/-16)
ext/standard/tests/file/is_dir_variation4.phpt (+2/-2)
ext/standard/tests/file/is_executable_variation1.phpt (+2/-2)
ext/standard/tests/file/is_file_variation4.phpt (+2/-2)
ext/standard/tests/file/is_readable_variation1.phpt (+3/-3)
ext/standard/tests/file/is_writable_variation1.phpt (+6/-6)
ext/standard/tests/file/mkdir_rmdir_variation2.phpt (+2/-2)
ext/standard/tests/file/readfile_variation10-win32.phpt (+11/-3)
ext/standard/tests/file/readfile_variation10.phpt (+21/-13)
ext/standard/tests/file/rename_variation13-win32.phpt (+1/-5)
ext/standard/tests/file/rename_variation13.phpt (+0/-4)
ext/standard/tests/file/stream_rfc2397_006.phpt (+2/-2)
ext/standard/tests/file/tempnam_variation3-win32.phpt (+3/-2)
ext/standard/tests/file/tempnam_variation3.phpt (+3/-3)
ext/standard/tests/file/tempnam_variation7-win32.phpt (+3/-3)
ext/standard/tests/file/tempnam_variation7.phpt (+3/-3)
ext/standard/tests/general_functions/bug44394_2.phpt (+1/-0)
ext/standard/tests/general_functions/bug46587.phpt (+16/-0)
ext/standard/tests/general_functions/get_cfg_var_variation8.phpt (+20/-20)
ext/standard/tests/general_functions/putenv_error1.phpt (+1/-1)
ext/standard/tests/general_functions/putenv_error2.phpt (+1/-1)
ext/standard/tests/http/bug53198.phpt (+56/-0)
ext/standard/tests/math/log_variation2.phpt (+3/-3)
ext/standard/tests/misc/syslog_vars_variation1.phpt (+1/-1)
ext/standard/tests/streams/bug46024.phpt (+1/-1)
ext/standard/tests/strings/bug47168.phpt (+12/-0)
ext/standard/tests/strings/bug49785.phpt (+1/-1)
ext/standard/tests/strings/bug53021.phpt (+34/-0)
ext/standard/tests/strings/bug53319.phpt (+17/-0)
ext/standard/tests/strings/get_html_translation_table_basic1.phpt (+408/-132)
ext/standard/tests/strings/get_html_translation_table_basic2.phpt (+1214/-327)
ext/standard/tests/strings/get_html_translation_table_basic3.phpt (+15/-28)
ext/standard/tests/strings/get_html_translation_table_basic4.phpt (+289/-0)
ext/standard/tests/strings/get_html_translation_table_error.phpt (+3/-3)
ext/standard/tests/strings/get_html_translation_table_variation1.phpt (+62/-870)
ext/standard/tests/strings/get_html_translation_table_variation2.phpt (+19/-29)
ext/standard/tests/strings/htmlentities-utf-2.phpt (+2/-2)
ext/standard/tests/strings/htmlentities-utf-3.phpt (+83/-0)
ext/standard/tests/strings/htmlentities-utf.phpt (+2/-2)
ext/standard/tests/strings/htmlentities17.phpt (+0/-3)
ext/standard/tests/strings/parse_str_basic3.phpt (+1/-1)
ext/standard/tests/url/bug52327.phpt (+12/-0)
ext/standard/tests/url/bug53248.phpt (+12/-0)
ext/standard/url.c (+2/-2)
ext/standard/var.c (+9/-5)
ext/standard/var_unserializer.c (+3/-3)
ext/standard/var_unserializer.c.orig (+3/-3)
ext/standard/var_unserializer.re (+2/-2)
ext/sybase_ct/config.m4 (+3/-3)
ext/sysvmsg/sysvmsg.c (+24/-24)
ext/tidy/tidy.c (+16/-4)
ext/wddx/tests/bug52468.phpt (+20/-0)
ext/wddx/wddx.c (+2/-1)
ext/xml/tests/bug49687.phpt (+24/-0)
ext/xml/xml.c (+111/-31)
ext/xsl/xsltprocessor.c (+5/-2)
ext/zip/php_zip.c (+30/-9)
ext/zip/zip_stream.c (+80/-3)
ext/zlib/tests/bug_52944.phpt (+157/-0)
ext/zlib/zlib_filter.c (+4/-1)
ext/zlib/zlib_fopen_wrapper.c (+2/-2)
main/SAPI.c (+3/-3)
main/fopen_wrappers.c (+40/-14)
main/main.c (+8/-3)
main/network.c (+47/-35)
main/output.c (+137/-151)
main/php_config.h.in (+11/-8)
main/php_ini.c (+32/-5)
main/php_streams.h (+5/-5)
main/php_version.h (+3/-3)
main/rfc1867.c (+28/-19)
main/streams/cast.c (+50/-2)
main/streams/glob_wrapper.c (+3/-1)
main/streams/php_streams_int.h (+8/-1)
main/streams/plain_wrapper.c (+17/-6)
main/streams/streams.c (+13/-10)
main/win95nt.h (+3/-3)
php.ini-development (+4/-6)
php.ini-production (+4/-7)
run-tests.php (+27/-5)
sapi/cli/config.w32 (+2/-2)
sapi/cli/php_cli.c (+2/-1)
sapi/fpm/Makefile.frag (+3/-3)
sapi/fpm/config.m4 (+58/-229)
sapi/fpm/fpm/fpm.c (+14/-10)
sapi/fpm/fpm/fpm.h (+3/-4)
sapi/fpm/fpm/fpm_atomic.h (+20/-2)
sapi/fpm/fpm/fpm_children.c (+21/-25)
sapi/fpm/fpm/fpm_children.h (+5/-5)
sapi/fpm/fpm/fpm_clock.c (+4/-4)
sapi/fpm/fpm/fpm_conf.c (+367/-156)
sapi/fpm/fpm/fpm_conf.h (+6/-1)
sapi/fpm/fpm/fpm_config.h (+63/-24)
sapi/fpm/fpm/fpm_env.c (+96/-0)
sapi/fpm/fpm/fpm_env.h (+3/-0)
sapi/fpm/fpm/fpm_events.c (+381/-76)
sapi/fpm/fpm/fpm_events.h (+23/-7)
sapi/fpm/fpm/fpm_main.c (+30/-12)
sapi/fpm/fpm/fpm_php.c (+2/-0)
sapi/fpm/fpm/fpm_php.h (+20/-0)
sapi/fpm/fpm/fpm_php_trace.c (+3/-3)
sapi/fpm/fpm/fpm_process_ctl.c (+71/-74)
sapi/fpm/fpm/fpm_process_ctl.h (+11/-6)
sapi/fpm/fpm/fpm_request.c (+8/-13)
sapi/fpm/fpm/fpm_shm.c (+1/-1)
sapi/fpm/fpm/fpm_signals.c (+5/-5)
sapi/fpm/fpm/fpm_sockets.c (+95/-14)
sapi/fpm/fpm/fpm_sockets.h (+10/-0)
sapi/fpm/fpm/fpm_status.c (+102/-21)
sapi/fpm/fpm/fpm_status.h (+7/-2)
sapi/fpm/fpm/fpm_stdio.c (+37/-20)
sapi/fpm/fpm/fpm_stdio.h (+1/-1)
sapi/fpm/fpm/fpm_trace_mach.c (+3/-3)
sapi/fpm/fpm/fpm_trace_pread.c (+3/-3)
sapi/fpm/fpm/fpm_trace_ptrace.c (+4/-4)
sapi/fpm/fpm/fpm_unix.c (+18/-18)
sapi/fpm/fpm/fpm_worker_pool.h (+1/-0)
sapi/fpm/fpm/zlog.c (+15/-1)
sapi/fpm/fpm/zlog.h (+4/-2)
sapi/fpm/init.d.php-fpm.in (+2/-2)
sapi/fpm/php-fpm.8.in (+199/-0)
sapi/fpm/php-fpm.conf.in (+56/-21)
scripts/phpize.m4 (+1/-1)
tests/basic/021.phpt (+1/-1)
tests/basic/bug46313-win.phpt (+2/-3)
tests/basic/bug51709_1.phpt (+1/-1)
tests/basic/bug51709_2.phpt (+1/-1)
tests/basic/bug53180.phpt (+19/-0)
tests/basic/rfc1867_max_file_uploads_empty_files.phpt (+101/-0)
tests/basic/rfc1867_max_file_uploads_empty_files_debug.phpt (+102/-0)
tests/classes/constants_error_004.phpt (+1/-1)
tests/output/bug46897.phpt (+2/-2)
tests/output/ob_clean_basic_001.phpt (+2/-2)
tests/output/ob_end_clean_basic_001.phpt (+2/-2)
tests/output/ob_end_flush_basic_001.phpt (+3/-3)
tests/output/ob_flush_basic_001.phpt (+2/-2)
tests/output/ob_get_level_basic_001.phpt (+2/-2)
tests/output/ob_start_basic_unerasable_002.phpt (+8/-8)
tests/output/ob_start_basic_unerasable_003.phpt (+2/-2)
tests/output/ob_start_basic_unerasable_004.phpt (+1/-1)
tests/output/ob_start_basic_unerasable_005.phpt (+2/-2)
tests/output/ob_start_callbacks.phpt (+39/-0)
tests/security/bug53226.phpt (+29/-0)
win32/build/Makefile (+3/-3)
win32/build/config.w32 (+7/-7)
win32/build/config.w32.h.in (+2/-1)
win32/build/template.rc (+2/-2)
win32/glob.c (+29/-31)
win32/php5dll.dsp (+0/-4)
win32/php5dllts.dsp (+0/-4)
win32/time.c (+2/-2)
win32/winutil.c (+6/-9)
To merge this branch: bzr merge lp:~legolas/ubuntu/natty/php5/5.3.5
Reviewer Review Type Date Requested Status
Artur Rona (community) Disapprove
Ubuntu branches Pending
Review via email: mp+48128@code.launchpad.net

Description of the change

To post a comment you must log in.
Revision history for this message
Artur Rona (ari-tczew) wrote :

Thank you for your time and efforts making Ubuntu better! However, we have php5 already merged from Debian.

review: Disapprove

Unmerged revisions

81. By Stas Verberkt

Deprecated mssql fix segfault patch.

80. By Stas Verberkt

Created PHP 5.3.5 including all patches

79. By Stas Verberkt

Inserted PHP 5.3.5.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'INSTALL'
--- INSTALL 2010-08-01 11:58:54 +0000
+++ INSTALL 2011-02-01 10:04:54 +0000
@@ -279,7 +279,15 @@
279 it is your first install then you need to "make install" as well)279 it is your first install then you need to "make install" as well)
280280
28113. cd ../php-5.x.y28113. cd ../php-5.x.y
28214. cp php.ini-dist /usr/local/lib/php.ini282
28314. The PHP distribution provides two sample php.ini files, you can use them
284 by
285 cp php.ini-development /usr/local/lib/php.ini
286 or
287 cp php.ini-production /usr/local/lib/php.ini
288
289 If you choose one of these php.ini files be certain to read the list
290 of changes within, as they affect how PHP behaves.
283291
28415. You can edit /usr/local/lib/php.ini file to set PHP options.29215. You can edit /usr/local/lib/php.ini file to set PHP options.
285 Edit your httpd.conf or srm.conf file and add:293 Edit your httpd.conf or srm.conf file and add:
@@ -451,15 +459,19 @@
451459
45213. Setup your php.ini46013. Setup your php.ini
453461
454 cp php.ini-dist /usr/local/lib/php.ini462 The PHP distribution provides two sample php.ini files, you can use them
463 by
464 cp php.ini-development /usr/local/lib/php.ini
465 or
466 cp php.ini-production /usr/local/lib/php.ini
467
468 If you choose one of these php.ini files be certain to read the list
469 of changes within, as they affect how PHP behaves.
455470
456 You may edit your .ini file to set PHP options. If you prefer having471 You may edit your .ini file to set PHP options. If you prefer having
457 php.ini in another location, use --with-config-file-path=/some/path in472 php.ini in another location, use --with-config-file-path=/some/path in
458 step 10.473 step 10.
459474
460 If you instead choose php.ini-recommended, be certain to read the list
461 of changes within, as they affect how PHP behaves.
462
46314. Edit your httpd.conf to load the PHP module. The path on the right hand47514. Edit your httpd.conf to load the PHP module. The path on the right hand
464 side of the LoadModule statement must point to the path of the PHP476 side of the LoadModule statement must point to the path of the PHP
465 module on your system. The make install from above may have already477 module on your system. The make install from above may have already
@@ -858,7 +870,7 @@
858 Example 2-6. OpenBSD Package Install Example870 Example 2-6. OpenBSD Package Install Example
859# pkg_add php4-core-4.3.8.tgz871# pkg_add php4-core-4.3.8.tgz
860# /usr/local/sbin/phpxs -s872# /usr/local/sbin/phpxs -s
861# cp /usr/local/share/doc/php4/php.ini-recommended /var/www/conf/php.ini873# cp /usr/local/share/doc/php4/php.ini-development /var/www/conf/php.ini
862 (add in mysql)874 (add in mysql)
863# pkg_add php4-mysql-4.3.8.tgz875# pkg_add php4-mysql-4.3.8.tgz
864# /usr/local/sbin/phpxs -a mysql876# /usr/local/sbin/phpxs -a mysql
@@ -1242,10 +1254,10 @@
1242 back to the root of the Apache source directory and run the above1254 back to the root of the Apache source directory and run the above
1243 configure command again. That'll bring the link table up to date.1255 configure command again. That'll bring the link table up to date.
1244 Run make and make install again.1256 Run make and make install again.
1245 7. Copy and rename the php.ini-dist file to your bin directory from1257 7. Copy and rename the php.ini-development or php.ini-production file to
1246 your PHP 4 source directory: cp php.ini-dist /usr/local/bin/php.ini1258 your bin directory from your PHP 4 source directory:
1247 or (if your don't have a local directory) cp php.ini-dist1259 cp php.ini-development /usr/local/bin/php.ini or (if your don't have a
1248 /usr/bin/php.ini.1260 local directory) cp php.ini-development /usr/bin/php.ini.
1249 __________________________________________________________________1261 __________________________________________________________________
12501262
1251Compiling for MacOS X Client1263Compiling for MacOS X Client
@@ -1735,8 +1747,8 @@
1735 example, set it with something like:1747 example, set it with something like:
1736 --with-config-file-path=/etc1748 --with-config-file-path=/etc
17371749
1738 And then you would copy php.ini-dist from the distribution to1750 And then you would copy php.ini-development or php.ini-production from the
1739 /etc/php.ini and edit it to make any local changes you want.1751 distribution to /etc/php.ini and edit it to make any local changes you want.
1740 --with-config-file-scan-dir=PATH1752 --with-config-file-scan-dir=PATH
17411753
1742 On Windows the default path for the php.ini file is the Windows1754 On Windows the default path for the php.ini file is the Windows
17431755
=== modified file 'LICENSE'
--- LICENSE 2010-08-01 11:58:54 +0000
+++ LICENSE 2011-02-01 10:04:54 +0000
@@ -1,6 +1,6 @@
1-------------------------------------------------------------------- 1--------------------------------------------------------------------
2 The PHP License, version 3.012 The PHP License, version 3.01
3Copyright (c) 1999 - 2009 The PHP Group. All rights reserved.3Copyright (c) 1999 - 2010 The PHP Group. All rights reserved.
4-------------------------------------------------------------------- 4--------------------------------------------------------------------
55
6Redistribution and use in source and binary forms, with or without6Redistribution and use in source and binary forms, with or without
77
=== modified file 'Makefile.global'
--- Makefile.global 2010-08-01 11:58:54 +0000
+++ Makefile.global 2011-02-01 10:04:54 +0000
@@ -98,6 +98,7 @@
98 TEST_PHP_SRCDIR=$(top_srcdir) \98 TEST_PHP_SRCDIR=$(top_srcdir) \
99 CC="$(CC)" \99 CC="$(CC)" \
100 $(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \100 $(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
101 rm $(top_builddir)/tmp-php.ini; \
101 else \102 else \
102 echo "ERROR: Cannot run tests without CLI sapi."; \103 echo "ERROR: Cannot run tests without CLI sapi."; \
103 fi104 fi
104105
=== modified file 'NEWS'
--- NEWS 2010-08-01 11:58:54 +0000
+++ NEWS 2011-02-01 10:04:54 +0000
@@ -1,5 +1,361 @@
1PHP NEWS1PHP NEWS
2|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||2|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
306 Jan 2011, PHP 5.3.5
4- Fixed Bug #53632 (infinite loop with x87 fpu). (Scott, Rasmus)
5
609 Dec 2010, PHP 5.3.4
7- Upgraded bundled Sqlite3 to version 3.7.3. (Ilia)
8- Upgraded bundled PCRE to version 8.10. (Ilia)
9
10- Security enhancements:
11 . Fixed crash in zip extract method (possible CWE-170).
12 (Maksymilian Arciemowicz, Pierre)
13 . Paths with NULL in them (foo\0bar.txt) are now considered as invalid. (Rasmus)
14 . Fixed a possible double free in imap extension (Identified by Mateusz
15 Kocielski). (CVE-2010-4150). (Ilia)
16 . Fixed NULL pointer dereference in ZipArchive::getArchiveComment.
17 (CVE-2010-3709). (Maksymilian Arciemowicz)
18 . Fixed possible flaw in open_basedir (CVE-2010-3436). (Pierre)
19 . Fixed MOPS-2010-24, fix string validation. (CVE-2010-2950). (Pierre)
20 . Fixed symbolic resolution support when the target is a DFS share. (Pierre)
21 . Fixed bug #52929 (Segfault in filter_var with FILTER_VALIDATE_EMAIL with
22 large amount of data) (CVE-2010-3710). (Adam)
23
24- General improvements:
25 . Added stat support for zip stream. (Pierre)
26 . Added follow_location (enabled by default) option for the http stream
27 support. (Pierre)
28 . Improved support for is_link and related functions on Windows. (Pierre)
29 . Added a 3rd parameter to get_html_translation_table. It now takes a charset
30 hint, like htmlentities et al. (Gustavo)
31
32- Implemented feature requests:
33 . Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect
34 zend multibyte at runtime. (Kalle)
35 . Implemented FR #52173, added functions pcntl_get_last_error() and
36 pcntl_strerror(). (nick dot telford at gmail dot com, Arnaud)
37 . Implemented symbolic links support for open_basedir checks. (Pierre)
38 . Implemented FR #51804, SplFileInfo::getLinkTarget on Windows. (Pierre)
39 . Implemented FR #50692, not uploaded files don't count towards
40 max_file_uploads limit. As a side improvement, temporary files are not opened
41 for empty uploads and, in debug mode, 0-length uploads. (Gustavo)
42
43- Improved MySQLnd:
44 . Added new character sets to mysqlnd, which are available in MySQL 5.5
45 (Andrey)
46
47- Improved PHP-FPM SAPI:
48 . Added '-p/--prefix' to php-fpm to use a custom prefix and run multiple
49 instances. (fat)
50 . Added custom process title for FPM. (fat)
51 . Added '-t/--test' to php-fpm to check and validate FPM conf file. (fat)
52 . Added statistics about listening socket queue length for FPM.
53 (andrei dot nigmatulin at gmail dot com, fat)
54
55- Core:
56 . Fixed extract() to do not overwrite $GLOBALS and $this when using
57 EXTR_OVERWRITE. (jorto at redhat dot com)
58 . Fixed bug in the Windows implementation of dns_get_record, where the two
59 last parameters wouldn't be filled unless the type were DNS_ANY (Gustavo).
60 . Changed the $context parameter on copy() to actually have an effect. (Kalle)
61 . Fixed htmlentities/htmlspecialchars accepting certain ill-formed UTF-8
62 sequences. (Gustavo)
63 . Fixed bug #53409 (sleep() returns NULL on Windows). (Pierre)
64 . Fixed bug #53319 (strip_tags() may strip '<br />' incorrectly). (Felipe)
65 . Fixed bug #53304 (quot_print_decode does not handle lower-case hex digits).
66 (Ilia, daniel dot mueller at inexio dot net)
67 . Fixed bug #53248 (rawurlencode RFC 3986 EBCDIC support misses tilde char).
68 (Justin Martin)
69 . Fixed bug #53226 (file_exists fails on big filenames). (Adam)
70 . Fixed bug #53198 (changing INI setting "from" with ini_set did not have any
71 effect). (Gustavo)
72 . Fixed bug #53180 (post_max_size=0 not disabling the limit when the content
73 type is application/x-www-form-urlencoded or is not registered with PHP).
74 (gm at tlink dot de, Gustavo)
75 . Fixed bug #53141 (autoload misbehaves if called from closing session).
76 (ladislav at marek dot su)
77 . Fixed bug #53021 (In html_entity_decode, failure to convert numeric entities
78 with ENT_NOQUOTES and ISO-8859-1). Fixed and extended the fix of ENT_NOQUOTES
79 in html_entity_decode that had introduced the bug (rev #185591) to other
80 encodings. Additionaly, html_entity_decode() now doesn't decode &#34; if
81 ENT_NOQUOTES is given. (Gustavo)
82 . Fixed bug #52931 (strripos not overloaded with function overloading enabled).
83 (Felipe)
84 . Fixed bug #52772 (var_dump() doesn't check for the existence of
85 get_class_name before calling it). (Kalle, Gustavo)
86 . Fixed bug #52534 (var_export array with negative key). (Felipe)
87 . Fixed bug #52327 (base64_decode() improper handling of leading padding in
88 strict mode). (Ilia)
89 . Fixed bug #52260 (dns_get_record fails with non-existing domain on Windows).
90 (a_jelly_doughnut at phpbb dot com, Pierre)
91 . Fixed bug #50953 (socket will not connect to IPv4 address when the host has
92 both IPv4 and IPv6 addresses, on Windows). (Gustavo, Pierre)
93 . Fixed bug #50524 (proc_open on Windows does not respect cwd as it does on
94 other platforms). (Pierre)
95 . Fixed bug #49687 (utf8_decode vulnerabilities and deficiencies in the number
96 of reported malformed sequences). (CVE-2010-3870) (Gustavo)
97 . Fixed bug #49407 (get_html_translation_table doesn't handle UTF-8). (Gustavo)
98 . Fixed bug #48831 (php -i has different output to php --ini). (Richard,
99 Pierre)
100 . Fixed bug #47643 (array_diff() takes over 3000 times longer than php 5.2.4).
101 (Felipe)
102 . Fixed bug #47168 (printf of floating point variable prints maximum of 40
103 decimal places). (Ilia)
104 . Fixed bug #46587 (mt_rand() does not check that max is greater than min).
105 (Ilia)
106 . Fixed bug #29085 (bad default include_path on Windows). (Pierre)
107 . Fixed bug #25927 (get_html_translation_table calls the ' &#39; instead of
108 &#039;). (Gustavo)
109
110- Zend engine:
111 . Reverted fix for bug #51176 (Static calling in non-static method behaves
112 like $this->). (Felipe)
113 . Changed deprecated ini options on startup from E_WARNING to E_DEPRECATED.
114 (Kalle)
115 . Fixed NULL dereference in lex_scan on zend multibyte builds where the script
116 had a flex incompatible encoding and there was no converter. (Gustavo)
117 . Fixed covariance of return-by-ref constraints. (Etienne)
118 . Fixed bug #53305 (E_NOTICE when defining a constant starts with
119 __COMPILER_HALT_OFFSET__). (Felipe)
120 . Fixed bug #52939 (zend_call_function does not respect ZEND_SEND_PREFER_REF).
121 (Dmitry)
122 . Fixed bug #52879 (Objects unreferenced in __get, __set, __isset or __unset
123 can be freed too early). (mail_ben_schmidt at yahoo dot com dot au, Dmitry)
124 . Fixed bug #52786 (PHP should reset section to [PHP] after ini sections).
125 (Fedora at famillecollet dot com)
126 . Fixed bug #52508 (newline problem with parse_ini_file+INI_SCANNER_RAW).
127 (Felipe)
128 . Fixed bug #52484 (__set() ignores setting properties with empty names).
129 (Felipe)
130 . Fixed bug #52361 (Throwing an exception in a destructor causes invalid
131 catching). (Dmitry)
132 . Fixed bug #51008 (Zend/tests/bug45877.phpt fails). (Dmitry)
133
134- Build issues:
135 . Fixed bug #52436 (Compile error if systems do not have stdint.h)
136 (Sriram Natarajan)
137 . Fixed bug #50345 (nanosleep not detected properly on some solaris versions).
138 (Ulf, Tony)
139 . Fixed bug #49215 (make fails on glob_wrapper). (Felipe)
140
141- Calendar extension:
142 . Fixed bug #52744 (cal_days_in_month incorrect for December 1 BCE).
143 (gpap at internet dot gr, Adam)
144
145- cURL extension:
146 . Fixed bug #52828 (curl_setopt does not accept persistent streams).
147 (Gustavo, Ilia)
148 . Fixed bug #52827 (cURL leaks handle and causes assertion error
149 (CURLOPT_STDERR)). (Gustavo)
150 . Fixed bug #52202 (CURLOPT_PRIVATE gets corrupted). (Ilia)
151 . Fixed bug #50410 (curl extension slows down PHP on Windows). (Pierre)
152
153- DateTime extension:
154 . Fixed bug #53297 (gettimeofday implementation in php/win32/time.c can return
155 1 million microsecs). (ped at 7gods dot org)
156 . Fixed bug #52668 (Iterating over a dateperiod twice is broken). (Derick)
157 . Fixed bug #52454 (Relative dates and getTimestamp increments by one day).
158 (Derick)
159 . Fixed bug #52430 (date_parse parse 24:xx:xx as valid time). (Derick)
160 . Added support for the ( and ) delimiters/separators to
161 DateTime::createFromFormat(). (Derick)
162
163- DBA extension:
164 . Added Berkeley DB 5.1 support to the DBA extension. (Oracle Corp.)
165
166- DOM extension:
167 . Fixed bug #52656 (DOMCdataSection does not work with splitText). (Ilia)
168
169- Filter extension:
170 . Fixed the filter extension accepting IPv4 octets with a leading 0 as that
171 belongs to the unsupported "dotted octal" representation. (Gustavo)
172 . Fixed bug #53236 (problems in the validation of IPv6 addresses with leading
173 and trailing :: in the filter extension). (Gustavo)
174 . Fixed bug #50117 (problems in the validation of IPv6 addresses with IPv4
175 addresses and ::). (Gustavo)
176
177- GD extension:
178 . Fixed bug #53492 (fix crash if anti-aliasing steps are invalid). (Pierre)
179
180- GMP extension:
181 . Fixed bug #52906 (gmp_mod returns negative result when non-negative is
182 expected). (Stas)
183 . Fixed bug #52849 (GNU MP invalid version match). (Adam)
184
185- Hash extension:
186 . Fixed bug #51003 (unaligned memory access in ext/hash/hash_tiger.c).
187 (Mike, Ilia)
188
189- Iconv extension:
190 . Fixed bug #52941 (The 'iconv_mime_decode_headers' function is skipping
191 headers). (Adam)
192 . Fixed bug #52599 (iconv output handler outputs incorrect content type
193 when flags are used). (Ilia)
194 . Fixed bug #51250 (iconv_mime_decode() does not ignore malformed Q-encoded
195 words). (Ilia)
196
197- Intl extension:
198 . Fixed crashes on invalid parameters in intl extension. (CVE-2010-4409). (Stas, Maksymilian
199 Arciemowicz)
200 . Added support for formatting the timestamp stored in a DateTime object.
201 (Stas)
202 . Fixed bug #50590 (IntlDateFormatter::parse result is limited to the integer
203 range). (Stas)
204
205- Mbstring extension:
206 . Fixed bug #53273 (mb_strcut() returns garbage with the excessive length
207 parameter). (CVE-2010-4156) (Mateusz Kocielski, Pierre, Moriyoshi)
208 . Fixed bug #52981 (Unicode casing table was out-of-date. Updated with
209 UnicodeData-6.0.0d7.txt and included the source of the generator program with
210 the distribution) (Gustavo).
211 . Fixed bug #52681 (mb_send_mail() appends an extra MIME-Version header).
212 (Adam)
213
214- MSSQL extension:
215 . Fixed possible crash in mssql_fetch_batch(). (Kalle)
216 . Fixed bug #52843 (Segfault when optional parameters are not passed in to
217 mssql_connect). (Felipe)
218
219- MySQL extension:
220 . Fixed bug #52636 (php_mysql_fetch_hash writes long value into int).
221 (Kalle, rein at basefarm dot no)
222
223- MySQLi extension:
224 . Fixed bug #52891 (Wrong data inserted with mysqli/mysqlnd when using
225 mysqli_stmt_bind_param and value> PHP_INT_MAX). (Andrey)
226 . Fixed bug #52686 (mysql_stmt_attr_[gs]et argument points to incorrect type).
227 (rein at basefarm dot no)
228 . Fixed bug #52654 (mysqli doesn't install headers with structures it uses).
229 (Andrey)
230 . Fixed bug #52433 (Call to undefined method mysqli::poll() - must be static).
231 (Andrey)
232 . Fixed bug #52417 (MySQLi build failure with mysqlnd on MacOS X). (Andrey)
233 . Fixed bug #52413 (MySQLi/libmysql build failure on OS X, FreeBSD). (Andrey)
234 . Fixed bug #52390 (mysqli_report() should be per-request setting). (Kalle)
235 . Fixed bug #52302 (mysqli_fetch_all does not work with MYSQLI_USE_RESULT).
236 (Andrey)
237 . Fixed bug #52221 (Misbehaviour of magic_quotes_runtime (get/set)). (Andrey)
238 . Fixed bug #45921 (Can't initialize character set hebrew). (Andrey)
239
240- MySQLnd:
241 . Fixed bug #52613 (crash in mysqlnd after hitting memory limit). (Andrey)
242
243- ODBC extension:
244 - Fixed bug #52512 (Broken error handling in odbc_execute).
245 (mkoegler at auto dot tuwien dot ac dot at)
246
247- Openssl extension:
248 . Fixed possible blocking behavior in openssl_random_pseudo_bytes on Windows.
249 (Pierre)
250 . Fixed bug #53136 (Invalid read on openssl_csr_new()). (Felipe)
251 . Fixed bug #52947 (segfault when ssl stream option capture_peer_cert_chain
252 used). (Felipe)
253
254- Oracle Database extension (OCI8):
255 . Fixed bug #53284 (Valgrind warnings in oci_set_* functions) (Oracle Corp.)
256 . Fixed bug #51610 (Using oci_connect causes PHP to take a long time to
257 exit). Requires Oracle 11.2.0.2 client libraries (or Oracle bug fix
258 9891199) for this patch to have an effect. (Oracle Corp.)
259
260- PCNTL extension:
261 . Fixed bug #52784 (Race condition when handling many concurrent signals).
262 (nick dot telford at gmail dot com, Arnaud)
263
264- PCRE extension:
265 . Fixed bug #52971 (PCRE-Meta-Characters not working with utf-8). (Felipe)
266 . Fixed bug #52732 (Docs say preg_match() returns FALSE on error, but it
267 returns int(0)). (slugonamission at gmail dot com)
268
269- PHAR extension:
270 . Fixed bug #50987 (unaligned memory access in phar.c).
271 (geissert at debian dot org, Ilia)
272
273- PHP-FPM SAPI:
274 . Fixed bug #53412 (segfault when using -y). (fat)
275 . Fixed inconsistent backlog default value (-1) in FPM on many systems. (fat)
276 . Fixed bug #52501 (libevent made FPM crashed when forking -- libevent has
277 been removed). (fat)
278 . Fixed bug #52725 (gcc builtin atomic functions were sometimes used when they
279 were not available). (fat)
280 . Fixed bug #52693 (configuration file errors are not logged to stderr). (fat)
281 . Fixed bug #52674 (FPM Status page returns inconsistent Content-Type headers).
282 (fat)
283 . Fixed bug #52498 (libevent was not only linked to php-fpm). (fat)
284
285- PDO:
286 . Fixed bug #52699 (PDO bindValue writes long int 32bit enum).
287 (rein at basefarm dot no)
288 . Fixed bug #52487 (PDO::FETCH_INTO leaks memory). (Felipe)
289
290- PDO DBLib driver:
291 . Fixed bug #52546 (pdo_dblib segmentation fault when iterating MONEY values).
292 (Felipe)
293
294- PDO Firebird driver:
295 . Restored firebird support (VC9 builds only). (Pierre)
296 . Fixed bug #53335 (pdo_firebird did not implement rowCount()).
297 (preeves at ibphoenix dot com)
298 . Fixed bug #53323 (pdo_firebird getAttribute() crash).
299 (preeves at ibphoenix dot com)
300
301- PDO MySQL driver:
302 . Fixed bug #52745 (Binding params doesn't work when selecting a date inside a
303 CASE-WHEN). (Andrey)
304
305- PostgreSQL extension:
306 . Fixed bug #47199 (pg_delete() fails on NULL). (ewgraf at gmail dot com)
307
308- Reflection extension:
309 . Fixed ReflectionProperty::isDefault() giving a wrong result for properties
310 obtained with ReflectionClass::getProperties(). (Gustavo)
311- Reflection extension:
312 . Fixed bug #53366 (Reflection doesnt get dynamic property value from
313 getProperty()). (Felipe)
314 . Fixed bug #52854 (ReflectionClass::newInstanceArgs does not work for classes
315 without constructors). (Johannes)
316
317- SOAP extension:
318 . Fixed bug #44248 (RFC2616 transgression while HTTPS request through proxy
319 with SoapClient object). (Dmitry)
320
321- SPL extension:
322 . Fixed bug #53362 (Segmentation fault when extending SplFixedArray). (Felipe)
323 . Fixed bug #53279 (SplFileObject doesn't initialise default CSV escape
324 character). (Adam)
325 . Fixed bug #53144 (Segfault in SplObjectStorage::removeAll()). (Felipe)
326 . Fixed bug #53071 (SPLObjectStorage defeats gc_collect_cycles). (Gustavo)
327 . Fixed bug #52573 (SplFileObject::fscanf Segmentation fault). (Felipe)
328 . Fixed bug #51763 (SplFileInfo::getType() does not work symbolic link
329 and directory). (Pierre)
330 . Fixed bug #50481 (Storing many SPLFixedArray in an array crashes). (Felipe)
331 . Fixed bug #50579 (RegexIterator::REPLACE doesn't work). (Felipe)
332
333- SQLite3 extension:
334 . Fixed bug #53463 (sqlite3 columnName() segfaults on bad column_number).
335 (Felipe)
336
337- Streams:
338 . Fixed forward stream seeking emulation in streams that don't support seeking
339 in situations where the read operation gives back less data than requested
340 and when there was data in the buffer before the emulation started. Also made
341 more consistent its behavior -- should return failure every time less data
342 than was requested was skipped. (Gustavo)
343 . Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails
344 with streams opened with, inter alia, the 'xb' mode). (Gustavo)
345 . Fixed bug #53006 (stream_get_contents has an unpredictable behavior when the
346 underlying stream does not support seeking). (Gustavo)
347 . Fixed bug #52944 (Invalid write on second and subsequent reads with an
348 inflate filter fed invalid data). (Gustavo)
349 . Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the
350 stream). (Gustavo)
351
352- WDDX extension:
353 . Fixed bug #52468 (wddx_deserialize corrupts integer field value when left
354 empty). (Felipe)
355
356- Zlib extension:
357 . Fixed bug #52926 (zlib fopen wrapper does not use context). (Gustavo)
358
322 Jul 2010, PHP 5.3.335922 Jul 2010, PHP 5.3.3
4- Upgraded bundled sqlite to version 3.6.23.1. (Ilia)360- Upgraded bundled sqlite to version 3.6.23.1. (Ilia)
5- Upgraded bundled PCRE to version 8.02. (Ilia)361- Upgraded bundled PCRE to version 8.02. (Ilia)
@@ -234,8 +590,6 @@
234 com, Pierre)590 com, Pierre)
235- Fixed bug #50578 (incorrect shebang in phar.phar). (Fedora at FamilleCollet591- Fixed bug #50578 (incorrect shebang in phar.phar). (Fedora at FamilleCollet
236 dot com)592 dot com)
237- Fixed bug #50555 (DateTime::sub() allows 'relative' time modifications).
238 (Derick)
239- Fixed bug #50392 (date_create_from_format enforces 6 digits for 'u' format593- Fixed bug #50392 (date_create_from_format enforces 6 digits for 'u' format
240 character). (Derick)594 character). (Derick)
241- Fixed bug #50383 (Exceptions thrown in __call / __callStatic do not include595- Fixed bug #50383 (Exceptions thrown in __call / __callStatic do not include
@@ -243,6 +597,8 @@
243- Fixed bug #50358 (Compile failure compiling ext/phar/util.lo). (Felipe)597- Fixed bug #50358 (Compile failure compiling ext/phar/util.lo). (Felipe)
244- Fixed bug #50101 (name clash between global and local variable).598- Fixed bug #50101 (name clash between global and local variable).
245 (patch by yoarvi at gmail dot com)599 (patch by yoarvi at gmail dot com)
600- Fixed bug #50055 (DateTime::sub() allows 'relative' time modifications).
601 (Derick)
246- Fixed bug #51002 (fix possible memory corruption with very long names).602- Fixed bug #51002 (fix possible memory corruption with very long names).
247 (Pierre)603 (Pierre)
248- Fixed bug #49893 (Crash while creating an instance of Zend_Mail_Storage_Pop3).604- Fixed bug #49893 (Crash while creating an instance of Zend_Mail_Storage_Pop3).
249605
=== modified file 'TSRM/tsrm_virtual_cwd.c'
--- TSRM/tsrm_virtual_cwd.c 2010-08-01 11:58:54 +0000
+++ TSRM/tsrm_virtual_cwd.c 2011-02-01 10:04:54 +0000
@@ -14,10 +14,11 @@
14 +----------------------------------------------------------------------+14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@zend.com> |15 | Authors: Andi Gutmans <andi@zend.com> |
16 | Sascha Schumann <sascha@schumann.cx> |16 | Sascha Schumann <sascha@schumann.cx> |
17 | Pierre Joye <pierre@php.net> |
17 +----------------------------------------------------------------------+18 +----------------------------------------------------------------------+
18*/19*/
1920
20/* $Id: tsrm_virtual_cwd.c 300276 2010-06-08 13:27:30Z tony2001 $ */21/* $Id: tsrm_virtual_cwd.c 305070 2010-11-04 01:16:20Z pajoye $ */
2122
22#include <sys/types.h>23#include <sys/types.h>
23#include <sys/stat.h>24#include <sys/stat.h>
@@ -38,6 +39,18 @@
38# ifndef IO_REPARSE_TAG_SYMLINK39# ifndef IO_REPARSE_TAG_SYMLINK
39# define IO_REPARSE_TAG_SYMLINK 0xA000000C40# define IO_REPARSE_TAG_SYMLINK 0xA000000C
40# endif41# endif
42
43# ifndef VOLUME_NAME_NT
44# define VOLUME_NAME_NT 0x2
45# endif
46
47# ifndef VOLUME_NAME_DOS
48# define VOLUME_NAME_DOS 0x0
49# endif
50#endif
51
52#ifndef S_IFLNK
53# define S_IFLNK 0120000
41#endif54#endif
4255
43#ifdef NETWARE56#ifdef NETWARE
@@ -83,14 +96,14 @@
83#include <tchar.h>96#include <tchar.h>
84#define tsrm_strtok_r(a,b,c) _tcstok((a),(b))97#define tsrm_strtok_r(a,b,c) _tcstok((a),(b))
85#define TOKENIZER_STRING "/\\"98#define TOKENIZER_STRING "/\\"
86 99
87static int php_check_dots(const char *element, int n) 100static int php_check_dots(const char *element, int n)
88{101{
89 while (n-- > 0) if (element[n] != '.') break;102 while (n-- > 0) if (element[n] != '.') break;
90103
91 return (n != -1);104 return (n != -1);
92}105}
93 106
94#define IS_DIRECTORY_UP(element, len) \107#define IS_DIRECTORY_UP(element, len) \
95 (len >= 2 && !php_check_dots(element, len))108 (len >= 2 && !php_check_dots(element, len))
96109
@@ -124,7 +137,7 @@
124137
125/* define this to check semantics */138/* define this to check semantics */
126#define IS_DIR_OK(s) (1)139#define IS_DIR_OK(s) (1)
127 140
128#ifndef IS_DIR_OK141#ifndef IS_DIR_OK
129#define IS_DIR_OK(state) (php_is_dir_ok(state) == 0)142#define IS_DIR_OK(state) (php_is_dir_ok(state) == 0)
130#endif143#endif
@@ -137,7 +150,7 @@
137150
138#define CWD_STATE_FREE(s) \151#define CWD_STATE_FREE(s) \
139 free((s)->cwd);152 free((s)->cwd);
140 153
141#ifdef TSRM_WIN32154#ifdef TSRM_WIN32
142155
143#ifdef CTL_CODE156#ifdef CTL_CODE
@@ -202,21 +215,98 @@
202 return (time_t)UnixTime;215 return (time_t)UnixTime;
203}216}
204217
218CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len){ /* {{{ */
219 HINSTANCE kernel32;
220 HANDLE hFile;
221 DWORD dwRet;
222
223 typedef BOOL (WINAPI *gfpnh_func)(HANDLE, LPTSTR, DWORD, DWORD);
224 gfpnh_func pGetFinalPathNameByHandle;
225
226 kernel32 = LoadLibrary("kernel32.dll");
227
228 if (kernel32) {
229 pGetFinalPathNameByHandle = (gfpnh_func)GetProcAddress(kernel32, "GetFinalPathNameByHandleA");
230 if (pGetFinalPathNameByHandle == NULL) {
231 return -1;
232 }
233 } else {
234 return -1;
235 }
236
237 hFile = CreateFile(link, // file to open
238 GENERIC_READ, // open for reading
239 FILE_SHARE_READ, // share for reading
240 NULL, // default security
241 OPEN_EXISTING, // existing file only
242 FILE_FLAG_BACKUP_SEMANTICS, // normal file
243 NULL); // no attr. template
244
245 if( hFile == INVALID_HANDLE_VALUE) {
246 return -1;
247 }
248
249 dwRet = pGetFinalPathNameByHandle(hFile, target, MAXPATHLEN, VOLUME_NAME_DOS);
250 if(dwRet >= MAXPATHLEN) {
251 return -1;
252 }
253
254 CloseHandle(hFile);
255
256 if(dwRet > 4) {
257 /* Skip first 4 characters if they are "\??\" */
258 if(target[0] == '\\' && target[1] == '\\' && target[2] == '?' && target[3] == '\\') {
259 char tmp[MAXPATHLEN];
260 unsigned int offset = 4;
261 dwRet -= 4;
262
263 /* \??\UNC\ */
264 if (dwRet > 7 && target[4] == 'U' && target[5] == 'N' && target[6] == 'C') {
265 offset += 2;
266 dwRet -= 2;
267 target[offset] = '\\';
268 }
269
270 memcpy(tmp, target + offset, dwRet);
271 memcpy(target, tmp, dwRet);
272 }
273 }
274
275 target[dwRet] = '\0';
276 return dwRet;
277}
278/* }}} */
279
205CWD_API int php_sys_stat(const char *path, struct stat *buf) /* {{{ */280CWD_API int php_sys_stat(const char *path, struct stat *buf) /* {{{ */
206{281{
282 return php_sys_stat_ex(path, buf, 0);
283}
284/* }}} */
285
286CWD_API int php_sys_lstat(const char *path, struct stat *buf) /* {{{ */
287{
288 return php_sys_stat_ex(path, buf, 1);
289}
290/* }}} */
291
292CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat) /* {{{ */
293{
207 WIN32_FILE_ATTRIBUTE_DATA data;294 WIN32_FILE_ATTRIBUTE_DATA data;
208 __int64 t;295 __int64 t;
296 const size_t path_len = strlen(path);
209297
210 if (!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) {298 if (!GetFileAttributesEx(path, GetFileExInfoStandard, &data)) {
211 return stat(path, buf);299 return stat(path, buf);
212 }300 }
213301
214 if (path[1] == ':') {302 if (path_len >= 1 && path[1] == ':') {
215 if (path[0] >= 'A' && path[0] <= 'Z') {303 if (path[0] >= 'A' && path[0] <= 'Z') {
216 buf->st_dev = buf->st_rdev = path[0] - 'A';304 buf->st_dev = buf->st_rdev = path[0] - 'A';
217 } else {305 } else {
218 buf->st_dev = buf->st_rdev = path[0] - 'a';306 buf->st_dev = buf->st_rdev = path[0] - 'a';
219 }307 }
308 } else if (IS_UNC_PATH(path, path_len)) {
309 buf->st_dev = buf->st_rdev = 0;
220 } else {310 } else {
221 char cur_path[MAXPATHLEN+1];311 char cur_path[MAXPATHLEN+1];
222 DWORD len = sizeof(cur_path);312 DWORD len = sizeof(cur_path);
@@ -245,19 +335,56 @@
245 }335 }
246 if (tmp != cur_path) {336 if (tmp != cur_path) {
247 free(tmp);337 free(tmp);
248 } 338 }
249 }339 }
340
250 buf->st_uid = buf->st_gid = buf->st_ino = 0;341 buf->st_uid = buf->st_gid = buf->st_ino = 0;
251 buf->st_mode = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG;342
252 buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6));343 if (lstat && data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
344 /* File is a reparse point. Get the target */
345 HANDLE hLink = NULL;
346 REPARSE_DATA_BUFFER * pbuffer;
347 unsigned int retlength = 0;
348 TSRM_ALLOCA_FLAG(use_heap_large);
349
350 hLink = CreateFile(path, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_FLAG_OPEN_REPARSE_POINT|FILE_FLAG_BACKUP_SEMANTICS, NULL);
351 if(hLink == INVALID_HANDLE_VALUE) {
352 return -1;
353 }
354
355 pbuffer = (REPARSE_DATA_BUFFER *)tsrm_do_alloca(MAXIMUM_REPARSE_DATA_BUFFER_SIZE, use_heap_large);
356 if(!DeviceIoControl(hLink, FSCTL_GET_REPARSE_POINT, NULL, 0, pbuffer, MAXIMUM_REPARSE_DATA_BUFFER_SIZE, &retlength, NULL)) {
357 tsrm_free_alloca(pbuffer, use_heap_large);
358 CloseHandle(hLink);
359 return -1;
360 }
361
362 CloseHandle(hLink);
363
364 if(pbuffer->ReparseTag == IO_REPARSE_TAG_SYMLINK) {
365 buf->st_mode = S_IFLNK;
366 buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6));
367 }
368
369#if 0 /* Not used yet */
370 else if(pbuffer->ReparseTag == IO_REPARSE_TAG_MOUNT_POINT) {
371 buf->st_mode |=;
372 }
373#endif
374 tsrm_free_alloca(pbuffer, use_heap_large);
375 } else {
376 buf->st_mode = (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) ? (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG;
377 buf->st_mode |= (data.dwFileAttributes & FILE_ATTRIBUTE_READONLY) ? (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE>>6));
378 }
379
253 if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) {380 if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) {
254 int len = strlen(path);381 int len = strlen(path);
255382
256 if (path[len-4] == '.') {383 if (path[len-4] == '.') {
257 if (_memicmp(path+len-3, "exe", 3) == 0 ||384 if (_memicmp(path+len-3, "exe", 3) == 0 ||
258 _memicmp(path+len-3, "com", 3) == 0 ||385 _memicmp(path+len-3, "com", 3) == 0 ||
259 _memicmp(path+len-3, "bat", 3) == 0 ||386 _memicmp(path+len-3, "bat", 3) == 0 ||
260 _memicmp(path+len-3, "cmd", 3) == 0) {387 _memicmp(path+len-3, "cmd", 3) == 0) {
261 buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6));388 buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6));
262 }389 }
263 }390 }
@@ -332,7 +459,7 @@
332 }459 }
333 }460 }
334#else461#else
335 result = getcwd(cwd, sizeof(cwd)); 462 result = getcwd(cwd, sizeof(cwd));
336#endif463#endif
337 if (!result) {464 if (!result) {
338 cwd[0] = '\0';465 cwd[0] = '\0';
@@ -383,7 +510,7 @@
383 *length = 1;510 *length = 1;
384 retval = (char *) malloc(2);511 retval = (char *) malloc(2);
385 retval[0] = DEFAULT_SLASH;512 retval[0] = DEFAULT_SLASH;
386 retval[1] = '\0'; 513 retval[1] = '\0';
387 return retval;514 return retval;
388 }515 }
389516
@@ -493,7 +620,7 @@
493620
494 while (*bucket != NULL) {621 while (*bucket != NULL) {
495 if (key == (*bucket)->key && path_len == (*bucket)->path_len &&622 if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
496 memcmp(path, (*bucket)->path, path_len) == 0) {623 memcmp(path, (*bucket)->path, path_len) == 0) {
497 realpath_cache_bucket *r = *bucket;624 realpath_cache_bucket *r = *bucket;
498 *bucket = (*bucket)->next;625 *bucket = (*bucket)->next;
499 CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;626 CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
@@ -510,9 +637,9 @@
510{637{
511 long size = sizeof(realpath_cache_bucket) + path_len + 1;638 long size = sizeof(realpath_cache_bucket) + path_len + 1;
512 int same = 1;639 int same = 1;
513 640
514 if (realpath_len != path_len ||641 if (realpath_len != path_len ||
515 memcmp(path, realpath, path_len) != 0) {642 memcmp(path, realpath, path_len) != 0) {
516 size += realpath_len + 1;643 size += realpath_len + 1;
517 same = 0;644 same = 0;
518 }645 }
@@ -570,7 +697,7 @@
570 CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;697 CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
571 free(r);698 free(r);
572 } else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&699 } else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
573 memcmp(path, (*bucket)->path, path_len) == 0) {700 memcmp(path, (*bucket)->path, path_len) == 0) {
574 return *bucket;701 return *bucket;
575 } else {702 } else {
576 bucket = &(*bucket)->next;703 bucket = &(*bucket)->next;
@@ -582,21 +709,21 @@
582709
583CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, int path_len, time_t t TSRMLS_DC) /* {{{ */710CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, int path_len, time_t t TSRMLS_DC) /* {{{ */
584{711{
585 return realpath_cache_find(path, path_len, t TSRMLS_CC);712 return realpath_cache_find(path, path_len, t TSRMLS_CC);
586}713}
587/* }}} */714/* }}} */
588715
589CWD_API int realpath_cache_size(TSRMLS_D) 716CWD_API int realpath_cache_size(TSRMLS_D)
590{717{
591 return CWDG(realpath_cache_size);718 return CWDG(realpath_cache_size);
592}719}
593720
594CWD_API int realpath_cache_max_buckets(TSRMLS_D) 721CWD_API int realpath_cache_max_buckets(TSRMLS_D)
595{722{
596 return (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));723 return (sizeof(CWDG(realpath_cache)) / sizeof(CWDG(realpath_cache)[0]));
597}724}
598725
599CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D) 726CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D)
600{727{
601 return CWDG(realpath_cache);728 return CWDG(realpath_cache);
602}729}
@@ -650,14 +777,14 @@
650 if (!start) {777 if (!start) {
651 /* leading '..' must not be removed in case of relative path */778 /* leading '..' must not be removed in case of relative path */
652 if (j == 0 && path[0] == '.' && path[1] == '.' &&779 if (j == 0 && path[0] == '.' && path[1] == '.' &&
653 IS_SLASH(path[2])) {780 IS_SLASH(path[2])) {
654 path[3] = '.';781 path[3] = '.';
655 path[4] = '.';782 path[4] = '.';
656 path[5] = DEFAULT_SLASH;783 path[5] = DEFAULT_SLASH;
657 j = 5;784 j = 5;
658 } else if (j > 0 && 785 } else if (j > 0 &&
659 path[j+1] == '.' && path[j+2] == '.' &&786 path[j+1] == '.' && path[j+2] == '.' &&
660 IS_SLASH(path[j+3])) {787 IS_SLASH(path[j+3])) {
661 j += 4;788 j += 4;
662 path[j++] = '.';789 path[j++] = '.';
663 path[j++] = '.';790 path[j++] = '.';
@@ -673,7 +800,7 @@
673 }800 }
674 return j;801 return j;
675 }802 }
676 803
677 path[len] = 0;804 path[len] = 0;
678805
679 save = (use_realpath != CWD_EXPAND);806 save = (use_realpath != CWD_EXPAND);
@@ -683,18 +810,18 @@
683 if (!*t) {810 if (!*t) {
684 *t = time(0);811 *t = time(0);
685 }812 }
686 if ((bucket = realpath_cache_find(path, len, *t TSRMLS_CC)) != NULL) {813 if ((bucket = realpath_cache_find(path, len, *t TSRMLS_CC)) != NULL) {
687 if (is_dir && !bucket->is_dir) {814 if (is_dir && !bucket->is_dir) {
688 /* not a directory */815 /* not a directory */
689 return -1;816 return -1;
690 } else {817 } else {
691 if (link_is_dir) {818 if (link_is_dir) {
692 *link_is_dir = bucket->is_dir;819 *link_is_dir = bucket->is_dir;
693 }820 }
694 memcpy(path, bucket->realpath, bucket->realpath_len + 1);821 memcpy(path, bucket->realpath, bucket->realpath_len + 1);
695 return bucket->realpath_len;822 return bucket->realpath_len;
696 }823 }
697 }824 }
698 }825 }
699826
700#ifdef TSRM_WIN32827#ifdef TSRM_WIN32
@@ -706,7 +833,7 @@
706 /* continue resolution anyway but don't save result in the cache */833 /* continue resolution anyway but don't save result in the cache */
707 save = 0;834 save = 0;
708 }835 }
709 836
710 if (save) {837 if (save) {
711 FindClose(hFind);838 FindClose(hFind);
712 }839 }
@@ -714,9 +841,9 @@
714 tmp = tsrm_do_alloca(len+1, use_heap);841 tmp = tsrm_do_alloca(len+1, use_heap);
715 memcpy(tmp, path, len+1);842 memcpy(tmp, path, len+1);
716843
717 if(save && 844 if(save &&
718 !(IS_UNC_PATH(path, len) && len >= 3 && path[2] != '?') &&845 !(IS_UNC_PATH(path, len) && len >= 3 && path[2] != '?') &&
719 (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {846 (data.dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT)) {
720 /* File is a reparse point. Get the target */847 /* File is a reparse point. Get the target */
721 HANDLE hLink = NULL;848 HANDLE hLink = NULL;
722 REPARSE_DATA_BUFFER * pbuffer;849 REPARSE_DATA_BUFFER * pbuffer;
@@ -751,7 +878,7 @@
751 reparsetarget = pbuffer->SymbolicLinkReparseBuffer.ReparseTarget;878 reparsetarget = pbuffer->SymbolicLinkReparseBuffer.ReparseTarget;
752 printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);879 printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
753 isabsolute = (pbuffer->SymbolicLinkReparseBuffer.Flags == 0) ? 1 : 0;880 isabsolute = (pbuffer->SymbolicLinkReparseBuffer.Flags == 0) ? 1 : 0;
754 if (!WideCharToMultiByte(CP_THREAD_ACP, 0, 881 if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
755 reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),882 reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),
756 printname_len + 1,883 printname_len + 1,
757 printname, MAX_PATH, NULL, NULL884 printname, MAX_PATH, NULL, NULL
@@ -763,7 +890,7 @@
763 printname[printname_len] = 0;890 printname[printname_len] = 0;
764891
765 substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);892 substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);
766 if (!WideCharToMultiByte(CP_THREAD_ACP, 0, 893 if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
767 reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),894 reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),
768 substitutename_len + 1,895 substitutename_len + 1,
769 substitutename, MAX_PATH, NULL, NULL896 substitutename, MAX_PATH, NULL, NULL
@@ -777,7 +904,7 @@
777 isabsolute = 1;904 isabsolute = 1;
778 reparsetarget = pbuffer->MountPointReparseBuffer.ReparseTarget;905 reparsetarget = pbuffer->MountPointReparseBuffer.ReparseTarget;
779 printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);906 printname_len = pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR);
780 if (!WideCharToMultiByte(CP_THREAD_ACP, 0, 907 if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
781 reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),908 reparsetarget + pbuffer->MountPointReparseBuffer.PrintNameOffset / sizeof(WCHAR),
782 printname_len + 1,909 printname_len + 1,
783 printname, MAX_PATH, NULL, NULL910 printname, MAX_PATH, NULL, NULL
@@ -788,7 +915,7 @@
788 printname[pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR)] = 0;915 printname[pbuffer->MountPointReparseBuffer.PrintNameLength / sizeof(WCHAR)] = 0;
789916
790 substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);917 substitutename_len = pbuffer->MountPointReparseBuffer.SubstituteNameLength / sizeof(WCHAR);
791 if (!WideCharToMultiByte(CP_THREAD_ACP, 0, 918 if (!WideCharToMultiByte(CP_THREAD_ACP, 0,
792 reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),919 reparsetarget + pbuffer->MountPointReparseBuffer.SubstituteNameOffset / sizeof(WCHAR),
793 substitutename_len + 1,920 substitutename_len + 1,
794 substitutename, MAX_PATH, NULL, NULL921 substitutename, MAX_PATH, NULL, NULL
@@ -803,20 +930,22 @@
803 }930 }
804931
805 if(isabsolute && substitutename_len > 4) {932 if(isabsolute && substitutename_len > 4) {
806 /* Do not resolve volumes (for now). A mounted point can 933 /* Do not resolve volumes (for now). A mounted point can
807 target a volume without a drive, it is not certain that934 target a volume without a drive, it is not certain that
808 all IO functions we use in php and its deps support 935 all IO functions we use in php and its deps support
809 path with volume GUID instead of the DOS way, like:936 path with volume GUID instead of the DOS way, like:
810 d:\test\mnt\foo937 d:\test\mnt\foo
811 \\?\Volume{62d1c3f8-83b9-11de-b108-806e6f6e6963}\foo938 \\?\Volume{62d1c3f8-83b9-11de-b108-806e6f6e6963}\foo
812 */939 */
813 if (strncmp(substitutename, "\\??\\Volume{",11) == 0 940 if (strncmp(substitutename, "\\??\\Volume{",11) == 0
814 || strncmp(substitutename, "\\\\?\\Volume{",11) == 0) {941 || strncmp(substitutename, "\\\\?\\Volume{",11) == 0
815 isVolume = TRUE; 942 || strncmp(substitutename, "\\??\\UNC\\", 8) == 0
943 ) {
944 isVolume = TRUE;
816 substitutename_off = 0;945 substitutename_off = 0;
817 } else946 } else
818 /* do not use the \??\ and \\?\ prefix*/947 /* do not use the \??\ and \\?\ prefix*/
819 if (strncmp(substitutename, "\\??\\", 4) == 0 948 if (strncmp(substitutename, "\\??\\", 4) == 0
820 || strncmp(substitutename, "\\\\?\\", 4) == 0) {949 || strncmp(substitutename, "\\\\?\\", 4) == 0) {
821 substitutename_off = 4;950 substitutename_off = 4;
822 }951 }
@@ -887,7 +1016,7 @@
887 tmp = tsrm_do_alloca(len+1, use_heap);1016 tmp = tsrm_do_alloca(len+1, use_heap);
888 memcpy(tmp, path, len+1);1017 memcpy(tmp, path, len+1);
889#else1018#else
890 if (save && lstat(path, &st) < 0) {1019 if (save && php_sys_lstat(path, &st) < 0) {
891 if (use_realpath == CWD_REALPATH) {1020 if (use_realpath == CWD_REALPATH) {
892 /* file not found */1021 /* file not found */
893 return -1;1022 return -1;
@@ -900,8 +1029,8 @@
900 memcpy(tmp, path, len+1);1029 memcpy(tmp, path, len+1);
9011030
902 if (save && S_ISLNK(st.st_mode)) {1031 if (save && S_ISLNK(st.st_mode)) {
903 if (++(*ll) > LINK_MAX || (j = readlink(tmp, path, MAXPATHLEN)) < 0) {1032 if (++(*ll) > LINK_MAX || (j = php_sys_readlink(tmp, path, MAXPATHLEN)) < 0) {
904 /* too many links or broken symlinks */1033 /* too many links or broken symlinks */
905 tsrm_free_alloca(tmp, use_heap);1034 tsrm_free_alloca(tmp, use_heap);
906 return -1;1035 return -1;
907 }1036 }
@@ -913,10 +1042,10 @@
913 return -1;1042 return -1;
914 }1043 }
915 } else {1044 } else {
916 if (i + j >= MAXPATHLEN-1) {1045 if (i + j >= MAXPATHLEN-1) {
917 tsrm_free_alloca(tmp, use_heap);1046 tsrm_free_alloca(tmp, use_heap);
918 return -1; /* buffer overflow */1047 return -1; /* buffer overflow */
919 }1048 }
920 memmove(path+i, path, j+1);1049 memmove(path+i, path, j+1);
921 memcpy(path, tmp, i-1);1050 memcpy(path, tmp, i-1);
922 path[i-1] = DEFAULT_SLASH;1051 path[i-1] = DEFAULT_SLASH;
@@ -1038,18 +1167,18 @@
1038 state_cwd_length = 2;1167 state_cwd_length = 2;
1039 while (IS_SLASH(state->cwd[state_cwd_length])) {1168 while (IS_SLASH(state->cwd[state_cwd_length])) {
1040 state_cwd_length++;1169 state_cwd_length++;
1041 } 1170 }
1042 while (state->cwd[state_cwd_length] &&1171 while (state->cwd[state_cwd_length] &&
1043 !IS_SLASH(state->cwd[state_cwd_length])) {1172 !IS_SLASH(state->cwd[state_cwd_length])) {
1044 state_cwd_length++;1173 state_cwd_length++;
1045 } 1174 }
1046 while (IS_SLASH(state->cwd[state_cwd_length])) {1175 while (IS_SLASH(state->cwd[state_cwd_length])) {
1047 state_cwd_length++;1176 state_cwd_length++;
1048 } 1177 }
1049 while (state->cwd[state_cwd_length] &&1178 while (state->cwd[state_cwd_length] &&
1050 !IS_SLASH(state->cwd[state_cwd_length])) {1179 !IS_SLASH(state->cwd[state_cwd_length])) {
1051 state_cwd_length++;1180 state_cwd_length++;
1052 } 1181 }
1053 }1182 }
1054 }1183 }
1055#endif1184#endif
@@ -1061,7 +1190,7 @@
1061 memcpy(resolved_path + state_cwd_length + 1, path, path_length + 1);1190 memcpy(resolved_path + state_cwd_length + 1, path, path_length + 1);
1062 path_length += state_cwd_length + 1;1191 path_length += state_cwd_length + 1;
1063 }1192 }
1064 } else { 1193 } else {
1065#ifdef TSRM_WIN321194#ifdef TSRM_WIN32
1066 if (path_length > 2 && path[1] == ':' && !IS_SLASH(path[2])) {1195 if (path_length > 2 && path[1] == ':' && !IS_SLASH(path[2])) {
1067 resolved_path[0] = path[0];1196 resolved_path[0] = path[0];
@@ -1072,11 +1201,11 @@
1072 } else1201 } else
1073#endif1202#endif
1074 memcpy(resolved_path, path, path_length + 1);1203 memcpy(resolved_path, path, path_length + 1);
1075 } 1204 }
10761205
1077#ifdef TSRM_WIN321206#ifdef TSRM_WIN32
1078 if (memchr(resolved_path, '*', path_length) ||1207 if (memchr(resolved_path, '*', path_length) ||
1079 memchr(resolved_path, '?', path_length)) {1208 memchr(resolved_path, '?', path_length)) {
1080 return 1;1209 return 1;
1081 }1210 }
1082#endif1211#endif
@@ -1126,12 +1255,12 @@
1126 add_slash = (use_realpath != CWD_REALPATH) && path_length > 0 && IS_SLASH(resolved_path[path_length-1]);1255 add_slash = (use_realpath != CWD_REALPATH) && path_length > 0 && IS_SLASH(resolved_path[path_length-1]);
1127 t = CWDG(realpath_cache_ttl) ? 0 : -1;1256 t = CWDG(realpath_cache_ttl) ? 0 : -1;
1128 path_length = tsrm_realpath_r(resolved_path, start, path_length, &ll, &t, use_realpath, 0, NULL TSRMLS_CC);1257 path_length = tsrm_realpath_r(resolved_path, start, path_length, &ll, &t, use_realpath, 0, NULL TSRMLS_CC);
1129 1258
1130 if (path_length < 0) {1259 if (path_length < 0) {
1131 errno = ENOENT;1260 errno = ENOENT;
1132 return 1;1261 return 1;
1133 }1262 }
1134 1263
1135 if (!start && !path_length) {1264 if (!start && !path_length) {
1136 resolved_path[path_length++] = '.';1265 resolved_path[path_length++] = '.';
1137 }1266 }
@@ -1184,7 +1313,7 @@
1184 memcpy(state->cwd, resolved_path, state->cwd_length+1);1313 memcpy(state->cwd, resolved_path, state->cwd_length+1);
1185 ret = 0;1314 ret = 0;
1186 }1315 }
1187 1316
1188#if VIRTUAL_CWD_DEBUG1317#if VIRTUAL_CWD_DEBUG
1189 fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd);1318 fprintf (stderr, "virtual_file_ex() = %s\n",state->cwd);
1190#endif1319#endif
@@ -1207,7 +1336,7 @@
12071336
1208 if (length == 0) {1337 if (length == 0) {
1209 return 1; /* Can't cd to empty string */1338 return 1; /* Can't cd to empty string */
1210 } 1339 }
1211 while(--length >= 0 && !IS_SLASH(path[length])) {1340 while(--length >= 0 && !IS_SLASH(path[length])) {
1212 }1341 }
12131342
@@ -1242,16 +1371,16 @@
1242 if (!*path) {1371 if (!*path) {
1243 new_state.cwd = (char*)malloc(1);1372 new_state.cwd = (char*)malloc(1);
1244 new_state.cwd[0] = '\0';1373 new_state.cwd[0] = '\0';
1245 new_state.cwd_length = 0; 1374 new_state.cwd_length = 0;
1246 if (VCWD_GETCWD(cwd, MAXPATHLEN)) {1375 if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
1247 path = cwd;1376 path = cwd;
1248 }1377 }
1249 } else if (!IS_ABSOLUTE_PATH(path, strlen(path))) {1378 } else if (!IS_ABSOLUTE_PATH(path, strlen(path))) {
1250 CWD_STATE_COPY(&new_state, &CWDG(cwd));1379 CWD_STATE_COPY(&new_state, &CWDG(cwd));
1251 } else {1380 } else {
1252 new_state.cwd = (char*)malloc(1);1381 new_state.cwd = (char*)malloc(1);
1253 new_state.cwd[0] = '\0';1382 new_state.cwd[0] = '\0';
1254 new_state.cwd_length = 0; 1383 new_state.cwd_length = 0;
1255 }1384 }
12561385
1257 if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)==0) {1386 if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)==0) {
@@ -1317,7 +1446,7 @@
1317{1446{
1318 cwd_state new_state;1447 cwd_state new_state;
1319 int ret;1448 int ret;
1320 1449
1321 CWD_STATE_COPY(&new_state, &CWDG(cwd));1450 CWD_STATE_COPY(&new_state, &CWDG(cwd));
1322 if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) {1451 if (virtual_file_ex(&new_state, pathname, NULL, CWD_REALPATH)) {
1323 CWD_STATE_FREE(&new_state);1452 CWD_STATE_FREE(&new_state);
@@ -1329,9 +1458,9 @@
1329#else1458#else
1330 ret = access(new_state.cwd, mode);1459 ret = access(new_state.cwd, mode);
1331#endif1460#endif
1332 1461
1333 CWD_STATE_FREE(&new_state);1462 CWD_STATE_FREE(&new_state);
1334 1463
1335 return ret;1464 return ret;
1336}1465}
1337/* }}} */1466/* }}} */
@@ -1352,12 +1481,12 @@
1352TSRM_API int win32_utime(const char *filename, struct utimbuf *buf) /* {{{ */1481TSRM_API int win32_utime(const char *filename, struct utimbuf *buf) /* {{{ */
1353{1482{
1354 FILETIME mtime, atime;1483 FILETIME mtime, atime;
1355 HANDLE hFile; 1484 HANDLE hFile;
13561485
1357 hFile = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL,1486 hFile = CreateFile(filename, GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL,
1358 OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, NULL);1487 OPEN_ALWAYS, FILE_FLAG_BACKUP_SEMANTICS, NULL);
13591488
1360 /* OPEN_ALWAYS mode sets the last error to ERROR_ALREADY_EXISTS but 1489 /* OPEN_ALWAYS mode sets the last error to ERROR_ALREADY_EXISTS but
1361 the CreateFile operation succeeds */1490 the CreateFile operation succeeds */
1362 if (GetLastError() == ERROR_ALREADY_EXISTS) {1491 if (GetLastError() == ERROR_ALREADY_EXISTS) {
1363 SetLastError(0);1492 SetLastError(0);
@@ -1477,7 +1606,7 @@
1477 f = open(new_state.cwd, flags, mode);1606 f = open(new_state.cwd, flags, mode);
1478 } else {1607 } else {
1479 f = open(new_state.cwd, flags);1608 f = open(new_state.cwd, flags);
1480 } 1609 }
1481 CWD_STATE_FREE(&new_state);1610 CWD_STATE_FREE(&new_state);
1482 return f;1611 return f;
1483}1612}
@@ -1556,7 +1685,6 @@
1556}1685}
1557/* }}} */1686/* }}} */
15581687
1559#if !defined(TSRM_WIN32)
1560CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */1688CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC) /* {{{ */
1561{1689{
1562 cwd_state new_state;1690 cwd_state new_state;
@@ -1568,13 +1696,12 @@
1568 return -1;1696 return -1;
1569 }1697 }
15701698
1571 retval = lstat(new_state.cwd, buf);1699 retval = php_sys_lstat(new_state.cwd, buf);
15721700
1573 CWD_STATE_FREE(&new_state);1701 CWD_STATE_FREE(&new_state);
1574 return retval;1702 return retval;
1575}1703}
1576/* }}} */1704/* }}} */
1577#endif
15781705
1579CWD_API int virtual_unlink(const char *path TSRMLS_DC) /* {{{ */1706CWD_API int virtual_unlink(const char *path TSRMLS_DC) /* {{{ */
1580{1707{
@@ -1738,7 +1865,7 @@
1738 }1865 }
1739 *ptr++ = '\'';1866 *ptr++ = '\'';
1740 }1867 }
1741 1868
1742 *ptr++ = ' ';1869 *ptr++ = ' ';
1743 *ptr++ = ';';1870 *ptr++ = ';';
1744 *ptr++ = ' ';1871 *ptr++ = ' ';
@@ -1761,18 +1888,18 @@
1761 if (!*path) {1888 if (!*path) {
1762 new_state.cwd = (char*)malloc(1);1889 new_state.cwd = (char*)malloc(1);
1763 new_state.cwd[0] = '\0';1890 new_state.cwd[0] = '\0';
1764 new_state.cwd_length = 0; 1891 new_state.cwd_length = 0;
1765 if (VCWD_GETCWD(cwd, MAXPATHLEN)) {1892 if (VCWD_GETCWD(cwd, MAXPATHLEN)) {
1766 path = cwd;1893 path = cwd;
1767 }1894 }
1768 } else if (!IS_ABSOLUTE_PATH(path, strlen(path)) &&1895 } else if (!IS_ABSOLUTE_PATH(path, strlen(path)) &&
1769 VCWD_GETCWD(cwd, MAXPATHLEN)) {1896 VCWD_GETCWD(cwd, MAXPATHLEN)) {
1770 new_state.cwd = strdup(cwd);1897 new_state.cwd = strdup(cwd);
1771 new_state.cwd_length = strlen(cwd);1898 new_state.cwd_length = strlen(cwd);
1772 } else {1899 } else {
1773 new_state.cwd = (char*)malloc(1);1900 new_state.cwd = (char*)malloc(1);
1774 new_state.cwd[0] = '\0';1901 new_state.cwd[0] = '\0';
1775 new_state.cwd_length = 0; 1902 new_state.cwd_length = 0;
1776 }1903 }
17771904
1778 if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) {1905 if (virtual_file_ex(&new_state, path, NULL, CWD_REALPATH)) {
17791906
=== modified file 'TSRM/tsrm_virtual_cwd.h'
--- TSRM/tsrm_virtual_cwd.h 2010-03-16 09:09:50 +0000
+++ TSRM/tsrm_virtual_cwd.h 2011-02-01 10:04:54 +0000
@@ -14,10 +14,11 @@
14 +----------------------------------------------------------------------+14 +----------------------------------------------------------------------+
15 | Authors: Andi Gutmans <andi@zend.com> |15 | Authors: Andi Gutmans <andi@zend.com> |
16 | Sascha Schumann <sascha@schumann.cx> |16 | Sascha Schumann <sascha@schumann.cx> |
17 | Pierre Joye <pierre@php.net> |
17 +----------------------------------------------------------------------+18 +----------------------------------------------------------------------+
18*/19*/
1920
20/* $Id: tsrm_virtual_cwd.h 293036 2010-01-03 09:23:27Z sebastian $ */21/* $Id: tsrm_virtual_cwd.h 305070 2010-11-04 01:16:20Z pajoye $ */
2122
22#ifndef VIRTUAL_CWD_H23#ifndef VIRTUAL_CWD_H
23#define VIRTUAL_CWD_H24#define VIRTUAL_CWD_H
@@ -107,7 +108,7 @@
107#define COPY_WHEN_ABSOLUTE(path) 0108#define COPY_WHEN_ABSOLUTE(path) 0
108#endif109#endif
109110
110#ifndef IS_ABSOLUTE_PATH 111#ifndef IS_ABSOLUTE_PATH
111#define IS_ABSOLUTE_PATH(path, len) \112#define IS_ABSOLUTE_PATH(path, len) \
112 (IS_SLASH(path[0]))113 (IS_SLASH(path[0]))
113#endif114#endif
@@ -129,9 +130,16 @@
129#endif130#endif
130131
131#ifdef TSRM_WIN32132#ifdef TSRM_WIN32
133CWD_API int php_sys_stat_ex(const char *path, struct stat *buf, int lstat);
132CWD_API int php_sys_stat(const char *path, struct stat *buf);134CWD_API int php_sys_stat(const char *path, struct stat *buf);
135CWD_API int php_sys_lstat(const char *path, struct stat *buf);
136CWD_API int php_sys_readlink(const char *link, char *target, size_t target_len);
133#else137#else
134# define php_sys_stat stat138# define php_sys_stat stat
139# define php_sys_lstat lstat
140# ifdef HAVE_SYMLINK
141# define php_sys_readlink(link, target, target_len) readlink(link, target, target_len)
142# endif
135#endif143#endif
136144
137typedef struct _cwd_state {145typedef struct _cwd_state {
@@ -155,9 +163,7 @@
155CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);163CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
156CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);164CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);
157CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);165CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
158#if !defined(TSRM_WIN32)
159CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);166CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
160#endif
161CWD_API int virtual_unlink(const char *path TSRMLS_DC);167CWD_API int virtual_unlink(const char *path TSRMLS_DC);
162CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);168CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);
163CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC);169CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC);
@@ -188,7 +194,7 @@
188CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);194CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);
189#endif195#endif
190196
191/* One of the following constants must be used as the last argument 197/* One of the following constants must be used as the last argument
192 in virtual_file_ex() call. */198 in virtual_file_ex() call. */
193199
194#define CWD_EXPAND 0 /* expand "." and ".." but dont resolve symlinks */200#define CWD_EXPAND 0 /* expand "." and ".." but dont resolve symlinks */
@@ -216,7 +222,7 @@
216 unsigned char is_wvalid;222 unsigned char is_wvalid;
217 unsigned char is_writable;223 unsigned char is_writable;
218#endif224#endif
219 struct _realpath_cache_bucket *next; 225 struct _realpath_cache_bucket *next;
220} realpath_cache_bucket;226} realpath_cache_bucket;
221227
222typedef struct _virtual_cwd_globals {228typedef struct _virtual_cwd_globals {
@@ -244,7 +250,7 @@
244250
245/* The actual macros to be used in programs using TSRM251/* The actual macros to be used in programs using TSRM
246 * If the program defines VIRTUAL_DIR it will use the252 * If the program defines VIRTUAL_DIR it will use the
247 * virtual_* functions 253 * virtual_* functions
248 */254 */
249255
250#ifdef VIRTUAL_DIR256#ifdef VIRTUAL_DIR
@@ -261,9 +267,7 @@
261#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)267#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
262#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)268#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
263#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)269#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
264#if !defined(TSRM_WIN32)270#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
265# define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
266#endif
267#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)271#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
268#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)272#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)
269#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)273#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)
270274
=== modified file 'UPGRADING'
--- UPGRADING 2010-08-01 11:58:54 +0000
+++ UPGRADING 2011-02-01 10:04:54 +0000
@@ -1,4 +1,4 @@
1$Id: UPGRADING 282950 2009-06-28 16:14:30Z johannes $1$Id: UPGRADING 306076 2010-12-08 09:38:47Z pajoye $
22
3UPGRADE NOTES - PHP 5.33UPGRADE NOTES - PHP 5.3
44
@@ -40,6 +40,9 @@
402. Changes made to existing functions402. Changes made to existing functions
41=====================================41=====================================
4242
43- Paths containing NULL (like /some/path\0foo.txt) are now considered invalid.
44 See http://news.php.net/php.internals/50191
45
43- The HTTP stream wrapper now considers all status codes from 200 to 399 to be46- The HTTP stream wrapper now considers all status codes from 200 to 399 to be
44 successful.47 successful.
4548
@@ -273,6 +276,8 @@
273 - MySQLi: Now supports persistent connections by prepending the hostname 276 - MySQLi: Now supports persistent connections by prepending the hostname
274 with "p:".277 with "p:".
275278
279 - imagepstext now rejects invalid antialiasing steps and raises a warning.
280
276 d. no longer possible to disable281 d. no longer possible to disable
277282
278 - PCRE283 - PCRE
@@ -457,6 +462,14 @@
457- Firebird and SNMP support are no longer available on Windows. Firebird support462- Firebird and SNMP support are no longer available on Windows. Firebird support
458 may be reintroduced in the future.463 may be reintroduced in the future.
459464
465=====================
46611.1 New in PHP 5.3.4
467=====================
468
469- open_basedir supports now symbolic links (checks the target).
470- is_link and SplFileInfo symbolic links related method are now fully supported
471 (on Windows Vista or later).
472
460===================473===================
46112. New in PHP 5.3:47412. New in PHP 5.3:
462===================475===================
463476
=== added file 'UPGRADING.INTERNALS'
--- UPGRADING.INTERNALS 1970-01-01 00:00:00 +0000
+++ UPGRADING.INTERNALS 2011-02-01 10:04:54 +0000
@@ -0,0 +1,23 @@
1$Id$
2
3UPGRADE NOTES - PHP 5.3.4
4
51. Internal API changes
6
7========================
81. Internal API changes
9========================
10
11 a. stat/lstat support
12
13lstat is now available on all platforms. On unix-like platform
14php_sys_lstat is an alias to lstat (when avaible). On Windows it is now
15available using php_sys_lstat. php_sys_stat and php_sys_lstat usage is recommended
16instead of calling lstat directly, to ensure portability.
17
18 b. readlink support
19
20readlink is now available on all platforms. On unix-like platform
21php_sys_readlink is an alias to readlink (when avaible). On Windows it is now
22available using php_sys_readlink. php_sys_readlink usage is recommended
23instead of calling readlink directly, to ensure portability.
024
=== modified file 'Zend/acinclude.m4'
--- Zend/acinclude.m4 2010-08-01 11:58:54 +0000
+++ Zend/acinclude.m4 2011-02-01 10:04:54 +0000
@@ -1,10 +1,10 @@
1dnl $Id: acinclude.m4 298893 2010-05-03 09:05:30Z pajoye $1dnl $Id: acinclude.m4 304193 2010-10-07 21:44:41Z felipe $
2dnl2dnl
3dnl This file contains local autoconf functions.3dnl This file contains local autoconf functions.
44
5AC_DEFUN([LIBZEND_BISON_CHECK],[5AC_DEFUN([LIBZEND_BISON_CHECK],[
6 # we only support certain bison versions6 # we only support certain bison versions
7 bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2"7 bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1 2.4.2 2.4.3"
88
9 # for standalone build of Zend Engine9 # for standalone build of Zend Engine
10 test -z "$SED" && SED=sed10 test -z "$SED" && SED=sed
1111
=== modified file 'Zend/tests/bug45180.phpt'
--- Zend/tests/bug45180.phpt 2010-07-31 15:53:12 +0000
+++ Zend/tests/bug45180.phpt 2011-02-01 10:04:54 +0000
@@ -43,11 +43,11 @@
43string(3) "ABC"43string(3) "ABC"
44__call:44__call:
45string(3) "ABC"45string(3) "ABC"
46__callstatic:46__call:
47string(3) "XYZ"47string(3) "XYZ"
48__callstatic:48__call:
49string(3) "WWW"49string(3) "WWW"
50__callstatic:50__call:
51string(3) "ABC"51string(3) "ABC"
52__callstatic:52__callstatic:
53string(1) "A"53string(1) "A"
@@ -58,4 +58,4 @@
58__callstatic:58__callstatic:
59string(3) "FOO"59string(3) "FOO"
60__callstatic:60__callstatic:
61string(3) "FOO"61string(3) "FOO"
62\ No newline at end of file62\ No newline at end of file
6363
=== modified file 'Zend/tests/bug45186.phpt'
--- Zend/tests/bug45186.phpt 2010-07-31 15:53:12 +0000
+++ Zend/tests/bug45186.phpt 2011-02-01 10:04:54 +0000
@@ -35,17 +35,17 @@
3535
36?>36?>
37--EXPECTF--37--EXPECTF--
38__callstatic:38__call:
39string(3) "ABC"39string(3) "ABC"
40__callstatic:40__call:
41string(3) "ABC"41string(3) "ABC"
42__call:42__call:
43string(3) "xyz"43string(3) "xyz"
44__callstatic:44__call:
45string(3) "www"45string(3) "www"
46__call:46__call:
47string(1) "y"47string(1) "y"
48__callstatic:48__call:
49string(1) "y"49string(1) "y"
50ok50ok
51__callstatic:51__callstatic:
5252
=== modified file 'Zend/tests/bug51176.phpt'
--- Zend/tests/bug51176.phpt 2010-07-31 15:53:12 +0000
+++ Zend/tests/bug51176.phpt 2011-02-01 10:04:54 +0000
@@ -27,6 +27,6 @@
2727
28?>28?>
29--EXPECT--29--EXPECT--
30static30instance
31static31instance
32static32instance
33\ No newline at end of file33\ No newline at end of file
3434
=== added file 'Zend/tests/bug52361.phpt'
--- Zend/tests/bug52361.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52361.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,35 @@
1--TEST--
2Bug #52361 (Throwing an exception in a destructor causes invalid catching)
3--FILE--
4<?php
5class aaa {
6 public function __destruct() {
7 try {
8 throw new Exception(__CLASS__);
9 } catch(Exception $ex) {
10 echo "1. $ex\n";
11 }
12 }
13}
14function bbb() {
15 $a = new aaa();
16 throw new Exception(__FUNCTION__);
17}
18try {
19 bbb();
20 echo "must be skipped !!!";
21} catch(Exception $ex) {
22 echo "2. $ex\n";
23}
24?>
25--EXPECTF--
261. exception 'Exception' with message 'aaa' in %sbug52361.php:5
27Stack trace:
28#0 %sbug52361.php(16): aaa->__destruct()
29#1 %sbug52361.php(16): bbb()
30#2 {main}
312. exception 'Exception' with message 'bbb' in %sbug52361.php:13
32Stack trace:
33#0 %sbug52361.php(16): bbb()
34#1 {main}
35
036
=== added file 'Zend/tests/bug52484.phpt'
--- Zend/tests/bug52484.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52484.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,19 @@
1--TEST--
2Bug #52484 (__set() ignores setting properties with empty names)
3--FILE--
4<?php
5
6class A {
7 function __unset($prop) {
8 unset($this->$prop);
9 }
10}
11
12$a = new A();
13$prop = null;
14
15unset($a->$prop);
16
17?>
18--EXPECTF--
19Fatal error: Cannot access empty property in %s on line %d
020
=== added file 'Zend/tests/bug52484_2.phpt'
--- Zend/tests/bug52484_2.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52484_2.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,19 @@
1--TEST--
2Bug #52484.2 (__set() ignores setting properties with empty names)
3--FILE--
4<?php
5
6class A {
7 function __set($prop, $val) {
8 $this->$prop = $val;
9 }
10}
11
12$a = new A();
13$prop = null;
14
15$a->$prop = 2;
16
17?>
18--EXPECTF--
19Fatal error: Cannot access empty property in %s on line %d
020
=== added file 'Zend/tests/bug52484_3.phpt'
--- Zend/tests/bug52484_3.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52484_3.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,19 @@
1--TEST--
2Bug #52484.3 (__set() ignores setting properties with empty names)
3--FILE--
4<?php
5
6class A {
7 function __get($prop) {
8 var_dump($this->$prop);
9 }
10}
11
12$a = new A();
13$prop = null;
14
15var_dump($a->$prop);
16
17?>
18--EXPECTF--
19Fatal error: Cannot access empty property in %s on line %d
020
=== added file 'Zend/tests/bug52508.phpt'
--- Zend/tests/bug52508.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52508.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,20 @@
1--TEST--
2Bug #52508 (newline problem with parse_ini_file+INI_SCANNER_RAW)
3--FILE--
4<?php
5
6$file = dirname(__FILE__) .'/bug52508.ini';
7
8file_put_contents($file, "a = 1");
9
10$ini_array = parse_ini_file($file, true, INI_SCANNER_RAW);
11var_dump($ini_array);
12
13unlink($file);
14
15?>
16--EXPECT--
17array(1) {
18 ["a"]=>
19 string(1) "1"
20}
021
=== added file 'Zend/tests/bug52879.phpt'
--- Zend/tests/bug52879.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52879.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,16 @@
1--TEST--
2Bug #52879 (Objects unreferenced in __get, __set, __isset or __unset can be freed too early)
3--FILE--
4<?php
5class MyClass {
6 public $myRef;
7 public function __set($property,$value) {
8 $this->myRef = $value;
9 }
10}
11$myGlobal=new MyClass($myGlobal);
12$myGlobal->myRef=&$myGlobal;
13$myGlobal->myNonExistentProperty="ok\n";
14echo $myGlobal;
15--EXPECT--
16ok
017
=== added file 'Zend/tests/bug52939.phpt'
--- Zend/tests/bug52939.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug52939.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,40 @@
1--TEST--
2Bug #52939 (zend_call_function_array does not respect ZEND_SEND_PREFER_REF)
3--FILE--
4<?php
5$ar1 = array("row1" => 2, "row2" => 1);
6var_dump(array_multisort($ar1));
7var_dump($ar1);
8
9$ar1 = array("row1" => 2, "row2" => 1);
10$args = array(&$ar1);
11var_dump(call_user_func_array("array_multisort", $args));
12var_dump($ar1);
13
14$ar1 = array("row1" => 2, "row2" => 1);
15$args = array($ar1);
16var_dump(call_user_func_array("array_multisort", $args));
17var_dump($ar1);
18?>
19--EXPECT--
20bool(true)
21array(2) {
22 ["row2"]=>
23 int(1)
24 ["row1"]=>
25 int(2)
26}
27bool(true)
28array(2) {
29 ["row2"]=>
30 int(1)
31 ["row1"]=>
32 int(2)
33}
34bool(true)
35array(2) {
36 ["row1"]=>
37 int(2)
38 ["row2"]=>
39 int(1)
40}
041
=== added file 'Zend/tests/bug53305.phpt'
--- Zend/tests/bug53305.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug53305.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,19 @@
1--TEST--
2Bug #53305 (E_NOTICE when defining a constant starts with __COMPILER_HALT_OFFSET__)
3--FILE--
4<?php
5error_reporting(E_ALL);
6
7define('__COMPILER_HALT_OFFSET__1', 1);
8define('__COMPILER_HALT_OFFSET__2', 2);
9define('__COMPILER_HALT_OFFSET__', 3);
10define('__COMPILER_HALT_OFFSET__1'.chr(0), 4);
11
12var_dump(__COMPILER_HALT_OFFSET__1);
13var_dump(constant('__COMPILER_HALT_OFFSET__1'.chr(0)));
14
15?>
16--EXPECTF--
17Notice: Constant __COMPILER_HALT_OFFSET__ already defined in %s on line %d
18int(1)
19int(4)
020
=== added file 'Zend/tests/bug53632.phpt'
--- Zend/tests/bug53632.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/bug53632.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,10 @@
1--TEST--
2zend_strtod() hangs with 2.2250738585072011e-308
3--FILE--
4<?php
5$d = 2.2250738585072011e-308;
6
7echo "Done\n";
8?>
9--EXPECTF--
10Done
011
=== modified file 'Zend/tests/call_static_003.phpt'
--- Zend/tests/call_static_003.phpt 2010-07-31 15:53:12 +0000
+++ Zend/tests/call_static_003.phpt 2011-02-01 10:04:54 +0000
@@ -28,9 +28,9 @@
28--EXPECT--28--EXPECT--
29nonstatic29nonstatic
30string(6) "fOoBaR"30string(6) "fOoBaR"
31static31nonstatic
32string(6) "foOBAr"32string(6) "foOBAr"
33static33nonstatic
34string(6) "fOOBAr"34string(6) "fOOBAr"
35static35static
36string(3) "bAr"36string(3) "bAr"
3737
=== modified file 'Zend/tests/call_static_007.phpt'
--- Zend/tests/call_static_007.phpt 2010-07-31 15:53:12 +0000
+++ Zend/tests/call_static_007.phpt 2011-02-01 10:04:54 +0000
@@ -30,5 +30,5 @@
30--EXPECT--30--EXPECT--
31__callstatic: Test31__callstatic: Test
32__call: Test32__call: Test
33__callstatic: Bar33__call: Bar
34__callstatic: Foo34__callstatic: Foo
3535
=== modified file 'Zend/tests/declare_001.phpt'
--- Zend/tests/declare_001.phpt 2010-03-16 09:09:50 +0000
+++ Zend/tests/declare_001.phpt 2011-02-01 10:04:54 +0000
@@ -1,5 +1,11 @@
1--TEST--1--TEST--
2Testing declare statement with several type values2Testing declare statement with several type values
3--SKIPIF--
4<?php
5if (in_array("detect_unicode", array_keys(ini_get_all()))) {
6 die("skip");
7}
8?>
3--FILE--9--FILE--
4<?php10<?php
511
612
=== added file 'Zend/tests/gc_032.phpt'
--- Zend/tests/gc_032.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/gc_032.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,40 @@
1--TEST--
2GC 032: Crash in GC because of invalid reference counting
3--FILE--
4<?php
5$a = array();
6$b =& $a;
7$a[0] = $a;
8debug_zval_dump($a);
9$a = array(array());
10$b =& $a;
11$a[0][0] = $a;
12debug_zval_dump($a);
13?>
14--EXPECT--
15array(1) refcount(1){
16 [0]=>
17 array(1) refcount(3){
18 [0]=>
19 array(1) refcount(3){
20 [0]=>
21 *RECURSION*
22 }
23 }
24}
25array(1) refcount(1){
26 [0]=>
27 array(1) refcount(3){
28 [0]=>
29 array(1) refcount(1){
30 [0]=>
31 array(1) refcount(3){
32 [0]=>
33 array(1) refcount(1){
34 [0]=>
35 *RECURSION*
36 }
37 }
38 }
39 }
40}
041
=== added file 'Zend/tests/multibyte/multibyte_encoding_006.phpt'
1Binary files Zend/tests/multibyte/multibyte_encoding_006.phpt 1970-01-01 00:00:00 +0000 and Zend/tests/multibyte/multibyte_encoding_006.phpt 2011-02-01 10:04:54 +0000 differ42Binary files Zend/tests/multibyte/multibyte_encoding_006.phpt 1970-01-01 00:00:00 +0000 and Zend/tests/multibyte/multibyte_encoding_006.phpt 2011-02-01 10:04:54 +0000 differ
=== added file 'Zend/tests/objects_032.phpt'
--- Zend/tests/objects_032.phpt 1970-01-01 00:00:00 +0000
+++ Zend/tests/objects_032.phpt 2011-02-01 10:04:54 +0000
@@ -0,0 +1,40 @@
1--TEST--
2Covariant return-by-ref constraints
3--FILE--
4<?php
5
6class A implements ArrayAccess {
7 public $foo = array();
8
9 public function &offsetGet($n) {
10 return $this->foo[$n];
11 }
12
13 public function offsetSet($n, $v) {
14 }
15 public function offsetUnset($n) {
16 }
17 public function offsetExists($n) {
18 }
19}
20
21$a = new A;
22
23$a['foo']['bar'] = 2;
24
25var_dump($a);
26
27?>
28==DONE==
29--EXPECTF--
30object(A)#1 (1) {
31 ["foo"]=>
32 array(1) {
33 ["foo"]=>
34 array(1) {
35 ["bar"]=>
36 int(2)
37 }
38 }
39}
40==DONE==
041
=== modified file 'Zend/tests/unset_cv05.phpt'
--- Zend/tests/unset_cv05.phpt 2010-03-16 09:09:50 +0000
+++ Zend/tests/unset_cv05.phpt 2011-02-01 10:04:54 +0000
@@ -19,7 +19,7 @@
19echo "\nok\n";19echo "\nok\n";
20?>20?>
21--EXPECTF--21--EXPECTF--
22Warning: Directive 'register_long_arrays' is deprecated in PHP %d.%d and greater in Unknown on line 022Deprecated: Directive 'register_long_arrays' is deprecated in PHP %d.%d and greater in Unknown on line 0
23ok23ok
2424
25Warning: session_start(): Cannot send session cookie - headers already sent by (output started at %sunset_cv05.php on line %d25Warning: session_start(): Cannot send session cookie - headers already sent by (output started at %sunset_cv05.php on line %d
2626
=== modified file 'Zend/tests/unset_cv06.phpt'
--- Zend/tests/unset_cv06.phpt 2010-03-16 09:09:50 +0000
+++ Zend/tests/unset_cv06.phpt 2011-02-01 10:04:54 +0000
@@ -19,7 +19,7 @@
19echo "ok\n";19echo "ok\n";
20?>20?>
21--EXPECTF--21--EXPECTF--
22Warning: Directive 'register_globals' is deprecated in PHP %d.%d and greater in Unknown on line 022Deprecated: Directive 'register_globals' is deprecated in PHP %d.%d and greater in Unknown on line 0
231231
2424
25Deprecated: Function session_register() is deprecated in %s on line %d25Deprecated: Function session_register() is deprecated in %s on line %d
2626
=== modified file 'Zend/zend_API.c'
--- Zend/zend_API.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_API.c 2011-02-01 10:04:54 +0000
@@ -18,7 +18,7 @@
18 +----------------------------------------------------------------------+18 +----------------------------------------------------------------------+
19*/19*/
2020
21/* $Id: zend_API.c 299395 2010-05-14 23:48:03Z felipe $ */21/* $Id: zend_API.c 302137 2010-08-12 07:58:14Z sas $ */
2222
23#include "zend.h"23#include "zend.h"
24#include "zend_execute.h"24#include "zend_execute.h"
@@ -1082,7 +1082,7 @@
1082 } else {1082 } else {
1083 ALLOC_HASHTABLE_REL(object->properties);1083 ALLOC_HASHTABLE_REL(object->properties);
1084 zend_hash_init(object->properties, zend_hash_num_elements(&class_type->default_properties), NULL, ZVAL_PTR_DTOR, 0);1084 zend_hash_init(object->properties, zend_hash_num_elements(&class_type->default_properties), NULL, ZVAL_PTR_DTOR, 0);
1085 zend_hash_copy(object->properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));1085 zend_hash_copy(object->properties, &class_type->default_properties, zval_copy_property_ctor(class_type), (void *) &tmp, sizeof(zval *));
1086 }1086 }
1087 } else {1087 } else {
1088 Z_OBJVAL_P(arg) = class_type->create_object(class_type TSRMLS_CC);1088 Z_OBJVAL_P(arg) = class_type->create_object(class_type TSRMLS_CC);
10891089
=== modified file 'Zend/zend_compile.c'
--- Zend/zend_compile.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_compile.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_compile.c 300817 2010-06-28 16:37:57Z felipe $ */20/* $Id: zend_compile.c 305057 2010-11-03 15:40:24Z colder $ */
2121
22#include <zend_language_parser.h>22#include <zend_language_parser.h>
23#include "zend.h"23#include "zend.h"
@@ -2551,12 +2551,14 @@
2551 return 0;2551 return 0;
2552 }2552 }
25532553
2554 if (proto->common.pass_rest_by_reference2554 if (fe->common.type != ZEND_USER_FUNCTION
2555 && proto->common.pass_rest_by_reference
2555 && !fe->common.pass_rest_by_reference) {2556 && !fe->common.pass_rest_by_reference) {
2556 return 0;2557 return 0;
2557 }2558 }
25582559
2559 if (fe->common.return_reference != proto->common.return_reference) {2560 /* by-ref constraints on return values are covariant */
2561 if (proto->common.return_reference && !fe->common.return_reference) {
2560 return 0;2562 return 0;
2561 }2563 }
25622564
@@ -2580,6 +2582,8 @@
2580 /* Only one has an array type hint and the other one doesn't */2582 /* Only one has an array type hint and the other one doesn't */
2581 return 0;2583 return 0;
2582 }2584 }
2585
2586 /* by-ref constraints on arguments are invariant */
2583 if (fe->common.arg_info[i].pass_by_reference != proto->common.arg_info[i].pass_by_reference) {2587 if (fe->common.arg_info[i].pass_by_reference != proto->common.arg_info[i].pass_by_reference) {
2584 return 0;2588 return 0;
2585 }2589 }
@@ -2817,6 +2821,9 @@
2817}2821}
2818/* }}} */2822/* }}} */
28192823
2824#define zval_property_ctor(parent_ce, ce) \
2825 ((copy_ctor_func_t) (((parent_ce)->type != (ce)->type) ? zval_shared_property_ctor : zval_add_ref))
2826
2820ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC) /* {{{ */2827ZEND_API void zend_do_inheritance(zend_class_entry *ce, zend_class_entry *parent_ce TSRMLS_DC) /* {{{ */
2821{2828{
2822 if ((ce->ce_flags & ZEND_ACC_INTERFACE)2829 if ((ce->ce_flags & ZEND_ACC_INTERFACE)
@@ -2840,7 +2847,7 @@
2840 zend_do_inherit_interfaces(ce, parent_ce TSRMLS_CC);2847 zend_do_inherit_interfaces(ce, parent_ce TSRMLS_CC);
28412848
2842 /* Inherit properties */2849 /* Inherit properties */
2843 zend_hash_merge(&ce->default_properties, &parent_ce->default_properties, (void (*)(void *)) zval_add_ref, NULL, sizeof(zval *), 0);2850 zend_hash_merge(&ce->default_properties, &parent_ce->default_properties, zval_property_ctor(parent_ce, ce), NULL, sizeof(zval *), 0);
2844 if (parent_ce->type != ce->type) {2851 if (parent_ce->type != ce->type) {
2845 /* User class extends internal class */2852 /* User class extends internal class */
2846 zend_update_class_constants(parent_ce TSRMLS_CC);2853 zend_update_class_constants(parent_ce TSRMLS_CC);
@@ -2850,7 +2857,7 @@
2850 }2857 }
2851 zend_hash_merge_ex(&ce->properties_info, &parent_ce->properties_info, (copy_ctor_func_t) (ce->type & ZEND_INTERNAL_CLASS ? zend_duplicate_property_info_internal : zend_duplicate_property_info), sizeof(zend_property_info), (merge_checker_func_t) do_inherit_property_access_check, ce);2858 zend_hash_merge_ex(&ce->properties_info, &parent_ce->properties_info, (copy_ctor_func_t) (ce->type & ZEND_INTERNAL_CLASS ? zend_duplicate_property_info_internal : zend_duplicate_property_info), sizeof(zend_property_info), (merge_checker_func_t) do_inherit_property_access_check, ce);
28522859
2853 zend_hash_merge(&ce->constants_table, &parent_ce->constants_table, (void (*)(void *)) zval_add_ref, NULL, sizeof(zval *), 0);2860 zend_hash_merge(&ce->constants_table, &parent_ce->constants_table, zval_property_ctor(parent_ce, ce), NULL, sizeof(zval *), 0);
2854 zend_hash_merge_ex(&ce->function_table, &parent_ce->function_table, (copy_ctor_func_t) do_inherit_method, sizeof(zend_function), (merge_checker_func_t) do_inherit_method_check, ce);2861 zend_hash_merge_ex(&ce->function_table, &parent_ce->function_table, (copy_ctor_func_t) do_inherit_method, sizeof(zend_function), (merge_checker_func_t) do_inherit_method_check, ce);
2855 do_inherit_parent_constructor(ce);2862 do_inherit_parent_constructor(ce);
28562863
28572864
=== modified file 'Zend/zend_constants.c'
--- Zend/zend_constants.c 2010-03-16 09:09:50 +0000
+++ Zend/zend_constants.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_constants.c 293155 2010-01-05 20:46:53Z sebastian $ */20/* $Id: zend_constants.c 305332 2010-11-14 01:38:52Z felipe $ */
2121
22#include "zend.h"22#include "zend.h"
23#include "zend_constants.h"23#include "zend_constants.h"
@@ -434,8 +434,16 @@
434 }434 }
435 }435 }
436436
437 if ((strncmp(name, "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__") - 1) == 0) ||437 /* Check if the user is trying to define the internal pseudo constant name __COMPILER_HALT_OFFSET__ */
438 zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {438 if ((c->name_len == sizeof("__COMPILER_HALT_OFFSET__")
439 && !memcmp(name, "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__")-1))
440 || zend_hash_add(EG(zend_constants), name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) {
441
442 /* The internal __COMPILER_HALT_OFFSET__ is prefixed by NULL byte */
443 if (c->name[0] == '\0' && c->name_len > sizeof("\0__COMPILER_HALT_OFFSET__")
444 && memcmp(name, "\0__COMPILER_HALT_OFFSET__", sizeof("\0__COMPILER_HALT_OFFSET__")) == 0) {
445 name++;
446 }
439 zend_error(E_NOTICE,"Constant %s already defined", name);447 zend_error(E_NOTICE,"Constant %s already defined", name);
440 free(c->name);448 free(c->name);
441 if (!(c->flags & CONST_PERSISTENT)) {449 if (!(c->flags & CONST_PERSISTENT)) {
442450
=== modified file 'Zend/zend_exceptions.c'
--- Zend/zend_exceptions.c 2010-03-16 09:09:50 +0000
+++ Zend/zend_exceptions.c 2011-02-01 10:04:54 +0000
@@ -19,7 +19,7 @@
19 +----------------------------------------------------------------------+19 +----------------------------------------------------------------------+
20*/20*/
2121
22/* $Id: zend_exceptions.c 293155 2010-01-05 20:46:53Z sebastian $ */22/* $Id: zend_exceptions.c 302311 2010-08-16 08:11:08Z dmitry $ */
2323
24#include "zend.h"24#include "zend.h"
25#include "zend_API.h"25#include "zend_API.h"
@@ -137,7 +137,7 @@
137137
138 ALLOC_HASHTABLE(object->properties);138 ALLOC_HASHTABLE(object->properties);
139 zend_hash_init(object->properties, 0, NULL, ZVAL_PTR_DTOR, 0);139 zend_hash_init(object->properties, 0, NULL, ZVAL_PTR_DTOR, 0);
140 zend_hash_copy(object->properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));140 zend_hash_copy(object->properties, &class_type->default_properties, zval_copy_property_ctor(class_type), (void *) &tmp, sizeof(zval *));
141141
142 ALLOC_ZVAL(trace);142 ALLOC_ZVAL(trace);
143 Z_UNSET_ISREF_P(trace);143 Z_UNSET_ISREF_P(trace);
@@ -572,6 +572,7 @@
572 zend_call_function(&fci, NULL TSRMLS_CC);572 zend_call_function(&fci, NULL TSRMLS_CC);
573573
574 if (Z_TYPE_P(trace) != IS_STRING) {574 if (Z_TYPE_P(trace) != IS_STRING) {
575 zval_ptr_dtor(&trace);
575 trace = NULL;576 trace = NULL;
576 }577 }
577578
@@ -592,6 +593,10 @@
592 zval_dtor(&line);593 zval_dtor(&line);
593594
594 exception = zend_read_property(default_exception_ce, exception, "previous", sizeof("previous")-1, 0 TSRMLS_CC);595 exception = zend_read_property(default_exception_ce, exception, "previous", sizeof("previous")-1, 0 TSRMLS_CC);
596
597 if (trace) {
598 zval_ptr_dtor(&trace);
599 }
595 }600 }
596 zval_dtor(&fname);601 zval_dtor(&fname);
597602
@@ -599,10 +604,6 @@
599 * the result in uncaught exception handlers without memleaks. */604 * the result in uncaught exception handlers without memleaks. */
600 zend_update_property_string(default_exception_ce, getThis(), "string", sizeof("string")-1, str TSRMLS_CC);605 zend_update_property_string(default_exception_ce, getThis(), "string", sizeof("string")-1, str TSRMLS_CC);
601606
602 if (trace) {
603 zval_ptr_dtor(&trace);
604 }
605
606 RETURN_STRINGL(str, len, 0);607 RETURN_STRINGL(str, len, 0);
607}608}
608/* }}} */609/* }}} */
609610
=== modified file 'Zend/zend_execute.c'
--- Zend/zend_execute.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_execute.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_execute.c 298213 2010-04-20 12:30:35Z dmitry $ */20/* $Id: zend_execute.c 303895 2010-09-30 14:11:51Z dmitry $ */
2121
22#define ZEND_INTENSIVE_DEBUGGING 022#define ZEND_INTENSIVE_DEBUGGING 0
2323
@@ -714,8 +714,8 @@
714 ALLOC_ZVAL(variable_ptr);714 ALLOC_ZVAL(variable_ptr);
715 *variable_ptr_ptr = variable_ptr;715 *variable_ptr_ptr = variable_ptr;
716 *variable_ptr = *value;716 *variable_ptr = *value;
717 zval_copy_ctor(variable_ptr);
718 Z_SET_REFCOUNT_P(variable_ptr, 1);717 Z_SET_REFCOUNT_P(variable_ptr, 1);
718 zval_copy_ctor(variable_ptr);
719 } else {719 } else {
720 *variable_ptr_ptr = value;720 *variable_ptr_ptr = value;
721 Z_ADDREF_P(value);721 Z_ADDREF_P(value);
722722
=== modified file 'Zend/zend_execute_API.c'
--- Zend/zend_execute_API.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_execute_API.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_execute_API.c 299766 2010-05-26 00:00:58Z felipe $ */20/* $Id: zend_execute_API.c 304364 2010-10-13 08:51:39Z dmitry $ */
2121
22#include <stdio.h>22#include <stdio.h>
23#include <signal.h>23#include <signal.h>
@@ -870,7 +870,8 @@
870 if (Z_REFCOUNT_PP(fci->params[i]) > 1) {870 if (Z_REFCOUNT_PP(fci->params[i]) > 1) {
871 zval *new_zval;871 zval *new_zval;
872872
873 if (fci->no_separation) {873 if (fci->no_separation &&
874 !ARG_MAY_BE_SENT_BY_REF(EX(function_state).function, i + 1)) {
874 if(i) {875 if(i) {
875 /* hack to clean up the stack */876 /* hack to clean up the stack */
876 zend_vm_stack_push_nocheck((void *) (zend_uintptr_t)i TSRMLS_CC);877 zend_vm_stack_push_nocheck((void *) (zend_uintptr_t)i TSRMLS_CC);
877878
=== modified file 'Zend/zend_gc.c'
--- Zend/zend_gc.c 2010-07-31 15:53:12 +0000
+++ Zend/zend_gc.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_gc.c 297307 2010-04-01 22:54:03Z stas $ */20/* $Id: zend_gc.c 303016 2010-09-03 09:27:47Z dmitry $ */
2121
22#include "zend.h"22#include "zend.h"
23#include "zend_API.h"23#include "zend_API.h"
@@ -414,19 +414,21 @@
414 gc_root_buffer *current = GC_G(roots).next;414 gc_root_buffer *current = GC_G(roots).next;
415415
416 while (current != &GC_G(roots)) {416 while (current != &GC_G(roots)) {
417 if (current->handle && EG(objects_store).object_buckets) {417 if (current->handle) {
418 struct _store_object *obj = &EG(objects_store).object_buckets[current->handle].bucket.obj;418 if (EG(objects_store).object_buckets) {
419419 struct _store_object *obj = &EG(objects_store).object_buckets[current->handle].bucket.obj;
420 if (GC_GET_COLOR(obj->buffered) == GC_PURPLE) {420
421 zval z;421 if (GC_GET_COLOR(obj->buffered) == GC_PURPLE) {
422422 zval z;
423 INIT_PZVAL(&z);423
424 Z_OBJ_HANDLE(z) = current->handle;424 INIT_PZVAL(&z);
425 Z_OBJ_HT(z) = current->u.handlers;425 Z_OBJ_HANDLE(z) = current->handle;
426 zobj_mark_grey(obj, &z TSRMLS_CC);426 Z_OBJ_HT(z) = current->u.handlers;
427 } else {427 zobj_mark_grey(obj, &z TSRMLS_CC);
428 GC_SET_ADDRESS(obj->buffered, NULL);428 } else {
429 GC_REMOVE_FROM_BUFFER(current);429 GC_SET_ADDRESS(obj->buffered, NULL);
430 GC_REMOVE_FROM_BUFFER(current);
431 }
430 }432 }
431 } else {433 } else {
432 if (GC_ZVAL_GET_COLOR(current->u.pz) == GC_PURPLE) {434 if (GC_ZVAL_GET_COLOR(current->u.pz) == GC_PURPLE) {
@@ -623,15 +625,17 @@
623 gc_root_buffer *current = GC_G(roots).next;625 gc_root_buffer *current = GC_G(roots).next;
624626
625 while (current != &GC_G(roots)) {627 while (current != &GC_G(roots)) {
626 if (current->handle && EG(objects_store).object_buckets) {628 if (current->handle) {
627 struct _store_object *obj = &EG(objects_store).object_buckets[current->handle].bucket.obj;629 if (EG(objects_store).object_buckets) {
628 zval z;630 struct _store_object *obj = &EG(objects_store).object_buckets[current->handle].bucket.obj;
631 zval z;
629632
630 GC_SET_ADDRESS(obj->buffered, NULL);633 GC_SET_ADDRESS(obj->buffered, NULL);
631 INIT_PZVAL(&z);634 INIT_PZVAL(&z);
632 Z_OBJ_HANDLE(z) = current->handle;635 Z_OBJ_HANDLE(z) = current->handle;
633 Z_OBJ_HT(z) = current->u.handlers;636 Z_OBJ_HT(z) = current->u.handlers;
634 zobj_collect_white(&z TSRMLS_CC);637 zobj_collect_white(&z TSRMLS_CC);
638 }
635 } else {639 } else {
636 GC_ZVAL_SET_ADDRESS(current->u.pz, NULL);640 GC_ZVAL_SET_ADDRESS(current->u.pz, NULL);
637 zval_collect_white(current->u.pz TSRMLS_CC);641 zval_collect_white(current->u.pz TSRMLS_CC);
638642
=== modified file 'Zend/zend_hash.c'
--- Zend/zend_hash.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_hash.c 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_hash.c 298914 2010-05-03 16:36:04Z felipe $ */20/* $Id: zend_hash.c 303364 2010-09-14 14:26:37Z johannes $ */
2121
22#include "zend.h"22#include "zend.h"
2323
@@ -63,6 +63,9 @@
63 case HT_CLEANING:63 case HT_CLEANING:
64 zend_output_debug_string(1, "%s(%d) : ht=%p is being cleaned", file, line, ht);64 zend_output_debug_string(1, "%s(%d) : ht=%p is being cleaned", file, line, ht);
65 break;65 break;
66 default:
67 zend_output_debug_string(1, "%s(%d) : ht=%p is inconsistent", file, line, ht);
68 break;
66 }69 }
67 zend_bailout();70 zend_bailout();
68}71}
6972
=== modified file 'Zend/zend_hash.h'
--- Zend/zend_hash.h 2010-03-16 09:09:50 +0000
+++ Zend/zend_hash.h 2011-02-01 10:04:54 +0000
@@ -17,7 +17,7 @@
17 +----------------------------------------------------------------------+17 +----------------------------------------------------------------------+
18*/18*/
1919
20/* $Id: zend_hash.h 293155 2010-01-05 20:46:53Z sebastian $ */20/* $Id: zend_hash.h 304083 2010-10-05 11:28:56Z dmitry $ */
2121
22#ifndef ZEND_HASH_H22#ifndef ZEND_HASH_H
23#define ZEND_HASH_H23#define ZEND_HASH_H
@@ -312,7 +312,7 @@
312 } \312 } \
313 if (*tmp >= '0' && *tmp <= '9') { /* possibly a numeric index */ \313 if (*tmp >= '0' && *tmp <= '9') { /* possibly a numeric index */ \
314 const char *end = key + length - 1; \314 const char *end = key + length - 1; \
315 long idx; \315 ulong idx; \
316 \316 \
317 if ((*end != '\0') /* not a null terminated string */ \317 if ((*end != '\0') /* not a null terminated string */ \
318 || (*tmp == '0' && length > 2) /* numbers with leading zeros */ \318 || (*tmp == '0' && length > 2) /* numbers with leading zeros */ \
@@ -328,11 +328,11 @@
328 } \328 } \
329 if (tmp == end) { \329 if (tmp == end) { \
330 if (*key == '-') { \330 if (*key == '-') { \
331 idx = -idx; \331 if (idx-1 > LONG_MAX) { /* overflow */ \
332 if (idx > 0) { /* overflow */ \
333 break; \332 break; \
334 } \333 } \
335 } else if (idx < 0) { /* overflow */ \334 idx = (ulong)(-(long)idx); \
335 } else if (idx > LONG_MAX) { /* overflow */ \
336 break; \336 break; \
337 } \337 } \
338 return func; \338 return func; \
339339
=== modified file 'Zend/zend_ini_scanner.c'
--- Zend/zend_ini_scanner.c 2010-08-01 11:58:54 +0000
+++ Zend/zend_ini_scanner.c 2011-02-01 10:04:54 +0000
@@ -1,4 +1,4 @@
1/* Generated by re2c 0.13.5 on Tue May 25 22:53:58 2010 */1/* Generated by re2c 0.13.5 on Sun Aug 1 12:07:43 2010 */
2#line 1 "Zend/zend_ini_scanner.l"2#line 1 "Zend/zend_ini_scanner.l"
3/*3/*
4 +----------------------------------------------------------------------+4 +----------------------------------------------------------------------+
@@ -22,7 +22,7 @@
22 +----------------------------------------------------------------------+22 +----------------------------------------------------------------------+
23*/23*/
2424
25/* $Id: zend_ini_scanner.c 299767 2010-05-26 02:18:17Z felipe $ */25/* $Id: zend_ini_scanner.c 301758 2010-08-01 15:26:54Z felipe $ */
2626
27#include <errno.h>27#include <errno.h>
28#include "zend.h"28#include "zend.h"
@@ -1826,7 +1826,7 @@
1826yyc_ST_RAW:1826yyc_ST_RAW:
1827 {1827 {
1828 static const unsigned char yybm[] = {1828 static const unsigned char yybm[] = {
1829 160, 160, 160, 160, 160, 160, 160, 160, 1829 32, 160, 160, 160, 160, 160, 160, 160,
1830 160, 224, 0, 160, 160, 0, 160, 160, 1830 160, 224, 0, 160, 160, 0, 160, 160,
1831 160, 160, 160, 160, 160, 160, 160, 160, 1831 160, 160, 160, 160, 160, 160, 160, 160,
1832 160, 160, 160, 160, 160, 160, 160, 160, 1832 160, 160, 160, 160, 160, 160, 160, 160,
@@ -1862,150 +1862,158 @@
1862 YYDEBUG(135, *YYCURSOR);1862 YYDEBUG(135, *YYCURSOR);
1863 YYFILL(3);1863 YYFILL(3);
1864 yych = *YYCURSOR;1864 yych = *YYCURSOR;
1865 if (yych <= '\r') {1865 if (yych <= '\f') {
1866 if (yych <= '\t') {1866 if (yych <= 0x08) {
1867 if (yych >= '\t') goto yy139;1867 if (yych >= 0x01) goto yy139;
1868 } else {1868 } else {
1869 if (yych <= '\n') goto yy140;1869 if (yych <= '\t') goto yy141;
1870 if (yych >= '\r') goto yy142;1870 if (yych <= '\n') goto yy142;
1871 goto yy139;
1871 }1872 }
1872 } else {1873 } else {
1873 if (yych <= ' ') {1874 if (yych <= ' ') {
1874 if (yych >= ' ') goto yy139;1875 if (yych <= '\r') goto yy144;
1876 if (yych <= 0x1F) goto yy139;
1877 goto yy141;
1875 } else {1878 } else {
1876 if (yych == ';') goto yy143;1879 if (yych == ';') goto yy145;
1880 goto yy139;
1877 }1881 }
1878 }1882 }
1879 YYDEBUG(137, *YYCURSOR);1883 YYDEBUG(137, *YYCURSOR);
1880 ++YYCURSOR;1884 ++YYCURSOR;
1881 yych = *YYCURSOR;
1882 goto yy155;
1883yy138:
1884 YYDEBUG(138, *YYCURSOR);1885 YYDEBUG(138, *YYCURSOR);
1885 yyleng = YYCURSOR - SCNG(yy_text);1886 yyleng = YYCURSOR - SCNG(yy_text);
1886#line 445 "Zend/zend_ini_scanner.l"1887#line 567 "Zend/zend_ini_scanner.l"
1887 { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */1888 { /* End of option value (if EOF is reached before EOL */
1888 /* Eat leading and trailing double quotes */1889 BEGIN(INITIAL);
1889 if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {1890 return END_OF_LINE;
1890 SCNG(yy_text)++;
1891 yyleng = yyleng - 2;
1892 }
1893 RETURN_TOKEN(TC_RAW, yytext, yyleng);
1894}1891}
1895#line 1896 "Zend/zend_ini_scanner.c"1892#line 1893 "Zend/zend_ini_scanner.c"
1896yy139:1893yy139:
1897 YYDEBUG(139, *YYCURSOR);1894 YYDEBUG(139, *YYCURSOR);
1898 yyaccept = 0;1895 ++YYCURSOR;
1899 yych = *(YYMARKER = ++YYCURSOR);1896 yych = *YYCURSOR;
1900 if (yybm[0+yych] & 64) {1897 goto yy156;
1901 goto yy151;
1902 }
1903 if (yych <= '\f') {
1904 if (yych == '\n') goto yy150;
1905 goto yy154;
1906 } else {
1907 if (yych <= '\r') goto yy153;
1908 if (yych == ';') goto yy145;
1909 goto yy154;
1910 }
1911yy140:1898yy140:
1912 YYDEBUG(140, *YYCURSOR);1899 YYDEBUG(140, *YYCURSOR);
1913 ++YYCURSOR;1900 yyleng = YYCURSOR - SCNG(yy_text);
1901#line 445 "Zend/zend_ini_scanner.l"
1902 { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
1903 /* Eat leading and trailing double quotes */
1904 if (yytext[0] == '"' && yytext[yyleng - 1] == '"') {
1905 SCNG(yy_text)++;
1906 yyleng = yyleng - 2;
1907 }
1908 RETURN_TOKEN(TC_RAW, yytext, yyleng);
1909}
1910#line 1911 "Zend/zend_ini_scanner.c"
1914yy141:1911yy141:
1915 YYDEBUG(141, *YYCURSOR);1912 YYDEBUG(141, *YYCURSOR);
1916 yyleng = YYCURSOR - SCNG(yy_text);1913 yyaccept = 0;
1917#line 458 "Zend/zend_ini_scanner.l"1914 yych = *(YYMARKER = ++YYCURSOR);
1918 { /* End of option value */1915 if (yybm[0+yych] & 64) {
1919 BEGIN(INITIAL);1916 goto yy152;
1920 SCNG(lineno)++;1917 }
1921 return END_OF_LINE;1918 if (yych <= '\f') {
1922}1919 if (yych == '\n') goto yy151;
1923#line 1924 "Zend/zend_ini_scanner.c"1920 goto yy156;
1921 } else {
1922 if (yych <= '\r') goto yy154;
1923 if (yych == ';') goto yy146;
1924 goto yy156;
1925 }
1924yy142:1926yy142:
1925 YYDEBUG(142, *YYCURSOR);1927 YYDEBUG(142, *YYCURSOR);
1926 yych = *++YYCURSOR;1928 ++YYCURSOR;
1927 if (yych == '\n') goto yy150;
1928 goto yy141;
1929yy143:1929yy143:
1930 YYDEBUG(143, *YYCURSOR);1930 YYDEBUG(143, *YYCURSOR);
1931 yyaccept = 1;1931 yyleng = YYCURSOR - SCNG(yy_text);
1932 yych = *(YYMARKER = ++YYCURSOR);1932#line 458 "Zend/zend_ini_scanner.l"
1933 goto yy146;1933 { /* End of option value */
1934 BEGIN(INITIAL);
1935 SCNG(lineno)++;
1936 return END_OF_LINE;
1937}
1938#line 1939 "Zend/zend_ini_scanner.c"
1939yy144:
1934 YYDEBUG(144, *YYCURSOR);1940 YYDEBUG(144, *YYCURSOR);
1935 yyleng = YYCURSOR - SCNG(yy_text);1941 yych = *++YYCURSOR;
1936#line 567 "Zend/zend_ini_scanner.l"1942 if (yych == '\n') goto yy151;
1937 { /* End of option value (if EOF is reached before EOL */1943 goto yy143;
1938 BEGIN(INITIAL);
1939 return END_OF_LINE;
1940}
1941#line 1942 "Zend/zend_ini_scanner.c"
1942yy145:1944yy145:
1943 YYDEBUG(145, *YYCURSOR);1945 YYDEBUG(145, *YYCURSOR);
1944 ++YYCURSOR;1946 yyaccept = 1;
1945 YYFILL(2);1947 yych = *(YYMARKER = ++YYCURSOR);
1946 yych = *YYCURSOR;1948 goto yy147;
1947yy146:1949yy146:
1948 YYDEBUG(146, *YYCURSOR);1950 YYDEBUG(146, *YYCURSOR);
1949 if (yybm[0+yych] & 32) {1951 ++YYCURSOR;
1950 goto yy145;1952 YYFILL(2);
1951 }1953 yych = *YYCURSOR;
1952 if (yych >= '\r') goto yy149;
1953yy147:1954yy147:
1954 YYDEBUG(147, *YYCURSOR);1955 YYDEBUG(147, *YYCURSOR);
1955 ++YYCURSOR;1956 if (yybm[0+yych] & 32) {
1957 goto yy146;
1958 }
1959 if (yych >= '\r') goto yy150;
1956yy148:1960yy148:
1957 YYDEBUG(148, *YYCURSOR);1961 YYDEBUG(148, *YYCURSOR);
1958 yyleng = YYCURSOR - SCNG(yy_text);1962 ++YYCURSOR;
1959#line 554 "Zend/zend_ini_scanner.l"
1960 { /* Comment */
1961 BEGIN(INITIAL);
1962 SCNG(lineno)++;
1963 return END_OF_LINE;
1964}
1965#line 1966 "Zend/zend_ini_scanner.c"
1966yy149:1963yy149:
1967 YYDEBUG(149, *YYCURSOR);1964 YYDEBUG(149, *YYCURSOR);
1968 yych = *++YYCURSOR;1965 yyleng = YYCURSOR - SCNG(yy_text);
1969 if (yych == '\n') goto yy147;1966#line 554 "Zend/zend_ini_scanner.l"
1970 goto yy148;1967 { /* Comment */
1968 BEGIN(INITIAL);
1969 SCNG(lineno)++;
1970 return END_OF_LINE;
1971}
1972#line 1973 "Zend/zend_ini_scanner.c"
1971yy150:1973yy150:
1972 YYDEBUG(150, *YYCURSOR);1974 YYDEBUG(150, *YYCURSOR);
1973 yych = *++YYCURSOR;1975 yych = *++YYCURSOR;
1974 goto yy141;1976 if (yych == '\n') goto yy148;
1977 goto yy149;
1975yy151:1978yy151:
1976 YYDEBUG(151, *YYCURSOR);1979 YYDEBUG(151, *YYCURSOR);
1977 yyaccept = 0;1980 yych = *++YYCURSOR;
1978 YYMARKER = ++YYCURSOR;1981 goto yy143;
1979 YYFILL(2);1982yy152:
1980 yych = *YYCURSOR;
1981 YYDEBUG(152, *YYCURSOR);1983 YYDEBUG(152, *YYCURSOR);
1982 if (yybm[0+yych] & 64) {1984 yyaccept = 0;
1983 goto yy151;1985 YYMARKER = ++YYCURSOR;
1984 }1986 YYFILL(2);
1985 if (yych <= '\f') {1987 yych = *YYCURSOR;
1986 if (yych == '\n') goto yy150;
1987 goto yy154;
1988 } else {
1989 if (yych <= '\r') goto yy153;
1990 if (yych == ';') goto yy145;
1991 goto yy154;
1992 }
1993yy153:
1994 YYDEBUG(153, *YYCURSOR);1988 YYDEBUG(153, *YYCURSOR);
1995 yych = *++YYCURSOR;1989 if (yybm[0+yych] & 64) {
1996 if (yych == '\n') goto yy150;1990 goto yy152;
1997 goto yy141;1991 }
1992 if (yych <= '\f') {
1993 if (yych <= 0x00) goto yy140;
1994 if (yych == '\n') goto yy151;
1995 goto yy155;
1996 } else {
1997 if (yych <= '\r') goto yy154;
1998 if (yych == ';') goto yy146;
1999 goto yy155;
2000 }
1998yy154:2001yy154:
1999 YYDEBUG(154, *YYCURSOR);2002 YYDEBUG(154, *YYCURSOR);
2000 ++YYCURSOR;2003 yych = *++YYCURSOR;
2001 YYFILL(1);2004 if (yych == '\n') goto yy151;
2002 yych = *YYCURSOR;2005 goto yy143;
2003yy155:2006yy155:
2004 YYDEBUG(155, *YYCURSOR);2007 YYDEBUG(155, *YYCURSOR);
2008 ++YYCURSOR;
2009 YYFILL(1);
2010 yych = *YYCURSOR;
2011yy156:
2012 YYDEBUG(156, *YYCURSOR);
2005 if (yybm[0+yych] & 128) {2013 if (yybm[0+yych] & 128) {
2006 goto yy154;2014 goto yy155;
2007 }2015 }
2008 goto yy138;2016 goto yy140;
2009 }2017 }
2010/* *********************************** */2018/* *********************************** */
2011yyc_ST_SECTION_RAW:2019yyc_ST_SECTION_RAW:
@@ -2044,85 +2052,85 @@
2044 128, 128, 128, 128, 128, 128, 128, 128, 2052 128, 128, 128, 128, 128, 128, 128, 128,
2045 128, 128, 128, 128, 128, 128, 128, 128, 2053 128, 128, 128, 128, 128, 128, 128, 128,
2046 };2054 };
2047 YYDEBUG(156, *YYCURSOR);2055 YYDEBUG(157, *YYCURSOR);
2048 YYFILL(3);2056 YYFILL(3);
2049 yych = *YYCURSOR;2057 yych = *YYCURSOR;
2050 if (yych <= '\f') {2058 if (yych <= '\f') {
2051 if (yych == '\n') goto yy160;2059 if (yych == '\n') goto yy161;
2052 } else {2060 } else {
2053 if (yych <= '\r') goto yy160;2061 if (yych <= '\r') goto yy161;
2054 if (yych == ']') goto yy162;2062 if (yych == ']') goto yy163;
2055 }2063 }
2056 YYDEBUG(158, *YYCURSOR);
2057 ++YYCURSOR;
2058 yych = *YYCURSOR;
2059 goto yy169;
2060yy159:
2061 YYDEBUG(159, *YYCURSOR);2064 YYDEBUG(159, *YYCURSOR);
2062 yyleng = YYCURSOR - SCNG(yy_text);2065 ++YYCURSOR;
2063#line 454 "Zend/zend_ini_scanner.l"2066 yych = *YYCURSOR;
2064 { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */2067 goto yy170;
2065 RETURN_TOKEN(TC_RAW, yytext, yyleng);
2066}
2067#line 2068 "Zend/zend_ini_scanner.c"
2068yy160:2068yy160:
2069 YYDEBUG(160, *YYCURSOR);2069 YYDEBUG(160, *YYCURSOR);
2070 ++YYCURSOR;2070 yyleng = YYCURSOR - SCNG(yy_text);
2071#line 454 "Zend/zend_ini_scanner.l"
2072 { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
2073 RETURN_TOKEN(TC_RAW, yytext, yyleng);
2074}
2075#line 2076 "Zend/zend_ini_scanner.c"
2076yy161:
2071 YYDEBUG(161, *YYCURSOR);2077 YYDEBUG(161, *YYCURSOR);
2072 yyleng = YYCURSOR - SCNG(yy_text);2078 ++YYCURSOR;
2073#line 572 "Zend/zend_ini_scanner.l"
2074 {
2075 return 0;
2076}
2077#line 2078 "Zend/zend_ini_scanner.c"
2078yy162:
2079 YYDEBUG(162, *YYCURSOR);2079 YYDEBUG(162, *YYCURSOR);
2080 ++YYCURSOR;2080 yyleng = YYCURSOR - SCNG(yy_text);
2081 yych = *YYCURSOR;2081#line 572 "Zend/zend_ini_scanner.l"
2082 goto yy165;2082 {
2083 return 0;
2084}
2085#line 2086 "Zend/zend_ini_scanner.c"
2083yy163:2086yy163:
2084 YYDEBUG(163, *YYCURSOR);2087 YYDEBUG(163, *YYCURSOR);
2085 yyleng = YYCURSOR - SCNG(yy_text);2088 ++YYCURSOR;
2086#line 374 "Zend/zend_ini_scanner.l"2089 yych = *YYCURSOR;
2087 { /* End of section */2090 goto yy166;
2088 BEGIN(INITIAL);
2089 SCNG(lineno)++;
2090 return ']';
2091}
2092#line 2093 "Zend/zend_ini_scanner.c"
2093yy164:2091yy164:
2094 YYDEBUG(164, *YYCURSOR);2092 YYDEBUG(164, *YYCURSOR);
2095 ++YYCURSOR;2093 yyleng = YYCURSOR - SCNG(yy_text);
2096 YYFILL(2);2094#line 374 "Zend/zend_ini_scanner.l"
2097 yych = *YYCURSOR;2095 { /* End of section */
2096 BEGIN(INITIAL);
2097 SCNG(lineno)++;
2098 return ']';
2099}
2100#line 2101 "Zend/zend_ini_scanner.c"
2098yy165:2101yy165:
2099 YYDEBUG(165, *YYCURSOR);2102 YYDEBUG(165, *YYCURSOR);
2100 if (yybm[0+yych] & 64) {2103 ++YYCURSOR;
2101 goto yy164;2104 YYFILL(2);
2102 }2105 yych = *YYCURSOR;
2103 if (yych == '\n') goto yy166;
2104 if (yych == '\r') goto yy167;
2105 goto yy163;
2106yy166:2106yy166:
2107 YYDEBUG(166, *YYCURSOR);2107 YYDEBUG(166, *YYCURSOR);
2108 yych = *++YYCURSOR;2108 if (yybm[0+yych] & 64) {
2109 goto yy163;2109 goto yy165;
2110 }
2111 if (yych == '\n') goto yy167;
2112 if (yych == '\r') goto yy168;
2113 goto yy164;
2110yy167:2114yy167:
2111 YYDEBUG(167, *YYCURSOR);2115 YYDEBUG(167, *YYCURSOR);
2112 yych = *++YYCURSOR;2116 yych = *++YYCURSOR;
2113 if (yych == '\n') goto yy166;2117 goto yy164;
2114 goto yy163;
2115yy168:2118yy168:
2116 YYDEBUG(168, *YYCURSOR);2119 YYDEBUG(168, *YYCURSOR);
2117 ++YYCURSOR;2120 yych = *++YYCURSOR;
2118 YYFILL(1);2121 if (yych == '\n') goto yy167;
2119 yych = *YYCURSOR;2122 goto yy164;
2120yy169:2123yy169:
2121 YYDEBUG(169, *YYCURSOR);2124 YYDEBUG(169, *YYCURSOR);
2125 ++YYCURSOR;
2126 YYFILL(1);
2127 yych = *YYCURSOR;
2128yy170:
2129 YYDEBUG(170, *YYCURSOR);
2122 if (yybm[0+yych] & 128) {2130 if (yybm[0+yych] & 128) {
2123 goto yy168;2131 goto yy169;
2124 }2132 }
2125 goto yy159;2133 goto yy160;
2126 }2134 }
2127/* *********************************** */2135/* *********************************** */
2128yyc_ST_SECTION_VALUE:2136yyc_ST_SECTION_VALUE:
@@ -2161,590 +2169,590 @@
2161 132, 132, 132, 132, 132, 132, 132, 132, 2169 132, 132, 132, 132, 132, 132, 132, 132,
2162 132, 132, 132, 132, 132, 132, 132, 132, 2170 132, 132, 132, 132, 132, 132, 132, 132,
2163 };2171 };
2164 YYDEBUG(170, *YYCURSOR);2172 YYDEBUG(171, *YYCURSOR);
2165 YYFILL(3);2173 YYFILL(3);
2166 yych = *YYCURSOR;2174 yych = *YYCURSOR;
2167 if (yych <= '-') {2175 if (yych <= '-') {
2168 if (yych <= ' ') {2176 if (yych <= ' ') {
2169 if (yych <= '\n') {2177 if (yych <= '\n') {
2170 if (yych <= 0x08) goto yy172;2178 if (yych <= 0x08) goto yy173;
2171 if (yych <= '\t') goto yy174;2179 if (yych <= '\t') goto yy175;
2172 goto yy175;2180 goto yy176;
2173 } else {2181 } else {
2174 if (yych == '\r') goto yy175;2182 if (yych == '\r') goto yy176;
2175 if (yych >= ' ') goto yy174;2183 if (yych >= ' ') goto yy175;
2176 }2184 }
2177 } else {2185 } else {
2178 if (yych <= '$') {2186 if (yych <= '$') {
2179 if (yych == '"') goto yy177;2187 if (yych == '"') goto yy178;
2180 if (yych >= '$') goto yy179;2188 if (yych >= '$') goto yy180;
2181 } else {2189 } else {
2182 if (yych == '\'') goto yy180;2190 if (yych == '\'') goto yy181;
2183 if (yych >= '-') goto yy181;2191 if (yych >= '-') goto yy182;
2184 }2192 }
2185 }2193 }
2186 } else {2194 } else {
2187 if (yych <= 'Z') {2195 if (yych <= 'Z') {
2188 if (yych <= '9') {2196 if (yych <= '9') {
2189 if (yych <= '.') goto yy182;2197 if (yych <= '.') goto yy183;
2190 if (yych >= '0') goto yy183;2198 if (yych >= '0') goto yy184;
2191 } else {2199 } else {
2192 if (yych == ';') goto yy175;2200 if (yych == ';') goto yy176;
2193 if (yych >= 'A') goto yy185;2201 if (yych >= 'A') goto yy186;
2194 }2202 }
2195 } else {2203 } else {
2196 if (yych <= '^') {2204 if (yych <= '^') {
2197 if (yych <= '[') goto yy172;2205 if (yych <= '[') goto yy173;
2198 if (yych <= '\\') goto yy187;2206 if (yych <= '\\') goto yy188;
2199 if (yych <= ']') goto yy188;2207 if (yych <= ']') goto yy189;
2200 } else {2208 } else {
2201 if (yych == '`') goto yy172;2209 if (yych == '`') goto yy173;
2202 if (yych <= 'z') goto yy185;2210 if (yych <= 'z') goto yy186;
2203 }2211 }
2204 }2212 }
2205 }2213 }
2206yy172:
2207 YYDEBUG(172, *YYCURSOR);
2208 yyaccept = 0;
2209 yych = *(YYMARKER = ++YYCURSOR);
2210 goto yy195;
2211yy173:2214yy173:
2212 YYDEBUG(173, *YYCURSOR);2215 YYDEBUG(173, *YYCURSOR);
2213 yyleng = YYCURSOR - SCNG(yy_text);2216 yyaccept = 0;
2214#line 490 "Zend/zend_ini_scanner.l"2217 yych = *(YYMARKER = ++YYCURSOR);
2215 { /* Get rest as section/offset value */2218 goto yy196;
2216 RETURN_TOKEN(TC_STRING, yytext, yyleng);
2217}
2218#line 2219 "Zend/zend_ini_scanner.c"
2219yy174:2219yy174:
2220 YYDEBUG(174, *YYCURSOR);2220 YYDEBUG(174, *YYCURSOR);
2221 yyaccept = 0;2221 yyleng = YYCURSOR - SCNG(yy_text);
2222 yych = *(YYMARKER = ++YYCURSOR);2222#line 490 "Zend/zend_ini_scanner.l"
2223 if (yych <= 0x1F) {2223 { /* Get rest as section/offset value */
2224 if (yych == '\t') goto yy221;2224 RETURN_TOKEN(TC_STRING, yytext, yyleng);
2225 goto yy195;2225}
2226 } else {2226#line 2227 "Zend/zend_ini_scanner.c"
2227 if (yych <= ' ') goto yy221;
2228 if (yych == '"') goto yy223;
2229 goto yy195;
2230 }
2231yy175:2227yy175:
2232 YYDEBUG(175, *YYCURSOR);2228 YYDEBUG(175, *YYCURSOR);
2233 ++YYCURSOR;2229 yyaccept = 0;
2230 yych = *(YYMARKER = ++YYCURSOR);
2231 if (yych <= 0x1F) {
2232 if (yych == '\t') goto yy222;
2233 goto yy196;
2234 } else {
2235 if (yych <= ' ') goto yy222;
2236 if (yych == '"') goto yy224;
2237 goto yy196;
2238 }
2234yy176:2239yy176:
2235 YYDEBUG(176, *YYCURSOR);2240 YYDEBUG(176, *YYCURSOR);
2236 yyleng = YYCURSOR - SCNG(yy_text);2241 ++YYCURSOR;
2237#line 572 "Zend/zend_ini_scanner.l"
2238 {
2239 return 0;
2240}
2241#line 2242 "Zend/zend_ini_scanner.c"
2242yy177:2242yy177:
2243 YYDEBUG(177, *YYCURSOR);2243 YYDEBUG(177, *YYCURSOR);
2244 ++YYCURSOR;2244 yyleng = YYCURSOR - SCNG(yy_text);
2245#line 572 "Zend/zend_ini_scanner.l"
2246 {
2247 return 0;
2248}
2249#line 2250 "Zend/zend_ini_scanner.c"
2245yy178:2250yy178:
2246 YYDEBUG(178, *YYCURSOR);2251 YYDEBUG(178, *YYCURSOR);
2247 yyleng = YYCURSOR - SCNG(yy_text);2252 ++YYCURSOR;
2248#line 494 "Zend/zend_ini_scanner.l"
2249 { /* Double quoted '"' string start */
2250 yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
2251 return '"';
2252}
2253#line 2254 "Zend/zend_ini_scanner.c"
2254yy179:2253yy179:
2255 YYDEBUG(179, *YYCURSOR);2254 YYDEBUG(179, *YYCURSOR);
2256 yych = *++YYCURSOR;2255 yyleng = YYCURSOR - SCNG(yy_text);
2257 if (yych <= '\\') {2256#line 494 "Zend/zend_ini_scanner.l"
2258 if (yych <= 0x00) goto yy176;2257 { /* Double quoted '"' string start */
2259 if (yych <= '[') goto yy194;2258 yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
2260 goto yy199;2259 return '"';
2261 } else {2260}
2262 if (yych == '{') goto yy219;2261#line 2262 "Zend/zend_ini_scanner.c"
2263 goto yy194;
2264 }
2265yy180:2262yy180:
2266 YYDEBUG(180, *YYCURSOR);2263 YYDEBUG(180, *YYCURSOR);
2267 yyaccept = 1;2264 yych = *++YYCURSOR;
2268 yych = *(YYMARKER = ++YYCURSOR);2265 if (yych <= '\\') {
2269 if (yybm[0+yych] & 128) {2266 if (yych <= 0x00) goto yy177;
2270 goto yy215;2267 if (yych <= '[') goto yy195;
2268 goto yy200;
2269 } else {
2270 if (yych == '{') goto yy220;
2271 goto yy195;
2271 }2272 }
2272 goto yy176;
2273yy181:2273yy181:
2274 YYDEBUG(181, *YYCURSOR);2274 YYDEBUG(181, *YYCURSOR);
2275 yyaccept = 0;2275 yyaccept = 1;
2276 yych = *(YYMARKER = ++YYCURSOR);2276 yych = *(YYMARKER = ++YYCURSOR);
2277 if (yych <= '/') goto yy195;2277 if (yybm[0+yych] & 128) {
2278 if (yych <= '9') goto yy213;2278 goto yy216;
2279 goto yy195;2279 }
2280 goto yy177;
2280yy182:2281yy182:
2281 YYDEBUG(182, *YYCURSOR);2282 YYDEBUG(182, *YYCURSOR);
2282 yyaccept = 0;2283 yyaccept = 0;
2283 yych = *(YYMARKER = ++YYCURSOR);2284 yych = *(YYMARKER = ++YYCURSOR);
2284 if (yych <= '/') goto yy195;2285 if (yych <= '/') goto yy196;
2285 if (yych <= '9') goto yy211;2286 if (yych <= '9') goto yy214;
2286 goto yy195;2287 goto yy196;
2287yy183:2288yy183:
2288 YYDEBUG(183, *YYCURSOR);2289 YYDEBUG(183, *YYCURSOR);
2289 yyaccept = 2;2290 yyaccept = 0;
2290 yych = *(YYMARKER = ++YYCURSOR);2291 yych = *(YYMARKER = ++YYCURSOR);
2291 if (yych <= '\'') {2292 if (yych <= '/') goto yy196;
2292 if (yych <= '\r') {2293 if (yych <= '9') goto yy212;
2293 if (yych == '\n') goto yy184;2294 goto yy196;
2294 if (yych <= '\f') goto yy195;
2295 } else {
2296 if (yych == '"') goto yy184;
2297 if (yych <= '&') goto yy195;
2298 }
2299 } else {
2300 if (yych <= '9') {
2301 if (yych == '.') goto yy207;
2302 if (yych <= '/') goto yy195;
2303 goto yy209;
2304 } else {
2305 if (yych <= ';') {
2306 if (yych <= ':') goto yy195;
2307 } else {
2308 if (yych != ']') goto yy195;
2309 }
2310 }
2311 }
2312yy184:2295yy184:
2313 YYDEBUG(184, *YYCURSOR);2296 YYDEBUG(184, *YYCURSOR);
2314 yyleng = YYCURSOR - SCNG(yy_text);2297 yyaccept = 2;
2315#line 468 "Zend/zend_ini_scanner.l"2298 yych = *(YYMARKER = ++YYCURSOR);
2316 { /* Get number option value as string */2299 if (yych <= '\'') {
2317 RETURN_TOKEN(TC_NUMBER, yytext, yyleng);2300 if (yych <= '\r') {
2318}2301 if (yych == '\n') goto yy185;
2319#line 2320 "Zend/zend_ini_scanner.c"2302 if (yych <= '\f') goto yy196;
2303 } else {
2304 if (yych == '"') goto yy185;
2305 if (yych <= '&') goto yy196;
2306 }
2307 } else {
2308 if (yych <= '9') {
2309 if (yych == '.') goto yy208;
2310 if (yych <= '/') goto yy196;
2311 goto yy210;
2312 } else {
2313 if (yych <= ';') {
2314 if (yych <= ':') goto yy196;
2315 } else {
2316 if (yych != ']') goto yy196;
2317 }
2318 }
2319 }
2320yy185:2320yy185:
2321 YYDEBUG(185, *YYCURSOR);2321 YYDEBUG(185, *YYCURSOR);
2322 yyaccept = 3;2322 yyleng = YYCURSOR - SCNG(yy_text);
2323 yych = *(YYMARKER = ++YYCURSOR);2323#line 468 "Zend/zend_ini_scanner.l"
2324 if (yybm[0+yych] & 32) {2324 { /* Get number option value as string */
2325 goto yy205;2325 RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
2326 }2326}
2327 if (yych <= '"') {2327#line 2328 "Zend/zend_ini_scanner.c"
2328 if (yych <= '\f') {
2329 if (yych != '\n') goto yy195;
2330 } else {
2331 if (yych <= '\r') goto yy186;
2332 if (yych <= '!') goto yy195;
2333 }
2334 } else {
2335 if (yych <= ':') {
2336 if (yych != '\'') goto yy195;
2337 } else {
2338 if (yych <= ';') goto yy186;
2339 if (yych != ']') goto yy195;
2340 }
2341 }
2342yy186:2328yy186:
2343 YYDEBUG(186, *YYCURSOR);2329 YYDEBUG(186, *YYCURSOR);
2344 yyleng = YYCURSOR - SCNG(yy_text);2330 yyaccept = 3;
2345#line 464 "Zend/zend_ini_scanner.l"2331 yych = *(YYMARKER = ++YYCURSOR);
2346 { /* Get constant option value */2332 if (yybm[0+yych] & 32) {
2347 RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);2333 goto yy206;
2348}2334 }
2349#line 2350 "Zend/zend_ini_scanner.c"2335 if (yych <= '"') {
2336 if (yych <= '\f') {
2337 if (yych != '\n') goto yy196;
2338 } else {
2339 if (yych <= '\r') goto yy187;
2340 if (yych <= '!') goto yy196;
2341 }
2342 } else {
2343 if (yych <= ':') {
2344 if (yych != '\'') goto yy196;
2345 } else {
2346 if (yych <= ';') goto yy187;
2347 if (yych != ']') goto yy196;
2348 }
2349 }
2350yy187:2350yy187:
2351 YYDEBUG(187, *YYCURSOR);2351 YYDEBUG(187, *YYCURSOR);
2352 yych = *++YYCURSOR;2352 yyleng = YYCURSOR - SCNG(yy_text);
2353 goto yy194;2353#line 464 "Zend/zend_ini_scanner.l"
2354 { /* Get constant option value */
2355 RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
2356}
2357#line 2358 "Zend/zend_ini_scanner.c"
2354yy188:2358yy188:
2355 YYDEBUG(188, *YYCURSOR);2359 YYDEBUG(188, *YYCURSOR);
2356 ++YYCURSOR;2360 yych = *++YYCURSOR;
2357 yych = *YYCURSOR;2361 goto yy195;
2358 goto yy191;
2359yy189:2362yy189:
2360 YYDEBUG(189, *YYCURSOR);2363 YYDEBUG(189, *YYCURSOR);
2361 yyleng = YYCURSOR - SCNG(yy_text);2364 ++YYCURSOR;
2362#line 374 "Zend/zend_ini_scanner.l"2365 yych = *YYCURSOR;
2363 { /* End of section */2366 goto yy192;
2364 BEGIN(INITIAL);
2365 SCNG(lineno)++;
2366 return ']';
2367}
2368#line 2369 "Zend/zend_ini_scanner.c"
2369yy190:2367yy190:
2370 YYDEBUG(190, *YYCURSOR);2368 YYDEBUG(190, *YYCURSOR);
2371 ++YYCURSOR;2369 yyleng = YYCURSOR - SCNG(yy_text);
2372 YYFILL(2);2370#line 374 "Zend/zend_ini_scanner.l"
2373 yych = *YYCURSOR;2371 { /* End of section */
2372 BEGIN(INITIAL);
2373 SCNG(lineno)++;
2374 return ']';
2375}
2376#line 2377 "Zend/zend_ini_scanner.c"
2374yy191:2377yy191:
2375 YYDEBUG(191, *YYCURSOR);2378 YYDEBUG(191, *YYCURSOR);
2376 if (yybm[0+yych] & 2) {2379 ++YYCURSOR;
2377 goto yy190;2380 YYFILL(2);
2378 }2381 yych = *YYCURSOR;
2379 if (yych == '\n') goto yy192;
2380 if (yych == '\r') goto yy193;
2381 goto yy189;
2382yy192:2382yy192:
2383 YYDEBUG(192, *YYCURSOR);2383 YYDEBUG(192, *YYCURSOR);
2384 yych = *++YYCURSOR;2384 if (yybm[0+yych] & 2) {
2385 goto yy189;2385 goto yy191;
2386 }
2387 if (yych == '\n') goto yy193;
2388 if (yych == '\r') goto yy194;
2389 goto yy190;
2386yy193:2390yy193:
2387 YYDEBUG(193, *YYCURSOR);2391 YYDEBUG(193, *YYCURSOR);
2388 yych = *++YYCURSOR;2392 yych = *++YYCURSOR;
2389 if (yych == '\n') goto yy192;2393 goto yy190;
2390 goto yy189;
2391yy194:2394yy194:
2392 YYDEBUG(194, *YYCURSOR);2395 YYDEBUG(194, *YYCURSOR);
2393 yyaccept = 0;2396 yych = *++YYCURSOR;
2394 YYMARKER = ++YYCURSOR;2397 if (yych == '\n') goto yy193;
2395 YYFILL(1);2398 goto yy190;
2396 yych = *YYCURSOR;
2397yy195:2399yy195:
2398 YYDEBUG(195, *YYCURSOR);2400 YYDEBUG(195, *YYCURSOR);
2399 if (yybm[0+yych] & 4) {2401 yyaccept = 0;
2400 goto yy194;2402 YYMARKER = ++YYCURSOR;
2401 }2403 YYFILL(1);
2402 if (yych == '$') goto yy197;2404 yych = *YYCURSOR;
2403 if (yych != '\\') goto yy173;
2404yy196:2405yy196:
2405 YYDEBUG(196, *YYCURSOR);2406 YYDEBUG(196, *YYCURSOR);
2406 ++YYCURSOR;2407 if (yybm[0+yych] & 4) {
2407 YYFILL(1);2408 goto yy195;
2408 yych = *YYCURSOR;2409 }
2409 goto yy194;2410 if (yych == '$') goto yy198;
2411 if (yych != '\\') goto yy174;
2410yy197:2412yy197:
2411 YYDEBUG(197, *YYCURSOR);2413 YYDEBUG(197, *YYCURSOR);
2412 ++YYCURSOR;2414 ++YYCURSOR;
2413 YYFILL(1);2415 YYFILL(1);
2414 yych = *YYCURSOR;2416 yych = *YYCURSOR;
2415 if (yych <= '\\') {2417 goto yy195;
2416 if (yych <= 0x00) goto yy198;
2417 if (yych <= '[') goto yy194;
2418 goto yy199;
2419 } else {
2420 if (yych != '{') goto yy194;
2421 }
2422yy198:2418yy198:
2423 YYDEBUG(198, *YYCURSOR);2419 YYDEBUG(198, *YYCURSOR);
2424 YYCURSOR = YYMARKER;2420 ++YYCURSOR;
2425 if (yyaccept <= 1) {2421 YYFILL(1);
2426 if (yyaccept <= 0) {2422 yych = *YYCURSOR;
2427 goto yy173;2423 if (yych <= '\\') {
2428 } else {2424 if (yych <= 0x00) goto yy199;
2429 goto yy176;2425 if (yych <= '[') goto yy195;
2430 }2426 goto yy200;
2431 } else {2427 } else {
2432 if (yyaccept <= 2) {2428 if (yych != '{') goto yy195;
2433 goto yy184;
2434 } else {
2435 goto yy186;
2436 }
2437 }2429 }
2438yy199:2430yy199:
2439 YYDEBUG(199, *YYCURSOR);2431 YYDEBUG(199, *YYCURSOR);
2440 ++YYCURSOR;2432 YYCURSOR = YYMARKER;
2441 YYFILL(1);2433 if (yyaccept <= 1) {
2442 yych = *YYCURSOR;2434 if (yyaccept <= 0) {
2443 if (yybm[0+yych] & 8) {2435 goto yy174;
2444 goto yy200;2436 } else {
2437 goto yy177;
2438 }
2439 } else {
2440 if (yyaccept <= 2) {
2441 goto yy185;
2442 } else {
2443 goto yy187;
2444 }
2445 }2445 }
2446 if (yych == '\\') goto yy202;
2447 goto yy194;
2448yy200:2446yy200:
2449 YYDEBUG(200, *YYCURSOR);2447 YYDEBUG(200, *YYCURSOR);
2450 ++YYCURSOR;2448 ++YYCURSOR;
2451 YYFILL(1);2449 YYFILL(1);
2452 yych = *YYCURSOR;2450 yych = *YYCURSOR;
2451 if (yybm[0+yych] & 8) {
2452 goto yy201;
2453 }
2454 if (yych == '\\') goto yy203;
2455 goto yy195;
2456yy201:
2453 YYDEBUG(201, *YYCURSOR);2457 YYDEBUG(201, *YYCURSOR);
2454 if (yybm[0+yych] & 8) {2458 ++YYCURSOR;
2455 goto yy200;2459 YYFILL(1);
2456 }2460 yych = *YYCURSOR;
2457 if (yych == '\\') goto yy204;
2458 goto yy194;
2459yy202:
2460 YYDEBUG(202, *YYCURSOR);2461 YYDEBUG(202, *YYCURSOR);
2461 ++YYCURSOR;2462 if (yybm[0+yych] & 8) {
2462 YYFILL(1);2463 goto yy201;
2463 yych = *YYCURSOR;2464 }
2465 if (yych == '\\') goto yy205;
2466 goto yy195;
2467yy203:
2464 YYDEBUG(203, *YYCURSOR);2468 YYDEBUG(203, *YYCURSOR);
2465 if (yybm[0+yych] & 8) {2469 ++YYCURSOR;
2466 goto yy200;2470 YYFILL(1);
2467 }2471 yych = *YYCURSOR;
2468 if (yych == '\\') goto yy202;
2469 goto yy194;
2470yy204:
2471 YYDEBUG(204, *YYCURSOR);2472 YYDEBUG(204, *YYCURSOR);
2472 ++YYCURSOR;
2473 YYFILL(1);
2474 yych = *YYCURSOR;
2475 if (yybm[0+yych] & 8) {2473 if (yybm[0+yych] & 8) {
2476 goto yy200;2474 goto yy201;
2477 }2475 }
2478 if (yych == '\\') goto yy202;2476 if (yych == '\\') goto yy203;
2479 goto yy194;2477 goto yy195;
2480yy205:2478yy205:
2481 YYDEBUG(205, *YYCURSOR);2479 YYDEBUG(205, *YYCURSOR);
2482 yyaccept = 3;2480 ++YYCURSOR;
2483 YYMARKER = ++YYCURSOR;
2484 YYFILL(1);2481 YYFILL(1);
2485 yych = *YYCURSOR;2482 yych = *YYCURSOR;
2483 if (yybm[0+yych] & 8) {
2484 goto yy201;
2485 }
2486 if (yych == '\\') goto yy203;
2487 goto yy195;
2488yy206:
2486 YYDEBUG(206, *YYCURSOR);2489 YYDEBUG(206, *YYCURSOR);
2487 if (yybm[0+yych] & 32) {2490 yyaccept = 3;
2488 goto yy205;2491 YYMARKER = ++YYCURSOR;
2489 }2492 YYFILL(1);
2490 if (yych <= '$') {2493 yych = *YYCURSOR;
2491 if (yych <= '\r') {
2492 if (yych == '\n') goto yy186;
2493 if (yych <= '\f') goto yy194;
2494 goto yy186;
2495 } else {
2496 if (yych == '"') goto yy186;
2497 if (yych <= '#') goto yy194;
2498 goto yy197;
2499 }
2500 } else {
2501 if (yych <= ';') {
2502 if (yych == '\'') goto yy186;
2503 if (yych <= ':') goto yy194;
2504 goto yy186;
2505 } else {
2506 if (yych <= '[') goto yy194;
2507 if (yych <= '\\') goto yy196;
2508 if (yych <= ']') goto yy186;
2509 goto yy194;
2510 }
2511 }
2512yy207:
2513 YYDEBUG(207, *YYCURSOR);2494 YYDEBUG(207, *YYCURSOR);
2514 yyaccept = 2;2495 if (yybm[0+yych] & 32) {
2515 YYMARKER = ++YYCURSOR;2496 goto yy206;
2516 YYFILL(1);2497 }
2517 yych = *YYCURSOR;2498 if (yych <= '$') {
2499 if (yych <= '\r') {
2500 if (yych == '\n') goto yy187;
2501 if (yych <= '\f') goto yy195;
2502 goto yy187;
2503 } else {
2504 if (yych == '"') goto yy187;
2505 if (yych <= '#') goto yy195;
2506 goto yy198;
2507 }
2508 } else {
2509 if (yych <= ';') {
2510 if (yych == '\'') goto yy187;
2511 if (yych <= ':') goto yy195;
2512 goto yy187;
2513 } else {
2514 if (yych <= '[') goto yy195;
2515 if (yych <= '\\') goto yy197;
2516 if (yych <= ']') goto yy187;
2517 goto yy195;
2518 }
2519 }
2520yy208:
2518 YYDEBUG(208, *YYCURSOR);2521 YYDEBUG(208, *YYCURSOR);
2519 if (yybm[0+yych] & 64) {2522 yyaccept = 2;
2520 goto yy207;2523 YYMARKER = ++YYCURSOR;
2521 }2524 YYFILL(1);
2522 if (yych <= '$') {2525 yych = *YYCURSOR;
2523 if (yych <= '\r') {
2524 if (yych == '\n') goto yy184;
2525 if (yych <= '\f') goto yy194;
2526 goto yy184;
2527 } else {
2528 if (yych == '"') goto yy184;
2529 if (yych <= '#') goto yy194;
2530 goto yy197;
2531 }
2532 } else {
2533 if (yych <= ';') {
2534 if (yych == '\'') goto yy184;
2535 if (yych <= ':') goto yy194;
2536 goto yy184;
2537 } else {
2538 if (yych <= '[') goto yy194;
2539 if (yych <= '\\') goto yy196;
2540 if (yych <= ']') goto yy184;
2541 goto yy194;
2542 }
2543 }
2544yy209:
2545 YYDEBUG(209, *YYCURSOR);2526 YYDEBUG(209, *YYCURSOR);
2546 yyaccept = 2;2527 if (yybm[0+yych] & 64) {
2547 YYMARKER = ++YYCURSOR;2528 goto yy208;
2548 YYFILL(1);2529 }
2549 yych = *YYCURSOR;2530 if (yych <= '$') {
2531 if (yych <= '\r') {
2532 if (yych == '\n') goto yy185;
2533 if (yych <= '\f') goto yy195;
2534 goto yy185;
2535 } else {
2536 if (yych == '"') goto yy185;
2537 if (yych <= '#') goto yy195;
2538 goto yy198;
2539 }
2540 } else {
2541 if (yych <= ';') {
2542 if (yych == '\'') goto yy185;
2543 if (yych <= ':') goto yy195;
2544 goto yy185;
2545 } else {
2546 if (yych <= '[') goto yy195;
2547 if (yych <= '\\') goto yy197;
2548 if (yych <= ']') goto yy185;
2549 goto yy195;
2550 }
2551 }
2552yy210:
2550 YYDEBUG(210, *YYCURSOR);2553 YYDEBUG(210, *YYCURSOR);
2551 if (yych <= '\'') {2554 yyaccept = 2;
2552 if (yych <= '!') {2555 YYMARKER = ++YYCURSOR;
2553 if (yych <= '\n') {2556 YYFILL(1);
2554 if (yych <= '\t') goto yy194;2557 yych = *YYCURSOR;
2555 goto yy184;
2556 } else {
2557 if (yych == '\r') goto yy184;
2558 goto yy194;
2559 }
2560 } else {
2561 if (yych <= '#') {
2562 if (yych <= '"') goto yy184;
2563 goto yy194;
2564 } else {
2565 if (yych <= '$') goto yy197;
2566 if (yych <= '&') goto yy194;
2567 goto yy184;
2568 }
2569 }
2570 } else {
2571 if (yych <= ':') {
2572 if (yych <= '.') {
2573 if (yych <= '-') goto yy194;
2574 goto yy207;
2575 } else {
2576 if (yych <= '/') goto yy194;
2577 if (yych <= '9') goto yy209;
2578 goto yy194;
2579 }
2580 } else {
2581 if (yych <= '[') {
2582 if (yych <= ';') goto yy184;
2583 goto yy194;
2584 } else {
2585 if (yych <= '\\') goto yy196;
2586 if (yych <= ']') goto yy184;
2587 goto yy194;
2588 }
2589 }
2590 }
2591yy211:
2592 YYDEBUG(211, *YYCURSOR);2558 YYDEBUG(211, *YYCURSOR);
2593 yyaccept = 2;2559 if (yych <= '\'') {
2594 YYMARKER = ++YYCURSOR;2560 if (yych <= '!') {
2595 YYFILL(1);2561 if (yych <= '\n') {
2596 yych = *YYCURSOR;2562 if (yych <= '\t') goto yy195;
2563 goto yy185;
2564 } else {
2565 if (yych == '\r') goto yy185;
2566 goto yy195;
2567 }
2568 } else {
2569 if (yych <= '#') {
2570 if (yych <= '"') goto yy185;
2571 goto yy195;
2572 } else {
2573 if (yych <= '$') goto yy198;
2574 if (yych <= '&') goto yy195;
2575 goto yy185;
2576 }
2577 }
2578 } else {
2579 if (yych <= ':') {
2580 if (yych <= '.') {
2581 if (yych <= '-') goto yy195;
2582 goto yy208;
2583 } else {
2584 if (yych <= '/') goto yy195;
2585 if (yych <= '9') goto yy210;
2586 goto yy195;
2587 }
2588 } else {
2589 if (yych <= '[') {
2590 if (yych <= ';') goto yy185;
2591 goto yy195;
2592 } else {
2593 if (yych <= '\\') goto yy197;
2594 if (yych <= ']') goto yy185;
2595 goto yy195;
2596 }
2597 }
2598 }
2599yy212:
2597 YYDEBUG(212, *YYCURSOR);2600 YYDEBUG(212, *YYCURSOR);
2598 if (yych <= '&') {2601 yyaccept = 2;
2599 if (yych <= '\r') {2602 YYMARKER = ++YYCURSOR;
2600 if (yych == '\n') goto yy184;2603 YYFILL(1);
2601 if (yych <= '\f') goto yy194;2604 yych = *YYCURSOR;
2602 goto yy184;
2603 } else {
2604 if (yych <= '"') {
2605 if (yych <= '!') goto yy194;
2606 goto yy184;
2607 } else {
2608 if (yych == '$') goto yy197;
2609 goto yy194;
2610 }
2611 }
2612 } else {
2613 if (yych <= ':') {
2614 if (yych <= '\'') goto yy184;
2615 if (yych <= '/') goto yy194;
2616 if (yych <= '9') goto yy211;
2617 goto yy194;
2618 } else {
2619 if (yych <= '[') {
2620 if (yych <= ';') goto yy184;
2621 goto yy194;
2622 } else {
2623 if (yych <= '\\') goto yy196;
2624 if (yych <= ']') goto yy184;
2625 goto yy194;
2626 }
2627 }
2628 }
2629yy213:
2630 YYDEBUG(213, *YYCURSOR);2605 YYDEBUG(213, *YYCURSOR);
2631 yyaccept = 2;2606 if (yych <= '&') {
2632 YYMARKER = ++YYCURSOR;2607 if (yych <= '\r') {
2633 YYFILL(1);2608 if (yych == '\n') goto yy185;
2634 yych = *YYCURSOR;2609 if (yych <= '\f') goto yy195;
2610 goto yy185;
2611 } else {
2612 if (yych <= '"') {
2613 if (yych <= '!') goto yy195;
2614 goto yy185;
2615 } else {
2616 if (yych == '$') goto yy198;
2617 goto yy195;
2618 }
2619 }
2620 } else {
2621 if (yych <= ':') {
2622 if (yych <= '\'') goto yy185;
2623 if (yych <= '/') goto yy195;
2624 if (yych <= '9') goto yy212;
2625 goto yy195;
2626 } else {
2627 if (yych <= '[') {
2628 if (yych <= ';') goto yy185;
2629 goto yy195;
2630 } else {
2631 if (yych <= '\\') goto yy197;
2632 if (yych <= ']') goto yy185;
2633 goto yy195;
2634 }
2635 }
2636 }
2637yy214:
2635 YYDEBUG(214, *YYCURSOR);2638 YYDEBUG(214, *YYCURSOR);
2636 if (yych <= '&') {2639 yyaccept = 2;
2637 if (yych <= '\r') {2640 YYMARKER = ++YYCURSOR;
2638 if (yych == '\n') goto yy184;2641 YYFILL(1);
2639 if (yych <= '\f') goto yy194;2642 yych = *YYCURSOR;
2640 goto yy184;
2641 } else {
2642 if (yych <= '"') {
2643 if (yych <= '!') goto yy194;
2644 goto yy184;
2645 } else {
2646 if (yych == '$') goto yy197;
2647 goto yy194;
2648 }
2649 }
2650 } else {
2651 if (yych <= ':') {
2652 if (yych <= '\'') goto yy184;
2653 if (yych <= '/') goto yy194;
2654 if (yych <= '9') goto yy213;
2655 goto yy194;
2656 } else {
2657 if (yych <= '[') {
2658 if (yych <= ';') goto yy184;
2659 goto yy194;
2660 } else {
2661 if (yych <= '\\') goto yy196;
2662 if (yych <= ']') goto yy184;
2663 goto yy194;
2664 }
2665 }
2666 }
2667yy215:
2668 YYDEBUG(215, *YYCURSOR);2643 YYDEBUG(215, *YYCURSOR);
2669 ++YYCURSOR;2644 if (yych <= '&') {
2670 YYFILL(1);2645 if (yych <= '\r') {
2671 yych = *YYCURSOR;2646 if (yych == '\n') goto yy185;
2647 if (yych <= '\f') goto yy195;
2648 goto yy185;
2649 } else {
2650 if (yych <= '"') {
2651 if (yych <= '!') goto yy195;
2652 goto yy185;
2653 } else {
2654 if (yych == '$') goto yy198;
2655 goto yy195;
2656 }
2657 }
2658 } else {
2659 if (yych <= ':') {
2660 if (yych <= '\'') goto yy185;
2661 if (yych <= '/') goto yy195;
2662 if (yych <= '9') goto yy214;
2663 goto yy195;
2664 } else {
2665 if (yych <= '[') {
2666 if (yych <= ';') goto yy185;
2667 goto yy195;
2668 } else {
2669 if (yych <= '\\') goto yy197;
2670 if (yych <= ']') goto yy185;
2671 goto yy195;
2672 }
2673 }
2674 }
2675yy216:
2672 YYDEBUG(216, *YYCURSOR);2676 YYDEBUG(216, *YYCURSOR);
2673 if (yybm[0+yych] & 128) {2677 ++YYCURSOR;
2674 goto yy215;2678 YYFILL(1);
2675 }2679 yych = *YYCURSOR;
2676 YYDEBUG(217, *YYCURSOR);2680 YYDEBUG(217, *YYCURSOR);
2677 ++YYCURSOR;2681 if (yybm[0+yych] & 128) {
2682 goto yy216;
2683 }
2678 YYDEBUG(218, *YYCURSOR);2684 YYDEBUG(218, *YYCURSOR);
2679 yyleng = YYCURSOR - SCNG(yy_text);2685 ++YYCURSOR;
2680#line 365 "Zend/zend_ini_scanner.l"
2681 { /* Raw string */
2682 /* Eat leading and trailing single quotes */
2683 if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
2684 SCNG(yy_text)++;
2685 yyleng = yyleng - 2;
2686 }
2687 RETURN_TOKEN(TC_RAW, yytext, yyleng);
2688}
2689#line 2690 "Zend/zend_ini_scanner.c"
2690yy219:
2691 YYDEBUG(219, *YYCURSOR);2686 YYDEBUG(219, *YYCURSOR);
2692 ++YYCURSOR;2687 yyleng = YYCURSOR - SCNG(yy_text);
2688#line 365 "Zend/zend_ini_scanner.l"
2689 { /* Raw string */
2690 /* Eat leading and trailing single quotes */
2691 if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
2692 SCNG(yy_text)++;
2693 yyleng = yyleng - 2;
2694 }
2695 RETURN_TOKEN(TC_RAW, yytext, yyleng);
2696}
2697#line 2698 "Zend/zend_ini_scanner.c"
2698yy220:
2693 YYDEBUG(220, *YYCURSOR);2699 YYDEBUG(220, *YYCURSOR);
2694 yyleng = YYCURSOR - SCNG(yy_text);2700 ++YYCURSOR;
2695#line 398 "Zend/zend_ini_scanner.l"
2696 { /* Variable start */
2697 yy_push_state(ST_VARNAME TSRMLS_CC);
2698 return TC_DOLLAR_CURLY;
2699}
2700#line 2701 "Zend/zend_ini_scanner.c"
2701yy221:
2702 YYDEBUG(221, *YYCURSOR);2701 YYDEBUG(221, *YYCURSOR);
2703 yyaccept = 0;2702 yyleng = YYCURSOR - SCNG(yy_text);
2704 YYMARKER = ++YYCURSOR;2703#line 398 "Zend/zend_ini_scanner.l"
2705 YYFILL(1);2704 { /* Variable start */
2706 yych = *YYCURSOR;2705 yy_push_state(ST_VARNAME TSRMLS_CC);
2706 return TC_DOLLAR_CURLY;
2707}
2708#line 2709 "Zend/zend_ini_scanner.c"
2709yy222:
2707 YYDEBUG(222, *YYCURSOR);2710 YYDEBUG(222, *YYCURSOR);
2708 if (yych <= '"') {2711 yyaccept = 0;
2709 if (yych <= '\f') {2712 YYMARKER = ++YYCURSOR;
2710 if (yych <= 0x08) goto yy194;2713 YYFILL(1);
2711 if (yych <= '\t') goto yy221;2714 yych = *YYCURSOR;
2712 if (yych <= '\n') goto yy173;
2713 goto yy194;
2714 } else {
2715 if (yych <= 0x1F) {
2716 if (yych <= '\r') goto yy173;
2717 goto yy194;
2718 } else {
2719 if (yych <= ' ') goto yy221;
2720 if (yych <= '!') goto yy194;
2721 }
2722 }
2723 } else {
2724 if (yych <= ':') {
2725 if (yych <= '$') {
2726 if (yych <= '#') goto yy194;
2727 goto yy197;
2728 } else {
2729 if (yych == '\'') goto yy173;
2730 goto yy194;
2731 }
2732 } else {
2733 if (yych <= '[') {
2734 if (yych <= ';') goto yy173;
2735 goto yy194;
2736 } else {
2737 if (yych <= '\\') goto yy196;
2738 if (yych <= ']') goto yy173;
2739 goto yy194;
2740 }
2741 }
2742 }
2743yy223:
2744 YYDEBUG(223, *YYCURSOR);2715 YYDEBUG(223, *YYCURSOR);
2716 if (yych <= '"') {
2717 if (yych <= '\f') {
2718 if (yych <= 0x08) goto yy195;
2719 if (yych <= '\t') goto yy222;
2720 if (yych <= '\n') goto yy174;
2721 goto yy195;
2722 } else {
2723 if (yych <= 0x1F) {
2724 if (yych <= '\r') goto yy174;
2725 goto yy195;
2726 } else {
2727 if (yych <= ' ') goto yy222;
2728 if (yych <= '!') goto yy195;
2729 }
2730 }
2731 } else {
2732 if (yych <= ':') {
2733 if (yych <= '$') {
2734 if (yych <= '#') goto yy195;
2735 goto yy198;
2736 } else {
2737 if (yych == '\'') goto yy174;
2738 goto yy195;
2739 }
2740 } else {
2741 if (yych <= '[') {
2742 if (yych <= ';') goto yy174;
2743 goto yy195;
2744 } else {
2745 if (yych <= '\\') goto yy197;
2746 if (yych <= ']') goto yy174;
2747 goto yy195;
2748 }
2749 }
2750 }
2751yy224:
2752 YYDEBUG(224, *YYCURSOR);
2745 ++YYCURSOR;2753 ++YYCURSOR;
2746 yych = *YYCURSOR;2754 yych = *YYCURSOR;
2747 goto yy178;2755 goto yy179;
2748 }2756 }
2749/* *********************************** */2757/* *********************************** */
2750yyc_ST_VALUE:2758yyc_ST_VALUE:
@@ -2783,27 +2791,27 @@
2783 162, 162, 162, 162, 162, 162, 162, 162, 2791 162, 162, 162, 162, 162, 162, 162, 162,
2784 162, 162, 162, 162, 162, 162, 162, 162, 2792 162, 162, 162, 162, 162, 162, 162, 162,
2785 };2793 };
2786 YYDEBUG(224, *YYCURSOR);2794 YYDEBUG(225, *YYCURSOR);
2787 YYFILL(6);2795 YYFILL(6);
2788 yych = *YYCURSOR;2796 yych = *YYCURSOR;
2789 YYDEBUG(-1, yych);2797 YYDEBUG(-1, yych);
2790 switch (yych) {2798 switch (yych) {
2791 case 0x00: goto yy226;2799 case 0x00: goto yy227;
2792 case '\t':2800 case '\t':
2793 case ' ': goto yy230;2801 case ' ': goto yy231;
2794 case '\n': goto yy232;2802 case '\n': goto yy233;
2795 case '\r': goto yy234;2803 case '\r': goto yy235;
2796 case '!':2804 case '!':
2797 case '&':2805 case '&':
2798 case '(':2806 case '(':
2799 case ')':2807 case ')':
2800 case '|':2808 case '|':
2801 case '~': goto yy235;2809 case '~': goto yy236;
2802 case '"': goto yy237;2810 case '"': goto yy238;
2803 case '$': goto yy239;2811 case '$': goto yy240;
2804 case '\'': goto yy240;2812 case '\'': goto yy241;
2805 case '-': goto yy241;2813 case '-': goto yy242;
2806 case '.': goto yy242;2814 case '.': goto yy243;
2807 case '0':2815 case '0':
2808 case '1':2816 case '1':
2809 case '2':2817 case '2':
@@ -2813,9 +2821,9 @@
2813 case '6':2821 case '6':
2814 case '7':2822 case '7':
2815 case '8':2823 case '8':
2816 case '9': goto yy243;2824 case '9': goto yy244;
2817 case ';': goto yy245;2825 case ';': goto yy246;
2818 case '=': goto yy246;2826 case '=': goto yy247;
2819 case 'A':2827 case 'A':
2820 case 'B':2828 case 'B':
2821 case 'C':2829 case 'C':
@@ -2858,189 +2866,189 @@
2858 case 'v':2866 case 'v':
2859 case 'w':2867 case 'w':
2860 case 'x':2868 case 'x':
2861 case 'z': goto yy248;2869 case 'z': goto yy249;
2862 case 'F':2870 case 'F':
2863 case 'f': goto yy250;2871 case 'f': goto yy251;
2864 case 'N':2872 case 'N':
2865 case 'n': goto yy251;2873 case 'n': goto yy252;
2866 case 'O':2874 case 'O':
2867 case 'o': goto yy252;2875 case 'o': goto yy253;
2868 case 'T':2876 case 'T':
2869 case 't': goto yy253;2877 case 't': goto yy254;
2870 case 'Y':2878 case 'Y':
2871 case 'y': goto yy254;2879 case 'y': goto yy255;
2872 default: goto yy228;2880 default: goto yy229;
2873 }2881 }
2874yy226:
2875 YYDEBUG(226, *YYCURSOR);
2876 ++YYCURSOR;
2877yy227:2882yy227:
2878 YYDEBUG(227, *YYCURSOR);2883 YYDEBUG(227, *YYCURSOR);
2879 yyleng = YYCURSOR - SCNG(yy_text);2884 ++YYCURSOR;
2880#line 567 "Zend/zend_ini_scanner.l"
2881 { /* End of option value (if EOF is reached before EOL */
2882 BEGIN(INITIAL);
2883 return END_OF_LINE;
2884}
2885#line 2886 "Zend/zend_ini_scanner.c"
2886yy228:2885yy228:
2887 YYDEBUG(228, *YYCURSOR);2886 YYDEBUG(228, *YYCURSOR);
2888 yyaccept = 0;2887 yyleng = YYCURSOR - SCNG(yy_text);
2889 yych = *(YYMARKER = ++YYCURSOR);2888#line 567 "Zend/zend_ini_scanner.l"
2890 goto yy256;2889 { /* End of option value (if EOF is reached before EOL */
2890 BEGIN(INITIAL);
2891 return END_OF_LINE;
2892}
2893#line 2894 "Zend/zend_ini_scanner.c"
2891yy229:2894yy229:
2892 YYDEBUG(229, *YYCURSOR);2895 YYDEBUG(229, *YYCURSOR);
2896 yyaccept = 0;
2897 yych = *(YYMARKER = ++YYCURSOR);
2898 goto yy257;
2899yy230:
2900 YYDEBUG(230, *YYCURSOR);
2893 yyleng = YYCURSOR - SCNG(yy_text);2901 yyleng = YYCURSOR - SCNG(yy_text);
2894#line 486 "Zend/zend_ini_scanner.l"2902#line 486 "Zend/zend_ini_scanner.l"
2895 { /* Get everything else as option/offset value */2903 { /* Get everything else as option/offset value */
2896 RETURN_TOKEN(TC_STRING, yytext, yyleng);2904 RETURN_TOKEN(TC_STRING, yytext, yyleng);
2897}2905}
2898#line 2899 "Zend/zend_ini_scanner.c"2906#line 2907 "Zend/zend_ini_scanner.c"
2899yy230:
2900 YYDEBUG(230, *YYCURSOR);
2901 yyaccept = 1;
2902 yych = *(YYMARKER = ++YYCURSOR);
2903 goto yy306;
2904yy231:2907yy231:
2905 YYDEBUG(231, *YYCURSOR);2908 YYDEBUG(231, *YYCURSOR);
2909 yyaccept = 1;
2910 yych = *(YYMARKER = ++YYCURSOR);
2911 goto yy307;
2912yy232:
2913 YYDEBUG(232, *YYCURSOR);
2906 yyleng = YYCURSOR - SCNG(yy_text);2914 yyleng = YYCURSOR - SCNG(yy_text);
2907#line 540 "Zend/zend_ini_scanner.l"2915#line 540 "Zend/zend_ini_scanner.l"
2908 {2916 {
2909 RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);2917 RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
2910}2918}
2911#line 2912 "Zend/zend_ini_scanner.c"2919#line 2920 "Zend/zend_ini_scanner.c"
2912yy232:
2913 YYDEBUG(232, *YYCURSOR);
2914 ++YYCURSOR;
2915yy233:2920yy233:
2916 YYDEBUG(233, *YYCURSOR);2921 YYDEBUG(233, *YYCURSOR);
2917 yyleng = YYCURSOR - SCNG(yy_text);2922 ++YYCURSOR;
2918#line 458 "Zend/zend_ini_scanner.l"
2919 { /* End of option value */
2920 BEGIN(INITIAL);
2921 SCNG(lineno)++;
2922 return END_OF_LINE;
2923}
2924#line 2925 "Zend/zend_ini_scanner.c"
2925yy234:2923yy234:
2926 YYDEBUG(234, *YYCURSOR);2924 YYDEBUG(234, *YYCURSOR);
2927 yych = *++YYCURSOR;2925 yyleng = YYCURSOR - SCNG(yy_text);
2928 if (yych == '\n') goto yy304;2926#line 458 "Zend/zend_ini_scanner.l"
2929 goto yy233;2927 { /* End of option value */
2928 BEGIN(INITIAL);
2929 SCNG(lineno)++;
2930 return END_OF_LINE;
2931}
2932#line 2933 "Zend/zend_ini_scanner.c"
2930yy235:2933yy235:
2931 YYDEBUG(235, *YYCURSOR);2934 YYDEBUG(235, *YYCURSOR);
2932 ++YYCURSOR;2935 yych = *++YYCURSOR;
2933 yych = *YYCURSOR;2936 if (yych == '\n') goto yy305;
2934 goto yy303;2937 goto yy234;
2935yy236:2938yy236:
2936 YYDEBUG(236, *YYCURSOR);2939 YYDEBUG(236, *YYCURSOR);
2940 ++YYCURSOR;
2941 yych = *YYCURSOR;
2942 goto yy304;
2943yy237:
2944 YYDEBUG(237, *YYCURSOR);
2937 yyleng = YYCURSOR - SCNG(yy_text);2945 yyleng = YYCURSOR - SCNG(yy_text);
2938#line 476 "Zend/zend_ini_scanner.l"2946#line 476 "Zend/zend_ini_scanner.l"
2939 { /* Boolean operators */2947 { /* Boolean operators */
2940 return yytext[0];2948 return yytext[0];
2941}2949}
2942#line 2943 "Zend/zend_ini_scanner.c"2950#line 2951 "Zend/zend_ini_scanner.c"
2943yy237:
2944 YYDEBUG(237, *YYCURSOR);
2945 ++YYCURSOR;
2946yy238:2951yy238:
2947 YYDEBUG(238, *YYCURSOR);2952 YYDEBUG(238, *YYCURSOR);
2948 yyleng = YYCURSOR - SCNG(yy_text);2953 ++YYCURSOR;
2949#line 494 "Zend/zend_ini_scanner.l"
2950 { /* Double quoted '"' string start */
2951 yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
2952 return '"';
2953}
2954#line 2955 "Zend/zend_ini_scanner.c"
2955yy239:2954yy239:
2956 YYDEBUG(239, *YYCURSOR);2955 YYDEBUG(239, *YYCURSOR);
2957 yych = *++YYCURSOR;2956 yyleng = YYCURSOR - SCNG(yy_text);
2958 if (yych <= '\\') {2957#line 494 "Zend/zend_ini_scanner.l"
2959 if (yych <= 0x00) goto yy227;2958 { /* Double quoted '"' string start */
2960 if (yych <= '[') goto yy255;2959 yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
2961 goto yy262;2960 return '"';
2962 } else {2961}
2963 if (yych == '{') goto yy300;2962#line 2963 "Zend/zend_ini_scanner.c"
2964 goto yy255;
2965 }
2966yy240:2963yy240:
2967 YYDEBUG(240, *YYCURSOR);2964 YYDEBUG(240, *YYCURSOR);
2968 yyaccept = 2;2965 yych = *++YYCURSOR;
2969 yych = *(YYMARKER = ++YYCURSOR);2966 if (yych <= '\\') {
2970 if (yybm[0+yych] & 128) {2967 if (yych <= 0x00) goto yy228;
2971 goto yy296;2968 if (yych <= '[') goto yy256;
2969 goto yy263;
2970 } else {
2971 if (yych == '{') goto yy301;
2972 goto yy256;
2972 }2973 }
2973 goto yy227;
2974yy241:2974yy241:
2975 YYDEBUG(241, *YYCURSOR);2975 YYDEBUG(241, *YYCURSOR);
2976 yyaccept = 0;2976 yyaccept = 2;
2977 yych = *(YYMARKER = ++YYCURSOR);2977 yych = *(YYMARKER = ++YYCURSOR);
2978 if (yych <= '/') goto yy256;2978 if (yybm[0+yych] & 128) {
2979 if (yych <= '9') goto yy294;2979 goto yy297;
2980 goto yy256;2980 }
2981 goto yy228;
2981yy242:2982yy242:
2982 YYDEBUG(242, *YYCURSOR);2983 YYDEBUG(242, *YYCURSOR);
2983 yyaccept = 0;2984 yyaccept = 0;
2984 yych = *(YYMARKER = ++YYCURSOR);2985 yych = *(YYMARKER = ++YYCURSOR);
2985 if (yych <= '/') goto yy256;2986 if (yych <= '/') goto yy257;
2986 if (yych <= '9') goto yy292;2987 if (yych <= '9') goto yy295;
2987 goto yy256;2988 goto yy257;
2988yy243:2989yy243:
2989 YYDEBUG(243, *YYCURSOR);2990 YYDEBUG(243, *YYCURSOR);
2991 yyaccept = 0;
2992 yych = *(YYMARKER = ++YYCURSOR);
2993 if (yych <= '/') goto yy257;
2994 if (yych <= '9') goto yy293;
2995 goto yy257;
2996yy244:
2997 YYDEBUG(244, *YYCURSOR);
2990 yyaccept = 3;2998 yyaccept = 3;
2991 yych = *(YYMARKER = ++YYCURSOR);2999 yych = *(YYMARKER = ++YYCURSOR);
2992 if (yych <= '.') {3000 if (yych <= '.') {
2993 if (yych <= '\r') {3001 if (yych <= '\r') {
2994 if (yych <= 0x08) {3002 if (yych <= 0x08) {
2995 if (yych >= 0x01) goto yy256;3003 if (yych >= 0x01) goto yy257;
2996 } else {3004 } else {
2997 if (yych <= '\n') goto yy244;3005 if (yych <= '\n') goto yy245;
2998 if (yych <= '\f') goto yy256;3006 if (yych <= '\f') goto yy257;
2999 }3007 }
3000 } else {3008 } else {
3001 if (yych <= '%') {3009 if (yych <= '%') {
3002 if (yych <= 0x1F) goto yy256;3010 if (yych <= 0x1F) goto yy257;
3003 if (yych >= '#') goto yy256;3011 if (yych >= '#') goto yy257;
3004 } else {3012 } else {
3005 if (yych <= ')') goto yy244;3013 if (yych <= ')') goto yy245;
3006 if (yych <= '-') goto yy256;3014 if (yych <= '-') goto yy257;
3007 goto yy288;3015 goto yy289;
3008 }3016 }
3009 }3017 }
3010 } else {3018 } else {
3011 if (yych <= '<') {3019 if (yych <= '<') {
3012 if (yych <= '9') {3020 if (yych <= '9') {
3013 if (yych <= '/') goto yy256;3021 if (yych <= '/') goto yy257;
3014 goto yy290;3022 goto yy291;
3015 } else {3023 } else {
3016 if (yych != ';') goto yy256;3024 if (yych != ';') goto yy257;
3017 }3025 }
3018 } else {3026 } else {
3019 if (yych <= '|') {3027 if (yych <= '|') {
3020 if (yych <= '=') goto yy244;3028 if (yych <= '=') goto yy245;
3021 if (yych <= '{') goto yy256;3029 if (yych <= '{') goto yy257;
3022 } else {3030 } else {
3023 if (yych != '~') goto yy256;3031 if (yych != '~') goto yy257;
3024 }3032 }
3025 }3033 }
3026 }3034 }
3027yy244:
3028 YYDEBUG(244, *YYCURSOR);
3029 yyleng = YYCURSOR - SCNG(yy_text);
3030#line 468 "Zend/zend_ini_scanner.l"
3031 { /* Get number option value as string */
3032 RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
3033}
3034#line 3035 "Zend/zend_ini_scanner.c"
3035yy245:3035yy245:
3036 YYDEBUG(245, *YYCURSOR);3036 YYDEBUG(245, *YYCURSOR);
3037 yyaccept = 2;3037 yyleng = YYCURSOR - SCNG(yy_text);
3038 yych = *(YYMARKER = ++YYCURSOR);3038#line 468 "Zend/zend_ini_scanner.l"
3039 goto yy284;3039 { /* Get number option value as string */
3040 RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
3041}
3042#line 3043 "Zend/zend_ini_scanner.c"
3040yy246:3043yy246:
3041 YYDEBUG(246, *YYCURSOR);3044 YYDEBUG(246, *YYCURSOR);
3042 ++YYCURSOR;3045 yyaccept = 2;
3046 yych = *(YYMARKER = ++YYCURSOR);
3047 goto yy285;
3048yy247:
3043 YYDEBUG(247, *YYCURSOR);3049 YYDEBUG(247, *YYCURSOR);
3050 ++YYCURSOR;
3051 YYDEBUG(248, *YYCURSOR);
3044 yyleng = YYCURSOR - SCNG(yy_text);3052 yyleng = YYCURSOR - SCNG(yy_text);
3045#line 480 "Zend/zend_ini_scanner.l"3053#line 480 "Zend/zend_ini_scanner.l"
3046 { /* Make = used in option value to trigger error */3054 { /* Make = used in option value to trigger error */
@@ -3048,154 +3056,93 @@
3048 BEGIN(INITIAL);3056 BEGIN(INITIAL);
3049 return END_OF_LINE;3057 return END_OF_LINE;
3050}3058}
3051#line 3052 "Zend/zend_ini_scanner.c"3059#line 3060 "Zend/zend_ini_scanner.c"
3052yy248:
3053 YYDEBUG(248, *YYCURSOR);
3054 yyaccept = 4;
3055 yych = *(YYMARKER = ++YYCURSOR);
3056 if (yybm[0+yych] & 4) {
3057 goto yy257;
3058 }
3059 if (yych <= ')') {
3060 if (yych <= '\f') {
3061 if (yych <= 0x00) goto yy249;
3062 if (yych <= 0x08) goto yy256;
3063 if (yych >= '\v') goto yy256;
3064 } else {
3065 if (yych <= 0x1F) {
3066 if (yych >= 0x0E) goto yy256;
3067 } else {
3068 if (yych <= '"') goto yy249;
3069 if (yych <= '%') goto yy256;
3070 }
3071 }
3072 } else {
3073 if (yych <= '=') {
3074 if (yych == ';') goto yy249;
3075 if (yych <= '<') goto yy256;
3076 } else {
3077 if (yych <= '|') {
3078 if (yych <= '{') goto yy256;
3079 } else {
3080 if (yych != '~') goto yy256;
3081 }
3082 }
3083 }
3084yy249:3060yy249:
3085 YYDEBUG(249, *YYCURSOR);3061 YYDEBUG(249, *YYCURSOR);
3086 yyleng = YYCURSOR - SCNG(yy_text);3062 yyaccept = 4;
3087#line 464 "Zend/zend_ini_scanner.l"3063 yych = *(YYMARKER = ++YYCURSOR);
3088 { /* Get constant option value */3064 if (yybm[0+yych] & 4) {
3089 RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);3065 goto yy258;
3090}3066 }
3091#line 3092 "Zend/zend_ini_scanner.c"3067 if (yych <= ')') {
3068 if (yych <= '\f') {
3069 if (yych <= 0x00) goto yy250;
3070 if (yych <= 0x08) goto yy257;
3071 if (yych >= '\v') goto yy257;
3072 } else {
3073 if (yych <= 0x1F) {
3074 if (yych >= 0x0E) goto yy257;
3075 } else {
3076 if (yych <= '"') goto yy250;
3077 if (yych <= '%') goto yy257;
3078 }
3079 }
3080 } else {
3081 if (yych <= '=') {
3082 if (yych == ';') goto yy250;
3083 if (yych <= '<') goto yy257;
3084 } else {
3085 if (yych <= '|') {
3086 if (yych <= '{') goto yy257;
3087 } else {
3088 if (yych != '~') goto yy257;
3089 }
3090 }
3091 }
3092yy250:3092yy250:
3093 YYDEBUG(250, *YYCURSOR);3093 YYDEBUG(250, *YYCURSOR);
3094 yyaccept = 4;3094 yyleng = YYCURSOR - SCNG(yy_text);
3095 yych = *(YYMARKER = ++YYCURSOR);3095#line 464 "Zend/zend_ini_scanner.l"
3096 if (yych <= '<') {3096 { /* Get constant option value */
3097 if (yych <= '"') {3097 RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
3098 if (yych <= '\n') {3098}
3099 if (yych <= 0x00) goto yy249;3099#line 3100 "Zend/zend_ini_scanner.c"
3100 if (yych <= 0x08) goto yy256;
3101 goto yy249;
3102 } else {
3103 if (yych == '\r') goto yy249;
3104 if (yych <= 0x1F) goto yy256;
3105 goto yy249;
3106 }
3107 } else {
3108 if (yych <= '/') {
3109 if (yych <= '%') goto yy256;
3110 if (yych <= ')') goto yy249;
3111 goto yy256;
3112 } else {
3113 if (yych <= '9') goto yy257;
3114 if (yych == ';') goto yy249;
3115 goto yy256;
3116 }
3117 }
3118 } else {
3119 if (yych <= '`') {
3120 if (yych <= 'A') {
3121 if (yych <= '=') goto yy249;
3122 if (yych <= '@') goto yy256;
3123 goto yy280;
3124 } else {
3125 if (yych <= 'Z') goto yy257;
3126 if (yych == '_') goto yy257;
3127 goto yy256;
3128 }
3129 } else {
3130 if (yych <= '{') {
3131 if (yych <= 'a') goto yy280;
3132 if (yych <= 'z') goto yy257;
3133 goto yy256;
3134 } else {
3135 if (yych == '}') goto yy256;
3136 if (yych <= '~') goto yy249;
3137 goto yy256;
3138 }
3139 }
3140 }
3141yy251:3100yy251:
3142 YYDEBUG(251, *YYCURSOR);3101 YYDEBUG(251, *YYCURSOR);
3143 yyaccept = 4;3102 yyaccept = 4;
3144 yych = *(YYMARKER = ++YYCURSOR);3103 yych = *(YYMARKER = ++YYCURSOR);
3145 if (yych <= 'N') {3104 if (yych <= '<') {
3146 if (yych <= '%') {3105 if (yych <= '"') {
3147 if (yych <= '\f') {3106 if (yych <= '\n') {
3148 if (yych <= 0x00) goto yy249;3107 if (yych <= 0x00) goto yy250;
3149 if (yych <= 0x08) goto yy256;3108 if (yych <= 0x08) goto yy257;
3150 if (yych <= '\n') goto yy249;3109 goto yy250;
3151 goto yy256;
3152 } else {3110 } else {
3153 if (yych <= '\r') goto yy249;3111 if (yych == '\r') goto yy250;
3154 if (yych <= 0x1F) goto yy256;3112 if (yych <= 0x1F) goto yy257;
3155 if (yych <= '"') goto yy249;3113 goto yy250;
3156 goto yy256;
3157 }3114 }
3158 } else {3115 } else {
3159 if (yych <= ':') {3116 if (yych <= '/') {
3160 if (yych <= ')') goto yy249;3117 if (yych <= '%') goto yy257;
3161 if (yych <= '/') goto yy256;3118 if (yych <= ')') goto yy250;
3162 if (yych <= '9') goto yy257;3119 goto yy257;
3163 goto yy256;
3164 } else {3120 } else {
3165 if (yych <= '<') {3121 if (yych <= '9') goto yy258;
3166 if (yych <= ';') goto yy249;3122 if (yych == ';') goto yy250;
3167 goto yy256;3123 goto yy257;
3168 } else {
3169 if (yych <= '=') goto yy249;
3170 if (yych <= '@') goto yy256;
3171 goto yy257;
3172 }
3173 }3124 }
3174 }3125 }
3175 } else {3126 } else {
3176 if (yych <= 'n') {3127 if (yych <= '`') {
3177 if (yych <= 'Z') {3128 if (yych <= 'A') {
3178 if (yych <= 'O') goto yy276;3129 if (yych <= '=') goto yy250;
3179 if (yych == 'U') goto yy277;3130 if (yych <= '@') goto yy257;
3180 goto yy257;3131 goto yy281;
3181 } else {3132 } else {
3182 if (yych == '_') goto yy257;3133 if (yych <= 'Z') goto yy258;
3183 if (yych <= '`') goto yy256;3134 if (yych == '_') goto yy258;
3184 goto yy257;3135 goto yy257;
3185 }3136 }
3186 } else {3137 } else {
3187 if (yych <= 'z') {3138 if (yych <= '{') {
3188 if (yych <= 'o') goto yy276;3139 if (yych <= 'a') goto yy281;
3189 if (yych == 'u') goto yy277;3140 if (yych <= 'z') goto yy258;
3190 goto yy257;3141 goto yy257;
3191 } else {3142 } else {
3192 if (yych <= '|') {3143 if (yych == '}') goto yy257;
3193 if (yych <= '{') goto yy256;3144 if (yych <= '~') goto yy250;
3194 goto yy249;3145 goto yy257;
3195 } else {
3196 if (yych == '~') goto yy249;
3197 goto yy256;
3198 }
3199 }3146 }
3200 }3147 }
3201 }3148 }
@@ -3203,113 +3150,124 @@
3203 YYDEBUG(252, *YYCURSOR);3150 YYDEBUG(252, *YYCURSOR);
3204 yyaccept = 4;3151 yyaccept = 4;
3205 yych = *(YYMARKER = ++YYCURSOR);3152 yych = *(YYMARKER = ++YYCURSOR);
3153 if (yych <= 'N') {
3154 if (yych <= '%') {
3155 if (yych <= '\f') {
3156 if (yych <= 0x00) goto yy250;
3157 if (yych <= 0x08) goto yy257;
3158 if (yych <= '\n') goto yy250;
3159 goto yy257;
3160 } else {
3161 if (yych <= '\r') goto yy250;
3162 if (yych <= 0x1F) goto yy257;
3163 if (yych <= '"') goto yy250;
3164 goto yy257;
3165 }
3166 } else {
3167 if (yych <= ':') {
3168 if (yych <= ')') goto yy250;
3169 if (yych <= '/') goto yy257;
3170 if (yych <= '9') goto yy258;
3171 goto yy257;
3172 } else {
3173 if (yych <= '<') {
3174 if (yych <= ';') goto yy250;
3175 goto yy257;
3176 } else {
3177 if (yych <= '=') goto yy250;
3178 if (yych <= '@') goto yy257;
3179 goto yy258;
3180 }
3181 }
3182 }
3183 } else {
3184 if (yych <= 'n') {
3185 if (yych <= 'Z') {
3186 if (yych <= 'O') goto yy277;
3187 if (yych == 'U') goto yy278;
3188 goto yy258;
3189 } else {
3190 if (yych == '_') goto yy258;
3191 if (yych <= '`') goto yy257;
3192 goto yy258;
3193 }
3194 } else {
3195 if (yych <= 'z') {
3196 if (yych <= 'o') goto yy277;
3197 if (yych == 'u') goto yy278;
3198 goto yy258;
3199 } else {
3200 if (yych <= '|') {
3201 if (yych <= '{') goto yy257;
3202 goto yy250;
3203 } else {
3204 if (yych == '~') goto yy250;
3205 goto yy257;
3206 }
3207 }
3208 }
3209 }
3210yy253:
3211 YYDEBUG(253, *YYCURSOR);
3212 yyaccept = 4;
3213 yych = *(YYMARKER = ++YYCURSOR);
3206 if (yych <= 'E') {3214 if (yych <= 'E') {
3207 if (yych <= '%') {3215 if (yych <= '%') {
3208 if (yych <= '\f') {3216 if (yych <= '\f') {
3209 if (yych <= 0x00) goto yy249;3217 if (yych <= 0x00) goto yy250;
3210 if (yych <= 0x08) goto yy256;3218 if (yych <= 0x08) goto yy257;
3211 if (yych <= '\n') goto yy249;3219 if (yych <= '\n') goto yy250;
3212 goto yy256;3220 goto yy257;
3213 } else {3221 } else {
3214 if (yych <= '\r') goto yy249;3222 if (yych <= '\r') goto yy250;
3215 if (yych <= 0x1F) goto yy256;3223 if (yych <= 0x1F) goto yy257;
3216 if (yych <= '"') goto yy249;3224 if (yych <= '"') goto yy250;
3217 goto yy256;3225 goto yy257;
3218 }3226 }
3219 } else {3227 } else {
3220 if (yych <= ':') {3228 if (yych <= ':') {
3221 if (yych <= ')') goto yy249;3229 if (yych <= ')') goto yy250;
3222 if (yych <= '/') goto yy256;3230 if (yych <= '/') goto yy257;
3223 if (yych <= '9') goto yy257;3231 if (yych <= '9') goto yy258;
3224 goto yy256;3232 goto yy257;
3225 } else {3233 } else {
3226 if (yych <= '<') {3234 if (yych <= '<') {
3227 if (yych <= ';') goto yy249;3235 if (yych <= ';') goto yy250;
3228 goto yy256;3236 goto yy257;
3229 } else {3237 } else {
3230 if (yych <= '=') goto yy249;3238 if (yych <= '=') goto yy250;
3231 if (yych <= '@') goto yy256;3239 if (yych <= '@') goto yy257;
3232 goto yy257;3240 goto yy258;
3233 }3241 }
3234 }3242 }
3235 }3243 }
3236 } else {3244 } else {
3237 if (yych <= 'e') {3245 if (yych <= 'e') {
3238 if (yych <= 'Z') {3246 if (yych <= 'Z') {
3239 if (yych <= 'F') goto yy271;3247 if (yych <= 'F') goto yy272;
3240 if (yych == 'N') goto yy265;3248 if (yych == 'N') goto yy266;
3241 goto yy257;3249 goto yy258;
3242 } else {3250 } else {
3243 if (yych == '_') goto yy257;3251 if (yych == '_') goto yy258;
3244 if (yych <= '`') goto yy256;3252 if (yych <= '`') goto yy257;
3245 goto yy257;3253 goto yy258;
3246 }3254 }
3247 } else {3255 } else {
3248 if (yych <= 'z') {3256 if (yych <= 'z') {
3249 if (yych <= 'f') goto yy271;3257 if (yych <= 'f') goto yy272;
3250 if (yych == 'n') goto yy265;3258 if (yych == 'n') goto yy266;
3251 goto yy257;3259 goto yy258;
3252 } else {3260 } else {
3253 if (yych <= '|') {3261 if (yych <= '|') {
3254 if (yych <= '{') goto yy256;3262 if (yych <= '{') goto yy257;
3255 goto yy249;3263 goto yy250;
3256 } else {3264 } else {
3257 if (yych == '~') goto yy249;3265 if (yych == '~') goto yy250;
3258 goto yy256;3266 goto yy257;
3259 }3267 }
3260 }3268 }
3261 }3269 }
3262 }3270 }
3263yy253:
3264 YYDEBUG(253, *YYCURSOR);
3265 yyaccept = 4;
3266 yych = *(YYMARKER = ++YYCURSOR);
3267 if (yych <= '=') {
3268 if (yych <= '"') {
3269 if (yych <= '\n') {
3270 if (yych <= 0x00) goto yy249;
3271 if (yych <= 0x08) goto yy256;
3272 goto yy249;
3273 } else {
3274 if (yych == '\r') goto yy249;
3275 if (yych <= 0x1F) goto yy256;
3276 goto yy249;
3277 }
3278 } else {
3279 if (yych <= '9') {
3280 if (yych <= '%') goto yy256;
3281 if (yych <= ')') goto yy249;
3282 if (yych <= '/') goto yy256;
3283 goto yy257;
3284 } else {
3285 if (yych == ';') goto yy249;
3286 if (yych <= '<') goto yy256;
3287 goto yy249;
3288 }
3289 }
3290 } else {
3291 if (yych <= '`') {
3292 if (yych <= 'R') {
3293 if (yych <= '@') goto yy256;
3294 if (yych <= 'Q') goto yy257;
3295 goto yy269;
3296 } else {
3297 if (yych <= 'Z') goto yy257;
3298 if (yych == '_') goto yy257;
3299 goto yy256;
3300 }
3301 } else {
3302 if (yych <= '{') {
3303 if (yych == 'r') goto yy269;
3304 if (yych <= 'z') goto yy257;
3305 goto yy256;
3306 } else {
3307 if (yych == '}') goto yy256;
3308 if (yych <= '~') goto yy249;
3309 goto yy256;
3310 }
3311 }
3312 }
3313yy254:3271yy254:
3314 YYDEBUG(254, *YYCURSOR);3272 YYDEBUG(254, *YYCURSOR);
3315 yyaccept = 4;3273 yyaccept = 4;
@@ -3317,333 +3275,334 @@
3317 if (yych <= '=') {3275 if (yych <= '=') {
3318 if (yych <= '"') {3276 if (yych <= '"') {
3319 if (yych <= '\n') {3277 if (yych <= '\n') {
3320 if (yych <= 0x00) goto yy249;3278 if (yych <= 0x00) goto yy250;
3321 if (yych <= 0x08) goto yy256;3279 if (yych <= 0x08) goto yy257;
3322 goto yy249;3280 goto yy250;
3323 } else {3281 } else {
3324 if (yych == '\r') goto yy249;3282 if (yych == '\r') goto yy250;
3325 if (yych <= 0x1F) goto yy256;3283 if (yych <= 0x1F) goto yy257;
3326 goto yy249;3284 goto yy250;
3327 }3285 }
3328 } else {3286 } else {
3329 if (yych <= '9') {3287 if (yych <= '9') {
3330 if (yych <= '%') goto yy256;3288 if (yych <= '%') goto yy257;
3331 if (yych <= ')') goto yy249;3289 if (yych <= ')') goto yy250;
3332 if (yych <= '/') goto yy256;3290 if (yych <= '/') goto yy257;
3333 goto yy257;3291 goto yy258;
3334 } else {3292 } else {
3335 if (yych == ';') goto yy249;3293 if (yych == ';') goto yy250;
3336 if (yych <= '<') goto yy256;3294 if (yych <= '<') goto yy257;
3337 goto yy249;3295 goto yy250;
3338 }3296 }
3339 }3297 }
3340 } else {3298 } else {
3341 if (yych <= '`') {3299 if (yych <= '`') {
3342 if (yych <= 'E') {3300 if (yych <= 'R') {
3343 if (yych <= '@') goto yy256;3301 if (yych <= '@') goto yy257;
3344 if (yych <= 'D') goto yy257;3302 if (yych <= 'Q') goto yy258;
3345 goto yy259;3303 goto yy270;
3346 } else {3304 } else {
3347 if (yych <= 'Z') goto yy257;3305 if (yych <= 'Z') goto yy258;
3348 if (yych == '_') goto yy257;3306 if (yych == '_') goto yy258;
3349 goto yy256;3307 goto yy257;
3350 }3308 }
3351 } else {3309 } else {
3352 if (yych <= '{') {3310 if (yych <= '{') {
3353 if (yych == 'e') goto yy259;3311 if (yych == 'r') goto yy270;
3354 if (yych <= 'z') goto yy257;3312 if (yych <= 'z') goto yy258;
3355 goto yy256;3313 goto yy257;
3356 } else {3314 } else {
3357 if (yych == '}') goto yy256;3315 if (yych == '}') goto yy257;
3358 if (yych <= '~') goto yy249;3316 if (yych <= '~') goto yy250;
3359 goto yy256;3317 goto yy257;
3360 }3318 }
3361 }3319 }
3362 }3320 }
3363yy255:3321yy255:
3364 YYDEBUG(255, *YYCURSOR);3322 YYDEBUG(255, *YYCURSOR);
3365 yyaccept = 0;3323 yyaccept = 4;
3366 YYMARKER = ++YYCURSOR;3324 yych = *(YYMARKER = ++YYCURSOR);
3367 YYFILL(1);3325 if (yych <= '=') {
3368 yych = *YYCURSOR;3326 if (yych <= '"') {
3327 if (yych <= '\n') {
3328 if (yych <= 0x00) goto yy250;
3329 if (yych <= 0x08) goto yy257;
3330 goto yy250;
3331 } else {
3332 if (yych == '\r') goto yy250;
3333 if (yych <= 0x1F) goto yy257;
3334 goto yy250;
3335 }
3336 } else {
3337 if (yych <= '9') {
3338 if (yych <= '%') goto yy257;
3339 if (yych <= ')') goto yy250;
3340 if (yych <= '/') goto yy257;
3341 goto yy258;
3342 } else {
3343 if (yych == ';') goto yy250;
3344 if (yych <= '<') goto yy257;
3345 goto yy250;
3346 }
3347 }
3348 } else {
3349 if (yych <= '`') {
3350 if (yych <= 'E') {
3351 if (yych <= '@') goto yy257;
3352 if (yych <= 'D') goto yy258;
3353 goto yy260;
3354 } else {
3355 if (yych <= 'Z') goto yy258;
3356 if (yych == '_') goto yy258;
3357 goto yy257;
3358 }
3359 } else {
3360 if (yych <= '{') {
3361 if (yych == 'e') goto yy260;
3362 if (yych <= 'z') goto yy258;
3363 goto yy257;
3364 } else {
3365 if (yych == '}') goto yy257;
3366 if (yych <= '~') goto yy250;
3367 goto yy257;
3368 }
3369 }
3370 }
3369yy256:3371yy256:
3370 YYDEBUG(256, *YYCURSOR);3372 YYDEBUG(256, *YYCURSOR);
3371 if (yybm[0+yych] & 2) {3373 yyaccept = 0;
3372 goto yy255;3374 YYMARKER = ++YYCURSOR;
3373 }3375 YYFILL(1);
3374 if (yych == '$') goto yy260;3376 yych = *YYCURSOR;
3375 goto yy229;
3376yy257:3377yy257:
3377 YYDEBUG(257, *YYCURSOR);3378 YYDEBUG(257, *YYCURSOR);
3378 yyaccept = 4;3379 if (yybm[0+yych] & 2) {
3379 YYMARKER = ++YYCURSOR;3380 goto yy256;
3380 YYFILL(1);3381 }
3381 yych = *YYCURSOR;3382 if (yych == '$') goto yy261;
3383 goto yy230;
3384yy258:
3382 YYDEBUG(258, *YYCURSOR);3385 YYDEBUG(258, *YYCURSOR);
3383 if (yybm[0+yych] & 4) {3386 yyaccept = 4;
3384 goto yy257;3387 YYMARKER = ++YYCURSOR;
3385 }3388 YYFILL(1);
3386 if (yych <= '%') {3389 yych = *YYCURSOR;
3387 if (yych <= '\r') {
3388 if (yych <= 0x08) {
3389 if (yych <= 0x00) goto yy249;
3390 goto yy255;
3391 } else {
3392 if (yych <= '\n') goto yy249;
3393 if (yych <= '\f') goto yy255;
3394 goto yy249;
3395 }
3396 } else {
3397 if (yych <= '"') {
3398 if (yych <= 0x1F) goto yy255;
3399 goto yy249;
3400 } else {
3401 if (yych == '$') goto yy260;
3402 goto yy255;
3403 }
3404 }
3405 } else {
3406 if (yych <= '=') {
3407 if (yych <= ':') {
3408 if (yych <= ')') goto yy249;
3409 goto yy255;
3410 } else {
3411 if (yych == '<') goto yy255;
3412 goto yy249;
3413 }
3414 } else {
3415 if (yych <= '|') {
3416 if (yych <= '{') goto yy255;
3417 goto yy249;
3418 } else {
3419 if (yych == '~') goto yy249;
3420 goto yy255;
3421 }
3422 }
3423 }
3424yy259:
3425 YYDEBUG(259, *YYCURSOR);3390 YYDEBUG(259, *YYCURSOR);
3426 yyaccept = 4;3391 if (yybm[0+yych] & 4) {
3427 yych = *(YYMARKER = ++YYCURSOR);3392 goto yy258;
3428 if (yych <= '=') {3393 }
3429 if (yych <= '"') {3394 if (yych <= '%') {
3430 if (yych <= '\n') {3395 if (yych <= '\r') {
3431 if (yych <= 0x00) goto yy249;3396 if (yych <= 0x08) {
3432 if (yych <= 0x08) goto yy256;3397 if (yych <= 0x00) goto yy250;
3433 goto yy249;3398 goto yy256;
3434 } else {3399 } else {
3435 if (yych == '\r') goto yy249;3400 if (yych <= '\n') goto yy250;
3401 if (yych <= '\f') goto yy256;
3402 goto yy250;
3403 }
3404 } else {
3405 if (yych <= '"') {
3436 if (yych <= 0x1F) goto yy256;3406 if (yych <= 0x1F) goto yy256;
3437 goto yy249;3407 goto yy250;
3438 }
3439 } else {
3440 if (yych <= '9') {
3441 if (yych <= '%') goto yy256;
3442 if (yych <= ')') goto yy249;
3443 if (yych <= '/') goto yy256;
3444 goto yy257;
3445 } else {3408 } else {
3446 if (yych == ';') goto yy249;3409 if (yych == '$') goto yy261;
3447 if (yych <= '<') goto yy256;3410 goto yy256;
3448 goto yy249;
3449 }3411 }
3450 }3412 }
3451 } else {3413 } else {
3452 if (yych <= '`') {3414 if (yych <= '=') {
3453 if (yych <= 'S') {3415 if (yych <= ':') {
3454 if (yych <= '@') goto yy256;3416 if (yych <= ')') goto yy250;
3455 if (yych <= 'R') goto yy257;3417 goto yy256;
3456 goto yy265;
3457 } else {3418 } else {
3458 if (yych <= 'Z') goto yy257;3419 if (yych == '<') goto yy256;
3459 if (yych == '_') goto yy257;3420 goto yy250;
3460 goto yy256;
3461 }3421 }
3462 } else {3422 } else {
3463 if (yych <= '{') {3423 if (yych <= '|') {
3464 if (yych == 's') goto yy265;3424 if (yych <= '{') goto yy256;
3465 if (yych <= 'z') goto yy257;3425 goto yy250;
3466 goto yy256;
3467 } else {3426 } else {
3468 if (yych == '}') goto yy256;3427 if (yych == '~') goto yy250;
3469 if (yych <= '~') goto yy249;
3470 goto yy256;3428 goto yy256;
3471 }3429 }
3472 }3430 }
3473 }3431 }
3474yy260:3432yy260:
3475 YYDEBUG(260, *YYCURSOR);3433 YYDEBUG(260, *YYCURSOR);
3476 ++YYCURSOR;3434 yyaccept = 4;
3477 YYFILL(1);3435 yych = *(YYMARKER = ++YYCURSOR);
3478 yych = *YYCURSOR;3436 if (yych <= '=') {
3479 if (yych <= '\\') {3437 if (yych <= '"') {
3480 if (yych <= 0x00) goto yy261;3438 if (yych <= '\n') {
3481 if (yych <= '[') goto yy255;3439 if (yych <= 0x00) goto yy250;
3482 goto yy262;3440 if (yych <= 0x08) goto yy257;
3441 goto yy250;
3442 } else {
3443 if (yych == '\r') goto yy250;
3444 if (yych <= 0x1F) goto yy257;
3445 goto yy250;
3446 }
3447 } else {
3448 if (yych <= '9') {
3449 if (yych <= '%') goto yy257;
3450 if (yych <= ')') goto yy250;
3451 if (yych <= '/') goto yy257;
3452 goto yy258;
3453 } else {
3454 if (yych == ';') goto yy250;
3455 if (yych <= '<') goto yy257;
3456 goto yy250;
3457 }
3458 }
3483 } else {3459 } else {
3484 if (yych != '{') goto yy255;3460 if (yych <= '`') {
3461 if (yych <= 'S') {
3462 if (yych <= '@') goto yy257;
3463 if (yych <= 'R') goto yy258;
3464 goto yy266;
3465 } else {
3466 if (yych <= 'Z') goto yy258;
3467 if (yych == '_') goto yy258;
3468 goto yy257;
3469 }
3470 } else {
3471 if (yych <= '{') {
3472 if (yych == 's') goto yy266;
3473 if (yych <= 'z') goto yy258;
3474 goto yy257;
3475 } else {
3476 if (yych == '}') goto yy257;
3477 if (yych <= '~') goto yy250;
3478 goto yy257;
3479 }
3480 }
3485 }3481 }
3486yy261:3482yy261:
3487 YYDEBUG(261, *YYCURSOR);3483 YYDEBUG(261, *YYCURSOR);
3484 ++YYCURSOR;
3485 YYFILL(1);
3486 yych = *YYCURSOR;
3487 if (yych <= '\\') {
3488 if (yych <= 0x00) goto yy262;
3489 if (yych <= '[') goto yy256;
3490 goto yy263;
3491 } else {
3492 if (yych != '{') goto yy256;
3493 }
3494yy262:
3495 YYDEBUG(262, *YYCURSOR);
3488 YYCURSOR = YYMARKER;3496 YYCURSOR = YYMARKER;
3489 if (yyaccept <= 3) {3497 if (yyaccept <= 3) {
3490 if (yyaccept <= 1) {3498 if (yyaccept <= 1) {
3491 if (yyaccept <= 0) {3499 if (yyaccept <= 0) {
3492 goto yy229;3500 goto yy230;
3493 } else {3501 } else {
3494 goto yy231;3502 goto yy232;
3495 }3503 }
3496 } else {3504 } else {
3497 if (yyaccept <= 2) {3505 if (yyaccept <= 2) {
3498 goto yy227;3506 goto yy228;
3499 } else {3507 } else {
3500 goto yy244;3508 goto yy245;
3501 }3509 }
3502 }3510 }
3503 } else {3511 } else {
3504 if (yyaccept <= 5) {3512 if (yyaccept <= 5) {
3505 if (yyaccept <= 4) {3513 if (yyaccept <= 4) {
3506 goto yy249;3514 goto yy250;
3507 } else {3515 } else {
3508 goto yy266;3516 goto yy267;
3509 }3517 }
3510 } else {3518 } else {
3511 goto yy273;3519 goto yy274;
3512 }3520 }
3513 }3521 }
3514yy262:
3515 YYDEBUG(262, *YYCURSOR);
3516 ++YYCURSOR;
3517 YYFILL(1);
3518 yych = *YYCURSOR;
3519 if (yybm[0+yych] & 8) {
3520 goto yy263;
3521 }
3522 goto yy255;
3523yy263:3522yy263:
3524 YYDEBUG(263, *YYCURSOR);3523 YYDEBUG(263, *YYCURSOR);
3525 ++YYCURSOR;3524 ++YYCURSOR;
3526 YYFILL(1);3525 YYFILL(1);
3527 yych = *YYCURSOR;3526 yych = *YYCURSOR;
3527 if (yybm[0+yych] & 8) {
3528 goto yy264;
3529 }
3530 goto yy256;
3531yy264:
3528 YYDEBUG(264, *YYCURSOR);3532 YYDEBUG(264, *YYCURSOR);
3529 if (yybm[0+yych] & 8) {3533 ++YYCURSOR;
3530 goto yy263;3534 YYFILL(1);
3531 }3535 yych = *YYCURSOR;
3532 if (yych <= 0x00) goto yy229;
3533 if (yych == '\\') goto yy262;
3534 goto yy255;
3535yy265:
3536 YYDEBUG(265, *YYCURSOR);3536 YYDEBUG(265, *YYCURSOR);
3537 if (yybm[0+yych] & 8) {
3538 goto yy264;
3539 }
3540 if (yych <= 0x00) goto yy230;
3541 if (yych == '\\') goto yy263;
3542 goto yy256;
3543yy266:
3544 YYDEBUG(266, *YYCURSOR);
3537 yyaccept = 5;3545 yyaccept = 5;
3538 yych = *(YYMARKER = ++YYCURSOR);3546 yych = *(YYMARKER = ++YYCURSOR);
3539 if (yybm[0+yych] & 16) {3547 if (yybm[0+yych] & 16) {
3540 goto yy267;3548 goto yy268;
3541 }3549 }
3542 if (yych <= ';') {3550 if (yych <= ';') {
3543 if (yych <= ' ') {3551 if (yych <= ' ') {
3544 if (yych <= '\n') {3552 if (yych <= '\n') {
3545 if (yych <= 0x00) goto yy266;3553 if (yych <= 0x00) goto yy267;
3546 if (yych <= '\t') goto yy256;3554 if (yych <= '\t') goto yy257;
3547 } else {3555 } else {
3548 if (yych != '\r') goto yy256;3556 if (yych != '\r') goto yy257;
3549 }3557 }
3550 } else {3558 } else {
3551 if (yych <= ')') {3559 if (yych <= ')') {
3552 if (yych <= '"') goto yy266;3560 if (yych <= '"') goto yy267;
3553 if (yych <= '%') goto yy256;3561 if (yych <= '%') goto yy257;
3554 } else {3562 } else {
3555 if (yych <= '/') goto yy256;3563 if (yych <= '/') goto yy257;
3556 if (yych <= '9') goto yy257;3564 if (yych <= '9') goto yy258;
3557 if (yych <= ':') goto yy256;3565 if (yych <= ':') goto yy257;
3558 }3566 }
3559 }3567 }
3560 } else {3568 } else {
3561 if (yych <= '_') {3569 if (yych <= '_') {
3562 if (yych <= '@') {3570 if (yych <= '@') {
3563 if (yych != '=') goto yy256;3571 if (yych != '=') goto yy257;
3564 } else {3572 } else {
3565 if (yych <= 'Z') goto yy257;3573 if (yych <= 'Z') goto yy258;
3566 if (yych <= '^') goto yy256;3574 if (yych <= '^') goto yy257;
3567 goto yy257;3575 goto yy258;
3568 }3576 }
3569 } else {3577 } else {
3570 if (yych <= '{') {3578 if (yych <= '{') {
3571 if (yych <= '`') goto yy256;3579 if (yych <= '`') goto yy257;
3572 if (yych <= 'z') goto yy257;3580 if (yych <= 'z') goto yy258;
3573 goto yy256;3581 goto yy257;
3574 } else {3582 } else {
3575 if (yych == '}') goto yy256;3583 if (yych == '}') goto yy257;
3576 if (yych >= 0x7F) goto yy256;3584 if (yych >= 0x7F) goto yy257;
3577 }3585 }
3578 }3586 }
3579 }3587 }
3580yy266:
3581 YYDEBUG(266, *YYCURSOR);
3582 yyleng = YYCURSOR - SCNG(yy_text);
3583#line 418 "Zend/zend_ini_scanner.l"
3584 { /* TRUE value (when used outside option value/offset this causes parse error!) */
3585 RETURN_TOKEN(BOOL_TRUE, "1", 1);
3586}
3587#line 3588 "Zend/zend_ini_scanner.c"
3588yy267:3588yy267:
3589 YYDEBUG(267, *YYCURSOR);3589 YYDEBUG(267, *YYCURSOR);
3590 ++YYCURSOR;3590 yyleng = YYCURSOR - SCNG(yy_text);
3591 YYFILL(1);3591#line 418 "Zend/zend_ini_scanner.l"
3592 yych = *YYCURSOR;3592 { /* TRUE value (when used outside option value/offset this causes parse error!) */
3593 RETURN_TOKEN(BOOL_TRUE, "1", 1);
3594}
3595#line 3596 "Zend/zend_ini_scanner.c"
3596yy268:
3593 YYDEBUG(268, *YYCURSOR);3597 YYDEBUG(268, *YYCURSOR);
3594 if (yybm[0+yych] & 16) {3598 ++YYCURSOR;
3595 goto yy267;3599 YYFILL(1);
3596 }3600 yych = *YYCURSOR;
3597 goto yy266;
3598yy269:
3599 YYDEBUG(269, *YYCURSOR);3601 YYDEBUG(269, *YYCURSOR);
3600 yyaccept = 4;3602 if (yybm[0+yych] & 16) {
3601 yych = *(YYMARKER = ++YYCURSOR);3603 goto yy268;
3602 if (yych <= '=') {
3603 if (yych <= '"') {
3604 if (yych <= '\n') {
3605 if (yych <= 0x00) goto yy249;
3606 if (yych <= 0x08) goto yy256;
3607 goto yy249;
3608 } else {
3609 if (yych == '\r') goto yy249;
3610 if (yych <= 0x1F) goto yy256;
3611 goto yy249;
3612 }
3613 } else {
3614 if (yych <= '9') {
3615 if (yych <= '%') goto yy256;
3616 if (yych <= ')') goto yy249;
3617 if (yych <= '/') goto yy256;
3618 goto yy257;
3619 } else {
3620 if (yych == ';') goto yy249;
3621 if (yych <= '<') goto yy256;
3622 goto yy249;
3623 }
3624 }
3625 } else {
3626 if (yych <= '`') {
3627 if (yych <= 'U') {
3628 if (yych <= '@') goto yy256;
3629 if (yych <= 'T') goto yy257;
3630 } else {
3631 if (yych <= 'Z') goto yy257;
3632 if (yych == '_') goto yy257;
3633 goto yy256;
3634 }
3635 } else {
3636 if (yych <= '{') {
3637 if (yych == 'u') goto yy270;
3638 if (yych <= 'z') goto yy257;
3639 goto yy256;
3640 } else {
3641 if (yych == '}') goto yy256;
3642 if (yych <= '~') goto yy249;
3643 goto yy256;
3644 }
3645 }
3646 }3604 }
3605 goto yy267;
3647yy270:3606yy270:
3648 YYDEBUG(270, *YYCURSOR);3607 YYDEBUG(270, *YYCURSOR);
3649 yyaccept = 4;3608 yyaccept = 4;
@@ -3651,46 +3610,45 @@
3651 if (yych <= '=') {3610 if (yych <= '=') {
3652 if (yych <= '"') {3611 if (yych <= '"') {
3653 if (yych <= '\n') {3612 if (yych <= '\n') {
3654 if (yych <= 0x00) goto yy249;3613 if (yych <= 0x00) goto yy250;
3655 if (yych <= 0x08) goto yy256;3614 if (yych <= 0x08) goto yy257;
3656 goto yy249;3615 goto yy250;
3657 } else {3616 } else {
3658 if (yych == '\r') goto yy249;3617 if (yych == '\r') goto yy250;
3659 if (yych <= 0x1F) goto yy256;3618 if (yych <= 0x1F) goto yy257;
3660 goto yy249;3619 goto yy250;
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches

to all changes: