summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark A. Hershberger <mah@debian.(none)>2009-03-25 00:35:28 -0400
committerMark A. Hershberger <mah@debian.(none)>2009-03-25 00:35:28 -0400
commitba50031707469046407a35b77a3cd81351e951b3 (patch)
tree5c03e723bdbfabae09d41a3ab1253dff41eeed4a
parent0a36161e13484a99ccf69bb38f206462d27cc6d6 (diff)
downloadphp-ba50031707469046407a35b77a3cd81351e951b3.tar.gz
Imported Upstream version 5.1.5upstream/5.1.5
-rw-r--r--.gdbinit301
-rw-r--r--EXTENSIONS10
-rw-r--r--Makefile.gcov2
-rw-r--r--Makefile.global10
-rw-r--r--NEWS297
-rw-r--r--README.CVS-RULES16
-rw-r--r--TSRM/TSRM.c46
-rw-r--r--TSRM/TSRM.h3
-rw-r--r--TSRM/tsrm_virtual_cwd.c58
-rw-r--r--TSRM/tsrm_virtual_cwd.h34
-rw-r--r--Zend/bench.php6
-rw-r--r--Zend/tests/bug29210.phpt8
-rwxr-xr-xZend/tests/bug36006.phpt30
-rwxr-xr-xZend/tests/bug36037.phpt14
-rwxr-xr-xZend/tests/bug36071.phpt13
-rwxr-xr-xZend/tests/bug36268.phpt14
-rwxr-xr-xZend/tests/bug36303.phpt12
-rwxr-xr-xZend/tests/bug36568.phpt15
-rw-r--r--Zend/tests/zend_strtod.phpt19
-rw-r--r--Zend/zend.c18
-rw-r--r--Zend/zend.h6
-rw-r--r--Zend/zend_API.c116
-rw-r--r--Zend/zend_API.h5
-rw-r--r--Zend/zend_arg_defs.c10
-rw-r--r--Zend/zend_builtin_functions.c29
-rw-r--r--Zend/zend_compile.c50
-rw-r--r--Zend/zend_compile.h6
-rw-r--r--Zend/zend_config.w32.h21
-rw-r--r--Zend/zend_constants.c35
-rw-r--r--Zend/zend_constants.h3
-rw-r--r--Zend/zend_execute.c18
-rw-r--r--Zend/zend_execute_API.c91
-rw-r--r--Zend/zend_hash.c36
-rw-r--r--Zend/zend_ini_parser.c1071
-rw-r--r--Zend/zend_ini_parser.h33
-rw-r--r--Zend/zend_ini_scanner.c12
-rw-r--r--Zend/zend_ini_scanner.l12
-rwxr-xr-xZend/zend_interfaces.c4
-rw-r--r--Zend/zend_language_parser.c1727
-rw-r--r--Zend/zend_language_parser.h33
-rw-r--r--Zend/zend_language_parser.y4
-rw-r--r--Zend/zend_language_scanner.c4
-rw-r--r--Zend/zend_language_scanner.l4
-rw-r--r--Zend/zend_modules.h3
-rw-r--r--Zend/zend_objects.c29
-rw-r--r--Zend/zend_objects.h4
-rw-r--r--Zend/zend_objects_API.c5
-rw-r--r--Zend/zend_opcode.c16
-rw-r--r--Zend/zend_operators.c56
-rw-r--r--Zend/zend_strtod.c18
-rw-r--r--Zend/zend_vm_def.h33
-rw-r--r--Zend/zend_vm_execute.h87
-rw-r--r--Zend/zend_vm_gen.php6
-rw-r--r--acinclude.m449
-rw-r--r--aclocal.m445
-rwxr-xr-xconfigure5034
-rw-r--r--configure.in11
-rw-r--r--ext/com_dotnet/com_com.c14
-rw-r--r--ext/com_dotnet/com_handlers.c14
-rw-r--r--ext/com_dotnet/com_iterator.c55
-rwxr-xr-xext/com_dotnet/com_persist.c1566
-rw-r--r--ext/com_dotnet/com_variant.c4
-rw-r--r--ext/com_dotnet/php_com_dotnet_internal.h6
-rwxr-xr-xext/com_dotnet/tests/27974.phpt86
-rw-r--r--ext/com_dotnet/tests/bug34272.phpt22
-rw-r--r--ext/curl/interface.c354
-rw-r--r--ext/curl/multi.c9
-rw-r--r--ext/curl/php_curl.h9
-rw-r--r--ext/curl/streams.c8
-rw-r--r--ext/date/lib/parse_date.c21374
-rw-r--r--ext/date/lib/parse_date.c.orig21528
-rw-r--r--ext/date/lib/parse_date.re146
-rw-r--r--ext/date/lib/parse_tz.c7
-rw-r--r--ext/date/lib/timelib.c17
-rw-r--r--ext/date/lib/timelib.h6
-rw-r--r--ext/date/lib/timelib_structs.h22
-rw-r--r--ext/date/lib/timezonedb.h1193
-rw-r--r--ext/date/lib/timezonemap.h19
-rw-r--r--ext/date/lib/tm2unixtime.c9
-rw-r--r--ext/date/php_date.c187
-rw-r--r--ext/date/php_date.h6
-rw-r--r--ext/date/tests/bug26317.phpt2
-rw-r--r--ext/date/tests/bug26320.phpt4
-rw-r--r--ext/date/tests/bug36224.phpt13
-rw-r--r--ext/date/tests/bug36510.phpt14
-rw-r--r--ext/date/tests/bug36599.phpt12
-rw-r--r--ext/date/tests/bug36988.phpt12
-rw-r--r--ext/date/tests/bug37017.phpt16
-rw-r--r--ext/dba/dba_db4.c20
-rwxr-xr-xext/dba/tests/bug36436.phpt34
-rw-r--r--ext/dbase/dbf_head.c11
-rw-r--r--ext/dom/attr.c4
-rw-r--r--ext/dom/dom_iterators.c24
-rw-r--r--ext/dom/domimplementation.c8
-rw-r--r--ext/dom/element.c4
-rw-r--r--ext/dom/namednodemap.c56
-rw-r--r--ext/dom/node.c4
-rw-r--r--ext/dom/notation.c16
-rw-r--r--ext/dom/php_dom.c18
-rw-r--r--ext/dom/tests/bug36756.phpt35
-rw-r--r--ext/dom/tests/bug37277.phpt25
-rw-r--r--ext/dom/tests/dom007.phpt99
-rw-r--r--ext/exif/exif.c6
-rw-r--r--ext/fbsql/php_fbsql.c62
-rw-r--r--ext/fbsql/php_fbsql.h36
-rw-r--r--ext/ftp/ftp.c10
-rw-r--r--ext/gd/gd.c73
-rw-r--r--ext/gd/gd_ctx.c18
-rw-r--r--ext/gd/libgd/gd.c2
-rw-r--r--ext/gd/libgd/gd.h10
-rw-r--r--ext/gd/libgd/gd_gd2.c4
-rw-r--r--ext/gd/libgd/gd_gif_in.c39
-rw-r--r--ext/gd/libgd/gd_gif_out.c6
-rw-r--r--ext/gd/libgd/gd_jpeg.c62
-rw-r--r--ext/gd/libgd/gd_png.c21
-rw-r--r--ext/gd/tests/bug36697.phpt31
-rw-r--r--ext/gd/tests/bug37346.gif4
-rw-r--r--ext/gd/tests/bug37346.phpt13
-rw-r--r--ext/gd/tests/bug37360.gifbin0 -> 65646 bytes
-rw-r--r--ext/gd/tests/bug37360.phpt14
-rw-r--r--ext/gettext/config.w324
-rw-r--r--ext/hash/config.m44
-rw-r--r--ext/hash/config.w324
-rw-r--r--ext/hash/hash_adler32.c6
-rw-r--r--ext/hash/hash_tiger.c45
-rw-r--r--ext/hash/php_hash.h4
-rw-r--r--ext/hash/php_hash_types.h6
-rw-r--r--ext/iconv/iconv.c38
-rw-r--r--ext/iconv/php_iconv.h4
-rw-r--r--ext/iconv/tests/bug37176.phpt10
-rw-r--r--ext/imap/php_imap.c124
-rw-r--r--ext/imap/php_imap.h5
-rw-r--r--ext/informix/config.m44
-rw-r--r--ext/informix/ifx.ec43
-rw-r--r--ext/mbstring/config.m44
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfilter.c18
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfilter.h1
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfl_convert.c4
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfl_convert.h1
-rw-r--r--ext/mbstring/mbstring.c265
-rw-r--r--ext/mbstring/mbstring.h4
-rw-r--r--ext/mhash/mhash.c4
-rw-r--r--ext/ming/ming.c52
-rw-r--r--ext/msession/CREDITS3
-rw-r--r--ext/msession/README33
-rw-r--r--ext/msession/config.m436
-rw-r--r--ext/msession/msession-test.php125
-rw-r--r--ext/msession/msession.c1375
-rw-r--r--ext/msession/msession.php10
-rw-r--r--ext/msession/php_msession.h106
-rw-r--r--ext/msession/reqclient.h171
-rw-r--r--ext/mssql/php_mssql.c7
-rwxr-xr-xext/mysql/tests/001.phpt7
-rw-r--r--ext/mysqli/mysqli.c62
-rw-r--r--ext/mysqli/mysqli_api.c197
-rw-r--r--ext/mysqli/mysqli_driver.c1
-rw-r--r--ext/mysqli/mysqli_nonapi.c20
-rw-r--r--ext/mysqli/mysqli_prop.c169
-rw-r--r--ext/mysqli/mysqli_repl.c22
-rw-r--r--ext/mysqli/mysqli_warning.c8
-rw-r--r--ext/mysqli/php_mysqli.h65
-rw-r--r--ext/mysqli/tests/002.phpt1
-rw-r--r--ext/mysqli/tests/014.phpt5
-rw-r--r--ext/mysqli/tests/015.phpt3
-rw-r--r--ext/mysqli/tests/017.phpt6
-rw-r--r--ext/mysqli/tests/045.phpt6
-rw-r--r--ext/mysqli/tests/049.phpt10
-rw-r--r--ext/mysqli/tests/bug34810.phpt5
-rw-r--r--ext/mysqli/tests/bug36420.phpt25
-rw-r--r--ext/mysqli/tests/bug36745.phpt23
-rw-r--r--ext/mysqli/tests/bug36802.phpt42
-rw-r--r--ext/mysqli/tests/connect.inc6
-rw-r--r--ext/oci8/config.m415
-rw-r--r--ext/oci8/config.w329
-rw-r--r--ext/oci8/oci8.c61
-rw-r--r--ext/oci8/oci8_interface.c32
-rw-r--r--ext/oci8/oci8_lob.c91
-rw-r--r--ext/oci8/oci8_statement.c28
-rw-r--r--ext/oci8/php_oci8_int.h6
-rw-r--r--ext/oci8/tests/bind_empty.phpt4
-rw-r--r--ext/oci8/tests/bind_long.phpt38
-rw-r--r--ext/oci8/tests/bind_long_raw.phpt38
-rw-r--r--ext/oci8/tests/bind_raw.phpt39
-rw-r--r--ext/oci8/tests/bug36010.phpt26
-rw-r--r--ext/oci8/tests/bug36096.phpt28
-rw-r--r--ext/oci8/tests/cursors.phpt10
-rw-r--r--ext/oci8/tests/debug.phpt18
-rw-r--r--ext/oci8/tests/error1.phpt13
-rw-r--r--ext/oci8/tests/exec_fetch.phpt5
-rw-r--r--ext/oci8/tests/fetch_array.phpt96
-rw-r--r--ext/oci8/tests/fetch_assoc.phpt24
-rw-r--r--ext/oci8/tests/fetch_object.phpt26
-rw-r--r--ext/oci8/tests/fetch_row.phpt24
-rw-r--r--ext/oci8/tests/field_funcs.phpt4
-rw-r--r--ext/oci8/tests/field_funcs1.phpt2
-rw-r--r--ext/oci8/tests/field_funcs_old.phpt2
-rw-r--r--ext/oci8/tests/lob_001.phptbin1256 -> 1305 bytes
-rw-r--r--ext/oci8/tests/lob_011.phpt4
-rw-r--r--ext/oci8/tests/lob_019.phptbin0 -> 1548 bytes
-rw-r--r--ext/oci8/tests/lob_020.phptbin0 -> 1597 bytes
-rw-r--r--ext/oci8/tests/select_null.phpt4
-rw-r--r--ext/oci8/tests/test.gifbin0 -> 2523 bytes
-rw-r--r--ext/openssl/openssl.c7
-rw-r--r--ext/openssl/xp_ssl.c59
-rw-r--r--ext/pcre/config.w326
-rw-r--r--ext/pcre/config0.m46
-rw-r--r--ext/pcre/pcrelib/ChangeLog284
-rw-r--r--ext/pcre/pcrelib/LICENCE2
-rw-r--r--ext/pcre/pcrelib/NEWS22
-rw-r--r--ext/pcre/pcrelib/NON-UNIX-USE36
-rw-r--r--ext/pcre/pcrelib/README41
-rw-r--r--ext/pcre/pcrelib/dftables.c2
-rw-r--r--ext/pcre/pcrelib/doc/Tech.Notes7
-rw-r--r--ext/pcre/pcrelib/doc/pcre.txt1345
-rw-r--r--ext/pcre/pcrelib/pcre.def12
-rw-r--r--ext/pcre/pcrelib/pcre.h60
-rw-r--r--ext/pcre/pcrelib/pcre_compile.c287
-rw-r--r--ext/pcre/pcrelib/pcre_config.c8
-rw-r--r--ext/pcre/pcrelib/pcre_dfa_exec.c225
-rw-r--r--ext/pcre/pcrelib/pcre_exec.c465
-rw-r--r--ext/pcre/pcrelib/pcre_fullinfo.c4
-rw-r--r--ext/pcre/pcrelib/pcre_get.c2
-rw-r--r--ext/pcre/pcrelib/pcre_globals.c2
-rw-r--r--ext/pcre/pcrelib/pcre_info.c4
-rw-r--r--ext/pcre/pcrelib/pcre_internal.h99
-rw-r--r--ext/pcre/pcrelib/pcre_maketables.c33
-rw-r--r--ext/pcre/pcrelib/pcre_ord2utf8.c4
-rw-r--r--ext/pcre/pcrelib/pcre_printint.src (renamed from ext/pcre/pcrelib/pcre_printint.c)45
-rw-r--r--ext/pcre/pcrelib/pcre_refcount.c4
-rw-r--r--ext/pcre/pcrelib/pcre_scanner.cc8
-rw-r--r--ext/pcre/pcrelib/pcre_scanner_unittest.cc1
-rw-r--r--ext/pcre/pcrelib/pcre_study.c4
-rw-r--r--ext/pcre/pcrelib/pcre_tables.c150
-rw-r--r--ext/pcre/pcrelib/pcre_try_flipped.c4
-rw-r--r--ext/pcre/pcrelib/pcre_ucp_findchar.c53
-rw-r--r--ext/pcre/pcrelib/pcre_ucp_searchfuncs.c175
-rw-r--r--ext/pcre/pcrelib/pcre_valid_utf8.c4
-rw-r--r--ext/pcre/pcrelib/pcre_version.c9
-rw-r--r--ext/pcre/pcrelib/pcre_xclass.c45
-rw-r--r--ext/pcre/pcrelib/pcrecpp.cc19
-rw-r--r--ext/pcre/pcrelib/pcrecpp.h163
-rw-r--r--ext/pcre/pcrelib/pcrecpp_unittest.cc61
-rw-r--r--ext/pcre/pcrelib/pcrecpparg.h171
-rw-r--r--ext/pcre/pcrelib/pcregrep.c991
-rw-r--r--ext/pcre/pcrelib/pcreposix.c45
-rw-r--r--ext/pcre/pcrelib/pcreposix.h58
-rw-r--r--ext/pcre/pcrelib/pcretest.c193
-rw-r--r--ext/pcre/pcrelib/testdata/grepinput22
-rw-r--r--ext/pcre/pcrelib/testdata/greplist5
-rw-r--r--ext/pcre/pcrelib/testdata/grepoutput128
-rw-r--r--ext/pcre/pcrelib/testdata/testinput240
-rw-r--r--ext/pcre/pcrelib/testdata/testinput326
-rw-r--r--ext/pcre/pcrelib/testdata/testinput43
-rw-r--r--ext/pcre/pcrelib/testdata/testinput55
-rw-r--r--ext/pcre/pcrelib/testdata/testinput6224
-rw-r--r--ext/pcre/pcrelib/testdata/testinput712
-rw-r--r--ext/pcre/pcrelib/testdata/testinput9217
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput12
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput2236
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput356
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput46
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput5207
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput6434
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput719
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput82
-rw-r--r--ext/pcre/pcrelib/testdata/testoutput9397
-rw-r--r--ext/pcre/pcrelib/ucp.h76
-rw-r--r--ext/pcre/pcrelib/ucp_findchar.c160
-rw-r--r--ext/pcre/pcrelib/ucpinternal.h116
-rw-r--r--ext/pcre/pcrelib/ucptable.c18065
-rw-r--r--ext/pcre/php_pcre.c24
-rw-r--r--ext/pcre/tests/bug26927.phpt2
-rwxr-xr-xext/pdo/CREDITS3
-rw-r--r--ext/pdo/package2.xml19
-rwxr-xr-xext/pdo/pdo_dbh.c55
-rw-r--r--ext/pdo/pdo_sql_parser.c22
-rw-r--r--ext/pdo/pdo_sql_parser.c.orig22
-rw-r--r--ext/pdo/pdo_sql_parser.re20
-rwxr-xr-xext/pdo/pdo_stmt.c108
-rwxr-xr-xext/pdo/php_pdo_driver.h8
-rw-r--r--ext/pdo/tests/bug_35671.phpt45
-rw-r--r--ext/pdo/tests/pdo_011.phpt66
-rw-r--r--ext/pdo/tests/pdo_014.phpt2
-rwxr-xr-xext/pdo/tests/pdo_031.phpt2
-rw-r--r--ext/pdo_dblib/package2.xml4
-rw-r--r--ext/pdo_firebird/package2.xml4
-rwxr-xr-xext/pdo_mysql/CREDITS5
-rwxr-xr-xext/pdo_mysql/config.m47
-rwxr-xr-xext/pdo_mysql/mysql_driver.c61
-rwxr-xr-xext/pdo_mysql/mysql_statement.c33
-rw-r--r--ext/pdo_mysql/package2.xml12
-rwxr-xr-xext/pdo_mysql/pdo_mysql.c4
-rwxr-xr-xext/pdo_mysql/php_pdo_mysql_int.h6
-rwxr-xr-xext/pdo_oci/config.m410
-rwxr-xr-xext/pdo_oci/oci_statement.c6
-rw-r--r--ext/pdo_oci/package2.xml7
-rw-r--r--ext/pdo_oci/tests/bug_33707.phpt3
-rwxr-xr-xext/pdo_odbc/config.m44
-rwxr-xr-xext/pdo_odbc/odbc_driver.c24
-rwxr-xr-xext/pdo_odbc/odbc_stmt.c10
-rw-r--r--ext/pdo_odbc/package2.xml6
-rwxr-xr-xext/pdo_odbc/php_pdo_odbc_int.h6
-rw-r--r--ext/pdo_pgsql/config.w327
-rw-r--r--ext/pdo_pgsql/package2.xml16
-rw-r--r--ext/pdo_pgsql/pdo_pgsql.c12
-rw-r--r--ext/pdo_pgsql/pgsql_driver.c42
-rw-r--r--ext/pdo_pgsql/pgsql_statement.c10
-rw-r--r--ext/pdo_pgsql/tests/bug36727.phpt23
-rw-r--r--ext/pdo_sqlite/config.m45
-rw-r--r--ext/pdo_sqlite/package2.xml8
-rw-r--r--ext/pgsql/pgsql.c11
-rwxr-xr-xext/pgsql/tests/80_bug36625.phpt49
-rw-r--r--ext/posix/CREDITS2
-rw-r--r--ext/reflection/php_reflection.c335
-rwxr-xr-xext/reflection/tests/001.phpt2
-rwxr-xr-xext/reflection/tests/002.phpt2
-rwxr-xr-xext/reflection/tests/003.phpt4
-rwxr-xr-xext/reflection/tests/004.phpt4
-rwxr-xr-xext/reflection/tests/005.phpt2
-rwxr-xr-xext/reflection/tests/006.phpt2
-rwxr-xr-xext/reflection/tests/007.phpt162
-rwxr-xr-xext/reflection/tests/bug26640.phpt4
-rwxr-xr-xext/reflection/tests/bug26695.phpt4
-rwxr-xr-xext/reflection/tests/bug29268.phpt9
-rwxr-xr-xext/reflection/tests/bug29523.phpt4
-rwxr-xr-xext/reflection/tests/bug29828.phpt4
-rw-r--r--ext/reflection/tests/bug29986.phpt41
-rwxr-xr-xext/reflection/tests/bug30146.phpt4
-rwxr-xr-xext/reflection/tests/bug30148.phpt4
-rwxr-xr-xext/reflection/tests/bug30209.phpt4
-rwxr-xr-xext/reflection/tests/bug30856.phpt4
-rwxr-xr-xext/reflection/tests/bug30961.phpt4
-rwxr-xr-xext/reflection/tests/bug31651.phpt4
-rwxr-xr-xext/reflection/tests/bug32981.phpt4
-rwxr-xr-xext/reflection/tests/bug33312.phpt4
-rwxr-xr-xext/reflection/tests/bug33389.phpt4
-rwxr-xr-xext/reflection/tests/bug36308.phpt22
-rw-r--r--ext/reflection/tests/bug36337.phpt30
-rw-r--r--ext/reflection/tests/bug36434.phpt33
-rwxr-xr-xext/reflection/tests/parameters_001.phpt4
-rwxr-xr-xext/reflection/tests/parameters_002.phpt209
-rwxr-xr-xext/reflection/tests/property_exists.phpt4
-rwxr-xr-xext/reflection/tests/static_properties_002.phpt4
-rw-r--r--ext/session/mod_files.c10
-rw-r--r--ext/session/php_session.h8
-rw-r--r--ext/session/session.c18
-rw-r--r--ext/session/tests/bug36459.phpt41
-rw-r--r--ext/simplexml/php_simplexml.h17
-rw-r--r--ext/simplexml/simplexml.c488
-rwxr-xr-xext/simplexml/tests/009b.phpt35
-rwxr-xr-xext/simplexml/tests/026.phpt40
-rwxr-xr-xext/simplexml/tests/027.phpt74
-rwxr-xr-xext/simplexml/tests/028.phpt42
-rwxr-xr-xext/simplexml/tests/029.phpt40
-rw-r--r--ext/simplexml/tests/030.phpt44
-rw-r--r--ext/simplexml/tests/031.phpt57
-rwxr-xr-xext/simplexml/tests/032.phpt45
-rwxr-xr-xext/simplexml/tests/033.phpt137
-rwxr-xr-xext/simplexml/tests/bug35785.phpt25
-rw-r--r--ext/simplexml/tests/bug36611.phpt28
-rw-r--r--ext/soap/php_encoding.c169
-rw-r--r--ext/soap/php_encoding.h4
-rw-r--r--ext/soap/php_http.c52
-rw-r--r--ext/soap/php_schema.c131
-rw-r--r--ext/soap/php_schema.h8
-rw-r--r--ext/soap/php_sdl.c1114
-rw-r--r--ext/soap/php_sdl.h7
-rw-r--r--ext/soap/php_soap.h20
-rw-r--r--ext/soap/soap.c383
-rw-r--r--ext/soap/tests/bugs/bug30045.phpt2
-rwxr-xr-xext/soap/tests/bugs/bug35142.phpt20
-rwxr-xr-xext/soap/tests/bugs/bug36226.phpt139
-rwxr-xr-xext/soap/tests/bugs/bug36575.phpt52
-rwxr-xr-xext/soap/tests/bugs/bug36575.wsdl87
-rwxr-xr-xext/soap/tests/bugs/bug36614.phpt13
-rwxr-xr-xext/soap/tests/bugs/bug36614.wsdl204
-rwxr-xr-xext/soap/tests/bugs/bug36629.phpt53
-rwxr-xr-xext/soap/tests/bugs/bug36908.phpt46
-rwxr-xr-xext/soap/tests/bugs/bug36908.wsdl51
-rwxr-xr-xext/soap/tests/bugs/bug37083.phpt58
-rwxr-xr-xext/soap/tests/bugs/bug37083.wsdl99
-rwxr-xr-xext/soap/tests/bugs/bug37278.phpt24
-rwxr-xr-xext/soap/tests/classmap003.phpt54
-rwxr-xr-xext/soap/tests/classmap003.wsdl51
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt1
-rw-r--r--ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phptbin1045 -> 1072 bytes
-rw-r--r--ext/soap/tests/schema/schema075.phpt2
-rw-r--r--ext/soap/tests/schema/schema076.phpt2
-rw-r--r--ext/soap/tests/schema/schema077.phpt2
-rw-r--r--ext/soap/tests/schema/schema078.phpt2
-rw-r--r--ext/soap/tests/schema/schema079.phpt2
-rw-r--r--ext/soap/tests/schema/schema080.phpt2
-rw-r--r--ext/soap/tests/server017.phpt1
-rw-r--r--ext/soap/tests/server018.phpt1
-rwxr-xr-xext/soap/tests/server022.phpt1
-rwxr-xr-xext/soap/tests/server023.phpt37
-rwxr-xr-xext/soap/tests/server024.phpt49
-rwxr-xr-xext/soap/tests/server025.phpt46
-rwxr-xr-xext/soap/tests/server025.wsdl55
-rw-r--r--ext/soap/tests/soap12/T63.phpt1
-rw-r--r--ext/sockets/sockets.c2
-rwxr-xr-xext/spl/doxygen.cfg4
-rw-r--r--ext/spl/examples/directorygraphiterator.inc11
-rw-r--r--ext/spl/examples/directorytreeiterator.inc9
-rwxr-xr-xext/spl/internal/iteratoriterator.inc2
-rwxr-xr-xext/spl/php_spl.c67
-rwxr-xr-xext/spl/spl.php131
-rwxr-xr-xext/spl/spl_array.c123
-rwxr-xr-xext/spl/spl_directory.c267
-rwxr-xr-xext/spl/spl_directory.h20
-rwxr-xr-xext/spl/spl_engine.c16
-rwxr-xr-xext/spl/spl_engine.h6
-rwxr-xr-xext/spl/spl_functions.c6
-rwxr-xr-xext/spl/spl_iterators.c223
-rwxr-xr-xext/spl/spl_iterators.h6
-rwxr-xr-xext/spl/spl_observer.c11
-rwxr-xr-xext/spl/spl_sxe.c54
-rwxr-xr-xext/spl/tests/array_017.phpt2
-rwxr-xr-xext/spl/tests/array_019.phpt32
-rwxr-xr-xext/spl/tests/array_020.phpt66
-rwxr-xr-xext/spl/tests/array_021.phpt31
-rwxr-xr-xext/spl/tests/array_022.phpt94
-rw-r--r--ext/spl/tests/bug34548.phpt2
-rw-r--r--ext/spl/tests/bug36258.phpt21
-rwxr-xr-xext/spl/tests/bug36287.phpt40
-rw-r--r--ext/spl/tests/bug36825.phpt33
-rwxr-xr-xext/spl/tests/bug36941.phpt46
-rwxr-xr-xext/spl/tests/iterator_012.phpt2
-rwxr-xr-xext/spl/tests/iterator_019.phpt2
-rwxr-xr-xext/spl/tests/iterator_030.phpt46
-rwxr-xr-xext/spl/tests/iterator_031.phpt118
-rwxr-xr-xext/spl/tests/iterator_032.phpt52
-rwxr-xr-xext/spl/tests/iterator_033.phpt46
-rwxr-xr-xext/spl/tests/iterator_034.phpt190
-rw-r--r--ext/spl/tests/iterator_035.phpt17
-rwxr-xr-xext/spl/tests/spl_autoload_008.phpt131
-rwxr-xr-xext/spl/tests/sxe_005.phpt46
-rw-r--r--ext/sqlite/sqlite.c15
-rw-r--r--ext/standard/array.c42
-rw-r--r--ext/standard/basic_functions.c71
-rw-r--r--ext/standard/basic_functions.h9
-rw-r--r--ext/standard/crc32.c15
-rw-r--r--ext/standard/credits.c6
-rw-r--r--ext/standard/credits_ext.h9
-rw-r--r--ext/standard/cyr_convert.c6
-rw-r--r--ext/standard/dir.c4
-rw-r--r--ext/standard/exec.c6
-rw-r--r--ext/standard/file.c27
-rw-r--r--ext/standard/file.h3
-rw-r--r--ext/standard/filestat.c116
-rw-r--r--ext/standard/filters.c123
-rw-r--r--ext/standard/ftp_fopen_wrapper.c4
-rw-r--r--ext/standard/html.c4
-rw-r--r--ext/standard/http.c17
-rw-r--r--ext/standard/http_fopen_wrapper.c16
-rw-r--r--ext/standard/incomplete_class.c6
-rw-r--r--ext/standard/info.c40
-rw-r--r--ext/standard/math.c4
-rw-r--r--ext/standard/pack.c8
-rw-r--r--ext/standard/php_array.h13
-rw-r--r--ext/standard/php_ext_syslog.h3
-rw-r--r--ext/standard/php_filestat.h8
-rw-r--r--ext/standard/php_fopen_wrapper.c24
-rw-r--r--ext/standard/php_incomplete_class.h6
-rw-r--r--ext/standard/php_math.h5
-rw-r--r--ext/standard/php_smart_str.h2
-rw-r--r--ext/standard/reg.c4
-rw-r--r--ext/standard/scanf.c28
-rw-r--r--ext/standard/streamsfuncs.c16
-rw-r--r--ext/standard/string.c48
-rw-r--r--ext/standard/syslog.c28
-rw-r--r--ext/standard/tests/array/array_chunk2.phpt146
-rwxr-xr-xext/standard/tests/array/array_combine.phpt122
-rw-r--r--ext/standard/tests/array/array_count_values2.phpt43
-rwxr-xr-xext/standard/tests/array/array_diff_assoc.phpt49
-rw-r--r--ext/standard/tests/array/array_diff_key2.phpt44
-rw-r--r--ext/standard/tests/file/bug24313.phpt2
-rw-r--r--ext/standard/tests/file/bug37158.phpt39
-rw-r--r--ext/standard/tests/file/userstreams.phpt6
-rw-r--r--ext/standard/tests/filters/read.phpt72
-rwxr-xr-xext/standard/tests/general_functions/bug35229.phpt2
-rwxr-xr-xext/standard/tests/general_functions/bug36011.phpt46
-rw-r--r--ext/standard/tests/math/bug21523.phpt3
-rw-r--r--ext/standard/tests/strings/bug33605.phpt11
-rw-r--r--ext/standard/tests/strings/bug36148.phpt29
-rw-r--r--ext/standard/tests/strings/bug36306.phpt15
-rw-r--r--ext/standard/tests/strings/bug36944.phpt26
-rw-r--r--ext/standard/tests/strings/substr_compare.phpt39
-rw-r--r--ext/standard/tests/strings/url_t.phpt7
-rw-r--r--ext/standard/url.c8
-rw-r--r--ext/standard/url_scanner_ex.c713
-rw-r--r--ext/standard/url_scanner_ex.c.orig781
-rw-r--r--ext/standard/url_scanner_ex.re6
-rw-r--r--ext/standard/user_filters.c21
-rw-r--r--ext/standard/var.c48
-rw-r--r--ext/tidy/php_tidy.def1
-rw-r--r--ext/tidy/tidy.c42
-rw-r--r--ext/tokenizer/tests/002.phpt196
-rw-r--r--ext/tokenizer/tests/003.phpt4
-rw-r--r--ext/tokenizer/tests/bug26463.phpt28
-rw-r--r--ext/wddx/wddx.c17
-rw-r--r--ext/xml/xml.c5
-rw-r--r--ext/xmlreader/php_xmlreader.c79
-rw-r--r--ext/xmlreader/tests/011.phpt34
-rwxr-xr-xext/xmlreader/tests/012.dtd2
-rwxr-xr-xext/xmlreader/tests/012.phpt69
-rwxr-xr-xext/xmlreader/tests/012.xml3
-rw-r--r--ext/xmlreader/tests/bug36743.phpt25
-rw-r--r--ext/xmlrpc/tests/bug37057.phpt62
-rw-r--r--ext/xmlrpc/tests/bug38431.phpt25
-rw-r--r--ext/xmlrpc/xmlrpc-epi-php.c10
-rw-r--r--ext/xmlwriter/CREDITS3
-rw-r--r--ext/xmlwriter/php_xmlwriter.c27
-rw-r--r--ext/xsl/php_xsl.c10
-rw-r--r--ext/xsl/xsltprocessor.c5
-rw-r--r--generated_lists2
-rw-r--r--main/build-defs.h.in4
-rw-r--r--main/config.w32.h48
-rw-r--r--main/fopen_wrappers.c10
-rw-r--r--main/internal_functions_win32.c37
-rw-r--r--main/logos.h1740
-rw-r--r--main/main.c51
-rw-r--r--main/network.c8
-rw-r--r--main/output.c6
-rw-r--r--main/php.h6
-rw-r--r--main/php_compat.h10
-rw-r--r--main/php_config.h.in24
-rw-r--r--main/php_open_temporary_file.c11
-rw-r--r--main/php_variables.c137
-rw-r--r--main/php_variables.h3
-rw-r--r--main/php_version.h4
-rw-r--r--main/snprintf.c5
-rw-r--r--main/spprintf.c5
-rw-r--r--main/streams/filter.c6
-rw-r--r--main/streams/memory.c4
-rw-r--r--main/streams/php_streams_int.h3
-rw-r--r--main/streams/plain_wrapper.c23
-rwxr-xr-xmain/streams/streams.c49
-rw-r--r--main/streams/userspace.c9
-rw-r--r--main/streams/xp_socket.c4
-rwxr-xr-xmakedist11
-rw-r--r--pear/Makefile.frag2
-rw-r--r--pear/install-pear-nozlib.phar7474
-rw-r--r--php.gifbin3872 -> 2523 bytes
-rw-r--r--php.ini-dist20
-rw-r--r--php.ini-recommended20
-rwxr-xr-xrun-tests.php177
-rw-r--r--sapi/apache/mod_php5.c28
-rw-r--r--sapi/apache/php_apache.c7
-rw-r--r--sapi/apache2filter/apache_config.c19
-rw-r--r--sapi/apache2filter/sapi_apache2.c6
-rw-r--r--sapi/apache2handler/apache_config.c16
-rw-r--r--sapi/apache2handler/sapi_apache2.c12
-rw-r--r--sapi/cgi/cgi_main.c113
-rw-r--r--sapi/cgi/config.w325
-rw-r--r--sapi/cgi/config9.m411
-rw-r--r--sapi/cgi/fastcgi.c955
-rw-r--r--sapi/cgi/fastcgi.h185
-rw-r--r--sapi/cli/config.m44
-rw-r--r--sapi/cli/php.1.in2
-rw-r--r--sapi/cli/php_cli.c26
-rw-r--r--sapi/isapi/php5isapi.c18
-rw-r--r--sapi/webjames/webjames.c9
-rw-r--r--scripts/phpize.m42
-rwxr-xr-xserver-tests.php20
-rw-r--r--tests/basic/013.phpt15
-rw-r--r--tests/basic/014.phpt17
-rw-r--r--tests/basic/015.phpt15
-rw-r--r--tests/basic/016.phpt17
-rw-r--r--tests/basic/017.phpt19
-rw-r--r--tests/basic/018.phpt36
-rw-r--r--tests/basic/019.phpt19
-rw-r--r--tests/basic/020.phpt17
-rw-r--r--tests/basic/021.phpt42
-rw-r--r--win32/build/config.w322
-rw-r--r--win32/build/config.w32.h.in9
-rw-r--r--win32/build/template.rc4
-rw-r--r--win32/php5dllts.dsp446
-rw-r--r--win32/select.c14
-rw-r--r--win32/sendmail.c6
-rw-r--r--win32/wsyslog.c11
634 files changed, 61084 insertions, 49243 deletions
diff --git a/.gdbinit b/.gdbinit
index 7c58e86fd..067613fba 100644
--- a/.gdbinit
+++ b/.gdbinit
@@ -1,8 +1,7 @@
-set $zts = 0
-
define ____executor_globals
- if $zts
- set $eg = ((zend_executor_globals) (*((void ***) tsrm_ls))[executor_globals_id-1])
+ if basic_functions_module.zts
+ set $tsrm_ls = ts_resource_ex(0, 0)
+ set $eg = ((zend_executor_globals) (*((void ***) $tsrm_ls))[executor_globals_id-1])
else
set $eg = executor_globals
end
@@ -10,7 +9,7 @@ end
document ____executor_globals
portable way of accessing executor_globals
- type "set $zts = 1" if you use --enable-maintainer-zts on your configure line
+ ZTS detection is automatically based on ext/standard module struct
end
define dump_bt
@@ -44,55 +43,33 @@ document printzv
end
define ____printzv_contents
- ____executor_globals
set $zvalue = $arg0
+ set $type = $zvalue->type
- if $zvalue.type == 0
- set $typename = "NULL"
- end
- if $zvalue.type == 1
- set $typename = "long"
- end
- if $zvalue.type == 2
- set $typename = "double"
- end
- if $zvalue.type == 3
- set $typename = "string"
- end
- if $zvalue.type == 4
- set $typename = "array"
+ printf "(refcount=%d) ", $zvalue->refcount
+ if $type == 0
+ printf "NULL"
end
- if $zvalue.type == 5
- set $typename = "object"
- end
- if $zvalue.type == 6
- set $typename = "bool"
- end
- if $zvalue.type == 7
- set $typename = "resource"
- end
- if $zvalue.type == 8
- set $typename = "constant"
- end
- if $zvalue.type == 9
- set $typename = "const_array"
- end
-
- printf "(refcount=%d) %s: ", $zvalue.refcount, $typename
- if $zvalue.type == 1
- printf "%ld", $zvalue.value.lval
+ if $type == 1
+ printf "long: %ld", $zvalue->value.lval
end
- if $zvalue->type == 2
- printf "%lf", $zvalue.value.dval
+ if $type == 2
+ printf "double: %lf", $zvalue->value.dval
end
- if $zvalue.type == 3
- printf "\"%s\"(%d)", $zvalue.value.str.val, $zvalue.value.str.len
+ if $type == 3
+ printf "bool: "
+ if $zvalue->value.lval
+ printf "true"
+ else
+ printf "false"
+ end
end
- if $zvalue.type == 4
+ if $type == 4
+ printf "array(%d): ", $zvalue->value.ht->nNumOfElements
if ! $arg1
printf "{\n"
set $ind = $ind + 1
- ____print_ht $zvalue.value.ht
+ ____print_ht $zvalue->value.ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
@@ -101,34 +78,61 @@ define ____printzv_contents
end
printf "}"
end
- end
- if $zvalue.type == 5
+ set $type = 0
+ end
+ if $type == 5
+ printf "object"
+ ____executor_globals
+ set $handle = $zvalue->value.obj.handle
+ set $handlers = $zvalue->value.obj.handlers
+ if basic_functions_module.zts
+ set $zobj = zend_objects_get_address($zvalue, $tsrm_ls)
+ else
+ set $zobj = zend_objects_get_address($zvalue)
+ end
+ if $handlers->get_class_entry == &zend_std_object_get_class
+ set $cname = $zobj->ce.name
+ else
+ set $cname = "Unknown"
+ end
+ printf "(%s) #%d", $cname, $handle
if ! $arg1
- printf "(prop examination disabled due to a gdb bug)"
- if $zvalue.value.obj.handlers->get_properties
-# set $ht = $zvalue->value.obj.handlers->get_properties($zvalue)
-# printf "{\n"
-# set $ind = $ind + 1
-# ____print_ht $ht
-# set $ind = $ind - 1
-# set $i = $ind
-# while $i > 0
-# printf " "
-# set $i = $i - 1
-# end
-# printf "}"
+ if $handlers->get_properties == &zend_std_get_properties
+ set $ht = $zobj->properties
+ if $ht
+ printf "(%d): ", $ht->nNumOfElements
+ printf "{\n"
+ set $ind = $ind + 1
+ ____print_ht $ht
+ set $ind = $ind - 1
+ set $i = $ind
+ while $i > 0
+ printf " "
+ set $i = $i - 1
+ end
+ printf "}"
+ else
+ echo "no properties found"
+ end
end
end
+ set $type = 0
end
- if $zvalue.type == 6
- if $zvalue.value.lval
- printf "true"
- else
- printf "false"
- end
+ if $type == 6
+ printf "string(%d): ", $zvalue->value.str.len
+ ____print_str $zvalue->value.str.val $zvalue->value.str.len
+ end
+ if $type == 7
+ printf "resource: #%d", $zvalue->value.lval
+ end
+ if $type == 8
+ printf "constant"
end
- if $zvalue.type == 7
- printf "#%d", $zvalue.value.lval
+ if $type == 9
+ printf "const_array"
+ end
+ if $type > 9
+ printf "unknown type %d", $type
end
printf "\n"
end
@@ -143,7 +147,7 @@ define ____printzv
printf "*uninitialized* "
end
- set $zcontents = *(struct _zval_struct *) $zvalue
+ set $zcontents = (zval*) $zvalue
if $arg1
____printzv_contents $zcontents $arg1
else
@@ -156,7 +160,7 @@ define ____print_const_table
set $p = $ht->pListHead
while $p != 0
- set $const = *(zend_constant *) $p->pData
+ set $const = (zend_constant *) $p->pData
set $i = $ind
while $i > 0
@@ -164,13 +168,14 @@ define ____print_const_table
set $i = $i - 1
end
- if $p->nKeyLength > 0
- printf "\"%s\" => ", $p->arKey
+ if $p->nKeyLength > 0
+ ____print_str $p->arKey $p->nKeyLength
+ printf " => "
else
printf "%d => ", $p->h
end
- ____printzv_contents $const.value 0
+ ____printzv_contents &$const->value 0
set $p = $p->pListNext
end
end
@@ -187,7 +192,7 @@ define ____print_ht
set $p = $ht->pListHead
while $p != 0
- set $zval = *(struct _zval_struct **)$p->pData
+ set $zval = *(zval **)$p->pData
set $i = $ind
while $i > 0
@@ -195,8 +200,9 @@ define ____print_ht
set $i = $i - 1
end
- if $p->nKeyLength > 0
- printf "\"%s\" => ", $p->arKey
+ if $p->nKeyLength > 0
+ ____print_str $p->arKey $p->nKeyLength
+ printf " => "
else
printf "%d => ", $p->h
end
@@ -217,6 +223,149 @@ document print_ht
dumps elements of HashTable made of zval
end
+define ____print_ft
+ set $ht = $arg0
+ set $p = $ht->pListHead
+
+ while $p != 0
+ set $func = (zend_function*)$p->pData
+
+ set $i = $ind
+ while $i > 0
+ printf " "
+ set $i = $i - 1
+ end
+
+ if $p->nKeyLength > 0
+ ____print_str $p->arKey $p->nKeyLength
+ printf " => "
+ else
+ printf "%d => ", $p->h
+ end
+
+ printf "\"%s\"\n", $func->common.function_name
+ set $p = $p->pListNext
+ end
+end
+
+define print_ft
+ set $ind = 1
+ printf "[0x%08x] {\n", $arg0
+ ____print_ft $arg0
+ printf "}\n"
+end
+
+document print_ft
+ dumps a function table (HashTable)
+end
+
+define ____print_inh_class
+ set $ce = $arg0
+ if $ce->ce_flags & 0x10 || $ce->ce_flags & 0x20
+ printf "abstract "
+ else
+ if $ce->ce_flags & 0x40
+ printf "final "
+ end
+ end
+ printf "class %s", $ce->name
+ if $ce->parent != 0
+ printf " extends %s", $ce->parent->name
+ end
+ if $ce->num_interfaces != 0
+ printf " implements"
+ set $tmp = 0
+ while $tmp < $ce->num_interfaces
+ printf " %s", $ce->interfaces[$tmp]->name
+ set $tmp = $tmp + 1
+ if $tmp < $ce->num_interfaces
+ printf ","
+ end
+ end
+ end
+ set $ce = $ce->parent
+end
+
+define ____print_inh_iface
+ set $ce = $arg0
+ printf "interface %s", $ce->name
+ if $ce->num_interfaces != 0
+ set $ce = $ce->interfaces[0]
+ printf " extends %s", $ce->name
+ else
+ set $ce = 0
+ end
+end
+
+define print_inh
+ set $ce = $arg0
+ set $depth = 0
+ while $ce != 0
+ set $tmp = $depth
+ while $tmp != 0
+ printf " "
+ set $tmp = $tmp - 1
+ end
+ set $depth = $depth + 1
+ if $ce->ce_flags & 0x80
+ ____print_inh_iface $ce
+ else
+ ____print_inh_class $ce
+ end
+ printf " {\n"
+ end
+ while $depth != 0
+ set $tmp = $depth
+ while $tmp != 1
+ printf " "
+ set $tmp = $tmp - 1
+ end
+ printf "}\n"
+ set $depth = $depth - 1
+ end
+end
+
+define print_pi
+ set $pi = $arg0
+ printf "[0x%08x] {\n", $pi
+ printf " h = %lu\n", $pi->h
+ printf " flags = %d (", $pi->flags
+ if $pi->flags & 0x100
+ printf "ZEND_ACC_PUBLIC"
+ else
+ if $pi->flags & 0x200
+ printf "ZEND_ACC_PROTECTED"
+ else
+ if $pi->flags & 0x400
+ printf "ZEND_ACC_PRIVATE"
+ else
+ if $pi->flags & 0x800
+ printf "ZEND_ACC_CHANGED"
+ end
+ end
+ end
+ end
+ printf ")\n"
+ printf " name = "
+ ____print_str $pi->name $pi->name_length
+ printf "\n}\n"
+end
+
+define ____print_str
+ set $tmp = 0
+ set $str = $arg0
+ printf "\""
+ while $tmp < $arg1
+ if $str[$tmp] > 32 && $str[$tmp] < 127
+ printf "%c", $str[$tmp]
+ else
+ printf "\\%o", $str[$tmp]
+ end
+ set $tmp = $tmp + 1
+ end
+ printf "\""
+end
+
define printzn
____executor_globals
set $ind = 0
diff --git a/EXTENSIONS b/EXTENSIONS
index dec7402a2..a14fae362 100644
--- a/EXTENSIONS
+++ b/EXTENSIONS
@@ -68,11 +68,6 @@ PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
-EXTENSION: date
-PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
EXTENSION: embed
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
MAINTENANCE: Maintained
@@ -307,6 +302,11 @@ MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
+EXTENSION: date
+PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
+MAINTENANCE: Maintained
+STATUS: Working
+-------------------------------------------------------------------------------
EXTENSION: exif
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
diff --git a/Makefile.gcov b/Makefile.gcov
index 85f93e9db..9dbf39adc 100644
--- a/Makefile.gcov
+++ b/Makefile.gcov
@@ -61,7 +61,7 @@ php_lcov.info: lcov-test
lcov-html: php_lcov.info
@echo "Generating lcov HTML"
- @$(LTP_GENHTML) --legend --no-prefix --output-directory lcov_html/ --title "PHP Code Coverage" --show-details php_lcov.info
+ @$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" --show-details php_lcov.info
lcov-clean:
rm -f php_lcov.info
diff --git a/Makefile.global b/Makefile.global
index dba7879cb..ec8692708 100644
--- a/Makefile.global
+++ b/Makefile.global
@@ -25,10 +25,10 @@ install: $(all_targets) $(install_targets)
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
- -@if test ! -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); then \
+ -@if test ! -r $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
- if test -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i; then \
- $(LN_S) $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); \
+ if test -r $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME).$$i; then \
+ $(LN_S) $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME); \
break; \
fi; \
done; \
@@ -44,13 +44,13 @@ install-modules: build-modules
install-headers:
-@if test "$(INSTALL_HEADERS)"; then \
- for i in $(INSTALL_HEADERS); do \
+ for i in `echo $(INSTALL_HEADERS)`; do \
i=`$(top_srcdir)/build/shtool path -d $$i`; \
paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
done; \
$(mkinstalldirs) $$paths && \
echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
- for i in $(INSTALL_HEADERS); do \
+ for i in `echo $(INSTALL_HEADERS)`; do \
if test "$(PHP_PECL_EXTENSION)"; then \
src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
else \
diff --git a/NEWS b/NEWS
index 82bdb2e06..eefc92632 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,302 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+17 Aug 2006, PHP 5.1.5
+- Fixed memory_limit on 64bit systems. (Stefan E.)
+- Fixed overflow on 64bit systems in str_repeat() and wordwrap(). (Stefan E.)
+- Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are
+ enabled. (Stefan E., Ilia)
+- Fixed bug #38322 (reading past array in sscanf() leads to arbitrary code
+ execution). (Tony)
+- Fixed bug #38125 (undefined reference to spl_dual_it_free_storage). (Marcus)
+- Fixed bug #38112 (corrupted gif segfaults) (Pierre)
+- Fixed bug #37587 (var without attribute causes segfault). (Marcus)
+- Fixed bug #37576 (FastCGI env (cgi vars) table overflow). (Piotr)
+- Fixed bug #37496 (FastCGI output buffer overrun). (Piotr, Dmitry)
+- Fixed bug #37487 (oci_fetch_array() array-type should always default to
+ OCI_BOTH). (Tony)
+- Fixed bug #37416 (iterator_to_array() hides exceptions thrown in rewind()
+ method). (Tony)
+- Fixed bug #37392 (Unnecessary call to OCITransRollback() at the end of
+ request). (Tony)
+- Fixed bug #37341 ($_SERVER in included file is shortened to two entries,
+ if $_ENV gets used). (Dmitry)
+- Fixed bug #37313 (sigemptyset() used without including <signal.h>).
+ (jdolecek)
+- Fixed bug #37346 (invalid colormap format) (Pierre)
+- Fixed bug #37360 (invalid gif size) (Pierre)
+- Fixed bug #37306 (max_execution_time = max_input_time). (Dmitry)
+- Fixed Bug #37278 (SOAP not respecting uri in __soapCall). (Dmitry)
+- Fixed bug #37265 (Added missing safe_mode & open_basedir checks to
+ imap_body()). (Ilia)
+- Fixed bug #37256 (php-fastcgi dosen't handle connection abort). (Dmitry)
+
+04 May 2006, PHP 5.1.4
+- Added "capture_peer_cert" and "capture_peer_cert_chain" context options
+ for SSL streams. (Wez).
+- Added PDO::PARAM_EVT_* family of constants. (Sara)
+- Fixed possible crash in highlight_string(). (Dmitry)
+- Fixed bug #37291 (FastCGI now longer works with isapi_fcgi.dll). (Dmitry)
+- Fixed bug #37277 (cloning Dom Documents or Nodes does not work). (Rob)
+- Fixed bug #37276 (problems with $_POST array). (Dmitry)
+- Fixed bug #36632 (bad error reporting for pdo_odbc exec UPDATE). (Wez).
+- Fixed bug #35552 (crash when pdo_odbc prepare fails). (Wez).
+
+28 Apr 2006, PHP 5.1.3
+- Updated bundled PCRE library to version 6.6. (Andrei)
+- Moved extensions to PECL:
+ . ext/msession (Derick)
+- Reimplemented FastCGI interface. (Dmitry)
+- Improved SPL: (Marcus)
+ - Fixed issues with not/double calling of constructors of SPL iterators.
+ - Fixed issues with info-class/file-class in SPL directory handling classes.
+ - Fixed ArrayIterator::seek().
+ - Added SimpleXMLIterator::count().
+ - Dropped erroneous RecursiveDirectoryIterator::getSubPathInfo().
+- Improved SimpleXML: (Marcus, Rob)
+ . Added SimpleXMLElement::getName() to retrieve name of element.
+ . Added ability to create elements on the fly.
+ . Added addChild() method for element creation supporting namespaces.
+ . Added addAttribute() method for attribute creation supporting namespaces.
+ . Added ability to delete specific elements and attributes by offset.
+- Improved Reflection API: (Marcus)
+ . Added ReflectionClass::newInstanceArgs($args).
+ . Added ability to analyze extension dependency.
+ . Added ReflectionFunction::isDeprecated() and constant IS_DEPRECATED.
+ . Added ReflectionParameter::getDeclaringClass().
+ . Changed reflection constants to be prefixed with IS_. (Johannes)
+- Improved cURL extension: (Ilia)
+ . Added curl_setopt_array() function that allows setting of multiple
+ options via an associated array.
+ . Added the ability to retrieve the request message sent to the server.
+- Improved GD extension: (Pierre)
+ . Added a weak/tolerant mode to the JPEG loader.
+ . Added filtering mode option to imagepng() to allow reducing file size.
+ . Fixed imagecolorallocate() and imagecolorallocatelapha() to return FALSE
+ on error.
+- Changed get_headers() to retrieve headers also from non-200 responses.
+ (Ilia)
+- Changed get_headers() to use the default context. (Ilia)
+- Added lchown() and lchgrp() to change user/group ownership of symlinks.
+ (Derick)
+- Added support for exif date format in strtotime(). (Derick)
+- Added a check for special characters in the session name. (Ilia)
+- Added "consumed" stream filter. (Marcus)
+- Added new mysqli constants for BIT and NEW_DECIMAL field types:
+ MYSQLI_TYPE_NEWDECIMAL and MYSQLI_TYPE_BIT. FR #36007. (Georg)
+- Added imap_savebody() that allows message body to be written to a
+ file. (Mike)
+- Added overflow checks to wordwrap() function. (Ilia)
+- Added support for BINARY_DOUBLE and BINARY_FLOAT to PDO_OCI and OCI8
+ (also fixes bug #36764). (Tony)
+- Eliminated run-time constant fetching for TRUE, FALSE and NULL. (Dmitry)
+- Removed the E_STRICT deprecation notice from "var". (Ilia)
+- Fixed reading stream filters never notified about EOF. (Mike)
+- Fixed tempnam() 2nd parameter to be checked against path components. (Ilia)
+- Fixed a bug that would not fill in the fifth argument to preg_replace()
+ properly, if the variable was not declared previously. (Andrei)
+- Fixed safe_mode check for source argument of the copy() function. (Ilia)
+- Fixed mysqli bigint conversion under Windows (Georg)
+- Fixed XSS inside phpinfo() with long inputs. (Ilia)
+- Fixed Apache2 SAPIs header handler modifying header strings. (Mike)
+- Fixed 'auto_globals_jit' to work together with 'register_argc_argv'. (Dmitry)
+- Fixed offset/length parameter validation in substr_compare() function. (Ilia)
+- Fixed debug_zval_dump() to support private and protected members. (Dmitry)
+- Fixed SoapFault::getMessage(). (Dmitry)
+- Fixed issue with iconv_mime_decode where the "encoding" would only allow
+ upper case specifiers. (Derick)
+- Fixed tiger hash algorithm generating wrong results on big endian platforms.
+ (Mike)
+- Fixed crash with DOMImplementation::createDocumentType("name:"). (Mike)
+- Fixed bug #37205 (Serving binary content/images fails with "comm with server
+ aborted" FastCGI err). (Dmitry)
+- Fixed bug #37192 (cc may complain about non-constant initializers in
+ hash_adler.c). (Mike)
+- Fixed bug #37191 (chmod takes off sticky bit when safe_mode is On). (Tony)
+- Fixed bug #37167 (PDO segfaults when throwing exception from the
+ fetch handler). (Tony)
+- Fixed bug #37162 (wddx does not build as a shared extension).
+ (jdolecek at NetBSD dot org, Ilia)
+- Fixed bug #37158 (fread behavior changes after calling
+ stream_wrapper_register). (Wez)
+- Fixed bug #37138 (__autoload tries to load callback'ed self and parent).
+ (Dmitry)
+- Fixed bug #37103 (libmbfl headers not installed). (Jani)
+- Fixed bug #37062 (compile failure on ARM architecture). (Tony)
+- Fixed bug #37061 (curl_exec() doesn't zero-terminate binary strings). (Tony)
+- Fixed bug #37060 (Type of retval of Countable::count() is not checked).
+ (Johannes)
+- Fixed bug #37059 (oci_bind_by_name() doesn't support RAW and LONG RAW
+ fields). (Tony)
+- Fixed bug #37057 (xmlrpc_decode() may produce arrays with numeric strings,
+ which are unaccessible). (Tony)
+- Fixed bug #37055 (incorrect reference counting for persistent OCI8
+ connections). (Tony)
+- Fixed bug #37054 (SoapClient Error Fetching http headers). (Dmitry)
+- Fixed bug #37053 (html_errors with internal classes produces wrong links).
+ (Tony)
+- Fixed bug #37046 (foreach breaks static scope). (Dmitry)
+- Fixed bug #37045 (Fixed check for special chars for http redirects). (Ilia)
+- Fixed bug #37017 (strtotime fails before 13:00:00 with some time zones
+ identifiers). (Derick)
+- Fixed bug #37002 (Have to quote literals in INI when concatenating with
+ vars). (Dmitry)z
+- Fixed bug #36988 (mktime freezes on long numbers). (Derick)
+- Fixed bug #36981 (SplFileObject->fgets() ignores max_length). (Tony)
+- Fixed bug #36957 (serialize() does not handle recursion). (Ilia)
+- Fixed bug #36944 (strncmp & strncasecmp do not return false on negative
+ string length). (Tony)
+- Fixed bug #36941 (ArrayIterator does not clone itself). (Marcus)
+- Fixed bug #36934 (OCILob->read() doesn't move internal pointer when
+ reading 0's). (Tony)
+- Fixed bug #36908 (wsdl default value overrides value in soap request).
+ (Dmitry)
+- Fixed bug #36898 (__set() leaks in classes extending internal ones).
+ (Tony, Dmitry)
+- Fixed bug #36886 (User filters can leak buckets in some situations). (Ilia)
+- Fixed bug #36878 (error messages are printed even though an exception has
+ been thrown). (Tony)
+- Fixed bug #36875 (is_*() functions do not account for open_basedir). (Ilia)
+- Fixed bug #36872 (session_destroy() fails after call to
+ session_regenerate_id(true)). (Ilia)
+- Fixed bug #36869 (memory leak in output buffering when using chunked
+ output). (Tony)
+- Fixed bug #36859 (DOMElement crashes when calling __construct when
+ cloning). (Tony)
+- Fixed bug #36857 (Added support for partial content fetching to the
+ HTTP streams wrapper). (Ilia)
+- Fixed bug #36851 (Documentation and code discrepancies for NULL
+ data in oci_fetch_*() functions). (Tony)
+- Fixed bug #36825 (Exceptions thrown in ArrayObject::offsetGet cause
+ segfault). (Tony)
+- Fixed bug #36820 (Privileged connection with an Oracle password file
+ fails). (Tony)
+- Fixed bug #36809 (__FILE__ behavior changed). (Dmitry)
+- Fixed bug #36808 (syslog ident becomes garbage between requests). (Tony)
+- Fixed bug #36802 (mysqli_set_charset() crash with a non-open connection).
+ (Ilia)
+- Fixed bug #36756 (DOMDocument::removeChild corrupts node). (Rob)
+- Fixed bug #36749 (SOAP: 'Error Fetching http body' when using HTTP Proxy).
+ (Dmitry)
+- Fixed bug #36745 (No error message when load data local file isn't found).
+ (Georg)
+- Fixed bug #36743 (In a class extending XMLReader array properties are not
+ writable). (Tony)
+- Fixed bug #36727 (segfault in pdo_pgsql bindValue() when no parameters are
+ defined). (Tony)
+- Fixed bug #36721 (The SoapServer is not able to send a header that it didn't
+ receive). (Dmitry)
+- Fixed bug #36697 (Transparency is lost when using imagecreatetruecolor).
+ (Pierre)
+- Fixed bug #36689 (Removed arbitrary limit on the length of syslog messages).
+ (Ilia)
+- Fixed bug #36656 (http_build_query generates invalid URIs due to use of
+ square brackets). (Mike)
+- Fixed bug #36638 (strtotime() returns false when 2nd argument < 1). (Derick)
+- Fixed bug #36629 (SoapServer::handle() exits on SOAP faults). (Dmitry)
+- Fixed bug #36625 (pg_trace() does not work). (iakio at mono-space dot net)
+- Fixed bug #36614 (Segfault when using Soap). (Dmitry)
+- Fixed bug #36611 (assignment to SimpleXML object attribute changes argument
+ type to string). (Tony)
+- Fixed bug #36606 (pg_query_params() changes arguments type to string). (Tony)
+- Fixed bug #36599 (DATE_W3C format constant incorrect). (Derick)
+- Fixed bug #36575 (SOAP: Incorrect complex type instantiation with
+ hierarchies). (Dmitry)
+- Fixed bug #36572 (Added PDO::MYSQL_ATTR_DIRECT_QUERY constant that should
+ be set when executing internal queries like "show master status" via MySQL).
+ (Ilia)
+- Fixed bug #36568 (memory_limit setting on win32 has no effect). (Dmitry)
+- Fixed bug #36513 (comment will be outputted in last line). (Dmitry)
+- Fixed bug #36510 (strtotime() fails to parse date strings with tabs).
+ (Ilia, Derick)
+- Fixed bug #36459 (Incorrect adding PHPSESSID to links, which contains \r\n).
+ (Ilia)
+- Fixed bug #36458 (sleep() accepts negative values). (Ilia)
+- Fixed bug #36436 (DBA problem with Berkeley DB4). (Marcus)
+- Fixed bug #36434 (Improper resolution of declaring class name of an
+ inherited property). (Ilia)
+- Fixed bug #36420 (segfault when access result->num_rows after calling
+ result->close()). (Ilia,Tony)
+- Fixed bug #36403 (oci_execute() no longer supports OCI_DESCRIBE_ONLY). (Tony)
+- Fixed bug #36400 (Custom 5xx error does not return correct HTTP response error
+ code). (Tony)
+- Fixed bug #36396 (strtotime() fails to parse dates in dd-mm-yyyy format).
+ (Derick)
+- Fixed bug #36388 (ext/soap crashes when throwing exception and session
+ persistence). (David)
+- Fixed bug #36382 (PDO/PgSQL's getColumnMeta() crashes). (Derick)
+- Fixed bug #36359 (splFileObject::fwrite() doesn't write when no data
+ length specified). (Tony)
+- Fixed bug #36351 (parse_url() does not parse numeric paths properly). (Ilia)
+- Fixed bug #36345 (PDO/MySQL problem loading BLOB over 1MB). (Ilia)
+- Fixed bug #36337 (ReflectionProperty fails to return correct visibility).
+ (Ilia)
+- Fixed bug #36334 (Added missing documentation about realpath cache INI
+ settings). (Ilia)
+- Fixed bug #36308 (ReflectionProperty::getDocComment() does not reflect
+ extended class commentary). (Ilia)
+- Fixed bug #36306 (crc32() differ on 32-bit and 64-bit platforms)
+ (anight@eyelinkmedia dot com, Pierre)
+- Fixed bug #36303 (foreach on error_zval produces segfault). (Dmitry)
+- Fixed bug #36295 (typo in SplFileObject::flock() parameter name). (Tony)
+- Fixed bug #36287 (Segfault with SplFileInfo conversion). (Marcus)
+- Fixed bug #36283 (SOAPClient Compression Broken). (Dmitry)
+- Fixed bug #36268 (Object destructors called even after fatal errors). (Dmitry)
+- Fixed bug #36258 (SplFileObject::getPath() may lead to segfault). (Tony)
+- Fixed bug #36250 (PHP causes ORA-07445 core dump in Oracle server 9.2.x).
+ (Tony)
+- Fixed bug #36242 (Possible memory corruption in stream_select()). (Tony)
+- Fixed bug #36235 (ocicolumnname returns false before a successful fetch).
+ (Tony)
+- Fixed bug #36226 (Inconsistent handling when passing potential arrays).
+ (Dmitry)
+- Fixed bug #36224 (date(DATE_ATOM) gives wrong results).
+ (Derick, Hannes Magnusson)
+- Fixed bug #36222 (errorInfo in PDOException is always NULL). (Ilia)
+- Fixed bug #36208 (symbol namespace conflicts using bundled gd). (Jakub Moc)
+- Fixed bug #36205 (Memory leaks on duplicate cookies). (Dmitry)
+- Fixed bug #36185 (str_rot13() crash on non-string parameter). (Pierre)
+- Fixed bug #36176 (PDO_PGSQL - PDO::exec() does not return number of rows
+ affected by the operation). (Ilia)
+- Fixed bug #36158 (SIGTERM is not handled correctly when running as a
+ FastCGI server). (Dmitry)
+- Fixed bug #36152 (problems with curl+ssl and pgsql+ssl in same PHP). (Mike)
+- Fixed bug #36148 (unpack("H*hex", $data) is adding an extra character to
+ the end of the string). (Ilia)
+- Fixed bug #36134 (DirectoryIterator constructor failed to detect empty
+ directory names). (Ilia)
+- Fixed bug #36113 (Reading records of unsupported type causes segfault).
+ (Tony)
+- Fixed bug #36096 (oci_result() returns garbage after oci_fetch() failed).
+ (Tony)
+- Fixed bug #36083 (SoapClient waits for responses on one-way operations).
+ (Dmitry)
+- Fixed bug #36071 (Engine Crash related with 'clone'). (Dmitry)
+- Fixed bug #36055 (possible OCI8 crash in multi-threaded environment). (Tony)
+- Fixed bug #36046 (parse_ini_file() miscounts lines in multi-line values).
+ (Ilia)
+- Fixed bug #36038 (ext/hash compile failure on Mac OSX). (Tony)
+- Fixed bug #36037 (heredoc adds extra line number). (Dmitry)
+- Fixed bug #36016 (realpath cache memleaks). (Dmitry, Nuno)
+- Fixed bug #36011 (Strict errormsg wrong for call_user_func() and the likes).
+ (Marcus)
+- Fixed bug #36010 (Segfault when re-creating and re-executing statements with
+ bound parameters). (Tony)
+- Fixed bug #36006 (Problem with $this in __destruct()). (Dmitry)
+- Fixed bug #35999 (recursive mkdir() does not work with relative path
+ like "foo/bar"). (Tony)
+- Fixed bug #35998 (SplFileInfo::getPathname() returns unix style filenames
+ in win32). (Marcus)
+- Fixed bug #35988 (Unknown persistent list entry type in module shutdown).
+ (Dmitry)
+- Fixed bug #35954 (Fatal com_exception casting object). (Rob)
+- Fixed bug #35900 (stream_select() should warning when tv_sec is negative).
+ (Ilia)
+- Fixed bug #35785 (SimpleXML causes memory read error zend engine). (Marcus)
+- Fixed bug #34272 (empty array onto COM object blows up). (Rob)
+- Fixed bug #33292 (apache_get_modules() crashes on Windows). (Edin)
+- Fixed bug #29476 (sqlite_fetch_column_types() locks the database forever).
+ (Ilia)
+
12 Jan 2006, PHP 5.1.2
- Updated libsqlite in ext/sqlite to 2.8.17. (Ilia)
- Updated libsqlite in ext/pdo_sqlite to 3.2.8. (Ilia)
diff --git a/README.CVS-RULES b/README.CVS-RULES
index 43240c816..1075f8220 100644
--- a/README.CVS-RULES
+++ b/README.CVS-RULES
@@ -29,14 +29,22 @@ Having said that, here are the organizational rules:
5. If you don't know how to do something, ask first!
6. Test your changes before committing them. We mean it. Really.
+ To do so use "make test".
+
+ 7. For development use the --enable-maintainer-zts switch to ensure your
+ code handles TSRM correctly and doesn't break for thos who need that.
Currently we have the following branches in use:
HEAD Will become PHP 6.0. This CVS branch is for active development.
-PHP_5_1 Is used to release the PHP 5.1.x series. Only minor feature
- enhancements may go in here, but please keep that as infrequent as
- possible.
+PHP_5_2 Is used to release the PHP 5.2.x series. Only minor feature
+ enhancements may go in here, but please keep that as infrequent as
+ possible.
+PHP_5_1 Is used to release the PHP 5.1.x series. Only bugfixes are permitted
+ on this branch (Consult the releasemaster prior to commit).
+PHP_5_0 This branch is closed.
PHP_4_4 Is used to release the PHP 4.4.x series. Only bugfixes are permitted
- on this branch.
+ on this branch (Consult the releasemaster prior to commit).
+PHP_4_3 This branch is closed.
The next few rules are more of a technical nature.
diff --git a/TSRM/TSRM.c b/TSRM/TSRM.c
index c07d60668..8acf0698a 100644
--- a/TSRM/TSRM.c
+++ b/TSRM/TSRM.c
@@ -480,6 +480,52 @@ void ts_free_thread(void)
}
+/* frees all resources allocated for all threads except current */
+void ts_free_worker_threads(void)
+{
+ tsrm_tls_entry *thread_resources;
+ int i;
+ THREAD_T thread_id = tsrm_thread_id();
+ int hash_value;
+ tsrm_tls_entry *last=NULL;
+
+ tsrm_mutex_lock(tsmm_mutex);
+ hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
+ thread_resources = tsrm_tls_table[hash_value];
+
+ while (thread_resources) {
+ if (thread_resources->thread_id != thread_id) {
+ for (i=0; i<thread_resources->count; i++) {
+ if (resource_types_table[i].dtor) {
+ resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
+ }
+ }
+ for (i=0; i<thread_resources->count; i++) {
+ free(thread_resources->storage[i]);
+ }
+ free(thread_resources->storage);
+ if (last) {
+ last->next = thread_resources->next;
+ } else {
+ tsrm_tls_table[hash_value] = thread_resources->next;
+ }
+ free(thread_resources);
+ if (last) {
+ thread_resources = last->next;
+ } else {
+ thread_resources = tsrm_tls_table[hash_value];
+ }
+ } else {
+ if (thread_resources->next) {
+ last = thread_resources;
+ }
+ thread_resources = thread_resources->next;
+ }
+ }
+ tsrm_mutex_unlock(tsmm_mutex);
+}
+
+
/* deallocates all occurrences of a given id */
void ts_free_id(ts_rsrc_id id)
{
diff --git a/TSRM/TSRM.h b/TSRM/TSRM.h
index 056089aa9..2eecd52b6 100644
--- a/TSRM/TSRM.h
+++ b/TSRM/TSRM.h
@@ -106,6 +106,9 @@ TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id);
/* frees all resources allocated for the current thread */
TSRM_API void ts_free_thread(void);
+/* frees all resources allocated for all threads except current */
+void ts_free_worker_threads(void);
+
/* deallocates all occurrences of a given id */
TSRM_API void ts_free_id(ts_rsrc_id id);
diff --git a/TSRM/tsrm_virtual_cwd.c b/TSRM/tsrm_virtual_cwd.c
index 03f847c2a..3b4f1c127 100644
--- a/TSRM/tsrm_virtual_cwd.c
+++ b/TSRM/tsrm_virtual_cwd.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: tsrm_virtual_cwd.c,v 1.74.2.4 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: tsrm_virtual_cwd.c,v 1.74.2.9 2006/03/05 18:57:54 derick Exp $ */
#include <sys/types.h>
#include <sys/stat.h>
@@ -163,18 +163,15 @@ static int php_is_file_ok(const cwd_state *state)
static void cwd_globals_ctor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
{
CWD_STATE_COPY(&cwd_globals->cwd, &main_cwd_state);
-#ifdef REALPATH_CACHE
cwd_globals->realpath_cache_size = 0;
cwd_globals->realpath_cache_size_limit = REALPATH_CACHE_SIZE;
cwd_globals->realpath_cache_ttl = REALPATH_CACHE_TTL;
memset(cwd_globals->realpath_cache, 0, sizeof(cwd_globals->realpath_cache));
-#endif
}
static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
{
CWD_STATE_FREE(&cwd_globals->cwd);
-#ifdef REALPATH_CACHE
{
int i;
@@ -187,7 +184,6 @@ static void cwd_globals_dtor(virtual_cwd_globals *cwd_globals TSRMLS_DC)
}
}
}
-#endif
}
static char *tsrm_strndup(const char *s, size_t length)
@@ -308,7 +304,6 @@ CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC)
return buf;
}
-#ifdef REALPATH_CACHE
static inline unsigned long realpath_cache_key(const char *path, int path_len)
{
register unsigned long h;
@@ -352,19 +347,18 @@ static inline realpath_cache_bucket* realpath_cache_find(const char *path, int p
while (*bucket != NULL) {
if (CWDG(realpath_cache_ttl) && (*bucket)->expires < t) {
realpath_cache_bucket *r = *bucket;
- *bucket = (*bucket)->next;
- CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
- free(r);
+ *bucket = (*bucket)->next;
+ CWDG(realpath_cache_size) -= sizeof(realpath_cache_bucket) + r->path_len + 1 + r->realpath_len + 1;
+ free(r);
} else if (key == (*bucket)->key && path_len == (*bucket)->path_len &&
memcmp(path, (*bucket)->path, path_len) == 0) {
return *bucket;
} else {
- *bucket = (*bucket)->next;
+ bucket = &(*bucket)->next;
}
}
return NULL;
}
-#endif
/* Resolve path relatively to state and put the real path into state */
@@ -385,20 +379,17 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
#else
char *new_path;
#endif
-#ifdef REALPATH_CACHE
char orig_path[MAXPATHLEN];
- int orig_path_len;
+ int orig_path_len = 0;
realpath_cache_bucket *bucket;
- time_t t;
+ time_t t = 0;
TSRMLS_FETCH();
-#endif
if (path_length == 0)
return (0);
if (path_length >= MAXPATHLEN)
return (1);
-#ifdef REALPATH_CACHE
if (use_realpath && CWDG(realpath_cache_size_limit)) {
if (IS_ABSOLUTE_PATH(path, path_length) || (state->cwd_length < 1)) {
memcpy(orig_path, path, path_length+1);
@@ -430,7 +421,6 @@ CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func
}
}
}
-#endif
#if !defined(TSRM_WIN32) && !defined(NETWARE)
/* cwd_length can be 0 when getcwd() fails.
* This can happen under solaris when a dir does not have read permissions
@@ -609,11 +599,9 @@ php_failed_getlongpath:
#endif
free(free_path);
-#ifdef REALPATH_CACHE
if (use_realpath && CWDG(realpath_cache_size_limit)) {
realpath_cache_add(orig_path, orig_path_len, state->cwd, state->cwd_length, t TSRMLS_CC);
}
-#endif
if (verify_path && verify_path(state)) {
CWD_STATE_FREE(state);
@@ -777,7 +765,7 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC)
}
#if !defined(TSRM_WIN32) && !defined(NETWARE)
-CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_DC)
+CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC)
{
cwd_state new_state;
int ret;
@@ -785,7 +773,15 @@ CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_
CWD_STATE_COPY(&new_state, &CWDG(cwd));
virtual_file_ex(&new_state, filename, NULL, 0);
- ret = chown(new_state.cwd, owner, group);
+ if (link) {
+#if HAVE_LCHOWN
+ ret = lchown(new_state.cwd, owner, group);
+#else
+ ret = -1;
+#endif
+ } else {
+ ret = chown(new_state.cwd, owner, group);
+ }
CWD_STATE_FREE(&new_state);
return ret;
@@ -1047,6 +1043,26 @@ CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC)
#endif
+/* On AIX & Tru64 when a file does not exist realpath() returns
+ * NULL, and sets errno to ENOENT. Unlike in other libc implementations
+ * the destination is not filled and remains undefined. Therefor, we
+ * must populate it manually using strcpy as done on systems with no
+ * realpath() function.
+ */
+#if defined(__osf__) || defined(_AIX)
+char *php_realpath_hack(char *src, char *dest)
+{
+ char *ret;
+
+ if ((ret = realpath(src, dest)) == NULL && errno == ENOENT) {
+ return strcpy(dest, src);
+ } else {
+ return ret;
+ }
+}
+#endif
+
+
/*
* Local variables:
diff --git a/TSRM/tsrm_virtual_cwd.h b/TSRM/tsrm_virtual_cwd.h
index 1fc54d26e..753ec0207 100644
--- a/TSRM/tsrm_virtual_cwd.h
+++ b/TSRM/tsrm_virtual_cwd.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: tsrm_virtual_cwd.h,v 1.48.2.1 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: tsrm_virtual_cwd.h,v 1.48.2.5 2006/04/10 11:56:18 sniper Exp $ */
#ifndef VIRTUAL_CWD_H
#define VIRTUAL_CWD_H
@@ -166,23 +166,8 @@ CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
#endif
#endif
-/* On AIX & Tru64 when a file does not exist realpath() returns
- * NULL, and sets errno to ENOENT. Unlike in other libc implementations
- * the destination is not filled and remains undefined. Therefor, we
- * must populate it manually using strcpy as done on systems with no
- * realpath() function.
- */
#if defined(__osf__) || defined(_AIX)
-static char *php_realpath_hack(char *src, char *dest)
-{
- char *ret;
-
- if ((ret = realpath(src, dest)) == NULL && errno == ENOENT) {
- return strcpy(dest, src);
- } else {
- return ret;
- }
-}
+char *php_realpath_hack(char *src, char *dest);
#endif
#if HAVE_UTIME
@@ -190,16 +175,14 @@ CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC);
#endif
CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
#if !defined(TSRM_WIN32) && !defined(NETWARE)
-CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group TSRMLS_DC);
+CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);
#endif
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
-#define REALPATH_CACHE
#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
-#ifdef REALPATH_CACHE
typedef struct _realpath_cache_bucket {
unsigned long key;
char *path;
@@ -209,16 +192,13 @@ typedef struct _realpath_cache_bucket {
time_t expires;
struct _realpath_cache_bucket *next;
} realpath_cache_bucket;
-#endif
typedef struct _virtual_cwd_globals {
cwd_state cwd;
-#ifdef REALPATH_CACHE
long realpath_cache_size;
long realpath_cache_size_limit;
long realpath_cache_ttl;
realpath_cache_bucket *realpath_cache[1024];
-#endif
} virtual_cwd_globals;
#ifdef ZTS
@@ -262,7 +242,10 @@ extern virtual_cwd_globals cwd_globals;
#endif
#define VCWD_CHMOD(path, mode) virtual_chmod(path, mode TSRMLS_CC)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
-#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group TSRMLS_CC)
+#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group, 0 TSRMLS_CC)
+#if HAVE_LCHOWN
+#define VCWD_LCHOWN(path, owner, group) virtual_chown(path, owner, group, 1 TSRMLS_CC)
+#endif
#endif
#else
@@ -305,6 +288,9 @@ extern virtual_cwd_globals cwd_globals;
#define VCWD_CHMOD(path, mode) chmod(path, mode)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_CHOWN(path, owner, group) chown(path, owner, group)
+#if HAVE_LCHOWN
+#define VCWD_LCHOWN(path, owner, group) lchown(path, owner, group)
+#endif
#endif
#endif
diff --git a/Zend/bench.php b/Zend/bench.php
index 9f3f9c205..f22704a7a 100644
--- a/Zend/bench.php
+++ b/Zend/bench.php
@@ -179,7 +179,7 @@ function fibo($n) {
/****/
-function hash($n) {
+function hash1($n) {
for ($i = 1; $i <= $n; $i++) {
$X[dechex($i)] = $i;
}
@@ -401,8 +401,8 @@ ary3(2000);
$t = end_test($t, "ary3(2000)");
fibo(30);
$t = end_test($t, "fibo(30)");
-hash(50000);
-$t = end_test($t, "hash(50000)");
+hash1(50000);
+$t = end_test($t, "hash1(50000)");
hash2(500);
$t = end_test($t, "hash2(500)");
heapsort(20000);
diff --git a/Zend/tests/bug29210.phpt b/Zend/tests/bug29210.phpt
index d9a931fda..c0f0460fb 100644
--- a/Zend/tests/bug29210.phpt
+++ b/Zend/tests/bug29210.phpt
@@ -92,11 +92,7 @@ $object->test();
--EXPECTF--
test_func1
test_func2
-
-Strict Standards: Non-static method test_class::test_func3() cannot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d
test_func3
-
-Strict Standards: Non-static method test_class::test_func4() cannot be called statically, assuming $this from compatible context test_class in %sbug29210.php on line %d
test_func4
test_func1 isn't callable from outside
test_func2 isn't callable from outside
@@ -104,9 +100,5 @@ test_func3 isn't callable from outside
test_func4 isn't callable from outside
test_func1 isn't callable from child
test_func2
-
-Strict Standards: Non-static method test_class::test_func3() cannot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d
test_func3 isn't callable from child
-
-Strict Standards: Non-static method test_class::test_func4() cannot be called statically, assuming $this from compatible context foo in %sbug29210.php on line %d
test_func4
diff --git a/Zend/tests/bug36006.phpt b/Zend/tests/bug36006.phpt
new file mode 100755
index 000000000..79f9897d1
--- /dev/null
+++ b/Zend/tests/bug36006.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Bug #36006 (Problem with $this in __destruct())
+--FILE--
+<?php
+
+class Person {
+ public $dad;
+ public function __destruct() {
+ $this->dad = null; /* no segfault if this is commented out */
+ }
+}
+
+class Dad extends Person {
+ public $son;
+ public function __construct() {
+ $this->son = new Person;
+ $this->son->dad = $this; /* no segfault if this is commented out */
+ }
+ public function __destruct() {
+ $this->son = null;
+ parent::__destruct(); /* segfault here */
+ }
+}
+
+$o = new Dad;
+unset($o);
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/Zend/tests/bug36037.phpt b/Zend/tests/bug36037.phpt
new file mode 100755
index 000000000..3ccebf652
--- /dev/null
+++ b/Zend/tests/bug36037.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #36037 (heredoc adds extra line number)
+--FILE--
+<?php
+echo __LINE__, "\n";
+$x=<<<XXX
+123
+YYY;
+XXX;
+echo __LINE__, "\n";
+?>
+--EXPECT--
+2
+7
diff --git a/Zend/tests/bug36071.phpt b/Zend/tests/bug36071.phpt
new file mode 100755
index 000000000..72ef78f6d
--- /dev/null
+++ b/Zend/tests/bug36071.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #36071 (Engine Crash related with 'clone')
+--INI--
+error_reporting=4095
+--FILE--
+<?php
+$a = clone 0;
+$a[0]->b = 0;
+echo "ok\n";
+?>
+--EXPECTF--
+Warning: __clone method called on non-object in %sbug36071.php on line 2
+ok \ No newline at end of file
diff --git a/Zend/tests/bug36268.phpt b/Zend/tests/bug36268.phpt
new file mode 100755
index 000000000..5276d50d4
--- /dev/null
+++ b/Zend/tests/bug36268.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #36268 (Object destructors called even after fatal errors)
+--FILE--
+<?php
+class Foo {
+ function __destruct() {
+ echo "Ha!\n";
+ }
+}
+$x = new Foo();
+bar();
+?>
+--EXPECTF--
+Fatal error: Call to undefined function bar() in %sbug36268.php on line 8
diff --git a/Zend/tests/bug36303.phpt b/Zend/tests/bug36303.phpt
new file mode 100755
index 000000000..13c21b7c5
--- /dev/null
+++ b/Zend/tests/bug36303.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #36303 (foreach on error_zval produces segfault)
+--FILE--
+<?php
+$x="test";
+foreach($x->a->b as &$v) {
+}
+echo "ok\n";
+?>
+--EXPECTF--
+Warning: Invalid argument supplied for foreach() in %sbug36303.php on line 3
+ok
diff --git a/Zend/tests/bug36568.phpt b/Zend/tests/bug36568.phpt
new file mode 100755
index 000000000..0401d1e01
--- /dev/null
+++ b/Zend/tests/bug36568.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #36568 (memory_limit has no effect)
+--SKIPIF--
+<?php
+ if (!function_exists('memory_get_usage')) die('skip PHP is configured without memory_limit');
+?>
+--INI--
+memory_limit=16M
+--FILE--
+<?php
+ini_set("memory_limit", "32M");
+echo ini_get("memory_limit");
+?>
+--EXPECT--
+32M
diff --git a/Zend/tests/zend_strtod.phpt b/Zend/tests/zend_strtod.phpt
new file mode 100644
index 000000000..1b11be038
--- /dev/null
+++ b/Zend/tests/zend_strtod.phpt
@@ -0,0 +1,19 @@
+--TEST--
+zend_strtod() leaks on big doubles
+--INI--
+precision=14
+--FILE--
+<?php
+var_dump("1139932690.21688500" - "1139932790.21688500");
+var_dump("1139932690000.21688500" - "331139932790.21688500");
+var_dump("339932690.21688500" - "4564645646456463461139932790.21688500");
+var_dump("123123139932690.21688500" - "11399327900000000.21688500");
+
+echo "Done\n";
+?>
+--EXPECTF--
+float(-100)
+float(808792757210)
+float(-4.5646456464565E+27)
+float(-11276204760067000)
+Done
diff --git a/Zend/zend.c b/Zend/zend.c
index 8ba0f2b49..c83e482cb 100644
--- a/Zend/zend.c
+++ b/Zend/zend.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.c,v 1.308.2.7 2006/01/04 23:53:03 andi Exp $ */
+/* $Id: zend.c,v 1.308.2.12 2006/03/30 21:39:01 tony2001 Exp $ */
#include "zend.h"
#include "zend_extensions.h"
@@ -237,11 +237,19 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
} else {
if(Z_OBJ_HANDLER_P(expr, get)) {
zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC);
+
+ z->refcount++;
if(Z_TYPE_P(z) != IS_OBJECT) {
zend_make_printable_zval(z, expr_copy, use_copy);
- FREE_ZVAL(z);
+ if (*use_copy) {
+ zval_ptr_dtor(&z);
+ } else {
+ ZVAL_ZVAL(expr_copy, z, 0, 1);
+ *use_copy = 1;
+ }
return;
}
+ zval_ptr_dtor(&z);
}
}
if (EG(exception)) {
@@ -869,7 +877,7 @@ static int exec_done_cb(zend_module_entry *module TSRMLS_DC)
void zend_post_deactivate_modules(TSRMLS_D)
{
zend_hash_apply(&module_registry, (apply_func_t) exec_done_cb TSRMLS_CC);
- zend_hash_apply(&module_registry, (apply_func_t) module_registry_unload_temp TSRMLS_CC);
+ zend_hash_reverse_apply(&module_registry, (apply_func_t) module_registry_unload_temp TSRMLS_CC);
}
@@ -1017,7 +1025,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
}
zval_ptr_dtor(&retval);
}
- } else {
+ } else if (!EG(exception)) {
/* The user error handler failed, use built-in error handler */
zend_error_cb(type, error_filename, error_lineno, format, args);
}
@@ -1046,7 +1054,7 @@ ZEND_API void zend_error(int type, const char *format, ...)
}
}
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux)
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX)
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((alias("zend_error"),noreturn));
#endif
diff --git a/Zend/zend.h b/Zend/zend.h
index e99898d07..d8d5022d6 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend.h,v 1.293.2.9 2006/01/04 23:53:03 andi Exp $ */
+/* $Id: zend.h,v 1.293.2.11 2006/03/30 21:39:01 tony2001 Exp $ */
#ifndef ZEND_H
#define ZEND_H
@@ -91,7 +91,7 @@ const char *zend_mh_bundle_error(void);
#endif /* HAVE_MACH_O_DYLD_H */
-#if defined(HAVE_LIBDL) && !defined(HAVE_MACH_O_DYLD_H)
+#if defined(HAVE_LIBDL) && !defined(HAVE_MACH_O_DYLD_H) && !defined(ZEND_WIN32)
# ifndef RTLD_LAZY
# define RTLD_LAZY 1 /* Solaris 1, FreeBSD's (2.1.7.1 and older) */
@@ -250,7 +250,7 @@ char *alloca ();
#define INTERNAL_FUNCTION_PARAMETERS int ht, zval *return_value, zval **return_value_ptr, zval *this_ptr, int return_value_used TSRMLS_DC
#define INTERNAL_FUNCTION_PARAM_PASSTHRU ht, return_value, return_value_ptr, this_ptr, return_value_used TSRMLS_CC
-#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux)
+#if defined(__GNUC__) && !defined(__INTEL_COMPILER) && !defined(DARWIN) && !defined(__hpux) && !defined(_AIX)
# define ZEND_VM_ALWAYS_INLINE __attribute__ ((always_inline))
void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((noreturn));
#else
diff --git a/Zend/zend_API.c b/Zend/zend_API.c
index b7b6aeafe..ece2ede82 100644
--- a/Zend/zend_API.c
+++ b/Zend/zend_API.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.c,v 1.296.2.16 2006/01/06 20:55:14 tony2001 Exp $ */
+/* $Id: zend_API.c,v 1.296.2.26 2006/03/23 13:14:55 helly Exp $ */
#include "zend.h"
#include "zend_execute.h"
@@ -271,7 +271,7 @@ ZEND_API int zend_get_object_classname(zval *object, char **class_name, zend_uin
}
-static char *zend_parse_arg_impl(zval **arg, va_list *va, char **spec TSRMLS_DC)
+static char *zend_parse_arg_impl(int arg_num, zval **arg, va_list *va, char **spec TSRMLS_DC)
{
char *spec_walk = *spec;
char c = *spec_walk++;
@@ -445,6 +445,21 @@ static char *zend_parse_arg_impl(zval **arg, va_list *va, char **spec TSRMLS_DC)
}
break;
+ case 'h':
+ {
+ HashTable **p = va_arg(*va, HashTable **);
+ if (Z_TYPE_PP(arg) != IS_ARRAY) {
+ if (Z_TYPE_PP(arg) == IS_NULL && return_null) {
+ *p = NULL;
+ } else {
+ return "array";
+ }
+ } else {
+ *p = Z_ARRVAL_PP(arg);
+ }
+ }
+ break;
+
case 'o':
{
zval **p = va_arg(*va, zval **);
@@ -477,6 +492,41 @@ static char *zend_parse_arg_impl(zval **arg, va_list *va, char **spec TSRMLS_DC)
}
break;
+ case 'C':
+ {
+ zend_class_entry **lookup, **pce = va_arg(*va, zend_class_entry **);
+ zend_class_entry *ce_base = *pce;
+
+ convert_to_string_ex(arg);
+ if (zend_lookup_class(Z_STRVAL_PP(arg), Z_STRLEN_PP(arg), &lookup TSRMLS_CC) == FAILURE) {
+ *pce = NULL;
+ } else {
+ *pce = *lookup;
+ }
+ if (ce_base) {
+ if ((!*pce || !instanceof_function(*pce, ce_base TSRMLS_CC)) && !return_null) {
+ char *space;
+ char *class_name = get_active_class_name(&space TSRMLS_CC);
+ zend_error(E_WARNING, "%s%s%s() expects parameter %d to be a class name derived from %s, '%s' given",
+ class_name, space, get_active_function_name(TSRMLS_C),
+ arg_num, ce_base->name, Z_STRVAL_PP(arg));
+ *pce = NULL;
+ return "";
+ }
+ }
+ if (!*pce && !return_null) {
+ char *space;
+ char *class_name = get_active_class_name(&space TSRMLS_CC);
+ zend_error(E_WARNING, "%s%s%s() expects parameter %d to be a valid class name, '%s' given",
+ class_name, space, get_active_function_name(TSRMLS_C),
+ arg_num, Z_STRVAL_PP(arg));
+ return "";
+ }
+ break;
+
+ }
+ break;
+
case 'z':
{
zval **p = va_arg(*va, zval **);
@@ -510,7 +560,7 @@ static int zend_parse_arg(int arg_num, zval **arg, va_list *va, char **spec, int
{
char *expected_type = NULL;
- expected_type = zend_parse_arg_impl(arg, va, spec TSRMLS_CC);
+ expected_type = zend_parse_arg_impl(arg_num, arg, va, spec TSRMLS_CC);
if (expected_type) {
if (!quiet) {
char *space;
@@ -545,6 +595,7 @@ static int zend_parse_va_args(int num_args, char *type_spec, va_list *va, int fl
case 'r': case 'a':
case 'o': case 'O':
case 'z': case 'Z':
+ case 'C': case 'h':
max_num_args++;
break;
@@ -760,6 +811,7 @@ ZEND_API void zend_update_class_constants(zend_class_entry *class_type TSRMLS_DC
zend_class_entry *old_scope = *scope;
*scope = class_type;
+ zend_hash_apply_with_argument(&class_type->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
zend_hash_apply_with_argument(&class_type->default_properties, (apply_func_arg_t) zval_update_constant, (void *) 1 TSRMLS_CC);
if (!CE_STATIC_MEMBERS(class_type)) {
@@ -1494,8 +1546,8 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr
zend_function *ctor = NULL, *dtor = NULL, *clone = NULL, *__get = NULL, *__set = NULL, *__unset = NULL, *__isset = NULL, *__call = NULL;
char *lowercase_name;
int fname_len;
- char *lc_class_name;
- int class_name_len;
+ char *lc_class_name = NULL;
+ int class_name_len = 0;
if (type==MODULE_PERSISTENT) {
error_type = E_CORE_WARNING;
@@ -1538,8 +1590,10 @@ ZEND_API int zend_register_functions(zend_class_entry *scope, zend_function_entr
}
if (ptr->flags) {
if (!(ptr->flags & ZEND_ACC_PPP_MASK)) {
- zend_error(error_type, "Invalid access level for %s%s%s() - access must be exactly one of public, protected or private", scope ? scope->name : "", scope ? "::" : "", ptr->fname);
- internal_function->fn_flags = ZEND_ACC_PUBLIC;
+ if (ptr->flags != ZEND_ACC_DEPRECATED || scope) {
+ zend_error(error_type, "Invalid access level for %s%s%s() - access must be exactly one of public, protected or private", scope ? scope->name : "", scope ? "::" : "", ptr->fname);
+ }
+ internal_function->fn_flags = ZEND_ACC_PUBLIC | ptr->flags;
} else {
internal_function->fn_flags = ptr->flags;
}
@@ -1801,11 +1855,7 @@ int module_registry_cleanup(zend_module_entry *module TSRMLS_DC)
int module_registry_unload_temp(zend_module_entry *module TSRMLS_DC)
{
- switch (module->type) {
- case MODULE_TEMPORARY:
- return 1;
- }
- return 0;
+ return (module->type == MODULE_TEMPORARY) ? ZEND_HASH_APPLY_REMOVE : ZEND_HASH_APPLY_STOP;
}
@@ -1974,7 +2024,7 @@ ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_
return 1;
}
-static int zend_is_callable_check_func(int check_flags, zval **zobj_ptr, zend_class_entry *ce_org, zval *callable, zend_class_entry **ce_ptr, zend_function **fptr_ptr TSRMLS_DC)
+static int zend_is_callable_check_func(int check_flags, zval ***zobj_ptr_ptr, zend_class_entry *ce_org, zval *callable, zend_class_entry **ce_ptr, zend_function **fptr_ptr TSRMLS_DC)
{
int retval;
char *lcname, *lmname, *colon;
@@ -2023,23 +2073,28 @@ static int zend_is_callable_check_func(int check_flags, zval **zobj_ptr, zend_cl
retval = zend_hash_find(ftable, lmname, mlen+1, (void**)&fptr) == SUCCESS ? 1 : 0;
if (!retval) {
- if (zobj_ptr && *ce_ptr && (*ce_ptr)->__call != 0) {
+ if (*zobj_ptr_ptr && *ce_ptr && (*ce_ptr)->__call != 0) {
retval = (*ce_ptr)->__call != NULL;
*fptr_ptr = (*ce_ptr)->__call;
}
} else {
*fptr_ptr = fptr;
if (*ce_ptr) {
- if (!zobj_ptr && !(fptr->common.fn_flags & ZEND_ACC_STATIC)) {
+ if (!*zobj_ptr_ptr && !(fptr->common.fn_flags & ZEND_ACC_STATIC)) {
if ((check_flags & IS_CALLABLE_CHECK_IS_STATIC) != 0) {
retval = 0;
} else {
- zend_error(E_STRICT, "Non-static method %s::%s() cannot be called statically", (*ce_ptr)->name, fptr->common.function_name);
+ if (EG(This) && instanceof_function(Z_OBJCE_P(EG(This)), *ce_ptr TSRMLS_CC)) {
+ *zobj_ptr_ptr = &EG(This);
+ zend_error(E_STRICT, "Non-static method %s::%s() cannot be called statically, assuming $this from compatible context %s", (*ce_ptr)->name, fptr->common.function_name, Z_OBJCE_P(EG(This))->name);
+ } else {
+ zend_error(E_STRICT, "Non-static method %s::%s() cannot be called statically", (*ce_ptr)->name, fptr->common.function_name);
+ }
}
}
if (retval && (check_flags & IS_CALLABLE_CHECK_NO_ACCESS) == 0) {
if (fptr->op_array.fn_flags & ZEND_ACC_PRIVATE) {
- if (!zend_check_private(fptr, zobj_ptr ? Z_OBJCE_PP(zobj_ptr) : EG(scope), lmname, mlen TSRMLS_CC)) {
+ if (!zend_check_private(fptr, *zobj_ptr_ptr ? Z_OBJCE_PP(*zobj_ptr_ptr) : EG(scope), lmname, mlen TSRMLS_CC)) {
retval = 0;
}
} else if ((fptr->common.fn_flags & ZEND_ACC_PROTECTED)) {
@@ -2063,6 +2118,9 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **
zend_function *fptr_local;
zval **zobj_ptr_local;
+ if (callable_name) {
+ *callable_name = NULL;
+ }
if (callable_name_len == NULL) {
callable_name_len = &callable_name_len_local;
}
@@ -2089,7 +2147,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **
return 1;
}
- retval = zend_is_callable_check_func(check_flags|IS_CALLABLE_CHECK_IS_STATIC, NULL, NULL, callable, ce_ptr, fptr_ptr TSRMLS_CC);
+ retval = zend_is_callable_check_func(check_flags|IS_CALLABLE_CHECK_IS_STATIC, zobj_ptr_ptr, NULL, callable, ce_ptr, fptr_ptr TSRMLS_CC);
break;
case IS_ARRAY:
@@ -2132,12 +2190,6 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **
}
efree(lcname);
}
- if (EG(This)) {
- if (instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
- *zobj_ptr_ptr = &EG(This);
- zend_error(E_STRICT, "Non-static method %s::%s() cannot be called statically, assuming $this from compatible context %s", ce->name, Z_STRVAL_PP(method), Z_OBJCE_P(EG(This))->name);
- }
- }
} else {
ce = Z_OBJCE_PP(obj); /* TBFixed: what if it's overloaded? */
@@ -2162,7 +2214,7 @@ ZEND_API zend_bool zend_is_callable_ex(zval *callable, uint check_flags, char **
}
if (ce) {
- retval = zend_is_callable_check_func(check_flags, *zobj_ptr_ptr, ce, *method, ce_ptr, fptr_ptr TSRMLS_CC);
+ retval = zend_is_callable_check_func(check_flags, zobj_ptr_ptr, ce, *method, ce_ptr, fptr_ptr TSRMLS_CC);
}
} else if (callable_name) {
*callable_name = estrndup("Array", sizeof("Array")-1);
@@ -2395,6 +2447,20 @@ ZEND_API int zend_declare_class_constant(zend_class_entry *ce, char *name, size_
return zend_hash_update(&ce->constants_table, name, name_length+1, &value, sizeof(zval *), NULL);
}
+ZEND_API int zend_declare_class_constant_null(zend_class_entry *ce, char *name, size_t name_length TSRMLS_DC)
+{
+ zval *constant;
+
+ if (ce->type & ZEND_INTERNAL_CLASS) {
+ constant = malloc(sizeof(zval));
+ } else {
+ ALLOC_ZVAL(constant);
+ }
+ ZVAL_NULL(constant);
+ INIT_PZVAL(constant);
+ return zend_declare_class_constant(ce, name, name_length, constant TSRMLS_CC);
+}
+
ZEND_API int zend_declare_class_constant_long(zend_class_entry *ce, char *name, size_t name_length, long value TSRMLS_DC)
{
zval *constant;
diff --git a/Zend/zend_API.h b/Zend/zend_API.h
index 7daaf3c41..c0d580546 100644
--- a/Zend/zend_API.h
+++ b/Zend/zend_API.h
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_API.h,v 1.207.2.6 2006/01/04 23:53:03 andi Exp $ */
+/* $Id: zend_API.h,v 1.207.2.8 2006/03/05 16:12:24 helly Exp $ */
#ifndef ZEND_API_H
#define ZEND_API_H
@@ -50,7 +50,9 @@ typedef struct _zend_function_entry {
#define ZEND_NAMED_FE(zend_name, name, arg_info) ZEND_FENTRY(zend_name, name, arg_info, 0)
#define ZEND_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, 0)
+#define ZEND_DEP_FE(name, arg_info) ZEND_FENTRY(name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
#define ZEND_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, 0)
+#define ZEND_DEP_FALIAS(name, alias, arg_info) ZEND_FENTRY(name, ZEND_FN(alias), arg_info, ZEND_ACC_DEPRECATED)
#define ZEND_ME(classname, name, arg_info, flags) ZEND_FENTRY(name, ZEND_FN(classname##_##name), arg_info, flags)
#define ZEND_ABSTRACT_ME(classname, name, arg_info) ZEND_FENTRY(name, NULL, arg_info, ZEND_ACC_PUBLIC|ZEND_ACC_ABSTRACT)
#define ZEND_MALIAS(classname, name, alias, arg_info, flags) \
@@ -221,6 +223,7 @@ ZEND_API int zend_declare_property_string(zend_class_entry *ce, char *name, int
ZEND_API int zend_declare_property_stringl(zend_class_entry *ce, char *name, int name_length, char *value, int value_len, int access_type TSRMLS_DC);
ZEND_API int zend_declare_class_constant(zend_class_entry *ce, char *name, size_t name_length, zval *value TSRMLS_DC);
+ZEND_API int zend_declare_class_constant_null(zend_class_entry *ce, char *name, size_t name_length TSRMLS_DC);
ZEND_API int zend_declare_class_constant_long(zend_class_entry *ce, char *name, size_t name_length, long value TSRMLS_DC);
ZEND_API int zend_declare_class_constant_bool(zend_class_entry *ce, char *name, size_t name_length, zend_bool value TSRMLS_DC);
ZEND_API int zend_declare_class_constant_double(zend_class_entry *ce, char *name, size_t name_length, double value TSRMLS_DC);
diff --git a/Zend/zend_arg_defs.c b/Zend/zend_arg_defs.c
index 53dbfaf13..9a128fee2 100644
--- a/Zend/zend_arg_defs.c
+++ b/Zend/zend_arg_defs.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_arg_defs.c,v 1.2.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_arg_defs.c,v 1.2.2.2 2006/04/06 21:10:45 andrei Exp $ */
ZEND_BEGIN_ARG_INFO(first_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(1)
@@ -40,6 +40,14 @@ ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
+ZEND_BEGIN_ARG_INFO(fifth_arg_force_ref, 0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(0)
+ ZEND_ARG_PASS_INFO(1)
+ZEND_END_ARG_INFO();
+
ZEND_BEGIN_ARG_INFO(all_args_by_ref, 1)
ZEND_END_ARG_INFO();
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index fd2e1b343..ea8e7b111 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_builtin_functions.c,v 1.277.2.8 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_builtin_functions.c,v 1.277.2.12 2006/04/05 11:36:13 tony2001 Exp $ */
#include "zend.h"
#include "zend_API.h"
@@ -314,6 +314,12 @@ ZEND_FUNCTION(strncmp)
convert_to_string_ex(s1);
convert_to_string_ex(s2);
convert_to_long_ex(s3);
+
+ if (Z_LVAL_PP(s3) < 0) {
+ zend_error(E_WARNING, "Length must be greater than or equal to 0");
+ RETURN_FALSE;
+ }
+
RETURN_LONG(zend_binary_zval_strncmp(*s1, *s2, *s3));
}
/* }}} */
@@ -347,6 +353,12 @@ ZEND_FUNCTION(strncasecmp)
convert_to_string_ex(s1);
convert_to_string_ex(s2);
convert_to_long_ex(s3);
+
+ if (Z_LVAL_PP(s3) < 0) {
+ zend_error(E_WARNING, "Length must be greater than or equal to 0");
+ RETURN_FALSE;
+ }
+
RETURN_LONG(zend_binary_zval_strncasecmp(*s1, *s2, *s3));
}
/* }}} */
@@ -768,11 +780,16 @@ ZEND_FUNCTION(get_object_vars)
RETURN_FALSE;
}
+ properties = Z_OBJ_HT_PP(obj)->get_properties(*obj TSRMLS_CC);
+
+ if (properties == NULL) {
+ RETURN_FALSE;
+ }
+
instanceof = EG(This) && instanceof_function(Z_OBJCE_P(EG(This)), Z_OBJCE_PP(obj) TSRMLS_CC);
array_init(return_value);
- properties = Z_OBJ_HT_PP(obj)->get_properties(*obj TSRMLS_CC);
zend_hash_internal_pointer_reset_ex(properties, &pos);
while (zend_hash_get_current_data_ex(properties, (void **) &value, &pos) == SUCCESS) {
@@ -1693,8 +1710,6 @@ ZEND_FUNCTION(debug_print_backtrace)
}
}
- array_init(return_value);
-
while (ptr) {
char *free_class_name = NULL;
@@ -1801,7 +1816,11 @@ ZEND_FUNCTION(debug_print_backtrace)
debug_print_backtrace_args(arg_array TSRMLS_CC);
zval_ptr_dtor(&arg_array);
}
- zend_printf(") called at [%s:%d]\n", filename, lineno);
+ if (filename) {
+ zend_printf(") called at [%s:%d]\n", filename, lineno);
+ } else {
+ ZEND_PUTS(")\n");
+ }
include_filename = filename;
ptr = skip->prev_execute_data;
++indent;
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 50e1ba836..52382c2d1 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.c,v 1.647.2.21 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_compile.c,v 1.647.2.25 2006/03/27 08:09:18 dmitry Exp $ */
#include <zend_language_parser.h>
#include "zend.h"
@@ -2940,13 +2940,7 @@ void zend_do_declare_class_constant(znode *var_name, znode *value TSRMLS_DC)
}
ALLOC_ZVAL(property);
-
- if (value) {
- *property = value->u.constant;
- } else {
- INIT_PZVAL(property);
- property->type = IS_NULL;
- }
+ *property = value->u.constant;
if (zend_hash_add(&CG(active_class_entry)->constants_table, var_name->u.constant.value.str.val, var_name->u.constant.value.str.len+1, &property, sizeof(zval *), NULL)==FAILURE) {
FREE_ZVAL(property);
@@ -3095,6 +3089,33 @@ void zend_do_end_new_object(znode *result, znode *new_token, znode *argument_lis
*result = CG(active_op_array)->opcodes[new_token->u.opline_num].result;
}
+static int zend_constant_ct_subst(znode *result, zval *const_name TSRMLS_DC)
+{
+ zend_constant *c = NULL;
+
+ if (zend_hash_find(EG(zend_constants), Z_STRVAL_P(const_name), Z_STRLEN_P(const_name)+1, (void **) &c) == FAILURE) {
+ char *lookup_name = zend_str_tolower_dup(Z_STRVAL_P(const_name), Z_STRLEN_P(const_name));
+
+ if (zend_hash_find(EG(zend_constants), lookup_name, Z_STRLEN_P(const_name)+1, (void **) &c)==SUCCESS) {
+ if ((c->flags & CONST_CS) && memcmp(c->name, Z_STRVAL_P(const_name), Z_STRLEN_P(const_name))!=0) {
+ c = NULL;
+ }
+ } else {
+ c = NULL;
+ }
+ efree(lookup_name);
+ }
+ if (c && (c->flags & CONST_CT_SUBST)) {
+ zval_dtor(const_name);
+ result->op_type = IS_CONST;
+ result->u.constant = c->value;
+ zval_copy_ctor(&result->u.constant);
+ INIT_PZVAL(&result->u.constant);
+ return 1;
+ }
+ return 0;
+}
+
void zend_do_fetch_constant(znode *result, znode *constant_container, znode *constant_name, int mode TSRMLS_DC)
{
switch (mode) {
@@ -3102,13 +3123,15 @@ void zend_do_fetch_constant(znode *result, znode *constant_container, znode *con
if (constant_container) {
zend_do_fetch_class_name(NULL, constant_container, constant_name TSRMLS_CC);
*result = *constant_container;
- } else {
+ result->u.constant.type = IS_CONSTANT;
+ } else if (!zend_constant_ct_subst(result, &constant_name->u.constant TSRMLS_CC)) {
*result = *constant_name;
+ result->u.constant.type = IS_CONSTANT;
}
- result->u.constant.type = IS_CONSTANT;
break;
case ZEND_RT:
- {
+ if (constant_container ||
+ !zend_constant_ct_subst(result, &constant_name->u.constant TSRMLS_CC)) {
zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
opline->opcode = ZEND_FETCH_CONSTANT;
@@ -3227,6 +3250,9 @@ void zend_do_add_static_array_element(znode *result, znode *offset, znode *expr)
case IS_DOUBLE:
zend_hash_index_update(result->u.constant.value.ht, (long)offset->u.constant.value.dval, &element, sizeof(zval *), NULL);
break;
+ case IS_CONSTANT_ARRAY:
+ zend_error(E_ERROR, "Illegal offset type");
+ break;
}
} else {
zend_hash_next_index_insert(result->u.constant.value.ht, &element, sizeof(zval *), NULL);
@@ -3755,6 +3781,8 @@ void zend_do_declare_stmt(znode *var, znode *val TSRMLS_DC)
}
efree(val->u.constant.value.str.val);
#endif /* ZEND_MULTIBYTE */
+ } else {
+ zval_dtor(&val->u.constant);
}
zval_dtor(&var->u.constant);
}
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index ae273a644..2488bea83 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_compile.h,v 1.316.2.6 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_compile.h,v 1.316.2.8 2006/03/13 11:13:42 dmitry Exp $ */
#ifndef ZEND_COMPILE_H
#define ZEND_COMPILE_H
@@ -136,6 +136,9 @@ typedef struct _zend_try_catch_element {
/* shadow of parent's private method/property */
#define ZEND_ACC_SHADOW 0x20000
+/* deprecation flag */
+#define ZEND_ACC_DEPRECATED 0x40000
+
char *zend_visibility_string(zend_uint fn_flags);
@@ -514,6 +517,7 @@ ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC);
ZEND_API void zend_file_handle_dtor(zend_file_handle *fh);
ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC);
ZEND_API int zend_cleanup_function_data(zend_function *function TSRMLS_DC);
+ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC);
ZEND_API void destroy_zend_function(zend_function *function TSRMLS_DC);
ZEND_API void zend_function_dtor(zend_function *function);
diff --git a/Zend/zend_config.w32.h b/Zend/zend_config.w32.h
index 61d07b083..0576f2cbc 100644
--- a/Zend/zend_config.w32.h
+++ b/Zend/zend_config.w32.h
@@ -5,7 +5,7 @@
| Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
- | that is bundled with this package in the file LICENSE, and is |
+ | that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
@@ -17,14 +17,15 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_config.w32.h,v 1.39.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_config.w32.h,v 1.39.2.2 2006/03/14 14:19:00 dmitry Exp $ */
#ifndef ZEND_CONFIG_W32_H
#define ZEND_CONFIG_W32_H
#define USE_ZEND_ALLOC 1
-#define HAVE_ALLOCA 1
-#define HAVE_LIMITS_H 1
+
+#include <../main/config.w32.h>
+
#define _CRTDBG_MAP_ALLOC
#include <malloc.h>
@@ -44,19 +45,9 @@
typedef unsigned long ulong;
typedef unsigned int uint;
-#undef HAVE_KILL
-#define HAVE_GETPID 1
-/* #define HAVE_ALLOCA_H 1 */
-#define HAVE_MEMCPY 1
-#define HAVE_STRDUP 1
-#define HAVE_SYS_TYPES_H 1
#define HAVE_STDIOSTR_H 1
#define HAVE_CLASS_ISTDIOSTREAM
#define istdiostream stdiostream
-#define HAVE_STDARG_H 1
-#define HAVE_SNPRINTF 1
-#define HAVE_VSNPRINTF 1
-#define HAVE_STRCOLL 1
#define snprintf _snprintf
#define vsnprintf _vsnprintf
@@ -87,7 +78,7 @@ typedef unsigned int uint;
#define ZEND_DLEXPORT __declspec(dllexport)
#define ZEND_DLIMPORT __declspec(dllimport)
-/* 0x00200000L is MB_SERVICE_NOTIFICATION, which is only supported under Windows NT
+/* 0x00200000L is MB_SERVICE_NOTIFICATION, which is only supported under Windows NT
* (and requires _WIN32_WINNT to be defined, which prevents the resulting executable
* from running under Windows 9x
* Windows 9x should silently ignore it, so it's being used here directly
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index eda2ab0f8..5703c3661 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_constants.c,v 1.71.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_constants.c,v 1.71.2.5 2006/03/15 14:12:26 dmitry Exp $ */
#include "zend.h"
#include "zend_constants.h"
@@ -55,11 +55,13 @@ void zend_copy_constants(HashTable *target, HashTable *source)
static int clean_non_persistent_constant(zend_constant *c TSRMLS_DC)
{
- if (c->flags & CONST_PERSISTENT) {
- return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
- } else {
- return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
- }
+ return (c->flags & CONST_PERSISTENT) ? ZEND_HASH_APPLY_STOP : ZEND_HASH_APPLY_REMOVE;
+}
+
+
+static int clean_non_persistent_constant_full(zend_constant *c TSRMLS_DC)
+{
+ return (c->flags & CONST_PERSISTENT) ? 0 : 1;
}
@@ -112,8 +114,7 @@ void zend_register_standard_constants(TSRMLS_D)
{
zend_constant c;
- c.value.type = IS_BOOL;
- c.flags = CONST_PERSISTENT;
+ c.flags = CONST_PERSISTENT | CONST_CT_SUBST;
c.module_number = 0;
c.name = zend_strndup(ZEND_STRL("TRUE"));
@@ -128,16 +129,18 @@ void zend_register_standard_constants(TSRMLS_D)
c.value.type = IS_BOOL;
zend_register_constant(&c TSRMLS_CC);
+ c.name = zend_strndup(ZEND_STRL("NULL"));
+ c.name_len = sizeof("NULL");
+ c.value.type = IS_NULL;
+ zend_register_constant(&c TSRMLS_CC);
+
+ c.flags = CONST_PERSISTENT;
+
c.name = zend_strndup(ZEND_STRL("ZEND_THREAD_SAFE"));
c.name_len = sizeof("ZEND_THREAD_SAFE");
c.value.value.lval = ZTS_V;
c.value.type = IS_BOOL;
zend_register_constant(&c TSRMLS_CC);
-
- c.name = zend_strndup(ZEND_STRL("NULL"));
- c.name_len = sizeof("NULL");
- c.value.type = IS_NULL;
- zend_register_constant(&c TSRMLS_CC);
}
}
@@ -153,7 +156,7 @@ int zend_shutdown_constants(TSRMLS_D)
void clean_non_persistent_constants(TSRMLS_D)
{
if (EG(full_tables_cleanup)) {
- zend_hash_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
+ zend_hash_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant_full TSRMLS_CC);
} else {
zend_hash_reverse_apply(EG(zend_constants), (apply_func_t) clean_non_persistent_constant TSRMLS_CC);
}
@@ -309,8 +312,8 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC)
if (!(c->flags & CONST_CS)) {
/* keep in mind that c->name_len already contains the '\0' */
- lowercase_name = estrndup(c->name, c->name_len);
- zend_str_tolower(lowercase_name, c->name_len);
+ lowercase_name = estrndup(c->name, c->name_len-1);
+ zend_str_tolower(lowercase_name, c->name_len-1);
name = lowercase_name;
} else {
name = c->name;
diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h
index c02e4c531..36814f1ef 100644
--- a/Zend/zend_constants.h
+++ b/Zend/zend_constants.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_constants.h,v 1.31.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_constants.h,v 1.31.2.2 2006/03/15 09:04:36 dmitry Exp $ */
#ifndef ZEND_CONSTANTS_H
#define ZEND_CONSTANTS_H
@@ -26,6 +26,7 @@
#define CONST_CS (1<<0) /* Case Sensitive */
#define CONST_PERSISTENT (1<<1) /* Persistent */
+#define CONST_CT_SUBST (2<<1) /* Allow compile-time substitution */
#define PHP_USER_CONSTANT INT_MAX /* a constant defined in user space */
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 8dfa0065d..c7aac2f1a 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute.c,v 1.716.2.10 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_execute.c,v 1.716.2.12 2006/02/26 10:53:38 helly Exp $ */
#define ZEND_INTENSIVE_DEBUGGING 0
@@ -177,8 +177,8 @@ static inline zval *_get_zval_ptr_var(znode *node, temp_variable *Ts, zend_free_
should_free->var = ptr;
if (T->str_offset.str->type != IS_STRING
- || ((int)T->str_offset.offset<0)
- || (T->str_offset.str->value.str.len <= T->str_offset.offset)) {
+ || ((int)T->str_offset.offset < 0)
+ || (T->str_offset.str->value.str.len <= (int)T->str_offset.offset)) {
zend_error(E_NOTICE, "Uninitialized string offset: %d", T->str_offset.offset);
ptr->value.str.val = STR_EMPTY_ALLOC();
ptr->value.str.len = 0;
@@ -545,6 +545,16 @@ static inline void zend_assign_to_object(znode *result, zval **object_ptr, znode
zval *value = get_zval_ptr(value_op, Ts, &free_value, BP_VAR_R);
zval **retval = &T(result->u.var).var.ptr;
+ if (*object_ptr == EG(error_zval_ptr)) {
+ FREE_OP(free_op2);
+ if (!RETURN_VALUE_UNUSED(result)) {
+ *retval = EG(uninitialized_zval_ptr);
+ PZVAL_LOCK(*retval);
+ }
+ FREE_OP(free_value);
+ return;
+ }
+
make_real_object(object_ptr TSRMLS_CC); /* this should modify object only if it's empty */
object = *object_ptr;
@@ -648,7 +658,7 @@ static inline void zend_assign_to_variable(znode *result, znode *op1, znode *op2
zend_error(E_WARNING, "Illegal string offset: %d", T->str_offset.offset);
break;
}
- if (T->str_offset.offset >= T->str_offset.str->value.str.len) {
+ if ((int)T->str_offset.offset >= T->str_offset.str->value.str.len) {
zend_uint i;
if (T->str_offset.str->value.str.len==0) {
diff --git a/Zend/zend_execute_API.c b/Zend/zend_execute_API.c
index c7f6c960a..b3e54cf18 100644
--- a/Zend/zend_execute_API.c
+++ b/Zend/zend_execute_API.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_execute_API.c,v 1.331.2.11 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_execute_API.c,v 1.331.2.19 2006/03/17 08:47:41 dmitry Exp $ */
#include <stdio.h>
#include <signal.h>
@@ -51,7 +51,7 @@ static DWORD timeout_thread_id;
static int timeout_thread_initialized=0;
#endif
-#if ZEND_DEBUG
+#if 0&&ZEND_DEBUG
static void (*original_sigsegv_handler)(int);
static void zend_handle_sigsegv(int dummy)
{
@@ -95,23 +95,27 @@ static void zend_extension_deactivator(zend_extension *extension TSRMLS_DC)
}
-static int is_not_internal_function(zend_function *function TSRMLS_DC)
+static int clean_non_persistent_function(zend_function *function TSRMLS_DC)
{
- if (function->type == ZEND_INTERNAL_FUNCTION) {
- return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
- } else {
- return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
- }
+ return (function->type == ZEND_INTERNAL_FUNCTION) ? ZEND_HASH_APPLY_STOP : ZEND_HASH_APPLY_REMOVE;
}
-static int is_not_internal_class(zend_class_entry **ce TSRMLS_DC)
+static int clean_non_persistent_function_full(zend_function *function TSRMLS_DC)
{
- if ((*ce)->type == ZEND_INTERNAL_CLASS) {
- return EG(full_tables_cleanup) ? 0 : ZEND_HASH_APPLY_STOP;
- } else {
- return EG(full_tables_cleanup) ? 1 : ZEND_HASH_APPLY_REMOVE;
- }
+ return (function->type != ZEND_INTERNAL_FUNCTION);
+}
+
+
+static int clean_non_persistent_class(zend_class_entry **ce TSRMLS_DC)
+{
+ return ((*ce)->type == ZEND_INTERNAL_CLASS) ? ZEND_HASH_APPLY_STOP : ZEND_HASH_APPLY_REMOVE;
+}
+
+
+static int clean_non_persistent_class_full(zend_class_entry **ce TSRMLS_DC)
+{
+ return ((*ce)->type != ZEND_INTERNAL_CLASS);
}
@@ -251,18 +255,22 @@ void shutdown_executor(TSRMLS_D)
So we want first of all to clean up all data and then move to tables destruction.
Note that only run-time accessed data need to be cleaned up, pre-defined data can
not contain objects and thus are not probelmatic */
- zend_hash_apply(EG(function_table), (apply_func_t) zend_cleanup_function_data TSRMLS_CC);
+ if (EG(full_tables_cleanup)) {
+ zend_hash_apply(EG(function_table), (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC);
+ } else {
+ zend_hash_reverse_apply(EG(function_table), (apply_func_t) zend_cleanup_function_data TSRMLS_CC);
+ }
zend_hash_apply(EG(class_table), (apply_func_t) zend_cleanup_class_data TSRMLS_CC);
zend_ptr_stack_destroy(&EG(argument_stack));
/* Destroy all op arrays */
if (EG(full_tables_cleanup)) {
- zend_hash_apply(EG(function_table), (apply_func_t) is_not_internal_function TSRMLS_CC);
- zend_hash_apply(EG(class_table), (apply_func_t) is_not_internal_class TSRMLS_CC);
+ zend_hash_apply(EG(function_table), (apply_func_t) clean_non_persistent_function_full TSRMLS_CC);
+ zend_hash_apply(EG(class_table), (apply_func_t) clean_non_persistent_class_full TSRMLS_CC);
} else {
- zend_hash_reverse_apply(EG(function_table), (apply_func_t) is_not_internal_function TSRMLS_CC);
- zend_hash_reverse_apply(EG(class_table), (apply_func_t) is_not_internal_class TSRMLS_CC);
+ zend_hash_reverse_apply(EG(function_table), (apply_func_t) clean_non_persistent_function TSRMLS_CC);
+ zend_hash_reverse_apply(EG(class_table), (apply_func_t) clean_non_persistent_class TSRMLS_CC);
}
while (EG(symtable_cache_ptr)>=EG(symtable_cache)) {
@@ -278,7 +286,7 @@ void shutdown_executor(TSRMLS_D)
} zend_end_try();
zend_try {
-#if ZEND_DEBUG
+#if 0&&ZEND_DEBUG
signal(SIGSEGV, original_sigsegv_handler);
#endif
@@ -482,7 +490,7 @@ ZEND_API int zval_update_constant(zval **pp, void *arg TSRMLS_DC)
continue;
}
- if (const_value.type == IS_STRING && const_value.value.str.len == str_index_len-1 &&
+ if (const_value.type == IS_STRING && const_value.value.str.len == (int)str_index_len-1 &&
!strncmp(const_value.value.str.val, str_index, str_index_len)) {
/* constant value is the same as its name */
zval_dtor(&const_value);
@@ -582,6 +590,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
zend_op **original_opline_ptr;
zend_class_entry *current_scope;
zend_class_entry *calling_scope = NULL;
+ zend_class_entry *check_scope_or_static = NULL;
zval *current_this;
zend_execute_data execute_data;
zval *method_name;
@@ -607,6 +616,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
execute_data = *EG(current_execute_data);
EX(op_array) = NULL;
EX(opline) = NULL;
+ EX(object) = NULL;
} else {
/* This only happens when we're called outside any execute()'s
* It shouldn't be strictly necessary to NULL execute_data out,
@@ -662,6 +672,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
ce = &(EG(active_op_array)->scope);
found = (*ce != NULL?SUCCESS:FAILURE);
fci->object_pp = EG(This)?&EG(This):NULL;
+ EX(object) = EG(This);
} else if (strcmp(Z_STRVAL_PP(fci->object_pp), "parent") == 0 && EG(active_op_array)) {
if (!EG(active_op_array)->scope) {
@@ -673,6 +684,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
ce = &(EG(active_op_array)->scope->parent);
found = (*ce != NULL?SUCCESS:FAILURE);
fci->object_pp = EG(This)?&EG(This):NULL;
+ EX(object) = EG(This);
} else {
zend_class_entry *scope;
scope = EG(active_op_array) ? EG(active_op_array)->scope : NULL;
@@ -685,6 +697,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
instanceof_function(Z_OBJCE_P(EG(This)), scope TSRMLS_CC) &&
instanceof_function(scope, *ce TSRMLS_CC)) {
fci->object_pp = &EG(This);
+ EX(object) = EG(This);
} else {
fci->object_pp = NULL;
}
@@ -713,16 +726,18 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
if (calling_scope && (colon = strstr(fname, "::")) != NULL) {
int clen = colon - fname;
int mlen = fname_len - clen - 2;
- zend_class_entry **pce, *ce_child;
+ zend_class_entry **pce, *ce_child = NULL;
if (zend_lookup_class(fname, clen, &pce TSRMLS_CC) == SUCCESS) {
ce_child = *pce;
} else {
char *lcname = zend_str_tolower_dup(fname, clen);
/* caution: lcname is not '\0' terminated */
- if (clen == sizeof("self") - 1 && memcmp(lcname, "self", sizeof("self") - 1) == 0) {
- ce_child = EG(active_op_array) ? EG(active_op_array)->scope : NULL;
- } else if (clen == sizeof("parent") - 1 && memcmp(lcname, "parent", sizeof("parent") - 1) == 0 && EG(active_op_array)->scope) {
- ce_child = EG(active_op_array) && EG(active_op_array)->scope ? EG(scope)->parent : NULL;
+ if (calling_scope) {
+ if (clen == sizeof("self") - 1 && memcmp(lcname, "self", sizeof("self") - 1) == 0) {
+ ce_child = EG(active_op_array) ? EG(active_op_array)->scope : NULL;
+ } else if (clen == sizeof("parent") - 1 && memcmp(lcname, "parent", sizeof("parent") - 1) == 0 && EG(active_op_array)->scope) {
+ ce_child = EG(active_op_array) && EG(active_op_array)->scope ? EG(scope)->parent : NULL;
+ }
}
efree(lcname);
}
@@ -730,10 +745,7 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
zend_error(E_ERROR, "Cannot call method %s() or method does not exist", fname);
return FAILURE;
}
- if (!instanceof_function(calling_scope, ce_child TSRMLS_CC)) {
- zend_error(E_ERROR, "Cannot call method %s() of class %s which is not a derived from %s", fname, ce_child->name, calling_scope->name);
- return 0;
- }
+ check_scope_or_static = calling_scope;
fci->function_table = &ce_child->function_table;
calling_scope = ce_child;
fname = fname + clen + 2;
@@ -760,6 +772,12 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
EX(function_state).function =
zend_std_get_static_method(calling_scope, function_name_lc, fname_len TSRMLS_CC);
efree(function_name_lc);
+ if (check_scope_or_static && EX(function_state).function
+ && !(EX(function_state).function->common.fn_flags & ZEND_ACC_STATIC)
+ && !instanceof_function(check_scope_or_static, calling_scope TSRMLS_CC)) {
+ zend_error(E_ERROR, "Cannot call method %s() of class %s which is not a derived from %s", fname, calling_scope->name, check_scope_or_static->name);
+ return 0;
+ }
} else {
char *function_name_lc = zend_str_tolower_dup(fname, fname_len);
@@ -796,6 +814,19 @@ int zend_call_function(zend_fcall_info *fci, zend_fcall_info_cache *fci_cache TS
EX(function_state).function = fci_cache->function_handler;
calling_scope = fci_cache->calling_scope;
fci->object_pp = fci_cache->object_pp;
+ EX(object) = fci->object_pp ? *fci->object_pp : NULL;
+ }
+
+ if (EX(function_state).function->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) {
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
+ zend_error_noreturn(E_ERROR, "Cannot call abstract method %v::%v()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
+ }
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) {
+ zend_error(E_STRICT, "Function %s%s%s() is deprecated",
+ EX(function_state).function->common.scope ? EX(function_state).function->common.scope->name : "",
+ EX(function_state).function->common.scope ? "::" : "",
+ EX(function_state).function->common.function_name);
+ }
}
for (i=0; i<fci->param_count; i++) {
diff --git a/Zend/zend_hash.c b/Zend/zend_hash.c
index d37a6737b..36dafd680 100644
--- a/Zend/zend_hash.c
+++ b/Zend/zend_hash.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_hash.c,v 1.121.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_hash.c,v 1.121.2.4 2006/04/07 10:06:21 dmitry Exp $ */
#include "zend.h"
@@ -102,14 +102,14 @@ ZEND_API ulong zend_hash_func(char *arKey, uint nKeyLength)
#define UPDATE_DATA(ht, p, pData, nDataSize) \
if (nDataSize == sizeof(void*)) { \
- if (!(p)->pDataPtr) { \
- pefree_rel((p)->pData, (ht)->persistent); \
+ if ((p)->pData != &(p)->pDataPtr) { \
+ pefree_rel((p)->pData, (ht)->persistent); \
} \
memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
(p)->pData = &(p)->pDataPtr; \
} else { \
- if ((p)->pDataPtr) { \
- (p)->pData = (void *) pemalloc_rel(nDataSize, (ht)->persistent); \
+ if ((p)->pData == &(p)->pDataPtr) { \
+ (p)->pData = (void *) pemalloc_rel(nDataSize, (ht)->persistent); \
(p)->pDataPtr=NULL; \
} else { \
(p)->pData = (void *) perealloc_rel((p)->pData, nDataSize, (ht)->persistent); \
@@ -123,9 +123,9 @@ ZEND_API ulong zend_hash_func(char *arKey, uint nKeyLength)
memcpy(&(p)->pDataPtr, pData, sizeof(void *)); \
(p)->pData = &(p)->pDataPtr; \
} else { \
- (p)->pData = (void *) pemalloc_rel(nDataSize, (ht)->persistent); \
+ (p)->pData = (void *) pemalloc_rel(nDataSize, (ht)->persistent);\
if (!(p)->pData) { \
- pefree_rel(p, (ht)->persistent); \
+ pefree_rel(p, (ht)->persistent); \
return FAILURE; \
} \
memcpy((p)->pData, pData, nDataSize); \
@@ -461,8 +461,10 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, char *arKey, uint nKeyLen
p = ht->arBuckets[nIndex];
while (p != NULL) {
- if ((p->h == h) && ((p->nKeyLength == 0) || /* Numeric index */
- ((p->nKeyLength == nKeyLength) && (!memcmp(p->arKey, arKey, nKeyLength))))) {
+ if ((p->h == h)
+ && (p->nKeyLength == nKeyLength)
+ && ((p->nKeyLength == 0) /* Numeric index (short circuits the memcmp() check) */
+ || !memcmp(p->arKey, arKey, nKeyLength))) { /* String index */
HANDLE_BLOCK_INTERRUPTIONS();
if (p == ht->arBuckets[nIndex]) {
ht->arBuckets[nIndex] = p->pNext;
@@ -489,7 +491,7 @@ ZEND_API int zend_hash_del_key_or_index(HashTable *ht, char *arKey, uint nKeyLen
if (ht->pDestructor) {
ht->pDestructor(p->pData);
}
- if (!p->pDataPtr) {
+ if (p->pData != &p->pDataPtr) {
pefree(p->pData, ht->persistent);
}
pefree(p, ht->persistent);
@@ -518,7 +520,7 @@ ZEND_API void zend_hash_destroy(HashTable *ht)
if (ht->pDestructor) {
ht->pDestructor(q->pData);
}
- if (!q->pDataPtr && q->pData) {
+ if (q->pData != &q->pDataPtr) {
pefree(q->pData, ht->persistent);
}
pefree(q, ht->persistent);
@@ -544,7 +546,7 @@ ZEND_API void zend_hash_clean(HashTable *ht)
if (ht->pDestructor) {
ht->pDestructor(q->pData);
}
- if (!q->pDataPtr && q->pData) {
+ if (q->pData != &q->pDataPtr) {
pefree(q->pData, ht->persistent);
}
pefree(q, ht->persistent);
@@ -573,7 +575,7 @@ static Bucket *zend_hash_apply_deleter(HashTable *ht, Bucket *p)
if (ht->pDestructor) {
ht->pDestructor(p->pData);
}
- if (!p->pDataPtr) {
+ if (p->pData != &p->pDataPtr) {
pefree(p->pData, ht->persistent);
}
retval = p->pListNext;
@@ -732,11 +734,7 @@ ZEND_API void zend_hash_reverse_apply(HashTable *ht, apply_func_t apply_func TSR
q = p;
p = p->pListLast;
if (result & ZEND_HASH_APPLY_REMOVE) {
- if (q->nKeyLength>0) {
- zend_hash_del(ht, q->arKey, q->nKeyLength);
- } else {
- zend_hash_index_del(ht, q->h);
- }
+ zend_hash_apply_deleter(ht, q);
}
if (result & ZEND_HASH_APPLY_STOP) {
break;
@@ -1259,7 +1257,7 @@ ZEND_API int zend_hash_sort(HashTable *ht, sort_func_t sort_func,
ZEND_API int zend_hash_compare(HashTable *ht1, HashTable *ht2, compare_func_t compar, zend_bool ordered TSRMLS_DC)
{
- Bucket *p1, *p2;
+ Bucket *p1, *p2 = NULL;
int result;
void *pData2;
diff --git a/Zend/zend_ini_parser.c b/Zend/zend_ini_parser.c
index 0419a32d1..d8b56479e 100644
--- a/Zend/zend_ini_parser.c
+++ b/Zend/zend_ini_parser.c
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,16 +17,24 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
-/* Written by Richard Stallman by simplifying the original so called
- ``semantic'' parser. */
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
@@ -36,6 +46,9 @@
/* Identify Bison output. */
#define YYBISON 1
+/* Bison version. */
+#define YYBISON_VERSION "2.3"
+
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -45,8 +58,7 @@
/* Using locations. */
#define YYLSP_NEEDED 0
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
+/* Substitute the variable and function names. */
#define yyparse ini_parse
#define yylex ini_lex
#define yyerror ini_error
@@ -71,6 +83,7 @@
TC_DOLLAR_CURLY = 264
};
#endif
+/* Tokens. */
#define TC_STRING 258
#define TC_ENCAPSULATED_STRING 259
#define BRACK 260
@@ -303,7 +316,12 @@ ZEND_API int zend_parse_ini_file(zend_file_handle *fh, zend_bool unbuffered_erro
# define YYERROR_VERBOSE 0
#endif
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -315,56 +333,171 @@ typedef int YYSTYPE;
/* Copy the second part of user declarations. */
-/* Line 214 of yacc.c. */
+/* Line 216 of yacc.c. */
+
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
-# ifndef YYFREE
-# define YYFREE free
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+ int i;
+#endif
+{
+ return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
# endif
+# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-#if (! defined (yyoverflow) \
- && (! defined (__cplusplus) \
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- short int yyss;
+ yytype_int16 yyss;
YYSTYPE yyvs;
};
@@ -374,24 +507,24 @@ union yyalloc
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
-# if defined (__GNUC__) && 1 < __GNUC__
+# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
- register YYSIZE_T yyi; \
+ YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
- while (0)
+ while (YYID (0))
# endif
# endif
@@ -409,39 +542,33 @@ union yyalloc
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
- while (0)
+ while (YYID (0))
#endif
-#if defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
+/* YYFINAL -- State number of the termination state. */
#define YYFINAL 2
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 43
-/* YYNTOKENS -- Number of terminals. */
+/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 19
-/* YYNNTS -- Number of nonterminals. */
+/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 8
-/* YYNRULES -- Number of rules. */
+/* YYNRULES -- Number of rules. */
#define YYNRULES 26
-/* YYNRULES -- Number of states. */
+/* YYNRULES -- Number of states. */
#define YYNSTATES 36
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 264
-#define YYTRANSLATE(YYX) \
+#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const unsigned char yytranslate[] =
+static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
15, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -475,15 +602,15 @@ static const unsigned char yytranslate[] =
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
-static const unsigned char yyprhs[] =
+static const yytype_uint8 yyprhs[] =
{
0, 0, 3, 6, 7, 11, 16, 18, 20, 22,
24, 26, 28, 30, 32, 33, 36, 39, 42, 43,
47, 49, 53, 57, 60, 63, 67
};
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const yysigned_char yyrhs[] =
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int8 yyrhs[] =
{
20, 0, -1, 20, 21, -1, -1, 3, 14, 22,
-1, 3, 5, 14, 22, -1, 3, -1, 6, -1,
@@ -495,7 +622,7 @@ static const yysigned_char yyrhs[] =
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
+static const yytype_uint16 yyrline[] =
{
0, 221, 221, 222, 226, 234, 242, 243, 244, 249,
250, 251, 252, 253, 254, 259, 260, 261, 262, 266,
@@ -503,9 +630,9 @@ static const unsigned short int yyrline[] =
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "TC_STRING", "TC_ENCAPSULATED_STRING",
@@ -519,7 +646,7 @@ static const char *const yytname[] =
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
-static const unsigned short int yytoknum[] =
+static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
124, 38, 126, 33, 61, 10, 125, 40, 41
@@ -527,7 +654,7 @@ static const unsigned short int yytoknum[] =
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
+static const yytype_uint8 yyr1[] =
{
0, 19, 20, 20, 21, 21, 21, 21, 21, 22,
22, 22, 22, 22, 22, 23, 23, 23, 23, 24,
@@ -535,7 +662,7 @@ static const unsigned char yyr1[] =
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
+static const yytype_uint8 yyr2[] =
{
0, 2, 2, 0, 3, 4, 1, 1, 1, 1,
1, 1, 1, 1, 0, 2, 2, 2, 0, 3,
@@ -545,7 +672,7 @@ static const unsigned char yyr2[] =
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
-static const unsigned char yydefact[] =
+static const yytype_uint8 yydefact[] =
{
3, 0, 1, 6, 7, 8, 2, 0, 14, 14,
26, 10, 11, 0, 0, 13, 0, 4, 12, 9,
@@ -553,8 +680,8 @@ static const unsigned char yydefact[] =
0, 25, 0, 21, 22, 19
};
-/* YYDEFGOTO[NTERM-NUM]. */
-static const yysigned_char yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int8 yydefgoto[] =
{
-1, 1, 6, 17, 18, 27, 19, 20
};
@@ -562,7 +689,7 @@ static const yysigned_char yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -14
-static const yysigned_char yypact[] =
+static const yytype_int8 yypact[] =
{
-14, 4, -14, -3, -14, -14, -14, -2, 17, 17,
-14, -14, -14, 10, 10, -14, 10, -14, 5, -5,
@@ -571,7 +698,7 @@ static const yysigned_char yypact[] =
};
/* YYPGOTO[NTERM-NUM]. */
-static const yysigned_char yypgoto[] =
+static const yytype_int8 yypgoto[] =
{
-14, -14, -14, 19, -14, -14, -13, 13
};
@@ -581,7 +708,7 @@ static const yysigned_char yypgoto[] =
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -19
-static const yysigned_char yytable[] =
+static const yytype_int8 yytable[] =
{
22, 23, 7, 24, 2, 29, 30, 3, 10, 25,
4, 8, 9, 10, 26, 32, 33, 34, 35, 5,
@@ -590,7 +717,7 @@ static const yysigned_char yytable[] =
0, 0, 0, 31
};
-static const yysigned_char yycheck[] =
+static const yytype_int8 yycheck[] =
{
13, 14, 5, 16, 0, 10, 11, 3, 3, 4,
6, 14, 14, 3, 9, 3, 29, 30, 16, 15,
@@ -601,7 +728,7 @@ static const yysigned_char yycheck[] =
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
+static const yytype_uint8 yystos[] =
{
0, 20, 0, 3, 6, 15, 21, 5, 14, 14,
3, 7, 8, 12, 13, 15, 17, 22, 23, 25,
@@ -609,22 +736,6 @@ static const unsigned char yystos[] =
11, 18, 3, 25, 25, 16
};
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
@@ -650,30 +761,63 @@ do \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
+ YYPOPSTACK (1); \
goto yybackup; \
} \
else \
- { \
- yyerror ("syntax error: cannot back up");\
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
-while (0)
+while (YYID (0))
+
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
#endif
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
@@ -694,42 +838,96 @@ while (0)
do { \
if (yydebug) \
YYFPRINTF Args; \
-} while (0)
+} while (YYID (0))
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Token, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (short int *bottom, short int *top)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
- short int *bottom;
- short int *top;
+ yytype_int16 *bottom;
+ yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (/* Nothing. */; bottom <= top; ++bottom)
+ for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
@@ -738,45 +936,52 @@ yy_stack_print (bottom, top)
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
-} while (0)
+} while (YYID (0))
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yy_reduce_print (int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
-yy_reduce_print (yyrule)
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
int yyrule;
#endif
{
+ int yynrhs = yyr2[yyrule];
int yyi;
- unsigned int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylno);
- /* Print the symbols being reduced, and their result. */
- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
- yy_reduce_print (Rule); \
-} while (0)
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -791,13 +996,9 @@ int yydebug;
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
@@ -807,45 +1008,47 @@ int yydebug;
#if YYERROR_VERBOSE
# ifndef yystrlen
-# if defined (__GLIBC__) && defined (_STRING_H)
+# if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
-# else
+#else
+static YYSIZE_T
yystrlen (yystr)
- const char *yystr;
-# endif
+ const char *yystr;
+#endif
{
- register const char *yys = yystr;
-
- while (*yys++ != '\0')
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
continue;
-
- return yys - yystr - 1;
+ return yylen;
}
# endif
# endif
# ifndef yystpcpy
-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static char *
-# if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
-# else
+#else
+static char *
yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-# endif
+ char *yydest;
+ const char *yysrc;
+#endif
{
- register char *yyd = yydest;
- register const char *yys = yysrc;
+ char *yyd = yydest;
+ const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
@@ -855,70 +1058,192 @@ yystpcpy (yydest, yysrc)
# endif
# endif
-#endif /* !YYERROR_VERBOSE */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
-
+ if (! yyres)
+ return yystrlen (yystr);
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
+ int yyn = yypact[yystate];
- if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- switch (yytype)
{
- default:
- break;
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
}
- YYFPRINTF (yyoutput, ")");
}
+#endif /* YYERROR_VERBOSE */
+
-#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
-yydestruct (yytype, yyvaluep)
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
- break;
+ break;
}
}
@@ -926,13 +1251,13 @@ yydestruct (yytype, yyvaluep)
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
-# else
+#else
int yyparse ();
-# endif
+#endif
#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
@@ -949,14 +1274,18 @@ int yyparse ();
`----------*/
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-# endif
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+#endif
#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
@@ -966,22 +1295,28 @@ yyparse ()
#endif
#endif
{
- /* The lookahead symbol. */
+ /* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
- register int yystate;
- register int yyn;
+ int yystate;
+ int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
+ /* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
/* Three stacks and their tools:
`yyss': related to states,
@@ -992,18 +1327,18 @@ int yynerrs;
to reallocate them elsewhere. */
/* The state stack. */
- short int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- register short int *yyssp;
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
- register YYSTYPE *yyvsp;
+ YYSTYPE *yyvsp;
-#define YYPOPSTACK (yyvsp--, yyssp--)
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
YYSIZE_T yystacksize = YYINITDEPTH;
@@ -1012,9 +1347,9 @@ int yynerrs;
YYSTYPE yyval;
- /* When reducing, the number of symbols on the RHS of the reduced
- rule. */
- int yylen;
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
YYDPRINTF ((stderr, "Starting parse\n"));
@@ -1031,7 +1366,6 @@ int yynerrs;
yyssp = yyss;
yyvsp = yyvs;
-
goto yysetstate;
/*------------------------------------------------------------.
@@ -1039,8 +1373,7 @@ int yynerrs;
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks.
- */
+ have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
yysetstate:
@@ -1053,18 +1386,18 @@ int yynerrs;
#ifdef yyoverflow
{
- /* Give user a chance to reallocate the stack. Use copies of
+ /* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
- short int *yyss1 = yyss;
+ yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
- yyoverflow ("parser stack overflow",
+ yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
@@ -1075,21 +1408,21 @@ int yynerrs;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
+ goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
- short int *yyss1 = yyss;
+ yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
@@ -1120,19 +1453,17 @@ int yynerrs;
`-----------*/
yybackup:
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
+ /* Do appropriate processing given the current state. Read a
+ look-ahead token if we need one and don't already have one. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -1147,7 +1478,7 @@ yybackup:
else
{
yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -1167,22 +1498,21 @@ yybackup:
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
-
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
yystate = yyn;
+ *++yyvsp = yylval;
+
goto yynewstate;
@@ -1221,11 +1551,11 @@ yyreduce:
{
#if DEBUG_CFG_PARSER
- printf("'%s' = '%s'\n", yyvsp[-2].value.str.val, yyvsp[0].value.str.val);
+ printf("'%s' = '%s'\n", (yyvsp[(1) - (3)]).value.str.val, (yyvsp[(3) - (3)]).value.str.val);
#endif
- ZEND_INI_PARSER_CB(&yyvsp[-2], &yyvsp[0], ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG);
- free(yyvsp[-2].value.str.val);
- free(yyvsp[0].value.str.val);
+ ZEND_INI_PARSER_CB(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG);
+ free((yyvsp[(1) - (3)]).value.str.val);
+ free((yyvsp[(3) - (3)]).value.str.val);
}
break;
@@ -1233,124 +1563,123 @@ yyreduce:
{
#if DEBUG_CFG_PARSER
- printf("'%s'[ ] = '%s'\n", yyvsp[-3].value.str.val, yyvsp[0].value.str.val);
+ printf("'%s'[ ] = '%s'\n", (yyvsp[(1) - (4)]).value.str.val, (yyvsp[(4) - (4)]).value.str.val);
#endif
- ZEND_INI_PARSER_CB(&yyvsp[-3], &yyvsp[0], ZEND_INI_PARSER_POP_ENTRY, ZEND_INI_PARSER_ARG);
- free(yyvsp[-3].value.str.val);
- free(yyvsp[0].value.str.val);
+ ZEND_INI_PARSER_CB(&(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), ZEND_INI_PARSER_POP_ENTRY, ZEND_INI_PARSER_ARG);
+ free((yyvsp[(1) - (4)]).value.str.val);
+ free((yyvsp[(4) - (4)]).value.str.val);
}
break;
case 6:
- { ZEND_INI_PARSER_CB(&yyvsp[0], NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG); free(yyvsp[0].value.str.val); }
+ { ZEND_INI_PARSER_CB(&(yyvsp[(1) - (1)]), NULL, ZEND_INI_PARSER_ENTRY, ZEND_INI_PARSER_ARG); free((yyvsp[(1) - (1)]).value.str.val); }
break;
case 7:
- { ZEND_INI_PARSER_CB(&yyvsp[0], NULL, ZEND_INI_PARSER_SECTION, ZEND_INI_PARSER_ARG); free(yyvsp[0].value.str.val); }
+ { ZEND_INI_PARSER_CB(&(yyvsp[(1) - (1)]), NULL, ZEND_INI_PARSER_SECTION, ZEND_INI_PARSER_ARG); free((yyvsp[(1) - (1)]).value.str.val); }
break;
case 9:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 10:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 11:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 12:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 13:
- { zend_ini_init_string(&yyval); }
+ { zend_ini_init_string(&(yyval)); }
break;
case 14:
- { zend_ini_init_string(&yyval); }
+ { zend_ini_init_string(&(yyval)); }
break;
case 15:
- { zend_ini_add_string(&yyval, &yyvsp[-1], &yyvsp[0]); free(yyvsp[0].value.str.val); }
+ { zend_ini_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); free((yyvsp[(2) - (2)]).value.str.val); }
break;
case 16:
- { zend_ini_add_string(&yyval, &yyvsp[-1], &yyvsp[0]); free(yyvsp[0].value.str.val); }
+ { zend_ini_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); free((yyvsp[(2) - (2)]).value.str.val); }
break;
case 17:
- { zend_ini_add_string(&yyval, &yyvsp[-1], &yyvsp[0]); }
+ { zend_ini_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); }
break;
case 18:
- { zend_ini_init_string(&yyval); }
+ { zend_ini_init_string(&(yyval)); }
break;
case 19:
- { zend_ini_get_var(&yyval, &yyvsp[-1]); }
+ { zend_ini_get_var(&(yyval), &(yyvsp[(2) - (3)])); }
break;
case 20:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 21:
- { zend_ini_do_op('|', &yyval, &yyvsp[-2], &yyvsp[0]); }
+ { zend_ini_do_op('|', &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)])); }
break;
case 22:
- { zend_ini_do_op('&', &yyval, &yyvsp[-2], &yyvsp[0]); }
+ { zend_ini_do_op('&', &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)])); }
break;
case 23:
- { zend_ini_do_op('~', &yyval, &yyvsp[0], NULL); }
+ { zend_ini_do_op('~', &(yyval), &(yyvsp[(2) - (2)]), NULL); }
break;
case 24:
- { zend_ini_do_op('!', &yyval, &yyvsp[0], NULL); }
+ { zend_ini_do_op('!', &(yyval), &(yyvsp[(2) - (2)]), NULL); }
break;
case 25:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 26:
- { zend_ini_get_constant(&yyval, &yyvsp[0]); }
+ { zend_ini_get_constant(&(yyval), &(yyvsp[(1) - (1)])); }
break;
- }
-
-/* Line 1010 of yacc.c. */
-
-
- yyvsp -= yylen;
- yyssp -= yylen;
+/* Line 1267 of yacc.c. */
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+ YYPOPSTACK (yylen);
+ yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
@@ -1379,99 +1708,65 @@ yyerrlab:
if (!yyerrstatus)
{
++yynerrs;
-#if YYERROR_VERBOSE
- yyn = yypact[yystate];
-
- if (YYPACT_NINF < yyn && yyn < YYLAST)
- {
- YYSIZE_T yysize = 0;
- int yytype = YYTRANSLATE (yychar);
- const char* yyprefix;
- char *yymsg;
- int yyx;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 0;
-
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
{
- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
- yycount += 1;
- if (yycount == 5)
- {
- yysize = 0;
- break;
- }
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
}
- yysize += (sizeof ("syntax error, unexpected ")
- + yystrlen (yytname[yytype]));
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg != 0)
- {
- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
- yyp = yystpcpy (yyp, yytname[yytype]);
-
- if (yycount < 5)
- {
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- yyp = yystpcpy (yyp, yyprefix);
- yyp = yystpcpy (yyp, yytname[yyx]);
- yyprefix = " or ";
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- yyerror ("syntax error; also virtual memory exhausted");
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror ("syntax error");
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
}
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
+ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
- {
- /* If at end of input, pop the error token,
- then the rest of the stack, then return failure. */
+ {
+ /* Return failure if at end of input. */
if (yychar == YYEOF)
- for (;;)
- {
- YYPOPSTACK;
- if (yyssp == yyss)
- YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
- }
- }
+ YYABORT;
+ }
else
{
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
yychar = YYEMPTY;
-
}
}
- /* Else will try to reuse lookahead token after shifting the error
+ /* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
@@ -1481,15 +1776,17 @@ yyerrlab:
`---------------------------------------------------*/
yyerrorlab:
-#ifdef __GNUC__
- /* Pacify GCC when the user code never invokes YYERROR and the label
- yyerrorlab therefore never appears in user code. */
- if (0)
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
goto yyerrorlab;
-#endif
- yyvsp -= yylen;
- yyssp -= yylen;
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp;
goto yyerrlab1;
@@ -1518,9 +1815,10 @@ yyerrlab1:
if (yyssp == yyss)
YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[yystate], yyvsp);
- YYPOPSTACK;
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
@@ -1528,11 +1826,12 @@ yyerrlab1:
if (yyn == YYFINAL)
YYACCEPT;
- YYDPRINTF ((stderr, "Shifting error token, "));
-
*++yyvsp = yylval;
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
yystate = yyn;
goto yynewstate;
@@ -1552,21 +1851,39 @@ yyabortlab:
goto yyreturn;
#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here. |
-`----------------------------------------------*/
-yyoverflowlab:
- yyerror ("parser stack overflow");
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
- return yyresult;
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
}
diff --git a/Zend/zend_ini_parser.h b/Zend/zend_ini_parser.h
index 836fbccf4..9e652172c 100644
--- a/Zend/zend_ini_parser.h
+++ b/Zend/zend_ini_parser.h
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,13 +17,21 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
@@ -38,6 +48,7 @@
TC_DOLLAR_CURLY = 264
};
#endif
+/* Tokens. */
#define TC_STRING 258
#define TC_ENCAPSULATED_STRING 259
#define BRACK 260
@@ -49,7 +60,7 @@
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -58,5 +69,3 @@ typedef int YYSTYPE;
-
-
diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c
index 02c52dd18..276c9885a 100644
--- a/Zend/zend_ini_scanner.c
+++ b/Zend/zend_ini_scanner.c
@@ -495,7 +495,7 @@ char *yytext;
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini_scanner.l,v 1.41.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ini_scanner.l,v 1.41.2.2 2006/01/17 19:56:25 iliaa Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -887,8 +887,18 @@ YY_RULE_SETUP
case 5:
YY_RULE_SETUP
{
+ char *p = yytext;
+
/* ENCAPSULATED TC_STRING */
+ while ((p = strpbrk(p, "\r\n"))) {
+ if (*p == '\r' && *(p + 1) == '\n') {
+ p++;
+ }
+ SCNG(lineno)++;
+ p++;
+ }
+
/* eat trailing " */
yytext[yyleng-1]=0;
diff --git a/Zend/zend_ini_scanner.l b/Zend/zend_ini_scanner.l
index 2a1dad899..24414c32a 100644
--- a/Zend/zend_ini_scanner.l
+++ b/Zend/zend_ini_scanner.l
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_ini_scanner.l,v 1.41.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_ini_scanner.l,v 1.41.2.2 2006/01/17 19:56:25 iliaa Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -139,8 +139,18 @@ NEWLINE ("\r"|"\n"|"\r\n")
<INITIAL>["][^"]*["] {
+ char *p = yytext;
+
/* ENCAPSULATED TC_STRING */
+ while ((p = strpbrk(p, "\r\n"))) {
+ if (*p == '\r' && *(p + 1) == '\n') {
+ p++;
+ }
+ SCNG(lineno)++;
+ p++;
+ }
+
/* eat trailing " */
yytext[yyleng-1]=0;
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index bd8dcc357..745c7470c 100755
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_interfaces.c,v 1.33.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_interfaces.c,v 1.33.2.3 2006/02/26 10:53:38 helly Exp $ */
#include "zend.h"
#include "zend_API.h"
@@ -336,7 +336,7 @@ static int zend_implement_aggregate(zend_class_entry *interface, zend_class_entr
} else if (class_type->get_iterator != zend_user_it_get_new_iterator) {
/* c-level get_iterator cannot be changed (exception being only Traversable is implmented) */
if (class_type->num_interfaces) {
- for (i = 0; i < class_type->num_interfaces; i++) {
+ for (i = 0; i < (int)class_type->num_interfaces; i++) {
if (class_type->interfaces[i] == zend_ce_iterator) {
return FAILURE;
}
diff --git a/Zend/zend_language_parser.c b/Zend/zend_language_parser.c
index 7040aa962..35f0e6523 100644
--- a/Zend/zend_language_parser.c
+++ b/Zend/zend_language_parser.c
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,16 +17,24 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
-/* Written by Richard Stallman by simplifying the original so called
- ``semantic'' parser. */
+/* C LALR(1) parser skeleton written by Richard Stallman, by
+ simplifying the original so-called "semantic" parser. */
/* All symbols defined below should begin with yy or YY, to avoid
infringing on user name space. This should be done even for local
@@ -36,6 +46,9 @@
/* Identify Bison output. */
#define YYBISON 1
+/* Bison version. */
+#define YYBISON_VERSION "2.3"
+
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -45,8 +58,7 @@
/* Using locations. */
#define YYLSP_NEEDED 0
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
+/* Substitute the variable and function names. */
#define yyparse zendparse
#define yylex zendlex
#define yyerror zenderror
@@ -182,6 +194,7 @@
T_PAAMAYIM_NEKUDOTAYIM = 375
};
#endif
+/* Tokens. */
#define T_REQUIRE_ONCE 258
#define T_REQUIRE 259
#define T_EVAL 260
@@ -326,7 +339,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y,v 1.160.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_language_parser.y,v 1.160.2.4 2006/03/12 16:52:18 iliaa Exp $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -369,7 +382,12 @@
# define YYERROR_VERBOSE 0
#endif
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+/* Enabling the token table. */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -381,56 +399,171 @@ typedef int YYSTYPE;
/* Copy the second part of user declarations. */
-/* Line 214 of yacc.c. */
+/* Line 216 of yacc.c. */
+
+
+#ifdef short
+# undef short
+#endif
+
+#ifdef YYTYPE_UINT8
+typedef YYTYPE_UINT8 yytype_uint8;
+#else
+typedef unsigned char yytype_uint8;
+#endif
+#ifdef YYTYPE_INT8
+typedef YYTYPE_INT8 yytype_int8;
+#elif (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+typedef signed char yytype_int8;
+#else
+typedef short int yytype_int8;
+#endif
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
+#ifdef YYTYPE_UINT16
+typedef YYTYPE_UINT16 yytype_uint16;
+#else
+typedef unsigned short int yytype_uint16;
+#endif
-# ifndef YYFREE
-# define YYFREE free
+#ifdef YYTYPE_INT16
+typedef YYTYPE_INT16 yytype_int16;
+#else
+typedef short int yytype_int16;
+#endif
+
+#ifndef YYSIZE_T
+# ifdef __SIZE_TYPE__
+# define YYSIZE_T __SIZE_TYPE__
+# elif defined size_t
+# define YYSIZE_T size_t
+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+# else
+# define YYSIZE_T unsigned int
# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
+#endif
+
+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
+
+#ifndef YY_
+# if YYENABLE_NLS
+# if ENABLE_NLS
+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+# define YY_(msgid) dgettext ("bison-runtime", msgid)
+# endif
+# endif
+# ifndef YY_
+# define YY_(msgid) msgid
# endif
+#endif
+
+/* Suppress unused-variable warnings by "using" E. */
+#if ! defined lint || defined __GNUC__
+# define YYUSE(e) ((void) (e))
+#else
+# define YYUSE(e) /* empty */
+#endif
+
+/* Identity function, used to suppress warnings about constant conditions. */
+#ifndef lint
+# define YYID(n) (n)
+#else
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static int
+YYID (int i)
+#else
+static int
+YYID (i)
+ int i;
+#endif
+{
+ return i;
+}
+#endif
+
+#if ! defined yyoverflow || YYERROR_VERBOSE
/* The parser invokes alloca or malloc; define the necessary symbols. */
# ifdef YYSTACK_USE_ALLOCA
# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
# ifdef __GNUC__
# define YYSTACK_ALLOC __builtin_alloca
+# elif defined __BUILTIN_VA_ARG_INCR
+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
+# elif defined _AIX
+# define YYSTACK_ALLOC __alloca
+# elif defined _MSC_VER
+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
+# define alloca _alloca
+# else
+# define YYSTACK_ALLOC alloca
+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
# endif
# endif
# endif
# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
+ /* Pacify GCC's `empty if-body' warning. */
+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
+# ifndef YYSTACK_ALLOC_MAXIMUM
+ /* The OS might guarantee only one guard page at the bottom of the stack,
+ and a page size can be as small as 4096 bytes. So we cannot safely
+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
+ to allow for a few compiler-allocated temporary stack slots. */
+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
# endif
+# else
# define YYSTACK_ALLOC YYMALLOC
# define YYSTACK_FREE YYFREE
+# ifndef YYSTACK_ALLOC_MAXIMUM
+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
+# endif
+# if (defined __cplusplus && ! defined _STDLIB_H \
+ && ! ((defined YYMALLOC || defined malloc) \
+ && (defined YYFREE || defined free)))
+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+# ifndef _STDLIB_H
+# define _STDLIB_H 1
+# endif
+# endif
+# ifndef YYMALLOC
+# define YYMALLOC malloc
+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
+# ifndef YYFREE
+# define YYFREE free
+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+# endif
+# endif
# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-#if (! defined (yyoverflow) \
- && (! defined (__cplusplus) \
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
+#if (! defined yyoverflow \
+ && (! defined __cplusplus \
+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
/* A type that is properly aligned for any stack member. */
union yyalloc
{
- short int yyss;
+ yytype_int16 yyss;
YYSTYPE yyvs;
};
@@ -440,24 +573,24 @@ union yyalloc
/* The size of an array large to enough to hold all stacks, each with
N elements. */
# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \
+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
+ YYSTACK_GAP_MAXIMUM)
/* Copy COUNT objects from FROM to TO. The source and destination do
not overlap. */
# ifndef YYCOPY
-# if defined (__GNUC__) && 1 < __GNUC__
+# if defined __GNUC__ && 1 < __GNUC__
# define YYCOPY(To, From, Count) \
__builtin_memcpy (To, From, (Count) * sizeof (*(From)))
# else
# define YYCOPY(To, From, Count) \
do \
{ \
- register YYSIZE_T yyi; \
+ YYSIZE_T yyi; \
for (yyi = 0; yyi < (Count); yyi++) \
(To)[yyi] = (From)[yyi]; \
} \
- while (0)
+ while (YYID (0))
# endif
# endif
@@ -475,39 +608,33 @@ union yyalloc
yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
yyptr += yynewbytes / sizeof (*yyptr); \
} \
- while (0)
+ while (YYID (0))
#endif
-#if defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short int yysigned_char;
-#endif
-
-/* YYFINAL -- State number of the termination state. */
+/* YYFINAL -- State number of the termination state. */
#define YYFINAL 3
/* YYLAST -- Last index in YYTABLE. */
#define YYLAST 4041
-/* YYNTOKENS -- Number of terminals. */
+/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 150
-/* YYNNTS -- Number of nonterminals. */
+/* YYNNTS -- Number of nonterminals. */
#define YYNNTS 170
-/* YYNRULES -- Number of rules. */
+/* YYNRULES -- Number of rules. */
#define YYNRULES 424
-/* YYNRULES -- Number of states. */
+/* YYNRULES -- Number of states. */
#define YYNSTATES 787
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
#define YYMAXUTOK 375
-#define YYTRANSLATE(YYX) \
+#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const unsigned char yytranslate[] =
+static const yytype_uint8 yytranslate[] =
{
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -552,7 +679,7 @@ static const unsigned char yytranslate[] =
#if YYDEBUG
/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
YYRHS. */
-static const unsigned short int yyprhs[] =
+static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 6, 10, 11, 13, 15, 17,
22, 23, 27, 28, 30, 32, 34, 39, 41, 45,
@@ -599,8 +726,8 @@ static const unsigned short int yyprhs[] =
1347, 1350, 1352, 1353, 1358
};
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short int yyrhs[] =
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const yytype_int16 yyrhs[] =
{
151, 0, -1, 152, -1, -1, 152, 153, 154, -1,
-1, 158, -1, 192, -1, 193, -1, 115, 140, 141,
@@ -742,7 +869,7 @@ static const short int yyrhs[] =
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short int yyrline[] =
+static const yytype_uint16 yyrline[] =
{
0, 152, 152, 156, 156, 157, 162, 163, 164, 165,
170, 170, 171, 176, 177, 178, 179, 184, 188, 189,
@@ -790,9 +917,9 @@ static const unsigned short int yyrline[] =
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
"$end", "error", "$undefined", "T_REQUIRE_ONCE", "T_REQUIRE", "T_EVAL",
@@ -874,7 +1001,7 @@ static const char *const yytname[] =
# ifdef YYPRINT
/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
token YYLEX-NUM. */
-static const unsigned short int yytoknum[] =
+static const yytype_uint16 yytoknum[] =
{
0, 256, 257, 258, 259, 260, 261, 262, 44, 263,
264, 265, 266, 61, 267, 268, 269, 270, 271, 272,
@@ -895,7 +1022,7 @@ static const unsigned short int yytoknum[] =
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned short int yyr1[] =
+static const yytype_uint16 yyr1[] =
{
0, 150, 151, 153, 152, 152, 154, 154, 154, 154,
156, 155, 155, 157, 157, 157, 157, 158, 159, 160,
@@ -943,7 +1070,7 @@ static const unsigned short int yyr1[] =
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
+static const yytype_uint8 yyr2[] =
{
0, 2, 1, 0, 3, 0, 1, 1, 1, 4,
0, 3, 0, 1, 1, 1, 4, 1, 3, 0,
@@ -993,7 +1120,7 @@ static const unsigned char yyr2[] =
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
STATE-NUM when YYTABLE doesn't specify something else to do. Zero
means the default is an error. */
-static const unsigned short int yydefact[] =
+static const yytype_uint16 yydefact[] =
{
5, 0, 3, 1, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 274, 0, 0, 0, 0,
@@ -1076,8 +1203,8 @@ static const unsigned short int yydefact[] =
0, 0, 74, 0, 12, 10, 75
};
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short int yydefgoto[] =
+/* YYDEFGOTO[NTERM-NUM]. */
+static const yytype_int16 yydefgoto[] =
{
-1, 1, 2, 4, 75, 175, 300, 414, 718, 77,
446, 556, 502, 617, 245, 508, 139, 507, 452, 621,
@@ -1101,7 +1228,7 @@ static const short int yydefgoto[] =
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
#define YYPACT_NINF -447
-static const short int yypact[] =
+static const yytype_int16 yypact[] =
{
-447, 55, 78, -447, 820, 3088, 3088, -78, 3088, 3088,
3088, 3088, 3088, 3088, 3088, -447, 3088, 3088, 3088, 3088,
@@ -1185,7 +1312,7 @@ static const short int yypact[] =
};
/* YYPGOTO[NTERM-NUM]. */
-static const short int yypgoto[] =
+static const yytype_int16 yypgoto[] =
{
-447, -447, -447, -447, -447, -182, -447, -447, 0, -447,
-447, -447, -447, -447, -447, -447, -447, -447, -447, -447,
@@ -1211,7 +1338,7 @@ static const short int yypgoto[] =
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
#define YYTABLE_NINF -353
-static const short int yytable[] =
+static const yytype_int16 yytable[] =
{
121, 121, 130, 127, 76, 444, 509, 242, 309, 266,
669, 518, 434, 269, 649, 707, 120, 120, 33, 33,
@@ -1620,7 +1747,7 @@ static const short int yytable[] =
0, 208
};
-static const short int yycheck[] =
+static const yytype_int16 yycheck[] =
{
23, 24, 26, 26, 4, 361, 452, 8, 182, 8,
26, 26, 351, 8, 8, 8, 71, 71, 73, 73,
@@ -2031,7 +2158,7 @@ static const short int yycheck[] =
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
-static const unsigned short int yystos[] =
+static const yytype_uint16 yystos[] =
{
0, 151, 152, 0, 153, 3, 4, 5, 6, 7,
12, 42, 43, 48, 50, 51, 52, 53, 54, 55,
@@ -2114,22 +2241,6 @@ static const unsigned short int yystos[] =
187, 73, 141, 188, 143, 155, 144
};
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
-#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
-#endif
-
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
#define YYEMPTY (-2)
@@ -2155,30 +2266,63 @@ do \
yychar = (Token); \
yylval = (Value); \
yytoken = YYTRANSLATE (yychar); \
- YYPOPSTACK; \
+ YYPOPSTACK (1); \
goto yybackup; \
} \
else \
- { \
- yyerror ("syntax error: cannot back up");\
+ { \
+ yyerror (YY_("syntax error: cannot back up")); \
YYERROR; \
} \
-while (0)
+while (YYID (0))
+
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+ If N is 0, then set CURRENT to the empty location which ends
+ the previous symbol: RHS[0] (always defined). */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
+# define YYLLOC_DEFAULT(Current, Rhs, N) \
+ do \
+ if (YYID (N)) \
+ { \
+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
+ } \
+ else \
+ { \
+ (Current).first_line = (Current).last_line = \
+ YYRHSLOC (Rhs, 0).last_line; \
+ (Current).first_column = (Current).last_column = \
+ YYRHSLOC (Rhs, 0).last_column; \
+ } \
+ while (YYID (0))
#endif
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+ This macro was not mandated originally: define only if we know
+ we won't break user code: when these are the locations we know. */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+# define YY_LOCATION_PRINT(File, Loc) \
+ fprintf (File, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column)
+# else
+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
+#endif
+
+
/* YYLEX -- calling `yylex' with the right arguments. */
#ifdef YYLEX_PARAM
@@ -2199,42 +2343,96 @@ while (0)
do { \
if (yydebug) \
YYFPRINTF Args; \
-} while (0)
+} while (YYID (0))
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
+do { \
+ if (yydebug) \
+ { \
+ YYFPRINTF (stderr, "%s ", Title); \
+ yy_symbol_print (stderr, \
+ Type, Value); \
+ YYFPRINTF (stderr, "\n"); \
+ } \
+} while (YYID (0))
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Token, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_value_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (!yyvaluep)
+ return;
+# ifdef YYPRINT
+ if (yytype < YYNTOKENS)
+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# else
+ YYUSE (yyoutput);
+# endif
+ switch (yytype)
+ {
+ default:
+ break;
+ }
+}
+
+
+/*--------------------------------.
+| Print this symbol on YYOUTPUT. |
+`--------------------------------*/
+
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+static void
+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep)
+#else
+static void
+yy_symbol_print (yyoutput, yytype, yyvaluep)
+ FILE *yyoutput;
+ int yytype;
+ YYSTYPE const * const yyvaluep;
+#endif
+{
+ if (yytype < YYNTOKENS)
+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+ else
+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+ yy_symbol_value_print (yyoutput, yytype, yyvaluep);
+ YYFPRINTF (yyoutput, ")");
+}
/*------------------------------------------------------------------.
| yy_stack_print -- Print the state stack from its BOTTOM up to its |
| TOP (included). |
`------------------------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yy_stack_print (short int *bottom, short int *top)
+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
#else
static void
yy_stack_print (bottom, top)
- short int *bottom;
- short int *top;
+ yytype_int16 *bottom;
+ yytype_int16 *top;
#endif
{
YYFPRINTF (stderr, "Stack now");
- for (/* Nothing. */; bottom <= top; ++bottom)
+ for (; bottom <= top; ++bottom)
YYFPRINTF (stderr, " %d", *bottom);
YYFPRINTF (stderr, "\n");
}
@@ -2243,45 +2441,52 @@ yy_stack_print (bottom, top)
do { \
if (yydebug) \
yy_stack_print ((Bottom), (Top)); \
-} while (0)
+} while (YYID (0))
/*------------------------------------------------.
| Report that the YYRULE is going to be reduced. |
`------------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yy_reduce_print (int yyrule)
+yy_reduce_print (YYSTYPE *yyvsp, int yyrule)
#else
static void
-yy_reduce_print (yyrule)
+yy_reduce_print (yyvsp, yyrule)
+ YYSTYPE *yyvsp;
int yyrule;
#endif
{
+ int yynrhs = yyr2[yyrule];
int yyi;
- unsigned int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylno);
- /* Print the symbols being reduced, and their result. */
- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
+ unsigned long int yylno = yyrline[yyrule];
+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
+ yyrule - 1, yylno);
+ /* The symbols being reduced. */
+ for (yyi = 0; yyi < yynrhs; yyi++)
+ {
+ fprintf (stderr, " $%d = ", yyi + 1);
+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
+ &(yyvsp[(yyi + 1) - (yynrhs)])
+ );
+ fprintf (stderr, "\n");
+ }
}
# define YY_REDUCE_PRINT(Rule) \
do { \
if (yydebug) \
- yy_reduce_print (Rule); \
-} while (0)
+ yy_reduce_print (yyvsp, Rule); \
+} while (YYID (0))
/* Nonzero means print parse trace. It is left uninitialized so that
multiple parsers can coexist. */
int yydebug;
#else /* !YYDEBUG */
# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
# define YY_STACK_PRINT(Bottom, Top)
# define YY_REDUCE_PRINT(Rule)
#endif /* !YYDEBUG */
@@ -2296,13 +2501,9 @@ int yydebug;
if the built-in stack extension method is used).
Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
evaluated with infinite-precision integer arithmetic. */
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
-#endif
-
#ifndef YYMAXDEPTH
# define YYMAXDEPTH 10000
#endif
@@ -2312,45 +2513,47 @@ int yydebug;
#if YYERROR_VERBOSE
# ifndef yystrlen
-# if defined (__GLIBC__) && defined (_STRING_H)
+# if defined __GLIBC__ && defined _STRING_H
# define yystrlen strlen
# else
/* Return the length of YYSTR. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
yystrlen (const char *yystr)
-# else
+#else
+static YYSIZE_T
yystrlen (yystr)
- const char *yystr;
-# endif
+ const char *yystr;
+#endif
{
- register const char *yys = yystr;
-
- while (*yys++ != '\0')
+ YYSIZE_T yylen;
+ for (yylen = 0; yystr[yylen]; yylen++)
continue;
-
- return yys - yystr - 1;
+ return yylen;
}
# endif
# endif
# ifndef yystpcpy
-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
# define yystpcpy stpcpy
# else
/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
YYDEST. */
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static char *
-# if defined (__STDC__) || defined (__cplusplus)
yystpcpy (char *yydest, const char *yysrc)
-# else
+#else
+static char *
yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-# endif
+ char *yydest;
+ const char *yysrc;
+#endif
{
- register char *yyd = yydest;
- register const char *yys = yysrc;
+ char *yyd = yydest;
+ const char *yys = yysrc;
while ((*yyd++ = *yys++) != '\0')
continue;
@@ -2360,70 +2563,192 @@ yystpcpy (yydest, yysrc)
# endif
# endif
-#endif /* !YYERROR_VERBOSE */
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+ quotes and backslashes, so that it's suitable for yyerror. The
+ heuristic is that double-quoting is unnecessary unless the string
+ contains an apostrophe, a comma, or backslash (other than
+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
+ null, do not copy; instead, return the length of what the result
+ would have been. */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
+{
+ if (*yystr == '"')
+ {
+ YYSIZE_T yyn = 0;
+ char const *yyp = yystr;
+
+ for (;;)
+ switch (*++yyp)
+ {
+ case '\'':
+ case ',':
+ goto do_not_strip_quotes;
+
+ case '\\':
+ if (*++yyp != '\\')
+ goto do_not_strip_quotes;
+ /* Fall through. */
+ default:
+ if (yyres)
+ yyres[yyn] = *yyp;
+ yyn++;
+ break;
+
+ case '"':
+ if (yyres)
+ yyres[yyn] = '\0';
+ return yyn;
+ }
+ do_not_strip_quotes: ;
+ }
-
+ if (! yyres)
+ return yystrlen (yystr);
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+ return yystpcpy (yyres, yystr) - yyres;
+}
+# endif
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yysymprint (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
+/* Copy into YYRESULT an error message about the unexpected token
+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
+ including the terminating null byte. If YYRESULT is null, do not
+ copy anything; just return the number of bytes that would be
+ copied. As a special case, return 0 if an ordinary "syntax error"
+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
+ size calculation. */
+static YYSIZE_T
+yysyntax_error (char *yyresult, int yystate, int yychar)
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
+ int yyn = yypact[yystate];
- if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
+ return 0;
else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-
- switch (yytype)
{
- default:
- break;
+ int yytype = YYTRANSLATE (yychar);
+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+ YYSIZE_T yysize = yysize0;
+ YYSIZE_T yysize1;
+ int yysize_overflow = 0;
+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+ int yyx;
+
+# if 0
+ /* This is so xgettext sees the translatable formats that are
+ constructed on the fly. */
+ YY_("syntax error, unexpected %s");
+ YY_("syntax error, unexpected %s, expecting %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+# endif
+ char *yyfmt;
+ char const *yyf;
+ static char const yyunexpected[] = "syntax error, unexpected %s";
+ static char const yyexpecting[] = ", expecting %s";
+ static char const yyor[] = " or %s";
+ char yyformat[sizeof yyunexpected
+ + sizeof yyexpecting - 1
+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+ * (sizeof yyor - 1))];
+ char const *yyprefix = yyexpecting;
+
+ /* Start YYX at -YYN if negative to avoid negative indexes in
+ YYCHECK. */
+ int yyxbegin = yyn < 0 ? -yyn : 0;
+
+ /* Stay within bounds of both yycheck and yytname. */
+ int yychecklim = YYLAST - yyn + 1;
+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+ int yycount = 1;
+
+ yyarg[0] = yytname[yytype];
+ yyfmt = yystpcpy (yyformat, yyunexpected);
+
+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ {
+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+ {
+ yycount = 1;
+ yysize = yysize0;
+ yyformat[sizeof yyunexpected - 1] = '\0';
+ break;
+ }
+ yyarg[yycount++] = yytname[yyx];
+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+ yyfmt = yystpcpy (yyfmt, yyprefix);
+ yyprefix = yyor;
+ }
+
+ yyf = YY_(yyformat);
+ yysize1 = yysize + yystrlen (yyf);
+ yysize_overflow |= (yysize1 < yysize);
+ yysize = yysize1;
+
+ if (yysize_overflow)
+ return YYSIZE_MAXIMUM;
+
+ if (yyresult)
+ {
+ /* Avoid sprintf, as that infringes on the user's name space.
+ Don't have undefined behavior even if the translation
+ produced a string with the wrong number of "%s"s. */
+ char *yyp = yyresult;
+ int yyi = 0;
+ while ((*yyp = *yyf) != '\0')
+ {
+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+ {
+ yyp += yytnamerr (yyp, yyarg[yyi++]);
+ yyf += 2;
+ }
+ else
+ {
+ yyp++;
+ yyf++;
+ }
+ }
+ }
+ return yysize;
}
- YYFPRINTF (yyoutput, ")");
}
+#endif /* YYERROR_VERBOSE */
+
-#endif /* ! YYDEBUG */
/*-----------------------------------------------.
| Release the memory associated to this symbol. |
`-----------------------------------------------*/
-#if defined (__STDC__) || defined (__cplusplus)
+/*ARGSUSED*/
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
#else
static void
-yydestruct (yytype, yyvaluep)
+yydestruct (yymsg, yytype, yyvaluep)
+ const char *yymsg;
int yytype;
YYSTYPE *yyvaluep;
#endif
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
+ YYUSE (yyvaluep);
+
+ if (!yymsg)
+ yymsg = "Deleting";
+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
switch (yytype)
{
default:
- break;
+ break;
}
}
@@ -2431,13 +2756,13 @@ yydestruct (yytype, yyvaluep)
/* Prevent warnings from -Wmissing-prototypes. */
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
int yyparse (void *YYPARSE_PARAM);
-# else
+#else
int yyparse ();
-# endif
+#endif
#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if defined __STDC__ || defined __cplusplus
int yyparse (void);
#else
int yyparse ();
@@ -2454,14 +2779,18 @@ int yyparse ();
`----------*/
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-# endif
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
+int
+yyparse (void *YYPARSE_PARAM)
+#else
+int
+yyparse (YYPARSE_PARAM)
+ void *YYPARSE_PARAM;
+#endif
#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
+#if (defined __STDC__ || defined __C99__FUNC__ \
+ || defined __cplusplus || defined _MSC_VER)
int
yyparse (void)
#else
@@ -2471,22 +2800,28 @@ yyparse ()
#endif
#endif
{
- /* The lookahead symbol. */
+ /* The look-ahead symbol. */
int yychar;
-/* The semantic value of the lookahead symbol. */
+/* The semantic value of the look-ahead symbol. */
YYSTYPE yylval;
/* Number of syntax errors so far. */
int yynerrs;
- register int yystate;
- register int yyn;
+ int yystate;
+ int yyn;
int yyresult;
/* Number of tokens to shift before error messages enabled. */
int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
+ /* Look-ahead token as an internal (translated) token number. */
int yytoken = 0;
+#if YYERROR_VERBOSE
+ /* Buffer for error messages, and its allocated size. */
+ char yymsgbuf[128];
+ char *yymsg = yymsgbuf;
+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
/* Three stacks and their tools:
`yyss': related to states,
@@ -2497,18 +2832,18 @@ int yynerrs;
to reallocate them elsewhere. */
/* The state stack. */
- short int yyssa[YYINITDEPTH];
- short int *yyss = yyssa;
- register short int *yyssp;
+ yytype_int16 yyssa[YYINITDEPTH];
+ yytype_int16 *yyss = yyssa;
+ yytype_int16 *yyssp;
/* The semantic value stack. */
YYSTYPE yyvsa[YYINITDEPTH];
YYSTYPE *yyvs = yyvsa;
- register YYSTYPE *yyvsp;
+ YYSTYPE *yyvsp;
-#define YYPOPSTACK (yyvsp--, yyssp--)
+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
YYSIZE_T yystacksize = YYINITDEPTH;
@@ -2517,9 +2852,9 @@ int yynerrs;
YYSTYPE yyval;
- /* When reducing, the number of symbols on the RHS of the reduced
- rule. */
- int yylen;
+ /* The number of symbols on the RHS of the reduced rule.
+ Keep to zero when no symbol should be popped. */
+ int yylen = 0;
YYDPRINTF ((stderr, "Starting parse\n"));
@@ -2536,7 +2871,6 @@ int yynerrs;
yyssp = yyss;
yyvsp = yyvs;
-
goto yysetstate;
/*------------------------------------------------------------.
@@ -2544,8 +2878,7 @@ int yynerrs;
`------------------------------------------------------------*/
yynewstate:
/* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks.
- */
+ have just been pushed. So pushing a state here evens the stacks. */
yyssp++;
yysetstate:
@@ -2558,18 +2891,18 @@ int yynerrs;
#ifdef yyoverflow
{
- /* Give user a chance to reallocate the stack. Use copies of
+ /* Give user a chance to reallocate the stack. Use copies of
these so that the &'s don't force the real ones into
memory. */
YYSTYPE *yyvs1 = yyvs;
- short int *yyss1 = yyss;
+ yytype_int16 *yyss1 = yyss;
/* Each stack pointer address is followed by the size of the
data in use in that stack, in bytes. This used to be a
conditional around just the two extra args, but that might
be undefined if yyoverflow is a macro. */
- yyoverflow ("parser stack overflow",
+ yyoverflow (YY_("memory exhausted"),
&yyss1, yysize * sizeof (*yyssp),
&yyvs1, yysize * sizeof (*yyvsp),
@@ -2580,21 +2913,21 @@ int yynerrs;
}
#else /* no yyoverflow */
# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
+ goto yyexhaustedlab;
# else
/* Extend the stack our own way. */
if (YYMAXDEPTH <= yystacksize)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
yystacksize *= 2;
if (YYMAXDEPTH < yystacksize)
yystacksize = YYMAXDEPTH;
{
- short int *yyss1 = yyss;
+ yytype_int16 *yyss1 = yyss;
union yyalloc *yyptr =
(union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
if (! yyptr)
- goto yyoverflowlab;
+ goto yyexhaustedlab;
YYSTACK_RELOCATE (yyss);
YYSTACK_RELOCATE (yyvs);
@@ -2625,19 +2958,17 @@ int yynerrs;
`-----------*/
yybackup:
-/* Do appropriate processing given the current state. */
-/* Read a lookahead token if we need one and don't already have one. */
-/* yyresume: */
-
- /* First try to decide what to do without reference to lookahead token. */
+ /* Do appropriate processing given the current state. Read a
+ look-ahead token if we need one and don't already have one. */
+ /* First try to decide what to do without reference to look-ahead token. */
yyn = yypact[yystate];
if (yyn == YYPACT_NINF)
goto yydefault;
- /* Not known => get a lookahead token if don't already have one. */
+ /* Not known => get a look-ahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
if (yychar == YYEMPTY)
{
YYDPRINTF ((stderr, "Reading a token: "));
@@ -2652,7 +2983,7 @@ yybackup:
else
{
yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
}
/* If the proper action on seeing token YYTOKEN is to reduce or to
@@ -2672,22 +3003,21 @@ yybackup:
if (yyn == YYFINAL)
YYACCEPT;
- /* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
-
- /* Discard the token being shifted unless it is eof. */
- if (yychar != YYEOF)
- yychar = YYEMPTY;
-
- *++yyvsp = yylval;
-
-
/* Count tokens shifted since error; after three, turn off error
status. */
if (yyerrstatus)
yyerrstatus--;
+ /* Shift the look-ahead token. */
+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
+
+ /* Discard the shifted token unless it is eof. */
+ if (yychar != YYEOF)
+ yychar = YYEMPTY;
+
yystate = yyn;
+ *++yyvsp = yylval;
+
goto yynewstate;
@@ -2769,12 +3099,12 @@ yyreduce:
case 19:
- { zend_do_if_cond(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
case 20:
- { zend_do_if_after_statement(&yyvsp[-2], 1 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(4) - (6)]), 1 TSRMLS_CC); }
break;
case 21:
@@ -2784,12 +3114,12 @@ yyreduce:
case 22:
- { zend_do_if_cond(&yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(3) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
case 23:
- { zend_do_if_after_statement(&yyvsp[-3], 1 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(4) - (7)]), 1 TSRMLS_CC); }
break;
case 24:
@@ -2799,62 +3129,62 @@ yyreduce:
case 25:
- { yyvsp[-1].u.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyvsp[(1) - (2)]).u.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 26:
- { zend_do_while_cond(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_while_cond(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 27:
- { zend_do_while_end(&yyvsp[-6], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_while_end(&(yyvsp[(1) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
break;
case 28:
- { yyvsp[0].u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); }
+ { (yyvsp[(1) - (1)]).u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_do_while_begin(TSRMLS_C); }
break;
case 29:
- { yyvsp[0].u.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyvsp[(5) - (5)]).u.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 30:
- { zend_do_do_while_end(&yyvsp[-8], &yyvsp[-4], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_do_while_end(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]) TSRMLS_CC); }
break;
case 31:
- { zend_do_free(&yyvsp[-1] TSRMLS_CC); yyvsp[0].u.opline_num = get_next_op_number(CG(active_op_array)); }
+ { zend_do_free(&(yyvsp[(3) - (4)]) TSRMLS_CC); (yyvsp[(4) - (4)]).u.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 32:
- { zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_extended_info(TSRMLS_C); zend_do_for_cond(&(yyvsp[(6) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
case 33:
- { zend_do_free(&yyvsp[-1] TSRMLS_CC); zend_do_for_before_statement(&yyvsp[-6], &yyvsp[-3] TSRMLS_CC); }
+ { zend_do_free(&(yyvsp[(9) - (10)]) TSRMLS_CC); zend_do_for_before_statement(&(yyvsp[(4) - (10)]), &(yyvsp[(7) - (10)]) TSRMLS_CC); }
break;
case 34:
- { zend_do_for_end(&yyvsp[-5] TSRMLS_CC); }
+ { zend_do_for_end(&(yyvsp[(7) - (12)]) TSRMLS_CC); }
break;
case 35:
- { zend_do_switch_cond(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_switch_cond(&(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 36:
- { zend_do_switch_end(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_switch_end(&(yyvsp[(6) - (6)]) TSRMLS_CC); }
break;
case 37:
@@ -2864,7 +3194,7 @@ yyreduce:
case 38:
- { zend_do_brk_cont(ZEND_BRK, &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_brk_cont(ZEND_BRK, &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 39:
@@ -2874,7 +3204,7 @@ yyreduce:
case 40:
- { zend_do_brk_cont(ZEND_CONT, &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_brk_cont(ZEND_CONT, &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 41:
@@ -2884,162 +3214,162 @@ yyreduce:
case 42:
- { zend_do_return(&yyvsp[-1], 0 TSRMLS_CC); }
+ { zend_do_return(&(yyvsp[(2) - (3)]), 0 TSRMLS_CC); }
break;
case 43:
- { zend_do_return(&yyvsp[-1], 1 TSRMLS_CC); }
+ { zend_do_return(&(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
case 47:
- { zend_do_echo(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 48:
- { zend_do_free(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 49:
- { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()"); zval_dtor(&yyvsp[-1].u.constant); }
+ { zend_error(E_COMPILE_ERROR,"use: Not yet supported. Please use include_once() or require_once()"); zval_dtor(&(yyvsp[(2) - (3)]).u.constant); }
break;
case 51:
- { zend_do_foreach_begin(&yyvsp[-2], &yyvsp[-1], &yyvsp[0], 1 TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]), 1 TSRMLS_CC); }
break;
case 52:
- { zend_do_foreach_fetch(&yyvsp[-4], &yyvsp[-3], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_foreach_fetch(&(yyvsp[(1) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 53:
- { zend_do_foreach_cont(&yyvsp[-8], &yyvsp[-4], &yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_foreach_cont(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]), &(yyvsp[(8) - (9)]) TSRMLS_CC); }
break;
case 54:
- { zend_do_foreach_end(&yyvsp[-10], &yyvsp[-6] TSRMLS_CC); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (11)]), &(yyvsp[(5) - (11)]) TSRMLS_CC); }
break;
case 55:
- { zend_do_foreach_begin(&yyvsp[-2], &yyvsp[-1], &yyvsp[0], 0 TSRMLS_CC); }
+ { zend_do_foreach_begin(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
case 56:
- { zend_do_foreach_fetch(&yyvsp[-4], &yyvsp[-3], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_foreach_fetch(&(yyvsp[(1) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 57:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_foreach_cont(&yyvsp[-8], &yyvsp[-4], &yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(7) - (9)])); zend_do_foreach_cont(&(yyvsp[(1) - (9)]), &(yyvsp[(5) - (9)]), &(yyvsp[(7) - (9)]), &(yyvsp[(8) - (9)]) TSRMLS_CC); }
break;
case 58:
- { zend_do_foreach_end(&yyvsp[-10], &yyvsp[-6] TSRMLS_CC); }
+ { zend_do_foreach_end(&(yyvsp[(1) - (11)]), &(yyvsp[(5) - (11)]) TSRMLS_CC); }
break;
case 59:
- { yyvsp[0].u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
+ { (yyvsp[(1) - (1)]).u.opline_num = get_next_op_number(CG(active_op_array)); zend_do_declare_begin(TSRMLS_C); }
break;
case 60:
- { zend_do_declare_end(&yyvsp[-5] TSRMLS_CC); }
+ { zend_do_declare_end(&(yyvsp[(1) - (6)]) TSRMLS_CC); }
break;
case 62:
- { zend_do_try(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_try(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 63:
- { zend_initialize_try_catch_element(&yyvsp[-6] TSRMLS_CC); }
+ { zend_initialize_try_catch_element(&(yyvsp[(1) - (7)]) TSRMLS_CC); }
break;
case 64:
- { zend_do_first_catch(&yyvsp[-2] TSRMLS_CC); }
+ { zend_do_first_catch(&(yyvsp[(7) - (9)]) TSRMLS_CC); }
break;
case 65:
- { zend_do_begin_catch(&yyvsp[-11], &yyvsp[-3], &yyvsp[-1], 1 TSRMLS_CC); }
+ { zend_do_begin_catch(&(yyvsp[(1) - (12)]), &(yyvsp[(9) - (12)]), &(yyvsp[(11) - (12)]), 1 TSRMLS_CC); }
break;
case 66:
- { zend_do_end_catch(&yyvsp[-15] TSRMLS_CC); }
+ { zend_do_end_catch(&(yyvsp[(1) - (16)]) TSRMLS_CC); }
break;
case 67:
- { zend_do_mark_last_catch(&yyvsp[-11], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_mark_last_catch(&(yyvsp[(7) - (18)]), &(yyvsp[(18) - (18)]) TSRMLS_CC); }
break;
case 68:
- { zend_do_throw(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_throw(&(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 69:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 70:
- { yyval.u.opline_num = -1; }
+ { (yyval).u.opline_num = -1; }
break;
case 71:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 72:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 73:
- { yyval.u.opline_num = get_next_op_number(CG(active_op_array)); }
+ { (yyval).u.opline_num = get_next_op_number(CG(active_op_array)); }
break;
case 74:
- { zend_do_begin_catch(&yyvsp[-5], &yyvsp[-3], &yyvsp[-1], 0 TSRMLS_CC); }
+ { zend_do_begin_catch(&(yyvsp[(1) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(5) - (6)]), 0 TSRMLS_CC); }
break;
case 75:
- { zend_do_end_catch(&yyvsp[-9] TSRMLS_CC); }
+ { zend_do_end_catch(&(yyvsp[(1) - (10)]) TSRMLS_CC); }
break;
case 78:
- { zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_end_variable_parse(BP_VAR_UNSET, 0 TSRMLS_CC); zend_do_unset(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 79:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 80:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 81:
@@ -3054,477 +3384,477 @@ yyreduce:
case 83:
- { yyval.op_type = ZEND_RETURN_VAL; }
+ { (yyval).op_type = ZEND_RETURN_VAL; }
break;
case 84:
- { yyval.op_type = ZEND_RETURN_REF; }
+ { (yyval).op_type = ZEND_RETURN_REF; }
break;
case 85:
- { yyvsp[0].u.opline_num = CG(zend_lineno); }
+ { (yyvsp[(1) - (1)]).u.opline_num = CG(zend_lineno); }
break;
case 86:
- { zend_do_begin_function_declaration(&yyvsp[-3], &yyvsp[0], 0, yyvsp[-1].op_type, NULL TSRMLS_CC); }
+ { zend_do_begin_function_declaration(&(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), 0, (yyvsp[(3) - (4)]).op_type, NULL TSRMLS_CC); }
break;
case 87:
- { zend_do_end_function_declaration(&yyvsp[-10] TSRMLS_CC); }
+ { zend_do_end_function_declaration(&(yyvsp[(1) - (11)]) TSRMLS_CC); }
break;
case 88:
- { zend_do_begin_class_declaration(&yyvsp[-2], &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_begin_class_declaration(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 89:
- { zend_do_end_class_declaration(&yyvsp[-7], &yyvsp[-6] TSRMLS_CC); }
+ { zend_do_end_class_declaration(&(yyvsp[(1) - (8)]), &(yyvsp[(2) - (8)]) TSRMLS_CC); }
break;
case 90:
- { zend_do_begin_class_declaration(&yyvsp[-1], &yyvsp[0], NULL TSRMLS_CC); }
+ { zend_do_begin_class_declaration(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), NULL TSRMLS_CC); }
break;
case 91:
- { zend_do_end_class_declaration(&yyvsp[-6], &yyvsp[-5] TSRMLS_CC); }
+ { zend_do_end_class_declaration(&(yyvsp[(1) - (7)]), &(yyvsp[(2) - (7)]) TSRMLS_CC); }
break;
case 92:
- { yyval.u.opline_num = CG(zend_lineno); yyval.u.EA.type = 0; }
+ { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = 0; }
break;
case 93:
- { yyval.u.opline_num = CG(zend_lineno); yyval.u.EA.type = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
+ { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_EXPLICIT_ABSTRACT_CLASS; }
break;
case 94:
- { yyval.u.opline_num = CG(zend_lineno); yyval.u.EA.type = ZEND_ACC_FINAL_CLASS; }
+ { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_FINAL_CLASS; }
break;
case 95:
- { yyval.op_type = IS_UNUSED; }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 96:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 97:
- { yyval.u.opline_num = CG(zend_lineno); yyval.u.EA.type = ZEND_ACC_INTERFACE; }
+ { (yyval).u.opline_num = CG(zend_lineno); (yyval).u.EA.type = ZEND_ACC_INTERFACE; }
break;
case 102:
- { zend_do_implements_interface(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_implements_interface(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 103:
- { zend_do_implements_interface(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_implements_interface(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 104:
- { yyval.op_type = IS_UNUSED; }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 105:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 106:
- { zend_check_writable_variable(&yyvsp[0]); yyval = yyvsp[0]; }
+ { zend_check_writable_variable(&(yyvsp[(1) - (1)])); (yyval) = (yyvsp[(1) - (1)]); }
break;
case 107:
- { zend_check_writable_variable(&yyvsp[0]); yyval = yyvsp[0]; yyval.u.EA.type |= ZEND_PARSED_REFERENCE_VARIABLE; }
+ { zend_check_writable_variable(&(yyvsp[(2) - (2)])); (yyval) = (yyvsp[(2) - (2)]); (yyval).u.EA.type |= ZEND_PARSED_REFERENCE_VARIABLE; }
break;
case 114:
- { zend_do_declare_stmt(&yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_declare_stmt(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 115:
- { zend_do_declare_stmt(&yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_declare_stmt(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 116:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 117:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(3) - (4)]); }
break;
case 118:
- { yyval = yyvsp[-2]; }
+ { (yyval) = (yyvsp[(2) - (4)]); }
break;
case 119:
- { yyval = yyvsp[-2]; }
+ { (yyval) = (yyvsp[(3) - (5)]); }
break;
case 120:
- { yyval.op_type = IS_UNUSED; }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 121:
- { zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&yyvsp[-3], &yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_extended_info(TSRMLS_C); zend_do_case_before_statement(&(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 122:
- { zend_do_case_after_statement(&yyval, &yyvsp[-4] TSRMLS_CC); yyval.op_type = IS_CONST; }
+ { zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (6)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
case 123:
- { zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_extended_info(TSRMLS_C); zend_do_default_before_statement(&(yyvsp[(1) - (3)]), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 124:
- { zend_do_case_after_statement(&yyval, &yyvsp[-3] TSRMLS_CC); yyval.op_type = IS_CONST; }
+ { zend_do_case_after_statement(&(yyval), &(yyvsp[(2) - (5)]) TSRMLS_CC); (yyval).op_type = IS_CONST; }
break;
case 130:
- { zend_do_if_cond(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 131:
- { zend_do_if_after_statement(&yyvsp[-2], 0 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(5) - (7)]), 0 TSRMLS_CC); }
break;
case 133:
- { zend_do_if_cond(&yyvsp[-2], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_if_cond(&(yyvsp[(4) - (6)]), &(yyvsp[(5) - (6)]) TSRMLS_CC); }
break;
case 134:
- { zend_do_if_after_statement(&yyvsp[-3], 0 TSRMLS_CC); }
+ { zend_do_if_after_statement(&(yyvsp[(5) - (8)]), 0 TSRMLS_CC); }
break;
case 141:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[0], 0 TSRMLS_CC); yyval.op_type = IS_CONST; yyval.u.constant.value.lval=1; yyval.u.constant.type=IS_LONG; INIT_PZVAL(&yyval.u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &yyval, NULL, &yyvsp[-1], &yyvsp[0], 0 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(2) - (2)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]), 0 TSRMLS_CC); }
break;
case 142:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[0], 0 TSRMLS_CC); yyval.op_type = IS_CONST; yyval.u.constant.value.lval=1; yyval.u.constant.type=IS_LONG; INIT_PZVAL(&yyval.u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &yyval, NULL, &yyvsp[-2], &yyvsp[0], 1 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 1 TSRMLS_CC); }
break;
case 143:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[-2], 0 TSRMLS_CC); yyval.op_type = IS_CONST; yyval.u.constant.value.lval=1; yyval.u.constant.type=IS_LONG; INIT_PZVAL(&yyval.u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &yyval, &yyvsp[0], &yyvsp[-4], &yyvsp[-2], 1 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(1) - (5)]), &(yyvsp[(3) - (5)]), 1 TSRMLS_CC); }
break;
case 144:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[-2], 0 TSRMLS_CC); yyval.op_type = IS_CONST; yyval.u.constant.value.lval=1; yyval.u.constant.type=IS_LONG; INIT_PZVAL(&yyval.u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &yyval, &yyvsp[0], &yyvsp[-3], &yyvsp[-2], 0 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); (yyval).op_type = IS_CONST; (yyval).u.constant.value.lval=1; (yyval).u.constant.type=IS_LONG; INIT_PZVAL(&(yyval).u.constant); zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), &(yyvsp[(2) - (4)]), 0 TSRMLS_CC); }
break;
case 145:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[0], 0 TSRMLS_CC); yyval=yyvsp[-3]; yyval.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &yyval, NULL, &yyvsp[-1], &yyvsp[0], 0 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (4)]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(3) - (4)]), &(yyvsp[(4) - (4)]), 0 TSRMLS_CC); }
break;
case 146:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[0], 0 TSRMLS_CC); yyval=yyvsp[-4]; yyval.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &yyval, NULL, &yyvsp[-2], &yyvsp[0], 1 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(5) - (5)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (5)]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV, &tmp, &(yyval), NULL, &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), 1 TSRMLS_CC); }
break;
case 147:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[-2], 0 TSRMLS_CC); yyval=yyvsp[-6]; yyval.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &yyval, &yyvsp[0], &yyvsp[-4], &yyvsp[-2], 1 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(5) - (7)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (7)]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(3) - (7)]), &(yyvsp[(5) - (7)]), 1 TSRMLS_CC); }
break;
case 148:
- { znode tmp; fetch_simple_variable(&tmp, &yyvsp[-2], 0 TSRMLS_CC); yyval=yyvsp[-5]; yyval.u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &yyval, &yyvsp[0], &yyvsp[-3], &yyvsp[-2], 0 TSRMLS_CC); }
+ { znode tmp; fetch_simple_variable(&tmp, &(yyvsp[(4) - (6)]), 0 TSRMLS_CC); (yyval)=(yyvsp[(1) - (6)]); (yyval).u.constant.value.lval++; zend_do_receive_arg(ZEND_RECV_INIT, &tmp, &(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), &(yyvsp[(4) - (6)]), 0 TSRMLS_CC); }
break;
case 149:
- { yyval.op_type = IS_UNUSED; }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 150:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 151:
- { yyval.op_type = IS_CONST; yyval.u.constant.type=IS_NULL;}
+ { (yyval).op_type = IS_CONST; (yyval).u.constant.type=IS_NULL;}
break;
case 152:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 153:
- { yyval.u.constant.value.lval = 0; }
+ { (yyval).u.constant.value.lval = 0; }
break;
case 154:
- { yyval.u.constant.value.lval = 1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_VAL, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval = 1; zend_do_pass_param(&(yyvsp[(1) - (1)]), ZEND_SEND_VAL, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 155:
- { yyval.u.constant.value.lval = 1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_VAR, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval = 1; zend_do_pass_param(&(yyvsp[(1) - (1)]), ZEND_SEND_VAR, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 156:
- { yyval.u.constant.value.lval = 1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_REF, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval = 1; zend_do_pass_param(&(yyvsp[(2) - (2)]), ZEND_SEND_REF, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 157:
- { yyval.u.constant.value.lval=yyvsp[-2].u.constant.value.lval+1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_VAL, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval=(yyvsp[(1) - (3)]).u.constant.value.lval+1; zend_do_pass_param(&(yyvsp[(3) - (3)]), ZEND_SEND_VAL, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 158:
- { yyval.u.constant.value.lval=yyvsp[-2].u.constant.value.lval+1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_VAR, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval=(yyvsp[(1) - (3)]).u.constant.value.lval+1; zend_do_pass_param(&(yyvsp[(3) - (3)]), ZEND_SEND_VAR, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 159:
- { yyval.u.constant.value.lval=yyvsp[-3].u.constant.value.lval+1; zend_do_pass_param(&yyvsp[0], ZEND_SEND_REF, yyval.u.constant.value.lval TSRMLS_CC); }
+ { (yyval).u.constant.value.lval=(yyvsp[(1) - (4)]).u.constant.value.lval+1; zend_do_pass_param(&(yyvsp[(4) - (4)]), ZEND_SEND_REF, (yyval).u.constant.value.lval TSRMLS_CC); }
break;
case 160:
- { zend_do_fetch_global_variable(&yyvsp[0], NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
+ { zend_do_fetch_global_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
case 161:
- { zend_do_fetch_global_variable(&yyvsp[0], NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
+ { zend_do_fetch_global_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_GLOBAL_LOCK TSRMLS_CC); }
break;
case 162:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 163:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 164:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(3) - (4)]); }
break;
case 165:
- { zend_do_fetch_static_variable(&yyvsp[0], NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
+ { zend_do_fetch_static_variable(&(yyvsp[(3) - (3)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
case 166:
- { zend_do_fetch_static_variable(&yyvsp[-2], &yyvsp[0], ZEND_FETCH_STATIC TSRMLS_CC); }
+ { zend_do_fetch_static_variable(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
case 167:
- { zend_do_fetch_static_variable(&yyvsp[0], NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
+ { zend_do_fetch_static_variable(&(yyvsp[(1) - (1)]), NULL, ZEND_FETCH_STATIC TSRMLS_CC); }
break;
case 168:
- { zend_do_fetch_static_variable(&yyvsp[-2], &yyvsp[0], ZEND_FETCH_STATIC TSRMLS_CC); }
+ { zend_do_fetch_static_variable(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_FETCH_STATIC TSRMLS_CC); }
break;
case 171:
- { CG(access_type) = yyvsp[0].u.constant.value.lval; }
+ { CG(access_type) = (yyvsp[(1) - (1)]).u.constant.value.lval; }
break;
case 174:
- { yyvsp[0].u.opline_num = CG(zend_lineno); }
+ { (yyvsp[(2) - (2)]).u.opline_num = CG(zend_lineno); }
break;
case 175:
- { zend_do_begin_function_declaration(&yyvsp[-3], &yyvsp[0], 1, yyvsp[-1].op_type, &yyvsp[-4] TSRMLS_CC); }
+ { zend_do_begin_function_declaration(&(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]), 1, (yyvsp[(4) - (5)]).op_type, &(yyvsp[(1) - (5)]) TSRMLS_CC); }
break;
case 176:
- { zend_do_abstract_method(&yyvsp[-5], &yyvsp[-9], &yyvsp[0] TSRMLS_CC); zend_do_end_function_declaration(&yyvsp[-8] TSRMLS_CC); }
+ { zend_do_abstract_method(&(yyvsp[(5) - (10)]), &(yyvsp[(1) - (10)]), &(yyvsp[(10) - (10)]) TSRMLS_CC); zend_do_end_function_declaration(&(yyvsp[(2) - (10)]) TSRMLS_CC); }
break;
case 177:
- { yyval.u.constant.value.lval = ZEND_ACC_ABSTRACT; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_ABSTRACT; }
break;
case 178:
- { yyval.u.constant.value.lval = 0; }
+ { (yyval).u.constant.value.lval = 0; }
break;
case 179:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 180:
- { zend_error(E_STRICT, "var: Deprecated. Please use the public/private/protected modifiers"); yyval.u.constant.value.lval = ZEND_ACC_PUBLIC; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; }
break;
case 181:
- { yyval.u.constant.value.lval = ZEND_ACC_PUBLIC; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; }
break;
case 182:
- { yyval = yyvsp[0]; if (!(yyval.u.constant.value.lval & ZEND_ACC_PPP_MASK)) { yyval.u.constant.value.lval |= ZEND_ACC_PUBLIC; } }
+ { (yyval) = (yyvsp[(1) - (1)]); if (!((yyval).u.constant.value.lval & ZEND_ACC_PPP_MASK)) { (yyval).u.constant.value.lval |= ZEND_ACC_PUBLIC; } }
break;
case 183:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 184:
- { yyval.u.constant.value.lval = zend_do_verify_access_types(&yyvsp[-1], &yyvsp[0]); }
+ { (yyval).u.constant.value.lval = zend_do_verify_access_types(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)])); }
break;
case 185:
- { yyval.u.constant.value.lval = ZEND_ACC_PUBLIC; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_PUBLIC; }
break;
case 186:
- { yyval.u.constant.value.lval = ZEND_ACC_PROTECTED; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_PROTECTED; }
break;
case 187:
- { yyval.u.constant.value.lval = ZEND_ACC_PRIVATE; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_PRIVATE; }
break;
case 188:
- { yyval.u.constant.value.lval = ZEND_ACC_STATIC; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_STATIC; }
break;
case 189:
- { yyval.u.constant.value.lval = ZEND_ACC_ABSTRACT; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_ABSTRACT; }
break;
case 190:
- { yyval.u.constant.value.lval = ZEND_ACC_FINAL; }
+ { (yyval).u.constant.value.lval = ZEND_ACC_FINAL; }
break;
case 191:
- { zend_do_declare_property(&yyvsp[0], NULL, CG(access_type) TSRMLS_CC); }
+ { zend_do_declare_property(&(yyvsp[(3) - (3)]), NULL, CG(access_type) TSRMLS_CC); }
break;
case 192:
- { zend_do_declare_property(&yyvsp[-2], &yyvsp[0], CG(access_type) TSRMLS_CC); }
+ { zend_do_declare_property(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]), CG(access_type) TSRMLS_CC); }
break;
case 193:
- { zend_do_declare_property(&yyvsp[0], NULL, CG(access_type) TSRMLS_CC); }
+ { zend_do_declare_property(&(yyvsp[(1) - (1)]), NULL, CG(access_type) TSRMLS_CC); }
break;
case 194:
- { zend_do_declare_property(&yyvsp[-2], &yyvsp[0], CG(access_type) TSRMLS_CC); }
+ { zend_do_declare_property(&(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), CG(access_type) TSRMLS_CC); }
break;
case 195:
- { zend_do_declare_class_constant(&yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_declare_class_constant(&(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 196:
- { zend_do_declare_class_constant(&yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_declare_class_constant(&(yyvsp[(2) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
case 197:
- { zend_do_echo(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_echo(&(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 198:
- { zend_do_echo(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_echo(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 199:
- { yyval.op_type = IS_CONST; yyval.u.constant.type = IS_BOOL; yyval.u.constant.value.lval = 1; }
+ { (yyval).op_type = IS_CONST; (yyval).u.constant.type = IS_BOOL; (yyval).u.constant.value.lval = 1; }
break;
case 200:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 201:
- { zend_do_free(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_free(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 202:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(4) - (4)]); }
break;
case 203:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 204:
@@ -3534,793 +3864,793 @@ yyreduce:
case 205:
- { zend_do_list_end(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_list_end(&(yyval), &(yyvsp[(7) - (7)]) TSRMLS_CC); }
break;
case 206:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 207:
- { zend_check_writable_variable(&yyvsp[-3]); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&yyval, &yyvsp[-3], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (4)])); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
case 208:
- { zend_error(E_STRICT, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&yyvsp[-4]); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_error(E_STRICT, "Assigning the return value of new by reference is deprecated"); zend_check_writable_variable(&(yyvsp[(1) - (5)])); zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(4) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 209:
- { zend_do_end_new_object(&yyvsp[-4], &yyvsp[-3], &yyvsp[0] TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&yyval, &yyvsp[-6], &yyvsp[-4] TSRMLS_CC); }
+ { zend_do_end_new_object(&(yyvsp[(3) - (7)]), &(yyvsp[(4) - (7)]), &(yyvsp[(7) - (7)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); zend_do_assign_ref(&(yyval), &(yyvsp[(1) - (7)]), &(yyvsp[(3) - (7)]) TSRMLS_CC); }
break;
case 210:
- { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_extended_fcall_begin(TSRMLS_C); zend_do_begin_new_object(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 211:
- { zend_do_end_new_object(&yyval, &yyvsp[-3], &yyvsp[0] TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_new_object(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
case 212:
- { zend_do_clone(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_clone(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 213:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 214:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 215:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 216:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 217:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 218:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 219:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 220:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 221:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 222:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 223:
- { zend_check_writable_variable(&yyvsp[-2]); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (3)])); zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); zend_do_binary_assign_op(ZEND_ASSIGN_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 224:
- { zend_do_post_incdec(&yyval, &yyvsp[-1], ZEND_POST_INC TSRMLS_CC); }
+ { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_INC TSRMLS_CC); }
break;
case 225:
- { zend_do_pre_incdec(&yyval, &yyvsp[0], ZEND_PRE_INC TSRMLS_CC); }
+ { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_INC TSRMLS_CC); }
break;
case 226:
- { zend_do_post_incdec(&yyval, &yyvsp[-1], ZEND_POST_DEC TSRMLS_CC); }
+ { zend_do_post_incdec(&(yyval), &(yyvsp[(1) - (2)]), ZEND_POST_DEC TSRMLS_CC); }
break;
case 227:
- { zend_do_pre_incdec(&yyval, &yyvsp[0], ZEND_PRE_DEC TSRMLS_CC); }
+ { zend_do_pre_incdec(&(yyval), &(yyvsp[(2) - (2)]), ZEND_PRE_DEC TSRMLS_CC); }
break;
case 228:
- { zend_do_boolean_or_begin(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 229:
- { zend_do_boolean_or_end(&yyval, &yyvsp[-3], &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 230:
- { zend_do_boolean_and_begin(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 231:
- { zend_do_boolean_and_end(&yyval, &yyvsp[-3], &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 232:
- { zend_do_boolean_or_begin(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_boolean_or_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 233:
- { zend_do_boolean_or_end(&yyval, &yyvsp[-3], &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_boolean_or_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 234:
- { zend_do_boolean_and_begin(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 235:
- { zend_do_boolean_and_end(&yyval, &yyvsp[-3], &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(4) - (4)]), &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 236:
- { zend_do_binary_op(ZEND_BOOL_XOR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_BOOL_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 237:
- { zend_do_binary_op(ZEND_BW_OR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_BW_OR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 238:
- { zend_do_binary_op(ZEND_BW_AND, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_BW_AND, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 239:
- { zend_do_binary_op(ZEND_BW_XOR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_BW_XOR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 240:
- { zend_do_binary_op(ZEND_CONCAT, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_CONCAT, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 241:
- { zend_do_binary_op(ZEND_ADD, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 242:
- { zend_do_binary_op(ZEND_SUB, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 243:
- { zend_do_binary_op(ZEND_MUL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_MUL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 244:
- { zend_do_binary_op(ZEND_DIV, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_DIV, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 245:
- { zend_do_binary_op(ZEND_MOD, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_MOD, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 246:
- { zend_do_binary_op(ZEND_SL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_SL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 247:
- { zend_do_binary_op(ZEND_SR, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_SR, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 248:
- { yyvsp[-1].u.constant.value.lval=0; yyvsp[-1].u.constant.type=IS_LONG; yyvsp[-1].op_type = IS_CONST; INIT_PZVAL(&yyvsp[-1].u.constant); zend_do_binary_op(ZEND_ADD, &yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(1) - (2)]).u.constant.value.lval=0; (yyvsp[(1) - (2)]).u.constant.type=IS_LONG; (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_ADD, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 249:
- { yyvsp[-1].u.constant.value.lval=0; yyvsp[-1].u.constant.type=IS_LONG; yyvsp[-1].op_type = IS_CONST; INIT_PZVAL(&yyvsp[-1].u.constant); zend_do_binary_op(ZEND_SUB, &yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(1) - (2)]).u.constant.value.lval=0; (yyvsp[(1) - (2)]).u.constant.type=IS_LONG; (yyvsp[(1) - (2)]).op_type = IS_CONST; INIT_PZVAL(&(yyvsp[(1) - (2)]).u.constant); zend_do_binary_op(ZEND_SUB, &(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 250:
- { zend_do_unary_op(ZEND_BOOL_NOT, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_unary_op(ZEND_BOOL_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 251:
- { zend_do_unary_op(ZEND_BW_NOT, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_unary_op(ZEND_BW_NOT, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 252:
- { zend_do_binary_op(ZEND_IS_IDENTICAL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 253:
- { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_NOT_IDENTICAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 254:
- { zend_do_binary_op(ZEND_IS_EQUAL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 255:
- { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_NOT_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 256:
- { zend_do_binary_op(ZEND_IS_SMALLER, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 257:
- { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &yyval, &yyvsp[-2], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 258:
- { zend_do_binary_op(ZEND_IS_SMALLER, &yyval, &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_SMALLER, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
case 259:
- { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &yyval, &yyvsp[0], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_binary_op(ZEND_IS_SMALLER_OR_EQUAL, &(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
case 260:
- { zend_do_instanceof(&yyval, &yyvsp[-2], &yyvsp[0], 0 TSRMLS_CC); }
+ { zend_do_instanceof(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), 0 TSRMLS_CC); }
break;
case 261:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 262:
- { zend_do_begin_qm_op(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_begin_qm_op(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 263:
- { zend_do_qm_true(&yyvsp[-1], &yyvsp[-3], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_qm_true(&(yyvsp[(4) - (5)]), &(yyvsp[(2) - (5)]), &(yyvsp[(5) - (5)]) TSRMLS_CC); }
break;
case 264:
- { zend_do_qm_false(&yyval, &yyvsp[0], &yyvsp[-5], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_qm_false(&(yyval), &(yyvsp[(7) - (7)]), &(yyvsp[(2) - (7)]), &(yyvsp[(5) - (7)]) TSRMLS_CC); }
break;
case 265:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 266:
- { zend_do_cast(&yyval, &yyvsp[0], IS_LONG TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_LONG TSRMLS_CC); }
break;
case 267:
- { zend_do_cast(&yyval, &yyvsp[0], IS_DOUBLE TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_DOUBLE TSRMLS_CC); }
break;
case 268:
- { zend_do_cast(&yyval, &yyvsp[0], IS_STRING TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_STRING TSRMLS_CC); }
break;
case 269:
- { zend_do_cast(&yyval, &yyvsp[0], IS_ARRAY TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_ARRAY TSRMLS_CC); }
break;
case 270:
- { zend_do_cast(&yyval, &yyvsp[0], IS_OBJECT TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_OBJECT TSRMLS_CC); }
break;
case 271:
- { zend_do_cast(&yyval, &yyvsp[0], IS_BOOL TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_BOOL TSRMLS_CC); }
break;
case 272:
- { zend_do_cast(&yyval, &yyvsp[0], IS_NULL TSRMLS_CC); }
+ { zend_do_cast(&(yyval), &(yyvsp[(2) - (2)]), IS_NULL TSRMLS_CC); }
break;
case 273:
- { zend_do_exit(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_exit(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 274:
- { zend_do_begin_silence(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_begin_silence(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 275:
- { zend_do_end_silence(&yyvsp[-2] TSRMLS_CC); yyval = yyvsp[0]; }
+ { zend_do_end_silence(&(yyvsp[(1) - (3)]) TSRMLS_CC); (yyval) = (yyvsp[(3) - (3)]); }
break;
case 276:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 277:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(3) - (4)]); }
break;
case 278:
- { zend_do_shell_exec(&yyval, &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_shell_exec(&(yyval), &(yyvsp[(2) - (3)]) TSRMLS_CC); }
break;
case 279:
- { zend_do_print(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_print(&(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 280:
- { yyvsp[0].u.opline_num = zend_do_begin_function_call(&yyvsp[-1] TSRMLS_CC); }
+ { (yyvsp[(2) - (2)]).u.opline_num = zend_do_begin_function_call(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 281:
- { zend_do_end_function_call(&yyvsp[-4], &yyval, &yyvsp[-1], 0, yyvsp[-3].u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
+ { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, (yyvsp[(2) - (5)]).u.opline_num TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C); }
break;
case 282:
- { zend_do_begin_class_member_function_call(&yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 283:
- { zend_do_end_function_call(NULL, &yyval, &yyvsp[-1], 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
case 284:
- { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_class_member_function_call(&(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 285:
- { zend_do_end_function_call(NULL, &yyval, &yyvsp[-1], 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(NULL, &(yyval), &(yyvsp[(6) - (7)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
case 286:
- { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_begin_dynamic_function_call(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 287:
- { zend_do_end_function_call(&yyvsp[-4], &yyval, &yyvsp[-1], 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
+ { zend_do_end_function_call(&(yyvsp[(1) - (5)]), &(yyval), &(yyvsp[(4) - (5)]), 0, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);}
break;
case 288:
- { zend_do_fetch_class(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 289:
- { zend_do_fetch_class(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 290:
- { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_fetch_class(&(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 291:
- { zend_do_push_object(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 292:
- { zend_do_push_object(&yyvsp[0] TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
+ { zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
break;
case 293:
- { zend_do_pop_object(&yyval TSRMLS_CC); yyval.u.EA.type = ZEND_PARSED_MEMBER; }
+ { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_MEMBER; }
break;
case 294:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 297:
- { zend_do_push_object(&yyvsp[0] TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
+ { zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); zend_do_declare_implicit_property(TSRMLS_C); }
break;
case 298:
- { memset(&yyval, 0, sizeof(znode)); yyval.op_type = IS_UNUSED; }
+ { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
case 299:
- { memset(&yyval, 0, sizeof(znode)); yyval.op_type = IS_UNUSED; }
+ { memset(&(yyval), 0, sizeof(znode)); (yyval).op_type = IS_UNUSED; }
break;
case 300:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 301:
- { yyval.u.constant.value.lval=0; }
+ { (yyval).u.constant.value.lval=0; }
break;
case 302:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 303:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 304:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 305:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 306:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 307:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 308:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 309:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 310:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 311:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 312:
- { zend_do_fetch_constant(&yyval, NULL, &yyvsp[0], ZEND_CT TSRMLS_CC); }
+ { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_CT TSRMLS_CC); }
break;
case 313:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(2) - (2)]); }
break;
case 314:
- { zval minus_one; minus_one.type = IS_LONG; minus_one.value.lval = -1; mul_function(&yyvsp[0].u.constant, &yyvsp[0].u.constant, &minus_one TSRMLS_CC); yyval = yyvsp[0]; }
+ { zval minus_one; minus_one.type = IS_LONG; minus_one.value.lval = -1; mul_function(&(yyvsp[(2) - (2)]).u.constant, &(yyvsp[(2) - (2)]).u.constant, &minus_one TSRMLS_CC); (yyval) = (yyvsp[(2) - (2)]); }
break;
case 315:
- { yyval = yyvsp[-1]; yyval.u.constant.type = IS_CONSTANT_ARRAY; }
+ { (yyval) = (yyvsp[(3) - (4)]); (yyval).u.constant.type = IS_CONSTANT_ARRAY; }
break;
case 316:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 317:
- { zend_do_fetch_constant(&yyval, &yyvsp[-2], &yyvsp[0], ZEND_CT TSRMLS_CC); }
+ { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_CT TSRMLS_CC); }
break;
case 318:
- { zend_do_fetch_constant(&yyval, NULL, &yyvsp[0], ZEND_RT TSRMLS_CC); }
+ { zend_do_fetch_constant(&(yyval), NULL, &(yyvsp[(1) - (1)]), ZEND_RT TSRMLS_CC); }
break;
case 319:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 320:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 321:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 322:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 323:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 324:
- { yyval = yyvsp[-1]; zend_do_end_heredoc(TSRMLS_C); }
+ { (yyval) = (yyvsp[(2) - (3)]); zend_do_end_heredoc(TSRMLS_C); }
break;
case 325:
- { yyval.op_type = IS_CONST; INIT_PZVAL(&yyval.u.constant); array_init(&yyval.u.constant); }
+ { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); }
break;
case 326:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(1) - (2)]); }
break;
case 329:
- { zend_do_add_static_array_element(&yyval, &yyvsp[-2], &yyvsp[0]); }
+ { zend_do_add_static_array_element(&(yyval), &(yyvsp[(3) - (5)]), &(yyvsp[(5) - (5)])); }
break;
case 330:
- { zend_do_add_static_array_element(&yyval, NULL, &yyvsp[0]); }
+ { zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(3) - (3)])); }
break;
case 331:
- { yyval.op_type = IS_CONST; INIT_PZVAL(&yyval.u.constant); array_init(&yyval.u.constant); zend_do_add_static_array_element(&yyval, &yyvsp[-2], &yyvsp[0]); }
+ { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)])); }
break;
case 332:
- { yyval.op_type = IS_CONST; INIT_PZVAL(&yyval.u.constant); array_init(&yyval.u.constant); zend_do_add_static_array_element(&yyval, NULL, &yyvsp[0]); }
+ { (yyval).op_type = IS_CONST; INIT_PZVAL(&(yyval).u.constant); array_init(&(yyval).u.constant); zend_do_add_static_array_element(&(yyval), NULL, &(yyvsp[(1) - (1)])); }
break;
case 333:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 334:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 335:
- { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); yyval = yyvsp[0]; }
+ { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
case 336:
- { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); yyval = yyvsp[0]; }
+ { zend_do_end_variable_parse(BP_VAR_W, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
case 337:
- { zend_check_writable_variable(&yyvsp[-1]); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (2)])); }
break;
case 338:
- { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); yyval = yyvsp[0]; }
+ { zend_do_end_variable_parse(BP_VAR_RW, 0 TSRMLS_CC); (yyval) = (yyvsp[(1) - (1)]); }
break;
case 339:
- { zend_check_writable_variable(&yyvsp[-1]); }
+ { zend_check_writable_variable(&(yyvsp[(1) - (2)])); }
break;
case 340:
- { zend_do_push_object(&yyvsp[-1] TSRMLS_CC); }
+ { zend_do_push_object(&(yyvsp[(1) - (2)]) TSRMLS_CC); }
break;
case 341:
- { zend_do_push_object(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_push_object(&(yyvsp[(4) - (4)]) TSRMLS_CC); }
break;
case 342:
- { zend_do_pop_object(&yyval TSRMLS_CC); yyval.u.EA.type = yyvsp[-6].u.EA.type | (yyvsp[0].u.EA.type ? yyvsp[0].u.EA.type : yyvsp[-1].u.EA.type); }
+ { zend_do_pop_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = (yyvsp[(1) - (7)]).u.EA.type | ((yyvsp[(7) - (7)]).u.EA.type ? (yyvsp[(7) - (7)]).u.EA.type : (yyvsp[(6) - (7)]).u.EA.type); }
break;
case 343:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 344:
- { yyval.u.EA.type = yyvsp[0].u.EA.type; }
+ { (yyval).u.EA.type = (yyvsp[(2) - (2)]).u.EA.type; }
break;
case 345:
- { yyval.u.EA.type = 0; }
+ { (yyval).u.EA.type = 0; }
break;
case 346:
- { zend_do_push_object(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_push_object(&(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 347:
- { yyval.u.EA.type = yyvsp[0].u.EA.type; }
+ { (yyval).u.EA.type = (yyvsp[(4) - (4)]).u.EA.type; }
break;
case 348:
- { zend_do_pop_object(&yyvsp[0] TSRMLS_CC); zend_do_begin_method_call(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_pop_object(&(yyvsp[(1) - (1)]) TSRMLS_CC); zend_do_begin_method_call(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 349:
- { zend_do_end_function_call(&yyvsp[-3], &yyval, &yyvsp[-1], 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);
- zend_do_push_object(&yyval TSRMLS_CC); yyval.u.EA.type = ZEND_PARSED_METHOD_CALL; }
+ { zend_do_end_function_call(&(yyvsp[(1) - (4)]), &(yyval), &(yyvsp[(3) - (4)]), 1, 1 TSRMLS_CC); zend_do_extended_fcall_end(TSRMLS_C);
+ zend_do_push_object(&(yyval) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_METHOD_CALL; }
break;
case 350:
- { zend_do_declare_implicit_property(TSRMLS_C); yyval.u.EA.type = ZEND_PARSED_MEMBER; }
+ { zend_do_declare_implicit_property(TSRMLS_C); (yyval).u.EA.type = ZEND_PARSED_MEMBER; }
break;
case 351:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 352:
- { zend_do_indirect_references(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 353:
- { yyval = yyvsp[0]; zend_do_fetch_static_member(&yyval, &yyvsp[-2] TSRMLS_CC); }
+ { (yyval) = (yyvsp[(3) - (3)]); zend_do_fetch_static_member(&(yyval), &(yyvsp[(1) - (3)]) TSRMLS_CC); }
break;
case 354:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 355:
- { zend_do_begin_variable_parse(TSRMLS_C); yyval = yyvsp[0]; yyval.u.EA.type = ZEND_PARSED_FUNCTION_CALL; }
+ { zend_do_begin_variable_parse(TSRMLS_C); (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_FUNCTION_CALL; }
break;
case 356:
- { yyval = yyvsp[0]; yyval.u.EA.type = ZEND_PARSED_VARIABLE; }
+ { (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; }
break;
case 357:
- { zend_do_indirect_references(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); yyval.u.EA.type = ZEND_PARSED_VARIABLE; }
+ { zend_do_indirect_references(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyval).u.EA.type = ZEND_PARSED_VARIABLE; }
break;
case 358:
- { yyval = yyvsp[0]; yyval.u.EA.type = ZEND_PARSED_STATIC_MEMBER; }
+ { (yyval) = (yyvsp[(1) - (1)]); (yyval).u.EA.type = ZEND_PARSED_STATIC_MEMBER; }
break;
case 359:
- { fetch_array_dim(&yyval, &yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 360:
- { fetch_string_offset(&yyval, &yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 361:
- { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&yyval, &yyvsp[0], 1 TSRMLS_CC); }
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
case 362:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 363:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(3) - (4)]); }
break;
case 364:
- { yyval.op_type = IS_UNUSED; }
+ { (yyval).op_type = IS_UNUSED; }
break;
case 365:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 366:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 367:
@@ -4330,47 +4660,47 @@ yyreduce:
case 368:
- { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&yyval, &tmp_znode, &yyvsp[-1] TSRMLS_CC);}
+ { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (2)]) TSRMLS_CC);}
break;
case 369:
- { fetch_array_dim(&yyval, &yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { fetch_array_dim(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 370:
- { fetch_string_offset(&yyval, &yyvsp[-3], &yyvsp[-1] TSRMLS_CC); }
+ { fetch_string_offset(&(yyval), &(yyvsp[(1) - (4)]), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 371:
- { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&yyval, &tmp_znode, &yyvsp[0] TSRMLS_CC);}
+ { znode tmp_znode; zend_do_pop_object(&tmp_znode TSRMLS_CC); zend_do_fetch_property(&(yyval), &tmp_znode, &(yyvsp[(1) - (1)]) TSRMLS_CC);}
break;
case 372:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 373:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 374:
- { yyval.u.constant.value.lval = 1; }
+ { (yyval).u.constant.value.lval = 1; }
break;
case 375:
- { yyval.u.constant.value.lval++; }
+ { (yyval).u.constant.value.lval++; }
break;
case 378:
- { zend_do_add_list_element(&yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_list_element(&(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 379:
@@ -4390,117 +4720,117 @@ yyreduce:
case 382:
- { zend_do_init_array(&yyval, NULL, NULL, 0 TSRMLS_CC); }
+ { zend_do_init_array(&(yyval), NULL, NULL, 0 TSRMLS_CC); }
break;
case 383:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(1) - (2)]); }
break;
case 384:
- { zend_do_add_array_element(&yyval, &yyvsp[0], &yyvsp[-2], 0 TSRMLS_CC); }
+ { zend_do_add_array_element(&(yyval), &(yyvsp[(5) - (5)]), &(yyvsp[(3) - (5)]), 0 TSRMLS_CC); }
break;
case 385:
- { zend_do_add_array_element(&yyval, &yyvsp[0], NULL, 0 TSRMLS_CC); }
+ { zend_do_add_array_element(&(yyval), &(yyvsp[(3) - (3)]), NULL, 0 TSRMLS_CC); }
break;
case 386:
- { zend_do_init_array(&yyval, &yyvsp[0], &yyvsp[-2], 0 TSRMLS_CC); }
+ { zend_do_init_array(&(yyval), &(yyvsp[(3) - (3)]), &(yyvsp[(1) - (3)]), 0 TSRMLS_CC); }
break;
case 387:
- { zend_do_init_array(&yyval, &yyvsp[0], NULL, 0 TSRMLS_CC); }
+ { zend_do_init_array(&(yyval), &(yyvsp[(1) - (1)]), NULL, 0 TSRMLS_CC); }
break;
case 388:
- { zend_do_add_array_element(&yyval, &yyvsp[0], &yyvsp[-3], 1 TSRMLS_CC); }
+ { zend_do_add_array_element(&(yyval), &(yyvsp[(6) - (6)]), &(yyvsp[(3) - (6)]), 1 TSRMLS_CC); }
break;
case 389:
- { zend_do_add_array_element(&yyval, &yyvsp[0], NULL, 1 TSRMLS_CC); }
+ { zend_do_add_array_element(&(yyval), &(yyvsp[(4) - (4)]), NULL, 1 TSRMLS_CC); }
break;
case 390:
- { zend_do_init_array(&yyval, &yyvsp[0], &yyvsp[-3], 1 TSRMLS_CC); }
+ { zend_do_init_array(&(yyval), &(yyvsp[(4) - (4)]), &(yyvsp[(1) - (4)]), 1 TSRMLS_CC); }
break;
case 391:
- { zend_do_init_array(&yyval, &yyvsp[0], NULL, 1 TSRMLS_CC); }
+ { zend_do_init_array(&(yyval), &(yyvsp[(2) - (2)]), NULL, 1 TSRMLS_CC); }
break;
case 392:
- { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_end_variable_parse(BP_VAR_R, 0 TSRMLS_CC); zend_do_add_variable(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 393:
- { zend_do_add_string(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 394:
- { zend_do_add_string(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 395:
- { zend_do_add_string(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 396:
- { zend_do_add_char(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 397:
- { zend_do_add_string(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_add_string(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 398:
- { yyvsp[0].u.constant.value.lval = (long) '['; zend_do_add_char(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(2) - (2)]).u.constant.value.lval = (long) '['; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 399:
- { yyvsp[0].u.constant.value.lval = (long) ']'; zend_do_add_char(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(2) - (2)]).u.constant.value.lval = (long) ']'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 400:
- { yyvsp[0].u.constant.value.lval = (long) '{'; zend_do_add_char(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(2) - (2)]).u.constant.value.lval = (long) '{'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 401:
- { yyvsp[0].u.constant.value.lval = (long) '}'; zend_do_add_char(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { (yyvsp[(2) - (2)]).u.constant.value.lval = (long) '}'; zend_do_add_char(&(yyval), &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 402:
- { znode tmp; yyvsp[0].u.constant.value.lval = (long) '-'; zend_do_add_char(&tmp, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); yyvsp[0].u.constant.value.lval = (long) '>'; zend_do_add_char(&yyval, &tmp, &yyvsp[0] TSRMLS_CC); }
+ { znode tmp; (yyvsp[(2) - (2)]).u.constant.value.lval = (long) '-'; zend_do_add_char(&tmp, &(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); (yyvsp[(2) - (2)]).u.constant.value.lval = (long) '>'; zend_do_add_char(&(yyval), &tmp, &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 403:
- { zend_do_init_string(&yyval TSRMLS_CC); }
+ { zend_do_init_string(&(yyval) TSRMLS_CC); }
break;
case 404:
- { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&yyval, &yyvsp[0], 1 TSRMLS_CC); }
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
case 405:
@@ -4510,109 +4840,108 @@ yyreduce:
case 406:
- { fetch_array_begin(&yyval, &yyvsp[-4], &yyvsp[-1] TSRMLS_CC); }
+ { fetch_array_begin(&(yyval), &(yyvsp[(1) - (5)]), &(yyvsp[(4) - (5)]) TSRMLS_CC); }
break;
case 407:
- { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&yyvsp[-1], &yyvsp[-2], 1 TSRMLS_CC); zend_do_fetch_property(&yyval, &yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyvsp[(2) - (3)]), &(yyvsp[(1) - (3)]), 1 TSRMLS_CC); zend_do_fetch_property(&(yyval), &(yyvsp[(2) - (3)]), &(yyvsp[(3) - (3)]) TSRMLS_CC); }
break;
case 408:
- { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&yyval, &yyvsp[-1], 1 TSRMLS_CC); }
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_simple_variable(&(yyval), &(yyvsp[(2) - (3)]), 1 TSRMLS_CC); }
break;
case 409:
- { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&yyval, &yyvsp[-4], &yyvsp[-2] TSRMLS_CC); }
+ { zend_do_begin_variable_parse(TSRMLS_C); fetch_array_begin(&(yyval), &(yyvsp[(2) - (6)]), &(yyvsp[(4) - (6)]) TSRMLS_CC); }
break;
case 410:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(2) - (3)]); }
break;
case 411:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 412:
- { yyval = yyvsp[0]; }
+ { (yyval) = (yyvsp[(1) - (1)]); }
break;
case 413:
- { fetch_simple_variable(&yyval, &yyvsp[0], 1 TSRMLS_CC); }
+ { fetch_simple_variable(&(yyval), &(yyvsp[(1) - (1)]), 1 TSRMLS_CC); }
break;
case 414:
- { yyval = yyvsp[-1]; }
+ { (yyval) = (yyvsp[(3) - (4)]); }
break;
case 415:
- { zend_do_isset_or_isempty(ZEND_ISEMPTY, &yyval, &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_isset_or_isempty(ZEND_ISEMPTY, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 416:
- { zend_do_include_or_eval(ZEND_INCLUDE, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_include_or_eval(ZEND_INCLUDE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 417:
- { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_include_or_eval(ZEND_INCLUDE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 418:
- { zend_do_include_or_eval(ZEND_EVAL, &yyval, &yyvsp[-1] TSRMLS_CC); }
+ { zend_do_include_or_eval(ZEND_EVAL, &(yyval), &(yyvsp[(3) - (4)]) TSRMLS_CC); }
break;
case 419:
- { zend_do_include_or_eval(ZEND_REQUIRE, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_include_or_eval(ZEND_REQUIRE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 420:
- { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_include_or_eval(ZEND_REQUIRE_ONCE, &(yyval), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 421:
- { zend_do_isset_or_isempty(ZEND_ISSET, &yyval, &yyvsp[0] TSRMLS_CC); }
+ { zend_do_isset_or_isempty(ZEND_ISSET, &(yyval), &(yyvsp[(1) - (1)]) TSRMLS_CC); }
break;
case 422:
- { zend_do_boolean_and_begin(&yyvsp[-1], &yyvsp[0] TSRMLS_CC); }
+ { zend_do_boolean_and_begin(&(yyvsp[(1) - (2)]), &(yyvsp[(2) - (2)]) TSRMLS_CC); }
break;
case 423:
- { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &yyvsp[0] TSRMLS_CC); zend_do_boolean_and_end(&yyval, &yyvsp[-3], &tmp, &yyvsp[-2] TSRMLS_CC); }
+ { znode tmp; zend_do_isset_or_isempty(ZEND_ISSET, &tmp, &(yyvsp[(4) - (4)]) TSRMLS_CC); zend_do_boolean_and_end(&(yyval), &(yyvsp[(1) - (4)]), &tmp, &(yyvsp[(2) - (4)]) TSRMLS_CC); }
break;
case 424:
- { zend_do_fetch_constant(&yyval, &yyvsp[-2], &yyvsp[0], ZEND_RT TSRMLS_CC); }
+ { zend_do_fetch_constant(&(yyval), &(yyvsp[(1) - (3)]), &(yyvsp[(3) - (3)]), ZEND_RT TSRMLS_CC); }
break;
- }
-
-/* Line 1010 of yacc.c. */
-
-
- yyvsp -= yylen;
- yyssp -= yylen;
+/* Line 1267 of yacc.c. */
+ default: break;
+ }
+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
+ YYPOPSTACK (yylen);
+ yylen = 0;
YY_STACK_PRINT (yyss, yyssp);
*++yyvsp = yyval;
@@ -4641,99 +4970,65 @@ yyerrlab:
if (!yyerrstatus)
{
++yynerrs;
-#if YYERROR_VERBOSE
- yyn = yypact[yystate];
-
- if (YYPACT_NINF < yyn && yyn < YYLAST)
- {
- YYSIZE_T yysize = 0;
- int yytype = YYTRANSLATE (yychar);
- const char* yyprefix;
- char *yymsg;
- int yyx;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 0;
-
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+#if ! YYERROR_VERBOSE
+ yyerror (YY_("syntax error"));
+#else
+ {
+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
+ {
+ YYSIZE_T yyalloc = 2 * yysize;
+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
+ if (yymsg)
+ yymsg_alloc = yyalloc;
+ else
{
- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
- yycount += 1;
- if (yycount == 5)
- {
- yysize = 0;
- break;
- }
+ yymsg = yymsgbuf;
+ yymsg_alloc = sizeof yymsgbuf;
}
- yysize += (sizeof ("syntax error, unexpected ")
- + yystrlen (yytname[yytype]));
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg != 0)
- {
- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
- yyp = yystpcpy (yyp, yytname[yytype]);
-
- if (yycount < 5)
- {
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- yyp = yystpcpy (yyp, yyprefix);
- yyp = yystpcpy (yyp, yytname[yyx]);
- yyprefix = " or ";
- }
- }
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
- }
- else
- yyerror ("syntax error; also virtual memory exhausted");
- }
- else
-#endif /* YYERROR_VERBOSE */
- yyerror ("syntax error");
+ }
+
+ if (0 < yysize && yysize <= yymsg_alloc)
+ {
+ (void) yysyntax_error (yymsg, yystate, yychar);
+ yyerror (yymsg);
+ }
+ else
+ {
+ yyerror (YY_("syntax error"));
+ if (yysize != 0)
+ goto yyexhaustedlab;
+ }
+ }
+#endif
}
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
+ /* If just tried and failed to reuse look-ahead token after an
error, discard it. */
if (yychar <= YYEOF)
- {
- /* If at end of input, pop the error token,
- then the rest of the stack, then return failure. */
+ {
+ /* Return failure if at end of input. */
if (yychar == YYEOF)
- for (;;)
- {
- YYPOPSTACK;
- if (yyssp == yyss)
- YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
- }
- }
+ YYABORT;
+ }
else
{
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
+ yydestruct ("Error: discarding",
+ yytoken, &yylval);
yychar = YYEMPTY;
-
}
}
- /* Else will try to reuse lookahead token after shifting the error
+ /* Else will try to reuse look-ahead token after shifting the error
token. */
goto yyerrlab1;
@@ -4743,15 +5038,17 @@ yyerrlab:
`---------------------------------------------------*/
yyerrorlab:
-#ifdef __GNUC__
- /* Pacify GCC when the user code never invokes YYERROR and the label
- yyerrorlab therefore never appears in user code. */
- if (0)
+ /* Pacify compilers like GCC when the user code never invokes
+ YYERROR and the label yyerrorlab therefore never appears in user
+ code. */
+ if (/*CONSTCOND*/ 0)
goto yyerrorlab;
-#endif
- yyvsp -= yylen;
- yyssp -= yylen;
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYERROR. */
+ YYPOPSTACK (yylen);
+ yylen = 0;
+ YY_STACK_PRINT (yyss, yyssp);
yystate = *yyssp;
goto yyerrlab1;
@@ -4780,9 +5077,10 @@ yyerrlab1:
if (yyssp == yyss)
YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[yystate], yyvsp);
- YYPOPSTACK;
+
+ yydestruct ("Error: popping",
+ yystos[yystate], yyvsp);
+ YYPOPSTACK (1);
yystate = *yyssp;
YY_STACK_PRINT (yyss, yyssp);
}
@@ -4790,11 +5088,12 @@ yyerrlab1:
if (yyn == YYFINAL)
YYACCEPT;
- YYDPRINTF ((stderr, "Shifting error token, "));
-
*++yyvsp = yylval;
+ /* Shift the error token. */
+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
+
yystate = yyn;
goto yynewstate;
@@ -4814,21 +5113,39 @@ yyabortlab:
goto yyreturn;
#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here. |
-`----------------------------------------------*/
-yyoverflowlab:
- yyerror ("parser stack overflow");
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here. |
+`-------------------------------------------------*/
+yyexhaustedlab:
+ yyerror (YY_("memory exhausted"));
yyresult = 2;
/* Fall through. */
#endif
yyreturn:
+ if (yychar != YYEOF && yychar != YYEMPTY)
+ yydestruct ("Cleanup: discarding lookahead",
+ yytoken, &yylval);
+ /* Do not reclaim the symbols of the rule which action triggered
+ this YYABORT or YYACCEPT. */
+ YYPOPSTACK (yylen);
+ YY_STACK_PRINT (yyss, yyssp);
+ while (yyssp != yyss)
+ {
+ yydestruct ("Cleanup: popping",
+ yystos[*yyssp], yyvsp);
+ YYPOPSTACK (1);
+ }
#ifndef yyoverflow
if (yyss != yyssa)
YYSTACK_FREE (yyss);
#endif
- return yyresult;
+#if YYERROR_VERBOSE
+ if (yymsg != yymsgbuf)
+ YYSTACK_FREE (yymsg);
+#endif
+ /* Make sure YYID is used. */
+ return YYID (yyresult);
}
diff --git a/Zend/zend_language_parser.h b/Zend/zend_language_parser.h
index 8bf7b3416..e3c6c0fd3 100644
--- a/Zend/zend_language_parser.h
+++ b/Zend/zend_language_parser.h
@@ -1,7 +1,9 @@
-/* A Bison parser, made by GNU Bison 1.875d. */
+/* A Bison parser, made by GNU Bison 2.3. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+/* Skeleton interface for Bison's Yacc-like parsers in C
+
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+ Free Software Foundation, Inc.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -15,13 +17,21 @@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ Boston, MA 02110-1301, USA. */
+
+/* As a special exception, you may create a larger work that contains
+ part or all of the Bison parser skeleton and distribute that work
+ under terms of your choice, so long as that work isn't itself a
+ parser generator using the skeleton or a modified version thereof
+ as a parser skeleton. Alternatively, if you modify or redistribute
+ the parser skeleton itself, you may (at your option) remove this
+ special exception, which will cause the skeleton and the resulting
+ Bison output files to be licensed under the GNU General Public
+ License without this special exception.
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
+ This special exception was added by the Free Software Foundation in
+ version 2.2 of Bison. */
/* Tokens. */
#ifndef YYTOKENTYPE
@@ -149,6 +159,7 @@
T_PAAMAYIM_NEKUDOTAYIM = 375
};
#endif
+/* Tokens. */
#define T_REQUIRE_ONCE 258
#define T_REQUIRE 259
#define T_EVAL 260
@@ -271,7 +282,7 @@
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef int YYSTYPE;
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
# define YYSTYPE_IS_DECLARED 1
@@ -280,5 +291,3 @@ typedef int YYSTYPE;
-
-
diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y
index 3cd5df846..9c654e625 100644
--- a/Zend/zend_language_parser.y
+++ b/Zend/zend_language_parser.y
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_parser.y,v 1.160.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_language_parser.y,v 1.160.2.4 2006/03/12 16:52:18 iliaa Exp $ */
/*
* LALR shift/reduce conflicts and how they are resolved:
@@ -501,7 +501,7 @@ method_body:
variable_modifiers:
non_empty_member_modifiers { $$ = $1; }
- | T_VAR { zend_error(E_STRICT, "var: Deprecated. Please use the public/private/protected modifiers"); $$.u.constant.value.lval = ZEND_ACC_PUBLIC; }
+ | T_VAR { $$.u.constant.value.lval = ZEND_ACC_PUBLIC; }
;
method_modifiers:
diff --git a/Zend/zend_language_scanner.c b/Zend/zend_language_scanner.c
index 9f70b4d35..86bcf336a 100644
--- a/Zend/zend_language_scanner.c
+++ b/Zend/zend_language_scanner.c
@@ -2699,7 +2699,7 @@ char *yytext;
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_scanner.l,v 1.131.2.9 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_language_scanner.l,v 1.131.2.10 2006/01/17 09:39:57 dmitry Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -4939,7 +4939,6 @@ YY_RULE_SETUP
{
int label_len;
- CG(zend_lineno)++;
if (yytext[yyleng-2]=='\r') {
label_len = yyleng-2;
} else {
@@ -4960,6 +4959,7 @@ YY_RULE_SETUP
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
} else {
+ CG(zend_lineno)++;
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
diff --git a/Zend/zend_language_scanner.l b/Zend/zend_language_scanner.l
index d9c54ffd1..2bee00ad9 100644
--- a/Zend/zend_language_scanner.l
+++ b/Zend/zend_language_scanner.l
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_language_scanner.l,v 1.131.2.9 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_language_scanner.l,v 1.131.2.10 2006/01/17 09:39:57 dmitry Exp $ */
#define yyleng SCNG(yy_leng)
#define yytext SCNG(yy_text)
@@ -1734,7 +1734,6 @@ NEWLINE ("\r"|"\n"|"\r\n")
<ST_HEREDOC>^{LABEL}(";")?{NEWLINE} {
int label_len;
- CG(zend_lineno)++;
if (yytext[yyleng-2]=='\r') {
label_len = yyleng-2;
} else {
@@ -1755,6 +1754,7 @@ NEWLINE ("\r"|"\n"|"\r\n")
BEGIN(ST_IN_SCRIPTING);
return T_END_HEREDOC;
} else {
+ CG(zend_lineno)++;
zend_copy_value(zendlval, yytext, yyleng);
zendlval->type = IS_STRING;
return T_STRING;
diff --git a/Zend/zend_modules.h b/Zend/zend_modules.h
index c8f4ed9ff..a5e7d597d 100644
--- a/Zend/zend_modules.h
+++ b/Zend/zend_modules.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_modules.h,v 1.67.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_modules.h,v 1.67.2.3 2006/04/06 21:10:45 andrei Exp $ */
#ifndef MODULES_H
#define MODULES_H
@@ -36,6 +36,7 @@ extern struct _zend_arg_info first_arg_force_ref[2];
extern struct _zend_arg_info second_arg_force_ref[3];
extern struct _zend_arg_info third_arg_force_ref[4];
extern struct _zend_arg_info fourth_arg_force_ref[5];
+extern struct _zend_arg_info fifth_arg_force_ref[6];
extern struct _zend_arg_info all_args_by_ref[1];
#define ZEND_MODULE_API_NO 20050922
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index e2cffc3d2..5417f8c7f 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects.c,v 1.56.2.2 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_objects.c,v 1.56.2.3 2006/03/29 14:28:40 tony2001 Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -25,6 +25,26 @@
#include "zend_API.h"
#include "zend_interfaces.h"
+ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSRMLS_DC)
+{
+ ALLOC_HASHTABLE(object->properties);
+ zend_hash_init(object->properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+
+ object->ce = ce;
+ object->guards = NULL;
+}
+
+ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC)
+{
+ if (object->guards) {
+ zend_hash_destroy(object->guards);
+ FREE_HASHTABLE(object->guards);
+ }
+ if (object->properties) {
+ zend_hash_destroy(object->properties);
+ FREE_HASHTABLE(object->properties);
+ }
+}
ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handle handle TSRMLS_DC)
{
@@ -88,12 +108,7 @@ ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handl
ZEND_API void zend_objects_free_object_storage(zend_object *object TSRMLS_DC)
{
- if (object->guards) {
- zend_hash_destroy(object->guards);
- FREE_HASHTABLE(object->guards);
- }
- zend_hash_destroy(object->properties);
- FREE_HASHTABLE(object->properties);
+ zend_object_std_dtor(object TSRMLS_CC);
efree(object);
}
diff --git a/Zend/zend_objects.h b/Zend/zend_objects.h
index 8058dfb2c..65af84286 100644
--- a/Zend/zend_objects.h
+++ b/Zend/zend_objects.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects.h,v 1.25.2.1 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_objects.h,v 1.25.2.2 2006/03/29 14:28:40 tony2001 Exp $ */
#ifndef ZEND_OBJECTS_H
#define ZEND_OBJECTS_H
@@ -25,6 +25,8 @@
#include "zend.h"
BEGIN_EXTERN_C()
+ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSRMLS_DC);
+ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC);
ZEND_API zend_object_value zend_objects_new(zend_object **object, zend_class_entry *class_type TSRMLS_DC);
ZEND_API void zend_objects_destroy_object(zend_object *object, zend_object_handle handle TSRMLS_DC);
ZEND_API zend_object *zend_objects_get_address(zval *object TSRMLS_DC);
diff --git a/Zend/zend_objects_API.c b/Zend/zend_objects_API.c
index 733ac9a96..48b37b3ab 100644
--- a/Zend/zend_objects_API.c
+++ b/Zend/zend_objects_API.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_objects_API.c,v 1.47.2.4 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_objects_API.c,v 1.47.2.6 2006/03/28 21:58:01 tony2001 Exp $ */
#include "zend.h"
#include "zend_globals.h"
@@ -33,6 +33,7 @@ ZEND_API void zend_objects_store_init(zend_objects_store *objects, zend_uint ini
objects->top = 1; /* Skip 0 so that handles are true */
objects->size = init_size;
objects->free_list_head = -1;
+ memset(&objects->object_buckets[0], 0, sizeof(zend_object_store_bucket));
}
ZEND_API void zend_objects_store_destroy(zend_objects_store *objects)
@@ -52,7 +53,9 @@ ZEND_API void zend_objects_store_call_destructors(zend_objects_store *objects TS
if (!objects->object_buckets[i].destructor_called) {
objects->object_buckets[i].destructor_called = 1;
if (obj->dtor && obj->object) {
+ obj->refcount++;
obj->dtor(obj->object, i TSRMLS_CC);
+ obj->refcount--;
}
}
}
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c
index 0799cd66d..b7e20bd0b 100644
--- a/Zend/zend_opcode.c
+++ b/Zend/zend_opcode.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_opcode.c,v 1.110.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_opcode.c,v 1.110.2.5 2006/03/14 11:24:45 dmitry Exp $ */
#include <stdio.h>
@@ -132,7 +132,17 @@ ZEND_API int zend_cleanup_function_data(zend_function *function TSRMLS_DC)
{
if (function->type == ZEND_USER_FUNCTION) {
zend_cleanup_op_array_data((zend_op_array *) function);
- }
+ return ZEND_HASH_APPLY_KEEP;
+ } else {
+ return ZEND_HASH_APPLY_STOP;
+ }
+}
+
+ZEND_API int zend_cleanup_function_data_full(zend_function *function TSRMLS_DC)
+{
+ if (function->type == ZEND_USER_FUNCTION) {
+ zend_cleanup_op_array_data((zend_op_array *) function);
+ }
return 0;
}
@@ -142,7 +152,7 @@ ZEND_API int zend_cleanup_class_data(zend_class_entry **pce TSRMLS_DC)
/* Clean all parts that can contain run-time data */
/* Note that only run-time accessed data need to be cleaned up, pre-defined data can
not contain objects and thus are not probelmatic */
- zend_hash_apply(&(*pce)->function_table, (apply_func_t) zend_cleanup_function_data TSRMLS_CC);
+ zend_hash_apply(&(*pce)->function_table, (apply_func_t) zend_cleanup_function_data_full TSRMLS_CC);
(*pce)->static_members = NULL;
} else if (CE_STATIC_MEMBERS(*pce)) {
zend_hash_destroy(CE_STATIC_MEMBERS(*pce));
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 12282f44f..5a5180926 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_operators.c,v 1.208.2.3 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_operators.c,v 1.208.2.4 2006/02/05 17:07:40 helly Exp $ */
#include <ctype.h>
@@ -1267,9 +1267,9 @@ ZEND_API int numeric_compare_function(zval *result, zval *op1, zval *op2 TSRMLS_
}
-static inline void zend_free_obj_get_result(zval *op, int free_op)
+static inline void zend_free_obj_get_result(zval *op)
{
- if (free_op) {
+ if (op) {
if (op->refcount == 0) {
zval_dtor(op);
FREE_ZVAL(op);
@@ -1280,26 +1280,50 @@ static inline void zend_free_obj_get_result(zval *op, int free_op)
}
#define COMPARE_RETURN_AND_FREE(retval) \
- zend_free_obj_get_result(op1_orig, free_op1); \
- zend_free_obj_get_result(op2_orig, free_op2); \
+ zend_free_obj_get_result(op1_free); \
+ zend_free_obj_get_result(op2_free); \
return retval;
ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
{
zval op1_copy, op2_copy;
- zend_bool free_op1 = 0, free_op2 = 0;
- zval *op1_orig, *op2_orig;
+ zval *op1_free, *op2_free;
+ int op1_obj = op1->type == IS_OBJECT;
+ int op2_obj = op2->type == IS_OBJECT;
- if (op1->type == IS_OBJECT && Z_OBJ_HT_P(op1)->get) {
- op1 = Z_OBJ_HT_P(op1)->get(op1 TSRMLS_CC);
- free_op1 = 1;
- }
- op1_orig = op1;
- if (op2->type == IS_OBJECT && Z_OBJ_HT_P(op2)->get) {
- op2 = Z_OBJ_HT_P(op2)->get(op2 TSRMLS_CC);
- free_op2 = 1;
+ if (op1_obj) {
+ if (Z_OBJ_HT_P(op1)->get) {
+ op1 = op1_free = Z_OBJ_HT_P(op1)->get(op1 TSRMLS_CC);
+ } else if (!op2_obj && Z_OBJ_HT_P(op1)->cast_object) {
+ ALLOC_INIT_ZVAL(op1_free);
+ if (Z_OBJ_HT_P(op1)->cast_object(op1, op1_free, Z_TYPE_P(op2), 0 TSRMLS_CC) == FAILURE) {
+ op2_free = NULL;
+ ZVAL_BOOL(result, 0);
+ COMPARE_RETURN_AND_FREE(FAILURE);
+ }
+ op1 = op1_free;
+ } else {
+ op1_free = NULL;
+ }
+ } else {
+ op1_free = NULL;
+ }
+ if (op2_obj) {
+ if (Z_OBJ_HT_P(op2)->get) {
+ op2 = op2_free = Z_OBJ_HT_P(op2)->get(op2 TSRMLS_CC);
+ } else if (!op1_obj && Z_OBJ_HT_P(op2)->cast_object) {
+ ALLOC_INIT_ZVAL(op2_free);
+ if (Z_OBJ_HT_P(op2)->cast_object(op2, op2_free, Z_TYPE_P(op1), 0 TSRMLS_CC) == FAILURE) {
+ ZVAL_BOOL(result, 0);
+ COMPARE_RETURN_AND_FREE(FAILURE);
+ }
+ op2 = op2_free;
+ } else {
+ op2_free = NULL;
+ }
+ } else {
+ op2_free = NULL;
}
- op2_orig = op2;
if ((op1->type == IS_NULL && op2->type == IS_STRING)
|| (op2->type == IS_NULL && op1->type == IS_STRING)) {
diff --git a/Zend/zend_strtod.c b/Zend/zend_strtod.c
index 87d755006..3ad2c5f15 100644
--- a/Zend/zend_strtod.c
+++ b/Zend/zend_strtod.c
@@ -1250,7 +1250,7 @@ zend_strtod
_double rv, rv0;
Long L;
ULong y, z;
- Bigint *bb, *bb1, *bd, *bd0, *bs, *delta;
+ Bigint *bb, *bb1, *bd, *bd0, *bs, *delta, *tmp;
double result;
CONST char decimal_point = '.';
@@ -1776,5 +1776,21 @@ zend_strtod
if (se)
*se = (char *)s;
result = sign ? -value(rv) : value(rv);
+
+ for (i = 0; i <= Kmax; i++) {
+ Bigint **listp = &freelist[i];
+ while ((tmp = *listp) != NULL) {
+ *listp = tmp->next;
+ free(tmp);
+ }
+ freelist[i] = NULL;
+ }
+
+ while (p5s) {
+ tmp = p5s;
+ p5s = p5s->next;
+ free(tmp);
+ }
+
return result;
}
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index aba47b844..c0cc2cf16 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: zend_vm_def.h,v 1.59.2.22 2006/01/04 23:53:04 andi Exp $ */
+/* $Id: zend_vm_def.h,v 1.59.2.27 2006/03/15 11:12:45 dmitry Exp $ */
/* If you change this file, please regenerate the zend_vm_execute.h and
* zend_vm_opcodes.h files by running:
@@ -1723,6 +1723,15 @@ ZEND_VM_HANDLER(113, ZEND_INIT_STATIC_METHOD_CALL, ANY, CONST|TMP|VAR|UNUSED|CV)
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (OP2_TYPE != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -1784,9 +1793,17 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
zend_bool should_change_scope;
zend_op *ctor_opline;
- if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
- zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
- ZEND_VM_NEXT_OPCODE(); /* Never reached */
+ if (EX(function_state).function->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) {
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
+ zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
+ ZEND_VM_NEXT_OPCODE(); /* Never reached */
+ }
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) {
+ zend_error(E_STRICT, "Function %s%s%s() is deprecated",
+ EX(function_state).function->common.scope ? EX(function_state).function->common.scope->name : "",
+ EX(function_state).function->common.scope ? "::" : "",
+ EX(function_state).function->common.function_name);
+ };
}
zend_ptr_stack_2_push(&EG(argument_stack), (void *) opline->extended_value, NULL);
@@ -2983,7 +3000,9 @@ ZEND_VM_HANDLER(77, ZEND_FE_RESET, CONST|TMP|VAR|CV, ANY)
}
array_ptr = *array_ptr_ptr;
} else {
- SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
+ SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ }
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
@@ -3086,7 +3105,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
int key_type;
- zend_bool use_key = opline->extended_value & ZEND_FE_FETCH_WITH_KEY;
+ zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY);
PZVAL_LOCK(array);
@@ -3404,8 +3423,8 @@ ZEND_VM_HANDLER(148, ZEND_ISSET_ISEMPTY_PROP_OBJ, VAR|UNUSED|CV, CONST|TMP|VAR|C
ZEND_VM_HANDLER(79, ZEND_EXIT, CONST|TMP|VAR|UNUSED|CV, ANY)
{
+ zend_op *opline = EX(opline);
if (OP1_TYPE != IS_UNUSED) {
- zend_op *opline = EX(opline);
zend_free_op free_op1;
zval *ptr = GET_OP1_ZVAL_PTR(BP_VAR_R);
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index ef58b0d49..a9a3c5c2f 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -132,9 +132,17 @@ static int zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
zend_bool should_change_scope;
zend_op *ctor_opline;
- if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
- zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
- ZEND_VM_NEXT_OPCODE(); /* Never reached */
+ if (EX(function_state).function->common.fn_flags & (ZEND_ACC_ABSTRACT|ZEND_ACC_DEPRECATED)) {
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) {
+ zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name);
+ ZEND_VM_NEXT_OPCODE(); /* Never reached */
+ }
+ if (EX(function_state).function->common.fn_flags & ZEND_ACC_DEPRECATED) {
+ zend_error(E_STRICT, "Function %s%s%s() is deprecated",
+ EX(function_state).function->common.scope ? EX(function_state).function->common.scope->name : "",
+ EX(function_state).function->common.scope ? "::" : "",
+ EX(function_state).function->common.function_name);
+ };
}
zend_ptr_stack_2_push(&EG(argument_stack), (void *) opline->extended_value, NULL);
@@ -670,6 +678,15 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_A
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (IS_CONST != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -862,6 +879,15 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (IS_TMP_VAR != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -1011,6 +1037,15 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (IS_VAR != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -1159,6 +1194,15 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (IS_UNUSED != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -1240,6 +1284,15 @@ static int ZEND_INIT_STATIC_METHOD_CALL_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (EX(fbc)->common.fn_flags & ZEND_ACC_STATIC) {
EX(object) = NULL;
} else {
+ if (IS_CV != IS_UNUSED &&
+ EG(This) &&
+ Z_OBJ_HT_P(EG(This))->get_class_entry &&
+ !instanceof_function(Z_OBJCE_P(EG(This)), ce TSRMLS_CC)) {
+ /* We are calling method of the other (incompatible) class,
+ but passing $this. This is done for compatibility with php-4. */
+ zend_error(E_STRICT, "Non-static method %s::%s() should not be called statically, assuming $this from incompatible context", EX(fbc)->common.scope->name, EX(fbc)->common.function_name);
+
+ }
if ((EX(object) = EG(This))) {
EX(object)->refcount++;
}
@@ -2030,7 +2083,9 @@ static int ZEND_FE_RESET_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
array_ptr = *array_ptr_ptr;
} else {
- SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
+ SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ }
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
@@ -2177,8 +2232,8 @@ static int ZEND_ISSET_ISEMPTY_VAR_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_EXIT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_op *opline = EX(opline);
if (IS_CONST != IS_UNUSED) {
- zend_op *opline = EX(opline);
zval *ptr = &opline->op1.u.constant;
@@ -4446,7 +4501,9 @@ static int ZEND_FE_RESET_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
array_ptr = *array_ptr_ptr;
} else {
- SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
+ SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ }
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
@@ -4594,8 +4651,8 @@ static int ZEND_ISSET_ISEMPTY_VAR_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_EXIT_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_op *opline = EX(opline);
if (IS_TMP_VAR != IS_UNUSED) {
- zend_op *opline = EX(opline);
zend_free_op free_op1;
zval *ptr = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
@@ -7444,7 +7501,9 @@ static int ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
array_ptr = *array_ptr_ptr;
} else {
- SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
+ SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ }
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
@@ -7547,7 +7606,7 @@ static int ZEND_FE_FETCH_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
HashTable *fe_ht;
zend_object_iterator *iter = NULL;
int key_type;
- zend_bool use_key = opline->extended_value & ZEND_FE_FETCH_WITH_KEY;
+ zend_bool use_key = (zend_bool)(opline->extended_value & ZEND_FE_FETCH_WITH_KEY);
PZVAL_LOCK(array);
@@ -7730,8 +7789,8 @@ static int ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_op *opline = EX(opline);
if (IS_VAR != IS_UNUSED) {
- zend_op *opline = EX(opline);
zend_free_op free_op1;
zval *ptr = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC);
@@ -14017,8 +14076,8 @@ static int ZEND_CLONE_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_EXIT_SPEC_UNUSED_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_op *opline = EX(opline);
if (IS_UNUSED != IS_UNUSED) {
- zend_op *opline = EX(opline);
zval *ptr = NULL;
@@ -19539,7 +19598,9 @@ static int ZEND_FE_RESET_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
array_ptr = *array_ptr_ptr;
} else {
- SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ if (Z_TYPE_PP(array_ptr_ptr) == IS_ARRAY) {
+ SEPARATE_ZVAL_IF_NOT_REF(array_ptr_ptr);
+ }
array_ptr = *array_ptr_ptr;
array_ptr->refcount++;
}
@@ -19686,8 +19747,8 @@ static int ZEND_ISSET_ISEMPTY_VAR_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
static int ZEND_EXIT_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
{
+ zend_op *opline = EX(opline);
if (IS_CV != IS_UNUSED) {
- zend_op *opline = EX(opline);
zval *ptr = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC);
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index 04f544001..c717ad385 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -16,7 +16,7 @@
| Authors: Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
- $Id: zend_vm_gen.php,v 1.12.2.4 2006/01/04 23:53:05 andi Exp $
+ $Id: zend_vm_gen.php,v 1.12.2.5 2006/03/15 08:06:28 dmitry Exp $
*/
$header_text = <<< DATA
@@ -1200,13 +1200,13 @@ function gen_vm($def, $skel) {
if ($kind == "handler") {
$op = $opcodes[$opnames[$name]];
if (isset($op['op1']["ANY"]) && isset($op['op2']["ANY"])) {
- out($f, "{\n\treturn ".$name."_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n}\n\n");
+ out($f, "{\n\treturn ".$name.(ZEND_VM_SPEC?"_SPEC":"")."_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n}\n\n");
$done = 1;
}
} else if ($helpers[$name]["param"] == null) {
$h = $helpers[$name];
if (isset($h['op1']["ANY"]) && isset($h['op2']["ANY"])) {
- out($f, "{\n\treturn ".$name."_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n}\n\n");
+ out($f, "{\n\treturn ".$name.(ZEND_VM_SPEC?"_SPEC":"")."(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);\n}\n\n");
$done = 1;
}
}
diff --git a/acinclude.m4 b/acinclude.m4
index 609bafd51..ae9fda7c5 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: acinclude.m4,v 1.332.2.9 2005/12/24 11:38:05 helly Exp $
+dnl $Id: acinclude.m4,v 1.332.2.14 2006/04/10 12:17:36 sniper Exp $
dnl
dnl This file contains local autoconf functions.
dnl
@@ -1000,8 +1000,7 @@ AC_DEFUN([PHP_WITH_SHARED],[
dnl
dnl PHP_ADD_EXTENSION_DEP(extname, depends [, depconf])
dnl
-dnl This macro is currently a placeholder in the config.m4 file
-dnl it is scanned by genif.sh when it builds the internal functions
+dnl This macro is scanned by genif.sh when it builds the internal functions
dnl list, so that modules can be init'd in the correct order
dnl $1 = name of extension, $2 = extension upon which it depends
dnl $3 = optional: if true, it's ok for $2 to have not been configured
@@ -1013,6 +1012,7 @@ dnl
AC_DEFUN([PHP_ADD_EXTENSION_DEP], [
am_i_shared=$[PHP_]translit($1,a-z_-,A-Z__)[_SHARED]
is_it_shared=$[PHP_]translit($2,a-z_-,A-Z__)[_SHARED]
+ is_it_enabled=$[PHP_]translit($2,a-z_-,A-Z__)
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
AC_MSG_ERROR([
You've configured extension $1 to build statically, but it
@@ -1021,7 +1021,7 @@ You either need to build $1 shared or build $2 statically for the
build to be successful.
])
fi
- if test "x$is_it_shared" = "x" && test "x$3" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x$3" != "xtrue"; then
AC_MSG_ERROR([
You've configured extension $1, which depends on extension $2,
but you've either not enabled $2, or have disabled it.
@@ -1877,23 +1877,30 @@ dnl Platform characteristics checks
dnl -------------------------------------------------------------------------
dnl
-dnl PHP_SHLIB_SUFFIX_NAME
-dnl
-dnl Determines shared library suffix
-dnl suffix can be: .so, .sl or .dylib
-dnl
-AC_DEFUN([PHP_SHLIB_SUFFIX_NAME],[
- AC_REQUIRE([PHP_CANONICAL_HOST_TARGET])dnl
- PHP_SUBST(SHLIB_SUFFIX_NAME)
- SHLIB_SUFFIX_NAME=so
- case $host_alias in
- *hpux*[)]
- SHLIB_SUFFIX_NAME=sl
- ;;
- *darwin*[)]
- SHLIB_SUFFIX_NAME=dylib
- ;;
- esac
+dnl PHP_SHLIB_SUFFIX_NAMES
+dnl
+dnl Determines link library suffix SHLIB_SUFFIX_NAME
+dnl which can be: .so, .sl or .dylib
+dnl
+dnl Determines shared library suffix SHLIB_DL_SUFFIX_NAME
+dnl suffix can be: .so or .sl
+dnl
+AC_DEFUN([PHP_SHLIB_SUFFIX_NAMES],[
+ AC_REQUIRE([PHP_CANONICAL_HOST_TARGET])dnl
+ PHP_SUBST_OLD(SHLIB_SUFFIX_NAME)
+ PHP_SUBST_OLD(SHLIB_DL_SUFFIX_NAME)
+ SHLIB_SUFFIX_NAME=so
+ SHLIB_DL_SUFFIX_NAME=$SHLIB_SUFFIX_NAME
+ case $host_alias in
+ *hpux*[)]
+ SHLIB_SUFFIX_NAME=sl
+ SHLIB_DL_SUFFIX_NAME=sl
+ ;;
+ *darwin*[)]
+ SHLIB_SUFFIX_NAME=dylib
+ SHLIB_DL_SUFFIX_NAME=so
+ ;;
+ esac
])
dnl
diff --git a/aclocal.m4 b/aclocal.m4
index 4ad4c9f24..25a4ad9b0 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: acinclude.m4,v 1.332.2.9 2005/12/24 11:38:05 helly Exp $
+dnl $Id: acinclude.m4,v 1.332.2.14 2006/04/10 12:17:36 sniper Exp $
dnl
dnl This file contains local autoconf functions.
dnl
@@ -1000,8 +1000,7 @@ AC_DEFUN([PHP_WITH_SHARED],[
dnl
dnl PHP_ADD_EXTENSION_DEP(extname, depends [, depconf])
dnl
-dnl This macro is currently a placeholder in the config.m4 file
-dnl it is scanned by genif.sh when it builds the internal functions
+dnl This macro is scanned by genif.sh when it builds the internal functions
dnl list, so that modules can be init'd in the correct order
dnl $1 = name of extension, $2 = extension upon which it depends
dnl $3 = optional: if true, it's ok for $2 to have not been configured
@@ -1013,6 +1012,7 @@ dnl
AC_DEFUN([PHP_ADD_EXTENSION_DEP], [
am_i_shared=$[PHP_]translit($1,a-z_-,A-Z__)[_SHARED]
is_it_shared=$[PHP_]translit($2,a-z_-,A-Z__)[_SHARED]
+ is_it_enabled=$[PHP_]translit($2,a-z_-,A-Z__)
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
AC_MSG_ERROR([
You've configured extension $1 to build statically, but it
@@ -1021,7 +1021,7 @@ You either need to build $1 shared or build $2 statically for the
build to be successful.
])
fi
- if test "x$is_it_shared" = "x" && test "x$3" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x$3" != "xtrue"; then
AC_MSG_ERROR([
You've configured extension $1, which depends on extension $2,
but you've either not enabled $2, or have disabled it.
@@ -1877,23 +1877,30 @@ dnl Platform characteristics checks
dnl -------------------------------------------------------------------------
dnl
-dnl PHP_SHLIB_SUFFIX_NAME
+dnl PHP_SHLIB_SUFFIX_NAMES
dnl
-dnl Determines shared library suffix
-dnl suffix can be: .so, .sl or .dylib
+dnl Determines link library suffix SHLIB_SUFFIX_NAME
+dnl which can be: .so, .sl or .dylib
dnl
-AC_DEFUN([PHP_SHLIB_SUFFIX_NAME],[
- AC_REQUIRE([PHP_CANONICAL_HOST_TARGET])dnl
- PHP_SUBST(SHLIB_SUFFIX_NAME)
- SHLIB_SUFFIX_NAME=so
- case $host_alias in
- *hpux*[)]
- SHLIB_SUFFIX_NAME=sl
- ;;
- *darwin*[)]
- SHLIB_SUFFIX_NAME=dylib
- ;;
- esac
+dnl Determines shared library suffix SHLIB_DL_SUFFIX_NAME
+dnl suffix can be: .so or .sl
+dnl
+AC_DEFUN([PHP_SHLIB_SUFFIX_NAMES],[
+ AC_REQUIRE([PHP_CANONICAL_HOST_TARGET])dnl
+ PHP_SUBST_OLD(SHLIB_SUFFIX_NAME)
+ PHP_SUBST_OLD(SHLIB_DL_SUFFIX_NAME)
+ SHLIB_SUFFIX_NAME=so
+ SHLIB_DL_SUFFIX_NAME=$SHLIB_SUFFIX_NAME
+ case $host_alias in
+ *hpux*[)]
+ SHLIB_SUFFIX_NAME=sl
+ SHLIB_DL_SUFFIX_NAME=sl
+ ;;
+ *darwin*[)]
+ SHLIB_SUFFIX_NAME=dylib
+ SHLIB_DL_SUFFIX_NAME=so
+ ;;
+ esac
])
dnl
diff --git a/configure b/configure
index 4c118986b..3a9714297 100755
--- a/configure
+++ b/configure
@@ -1219,8 +1219,6 @@ ac_help="$ac_help
ac_help="$ac_help
--with-ming[=DIR] Include MING support"
ac_help="$ac_help
- --with-msession[=DIR] Include msession support"
-ac_help="$ac_help
--with-msql[=DIR] Include mSQL support. DIR is the mSQL base
install directory, defaults to /usr/local/Hughes"
ac_help="$ac_help
@@ -1342,6 +1340,8 @@ ac_help="$ac_help
ac_help="$ac_help
--without-pdo-sqlite PDO: sqlite 3 support"
ac_help="$ac_help
+ --with-pdo-sqlite[=DIR] PDO: sqlite support. DIR is the sqlite base directory, the bundled sqlite is used by default"
+ac_help="$ac_help
--with-pgsql[=DIR] Include PostgreSQL support. DIR is the PostgreSQL
base install directory or the path to pg_config"
ac_help="$ac_help
@@ -2408,7 +2408,7 @@ echo "$ac_t""$target" 1>&6
MAJOR_VERSION=5
MINOR_VERSION=1
-RELEASE_VERSION=2
+RELEASE_VERSION=5
EXTRA_VERSION=""
VERSION="$MAJOR_VERSION.$MINOR_VERSION.$RELEASE_VERSION$EXTRA_VERSION"
@@ -3872,18 +3872,30 @@ fi
-
+
+
PHP_VAR_SUBST="$PHP_VAR_SUBST SHLIB_SUFFIX_NAME"
- SHLIB_SUFFIX_NAME=so
- case $host_alias in
- *hpux*)
- SHLIB_SUFFIX_NAME=sl
- ;;
- *darwin*)
- SHLIB_SUFFIX_NAME=dylib
- ;;
- esac
+
+
+
+
+ PHP_VAR_SUBST="$PHP_VAR_SUBST SHLIB_DL_SUFFIX_NAME"
+
+
+
+ SHLIB_SUFFIX_NAME=so
+ SHLIB_DL_SUFFIX_NAME=$SHLIB_SUFFIX_NAME
+ case $host_alias in
+ *hpux*)
+ SHLIB_SUFFIX_NAME=sl
+ SHLIB_DL_SUFFIX_NAME=sl
+ ;;
+ *darwin*)
+ SHLIB_SUFFIX_NAME=dylib
+ SHLIB_DL_SUFFIX_NAME=so
+ ;;
+ esac
PHP_SAPI=default
@@ -3914,7 +3926,7 @@ PHP_SAPI=default
-SAPI_SHARED=libs/libphp5.$SHLIB_SUFFIX_NAME
+SAPI_SHARED=libs/libphp5.$SHLIB_DL_SUFFIX_NAME
SAPI_STATIC=libs/libphp5.a
SAPI_LIBTOOL=libphp5.la
@@ -3926,7 +3938,7 @@ SAPI_LIBTOOL=libphp5.la
echo $ac_n "checking for AOLserver support""... $ac_c" 1>&6
-echo "configure:3930: checking for AOLserver support" >&5
+echo "configure:3942: checking for AOLserver support" >&5
# Check whether --with-aolserver or --without-aolserver was given.
if test "${with_aolserver+set}" = set; then
withval="$with_aolserver"
@@ -4169,7 +4181,7 @@ fi
echo $ac_n "checking for Apache 1.x module support via DSO through APXS""... $ac_c" 1>&6
-echo "configure:4173: checking for Apache 1.x module support via DSO through APXS" >&5
+echo "configure:4185: checking for Apache 1.x module support via DSO through APXS" >&5
# Check whether --with-apxs or --without-apxs was given.
if test "${with_apxs+set}" = set; then
withval="$with_apxs"
@@ -4474,7 +4486,7 @@ fi
if test "$PHP_SAPI" != "apache"; then
echo $ac_n "checking for Apache 1.x module support""... $ac_c" 1>&6
-echo "configure:4478: checking for Apache 1.x module support" >&5
+echo "configure:4490: checking for Apache 1.x module support" >&5
# Check whether --with-apache or --without-apache was given.
if test "${with_apache+set}" = set; then
withval="$with_apache"
@@ -5317,7 +5329,7 @@ fi
fi
echo $ac_n "checking for mod_charset compatibility option""... $ac_c" 1>&6
-echo "configure:5321: checking for mod_charset compatibility option" >&5
+echo "configure:5333: checking for mod_charset compatibility option" >&5
# Check whether --with-mod_charset or --without-mod_charset was given.
if test "${with_mod_charset+set}" = set; then
withval="$with_mod_charset"
@@ -5341,7 +5353,7 @@ if test -n "$APACHE_MODULE"; then
gcc_arg_name=ac_cv_gcc_arg_rdynamic
echo $ac_n "checking whether $CC supports -rdynamic""... $ac_c" 1>&6
-echo "configure:5345: checking whether $CC supports -rdynamic" >&5
+echo "configure:5357: checking whether $CC supports -rdynamic" >&5
if eval "test \"`echo '$''{'ac_cv_gcc_arg_rdynamic'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5384,7 +5396,7 @@ if test -n "$APACHE_INSTALL"; then
echo $ac_n "checking for member fd in BUFF *""... $ac_c" 1>&6
-echo "configure:5388: checking for member fd in BUFF *" >&5
+echo "configure:5400: checking for member fd in BUFF *" >&5
if eval "test \"`echo '$''{'ac_cv_php_fd_in_buff'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -5396,14 +5408,14 @@ else
CPPFLAGS="$CPPFLAGS $APACHE_INCLUDE"
fi
cat > conftest.$ac_ext <<EOF
-#line 5400 "configure"
+#line 5412 "configure"
#include "confdefs.h"
#include <httpd.h>
int main() {
conn_rec *c; int fd = c->client->fd;
; return 0; }
EOF
-if { (eval echo configure:5407: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:5419: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_php_fd_in_buff=yes
@@ -5454,7 +5466,7 @@ fi
echo $ac_n "checking for Apache 2.0 filter-module support via DSO through APXS""... $ac_c" 1>&6
-echo "configure:5458: checking for Apache 2.0 filter-module support via DSO through APXS" >&5
+echo "configure:5470: checking for Apache 2.0 filter-module support via DSO through APXS" >&5
# Check whether --with-apxs2filter or --without-apxs2filter was given.
if test "${with_apxs2filter+set}" = set; then
withval="$with_apxs2filter"
@@ -6284,7 +6296,7 @@ fi
echo $ac_n "checking for Apache 2.0 handler-module support via DSO through APXS""... $ac_c" 1>&6
-echo "configure:6288: checking for Apache 2.0 handler-module support via DSO through APXS" >&5
+echo "configure:6300: checking for Apache 2.0 handler-module support via DSO through APXS" >&5
# Check whether --with-apxs2 or --without-apxs2 was given.
if test "${with_apxs2+set}" = set; then
withval="$with_apxs2"
@@ -7115,7 +7127,7 @@ fi
echo $ac_n "checking for Apache 1.x (hooks) module support via DSO through APXS""... $ac_c" 1>&6
-echo "configure:7119: checking for Apache 1.x (hooks) module support via DSO through APXS" >&5
+echo "configure:7131: checking for Apache 1.x (hooks) module support via DSO through APXS" >&5
# Check whether --with-apache-hooks or --without-apache-hooks was given.
if test "${with_apache_hooks+set}" = set; then
withval="$with_apache_hooks"
@@ -7420,7 +7432,7 @@ fi
if test "$PHP_SAPI" != "apache_hooks"; then
echo $ac_n "checking for Apache 1.x (hooks) module support""... $ac_c" 1>&6
-echo "configure:7424: checking for Apache 1.x (hooks) module support" >&5
+echo "configure:7436: checking for Apache 1.x (hooks) module support" >&5
# Check whether --with-apache-hooks-static or --without-apache-hooks-static was given.
if test "${with_apache_hooks_static+set}" = set; then
withval="$with_apache_hooks_static"
@@ -8263,7 +8275,7 @@ fi
fi
echo $ac_n "checking for mod_charset compatibility option""... $ac_c" 1>&6
-echo "configure:8267: checking for mod_charset compatibility option" >&5
+echo "configure:8279: checking for mod_charset compatibility option" >&5
# Check whether --with-mod_charset or --without-mod_charset was given.
if test "${with_mod_charset+set}" = set; then
withval="$with_mod_charset"
@@ -8287,7 +8299,7 @@ if test -n "$APACHE_HOOKS_MODULE"; then
gcc_arg_name=ac_cv_gcc_arg_rdynamic
echo $ac_n "checking whether $CC supports -rdynamic""... $ac_c" 1>&6
-echo "configure:8291: checking whether $CC supports -rdynamic" >&5
+echo "configure:8303: checking whether $CC supports -rdynamic" >&5
if eval "test \"`echo '$''{'ac_cv_gcc_arg_rdynamic'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -8330,7 +8342,7 @@ if test -n "$APACHE_HOOKS_INSTALL"; then
echo $ac_n "checking for member fd in BUFF *""... $ac_c" 1>&6
-echo "configure:8334: checking for member fd in BUFF *" >&5
+echo "configure:8346: checking for member fd in BUFF *" >&5
if eval "test \"`echo '$''{'ac_cv_php_fd_in_buff'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -8342,14 +8354,14 @@ else
CPPFLAGS="$CPPFLAGS $APACHE_INCLUDE"
fi
cat > conftest.$ac_ext <<EOF
-#line 8346 "configure"
+#line 8358 "configure"
#include "confdefs.h"
#include <httpd.h>
int main() {
conn_rec *c; int fd = c->client->fd;
; return 0; }
EOF
-if { (eval echo configure:8353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:8365: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_php_fd_in_buff=yes
@@ -8401,7 +8413,7 @@ fi
RESULT=no
echo $ac_n "checking for Caudium support""... $ac_c" 1>&6
-echo "configure:8405: checking for Caudium support" >&5
+echo "configure:8417: checking for Caudium support" >&5
# Check whether --with-caudium or --without-caudium was given.
if test "${with_caudium+set}" = set; then
withval="$with_caudium"
@@ -8473,7 +8485,7 @@ if test "${with_caudium+set}" = set; then
PIKE_C_INCLUDE=/usr/local/include/`basename $PIKE`
fi
echo $ac_n "checking for C includes in $PIKE_C_INCLUDE""... $ac_c" 1>&6
-echo "configure:8477: checking for C includes in $PIKE_C_INCLUDE" >&5
+echo "configure:8489: checking for C includes in $PIKE_C_INCLUDE" >&5
if test -f $PIKE_C_INCLUDE/version.h; then
PIKE_TEST_VER=`$PIKE -e 'string v; int rel;sscanf(version(), "Pike v%s release %d", v, rel); write(v+"."+rel);'`
###### VERSION MATCH CHECK #######
@@ -8733,7 +8745,7 @@ echo "$ac_t""$RESULT" 1>&6
echo $ac_n "checking for CLI build""... $ac_c" 1>&6
-echo "configure:8737: checking for CLI build" >&5
+echo "configure:8749: checking for CLI build" >&5
# Check whether --enable-cli or --disable-cli was given.
if test "${enable_cli+set}" = set; then
@@ -8762,7 +8774,7 @@ if test "$PHP_SAPI_CLI" != "no"; then
case $host_alias in
*aix*)
- BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
+ BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
;;
*darwin*)
BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
@@ -8791,7 +8803,7 @@ echo "$ac_t""$PHP_SAPI_CLI" 1>&6
echo $ac_n "checking for Continuity support""... $ac_c" 1>&6
-echo "configure:8795: checking for Continuity support" >&5
+echo "configure:8807: checking for Continuity support" >&5
# Check whether --with-continuity or --without-continuity was given.
if test "${with_continuity+set}" = set; then
withval="$with_continuity"
@@ -8812,7 +8824,7 @@ if test "$PHP_CONTINUITY" != "no"; then
{ echo "configure: error: Please specify the path to the root of your Continuity server using --with-continuity=DIR" 1>&2; exit 1; }
fi
echo $ac_n "checking for Continuity include files""... $ac_c" 1>&6
-echo "configure:8816: checking for Continuity include files" >&5
+echo "configure:8828: checking for Continuity include files" >&5
if test -d $PHP_CONTINUITY/include ; then
CAPI_INCLUDE=$PHP_CONTINUITY/include
echo "$ac_t""Continuity Binary Distribution" 1>&6
@@ -9038,7 +9050,7 @@ fi
echo $ac_n "checking for embedded SAPI library support""... $ac_c" 1>&6
-echo "configure:9042: checking for embedded SAPI library support" >&5
+echo "configure:9054: checking for embedded SAPI library support" >&5
# Check whether --enable-embed or --disable-embed was given.
if test "${enable_embed+set}" = set; then
@@ -9261,7 +9273,7 @@ fi
RESULT=no
echo $ac_n "checking for Zeus ISAPI support""... $ac_c" 1>&6
-echo "configure:9265: checking for Zeus ISAPI support" >&5
+echo "configure:9277: checking for Zeus ISAPI support" >&5
# Check whether --with-isapi or --without-isapi was given.
if test "${with_isapi+set}" = set; then
withval="$with_isapi"
@@ -9493,7 +9505,7 @@ echo "$ac_t""$RESULT" 1>&6
echo $ac_n "checking for Milter support""... $ac_c" 1>&6
-echo "configure:9497: checking for Milter support" >&5
+echo "configure:9509: checking for Milter support" >&5
# Check whether --with-milter or --without-milter was given.
if test "${with_milter+set}" = set; then
withval="$with_milter"
@@ -9768,7 +9780,7 @@ echo "$ac_t""$RESULT" 1>&6
echo $ac_n "checking for NSAPI support""... $ac_c" 1>&6
-echo "configure:9772: checking for NSAPI support" >&5
+echo "configure:9784: checking for NSAPI support" >&5
# Check whether --with-nsapi or --without-nsapi was given.
if test "${with_nsapi+set}" = set; then
withval="$with_nsapi"
@@ -9788,7 +9800,7 @@ if test "$PHP_NSAPI" != "no"; then
{ echo "configure: error: Please specify the path to the root of your Netscape/iPlanet/SunONE server using --with-nsapi=DIR" 1>&2; exit 1; }
fi
echo $ac_n "checking for NSAPI include files""... $ac_c" 1>&6
-echo "configure:9792: checking for NSAPI include files" >&5
+echo "configure:9804: checking for NSAPI include files" >&5
if test -d $PHP_NSAPI/include ; then
NSAPI_INCLUDE=$PHP_NSAPI/include
echo "$ac_t""Netscape-Enterprise 3.x style" 1>&6
@@ -9796,17 +9808,17 @@ echo "configure:9792: checking for NSAPI include files" >&5
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9800: checking for $ac_hdr" >&5
+echo "configure:9812: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9805 "configure"
+#line 9817 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9810: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -9841,17 +9853,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:9845: checking for $ac_hdr" >&5
+echo "configure:9857: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 9850 "configure"
+#line 9862 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -10111,7 +10123,7 @@ fi
RESULT=no
echo $ac_n "checking for PHTTPD support""... $ac_c" 1>&6
-echo "configure:10115: checking for PHTTPD support" >&5
+echo "configure:10127: checking for PHTTPD support" >&5
# Check whether --with-phttpd or --without-phttpd was given.
if test "${with_phttpd+set}" = set; then
withval="$with_phttpd"
@@ -10342,7 +10354,7 @@ echo "$ac_t""$RESULT" 1>&6
RESULT=no
echo $ac_n "checking for Pi3Web support""... $ac_c" 1>&6
-echo "configure:10346: checking for Pi3Web support" >&5
+echo "configure:10358: checking for Pi3Web support" >&5
# Check whether --with-pi3web or --without-pi3web was given.
if test "${with_pi3web+set}" = set; then
@@ -10673,7 +10685,7 @@ echo "$ac_t""$RESULT" 1>&6
RESULT=no
echo $ac_n "checking for Roxen/Pike support""... $ac_c" 1>&6
-echo "configure:10677: checking for Roxen/Pike support" >&5
+echo "configure:10689: checking for Roxen/Pike support" >&5
# Check whether --with-roxen or --without-roxen was given.
if test "${with_roxen+set}" = set; then
withval="$with_roxen"
@@ -10917,7 +10929,7 @@ echo "$ac_t""$RESULT" 1>&6
if test "$RESULT" != "no" ; then
RESULT=no
echo $ac_n "checking if Roxen should use ZTS""... $ac_c" 1>&6
-echo "configure:10921: checking if Roxen should use ZTS" >&5
+echo "configure:10933: checking if Roxen should use ZTS" >&5
# Check whether --enable-roxen-zts or --disable-roxen-zts was given.
if test "${enable_roxen_zts+set}" = set; then
enableval="$enable_roxen_zts"
@@ -10977,7 +10989,7 @@ if test "${with_thttpd+set}" = set; then
gcc_arg_name=ac_cv_gcc_arg_rdynamic
echo $ac_n "checking whether $CC supports -rdynamic""... $ac_c" 1>&6
-echo "configure:10981: checking whether $CC supports -rdynamic" >&5
+echo "configure:10993: checking whether $CC supports -rdynamic" >&5
if eval "test \"`echo '$''{'ac_cv_gcc_arg_rdynamic'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -11184,7 +11196,7 @@ fi
echo $ac_n "checking for thttpd""... $ac_c" 1>&6
-echo "configure:11188: checking for thttpd" >&5
+echo "configure:11200: checking for thttpd" >&5
echo "$ac_t""$PHP_THTTPD" 1>&6
@@ -11199,17 +11211,17 @@ if test "${with_tux+set}" = set; then
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:11203: checking for $ac_hdr" >&5
+echo "configure:11215: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 11208 "configure"
+#line 11220 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -11412,7 +11424,7 @@ fi
echo $ac_n "checking for TUX""... $ac_c" 1>&6
-echo "configure:11416: checking for TUX" >&5
+echo "configure:11428: checking for TUX" >&5
echo "$ac_t""$PHP_TUX" 1>&6
unset PHP_TUX
@@ -11648,7 +11660,7 @@ fi
echo $ac_n "checking for webjames""... $ac_c" 1>&6
-echo "configure:11652: checking for webjames" >&5
+echo "configure:11664: checking for webjames" >&5
echo "$ac_t""$PHP_WEBJAMES" 1>&6
@@ -11722,7 +11734,7 @@ fi
if test "$PHP_SAPI" = "default"; then
echo $ac_n "checking for CGI build""... $ac_c" 1>&6
-echo "configure:11726: checking for CGI build" >&5
+echo "configure:11738: checking for CGI build" >&5
if test "$PHP_SAPI_CGI" != "no"; then
echo "$ac_t""yes" 1>&6
@@ -11746,7 +11758,7 @@ echo "configure:11726: checking for CGI build" >&5
echo $ac_n "checking whether writing to stdout works""... $ac_c" 1>&6
-echo "configure:11750: checking whether writing to stdout works" >&5
+echo "configure:11762: checking whether writing to stdout works" >&5
if eval "test \"`echo '$''{'ac_cv_write_stdout'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -11757,7 +11769,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 11761 "configure"
+#line 11773 "configure"
#include "confdefs.h"
#ifdef HAVE_UNISTD_H
@@ -11775,7 +11787,7 @@ main()
}
EOF
-if { (eval echo configure:11779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:11791: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_write_stdout=yes
@@ -11804,7 +11816,7 @@ EOF
echo $ac_n "checking whether to force Apache CGI redirect""... $ac_c" 1>&6
-echo "configure:11808: checking whether to force Apache CGI redirect" >&5
+echo "configure:11820: checking whether to force Apache CGI redirect" >&5
if test "$PHP_FORCE_CGI_REDIRECT" = "yes"; then
REDIRECT=1
else
@@ -11818,7 +11830,7 @@ EOF
echo $ac_n "checking whether to discard path_info + path_translated""... $ac_c" 1>&6
-echo "configure:11822: checking whether to discard path_info + path_translated" >&5
+echo "configure:11834: checking whether to discard path_info + path_translated" >&5
if test "$PHP_DISCARD_PATH" = "yes"; then
DISCARD_PATH=1
else
@@ -11831,7 +11843,7 @@ EOF
echo "$ac_t""$PHP_DISCARD_PATH" 1>&6
echo $ac_n "checking whether to enable path info checking""... $ac_c" 1>&6
-echo "configure:11835: checking whether to enable path info checking" >&5
+echo "configure:11847: checking whether to enable path info checking" >&5
if test "$PHP_ENABLE_PATHINFO_CHECK" = "yes"; then
ENABLE_PATHINFO_CHECK=1
else
@@ -11844,26 +11856,19 @@ EOF
echo "$ac_t""$PHP_ENABLE_PATHINFO_CHECK" 1>&6
echo $ac_n "checking whether to enable fastcgi support""... $ac_c" 1>&6
-echo "configure:11848: checking whether to enable fastcgi support" >&5
+echo "configure:11860: checking whether to enable fastcgi support" >&5
PHP_LIBFCGI_DIR="$abs_srcdir/sapi/cgi/libfcgi"
if test -z $PHP_LIBFCGI_DIR; then
echo "$PHP_LIBFCGI_DIR does not exist"
exit 1
fi
if test "$PHP_ENABLE_FASTCGI" = "yes"; then
-
-
- BUILD_DIR="$BUILD_DIR $abs_builddir/sapi/cgi/libfcgi"
-
-
PHP_FASTCGI=1
- PHP_FCGI_FILES="libfcgi/fcgi_stdio.c libfcgi/fcgiapp.c libfcgi/os_unix.c"
- PHP_FCGI_INCLUDE="-I$PHP_LIBFCGI_DIR/include"
+ PHP_FCGI_FILES="fastcgi.c"
PHP_FCGI_STATIC=1
else
PHP_FASTCGI=0
PHP_FCGI_FILES=""
- PHP_FCGI_INCLUDE=""
PHP_FCGI_STATIC=0
fi
cat >> confdefs.h <<EOF
@@ -12033,10 +12038,10 @@ EOF
PHP_SAPI_OBJS="$PHP_SAPI_OBJS $ac_bdir$ac_obj.lo"
case $ac_src in
- *.c) ac_comp="$b_c_pre $PHP_FCGI_INCLUDE $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $PHP_FCGI_INCLUDE $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $PHP_FCGI_INCLUDE $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $PHP_FCGI_INCLUDE $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
+ *.c) ac_comp="$b_c_pre $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.s) ac_comp="$b_c_pre $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.S) ac_comp="$b_c_pre $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
+ *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
esac
cat >>Makefile.objects<<EOF
@@ -12050,7 +12055,7 @@ EOF
case $host_alias in
*aix*)
- BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
+ BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
;;
*darwin*)
BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
@@ -12076,7 +12081,7 @@ fi
echo $ac_n "checking for chosen SAPI module""... $ac_c" 1>&6
-echo "configure:12080: checking for chosen SAPI module" >&5
+echo "configure:12085: checking for chosen SAPI module" >&5
echo "$ac_t""$PHP_SAPI" 1>&6
if test "$enable_maintainer_zts" = "yes"; then
@@ -12179,7 +12184,7 @@ if test "$PHP_ENABLE_FASTCGI" = "yes"; then
#AC_LANG([C])
echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:12183: checking for gethostbyname in -lnsl" >&5
+echo "configure:12188: checking for gethostbyname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12187,7 +12192,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 12191 "configure"
+#line 12196 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -12198,7 +12203,7 @@ int main() {
gethostbyname()
; return 0; }
EOF
-if { (eval echo configure:12202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -12226,7 +12231,7 @@ else
fi
echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:12230: checking for socket in -lsocket" >&5
+echo "configure:12235: checking for socket in -lsocket" >&5
ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -12234,7 +12239,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 12238 "configure"
+#line 12243 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -12245,7 +12250,7 @@ int main() {
socket()
; return 0; }
EOF
-if { (eval echo configure:12249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -12281,17 +12286,17 @@ acx_pthread_ok=no
# If it isn't, don't bother looking for the threads libraries.
ac_safe=`echo "pthread.h" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for pthread.h""... $ac_c" 1>&6
-echo "configure:12285: checking for pthread.h" >&5
+echo "configure:12290: checking for pthread.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12290 "configure"
+#line 12295 "configure"
#include "confdefs.h"
#include <pthread.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12295: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12300: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -12328,9 +12333,9 @@ if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
save_LIBS="$LIBS"
LIBS="$PTHREAD_LIBS $LIBS"
echo $ac_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS""... $ac_c" 1>&6
-echo "configure:12332: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
+echo "configure:12337: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5
cat > conftest.$ac_ext <<EOF
-#line 12334 "configure"
+#line 12339 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -12341,7 +12346,7 @@ int main() {
pthread_join()
; return 0; }
EOF
-if { (eval echo configure:12345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
acx_pthread_ok=yes
else
@@ -12403,18 +12408,18 @@ for flag in $acx_pthread_flags; do
case $flag in
none)
echo $ac_n "checking whether pthreads work without any flags""... $ac_c" 1>&6
-echo "configure:12407: checking whether pthreads work without any flags" >&5
+echo "configure:12412: checking whether pthreads work without any flags" >&5
;;
-*)
echo $ac_n "checking whether pthreads work with $flag""... $ac_c" 1>&6
-echo "configure:12412: checking whether pthreads work with $flag" >&5
+echo "configure:12417: checking whether pthreads work with $flag" >&5
PTHREAD_CFLAGS="$flag"
;;
*)
echo $ac_n "checking for the pthreads library -l$flag""... $ac_c" 1>&6
-echo "configure:12418: checking for the pthreads library -l$flag" >&5
+echo "configure:12423: checking for the pthreads library -l$flag" >&5
PTHREAD_LIBS="-l$flag"
;;
esac
@@ -12434,7 +12439,7 @@ echo "configure:12418: checking for the pthreads library -l$flag" >&5
# functions on Solaris that doesn't have a non-functional libc stub.
# We try pthread_create on general principles.
cat > conftest.$ac_ext <<EOF
-#line 12438 "configure"
+#line 12443 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
@@ -12443,7 +12448,7 @@ pthread_t th; pthread_join(th, 0);
pthread_create(0,0,0,0); pthread_cleanup_pop(0);
; return 0; }
EOF
-if { (eval echo configure:12447: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
acx_pthread_ok=yes
else
@@ -12475,16 +12480,16 @@ if test "x$acx_pthread_ok" = xyes; then
# Detect AIX lossage: threads are created detached by default
# and the JOINABLE attribute has a nonstandard name (UNDETACHED).
echo $ac_n "checking for joinable pthread attribute""... $ac_c" 1>&6
-echo "configure:12479: checking for joinable pthread attribute" >&5
+echo "configure:12484: checking for joinable pthread attribute" >&5
cat > conftest.$ac_ext <<EOF
-#line 12481 "configure"
+#line 12486 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
int attr=PTHREAD_CREATE_JOINABLE;
; return 0; }
EOF
-if { (eval echo configure:12488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ok=PTHREAD_CREATE_JOINABLE
else
@@ -12496,14 +12501,14 @@ fi
rm -f conftest*
if test x"$ok" = xunknown; then
cat > conftest.$ac_ext <<EOF
-#line 12500 "configure"
+#line 12505 "configure"
#include "confdefs.h"
#include <pthread.h>
int main() {
int attr=PTHREAD_CREATE_UNDETACHED;
; return 0; }
EOF
-if { (eval echo configure:12507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ok=PTHREAD_CREATE_UNDETACHED
else
@@ -12526,7 +12531,7 @@ EOF
fi
echo $ac_n "checking if more special flags are required for pthreads""... $ac_c" 1>&6
-echo "configure:12530: checking if more special flags are required for pthreads" >&5
+echo "configure:12535: checking if more special flags are required for pthreads" >&5
flag=no
case "${host_cpu}-${host_os}" in
*-aix* | *-freebsd*) flag="-D_THREAD_SAFE";;
@@ -12544,7 +12549,7 @@ echo "configure:12530: checking if more special flags are required for pthreads"
# Extract the first word of "cc_r", so it can be a program name with args.
set dummy cc_r; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12548: checking for $ac_word" >&5
+echo "configure:12553: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_PTHREAD_CC'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -12593,9 +12598,9 @@ fi
echo $ac_n "checking for sun_len in sys/un.h""... $ac_c" 1>&6
-echo "configure:12597: checking for sun_len in sys/un.h" >&5
+echo "configure:12602: checking for sun_len in sys/un.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12599 "configure"
+#line 12604 "configure"
#include "confdefs.h"
#include <sys/un.h>
EOF
@@ -12615,9 +12620,9 @@ rm -f conftest*
echo $ac_n "checking for fpos_t in stdio.h""... $ac_c" 1>&6
-echo "configure:12619: checking for fpos_t in stdio.h" >&5
+echo "configure:12624: checking for fpos_t in stdio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12621 "configure"
+#line 12626 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
@@ -12640,17 +12645,17 @@ rm -f conftest*
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:12644: checking for $ac_hdr" >&5
+echo "configure:12649: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12649 "configure"
+#line 12654 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12654: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -12680,17 +12685,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:12684: checking for $ac_hdr" >&5
+echo "configure:12689: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12689 "configure"
+#line 12694 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12694: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12699: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -12718,9 +12723,9 @@ done
echo $ac_n "checking for a fileno() prototype in stdio.h""... $ac_c" 1>&6
-echo "configure:12722: checking for a fileno() prototype in stdio.h" >&5
+echo "configure:12727: checking for a fileno() prototype in stdio.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12724 "configure"
+#line 12729 "configure"
#include "confdefs.h"
#include <stdio.h>
EOF
@@ -12741,9 +12746,9 @@ rm -f conftest*
if test "$HAVE_SYS_SOCKET_H"; then
echo $ac_n "checking for socklen_t in sys/socket.h""... $ac_c" 1>&6
-echo "configure:12745: checking for socklen_t in sys/socket.h" >&5
+echo "configure:12750: checking for socklen_t in sys/socket.h" >&5
cat > conftest.$ac_ext <<EOF
-#line 12747 "configure"
+#line 12752 "configure"
#include "confdefs.h"
#include <sys/socket.h>
EOF
@@ -12767,7 +12772,7 @@ rm -f conftest*
# Do we need cross-process locking on this platform?
#--------------------------------------------------------------------
echo $ac_n "checking whether cross-process locking is required by accept()""... $ac_c" 1>&6
-echo "configure:12771: checking whether cross-process locking is required by accept()" >&5
+echo "configure:12776: checking whether cross-process locking is required by accept()" >&5
case "`uname -sr`" in
IRIX\ 5.* | SunOS\ 5.* | UNIX_System_V\ 4.0)
echo "$ac_t""yes" 1>&6
@@ -12786,16 +12791,16 @@ EOF
# hpux 9.04 compiler does and so does Stratus FTX (uses HP's compiler)
#--------------------------------------------------------------------
echo $ac_n "checking whether va_arg(arg, long double) crashes the compiler""... $ac_c" 1>&6
-echo "configure:12790: checking whether va_arg(arg, long double) crashes the compiler" >&5
+echo "configure:12795: checking whether va_arg(arg, long double) crashes the compiler" >&5
cat > conftest.$ac_ext <<EOF
-#line 12792 "configure"
+#line 12797 "configure"
#include "confdefs.h"
#include <stdarg.h>
int main() {
long double lDblArg; va_list arg; lDblArg = va_arg(arg, long double);
; return 0; }
EOF
-if { (eval echo configure:12799: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""no" 1>&6
else
@@ -12811,12 +12816,12 @@ fi
rm -f conftest*
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:12815: checking for working const" >&5
+echo "configure:12820: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12820 "configure"
+#line 12825 "configure"
#include "confdefs.h"
int main() {
@@ -12865,7 +12870,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:12869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -12890,12 +12895,12 @@ fi
for ac_func in strerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:12894: checking for $ac_func" >&5
+echo "configure:12899: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 12899 "configure"
+#line 12904 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -12918,7 +12923,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:12922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -12983,7 +12988,7 @@ fi
# Extract the first word of "sendmail", so it can be a program name with args.
set dummy sendmail; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:12987: checking for $ac_word" >&5
+echo "configure:12992: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PROG_SENDMAIL'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -13028,7 +13033,7 @@ EOF
echo $ac_n "checking whether system uses EBCDIC""... $ac_c" 1>&6
-echo "configure:13032: checking whether system uses EBCDIC" >&5
+echo "configure:13037: checking whether system uses EBCDIC" >&5
if eval "test \"`echo '$''{'ac_cv_ebcdic'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -13039,7 +13044,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 13043 "configure"
+#line 13048 "configure"
#include "confdefs.h"
int main(void) {
@@ -13047,7 +13052,7 @@ int main(void) {
}
EOF
-if { (eval echo configure:13051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_ebcdic=yes
@@ -13075,7 +13080,7 @@ EOF
echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:13079: checking whether byte ordering is bigendian" >&5
+echo "configure:13084: checking whether byte ordering is bigendian" >&5
if eval "test \"`echo '$''{'ac_cv_c_bigendian_php'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -13085,7 +13090,7 @@ else
ac_cv_c_bigendian_php=unknown
else
cat > conftest.$ac_ext <<EOF
-#line 13089 "configure"
+#line 13094 "configure"
#include "confdefs.h"
int main(void)
@@ -13101,7 +13106,7 @@ int main(void)
}
EOF
-if { (eval echo configure:13105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13110: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_bigendian_php=yes
else
@@ -13172,12 +13177,12 @@ test -d /usr/ucblib &&
unset found
echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:13176: checking for socket" >&5
+echo "configure:13181: checking for socket" >&5
if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13181 "configure"
+#line 13186 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char socket(); below. */
@@ -13200,7 +13205,7 @@ socket();
; return 0; }
EOF
-if { (eval echo configure:13204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_socket=yes"
else
@@ -13218,12 +13223,12 @@ if eval "test \"`echo '$ac_cv_func_'socket`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __socket""... $ac_c" 1>&6
-echo "configure:13222: checking for __socket" >&5
+echo "configure:13227: checking for __socket" >&5
if eval "test \"`echo '$''{'ac_cv_func___socket'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13227 "configure"
+#line 13232 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __socket(); below. */
@@ -13246,7 +13251,7 @@ __socket();
; return 0; }
EOF
-if { (eval echo configure:13250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___socket=yes"
else
@@ -13284,7 +13289,7 @@ EOF
unset ac_cv_lib_socket___socket
unset found
echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
-echo "configure:13288: checking for socket in -lsocket" >&5
+echo "configure:13293: checking for socket in -lsocket" >&5
ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13292,7 +13297,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13296 "configure"
+#line 13301 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13303,7 +13308,7 @@ int main() {
socket()
; return 0; }
EOF
-if { (eval echo configure:13307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13323,7 +13328,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __socket in -lsocket""... $ac_c" 1>&6
-echo "configure:13327: checking for __socket in -lsocket" >&5
+echo "configure:13332: checking for __socket in -lsocket" >&5
ac_lib_var=`echo socket'_'__socket | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13331,7 +13336,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13335 "configure"
+#line 13340 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13342,7 +13347,7 @@ int main() {
__socket()
; return 0; }
EOF
-if { (eval echo configure:13346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13374,11 +13379,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 13378 "configure"
+#line 13383 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:13382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -13429,12 +13434,12 @@ EOF
unset found
echo $ac_n "checking for socketpair""... $ac_c" 1>&6
-echo "configure:13433: checking for socketpair" >&5
+echo "configure:13438: checking for socketpair" >&5
if eval "test \"`echo '$''{'ac_cv_func_socketpair'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13438 "configure"
+#line 13443 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char socketpair(); below. */
@@ -13457,7 +13462,7 @@ socketpair();
; return 0; }
EOF
-if { (eval echo configure:13461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_socketpair=yes"
else
@@ -13475,12 +13480,12 @@ if eval "test \"`echo '$ac_cv_func_'socketpair`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __socketpair""... $ac_c" 1>&6
-echo "configure:13479: checking for __socketpair" >&5
+echo "configure:13484: checking for __socketpair" >&5
if eval "test \"`echo '$''{'ac_cv_func___socketpair'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13484 "configure"
+#line 13489 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __socketpair(); below. */
@@ -13503,7 +13508,7 @@ __socketpair();
; return 0; }
EOF
-if { (eval echo configure:13507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___socketpair=yes"
else
@@ -13541,7 +13546,7 @@ EOF
unset ac_cv_lib_socket___socketpair
unset found
echo $ac_n "checking for socketpair in -lsocket""... $ac_c" 1>&6
-echo "configure:13545: checking for socketpair in -lsocket" >&5
+echo "configure:13550: checking for socketpair in -lsocket" >&5
ac_lib_var=`echo socket'_'socketpair | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13549,7 +13554,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13553 "configure"
+#line 13558 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13560,7 +13565,7 @@ int main() {
socketpair()
; return 0; }
EOF
-if { (eval echo configure:13564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13580,7 +13585,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __socketpair in -lsocket""... $ac_c" 1>&6
-echo "configure:13584: checking for __socketpair in -lsocket" >&5
+echo "configure:13589: checking for __socketpair in -lsocket" >&5
ac_lib_var=`echo socket'_'__socketpair | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13588,7 +13593,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13592 "configure"
+#line 13597 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13599,7 +13604,7 @@ int main() {
__socketpair()
; return 0; }
EOF
-if { (eval echo configure:13603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13631,11 +13636,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 13635 "configure"
+#line 13640 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:13639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -13686,12 +13691,12 @@ EOF
unset found
echo $ac_n "checking for htonl""... $ac_c" 1>&6
-echo "configure:13690: checking for htonl" >&5
+echo "configure:13695: checking for htonl" >&5
if eval "test \"`echo '$''{'ac_cv_func_htonl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13695 "configure"
+#line 13700 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char htonl(); below. */
@@ -13714,7 +13719,7 @@ htonl();
; return 0; }
EOF
-if { (eval echo configure:13718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13723: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_htonl=yes"
else
@@ -13732,12 +13737,12 @@ if eval "test \"`echo '$ac_cv_func_'htonl`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __htonl""... $ac_c" 1>&6
-echo "configure:13736: checking for __htonl" >&5
+echo "configure:13741: checking for __htonl" >&5
if eval "test \"`echo '$''{'ac_cv_func___htonl'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13741 "configure"
+#line 13746 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __htonl(); below. */
@@ -13760,7 +13765,7 @@ __htonl();
; return 0; }
EOF
-if { (eval echo configure:13764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___htonl=yes"
else
@@ -13798,7 +13803,7 @@ EOF
unset ac_cv_lib_socket___htonl
unset found
echo $ac_n "checking for htonl in -lsocket""... $ac_c" 1>&6
-echo "configure:13802: checking for htonl in -lsocket" >&5
+echo "configure:13807: checking for htonl in -lsocket" >&5
ac_lib_var=`echo socket'_'htonl | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13806,7 +13811,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13810 "configure"
+#line 13815 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13817,7 +13822,7 @@ int main() {
htonl()
; return 0; }
EOF
-if { (eval echo configure:13821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13826: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13837,7 +13842,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __htonl in -lsocket""... $ac_c" 1>&6
-echo "configure:13841: checking for __htonl in -lsocket" >&5
+echo "configure:13846: checking for __htonl in -lsocket" >&5
ac_lib_var=`echo socket'_'__htonl | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -13845,7 +13850,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 13849 "configure"
+#line 13854 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -13856,7 +13861,7 @@ int main() {
__htonl()
; return 0; }
EOF
-if { (eval echo configure:13860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -13888,11 +13893,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 13892 "configure"
+#line 13897 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:13896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:13901: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -13943,12 +13948,12 @@ EOF
unset found
echo $ac_n "checking for gethostname""... $ac_c" 1>&6
-echo "configure:13947: checking for gethostname" >&5
+echo "configure:13952: checking for gethostname" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13952 "configure"
+#line 13957 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostname(); below. */
@@ -13971,7 +13976,7 @@ gethostname();
; return 0; }
EOF
-if { (eval echo configure:13975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostname=yes"
else
@@ -13989,12 +13994,12 @@ if eval "test \"`echo '$ac_cv_func_'gethostname`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __gethostname""... $ac_c" 1>&6
-echo "configure:13993: checking for __gethostname" >&5
+echo "configure:13998: checking for __gethostname" >&5
if eval "test \"`echo '$''{'ac_cv_func___gethostname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 13998 "configure"
+#line 14003 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __gethostname(); below. */
@@ -14017,7 +14022,7 @@ __gethostname();
; return 0; }
EOF
-if { (eval echo configure:14021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14026: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___gethostname=yes"
else
@@ -14055,7 +14060,7 @@ EOF
unset ac_cv_lib_nsl___gethostname
unset found
echo $ac_n "checking for gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:14059: checking for gethostname in -lnsl" >&5
+echo "configure:14064: checking for gethostname in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14063,7 +14068,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14067 "configure"
+#line 14072 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14074,7 +14079,7 @@ int main() {
gethostname()
; return 0; }
EOF
-if { (eval echo configure:14078: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14094,7 +14099,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __gethostname in -lnsl""... $ac_c" 1>&6
-echo "configure:14098: checking for __gethostname in -lnsl" >&5
+echo "configure:14103: checking for __gethostname in -lnsl" >&5
ac_lib_var=`echo nsl'_'__gethostname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14102,7 +14107,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14106 "configure"
+#line 14111 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14113,7 +14118,7 @@ int main() {
__gethostname()
; return 0; }
EOF
-if { (eval echo configure:14117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14145,11 +14150,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 14149 "configure"
+#line 14154 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:14153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -14200,12 +14205,12 @@ EOF
unset found
echo $ac_n "checking for gethostbyaddr""... $ac_c" 1>&6
-echo "configure:14204: checking for gethostbyaddr" >&5
+echo "configure:14209: checking for gethostbyaddr" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyaddr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14209 "configure"
+#line 14214 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyaddr(); below. */
@@ -14228,7 +14233,7 @@ gethostbyaddr();
; return 0; }
EOF
-if { (eval echo configure:14232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyaddr=yes"
else
@@ -14246,12 +14251,12 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyaddr`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __gethostbyaddr""... $ac_c" 1>&6
-echo "configure:14250: checking for __gethostbyaddr" >&5
+echo "configure:14255: checking for __gethostbyaddr" >&5
if eval "test \"`echo '$''{'ac_cv_func___gethostbyaddr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14255 "configure"
+#line 14260 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __gethostbyaddr(); below. */
@@ -14274,7 +14279,7 @@ __gethostbyaddr();
; return 0; }
EOF
-if { (eval echo configure:14278: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14283: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___gethostbyaddr=yes"
else
@@ -14312,7 +14317,7 @@ EOF
unset ac_cv_lib_nsl___gethostbyaddr
unset found
echo $ac_n "checking for gethostbyaddr in -lnsl""... $ac_c" 1>&6
-echo "configure:14316: checking for gethostbyaddr in -lnsl" >&5
+echo "configure:14321: checking for gethostbyaddr in -lnsl" >&5
ac_lib_var=`echo nsl'_'gethostbyaddr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14320,7 +14325,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14324 "configure"
+#line 14329 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14331,7 +14336,7 @@ int main() {
gethostbyaddr()
; return 0; }
EOF
-if { (eval echo configure:14335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14351,7 +14356,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __gethostbyaddr in -lnsl""... $ac_c" 1>&6
-echo "configure:14355: checking for __gethostbyaddr in -lnsl" >&5
+echo "configure:14360: checking for __gethostbyaddr in -lnsl" >&5
ac_lib_var=`echo nsl'_'__gethostbyaddr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14359,7 +14364,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14363 "configure"
+#line 14368 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14370,7 +14375,7 @@ int main() {
__gethostbyaddr()
; return 0; }
EOF
-if { (eval echo configure:14374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14379: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14402,11 +14407,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 14406 "configure"
+#line 14411 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:14410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -14457,12 +14462,12 @@ EOF
unset found
echo $ac_n "checking for yp_get_default_domain""... $ac_c" 1>&6
-echo "configure:14461: checking for yp_get_default_domain" >&5
+echo "configure:14466: checking for yp_get_default_domain" >&5
if eval "test \"`echo '$''{'ac_cv_func_yp_get_default_domain'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14466 "configure"
+#line 14471 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char yp_get_default_domain(); below. */
@@ -14485,7 +14490,7 @@ yp_get_default_domain();
; return 0; }
EOF
-if { (eval echo configure:14489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14494: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_yp_get_default_domain=yes"
else
@@ -14503,12 +14508,12 @@ if eval "test \"`echo '$ac_cv_func_'yp_get_default_domain`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __yp_get_default_domain""... $ac_c" 1>&6
-echo "configure:14507: checking for __yp_get_default_domain" >&5
+echo "configure:14512: checking for __yp_get_default_domain" >&5
if eval "test \"`echo '$''{'ac_cv_func___yp_get_default_domain'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14512 "configure"
+#line 14517 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __yp_get_default_domain(); below. */
@@ -14531,7 +14536,7 @@ __yp_get_default_domain();
; return 0; }
EOF
-if { (eval echo configure:14535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___yp_get_default_domain=yes"
else
@@ -14569,7 +14574,7 @@ EOF
unset ac_cv_lib_nsl___yp_get_default_domain
unset found
echo $ac_n "checking for yp_get_default_domain in -lnsl""... $ac_c" 1>&6
-echo "configure:14573: checking for yp_get_default_domain in -lnsl" >&5
+echo "configure:14578: checking for yp_get_default_domain in -lnsl" >&5
ac_lib_var=`echo nsl'_'yp_get_default_domain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14577,7 +14582,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14581 "configure"
+#line 14586 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14588,7 +14593,7 @@ int main() {
yp_get_default_domain()
; return 0; }
EOF
-if { (eval echo configure:14592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14608,7 +14613,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __yp_get_default_domain in -lnsl""... $ac_c" 1>&6
-echo "configure:14612: checking for __yp_get_default_domain in -lnsl" >&5
+echo "configure:14617: checking for __yp_get_default_domain in -lnsl" >&5
ac_lib_var=`echo nsl'_'__yp_get_default_domain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14616,7 +14621,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lnsl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14620 "configure"
+#line 14625 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14627,7 +14632,7 @@ int main() {
__yp_get_default_domain()
; return 0; }
EOF
-if { (eval echo configure:14631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14659,11 +14664,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 14663 "configure"
+#line 14668 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:14667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -14715,12 +14720,12 @@ EOF
unset found
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:14719: checking for dlopen" >&5
+echo "configure:14724: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14724 "configure"
+#line 14729 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
@@ -14743,7 +14748,7 @@ dlopen();
; return 0; }
EOF
-if { (eval echo configure:14747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@@ -14761,12 +14766,12 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dlopen""... $ac_c" 1>&6
-echo "configure:14765: checking for __dlopen" >&5
+echo "configure:14770: checking for __dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func___dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 14770 "configure"
+#line 14775 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __dlopen(); below. */
@@ -14789,7 +14794,7 @@ __dlopen();
; return 0; }
EOF
-if { (eval echo configure:14793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___dlopen=yes"
else
@@ -14827,7 +14832,7 @@ EOF
unset ac_cv_lib_dl___dlopen
unset found
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:14831: checking for dlopen in -ldl" >&5
+echo "configure:14836: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14835,7 +14840,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14839 "configure"
+#line 14844 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14846,7 +14851,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:14850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14855: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14866,7 +14871,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:14870: checking for __dlopen in -ldl" >&5
+echo "configure:14875: checking for __dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'__dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14874,7 +14879,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14878 "configure"
+#line 14883 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14885,7 +14890,7 @@ int main() {
__dlopen()
; return 0; }
EOF
-if { (eval echo configure:14889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:14894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -14917,11 +14922,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 14921 "configure"
+#line 14926 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:14925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:14930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -14973,7 +14978,7 @@ EOF
fi
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:14977: checking for sin in -lm" >&5
+echo "configure:14982: checking for sin in -lm" >&5
ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -14981,7 +14986,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 14985 "configure"
+#line 14990 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -14992,7 +14997,7 @@ int main() {
sin()
; return 0; }
EOF
-if { (eval echo configure:14996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15001: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15026,12 +15031,12 @@ fi
unset found
echo $ac_n "checking for res_search""... $ac_c" 1>&6
-echo "configure:15030: checking for res_search" >&5
+echo "configure:15035: checking for res_search" >&5
if eval "test \"`echo '$''{'ac_cv_func_res_search'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15035 "configure"
+#line 15040 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char res_search(); below. */
@@ -15054,7 +15059,7 @@ res_search();
; return 0; }
EOF
-if { (eval echo configure:15058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_res_search=yes"
else
@@ -15072,12 +15077,12 @@ if eval "test \"`echo '$ac_cv_func_'res_search`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_search""... $ac_c" 1>&6
-echo "configure:15076: checking for __res_search" >&5
+echo "configure:15081: checking for __res_search" >&5
if eval "test \"`echo '$''{'ac_cv_func___res_search'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15081 "configure"
+#line 15086 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __res_search(); below. */
@@ -15100,7 +15105,7 @@ __res_search();
; return 0; }
EOF
-if { (eval echo configure:15104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___res_search=yes"
else
@@ -15138,7 +15143,7 @@ EOF
unset ac_cv_lib_resolv___res_search
unset found
echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6
-echo "configure:15142: checking for res_search in -lresolv" >&5
+echo "configure:15147: checking for res_search in -lresolv" >&5
ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15146,7 +15151,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15150 "configure"
+#line 15155 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15157,7 +15162,7 @@ int main() {
res_search()
; return 0; }
EOF
-if { (eval echo configure:15161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15177,7 +15182,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_search in -lresolv""... $ac_c" 1>&6
-echo "configure:15181: checking for __res_search in -lresolv" >&5
+echo "configure:15186: checking for __res_search in -lresolv" >&5
ac_lib_var=`echo resolv'_'__res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15185,7 +15190,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15189 "configure"
+#line 15194 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15196,7 +15201,7 @@ int main() {
__res_search()
; return 0; }
EOF
-if { (eval echo configure:15200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15205: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15228,11 +15233,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 15232 "configure"
+#line 15237 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:15236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -15274,7 +15279,7 @@ EOF
unset ac_cv_lib_bind___res_search
unset found
echo $ac_n "checking for res_search in -lbind""... $ac_c" 1>&6
-echo "configure:15278: checking for res_search in -lbind" >&5
+echo "configure:15283: checking for res_search in -lbind" >&5
ac_lib_var=`echo bind'_'res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15282,7 +15287,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15286 "configure"
+#line 15291 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15293,7 +15298,7 @@ int main() {
res_search()
; return 0; }
EOF
-if { (eval echo configure:15297: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15313,7 +15318,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_search in -lbind""... $ac_c" 1>&6
-echo "configure:15317: checking for __res_search in -lbind" >&5
+echo "configure:15322: checking for __res_search in -lbind" >&5
ac_lib_var=`echo bind'_'__res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15321,7 +15326,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15325 "configure"
+#line 15330 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15332,7 +15337,7 @@ int main() {
__res_search()
; return 0; }
EOF
-if { (eval echo configure:15336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15364,11 +15369,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 15368 "configure"
+#line 15373 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:15372: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -15410,7 +15415,7 @@ EOF
unset ac_cv_lib_socket___res_search
unset found
echo $ac_n "checking for res_search in -lsocket""... $ac_c" 1>&6
-echo "configure:15414: checking for res_search in -lsocket" >&5
+echo "configure:15419: checking for res_search in -lsocket" >&5
ac_lib_var=`echo socket'_'res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15418,7 +15423,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15422 "configure"
+#line 15427 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15429,7 +15434,7 @@ int main() {
res_search()
; return 0; }
EOF
-if { (eval echo configure:15433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15449,7 +15454,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_search in -lsocket""... $ac_c" 1>&6
-echo "configure:15453: checking for __res_search in -lsocket" >&5
+echo "configure:15458: checking for __res_search in -lsocket" >&5
ac_lib_var=`echo socket'_'__res_search | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15457,7 +15462,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15461 "configure"
+#line 15466 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15468,7 +15473,7 @@ int main() {
__res_search()
; return 0; }
EOF
-if { (eval echo configure:15472: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15500,11 +15505,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 15504 "configure"
+#line 15509 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:15508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -15562,12 +15567,12 @@ EOF
unset found
echo $ac_n "checking for inet_aton""... $ac_c" 1>&6
-echo "configure:15566: checking for inet_aton" >&5
+echo "configure:15571: checking for inet_aton" >&5
if eval "test \"`echo '$''{'ac_cv_func_inet_aton'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15571 "configure"
+#line 15576 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char inet_aton(); below. */
@@ -15590,7 +15595,7 @@ inet_aton();
; return 0; }
EOF
-if { (eval echo configure:15594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_inet_aton=yes"
else
@@ -15608,12 +15613,12 @@ if eval "test \"`echo '$ac_cv_func_'inet_aton`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __inet_aton""... $ac_c" 1>&6
-echo "configure:15612: checking for __inet_aton" >&5
+echo "configure:15617: checking for __inet_aton" >&5
if eval "test \"`echo '$''{'ac_cv_func___inet_aton'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15617 "configure"
+#line 15622 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __inet_aton(); below. */
@@ -15636,7 +15641,7 @@ __inet_aton();
; return 0; }
EOF
-if { (eval echo configure:15640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___inet_aton=yes"
else
@@ -15674,7 +15679,7 @@ EOF
unset ac_cv_lib_resolv___inet_aton
unset found
echo $ac_n "checking for inet_aton in -lresolv""... $ac_c" 1>&6
-echo "configure:15678: checking for inet_aton in -lresolv" >&5
+echo "configure:15683: checking for inet_aton in -lresolv" >&5
ac_lib_var=`echo resolv'_'inet_aton | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15682,7 +15687,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15686 "configure"
+#line 15691 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15693,7 +15698,7 @@ int main() {
inet_aton()
; return 0; }
EOF
-if { (eval echo configure:15697: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15713,7 +15718,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __inet_aton in -lresolv""... $ac_c" 1>&6
-echo "configure:15717: checking for __inet_aton in -lresolv" >&5
+echo "configure:15722: checking for __inet_aton in -lresolv" >&5
ac_lib_var=`echo resolv'_'__inet_aton | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15721,7 +15726,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15725 "configure"
+#line 15730 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15732,7 +15737,7 @@ int main() {
__inet_aton()
; return 0; }
EOF
-if { (eval echo configure:15736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15741: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15764,11 +15769,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 15768 "configure"
+#line 15773 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:15772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -15810,7 +15815,7 @@ EOF
unset ac_cv_lib_bind___inet_aton
unset found
echo $ac_n "checking for inet_aton in -lbind""... $ac_c" 1>&6
-echo "configure:15814: checking for inet_aton in -lbind" >&5
+echo "configure:15819: checking for inet_aton in -lbind" >&5
ac_lib_var=`echo bind'_'inet_aton | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15818,7 +15823,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15822 "configure"
+#line 15827 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15829,7 +15834,7 @@ int main() {
inet_aton()
; return 0; }
EOF
-if { (eval echo configure:15833: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15838: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15849,7 +15854,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __inet_aton in -lbind""... $ac_c" 1>&6
-echo "configure:15853: checking for __inet_aton in -lbind" >&5
+echo "configure:15858: checking for __inet_aton in -lbind" >&5
ac_lib_var=`echo bind'_'__inet_aton | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -15857,7 +15862,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 15861 "configure"
+#line 15866 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -15868,7 +15873,7 @@ int main() {
__inet_aton()
; return 0; }
EOF
-if { (eval echo configure:15872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -15900,11 +15905,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 15904 "configure"
+#line 15909 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:15908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:15913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -15958,12 +15963,12 @@ EOF
unset found
echo $ac_n "checking for dn_skipname""... $ac_c" 1>&6
-echo "configure:15962: checking for dn_skipname" >&5
+echo "configure:15967: checking for dn_skipname" >&5
if eval "test \"`echo '$''{'ac_cv_func_dn_skipname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 15967 "configure"
+#line 15972 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dn_skipname(); below. */
@@ -15986,7 +15991,7 @@ dn_skipname();
; return 0; }
EOF
-if { (eval echo configure:15990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:15995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dn_skipname=yes"
else
@@ -16004,12 +16009,12 @@ if eval "test \"`echo '$ac_cv_func_'dn_skipname`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_skipname""... $ac_c" 1>&6
-echo "configure:16008: checking for __dn_skipname" >&5
+echo "configure:16013: checking for __dn_skipname" >&5
if eval "test \"`echo '$''{'ac_cv_func___dn_skipname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16013 "configure"
+#line 16018 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __dn_skipname(); below. */
@@ -16032,7 +16037,7 @@ __dn_skipname();
; return 0; }
EOF
-if { (eval echo configure:16036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16041: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___dn_skipname=yes"
else
@@ -16070,7 +16075,7 @@ EOF
unset ac_cv_lib_resolv___dn_skipname
unset found
echo $ac_n "checking for dn_skipname in -lresolv""... $ac_c" 1>&6
-echo "configure:16074: checking for dn_skipname in -lresolv" >&5
+echo "configure:16079: checking for dn_skipname in -lresolv" >&5
ac_lib_var=`echo resolv'_'dn_skipname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16078,7 +16083,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16082 "configure"
+#line 16087 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16089,7 +16094,7 @@ int main() {
dn_skipname()
; return 0; }
EOF
-if { (eval echo configure:16093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16098: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16109,7 +16114,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_skipname in -lresolv""... $ac_c" 1>&6
-echo "configure:16113: checking for __dn_skipname in -lresolv" >&5
+echo "configure:16118: checking for __dn_skipname in -lresolv" >&5
ac_lib_var=`echo resolv'_'__dn_skipname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16117,7 +16122,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16121 "configure"
+#line 16126 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16128,7 +16133,7 @@ int main() {
__dn_skipname()
; return 0; }
EOF
-if { (eval echo configure:16132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16160,11 +16165,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 16164 "configure"
+#line 16169 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:16168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -16206,7 +16211,7 @@ EOF
unset ac_cv_lib_bind___dn_skipname
unset found
echo $ac_n "checking for dn_skipname in -lbind""... $ac_c" 1>&6
-echo "configure:16210: checking for dn_skipname in -lbind" >&5
+echo "configure:16215: checking for dn_skipname in -lbind" >&5
ac_lib_var=`echo bind'_'dn_skipname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16214,7 +16219,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16218 "configure"
+#line 16223 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16225,7 +16230,7 @@ int main() {
dn_skipname()
; return 0; }
EOF
-if { (eval echo configure:16229: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16245,7 +16250,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_skipname in -lbind""... $ac_c" 1>&6
-echo "configure:16249: checking for __dn_skipname in -lbind" >&5
+echo "configure:16254: checking for __dn_skipname in -lbind" >&5
ac_lib_var=`echo bind'_'__dn_skipname | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16253,7 +16258,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16257 "configure"
+#line 16262 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16264,7 +16269,7 @@ int main() {
__dn_skipname()
; return 0; }
EOF
-if { (eval echo configure:16268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16296,11 +16301,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 16300 "configure"
+#line 16305 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:16304: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -16352,12 +16357,12 @@ EOF
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:16356: checking for ANSI C header files" >&5
+echo "configure:16361: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16361 "configure"
+#line 16366 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -16365,7 +16370,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16369: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -16382,7 +16387,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 16386 "configure"
+#line 16391 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -16400,7 +16405,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 16404 "configure"
+#line 16409 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -16421,7 +16426,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 16425 "configure"
+#line 16430 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -16432,7 +16437,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:16436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -16460,12 +16465,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
-echo "configure:16464: checking for $ac_hdr that defines DIR" >&5
+echo "configure:16469: checking for $ac_hdr that defines DIR" >&5
if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16469 "configure"
+#line 16474 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_hdr>
@@ -16473,7 +16478,7 @@ int main() {
DIR *dirp = 0;
; return 0; }
EOF
-if { (eval echo configure:16477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16482: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
eval "ac_cv_header_dirent_$ac_safe=yes"
else
@@ -16498,7 +16503,7 @@ done
# Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
if test $ac_header_dirent = dirent.h; then
echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
-echo "configure:16502: checking for opendir in -ldir" >&5
+echo "configure:16507: checking for opendir in -ldir" >&5
ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16506,7 +16511,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldir $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16510 "configure"
+#line 16515 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16517,7 +16522,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:16521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16526: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16539,7 +16544,7 @@ fi
else
echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:16543: checking for opendir in -lx" >&5
+echo "configure:16548: checking for opendir in -lx" >&5
ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -16547,7 +16552,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lx $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 16551 "configure"
+#line 16556 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -16558,7 +16563,7 @@ int main() {
opendir()
; return 0; }
EOF
-if { (eval echo configure:16562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -16638,17 +16643,17 @@ assert.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:16642: checking for $ac_hdr" >&5
+echo "configure:16647: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16647 "configure"
+#line 16652 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:16652: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:16657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -16677,12 +16682,12 @@ done
echo $ac_n "checking for fopencookie""... $ac_c" 1>&6
-echo "configure:16681: checking for fopencookie" >&5
+echo "configure:16686: checking for fopencookie" >&5
if eval "test \"`echo '$''{'ac_cv_func_fopencookie'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16686 "configure"
+#line 16691 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char fopencookie(); below. */
@@ -16705,7 +16710,7 @@ fopencookie();
; return 0; }
EOF
-if { (eval echo configure:16709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:16714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_fopencookie=yes"
else
@@ -16727,7 +16732,7 @@ fi
if test "$have_glibc_fopencookie" = "yes"; then
cat > conftest.$ac_ext <<EOF
-#line 16731 "configure"
+#line 16736 "configure"
#include "confdefs.h"
#define _GNU_SOURCE
@@ -16737,7 +16742,7 @@ int main() {
cookie_io_functions_t cookie;
; return 0; }
EOF
-if { (eval echo configure:16741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16746: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_cookie_io_functions_t=yes
else
@@ -16756,7 +16761,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 16760 "configure"
+#line 16765 "configure"
#include "confdefs.h"
#define _GNU_SOURCE
@@ -16788,7 +16793,7 @@ main() {
EOF
-if { (eval echo configure:16792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cookie_io_functions_use_off64_t=yes
@@ -16808,7 +16813,7 @@ fi
else
cat > conftest.$ac_ext <<EOF
-#line 16812 "configure"
+#line 16817 "configure"
#include "confdefs.h"
#define _GNU_SOURCE
@@ -16818,7 +16823,7 @@ int main() {
_IO_cookie_io_functions_t cookie;
; return 0; }
EOF
-if { (eval echo configure:16822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16827: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_IO_cookie_io_functions_t=yes
else
@@ -16852,7 +16857,7 @@ EOF
echo $ac_n "checking for broken getcwd""... $ac_c" 1>&6
-echo "configure:16856: checking for broken getcwd" >&5
+echo "configure:16861: checking for broken getcwd" >&5
os=`uname -sr 2>/dev/null`
case $os in
SunOS*)
@@ -16867,14 +16872,14 @@ EOF
echo $ac_n "checking for broken libc stdio""... $ac_c" 1>&6
-echo "configure:16871: checking for broken libc stdio" >&5
+echo "configure:16876: checking for broken libc stdio" >&5
if eval "test \"`echo '$''{'have_broken_glibc_fopen_append'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
if test "$cross_compiling" = yes; then
cat > conftest.$ac_ext <<EOF
-#line 16878 "configure"
+#line 16883 "configure"
#include "confdefs.h"
#include <features.h>
@@ -16887,7 +16892,7 @@ choke me
; return 0; }
EOF
-if { (eval echo configure:16891: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16896: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
have_broken_glibc_fopen_append=yes
else
@@ -16900,7 +16905,7 @@ rm -f conftest*
else
cat > conftest.$ac_ext <<EOF
-#line 16904 "configure"
+#line 16909 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -16928,7 +16933,7 @@ int main(int argc, char *argv[])
}
EOF
-if { (eval echo configure:16932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:16937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
have_broken_glibc_fopen_append=no
else
@@ -16956,12 +16961,12 @@ EOF
echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:16960: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:16965: checking whether struct tm is in sys/time.h or time.h" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16965 "configure"
+#line 16970 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <time.h>
@@ -16969,7 +16974,7 @@ int main() {
struct tm *tp; tp->tm_sec;
; return 0; }
EOF
-if { (eval echo configure:16973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:16978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm=time.h
else
@@ -16990,12 +16995,12 @@ EOF
fi
echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:16994: checking for tm_zone in struct tm" >&5
+echo "configure:16999: checking for tm_zone in struct tm" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm_zone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 16999 "configure"
+#line 17004 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_cv_struct_tm>
@@ -17003,7 +17008,7 @@ int main() {
struct tm tm; tm.tm_zone;
; return 0; }
EOF
-if { (eval echo configure:17007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm_zone=yes
else
@@ -17023,12 +17028,12 @@ EOF
else
echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:17027: checking for tzname" >&5
+echo "configure:17032: checking for tzname" >&5
if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17032 "configure"
+#line 17037 "configure"
#include "confdefs.h"
#include <time.h>
#ifndef tzname /* For SGI. */
@@ -17038,7 +17043,7 @@ int main() {
atoi(*tzname);
; return 0; }
EOF
-if { (eval echo configure:17042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17047: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_var_tzname=yes
else
@@ -17062,16 +17067,16 @@ fi
echo $ac_n "checking for missing declarations of reentrant functions""... $ac_c" 1>&6
-echo "configure:17066: checking for missing declarations of reentrant functions" >&5
+echo "configure:17071: checking for missing declarations of reentrant functions" >&5
cat > conftest.$ac_ext <<EOF
-#line 17068 "configure"
+#line 17073 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
struct tm *(*func)() = localtime_r
; return 0; }
EOF
-if { (eval echo configure:17075: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
:
@@ -17089,14 +17094,14 @@ EOF
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 17093 "configure"
+#line 17098 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
struct tm *(*func)() = gmtime_r
; return 0; }
EOF
-if { (eval echo configure:17100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17105: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
:
@@ -17114,14 +17119,14 @@ EOF
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 17118 "configure"
+#line 17123 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
char *(*func)() = asctime_r
; return 0; }
EOF
-if { (eval echo configure:17125: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
:
@@ -17139,14 +17144,14 @@ EOF
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 17143 "configure"
+#line 17148 "configure"
#include "confdefs.h"
#include <time.h>
int main() {
char *(*func)() = ctime_r
; return 0; }
EOF
-if { (eval echo configure:17150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17155: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
:
@@ -17164,14 +17169,14 @@ EOF
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 17168 "configure"
+#line 17173 "configure"
#include "confdefs.h"
#include <string.h>
int main() {
char *(*func)() = strtok_r
; return 0; }
EOF
-if { (eval echo configure:17175: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
:
@@ -17192,16 +17197,16 @@ rm -f conftest*
echo $ac_n "checking for fclose declaration""... $ac_c" 1>&6
-echo "configure:17196: checking for fclose declaration" >&5
+echo "configure:17201: checking for fclose declaration" >&5
cat > conftest.$ac_ext <<EOF
-#line 17198 "configure"
+#line 17203 "configure"
#include "confdefs.h"
#include <stdio.h>
int main() {
int (*func)() = fclose
; return 0; }
EOF
-if { (eval echo configure:17205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17210: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
@@ -17227,12 +17232,12 @@ rm -f conftest*
echo $ac_n "checking for tm_gmtoff in struct tm""... $ac_c" 1>&6
-echo "configure:17231: checking for tm_gmtoff in struct tm" >&5
+echo "configure:17236: checking for tm_gmtoff in struct tm" >&5
if eval "test \"`echo '$''{'ac_cv_struct_tm_gmtoff'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17236 "configure"
+#line 17241 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <$ac_cv_struct_tm>
@@ -17240,7 +17245,7 @@ int main() {
struct tm tm; tm.tm_gmtoff;
; return 0; }
EOF
-if { (eval echo configure:17244: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17249: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_tm_gmtoff=yes
else
@@ -17263,12 +17268,12 @@ fi
echo $ac_n "checking for struct flock""... $ac_c" 1>&6
-echo "configure:17267: checking for struct flock" >&5
+echo "configure:17272: checking for struct flock" >&5
if eval "test \"`echo '$''{'ac_cv_struct_flock'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17272 "configure"
+#line 17277 "configure"
#include "confdefs.h"
#include <unistd.h>
@@ -17278,7 +17283,7 @@ int main() {
struct flock x;
; return 0; }
EOF
-if { (eval echo configure:17282: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_flock=yes
@@ -17305,12 +17310,12 @@ fi
echo $ac_n "checking for socklen_t""... $ac_c" 1>&6
-echo "configure:17309: checking for socklen_t" >&5
+echo "configure:17314: checking for socklen_t" >&5
if eval "test \"`echo '$''{'ac_cv_socklen_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17314 "configure"
+#line 17319 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -17322,7 +17327,7 @@ socklen_t x;
; return 0; }
EOF
-if { (eval echo configure:17326: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_socklen_t=yes
@@ -17348,7 +17353,7 @@ fi
echo $ac_n "checking size of intmax_t""... $ac_c" 1>&6
-echo "configure:17352: checking size of intmax_t" >&5
+echo "configure:17357: checking size of intmax_t" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_intmax_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17356,7 +17361,7 @@ else
ac_cv_sizeof_intmax_t=0
else
cat > conftest.$ac_ext <<EOF
-#line 17360 "configure"
+#line 17365 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17367,7 +17372,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_intmax_t=`cat conftestval`
else
@@ -17387,7 +17392,7 @@ EOF
echo $ac_n "checking size of size_t""... $ac_c" 1>&6
-echo "configure:17391: checking size of size_t" >&5
+echo "configure:17396: checking size of size_t" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17395,7 +17400,7 @@ else
ac_cv_sizeof_size_t=8
else
cat > conftest.$ac_ext <<EOF
-#line 17399 "configure"
+#line 17404 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17406,7 +17411,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17410: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17415: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_size_t=`cat conftestval`
else
@@ -17426,7 +17431,7 @@ EOF
echo $ac_n "checking size of ssize_t""... $ac_c" 1>&6
-echo "configure:17430: checking size of ssize_t" >&5
+echo "configure:17435: checking size of ssize_t" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_ssize_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17434,7 +17439,7 @@ else
ac_cv_sizeof_ssize_t=8
else
cat > conftest.$ac_ext <<EOF
-#line 17438 "configure"
+#line 17443 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17445,7 +17450,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17454: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_ssize_t=`cat conftestval`
else
@@ -17465,7 +17470,7 @@ EOF
echo $ac_n "checking size of ptrdiff_t""... $ac_c" 1>&6
-echo "configure:17469: checking size of ptrdiff_t" >&5
+echo "configure:17474: checking size of ptrdiff_t" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_ptrdiff_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17473,7 +17478,7 @@ else
ac_cv_sizeof_ptrdiff_t=8
else
cat > conftest.$ac_ext <<EOF
-#line 17477 "configure"
+#line 17482 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17484,7 +17489,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_ptrdiff_t=`cat conftestval`
else
@@ -17504,7 +17509,7 @@ EOF
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:17508: checking size of long long" >&5
+echo "configure:17513: checking size of long long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17512,7 +17517,7 @@ else
ac_cv_sizeof_long_long=8
else
cat > conftest.$ac_ext <<EOF
-#line 17516 "configure"
+#line 17521 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17523,7 +17528,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long=`cat conftestval`
else
@@ -17543,7 +17548,7 @@ EOF
echo $ac_n "checking size of long long int""... $ac_c" 1>&6
-echo "configure:17547: checking size of long long int" >&5
+echo "configure:17552: checking size of long long int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17551,7 +17556,7 @@ else
ac_cv_sizeof_long_long_int=8
else
cat > conftest.$ac_ext <<EOF
-#line 17555 "configure"
+#line 17560 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17562,7 +17567,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long_int=`cat conftestval`
else
@@ -17582,7 +17587,7 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:17586: checking size of long" >&5
+echo "configure:17591: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17590,7 +17595,7 @@ else
ac_cv_sizeof_long=8
else
cat > conftest.$ac_ext <<EOF
-#line 17594 "configure"
+#line 17599 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17601,7 +17606,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long=`cat conftestval`
else
@@ -17621,7 +17626,7 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:17625: checking size of int" >&5
+echo "configure:17630: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -17629,7 +17634,7 @@ else
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 17633 "configure"
+#line 17638 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -17640,7 +17645,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:17644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:17649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_int=`cat conftestval`
else
@@ -17661,12 +17666,12 @@ EOF
echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:17665: checking for st_blksize in struct stat" >&5
+echo "configure:17670: checking for st_blksize in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17670 "configure"
+#line 17675 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -17674,7 +17679,7 @@ int main() {
struct stat s; s.st_blksize;
; return 0; }
EOF
-if { (eval echo configure:17678: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17683: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blksize=yes
else
@@ -17696,12 +17701,12 @@ fi
if test "`uname -s 2>/dev/null`" != "QNX"; then
echo $ac_n "checking for st_blocks in struct stat""... $ac_c" 1>&6
-echo "configure:17700: checking for st_blocks in struct stat" >&5
+echo "configure:17705: checking for st_blocks in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_blocks'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17705 "configure"
+#line 17710 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -17709,7 +17714,7 @@ int main() {
struct stat s; s.st_blocks;
; return 0; }
EOF
-if { (eval echo configure:17713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17718: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_blocks=yes
else
@@ -17736,12 +17741,12 @@ else
WARNING_LEVEL=0
fi
echo $ac_n "checking for st_rdev in struct stat""... $ac_c" 1>&6
-echo "configure:17740: checking for st_rdev in struct stat" >&5
+echo "configure:17745: checking for st_rdev in struct stat" >&5
if eval "test \"`echo '$''{'ac_cv_struct_st_rdev'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17745 "configure"
+#line 17750 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -17749,7 +17754,7 @@ int main() {
struct stat s; s.st_rdev;
; return 0; }
EOF
-if { (eval echo configure:17753: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17758: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_struct_st_rdev=yes
else
@@ -17771,12 +17776,12 @@ fi
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:17775: checking for size_t" >&5
+echo "configure:17780: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17780 "configure"
+#line 17785 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -17804,12 +17809,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:17808: checking for uid_t in sys/types.h" >&5
+echo "configure:17813: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17813 "configure"
+#line 17818 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -17840,12 +17845,12 @@ fi
echo $ac_n "checking for struct sockaddr_storage""... $ac_c" 1>&6
-echo "configure:17844: checking for struct sockaddr_storage" >&5
+echo "configure:17849: checking for struct sockaddr_storage" >&5
if eval "test \"`echo '$''{'ac_cv_sockaddr_storage'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17849 "configure"
+#line 17854 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -17853,7 +17858,7 @@ int main() {
struct sockaddr_storage s; s
; return 0; }
EOF
-if { (eval echo configure:17857: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sockaddr_storage=yes
else
@@ -17874,13 +17879,13 @@ EOF
fi
echo $ac_n "checking for field sa_len in struct sockaddr""... $ac_c" 1>&6
-echo "configure:17878: checking for field sa_len in struct sockaddr" >&5
+echo "configure:17883: checking for field sa_len in struct sockaddr" >&5
if eval "test \"`echo '$''{'ac_cv_sockaddr_sa_len'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17884 "configure"
+#line 17889 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -17888,7 +17893,7 @@ int main() {
static struct sockaddr sa; int n = (int) sa.sa_len; return n;
; return 0; }
EOF
-if { (eval echo configure:17892: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:17897: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_sockaddr_sa_len=yes
else
@@ -17911,12 +17916,12 @@ EOF
echo $ac_n "checking for IPv6 support""... $ac_c" 1>&6
-echo "configure:17915: checking for IPv6 support" >&5
+echo "configure:17920: checking for IPv6 support" >&5
if eval "test \"`echo '$''{'ac_cv_ipv6_support'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17920 "configure"
+#line 17925 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/socket.h>
@@ -17925,7 +17930,7 @@ int main() {
struct sockaddr_in6 s; struct in6_addr t=in6addr_any; int i=AF_INET6; s; t.s6_addr[0] = 0;
; return 0; }
EOF
-if { (eval echo configure:17929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_ipv6_support=yes
else
@@ -17941,12 +17946,12 @@ echo "$ac_t""$ac_cv_ipv6_support" 1>&6
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:17945: checking for vprintf" >&5
+echo "configure:17950: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 17950 "configure"
+#line 17955 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -17969,7 +17974,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:17973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:17978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -17993,12 +17998,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:17997: checking for _doprnt" >&5
+echo "configure:18002: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18002 "configure"
+#line 18007 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -18021,7 +18026,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:18025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -18056,6 +18061,7 @@ ftok \
funopen \
gai_strerror \
gcvt \
+getloadavg \
getlogin \
getprotobyname \
getprotobynumber \
@@ -18072,6 +18078,7 @@ isascii \
link \
localtime_r \
lockf \
+lchown \
lrand48 \
memcpy \
memmove \
@@ -18122,12 +18129,12 @@ vsnprintf \
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18126: checking for $ac_func" >&5
+echo "configure:18133: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18131 "configure"
+#line 18138 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18150,7 +18157,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18154: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18176,25 +18183,25 @@ done
echo $ac_n "checking for getaddrinfo""... $ac_c" 1>&6
-echo "configure:18180: checking for getaddrinfo" >&5
+echo "configure:18187: checking for getaddrinfo" >&5
if eval "test \"`echo '$''{'ac_cv_func_getaddrinfo'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18185 "configure"
+#line 18192 "configure"
#include "confdefs.h"
#include <netdb.h>
int main() {
struct addrinfo *g,h;g=&h;getaddrinfo("","",g,&g);
; return 0; }
EOF
-if { (eval echo configure:18192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18199: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
if test "$cross_compiling" = yes; then
ac_cv_func_getaddrinfo=no
else
cat > conftest.$ac_ext <<EOF
-#line 18198 "configure"
+#line 18205 "configure"
#include "confdefs.h"
#include <netdb.h>
@@ -18234,7 +18241,7 @@ int main(void) {
}
EOF
-if { (eval echo configure:18238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_getaddrinfo=yes
else
@@ -18266,12 +18273,12 @@ fi
for ac_func in strlcat strlcpy getopt
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18270: checking for $ac_func" >&5
+echo "configure:18277: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18275 "configure"
+#line 18282 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18294,7 +18301,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18321,7 +18328,7 @@ done
echo $ac_n "checking whether utime accepts a null argument""... $ac_c" 1>&6
-echo "configure:18325: checking whether utime accepts a null argument" >&5
+echo "configure:18332: checking whether utime accepts a null argument" >&5
if eval "test \"`echo '$''{'ac_cv_func_utime_null'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18331,7 +18338,7 @@ if test "$cross_compiling" = yes; then
ac_cv_func_utime_null=no
else
cat > conftest.$ac_ext <<EOF
-#line 18335 "configure"
+#line 18342 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/stat.h>
@@ -18342,7 +18349,7 @@ exit(!(stat ("conftestdata", &s) == 0 && utime("conftestdata", (long *)0) == 0
&& t.st_mtime - s.st_mtime < 120));
}
EOF
-if { (eval echo configure:18346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_utime_null=yes
else
@@ -18368,19 +18375,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:18372: checking for working alloca.h" >&5
+echo "configure:18379: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18377 "configure"
+#line 18384 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:18384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -18401,12 +18408,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:18405: checking for alloca" >&5
+echo "configure:18412: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18410 "configure"
+#line 18417 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -18434,7 +18441,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:18438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -18466,12 +18473,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:18470: checking whether alloca needs Cray hooks" >&5
+echo "configure:18477: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18475 "configure"
+#line 18482 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -18496,12 +18503,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:18500: checking for $ac_func" >&5
+echo "configure:18507: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18505 "configure"
+#line 18512 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -18524,7 +18531,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:18528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -18551,7 +18558,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:18555: checking stack direction for C alloca" >&5
+echo "configure:18562: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18559,7 +18566,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 18563 "configure"
+#line 18570 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -18578,7 +18585,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:18582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -18601,13 +18608,13 @@ fi
echo $ac_n "checking for declared timezone""... $ac_c" 1>&6
-echo "configure:18605: checking for declared timezone" >&5
+echo "configure:18612: checking for declared timezone" >&5
if eval "test \"`echo '$''{'ac_cv_declared_timezone'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18611 "configure"
+#line 18618 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -18622,7 +18629,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:18626: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:18633: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_declared_timezone=yes
@@ -18648,7 +18655,7 @@ EOF
echo $ac_n "checking for type of reentrant time-related functions""... $ac_c" 1>&6
-echo "configure:18652: checking for type of reentrant time-related functions" >&5
+echo "configure:18659: checking for type of reentrant time-related functions" >&5
if eval "test \"`echo '$''{'ac_cv_time_r_type'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18659,7 +18666,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 18663 "configure"
+#line 18670 "configure"
#include "confdefs.h"
#include <time.h>
@@ -18677,7 +18684,7 @@ return (1);
}
EOF
-if { (eval echo configure:18681: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_time_r_type=hpux
@@ -18693,7 +18700,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 18697 "configure"
+#line 18704 "configure"
#include "confdefs.h"
#include <time.h>
@@ -18709,7 +18716,7 @@ main() {
}
EOF
-if { (eval echo configure:18713: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_time_r_type=irix
@@ -18747,12 +18754,12 @@ EOF
echo $ac_n "checking for readdir_r""... $ac_c" 1>&6
-echo "configure:18751: checking for readdir_r" >&5
+echo "configure:18758: checking for readdir_r" >&5
if eval "test \"`echo '$''{'ac_cv_func_readdir_r'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18756 "configure"
+#line 18763 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char readdir_r(); below. */
@@ -18775,7 +18782,7 @@ readdir_r();
; return 0; }
EOF
-if { (eval echo configure:18779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:18786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_readdir_r=yes"
else
@@ -18797,7 +18804,7 @@ fi
if test "$ac_cv_func_readdir_r" = "yes"; then
echo $ac_n "checking for type of readdir_r""... $ac_c" 1>&6
-echo "configure:18801: checking for type of readdir_r" >&5
+echo "configure:18808: checking for type of readdir_r" >&5
if eval "test \"`echo '$''{'ac_cv_what_readdir_r'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -18808,7 +18815,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 18812 "configure"
+#line 18819 "configure"
#include "confdefs.h"
#define _REENTRANT
@@ -18833,7 +18840,7 @@ main() {
}
EOF
-if { (eval echo configure:18837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:18844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_what_readdir_r=POSIX
@@ -18844,7 +18851,7 @@ else
rm -fr conftest*
cat > conftest.$ac_ext <<EOF
-#line 18848 "configure"
+#line 18855 "configure"
#include "confdefs.h"
#define _REENTRANT
@@ -18854,7 +18861,7 @@ int readdir_r(DIR *, struct dirent *);
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:18858: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:18865: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -18896,12 +18903,12 @@ EOF
echo $ac_n "checking for in_addr_t""... $ac_c" 1>&6
-echo "configure:18900: checking for in_addr_t" >&5
+echo "configure:18907: checking for in_addr_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_in_addr_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 18905 "configure"
+#line 18912 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -18952,7 +18959,7 @@ fi
echo $ac_n "checking whether to include gcov symbols""... $ac_c" 1>&6
-echo "configure:18956: checking whether to include gcov symbols" >&5
+echo "configure:18963: checking whether to include gcov symbols" >&5
# Check whether --enable-gcov or --disable-gcov was given.
if test "${enable_gcov+set}" = set; then
enableval="$enable_gcov"
@@ -18994,7 +19001,7 @@ if test "$PHP_GCOV" = "yes"; then
# Extract the first word of "lcov", so it can be a program name with args.
set dummy lcov; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:18998: checking for $ac_word" >&5
+echo "configure:19005: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LTP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19023,7 +19030,7 @@ fi
# Extract the first word of "genhtml", so it can be a program name with args.
set dummy genhtml; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:19027: checking for $ac_word" >&5
+echo "configure:19034: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LTP_GENHTML'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19058,7 +19065,7 @@ fi
if test "$LTP"; then
echo $ac_n "checking for ltp version""... $ac_c" 1>&6
-echo "configure:19062: checking for ltp version" >&5
+echo "configure:19069: checking for ltp version" >&5
if eval "test \"`echo '$''{'php_cv_ltp_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19112,7 +19119,7 @@ fi
echo $ac_n "checking whether to include debugging symbols""... $ac_c" 1>&6
-echo "configure:19116: checking whether to include debugging symbols" >&5
+echo "configure:19123: checking whether to include debugging symbols" >&5
# Check whether --enable-debug or --disable-debug was given.
if test "${enable_debug+set}" = set; then
enableval="$enable_debug"
@@ -19145,7 +19152,7 @@ fi
echo $ac_n "checking layout of installed files""... $ac_c" 1>&6
-echo "configure:19149: checking layout of installed files" >&5
+echo "configure:19156: checking layout of installed files" >&5
# Check whether --with-layout or --without-layout was given.
if test "${with_layout+set}" = set; then
withval="$with_layout"
@@ -19179,7 +19186,7 @@ esac
echo $ac_n "checking path to configuration file""... $ac_c" 1>&6
-echo "configure:19183: checking path to configuration file" >&5
+echo "configure:19190: checking path to configuration file" >&5
# Check whether --with-config-file-path or --without-config-file-path was given.
if test "${with_config_file_path+set}" = set; then
withval="$with_config_file_path"
@@ -19215,7 +19222,7 @@ fi
echo $ac_n "checking where to scan for configuration files""... $ac_c" 1>&6
-echo "configure:19219: checking where to scan for configuration files" >&5
+echo "configure:19226: checking where to scan for configuration files" >&5
# Check whether --with-config-file-scan-dir or --without-config-file-scan-dir was given.
if test "${with_config_file_scan_dir+set}" = set; then
withval="$with_config_file_scan_dir"
@@ -19245,7 +19252,7 @@ test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
echo $ac_n "checking whether to enable safe mode by default""... $ac_c" 1>&6
-echo "configure:19249: checking whether to enable safe mode by default" >&5
+echo "configure:19256: checking whether to enable safe mode by default" >&5
# Check whether --enable-safe-mode or --disable-safe-mode was given.
if test "${enable_safe_mode+set}" = set; then
enableval="$enable_safe_mode"
@@ -19280,7 +19287,7 @@ EOF
fi
echo $ac_n "checking for safe mode exec dir""... $ac_c" 1>&6
-echo "configure:19284: checking for safe mode exec dir" >&5
+echo "configure:19291: checking for safe mode exec dir" >&5
# Check whether --with-exec-dir or --without-exec-dir was given.
if test "${with_exec_dir+set}" = set; then
withval="$with_exec_dir"
@@ -19321,7 +19328,7 @@ fi
echo $ac_n "checking whether to enable PHP's own SIGCHLD handler""... $ac_c" 1>&6
-echo "configure:19325: checking whether to enable PHP's own SIGCHLD handler" >&5
+echo "configure:19332: checking whether to enable PHP's own SIGCHLD handler" >&5
# Check whether --enable-sigchild or --disable-sigchild was given.
if test "${enable_sigchild+set}" = set; then
enableval="$enable_sigchild"
@@ -19358,7 +19365,7 @@ fi
echo $ac_n "checking whether to enable magic quotes by default""... $ac_c" 1>&6
-echo "configure:19362: checking whether to enable magic quotes by default" >&5
+echo "configure:19369: checking whether to enable magic quotes by default" >&5
# Check whether --enable-magic-quotes or --disable-magic-quotes was given.
if test "${enable_magic_quotes+set}" = set; then
enableval="$enable_magic_quotes"
@@ -19395,7 +19402,7 @@ fi
echo $ac_n "checking whether to enable runpaths""... $ac_c" 1>&6
-echo "configure:19399: checking whether to enable runpaths" >&5
+echo "configure:19406: checking whether to enable runpaths" >&5
# Check whether --enable-rpath or --disable-rpath was given.
if test "${enable_rpath+set}" = set; then
enableval="$enable_rpath"
@@ -19420,7 +19427,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to explicitly link against libgcc""... $ac_c" 1>&6
-echo "configure:19424: checking whether to explicitly link against libgcc" >&5
+echo "configure:19431: checking whether to explicitly link against libgcc" >&5
# Check whether --enable-libgcc or --disable-libgcc was given.
if test "${enable_libgcc+set}" = set; then
enableval="$enable_libgcc"
@@ -19499,7 +19506,7 @@ fi
echo $ac_n "checking whether to enable short tags by default""... $ac_c" 1>&6
-echo "configure:19503: checking whether to enable short tags by default" >&5
+echo "configure:19510: checking whether to enable short tags by default" >&5
# Check whether --enable-short-tags or --disable-short-tags was given.
if test "${enable_short_tags+set}" = set; then
enableval="$enable_short_tags"
@@ -19536,7 +19543,7 @@ fi
echo $ac_n "checking whether to enable dmalloc""... $ac_c" 1>&6
-echo "configure:19540: checking whether to enable dmalloc" >&5
+echo "configure:19547: checking whether to enable dmalloc" >&5
# Check whether --enable-dmalloc or --disable-dmalloc was given.
if test "${enable_dmalloc+set}" = set; then
enableval="$enable_dmalloc"
@@ -19561,7 +19568,7 @@ echo "$ac_t""$ext_output" 1>&6
if test "$PHP_DMALLOC" = "yes"; then
echo $ac_n "checking for dmalloc_error in -ldmalloc""... $ac_c" 1>&6
-echo "configure:19565: checking for dmalloc_error in -ldmalloc" >&5
+echo "configure:19572: checking for dmalloc_error in -ldmalloc" >&5
ac_lib_var=`echo dmalloc'_'dmalloc_error | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -19569,7 +19576,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldmalloc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 19573 "configure"
+#line 19580 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -19580,7 +19587,7 @@ int main() {
dmalloc_error()
; return 0; }
EOF
-if { (eval echo configure:19584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:19591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -19624,7 +19631,7 @@ fi
echo $ac_n "checking whether to enable IPv6 support""... $ac_c" 1>&6
-echo "configure:19628: checking whether to enable IPv6 support" >&5
+echo "configure:19635: checking whether to enable IPv6 support" >&5
# Check whether --enable-ipv6 or --disable-ipv6 was given.
if test "${enable_ipv6+set}" = set; then
enableval="$enable_ipv6"
@@ -19654,7 +19661,7 @@ EOF
fi
echo $ac_n "checking how big to make fd sets""... $ac_c" 1>&6
-echo "configure:19658: checking how big to make fd sets" >&5
+echo "configure:19665: checking how big to make fd sets" >&5
# Check whether --enable-fd-setsize or --disable-fd-setsize was given.
if test "${enable_fd_setsize+set}" = set; then
enableval="$enable_fd_setsize"
@@ -19674,7 +19681,7 @@ fi
echo $ac_n "checking whether to enable versioning""... $ac_c" 1>&6
-echo "configure:19678: checking whether to enable versioning" >&5
+echo "configure:19685: checking whether to enable versioning" >&5
# Check whether --enable-versioning or --disable-versioning was given.
if test "${enable_versioning+set}" = set; then
enableval="$enable_versioning"
@@ -19722,7 +19729,7 @@ fi
echo $ac_n "checking whether to enable LIBXML support""... $ac_c" 1>&6
-echo "configure:19726: checking whether to enable LIBXML support" >&5
+echo "configure:19733: checking whether to enable LIBXML support" >&5
# Check whether --enable-libxml or --disable-libxml was given.
if test "${enable_libxml+set}" = set; then
enableval="$enable_libxml"
@@ -19769,7 +19776,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:19773: checking libxml2 install dir" >&5
+echo "configure:19780: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -19798,7 +19805,7 @@ if test "$PHP_LIBXML" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:19802: checking for xml2-config path" >&5
+echo "configure:19809: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19955,7 +19962,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:19959: checking whether libxml build works" >&5
+echo "configure:19966: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -19971,7 +19978,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 19975 "configure"
+#line 19982 "configure"
#include "confdefs.h"
@@ -19982,7 +19989,7 @@ else
}
EOF
-if { (eval echo configure:19986: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:19993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -20335,7 +20342,7 @@ fi
echo $ac_n "checking for OpenSSL support""... $ac_c" 1>&6
-echo "configure:20339: checking for OpenSSL support" >&5
+echo "configure:20346: checking for OpenSSL support" >&5
# Check whether --with-openssl or --without-openssl was given.
if test "${with_openssl+set}" = set; then
withval="$with_openssl"
@@ -20381,7 +20388,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for Kerberos support""... $ac_c" 1>&6
-echo "configure:20385: checking for Kerberos support" >&5
+echo "configure:20392: checking for Kerberos support" >&5
# Check whether --with-kerberos or --without-kerberos was given.
if test "${with_kerberos+set}" = set; then
withval="$with_kerberos"
@@ -20699,7 +20706,7 @@ EOF
# Extract the first word of "krb5-config", so it can be a program name with args.
set dummy krb5-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:20703: checking for $ac_word" >&5
+echo "configure:20710: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_KRB5_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -21074,7 +21081,7 @@ fi
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:21078: checking for $ac_word" >&5
+echo "configure:21085: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -21278,9 +21285,9 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$OPENSSL_INCDIR
echo $ac_n "checking for OpenSSL version""... $ac_c" 1>&6
-echo "configure:21282: checking for OpenSSL version" >&5
+echo "configure:21289: checking for OpenSSL version" >&5
cat > conftest.$ac_ext <<EOF
-#line 21284 "configure"
+#line 21291 "configure"
#include "confdefs.h"
#include <openssl/opensslv.h>
@@ -21434,7 +21441,7 @@ rm -f conftest*
done
echo $ac_n "checking for CRYPTO_free in -lcrypto""... $ac_c" 1>&6
-echo "configure:21438: checking for CRYPTO_free in -lcrypto" >&5
+echo "configure:21445: checking for CRYPTO_free in -lcrypto" >&5
ac_lib_var=`echo crypto'_'CRYPTO_free | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -21442,7 +21449,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypto $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 21446 "configure"
+#line 21453 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -21453,7 +21460,7 @@ int main() {
CRYPTO_free()
; return 0; }
EOF
-if { (eval echo configure:21457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21464: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -21609,7 +21616,7 @@ fi
done
echo $ac_n "checking for SSL_CTX_set_ssl_version in -lssl""... $ac_c" 1>&6
-echo "configure:21613: checking for SSL_CTX_set_ssl_version in -lssl" >&5
+echo "configure:21620: checking for SSL_CTX_set_ssl_version in -lssl" >&5
ac_lib_var=`echo ssl'_'SSL_CTX_set_ssl_version | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -21617,7 +21624,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lssl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 21621 "configure"
+#line 21628 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -21628,7 +21635,7 @@ int main() {
SSL_CTX_set_ssl_version()
; return 0; }
EOF
-if { (eval echo configure:21632: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:21639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -21748,7 +21755,7 @@ fi
echo $ac_n "checking for PCRE support""... $ac_c" 1>&6
-echo "configure:21752: checking for PCRE support" >&5
+echo "configure:21759: checking for PCRE support" >&5
# Check whether --with-pcre-regex or --without-pcre-regex was given.
if test "${with_pcre_regex+set}" = set; then
withval="$with_pcre_regex"
@@ -21797,7 +21804,7 @@ if test "$PHP_PCRE_REGEX" != "no"; then
ext_builddir=ext/pcre
ext_srcdir=$abs_srcdir/ext/pcre
- ac_extra=`echo "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -I@ext_srcdir@/pcrelib"|$SED s#@ext_srcdir@#$ext_srcdir#g|$SED s#@ext_builddir@#$ext_builddir#g`
+ ac_extra=`echo "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=10000000 -I@ext_srcdir@/pcrelib"|$SED s#@ext_srcdir@#$ext_srcdir#g|$SED s#@ext_builddir@#$ext_builddir#g`
if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" != "cli"; then
PHP_PCRE_SHARED=no
@@ -21821,7 +21828,7 @@ if test "$PHP_PCRE_REGEX" != "no"; then
old_IFS=$IFS
- for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_printint.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_ucp_findchar.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
+ for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_ucp_searchfuncs.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
IFS=.
set $ac_src
@@ -21870,7 +21877,7 @@ EOF
old_IFS=$IFS
- for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_printint.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_ucp_findchar.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
+ for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_ucp_searchfuncs.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
IFS=.
set $ac_src
@@ -21990,7 +21997,7 @@ EOF
old_IFS=$IFS
- for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_printint.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_ucp_findchar.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
+ for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_ucp_searchfuncs.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
IFS=.
set $ac_src
@@ -22035,7 +22042,7 @@ EOF
old_IFS=$IFS
- for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_printint.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_ucp_findchar.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
+ for ac_src in pcrelib/pcre_chartables.c pcrelib/pcre_ucp_searchfuncs.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c; do
IFS=.
set $ac_src
@@ -22269,7 +22276,7 @@ EOF
ext_builddir=ext/pcre
ext_srcdir=$abs_srcdir/ext/pcre
- ac_extra=`echo "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000"|$SED s#@ext_srcdir@#$ext_srcdir#g|$SED s#@ext_builddir@#$ext_builddir#g`
+ ac_extra=`echo "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=10000000"|$SED s#@ext_srcdir@#$ext_srcdir#g|$SED s#@ext_builddir@#$ext_builddir#g`
if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" != "cli"; then
PHP_PCRE_SHARED=no
@@ -22556,7 +22563,7 @@ fi
echo $ac_n "checking for ZLIB support""... $ac_c" 1>&6
-echo "configure:22560: checking for ZLIB support" >&5
+echo "configure:22567: checking for ZLIB support" >&5
# Check whether --with-zlib or --without-zlib was given.
if test "${with_zlib+set}" = set; then
withval="$with_zlib"
@@ -22602,7 +22609,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking if the location of ZLIB install directory is defined""... $ac_c" 1>&6
-echo "configure:22606: checking if the location of ZLIB install directory is defined" >&5
+echo "configure:22613: checking if the location of ZLIB install directory is defined" >&5
# Check whether --with-zlib-dir or --without-zlib-dir was given.
if test "${with_zlib_dir+set}" = set; then
withval="$with_zlib_dir"
@@ -23036,7 +23043,7 @@ EOF
done
echo $ac_n "checking for gzgets in -lz""... $ac_c" 1>&6
-echo "configure:23040: checking for gzgets in -lz" >&5
+echo "configure:23047: checking for gzgets in -lz" >&5
ac_lib_var=`echo z'_'gzgets | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -23044,7 +23051,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lz $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 23048 "configure"
+#line 23055 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -23055,7 +23062,7 @@ int main() {
gzgets()
; return 0; }
EOF
-if { (eval echo configure:23059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23066: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -23193,7 +23200,7 @@ fi
echo $ac_n "checking whether to enable bc style precision math functions""... $ac_c" 1>&6
-echo "configure:23197: checking whether to enable bc style precision math functions" >&5
+echo "configure:23204: checking whether to enable bc style precision math functions" >&5
# Check whether --enable-bcmath or --disable-bcmath was given.
if test "${enable_bcmath+set}" = set; then
enableval="$enable_bcmath"
@@ -23549,7 +23556,7 @@ fi
echo $ac_n "checking for BZip2 support""... $ac_c" 1>&6
-echo "configure:23553: checking for BZip2 support" >&5
+echo "configure:23560: checking for BZip2 support" >&5
# Check whether --with-bz2 or --without-bz2 was given.
if test "${with_bz2+set}" = set; then
withval="$with_bz2"
@@ -23597,7 +23604,7 @@ if test "$PHP_BZ2" != "no"; then
BZIP_DIR=$PHP_BZ2
else
echo $ac_n "checking for BZip2 in default path""... $ac_c" 1>&6
-echo "configure:23601: checking for BZip2 in default path" >&5
+echo "configure:23608: checking for BZip2 in default path" >&5
for i in /usr/local /usr; do
if test -r $i/include/bzlib.h; then
BZIP_DIR=$i
@@ -23709,7 +23716,7 @@ echo "configure:23601: checking for BZip2 in default path" >&5
done
echo $ac_n "checking for BZ2_bzerror in -lbz2""... $ac_c" 1>&6
-echo "configure:23713: checking for BZ2_bzerror in -lbz2" >&5
+echo "configure:23720: checking for BZ2_bzerror in -lbz2" >&5
ac_lib_var=`echo bz2'_'BZ2_bzerror | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -23717,7 +23724,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbz2 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 23721 "configure"
+#line 23728 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -23728,7 +23735,7 @@ int main() {
BZ2_bzerror()
; return 0; }
EOF
-if { (eval echo configure:23732: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:23739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -24183,7 +24190,7 @@ fi
echo $ac_n "checking whether to enable calendar conversion support""... $ac_c" 1>&6
-echo "configure:24187: checking whether to enable calendar conversion support" >&5
+echo "configure:24194: checking whether to enable calendar conversion support" >&5
# Check whether --enable-calendar or --disable-calendar was given.
if test "${enable_calendar+set}" = set; then
enableval="$enable_calendar"
@@ -24518,7 +24525,7 @@ fi
echo $ac_n "checking whether to enable ctype functions""... $ac_c" 1>&6
-echo "configure:24522: checking whether to enable ctype functions" >&5
+echo "configure:24529: checking whether to enable ctype functions" >&5
# Check whether --enable-ctype or --disable-ctype was given.
if test "${enable_ctype+set}" = set; then
enableval="$enable_ctype"
@@ -24853,7 +24860,7 @@ fi
echo $ac_n "checking for CURL support""... $ac_c" 1>&6
-echo "configure:24857: checking for CURL support" >&5
+echo "configure:24864: checking for CURL support" >&5
# Check whether --with-curl or --without-curl was given.
if test "${with_curl+set}" = set; then
withval="$with_curl"
@@ -24899,7 +24906,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking if we should use CURL for url streams""... $ac_c" 1>&6
-echo "configure:24903: checking if we should use CURL for url streams" >&5
+echo "configure:24910: checking if we should use CURL for url streams" >&5
# Check whether --with-curlwrappers or --without-curlwrappers was given.
if test "${with_curlwrappers+set}" = set; then
withval="$with_curlwrappers"
@@ -24926,7 +24933,7 @@ if test "$PHP_CURL" != "no"; then
CURL_DIR=$PHP_CURL
else
echo $ac_n "checking for CURL in default path""... $ac_c" 1>&6
-echo "configure:24930: checking for CURL in default path" >&5
+echo "configure:24937: checking for CURL in default path" >&5
for i in /usr/local /usr; do
if test -r $i/include/curl/easy.h; then
CURL_DIR=$i
@@ -24944,7 +24951,7 @@ echo "configure:24930: checking for CURL in default path" >&5
CURL_CONFIG="curl-config"
echo $ac_n "checking for cURL 7.10.5 or greater""... $ac_c" 1>&6
-echo "configure:24948: checking for cURL 7.10.5 or greater" >&5
+echo "configure:24955: checking for cURL 7.10.5 or greater" >&5
if ${CURL_DIR}/bin/curl-config --libs > /dev/null 2>&1; then
CURL_CONFIG=${CURL_DIR}/bin/curl-config
@@ -24964,7 +24971,7 @@ echo "configure:24948: checking for cURL 7.10.5 or greater" >&5
fi
echo $ac_n "checking for SSL support in libcurl""... $ac_c" 1>&6
-echo "configure:24968: checking for SSL support in libcurl" >&5
+echo "configure:24975: checking for SSL support in libcurl" >&5
CURL_SSL=`$CURL_CONFIG --feature | $EGREP SSL`
if test "$CURL_SSL" = "SSL"; then
echo "$ac_t""yes" 1>&6
@@ -24974,7 +24981,7 @@ EOF
echo $ac_n "checking for SSL library used""... $ac_c" 1>&6
-echo "configure:24978: checking for SSL library used" >&5
+echo "configure:24985: checking for SSL library used" >&5
CURL_SSL_FLAVOUR=
for i in $CURL_LIBS; do
if test "$i" = "-lssl"; then
@@ -24988,17 +24995,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:24992: checking for $ac_hdr" >&5
+echo "configure:24999: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 24997 "configure"
+#line 25004 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:25002: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:25009: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -25036,17 +25043,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:25040: checking for $ac_hdr" >&5
+echo "configure:25047: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 25045 "configure"
+#line 25052 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:25050: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:25057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -25397,7 +25404,7 @@ done
done
echo $ac_n "checking for curl_easy_perform in -lcurl""... $ac_c" 1>&6
-echo "configure:25401: checking for curl_easy_perform in -lcurl" >&5
+echo "configure:25408: checking for curl_easy_perform in -lcurl" >&5
ac_lib_var=`echo curl'_'curl_easy_perform | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -25405,7 +25412,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 25409 "configure"
+#line 25416 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -25416,7 +25423,7 @@ int main() {
curl_easy_perform()
; return 0; }
EOF
-if { (eval echo configure:25420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:25427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -25551,7 +25558,7 @@ fi
done
echo $ac_n "checking for curl_version_info in -lcurl""... $ac_c" 1>&6
-echo "configure:25555: checking for curl_version_info in -lcurl" >&5
+echo "configure:25562: checking for curl_version_info in -lcurl" >&5
ac_lib_var=`echo curl'_'curl_version_info | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -25559,7 +25566,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcurl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 25563 "configure"
+#line 25570 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -25570,7 +25577,7 @@ int main() {
curl_version_info()
; return 0; }
EOF
-if { (eval echo configure:25574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:25581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -25904,7 +25911,7 @@ fi
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:25908: checking size of long" >&5
+echo "configure:25915: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -25912,7 +25919,7 @@ else
ac_cv_sizeof_long=8
else
cat > conftest.$ac_ext <<EOF
-#line 25916 "configure"
+#line 25923 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -25923,7 +25930,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:25927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:25934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long=`cat conftestval`
else
@@ -25943,7 +25950,7 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:25947: checking size of int" >&5
+echo "configure:25954: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -25951,7 +25958,7 @@ else
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 25955 "configure"
+#line 25962 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -25962,7 +25969,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:25966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:25973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_int=`cat conftestval`
else
@@ -25983,13 +25990,13 @@ EOF
echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:25987: checking for int32_t" >&5
+echo "configure:25994: checking for int32_t" >&5
if eval "test \"`echo '$''{'ac_cv_int_type_int32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 25993 "configure"
+#line 26000 "configure"
#include "confdefs.h"
#if HAVE_SYS_TYPES_H
@@ -26008,7 +26015,7 @@ if (sizeof (int32_t))
; return 0; }
EOF
-if { (eval echo configure:26012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:26019: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_int_type_int32_t=yes
else
@@ -26031,13 +26038,13 @@ fi
echo $ac_n "checking for uint32_t""... $ac_c" 1>&6
-echo "configure:26035: checking for uint32_t" >&5
+echo "configure:26042: checking for uint32_t" >&5
if eval "test \"`echo '$''{'ac_cv_int_type_uint32_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 26041 "configure"
+#line 26048 "configure"
#include "confdefs.h"
#if HAVE_SYS_TYPES_H
@@ -26056,7 +26063,7 @@ if (sizeof (uint32_t))
; return 0; }
EOF
-if { (eval echo configure:26060: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:26067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_int_type_uint32_t=yes
else
@@ -26088,17 +26095,17 @@ stdlib.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:26092: checking for $ac_hdr" >&5
+echo "configure:26099: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 26097 "configure"
+#line 26104 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:26102: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:26109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -26128,12 +26135,12 @@ done
for ac_func in strtoll atoll strftime
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:26132: checking for $ac_func" >&5
+echo "configure:26139: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 26137 "configure"
+#line 26144 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -26156,7 +26163,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:26160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:26167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -26583,7 +26590,7 @@ EOF
echo $ac_n "checking whether to enable DBA""... $ac_c" 1>&6
-echo "configure:26587: checking whether to enable DBA" >&5
+echo "configure:26594: checking whether to enable DBA" >&5
# Check whether --enable-dba or --disable-dba was given.
if test "${enable_dba+set}" = set; then
enableval="$enable_dba"
@@ -26739,7 +26746,7 @@ if test "${with_qdbm+set}" = set; then
done
echo $ac_n "checking for dpopen in -l$LIB""... $ac_c" 1>&6
-echo "configure:26743: checking for dpopen in -l$LIB" >&5
+echo "configure:26750: checking for dpopen in -l$LIB" >&5
ac_lib_var=`echo $LIB'_'dpopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -26747,7 +26754,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 26751 "configure"
+#line 26758 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -26758,7 +26765,7 @@ int main() {
dpopen()
; return 0; }
EOF
-if { (eval echo configure:26762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:26769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -26929,7 +26936,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:26933: checking for $THIS_FULL_NAME support" >&5
+echo "configure:26940: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -26960,7 +26967,7 @@ if test "${with_gdbm+set}" = set; then
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:26964: checking for $THIS_FULL_NAME support" >&5
+echo "configure:26971: checking for $THIS_FULL_NAME support" >&5
if test -n "You cannot combine --with-gdbm with --with-qdbm"; then
{ echo "configure: error: You cannot combine --with-gdbm with --with-qdbm" 1>&2; exit 1; }
fi
@@ -27078,7 +27085,7 @@ echo "configure:26964: checking for $THIS_FULL_NAME support" >&5
done
echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:27082: checking for gdbm_open in -lgdbm" >&5
+echo "configure:27089: checking for gdbm_open in -lgdbm" >&5
ac_lib_var=`echo gdbm'_'gdbm_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -27086,7 +27093,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgdbm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 27090 "configure"
+#line 27097 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -27097,7 +27104,7 @@ int main() {
gdbm_open()
; return 0; }
EOF
-if { (eval echo configure:27101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:27108: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -27264,7 +27271,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:27268: checking for $THIS_FULL_NAME support" >&5
+echo "configure:27275: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -27395,7 +27402,7 @@ if test "${with_ndbm+set}" = set; then
done
echo $ac_n "checking for dbm_open in -l$LIB""... $ac_c" 1>&6
-echo "configure:27399: checking for dbm_open in -l$LIB" >&5
+echo "configure:27406: checking for dbm_open in -l$LIB" >&5
ac_lib_var=`echo $LIB'_'dbm_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -27403,7 +27410,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 27407 "configure"
+#line 27414 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -27414,7 +27421,7 @@ int main() {
dbm_open()
; return 0; }
EOF
-if { (eval echo configure:27418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:27425: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -27585,7 +27592,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:27589: checking for $THIS_FULL_NAME support" >&5
+echo "configure:27596: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -27642,7 +27649,7 @@ if test "${with_db4+set}" = set; then
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 27646 "configure"
+#line 27653 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -27653,11 +27660,11 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:27657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:27664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 27661 "configure"
+#line 27668 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -27690,14 +27697,14 @@ rm -f conftest*
done
if test -z "$THIS_LIBS"; then
echo $ac_n "checking for db4 major version""... $ac_c" 1>&6
-echo "configure:27694: checking for db4 major version" >&5
+echo "configure:27701: checking for db4 major version" >&5
{ echo "configure: error: Header contains different version" 1>&2; exit 1; }
fi
if test "4" = "4"; then
echo $ac_n "checking for db4 minor version and patch level""... $ac_c" 1>&6
-echo "configure:27699: checking for db4 minor version and patch level" >&5
+echo "configure:27706: checking for db4 minor version and patch level" >&5
cat > conftest.$ac_ext <<EOF
-#line 27701 "configure"
+#line 27708 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -27723,9 +27730,9 @@ rm -f conftest*
fi
if test "$ext_shared" = "yes"; then
echo $ac_n "checking if dba can be used as shared extension""... $ac_c" 1>&6
-echo "configure:27727: checking if dba can be used as shared extension" >&5
+echo "configure:27734: checking if dba can be used as shared extension" >&5
cat > conftest.$ac_ext <<EOF
-#line 27729 "configure"
+#line 27736 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -27890,7 +27897,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:27894: checking for $THIS_FULL_NAME support" >&5
+echo "configure:27901: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -27921,7 +27928,7 @@ if test "${with_db3+set}" = set; then
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:27925: checking for $THIS_FULL_NAME support" >&5
+echo "configure:27932: checking for $THIS_FULL_NAME support" >&5
if test -n "You cannot combine --with-db3 with --with-db4"; then
{ echo "configure: error: You cannot combine --with-db3 with --with-db4" 1>&2; exit 1; }
fi
@@ -27968,7 +27975,7 @@ echo "configure:27925: checking for $THIS_FULL_NAME support" >&5
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 27972 "configure"
+#line 27979 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -27979,11 +27986,11 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:27983: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:27990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 27987 "configure"
+#line 27994 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28016,14 +28023,14 @@ rm -f conftest*
done
if test -z "$THIS_LIBS"; then
echo $ac_n "checking for db3 major version""... $ac_c" 1>&6
-echo "configure:28020: checking for db3 major version" >&5
+echo "configure:28027: checking for db3 major version" >&5
{ echo "configure: error: Header contains different version" 1>&2; exit 1; }
fi
if test "3" = "4"; then
echo $ac_n "checking for db4 minor version and patch level""... $ac_c" 1>&6
-echo "configure:28025: checking for db4 minor version and patch level" >&5
+echo "configure:28032: checking for db4 minor version and patch level" >&5
cat > conftest.$ac_ext <<EOF
-#line 28027 "configure"
+#line 28034 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28049,9 +28056,9 @@ rm -f conftest*
fi
if test "$ext_shared" = "yes"; then
echo $ac_n "checking if dba can be used as shared extension""... $ac_c" 1>&6
-echo "configure:28053: checking if dba can be used as shared extension" >&5
+echo "configure:28060: checking if dba can be used as shared extension" >&5
cat > conftest.$ac_ext <<EOF
-#line 28055 "configure"
+#line 28062 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28216,7 +28223,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:28220: checking for $THIS_FULL_NAME support" >&5
+echo "configure:28227: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -28247,7 +28254,7 @@ if test "${with_db2+set}" = set; then
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:28251: checking for $THIS_FULL_NAME support" >&5
+echo "configure:28258: checking for $THIS_FULL_NAME support" >&5
if test -n "You cannot combine --with-db2 with --with-db3 or --with-db4"; then
{ echo "configure: error: You cannot combine --with-db2 with --with-db3 or --with-db4" 1>&2; exit 1; }
fi
@@ -28294,7 +28301,7 @@ echo "configure:28251: checking for $THIS_FULL_NAME support" >&5
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 28298 "configure"
+#line 28305 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28305,11 +28312,11 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:28309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:28316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cat > conftest.$ac_ext <<EOF
-#line 28313 "configure"
+#line 28320 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28342,14 +28349,14 @@ rm -f conftest*
done
if test -z "$THIS_LIBS"; then
echo $ac_n "checking for db2 major version""... $ac_c" 1>&6
-echo "configure:28346: checking for db2 major version" >&5
+echo "configure:28353: checking for db2 major version" >&5
{ echo "configure: error: Header contains different version" 1>&2; exit 1; }
fi
if test "2" = "4"; then
echo $ac_n "checking for db4 minor version and patch level""... $ac_c" 1>&6
-echo "configure:28351: checking for db4 minor version and patch level" >&5
+echo "configure:28358: checking for db4 minor version and patch level" >&5
cat > conftest.$ac_ext <<EOF
-#line 28353 "configure"
+#line 28360 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28375,9 +28382,9 @@ rm -f conftest*
fi
if test "$ext_shared" = "yes"; then
echo $ac_n "checking if dba can be used as shared extension""... $ac_c" 1>&6
-echo "configure:28379: checking if dba can be used as shared extension" >&5
+echo "configure:28386: checking if dba can be used as shared extension" >&5
cat > conftest.$ac_ext <<EOF
-#line 28381 "configure"
+#line 28388 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28542,7 +28549,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:28546: checking for $THIS_FULL_NAME support" >&5
+echo "configure:28553: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -28565,7 +28572,7 @@ if test "${with_db1+set}" = set; then
unset THIS_INCLUDE THIS_LIBS THIS_LFLAGS THIS_PREFIX THIS_RESULT
echo $ac_n "checking for DB1 in library""... $ac_c" 1>&6
-echo "configure:28569: checking for DB1 in library" >&5
+echo "configure:28576: checking for DB1 in library" >&5
if test "$HAVE_DB4" = "1"; then
THIS_VERSION=4
THIS_LIBS=$DB4_LIBS
@@ -28613,7 +28620,7 @@ EOF
fi
echo "$ac_t""$THIS_LIBS" 1>&6
echo $ac_n "checking for DB1 in header""... $ac_c" 1>&6
-echo "configure:28617: checking for DB1 in header" >&5
+echo "configure:28624: checking for DB1 in header" >&5
echo "$ac_t""$THIS_INCLUDE" 1>&6
if test -n "$THIS_INCLUDE"; then
@@ -28623,7 +28630,7 @@ echo "configure:28617: checking for DB1 in header" >&5
LIBS="-l$THIS_LIBS $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 28627 "configure"
+#line 28634 "configure"
#include "confdefs.h"
#include "$THIS_INCLUDE"
@@ -28634,7 +28641,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:28638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:28645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
cat >> confdefs.h <<EOF
@@ -28786,7 +28793,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:28790: checking for $THIS_FULL_NAME support" >&5
+echo "configure:28797: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -28817,7 +28824,7 @@ if test "${with_dbm+set}" = set; then
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:28821: checking for $THIS_FULL_NAME support" >&5
+echo "configure:28828: checking for $THIS_FULL_NAME support" >&5
if test -n "You cannot combine --with-dbm with --with-qdbm"; then
{ echo "configure: error: You cannot combine --with-dbm with --with-qdbm" 1>&2; exit 1; }
fi
@@ -28940,7 +28947,7 @@ echo "configure:28821: checking for $THIS_FULL_NAME support" >&5
done
echo $ac_n "checking for dbminit in -l$LIB""... $ac_c" 1>&6
-echo "configure:28944: checking for dbminit in -l$LIB" >&5
+echo "configure:28951: checking for dbminit in -l$LIB" >&5
ac_lib_var=`echo $LIB'_'dbminit | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -28948,7 +28955,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 28952 "configure"
+#line 28959 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -28959,7 +28966,7 @@ int main() {
dbminit()
; return 0; }
EOF
-if { (eval echo configure:28963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:28970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -28979,7 +28986,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
ext_shared=$save_ext_shared
echo $ac_n "checking for DBM using GDBM""... $ac_c" 1>&6
-echo "configure:28983: checking for DBM using GDBM" >&5
+echo "configure:28990: checking for DBM using GDBM" >&5
cat >> confdefs.h <<EOF
#define DBM_INCLUDE_FILE "$THIS_INCLUDE"
EOF
@@ -29145,7 +29152,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:29149: checking for $THIS_FULL_NAME support" >&5
+echo "configure:29156: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -29291,7 +29298,7 @@ EOF
done
echo $ac_n "checking for cdb_read in -l$LIB""... $ac_c" 1>&6
-echo "configure:29295: checking for cdb_read in -l$LIB" >&5
+echo "configure:29302: checking for cdb_read in -l$LIB" >&5
ac_lib_var=`echo $LIB'_'cdb_read | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -29299,7 +29306,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 29303 "configure"
+#line 29310 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -29310,7 +29317,7 @@ int main() {
cdb_read()
; return 0; }
EOF
-if { (eval echo configure:29314: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:29321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -29502,7 +29509,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:29506: checking for $THIS_FULL_NAME support" >&5
+echo "configure:29513: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -29556,7 +29563,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:29560: checking for $THIS_FULL_NAME support" >&5
+echo "configure:29567: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -29610,7 +29617,7 @@ fi
THIS_FULL_NAME="$THIS_NAME"
fi
echo $ac_n "checking for $THIS_FULL_NAME support""... $ac_c" 1>&6
-echo "configure:29614: checking for $THIS_FULL_NAME support" >&5
+echo "configure:29621: checking for $THIS_FULL_NAME support" >&5
if test -n ""; then
{ echo "configure: error: " 1>&2; exit 1; }
fi
@@ -29625,7 +29632,7 @@ echo "configure:29614: checking for $THIS_FULL_NAME support" >&5
echo $ac_n "checking whether to enable DBA interface""... $ac_c" 1>&6
-echo "configure:29629: checking whether to enable DBA interface" >&5
+echo "configure:29636: checking whether to enable DBA interface" >&5
if test "$HAVE_DBA" = "1"; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
@@ -29939,7 +29946,7 @@ fi
echo $ac_n "checking whether to enable dbase support""... $ac_c" 1>&6
-echo "configure:29943: checking whether to enable dbase support" >&5
+echo "configure:29950: checking whether to enable dbase support" >&5
# Check whether --enable-dbase or --disable-dbase was given.
if test "${enable_dbase+set}" = set; then
enableval="$enable_dbase"
@@ -30274,7 +30281,7 @@ fi
echo $ac_n "checking whether to enable DOM support""... $ac_c" 1>&6
-echo "configure:30278: checking whether to enable DOM support" >&5
+echo "configure:30285: checking whether to enable DOM support" >&5
# Check whether --enable-dom or --disable-dom was given.
if test "${enable_dom+set}" = set; then
enableval="$enable_dom"
@@ -30321,7 +30328,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:30325: checking libxml2 install dir" >&5
+echo "configure:30332: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -30352,7 +30359,7 @@ if test "$PHP_DOM" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:30356: checking for xml2-config path" >&5
+echo "configure:30363: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -30509,7 +30516,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:30513: checking whether libxml build works" >&5
+echo "configure:30520: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -30525,7 +30532,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 30529 "configure"
+#line 30536 "configure"
#include "confdefs.h"
@@ -30536,7 +30543,7 @@ else
}
EOF
-if { (eval echo configure:30540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:30547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -30916,6 +30923,7 @@ EOF
am_i_shared=$PHP_DOM_SHARED
is_it_shared=$PHP_LIBXML_SHARED
+ is_it_enabled=$PHP_LIBXML
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension dom to build statically, but it
@@ -30924,7 +30932,7 @@ You either need to build dom shared or build libxml statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension dom, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
@@ -30946,7 +30954,7 @@ fi
echo $ac_n "checking whether to enable EXIF (metadata from images) support""... $ac_c" 1>&6
-echo "configure:30950: checking whether to enable EXIF (metadata from images) support" >&5
+echo "configure:30958: checking whether to enable EXIF (metadata from images) support" >&5
# Check whether --enable-exif or --disable-exif was given.
if test "${enable_exif+set}" = set; then
enableval="$enable_exif"
@@ -31281,7 +31289,7 @@ fi
echo $ac_n "checking for FrontBase SQL92 (fbsql) support""... $ac_c" 1>&6
-echo "configure:31285: checking for FrontBase SQL92 (fbsql) support" >&5
+echo "configure:31293: checking for FrontBase SQL92 (fbsql) support" >&5
# Check whether --with-fbsql or --without-fbsql was given.
if test "${with_fbsql+set}" = set; then
withval="$with_fbsql"
@@ -31775,7 +31783,7 @@ fi
echo $ac_n "checking for FDF support""... $ac_c" 1>&6
-echo "configure:31779: checking for FDF support" >&5
+echo "configure:31787: checking for FDF support" >&5
# Check whether --with-fdftk or --without-fdftk was given.
if test "${with_fdftk+set}" = set; then
withval="$with_fdftk"
@@ -31992,7 +32000,7 @@ EOF
done
echo $ac_n "checking for FDFOpen in -l$file""... $ac_c" 1>&6
-echo "configure:31996: checking for FDFOpen in -l$file" >&5
+echo "configure:32004: checking for FDFOpen in -l$file" >&5
ac_lib_var=`echo $file'_'FDFOpen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -32000,7 +32008,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$file $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 32004 "configure"
+#line 32012 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -32011,7 +32019,7 @@ int main() {
FDFOpen()
; return 0; }
EOF
-if { (eval echo configure:32015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:32023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -32137,7 +32145,7 @@ fi
done
echo $ac_n "checking for FDFGetFDFVersion in -l$file""... $ac_c" 1>&6
-echo "configure:32141: checking for FDFGetFDFVersion in -l$file" >&5
+echo "configure:32149: checking for FDFGetFDFVersion in -l$file" >&5
ac_lib_var=`echo $file'_'FDFGetFDFVersion | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -32145,7 +32153,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$file $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 32149 "configure"
+#line 32157 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -32156,7 +32164,7 @@ int main() {
FDFGetFDFVersion()
; return 0; }
EOF
-if { (eval echo configure:32160: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:32168: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -32591,7 +32599,7 @@ fi
echo $ac_n "checking whether to enable the bundled filePro support""... $ac_c" 1>&6
-echo "configure:32595: checking whether to enable the bundled filePro support" >&5
+echo "configure:32603: checking whether to enable the bundled filePro support" >&5
# Check whether --enable-filepro or --disable-filepro was given.
if test "${enable_filepro+set}" = set; then
enableval="$enable_filepro"
@@ -32926,7 +32934,7 @@ fi
echo $ac_n "checking whether to enable FTP support""... $ac_c" 1>&6
-echo "configure:32930: checking whether to enable FTP support" >&5
+echo "configure:32938: checking whether to enable FTP support" >&5
# Check whether --enable-ftp or --disable-ftp was given.
if test "${enable_ftp+set}" = set; then
enableval="$enable_ftp"
@@ -32972,7 +32980,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking OpenSSL dir for FTP""... $ac_c" 1>&6
-echo "configure:32976: checking OpenSSL dir for FTP" >&5
+echo "configure:32984: checking OpenSSL dir for FTP" >&5
# Check whether --with-openssl-dir or --without-openssl-dir was given.
if test "${with_openssl_dir+set}" = set; then
withval="$with_openssl_dir"
@@ -33302,7 +33310,7 @@ EOF
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:33306: checking for $ac_word" >&5
+echo "configure:33314: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -33506,9 +33514,9 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$OPENSSL_INCDIR
echo $ac_n "checking for OpenSSL version""... $ac_c" 1>&6
-echo "configure:33510: checking for OpenSSL version" >&5
+echo "configure:33518: checking for OpenSSL version" >&5
cat > conftest.$ac_ext <<EOF
-#line 33512 "configure"
+#line 33520 "configure"
#include "confdefs.h"
#include <openssl/opensslv.h>
@@ -33662,7 +33670,7 @@ rm -f conftest*
done
echo $ac_n "checking for CRYPTO_free in -lcrypto""... $ac_c" 1>&6
-echo "configure:33666: checking for CRYPTO_free in -lcrypto" >&5
+echo "configure:33674: checking for CRYPTO_free in -lcrypto" >&5
ac_lib_var=`echo crypto'_'CRYPTO_free | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -33670,7 +33678,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypto $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 33674 "configure"
+#line 33682 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -33681,7 +33689,7 @@ int main() {
CRYPTO_free()
; return 0; }
EOF
-if { (eval echo configure:33685: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:33693: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -33837,7 +33845,7 @@ fi
done
echo $ac_n "checking for SSL_CTX_set_ssl_version in -lssl""... $ac_c" 1>&6
-echo "configure:33841: checking for SSL_CTX_set_ssl_version in -lssl" >&5
+echo "configure:33849: checking for SSL_CTX_set_ssl_version in -lssl" >&5
ac_lib_var=`echo ssl'_'SSL_CTX_set_ssl_version | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -33845,7 +33853,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lssl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 33849 "configure"
+#line 33857 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -33856,7 +33864,7 @@ int main() {
SSL_CTX_set_ssl_version()
; return 0; }
EOF
-if { (eval echo configure:33860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:33868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -33973,7 +33981,7 @@ fi
echo $ac_n "checking for GD support""... $ac_c" 1>&6
-echo "configure:33977: checking for GD support" >&5
+echo "configure:33985: checking for GD support" >&5
# Check whether --with-gd or --without-gd was given.
if test "${with_gd+set}" = set; then
withval="$with_gd"
@@ -34020,7 +34028,7 @@ if test -z "$PHP_JPEG_DIR"; then
echo $ac_n "checking for the location of libjpeg""... $ac_c" 1>&6
-echo "configure:34024: checking for the location of libjpeg" >&5
+echo "configure:34032: checking for the location of libjpeg" >&5
# Check whether --with-jpeg-dir or --without-jpeg-dir was given.
if test "${with_jpeg_dir+set}" = set; then
withval="$with_jpeg_dir"
@@ -34047,7 +34055,7 @@ if test -z "$PHP_PNG_DIR"; then
echo $ac_n "checking for the location of libpng""... $ac_c" 1>&6
-echo "configure:34051: checking for the location of libpng" >&5
+echo "configure:34059: checking for the location of libpng" >&5
# Check whether --with-png-dir or --without-png-dir was given.
if test "${with_png_dir+set}" = set; then
withval="$with_png_dir"
@@ -34074,7 +34082,7 @@ if test -z "$PHP_ZLIB_DIR"; then
echo $ac_n "checking for the location of libz""... $ac_c" 1>&6
-echo "configure:34078: checking for the location of libz" >&5
+echo "configure:34086: checking for the location of libz" >&5
# Check whether --with-zlib-dir or --without-zlib-dir was given.
if test "${with_zlib_dir+set}" = set; then
withval="$with_zlib_dir"
@@ -34100,7 +34108,7 @@ fi
echo $ac_n "checking for the location of libXpm""... $ac_c" 1>&6
-echo "configure:34104: checking for the location of libXpm" >&5
+echo "configure:34112: checking for the location of libXpm" >&5
# Check whether --with-xpm-dir or --without-xpm-dir was given.
if test "${with_xpm_dir+set}" = set; then
withval="$with_xpm_dir"
@@ -34125,7 +34133,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for FreeType 1.x support""... $ac_c" 1>&6
-echo "configure:34129: checking for FreeType 1.x support" >&5
+echo "configure:34137: checking for FreeType 1.x support" >&5
# Check whether --with-ttf or --without-ttf was given.
if test "${with_ttf+set}" = set; then
withval="$with_ttf"
@@ -34150,7 +34158,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for FreeType 2""... $ac_c" 1>&6
-echo "configure:34154: checking for FreeType 2" >&5
+echo "configure:34162: checking for FreeType 2" >&5
# Check whether --with-freetype-dir or --without-freetype-dir was given.
if test "${with_freetype_dir+set}" = set; then
withval="$with_freetype_dir"
@@ -34175,7 +34183,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for T1lib support""... $ac_c" 1>&6
-echo "configure:34179: checking for T1lib support" >&5
+echo "configure:34187: checking for T1lib support" >&5
# Check whether --with-t1lib or --without-t1lib was given.
if test "${with_t1lib+set}" = set; then
withval="$with_t1lib"
@@ -34200,7 +34208,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to enable truetype string function in GD""... $ac_c" 1>&6
-echo "configure:34204: checking whether to enable truetype string function in GD" >&5
+echo "configure:34212: checking whether to enable truetype string function in GD" >&5
# Check whether --enable-gd-native-ttf or --disable-gd-native-ttf was given.
if test "${enable_gd_native_ttf+set}" = set; then
enableval="$enable_gd_native_ttf"
@@ -34225,7 +34233,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to enable JIS-mapped Japanese font support in GD""... $ac_c" 1>&6
-echo "configure:34229: checking whether to enable JIS-mapped Japanese font support in GD" >&5
+echo "configure:34237: checking whether to enable JIS-mapped Japanese font support in GD" >&5
# Check whether --enable-gd-jis-conv or --disable-gd-jis-conv was given.
if test "${enable_gd_jis_conv+set}" = set; then
enableval="$enable_gd_jis_conv"
@@ -34279,12 +34287,12 @@ if test "$PHP_GD" = "yes"; then
for ac_func in fabsf floorf
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:34283: checking for $ac_func" >&5
+echo "configure:34291: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 34288 "configure"
+#line 34296 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -34307,7 +34315,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:34311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:34319: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -34455,7 +34463,7 @@ EOF
done
echo $ac_n "checking for jpeg_read_header in -ljpeg""... $ac_c" 1>&6
-echo "configure:34459: checking for jpeg_read_header in -ljpeg" >&5
+echo "configure:34467: checking for jpeg_read_header in -ljpeg" >&5
ac_lib_var=`echo jpeg'_'jpeg_read_header | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -34463,7 +34471,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ljpeg $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 34467 "configure"
+#line 34475 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -34474,7 +34482,7 @@ int main() {
jpeg_read_header()
; return 0; }
EOF
-if { (eval echo configure:34478: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:34486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -34754,7 +34762,7 @@ fi
done
echo $ac_n "checking for png_write_image in -lpng""... $ac_c" 1>&6
-echo "configure:34758: checking for png_write_image in -lpng" >&5
+echo "configure:34766: checking for png_write_image in -lpng" >&5
ac_lib_var=`echo png'_'png_write_image | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -34762,7 +34770,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpng $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 34766 "configure"
+#line 34774 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -34773,7 +34781,7 @@ int main() {
png_write_image()
; return 0; }
EOF
-if { (eval echo configure:34777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:34785: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -35150,7 +35158,7 @@ fi
done
echo $ac_n "checking for XpmFreeXpmImage in -lXpm""... $ac_c" 1>&6
-echo "configure:35154: checking for XpmFreeXpmImage in -lXpm" >&5
+echo "configure:35162: checking for XpmFreeXpmImage in -lXpm" >&5
ac_lib_var=`echo Xpm'_'XpmFreeXpmImage | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -35158,7 +35166,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lXpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 35162 "configure"
+#line 35170 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -35169,7 +35177,7 @@ int main() {
XpmFreeXpmImage()
; return 0; }
EOF
-if { (eval echo configure:35173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:35181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -35772,7 +35780,7 @@ EOF
else
echo $ac_n "checking for FreeType 1 support""... $ac_c" 1>&6
-echo "configure:35776: checking for FreeType 1 support" >&5
+echo "configure:35784: checking for FreeType 1 support" >&5
echo "$ac_t""no - FreeType 2.x is to be used instead" 1>&6
fi
fi
@@ -35885,7 +35893,7 @@ echo "configure:35776: checking for FreeType 1 support" >&5
done
echo $ac_n "checking for T1_StrError in -lt1""... $ac_c" 1>&6
-echo "configure:35889: checking for T1_StrError in -lt1" >&5
+echo "configure:35897: checking for T1_StrError in -lt1" >&5
ac_lib_var=`echo t1'_'T1_StrError | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -35893,7 +35901,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lt1 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 35897 "configure"
+#line 35905 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -35904,7 +35912,7 @@ int main() {
T1_StrError()
; return 0; }
EOF
-if { (eval echo configure:35908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:35916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -36317,7 +36325,7 @@ EOF
done
echo $ac_n "checking for jpeg_read_header in -ljpeg""... $ac_c" 1>&6
-echo "configure:36321: checking for jpeg_read_header in -ljpeg" >&5
+echo "configure:36329: checking for jpeg_read_header in -ljpeg" >&5
ac_lib_var=`echo jpeg'_'jpeg_read_header | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -36325,7 +36333,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ljpeg $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 36329 "configure"
+#line 36337 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -36336,7 +36344,7 @@ int main() {
jpeg_read_header()
; return 0; }
EOF
-if { (eval echo configure:36340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:36348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -36616,7 +36624,7 @@ fi
done
echo $ac_n "checking for png_write_image in -lpng""... $ac_c" 1>&6
-echo "configure:36620: checking for png_write_image in -lpng" >&5
+echo "configure:36628: checking for png_write_image in -lpng" >&5
ac_lib_var=`echo png'_'png_write_image | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -36624,7 +36632,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpng $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 36628 "configure"
+#line 36636 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -36635,7 +36643,7 @@ int main() {
png_write_image()
; return 0; }
EOF
-if { (eval echo configure:36639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:36647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -37012,7 +37020,7 @@ fi
done
echo $ac_n "checking for XpmFreeXpmImage in -lXpm""... $ac_c" 1>&6
-echo "configure:37016: checking for XpmFreeXpmImage in -lXpm" >&5
+echo "configure:37024: checking for XpmFreeXpmImage in -lXpm" >&5
ac_lib_var=`echo Xpm'_'XpmFreeXpmImage | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -37020,7 +37028,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lXpm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 37024 "configure"
+#line 37032 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -37031,7 +37039,7 @@ int main() {
XpmFreeXpmImage()
; return 0; }
EOF
-if { (eval echo configure:37035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:37043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -37634,7 +37642,7 @@ EOF
else
echo $ac_n "checking for FreeType 1 support""... $ac_c" 1>&6
-echo "configure:37638: checking for FreeType 1 support" >&5
+echo "configure:37646: checking for FreeType 1 support" >&5
echo "$ac_t""no - FreeType 2.x is to be used instead" 1>&6
fi
fi
@@ -37747,7 +37755,7 @@ echo "configure:37638: checking for FreeType 1 support" >&5
done
echo $ac_n "checking for T1_StrError in -lt1""... $ac_c" 1>&6
-echo "configure:37751: checking for T1_StrError in -lt1" >&5
+echo "configure:37759: checking for T1_StrError in -lt1" >&5
ac_lib_var=`echo t1'_'T1_StrError | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -37755,7 +37763,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lt1 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 37759 "configure"
+#line 37767 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -37766,7 +37774,7 @@ int main() {
T1_StrError()
; return 0; }
EOF
-if { (eval echo configure:37770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:37778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38138,7 +38146,7 @@ EOF
done
echo $ac_n "checking for gdImageString16 in -lgd""... $ac_c" 1>&6
-echo "configure:38142: checking for gdImageString16 in -lgd" >&5
+echo "configure:38150: checking for gdImageString16 in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageString16 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38146,7 +38154,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38150 "configure"
+#line 38158 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38157,7 +38165,7 @@ int main() {
gdImageString16()
; return 0; }
EOF
-if { (eval echo configure:38161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38169: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38285,7 +38293,7 @@ fi
done
echo $ac_n "checking for gdImagePaletteCopy in -lgd""... $ac_c" 1>&6
-echo "configure:38289: checking for gdImagePaletteCopy in -lgd" >&5
+echo "configure:38297: checking for gdImagePaletteCopy in -lgd" >&5
ac_lib_var=`echo gd'_'gdImagePaletteCopy | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38293,7 +38301,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38297 "configure"
+#line 38305 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38304,7 +38312,7 @@ int main() {
gdImagePaletteCopy()
; return 0; }
EOF
-if { (eval echo configure:38308: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38432,7 +38440,7 @@ fi
done
echo $ac_n "checking for gdImageCreateFromPng in -lgd""... $ac_c" 1>&6
-echo "configure:38436: checking for gdImageCreateFromPng in -lgd" >&5
+echo "configure:38444: checking for gdImageCreateFromPng in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateFromPng | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38440,7 +38448,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38444 "configure"
+#line 38452 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38451,7 +38459,7 @@ int main() {
gdImageCreateFromPng()
; return 0; }
EOF
-if { (eval echo configure:38455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38463: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38579,7 +38587,7 @@ fi
done
echo $ac_n "checking for gdImageCreateFromGif in -lgd""... $ac_c" 1>&6
-echo "configure:38583: checking for gdImageCreateFromGif in -lgd" >&5
+echo "configure:38591: checking for gdImageCreateFromGif in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateFromGif | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38587,7 +38595,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38591 "configure"
+#line 38599 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38598,7 +38606,7 @@ int main() {
gdImageCreateFromGif()
; return 0; }
EOF
-if { (eval echo configure:38602: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38726,7 +38734,7 @@ fi
done
echo $ac_n "checking for gdImageGif in -lgd""... $ac_c" 1>&6
-echo "configure:38730: checking for gdImageGif in -lgd" >&5
+echo "configure:38738: checking for gdImageGif in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageGif | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38734,7 +38742,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38738 "configure"
+#line 38746 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38745,7 +38753,7 @@ int main() {
gdImageGif()
; return 0; }
EOF
-if { (eval echo configure:38749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38757: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -38873,7 +38881,7 @@ fi
done
echo $ac_n "checking for gdImageWBMP in -lgd""... $ac_c" 1>&6
-echo "configure:38877: checking for gdImageWBMP in -lgd" >&5
+echo "configure:38885: checking for gdImageWBMP in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageWBMP | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -38881,7 +38889,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 38885 "configure"
+#line 38893 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -38892,7 +38900,7 @@ int main() {
gdImageWBMP()
; return 0; }
EOF
-if { (eval echo configure:38896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:38904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39020,7 +39028,7 @@ fi
done
echo $ac_n "checking for gdImageCreateFromJpeg in -lgd""... $ac_c" 1>&6
-echo "configure:39024: checking for gdImageCreateFromJpeg in -lgd" >&5
+echo "configure:39032: checking for gdImageCreateFromJpeg in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateFromJpeg | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39028,7 +39036,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39032 "configure"
+#line 39040 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39039,7 +39047,7 @@ int main() {
gdImageCreateFromJpeg()
; return 0; }
EOF
-if { (eval echo configure:39043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39167,7 +39175,7 @@ fi
done
echo $ac_n "checking for gdImageCreateFromXpm in -lgd""... $ac_c" 1>&6
-echo "configure:39171: checking for gdImageCreateFromXpm in -lgd" >&5
+echo "configure:39179: checking for gdImageCreateFromXpm in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateFromXpm | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39175,7 +39183,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39179 "configure"
+#line 39187 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39186,7 +39194,7 @@ int main() {
gdImageCreateFromXpm()
; return 0; }
EOF
-if { (eval echo configure:39190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39314,7 +39322,7 @@ fi
done
echo $ac_n "checking for gdImageCreateFromGd2 in -lgd""... $ac_c" 1>&6
-echo "configure:39318: checking for gdImageCreateFromGd2 in -lgd" >&5
+echo "configure:39326: checking for gdImageCreateFromGd2 in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateFromGd2 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39322,7 +39330,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39326 "configure"
+#line 39334 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39333,7 +39341,7 @@ int main() {
gdImageCreateFromGd2()
; return 0; }
EOF
-if { (eval echo configure:39337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39461,7 +39469,7 @@ fi
done
echo $ac_n "checking for gdImageCreateTrueColor in -lgd""... $ac_c" 1>&6
-echo "configure:39465: checking for gdImageCreateTrueColor in -lgd" >&5
+echo "configure:39473: checking for gdImageCreateTrueColor in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreateTrueColor | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39469,7 +39477,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39473 "configure"
+#line 39481 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39480,7 +39488,7 @@ int main() {
gdImageCreateTrueColor()
; return 0; }
EOF
-if { (eval echo configure:39484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39492: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39608,7 +39616,7 @@ fi
done
echo $ac_n "checking for gdImageSetTile in -lgd""... $ac_c" 1>&6
-echo "configure:39612: checking for gdImageSetTile in -lgd" >&5
+echo "configure:39620: checking for gdImageSetTile in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageSetTile | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39616,7 +39624,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39620 "configure"
+#line 39628 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39627,7 +39635,7 @@ int main() {
gdImageSetTile()
; return 0; }
EOF
-if { (eval echo configure:39631: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39755,7 +39763,7 @@ fi
done
echo $ac_n "checking for gdImageEllipse in -lgd""... $ac_c" 1>&6
-echo "configure:39759: checking for gdImageEllipse in -lgd" >&5
+echo "configure:39767: checking for gdImageEllipse in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageEllipse | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39763,7 +39771,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39767 "configure"
+#line 39775 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39774,7 +39782,7 @@ int main() {
gdImageEllipse()
; return 0; }
EOF
-if { (eval echo configure:39778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -39902,7 +39910,7 @@ fi
done
echo $ac_n "checking for gdImageSetBrush in -lgd""... $ac_c" 1>&6
-echo "configure:39906: checking for gdImageSetBrush in -lgd" >&5
+echo "configure:39914: checking for gdImageSetBrush in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageSetBrush | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -39910,7 +39918,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 39914 "configure"
+#line 39922 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -39921,7 +39929,7 @@ int main() {
gdImageSetBrush()
; return 0; }
EOF
-if { (eval echo configure:39925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:39933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40049,7 +40057,7 @@ fi
done
echo $ac_n "checking for gdImageStringTTF in -lgd""... $ac_c" 1>&6
-echo "configure:40053: checking for gdImageStringTTF in -lgd" >&5
+echo "configure:40061: checking for gdImageStringTTF in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageStringTTF | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40057,7 +40065,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40061 "configure"
+#line 40069 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40068,7 +40076,7 @@ int main() {
gdImageStringTTF()
; return 0; }
EOF
-if { (eval echo configure:40072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40196,7 +40204,7 @@ fi
done
echo $ac_n "checking for gdImageStringFT in -lgd""... $ac_c" 1>&6
-echo "configure:40200: checking for gdImageStringFT in -lgd" >&5
+echo "configure:40208: checking for gdImageStringFT in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageStringFT | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40204,7 +40212,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40208 "configure"
+#line 40216 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40215,7 +40223,7 @@ int main() {
gdImageStringFT()
; return 0; }
EOF
-if { (eval echo configure:40219: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40227: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40343,7 +40351,7 @@ fi
done
echo $ac_n "checking for gdImageStringFTEx in -lgd""... $ac_c" 1>&6
-echo "configure:40347: checking for gdImageStringFTEx in -lgd" >&5
+echo "configure:40355: checking for gdImageStringFTEx in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageStringFTEx | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40351,7 +40359,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40355 "configure"
+#line 40363 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40362,7 +40370,7 @@ int main() {
gdImageStringFTEx()
; return 0; }
EOF
-if { (eval echo configure:40366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40374: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40490,7 +40498,7 @@ fi
done
echo $ac_n "checking for gdImageColorClosestHWB in -lgd""... $ac_c" 1>&6
-echo "configure:40494: checking for gdImageColorClosestHWB in -lgd" >&5
+echo "configure:40502: checking for gdImageColorClosestHWB in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageColorClosestHWB | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40498,7 +40506,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40502 "configure"
+#line 40510 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40509,7 +40517,7 @@ int main() {
gdImageColorClosestHWB()
; return 0; }
EOF
-if { (eval echo configure:40513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40637,7 +40645,7 @@ fi
done
echo $ac_n "checking for gdImageColorResolve in -lgd""... $ac_c" 1>&6
-echo "configure:40641: checking for gdImageColorResolve in -lgd" >&5
+echo "configure:40649: checking for gdImageColorResolve in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageColorResolve | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40645,7 +40653,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40649 "configure"
+#line 40657 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40656,7 +40664,7 @@ int main() {
gdImageColorResolve()
; return 0; }
EOF
-if { (eval echo configure:40660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40784,7 +40792,7 @@ fi
done
echo $ac_n "checking for gdImageGifCtx in -lgd""... $ac_c" 1>&6
-echo "configure:40788: checking for gdImageGifCtx in -lgd" >&5
+echo "configure:40796: checking for gdImageGifCtx in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageGifCtx | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40792,7 +40800,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40796 "configure"
+#line 40804 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40803,7 +40811,7 @@ int main() {
gdImageGifCtx()
; return 0; }
EOF
-if { (eval echo configure:40807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -40931,7 +40939,7 @@ fi
done
echo $ac_n "checking for gdCacheCreate in -lgd""... $ac_c" 1>&6
-echo "configure:40935: checking for gdCacheCreate in -lgd" >&5
+echo "configure:40943: checking for gdCacheCreate in -lgd" >&5
ac_lib_var=`echo gd'_'gdCacheCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -40939,7 +40947,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 40943 "configure"
+#line 40951 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -40950,7 +40958,7 @@ int main() {
gdCacheCreate()
; return 0; }
EOF
-if { (eval echo configure:40954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:40962: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -41078,7 +41086,7 @@ fi
done
echo $ac_n "checking for gdFontCacheShutdown in -lgd""... $ac_c" 1>&6
-echo "configure:41082: checking for gdFontCacheShutdown in -lgd" >&5
+echo "configure:41090: checking for gdFontCacheShutdown in -lgd" >&5
ac_lib_var=`echo gd'_'gdFontCacheShutdown | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -41086,7 +41094,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 41090 "configure"
+#line 41098 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -41097,7 +41105,7 @@ int main() {
gdFontCacheShutdown()
; return 0; }
EOF
-if { (eval echo configure:41101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:41109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -41225,7 +41233,7 @@ fi
done
echo $ac_n "checking for gdFreeFontCache in -lgd""... $ac_c" 1>&6
-echo "configure:41229: checking for gdFreeFontCache in -lgd" >&5
+echo "configure:41237: checking for gdFreeFontCache in -lgd" >&5
ac_lib_var=`echo gd'_'gdFreeFontCache | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -41233,7 +41241,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 41237 "configure"
+#line 41245 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -41244,7 +41252,7 @@ int main() {
gdFreeFontCache()
; return 0; }
EOF
-if { (eval echo configure:41248: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:41256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -41372,7 +41380,7 @@ fi
done
echo $ac_n "checking for gdNewDynamicCtxEx in -lgd""... $ac_c" 1>&6
-echo "configure:41376: checking for gdNewDynamicCtxEx in -lgd" >&5
+echo "configure:41384: checking for gdNewDynamicCtxEx in -lgd" >&5
ac_lib_var=`echo gd'_'gdNewDynamicCtxEx | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -41380,7 +41388,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 41384 "configure"
+#line 41392 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -41391,7 +41399,7 @@ int main() {
gdNewDynamicCtxEx()
; return 0; }
EOF
-if { (eval echo configure:41395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:41403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -41446,7 +41454,7 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$GD_INCLUDE
cat > conftest.$ac_ext <<EOF
-#line 41450 "configure"
+#line 41458 "configure"
#include "confdefs.h"
#include <gd.h>
@@ -41460,7 +41468,7 @@ ctx->gd_free = 1;
; return 0; }
EOF
-if { (eval echo configure:41464: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:41472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
@@ -41899,7 +41907,7 @@ EOF
done
echo $ac_n "checking for gdImageCreate in -lgd""... $ac_c" 1>&6
-echo "configure:41903: checking for gdImageCreate in -lgd" >&5
+echo "configure:41911: checking for gdImageCreate in -lgd" >&5
ac_lib_var=`echo gd'_'gdImageCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -41907,7 +41915,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgd $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 41911 "configure"
+#line 41919 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -41918,7 +41926,7 @@ int main() {
gdImageCreate()
; return 0; }
EOF
-if { (eval echo configure:41922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:41930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -41982,7 +41990,7 @@ fi
echo $ac_n "checking for GNU gettext support""... $ac_c" 1>&6
-echo "configure:41986: checking for GNU gettext support" >&5
+echo "configure:41994: checking for GNU gettext support" >&5
# Check whether --with-gettext or --without-gettext was given.
if test "${with_gettext+set}" = set; then
withval="$with_gettext"
@@ -42040,7 +42048,7 @@ if test "$PHP_GETTEXT" != "no"; then
O_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -L$GETTEXT_LIBDIR"
echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
-echo "configure:42044: checking for bindtextdomain in -lintl" >&5
+echo "configure:42052: checking for bindtextdomain in -lintl" >&5
ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42048,7 +42056,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lintl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42052 "configure"
+#line 42060 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42059,7 +42067,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:42063: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42081,7 +42089,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for bindtextdomain in -lc""... $ac_c" 1>&6
-echo "configure:42085: checking for bindtextdomain in -lc" >&5
+echo "configure:42093: checking for bindtextdomain in -lc" >&5
ac_lib_var=`echo c'_'bindtextdomain | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42089,7 +42097,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lc $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42093 "configure"
+#line 42101 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42100,7 +42108,7 @@ int main() {
bindtextdomain()
; return 0; }
EOF
-if { (eval echo configure:42104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42552,7 +42560,7 @@ EOF
echo $ac_n "checking for ngettext in -l$GETTEXT_CHECK_IN_LIB""... $ac_c" 1>&6
-echo "configure:42556: checking for ngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+echo "configure:42564: checking for ngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
ac_lib_var=`echo $GETTEXT_CHECK_IN_LIB'_'ngettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42560,7 +42568,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$GETTEXT_CHECK_IN_LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42564 "configure"
+#line 42572 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42571,7 +42579,7 @@ int main() {
ngettext()
; return 0; }
EOF
-if { (eval echo configure:42575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42595,7 +42603,7 @@ else
fi
echo $ac_n "checking for dngettext in -l$GETTEXT_CHECK_IN_LIB""... $ac_c" 1>&6
-echo "configure:42599: checking for dngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+echo "configure:42607: checking for dngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
ac_lib_var=`echo $GETTEXT_CHECK_IN_LIB'_'dngettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42603,7 +42611,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$GETTEXT_CHECK_IN_LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42607 "configure"
+#line 42615 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42614,7 +42622,7 @@ int main() {
dngettext()
; return 0; }
EOF
-if { (eval echo configure:42618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42626: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42638,7 +42646,7 @@ else
fi
echo $ac_n "checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB""... $ac_c" 1>&6
-echo "configure:42642: checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
+echo "configure:42650: checking for dcngettext in -l$GETTEXT_CHECK_IN_LIB" >&5
ac_lib_var=`echo $GETTEXT_CHECK_IN_LIB'_'dcngettext | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42646,7 +42654,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$GETTEXT_CHECK_IN_LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42650 "configure"
+#line 42658 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42657,7 +42665,7 @@ int main() {
dcngettext()
; return 0; }
EOF
-if { (eval echo configure:42661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42681,7 +42689,7 @@ else
fi
echo $ac_n "checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB""... $ac_c" 1>&6
-echo "configure:42685: checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB" >&5
+echo "configure:42693: checking for bind_textdomain_codeset in -l$GETTEXT_CHECK_IN_LIB" >&5
ac_lib_var=`echo $GETTEXT_CHECK_IN_LIB'_'bind_textdomain_codeset | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42689,7 +42697,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$GETTEXT_CHECK_IN_LIB $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42693 "configure"
+#line 42701 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42700,7 +42708,7 @@ int main() {
bind_textdomain_codeset()
; return 0; }
EOF
-if { (eval echo configure:42704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -42730,7 +42738,7 @@ fi
echo $ac_n "checking for GNU MP support""... $ac_c" 1>&6
-echo "configure:42734: checking for GNU MP support" >&5
+echo "configure:42742: checking for GNU MP support" >&5
# Check whether --with-gmp or --without-gmp was given.
if test "${with_gmp+set}" = set; then
withval="$with_gmp"
@@ -42880,7 +42888,7 @@ if test "$PHP_GMP" != "no"; then
done
echo $ac_n "checking for __gmp_randinit_lc_2exp_size in -lgmp""... $ac_c" 1>&6
-echo "configure:42884: checking for __gmp_randinit_lc_2exp_size in -lgmp" >&5
+echo "configure:42892: checking for __gmp_randinit_lc_2exp_size in -lgmp" >&5
ac_lib_var=`echo gmp'_'__gmp_randinit_lc_2exp_size | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -42888,7 +42896,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgmp $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 42892 "configure"
+#line 42900 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -42899,7 +42907,7 @@ int main() {
__gmp_randinit_lc_2exp_size()
; return 0; }
EOF
-if { (eval echo configure:42903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:42911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -43023,7 +43031,7 @@ else
done
echo $ac_n "checking for gmp_randinit_lc_2exp_size in -lgmp""... $ac_c" 1>&6
-echo "configure:43027: checking for gmp_randinit_lc_2exp_size in -lgmp" >&5
+echo "configure:43035: checking for gmp_randinit_lc_2exp_size in -lgmp" >&5
ac_lib_var=`echo gmp'_'gmp_randinit_lc_2exp_size | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -43031,7 +43039,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgmp $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 43035 "configure"
+#line 43043 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -43042,7 +43050,7 @@ int main() {
gmp_randinit_lc_2exp_size()
; return 0; }
EOF
-if { (eval echo configure:43046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:43054: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -43501,7 +43509,7 @@ fi
echo $ac_n "checking whether to enable hash support""... $ac_c" 1>&6
-echo "configure:43505: checking whether to enable hash support" >&5
+echo "configure:43513: checking whether to enable hash support" >&5
# Check whether --enable-hash or --disable-hash was given.
if test "${enable_hash+set}" = set; then
enableval="$enable_hash"
@@ -43550,8 +43558,59 @@ if test "$PHP_HASH" != "no"; then
EOF
+ echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:43563: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian_php'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+
+ ac_cv_c_bigendian_php=unknown
+ if test "$cross_compiling" = yes; then
+ ac_cv_c_bigendian_php=unknown
+else
+ cat > conftest.$ac_ext <<EOF
+#line 43573 "configure"
+#include "confdefs.h"
+
+int main(void)
+{
+ short one = 1;
+ char *cp = (char *)&one;
+
+ if (*cp == 0) {
+ return(0);
+ } else {
+ return(1);
+ }
+}
+
+EOF
+if { (eval echo configure:43589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+ ac_cv_c_bigendian_php=yes
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -fr conftest*
+ ac_cv_c_bigendian_php=no
+fi
+rm -fr conftest*
+fi
+
+
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian_php" 1>&6
+ if test $ac_cv_c_bigendian_php = yes; then
+ cat >> confdefs.h <<\EOF
+#define WORDS_BIGENDIAN
+EOF
+
+ fi
+
+
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:43555: checking size of short" >&5
+echo "configure:43614: checking size of short" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -43559,7 +43618,7 @@ else
ac_cv_sizeof_short=2
else
cat > conftest.$ac_ext <<EOF
-#line 43563 "configure"
+#line 43622 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -43570,7 +43629,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:43574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:43633: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_short=`cat conftestval`
else
@@ -43590,7 +43649,7 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:43594: checking size of int" >&5
+echo "configure:43653: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -43598,7 +43657,7 @@ else
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 43602 "configure"
+#line 43661 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -43609,7 +43668,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:43613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:43672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_int=`cat conftestval`
else
@@ -43629,7 +43688,7 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:43633: checking size of long" >&5
+echo "configure:43692: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -43637,7 +43696,7 @@ else
ac_cv_sizeof_long=4
else
cat > conftest.$ac_ext <<EOF
-#line 43641 "configure"
+#line 43700 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -43648,7 +43707,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:43652: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:43711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long=`cat conftestval`
else
@@ -43668,7 +43727,7 @@ EOF
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:43672: checking size of long long" >&5
+echo "configure:43731: checking size of long long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -43676,7 +43735,7 @@ else
ac_cv_sizeof_long_long=8
else
cat > conftest.$ac_ext <<EOF
-#line 43680 "configure"
+#line 43739 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -43687,7 +43746,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:43691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:43750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long=`cat conftestval`
else
@@ -44023,7 +44082,7 @@ fi
echo $ac_n "checking for hwapi support""... $ac_c" 1>&6
-echo "configure:44027: checking for hwapi support" >&5
+echo "configure:44086: checking for hwapi support" >&5
# Check whether --with-hwapi or --without-hwapi was given.
if test "${with_hwapi+set}" = set; then
withval="$with_hwapi"
@@ -44071,7 +44130,7 @@ if test "$PHP_HWAPI" != "no"; then
HWAPI_DIR=$PHP_HWAPI
else
echo $ac_n "checking for HWAPI in default path""... $ac_c" 1>&6
-echo "configure:44075: checking for HWAPI in default path" >&5
+echo "configure:44134: checking for HWAPI in default path" >&5
for i in /usr/local /usr; do
if test -r $i/include/hwapi/sdk/api/object.h; then
HWAPI_DIR=$i
@@ -44227,7 +44286,7 @@ do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:44231: checking for $ac_word" >&5
+echo "configure:44290: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -44259,7 +44318,7 @@ test -n "$CXX" || CXX="gcc"
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:44263: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:44322: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
ac_ext=C
# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -44270,12 +44329,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
cat > conftest.$ac_ext << EOF
-#line 44274 "configure"
+#line 44333 "configure"
#include "confdefs.h"
int main(){return(0);}
EOF
-if { (eval echo configure:44279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:44338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
ac_cv_prog_cxx_works=yes
# If we can't run a trivial program, we are probably using a cross compiler.
if (./conftest; exit) 2>/dev/null; then
@@ -44301,12 +44360,12 @@ if test $ac_cv_prog_cxx_works = no; then
{ echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
fi
echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:44305: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:44364: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
cross_compiling=$ac_cv_prog_cxx_cross
echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:44310: checking whether we are using GNU C++" >&5
+echo "configure:44369: checking whether we are using GNU C++" >&5
if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -44315,7 +44374,7 @@ else
yes;
#endif
EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:44319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:44378: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
ac_cv_prog_gxx=yes
else
ac_cv_prog_gxx=no
@@ -44334,7 +44393,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}"
ac_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS=
echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:44338: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:44397: checking whether ${CXX-g++} accepts -g" >&5
if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -44375,7 +44434,7 @@ for ac_declaration in \
'void exit (int);'
do
cat > conftest.$ac_ext <<EOF
-#line 44379 "configure"
+#line 44438 "configure"
#include "confdefs.h"
#include <stdlib.h>
$ac_declaration
@@ -44383,7 +44442,7 @@ int main() {
exit (42);
; return 0; }
EOF
-if { (eval echo configure:44387: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:44446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -44393,14 +44452,14 @@ else
fi
rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 44397 "configure"
+#line 44456 "configure"
#include "confdefs.h"
$ac_declaration
int main() {
exit (42);
; return 0; }
EOF
-if { (eval echo configure:44404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:44463: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
break
else
@@ -44417,7 +44476,7 @@ fi
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:44421: checking how to run the C++ preprocessor" >&5
+echo "configure:44480: checking how to run the C++ preprocessor" >&5
if test -z "$CXXCPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -44430,12 +44489,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 44434 "configure"
+#line 44493 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:44439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:44498: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -44810,7 +44869,7 @@ fi
echo $ac_n "checking for iconv support""... $ac_c" 1>&6
-echo "configure:44814: checking for iconv support" >&5
+echo "configure:44873: checking for iconv support" >&5
# Check whether --with-iconv or --without-iconv was given.
if test "${with_iconv+set}" = set; then
withval="$with_iconv"
@@ -44872,12 +44931,12 @@ if test "$PHP_ICONV" != "no"; then
if test "$PHP_ICONV" = "yes"; then
echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:44876: checking for iconv" >&5
+echo "configure:44935: checking for iconv" >&5
if eval "test \"`echo '$''{'ac_cv_func_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 44881 "configure"
+#line 44940 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char iconv(); below. */
@@ -44900,7 +44959,7 @@ iconv();
; return 0; }
EOF
-if { (eval echo configure:44904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:44963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_iconv=yes"
else
@@ -44921,12 +44980,12 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for libiconv""... $ac_c" 1>&6
-echo "configure:44925: checking for libiconv" >&5
+echo "configure:44984: checking for libiconv" >&5
if eval "test \"`echo '$''{'ac_cv_func_libiconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 44930 "configure"
+#line 44989 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char libiconv(); below. */
@@ -44949,7 +45008,7 @@ libiconv();
; return 0; }
EOF
-if { (eval echo configure:44953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:45012: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_libiconv=yes"
else
@@ -45104,7 +45163,7 @@ EOF
done
echo $ac_n "checking for libiconv in -l$iconv_lib_name""... $ac_c" 1>&6
-echo "configure:45108: checking for libiconv in -l$iconv_lib_name" >&5
+echo "configure:45167: checking for libiconv in -l$iconv_lib_name" >&5
ac_lib_var=`echo $iconv_lib_name'_'libiconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -45112,7 +45171,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$iconv_lib_name $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 45116 "configure"
+#line 45175 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -45123,7 +45182,7 @@ int main() {
libiconv()
; return 0; }
EOF
-if { (eval echo configure:45127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:45186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -45256,7 +45315,7 @@ else
done
echo $ac_n "checking for iconv in -l$iconv_lib_name""... $ac_c" 1>&6
-echo "configure:45260: checking for iconv in -l$iconv_lib_name" >&5
+echo "configure:45319: checking for iconv in -l$iconv_lib_name" >&5
ac_lib_var=`echo $iconv_lib_name'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -45264,7 +45323,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$iconv_lib_name $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 45268 "configure"
+#line 45327 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -45275,7 +45334,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:45279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:45338: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -45485,16 +45544,16 @@ else
fi
echo $ac_n "checking if iconv is glibc's""... $ac_c" 1>&6
-echo "configure:45489: checking if iconv is glibc's" >&5
+echo "configure:45548: checking if iconv is glibc's" >&5
cat > conftest.$ac_ext <<EOF
-#line 45491 "configure"
+#line 45550 "configure"
#include "confdefs.h"
#include <gnu/libc-version.h>
int main() {
gnu_get_libc_version();
; return 0; }
EOF
-if { (eval echo configure:45498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:45557: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
@@ -45512,14 +45571,14 @@ rm -f conftest*
if test -z "$iconv_impl_name"; then
echo $ac_n "checking if using GNU libiconv""... $ac_c" 1>&6
-echo "configure:45516: checking if using GNU libiconv" >&5
+echo "configure:45575: checking if using GNU libiconv" >&5
php_iconv_old_ld="$LDFLAGS"
LDFLAGS="-liconv $LDFLAGS"
if test "$cross_compiling" = yes; then
{ echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
else
cat > conftest.$ac_ext <<EOF
-#line 45523 "configure"
+#line 45582 "configure"
#include "confdefs.h"
#include <$PHP_ICONV_H_PATH>
@@ -45529,7 +45588,7 @@ int main() {
}
EOF
-if { (eval echo configure:45533: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:45592: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
echo "$ac_t""yes" 1>&6
@@ -45551,16 +45610,16 @@ fi
if test -z "$iconv_impl_name"; then
echo $ac_n "checking if iconv is Konstantin Chuguev's""... $ac_c" 1>&6
-echo "configure:45555: checking if iconv is Konstantin Chuguev's" >&5
+echo "configure:45614: checking if iconv is Konstantin Chuguev's" >&5
cat > conftest.$ac_ext <<EOF
-#line 45557 "configure"
+#line 45616 "configure"
#include "confdefs.h"
#include <iconv.h>
int main() {
iconv_ccs_init(NULL, NULL);
; return 0; }
EOF
-if { (eval echo configure:45564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:45623: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
@@ -45727,7 +45786,7 @@ EOF
esac
echo $ac_n "checking if iconv supports errno""... $ac_c" 1>&6
-echo "configure:45731: checking if iconv supports errno" >&5
+echo "configure:45790: checking if iconv supports errno" >&5
if test "$cross_compiling" = yes; then
echo "$ac_t""no" 1>&6
@@ -45741,7 +45800,7 @@ EOF
else
cat > conftest.$ac_ext <<EOF
-#line 45745 "configure"
+#line 45804 "configure"
#include "confdefs.h"
#include <$PHP_ICONV_H_PATH>
@@ -45762,7 +45821,7 @@ int main() {
}
EOF
-if { (eval echo configure:45766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:45825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
echo "$ac_t""yes" 1>&6
@@ -45794,9 +45853,9 @@ fi
echo $ac_n "checking if your cpp allows macro usage in include lines""... $ac_c" 1>&6
-echo "configure:45798: checking if your cpp allows macro usage in include lines" >&5
+echo "configure:45857: checking if your cpp allows macro usage in include lines" >&5
cat > conftest.$ac_ext <<EOF
-#line 45800 "configure"
+#line 45859 "configure"
#include "confdefs.h"
#define FOO <$PHP_ICONV_H_PATH>
@@ -45806,7 +45865,7 @@ int main() {
; return 0; }
EOF
-if { (eval echo configure:45810: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:45869: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
echo "$ac_t""yes" 1>&6
@@ -46150,7 +46209,7 @@ fi
echo $ac_n "checking for IMAP support""... $ac_c" 1>&6
-echo "configure:46154: checking for IMAP support" >&5
+echo "configure:46213: checking for IMAP support" >&5
# Check whether --with-imap or --without-imap was given.
if test "${with_imap+set}" = set; then
withval="$with_imap"
@@ -46196,7 +46255,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for IMAP Kerberos support""... $ac_c" 1>&6
-echo "configure:46200: checking for IMAP Kerberos support" >&5
+echo "configure:46259: checking for IMAP Kerberos support" >&5
# Check whether --with-kerberos or --without-kerberos was given.
if test "${with_kerberos+set}" = set; then
withval="$with_kerberos"
@@ -46221,7 +46280,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for IMAP SSL support""... $ac_c" 1>&6
-echo "configure:46225: checking for IMAP SSL support" >&5
+echo "configure:46284: checking for IMAP SSL support" >&5
# Check whether --with-imap-ssl or --without-imap-ssl was given.
if test "${with_imap_ssl+set}" = set; then
withval="$with_imap_ssl"
@@ -46617,7 +46676,7 @@ EOF
done
cat > conftest.$ac_ext <<EOF
-#line 46621 "configure"
+#line 46680 "configure"
#include "confdefs.h"
#include <$IMAP_INC_DIR/mail.h>
EOF
@@ -46637,7 +46696,7 @@ rm -f conftest*
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$IMAP_INC_DIR
cat > conftest.$ac_ext <<EOF
-#line 46641 "configure"
+#line 46700 "configure"
#include "confdefs.h"
#include "imap4r1.h"
@@ -46755,7 +46814,7 @@ rm -f conftest*
done
echo $ac_n "checking for pam_start in -lpam""... $ac_c" 1>&6
-echo "configure:46759: checking for pam_start in -lpam" >&5
+echo "configure:46818: checking for pam_start in -lpam" >&5
ac_lib_var=`echo pam'_'pam_start | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -46763,7 +46822,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpam $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 46767 "configure"
+#line 46826 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -46774,7 +46833,7 @@ int main() {
pam_start()
; return 0; }
EOF
-if { (eval echo configure:46778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:46837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -46928,7 +46987,7 @@ fi
done
echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:46932: checking for crypt in -lcrypt" >&5
+echo "configure:46991: checking for crypt in -lcrypt" >&5
ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -46936,7 +46995,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 46940 "configure"
+#line 46999 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -46947,7 +47006,7 @@ int main() {
crypt()
; return 0; }
EOF
-if { (eval echo configure:46951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:47010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -47150,7 +47209,7 @@ fi
# Extract the first word of "krb5-config", so it can be a program name with args.
set dummy krb5-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:47154: checking for $ac_word" >&5
+echo "configure:47213: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_KRB5_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -47517,7 +47576,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 47521 "configure"
+#line 47580 "configure"
#include "confdefs.h"
#include <$IMAP_INC_DIR/linkage.h>
EOF
@@ -47555,7 +47614,7 @@ rm -f conftest*
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:47559: checking for $ac_word" >&5
+echo "configure:47618: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -47759,9 +47818,9 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$OPENSSL_INCDIR
echo $ac_n "checking for OpenSSL version""... $ac_c" 1>&6
-echo "configure:47763: checking for OpenSSL version" >&5
+echo "configure:47822: checking for OpenSSL version" >&5
cat > conftest.$ac_ext <<EOF
-#line 47765 "configure"
+#line 47824 "configure"
#include "confdefs.h"
#include <openssl/opensslv.h>
@@ -47915,7 +47974,7 @@ rm -f conftest*
done
echo $ac_n "checking for CRYPTO_free in -lcrypto""... $ac_c" 1>&6
-echo "configure:47919: checking for CRYPTO_free in -lcrypto" >&5
+echo "configure:47978: checking for CRYPTO_free in -lcrypto" >&5
ac_lib_var=`echo crypto'_'CRYPTO_free | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -47923,7 +47982,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypto $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 47927 "configure"
+#line 47986 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -47934,7 +47993,7 @@ int main() {
CRYPTO_free()
; return 0; }
EOF
-if { (eval echo configure:47938: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:47997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -48090,7 +48149,7 @@ fi
done
echo $ac_n "checking for SSL_CTX_set_ssl_version in -lssl""... $ac_c" 1>&6
-echo "configure:48094: checking for SSL_CTX_set_ssl_version in -lssl" >&5
+echo "configure:48153: checking for SSL_CTX_set_ssl_version in -lssl" >&5
ac_lib_var=`echo ssl'_'SSL_CTX_set_ssl_version | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -48098,7 +48157,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lssl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 48102 "configure"
+#line 48161 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -48109,7 +48168,7 @@ int main() {
SSL_CTX_set_ssl_version()
; return 0; }
EOF
-if { (eval echo configure:48113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:48172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -48227,7 +48286,7 @@ else
elif test -f "$IMAP_INC_DIR/linkage.c"; then
cat > conftest.$ac_ext <<EOF
-#line 48231 "configure"
+#line 48290 "configure"
#include "confdefs.h"
#include <$IMAP_INC_DIR/linkage.c>
EOF
@@ -48258,7 +48317,7 @@ rm -f conftest*
else
cat > conftest.$ac_ext <<EOF
-#line 48262 "configure"
+#line 48321 "configure"
#include "confdefs.h"
@@ -48285,7 +48344,7 @@ else
}
EOF
-if { (eval echo configure:48289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:48348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -48312,7 +48371,7 @@ fi
echo $ac_n "checking whether build with IMAP works""... $ac_c" 1>&6
-echo "configure:48316: checking whether build with IMAP works" >&5
+echo "configure:48375: checking whether build with IMAP works" >&5
old_LIBS=$LIBS
@@ -48323,7 +48382,7 @@ echo "configure:48316: checking whether build with IMAP works" >&5
else
cat > conftest.$ac_ext <<EOF
-#line 48327 "configure"
+#line 48386 "configure"
#include "confdefs.h"
@@ -48350,7 +48409,7 @@ else
}
EOF
-if { (eval echo configure:48354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:48413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -48381,7 +48440,7 @@ fi
echo $ac_n "checking for Informix support""... $ac_c" 1>&6
-echo "configure:48385: checking for Informix support" >&5
+echo "configure:48444: checking for Informix support" >&5
# Check whether --with-informix or --without-informix was given.
if test "${with_informix+set}" = set; then
withval="$with_informix"
@@ -48603,7 +48662,7 @@ if test "$PHP_INFORMIX" != "no"; then
esac
echo $ac_n "checking Informix version""... $ac_c" 1>&6
-echo "configure:48607: checking Informix version" >&5
+echo "configure:48666: checking Informix version" >&5
IFX_IBM_VERSION=`$INFORMIXDIR/bin/esql -V | grep "IBM Informix-ESQL Version" | sed -ne '1 s/\(.*\)ESQL Version \([0-9]*\)\.\([0-9]*\).*/\2\3/p'`
IFX_VERSION=`$INFORMIXDIR/bin/esql -V | grep "ESQL Version" | sed -ne '1 s/\(.*\)ESQL Version \([0-9]*\)\.\([0-9]*\).*/\2\3/p'`
@@ -48623,7 +48682,7 @@ echo "configure:48607: checking Informix version" >&5
EOF
- if test $IFX_VERSION -ge "900"; then
+ if test $IFX_VERSION -ge 900; then
cat >> confdefs.h <<\EOF
#define HAVE_IFX_IUS 1
EOF
@@ -48994,7 +49053,7 @@ fi
echo $ac_n "checking for InterBase support""... $ac_c" 1>&6
-echo "configure:48998: checking for InterBase support" >&5
+echo "configure:49057: checking for InterBase support" >&5
# Check whether --with-interbase or --without-interbase was given.
if test "${with_interbase+set}" = set; then
withval="$with_interbase"
@@ -49143,7 +49202,7 @@ if test "$PHP_INTERBASE" != "no"; then
done
echo $ac_n "checking for isc_detach_database in -lfbclient""... $ac_c" 1>&6
-echo "configure:49147: checking for isc_detach_database in -lfbclient" >&5
+echo "configure:49206: checking for isc_detach_database in -lfbclient" >&5
ac_lib_var=`echo fbclient'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -49151,7 +49210,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lfbclient $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 49155 "configure"
+#line 49214 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -49162,7 +49221,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:49166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:49225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -49288,7 +49347,7 @@ else
done
echo $ac_n "checking for isc_detach_database in -lgds""... $ac_c" 1>&6
-echo "configure:49292: checking for isc_detach_database in -lgds" >&5
+echo "configure:49351: checking for isc_detach_database in -lgds" >&5
ac_lib_var=`echo gds'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -49296,7 +49355,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgds $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 49300 "configure"
+#line 49359 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -49307,7 +49366,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:49311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:49370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -49433,7 +49492,7 @@ else
done
echo $ac_n "checking for isc_detach_database in -lib_util""... $ac_c" 1>&6
-echo "configure:49437: checking for isc_detach_database in -lib_util" >&5
+echo "configure:49496: checking for isc_detach_database in -lib_util" >&5
ac_lib_var=`echo ib_util'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -49441,7 +49500,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lib_util $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 49445 "configure"
+#line 49504 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -49452,7 +49511,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:49456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:49515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -49920,7 +49979,7 @@ fi
echo $ac_n "checking for LDAP support""... $ac_c" 1>&6
-echo "configure:49924: checking for LDAP support" >&5
+echo "configure:49983: checking for LDAP support" >&5
# Check whether --with-ldap or --without-ldap was given.
if test "${with_ldap+set}" = set; then
withval="$with_ldap"
@@ -49966,7 +50025,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for LDAP Cyrus SASL support""... $ac_c" 1>&6
-echo "configure:49970: checking for LDAP Cyrus SASL support" >&5
+echo "configure:50029: checking for LDAP Cyrus SASL support" >&5
# Check whether --with-ldap-sasl or --without-ldap-sasl was given.
if test "${with_ldap_sasl+set}" = set; then
withval="$with_ldap_sasl"
@@ -52281,19 +52340,19 @@ EOF
LDFLAGS="$LDFLAGS $LDAP_SHARED_LIBADD"
echo $ac_n "checking for 3 arg ldap_set_rebind_proc""... $ac_c" 1>&6
-echo "configure:52285: checking for 3 arg ldap_set_rebind_proc" >&5
+echo "configure:52344: checking for 3 arg ldap_set_rebind_proc" >&5
if eval "test \"`echo '$''{'ac_cv_3arg_setrebindproc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 52290 "configure"
+#line 52349 "configure"
#include "confdefs.h"
#include <ldap.h>
int main() {
ldap_set_rebind_proc(0,0,0)
; return 0; }
EOF
-if { (eval echo configure:52297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:52356: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_3arg_setrebindproc=yes
else
@@ -52316,12 +52375,12 @@ EOF
for ac_func in ldap_parse_result ldap_parse_reference ldap_start_tls_s
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:52320: checking for $ac_func" >&5
+echo "configure:52379: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 52325 "configure"
+#line 52384 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -52344,7 +52403,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:52348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:52407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -52505,7 +52564,7 @@ EOF
done
echo $ac_n "checking for sasl_version in -lldap""... $ac_c" 1>&6
-echo "configure:52509: checking for sasl_version in -lldap" >&5
+echo "configure:52568: checking for sasl_version in -lldap" >&5
ac_lib_var=`echo ldap'_'sasl_version | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -52513,7 +52572,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lldap $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 52517 "configure"
+#line 52576 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -52524,7 +52583,7 @@ int main() {
sasl_version()
; return 0; }
EOF
-if { (eval echo configure:52528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:52587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -52692,12 +52751,12 @@ fi
fi
echo $ac_n "checking for ldap_bind_s""... $ac_c" 1>&6
-echo "configure:52696: checking for ldap_bind_s" >&5
+echo "configure:52755: checking for ldap_bind_s" >&5
if eval "test \"`echo '$''{'ac_cv_func_ldap_bind_s'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 52701 "configure"
+#line 52760 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char ldap_bind_s(); below. */
@@ -52720,7 +52779,7 @@ ldap_bind_s();
; return 0; }
EOF
-if { (eval echo configure:52724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:52783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_ldap_bind_s=yes"
else
@@ -52770,7 +52829,7 @@ fi
echo $ac_n "checking whether to enable multibyte string support""... $ac_c" 1>&6
-echo "configure:52774: checking whether to enable multibyte string support" >&5
+echo "configure:52833: checking whether to enable multibyte string support" >&5
# Check whether --enable-mbstring or --disable-mbstring was given.
if test "${enable_mbstring+set}" = set; then
enableval="$enable_mbstring"
@@ -52816,7 +52875,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to enable multibyte regex support""... $ac_c" 1>&6
-echo "configure:52820: checking whether to enable multibyte regex support" >&5
+echo "configure:52879: checking whether to enable multibyte regex support" >&5
# Check whether --enable-mbregex or --disable-mbregex was given.
if test "${enable_mbregex+set}" = set; then
enableval="$enable_mbregex"
@@ -52841,7 +52900,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for external libmbfl""... $ac_c" 1>&6
-echo "configure:52845: checking for external libmbfl" >&5
+echo "configure:52904: checking for external libmbfl" >&5
# Check whether --with-libmbfl or --without-libmbfl was given.
if test "${with_libmbfl+set}" = set; then
withval="$with_libmbfl"
@@ -52877,7 +52936,7 @@ EOF
if test "$PHP_MBREGEX" = "yes"; then
echo $ac_n "checking for variable length prototypes and stdarg.h""... $ac_c" 1>&6
-echo "configure:52881: checking for variable length prototypes and stdarg.h" >&5
+echo "configure:52940: checking for variable length prototypes and stdarg.h" >&5
if eval "test \"`echo '$''{'cv_php_mbstring_stdarg'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -52896,7 +52955,7 @@ esac
else
cat > conftest.$ac_ext <<EOF
-#line 52900 "configure"
+#line 52959 "configure"
#include "confdefs.h"
#include <stdarg.h>
@@ -52911,7 +52970,7 @@ int foo(int x, ...) {
int main() { return foo(10, "", 3.14); }
EOF
-if { (eval echo configure:52915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:52974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
cv_php_mbstring_stdarg=yes
else
@@ -52932,17 +52991,17 @@ echo "$ac_t""$cv_php_mbstring_stdarg" 1>&6
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:52936: checking for $ac_hdr" >&5
+echo "configure:52995: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 52941 "configure"
+#line 53000 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:52946: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:53005: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -52969,7 +53028,7 @@ fi
done
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:52973: checking size of int" >&5
+echo "configure:53032: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -52977,7 +53036,7 @@ else
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 52981 "configure"
+#line 53040 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -52988,7 +53047,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:52992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:53051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_int=`cat conftestval`
else
@@ -53008,7 +53067,7 @@ EOF
echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:53012: checking size of short" >&5
+echo "configure:53071: checking size of short" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -53016,7 +53075,7 @@ else
ac_cv_sizeof_short=2
else
cat > conftest.$ac_ext <<EOF
-#line 53020 "configure"
+#line 53079 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -53027,7 +53086,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:53031: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:53090: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_short=`cat conftestval`
else
@@ -53047,7 +53106,7 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:53051: checking size of long" >&5
+echo "configure:53110: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -53055,7 +53114,7 @@ else
ac_cv_sizeof_long=4
else
cat > conftest.$ac_ext <<EOF
-#line 53059 "configure"
+#line 53118 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -53066,7 +53125,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:53070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:53129: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long=`cat conftestval`
else
@@ -53086,12 +53145,12 @@ EOF
echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:53090: checking for working const" >&5
+echo "configure:53149: checking for working const" >&5
if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53095 "configure"
+#line 53154 "configure"
#include "confdefs.h"
int main() {
@@ -53140,7 +53199,7 @@ ccp = (char const *const *) p;
; return 0; }
EOF
-if { (eval echo configure:53144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:53203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_const=yes
else
@@ -53161,12 +53220,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:53165: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:53224: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53170 "configure"
+#line 53229 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -53175,7 +53234,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:53179: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:53238: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -53198,19 +53257,19 @@ fi
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:53202: checking for working alloca.h" >&5
+echo "configure:53261: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53207 "configure"
+#line 53266 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:53214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:53273: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -53231,12 +53290,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:53235: checking for alloca" >&5
+echo "configure:53294: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53240 "configure"
+#line 53299 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -53264,7 +53323,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:53268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:53327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -53296,12 +53355,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:53300: checking whether alloca needs Cray hooks" >&5
+echo "configure:53359: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53305 "configure"
+#line 53364 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -53326,12 +53385,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:53330: checking for $ac_func" >&5
+echo "configure:53389: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 53335 "configure"
+#line 53394 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -53354,7 +53413,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:53358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:53417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -53381,7 +53440,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:53385: checking stack direction for C alloca" >&5
+echo "configure:53444: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -53389,7 +53448,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 53393 "configure"
+#line 53452 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -53408,7 +53467,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:53412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:53471: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -53430,7 +53489,7 @@ EOF
fi
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:53434: checking for 8-bit clean memcmp" >&5
+echo "configure:53493: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -53438,7 +53497,7 @@ else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 53442 "configure"
+#line 53501 "configure"
#include "confdefs.h"
main()
@@ -53448,7 +53507,7 @@ main()
}
EOF
-if { (eval echo configure:53452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:53511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
@@ -53786,7 +53845,7 @@ EOF
done
echo $ac_n "checking for mbfl_buffer_converter_new in -lmbfl""... $ac_c" 1>&6
-echo "configure:53790: checking for mbfl_buffer_converter_new in -lmbfl" >&5
+echo "configure:53849: checking for mbfl_buffer_converter_new in -lmbfl" >&5
ac_lib_var=`echo mbfl'_'mbfl_buffer_converter_new | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -53794,7 +53853,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmbfl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 53798 "configure"
+#line 53857 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -53805,7 +53864,7 @@ int main() {
mbfl_buffer_converter_new()
; return 0; }
EOF
-if { (eval echo configure:53809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:53868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -54398,7 +54457,7 @@ EOF
header_path=ext/mbstring
- for header_file in libmbfl libmbfl/mbfl; do
+ for header_file in libmbfl/ libmbfl/mbfl; do
hp_hf="$header_path/$header_file"
@@ -54426,7 +54485,7 @@ fi
echo $ac_n "checking for mcrypt support""... $ac_c" 1>&6
-echo "configure:54430: checking for mcrypt support" >&5
+echo "configure:54489: checking for mcrypt support" >&5
# Check whether --with-mcrypt or --without-mcrypt was given.
if test "${with_mcrypt+set}" = set; then
withval="$with_mcrypt"
@@ -54482,9 +54541,9 @@ if test "$PHP_MCRYPT" != "no"; then
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$MCRYPT_DIR/include
echo $ac_n "checking for libmcrypt version""... $ac_c" 1>&6
-echo "configure:54486: checking for libmcrypt version" >&5
+echo "configure:54545: checking for libmcrypt version" >&5
cat > conftest.$ac_ext <<EOF
-#line 54488 "configure"
+#line 54547 "configure"
#include "confdefs.h"
#include <mcrypt.h>
@@ -54607,7 +54666,7 @@ rm -f conftest*
done
echo $ac_n "checking for mcrypt_module_open in -lmcrypt""... $ac_c" 1>&6
-echo "configure:54611: checking for mcrypt_module_open in -lmcrypt" >&5
+echo "configure:54670: checking for mcrypt_module_open in -lmcrypt" >&5
ac_lib_var=`echo mcrypt'_'mcrypt_module_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -54615,7 +54674,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmcrypt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 54619 "configure"
+#line 54678 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -54626,7 +54685,7 @@ int main() {
mcrypt_module_open()
; return 0; }
EOF
-if { (eval echo configure:54630: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:54689: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -54778,7 +54837,7 @@ else
done
echo $ac_n "checking for mcrypt_module_open in -lmcrypt""... $ac_c" 1>&6
-echo "configure:54782: checking for mcrypt_module_open in -lmcrypt" >&5
+echo "configure:54841: checking for mcrypt_module_open in -lmcrypt" >&5
ac_lib_var=`echo mcrypt'_'mcrypt_module_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -54786,7 +54845,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmcrypt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 54790 "configure"
+#line 54849 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -54797,7 +54856,7 @@ int main() {
mcrypt_module_open()
; return 0; }
EOF
-if { (eval echo configure:54801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:54860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -55257,7 +55316,7 @@ fi
echo $ac_n "checking for mhash support""... $ac_c" 1>&6
-echo "configure:55261: checking for mhash support" >&5
+echo "configure:55320: checking for mhash support" >&5
# Check whether --with-mhash or --without-mhash was given.
if test "${with_mhash+set}" = set; then
withval="$with_mhash"
@@ -55731,7 +55790,7 @@ fi
echo $ac_n "checking whether to include mime_magic support""... $ac_c" 1>&6
-echo "configure:55735: checking whether to include mime_magic support" >&5
+echo "configure:55794: checking whether to include mime_magic support" >&5
# Check whether --with-mime-magic or --without-mime-magic was given.
if test "${with_mime_magic+set}" = set; then
withval="$with_mime_magic"
@@ -56088,7 +56147,7 @@ fi
echo $ac_n "checking for MING support""... $ac_c" 1>&6
-echo "configure:56092: checking for MING support" >&5
+echo "configure:56151: checking for MING support" >&5
# Check whether --with-ming or --without-ming was given.
if test "${with_ming+set}" = set; then
withval="$with_ming"
@@ -56133,7 +56192,7 @@ echo "$ac_t""$ext_output" 1>&6
if test "$PHP_MING" != "no"; then
echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:56137: checking for sin in -lm" >&5
+echo "configure:56196: checking for sin in -lm" >&5
ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -56141,7 +56200,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lm $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 56145 "configure"
+#line 56204 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -56152,7 +56211,7 @@ int main() {
sin()
; return 0; }
EOF
-if { (eval echo configure:56156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:56215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -56298,7 +56357,7 @@ fi
done
echo $ac_n "checking for Ming_useSWFVersion in -lming""... $ac_c" 1>&6
-echo "configure:56302: checking for Ming_useSWFVersion in -lming" >&5
+echo "configure:56361: checking for Ming_useSWFVersion in -lming" >&5
ac_lib_var=`echo ming'_'Ming_useSWFVersion | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -56306,7 +56365,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lming $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 56310 "configure"
+#line 56369 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -56317,7 +56376,7 @@ int main() {
Ming_useSWFVersion()
; return 0; }
EOF
-if { (eval echo configure:56321: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:56380: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -56578,7 +56637,7 @@ fi
done
echo $ac_n "checking for SWFPrebuiltClip in -lming""... $ac_c" 1>&6
-echo "configure:56582: checking for SWFPrebuiltClip in -lming" >&5
+echo "configure:56641: checking for SWFPrebuiltClip in -lming" >&5
ac_lib_var=`echo ming'_'SWFPrebuiltClip | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -56586,7 +56645,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lming $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 56590 "configure"
+#line 56649 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -56597,7 +56656,7 @@ int main() {
SWFPrebuiltClip()
; return 0; }
EOF
-if { (eval echo configure:56601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:56660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -56634,14 +56693,14 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$MING_INC_DIR
echo $ac_n "checking for destroySWFBlock""... $ac_c" 1>&6
-echo "configure:56638: checking for destroySWFBlock" >&5
+echo "configure:56697: checking for destroySWFBlock" >&5
if test "$cross_compiling" = yes; then
echo "$ac_t""unknown" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 56645 "configure"
+#line 56704 "configure"
#include "confdefs.h"
#include "ming.h"
@@ -56653,7 +56712,7 @@ int main() {
}
EOF
-if { (eval echo configure:56657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:56716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
echo "$ac_t""missing" 1>&6
@@ -56675,7 +56734,7 @@ fi
cat > conftest.$ac_ext <<EOF
-#line 56679 "configure"
+#line 56738 "configure"
#include "confdefs.h"
#include <ming.h>
@@ -56702,7 +56761,7 @@ rm -f conftest*
cat > conftest.$ac_ext <<EOF
-#line 56706 "configure"
+#line 56765 "configure"
#include "confdefs.h"
#include <ming.h>
@@ -56713,7 +56772,7 @@ int main(void) { SWFMovie_output(NULL, NULL, NULL, 0); return 0; }
; return 0; }
EOF
-if { (eval echo configure:56717: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:56776: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
@@ -57017,718 +57076,10 @@ fi
-echo $ac_n "checking for msession support""... $ac_c" 1>&6
-echo "configure:57022: checking for msession support" >&5
-# Check whether --with-msession or --without-msession was given.
-if test "${with_msession+set}" = set; then
- withval="$with_msession"
- PHP_MSESSION=$withval
-else
-
- PHP_MSESSION=no
-
- if test "$PHP_ENABLE_ALL" && test "yes" = "yes"; then
- PHP_MSESSION=$PHP_ENABLE_ALL
- fi
-
-fi
-
-
-
-ext_output="yes, shared"
-ext_shared=yes
-case $PHP_MSESSION in
-shared,*)
- PHP_MSESSION=`echo "$PHP_MSESSION"|$SED 's/^shared,//'`
- ;;
-shared)
- PHP_MSESSION=yes
- ;;
-no)
- ext_output=no
- ext_shared=no
- ;;
-*)
- ext_output=yes
- ext_shared=no
- ;;
-esac
-
-
-
-echo "$ac_t""$ext_output" 1>&6
-
-
-
-
-if test "$PHP_MSESSION" != "no"; then
- if test -r $PHP_MSESSION/lib/libphoenix.a; then
- PHOENIX_DIR=$PHP_MSESSION
- else
- echo $ac_n "checking for msession in default path""... $ac_c" 1>&6
-echo "configure:57070: checking for msession in default path" >&5
- for i in /usr/local/phoenix /usr/local /usr; do
- if test -r $i/lib/libphoenix.a; then
- PHOENIX_DIR=$i
- echo "$ac_t""found in $i" 1>&6
- fi
- done
- fi
-
- if test -z "$PHOENIX_DIR"; then
- echo "$ac_t""not found" 1>&6
- { echo "configure: error: Please reinstall the Phoenix / msession distribution" 1>&2; exit 1; }
- fi
-
-
- cat >> confdefs.h <<\EOF
-#define HAVE_MSESSION 1
-EOF
-
-
-
- if test "$ext_shared" = "yes"; then
- PHOENIX_LIB="-lphoenix $PHOENIX_LIB"
- if test -n ""$PHOENIX_DIR/lib""; then
-
- if test ""$PHOENIX_DIR/lib"" != "/usr/$PHP_LIBDIR" && test ""$PHOENIX_DIR/lib"" != "/usr/lib"; then
-
- if test -z ""$PHOENIX_DIR/lib"" || echo ""$PHOENIX_DIR/lib"" | grep '^/' >/dev/null ; then
- ai_p="$PHOENIX_DIR/lib"
- else
-
- ep_dir="`echo "$PHOENIX_DIR/lib"|$SED 's%/*[^/][^/]*/*$%%'`"
-
- ep_realdir="`(cd \"$ep_dir\" && pwd)`"
- ai_p="$ep_realdir/`basename \""$PHOENIX_DIR/lib"\"`"
- fi
-
-
- if test "$ext_shared" = "yes"; then
- PHOENIX_LIB="$ld_runpath_switch$ai_p -L$ai_p $PHOENIX_LIB"
- else
-
-
-
- unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
-
- cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
- if test -n "$unique" && test "`eval $cmd`" = "" ; then
- eval "LIBPATH$unique=set"
-
- test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
- LDFLAGS="$LDFLAGS -L$ai_p"
- PHP_RPATHS="$PHP_RPATHS $ai_p"
-
- fi
-
-
- fi
-
- fi
-
- fi
- else
-
-
- if test -n ""$PHOENIX_DIR/lib""; then
-
- if test ""$PHOENIX_DIR/lib"" != "/usr/$PHP_LIBDIR" && test ""$PHOENIX_DIR/lib"" != "/usr/lib"; then
-
- if test -z ""$PHOENIX_DIR/lib"" || echo ""$PHOENIX_DIR/lib"" | grep '^/' >/dev/null ; then
- ai_p="$PHOENIX_DIR/lib"
- else
-
- ep_dir="`echo "$PHOENIX_DIR/lib"|$SED 's%/*[^/][^/]*/*$%%'`"
-
- ep_realdir="`(cd \"$ep_dir\" && pwd)`"
- ai_p="$ep_realdir/`basename \""$PHOENIX_DIR/lib"\"`"
- fi
-
-
-
-
-
- unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
-
- cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
- if test -n "$unique" && test "`eval $cmd`" = "" ; then
- eval "LIBPATH$unique=set"
-
- test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
- LDFLAGS="$LDFLAGS -L$ai_p"
- PHP_RPATHS="$PHP_RPATHS $ai_p"
-
- fi
-
-
-
- fi
-
- fi
-
-
- case phoenix in
- c|c_r|pthread*) ;;
- *)
- LIBS="-lphoenix $LIBS"
- ;;
- esac
-
-
-
-
- fi
-
-
- PHOENIX_INCLUDE="-I$PHOENIX_DIR"
-
- PHP_VAR_SUBST="$PHP_VAR_SUBST PHOENIX_LIB"
-
-
-
- if test -z "$php_cxx_done"; then
- for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
-do
-# Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:57197: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- if test -n "$CXX"; then
- ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_dummy="$PATH"
- for ac_dir in $ac_dummy; do
- test -z "$ac_dir" && ac_dir=.
- if test -f $ac_dir/$ac_word; then
- ac_cv_prog_CXX="$ac_prog"
- break
- fi
- done
- IFS="$ac_save_ifs"
-fi
-fi
-CXX="$ac_cv_prog_CXX"
-if test -n "$CXX"; then
- echo "$ac_t""$CXX" 1>&6
-else
- echo "$ac_t""no" 1>&6
-fi
-
-test -n "$CXX" && break
-done
-test -n "$CXX" || CXX="gcc"
-
-
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:57229: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
-
-ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
-
-cat > conftest.$ac_ext << EOF
-
-#line 57240 "configure"
-#include "confdefs.h"
-
-int main(){return(0);}
-EOF
-if { (eval echo configure:57245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- ac_cv_prog_cxx_works=yes
- # If we can't run a trivial program, we are probably using a cross compiler.
- if (./conftest; exit) 2>/dev/null; then
- ac_cv_prog_cxx_cross=no
- else
- ac_cv_prog_cxx_cross=yes
- fi
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- ac_cv_prog_cxx_works=no
-fi
-rm -fr conftest*
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-
-echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
-if test $ac_cv_prog_cxx_works = no; then
- { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
-fi
-echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:57271: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
-echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
-cross_compiling=$ac_cv_prog_cxx_cross
-
-echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:57276: checking whether we are using GNU C++" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- cat > conftest.C <<EOF
-#ifdef __GNUC__
- yes;
-#endif
-EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:57285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
- ac_cv_prog_gxx=yes
-else
- ac_cv_prog_gxx=no
-fi
-fi
-
-echo "$ac_t""$ac_cv_prog_gxx" 1>&6
-
-if test $ac_cv_prog_gxx = yes; then
- GXX=yes
-else
- GXX=
-fi
-
-ac_test_CXXFLAGS="${CXXFLAGS+set}"
-ac_save_CXXFLAGS="$CXXFLAGS"
-CXXFLAGS=
-echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:57304: checking whether ${CXX-g++} accepts -g" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- echo 'void f(){}' > conftest.cc
-if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
- ac_cv_prog_cxx_g=yes
-else
- ac_cv_prog_cxx_g=no
-fi
-rm -f conftest*
-
-fi
-
-echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
-if test "$ac_test_CXXFLAGS" = set; then
- CXXFLAGS="$ac_save_CXXFLAGS"
-elif test $ac_cv_prog_cxx_g = yes; then
- if test "$GXX" = yes; then
- CXXFLAGS="-g -O2"
- else
- CXXFLAGS="-g"
- fi
-else
- if test "$GXX" = yes; then
- CXXFLAGS="-O2"
- else
- CXXFLAGS=
- fi
-fi
-
-for ac_declaration in \
- ''\
- '#include <stdlib.h>' \
- 'extern "C" void std::exit (int) throw (); using std::exit;' \
- 'extern "C" void std::exit (int); using std::exit;' \
- 'extern "C" void exit (int) throw ();' \
- 'extern "C" void exit (int);' \
- 'void exit (int);'
-do
- cat > conftest.$ac_ext <<EOF
-#line 57345 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-$ac_declaration
-int main() {
-exit (42);
-; return 0; }
-EOF
-if { (eval echo configure:57353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- continue
-fi
-rm -f conftest*
- cat > conftest.$ac_ext <<EOF
-#line 57363 "configure"
-#include "confdefs.h"
-$ac_declaration
-int main() {
-exit (42);
-; return 0; }
-EOF
-if { (eval echo configure:57370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- break
-else
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
-fi
-rm -f conftest*
-done
-if test -n "$ac_declaration"; then
- echo '#ifdef __cplusplus' >>confdefs.h
- echo $ac_declaration >>confdefs.h
- echo '#endif' >>confdefs.h
-fi
-
-
- echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:57387: checking how to run the C++ preprocessor" >&5
-if test -z "$CXXCPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-else
- ac_ext=C
-# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cxx_cross
- CXXCPP="${CXX-g++} -E"
- cat > conftest.$ac_ext <<EOF
-#line 57400 "configure"
-#include "confdefs.h"
-#include <stdlib.h>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:57405: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
- :
-else
- echo "$ac_err" >&5
- echo "configure: failed program was:" >&5
- cat conftest.$ac_ext >&5
- rm -rf conftest*
- CXXCPP=/lib/cpp
-fi
-rm -f conftest*
- ac_cv_prog_CXXCPP="$CXXCPP"
-ac_ext=c
-# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
-cross_compiling=$ac_cv_prog_cc_cross
-fi
-fi
-CXXCPP="$ac_cv_prog_CXXCPP"
-echo "$ac_t""$CXXCPP" 1>&6
-
- php_cxx_done=yes
- fi
-
-
- ext_builddir=ext/msession
- ext_srcdir=$abs_srcdir/ext/msession
-
- ac_extra=
-
- if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" != "cli"; then
- PHP_MSESSION_SHARED=no
-
-
- case ext/msession in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=`echo "ext/msession"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/ext/msession/"; ac_bdir="ext/msession/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$php_c_pre
- b_cxx_pre=$php_cxx_pre
- b_c_meta=$php_c_meta
- b_cxx_meta=$php_cxx_meta
- b_c_post=$php_c_post
- b_cxx_post=$php_cxx_post
- b_lo=$php_lo
-
-
- old_IFS=$IFS
- for ac_src in msession.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_extra $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- cat >>Makefile.objects<<EOF
-$ac_bdir$ac_obj.lo: $ac_srcdir$ac_src
- $ac_comp
-EOF
- done
-
-
- EXT_STATIC="$EXT_STATIC msession"
- if test "$ext_shared" != "nocli"; then
- EXT_CLI_STATIC="$EXT_CLI_STATIC msession"
- fi
- else
- if test "$ext_shared" = "shared" || test "$ext_shared" = "yes"; then
- PHP_MSESSION_SHARED=yes
-
- case ext/msession in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=`echo "ext/msession"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/ext/msession/"; ac_bdir="ext/msession/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$shared_c_pre
- b_cxx_pre=$shared_cxx_pre
- b_c_meta=$shared_c_meta
- b_cxx_meta=$shared_cxx_meta
- b_c_post=$shared_c_post
- b_cxx_post=$shared_cxx_post
- b_lo=$shared_lo
-
-
- old_IFS=$IFS
- for ac_src in msession.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- shared_objects_msession="$shared_objects_msession $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_extra $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- cat >>Makefile.objects<<EOF
-$ac_bdir$ac_obj.lo: $ac_srcdir$ac_src
- $ac_comp
-EOF
- done
-
- case $host_alias in
- *netware*)
-
- install_modules="install-modules"
-
- case $host_alias in
- *aix*)
- suffix=so
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -Wl,-G -o '$ext_builddir'/phpmsession.la -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) $(PHPMSESSION_SHARED_LIBADD) && mv -f '$ext_builddir'/.libs/phpmsession.so '$ext_builddir'/phpmsession.so'
- ;;
- *netware*)
- suffix=nlm
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -shared -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) -L$(top_builddir)/netware -lphp5lib $(M4_SUBSTR(PHPMSESSION, 3)_SHARED_LIBADD)'
- ;;
- *)
- suffix=la
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) $(PHPMSESSION_SHARED_LIBADD)'
- ;;
- esac
-
- PHP_MODULES="$PHP_MODULES \$(phplibdir)/phpmsession.$suffix"
-
- PHP_VAR_SUBST="$PHP_VAR_SUBST shared_objects_msession"
-
- cat >>Makefile.objects<<EOF
-\$(phplibdir)/phpmsession.$suffix: $ext_builddir/phpmsession.$suffix
- \$(LIBTOOL) --mode=install cp $ext_builddir/phpmsession.$suffix \$(phplibdir)
-
-$ext_builddir/phpmsession.$suffix: \$(shared_objects_msession) \$(PHPMSESSION_SHARED_DEPENDENCIES)
- $link_cmd
-
-EOF
-
- ;;
- *)
-
- install_modules="install-modules"
-
- case $host_alias in
- *aix*)
- suffix=so
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -Wl,-G -o '$ext_builddir'/msession.la -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) $(MSESSION_SHARED_LIBADD) && mv -f '$ext_builddir'/.libs/msession.so '$ext_builddir'/msession.so'
- ;;
- *netware*)
- suffix=nlm
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -shared -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) -L$(top_builddir)/netware -lphp5lib $(M4_SUBSTR(MSESSION, 3)_SHARED_LIBADD)'
- ;;
- *)
- suffix=la
- link_cmd='$(LIBTOOL) --mode=link $(CC) $(COMMON_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) -o $@ -export-dynamic -avoid-version -prefer-pic -module -rpath $(phplibdir) $(EXTRA_LDFLAGS) $(shared_objects_msession) $(MSESSION_SHARED_LIBADD)'
- ;;
- esac
-
- PHP_MODULES="$PHP_MODULES \$(phplibdir)/msession.$suffix"
-
- PHP_VAR_SUBST="$PHP_VAR_SUBST shared_objects_msession"
-
- cat >>Makefile.objects<<EOF
-\$(phplibdir)/msession.$suffix: $ext_builddir/msession.$suffix
- \$(LIBTOOL) --mode=install cp $ext_builddir/msession.$suffix \$(phplibdir)
-
-$ext_builddir/msession.$suffix: \$(shared_objects_msession) \$(MSESSION_SHARED_DEPENDENCIES)
- $link_cmd
-
-EOF
-
- ;;
- esac
- cat >> confdefs.h <<EOF
-#define COMPILE_DL_MSESSION 1
-EOF
-
- fi
- fi
-
- if test "$ext_shared" != "shared" && test "$ext_shared" != "yes" && test "" = "cli"; then
- PHP_MSESSION_SHARED=no
- if test "$PHP_SAPI" = "cgi"; then
-
-
- case ext/msession in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=`echo "ext/msession"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/ext/msession/"; ac_bdir="ext/msession/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$php_c_pre
- b_cxx_pre=$php_cxx_pre
- b_c_meta=$php_c_meta
- b_cxx_meta=$php_cxx_meta
- b_c_post=$php_c_post
- b_cxx_post=$php_cxx_post
- b_lo=$php_lo
-
-
- old_IFS=$IFS
- for ac_src in msession.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- PHP_GLOBAL_OBJS="$PHP_GLOBAL_OBJS $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_extra $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- cat >>Makefile.objects<<EOF
-$ac_bdir$ac_obj.lo: $ac_srcdir$ac_src
- $ac_comp
-EOF
- done
-
-
- EXT_STATIC="$EXT_STATIC msession"
- else
-
-
- case ext/msession in
- "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;;
- /*) ac_srcdir=`echo "ext/msession"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;;
- *) ac_srcdir="$abs_srcdir/ext/msession/"; ac_bdir="ext/msession/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;;
- esac
-
-
-
- b_c_pre=$php_c_pre
- b_cxx_pre=$php_cxx_pre
- b_c_meta=$php_c_meta
- b_cxx_meta=$php_cxx_meta
- b_c_post=$php_c_post
- b_cxx_post=$php_cxx_post
- b_lo=$php_lo
-
-
- old_IFS=$IFS
- for ac_src in msession.c; do
-
- IFS=.
- set $ac_src
- ac_obj=$1
- IFS=$old_IFS
-
- PHP_CLI_OBJS="$PHP_CLI_OBJS $ac_bdir$ac_obj.lo"
-
- case $ac_src in
- *.c) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.s) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.S) ac_comp="$b_c_pre $ac_extra $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;;
- *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $ac_extra $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;;
- esac
-
- cat >>Makefile.objects<<EOF
-$ac_bdir$ac_obj.lo: $ac_srcdir$ac_src
- $ac_comp
-EOF
- done
-
-
- fi
- EXT_CLI_STATIC="$EXT_CLI_STATIC msession"
- fi
-
-
- BUILD_DIR="$BUILD_DIR $ext_builddir"
-
-
-
- if test "$ext_builddir" = "."; then
- PHP_PECL_EXTENSION=msession
-
- PHP_VAR_SUBST="$PHP_VAR_SUBST PHP_PECL_EXTENSION"
-
- fi
-
-
-
- case stdc++ in
- c|c_r|pthread*) ;;
- *)
- LIBS="-lstdc++ $LIBS"
- ;;
- esac
-
-
-fi
-
-
-
-
-
echo $ac_n "checking for mSQL support""... $ac_c" 1>&6
-echo "configure:57732: checking for mSQL support" >&5
+echo "configure:57083: checking for mSQL support" >&5
# Check whether --with-msql or --without-msql was given.
if test "${with_msql+set}" = set; then
withval="$with_msql"
@@ -58196,11 +57547,11 @@ EOF
echo $ac_n "checking mSQL version""... $ac_c" 1>&6
-echo "configure:58200: checking mSQL version" >&5
+echo "configure:57551: checking mSQL version" >&5
ac_php_oldcppflags=$CPPFLAGS
CPPFLAGS="$INCLUDES $CPPFLAGS"
cat > conftest.$ac_ext <<EOF
-#line 58204 "configure"
+#line 57555 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include "msql.h"
@@ -58208,7 +57559,7 @@ int main() {
int i = IDX_TYPE
; return 0; }
EOF
-if { (eval echo configure:58212: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:57563: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<\EOF
@@ -58239,7 +57590,7 @@ rm -f conftest*
echo $ac_n "checking for MSSQL support via FreeTDS""... $ac_c" 1>&6
-echo "configure:58243: checking for MSSQL support via FreeTDS" >&5
+echo "configure:57594: checking for MSSQL support via FreeTDS" >&5
# Check whether --with-mssql or --without-mssql was given.
if test "${with_mssql+set}" = set; then
withval="$with_mssql"
@@ -58728,7 +58079,7 @@ EOF
fi
echo $ac_n "checking for dnet_addr in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:58732: checking for dnet_addr in -ldnet_stub" >&5
+echo "configure:58083: checking for dnet_addr in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_addr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -58736,7 +58087,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 58740 "configure"
+#line 58091 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -58747,7 +58098,7 @@ int main() {
dnet_addr()
; return 0; }
EOF
-if { (eval echo configure:58751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:58102: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -58889,7 +58240,7 @@ fi
echo $ac_n "checking for MySQL support""... $ac_c" 1>&6
-echo "configure:58893: checking for MySQL support" >&5
+echo "configure:58244: checking for MySQL support" >&5
# Check whether --with-mysql or --without-mysql was given.
if test "${with_mysql+set}" = set; then
withval="$with_mysql"
@@ -58935,7 +58286,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for specified location of the MySQL UNIX socket""... $ac_c" 1>&6
-echo "configure:58939: checking for specified location of the MySQL UNIX socket" >&5
+echo "configure:58290: checking for specified location of the MySQL UNIX socket" >&5
# Check whether --with-mysql-sock or --without-mysql-sock was given.
if test "${with_mysql_sock+set}" = set; then
withval="$with_mysql_sock"
@@ -58961,7 +58312,7 @@ if test -z "$PHP_ZLIB_DIR"; then
echo $ac_n "checking for the location of libz""... $ac_c" 1>&6
-echo "configure:58965: checking for the location of libz" >&5
+echo "configure:58316: checking for the location of libz" >&5
# Check whether --with-zlib-dir or --without-zlib-dir was given.
if test "${with_zlib_dir+set}" = set; then
withval="$with_zlib_dir"
@@ -58992,7 +58343,7 @@ EOF
echo $ac_n "checking for MySQL UNIX socket location""... $ac_c" 1>&6
-echo "configure:58996: checking for MySQL UNIX socket location" >&5
+echo "configure:58347: checking for MySQL UNIX socket location" >&5
if test "$PHP_MYSQL_SOCK" != "no" && test "$PHP_MYSQL_SOCK" != "yes"; then
MYSQL_SOCK=$PHP_MYSQL_SOCK
cat >> confdefs.h <<EOF
@@ -59178,7 +58529,7 @@ Note that the MySQL client library is not bundled anymore!" 1>&2; exit 1; }
done
echo $ac_n "checking for mysql_close in -l$MYSQL_LIBNAME""... $ac_c" 1>&6
-echo "configure:59182: checking for mysql_close in -l$MYSQL_LIBNAME" >&5
+echo "configure:58533: checking for mysql_close in -l$MYSQL_LIBNAME" >&5
ac_lib_var=`echo $MYSQL_LIBNAME'_'mysql_close | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -59186,7 +58537,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$MYSQL_LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 59190 "configure"
+#line 58541 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -59197,7 +58548,7 @@ int main() {
mysql_close()
; return 0; }
EOF
-if { (eval echo configure:59201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:58552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -59418,7 +58769,7 @@ else
done
echo $ac_n "checking for mysql_error in -l$MYSQL_LIBNAME""... $ac_c" 1>&6
-echo "configure:59422: checking for mysql_error in -l$MYSQL_LIBNAME" >&5
+echo "configure:58773: checking for mysql_error in -l$MYSQL_LIBNAME" >&5
ac_lib_var=`echo $MYSQL_LIBNAME'_'mysql_error | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -59426,7 +58777,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$MYSQL_LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 59430 "configure"
+#line 58781 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -59437,7 +58788,7 @@ int main() {
mysql_error()
; return 0; }
EOF
-if { (eval echo configure:59441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:58792: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -59591,7 +58942,7 @@ fi
done
echo $ac_n "checking for mysql_errno in -l$MYSQL_LIBNAME""... $ac_c" 1>&6
-echo "configure:59595: checking for mysql_errno in -l$MYSQL_LIBNAME" >&5
+echo "configure:58946: checking for mysql_errno in -l$MYSQL_LIBNAME" >&5
ac_lib_var=`echo $MYSQL_LIBNAME'_'mysql_errno | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -59599,7 +58950,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$MYSQL_LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 59603 "configure"
+#line 58954 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -59610,7 +58961,7 @@ int main() {
mysql_errno()
; return 0; }
EOF
-if { (eval echo configure:59614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:58965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -60090,7 +59441,7 @@ fi
echo $ac_n "checking for MySQLi support""... $ac_c" 1>&6
-echo "configure:60094: checking for MySQLi support" >&5
+echo "configure:59445: checking for MySQLi support" >&5
# Check whether --with-mysqli or --without-mysqli was given.
if test "${with_mysqli+set}" = set; then
withval="$with_mysqli"
@@ -60136,7 +59487,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to enable embedded MySQLi support""... $ac_c" 1>&6
-echo "configure:60140: checking whether to enable embedded MySQLi support" >&5
+echo "configure:59491: checking whether to enable embedded MySQLi support" >&5
# Check whether --enable-embedded_mysqli or --disable-embedded_mysqli was given.
if test "${enable_embedded_mysqli+set}" = set; then
enableval="$enable_embedded_mysqli"
@@ -60282,7 +59633,7 @@ EOF
done
echo $ac_n "checking for mysql_set_server_option in -lmysqlclient""... $ac_c" 1>&6
-echo "configure:60286: checking for mysql_set_server_option in -lmysqlclient" >&5
+echo "configure:59637: checking for mysql_set_server_option in -lmysqlclient" >&5
ac_lib_var=`echo mysqlclient'_'mysql_set_server_option | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -60290,7 +59641,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmysqlclient $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 60294 "configure"
+#line 59645 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -60301,7 +59652,7 @@ int main() {
mysql_set_server_option()
; return 0; }
EOF
-if { (eval echo configure:60305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:59656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -60547,7 +59898,7 @@ EOF
done
echo $ac_n "checking for mysql_stmt_field_count in -lmysqlclient""... $ac_c" 1>&6
-echo "configure:60551: checking for mysql_stmt_field_count in -lmysqlclient" >&5
+echo "configure:59902: checking for mysql_stmt_field_count in -lmysqlclient" >&5
ac_lib_var=`echo mysqlclient'_'mysql_stmt_field_count | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -60555,7 +59906,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmysqlclient $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 60559 "configure"
+#line 59910 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -60566,7 +59917,7 @@ int main() {
mysql_stmt_field_count()
; return 0; }
EOF
-if { (eval echo configure:60570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:59921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -60903,7 +60254,7 @@ fi
echo $ac_n "checking for ncurses support""... $ac_c" 1>&6
-echo "configure:60907: checking for ncurses support" >&5
+echo "configure:60258: checking for ncurses support" >&5
# Check whether --with-ncurses or --without-ncurses was given.
if test "${with_ncurses+set}" = set; then
withval="$with_ncurses"
@@ -61109,7 +60460,7 @@ EOF
done
echo $ac_n "checking for $LIBSYMBOL in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:61113: checking for $LIBSYMBOL in -l$LIBNAME" >&5
+echo "configure:60464: checking for $LIBSYMBOL in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'$LIBSYMBOL | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61117,7 +60468,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61121 "configure"
+#line 60472 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61128,7 +60479,7 @@ int main() {
$LIBSYMBOL()
; return 0; }
EOF
-if { (eval echo configure:61132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:60483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61345,7 +60696,7 @@ EOF
done
echo $ac_n "checking for new_panel in -lpanel""... $ac_c" 1>&6
-echo "configure:61349: checking for new_panel in -lpanel" >&5
+echo "configure:60700: checking for new_panel in -lpanel" >&5
ac_lib_var=`echo panel'_'new_panel | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61353,7 +60704,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpanel $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61357 "configure"
+#line 60708 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61364,7 +60715,7 @@ int main() {
new_panel()
; return 0; }
EOF
-if { (eval echo configure:61368: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:60719: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61511,7 +60862,7 @@ fi
echo $ac_n "checking for color_set in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:61515: checking for color_set in -l$LIBNAME" >&5
+echo "configure:60866: checking for color_set in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'color_set | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61519,7 +60870,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61523 "configure"
+#line 60874 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61530,7 +60881,7 @@ int main() {
color_set()
; return 0; }
EOF
-if { (eval echo configure:61534: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:60885: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61554,7 +60905,7 @@ else
fi
echo $ac_n "checking for slk_color in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:61558: checking for slk_color in -l$LIBNAME" >&5
+echo "configure:60909: checking for slk_color in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'slk_color | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61562,7 +60913,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61566 "configure"
+#line 60917 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61573,7 +60924,7 @@ int main() {
slk_color()
; return 0; }
EOF
-if { (eval echo configure:61577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:60928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61597,7 +60948,7 @@ else
fi
echo $ac_n "checking for assume_default_colors in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:61601: checking for assume_default_colors in -l$LIBNAME" >&5
+echo "configure:60952: checking for assume_default_colors in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'assume_default_colors | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61605,7 +60956,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61609 "configure"
+#line 60960 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61616,7 +60967,7 @@ int main() {
assume_default_colors()
; return 0; }
EOF
-if { (eval echo configure:61620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:60971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61640,7 +60991,7 @@ else
fi
echo $ac_n "checking for use_extended_names in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:61644: checking for use_extended_names in -l$LIBNAME" >&5
+echo "configure:60995: checking for use_extended_names in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'use_extended_names | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -61648,7 +60999,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 61652 "configure"
+#line 61003 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -61659,7 +61010,7 @@ int main() {
use_extended_names()
; return 0; }
EOF
-if { (eval echo configure:61663: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:61014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -61990,7 +61341,7 @@ fi
echo $ac_n "checking for Oracle (OCI8) support""... $ac_c" 1>&6
-echo "configure:61994: checking for Oracle (OCI8) support" >&5
+echo "configure:61345: checking for Oracle (OCI8) support" >&5
# Check whether --with-oci8 or --without-oci8 was given.
if test "${with_oci8+set}" = set; then
withval="$with_oci8"
@@ -62052,7 +61403,7 @@ fi
if test "$PHP_OCI8" != "no" && test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
echo $ac_n "checking Oracle Install Directory""... $ac_c" 1>&6
-echo "configure:62056: checking Oracle Install Directory" >&5
+echo "configure:61407: checking Oracle Install Directory" >&5
if test "$PHP_OCI8" = "yes"; then
OCI8_DIR=$ORACLE_HOME
else
@@ -62062,7 +61413,7 @@ echo "configure:62056: checking Oracle Install Directory" >&5
echo $ac_n "checking size of long int""... $ac_c" 1>&6
-echo "configure:62066: checking size of long int" >&5
+echo "configure:61417: checking size of long int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -62070,7 +61421,7 @@ else
ac_cv_sizeof_long_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 62074 "configure"
+#line 61425 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -62081,7 +61432,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:62085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:61436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_int=`cat conftestval`
else
@@ -62101,7 +61452,7 @@ EOF
echo $ac_n "checking checking if we're at 64-bit platform""... $ac_c" 1>&6
-echo "configure:62105: checking checking if we're at 64-bit platform" >&5
+echo "configure:61456: checking checking if we're at 64-bit platform" >&5
if test "$ac_cv_sizeof_long_int" = "4" ; then
echo "$ac_t""no" 1>&6
TMP_OCI8_LIB_DIR=lib32
@@ -62111,7 +61462,7 @@ echo "configure:62105: checking checking if we're at 64-bit platform" >&5
fi
echo $ac_n "checking OCI8 libraries dir""... $ac_c" 1>&6
-echo "configure:62115: checking OCI8 libraries dir" >&5
+echo "configure:61466: checking OCI8 libraries dir" >&5
if test -d "$OCI8_DIR/lib" -a ! -d "$OCI8_DIR/lib32"; then
OCI8_LIB_DIR=lib
elif ! test -d "$OCI8_DIR/lib" -a -d "$OCI8_DIR/lib32"; then
@@ -62443,9 +61794,9 @@ echo "configure:62115: checking OCI8 libraries dir" >&5
echo $ac_n "checking Oracle version""... $ac_c" 1>&6
-echo "configure:62447: checking Oracle version" >&5
+echo "configure:61798: checking Oracle version" >&5
if test -s "$OCI8_DIR/orainst/unix.rgs"; then
- OCI8_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI_SED 's/ */:/g' | cut -d: -f 6 | cut -c 2-4`
+ OCI8_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI8_SED 's/ */:/g' | cut -d: -f 6 | cut -c 2-4`
test -z "$OCI8_VERSION" && OCI8_VERSION=7.3
elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
OCI8_VERSION=10.1
@@ -62951,7 +62302,7 @@ echo "configure:62447: checking Oracle version" >&5
done
echo $ac_n "checking for OCIEnvCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:62955: checking for OCIEnvCreate in -lclntsh" >&5
+echo "configure:62306: checking for OCIEnvCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -62959,7 +62310,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 62963 "configure"
+#line 62314 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -62970,7 +62321,7 @@ int main() {
OCIEnvCreate()
; return 0; }
EOF
-if { (eval echo configure:62974: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:62325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -63103,7 +62454,7 @@ fi
done
echo $ac_n "checking for OCIStmtPrepare2 in -lclntsh""... $ac_c" 1>&6
-echo "configure:63107: checking for OCIStmtPrepare2 in -lclntsh" >&5
+echo "configure:62458: checking for OCIStmtPrepare2 in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIStmtPrepare2 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -63111,7 +62462,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 63115 "configure"
+#line 62466 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -63122,7 +62473,7 @@ int main() {
OCIStmtPrepare2()
; return 0; }
EOF
-if { (eval echo configure:63126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:62477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -63318,7 +62669,7 @@ fi
done
echo $ac_n "checking for OCIEnvCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:63322: checking for OCIEnvCreate in -lclntsh" >&5
+echo "configure:62673: checking for OCIEnvCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -63326,7 +62677,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 63330 "configure"
+#line 62681 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -63337,7 +62688,7 @@ int main() {
OCIEnvCreate()
; return 0; }
EOF
-if { (eval echo configure:63341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:62692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -63470,7 +62821,7 @@ fi
done
echo $ac_n "checking for OCIStmtPrepare2 in -lclntsh""... $ac_c" 1>&6
-echo "configure:63474: checking for OCIStmtPrepare2 in -lclntsh" >&5
+echo "configure:62825: checking for OCIStmtPrepare2 in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIStmtPrepare2 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -63478,7 +62829,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 63482 "configure"
+#line 62833 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -63489,7 +62840,7 @@ int main() {
OCIStmtPrepare2()
; return 0; }
EOF
-if { (eval echo configure:63493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:62844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -63529,7 +62880,7 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=$OCI8_INCLUDES
cat > conftest.$ac_ext <<EOF
-#line 63533 "configure"
+#line 62884 "configure"
#include "confdefs.h"
#include <oci.h>
@@ -63722,7 +63073,7 @@ EOF
done
echo $ac_n "checking for OCIEnvNlsCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:63726: checking for OCIEnvNlsCreate in -lclntsh" >&5
+echo "configure:63077: checking for OCIEnvNlsCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvNlsCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -63730,7 +63081,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 63734 "configure"
+#line 63085 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -63741,7 +63092,7 @@ int main() {
OCIEnvNlsCreate()
; return 0; }
EOF
-if { (eval echo configure:63745: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:63096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -63857,7 +63208,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
done
echo $ac_n "checking for OCINlsCharSetNameToId in -lclntsh""... $ac_c" 1>&6
-echo "configure:63861: checking for OCINlsCharSetNameToId in -lclntsh" >&5
+echo "configure:63212: checking for OCINlsCharSetNameToId in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCINlsCharSetNameToId | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -63865,7 +63216,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 63869 "configure"
+#line 63220 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -63876,7 +63227,7 @@ int main() {
OCINlsCharSetNameToId()
; return 0; }
EOF
-if { (eval echo configure:63880: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:63231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -64022,7 +63373,7 @@ fi
done
echo $ac_n "checking for OCIEnvCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:64026: checking for OCIEnvCreate in -lclntsh" >&5
+echo "configure:63377: checking for OCIEnvCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -64030,7 +63381,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 64034 "configure"
+#line 63385 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -64041,7 +63392,7 @@ int main() {
OCIEnvCreate()
; return 0; }
EOF
-if { (eval echo configure:64045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:63396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -64174,7 +63525,7 @@ fi
done
echo $ac_n "checking for OCIStmtPrepare2 in -lclntsh""... $ac_c" 1>&6
-echo "configure:64178: checking for OCIStmtPrepare2 in -lclntsh" >&5
+echo "configure:63529: checking for OCIStmtPrepare2 in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIStmtPrepare2 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -64182,7 +63533,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 64186 "configure"
+#line 63537 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -64193,7 +63544,7 @@ int main() {
OCIStmtPrepare2()
; return 0; }
EOF
-if { (eval echo configure:64197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:63548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -64228,6 +63579,158 @@ else
fi
+
+
+ save_old_LDFLAGS=$LDFLAGS
+ ac_stuff="
+ -L$OCI8_DIR/$OCI8_LIB_DIR $OCI8_SHARED_LIBADD
+ "
+
+ save_ext_shared=$ext_shared
+ ext_shared=yes
+
+ for ac_i in $ac_stuff; do
+ case $ac_i in
+ -pthread)
+ if test "$ext_shared" = "yes"; then
+ LDFLAGS="$LDFLAGS -pthread"
+ else
+
+
+ unique=`echo $ac_i|$SED 's/[^a-zA-Z0-9]/_/g'`
+
+ cmd="echo $ac_n \"\$EXTRA_LDFLAGS$unique$ac_c\""
+ if test -n "$unique" && test "`eval $cmd`" = "" ; then
+ eval "EXTRA_LDFLAGS$unique=set"
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $ac_i"
+ fi
+
+ fi
+ ;;
+ -l*)
+ ac_ii=`echo $ac_i|cut -c 3-`
+
+
+ case $ac_ii in
+ c|c_r|pthread*) ;;
+ *)
+ if test "$ext_shared" = "yes"; then
+ LDFLAGS="$LDFLAGS -l$ac_ii"
+ else
+
+
+ case $ac_ii in
+ c|c_r|pthread*) ;;
+ *)
+ LIBS="$LIBS -l$ac_ii"
+ ;;
+ esac
+
+
+ fi
+ ;;
+ esac
+
+
+ ;;
+ -L*)
+ ac_ii=`echo $ac_i|cut -c 3-`
+
+ if test "$ac_ii" != "/usr/$PHP_LIBDIR" && test "$ac_ii" != "/usr/lib"; then
+
+ if test -z "$ac_ii" || echo "$ac_ii" | grep '^/' >/dev/null ; then
+ ai_p=$ac_ii
+ else
+
+ ep_dir="`echo $ac_ii|$SED 's%/*[^/][^/]*/*$%%'`"
+
+ ep_realdir="`(cd \"$ep_dir\" && pwd)`"
+ ai_p="$ep_realdir/`basename \"$ac_ii\"`"
+ fi
+
+
+ if test "$ext_shared" = "yes"; then
+ LDFLAGS="$ld_runpath_switch$ai_p -L$ai_p $LDFLAGS"
+ else
+
+
+
+ unique=`echo $ai_p|$SED 's/[^a-zA-Z0-9]/_/g'`
+
+ cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
+ if test -n "$unique" && test "`eval $cmd`" = "" ; then
+ eval "LIBPATH$unique=set"
+
+ test -n "$ld_runpath_switch" && LDFLAGS="$LDFLAGS $ld_runpath_switch$ai_p"
+ LDFLAGS="$LDFLAGS -L$ai_p"
+ PHP_RPATHS="$PHP_RPATHS $ai_p"
+
+ fi
+
+
+ fi
+
+ fi
+
+ ;;
+ esac
+ done
+
+ echo $ac_n "checking for OCILobRead2 in -lclntsh""... $ac_c" 1>&6
+echo "configure:63681: checking for OCILobRead2 in -lclntsh" >&5
+ac_lib_var=`echo clntsh'_'OCILobRead2 | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+ echo $ac_n "(cached) $ac_c" 1>&6
+else
+ ac_save_LIBS="$LIBS"
+LIBS="-lclntsh $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 63689 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error. */
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char OCILobRead2();
+
+int main() {
+OCILobRead2()
+; return 0; }
+EOF
+if { (eval echo configure:63700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=yes"
+else
+ echo "configure: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ rm -rf conftest*
+ eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+ echo "$ac_t""yes" 1>&6
+
+ LDFLAGS=$save_old_LDFLAGS
+ ext_shared=$save_ext_shared
+
+ cat >> confdefs.h <<\EOF
+#define HAVE_OCI_LOB_READ2 1
+EOF
+
+
+
+else
+ echo "$ac_t""no" 1>&6
+
+ LDFLAGS=$save_old_LDFLAGS
+ ext_shared=$save_ext_shared
+ unset ac_cv_lib_clntsh_OCILobRead2
+
+
+fi
+
;;
@@ -64309,6 +63812,10 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_OCI_LOB_READ2 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_OCI8_TEMP_LOB 1
EOF
@@ -64419,7 +63926,7 @@ EOF
done
echo $ac_n "checking for OCILobIsTemporary in -lclntsh""... $ac_c" 1>&6
-echo "configure:64423: checking for OCILobIsTemporary in -lclntsh" >&5
+echo "configure:63930: checking for OCILobIsTemporary in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCILobIsTemporary | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -64427,7 +63934,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 64431 "configure"
+#line 63938 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -64438,7 +63945,7 @@ int main() {
OCILobIsTemporary()
; return 0; }
EOF
-if { (eval echo configure:64442: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:63949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -64567,7 +64074,7 @@ else
done
echo $ac_n "checking for OCILobIsTemporary in -locijdbc8""... $ac_c" 1>&6
-echo "configure:64571: checking for OCILobIsTemporary in -locijdbc8" >&5
+echo "configure:64078: checking for OCILobIsTemporary in -locijdbc8" >&5
ac_lib_var=`echo ocijdbc8'_'OCILobIsTemporary | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -64575,7 +64082,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-locijdbc8 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 64579 "configure"
+#line 64086 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -64586,7 +64093,7 @@ int main() {
OCILobIsTemporary()
; return 0; }
EOF
-if { (eval echo configure:64590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:64097: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -64746,7 +64253,7 @@ fi
done
echo $ac_n "checking for OCICollAssign in -lclntsh""... $ac_c" 1>&6
-echo "configure:64750: checking for OCICollAssign in -lclntsh" >&5
+echo "configure:64257: checking for OCICollAssign in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCICollAssign | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -64754,7 +64261,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 64758 "configure"
+#line 64265 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -64765,7 +64272,7 @@ int main() {
OCICollAssign()
; return 0; }
EOF
-if { (eval echo configure:64769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:64276: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -65391,7 +64898,7 @@ EOF
elif test "$PHP_OCI8" != "no" && test "$PHP_OCI8_INSTANT_CLIENT" != "no"; then
echo $ac_n "checking Oracle Instant Client directory""... $ac_c" 1>&6
-echo "configure:65395: checking Oracle Instant Client directory" >&5
+echo "configure:64902: checking Oracle Instant Client directory" >&5
if test "$PHP_OCI8_INSTANT_CLIENT" = "yes"; then
PHP_OCI8_INSTANT_CLIENT=`ls -d /usr/lib/oracle/*/client/lib 2> /dev/null | tail -1`
if test -z "$PHP_OCI8_INSTANT_CLIENT"; then
@@ -65403,7 +64910,7 @@ echo "configure:65395: checking Oracle Instant Client directory" >&5
OCI8_DIR=$PHP_OCI8_INSTANT_CLIENT
echo $ac_n "checking Oracle Instant Client SDK header directory""... $ac_c" 1>&6
-echo "configure:65407: checking Oracle Instant Client SDK header directory" >&5
+echo "configure:64914: checking Oracle Instant Client SDK header directory" >&5
OCISDKRPMINC=`echo "$PHP_OCI8_INSTANT_CLIENT" | $PHP_OCI8_SED -e 's!^/usr/lib/oracle/\(.*\)/client/lib[/]*$!/usr/include/oracle/\1/client!'`
@@ -65517,7 +65024,7 @@ echo "configure:65407: checking Oracle Instant Client SDK header directory" >&5
{ echo "configure: error: Oracle Instant Client SDK header files not found" 1>&2; exit 1; }
fi
- OCISYSLIBLIST=`echo "$OCI8INCDIR" | $PHP_OCI_SED -e 's!\(.*\)/include$!\1/demo/sysliblist!'`
+ OCISYSLIBLIST=`echo "$OCI8INCDIR" | $PHP_OCI8_SED -e 's!\(.*\)/include$!\1/demo/sysliblist!'`
if test -f "$OCISYSLIBLIST"; then
for ac_i in `cat $OCISYSLIBLIST`; do
@@ -65611,7 +65118,7 @@ echo "configure:65407: checking Oracle Instant Client SDK header directory" >&5
echo $ac_n "checking Oracle Instant Client version""... $ac_c" 1>&6
-echo "configure:65615: checking Oracle Instant Client version" >&5
+echo "configure:65122: checking Oracle Instant Client version" >&5
if test -f $PHP_OCI8_INSTANT_CLIENT/libociei.$SHLIB_SUFFIX_NAME; then
if test -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
if test ! -f $PHP_OCI8_INSTANT_CLIENT/libclntsh.$SHLIB_SUFFIX_NAME; then
@@ -65716,6 +65223,10 @@ EOF
EOF
cat >> confdefs.h <<\EOF
+#define HAVE_OCI_LOB_READ2 1
+EOF
+
+ cat >> confdefs.h <<\EOF
#define HAVE_OCI8_TEMP_LOB 1
EOF
@@ -66044,7 +65555,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Adabas support""... $ac_c" 1>&6
-echo "configure:66048: checking for Adabas support" >&5
+echo "configure:65559: checking for Adabas support" >&5
# Check whether --with-adabas or --without-adabas was given.
if test "${with_adabas+set}" = set; then
withval="$with_adabas"
@@ -66242,7 +65753,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for SAP DB support""... $ac_c" 1>&6
-echo "configure:66246: checking for SAP DB support" >&5
+echo "configure:65757: checking for SAP DB support" >&5
# Check whether --with-sapdb or --without-sapdb was given.
if test "${with_sapdb+set}" = set; then
withval="$with_sapdb"
@@ -66372,7 +65883,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Solid support""... $ac_c" 1>&6
-echo "configure:66376: checking for Solid support" >&5
+echo "configure:65887: checking for Solid support" >&5
# Check whether --with-solid or --without-solid was given.
if test "${with_solid+set}" = set; then
withval="$with_solid"
@@ -66430,7 +65941,7 @@ EOF
echo "$ac_t""yes" 1>&6
echo $ac_n "checking Solid library file""... $ac_c" 1>&6
-echo "configure:66434: checking Solid library file" >&5
+echo "configure:65945: checking Solid library file" >&5
ac_solid_uname_r=`uname -r 2>/dev/null`
ac_solid_uname_s=`uname -s 2>/dev/null`
case $ac_solid_uname_s in
@@ -66516,7 +66027,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for IBM DB2 support""... $ac_c" 1>&6
-echo "configure:66520: checking for IBM DB2 support" >&5
+echo "configure:66031: checking for IBM DB2 support" >&5
# Check whether --with-ibm-db2 or --without-ibm-db2 was given.
if test "${with_ibm_db2+set}" = set; then
withval="$with_ibm_db2"
@@ -66578,7 +66089,7 @@ fi
else
cat > conftest.$ac_ext <<EOF
-#line 66582 "configure"
+#line 66093 "configure"
#include "confdefs.h"
@@ -66589,7 +66100,7 @@ else
}
EOF
-if { (eval echo configure:66593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:66104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -66635,7 +66146,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for ODBCRouter.com support""... $ac_c" 1>&6
-echo "configure:66639: checking for ODBCRouter.com support" >&5
+echo "configure:66150: checking for ODBCRouter.com support" >&5
# Check whether --with-ODBCRouter or --without-ODBCRouter was given.
if test "${with_ODBCRouter+set}" = set; then
withval="$with_ODBCRouter"
@@ -66695,7 +66206,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Empress support""... $ac_c" 1>&6
-echo "configure:66699: checking for Empress support" >&5
+echo "configure:66210: checking for Empress support" >&5
# Check whether --with-empress or --without-empress was given.
if test "${with_empress+set}" = set; then
withval="$with_empress"
@@ -66744,7 +66255,7 @@ EOF
echo "$ac_t""yes" 1>&6
echo $ac_n "checking Empress library file""... $ac_c" 1>&6
-echo "configure:66748: checking Empress library file" >&5
+echo "configure:66259: checking Empress library file" >&5
ODBC_LIBS=`echo $ODBC_LIBDIR/libempodbccl.so | cut -d' ' -f1`
if test ! -f $ODBC_LIBS; then
ODBC_LIBS=`echo $ODBC_LIBDIR/libempodbccl.so | cut -d' ' -f1`
@@ -66765,7 +66276,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Empress local access support""... $ac_c" 1>&6
-echo "configure:66769: checking for Empress local access support" >&5
+echo "configure:66280: checking for Empress local access support" >&5
# Check whether --with-empress-bcs or --without-empress-bcs was given.
if test "${with_empress_bcs+set}" = set; then
withval="$with_empress_bcs"
@@ -66830,7 +66341,7 @@ EOF
echo "$ac_t""yes" 1>&6
echo $ac_n "checking Empress local access library file""... $ac_c" 1>&6
-echo "configure:66834: checking Empress local access library file" >&5
+echo "configure:66345: checking Empress local access library file" >&5
ODBCBCS_LIBS=`echo $ODBC_LIBDIR/libempodbcbcs.a | cut -d' ' -f1`
if test ! -f $ODBCBCS_LIBS; then
ODBCBCS_LIBS=`echo $ODBC_LIBDIR/libempodbcbcs.a | cut -d' ' -f1`
@@ -66851,7 +66362,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Birdstep support""... $ac_c" 1>&6
-echo "configure:66855: checking for Birdstep support" >&5
+echo "configure:66366: checking for Birdstep support" >&5
# Check whether --with-birdstep or --without-birdstep was given.
if test "${with_birdstep+set}" = set; then
withval="$with_birdstep"
@@ -66961,7 +66472,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for a custom ODBC support""... $ac_c" 1>&6
-echo "configure:66965: checking for a custom ODBC support" >&5
+echo "configure:66476: checking for a custom ODBC support" >&5
# Check whether --with-custom-odbc or --without-custom-odbc was given.
if test "${with_custom_odbc+set}" = set; then
withval="$with_custom_odbc"
@@ -66995,7 +66506,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for iODBC support""... $ac_c" 1>&6
-echo "configure:66999: checking for iODBC support" >&5
+echo "configure:66510: checking for iODBC support" >&5
# Check whether --with-iodbc or --without-iodbc was given.
if test "${with_iodbc+set}" = set; then
withval="$with_iodbc"
@@ -67137,7 +66648,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for Easysoft ODBC-ODBC Bridge support""... $ac_c" 1>&6
-echo "configure:67141: checking for Easysoft ODBC-ODBC Bridge support" >&5
+echo "configure:66652: checking for Easysoft ODBC-ODBC Bridge support" >&5
# Check whether --with-esoob or --without-esoob was given.
if test "${with_esoob+set}" = set; then
withval="$with_esoob"
@@ -67197,7 +66708,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for unixODBC support""... $ac_c" 1>&6
-echo "configure:67201: checking for unixODBC support" >&5
+echo "configure:66712: checking for unixODBC support" >&5
# Check whether --with-unixODBC or --without-unixODBC was given.
if test "${with_unixODBC+set}" = set; then
withval="$with_unixODBC"
@@ -67262,7 +66773,7 @@ fi
if test -z "$ODBC_TYPE"; then
echo $ac_n "checking for DBMaker support""... $ac_c" 1>&6
-echo "configure:67266: checking for DBMaker support" >&5
+echo "configure:66777: checking for DBMaker support" >&5
# Check whether --with-dbmaker or --without-dbmaker was given.
if test "${with_dbmaker+set}" = set; then
withval="$with_dbmaker"
@@ -67857,7 +67368,7 @@ fi
echo $ac_n "checking whether to enable pcntl support""... $ac_c" 1>&6
-echo "configure:67861: checking whether to enable pcntl support" >&5
+echo "configure:67372: checking whether to enable pcntl support" >&5
# Check whether --enable-pcntl or --disable-pcntl was given.
if test "${enable_pcntl+set}" = set; then
enableval="$enable_pcntl"
@@ -67905,12 +67416,12 @@ if test "$PHP_PCNTL" != "no"; then
for ac_func in fork
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:67909: checking for $ac_func" >&5
+echo "configure:67420: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 67914 "configure"
+#line 67425 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -67933,7 +67444,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:67937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:67448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -67964,12 +67475,12 @@ done
for ac_func in waitpid
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:67968: checking for $ac_func" >&5
+echo "configure:67479: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 67973 "configure"
+#line 67484 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -67992,7 +67503,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:67996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:67507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -68023,12 +67534,12 @@ done
for ac_func in sigaction
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:68027: checking for $ac_func" >&5
+echo "configure:67538: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 68032 "configure"
+#line 67543 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -68051,7 +67562,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:68055: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:67566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -68082,12 +67593,12 @@ done
for ac_func in getpriority setpriority wait3
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:68086: checking for $ac_func" >&5
+echo "configure:67597: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 68091 "configure"
+#line 67602 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -68110,7 +67621,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:68114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:67625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -68424,7 +67935,7 @@ fi
echo $ac_n "checking whether to enable PDO support""... $ac_c" 1>&6
-echo "configure:68428: checking whether to enable PDO support" >&5
+echo "configure:67939: checking whether to enable PDO support" >&5
# Check whether --enable-pdo or --disable-pdo was given.
if test "${enable_pdo+set}" = set; then
enableval="$enable_pdo"
@@ -68795,6 +68306,7 @@ EOF
am_i_shared=$PHP_PDO_SHARED
is_it_shared=$PHP_SPL_SHARED
+ is_it_enabled=$PHP_SPL
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo to build statically, but it
@@ -68803,7 +68315,7 @@ You either need to build pdo shared or build spl statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "xtrue" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "xtrue" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo, which depends on extension spl,
but you've either not enabled spl, or have disabled it.
@@ -68849,7 +68361,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for PDO_DBLIB support via FreeTDS""... $ac_c" 1>&6
-echo "configure:68853: checking for PDO_DBLIB support via FreeTDS" >&5
+echo "configure:68365: checking for PDO_DBLIB support via FreeTDS" >&5
# Check whether --with-pdo-dblib or --without-pdo-dblib was given.
if test "${with_pdo_dblib+set}" = set; then
withval="$with_pdo_dblib"
@@ -69065,13 +68577,13 @@ if test "$PHP_PDO_DBLIB" != "no"; then
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:69069: checking for PDO includes" >&5
+echo "configure:68581: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:69075: checking for PDO includes" >&5
+echo "configure:68587: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -69374,7 +68886,7 @@ EOF
fi
echo $ac_n "checking for dnet_addr in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:69378: checking for dnet_addr in -ldnet_stub" >&5
+echo "configure:68890: checking for dnet_addr in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_addr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -69382,7 +68894,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 69386 "configure"
+#line 68898 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -69393,7 +68905,7 @@ int main() {
dnet_addr()
; return 0; }
EOF
-if { (eval echo configure:69397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:68909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -69529,6 +69041,7 @@ EOF
am_i_shared=$PHP_PDO_DBLIB_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_dblib to build statically, but it
@@ -69537,7 +69050,7 @@ You either need to build pdo_dblib shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_dblib, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -69555,7 +69068,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for Firebird support for PDO""... $ac_c" 1>&6
-echo "configure:69559: checking for Firebird support for PDO" >&5
+echo "configure:69072: checking for Firebird support for PDO" >&5
# Check whether --with-pdo-firebird or --without-pdo-firebird was given.
if test "${with_pdo_firebird+set}" = set; then
withval="$with_pdo_firebird"
@@ -69704,7 +69217,7 @@ if test "$PHP_PDO_FIREBIRD" != "no"; then
done
echo $ac_n "checking for isc_detach_database in -lfbclient""... $ac_c" 1>&6
-echo "configure:69708: checking for isc_detach_database in -lfbclient" >&5
+echo "configure:69221: checking for isc_detach_database in -lfbclient" >&5
ac_lib_var=`echo fbclient'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -69712,7 +69225,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lfbclient $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 69716 "configure"
+#line 69229 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -69723,7 +69236,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:69727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:69240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -69849,7 +69362,7 @@ else
done
echo $ac_n "checking for isc_detach_database in -lgds""... $ac_c" 1>&6
-echo "configure:69853: checking for isc_detach_database in -lgds" >&5
+echo "configure:69366: checking for isc_detach_database in -lgds" >&5
ac_lib_var=`echo gds'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -69857,7 +69370,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lgds $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 69861 "configure"
+#line 69374 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -69868,7 +69381,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:69872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:69385: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -69994,7 +69507,7 @@ else
done
echo $ac_n "checking for isc_detach_database in -lib_util""... $ac_c" 1>&6
-echo "configure:69998: checking for isc_detach_database in -lib_util" >&5
+echo "configure:69511: checking for isc_detach_database in -lib_util" >&5
ac_lib_var=`echo ib_util'_'isc_detach_database | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -70002,7 +69515,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lib_util $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 70006 "configure"
+#line 69519 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -70013,7 +69526,7 @@ int main() {
isc_detach_database()
; return 0; }
EOF
-if { (eval echo configure:70017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:69530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -70058,13 +69571,13 @@ fi
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:70062: checking for PDO includes" >&5
+echo "configure:69575: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:70068: checking for PDO includes" >&5
+echo "configure:69581: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -70501,6 +70014,7 @@ EOF
am_i_shared=$PHP_PDO_FIREBIRD_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_firebird to build statically, but it
@@ -70509,7 +70023,7 @@ You either need to build pdo_firebird shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_firebird, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -70528,7 +70042,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for MySQL support for PDO""... $ac_c" 1>&6
-echo "configure:70532: checking for MySQL support for PDO" >&5
+echo "configure:70046: checking for MySQL support for PDO" >&5
# Check whether --with-pdo-mysql or --without-pdo-mysql was given.
if test "${with_pdo_mysql+set}" = set; then
withval="$with_pdo_mysql"
@@ -70578,7 +70092,7 @@ EOF
echo $ac_n "checking for mysql_config""... $ac_c" 1>&6
-echo "configure:70582: checking for mysql_config" >&5
+echo "configure:70096: checking for mysql_config" >&5
if test -f $PHP_PDO_MYSQL && test -x $PHP_PDO_MYSQL ; then
PDO_MYSQL_CONFIG=$PHP_PDO_MYSQL
@@ -70612,7 +70126,7 @@ echo "configure:70582: checking for mysql_config" >&5
# Extract the first word of "sed", so it can be a program name with args.
set dummy sed; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:70616: checking for $ac_word" >&5
+echo "configure:70130: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SED'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -70654,7 +70168,7 @@ fi
else
echo "$ac_t""not found" 1>&6
echo $ac_n "checking for mysql install under $PDO_MYSQL_DIR""... $ac_c" 1>&6
-echo "configure:70658: checking for mysql install under $PDO_MYSQL_DIR" >&5
+echo "configure:70172: checking for mysql install under $PDO_MYSQL_DIR" >&5
if test -r $PDO_MYSQL_DIR/include/mysql; then
PDO_MYSQL_INC_DIR=$PDO_MYSQL_DIR/include/mysql
else
@@ -70809,6 +70323,9 @@ EOF
+ _SAVE_LIBS=$LIBS
+ LIBS="$LIBS $PDO_MYSQL_LIBS"
+
save_old_LDFLAGS=$LDFLAGS
ac_stuff="
$PDO_MYSQL_LIBS
@@ -70905,7 +70422,7 @@ EOF
done
echo $ac_n "checking for mysql_query in -lmysqlclient""... $ac_c" 1>&6
-echo "configure:70909: checking for mysql_query in -lmysqlclient" >&5
+echo "configure:70426: checking for mysql_query in -lmysqlclient" >&5
ac_lib_var=`echo mysqlclient'_'mysql_query | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -70913,7 +70430,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lmysqlclient $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 70917 "configure"
+#line 70434 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -70924,7 +70441,7 @@ int main() {
mysql_query()
; return 0; }
EOF
-if { (eval echo configure:70928: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:70445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -71045,17 +70562,15 @@ else
fi
- _SAVE_LIBS=$LIBS
- LIBS="$LIBS $PDO_MYSQL_LIBS"
for ac_func in mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:71054: checking for $ac_func" >&5
+echo "configure:70569: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 71059 "configure"
+#line 70574 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -71078,7 +70593,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:71082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:70597: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -71107,13 +70622,13 @@ done
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:71111: checking for PDO includes" >&5
+echo "configure:70626: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:71117: checking for PDO includes" >&5
+echo "configure:70632: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -71418,6 +70933,7 @@ EOF
am_i_shared=$PHP_PDO_MYSQL_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_mysql to build statically, but it
@@ -71426,7 +70942,7 @@ You either need to build pdo_mysql shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_mysql, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -71460,7 +70976,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking Oracle OCI support for PDO""... $ac_c" 1>&6
-echo "configure:71464: checking Oracle OCI support for PDO" >&5
+echo "configure:70980: checking Oracle OCI support for PDO" >&5
# Check whether --with-pdo-oci or --without-pdo-oci was given.
if test "${with_pdo_oci+set}" = set; then
withval="$with_pdo_oci"
@@ -71505,7 +71021,7 @@ echo "$ac_t""$ext_output" 1>&6
if test "$PHP_PDO_OCI" != "no"; then
echo $ac_n "checking Oracle Install-Dir""... $ac_c" 1>&6
-echo "configure:71509: checking Oracle Install-Dir" >&5
+echo "configure:71025: checking Oracle Install-Dir" >&5
if test "$PHP_PDO_OCI" = "yes" || test -z "$PHP_PDO_OCI"; then
PDO_OCI_DIR=$ORACLE_HOME
else
@@ -71514,7 +71030,7 @@ echo "configure:71509: checking Oracle Install-Dir" >&5
echo "$ac_t""$PDO_OCI_DIR :$PHP_PDO_OCI:" 1>&6
echo $ac_n "checking if that is sane""... $ac_c" 1>&6
-echo "configure:71518: checking if that is sane" >&5
+echo "configure:71034: checking if that is sane" >&5
if test -z "$PDO_OCI_DIR"; then
{ echo "configure: error:
You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
@@ -71525,7 +71041,7 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
echo $ac_n "checking size of long int""... $ac_c" 1>&6
-echo "configure:71529: checking size of long int" >&5
+echo "configure:71045: checking size of long int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -71533,7 +71049,7 @@ else
ac_cv_sizeof_long_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 71537 "configure"
+#line 71053 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -71544,7 +71060,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:71548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:71064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_int=`cat conftestval`
else
@@ -71564,7 +71080,7 @@ EOF
echo $ac_n "checking checking if we're at 64-bit platform""... $ac_c" 1>&6
-echo "configure:71568: checking checking if we're at 64-bit platform" >&5
+echo "configure:71084: checking checking if we're at 64-bit platform" >&5
if test "$ac_cv_sizeof_long_int" = "4" ; then
echo "$ac_t""no" 1>&6
TMP_PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib32"
@@ -71574,7 +71090,7 @@ echo "configure:71568: checking checking if we're at 64-bit platform" >&5
fi
echo $ac_n "checking OCI8 libraries dir""... $ac_c" 1>&6
-echo "configure:71578: checking OCI8 libraries dir" >&5
+echo "configure:71094: checking OCI8 libraries dir" >&5
if test -d "$PDO_OCI_DIR/lib" -a ! -d "$PDO_OCI_DIR/lib32"; then
PDO_OCI_LIB_DIR="$PDO_OCI_DIR/lib"
elif ! test -d "$PDO_OCI_DIR/lib" -a -d "$PDO_OCI_DIR/lib32"; then
@@ -71591,7 +71107,7 @@ echo "configure:71578: checking OCI8 libraries dir" >&5
PDO_OCI_IC_PREFIX="`echo $PDO_OCI_DIR | cut -d, -f2`"
PDO_OCI_IC_VERS="`echo $PDO_OCI_DIR | cut -d, -f3`"
echo $ac_n "checking for oci.h""... $ac_c" 1>&6
-echo "configure:71595: checking for oci.h" >&5
+echo "configure:71111: checking for oci.h" >&5
if test -f $PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client/oci.h ; then
if test "$PDO_OCI_IC_PREFIX/include/oracle/$PDO_OCI_IC_VERS/client" != "/usr/include"; then
@@ -71660,16 +71176,16 @@ echo "configure:71595: checking for oci.h" >&5
echo "$ac_t""$PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include" 1>&6
elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then
- if test "$PDO_OCI_PREFIX/sdk/include" != "/usr/include"; then
+ if test "$PDO_OCI_IC_PREFIX/sdk/include" != "/usr/include"; then
- if test -z "$PDO_OCI_PREFIX/sdk/include" || echo "$PDO_OCI_PREFIX/sdk/include" | grep '^/' >/dev/null ; then
- ai_p=$PDO_OCI_PREFIX/sdk/include
+ if test -z "$PDO_OCI_IC_PREFIX/sdk/include" || echo "$PDO_OCI_IC_PREFIX/sdk/include" | grep '^/' >/dev/null ; then
+ ai_p=$PDO_OCI_IC_PREFIX/sdk/include
else
- ep_dir="`echo $PDO_OCI_PREFIX/sdk/include|$SED 's%/*[^/][^/]*/*$%%'`"
+ ep_dir="`echo $PDO_OCI_IC_PREFIX/sdk/include|$SED 's%/*[^/][^/]*/*$%%'`"
ep_realdir="`(cd \"$ep_dir\" && pwd)`"
- ai_p="$ep_realdir/`basename \"$PDO_OCI_PREFIX/sdk/include\"`"
+ ai_p="$ep_realdir/`basename \"$PDO_OCI_IC_PREFIX/sdk/include\"`"
fi
@@ -71690,19 +71206,19 @@ echo "configure:71595: checking for oci.h" >&5
fi
- echo "$ac_t""$PDO_OCI_PREFIX/sdk/include" 1>&6
+ echo "$ac_t""$PDO_OCI_IC_PREFIX/sdk/include" 1>&6
elif test -f $PDO_OCI_IC_PREFIX/client/include/oci.h ; then
- if test "$PDO_OCI_PREFIX/client/include" != "/usr/include"; then
+ if test "$PDO_OCI_IC_PREFIX/client/include" != "/usr/include"; then
- if test -z "$PDO_OCI_PREFIX/client/include" || echo "$PDO_OCI_PREFIX/client/include" | grep '^/' >/dev/null ; then
- ai_p=$PDO_OCI_PREFIX/client/include
+ if test -z "$PDO_OCI_IC_PREFIX/client/include" || echo "$PDO_OCI_IC_PREFIX/client/include" | grep '^/' >/dev/null ; then
+ ai_p=$PDO_OCI_IC_PREFIX/client/include
else
- ep_dir="`echo $PDO_OCI_PREFIX/client/include|$SED 's%/*[^/][^/]*/*$%%'`"
+ ep_dir="`echo $PDO_OCI_IC_PREFIX/client/include|$SED 's%/*[^/][^/]*/*$%%'`"
ep_realdir="`(cd \"$ep_dir\" && pwd)`"
- ai_p="$ep_realdir/`basename \"$PDO_OCI_PREFIX/client/include\"`"
+ ai_p="$ep_realdir/`basename \"$PDO_OCI_IC_PREFIX/client/include\"`"
fi
@@ -71723,7 +71239,7 @@ echo "configure:71595: checking for oci.h" >&5
fi
- echo "$ac_t""$PDO_OCI_PREFIX/client/include" 1>&6
+ echo "$ac_t""$PDO_OCI_IC_PREFIX/client/include" 1>&6
else
{ echo "configure: error: I'm too dumb to figure out where the include dir is in your instant client install" 1>&2; exit 1; }
fi
@@ -72090,7 +71606,7 @@ echo "configure:71595: checking for oci.h" >&5
fi
echo $ac_n "checking Oracle version""... $ac_c" 1>&6
-echo "configure:72094: checking Oracle version" >&5
+echo "configure:71610: checking Oracle version" >&5
if test -s "$PDO_OCI_DIR/orainst/unix.rgs"; then
PDO_OCI_VERSION=`grep '"ocommon"' $PDO_OCI_DIR/orainst/unix.rgs | sed 's/ */:/g' | cut -d: -f 6 | cut -c 2-4`
test -z "$PDO_OCI_VERSION" && PDO_OCI_VERSION=7.3
@@ -72745,7 +72261,7 @@ echo "configure:72094: checking Oracle version" >&5
done
echo $ac_n "checking for OCIEnvCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:72749: checking for OCIEnvCreate in -lclntsh" >&5
+echo "configure:72265: checking for OCIEnvCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -72753,7 +72269,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 72757 "configure"
+#line 72273 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -72764,7 +72280,7 @@ int main() {
OCIEnvCreate()
; return 0; }
EOF
-if { (eval echo configure:72768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:72284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -72897,7 +72413,7 @@ fi
done
echo $ac_n "checking for OCIEnvNlsCreate in -lclntsh""... $ac_c" 1>&6
-echo "configure:72901: checking for OCIEnvNlsCreate in -lclntsh" >&5
+echo "configure:72417: checking for OCIEnvNlsCreate in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIEnvNlsCreate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -72905,7 +72421,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 72909 "configure"
+#line 72425 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -72916,7 +72432,7 @@ int main() {
OCIEnvNlsCreate()
; return 0; }
EOF
-if { (eval echo configure:72920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:72436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -73049,7 +72565,7 @@ fi
done
echo $ac_n "checking for OCILobIsTemporary in -lclntsh""... $ac_c" 1>&6
-echo "configure:73053: checking for OCILobIsTemporary in -lclntsh" >&5
+echo "configure:72569: checking for OCILobIsTemporary in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCILobIsTemporary | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -73057,7 +72573,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 73061 "configure"
+#line 72577 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -73068,7 +72584,7 @@ int main() {
OCILobIsTemporary()
; return 0; }
EOF
-if { (eval echo configure:73072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:72588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -73197,7 +72713,7 @@ else
done
echo $ac_n "checking for OCILobIsTemporary in -locijdbc8""... $ac_c" 1>&6
-echo "configure:73201: checking for OCILobIsTemporary in -locijdbc8" >&5
+echo "configure:72717: checking for OCILobIsTemporary in -locijdbc8" >&5
ac_lib_var=`echo ocijdbc8'_'OCILobIsTemporary | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -73205,7 +72721,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-locijdbc8 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 73209 "configure"
+#line 72725 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -73216,7 +72732,7 @@ int main() {
OCILobIsTemporary()
; return 0; }
EOF
-if { (eval echo configure:73220: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:72736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -73376,7 +72892,7 @@ fi
done
echo $ac_n "checking for OCICollAssign in -lclntsh""... $ac_c" 1>&6
-echo "configure:73380: checking for OCICollAssign in -lclntsh" >&5
+echo "configure:72896: checking for OCICollAssign in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCICollAssign | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -73384,7 +72900,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 73388 "configure"
+#line 72904 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -73395,7 +72911,7 @@ int main() {
OCICollAssign()
; return 0; }
EOF
-if { (eval echo configure:73399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:72915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -73528,7 +73044,7 @@ fi
done
echo $ac_n "checking for OCIStmtFetch2 in -lclntsh""... $ac_c" 1>&6
-echo "configure:73532: checking for OCIStmtFetch2 in -lclntsh" >&5
+echo "configure:73048: checking for OCIStmtFetch2 in -lclntsh" >&5
ac_lib_var=`echo clntsh'_'OCIStmtFetch2 | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -73536,7 +73052,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lclntsh $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 73540 "configure"
+#line 73056 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -73547,7 +73063,7 @@ int main() {
OCIStmtFetch2()
; return 0; }
EOF
-if { (eval echo configure:73551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:73067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -73586,13 +73102,13 @@ fi
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:73590: checking for PDO includes" >&5
+echo "configure:73106: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:73596: checking for PDO includes" >&5
+echo "configure:73112: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -73917,6 +73433,7 @@ EOF
am_i_shared=$PHP_PDO_OCI_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_oci to build statically, but it
@@ -73925,7 +73442,7 @@ You either need to build pdo_oci shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_oci, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -73946,7 +73463,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for ODBC v3 support for PDO""... $ac_c" 1>&6
-echo "configure:73950: checking for ODBC v3 support for PDO" >&5
+echo "configure:73467: checking for ODBC v3 support for PDO" >&5
# Check whether --with-pdo-odbc or --without-pdo-odbc was given.
if test "${with_pdo_odbc+set}" = set; then
withval="$with_pdo_odbc"
@@ -73997,13 +73514,13 @@ if test "$PHP_PDO_ODBC" != "no"; then
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:74001: checking for PDO includes" >&5
+echo "configure:73518: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:74007: checking for PDO includes" >&5
+echo "configure:73524: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -74024,7 +73541,7 @@ echo "$ac_t""$pdo_inc_path" 1>&6
echo $ac_n "checking for selected PDO ODBC flavour""... $ac_c" 1>&6
-echo "configure:74028: checking for selected PDO ODBC flavour" >&5
+echo "configure:73545: checking for selected PDO ODBC flavour" >&5
pdo_odbc_flavour="`echo $PHP_PDO_ODBC | cut -d, -f1`"
pdo_odbc_dir="`echo $PHP_PDO_ODBC | cut -d, -f2`"
@@ -74098,7 +73615,7 @@ echo "configure:74028: checking for selected PDO ODBC flavour" >&5
echo $ac_n "checking for odbc.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74102: checking for odbc.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73619: checking for odbc.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/odbc.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74112,7 +73629,7 @@ EOF
echo $ac_n "checking for odbcsdk.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74116: checking for odbcsdk.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73633: checking for odbcsdk.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/odbcsdk.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74126,7 +73643,7 @@ EOF
echo $ac_n "checking for iodbc.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74130: checking for iodbc.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73647: checking for iodbc.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/iodbc.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74140,7 +73657,7 @@ EOF
echo $ac_n "checking for sqlunix.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74144: checking for sqlunix.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73661: checking for sqlunix.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sqlunix.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74154,7 +73671,7 @@ EOF
echo $ac_n "checking for sqltypes.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74158: checking for sqltypes.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73675: checking for sqltypes.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sqltypes.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74168,7 +73685,7 @@ EOF
echo $ac_n "checking for sqlucode.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74172: checking for sqlucode.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73689: checking for sqlucode.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sqlucode.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74182,7 +73699,7 @@ EOF
echo $ac_n "checking for sql.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74186: checking for sql.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73703: checking for sql.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sql.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74196,7 +73713,7 @@ EOF
echo $ac_n "checking for isql.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74200: checking for isql.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73717: checking for isql.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/isql.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74210,7 +73727,7 @@ EOF
echo $ac_n "checking for sqlext.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74214: checking for sqlext.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73731: checking for sqlext.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sqlext.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74224,7 +73741,7 @@ EOF
echo $ac_n "checking for isqlext.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74228: checking for isqlext.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73745: checking for isqlext.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/isqlext.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74238,7 +73755,7 @@ EOF
echo $ac_n "checking for udbcext.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74242: checking for udbcext.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73759: checking for udbcext.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/udbcext.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74252,7 +73769,7 @@ EOF
echo $ac_n "checking for sqlcli1.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74256: checking for sqlcli1.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73773: checking for sqlcli1.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/sqlcli1.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74266,7 +73783,7 @@ EOF
echo $ac_n "checking for LibraryManager.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74270: checking for LibraryManager.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73787: checking for LibraryManager.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/LibraryManager.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74280,7 +73797,7 @@ EOF
echo $ac_n "checking for cli0core.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74284: checking for cli0core.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73801: checking for cli0core.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/cli0core.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74294,7 +73811,7 @@ EOF
echo $ac_n "checking for cli0ext.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74298: checking for cli0ext.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73815: checking for cli0ext.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/cli0ext.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74308,7 +73825,7 @@ EOF
echo $ac_n "checking for cli0cli.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74312: checking for cli0cli.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73829: checking for cli0cli.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/cli0cli.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74322,7 +73839,7 @@ EOF
echo $ac_n "checking for cli0defs.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74326: checking for cli0defs.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73843: checking for cli0defs.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/cli0defs.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74336,7 +73853,7 @@ EOF
echo $ac_n "checking for cli0env.h in $PDO_ODBC_INCDIR""... $ac_c" 1>&6
-echo "configure:74340: checking for cli0env.h in $PDO_ODBC_INCDIR" >&5
+echo "configure:73857: checking for cli0env.h in $PDO_ODBC_INCDIR" >&5
if test -f "$PDO_ODBC_INCDIR/cli0env.h"; then
php_pdo_have_header=yes
cat >> confdefs.h <<\EOF
@@ -74540,7 +74057,7 @@ EOF
done
echo $ac_n "checking for SQLBindCol in -l$pdo_odbc_def_lib""... $ac_c" 1>&6
-echo "configure:74544: checking for SQLBindCol in -l$pdo_odbc_def_lib" >&5
+echo "configure:74061: checking for SQLBindCol in -l$pdo_odbc_def_lib" >&5
ac_lib_var=`echo $pdo_odbc_def_lib'_'SQLBindCol | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -74548,7 +74065,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$pdo_odbc_def_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 74552 "configure"
+#line 74069 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -74559,7 +74076,7 @@ int main() {
SQLBindCol()
; return 0; }
EOF
-if { (eval echo configure:74563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -74673,7 +74190,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
done
echo $ac_n "checking for SQLAllocHandle in -l$pdo_odbc_def_lib""... $ac_c" 1>&6
-echo "configure:74677: checking for SQLAllocHandle in -l$pdo_odbc_def_lib" >&5
+echo "configure:74194: checking for SQLAllocHandle in -l$pdo_odbc_def_lib" >&5
ac_lib_var=`echo $pdo_odbc_def_lib'_'SQLAllocHandle | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -74681,7 +74198,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$pdo_odbc_def_lib $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 74685 "configure"
+#line 74202 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -74692,7 +74209,7 @@ int main() {
SQLAllocHandle()
; return 0; }
EOF
-if { (eval echo configure:74696: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75028,6 +74545,26 @@ EOF
PHP_VAR_SUBST="$PHP_VAR_SUBST PDO_ODBC_SHARED_LIBADD"
+
+ am_i_shared=$PHP_PDO_ODBC_SHARED
+ is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
+ if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
+ { echo "configure: error:
+You've configured extension pdo_odbc to build statically, but it
+depends on extension pdo, which you've configured to build shared.
+You either need to build pdo_odbc shared or build pdo statically for the
+build to be successful.
+" 1>&2; exit 1; }
+ fi
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
+ { echo "configure: error:
+You've configured extension pdo_odbc, which depends on extension pdo,
+but you've either not enabled pdo, or have disabled it.
+" 1>&2; exit 1; }
+ fi
+
+
fi
fi
@@ -75040,7 +74577,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for PostgreSQL support for PDO""... $ac_c" 1>&6
-echo "configure:75044: checking for PostgreSQL support for PDO" >&5
+echo "configure:74581: checking for PostgreSQL support for PDO" >&5
# Check whether --with-pdo-pgsql or --without-pdo-pgsql was given.
if test "${with_pdo_pgsql+set}" = set; then
withval="$with_pdo_pgsql"
@@ -75097,7 +74634,7 @@ if test "$PHP_PDO_PGSQL" != "no"; then
echo $ac_n "checking for pg_config""... $ac_c" 1>&6
-echo "configure:75101: checking for pg_config" >&5
+echo "configure:74638: checking for pg_config" >&5
for i in $PHP_PDO_PGSQL $PHP_PDO_PGSQL/bin /usr/local/pgsql/bin /usr/local/bin /usr/bin ""; do
if test -x $i/pg_config; then
PG_CONFIG="$i/pg_config"
@@ -75161,7 +74698,7 @@ EOF
echo $ac_n "checking for openssl dependencies""... $ac_c" 1>&6
-echo "configure:75165: checking for openssl dependencies" >&5
+echo "configure:74702: checking for openssl dependencies" >&5
if grep -q openssl $PGSQL_INCLUDE/libpq-fe.h ; then
echo "$ac_t""yes" 1>&6
if pkg-config openssl ; then
@@ -75175,7 +74712,7 @@ echo "configure:75165: checking for openssl dependencies" >&5
old_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -L$PGSQL_LIBDIR"
echo $ac_n "checking for PQescapeString in -lpq""... $ac_c" 1>&6
-echo "configure:75179: checking for PQescapeString in -lpq" >&5
+echo "configure:74716: checking for PQescapeString in -lpq" >&5
ac_lib_var=`echo pq'_'PQescapeString | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75183,7 +74720,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75187 "configure"
+#line 74724 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75194,7 +74731,7 @@ int main() {
PQescapeString()
; return 0; }
EOF
-if { (eval echo configure:75198: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74735: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75218,7 +74755,7 @@ else
fi
echo $ac_n "checking for PQsetnonblocking in -lpq""... $ac_c" 1>&6
-echo "configure:75222: checking for PQsetnonblocking in -lpq" >&5
+echo "configure:74759: checking for PQsetnonblocking in -lpq" >&5
ac_lib_var=`echo pq'_'PQsetnonblocking | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75226,7 +74763,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75230 "configure"
+#line 74767 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75237,7 +74774,7 @@ int main() {
PQsetnonblocking()
; return 0; }
EOF
-if { (eval echo configure:75241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74778: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75261,7 +74798,7 @@ else
fi
echo $ac_n "checking for PQcmdTuples in -lpq""... $ac_c" 1>&6
-echo "configure:75265: checking for PQcmdTuples in -lpq" >&5
+echo "configure:74802: checking for PQcmdTuples in -lpq" >&5
ac_lib_var=`echo pq'_'PQcmdTuples | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75269,7 +74806,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75273 "configure"
+#line 74810 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75280,7 +74817,7 @@ int main() {
PQcmdTuples()
; return 0; }
EOF
-if { (eval echo configure:75284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75304,7 +74841,7 @@ else
fi
echo $ac_n "checking for PQoidValue in -lpq""... $ac_c" 1>&6
-echo "configure:75308: checking for PQoidValue in -lpq" >&5
+echo "configure:74845: checking for PQoidValue in -lpq" >&5
ac_lib_var=`echo pq'_'PQoidValue | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75312,7 +74849,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75316 "configure"
+#line 74853 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75323,7 +74860,7 @@ int main() {
PQoidValue()
; return 0; }
EOF
-if { (eval echo configure:75327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75347,7 +74884,7 @@ else
fi
echo $ac_n "checking for PQclientEncoding in -lpq""... $ac_c" 1>&6
-echo "configure:75351: checking for PQclientEncoding in -lpq" >&5
+echo "configure:74888: checking for PQclientEncoding in -lpq" >&5
ac_lib_var=`echo pq'_'PQclientEncoding | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75355,7 +74892,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75359 "configure"
+#line 74896 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75366,7 +74903,7 @@ int main() {
PQclientEncoding()
; return 0; }
EOF
-if { (eval echo configure:75370: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75390,7 +74927,7 @@ else
fi
echo $ac_n "checking for PQparameterStatus in -lpq""... $ac_c" 1>&6
-echo "configure:75394: checking for PQparameterStatus in -lpq" >&5
+echo "configure:74931: checking for PQparameterStatus in -lpq" >&5
ac_lib_var=`echo pq'_'PQparameterStatus | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75398,7 +74935,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75402 "configure"
+#line 74939 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75409,7 +74946,7 @@ int main() {
PQparameterStatus()
; return 0; }
EOF
-if { (eval echo configure:75413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74950: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75433,7 +74970,7 @@ else
fi
echo $ac_n "checking for PQprotocolVersion in -lpq""... $ac_c" 1>&6
-echo "configure:75437: checking for PQprotocolVersion in -lpq" >&5
+echo "configure:74974: checking for PQprotocolVersion in -lpq" >&5
ac_lib_var=`echo pq'_'PQprotocolVersion | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75441,7 +74978,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75445 "configure"
+#line 74982 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75452,7 +74989,7 @@ int main() {
PQprotocolVersion()
; return 0; }
EOF
-if { (eval echo configure:75456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:74993: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75476,7 +75013,7 @@ else
fi
echo $ac_n "checking for PQtransactionStatus in -lpq""... $ac_c" 1>&6
-echo "configure:75480: checking for PQtransactionStatus in -lpq" >&5
+echo "configure:75017: checking for PQtransactionStatus in -lpq" >&5
ac_lib_var=`echo pq'_'PQtransactionStatus | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75484,7 +75021,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75488 "configure"
+#line 75025 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75495,7 +75032,7 @@ int main() {
PQtransactionStatus()
; return 0; }
EOF
-if { (eval echo configure:75499: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75519,7 +75056,7 @@ else
fi
echo $ac_n "checking for PQunescapeBytea in -lpq""... $ac_c" 1>&6
-echo "configure:75523: checking for PQunescapeBytea in -lpq" >&5
+echo "configure:75060: checking for PQunescapeBytea in -lpq" >&5
ac_lib_var=`echo pq'_'PQunescapeBytea | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75527,7 +75064,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75531 "configure"
+#line 75068 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75538,7 +75075,7 @@ int main() {
PQunescapeBytea()
; return 0; }
EOF
-if { (eval echo configure:75542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75562,7 +75099,7 @@ else
fi
echo $ac_n "checking for PQExecParams in -lpq""... $ac_c" 1>&6
-echo "configure:75566: checking for PQExecParams in -lpq" >&5
+echo "configure:75103: checking for PQExecParams in -lpq" >&5
ac_lib_var=`echo pq'_'PQExecParams | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75570,7 +75107,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75574 "configure"
+#line 75111 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75581,7 +75118,7 @@ int main() {
PQExecParams()
; return 0; }
EOF
-if { (eval echo configure:75585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75605,7 +75142,7 @@ else
fi
echo $ac_n "checking for PQresultErrorField in -lpq""... $ac_c" 1>&6
-echo "configure:75609: checking for PQresultErrorField in -lpq" >&5
+echo "configure:75146: checking for PQresultErrorField in -lpq" >&5
ac_lib_var=`echo pq'_'PQresultErrorField | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75613,7 +75150,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75617 "configure"
+#line 75154 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75624,7 +75161,7 @@ int main() {
PQresultErrorField()
; return 0; }
EOF
-if { (eval echo configure:75628: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75165: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75648,7 +75185,7 @@ else
fi
echo $ac_n "checking for pg_encoding_to_char in -lpq""... $ac_c" 1>&6
-echo "configure:75652: checking for pg_encoding_to_char in -lpq" >&5
+echo "configure:75189: checking for pg_encoding_to_char in -lpq" >&5
ac_lib_var=`echo pq'_'pg_encoding_to_char | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75656,7 +75193,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75660 "configure"
+#line 75197 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75667,7 +75204,7 @@ int main() {
pg_encoding_to_char()
; return 0; }
EOF
-if { (eval echo configure:75671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75692,7 +75229,7 @@ fi
echo $ac_n "checking for PQprepare in -lpq""... $ac_c" 1>&6
-echo "configure:75696: checking for PQprepare in -lpq" >&5
+echo "configure:75233: checking for PQprepare in -lpq" >&5
ac_lib_var=`echo pq'_'PQprepare | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -75700,7 +75237,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 75704 "configure"
+#line 75241 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -75711,7 +75248,7 @@ int main() {
PQprepare()
; return 0; }
EOF
-if { (eval echo configure:75715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:75252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -75873,13 +75410,13 @@ fi
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:75877: checking for PDO includes" >&5
+echo "configure:75414: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:75883: checking for PDO includes" >&5
+echo "configure:75420: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -76184,6 +75721,7 @@ EOF
am_i_shared=$PHP_PDO_PGSQL_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_pgsql to build statically, but it
@@ -76192,7 +75730,7 @@ You either need to build pdo_pgsql shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_pgsql, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -76210,7 +75748,7 @@ if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for sqlite 3 driver for PDO""... $ac_c" 1>&6
-echo "configure:76214: checking for sqlite 3 driver for PDO" >&5
+echo "configure:75752: checking for sqlite 3 driver for PDO" >&5
# Check whether --with-pdo-sqlite or --without-pdo-sqlite was given.
if test "${with_pdo_sqlite+set}" = set; then
withval="$with_pdo_sqlite"
@@ -76253,18 +75791,64 @@ echo "$ac_t""$ext_output" 1>&6
+
+
+echo $ac_n "checking for sqlite 3 support for PDO""... $ac_c" 1>&6
+echo "configure:75798: checking for sqlite 3 support for PDO" >&5
+# Check whether --with-pdo-sqlite or --without-pdo-sqlite was given.
+if test "${with_pdo_sqlite+set}" = set; then
+ withval="$with_pdo_sqlite"
+ PHP_PDO_SQLITE=$withval
+else
+
+ PHP_PDO_SQLITE=no
+
+ if test "$PHP_ENABLE_ALL" && test "yes" = "yes"; then
+ PHP_PDO_SQLITE=$PHP_ENABLE_ALL
+ fi
+
+fi
+
+
+
+ext_output="yes, shared"
+ext_shared=yes
+case $PHP_PDO_SQLITE in
+shared,*)
+ PHP_PDO_SQLITE=`echo "$PHP_PDO_SQLITE"|$SED 's/^shared,//'`
+ ;;
+shared)
+ PHP_PDO_SQLITE=yes
+ ;;
+no)
+ ext_output=no
+ ext_shared=no
+ ;;
+*)
+ ext_output=yes
+ ext_shared=no
+ ;;
+esac
+
+
+
+echo "$ac_t""$ext_output" 1>&6
+
+
+
+
if test "$PHP_PDO_SQLITE" != "no"; then
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:76262: checking for PDO includes" >&5
+echo "configure:75846: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:76268: checking for PDO includes" >&5
+echo "configure:75852: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -76293,7 +75877,7 @@ echo "$ac_t""$pdo_inc_path" 1>&6
PDO_SQLITE_DIR=$PHP_PDO_SQLITE
else # search default path list
echo $ac_n "checking for sqlite3 files in default path""... $ac_c" 1>&6
-echo "configure:76297: checking for sqlite3 files in default path" >&5
+echo "configure:75881: checking for sqlite3 files in default path" >&5
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
PDO_SQLITE_DIR=$i
@@ -76438,7 +76022,7 @@ echo "configure:76297: checking for sqlite3 files in default path" >&5
done
echo $ac_n "checking for $LIBSYMBOL in -l$LIBNAME""... $ac_c" 1>&6
-echo "configure:76442: checking for $LIBSYMBOL in -l$LIBNAME" >&5
+echo "configure:76026: checking for $LIBSYMBOL in -l$LIBNAME" >&5
ac_lib_var=`echo $LIBNAME'_'$LIBSYMBOL | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -76446,7 +76030,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 76450 "configure"
+#line 76034 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -76457,7 +76041,7 @@ int main() {
$LIBSYMBOL()
; return 0; }
EOF
-if { (eval echo configure:76461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:76045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -76685,7 +76269,7 @@ fi
done
echo $ac_n "checking for sqlite3_key in -lsqlite3""... $ac_c" 1>&6
-echo "configure:76689: checking for sqlite3_key in -lsqlite3" >&5
+echo "configure:76273: checking for sqlite3_key in -lsqlite3" >&5
ac_lib_var=`echo sqlite3'_'sqlite3_key | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -76693,7 +76277,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsqlite3 $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 76697 "configure"
+#line 76281 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -76704,7 +76288,7 @@ int main() {
sqlite3_key()
; return 0; }
EOF
-if { (eval echo configure:76708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:76292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77329,7 +76913,7 @@ EOF
echo $ac_n "checking size of char *""... $ac_c" 1>&6
-echo "configure:77333: checking size of char *" >&5
+echo "configure:76917: checking size of char *" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_char_p'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -77337,7 +76921,7 @@ else
ac_cv_sizeof_char_p=4
else
cat > conftest.$ac_ext <<EOF
-#line 77341 "configure"
+#line 76925 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -77348,7 +76932,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:77352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:76936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_char_p=`cat conftestval`
else
@@ -77395,12 +76979,12 @@ EOF
for ac_func in usleep nanosleep
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:77399: checking for $ac_func" >&5
+echo "configure:76983: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 77404 "configure"
+#line 76988 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -77423,7 +77007,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:77427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -77451,17 +77035,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:77455: checking for $ac_hdr" >&5
+echo "configure:77039: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 77460 "configure"
+#line 77044 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:77465: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:77049: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -77583,7 +77167,7 @@ done
done
echo $ac_n "checking for fdatasync in -lrt""... $ac_c" 1>&6
-echo "configure:77587: checking for fdatasync in -lrt" >&5
+echo "configure:77171: checking for fdatasync in -lrt" >&5
ac_lib_var=`echo rt'_'fdatasync | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77591,7 +77175,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lrt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77595 "configure"
+#line 77179 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -77602,7 +77186,7 @@ int main() {
fdatasync()
; return 0; }
EOF
-if { (eval echo configure:77606: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77660,6 +77244,7 @@ fi
am_i_shared=$PHP_PDO_SQLITE_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension pdo_sqlite to build statically, but it
@@ -77668,7 +77253,7 @@ You either need to build pdo_sqlite shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension pdo_sqlite, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -77686,7 +77271,7 @@ fi
echo $ac_n "checking for PostgreSQL support""... $ac_c" 1>&6
-echo "configure:77690: checking for PostgreSQL support" >&5
+echo "configure:77275: checking for PostgreSQL support" >&5
# Check whether --with-pgsql or --without-pgsql was given.
if test "${with_pgsql+set}" = set; then
withval="$with_pgsql"
@@ -77743,7 +77328,7 @@ if test "$PHP_PGSQL" != "no"; then
echo $ac_n "checking for pg_config""... $ac_c" 1>&6
-echo "configure:77747: checking for pg_config" >&5
+echo "configure:77332: checking for pg_config" >&5
for i in $PHP_PGSQL $PHP_PGSQL/bin /usr/local/pgsql/bin /usr/local/bin /usr/bin ""; do
if test -x $i/pg_config; then
PG_CONFIG="$i/pg_config"
@@ -77811,7 +77396,7 @@ EOF
old_LDFLAGS=$LDFLAGS
LDFLAGS="$LDFLAGS -L$PGSQL_LIBDIR"
echo $ac_n "checking for PQescapeString in -lpq""... $ac_c" 1>&6
-echo "configure:77815: checking for PQescapeString in -lpq" >&5
+echo "configure:77400: checking for PQescapeString in -lpq" >&5
ac_lib_var=`echo pq'_'PQescapeString | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77819,7 +77404,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77823 "configure"
+#line 77408 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -77830,7 +77415,7 @@ int main() {
PQescapeString()
; return 0; }
EOF
-if { (eval echo configure:77834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77419: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77854,7 +77439,7 @@ else
fi
echo $ac_n "checking for PQunescapeBytea in -lpq""... $ac_c" 1>&6
-echo "configure:77858: checking for PQunescapeBytea in -lpq" >&5
+echo "configure:77443: checking for PQunescapeBytea in -lpq" >&5
ac_lib_var=`echo pq'_'PQunescapeBytea | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77862,7 +77447,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77866 "configure"
+#line 77451 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -77873,7 +77458,7 @@ int main() {
PQunescapeBytea()
; return 0; }
EOF
-if { (eval echo configure:77877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77462: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77897,7 +77482,7 @@ else
fi
echo $ac_n "checking for PQsetnonblocking in -lpq""... $ac_c" 1>&6
-echo "configure:77901: checking for PQsetnonblocking in -lpq" >&5
+echo "configure:77486: checking for PQsetnonblocking in -lpq" >&5
ac_lib_var=`echo pq'_'PQsetnonblocking | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77905,7 +77490,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77909 "configure"
+#line 77494 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -77916,7 +77501,7 @@ int main() {
PQsetnonblocking()
; return 0; }
EOF
-if { (eval echo configure:77920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77940,7 +77525,7 @@ else
fi
echo $ac_n "checking for PQcmdTuples in -lpq""... $ac_c" 1>&6
-echo "configure:77944: checking for PQcmdTuples in -lpq" >&5
+echo "configure:77529: checking for PQcmdTuples in -lpq" >&5
ac_lib_var=`echo pq'_'PQcmdTuples | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77948,7 +77533,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77952 "configure"
+#line 77537 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -77959,7 +77544,7 @@ int main() {
PQcmdTuples()
; return 0; }
EOF
-if { (eval echo configure:77963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77548: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -77983,7 +77568,7 @@ else
fi
echo $ac_n "checking for PQoidValue in -lpq""... $ac_c" 1>&6
-echo "configure:77987: checking for PQoidValue in -lpq" >&5
+echo "configure:77572: checking for PQoidValue in -lpq" >&5
ac_lib_var=`echo pq'_'PQoidValue | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -77991,7 +77576,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 77995 "configure"
+#line 77580 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78002,7 +77587,7 @@ int main() {
PQoidValue()
; return 0; }
EOF
-if { (eval echo configure:78006: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78026,7 +77611,7 @@ else
fi
echo $ac_n "checking for PQclientEncoding in -lpq""... $ac_c" 1>&6
-echo "configure:78030: checking for PQclientEncoding in -lpq" >&5
+echo "configure:77615: checking for PQclientEncoding in -lpq" >&5
ac_lib_var=`echo pq'_'PQclientEncoding | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78034,7 +77619,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78038 "configure"
+#line 77623 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78045,7 +77630,7 @@ int main() {
PQclientEncoding()
; return 0; }
EOF
-if { (eval echo configure:78049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78069,7 +77654,7 @@ else
fi
echo $ac_n "checking for PQparameterStatus in -lpq""... $ac_c" 1>&6
-echo "configure:78073: checking for PQparameterStatus in -lpq" >&5
+echo "configure:77658: checking for PQparameterStatus in -lpq" >&5
ac_lib_var=`echo pq'_'PQparameterStatus | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78077,7 +77662,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78081 "configure"
+#line 77666 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78088,7 +77673,7 @@ int main() {
PQparameterStatus()
; return 0; }
EOF
-if { (eval echo configure:78092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78112,7 +77697,7 @@ else
fi
echo $ac_n "checking for PQprotocolVersion in -lpq""... $ac_c" 1>&6
-echo "configure:78116: checking for PQprotocolVersion in -lpq" >&5
+echo "configure:77701: checking for PQprotocolVersion in -lpq" >&5
ac_lib_var=`echo pq'_'PQprotocolVersion | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78120,7 +77705,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78124 "configure"
+#line 77709 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78131,7 +77716,7 @@ int main() {
PQprotocolVersion()
; return 0; }
EOF
-if { (eval echo configure:78135: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78155,7 +77740,7 @@ else
fi
echo $ac_n "checking for PQtransactionStatus in -lpq""... $ac_c" 1>&6
-echo "configure:78159: checking for PQtransactionStatus in -lpq" >&5
+echo "configure:77744: checking for PQtransactionStatus in -lpq" >&5
ac_lib_var=`echo pq'_'PQtransactionStatus | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78163,7 +77748,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78167 "configure"
+#line 77752 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78174,7 +77759,7 @@ int main() {
PQtransactionStatus()
; return 0; }
EOF
-if { (eval echo configure:78178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78198,7 +77783,7 @@ else
fi
echo $ac_n "checking for PQexecParams in -lpq""... $ac_c" 1>&6
-echo "configure:78202: checking for PQexecParams in -lpq" >&5
+echo "configure:77787: checking for PQexecParams in -lpq" >&5
ac_lib_var=`echo pq'_'PQexecParams | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78206,7 +77791,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78210 "configure"
+#line 77795 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78217,7 +77802,7 @@ int main() {
PQexecParams()
; return 0; }
EOF
-if { (eval echo configure:78221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78241,7 +77826,7 @@ else
fi
echo $ac_n "checking for PQprepare in -lpq""... $ac_c" 1>&6
-echo "configure:78245: checking for PQprepare in -lpq" >&5
+echo "configure:77830: checking for PQprepare in -lpq" >&5
ac_lib_var=`echo pq'_'PQprepare | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78249,7 +77834,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78253 "configure"
+#line 77838 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78260,7 +77845,7 @@ int main() {
PQprepare()
; return 0; }
EOF
-if { (eval echo configure:78264: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78284,7 +77869,7 @@ else
fi
echo $ac_n "checking for PQexecPrepared in -lpq""... $ac_c" 1>&6
-echo "configure:78288: checking for PQexecPrepared in -lpq" >&5
+echo "configure:77873: checking for PQexecPrepared in -lpq" >&5
ac_lib_var=`echo pq'_'PQexecPrepared | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78292,7 +77877,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78296 "configure"
+#line 77881 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78303,7 +77888,7 @@ int main() {
PQexecPrepared()
; return 0; }
EOF
-if { (eval echo configure:78307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78327,7 +77912,7 @@ else
fi
echo $ac_n "checking for PQresultErrorField in -lpq""... $ac_c" 1>&6
-echo "configure:78331: checking for PQresultErrorField in -lpq" >&5
+echo "configure:77916: checking for PQresultErrorField in -lpq" >&5
ac_lib_var=`echo pq'_'PQresultErrorField | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78335,7 +77920,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78339 "configure"
+#line 77924 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78346,7 +77931,7 @@ int main() {
PQresultErrorField()
; return 0; }
EOF
-if { (eval echo configure:78350: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78370,7 +77955,7 @@ else
fi
echo $ac_n "checking for PQsendQueryParams in -lpq""... $ac_c" 1>&6
-echo "configure:78374: checking for PQsendQueryParams in -lpq" >&5
+echo "configure:77959: checking for PQsendQueryParams in -lpq" >&5
ac_lib_var=`echo pq'_'PQsendQueryParams | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78378,7 +77963,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78382 "configure"
+#line 77967 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78389,7 +77974,7 @@ int main() {
PQsendQueryParams()
; return 0; }
EOF
-if { (eval echo configure:78393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:77978: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78413,7 +77998,7 @@ else
fi
echo $ac_n "checking for PQsendPrepare in -lpq""... $ac_c" 1>&6
-echo "configure:78417: checking for PQsendPrepare in -lpq" >&5
+echo "configure:78002: checking for PQsendPrepare in -lpq" >&5
ac_lib_var=`echo pq'_'PQsendPrepare | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78421,7 +78006,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78425 "configure"
+#line 78010 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78432,7 +78017,7 @@ int main() {
PQsendPrepare()
; return 0; }
EOF
-if { (eval echo configure:78436: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78456,7 +78041,7 @@ else
fi
echo $ac_n "checking for PQsendQueryPrepared in -lpq""... $ac_c" 1>&6
-echo "configure:78460: checking for PQsendQueryPrepared in -lpq" >&5
+echo "configure:78045: checking for PQsendQueryPrepared in -lpq" >&5
ac_lib_var=`echo pq'_'PQsendQueryPrepared | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78464,7 +78049,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78468 "configure"
+#line 78053 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78475,7 +78060,7 @@ int main() {
PQsendQueryPrepared()
; return 0; }
EOF
-if { (eval echo configure:78479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78064: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78499,7 +78084,7 @@ else
fi
echo $ac_n "checking for PQputCopyData in -lpq""... $ac_c" 1>&6
-echo "configure:78503: checking for PQputCopyData in -lpq" >&5
+echo "configure:78088: checking for PQputCopyData in -lpq" >&5
ac_lib_var=`echo pq'_'PQputCopyData | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78507,7 +78092,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78511 "configure"
+#line 78096 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78518,7 +78103,7 @@ int main() {
PQputCopyData()
; return 0; }
EOF
-if { (eval echo configure:78522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78542,7 +78127,7 @@ else
fi
echo $ac_n "checking for PQputCopyEnd in -lpq""... $ac_c" 1>&6
-echo "configure:78546: checking for PQputCopyEnd in -lpq" >&5
+echo "configure:78131: checking for PQputCopyEnd in -lpq" >&5
ac_lib_var=`echo pq'_'PQputCopyEnd | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78550,7 +78135,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78554 "configure"
+#line 78139 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78561,7 +78146,7 @@ int main() {
PQputCopyEnd()
; return 0; }
EOF
-if { (eval echo configure:78565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78585,7 +78170,7 @@ else
fi
echo $ac_n "checking for PQgetCopyData in -lpq""... $ac_c" 1>&6
-echo "configure:78589: checking for PQgetCopyData in -lpq" >&5
+echo "configure:78174: checking for PQgetCopyData in -lpq" >&5
ac_lib_var=`echo pq'_'PQgetCopyData | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78593,7 +78178,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78597 "configure"
+#line 78182 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78604,7 +78189,7 @@ int main() {
PQgetCopyData()
; return 0; }
EOF
-if { (eval echo configure:78608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78628,7 +78213,7 @@ else
fi
echo $ac_n "checking for PQsetErrorVerbosity in -lpq""... $ac_c" 1>&6
-echo "configure:78632: checking for PQsetErrorVerbosity in -lpq" >&5
+echo "configure:78217: checking for PQsetErrorVerbosity in -lpq" >&5
ac_lib_var=`echo pq'_'PQsetErrorVerbosity | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78636,7 +78221,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78640 "configure"
+#line 78225 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78647,7 +78232,7 @@ int main() {
PQsetErrorVerbosity()
; return 0; }
EOF
-if { (eval echo configure:78651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78236: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -78671,7 +78256,7 @@ else
fi
echo $ac_n "checking for pg_encoding_to_char in -lpq""... $ac_c" 1>&6
-echo "configure:78675: checking for pg_encoding_to_char in -lpq" >&5
+echo "configure:78260: checking for pg_encoding_to_char in -lpq" >&5
ac_lib_var=`echo pq'_'pg_encoding_to_char | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -78679,7 +78264,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lpq $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 78683 "configure"
+#line 78268 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -78690,7 +78275,7 @@ int main() {
pg_encoding_to_char()
; return 0; }
EOF
-if { (eval echo configure:78694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:78279: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -79137,7 +78722,7 @@ fi
echo $ac_n "checking whether to enable POSIX-like functions""... $ac_c" 1>&6
-echo "configure:79141: checking whether to enable POSIX-like functions" >&5
+echo "configure:78726: checking whether to enable POSIX-like functions" >&5
# Check whether --enable-posix or --disable-posix was given.
if test "${enable_posix+set}" = set; then
enableval="$enable_posix"
@@ -79471,17 +79056,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:79475: checking for $ac_hdr" >&5
+echo "configure:79060: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 79480 "configure"
+#line 79065 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:79485: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:79070: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -79511,12 +79096,12 @@ done
for ac_func in seteuid setegid setsid getsid setpgid getpgid ctermid mkfifo mknod getrlimit getlogin getgroups makedev
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:79515: checking for $ac_func" >&5
+echo "configure:79100: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 79520 "configure"
+#line 79105 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -79539,7 +79124,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:79543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:79128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -79569,7 +79154,7 @@ fi
echo $ac_n "checking for PSPELL support""... $ac_c" 1>&6
-echo "configure:79573: checking for PSPELL support" >&5
+echo "configure:79158: checking for PSPELL support" >&5
# Check whether --with-pspell or --without-pspell was given.
if test "${with_pspell+set}" = set; then
withval="$with_pspell"
@@ -80109,7 +79694,7 @@ EOF
done
echo $ac_n "checking for new_aspell_config in -laspell""... $ac_c" 1>&6
-echo "configure:80113: checking for new_aspell_config in -laspell" >&5
+echo "configure:79698: checking for new_aspell_config in -laspell" >&5
ac_lib_var=`echo aspell'_'new_aspell_config | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -80117,7 +79702,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-laspell $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 80121 "configure"
+#line 79706 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -80128,7 +79713,7 @@ int main() {
new_aspell_config()
; return 0; }
EOF
-if { (eval echo configure:80132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:79717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -80300,7 +79885,7 @@ fi
echo $ac_n "checking for libedit readline replacement""... $ac_c" 1>&6
-echo "configure:80304: checking for libedit readline replacement" >&5
+echo "configure:79889: checking for libedit readline replacement" >&5
# Check whether --with-libedit or --without-libedit was given.
if test "${with_libedit+set}" = set; then
withval="$with_libedit"
@@ -80347,7 +79932,7 @@ if test "$PHP_LIBEDIT" = "no"; then
echo $ac_n "checking for readline support""... $ac_c" 1>&6
-echo "configure:80351: checking for readline support" >&5
+echo "configure:79936: checking for readline support" >&5
# Check whether --with-readline or --without-readline was given.
if test "${with_readline+set}" = set; then
withval="$with_readline"
@@ -80434,7 +80019,7 @@ if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then
PHP_READLINE_LIBS=""
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:80438: checking for tgetent in -lncurses" >&5
+echo "configure:80023: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -80442,7 +80027,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 80446 "configure"
+#line 80031 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -80453,7 +80038,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:80457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80042: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -80498,7 +80083,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:80502: checking for tgetent in -ltermcap" >&5
+echo "configure:80087: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -80506,7 +80091,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermcap $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 80510 "configure"
+#line 80095 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -80517,7 +80102,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:80521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80106: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -80663,7 +80248,7 @@ fi
done
echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
-echo "configure:80667: checking for readline in -lreadline" >&5
+echo "configure:80252: checking for readline in -lreadline" >&5
ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -80671,7 +80256,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lreadline $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 80675 "configure"
+#line 80260 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -80682,7 +80267,7 @@ int main() {
readline()
; return 0; }
EOF
-if { (eval echo configure:80686: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80271: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -80909,7 +80494,7 @@ fi
done
echo $ac_n "checking for rl_callback_read_char in -lreadline""... $ac_c" 1>&6
-echo "configure:80913: checking for rl_callback_read_char in -lreadline" >&5
+echo "configure:80498: checking for rl_callback_read_char in -lreadline" >&5
ac_lib_var=`echo readline'_'rl_callback_read_char | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -80917,7 +80502,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lreadline $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 80921 "configure"
+#line 80506 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -80928,7 +80513,7 @@ int main() {
rl_callback_read_char()
; return 0; }
EOF
-if { (eval echo configure:80932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -81061,7 +80646,7 @@ fi
done
echo $ac_n "checking for add_history in -lhistory""... $ac_c" 1>&6
-echo "configure:81065: checking for add_history in -lhistory" >&5
+echo "configure:80650: checking for add_history in -lhistory" >&5
ac_lib_var=`echo history'_'add_history | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -81069,7 +80654,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lhistory $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 81073 "configure"
+#line 80658 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -81080,7 +80665,7 @@ int main() {
add_history()
; return 0; }
EOF
-if { (eval echo configure:81084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80669: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -81258,7 +80843,7 @@ elif test "$PHP_LIBEDIT" != "no"; then
echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:81262: checking for tgetent in -lncurses" >&5
+echo "configure:80847: checking for tgetent in -lncurses" >&5
ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -81266,7 +80851,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lncurses $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 81270 "configure"
+#line 80855 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -81277,7 +80862,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:81281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80866: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -81321,7 +80906,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:81325: checking for tgetent in -ltermcap" >&5
+echo "configure:80910: checking for tgetent in -ltermcap" >&5
ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -81329,7 +80914,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltermcap $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 81333 "configure"
+#line 80918 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -81340,7 +80925,7 @@ int main() {
tgetent()
; return 0; }
EOF
-if { (eval echo configure:81344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:80929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -81485,7 +81070,7 @@ fi
done
echo $ac_n "checking for readline in -ledit""... $ac_c" 1>&6
-echo "configure:81489: checking for readline in -ledit" >&5
+echo "configure:81074: checking for readline in -ledit" >&5
ac_lib_var=`echo edit'_'readline | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -81493,7 +81078,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ledit $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 81497 "configure"
+#line 81082 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -81504,7 +81089,7 @@ int main() {
readline()
; return 0; }
EOF
-if { (eval echo configure:81508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:81093: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -81644,12 +81229,12 @@ if test "$PHP_READLINE" != "no" || test "$PHP_LIBEDIT" != "no"; then
for ac_func in rl_completion_matches
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:81648: checking for $ac_func" >&5
+echo "configure:81233: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 81653 "configure"
+#line 81238 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -81672,7 +81257,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:81676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:81261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -81986,7 +81571,7 @@ fi
echo $ac_n "checking for recode support""... $ac_c" 1>&6
-echo "configure:81990: checking for recode support" >&5
+echo "configure:81575: checking for recode support" >&5
# Check whether --with-recode or --without-recode was given.
if test "${with_recode+set}" = set; then
withval="$with_recode"
@@ -82152,7 +81737,7 @@ if test "$PHP_RECODE" != "no"; then
done
echo $ac_n "checking for recode_format_table in -lrecode""... $ac_c" 1>&6
-echo "configure:82156: checking for recode_format_table in -lrecode" >&5
+echo "configure:81741: checking for recode_format_table in -lrecode" >&5
ac_lib_var=`echo recode'_'recode_format_table | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -82160,7 +81745,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lrecode $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 82164 "configure"
+#line 81749 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -82171,7 +81756,7 @@ int main() {
recode_format_table()
; return 0; }
EOF
-if { (eval echo configure:82175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:81760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -82300,7 +81885,7 @@ else
LDFLAGS="$LDFLAGS -L$RECODE_DIR/$RECODE_LIB"
LIBS="$LIBS -lrecode"
cat > conftest.$ac_ext <<EOF
-#line 82304 "configure"
+#line 81889 "configure"
#include "confdefs.h"
char *program_name;
@@ -82311,7 +81896,7 @@ recode_format_table();
; return 0; }
EOF
-if { (eval echo configure:82315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:81900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
@@ -82473,17 +82058,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:82477: checking for $ac_hdr" >&5
+echo "configure:82062: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 82482 "configure"
+#line 82067 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:82487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:82072: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -82796,7 +82381,7 @@ fi
echo $ac_n "checking whether to enable reflection support""... $ac_c" 1>&6
-echo "configure:82800: checking whether to enable reflection support" >&5
+echo "configure:82385: checking whether to enable reflection support" >&5
# Check whether --enable-reflection or --disable-reflection was given.
if test "${enable_reflection+set}" = set; then
enableval="$enable_reflection"
@@ -83113,7 +82698,7 @@ fi
echo $ac_n "checking whether to enable PHP sessions""... $ac_c" 1>&6
-echo "configure:83117: checking whether to enable PHP sessions" >&5
+echo "configure:82702: checking whether to enable PHP sessions" >&5
# Check whether --enable-session or --disable-session was given.
if test "${enable_session+set}" = set; then
enableval="$enable_session"
@@ -83159,7 +82744,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking for mm support""... $ac_c" 1>&6
-echo "configure:83163: checking for mm support" >&5
+echo "configure:82748: checking for mm support" >&5
# Check whether --with-mm or --without-mm was given.
if test "${with_mm+set}" = set; then
withval="$with_mm"
@@ -83184,7 +82769,7 @@ echo "$ac_t""$ext_output" 1>&6
if test "$PHP_SESSION" != "no"; then
echo $ac_n "checking whether pwrite works""... $ac_c" 1>&6
-echo "configure:83188: checking whether pwrite works" >&5
+echo "configure:82773: checking whether pwrite works" >&5
if eval "test \"`echo '$''{'ac_cv_pwrite'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -83196,7 +82781,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 83200 "configure"
+#line 82785 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -83217,7 +82802,7 @@ else
EOF
-if { (eval echo configure:83221: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:82806: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_pwrite=yes
@@ -83242,7 +82827,7 @@ fi
else
cat > conftest.$ac_ext <<EOF
-#line 83246 "configure"
+#line 82831 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -83263,7 +82848,7 @@ ssize_t pwrite(int, void *, size_t, off64_t);
EOF
-if { (eval echo configure:83267: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:82852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_pwrite=yes
@@ -83304,7 +82889,7 @@ EOF
echo $ac_n "checking whether pread works""... $ac_c" 1>&6
-echo "configure:83308: checking whether pread works" >&5
+echo "configure:82893: checking whether pread works" >&5
if eval "test \"`echo '$''{'ac_cv_pread'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -83317,7 +82902,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 83321 "configure"
+#line 82906 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -83337,7 +82922,7 @@ else
}
EOF
-if { (eval echo configure:83341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:82926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_pread=yes
@@ -83364,7 +82949,7 @@ fi
else
cat > conftest.$ac_ext <<EOF
-#line 83368 "configure"
+#line 82953 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -83384,7 +82969,7 @@ ssize_t pread(int, void *, size_t, off64_t);
}
EOF
-if { (eval echo configure:83388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:82973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_pread=yes
@@ -83897,7 +83482,7 @@ fi
echo $ac_n "checking whether to enable shmop support""... $ac_c" 1>&6
-echo "configure:83901: checking whether to enable shmop support" >&5
+echo "configure:83486: checking whether to enable shmop support" >&5
# Check whether --enable-shmop or --disable-shmop was given.
if test "${enable_shmop+set}" = set; then
enableval="$enable_shmop"
@@ -84232,7 +83817,7 @@ fi
echo $ac_n "checking whether to enable SimpleXML support""... $ac_c" 1>&6
-echo "configure:84236: checking whether to enable SimpleXML support" >&5
+echo "configure:83821: checking whether to enable SimpleXML support" >&5
# Check whether --enable-simplexml or --disable-simplexml was given.
if test "${enable_simplexml+set}" = set; then
enableval="$enable_simplexml"
@@ -84279,7 +83864,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:84283: checking libxml2 install dir" >&5
+echo "configure:83868: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -84310,7 +83895,7 @@ if test "$PHP_SIMPLEXML" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:84314: checking for xml2-config path" >&5
+echo "configure:83899: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -84467,7 +84052,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:84471: checking whether libxml build works" >&5
+echo "configure:84056: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -84483,7 +84068,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 84487 "configure"
+#line 84072 "configure"
#include "confdefs.h"
@@ -84494,7 +84079,7 @@ else
}
EOF
-if { (eval echo configure:84498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:84083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -84829,6 +84414,7 @@ else
am_i_shared=$PHP_SIMPLEXML_SHARED
is_it_shared=$PHP_LIBXML_SHARED
+ is_it_enabled=$PHP_LIBXML
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension simplexml to build statically, but it
@@ -84837,7 +84423,7 @@ You either need to build simplexml shared or build libxml statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension simplexml, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
@@ -84847,6 +84433,7 @@ but you've either not enabled libxml, or have disabled it.
am_i_shared=$PHP_SIMPLEXML_SHARED
is_it_shared=$PHP_SPL_SHARED
+ is_it_enabled=$PHP_SPL
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension simplexml to build statically, but it
@@ -84855,7 +84442,7 @@ You either need to build simplexml shared or build spl statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "xtrue" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "xtrue" != "xtrue"; then
{ echo "configure: error:
You've configured extension simplexml, which depends on extension spl,
but you've either not enabled spl, or have disabled it.
@@ -84868,7 +84455,7 @@ fi
echo $ac_n "checking for SNMP support""... $ac_c" 1>&6
-echo "configure:84872: checking for SNMP support" >&5
+echo "configure:84459: checking for SNMP support" >&5
# Check whether --with-snmp or --without-snmp was given.
if test "${with_snmp+set}" = set; then
withval="$with_snmp"
@@ -84914,7 +84501,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking OpenSSL dir for SNMP""... $ac_c" 1>&6
-echo "configure:84918: checking OpenSSL dir for SNMP" >&5
+echo "configure:84505: checking OpenSSL dir for SNMP" >&5
# Check whether --with-openssl-dir or --without-openssl-dir was given.
if test "${with_openssl_dir+set}" = set; then
withval="$with_openssl_dir"
@@ -84942,7 +84529,7 @@ if test "$PHP_SNMP" != "no"; then
# Extract the first word of "net-snmp-config", so it can be a program name with args.
set dummy net-snmp-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:84946: checking for $ac_word" >&5
+echo "configure:84533: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_SNMP_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -85142,17 +84729,17 @@ EOF
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:85146: checking for $ac_hdr" >&5
+echo "configure:84733: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 85151 "configure"
+#line 84738 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:85156: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:84743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -85180,9 +84767,9 @@ done
if test "$ac_cv_header_default_store_h" = "yes"; then
echo $ac_n "checking for OpenSSL support in SNMP libraries""... $ac_c" 1>&6
-echo "configure:85184: checking for OpenSSL support in SNMP libraries" >&5
+echo "configure:84771: checking for OpenSSL support in SNMP libraries" >&5
cat > conftest.$ac_ext <<EOF
-#line 85186 "configure"
+#line 84773 "configure"
#include "confdefs.h"
#include <ucd-snmp-config.h>
@@ -85237,7 +84824,7 @@ rm -f conftest*
# Extract the first word of "pkg-config", so it can be a program name with args.
set dummy pkg-config; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:85241: checking for $ac_word" >&5
+echo "configure:84828: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -85441,9 +85028,9 @@ fi
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS=-I$OPENSSL_INCDIR
echo $ac_n "checking for OpenSSL version""... $ac_c" 1>&6
-echo "configure:85445: checking for OpenSSL version" >&5
+echo "configure:85032: checking for OpenSSL version" >&5
cat > conftest.$ac_ext <<EOF
-#line 85447 "configure"
+#line 85034 "configure"
#include "confdefs.h"
#include <openssl/opensslv.h>
@@ -85597,7 +85184,7 @@ rm -f conftest*
done
echo $ac_n "checking for CRYPTO_free in -lcrypto""... $ac_c" 1>&6
-echo "configure:85601: checking for CRYPTO_free in -lcrypto" >&5
+echo "configure:85188: checking for CRYPTO_free in -lcrypto" >&5
ac_lib_var=`echo crypto'_'CRYPTO_free | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -85605,7 +85192,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypto $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 85609 "configure"
+#line 85196 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -85616,7 +85203,7 @@ int main() {
CRYPTO_free()
; return 0; }
EOF
-if { (eval echo configure:85620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:85207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -85772,7 +85359,7 @@ fi
done
echo $ac_n "checking for SSL_CTX_set_ssl_version in -lssl""... $ac_c" 1>&6
-echo "configure:85776: checking for SSL_CTX_set_ssl_version in -lssl" >&5
+echo "configure:85363: checking for SSL_CTX_set_ssl_version in -lssl" >&5
ac_lib_var=`echo ssl'_'SSL_CTX_set_ssl_version | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -85780,7 +85367,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lssl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 85784 "configure"
+#line 85371 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -85791,7 +85378,7 @@ int main() {
SSL_CTX_set_ssl_version()
; return 0; }
EOF
-if { (eval echo configure:85795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:85382: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -85903,7 +85490,7 @@ else
fi
echo $ac_n "checking for kstat_read in -lkstat""... $ac_c" 1>&6
-echo "configure:85907: checking for kstat_read in -lkstat" >&5
+echo "configure:85494: checking for kstat_read in -lkstat" >&5
ac_lib_var=`echo kstat'_'kstat_read | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -85911,7 +85498,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lkstat $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 85915 "configure"
+#line 85502 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -85922,7 +85509,7 @@ int main() {
kstat_read()
; return 0; }
EOF
-if { (eval echo configure:85926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:85513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -86191,7 +85778,7 @@ fi
done
echo $ac_n "checking for snmp_parse_oid in -l$SNMP_LIBNAME""... $ac_c" 1>&6
-echo "configure:86195: checking for snmp_parse_oid in -l$SNMP_LIBNAME" >&5
+echo "configure:85782: checking for snmp_parse_oid in -l$SNMP_LIBNAME" >&5
ac_lib_var=`echo $SNMP_LIBNAME'_'snmp_parse_oid | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -86199,7 +85786,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$SNMP_LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 86203 "configure"
+#line 85790 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -86210,7 +85797,7 @@ int main() {
snmp_parse_oid()
; return 0; }
EOF
-if { (eval echo configure:86214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:85801: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -86343,7 +85930,7 @@ fi
done
echo $ac_n "checking for init_snmp in -l$SNMP_LIBNAME""... $ac_c" 1>&6
-echo "configure:86347: checking for init_snmp in -l$SNMP_LIBNAME" >&5
+echo "configure:85934: checking for init_snmp in -l$SNMP_LIBNAME" >&5
ac_lib_var=`echo $SNMP_LIBNAME'_'init_snmp | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -86351,7 +85938,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$SNMP_LIBNAME $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 86355 "configure"
+#line 85942 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -86362,7 +85949,7 @@ int main() {
init_snmp()
; return 0; }
EOF
-if { (eval echo configure:86366: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:85953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -86687,7 +86274,7 @@ EOF
fi
echo $ac_n "checking whether to enable UCD SNMP hack""... $ac_c" 1>&6
-echo "configure:86691: checking whether to enable UCD SNMP hack" >&5
+echo "configure:86278: checking whether to enable UCD SNMP hack" >&5
# Check whether --enable-ucd-snmp-hack or --disable-ucd-snmp-hack was given.
if test "${enable_ucd_snmp_hack+set}" = set; then
enableval="$enable_ucd_snmp_hack"
@@ -86713,7 +86300,7 @@ fi
echo $ac_n "checking whether to enable SOAP support""... $ac_c" 1>&6
-echo "configure:86717: checking whether to enable SOAP support" >&5
+echo "configure:86304: checking whether to enable SOAP support" >&5
# Check whether --enable-soap or --disable-soap was given.
if test "${enable_soap+set}" = set; then
enableval="$enable_soap"
@@ -86760,7 +86347,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:86764: checking libxml2 install dir" >&5
+echo "configure:86351: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -86791,7 +86378,7 @@ if test "$PHP_SOAP" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:86795: checking for xml2-config path" >&5
+echo "configure:86382: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -86948,7 +86535,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:86952: checking whether libxml build works" >&5
+echo "configure:86539: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -86964,7 +86551,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 86968 "configure"
+#line 86555 "configure"
#include "confdefs.h"
@@ -86975,7 +86562,7 @@ else
}
EOF
-if { (eval echo configure:86979: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:86566: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -87313,7 +86900,7 @@ fi
echo $ac_n "checking whether to enable sockets support""... $ac_c" 1>&6
-echo "configure:87317: checking whether to enable sockets support" >&5
+echo "configure:86904: checking whether to enable sockets support" >&5
# Check whether --enable-sockets or --disable-sockets was given.
if test "${enable_sockets+set}" = set; then
enableval="$enable_sockets"
@@ -87358,13 +86945,13 @@ echo "$ac_t""$ext_output" 1>&6
if test "$PHP_SOCKETS" != "no"; then
echo $ac_n "checking for struct cmsghdr""... $ac_c" 1>&6
-echo "configure:87362: checking for struct cmsghdr" >&5
+echo "configure:86949: checking for struct cmsghdr" >&5
if eval "test \"`echo '$''{'ac_cv_cmsghdr'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87368 "configure"
+#line 86955 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -87373,7 +86960,7 @@ int main() {
struct cmsghdr s; s
; return 0; }
EOF
-if { (eval echo configure:87377: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:86964: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_cmsghdr=yes
else
@@ -87398,12 +86985,12 @@ EOF
for ac_func in hstrerror
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:87402: checking for $ac_func" >&5
+echo "configure:86989: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87407 "configure"
+#line 86994 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -87426,7 +87013,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:87430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:87017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -87454,17 +87041,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:87458: checking for $ac_hdr" >&5
+echo "configure:87045: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87463 "configure"
+#line 87050 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:87468: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:87055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -87491,7 +87078,7 @@ fi
done
cat > conftest.$ac_ext <<EOF
-#line 87495 "configure"
+#line 87082 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -87501,7 +87088,7 @@ int main() {
static struct msghdr tp; int n = (int) tp.msg_flags; return n
; return 0; }
EOF
-if { (eval echo configure:87505: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:87092: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
:
else
echo "configure: failed program was:" >&5
@@ -87808,12 +87395,12 @@ fi
unset found
echo $ac_n "checking for socketpair""... $ac_c" 1>&6
-echo "configure:87812: checking for socketpair" >&5
+echo "configure:87399: checking for socketpair" >&5
if eval "test \"`echo '$''{'ac_cv_func_socketpair'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87817 "configure"
+#line 87404 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char socketpair(); below. */
@@ -87836,7 +87423,7 @@ socketpair();
; return 0; }
EOF
-if { (eval echo configure:87840: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:87427: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_socketpair=yes"
else
@@ -87854,12 +87441,12 @@ if eval "test \"`echo '$ac_cv_func_'socketpair`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __socketpair""... $ac_c" 1>&6
-echo "configure:87858: checking for __socketpair" >&5
+echo "configure:87445: checking for __socketpair" >&5
if eval "test \"`echo '$''{'ac_cv_func___socketpair'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87863 "configure"
+#line 87450 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __socketpair(); below. */
@@ -87882,7 +87469,7 @@ __socketpair();
; return 0; }
EOF
-if { (eval echo configure:87886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:87473: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___socketpair=yes"
else
@@ -87922,12 +87509,12 @@ EOF
unset found
echo $ac_n "checking for gethostbyname2""... $ac_c" 1>&6
-echo "configure:87926: checking for gethostbyname2" >&5
+echo "configure:87513: checking for gethostbyname2" >&5
if eval "test \"`echo '$''{'ac_cv_func_gethostbyname2'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87931 "configure"
+#line 87518 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char gethostbyname2(); below. */
@@ -87950,7 +87537,7 @@ gethostbyname2();
; return 0; }
EOF
-if { (eval echo configure:87954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:87541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_gethostbyname2=yes"
else
@@ -87968,12 +87555,12 @@ if eval "test \"`echo '$ac_cv_func_'gethostbyname2`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __gethostbyname2""... $ac_c" 1>&6
-echo "configure:87972: checking for __gethostbyname2" >&5
+echo "configure:87559: checking for __gethostbyname2" >&5
if eval "test \"`echo '$''{'ac_cv_func___gethostbyname2'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 87977 "configure"
+#line 87564 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __gethostbyname2(); below. */
@@ -87996,7 +87583,7 @@ __gethostbyname2();
; return 0; }
EOF
-if { (eval echo configure:88000: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:87587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___gethostbyname2=yes"
else
@@ -88036,7 +87623,7 @@ EOF
echo $ac_n "checking enable SPL suppport""... $ac_c" 1>&6
-echo "configure:88040: checking enable SPL suppport" >&5
+echo "configure:87627: checking enable SPL suppport" >&5
# Check whether --enable-spl or --disable-spl was given.
if test "${enable_spl+set}" = set; then
enableval="$enable_spl"
@@ -88084,7 +87671,7 @@ if test "$PHP_SPL" != "no"; then
{ echo "configure: error: Cannot build SPL as a shared module" 1>&2; exit 1; }
fi
echo $ac_n "checking whether zend_object_value is packed""... $ac_c" 1>&6
-echo "configure:88088: checking whether zend_object_value is packed" >&5
+echo "configure:87675: checking whether zend_object_value is packed" >&5
old_CPPFLAGS=$CPPFLAGS
CPPFLAGS="$INCLUDES -I$abs_srcdir $CPPFLAGS"
if test "$cross_compiling" = yes; then
@@ -88094,7 +87681,7 @@ echo "configure:88088: checking whether zend_object_value is packed" >&5
else
cat > conftest.$ac_ext <<EOF
-#line 88098 "configure"
+#line 87685 "configure"
#include "confdefs.h"
#include "Zend/zend_types.h"
@@ -88103,7 +87690,7 @@ int main(int argc, char **argv) {
}
EOF
-if { (eval echo configure:88107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:87694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_result=1
@@ -88417,7 +88004,7 @@ fi
echo $ac_n "checking for sqlite support""... $ac_c" 1>&6
-echo "configure:88421: checking for sqlite support" >&5
+echo "configure:88008: checking for sqlite support" >&5
# Check whether --with-sqlite or --without-sqlite was given.
if test "${with_sqlite+set}" = set; then
withval="$with_sqlite"
@@ -88463,7 +88050,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking whether to enable UTF-8 support in sqlite (default: ISO-8859-1)""... $ac_c" 1>&6
-echo "configure:88467: checking whether to enable UTF-8 support in sqlite (default: ISO-8859-1)" >&5
+echo "configure:88054: checking whether to enable UTF-8 support in sqlite (default: ISO-8859-1)" >&5
# Check whether --enable-sqlite-utf8 or --disable-sqlite-utf8 was given.
if test "${enable_sqlite_utf8+set}" = set; then
enableval="$enable_sqlite_utf8"
@@ -88494,13 +88081,13 @@ if test "$PHP_SQLITE" != "no"; then
if test "$PHP_PDO" != "no"; then
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:88498: checking for PDO includes" >&5
+echo "configure:88085: checking for PDO includes" >&5
if eval "test \"`echo '$''{'pdo_inc_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
echo $ac_n "checking for PDO includes""... $ac_c" 1>&6
-echo "configure:88504: checking for PDO includes" >&5
+echo "configure:88091: checking for PDO includes" >&5
if test -f $abs_srcdir/include/php/ext/pdo/php_pdo_driver.h; then
pdo_inc_path=$abs_srcdir/ext
elif test -f $abs_srcdir/ext/pdo/php_pdo_driver.h; then
@@ -88534,7 +88121,7 @@ EOF
SQLITE_DIR=$PHP_SQLITE
else # search default path list
echo $ac_n "checking for sqlite files in default path""... $ac_c" 1>&6
-echo "configure:88538: checking for sqlite files in default path" >&5
+echo "configure:88125: checking for sqlite files in default path" >&5
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
SQLITE_DIR=$i
@@ -88645,7 +88232,7 @@ echo "configure:88538: checking for sqlite files in default path" >&5
done
echo $ac_n "checking for sqlite_open in -lsqlite""... $ac_c" 1>&6
-echo "configure:88649: checking for sqlite_open in -lsqlite" >&5
+echo "configure:88236: checking for sqlite_open in -lsqlite" >&5
ac_lib_var=`echo sqlite'_'sqlite_open | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -88653,7 +88240,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsqlite $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 88657 "configure"
+#line 88244 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -88664,7 +88251,7 @@ int main() {
sqlite_open()
; return 0; }
EOF
-if { (eval echo configure:88668: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:88255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -88836,7 +88423,7 @@ fi
# Extract the first word of "lemon", so it can be a program name with args.
set dummy lemon; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:88840: checking for $ac_word" >&5
+echo "configure:88427: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_LEMON'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -88864,7 +88451,7 @@ fi
if test "$LEMON"; then
echo $ac_n "checking for lemon version""... $ac_c" 1>&6
-echo "configure:88868: checking for lemon version" >&5
+echo "configure:88455: checking for lemon version" >&5
if eval "test \"`echo '$''{'php_cv_lemon_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89195,6 +88782,7 @@ EOF
am_i_shared=$PHP_SQLITE_SHARED
is_it_shared=$PHP_SPL_SHARED
+ is_it_enabled=$PHP_SPL
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension sqlite to build statically, but it
@@ -89203,7 +88791,7 @@ You either need to build sqlite shared or build spl statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "xtrue" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "xtrue" != "xtrue"; then
{ echo "configure: error:
You've configured extension sqlite, which depends on extension spl,
but you've either not enabled spl, or have disabled it.
@@ -89213,6 +88801,7 @@ but you've either not enabled spl, or have disabled it.
am_i_shared=$PHP_SQLITE_SHARED
is_it_shared=$PHP_PDO_SHARED
+ is_it_enabled=$PHP_PDO
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension sqlite to build statically, but it
@@ -89221,7 +88810,7 @@ You either need to build sqlite shared or build pdo statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "xtrue" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "xtrue" != "xtrue"; then
{ echo "configure: error:
You've configured extension sqlite, which depends on extension pdo,
but you've either not enabled pdo, or have disabled it.
@@ -89264,7 +88853,7 @@ but you've either not enabled pdo, or have disabled it.
echo $ac_n "checking size of char *""... $ac_c" 1>&6
-echo "configure:89268: checking size of char *" >&5
+echo "configure:88857: checking size of char *" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_char_p'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89272,7 +88861,7 @@ else
ac_cv_sizeof_char_p=4
else
cat > conftest.$ac_ext <<EOF
-#line 89276 "configure"
+#line 88865 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -89283,7 +88872,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:89287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:88876: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_char_p=`cat conftestval`
else
@@ -89345,12 +88934,12 @@ EOF
for ac_func in usleep nanosleep
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:89349: checking for $ac_func" >&5
+echo "configure:88938: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 89354 "configure"
+#line 88943 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -89373,7 +88962,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:89377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:88966: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -89401,17 +88990,17 @@ done
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:89405: checking for $ac_hdr" >&5
+echo "configure:88994: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 89410 "configure"
+#line 88999 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:89415: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:89004: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -89448,12 +89037,12 @@ fi
for ac_func in getcwd getwd asinh acosh atanh log1p hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:89452: checking for $ac_func" >&5
+echo "configure:89041: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 89457 "configure"
+#line 89046 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -89476,7 +89065,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:89480: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -89505,7 +89094,7 @@ done
if test "$ac_cv_func_crypt" = "no"; then
echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:89509: checking for crypt in -lcrypt" >&5
+echo "configure:89098: checking for crypt in -lcrypt" >&5
ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -89513,7 +89102,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lcrypt $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 89517 "configure"
+#line 89106 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -89524,7 +89113,7 @@ int main() {
crypt()
; return 0; }
EOF
-if { (eval echo configure:89528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -89553,7 +89142,7 @@ fi
fi
echo $ac_n "checking for standard DES crypt""... $ac_c" 1>&6
-echo "configure:89557: checking for standard DES crypt" >&5
+echo "configure:89146: checking for standard DES crypt" >&5
if eval "test \"`echo '$''{'ac_cv_crypt_des'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89564,7 +89153,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 89568 "configure"
+#line 89157 "configure"
#include "confdefs.h"
#if HAVE_UNISTD_H
@@ -89583,7 +89172,7 @@ main() {
#endif
}
EOF
-if { (eval echo configure:89587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_crypt_des=yes
@@ -89614,7 +89203,7 @@ EOF
echo $ac_n "checking for extended DES crypt""... $ac_c" 1>&6
-echo "configure:89618: checking for extended DES crypt" >&5
+echo "configure:89207: checking for extended DES crypt" >&5
if eval "test \"`echo '$''{'ac_cv_crypt_ext_des'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89625,7 +89214,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 89629 "configure"
+#line 89218 "configure"
#include "confdefs.h"
#if HAVE_UNISTD_H
@@ -89644,7 +89233,7 @@ main() {
#endif
}
EOF
-if { (eval echo configure:89648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89237: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_crypt_ext_des=yes
@@ -89675,7 +89264,7 @@ EOF
echo $ac_n "checking for MD5 crypt""... $ac_c" 1>&6
-echo "configure:89679: checking for MD5 crypt" >&5
+echo "configure:89268: checking for MD5 crypt" >&5
if eval "test \"`echo '$''{'ac_cv_crypt_md5'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89686,7 +89275,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 89690 "configure"
+#line 89279 "configure"
#include "confdefs.h"
#if HAVE_UNISTD_H
@@ -89714,7 +89303,7 @@ main() {
#endif
}
EOF
-if { (eval echo configure:89718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_crypt_md5=yes
@@ -89774,7 +89363,7 @@ EOF
echo $ac_n "checking for Blowfish crypt""... $ac_c" 1>&6
-echo "configure:89778: checking for Blowfish crypt" >&5
+echo "configure:89367: checking for Blowfish crypt" >&5
if eval "test \"`echo '$''{'ac_cv_crypt_blowfish'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89785,7 +89374,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 89789 "configure"
+#line 89378 "configure"
#include "confdefs.h"
#if HAVE_UNISTD_H
@@ -89810,7 +89399,7 @@ main() {
#endif
}
EOF
-if { (eval echo configure:89814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89403: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_crypt_blowfish=yes
@@ -89842,7 +89431,7 @@ EOF
echo $ac_n "checking whether flush should be called explicitly after a buffered io""... $ac_c" 1>&6
-echo "configure:89846: checking whether flush should be called explicitly after a buffered io" >&5
+echo "configure:89435: checking whether flush should be called explicitly after a buffered io" >&5
if eval "test \"`echo '$''{'ac_cv_flush_io'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -89853,7 +89442,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 89857 "configure"
+#line 89446 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -89891,7 +89480,7 @@ int main(int argc, char **argv)
}
EOF
-if { (eval echo configure:89895: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_flush_io=no
@@ -90013,13 +89602,13 @@ EOF
EOF
echo $ac_n "checking whether field re_magic exists in struct regex_t""... $ac_c" 1>&6
-echo "configure:90017: checking whether field re_magic exists in struct regex_t" >&5
+echo "configure:89606: checking whether field re_magic exists in struct regex_t" >&5
if eval "test \"`echo '$''{'ac_cv_regex_t_re_magic'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90023 "configure"
+#line 89612 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <regex.h>
@@ -90027,7 +89616,7 @@ int main() {
regex_t rt; rt.re_magic;
; return 0; }
EOF
-if { (eval echo configure:90031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:89620: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_regex_t_re_magic=yes
else
@@ -90049,12 +89638,12 @@ EOF
fi
fi
echo $ac_n "checking which regex library to use""... $ac_c" 1>&6
-echo "configure:90053: checking which regex library to use" >&5
+echo "configure:89642: checking which regex library to use" >&5
echo "$ac_t""$REGEX_TYPE" 1>&6
echo $ac_n "checking for working fnmatch""... $ac_c" 1>&6
-echo "configure:90058: checking for working fnmatch" >&5
+echo "configure:89647: checking for working fnmatch" >&5
if eval "test \"`echo '$''{'ac_cv_func_fnmatch_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -90065,11 +89654,11 @@ if test "$cross_compiling" = yes; then
ac_cv_func_fnmatch_works=no
else
cat > conftest.$ac_ext <<EOF
-#line 90069 "configure"
+#line 89658 "configure"
#include "confdefs.h"
main() { exit (fnmatch ("a*", "abc", 0) != 0); }
EOF
-if { (eval echo configure:90073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89662: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_fnmatch_works=yes
else
@@ -90095,7 +89684,7 @@ fi
echo $ac_n "checking whether rounding works as expected""... $ac_c" 1>&6
-echo "configure:90099: checking whether rounding works as expected" >&5
+echo "configure:89688: checking whether rounding works as expected" >&5
if test "$cross_compiling" = yes; then
PHP_ROUND_FUZZ=0.50000000001
@@ -90103,7 +89692,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 90107 "configure"
+#line 89696 "configure"
#include "confdefs.h"
#include <math.h>
@@ -90116,7 +89705,7 @@ else
}
EOF
-if { (eval echo configure:90120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:89709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
PHP_ROUND_FUZZ=0.5
@@ -90148,12 +89737,12 @@ else
for ac_func in fork CreateProcess
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:90152: checking for $ac_func" >&5
+echo "configure:89741: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90157 "configure"
+#line 89746 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -90176,7 +89765,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:90180: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89769: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -90210,7 +89799,7 @@ fi
echo $ac_n "checking if your OS can spawn processes with inherited handles""... $ac_c" 1>&6
-echo "configure:90214: checking if your OS can spawn processes with inherited handles" >&5
+echo "configure:89803: checking if your OS can spawn processes with inherited handles" >&5
if test "$php_can_support_proc_open" = "yes"; then
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
@@ -90227,12 +89816,12 @@ EOF
for ac_func in glob strfmon nice
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:90231: checking for $ac_func" >&5
+echo "configure:89820: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90236 "configure"
+#line 89825 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -90255,7 +89844,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:90259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89848: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -90293,12 +89882,12 @@ fi
unset found
echo $ac_n "checking for res_nmkquery""... $ac_c" 1>&6
-echo "configure:90297: checking for res_nmkquery" >&5
+echo "configure:89886: checking for res_nmkquery" >&5
if eval "test \"`echo '$''{'ac_cv_func_res_nmkquery'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90302 "configure"
+#line 89891 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char res_nmkquery(); below. */
@@ -90321,7 +89910,7 @@ res_nmkquery();
; return 0; }
EOF
-if { (eval echo configure:90325: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_res_nmkquery=yes"
else
@@ -90339,12 +89928,12 @@ if eval "test \"`echo '$ac_cv_func_'res_nmkquery`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nmkquery""... $ac_c" 1>&6
-echo "configure:90343: checking for __res_nmkquery" >&5
+echo "configure:89932: checking for __res_nmkquery" >&5
if eval "test \"`echo '$''{'ac_cv_func___res_nmkquery'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90348 "configure"
+#line 89937 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __res_nmkquery(); below. */
@@ -90367,7 +89956,7 @@ __res_nmkquery();
; return 0; }
EOF
-if { (eval echo configure:90371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:89960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___res_nmkquery=yes"
else
@@ -90405,7 +89994,7 @@ EOF
unset ac_cv_lib_resolv___res_nmkquery
unset found
echo $ac_n "checking for res_nmkquery in -lresolv""... $ac_c" 1>&6
-echo "configure:90409: checking for res_nmkquery in -lresolv" >&5
+echo "configure:89998: checking for res_nmkquery in -lresolv" >&5
ac_lib_var=`echo resolv'_'res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90413,7 +90002,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90417 "configure"
+#line 90006 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90424,7 +90013,7 @@ int main() {
res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90444,7 +90033,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nmkquery in -lresolv""... $ac_c" 1>&6
-echo "configure:90448: checking for __res_nmkquery in -lresolv" >&5
+echo "configure:90037: checking for __res_nmkquery in -lresolv" >&5
ac_lib_var=`echo resolv'_'__res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90452,7 +90041,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90456 "configure"
+#line 90045 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90463,7 +90052,7 @@ int main() {
__res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90495,11 +90084,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 90499 "configure"
+#line 90088 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:90503: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -90541,7 +90130,7 @@ EOF
unset ac_cv_lib_bind___res_nmkquery
unset found
echo $ac_n "checking for res_nmkquery in -lbind""... $ac_c" 1>&6
-echo "configure:90545: checking for res_nmkquery in -lbind" >&5
+echo "configure:90134: checking for res_nmkquery in -lbind" >&5
ac_lib_var=`echo bind'_'res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90549,7 +90138,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90553 "configure"
+#line 90142 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90560,7 +90149,7 @@ int main() {
res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90153: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90580,7 +90169,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nmkquery in -lbind""... $ac_c" 1>&6
-echo "configure:90584: checking for __res_nmkquery in -lbind" >&5
+echo "configure:90173: checking for __res_nmkquery in -lbind" >&5
ac_lib_var=`echo bind'_'__res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90588,7 +90177,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90592 "configure"
+#line 90181 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90599,7 +90188,7 @@ int main() {
__res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90631,11 +90220,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 90635 "configure"
+#line 90224 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:90639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90228: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -90677,7 +90266,7 @@ EOF
unset ac_cv_lib_socket___res_nmkquery
unset found
echo $ac_n "checking for res_nmkquery in -lsocket""... $ac_c" 1>&6
-echo "configure:90681: checking for res_nmkquery in -lsocket" >&5
+echo "configure:90270: checking for res_nmkquery in -lsocket" >&5
ac_lib_var=`echo socket'_'res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90685,7 +90274,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90689 "configure"
+#line 90278 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90696,7 +90285,7 @@ int main() {
res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90716,7 +90305,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nmkquery in -lsocket""... $ac_c" 1>&6
-echo "configure:90720: checking for __res_nmkquery in -lsocket" >&5
+echo "configure:90309: checking for __res_nmkquery in -lsocket" >&5
ac_lib_var=`echo socket'_'__res_nmkquery | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90724,7 +90313,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90728 "configure"
+#line 90317 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90735,7 +90324,7 @@ int main() {
__res_nmkquery()
; return 0; }
EOF
-if { (eval echo configure:90739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90328: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90767,11 +90356,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 90771 "configure"
+#line 90360 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:90775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90364: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -90828,12 +90417,12 @@ EOF
unset found
echo $ac_n "checking for res_nsend""... $ac_c" 1>&6
-echo "configure:90832: checking for res_nsend" >&5
+echo "configure:90421: checking for res_nsend" >&5
if eval "test \"`echo '$''{'ac_cv_func_res_nsend'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90837 "configure"
+#line 90426 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char res_nsend(); below. */
@@ -90856,7 +90445,7 @@ res_nsend();
; return 0; }
EOF
-if { (eval echo configure:90860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_res_nsend=yes"
else
@@ -90874,12 +90463,12 @@ if eval "test \"`echo '$ac_cv_func_'res_nsend`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nsend""... $ac_c" 1>&6
-echo "configure:90878: checking for __res_nsend" >&5
+echo "configure:90467: checking for __res_nsend" >&5
if eval "test \"`echo '$''{'ac_cv_func___res_nsend'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 90883 "configure"
+#line 90472 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __res_nsend(); below. */
@@ -90902,7 +90491,7 @@ __res_nsend();
; return 0; }
EOF
-if { (eval echo configure:90906: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___res_nsend=yes"
else
@@ -90940,7 +90529,7 @@ EOF
unset ac_cv_lib_resolv___res_nsend
unset found
echo $ac_n "checking for res_nsend in -lresolv""... $ac_c" 1>&6
-echo "configure:90944: checking for res_nsend in -lresolv" >&5
+echo "configure:90533: checking for res_nsend in -lresolv" >&5
ac_lib_var=`echo resolv'_'res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90948,7 +90537,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90952 "configure"
+#line 90541 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90959,7 +90548,7 @@ int main() {
res_nsend()
; return 0; }
EOF
-if { (eval echo configure:90963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -90979,7 +90568,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nsend in -lresolv""... $ac_c" 1>&6
-echo "configure:90983: checking for __res_nsend in -lresolv" >&5
+echo "configure:90572: checking for __res_nsend in -lresolv" >&5
ac_lib_var=`echo resolv'_'__res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -90987,7 +90576,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 90991 "configure"
+#line 90580 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -90998,7 +90587,7 @@ int main() {
__res_nsend()
; return 0; }
EOF
-if { (eval echo configure:91002: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91030,11 +90619,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91034 "configure"
+#line 90623 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90627: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91076,7 +90665,7 @@ EOF
unset ac_cv_lib_bind___res_nsend
unset found
echo $ac_n "checking for res_nsend in -lbind""... $ac_c" 1>&6
-echo "configure:91080: checking for res_nsend in -lbind" >&5
+echo "configure:90669: checking for res_nsend in -lbind" >&5
ac_lib_var=`echo bind'_'res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91084,7 +90673,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91088 "configure"
+#line 90677 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91095,7 +90684,7 @@ int main() {
res_nsend()
; return 0; }
EOF
-if { (eval echo configure:91099: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91115,7 +90704,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nsend in -lbind""... $ac_c" 1>&6
-echo "configure:91119: checking for __res_nsend in -lbind" >&5
+echo "configure:90708: checking for __res_nsend in -lbind" >&5
ac_lib_var=`echo bind'_'__res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91123,7 +90712,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91127 "configure"
+#line 90716 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91134,7 +90723,7 @@ int main() {
__res_nsend()
; return 0; }
EOF
-if { (eval echo configure:91138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91166,11 +90755,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91170 "configure"
+#line 90759 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90763: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91212,7 +90801,7 @@ EOF
unset ac_cv_lib_socket___res_nsend
unset found
echo $ac_n "checking for res_nsend in -lsocket""... $ac_c" 1>&6
-echo "configure:91216: checking for res_nsend in -lsocket" >&5
+echo "configure:90805: checking for res_nsend in -lsocket" >&5
ac_lib_var=`echo socket'_'res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91220,7 +90809,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91224 "configure"
+#line 90813 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91231,7 +90820,7 @@ int main() {
res_nsend()
; return 0; }
EOF
-if { (eval echo configure:91235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90824: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91251,7 +90840,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __res_nsend in -lsocket""... $ac_c" 1>&6
-echo "configure:91255: checking for __res_nsend in -lsocket" >&5
+echo "configure:90844: checking for __res_nsend in -lsocket" >&5
ac_lib_var=`echo socket'_'__res_nsend | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91259,7 +90848,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91263 "configure"
+#line 90852 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91270,7 +90859,7 @@ int main() {
__res_nsend()
; return 0; }
EOF
-if { (eval echo configure:91274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91302,11 +90891,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91306 "configure"
+#line 90895 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:90899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91363,12 +90952,12 @@ EOF
unset found
echo $ac_n "checking for dn_expand""... $ac_c" 1>&6
-echo "configure:91367: checking for dn_expand" >&5
+echo "configure:90956: checking for dn_expand" >&5
if eval "test \"`echo '$''{'ac_cv_func_dn_expand'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 91372 "configure"
+#line 90961 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dn_expand(); below. */
@@ -91391,7 +90980,7 @@ dn_expand();
; return 0; }
EOF
-if { (eval echo configure:91395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:90984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dn_expand=yes"
else
@@ -91409,12 +90998,12 @@ if eval "test \"`echo '$ac_cv_func_'dn_expand`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_expand""... $ac_c" 1>&6
-echo "configure:91413: checking for __dn_expand" >&5
+echo "configure:91002: checking for __dn_expand" >&5
if eval "test \"`echo '$''{'ac_cv_func___dn_expand'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 91418 "configure"
+#line 91007 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char __dn_expand(); below. */
@@ -91437,7 +91026,7 @@ __dn_expand();
; return 0; }
EOF
-if { (eval echo configure:91441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91030: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func___dn_expand=yes"
else
@@ -91475,7 +91064,7 @@ EOF
unset ac_cv_lib_resolv___dn_expand
unset found
echo $ac_n "checking for dn_expand in -lresolv""... $ac_c" 1>&6
-echo "configure:91479: checking for dn_expand in -lresolv" >&5
+echo "configure:91068: checking for dn_expand in -lresolv" >&5
ac_lib_var=`echo resolv'_'dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91483,7 +91072,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91487 "configure"
+#line 91076 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91494,7 +91083,7 @@ int main() {
dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91498: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91087: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91514,7 +91103,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_expand in -lresolv""... $ac_c" 1>&6
-echo "configure:91518: checking for __dn_expand in -lresolv" >&5
+echo "configure:91107: checking for __dn_expand in -lresolv" >&5
ac_lib_var=`echo resolv'_'__dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91522,7 +91111,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lresolv $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91526 "configure"
+#line 91115 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91533,7 +91122,7 @@ int main() {
__dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91537: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91126: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91565,11 +91154,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91569 "configure"
+#line 91158 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91611,7 +91200,7 @@ EOF
unset ac_cv_lib_bind___dn_expand
unset found
echo $ac_n "checking for dn_expand in -lbind""... $ac_c" 1>&6
-echo "configure:91615: checking for dn_expand in -lbind" >&5
+echo "configure:91204: checking for dn_expand in -lbind" >&5
ac_lib_var=`echo bind'_'dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91619,7 +91208,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91623 "configure"
+#line 91212 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91630,7 +91219,7 @@ int main() {
dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91650,7 +91239,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_expand in -lbind""... $ac_c" 1>&6
-echo "configure:91654: checking for __dn_expand in -lbind" >&5
+echo "configure:91243: checking for __dn_expand in -lbind" >&5
ac_lib_var=`echo bind'_'__dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91658,7 +91247,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lbind $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91662 "configure"
+#line 91251 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91669,7 +91258,7 @@ int main() {
__dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91673: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91701,11 +91290,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91705 "configure"
+#line 91294 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91298: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91747,7 +91336,7 @@ EOF
unset ac_cv_lib_socket___dn_expand
unset found
echo $ac_n "checking for dn_expand in -lsocket""... $ac_c" 1>&6
-echo "configure:91751: checking for dn_expand in -lsocket" >&5
+echo "configure:91340: checking for dn_expand in -lsocket" >&5
ac_lib_var=`echo socket'_'dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91755,7 +91344,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91759 "configure"
+#line 91348 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91766,7 +91355,7 @@ int main() {
dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91786,7 +91375,7 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for __dn_expand in -lsocket""... $ac_c" 1>&6
-echo "configure:91790: checking for __dn_expand in -lsocket" >&5
+echo "configure:91379: checking for __dn_expand in -lsocket" >&5
ac_lib_var=`echo socket'_'__dn_expand | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -91794,7 +91383,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsocket $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 91798 "configure"
+#line 91387 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -91805,7 +91394,7 @@ int main() {
__dn_expand()
; return 0; }
EOF
-if { (eval echo configure:91809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91398: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -91837,11 +91426,11 @@ fi
found=no
else
cat > conftest.$ac_ext <<EOF
-#line 91841 "configure"
+#line 91430 "configure"
#include "confdefs.h"
main() { return (0); }
EOF
-if { (eval echo configure:91845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
found=yes
else
@@ -91898,12 +91487,12 @@ EOF
for ac_func in fpclass isinf isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:91902: checking for $ac_func" >&5
+echo "configure:91491: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 91907 "configure"
+#line 91496 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -91926,7 +91515,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:91930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -91952,7 +91541,7 @@ done
echo $ac_n "checking whether atof() accepts NAN""... $ac_c" 1>&6
-echo "configure:91956: checking whether atof() accepts NAN" >&5
+echo "configure:91545: checking whether atof() accepts NAN" >&5
if eval "test \"`echo '$''{'ac_cv_atof_accept_nan'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -91963,7 +91552,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 91967 "configure"
+#line 91556 "configure"
#include "confdefs.h"
#include <math.h>
@@ -91983,7 +91572,7 @@ int main(int argc, char** argv)
}
EOF
-if { (eval echo configure:91987: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_atof_accept_nan=yes
@@ -92011,7 +91600,7 @@ EOF
fi
echo $ac_n "checking whether atof() accepts INF""... $ac_c" 1>&6
-echo "configure:92015: checking whether atof() accepts INF" >&5
+echo "configure:91604: checking whether atof() accepts INF" >&5
if eval "test \"`echo '$''{'ac_cv_atof_accept_inf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -92022,7 +91611,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 92026 "configure"
+#line 91615 "configure"
#include "confdefs.h"
#include <math.h>
@@ -92045,7 +91634,7 @@ int main(int argc, char** argv)
}
EOF
-if { (eval echo configure:92049: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91638: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_atof_accept_inf=yes
@@ -92073,7 +91662,7 @@ EOF
fi
echo $ac_n "checking whether HUGE_VAL == INF""... $ac_c" 1>&6
-echo "configure:92077: checking whether HUGE_VAL == INF" >&5
+echo "configure:91666: checking whether HUGE_VAL == INF" >&5
if eval "test \"`echo '$''{'ac_cv_huge_val_inf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -92084,7 +91673,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 92088 "configure"
+#line 91677 "configure"
#include "confdefs.h"
#include <math.h>
@@ -92107,7 +91696,7 @@ int main(int argc, char** argv)
}
EOF
-if { (eval echo configure:92111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91700: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_huge_val_inf=yes
@@ -92135,7 +91724,7 @@ EOF
fi
echo $ac_n "checking whether HUGE_VAL + -HUGEVAL == NAN""... $ac_c" 1>&6
-echo "configure:92139: checking whether HUGE_VAL + -HUGEVAL == NAN" >&5
+echo "configure:91728: checking whether HUGE_VAL + -HUGEVAL == NAN" >&5
if eval "test \"`echo '$''{'ac_cv_huge_val_nan'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -92146,7 +91735,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 92150 "configure"
+#line 91739 "configure"
#include "confdefs.h"
#include <math.h>
@@ -92171,7 +91760,7 @@ int main(int argc, char** argv)
}
EOF
-if { (eval echo configure:92175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:91764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_huge_val_nan=yes
@@ -92203,17 +91792,17 @@ fi
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:92207: checking for $ac_hdr" >&5
+echo "configure:91796: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 92212 "configure"
+#line 91801 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:92217: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:91806: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -92242,12 +91831,12 @@ done
for ac_func in mblen
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:92246: checking for $ac_func" >&5
+echo "configure:91835: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 92251 "configure"
+#line 91840 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -92270,7 +91859,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:92274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -92297,12 +91886,12 @@ done
for ac_func in mbrlen mbsinit
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:92301: checking for $ac_func" >&5
+echo "configure:91890: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 92306 "configure"
+#line 91895 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -92325,7 +91914,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:92329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:91918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -92350,13 +91939,13 @@ fi
done
echo $ac_n "checking for mbstate_t""... $ac_c" 1>&6
-echo "configure:92354: checking for mbstate_t" >&5
+echo "configure:91943: checking for mbstate_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_mbstate_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 92360 "configure"
+#line 91949 "configure"
#include "confdefs.h"
#ifdef HAVE_WCHAR_H
@@ -92369,7 +91958,7 @@ int __tmp__() { mbstate_t a; }
; return 0; }
EOF
-if { (eval echo configure:92373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:91962: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_mbstate_t=yes
@@ -92748,7 +92337,7 @@ EOF
echo $ac_n "checking for Sybase support""... $ac_c" 1>&6
-echo "configure:92752: checking for Sybase support" >&5
+echo "configure:92341: checking for Sybase support" >&5
# Check whether --with-sybase or --without-sybase was given.
if test "${with_sybase+set}" = set; then
withval="$with_sybase"
@@ -93208,7 +92797,7 @@ EOF
fi
echo $ac_n "checking for dnet_addr in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:93212: checking for dnet_addr in -ldnet_stub" >&5
+echo "configure:92801: checking for dnet_addr in -ldnet_stub" >&5
ac_lib_var=`echo dnet_stub'_'dnet_addr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -93216,7 +92805,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldnet_stub $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 93220 "configure"
+#line 92809 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -93227,7 +92816,7 @@ int main() {
dnet_addr()
; return 0; }
EOF
-if { (eval echo configure:93231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:92820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -93352,7 +92941,7 @@ fi
EOF
echo $ac_n "checking for tdsdbopen in -lsybdb""... $ac_c" 1>&6
-echo "configure:93356: checking for tdsdbopen in -lsybdb" >&5
+echo "configure:92945: checking for tdsdbopen in -lsybdb" >&5
ac_lib_var=`echo sybdb'_'tdsdbopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -93360,7 +92949,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsybdb $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 93364 "configure"
+#line 92953 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -93371,7 +92960,7 @@ int main() {
tdsdbopen()
; return 0; }
EOF
-if { (eval echo configure:93375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:92964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -93412,7 +93001,7 @@ fi
echo $ac_n "checking for Sybase-CT support""... $ac_c" 1>&6
-echo "configure:93416: checking for Sybase-CT support" >&5
+echo "configure:93005: checking for Sybase-CT support" >&5
# Check whether --with-sybase-ct or --without-sybase-ct was given.
if test "${with_sybase_ct+set}" = set; then
withval="$with_sybase_ct"
@@ -94049,7 +93638,7 @@ EOF
done
echo $ac_n "checking for netg_errstr in -ltcl""... $ac_c" 1>&6
-echo "configure:94053: checking for netg_errstr in -ltcl" >&5
+echo "configure:93642: checking for netg_errstr in -ltcl" >&5
ac_lib_var=`echo tcl'_'netg_errstr | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -94057,7 +93646,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltcl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 94061 "configure"
+#line 93650 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -94068,7 +93657,7 @@ int main() {
netg_errstr()
; return 0; }
EOF
-if { (eval echo configure:94072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:93661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -94242,7 +93831,7 @@ fi
done
echo $ac_n "checking for insck__getVdate in -linsck""... $ac_c" 1>&6
-echo "configure:94246: checking for insck__getVdate in -linsck" >&5
+echo "configure:93835: checking for insck__getVdate in -linsck" >&5
ac_lib_var=`echo insck'_'insck__getVdate | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -94250,7 +93839,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-linsck $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 94254 "configure"
+#line 93843 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -94261,7 +93850,7 @@ int main() {
insck__getVdate()
; return 0; }
EOF
-if { (eval echo configure:94265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:93854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -94408,7 +93997,7 @@ fi
done
echo $ac_n "checking for bsd_tcp in -linsck""... $ac_c" 1>&6
-echo "configure:94412: checking for bsd_tcp in -linsck" >&5
+echo "configure:94001: checking for bsd_tcp in -linsck" >&5
ac_lib_var=`echo insck'_'bsd_tcp | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -94416,7 +94005,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-linsck $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 94420 "configure"
+#line 94009 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -94427,7 +94016,7 @@ int main() {
bsd_tcp()
; return 0; }
EOF
-if { (eval echo configure:94431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:94020: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -94486,7 +94075,7 @@ fi
echo $ac_n "checking whether to enable System V IPC support""... $ac_c" 1>&6
-echo "configure:94490: checking whether to enable System V IPC support" >&5
+echo "configure:94079: checking whether to enable System V IPC support" >&5
# Check whether --enable-sysvmsg or --disable-sysvmsg was given.
if test "${enable_sysvmsg+set}" = set; then
enableval="$enable_sysvmsg"
@@ -94821,7 +94410,7 @@ fi
echo $ac_n "checking whether to enable System V semaphore support""... $ac_c" 1>&6
-echo "configure:94825: checking whether to enable System V semaphore support" >&5
+echo "configure:94414: checking whether to enable System V semaphore support" >&5
# Check whether --enable-sysvsem or --disable-sysvsem was given.
if test "${enable_sysvsem+set}" = set; then
enableval="$enable_sysvsem"
@@ -95151,12 +94740,12 @@ EOF
EOF
echo $ac_n "checking for union semun""... $ac_c" 1>&6
-echo "configure:95155: checking for union semun" >&5
+echo "configure:94744: checking for union semun" >&5
if eval "test \"`echo '$''{'php_cv_semun'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 95160 "configure"
+#line 94749 "configure"
#include "confdefs.h"
#include <sys/types.h>
@@ -95167,7 +94756,7 @@ int main() {
union semun x;
; return 0; }
EOF
-if { (eval echo configure:95171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:94760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
php_cv_semun=yes
@@ -95202,7 +94791,7 @@ fi
echo $ac_n "checking whether to enable System V shared memory support""... $ac_c" 1>&6
-echo "configure:95206: checking whether to enable System V shared memory support" >&5
+echo "configure:94795: checking whether to enable System V shared memory support" >&5
# Check whether --enable-sysvshm or --disable-sysvshm was given.
if test "${enable_sysvshm+set}" = set; then
enableval="$enable_sysvshm"
@@ -95537,7 +95126,7 @@ fi
echo $ac_n "checking for TIDY support""... $ac_c" 1>&6
-echo "configure:95541: checking for TIDY support" >&5
+echo "configure:95130: checking for TIDY support" >&5
# Check whether --with-tidy or --without-tidy was given.
if test "${with_tidy+set}" = set; then
withval="$with_tidy"
@@ -95827,7 +95416,7 @@ if test "$PHP_TIDY" != "no"; then
done
echo $ac_n "checking for tidyOptGetDoc in -ltidy""... $ac_c" 1>&6
-echo "configure:95831: checking for tidyOptGetDoc in -ltidy" >&5
+echo "configure:95420: checking for tidyOptGetDoc in -ltidy" >&5
ac_lib_var=`echo tidy'_'tidyOptGetDoc | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -95835,7 +95424,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ltidy $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 95839 "configure"
+#line 95428 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -95846,7 +95435,7 @@ int main() {
tidyOptGetDoc()
; return 0; }
EOF
-if { (eval echo configure:95850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:95439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -96178,7 +95767,7 @@ fi
echo $ac_n "checking whether to enable tokenizer support""... $ac_c" 1>&6
-echo "configure:96182: checking whether to enable tokenizer support" >&5
+echo "configure:95771: checking whether to enable tokenizer support" >&5
# Check whether --enable-tokenizer or --disable-tokenizer was given.
if test "${enable_tokenizer+set}" = set; then
enableval="$enable_tokenizer"
@@ -96515,7 +96104,7 @@ fi
echo $ac_n "checking whether to enable WDDX support""... $ac_c" 1>&6
-echo "configure:96519: checking whether to enable WDDX support" >&5
+echo "configure:96108: checking whether to enable WDDX support" >&5
# Check whether --enable-wddx or --disable-wddx was given.
if test "${enable_wddx+set}" = set; then
enableval="$enable_wddx"
@@ -96854,7 +96443,7 @@ fi
echo $ac_n "checking whether to enable XML support""... $ac_c" 1>&6
-echo "configure:96858: checking whether to enable XML support" >&5
+echo "configure:96447: checking whether to enable XML support" >&5
# Check whether --enable-xml or --disable-xml was given.
if test "${enable_xml+set}" = set; then
enableval="$enable_xml"
@@ -96901,7 +96490,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:96905: checking libxml2 install dir" >&5
+echo "configure:96494: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -96927,7 +96516,7 @@ fi
echo $ac_n "checking libexpat install dir""... $ac_c" 1>&6
-echo "configure:96931: checking libexpat install dir" >&5
+echo "configure:96520: checking libexpat install dir" >&5
# Check whether --with-libexpat-dir or --without-libexpat-dir was given.
if test "${with_libexpat_dir+set}" = set; then
withval="$with_libexpat_dir"
@@ -96959,7 +96548,7 @@ if test "$PHP_XML" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:96963: checking for xml2-config path" >&5
+echo "configure:96552: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -97116,7 +96705,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:97120: checking whether libxml build works" >&5
+echo "configure:96709: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -97132,7 +96721,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 97136 "configure"
+#line 96725 "configure"
#include "confdefs.h"
@@ -97143,7 +96732,7 @@ else
}
EOF
-if { (eval echo configure:97147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:96736: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -97182,6 +96771,7 @@ EOF
am_i_shared=$PHP_XML_SHARED
is_it_shared=$PHP_LIBXML_SHARED
+ is_it_enabled=$PHP_LIBXML
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension xml to build statically, but it
@@ -97190,7 +96780,7 @@ You either need to build xml shared or build libxml statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension xml, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
@@ -97665,7 +97255,7 @@ fi
echo $ac_n "checking whether to enable XMLReader support""... $ac_c" 1>&6
-echo "configure:97669: checking whether to enable XMLReader support" >&5
+echo "configure:97259: checking whether to enable XMLReader support" >&5
# Check whether --enable-xmlreader or --disable-xmlreader was given.
if test "${enable_xmlreader+set}" = set; then
enableval="$enable_xmlreader"
@@ -97712,7 +97302,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:97716: checking libxml2 install dir" >&5
+echo "configure:97306: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -97743,7 +97333,7 @@ if test "$PHP_XMLREADER" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:97747: checking for xml2-config path" >&5
+echo "configure:97337: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -97900,7 +97490,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:97904: checking whether libxml build works" >&5
+echo "configure:97494: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -97916,7 +97506,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 97920 "configure"
+#line 97510 "configure"
#include "confdefs.h"
@@ -97927,7 +97517,7 @@ else
}
EOF
-if { (eval echo configure:97931: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:97521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -98250,6 +97840,7 @@ EOF
am_i_shared=$PHP_XMLREADER_SHARED
is_it_shared=$PHP_DOM_SHARED
+ is_it_enabled=$PHP_DOM
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension xmlreader to build statically, but it
@@ -98258,7 +97849,7 @@ You either need to build xmlreader shared or build dom statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "xtrue" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "xtrue" != "xtrue"; then
{ echo "configure: error:
You've configured extension xmlreader, which depends on extension dom,
but you've either not enabled dom, or have disabled it.
@@ -98296,7 +97887,7 @@ fi
echo $ac_n "checking for XMLRPC-EPI support""... $ac_c" 1>&6
-echo "configure:98300: checking for XMLRPC-EPI support" >&5
+echo "configure:97891: checking for XMLRPC-EPI support" >&5
# Check whether --with-xmlrpc or --without-xmlrpc was given.
if test "${with_xmlrpc+set}" = set; then
withval="$with_xmlrpc"
@@ -98343,7 +97934,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:98347: checking libxml2 install dir" >&5
+echo "configure:97938: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -98369,7 +97960,7 @@ fi
echo $ac_n "checking libexpat dir for XMLRPC-EPI""... $ac_c" 1>&6
-echo "configure:98373: checking libexpat dir for XMLRPC-EPI" >&5
+echo "configure:97964: checking libexpat dir for XMLRPC-EPI" >&5
# Check whether --with-libexpat-dir or --without-libexpat-dir was given.
if test "${with_libexpat_dir+set}" = set; then
withval="$with_libexpat_dir"
@@ -98394,7 +97985,7 @@ echo "$ac_t""$ext_output" 1>&6
echo $ac_n "checking iconv dir for XMLRPC-EPI""... $ac_c" 1>&6
-echo "configure:98398: checking iconv dir for XMLRPC-EPI" >&5
+echo "configure:97989: checking iconv dir for XMLRPC-EPI" >&5
# Check whether --with-iconv-dir or --without-iconv-dir was given.
if test "${with_iconv_dir+set}" = set; then
withval="$with_iconv_dir"
@@ -98421,6 +98012,7 @@ if test "$PHP_XMLRPC" != "no"; then
am_i_shared=$PHP_XMLRPC_SHARED
is_it_shared=$PHP_LIBXML_SHARED
+ is_it_enabled=$PHP_LIBXML
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension xmlrpc to build statically, but it
@@ -98429,7 +98021,7 @@ You either need to build xmlrpc shared or build libxml statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension xmlrpc, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
@@ -98452,7 +98044,7 @@ EOF
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:98456: checking for xml2-config path" >&5
+echo "configure:98048: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -98609,7 +98201,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:98613: checking whether libxml build works" >&5
+echo "configure:98205: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -98625,7 +98217,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 98629 "configure"
+#line 98221 "configure"
#include "confdefs.h"
@@ -98636,7 +98228,7 @@ else
}
EOF
-if { (eval echo configure:98640: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:98232: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -98900,12 +98492,12 @@ EOF
if test "$PHP_ICONV" = "yes"; then
echo $ac_n "checking for iconv""... $ac_c" 1>&6
-echo "configure:98904: checking for iconv" >&5
+echo "configure:98496: checking for iconv" >&5
if eval "test \"`echo '$''{'ac_cv_func_iconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 98909 "configure"
+#line 98501 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char iconv(); below. */
@@ -98928,7 +98520,7 @@ iconv();
; return 0; }
EOF
-if { (eval echo configure:98932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:98524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_iconv=yes"
else
@@ -98949,12 +98541,12 @@ else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for libiconv""... $ac_c" 1>&6
-echo "configure:98953: checking for libiconv" >&5
+echo "configure:98545: checking for libiconv" >&5
if eval "test \"`echo '$''{'ac_cv_func_libiconv'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 98958 "configure"
+#line 98550 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char libiconv(); below. */
@@ -98977,7 +98569,7 @@ libiconv();
; return 0; }
EOF
-if { (eval echo configure:98981: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:98573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_libiconv=yes"
else
@@ -99132,7 +98724,7 @@ EOF
done
echo $ac_n "checking for libiconv in -l$iconv_lib_name""... $ac_c" 1>&6
-echo "configure:99136: checking for libiconv in -l$iconv_lib_name" >&5
+echo "configure:98728: checking for libiconv in -l$iconv_lib_name" >&5
ac_lib_var=`echo $iconv_lib_name'_'libiconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -99140,7 +98732,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$iconv_lib_name $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 99144 "configure"
+#line 98736 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -99151,7 +98743,7 @@ int main() {
libiconv()
; return 0; }
EOF
-if { (eval echo configure:99155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:98747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -99284,7 +98876,7 @@ else
done
echo $ac_n "checking for iconv in -l$iconv_lib_name""... $ac_c" 1>&6
-echo "configure:99288: checking for iconv in -l$iconv_lib_name" >&5
+echo "configure:98880: checking for iconv in -l$iconv_lib_name" >&5
ac_lib_var=`echo $iconv_lib_name'_'iconv | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -99292,7 +98884,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-l$iconv_lib_name $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 99296 "configure"
+#line 98888 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -99303,7 +98895,7 @@ int main() {
iconv()
; return 0; }
EOF
-if { (eval echo configure:99307: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:98899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -99491,7 +99083,7 @@ if test "$PHP_XMLRPC" = "yes"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:99495: checking for $ac_word" >&5
+echo "configure:99087: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -99519,21 +99111,21 @@ else
fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:99523: checking for inline" >&5
+echo "configure:99115: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 99530 "configure"
+#line 99122 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:99537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:99129: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -99571,12 +99163,12 @@ EOF
echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:99575: checking for ANSI C header files" >&5
+echo "configure:99167: checking for ANSI C header files" >&5
if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99580 "configure"
+#line 99172 "configure"
#include "confdefs.h"
#include <stdlib.h>
#include <stdarg.h>
@@ -99584,7 +99176,7 @@ else
#include <float.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:99588: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:99180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -99601,7 +99193,7 @@ rm -f conftest*
if test $ac_cv_header_stdc = yes; then
# SunOS 4.x string.h does not declare mem*, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 99605 "configure"
+#line 99197 "configure"
#include "confdefs.h"
#include <string.h>
EOF
@@ -99619,7 +99211,7 @@ fi
if test $ac_cv_header_stdc = yes; then
# ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
cat > conftest.$ac_ext <<EOF
-#line 99623 "configure"
+#line 99215 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
@@ -99640,7 +99232,7 @@ if test "$cross_compiling" = yes; then
:
else
cat > conftest.$ac_ext <<EOF
-#line 99644 "configure"
+#line 99236 "configure"
#include "confdefs.h"
#include <ctype.h>
#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -99651,7 +99243,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
exit (0); }
EOF
-if { (eval echo configure:99655: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:99247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
:
else
@@ -99678,17 +99270,17 @@ for ac_hdr in xmlparse.h xmltok.h stdlib.h strings.h string.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:99682: checking for $ac_hdr" >&5
+echo "configure:99274: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99687 "configure"
+#line 99279 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:99692: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:99284: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -99720,7 +99312,7 @@ done
echo $ac_n "checking size of char""... $ac_c" 1>&6
-echo "configure:99724: checking size of char" >&5
+echo "configure:99316: checking size of char" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_char'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -99728,7 +99320,7 @@ else
ac_cv_sizeof_char=1
else
cat > conftest.$ac_ext <<EOF
-#line 99732 "configure"
+#line 99324 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -99739,7 +99331,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:99743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:99335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_char=`cat conftestval`
else
@@ -99760,7 +99352,7 @@ EOF
echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:99764: checking size of int" >&5
+echo "configure:99356: checking size of int" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -99768,7 +99360,7 @@ else
ac_cv_sizeof_int=4
else
cat > conftest.$ac_ext <<EOF
-#line 99772 "configure"
+#line 99364 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -99779,7 +99371,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:99783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:99375: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_int=`cat conftestval`
else
@@ -99799,7 +99391,7 @@ EOF
echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:99803: checking size of long" >&5
+echo "configure:99395: checking size of long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -99807,7 +99399,7 @@ else
ac_cv_sizeof_long=4
else
cat > conftest.$ac_ext <<EOF
-#line 99811 "configure"
+#line 99403 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -99818,7 +99410,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:99822: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:99414: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long=`cat conftestval`
else
@@ -99838,7 +99430,7 @@ EOF
echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:99842: checking size of long long" >&5
+echo "configure:99434: checking size of long long" >&5
if eval "test \"`echo '$''{'ac_cv_sizeof_long_long'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -99846,7 +99438,7 @@ else
ac_cv_sizeof_long_long=8
else
cat > conftest.$ac_ext <<EOF
-#line 99850 "configure"
+#line 99442 "configure"
#include "confdefs.h"
#include <stdio.h>
int main()
@@ -99857,7 +99449,7 @@ int main()
return(0);
}
EOF
-if { (eval echo configure:99861: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:99453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_sizeof_long_long=`cat conftestval`
else
@@ -99877,12 +99469,12 @@ EOF
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:99881: checking for size_t" >&5
+echo "configure:99473: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99886 "configure"
+#line 99478 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -99910,12 +99502,12 @@ EOF
fi
echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:99914: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:99506: checking whether time.h and sys/time.h may both be included" >&5
if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99919 "configure"
+#line 99511 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <sys/time.h>
@@ -99924,7 +99516,7 @@ int main() {
struct tm *tp;
; return 0; }
EOF
-if { (eval echo configure:99928: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:99520: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_header_time=yes
else
@@ -99945,12 +99537,12 @@ EOF
fi
echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:99949: checking for uid_t in sys/types.h" >&5
+echo "configure:99541: checking for uid_t in sys/types.h" >&5
if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99954 "configure"
+#line 99546 "configure"
#include "confdefs.h"
#include <sys/types.h>
EOF
@@ -99990,12 +99582,12 @@ for ac_func in \
memcpy memmove
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:99994: checking for $ac_func" >&5
+echo "configure:99586: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 99999 "configure"
+#line 99591 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -100018,7 +99610,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:100022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:99614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -100361,7 +99953,7 @@ elif test "$PHP_XMLRPC" != "no"; then
XMLRPC_DIR=$PHP_XMLRPC/include/xmlrpc-epi
else
echo $ac_n "checking for XMLRPC-EPI in default path""... $ac_c" 1>&6
-echo "configure:100365: checking for XMLRPC-EPI in default path" >&5
+echo "configure:99957: checking for XMLRPC-EPI in default path" >&5
for i in /usr/local /usr; do
if test -r $i/include/xmlrpc.h; then
XMLRPC_DIR=$i/include
@@ -100791,7 +100383,7 @@ fi
echo $ac_n "checking whether to enable XMLWriter support""... $ac_c" 1>&6
-echo "configure:100795: checking whether to enable XMLWriter support" >&5
+echo "configure:100387: checking whether to enable XMLWriter support" >&5
# Check whether --enable-xmlwriter or --disable-xmlwriter was given.
if test "${enable_xmlwriter+set}" = set; then
enableval="$enable_xmlwriter"
@@ -100838,7 +100430,7 @@ if test -z "$PHP_LIBXML_DIR"; then
echo $ac_n "checking libxml2 install dir""... $ac_c" 1>&6
-echo "configure:100842: checking libxml2 install dir" >&5
+echo "configure:100434: checking libxml2 install dir" >&5
# Check whether --with-libxml-dir or --without-libxml-dir was given.
if test "${with_libxml_dir+set}" = set; then
withval="$with_libxml_dir"
@@ -100869,7 +100461,7 @@ if test "$PHP_XMLWRITER" != "no"; then
echo $ac_n "checking for xml2-config path""... $ac_c" 1>&6
-echo "configure:100873: checking for xml2-config path" >&5
+echo "configure:100465: checking for xml2-config path" >&5
if eval "test \"`echo '$''{'ac_cv_php_xml2_config_path'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -101026,7 +100618,7 @@ echo "$ac_t""$ac_cv_php_xml2_config_path" 1>&6
echo $ac_n "checking whether libxml build works""... $ac_c" 1>&6
-echo "configure:101030: checking whether libxml build works" >&5
+echo "configure:100622: checking whether libxml build works" >&5
if eval "test \"`echo '$''{'php_cv_libxml_build_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -101042,7 +100634,7 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 101046 "configure"
+#line 100638 "configure"
#include "confdefs.h"
@@ -101053,7 +100645,7 @@ else
}
EOF
-if { (eval echo configure:101057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:100649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBS=$old_LIBS
@@ -101391,7 +100983,7 @@ fi
echo $ac_n "checking for XSL support""... $ac_c" 1>&6
-echo "configure:101395: checking for XSL support" >&5
+echo "configure:100987: checking for XSL support" >&5
# Check whether --with-xsl or --without-xsl was given.
if test "${with_xsl+set}" = set; then
withval="$with_xsl"
@@ -101593,7 +101185,7 @@ if test "$PHP_XSL" != "no"; then
echo $ac_n "checking for EXSLT support""... $ac_c" 1>&6
-echo "configure:101597: checking for EXSLT support" >&5
+echo "configure:101189: checking for EXSLT support" >&5
for i in $PHP_XSL /usr/local /usr; do
if test -r "$i/include/libexslt/exslt.h"; then
PHP_XSL_EXSL_DIR=$i
@@ -102034,6 +101626,7 @@ EOF
am_i_shared=$PHP_XSL_SHARED
is_it_shared=$PHP_LIBXML_SHARED
+ is_it_enabled=$PHP_LIBXML
if test "$am_i_shared" = "no" && test "$is_it_shared" = "yes" ; then
{ echo "configure: error:
You've configured extension xsl to build statically, but it
@@ -102042,7 +101635,7 @@ You either need to build xsl shared or build libxml statically for the
build to be successful.
" 1>&2; exit 1; }
fi
- if test "x$is_it_shared" = "x" && test "x" != "xtrue"; then
+ if test "x$is_it_enabled" = "xno" && test "x" != "xtrue"; then
{ echo "configure: error:
You've configured extension xsl, which depends on extension libxml,
but you've either not enabled libxml, or have disabled it.
@@ -102129,7 +101722,7 @@ fi
echo $ac_n "checking whether to install PEAR""... $ac_c" 1>&6
-echo "configure:102133: checking whether to install PEAR" >&5
+echo "configure:101726: checking whether to install PEAR" >&5
# Check whether --with-pear or --without-pear was given.
if test "${with_pear+set}" = set; then
withval="$with_pear"
@@ -102239,7 +101832,7 @@ fi
bison_version=none
if test "$YACC"; then
echo $ac_n "checking for bison version""... $ac_c" 1>&6
-echo "configure:102243: checking for bison version" >&5
+echo "configure:101836: checking for bison version" >&5
if eval "test \"`echo '$''{'php_cv_bison_version'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -102296,17 +101889,17 @@ dlfcn.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:102300: checking for $ac_hdr" >&5
+echo "configure:101893: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102305 "configure"
+#line 101898 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:102310: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:101903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -102334,12 +101927,12 @@ done
echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:102338: checking for size_t" >&5
+echo "configure:101931: checking for size_t" >&5
if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102343 "configure"
+#line 101936 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -102367,12 +101960,12 @@ EOF
fi
echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:102371: checking return type of signal handlers" >&5
+echo "configure:101964: checking return type of signal handlers" >&5
if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102376 "configure"
+#line 101969 "configure"
#include "confdefs.h"
#include <sys/types.h>
#include <signal.h>
@@ -102389,7 +101982,7 @@ int main() {
int i;
; return 0; }
EOF
-if { (eval echo configure:102393: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:101986: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_signal=void
else
@@ -102413,12 +102006,12 @@ EOF
echo $ac_n "checking for uint""... $ac_c" 1>&6
-echo "configure:102417: checking for uint" >&5
+echo "configure:102010: checking for uint" >&5
if eval "test \"`echo '$''{'ac_cv_type_uint'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102422 "configure"
+#line 102015 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -102446,12 +102039,12 @@ EOF
fi
echo $ac_n "checking for ulong""... $ac_c" 1>&6
-echo "configure:102450: checking for ulong" >&5
+echo "configure:102043: checking for ulong" >&5
if eval "test \"`echo '$''{'ac_cv_type_ulong'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102455 "configure"
+#line 102048 "configure"
#include "confdefs.h"
#include <sys/types.h>
#if STDC_HEADERS
@@ -102481,9 +102074,9 @@ fi
echo $ac_n "checking for int32_t""... $ac_c" 1>&6
-echo "configure:102485: checking for int32_t" >&5
+echo "configure:102078: checking for int32_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 102487 "configure"
+#line 102080 "configure"
#include "confdefs.h"
#if HAVE_SYS_TYPES_H
@@ -102502,7 +102095,7 @@ if (sizeof (int32_t))
; return 0; }
EOF
-if { (eval echo configure:102506: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:102099: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<EOF
@@ -102521,9 +102114,9 @@ fi
rm -f conftest*
echo $ac_n "checking for uint32_t""... $ac_c" 1>&6
-echo "configure:102525: checking for uint32_t" >&5
+echo "configure:102118: checking for uint32_t" >&5
cat > conftest.$ac_ext <<EOF
-#line 102527 "configure"
+#line 102120 "configure"
#include "confdefs.h"
#if HAVE_SYS_TYPES_H
@@ -102542,7 +102135,7 @@ if (sizeof (uint32_t))
; return 0; }
EOF
-if { (eval echo configure:102546: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:102139: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
cat >> confdefs.h <<EOF
@@ -102561,12 +102154,12 @@ fi
rm -f conftest*
echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:102565: checking for vprintf" >&5
+echo "configure:102158: checking for vprintf" >&5
if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102570 "configure"
+#line 102163 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char vprintf(); below. */
@@ -102589,7 +102182,7 @@ vprintf();
; return 0; }
EOF
-if { (eval echo configure:102593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_vprintf=yes"
else
@@ -102613,12 +102206,12 @@ fi
if test "$ac_cv_func_vprintf" != yes; then
echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:102617: checking for _doprnt" >&5
+echo "configure:102210: checking for _doprnt" >&5
if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102622 "configure"
+#line 102215 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char _doprnt(); below. */
@@ -102641,7 +102234,7 @@ _doprnt();
; return 0; }
EOF
-if { (eval echo configure:102645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func__doprnt=yes"
else
@@ -102666,7 +102259,7 @@ fi
fi
echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:102670: checking for 8-bit clean memcmp" >&5
+echo "configure:102263: checking for 8-bit clean memcmp" >&5
if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -102674,7 +102267,7 @@ else
ac_cv_func_memcmp_clean=no
else
cat > conftest.$ac_ext <<EOF
-#line 102678 "configure"
+#line 102271 "configure"
#include "confdefs.h"
main()
@@ -102684,7 +102277,7 @@ main()
}
EOF
-if { (eval echo configure:102688: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:102281: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_func_memcmp_clean=yes
else
@@ -102704,19 +102297,19 @@ test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
# for constant arguments. Useless!
echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:102708: checking for working alloca.h" >&5
+echo "configure:102301: checking for working alloca.h" >&5
if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102713 "configure"
+#line 102306 "configure"
#include "confdefs.h"
#include <alloca.h>
int main() {
char *p = alloca(2 * sizeof(int));
; return 0; }
EOF
-if { (eval echo configure:102720: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_header_alloca_h=yes
else
@@ -102737,12 +102330,12 @@ EOF
fi
echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:102741: checking for alloca" >&5
+echo "configure:102334: checking for alloca" >&5
if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102746 "configure"
+#line 102339 "configure"
#include "confdefs.h"
#ifdef __GNUC__
@@ -102770,7 +102363,7 @@ int main() {
char *p = (char *) alloca(1);
; return 0; }
EOF
-if { (eval echo configure:102774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102367: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
ac_cv_func_alloca_works=yes
else
@@ -102802,12 +102395,12 @@ EOF
echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:102806: checking whether alloca needs Cray hooks" >&5
+echo "configure:102399: checking whether alloca needs Cray hooks" >&5
if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102811 "configure"
+#line 102404 "configure"
#include "confdefs.h"
#if defined(CRAY) && ! defined(CRAY2)
webecray
@@ -102832,12 +102425,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
if test $ac_cv_os_cray = yes; then
for ac_func in _getb67 GETB67 getb67; do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:102836: checking for $ac_func" >&5
+echo "configure:102429: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102841 "configure"
+#line 102434 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -102860,7 +102453,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:102864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -102887,7 +102480,7 @@ done
fi
echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:102891: checking stack direction for C alloca" >&5
+echo "configure:102484: checking stack direction for C alloca" >&5
if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -102895,7 +102488,7 @@ else
ac_cv_c_stack_direction=0
else
cat > conftest.$ac_ext <<EOF
-#line 102899 "configure"
+#line 102492 "configure"
#include "confdefs.h"
find_stack_direction ()
{
@@ -102914,7 +102507,7 @@ main ()
exit (find_stack_direction() < 0);
}
EOF
-if { (eval echo configure:102918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:102511: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_c_stack_direction=1
else
@@ -102938,12 +102531,12 @@ fi
for ac_func in memcpy strdup getpid kill strtod strtol finite fpclass
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:102942: checking for $ac_func" >&5
+echo "configure:102535: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 102947 "configure"
+#line 102540 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -102966,7 +102559,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:102970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102563: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -102992,7 +102585,7 @@ done
echo $ac_n "checking whether sprintf is broken""... $ac_c" 1>&6
-echo "configure:102996: checking whether sprintf is broken" >&5
+echo "configure:102589: checking whether sprintf is broken" >&5
if eval "test \"`echo '$''{'ac_cv_broken_sprintf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -103003,11 +102596,11 @@ else
else
cat > conftest.$ac_ext <<EOF
-#line 103007 "configure"
+#line 102600 "configure"
#include "confdefs.h"
main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }
EOF
-if { (eval echo configure:103011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:102604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
ac_cv_broken_sprintf=no
@@ -103041,12 +102634,12 @@ EOF
for ac_func in finite isfinite isinf isnan
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:103045: checking for $ac_func" >&5
+echo "configure:102638: checking for $ac_func" >&5
if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 103050 "configure"
+#line 102643 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char $ac_func(); below. */
@@ -103069,7 +102662,7 @@ $ac_func();
; return 0; }
EOF
-if { (eval echo configure:103073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:102666: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
@@ -103096,13 +102689,13 @@ done
echo $ac_n "checking whether fp_except is defined""... $ac_c" 1>&6
-echo "configure:103100: checking whether fp_except is defined" >&5
+echo "configure:102693: checking whether fp_except is defined" >&5
if eval "test \"`echo '$''{'ac_cv_type_fp_except'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 103106 "configure"
+#line 102699 "configure"
#include "confdefs.h"
#include <floatingpoint.h>
@@ -103113,7 +102706,7 @@ fp_except x = (fp_except) 0;
; return 0; }
EOF
-if { (eval echo configure:103117: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:102710: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_type_fp_except=yes
@@ -103143,17 +102736,17 @@ for ac_hdr in dlfcn.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:103147: checking for $ac_hdr" >&5
+echo "configure:102740: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 103152 "configure"
+#line 102745 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:103157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:102750: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -103181,14 +102774,14 @@ done
echo $ac_n "checking whether dlsym() requires a leading underscore in symbol names""... $ac_c" 1>&6
-echo "configure:103185: checking whether dlsym() requires a leading underscore in symbol names" >&5
+echo "configure:102778: checking whether dlsym() requires a leading underscore in symbol names" >&5
if test "$cross_compiling" = yes; then :
else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 103192 "configure"
+#line 102785 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -103249,7 +102842,7 @@ int main ()
exit (status);
}
EOF
- if { (eval echo configure:103253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ if { (eval echo configure:102846: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
@@ -103358,31 +102951,31 @@ fi
echo $ac_n "checking virtual machine dispatch method""... $ac_c" 1>&6
-echo "configure:103362: checking virtual machine dispatch method" >&5
+echo "configure:102955: checking virtual machine dispatch method" >&5
echo "$ac_t""$PHP_ZEND_VM" 1>&6
echo $ac_n "checking whether to enable the Zend memory manager""... $ac_c" 1>&6
-echo "configure:103366: checking whether to enable the Zend memory manager" >&5
+echo "configure:102959: checking whether to enable the Zend memory manager" >&5
echo "$ac_t""$ZEND_USE_ZEND_ALLOC" 1>&6
echo $ac_n "checking whether to enable thread-safety""... $ac_c" 1>&6
-echo "configure:103370: checking whether to enable thread-safety" >&5
+echo "configure:102963: checking whether to enable thread-safety" >&5
echo "$ac_t""$ZEND_MAINTAINER_ZTS" 1>&6
echo $ac_n "checking whether to enable inline optimization for GCC""... $ac_c" 1>&6
-echo "configure:103374: checking whether to enable inline optimization for GCC" >&5
+echo "configure:102967: checking whether to enable inline optimization for GCC" >&5
echo "$ac_t""$ZEND_INLINE_OPTIMIZATION" 1>&6
echo $ac_n "checking whether to enable a memory limit""... $ac_c" 1>&6
-echo "configure:103378: checking whether to enable a memory limit" >&5
+echo "configure:102971: checking whether to enable a memory limit" >&5
echo "$ac_t""$ZEND_MEMORY_LIMIT" 1>&6
echo $ac_n "checking whether to enable Zend debugging""... $ac_c" 1>&6
-echo "configure:103382: checking whether to enable Zend debugging" >&5
+echo "configure:102975: checking whether to enable Zend debugging" >&5
echo "$ac_t""$ZEND_DEBUG" 1>&6
echo $ac_n "checking whether to enable Zend multibyte""... $ac_c" 1>&6
-echo "configure:103386: checking whether to enable Zend multibyte" >&5
+echo "configure:102979: checking whether to enable Zend multibyte" >&5
echo "$ac_t""$ZEND_MULTIBYTE" 1>&6
case $PHP_ZEND_VM in
@@ -103479,21 +103072,21 @@ fi
echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:103483: checking for inline" >&5
+echo "configure:103076: checking for inline" >&5
if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
ac_cv_c_inline=no
for ac_kw in inline __inline__ __inline; do
cat > conftest.$ac_ext <<EOF
-#line 103490 "configure"
+#line 103083 "configure"
#include "confdefs.h"
int main() {
} $ac_kw foo() {
; return 0; }
EOF
-if { (eval echo configure:103497: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:103090: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
rm -rf conftest*
ac_cv_c_inline=$ac_kw; break
else
@@ -103522,7 +103115,7 @@ esac
echo $ac_n "checking target system is Darwin""... $ac_c" 1>&6
-echo "configure:103526: checking target system is Darwin" >&5
+echo "configure:103119: checking target system is Darwin" >&5
if echo "$target" | grep "darwin" > /dev/null; then
cat >> confdefs.h <<\EOF
#define DARWIN 1
@@ -103534,7 +103127,7 @@ else
fi
echo $ac_n "checking for MM alignment and log values""... $ac_c" 1>&6
-echo "configure:103538: checking for MM alignment and log values" >&5
+echo "configure:103131: checking for MM alignment and log values" >&5
if test "$cross_compiling" = yes; then
@@ -103542,7 +103135,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 103546 "configure"
+#line 103139 "configure"
#include "confdefs.h"
#include <stdio.h>
@@ -103578,7 +103171,7 @@ int main()
}
EOF
-if { (eval echo configure:103582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:103175: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
LIBZEND_MM_ALIGN=`cat conftest.zend | cut -d ' ' -f 1`
@@ -103644,17 +103237,17 @@ for ac_hdr in stdarg.h
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:103648: checking for $ac_hdr" >&5
+echo "configure:103241: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 103653 "configure"
+#line 103246 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:103658: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:103251: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -103731,7 +103324,7 @@ if test "$TSRM_PTH" != "no"; then
echo $ac_n "checking for GNU Pth""... $ac_c" 1>&6
-echo "configure:103735: checking for GNU Pth" >&5
+echo "configure:103328: checking for GNU Pth" >&5
PTH_PREFIX="`$TSRM_PTH --prefix`"
if test -z "$PTH_PREFIX"; then
echo "$ac_t""Please check your Pth installation" 1>&6
@@ -103761,17 +103354,17 @@ elif test "$TSRM_ST" != "no"; then
do
ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:103765: checking for $ac_hdr" >&5
+echo "configure:103358: checking for $ac_hdr" >&5
if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 103770 "configure"
+#line 103363 "configure"
#include "confdefs.h"
#include <$ac_hdr>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:103775: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:103368: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
rm -rf conftest*
@@ -103801,7 +103394,7 @@ done
LIBS="$LIBS -lst"
echo $ac_n "checking for SGI's State Threads""... $ac_c" 1>&6
-echo "configure:103805: checking for SGI's State Threads" >&5
+echo "configure:103398: checking for SGI's State Threads" >&5
echo "$ac_t""yes" 1>&6
cat >> confdefs.h <<\EOF
#define TSRM_ST 1
@@ -103840,7 +103433,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 103844 "configure"
+#line 103437 "configure"
#include "confdefs.h"
#include <pthread.h>
@@ -103858,7 +103451,7 @@ int main() {
return pthread_create(&thd, NULL, thread_routine, &data);
}
EOF
-if { (eval echo configure:103862: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:103455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
pthreads_working=yes
@@ -103878,7 +103471,7 @@ fi
CFLAGS=$save_CFLAGS
echo $ac_n "checking for pthreads_cflags""... $ac_c" 1>&6
-echo "configure:103882: checking for pthreads_cflags" >&5
+echo "configure:103475: checking for pthreads_cflags" >&5
if eval "test \"`echo '$''{'ac_cv_pthreads_cflags'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -103900,7 +103493,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 103904 "configure"
+#line 103497 "configure"
#include "confdefs.h"
#include <pthread.h>
@@ -103918,7 +103511,7 @@ int main() {
return pthread_create(&thd, NULL, thread_routine, &data);
}
EOF
-if { (eval echo configure:103922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:103515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
pthreads_working=yes
@@ -103948,7 +103541,7 @@ fi
echo "$ac_t""$ac_cv_pthreads_cflags" 1>&6
echo $ac_n "checking for pthreads_lib""... $ac_c" 1>&6
-echo "configure:103952: checking for pthreads_lib" >&5
+echo "configure:103545: checking for pthreads_lib" >&5
if eval "test \"`echo '$''{'ac_cv_pthreads_lib'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -103970,7 +103563,7 @@ if test "$cross_compiling" = yes; then
else
cat > conftest.$ac_ext <<EOF
-#line 103974 "configure"
+#line 103567 "configure"
#include "confdefs.h"
#include <pthread.h>
@@ -103988,7 +103581,7 @@ int main() {
return pthread_create(&thd, NULL, thread_routine, &data);
}
EOF
-if { (eval echo configure:103992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:103585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
then
pthreads_working=yes
@@ -104039,7 +103632,7 @@ EOF
echo $ac_n "checking for POSIX threads""... $ac_c" 1>&6
-echo "configure:104043: checking for POSIX threads" >&5
+echo "configure:103636: checking for POSIX threads" >&5
echo "$ac_t""yes" 1>&6
fi
@@ -104510,12 +104103,6 @@ fi
PHP_VAR_SUBST="$PHP_VAR_SUBST PHP_FRAMEWORKPATH"
-
- PHP_VAR_SUBST="$PHP_VAR_SUBST SHLIB_SUFFIX_NAME"
-
-
-
-
PHP_VAR_SUBST="$PHP_VAR_SUBST INSTALL_HEADERS"
@@ -104627,7 +104214,7 @@ fi
echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:104631: checking build system type" >&5
+echo "configure:104218: checking build system type" >&5
build_alias=$build
case "$build_alias" in
@@ -104656,7 +104243,7 @@ ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by $CC""... $ac_c" 1>&6
-echo "configure:104660: checking for ld used by $CC" >&5
+echo "configure:104247: checking for ld used by $CC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -104686,10 +104273,10 @@ echo "configure:104660: checking for ld used by $CC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:104690: checking for GNU ld" >&5
+echo "configure:104277: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:104693: checking for non-GNU ld" >&5
+echo "configure:104280: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -104728,7 +104315,7 @@ else
fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:104732: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:104319: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -104748,7 +104335,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6
-echo "configure:104752: checking for $LD option to reload object files" >&5
+echo "configure:104339: checking for $LD option to reload object files" >&5
if eval "test \"`echo '$''{'lt_cv_ld_reload_flag'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -104773,7 +104360,7 @@ case $host_os in
esac
echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:104777: checking for BSD-compatible nm" >&5
+echo "configure:104364: checking for BSD-compatible nm" >&5
if eval "test \"`echo '$''{'lt_cv_path_NM'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -104819,7 +104406,7 @@ echo "$ac_t""$lt_cv_path_NM" 1>&6
NM="$lt_cv_path_NM"
echo $ac_n "checking how to recognise dependent libraries""... $ac_c" 1>&6
-echo "configure:104823: checking how to recognise dependent libraries" >&5
+echo "configure:104410: checking how to recognise dependent libraries" >&5
if eval "test \"`echo '$''{'lt_cv_deplibs_check_method'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -104997,13 +104584,13 @@ deplibs_check_method=$lt_cv_deplibs_check_method
test -z "$deplibs_check_method" && deplibs_check_method=unknown
echo $ac_n "checking for object suffix""... $ac_c" 1>&6
-echo "configure:105001: checking for object suffix" >&5
+echo "configure:104588: checking for object suffix" >&5
if eval "test \"`echo '$''{'ac_cv_objext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
rm -f conftest*
echo 'int i = 1;' > conftest.$ac_ext
-if { (eval echo configure:105007: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:104594: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
for ac_file in conftest.*; do
case $ac_file in
*.c) ;;
@@ -105023,7 +104610,7 @@ ac_objext=$ac_cv_objext
echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:105027: checking for executable suffix" >&5
+echo "configure:104614: checking for executable suffix" >&5
if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105033,7 +104620,7 @@ else
rm -f conftest*
echo 'int main () { return 0; }' > conftest.$ac_ext
ac_cv_exeext=
- if { (eval echo configure:105037: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+ if { (eval echo configure:104624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
for file in conftest.*; do
case $file in
*.c | *.o | *.obj) ;;
@@ -105076,7 +104663,7 @@ case $host in
ia64-*-hpux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:105080: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:104667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case `/usr/bin/file conftest.$ac_objext` in
*ELF-32*)
HPUX_IA64_MODE="32"
@@ -105090,8 +104677,8 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 105094 "configure"' > conftest.$ac_ext
- if { (eval echo configure:105095: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 104681 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:104682: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
if test "$lt_cv_prog_gnu_ld" = yes; then
case `/usr/bin/file conftest.$ac_objext` in
*32-bit*)
@@ -105124,7 +104711,7 @@ ia64-*-hpux*)
x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
# Find out which ABI we are using.
echo 'int i;' > conftest.$ac_ext
- if { (eval echo configure:105128: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:104715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case `/usr/bin/file conftest.o` in
*32-bit*)
case $host in
@@ -105168,7 +104755,7 @@ x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*)
SAVE_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -belf"
echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6
-echo "configure:105172: checking whether the C compiler needs -belf" >&5
+echo "configure:104759: checking whether the C compiler needs -belf" >&5
if eval "test \"`echo '$''{'lt_cv_cc_needs_belf'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105181,14 +104768,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
cross_compiling=$ac_cv_prog_cc_cross
cat > conftest.$ac_ext <<EOF
-#line 105185 "configure"
+#line 104772 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:105192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:104779: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
lt_cv_cc_needs_belf=yes
else
@@ -105225,7 +104812,7 @@ if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
(test "X$CXX" != "Xg++"))) ; then
echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:105229: checking how to run the C++ preprocessor" >&5
+echo "configure:104816: checking how to run the C++ preprocessor" >&5
if test -z "$CXXCPP"; then
if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -105238,12 +104825,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
cross_compiling=$ac_cv_prog_cxx_cross
CXXCPP="${CXX-g++} -E"
cat > conftest.$ac_ext <<EOF
-#line 105242 "configure"
+#line 104829 "configure"
#include "confdefs.h"
#include <stdlib.h>
EOF
ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:105247: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:104834: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
if test -z "$ac_err"; then
:
@@ -105274,7 +104861,7 @@ fi
# find the maximum length of command line arguments
echo $ac_n "checking the maximum length of command line arguments""... $ac_c" 1>&6
-echo "configure:105278: checking the maximum length of command line arguments" >&5
+echo "configure:104865: checking the maximum length of command line arguments" >&5
if eval "test \"`echo '$''{'lt_cv_sys_max_cmd_len'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105375,7 +104962,7 @@ fi
# Check for command to grab the raw symbol name followed by C symbol from nm.
echo $ac_n "checking command to parse $NM output from $compiler object""... $ac_c" 1>&6
-echo "configure:105379: checking command to parse $NM output from $compiler object" >&5
+echo "configure:104966: checking command to parse $NM output from $compiler object" >&5
if eval "test \"`echo '$''{'lt_cv_sys_global_symbol_pipe'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105470,10 +105057,10 @@ void nm_test_func(){}
int main(){nm_test_var='a';nm_test_func();return(0);}
EOF
- if { (eval echo configure:105474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ if { (eval echo configure:105061: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
# Now try to grab the symbols.
nlist=conftest.nm
- if { (eval echo configure:105477: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
+ if { (eval echo configure:105064: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then
# Try sorting and uniquifying the output.
if sort "$nlist" | uniq > "$nlist"T; then
mv -f "$nlist"T "$nlist"
@@ -105524,7 +105111,7 @@ EOF
lt_save_CFLAGS="$CFLAGS"
LIBS="conftstm.$ac_objext"
CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
- if { (eval echo configure:105528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ if { (eval echo configure:105115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
pipe_works=yes
fi
LIBS="$lt_save_LIBS"
@@ -105564,7 +105151,7 @@ else
fi
echo $ac_n "checking for objdir""... $ac_c" 1>&6
-echo "configure:105568: checking for objdir" >&5
+echo "configure:105155: checking for objdir" >&5
if eval "test \"`echo '$''{'lt_cv_objdir'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105630,7 +105217,7 @@ with_gnu_ld="$lt_cv_prog_gnu_ld"
# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
set dummy ${ac_tool_prefix}ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105634: checking for $ac_word" >&5
+echo "configure:105221: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105662,7 +105249,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ar", so it can be a program name with args.
set dummy ar; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105666: checking for $ac_word" >&5
+echo "configure:105253: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105697,7 +105284,7 @@ fi
# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
set dummy ${ac_tool_prefix}ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105701: checking for $ac_word" >&5
+echo "configure:105288: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105729,7 +105316,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "ranlib", so it can be a program name with args.
set dummy ranlib; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105733: checking for $ac_word" >&5
+echo "configure:105320: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105764,7 +105351,7 @@ fi
# Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
set dummy ${ac_tool_prefix}strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105768: checking for $ac_word" >&5
+echo "configure:105355: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105796,7 +105383,7 @@ if test -n "$ac_tool_prefix"; then
# Extract the first word of "strip", so it can be a program name with args.
set dummy strip; ac_word=$2
echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:105800: checking for $ac_word" >&5
+echo "configure:105387: checking for $ac_word" >&5
if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105882,7 +105469,7 @@ case $deplibs_check_method in
file_magic*)
if test "$file_magic_cmd" = '$MAGIC_CMD'; then
echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6
-echo "configure:105886: checking for ${ac_tool_prefix}file" >&5
+echo "configure:105473: checking for ${ac_tool_prefix}file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -105942,7 +105529,7 @@ fi
if test -z "$lt_cv_path_MAGIC_CMD"; then
if test -n "$ac_tool_prefix"; then
echo $ac_n "checking for file""... $ac_c" 1>&6
-echo "configure:105946: checking for file" >&5
+echo "configure:105533: checking for file" >&5
if eval "test \"`echo '$''{'lt_cv_path_MAGIC_CMD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -106101,7 +105688,7 @@ fi
# Check to make sure the static flag actually works.
#
echo $ac_n "checking if $compiler static flag $lt_prog_compiler_static works""... $ac_c" 1>&6
-echo "configure:106105: checking if $compiler static flag $lt_prog_compiler_static works" >&5
+echo "configure:105692: checking if $compiler static flag $lt_prog_compiler_static works" >&5
if eval "test \"`echo '$''{'lt_prog_compiler_static_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -106151,7 +105738,7 @@ if test "$GCC" = yes; then
echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6
-echo "configure:106155: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+echo "configure:105742: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
if eval "test \"`echo '$''{'lt_cv_prog_compiler_rtti_exceptions'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -106168,11 +105755,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:106172: $lt_compile\"" >&5)
+ (eval echo "\"configure:105759: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:106176: \$? = $ac_status" >&5
+ echo "configure:105763: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -106201,7 +105788,7 @@ lt_prog_compiler_pic=
lt_prog_compiler_static=
echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
-echo "configure:106205: checking for $compiler option to produce PIC" >&5
+echo "configure:105792: checking for $compiler option to produce PIC" >&5
if test "$GCC" = yes; then
lt_prog_compiler_wl='-Wl,'
@@ -106412,7 +105999,7 @@ echo "$ac_t""$lt_prog_compiler_pic" 1>&6
if test -n "$lt_prog_compiler_pic"; then
echo $ac_n "checking if $compiler PIC flag $lt_prog_compiler_pic works""... $ac_c" 1>&6
-echo "configure:106416: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+echo "configure:106003: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
if eval "test \"`echo '$''{'lt_prog_compiler_pic_works'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -106429,11 +106016,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:106433: $lt_compile\"" >&5)
+ (eval echo "\"configure:106020: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:106437: \$? = $ac_status" >&5
+ echo "configure:106024: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -106471,7 +106058,7 @@ case $host_os in
esac
echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
-echo "configure:106475: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo "configure:106062: checking if $compiler supports -c -o file.$ac_objext" >&5
if eval "test \"`echo '$''{'lt_cv_prog_compiler_c_o'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -106491,11 +106078,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:106495: $lt_compile\"" >&5)
+ (eval echo "\"configure:106082: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "configure:106499: \$? = $ac_status" >&5
+ echo "configure:106086: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -106525,7 +106112,7 @@ hard_links="nottested"
if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
# do not overwrite the value of need_locks provided by the user
echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
-echo "configure:106529: checking if we can lock with hard links" >&5
+echo "configure:106116: checking if we can lock with hard links" >&5
hard_links=yes
$rm conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
@@ -106542,7 +106129,7 @@ else
fi
echo $ac_n "checking whether the $compiler linker ($LD) supports shared libraries""... $ac_c" 1>&6
-echo "configure:106546: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo "configure:106133: checking whether the $compiler linker ($LD) supports shared libraries" >&5
runpath_var=
allow_undefined_flag=
@@ -106895,12 +106482,12 @@ EOF
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <<EOF
-#line 106899 "configure"
+#line 106486 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:106904: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:106491: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
@@ -106926,12 +106513,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <<EOF
-#line 106930 "configure"
+#line 106517 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:106935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:106522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
@@ -107403,11 +106990,11 @@ x|xyes)
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
-echo "configure:107407: checking whether -lc should be explicitly linked in" >&5
+echo "configure:106994: checking whether -lc should be explicitly linked in" >&5
$rm conftest*
printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo configure:107411: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } 2>conftest.err; then
+ if { (eval echo configure:106998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } 2>conftest.err; then
soname=conftest
lib=conftest
libobjs=conftest.$ac_objext
@@ -107420,7 +107007,7 @@ echo "configure:107407: checking whether -lc should be explicitly linked in" >&5
libname=conftest
lt_save_allow_undefined_flag=$allow_undefined_flag
allow_undefined_flag=
- if { (eval echo configure:107424: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
+ if { (eval echo configure:107011: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
then
archive_cmds_need_lc=no
else
@@ -107439,7 +107026,7 @@ echo "configure:107407: checking whether -lc should be explicitly linked in" >&5
esac
echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
-echo "configure:107443: checking dynamic linker characteristics" >&5
+echo "configure:107030: checking dynamic linker characteristics" >&5
library_names_spec=
libname_spec='lib$name'
soname_spec=
@@ -107813,8 +107400,8 @@ linux*)
libsuff=
case $host_cpu in
x86_64*|s390x*|powerpc64*)
- echo '#line 107817 "configure"' > conftest.$ac_ext
- if { (eval echo configure:107818: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 107404 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:107405: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case `/usr/bin/file conftest.$ac_objext` in
*64-bit*)
libsuff=64
@@ -108013,7 +107600,7 @@ echo "$ac_t""$dynamic_linker" 1>&6
test "$dynamic_linker" = no && can_build_shared=no
echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
-echo "configure:108017: checking how to hardcode library paths into programs" >&5
+echo "configure:107604: checking how to hardcode library paths into programs" >&5
hardcode_action=
if test -n "$hardcode_libdir_flag_spec" || \
test -n "$runpath_var" || \
@@ -108051,7 +107638,7 @@ fi
striplib=
old_striplib=
echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
-echo "configure:108055: checking whether stripping libraries is possible" >&5
+echo "configure:107642: checking whether stripping libraries is possible" >&5
if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
@@ -108101,7 +107688,7 @@ else
darwin*)
# if libdl is installed we need to link against it
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:108105: checking for dlopen in -ldl" >&5
+echo "configure:107692: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -108109,7 +107696,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 108113 "configure"
+#line 107700 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -108120,7 +107707,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:108124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -108149,12 +107736,12 @@ fi
*)
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "configure:108153: checking for shl_load" >&5
+echo "configure:107740: checking for shl_load" >&5
if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 108158 "configure"
+#line 107745 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_load(); below. */
@@ -108177,7 +107764,7 @@ shl_load();
; return 0; }
EOF
-if { (eval echo configure:108181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shl_load=yes"
else
@@ -108195,7 +107782,7 @@ if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:108199: checking for shl_load in -ldld" >&5
+echo "configure:107786: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -108203,7 +107790,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 108207 "configure"
+#line 107794 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -108214,7 +107801,7 @@ int main() {
shl_load()
; return 0; }
EOF
-if { (eval echo configure:108218: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -108233,12 +107820,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:108237: checking for dlopen" >&5
+echo "configure:107824: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 108242 "configure"
+#line 107829 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
@@ -108261,7 +107848,7 @@ dlopen();
; return 0; }
EOF
-if { (eval echo configure:108265: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107852: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@@ -108279,7 +107866,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:108283: checking for dlopen in -ldl" >&5
+echo "configure:107870: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -108287,7 +107874,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 108291 "configure"
+#line 107878 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -108298,7 +107885,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:108302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107889: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -108317,7 +107904,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
-echo "configure:108321: checking for dlopen in -lsvld" >&5
+echo "configure:107908: checking for dlopen in -lsvld" >&5
ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -108325,7 +107912,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsvld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 108329 "configure"
+#line 107916 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -108336,7 +107923,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:108340: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107927: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -108355,7 +107942,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "configure:108359: checking for dld_link in -ldld" >&5
+echo "configure:107946: checking for dld_link in -ldld" >&5
ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -108363,7 +107950,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 108367 "configure"
+#line 107954 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
/* We use char because int might match the return type of a gcc2
@@ -108374,7 +107961,7 @@ int main() {
dld_link()
; return 0; }
EOF
-if { (eval echo configure:108378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:107965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -108430,7 +108017,7 @@ fi
LIBS="$lt_cv_dlopen_libs $LIBS"
echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "configure:108434: checking whether a program can dlopen itself" >&5
+echo "configure:108021: checking whether a program can dlopen itself" >&5
if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -108440,7 +108027,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 108444 "configure"
+#line 108031 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -108501,7 +108088,7 @@ int main ()
exit (status);
}
EOF
- if { (eval echo configure:108505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ if { (eval echo configure:108092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
@@ -108524,7 +108111,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6
if test "x$lt_cv_dlopen_self" = xyes; then
LDFLAGS="$LDFLAGS $link_static_flag"
echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "configure:108528: checking whether a statically linked program can dlopen itself" >&5
+echo "configure:108115: checking whether a statically linked program can dlopen itself" >&5
if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -108534,7 +108121,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 108538 "configure"
+#line 108125 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -108595,7 +108182,7 @@ int main ()
exit (status);
}
EOF
- if { (eval echo configure:108599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ if { (eval echo configure:108186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
@@ -108636,11 +108223,11 @@ fi
# Report which librarie types wil actually be built
echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6
-echo "configure:108640: checking if libtool supports shared libraries" >&5
+echo "configure:108227: checking if libtool supports shared libraries" >&5
echo "$ac_t""$can_build_shared" 1>&6
echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
-echo "configure:108644: checking whether to build shared libraries" >&5
+echo "configure:108231: checking whether to build shared libraries" >&5
test "$can_build_shared" = "no" && enable_shared=no
# On AIX, shared libraries and static libraries use the same namespace, and
@@ -108663,7 +108250,7 @@ esac
echo "$ac_t""$enable_shared" 1>&6
echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
-echo "configure:108667: checking whether to build static libraries" >&5
+echo "configure:108254: checking whether to build static libraries" >&5
# Make sure either enable_shared or enable_static is yes.
test "$enable_shared" = yes || enable_static=yes
echo "$ac_t""$enable_static" 1>&6
@@ -109332,7 +108919,7 @@ ac_prog=ld
if test "$GCC" = yes; then
# Check if gcc -print-prog-name=ld gives a path.
echo $ac_n "checking for ld used by $CC""... $ac_c" 1>&6
-echo "configure:109336: checking for ld used by $CC" >&5
+echo "configure:108923: checking for ld used by $CC" >&5
case $host in
*-*-mingw*)
# gcc leaves a trailing carriage return which upsets mingw
@@ -109362,10 +108949,10 @@ echo "configure:109336: checking for ld used by $CC" >&5
esac
elif test "$with_gnu_ld" = yes; then
echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:109366: checking for GNU ld" >&5
+echo "configure:108953: checking for GNU ld" >&5
else
echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:109369: checking for non-GNU ld" >&5
+echo "configure:108956: checking for non-GNU ld" >&5
fi
if eval "test \"`echo '$''{'lt_cv_path_LD'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -109404,7 +108991,7 @@ else
fi
test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:109408: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:108995: checking if the linker ($LD) is GNU ld" >&5
if eval "test \"`echo '$''{'lt_cv_prog_gnu_ld'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -109470,7 +109057,7 @@ fi
# PORTME: fill in a description of your system's C++ link characteristics
echo $ac_n "checking whether the $compiler linker ($LD) supports shared libraries""... $ac_c" 1>&6
-echo "configure:109474: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo "configure:109061: checking whether the $compiler linker ($LD) supports shared libraries" >&5
ld_shlibs_CXX=yes
case $host_os in
aix3*)
@@ -109566,12 +109153,12 @@ case $host_os in
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <<EOF
-#line 109570 "configure"
+#line 109157 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:109575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:109162: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
@@ -109598,12 +109185,12 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
# Determine the default libpath from the value encoded in an empty executable.
cat > conftest.$ac_ext <<EOF
-#line 109602 "configure"
+#line 109189 "configure"
#include "confdefs.h"
int main() {
; return 0; }
EOF
-if { (eval echo configure:109607: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:109194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
}'`
@@ -110310,7 +109897,7 @@ private:
};
EOF
-if { (eval echo configure:110314: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:109901: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
# Parse the compiler output and extract the necessary
# objects, libraries and library flags.
@@ -110420,7 +110007,7 @@ lt_prog_compiler_pic_CXX=
lt_prog_compiler_static_CXX=
echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6
-echo "configure:110424: checking for $compiler option to produce PIC" >&5
+echo "configure:110011: checking for $compiler option to produce PIC" >&5
# C++ specific cases for pic, static, wl, etc.
if test "$GXX" = yes; then
@@ -110695,7 +110282,7 @@ echo "$ac_t""$lt_prog_compiler_pic_CXX" 1>&6
if test -n "$lt_prog_compiler_pic_CXX"; then
echo $ac_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works""... $ac_c" 1>&6
-echo "configure:110699: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+echo "configure:110286: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
if eval "test \"`echo '$''{'lt_prog_compiler_pic_works_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -110712,11 +110299,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:110716: $lt_compile\"" >&5)
+ (eval echo "\"configure:110303: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "configure:110720: \$? = $ac_status" >&5
+ echo "configure:110307: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -110754,7 +110341,7 @@ case $host_os in
esac
echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6
-echo "configure:110758: checking if $compiler supports -c -o file.$ac_objext" >&5
+echo "configure:110345: checking if $compiler supports -c -o file.$ac_objext" >&5
if eval "test \"`echo '$''{'lt_cv_prog_compiler_c_o_CXX'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -110774,11 +110361,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"configure:110778: $lt_compile\"" >&5)
+ (eval echo "\"configure:110365: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "configure:110782: \$? = $ac_status" >&5
+ echo "configure:110369: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -110808,7 +110395,7 @@ hard_links="nottested"
if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
# do not overwrite the value of need_locks provided by the user
echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6
-echo "configure:110812: checking if we can lock with hard links" >&5
+echo "configure:110399: checking if we can lock with hard links" >&5
hard_links=yes
$rm conftest*
ln conftest.a conftest.b 2>/dev/null && hard_links=no
@@ -110825,7 +110412,7 @@ else
fi
echo $ac_n "checking whether the $compiler linker ($LD) supports shared libraries""... $ac_c" 1>&6
-echo "configure:110829: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+echo "configure:110416: checking whether the $compiler linker ($LD) supports shared libraries" >&5
export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
case $host_os in
@@ -110875,11 +110462,11 @@ x|xyes)
# systems, -lgcc has to come before -lc. If gcc already passes -lc
# to ld, don't add -lc before -lgcc.
echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6
-echo "configure:110879: checking whether -lc should be explicitly linked in" >&5
+echo "configure:110466: checking whether -lc should be explicitly linked in" >&5
$rm conftest*
printf "$lt_simple_compile_test_code" > conftest.$ac_ext
- if { (eval echo configure:110883: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } 2>conftest.err; then
+ if { (eval echo configure:110470: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; } 2>conftest.err; then
soname=conftest
lib=conftest
libobjs=conftest.$ac_objext
@@ -110892,7 +110479,7 @@ echo "configure:110879: checking whether -lc should be explicitly linked in" >&5
libname=conftest
lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
allow_undefined_flag_CXX=
- if { (eval echo configure:110896: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
+ if { (eval echo configure:110483: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; }
then
archive_cmds_need_lc_CXX=no
else
@@ -110911,7 +110498,7 @@ echo "configure:110879: checking whether -lc should be explicitly linked in" >&5
esac
echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6
-echo "configure:110915: checking dynamic linker characteristics" >&5
+echo "configure:110502: checking dynamic linker characteristics" >&5
library_names_spec=
libname_spec='lib$name'
soname_spec=
@@ -111285,8 +110872,8 @@ linux*)
libsuff=
case $host_cpu in
x86_64*|s390x*|powerpc64*)
- echo '#line 111289 "configure"' > conftest.$ac_ext
- if { (eval echo configure:111290: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+ echo '#line 110876 "configure"' > conftest.$ac_ext
+ if { (eval echo configure:110877: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
case `/usr/bin/file conftest.$ac_objext` in
*64-bit*)
libsuff=64
@@ -111485,7 +111072,7 @@ echo "$ac_t""$dynamic_linker" 1>&6
test "$dynamic_linker" = no && can_build_shared=no
echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6
-echo "configure:111489: checking how to hardcode library paths into programs" >&5
+echo "configure:111076: checking how to hardcode library paths into programs" >&5
hardcode_action_CXX=
if test -n "$hardcode_libdir_flag_spec_CXX" || \
test -n "$runpath_var_CXX" || \
@@ -111523,7 +111110,7 @@ fi
striplib=
old_striplib=
echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6
-echo "configure:111527: checking whether stripping libraries is possible" >&5
+echo "configure:111114: checking whether stripping libraries is possible" >&5
if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
test -z "$striplib" && striplib="$STRIP --strip-unneeded"
@@ -111573,7 +111160,7 @@ else
darwin*)
# if libdl is installed we need to link against it
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:111577: checking for dlopen in -ldl" >&5
+echo "configure:111164: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -111581,7 +111168,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 111585 "configure"
+#line 111172 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -111595,7 +111182,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:111599: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -111624,12 +111211,12 @@ fi
*)
echo $ac_n "checking for shl_load""... $ac_c" 1>&6
-echo "configure:111628: checking for shl_load" >&5
+echo "configure:111215: checking for shl_load" >&5
if eval "test \"`echo '$''{'ac_cv_func_shl_load'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 111633 "configure"
+#line 111220 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char shl_load(); below. */
@@ -111655,7 +111242,7 @@ shl_load();
; return 0; }
EOF
-if { (eval echo configure:111659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_shl_load=yes"
else
@@ -111673,7 +111260,7 @@ if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:111677: checking for shl_load in -ldld" >&5
+echo "configure:111264: checking for shl_load in -ldld" >&5
ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -111681,7 +111268,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 111685 "configure"
+#line 111272 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -111695,7 +111282,7 @@ int main() {
shl_load()
; return 0; }
EOF
-if { (eval echo configure:111699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111286: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -111714,12 +111301,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen""... $ac_c" 1>&6
-echo "configure:111718: checking for dlopen" >&5
+echo "configure:111305: checking for dlopen" >&5
if eval "test \"`echo '$''{'ac_cv_func_dlopen'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
cat > conftest.$ac_ext <<EOF
-#line 111723 "configure"
+#line 111310 "configure"
#include "confdefs.h"
/* System header to define __stub macros and hopefully few prototypes,
which can conflict with char dlopen(); below. */
@@ -111745,7 +111332,7 @@ dlopen();
; return 0; }
EOF
-if { (eval echo configure:111749: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_func_dlopen=yes"
else
@@ -111763,7 +111350,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:111767: checking for dlopen in -ldl" >&5
+echo "configure:111354: checking for dlopen in -ldl" >&5
ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -111771,7 +111358,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldl $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 111775 "configure"
+#line 111362 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -111785,7 +111372,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:111789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -111804,7 +111391,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6
-echo "configure:111808: checking for dlopen in -lsvld" >&5
+echo "configure:111395: checking for dlopen in -lsvld" >&5
ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -111812,7 +111399,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-lsvld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 111816 "configure"
+#line 111403 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -111826,7 +111413,7 @@ int main() {
dlopen()
; return 0; }
EOF
-if { (eval echo configure:111830: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -111845,7 +111432,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
else
echo "$ac_t""no" 1>&6
echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6
-echo "configure:111849: checking for dld_link in -ldld" >&5
+echo "configure:111436: checking for dld_link in -ldld" >&5
ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-%__p_%'`
if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
@@ -111853,7 +111440,7 @@ else
ac_save_LIBS="$LIBS"
LIBS="-ldld $LIBS"
cat > conftest.$ac_ext <<EOF
-#line 111857 "configure"
+#line 111444 "configure"
#include "confdefs.h"
/* Override any gcc2 internal prototype to avoid an error. */
#ifdef __cplusplus
@@ -111867,7 +111454,7 @@ int main() {
dld_link()
; return 0; }
EOF
-if { (eval echo configure:111871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:111458: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
rm -rf conftest*
eval "ac_cv_lib_$ac_lib_var=yes"
else
@@ -111923,7 +111510,7 @@ fi
LIBS="$lt_cv_dlopen_libs $LIBS"
echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6
-echo "configure:111927: checking whether a program can dlopen itself" >&5
+echo "configure:111514: checking whether a program can dlopen itself" >&5
if eval "test \"`echo '$''{'lt_cv_dlopen_self'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -111933,7 +111520,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 111937 "configure"
+#line 111524 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -111994,7 +111581,7 @@ int main ()
exit (status);
}
EOF
- if { (eval echo configure:111998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ if { (eval echo configure:111585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
@@ -112017,7 +111604,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6
if test "x$lt_cv_dlopen_self" = xyes; then
LDFLAGS="$LDFLAGS $link_static_flag"
echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6
-echo "configure:112021: checking whether a statically linked program can dlopen itself" >&5
+echo "configure:111608: checking whether a statically linked program can dlopen itself" >&5
if eval "test \"`echo '$''{'lt_cv_dlopen_self_static'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&6
else
@@ -112027,7 +111614,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 112031 "configure"
+#line 111618 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -112088,7 +111675,7 @@ int main ()
exit (status);
}
EOF
- if { (eval echo configure:112092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
+ if { (eval echo configure:111679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then
(./conftest; exit; ) >&5 2>/dev/null
lt_status=$?
case x$lt_status in
@@ -113357,6 +112944,8 @@ s%@YACC@%$YACC%g
s%@LEX@%$LEX%g
s%@LEXLIB@%$LEXLIB%g
s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+s%@SHLIB_SUFFIX_NAME@%$SHLIB_SUFFIX_NAME%g
+s%@SHLIB_DL_SUFFIX_NAME@%$SHLIB_DL_SUFFIX_NAME%g
s%@PTHREAD_CC@%$PTHREAD_CC%g
s%@PTHREAD_LIBS@%$PTHREAD_LIBS%g
s%@PTHREAD_CFLAGS@%$PTHREAD_CFLAGS%g
@@ -113420,7 +113009,6 @@ s%@PEAR_INSTALLDIR@%$PEAR_INSTALLDIR%g
s%@PHP_LDFLAGS@%$PHP_LDFLAGS%g
s%@PHP_LIBS@%$PHP_LIBS%g
s%@PHP_VERSION@%$PHP_VERSION%g
-s%@SHLIB_SUFFIX_NAME@%$SHLIB_SUFFIX_NAME%g
s%@build@%$build%g
s%@build_alias@%$build_alias%g
s%@build_cpu@%$build_cpu%g
diff --git a/configure.in b/configure.in
index 7b7f2c517..e65bf936c 100644
--- a/configure.in
+++ b/configure.in
@@ -1,4 +1,4 @@
- ## $Id: configure.in,v 1.579.2.35 2006/01/11 14:19:13 iliaa Exp $ -*- autoconf -*-
+ ## $Id: configure.in,v 1.579.2.54 2006/08/15 13:14:47 iliaa Exp $ -*- autoconf -*-
dnl ## Process this file with autoconf to produce a configure script.
divert(1)
@@ -41,7 +41,7 @@ AC_CONFIG_HEADER(main/php_config.h)
MAJOR_VERSION=5
MINOR_VERSION=1
-RELEASE_VERSION=2
+RELEASE_VERSION=5
EXTRA_VERSION=""
VERSION="$MAJOR_VERSION.$MINOR_VERSION.$RELEASE_VERSION$EXTRA_VERSION"
@@ -224,7 +224,7 @@ dnl -------------------------------------------------------------------------
PTHREADS_CHECK
PHP_HELP_SEPARATOR([SAPI modules:])
-PHP_SHLIB_SUFFIX_NAME
+PHP_SHLIB_SUFFIX_NAMES
PHP_SAPI=default
PHP_BUILD_PROGRAM
@@ -233,7 +233,7 @@ dnl SAPI configuration.
dnl -------------------------------------------------------------------------
dnl paths to the targets are relative to the build directory
-SAPI_SHARED=libs/libphp5.$SHLIB_SUFFIX_NAME
+SAPI_SHARED=libs/libphp5.$SHLIB_DL_SUFFIX_NAME
SAPI_STATIC=libs/libphp5.a
SAPI_LIBTOOL=libphp5.la
@@ -466,6 +466,7 @@ ftok \
funopen \
gai_strerror \
gcvt \
+getloadavg \
getlogin \
getprotobyname \
getprotobynumber \
@@ -482,6 +483,7 @@ isascii \
link \
localtime_r \
lockf \
+lchown \
lrand48 \
memcpy \
memmove \
@@ -1195,7 +1197,6 @@ PHP_SUBST(SHARED_LIBTOOL)
PHP_SUBST(WARNING_LEVEL)
PHP_SUBST(PHP_FRAMEWORKS)
PHP_SUBST(PHP_FRAMEWORKPATH)
-PHP_SUBST_OLD(SHLIB_SUFFIX_NAME)
PHP_SUBST(INSTALL_HEADERS)
old_CC=$CC
diff --git a/ext/com_dotnet/com_com.c b/ext/com_dotnet/com_com.c
index 76d188080..7d3dd5834 100644
--- a/ext/com_dotnet/com_com.c
+++ b/ext/com_dotnet/com_com.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: com_com.c,v 1.16.2.1 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: com_com.c,v 1.16.2.2 2006/01/26 11:17:34 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -336,7 +336,7 @@ PHP_FUNCTION(com_get_active_object)
/* Performs an Invoke on the given com object.
* returns a failure code and creates an exception if there was an error */
HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
- WORD flags, DISPPARAMS *disp_params, VARIANT *v TSRMLS_DC)
+ WORD flags, DISPPARAMS *disp_params, VARIANT *v, int silent TSRMLS_DC)
{
HRESULT hr;
unsigned int arg_err;
@@ -345,7 +345,7 @@ HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
hr = IDispatch_Invoke(V_DISPATCH(&obj->v), id_member,
&IID_NULL, LOCALE_SYSTEM_DEFAULT, flags, disp_params, v, &e, &arg_err);
- if (FAILED(hr)) {
+ if (silent == 0 && FAILED(hr)) {
char *source = NULL, *desc = NULL, *msg = NULL;
int source_len, desc_len;
@@ -543,7 +543,7 @@ int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
}
/* this will create an exception if needed */
- hr = php_com_invoke_helper(obj, dispid, flags, &disp_params, v TSRMLS_CC);
+ hr = php_com_invoke_helper(obj, dispid, flags, &disp_params, v, 0 TSRMLS_CC);
/* release variants */
if (vargs) {
@@ -581,7 +581,7 @@ int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
int php_com_do_invoke_by_id(php_com_dotnet_object *obj, DISPID dispid,
- WORD flags, VARIANT *v, int nargs, zval **args TSRMLS_DC)
+ WORD flags, VARIANT *v, int nargs, zval **args, int silent TSRMLS_DC)
{
DISPID altdispid;
DISPPARAMS disp_params;
@@ -610,7 +610,7 @@ int php_com_do_invoke_by_id(php_com_dotnet_object *obj, DISPID dispid,
}
/* this will create an exception if needed */
- hr = php_com_invoke_helper(obj, dispid, flags, &disp_params, v TSRMLS_CC);
+ hr = php_com_invoke_helper(obj, dispid, flags, &disp_params, v, silent TSRMLS_CC);
/* release variants */
if (vargs) {
@@ -646,7 +646,7 @@ int php_com_do_invoke(php_com_dotnet_object *obj, char *name, int namelen,
return FAILURE;
}
- return php_com_do_invoke_by_id(obj, dispid, flags, v, nargs, args TSRMLS_CC);
+ return php_com_do_invoke_by_id(obj, dispid, flags, v, nargs, args, 0 TSRMLS_CC);
}
/* {{{ proto string com_create_guid()
diff --git a/ext/com_dotnet/com_handlers.c b/ext/com_dotnet/com_handlers.c
index a73721c4b..911fc73a9 100644
--- a/ext/com_dotnet/com_handlers.c
+++ b/ext/com_dotnet/com_handlers.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: com_handlers.c,v 1.30.2.2 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: com_handlers.c,v 1.30.2.5 2006/02/07 11:50:54 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -101,7 +101,7 @@ static zval *com_read_dimension(zval *object, zval *offset, int type TSRMLS_DC)
VariantInit(&v);
if (SUCCESS == php_com_do_invoke_by_id(obj, DISPID_VALUE,
- DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 1, &offset TSRMLS_CC)) {
+ DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 1, &offset, 0 TSRMLS_CC)) {
php_com_zval_from_variant(return_value, &v, obj->code_page TSRMLS_CC);
VariantClear(&v);
}
@@ -140,7 +140,7 @@ static void com_write_dimension(zval *object, zval *offset, zval *value TSRMLS_D
VariantInit(&v);
if (SUCCESS == php_com_do_invoke_by_id(obj, DISPID_VALUE,
- DISPATCH_METHOD|DISPATCH_PROPERTYPUT, &v, 2, args TSRMLS_CC)) {
+ DISPATCH_METHOD|DISPATCH_PROPERTYPUT, &v, 2, args, 0 TSRMLS_CC)) {
VariantClear(&v);
}
} else if (V_ISARRAY(&obj->v)) {
@@ -503,9 +503,9 @@ static int com_object_cast(zval *readobj, zval *writeobj, int type, int should_f
VariantInit(&v);
if (V_VT(&obj->v) == VT_DISPATCH) {
- if (FAILURE == php_com_do_invoke_by_id(obj, DISPID_VALUE,
- DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 0, NULL TSRMLS_CC)) {
- return FAILURE;
+ if (SUCCESS != php_com_do_invoke_by_id(obj, DISPID_VALUE,
+ DISPATCH_METHOD|DISPATCH_PROPERTYGET, &v, 0, NULL, 1 TSRMLS_CC)) {
+ VariantCopy(&v, &obj->v);
}
} else {
VariantCopy(&v, &obj->v);
@@ -634,9 +634,11 @@ void php_com_object_free_storage(void *object TSRMLS_DC)
VariantClear(&obj->v);
if (obj->method_cache) {
+ zend_hash_destroy(obj->method_cache);
FREE_HASHTABLE(obj->method_cache);
}
if (obj->id_of_name_cache) {
+ zend_hash_destroy(obj->id_of_name_cache);
FREE_HASHTABLE(obj->id_of_name_cache);
}
efree(obj);
diff --git a/ext/com_dotnet/com_iterator.c b/ext/com_dotnet/com_iterator.c
index 5093ba52b..27afaa621 100644
--- a/ext/com_dotnet/com_iterator.c
+++ b/ext/com_dotnet/com_iterator.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: com_iterator.c,v 1.9.2.1 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: com_iterator.c,v 1.9.2.2 2006/02/07 11:50:54 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -38,6 +38,7 @@ struct php_com_iterator {
VARIANT safe_array;
VARTYPE sa_type;
LONG sa_max;
+ zval *zdata;
};
static void com_iter_dtor(zend_object_iterator *iter TSRMLS_DC)
@@ -49,6 +50,9 @@ static void com_iter_dtor(zend_object_iterator *iter TSRMLS_DC)
}
VariantClear(&I->v);
VariantClear(&I->safe_array);
+ if (I->zdata) {
+ zval_ptr_dtor((zval**)&I->zdata);
+ }
efree(I);
}
@@ -56,32 +60,18 @@ static int com_iter_valid(zend_object_iterator *iter TSRMLS_DC)
{
struct php_com_iterator *I = (struct php_com_iterator*)iter->data;
- if (I->key == (ulong)-1) {
- return FAILURE;
+ if (I->zdata) {
+ return SUCCESS;
}
- return SUCCESS;
+
+ return FAILURE;
}
static void com_iter_get_data(zend_object_iterator *iter, zval ***data TSRMLS_DC)
{
struct php_com_iterator *I = (struct php_com_iterator*)iter->data;
- zval **ptr_ptr;
- zval *ptr;
-
- /* sanity */
- if (I->key == (ulong)-1) {
- *data = NULL;
- return;
- }
-
- MAKE_STD_ZVAL(ptr);
- php_com_zval_from_variant(ptr, &I->v, I->code_page TSRMLS_CC);
- /* php_com_wrap_variant(ptr, &I->v, I->code_page TSRMLS_CC); */
- ptr_ptr = emalloc(sizeof(*ptr_ptr));
- *ptr_ptr = ptr;
- *data = ptr_ptr;
- return;
+ *data = &I->zdata;
}
static int com_iter_get_key(zend_object_iterator *iter, char **str_key, uint *str_key_len,
@@ -100,15 +90,20 @@ static int com_iter_move_forwards(zend_object_iterator *iter TSRMLS_DC)
{
struct php_com_iterator *I = (struct php_com_iterator*)iter->data;
unsigned long n_fetched;
+ zval *ptr;
/* release current cached element */
VariantClear(&I->v);
+ if (I->zdata) {
+ zval_ptr_dtor((zval**)&I->zdata);
+ I->zdata = NULL;
+ }
+
if (I->ev) {
/* Get the next element */
if (SUCCEEDED(IEnumVARIANT_Next(I->ev, 1, &I->v, &n_fetched)) && n_fetched > 0) {
I->key++;
- return SUCCESS;
} else {
/* indicate that there are no more items */
I->key = (ulong)-1;
@@ -121,13 +116,17 @@ static int com_iter_move_forwards(zend_object_iterator *iter TSRMLS_DC)
return FAILURE;
}
I->key++;
- if (php_com_safearray_get_elem(&I->safe_array, &I->v, (LONG)I->key TSRMLS_CC)) {
- return SUCCESS;
- } else {
+ if (php_com_safearray_get_elem(&I->safe_array, &I->v, (LONG)I->key TSRMLS_CC) == 0) {
I->key = (ulong)-1;
return FAILURE;
}
}
+
+ MAKE_STD_ZVAL(ptr);
+ php_com_zval_from_variant(ptr, &I->v, I->code_page TSRMLS_CC);
+ /* php_com_wrap_variant(ptr, &I->v, I->code_page TSRMLS_CC); */
+ I->zdata = ptr;
+ return SUCCESS;
}
@@ -148,6 +147,7 @@ zend_object_iterator *php_com_iter_get(zend_class_entry *ce, zval *object TSRMLS
DISPPARAMS dp;
VARIANT v;
unsigned long n_fetched;
+ zval *ptr;
obj = CDNO_FETCH(object);
@@ -163,6 +163,7 @@ zend_object_iterator *php_com_iter_get(zend_class_entry *ce, zval *object TSRMLS
I->iter.funcs = &com_iter_funcs;
I->iter.data = I;
I->code_page = obj->code_page;
+ I->zdata = NULL;
VariantInit(&I->safe_array);
VariantInit(&I->v);
@@ -189,6 +190,9 @@ zend_object_iterator *php_com_iter_get(zend_class_entry *ce, zval *object TSRMLS
/* pre-fetch the element */
if (php_com_safearray_get_elem(&I->safe_array, &I->v, bound TSRMLS_CC)) {
I->key = bound;
+ MAKE_STD_ZVAL(ptr);
+ php_com_zval_from_variant(ptr, &I->v, I->code_page TSRMLS_CC);
+ I->zdata = ptr;
} else {
I->key = (ulong)-1;
}
@@ -220,6 +224,9 @@ zend_object_iterator *php_com_iter_get(zend_class_entry *ce, zval *object TSRMLS
if (SUCCEEDED(IEnumVARIANT_Next(I->ev, 1, &I->v, &n_fetched)) && n_fetched > 0) {
/* indicate that we have element 0 */
I->key = 0;
+ MAKE_STD_ZVAL(ptr);
+ php_com_zval_from_variant(ptr, &I->v, I->code_page TSRMLS_CC);
+ I->zdata = ptr;
} else {
/* indicate that there are no more items */
I->key = (ulong)-1;
diff --git a/ext/com_dotnet/com_persist.c b/ext/com_dotnet/com_persist.c
index 37db84b80..b59d2ebb4 100755
--- a/ext/com_dotnet/com_persist.c
+++ b/ext/com_dotnet/com_persist.c
@@ -1,785 +1,781 @@
-/*
- +----------------------------------------------------------------------+
- | PHP Version 5 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2006 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Author: Wez Furlong <wez@thebrainroom.com> |
- +----------------------------------------------------------------------+
- */
-
-/* $Id: com_persist.c,v 1.5.2.1 2006/01/01 12:50:00 sniper Exp $ */
-
-/* Infrastructure for working with persistent COM objects.
- * Implements: IStream* wrapper for PHP streams.
- * TODO: Magic __wakeup and __sleep handlers for serialization
- * (can wait till 5.1) */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-#include "php_ini.h"
-#include "ext/standard/info.h"
-#include "php_com_dotnet.h"
-#include "php_com_dotnet_internal.h"
-#include "Zend/zend_exceptions.h"
-
-/* {{{ expose php_stream as a COM IStream */
-
-typedef struct {
- CONST_VTBL struct IStreamVtbl *lpVtbl;
- DWORD engine_thread;
- LONG refcount;
- php_stream *stream;
- int id;
-} php_istream;
-
-static int le_istream;
-static void istream_destructor(php_istream *stm);
-
-static void istream_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
-{
- php_istream *stm = (php_istream *)rsrc->ptr;
- istream_destructor(stm);
-}
-
-#ifdef ZTS
-# define TSRMLS_FIXED() TSRMLS_FETCH();
-#else
-# define TSRMLS_FIXED()
-#endif
-
-#define FETCH_STM() \
- TSRMLS_FIXED() \
- php_istream *stm = (php_istream*)This; \
- if (GetCurrentThreadId() != stm->engine_thread) \
- return RPC_E_WRONG_THREAD;
-
-static HRESULT STDMETHODCALLTYPE stm_queryinterface(
- IStream *This,
- /* [in] */ REFIID riid,
- /* [iid_is][out] */ void **ppvObject)
-{
- FETCH_STM();
-
- if (IsEqualGUID(&IID_IUnknown, riid) ||
- IsEqualGUID(&IID_IStream, riid)) {
- *ppvObject = This;
- InterlockedIncrement(&stm->refcount);
- return S_OK;
- }
-
- *ppvObject = NULL;
- return E_NOINTERFACE;
-}
-
-static ULONG STDMETHODCALLTYPE stm_addref(IStream *This)
-{
- FETCH_STM();
-
- return InterlockedIncrement(&stm->refcount);
-}
-
-static ULONG STDMETHODCALLTYPE stm_release(IStream *This)
-{
- ULONG ret;
- FETCH_STM();
-
- ret = InterlockedDecrement(&stm->refcount);
- if (ret == 0) {
- /* destroy it */
- if (stm->id)
- zend_list_delete(stm->id);
- }
- return ret;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_read(IStream *This, void *pv, ULONG cb, ULONG *pcbRead)
-{
- int nread;
- FETCH_STM();
-
- nread = php_stream_read(stm->stream, pv, cb);
-
- if (pcbRead) {
- *pcbRead = nread > 0 ? nread : 0;
- }
- if (nread > 0) {
- return S_OK;
- }
- return S_FALSE;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_write(IStream *This, void const *pv, ULONG cb, ULONG *pcbWritten)
-{
- int nwrote;
- FETCH_STM();
-
- nwrote = php_stream_write(stm->stream, pv, cb);
-
- if (pcbWritten) {
- *pcbWritten = nwrote > 0 ? nwrote : 0;
- }
- if (nwrote > 0) {
- return S_OK;
- }
- return S_FALSE;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_seek(IStream *This, LARGE_INTEGER dlibMove,
- DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
-{
- off_t offset;
- int whence;
- int ret;
- FETCH_STM();
-
- switch (dwOrigin) {
- case STREAM_SEEK_SET: whence = SEEK_SET; break;
- case STREAM_SEEK_CUR: whence = SEEK_CUR; break;
- case STREAM_SEEK_END: whence = SEEK_END; break;
- default:
- return STG_E_INVALIDFUNCTION;
- }
-
- if (dlibMove.HighPart) {
- /* we don't support 64-bit offsets */
- return STG_E_INVALIDFUNCTION;
- }
-
- offset = dlibMove.QuadPart;
-
- ret = php_stream_seek(stm->stream, offset, whence);
-
- if (plibNewPosition) {
- plibNewPosition->QuadPart = (ULONGLONG)(ret >= 0 ? ret : 0);
- }
-
- return ret >= 0 ? S_OK : STG_E_INVALIDFUNCTION;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_set_size(IStream *This, ULARGE_INTEGER libNewSize)
-{
- FETCH_STM();
-
- if (libNewSize.HighPart) {
- return STG_E_INVALIDFUNCTION;
- }
-
- if (php_stream_truncate_supported(stm->stream)) {
- int ret = php_stream_truncate_set_size(stm->stream, (size_t)libNewSize.QuadPart);
-
- if (ret == 0) {
- return S_OK;
- }
- }
-
- return STG_E_INVALIDFUNCTION;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_copy_to(IStream *This, IStream *pstm, ULARGE_INTEGER cb,
- ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)
-{
- FETCH_STM();
-
- return E_NOTIMPL;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_commit(IStream *This, DWORD grfCommitFlags)
-{
- FETCH_STM();
-
- php_stream_flush(stm->stream);
-
- return S_OK;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_revert(IStream *This)
-{
- /* NOP */
- return S_OK;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_lock_region(IStream *This,
- ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD lockType)
-{
- return STG_E_INVALIDFUNCTION;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_unlock_region(IStream *This,
- ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD lockType)
-{
- return STG_E_INVALIDFUNCTION;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_stat(IStream *This,
- STATSTG *pstatstg, DWORD grfStatFlag)
-{
- return STG_E_INVALIDFUNCTION;
-}
-
-static HRESULT STDMETHODCALLTYPE stm_clone(IStream *This, IStream **ppstm)
-{
- return STG_E_INVALIDFUNCTION;
-}
-
-static struct IStreamVtbl php_istream_vtbl = {
- stm_queryinterface,
- stm_addref,
- stm_release,
- stm_read,
- stm_write,
- stm_seek,
- stm_set_size,
- stm_copy_to,
- stm_commit,
- stm_revert,
- stm_lock_region,
- stm_unlock_region,
- stm_stat,
- stm_clone
-};
-
-static void istream_destructor(php_istream *stm)
-{
- TSRMLS_FETCH();
-
- if (stm->id) {
- int id = stm->id;
- stm->id = 0;
- zend_list_delete(id);
- return;
- }
-
- if (stm->refcount > 0) {
- CoDisconnectObject((IUnknown*)stm, 0);
- }
-
- zend_list_delete(stm->stream->rsrc_id);
-
- CoTaskMemFree(stm);
-}
-/* }}} */
-
-PHPAPI IStream *php_com_wrapper_export_stream(php_stream *stream TSRMLS_DC)
-{
- php_istream *stm = (php_istream*)CoTaskMemAlloc(sizeof(*stm));
-
- if (stm == NULL)
- return NULL;
-
- memset(stm, 0, sizeof(*stm));
- stm->engine_thread = GetCurrentThreadId();
- stm->lpVtbl = &php_istream_vtbl;
- stm->refcount = 1;
- stm->stream = stream;
-
- zend_list_addref(stream->rsrc_id);
- stm->id = zend_list_insert(stm, le_istream);
-
- return (IStream*)stm;
-}
-
-#define CPH_ME(fname, arginfo) PHP_ME(com_persist, fname, arginfo, ZEND_ACC_PUBLIC)
-#define CPH_SME(fname, arginfo) PHP_ME(com_persist, fname, arginfo, ZEND_ACC_ALLOW_STATIC|ZEND_ACC_PUBLIC)
-#define CPH_METHOD(fname) static PHP_METHOD(com_persist, fname)
-
-#define CPH_FETCH() php_com_persist_helper *helper = (php_com_persist_helper*)zend_object_store_get_object(getThis() TSRMLS_CC);
-
-#define CPH_NO_OBJ() if (helper->unk == NULL) { php_com_throw_exception(E_INVALIDARG, "No COM object is associated with this helper instance" TSRMLS_CC); return; }
-
-typedef struct {
- zend_object std;
- long codepage;
- IUnknown *unk;
- IPersistStream *ips;
- IPersistStreamInit *ipsi;
- IPersistFile *ipf;
-} php_com_persist_helper;
-
-static zend_object_handlers helper_handlers;
-static zend_class_entry *helper_ce;
-
-static inline HRESULT get_persist_stream(php_com_persist_helper *helper)
-{
- if (!helper->ips && helper->unk) {
- return IUnknown_QueryInterface(helper->unk, &IID_IPersistStream, &helper->ips);
- }
- return helper->ips ? S_OK : E_NOTIMPL;
-}
-
-static inline HRESULT get_persist_stream_init(php_com_persist_helper *helper)
-{
- if (!helper->ipsi && helper->unk) {
- return IUnknown_QueryInterface(helper->unk, &IID_IPersistStreamInit, &helper->ipsi);
- }
- return helper->ipsi ? S_OK : E_NOTIMPL;
-}
-
-static inline HRESULT get_persist_file(php_com_persist_helper *helper)
-{
- if (!helper->ipf && helper->unk) {
- return IUnknown_QueryInterface(helper->unk, &IID_IPersistFile, &helper->ipf);
- }
- return helper->ipf ? S_OK : E_NOTIMPL;
-}
-
-
-/* {{{ proto string COMPersistHelper::GetCurFile()
- Determines the filename into which an object will be saved, or false if none is set, via IPersistFile::GetCurFile */
-CPH_METHOD(GetCurFileName)
-{
- HRESULT res;
- OLECHAR *olename = NULL;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- res = get_persist_file(helper);
- if (helper->ipf) {
- res = IPersistFile_GetCurFile(helper->ipf, &olename);
-
- if (res == S_OK) {
- Z_TYPE_P(return_value) = IS_STRING;
- Z_STRVAL_P(return_value) = php_com_olestring_to_string(olename,
- &Z_STRLEN_P(return_value), helper->codepage TSRMLS_CC);
- CoTaskMemFree(olename);
- return;
- } else if (res == S_FALSE) {
- CoTaskMemFree(olename);
- RETURN_FALSE;
- }
- php_com_throw_exception(res, NULL TSRMLS_CC);
- } else {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-}
-/* }}} */
-
-
-/* {{{ proto bool COMPersistHelper::SaveToFile(string filename [, bool remember])
- Persist object data to file, via IPersistFile::Save */
-CPH_METHOD(SaveToFile)
-{
- HRESULT res;
- char *filename, *fullpath = NULL;
- int filename_len;
- zend_bool remember = TRUE;
- OLECHAR *olefilename = NULL;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- res = get_persist_file(helper);
- if (helper->ipf) {
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!|b",
- &filename, &filename_len, &remember)) {
- php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC);
- return;
- }
-
- if (filename) {
- fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
- if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
- RETURN_FALSE;
- }
-
- if (php_check_open_basedir(fullpath TSRMLS_CC)) {
- RETURN_FALSE;
- }
-
- olefilename = php_com_string_to_olestring(filename, strlen(fullpath), helper->codepage TSRMLS_CC);
- efree(fullpath);
- }
- res = IPersistFile_Save(helper->ipf, olefilename, remember);
- if (SUCCEEDED(res)) {
- if (!olefilename) {
- res = IPersistFile_GetCurFile(helper->ipf, &olefilename);
- if (S_OK == res) {
- IPersistFile_SaveCompleted(helper->ipf, olefilename);
- CoTaskMemFree(olefilename);
- olefilename = NULL;
- }
- } else if (remember) {
- IPersistFile_SaveCompleted(helper->ipf, olefilename);
- }
- }
-
- if (olefilename) {
- efree(olefilename);
- }
-
- if (FAILED(res)) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-
- } else {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-}
-/* }}} */
-
-/* {{{ proto bool COMPersistHelper::LoadFromFile(string filename [, int flags])
- Load object data from file, via IPersistFile::Load */
-CPH_METHOD(LoadFromFile)
-{
- HRESULT res;
- char *filename, *fullpath;
- int filename_len;
- long flags = 0;
- OLECHAR *olefilename;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- res = get_persist_file(helper);
- if (helper->ipf) {
-
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
- &filename, &filename_len, &flags)) {
- php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC);
- return;
- }
-
- fullpath = expand_filepath(filename, NULL TSRMLS_CC);
-
- if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
- RETURN_FALSE;
- }
-
- if (php_check_open_basedir(fullpath TSRMLS_CC)) {
- RETURN_FALSE;
- }
-
- olefilename = php_com_string_to_olestring(fullpath, strlen(fullpath), helper->codepage TSRMLS_CC);
- efree(fullpath);
-
- res = IPersistFile_Load(helper->ipf, olefilename, flags);
- efree(olefilename);
-
- if (FAILED(res)) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-
- } else {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-}
-/* }}} */
-
-/* {{{ proto int COMPersistHelper::GetMaxStreamSize()
- Gets maximum stream size required to store the object data, via IPersistStream::GetSizeMax (or IPersistStreamInit::GetSizeMax) */
-CPH_METHOD(GetMaxStreamSize)
-{
- HRESULT res;
- ULARGE_INTEGER size;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- res = get_persist_stream_init(helper);
- if (helper->ipsi) {
- res = IPersistStreamInit_GetSizeMax(helper->ipsi, &size);
- } else {
- res = get_persist_stream(helper);
- if (helper->ips) {
- res = IPersistStream_GetSizeMax(helper->ips, &size);
- } else {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- return;
- }
- }
-
- if (res != S_OK) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- } else {
- /* TODO: handle 64 bit properly */
- RETURN_LONG((LONG)size.QuadPart);
- }
-}
-/* }}} */
-
-/* {{{ proto int COMPersistHelper::InitNew()
- Initializes the object to a default state, via IPersistStreamInit::InitNew */
-CPH_METHOD(InitNew)
-{
- HRESULT res;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- res = get_persist_stream_init(helper);
- if (helper->ipsi) {
- res = IPersistStreamInit_InitNew(helper->ipsi);
-
- if (res != S_OK) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- } else {
- RETURN_TRUE;
- }
- } else {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- }
-}
-/* }}} */
-
-/* {{{ proto mixed COMPersistHelper::LoadFromStream(resource stream)
- Initializes an object from the stream where it was previously saved, via IPersistStream::Load or OleLoadFromStream */
-CPH_METHOD(LoadFromStream)
-{
- zval *zstm;
- php_stream *stream;
- IStream *stm = NULL;
- HRESULT res;
- CPH_FETCH();
-
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstm)) {
- php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
- return;
- }
-
- php_stream_from_zval_no_verify(stream, &zstm);
-
- if (stream == NULL) {
- php_com_throw_exception(E_INVALIDARG, "expected a stream" TSRMLS_CC);
- return;
- }
-
- stm = php_com_wrapper_export_stream(stream TSRMLS_CC);
- if (stm == NULL) {
- php_com_throw_exception(E_UNEXPECTED, "failed to wrap stream" TSRMLS_CC);
- return;
- }
-
- res = S_OK;
- RETVAL_TRUE;
-
- if (helper->unk == NULL) {
- IDispatch *disp = NULL;
-
- /* we need to create an object and load using OleLoadFromStream */
- res = OleLoadFromStream(stm, &IID_IDispatch, &disp);
-
- if (SUCCEEDED(res)) {
- php_com_wrap_dispatch(return_value, disp, COMG(code_page) TSRMLS_CC);
- }
- } else {
- res = get_persist_stream_init(helper);
- if (helper->ipsi) {
- res = IPersistStreamInit_Load(helper->ipsi, stm);
- } else {
- res = get_persist_stream(helper);
- if (helper->ips) {
- res = IPersistStreamInit_Load(helper->ipsi, stm);
- }
- }
- }
- IStream_Release(stm);
-
- if (FAILED(res)) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- RETURN_NULL();
- }
-}
-/* }}} */
-
-/* {{{ proto int COMPersistHelper::SaveToStream(resource stream)
- Saves the object to a stream, via IPersistStream::Save */
-CPH_METHOD(SaveToStream)
-{
- zval *zstm;
- php_stream *stream;
- IStream *stm = NULL;
- HRESULT res;
- CPH_FETCH();
-
- CPH_NO_OBJ();
-
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstm)) {
- php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
- return;
- }
-
- php_stream_from_zval_no_verify(stream, &zstm);
-
- if (stream == NULL) {
- php_com_throw_exception(E_INVALIDARG, "expected a stream" TSRMLS_CC);
- return;
- }
-
- stm = php_com_wrapper_export_stream(stream TSRMLS_CC);
- if (stm == NULL) {
- php_com_throw_exception(E_UNEXPECTED, "failed to wrap stream" TSRMLS_CC);
- return;
- }
-
- res = get_persist_stream_init(helper);
- if (helper->ipsi) {
- res = IPersistStreamInit_Save(helper->ipsi, stm, TRUE);
- } else {
- res = get_persist_stream(helper);
- if (helper->ips) {
- res = IPersistStream_Save(helper->ips, stm, TRUE);
- }
- }
-
- IStream_Release(stm);
-
- if (FAILED(res)) {
- php_com_throw_exception(res, NULL TSRMLS_CC);
- return;
- }
-
- RETURN_TRUE;
-}
-/* }}} */
-
-/* {{{ proto int COMPersistHelper::__construct([object com_object])
- Creates a persistence helper object, usually associated with a com_object */
-CPH_METHOD(__construct)
-{
- php_com_dotnet_object *obj = NULL;
- zval *zobj = NULL;
- CPH_FETCH();
-
- if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|O!",
- &zobj, php_com_variant_class_entry)) {
- php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
- return;
- }
-
- if (!zobj) {
- return;
- }
-
- obj = CDNO_FETCH(zobj);
-
- if (V_VT(&obj->v) != VT_DISPATCH || V_DISPATCH(&obj->v) == NULL) {
- php_com_throw_exception(E_INVALIDARG, "parameter must represent an IDispatch COM object" TSRMLS_CC);
- return;
- }
-
- /* it is always safe to cast an interface to IUnknown */
- helper->unk = (IUnknown*)V_DISPATCH(&obj->v);
- IUnknown_AddRef(helper->unk);
- helper->codepage = obj->code_page;
-}
-/* }}} */
-
-
-
-
-static zend_function_entry com_persist_helper_methods[] = {
- CPH_ME(__construct, NULL)
- CPH_ME(GetCurFileName, NULL)
- CPH_ME(SaveToFile, NULL)
- CPH_ME(LoadFromFile, NULL)
- CPH_ME(GetMaxStreamSize, NULL)
- CPH_ME(InitNew, NULL)
- CPH_ME(LoadFromStream, NULL)
- CPH_ME(SaveToStream, NULL)
- {NULL, NULL, NULL}
-};
-
-static void helper_free_storage(void *obj TSRMLS_DC)
-{
- php_com_persist_helper *object = (php_com_persist_helper*)obj;
-
- if (object->ipf) {
- IPersistFile_Release(object->ipf);
- }
- if (object->ips) {
- IPersistStream_Release(object->ips);
- }
- if (object->ipsi) {
- IPersistStreamInit_Release(object->ipsi);
- }
- if (object->unk) {
- IUnknown_Release(object->unk);
- }
- zend_hash_destroy(object->std.properties);
- FREE_HASHTABLE(object->std.properties);
- efree(object);
-}
-
-
-static void helper_clone(void *obj, void **clone_ptr TSRMLS_DC)
-{
- php_com_persist_helper *clone, *object = (php_com_persist_helper*)obj;
-
- clone = emalloc(sizeof(*object));
- memcpy(clone, object, sizeof(*object));
- *clone_ptr = clone;
-
- ALLOC_HASHTABLE(clone->std.properties);
- zend_hash_init(clone->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
-
- if (clone->ipf) {
- IPersistFile_AddRef(clone->ipf);
- }
- if (clone->ips) {
- IPersistStream_AddRef(clone->ips);
- }
- if (clone->ipsi) {
- IPersistStreamInit_AddRef(clone->ipsi);
- }
- if (clone->unk) {
- IUnknown_AddRef(clone->unk);
- }
-}
-
-static zend_object_value helper_new(zend_class_entry *ce TSRMLS_DC)
-{
- php_com_persist_helper *helper;
- zend_object_value retval;
-
- helper = emalloc(sizeof(*helper));
- memset(helper, 0, sizeof(*helper));
-
- ALLOC_HASHTABLE(helper->std.properties);
- zend_hash_init(helper->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
- helper->std.ce = helper_ce;
-
- retval.handle = zend_objects_store_put(helper, NULL, helper_free_storage, helper_clone TSRMLS_CC);
- retval.handlers = &helper_handlers;
-
- return retval;
-}
-
-int php_com_persist_minit(INIT_FUNC_ARGS)
-{
- zend_class_entry ce;
-
- memcpy(&helper_handlers, zend_get_std_object_handlers(), sizeof(helper_handlers));
- helper_handlers.clone_obj = NULL;
-
- INIT_CLASS_ENTRY(ce, "COMPersistHelper", com_persist_helper_methods);
- ce.create_object = helper_new;
- helper_ce = zend_register_internal_class(&ce TSRMLS_CC);
- helper_ce->ce_flags |= ZEND_ACC_FINAL;
-
- le_istream = zend_register_list_destructors_ex(istream_dtor,
- NULL, "com_dotnet_istream_wrapper", module_number);
-
- return SUCCESS;
-}
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- * vim600: noet sw=4 ts=4 fdm=marker
- * vim<600: noet sw=4 ts=4
- */
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2006 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Author: Wez Furlong <wez@thebrainroom.com> |
+ +----------------------------------------------------------------------+
+ */
+
+/* $Id: com_persist.c,v 1.5.2.3 2006/03/29 14:28:41 tony2001 Exp $ */
+
+/* Infrastructure for working with persistent COM objects.
+ * Implements: IStream* wrapper for PHP streams.
+ * TODO: Magic __wakeup and __sleep handlers for serialization
+ * (can wait till 5.1) */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "php.h"
+#include "php_ini.h"
+#include "ext/standard/info.h"
+#include "php_com_dotnet.h"
+#include "php_com_dotnet_internal.h"
+#include "Zend/zend_exceptions.h"
+
+/* {{{ expose php_stream as a COM IStream */
+
+typedef struct {
+ CONST_VTBL struct IStreamVtbl *lpVtbl;
+ DWORD engine_thread;
+ LONG refcount;
+ php_stream *stream;
+ int id;
+} php_istream;
+
+static int le_istream;
+static void istream_destructor(php_istream *stm);
+
+static void istream_dtor(zend_rsrc_list_entry *rsrc TSRMLS_DC)
+{
+ php_istream *stm = (php_istream *)rsrc->ptr;
+ istream_destructor(stm);
+}
+
+#ifdef ZTS
+# define TSRMLS_FIXED() TSRMLS_FETCH();
+#else
+# define TSRMLS_FIXED()
+#endif
+
+#define FETCH_STM() \
+ TSRMLS_FIXED() \
+ php_istream *stm = (php_istream*)This; \
+ if (GetCurrentThreadId() != stm->engine_thread) \
+ return RPC_E_WRONG_THREAD;
+
+static HRESULT STDMETHODCALLTYPE stm_queryinterface(
+ IStream *This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */ void **ppvObject)
+{
+ FETCH_STM();
+
+ if (IsEqualGUID(&IID_IUnknown, riid) ||
+ IsEqualGUID(&IID_IStream, riid)) {
+ *ppvObject = This;
+ InterlockedIncrement(&stm->refcount);
+ return S_OK;
+ }
+
+ *ppvObject = NULL;
+ return E_NOINTERFACE;
+}
+
+static ULONG STDMETHODCALLTYPE stm_addref(IStream *This)
+{
+ FETCH_STM();
+
+ return InterlockedIncrement(&stm->refcount);
+}
+
+static ULONG STDMETHODCALLTYPE stm_release(IStream *This)
+{
+ ULONG ret;
+ FETCH_STM();
+
+ ret = InterlockedDecrement(&stm->refcount);
+ if (ret == 0) {
+ /* destroy it */
+ if (stm->id)
+ zend_list_delete(stm->id);
+ }
+ return ret;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_read(IStream *This, void *pv, ULONG cb, ULONG *pcbRead)
+{
+ int nread;
+ FETCH_STM();
+
+ nread = php_stream_read(stm->stream, pv, cb);
+
+ if (pcbRead) {
+ *pcbRead = nread > 0 ? nread : 0;
+ }
+ if (nread > 0) {
+ return S_OK;
+ }
+ return S_FALSE;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_write(IStream *This, void const *pv, ULONG cb, ULONG *pcbWritten)
+{
+ int nwrote;
+ FETCH_STM();
+
+ nwrote = php_stream_write(stm->stream, pv, cb);
+
+ if (pcbWritten) {
+ *pcbWritten = nwrote > 0 ? nwrote : 0;
+ }
+ if (nwrote > 0) {
+ return S_OK;
+ }
+ return S_FALSE;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_seek(IStream *This, LARGE_INTEGER dlibMove,
+ DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)
+{
+ off_t offset;
+ int whence;
+ int ret;
+ FETCH_STM();
+
+ switch (dwOrigin) {
+ case STREAM_SEEK_SET: whence = SEEK_SET; break;
+ case STREAM_SEEK_CUR: whence = SEEK_CUR; break;
+ case STREAM_SEEK_END: whence = SEEK_END; break;
+ default:
+ return STG_E_INVALIDFUNCTION;
+ }
+
+ if (dlibMove.HighPart) {
+ /* we don't support 64-bit offsets */
+ return STG_E_INVALIDFUNCTION;
+ }
+
+ offset = dlibMove.QuadPart;
+
+ ret = php_stream_seek(stm->stream, offset, whence);
+
+ if (plibNewPosition) {
+ plibNewPosition->QuadPart = (ULONGLONG)(ret >= 0 ? ret : 0);
+ }
+
+ return ret >= 0 ? S_OK : STG_E_INVALIDFUNCTION;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_set_size(IStream *This, ULARGE_INTEGER libNewSize)
+{
+ FETCH_STM();
+
+ if (libNewSize.HighPart) {
+ return STG_E_INVALIDFUNCTION;
+ }
+
+ if (php_stream_truncate_supported(stm->stream)) {
+ int ret = php_stream_truncate_set_size(stm->stream, (size_t)libNewSize.QuadPart);
+
+ if (ret == 0) {
+ return S_OK;
+ }
+ }
+
+ return STG_E_INVALIDFUNCTION;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_copy_to(IStream *This, IStream *pstm, ULARGE_INTEGER cb,
+ ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)
+{
+ FETCH_STM();
+
+ return E_NOTIMPL;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_commit(IStream *This, DWORD grfCommitFlags)
+{
+ FETCH_STM();
+
+ php_stream_flush(stm->stream);
+
+ return S_OK;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_revert(IStream *This)
+{
+ /* NOP */
+ return S_OK;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_lock_region(IStream *This,
+ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD lockType)
+{
+ return STG_E_INVALIDFUNCTION;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_unlock_region(IStream *This,
+ ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD lockType)
+{
+ return STG_E_INVALIDFUNCTION;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_stat(IStream *This,
+ STATSTG *pstatstg, DWORD grfStatFlag)
+{
+ return STG_E_INVALIDFUNCTION;
+}
+
+static HRESULT STDMETHODCALLTYPE stm_clone(IStream *This, IStream **ppstm)
+{
+ return STG_E_INVALIDFUNCTION;
+}
+
+static struct IStreamVtbl php_istream_vtbl = {
+ stm_queryinterface,
+ stm_addref,
+ stm_release,
+ stm_read,
+ stm_write,
+ stm_seek,
+ stm_set_size,
+ stm_copy_to,
+ stm_commit,
+ stm_revert,
+ stm_lock_region,
+ stm_unlock_region,
+ stm_stat,
+ stm_clone
+};
+
+static void istream_destructor(php_istream *stm)
+{
+ TSRMLS_FETCH();
+
+ if (stm->id) {
+ int id = stm->id;
+ stm->id = 0;
+ zend_list_delete(id);
+ return;
+ }
+
+ if (stm->refcount > 0) {
+ CoDisconnectObject((IUnknown*)stm, 0);
+ }
+
+ zend_list_delete(stm->stream->rsrc_id);
+
+ CoTaskMemFree(stm);
+}
+/* }}} */
+
+PHPAPI IStream *php_com_wrapper_export_stream(php_stream *stream TSRMLS_DC)
+{
+ php_istream *stm = (php_istream*)CoTaskMemAlloc(sizeof(*stm));
+
+ if (stm == NULL)
+ return NULL;
+
+ memset(stm, 0, sizeof(*stm));
+ stm->engine_thread = GetCurrentThreadId();
+ stm->lpVtbl = &php_istream_vtbl;
+ stm->refcount = 1;
+ stm->stream = stream;
+
+ zend_list_addref(stream->rsrc_id);
+ stm->id = zend_list_insert(stm, le_istream);
+
+ return (IStream*)stm;
+}
+
+#define CPH_ME(fname, arginfo) PHP_ME(com_persist, fname, arginfo, ZEND_ACC_PUBLIC)
+#define CPH_SME(fname, arginfo) PHP_ME(com_persist, fname, arginfo, ZEND_ACC_ALLOW_STATIC|ZEND_ACC_PUBLIC)
+#define CPH_METHOD(fname) static PHP_METHOD(com_persist, fname)
+
+#define CPH_FETCH() php_com_persist_helper *helper = (php_com_persist_helper*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+#define CPH_NO_OBJ() if (helper->unk == NULL) { php_com_throw_exception(E_INVALIDARG, "No COM object is associated with this helper instance" TSRMLS_CC); return; }
+
+typedef struct {
+ zend_object std;
+ long codepage;
+ IUnknown *unk;
+ IPersistStream *ips;
+ IPersistStreamInit *ipsi;
+ IPersistFile *ipf;
+} php_com_persist_helper;
+
+static zend_object_handlers helper_handlers;
+static zend_class_entry *helper_ce;
+
+static inline HRESULT get_persist_stream(php_com_persist_helper *helper)
+{
+ if (!helper->ips && helper->unk) {
+ return IUnknown_QueryInterface(helper->unk, &IID_IPersistStream, &helper->ips);
+ }
+ return helper->ips ? S_OK : E_NOTIMPL;
+}
+
+static inline HRESULT get_persist_stream_init(php_com_persist_helper *helper)
+{
+ if (!helper->ipsi && helper->unk) {
+ return IUnknown_QueryInterface(helper->unk, &IID_IPersistStreamInit, &helper->ipsi);
+ }
+ return helper->ipsi ? S_OK : E_NOTIMPL;
+}
+
+static inline HRESULT get_persist_file(php_com_persist_helper *helper)
+{
+ if (!helper->ipf && helper->unk) {
+ return IUnknown_QueryInterface(helper->unk, &IID_IPersistFile, &helper->ipf);
+ }
+ return helper->ipf ? S_OK : E_NOTIMPL;
+}
+
+
+/* {{{ proto string COMPersistHelper::GetCurFile()
+ Determines the filename into which an object will be saved, or false if none is set, via IPersistFile::GetCurFile */
+CPH_METHOD(GetCurFileName)
+{
+ HRESULT res;
+ OLECHAR *olename = NULL;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ res = get_persist_file(helper);
+ if (helper->ipf) {
+ res = IPersistFile_GetCurFile(helper->ipf, &olename);
+
+ if (res == S_OK) {
+ Z_TYPE_P(return_value) = IS_STRING;
+ Z_STRVAL_P(return_value) = php_com_olestring_to_string(olename,
+ &Z_STRLEN_P(return_value), helper->codepage TSRMLS_CC);
+ CoTaskMemFree(olename);
+ return;
+ } else if (res == S_FALSE) {
+ CoTaskMemFree(olename);
+ RETURN_FALSE;
+ }
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ } else {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+}
+/* }}} */
+
+
+/* {{{ proto bool COMPersistHelper::SaveToFile(string filename [, bool remember])
+ Persist object data to file, via IPersistFile::Save */
+CPH_METHOD(SaveToFile)
+{
+ HRESULT res;
+ char *filename, *fullpath = NULL;
+ int filename_len;
+ zend_bool remember = TRUE;
+ OLECHAR *olefilename = NULL;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ res = get_persist_file(helper);
+ if (helper->ipf) {
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s!|b",
+ &filename, &filename_len, &remember)) {
+ php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC);
+ return;
+ }
+
+ if (filename) {
+ fullpath = expand_filepath(filename, NULL TSRMLS_CC);
+
+ if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+ RETURN_FALSE;
+ }
+
+ if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+ RETURN_FALSE;
+ }
+
+ olefilename = php_com_string_to_olestring(filename, strlen(fullpath), helper->codepage TSRMLS_CC);
+ efree(fullpath);
+ }
+ res = IPersistFile_Save(helper->ipf, olefilename, remember);
+ if (SUCCEEDED(res)) {
+ if (!olefilename) {
+ res = IPersistFile_GetCurFile(helper->ipf, &olefilename);
+ if (S_OK == res) {
+ IPersistFile_SaveCompleted(helper->ipf, olefilename);
+ CoTaskMemFree(olefilename);
+ olefilename = NULL;
+ }
+ } else if (remember) {
+ IPersistFile_SaveCompleted(helper->ipf, olefilename);
+ }
+ }
+
+ if (olefilename) {
+ efree(olefilename);
+ }
+
+ if (FAILED(res)) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+
+ } else {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+}
+/* }}} */
+
+/* {{{ proto bool COMPersistHelper::LoadFromFile(string filename [, int flags])
+ Load object data from file, via IPersistFile::Load */
+CPH_METHOD(LoadFromFile)
+{
+ HRESULT res;
+ char *filename, *fullpath;
+ int filename_len;
+ long flags = 0;
+ OLECHAR *olefilename;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ res = get_persist_file(helper);
+ if (helper->ipf) {
+
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l",
+ &filename, &filename_len, &flags)) {
+ php_com_throw_exception(E_INVALIDARG, "Invalid arguments" TSRMLS_CC);
+ return;
+ }
+
+ fullpath = expand_filepath(filename, NULL TSRMLS_CC);
+
+ if (PG(safe_mode) && (!php_checkuid(fullpath, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
+ RETURN_FALSE;
+ }
+
+ if (php_check_open_basedir(fullpath TSRMLS_CC)) {
+ RETURN_FALSE;
+ }
+
+ olefilename = php_com_string_to_olestring(fullpath, strlen(fullpath), helper->codepage TSRMLS_CC);
+ efree(fullpath);
+
+ res = IPersistFile_Load(helper->ipf, olefilename, flags);
+ efree(olefilename);
+
+ if (FAILED(res)) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+
+ } else {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+}
+/* }}} */
+
+/* {{{ proto int COMPersistHelper::GetMaxStreamSize()
+ Gets maximum stream size required to store the object data, via IPersistStream::GetSizeMax (or IPersistStreamInit::GetSizeMax) */
+CPH_METHOD(GetMaxStreamSize)
+{
+ HRESULT res;
+ ULARGE_INTEGER size;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ res = get_persist_stream_init(helper);
+ if (helper->ipsi) {
+ res = IPersistStreamInit_GetSizeMax(helper->ipsi, &size);
+ } else {
+ res = get_persist_stream(helper);
+ if (helper->ips) {
+ res = IPersistStream_GetSizeMax(helper->ips, &size);
+ } else {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ return;
+ }
+ }
+
+ if (res != S_OK) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ } else {
+ /* TODO: handle 64 bit properly */
+ RETURN_LONG((LONG)size.QuadPart);
+ }
+}
+/* }}} */
+
+/* {{{ proto int COMPersistHelper::InitNew()
+ Initializes the object to a default state, via IPersistStreamInit::InitNew */
+CPH_METHOD(InitNew)
+{
+ HRESULT res;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ res = get_persist_stream_init(helper);
+ if (helper->ipsi) {
+ res = IPersistStreamInit_InitNew(helper->ipsi);
+
+ if (res != S_OK) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ } else {
+ RETURN_TRUE;
+ }
+ } else {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ }
+}
+/* }}} */
+
+/* {{{ proto mixed COMPersistHelper::LoadFromStream(resource stream)
+ Initializes an object from the stream where it was previously saved, via IPersistStream::Load or OleLoadFromStream */
+CPH_METHOD(LoadFromStream)
+{
+ zval *zstm;
+ php_stream *stream;
+ IStream *stm = NULL;
+ HRESULT res;
+ CPH_FETCH();
+
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstm)) {
+ php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
+ return;
+ }
+
+ php_stream_from_zval_no_verify(stream, &zstm);
+
+ if (stream == NULL) {
+ php_com_throw_exception(E_INVALIDARG, "expected a stream" TSRMLS_CC);
+ return;
+ }
+
+ stm = php_com_wrapper_export_stream(stream TSRMLS_CC);
+ if (stm == NULL) {
+ php_com_throw_exception(E_UNEXPECTED, "failed to wrap stream" TSRMLS_CC);
+ return;
+ }
+
+ res = S_OK;
+ RETVAL_TRUE;
+
+ if (helper->unk == NULL) {
+ IDispatch *disp = NULL;
+
+ /* we need to create an object and load using OleLoadFromStream */
+ res = OleLoadFromStream(stm, &IID_IDispatch, &disp);
+
+ if (SUCCEEDED(res)) {
+ php_com_wrap_dispatch(return_value, disp, COMG(code_page) TSRMLS_CC);
+ }
+ } else {
+ res = get_persist_stream_init(helper);
+ if (helper->ipsi) {
+ res = IPersistStreamInit_Load(helper->ipsi, stm);
+ } else {
+ res = get_persist_stream(helper);
+ if (helper->ips) {
+ res = IPersistStreamInit_Load(helper->ipsi, stm);
+ }
+ }
+ }
+ IStream_Release(stm);
+
+ if (FAILED(res)) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ RETURN_NULL();
+ }
+}
+/* }}} */
+
+/* {{{ proto int COMPersistHelper::SaveToStream(resource stream)
+ Saves the object to a stream, via IPersistStream::Save */
+CPH_METHOD(SaveToStream)
+{
+ zval *zstm;
+ php_stream *stream;
+ IStream *stm = NULL;
+ HRESULT res;
+ CPH_FETCH();
+
+ CPH_NO_OBJ();
+
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zstm)) {
+ php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
+ return;
+ }
+
+ php_stream_from_zval_no_verify(stream, &zstm);
+
+ if (stream == NULL) {
+ php_com_throw_exception(E_INVALIDARG, "expected a stream" TSRMLS_CC);
+ return;
+ }
+
+ stm = php_com_wrapper_export_stream(stream TSRMLS_CC);
+ if (stm == NULL) {
+ php_com_throw_exception(E_UNEXPECTED, "failed to wrap stream" TSRMLS_CC);
+ return;
+ }
+
+ res = get_persist_stream_init(helper);
+ if (helper->ipsi) {
+ res = IPersistStreamInit_Save(helper->ipsi, stm, TRUE);
+ } else {
+ res = get_persist_stream(helper);
+ if (helper->ips) {
+ res = IPersistStream_Save(helper->ips, stm, TRUE);
+ }
+ }
+
+ IStream_Release(stm);
+
+ if (FAILED(res)) {
+ php_com_throw_exception(res, NULL TSRMLS_CC);
+ return;
+ }
+
+ RETURN_TRUE;
+}
+/* }}} */
+
+/* {{{ proto int COMPersistHelper::__construct([object com_object])
+ Creates a persistence helper object, usually associated with a com_object */
+CPH_METHOD(__construct)
+{
+ php_com_dotnet_object *obj = NULL;
+ zval *zobj = NULL;
+ CPH_FETCH();
+
+ if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|O!",
+ &zobj, php_com_variant_class_entry)) {
+ php_com_throw_exception(E_INVALIDARG, "invalid arguments" TSRMLS_CC);
+ return;
+ }
+
+ if (!zobj) {
+ return;
+ }
+
+ obj = CDNO_FETCH(zobj);
+
+ if (V_VT(&obj->v) != VT_DISPATCH || V_DISPATCH(&obj->v) == NULL) {
+ php_com_throw_exception(E_INVALIDARG, "parameter must represent an IDispatch COM object" TSRMLS_CC);
+ return;
+ }
+
+ /* it is always safe to cast an interface to IUnknown */
+ helper->unk = (IUnknown*)V_DISPATCH(&obj->v);
+ IUnknown_AddRef(helper->unk);
+ helper->codepage = obj->code_page;
+}
+/* }}} */
+
+
+
+
+static zend_function_entry com_persist_helper_methods[] = {
+ CPH_ME(__construct, NULL)
+ CPH_ME(GetCurFileName, NULL)
+ CPH_ME(SaveToFile, NULL)
+ CPH_ME(LoadFromFile, NULL)
+ CPH_ME(GetMaxStreamSize, NULL)
+ CPH_ME(InitNew, NULL)
+ CPH_ME(LoadFromStream, NULL)
+ CPH_ME(SaveToStream, NULL)
+ {NULL, NULL, NULL}
+};
+
+static void helper_free_storage(void *obj TSRMLS_DC)
+{
+ php_com_persist_helper *object = (php_com_persist_helper*)obj;
+
+ if (object->ipf) {
+ IPersistFile_Release(object->ipf);
+ }
+ if (object->ips) {
+ IPersistStream_Release(object->ips);
+ }
+ if (object->ipsi) {
+ IPersistStreamInit_Release(object->ipsi);
+ }
+ if (object->unk) {
+ IUnknown_Release(object->unk);
+ }
+ zend_object_std_dtor(&object->std TSRMLS_CC);
+ efree(object);
+}
+
+
+static void helper_clone(void *obj, void **clone_ptr TSRMLS_DC)
+{
+ php_com_persist_helper *clone, *object = (php_com_persist_helper*)obj;
+
+ clone = emalloc(sizeof(*object));
+ memcpy(clone, object, sizeof(*object));
+ *clone_ptr = clone;
+
+ zend_object_std_init(&clone->std, object->std.ce TSRMLS_CC);
+
+ if (clone->ipf) {
+ IPersistFile_AddRef(clone->ipf);
+ }
+ if (clone->ips) {
+ IPersistStream_AddRef(clone->ips);
+ }
+ if (clone->ipsi) {
+ IPersistStreamInit_AddRef(clone->ipsi);
+ }
+ if (clone->unk) {
+ IUnknown_AddRef(clone->unk);
+ }
+}
+
+static zend_object_value helper_new(zend_class_entry *ce TSRMLS_DC)
+{
+ php_com_persist_helper *helper;
+ zend_object_value retval;
+
+ helper = emalloc(sizeof(*helper));
+ memset(helper, 0, sizeof(*helper));
+
+ zend_object_std_init(&helper->std, helper_ce TSRMLS_CC);
+
+ retval.handle = zend_objects_store_put(helper, NULL, helper_free_storage, helper_clone TSRMLS_CC);
+ retval.handlers = &helper_handlers;
+
+ return retval;
+}
+
+int php_com_persist_minit(INIT_FUNC_ARGS)
+{
+ zend_class_entry ce;
+
+ memcpy(&helper_handlers, zend_get_std_object_handlers(), sizeof(helper_handlers));
+ helper_handlers.clone_obj = NULL;
+
+ INIT_CLASS_ENTRY(ce, "COMPersistHelper", com_persist_helper_methods);
+ ce.create_object = helper_new;
+ helper_ce = zend_register_internal_class(&ce TSRMLS_CC);
+ helper_ce->ce_flags |= ZEND_ACC_FINAL;
+
+ le_istream = zend_register_list_destructors_ex(istream_dtor,
+ NULL, "com_dotnet_istream_wrapper", module_number);
+
+ return SUCCESS;
+}
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: noet sw=4 ts=4 fdm=marker
+ * vim<600: noet sw=4 ts=4
+ */
diff --git a/ext/com_dotnet/com_variant.c b/ext/com_dotnet/com_variant.c
index 4e12c1aac..59ffa9687 100644
--- a/ext/com_dotnet/com_variant.c
+++ b/ext/com_dotnet/com_variant.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: com_variant.c,v 1.11.2.1 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: com_variant.c,v 1.11.2.2 2006/02/04 10:57:27 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -40,7 +40,7 @@ static void safe_array_from_zval(VARIANT *v, zval *z, int codepage TSRMLS_DC)
int keytype;
char *strindex;
int strindexlen;
- long intindex;
+ long intindex = -1;
long max_index = 0;
VARIANT *va;
zval **item;
diff --git a/ext/com_dotnet/php_com_dotnet_internal.h b/ext/com_dotnet/php_com_dotnet_internal.h
index c479e16b0..2f4fcf173 100644
--- a/ext/com_dotnet/php_com_dotnet_internal.h
+++ b/ext/com_dotnet/php_com_dotnet_internal.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_com_dotnet_internal.h,v 1.14.2.2 2006/01/01 12:50:00 sniper Exp $ */
+/* $Id: php_com_dotnet_internal.h,v 1.14.2.3 2006/01/26 11:17:34 rrichards Exp $ */
#ifndef PHP_COM_DOTNET_INTERNAL_H
#define PHP_COM_DOTNET_INTERNAL_H
@@ -102,11 +102,11 @@ PHP_FUNCTION(com_load_typelib);
PHP_FUNCTION(com_get_active_object);
HRESULT php_com_invoke_helper(php_com_dotnet_object *obj, DISPID id_member,
- WORD flags, DISPPARAMS *disp_params, VARIANT *v TSRMLS_DC);
+ WORD flags, DISPPARAMS *disp_params, VARIANT *v, int silent TSRMLS_DC);
HRESULT php_com_get_id_of_name(php_com_dotnet_object *obj, char *name,
int namelen, DISPID *dispid TSRMLS_DC);
int php_com_do_invoke_by_id(php_com_dotnet_object *obj, DISPID dispid,
- WORD flags, VARIANT *v, int nargs, zval **args TSRMLS_DC);
+ WORD flags, VARIANT *v, int nargs, zval **args, int silent TSRMLS_DC);
int php_com_do_invoke(php_com_dotnet_object *obj, char *name, int namelen,
WORD flags, VARIANT *v, int nargs, zval **args TSRMLS_DC);
int php_com_do_invoke_byref(php_com_dotnet_object *obj, char *name, int namelen,
diff --git a/ext/com_dotnet/tests/27974.phpt b/ext/com_dotnet/tests/27974.phpt
index 6c1bdce02..b764e8dd2 100755
--- a/ext/com_dotnet/tests/27974.phpt
+++ b/ext/com_dotnet/tests/27974.phpt
@@ -1,43 +1,43 @@
---TEST--
-COM: mapping a safearray
---SKIPIF--
-<?php # vim:ft=php
-if (!extension_loaded("com_dotnet")) print "skip COM/.Net support not present"; ?>
---FILE--
-<?php // $Id: 27974.phpt,v 1.2 2004/05/03 20:10:58 wez Exp $
-error_reporting(E_ALL);
-
-try {
- $v = new VARIANT(array("123", "456", "789"));
- var_dump($v);
- print $v[0] . "\n";
- print $v[1] . "\n";
- print $v[2] . "\n";
- $v[1] = "hello";
- foreach ($v as $item) {
- var_dump($item);
- }
- try {
- $v[3] = "shouldn't work";
- } catch (com_exception $e) {
- if ($e->getCode() != DISP_E_BADINDEX) {
- throw $e;
- }
- echo "Got BADINDEX exception OK!\n";
- }
- echo "OK!";
-} catch (Exception $e) {
- print $e;
-}
-?>
---EXPECT--
-object(variant)#1 (0) {
-}
-123
-456
-789
-string(3) "123"
-string(5) "hello"
-string(3) "789"
-Got BADINDEX exception OK!
-OK!
+--TEST--
+COM: mapping a safearray
+--SKIPIF--
+<?php # vim:ft=php
+if (!extension_loaded("com_dotnet")) print "skip COM/.Net support not present"; ?>
+--FILE--
+<?php // $Id: 27974.phpt,v 1.2.4.1 2006/02/04 10:57:28 rrichards Exp $
+error_reporting(E_ALL);
+
+try {
+ $v = new VARIANT(array("123", "456", "789"));
+ var_dump($v);
+ print $v[0] . "\n";
+ print $v[1] . "\n";
+ print $v[2] . "\n";
+ $v[1] = "hello";
+ foreach ($v as $item) {
+ var_dump($item);
+ }
+ try {
+ $v[3] = "shouldn't work";
+ } catch (com_exception $e) {
+ if ($e->getCode() != DISP_E_BADINDEX) {
+ throw $e;
+ }
+ echo "Got BADINDEX exception OK!\n";
+ }
+ echo "OK!";
+} catch (Exception $e) {
+ print $e;
+}
+?>
+--EXPECT--
+object(variant)#1 (0) {
+}
+123
+456
+789
+string(3) "123"
+string(5) "hello"
+string(3) "789"
+Got BADINDEX exception OK!
+OK!
diff --git a/ext/com_dotnet/tests/bug34272.phpt b/ext/com_dotnet/tests/bug34272.phpt
new file mode 100644
index 000000000..3a65e2ce2
--- /dev/null
+++ b/ext/com_dotnet/tests/bug34272.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #34272 (empty array onto COM object blows up)
+--SKIPIF--
+<?php
+if (!extension_loaded("com_dotnet")) print "skip COM/.Net support not present"; ?>
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+try {
+ $dict = new COM("Scripting.Dictionary");
+ $dict->add('foo', array());
+ print sizeof($dict['foo'])."\n";
+ $dict->add('bar', array(23));
+ print sizeof($dict['bar'])." \n";
+} catch (Exception $e) {
+ print $e;
+}
+?>
+--EXPECT--
+0
+1
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index e5e956847..dfdbfe78e 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: interface.c,v 1.62.2.11 2006/01/05 18:07:55 iliaa Exp $ */
+/* $Id: interface.c,v 1.62.2.16 2006/08/10 17:16:35 iliaa Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -47,13 +47,11 @@
/* {{{ cruft for thread safe SSL crypto locks */
#if defined(ZTS) && defined(HAVE_CURL_SSL)
# ifdef PHP_WIN32
-# define PHP_CURL_NEED_SSL_TSL
# define PHP_CURL_NEED_OPENSSL_TSL
# include <openssl/crypto.h>
# else /* !PHP_WIN32 */
# if defined(HAVE_CURL_OPENSSL)
# if defined(HAVE_OPENSSL_CRYPTO_H)
-# define PHP_CURL_NEED_SSL_TSL
# define PHP_CURL_NEED_OPENSSL_TSL
# include <openssl/crypto.h>
# else
@@ -64,7 +62,6 @@
# endif
# elif defined(HAVE_CURL_GNUTLS)
# if defined(HAVE_GCRYPT_H)
-# define PHP_CURL_NEED_SSL_TSL
# define PHP_CURL_NEED_GNUTLS_TSL
# include <gcrypt.h>
# else
@@ -94,10 +91,61 @@
int le_curl;
int le_curl_multi_handle;
-#ifdef PHP_CURL_NEED_SSL_TSL
-static inline void php_curl_ssl_init(void);
-static inline void php_curl_ssl_cleanup(void);
+#ifdef PHP_CURL_NEED_OPENSSL_TSL /* {{{ */
+static MUTEX_T *php_curl_openssl_tsl = NULL;
+
+static void php_curl_ssl_lock(int mode, int n, const char * file, int line)
+{
+ if (mode & CRYPTO_LOCK) {
+ tsrm_mutex_lock(php_curl_openssl_tsl[n]);
+ } else {
+ tsrm_mutex_unlock(php_curl_openssl_tsl[n]);
+ }
+}
+
+static unsigned long php_curl_ssl_id(void)
+{
+ return (unsigned long) tsrm_thread_id();
+}
+#endif
+/* }}} */
+
+#ifdef PHP_CURL_NEED_GNUTLS_TSL /* {{{ */
+static int php_curl_ssl_mutex_create(void **m)
+{
+ if (*((MUTEX_T *) m) = tsrm_mutex_alloc()) {
+ return SUCCESS;
+ } else {
+ return FAILURE;
+ }
+}
+
+static int php_curl_ssl_mutex_destroy(void **m)
+{
+ tsrm_mutex_free(*((MUTEX_T *) m));
+ return SUCCESS;
+}
+
+static int php_curl_ssl_mutex_lock(void **m)
+{
+ return tsrm_mutex_lock(*((MUTEX_T *) m));
+}
+
+static int php_curl_ssl_mutex_unlock(void **m)
+{
+ return tsrm_mutex_unlock(*((MUTEX_T *) m));
+}
+
+static struct gcry_thread_cbs php_curl_gnutls_tsl = {
+ GCRY_THREAD_OPTION_USER,
+ NULL,
+ php_curl_ssl_mutex_create,
+ php_curl_ssl_mutex_destroy,
+ php_curl_ssl_mutex_lock,
+ php_curl_ssl_mutex_unlock
+};
#endif
+/* }}} */
static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC);
@@ -113,11 +161,16 @@ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC);
strncasecmp(str, "file:", sizeof("file:") - 1) == 0) \
{ \
php_url *tmp_url; \
- \
+ \
if (!(tmp_url = php_url_parse_ex(str, len))) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid url '%s'", str); \
RETURN_FALSE; \
} \
+ \
+ if (php_memnstr(str, tmp_url->path, strlen(tmp_url->path), str + len)) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Url '%s' contains unencoded control characters.", str); \
+ RETURN_FALSE; \
+ } \
\
if (tmp_url->query || tmp_url->fragment || php_check_open_basedir(tmp_url->path TSRMLS_CC) || \
(PG(safe_mode) && !php_checkuid(tmp_url->path, "rb+", CHECKUID_CHECK_MODE_PARAM)) \
@@ -135,6 +188,7 @@ zend_function_entry curl_functions[] = {
PHP_FE(curl_copy_handle, NULL)
PHP_FE(curl_version, NULL)
PHP_FE(curl_setopt, NULL)
+ PHP_FE(curl_setopt_array, NULL)
PHP_FE(curl_exec, NULL)
PHP_FE(curl_getinfo, NULL)
PHP_FE(curl_error, NULL)
@@ -337,6 +391,7 @@ PHP_MINIT_FUNCTION(curl)
REGISTER_CURL_CONSTANT(CURLINFO_CONTENT_TYPE);
REGISTER_CURL_CONSTANT(CURLINFO_REDIRECT_TIME);
REGISTER_CURL_CONSTANT(CURLINFO_REDIRECT_COUNT);
+ REGISTER_CURL_CONSTANT(CURLINFO_HEADER_OUT);
/* cURL protocol constants (curl_version) */
REGISTER_CURL_CONSTANT(CURL_VERSION_IPV6);
@@ -447,9 +502,24 @@ PHP_MINIT_FUNCTION(curl)
REGISTER_CURL_CONSTANT(CURLFTPAUTH_TLS);
#endif
-#ifdef PHP_CURL_NEED_SSL_TSL
- php_curl_ssl_init();
+#ifdef PHP_CURL_NEED_OPENSSL_TSL
+ {
+ int i, c = CRYPTO_num_locks();
+
+ php_curl_openssl_tsl = malloc(c * sizeof(MUTEX_T));
+
+ for (i = 0; i < c; ++i) {
+ php_curl_openssl_tsl[i] = tsrm_mutex_alloc();
+ }
+
+ CRYPTO_set_id_callback(php_curl_ssl_id);
+ CRYPTO_set_locking_callback(php_curl_ssl_lock);
+ }
#endif
+#ifdef PHP_CURL_NEED_GNUTLS_TSL
+ gcry_control(GCRYCTL_SET_THREAD_CBS, &php_curl_gnutls_tsl);
+#endif
+
if (curl_global_init(CURL_GLOBAL_SSL) != CURLE_OK) {
return FAILURE;
}
@@ -486,9 +556,26 @@ PHP_MSHUTDOWN_FUNCTION(curl)
php_unregister_url_stream_wrapper("ftp" TSRMLS_CC);
php_unregister_url_stream_wrapper("ldap" TSRMLS_CC);
#endif
+#ifdef PHP_CURL_NEED_OPENSSL_TSL
+ /* ensure there are valid callbacks set */
+ CRYPTO_set_id_callback(php_curl_ssl_id);
+ CRYPTO_set_locking_callback(php_curl_ssl_lock);
+#endif
curl_global_cleanup();
-#ifdef PHP_CURL_NEED_SSL_TSL
- php_curl_ssl_cleanup();
+#ifdef PHP_CURL_NEED_OPENSSL_TSL
+ if (php_curl_openssl_tsl) {
+ int i, c = CRYPTO_num_locks();
+
+ CRYPTO_set_id_callback(NULL);
+ CRYPTO_set_locking_callback(NULL);
+
+ for (i = 0; i < c; ++i) {
+ tsrm_mutex_free(php_curl_openssl_tsl[i]);
+ }
+
+ free(php_curl_openssl_tsl);
+ php_curl_openssl_tsl = NULL;
+ }
#endif
return SUCCESS;
}
@@ -719,6 +806,23 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
}
/* }}} */
+static int curl_debug(CURL *cp, curl_infotype type, char *buf, size_t buf_len, void *ctx)
+{
+ php_curl *ch = (php_curl *) ctx;
+
+ if (type == CURLINFO_HEADER_OUT) {
+ if (ch->header.str_len) {
+ efree(ch->header.str);
+ }
+ if (buf_len > 0) {
+ ch->header.str = estrndup(buf, buf_len);
+ ch->header.str_len = buf_len;
+ }
+ }
+
+ return 0;
+}
+
#if CURLOPT_PASSWDFUNCTION != 0
/* {{{ curl_passwd
*/
@@ -841,6 +945,7 @@ static void alloc_curl_handle(php_curl **ch)
(*ch)->handlers->read = ecalloc(1, sizeof(php_curl_read));
(*ch)->in_callback = 0;
+ (*ch)->header.str_len = 0;
memset(&(*ch)->err, 0, sizeof((*ch)->err));
@@ -949,24 +1054,10 @@ PHP_FUNCTION(curl_copy_handle)
}
/* }}} */
-/* {{{ proto bool curl_setopt(resource ch, int option, mixed value)
- Set an option for a CURL transfer */
-PHP_FUNCTION(curl_setopt)
+static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue, zval *return_value TSRMLS_DC)
{
- zval **zid, **zoption, **zvalue;
- php_curl *ch;
CURLcode error=CURLE_OK;
- int option;
-
- if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &zid, &zoption, &zvalue) == FAILURE) {
- WRONG_PARAM_COUNT;
- }
-
- ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl);
- convert_to_long_ex(zoption);
-
- option = Z_LVAL_PP(zoption);
switch (option) {
case CURLOPT_INFILESIZE:
case CURLOPT_VERBOSE:
@@ -979,7 +1070,6 @@ PHP_FUNCTION(curl_setopt)
case CURLOPT_FTPLISTONLY:
case CURLOPT_FTPAPPEND:
case CURLOPT_NETRC:
- case CURLOPT_FOLLOWLOCATION:
case CURLOPT_PUT:
#if CURLOPT_MUTE != 0
case CURLOPT_MUTE:
@@ -1030,6 +1120,16 @@ PHP_FUNCTION(curl_setopt)
convert_to_long_ex(zvalue);
error = curl_easy_setopt(ch->cp, option, Z_LVAL_PP(zvalue));
break;
+ case CURLOPT_FOLLOWLOCATION:
+ convert_to_long_ex(zvalue);
+ if ((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) {
+ if (Z_LVAL_PP(zvalue) != 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set");
+ RETURN_FALSE;
+ }
+ }
+ error = curl_easy_setopt(ch->cp, option, Z_LVAL_PP(zvalue));
+ break;
case CURLOPT_URL:
case CURLOPT_PROXY:
case CURLOPT_USERPWD:
@@ -1122,6 +1222,8 @@ PHP_FUNCTION(curl_setopt)
if (Z_LVAL_PP(zvalue)) {
ch->handlers->write->type = PHP_CURL_BINARY;
+ } else {
+ ch->handlers->write->type = PHP_CURL_ASCII;
}
break;
case CURLOPT_WRITEFUNCTION:
@@ -1294,23 +1396,93 @@ PHP_FUNCTION(curl_setopt)
break;
}
+ case CURLINFO_HEADER_OUT:
+ convert_to_long_ex(zvalue);
+ if (Z_LVAL_PP(zvalue) == 1) {
+ curl_easy_setopt(ch->cp, CURLOPT_DEBUGFUNCTION, curl_debug);
+ curl_easy_setopt(ch->cp, CURLOPT_DEBUGDATA, (void *)ch);
+ curl_easy_setopt(ch->cp, CURLOPT_VERBOSE, 1);
+ } else {
+ curl_easy_setopt(ch->cp, CURLOPT_DEBUGFUNCTION, NULL);
+ curl_easy_setopt(ch->cp, CURLOPT_DEBUGDATA, NULL);
+ curl_easy_setopt(ch->cp, CURLOPT_VERBOSE, 0);
+ }
+ break;
}
SAVE_CURL_ERROR(ch, error);
if (error != CURLE_OK) {
- RETURN_FALSE;
+ return 1;
} else {
+ return 0;
+ }
+}
+
+/* {{{ proto bool curl_setopt(resource ch, int option, mixed value)
+ Set an option for a CURL transfer */
+PHP_FUNCTION(curl_setopt)
+{
+ zval **zid, **zoption, **zvalue;
+ php_curl *ch;
+
+ if (ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3, &zid, &zoption, &zvalue) == FAILURE) {
+ WRONG_PARAM_COUNT;
+ }
+
+ ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl);
+
+ convert_to_long_ex(zoption);
+
+ if (!_php_curl_setopt(ch, Z_LVAL_PP(zoption), zvalue, return_value TSRMLS_CC)) {
RETURN_TRUE;
+ } else {
+ RETURN_FALSE;
}
}
/* }}} */
+/* {{{ proto bool curl_setopt_array(resource ch, array options)
+ Set an array of option for a CURL transfer */
+PHP_FUNCTION(curl_setopt_array)
+{
+ zval *zid, *arr, **entry;
+ php_curl *ch;
+ long option;
+ HashPosition pos;
+ char *string_key;
+ int str_key_len;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "za", &zid, &arr) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ ZEND_FETCH_RESOURCE(ch, php_curl *, &zid, -1, le_curl_name, le_curl);
+
+ zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(arr), &pos);
+ while (zend_hash_get_current_data_ex(Z_ARRVAL_P(arr), (void **)&entry, &pos) == SUCCESS) {
+ if (zend_hash_get_current_key_ex(Z_ARRVAL_P(arr), &string_key, &str_key_len, &option, 0, &pos) == HASH_KEY_IS_STRING) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Array keys must be CURLOPT constants or equivalent interger values.");
+ RETURN_FALSE;
+ }
+ if (_php_curl_setopt(ch, option, entry, return_value TSRMLS_CC)) {
+ RETURN_FALSE;
+ }
+ zend_hash_move_forward_ex(Z_ARRVAL_P(arr), &pos);
+ }
+ RETURN_TRUE;
+}
+/* }}} */
+
/* {{{ _php_curl_cleanup_handle(ch)
Cleanup an execution phase */
void _php_curl_cleanup_handle(php_curl *ch)
{
if (ch->handlers->write->buf.len > 0) {
- memset(&ch->handlers->write->buf, 0, sizeof(smart_str));
+ smart_str_free(&ch->handlers->write->buf);
+ }
+ if (ch->header.str_len) {
+ efree(ch->header.str);
+ ch->header.str_len = 0;
}
memset(ch->err.str, 0, CURL_ERROR_SIZE + 1);
@@ -1341,7 +1513,6 @@ PHP_FUNCTION(curl_exec)
if (ch->handlers->write->buf.len > 0) {
smart_str_free(&ch->handlers->write->buf);
}
-
RETURN_FALSE;
}
@@ -1349,10 +1520,8 @@ PHP_FUNCTION(curl_exec)
if (ch->handlers->write->method == PHP_CURL_RETURN && ch->handlers->write->buf.len > 0) {
--ch->uses;
- if (ch->handlers->write->type != PHP_CURL_BINARY) {
- smart_str_0(&ch->handlers->write->buf);
- }
- RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 0);
+ smart_str_0(&ch->handlers->write->buf);
+ RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 1);
}
--ch->uses;
RETURN_TRUE;
@@ -1443,6 +1612,9 @@ PHP_FUNCTION(curl_getinfo)
if (curl_easy_getinfo(ch->cp, CURLINFO_REDIRECT_TIME, &d_code) == CURLE_OK) {
CAAD("redirect_time", d_code);
}
+ if (ch->header.str_len > 0) {
+ CAAS("request_header", ch->header.str);
+ }
} else {
option = Z_LVAL_PP(zoption);
switch (option) {
@@ -1493,6 +1665,12 @@ PHP_FUNCTION(curl_getinfo)
}
break;
}
+ case CURLINFO_HEADER_OUT:
+ if (ch->header.str_len > 0) {
+ RETURN_STRINGL(ch->header.str, ch->header.str_len, 1);
+ } else {
+ RETURN_FALSE;
+ }
}
}
}
@@ -1574,6 +1752,9 @@ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC)
zend_llist_clean(&ch->to_free.slist);
zend_llist_clean(&ch->to_free.post);
+ if (ch->handlers->write->buf.len > 0) {
+ smart_str_free(&ch->handlers->write->buf);
+ }
if (ch->handlers->write->func_name) {
zval_ptr_dtor(&ch->handlers->write->func_name);
}
@@ -1586,6 +1767,10 @@ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC)
if (ch->handlers->passwd) {
zval_ptr_dtor(&ch->handlers->passwd);
}
+ if (ch->header.str_len > 0) {
+ efree(ch->header.str);
+ }
+
efree(ch->handlers->write);
efree(ch->handlers->write_header);
efree(ch->handlers->read);
@@ -1594,105 +1779,6 @@ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC)
}
/* }}} */
-#ifdef PHP_CURL_NEED_OPENSSL_TSL
-/* {{{ */
-static MUTEX_T *php_curl_openssl_tsl = NULL;
-
-static void php_curl_ssl_lock(int mode, int n, const char * file, int line)
-{
- if (mode & CRYPTO_LOCK) {
- tsrm_mutex_lock(php_curl_openssl_tsl[n]);
- } else {
- tsrm_mutex_unlock(php_curl_openssl_tsl[n]);
- }
-}
-
-static unsigned long php_curl_ssl_id(void)
-{
- return (unsigned long) tsrm_thread_id();
-}
-
-static inline void php_curl_ssl_init(void)
-{
- int i, c = CRYPTO_num_locks();
-
- php_curl_openssl_tsl = malloc(c * sizeof(MUTEX_T));
-
- for (i = 0; i < c; ++i) {
- php_curl_openssl_tsl[i] = tsrm_mutex_alloc();
- }
-
- CRYPTO_set_id_callback(php_curl_ssl_id);
- CRYPTO_set_locking_callback(php_curl_ssl_lock);
-}
-
-static inline void php_curl_ssl_cleanup(void)
-{
- if (php_curl_openssl_tsl) {
- int i, c = CRYPTO_num_locks();
-
- CRYPTO_set_id_callback(NULL);
- CRYPTO_set_locking_callback(NULL);
-
- for (i = 0; i < c; ++i) {
- tsrm_mutex_free(php_curl_openssl_tsl[i]);
- }
-
- free(php_curl_openssl_tsl);
- php_curl_openssl_tsl = NULL;
- }
-}
-#endif /* PHP_CURL_NEED_OPENSSL_TSL */
-/* }}} */
-
-#ifdef PHP_CURL_NEED_GNUTLS_TSL
-/* {{{ */
-static int php_curl_ssl_mutex_create(void **m)
-{
- if (*((MUTEX_T *) m) = tsrm_mutex_alloc()) {
- return SUCCESS;
- } else {
- return FAILURE;
- }
-}
-
-static int php_curl_ssl_mutex_destroy(void **m)
-{
- tsrm_mutex_free(*((MUTEX_T *) m));
- return SUCCESS;
-}
-
-static int php_curl_ssl_mutex_lock(void **m)
-{
- return tsrm_mutex_lock(*((MUTEX_T *) m));
-}
-
-static int php_curl_ssl_mutex_unlock(void **m)
-{
- return tsrm_mutex_unlock(*((MUTEX_T *) m));
-}
-
-static struct gcry_thread_cbs php_curl_gnutls_tsl = {
- GCRY_THREAD_OPTION_USER,
- NULL,
- php_curl_ssl_mutex_create,
- php_curl_ssl_mutex_destroy,
- php_curl_ssl_mutex_lock,
- php_curl_ssl_mutex_unlock
-};
-
-static inline void php_curl_ssl_init(void)
-{
- gcry_control(GCRYCTL_SET_THREAD_CBS, &php_curl_gnutls_tsl);
-}
-
-static inline void php_curl_ssl_cleanup(void)
-{
- return;
-}
-#endif /* PHP_CURL_NEED_GNUTLS_TSL */
-/* }}} */
-
#endif /* HAVE_CURL */
/*
diff --git a/ext/curl/multi.c b/ext/curl/multi.c
index 15404ec8d..bf21aaf59 100644
--- a/ext/curl/multi.c
+++ b/ext/curl/multi.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: multi.c,v 1.19.2.2 2006/01/01 12:50:01 sniper Exp $ */
+/* $Id: multi.c,v 1.19.2.3 2006/04/13 11:26:10 tony2001 Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -195,11 +195,8 @@ PHP_FUNCTION(curl_multi_getcontent)
ZEND_FETCH_RESOURCE(ch, php_curl *, &z_ch, -1, le_curl_name, le_curl);
if (ch->handlers->write->method == PHP_CURL_RETURN && ch->handlers->write->buf.len > 0) {
- if (ch->handlers->write->type != PHP_CURL_BINARY) {
- smart_str_0(&ch->handlers->write->buf);
- }
-
- RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 0);
+ smart_str_0(&ch->handlers->write->buf);
+ RETURN_STRINGL(ch->handlers->write->buf.c, ch->handlers->write->buf.len, 1);
}
}
diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h
index 67ab5d3f3..a250e9aed 100644
--- a/ext/curl/php_curl.h
+++ b/ext/curl/php_curl.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_curl.h,v 1.44.2.1 2006/01/01 12:50:01 sniper Exp $ */
+/* $Id: php_curl.h,v 1.44.2.2 2006/01/24 20:11:14 iliaa Exp $ */
#ifndef _PHP_CURL_H
#define _PHP_CURL_H
@@ -63,6 +63,7 @@ PHP_FUNCTION(curl_version);
PHP_FUNCTION(curl_init);
PHP_FUNCTION(curl_copy_handle);
PHP_FUNCTION(curl_setopt);
+PHP_FUNCTION(curl_setopt_array);
PHP_FUNCTION(curl_exec);
PHP_FUNCTION(curl_getinfo);
PHP_FUNCTION(curl_error);
@@ -107,6 +108,11 @@ struct _php_curl_error {
int no;
};
+struct _php_curl_send_headers {
+ char *str;
+ size_t str_len;
+};
+
struct _php_curl_free {
zend_llist str;
zend_llist post;
@@ -116,6 +122,7 @@ struct _php_curl_free {
typedef struct {
struct _php_curl_error err;
struct _php_curl_free to_free;
+ struct _php_curl_send_headers header;
void ***thread_ctx;
CURL *cp;
php_curl_handlers *handlers;
diff --git a/ext/curl/streams.c b/ext/curl/streams.c
index cae8e315f..a62aa1a39 100644
--- a/ext/curl/streams.c
+++ b/ext/curl/streams.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.14.2.2 2006/01/01 12:50:01 sniper Exp $ */
+/* $Id: streams.c,v 1.14.2.3 2006/08/10 17:16:35 iliaa Exp $ */
/* This file implements cURL based wrappers.
* NOTE: If you are implementing your own streams that are intended to
@@ -289,7 +289,11 @@ php_stream *php_curl_stream_opener(php_stream_wrapper *wrapper, char *filename,
curl_easy_setopt(curlstream->curl, CURLOPT_WRITEHEADER, stream);
/* currently buggy (bug is in curl) */
- curl_easy_setopt(curlstream->curl, CURLOPT_FOLLOWLOCATION, 1);
+ if ((PG(open_basedir) && *PG(open_basedir)) || PG(safe_mode)) {
+ curl_easy_setopt(curlstream->curl, CURLOPT_FOLLOWLOCATION, 0);
+ } else {
+ curl_easy_setopt(curlstream->curl, CURLOPT_FOLLOWLOCATION, 1);
+ }
curl_easy_setopt(curlstream->curl, CURLOPT_ERRORBUFFER, curlstream->errstr);
curl_easy_setopt(curlstream->curl, CURLOPT_VERBOSE, 0);
diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
index 56329be88..323482d1f 100644
--- a/ext/date/lib/parse_date.c
+++ b/ext/date/lib/parse_date.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.12 on Wed Jan 4 15:16:35 2006 */
+/* Generated by re2c 0.9.12 on Tue Apr 11 20:02:18 2006 */
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: parse_date.c,v 1.29.2.24 2006/01/04 21:31:29 derick Exp $ */
+/* $Id: parse_date.c,v 1.29.2.30 2006/04/11 18:03:46 derick Exp $ */
#include "timelib.h"
@@ -98,13 +98,13 @@ typedef unsigned char uchar;
#define timelib_string_free free
-#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
+#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; }
-#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
+#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
#define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; }
#define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; s->time->relative.weekday_behavior = 0; }
#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_weekday_relative = 1; }
-#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { return TIMELIB_ERROR; } else { s->time.have_zone = 1; } }
+#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { add_warning(s, "Double timezone specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_zone = 1; } }
#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str
#define TIMELIB_DEINIT timelib_string_free(str)
@@ -141,7 +141,7 @@ typedef struct Scanner {
int fd;
uchar *lim, *str, *ptr, *cur, *tok, *pos;
unsigned int line, len;
- int errors;
+ struct timelib_error_container *errors;
struct timelib_time *time;
timelib_tzdb *tzdb;
@@ -286,7 +286,7 @@ static timelib_lookup_table const timelib_month_lookup[] = {
static char* timelib_ltrim(char *s)
{
char *ptr = s;
- while (ptr[0] == ' ') {
+ while (ptr[0] == ' ' || ptr[0] == '\t') {
ptr++;
}
return ptr;
@@ -326,6 +326,24 @@ uchar *fill(Scanner *s, uchar *cursor){
}
#endif
+static void add_warning(Scanner *s, char *error)
+{
+ s->errors->warning_count++;
+ s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
+ s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error);
+}
+
+static void add_error(Scanner *s, char *error)
+{
+ s->errors->error_count++;
+ s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
+ s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->error_messages[s->errors->error_count - 1].message = strdup(error);
+}
+
static timelib_sll timelib_meridian(char **ptr, timelib_sll h)
{
timelib_sll retval = 0;
@@ -496,7 +514,7 @@ static timelib_sll timelib_lookup_relative_text(char **ptr, int *behavior)
static timelib_sll timelib_get_relative_text(char **ptr, int *behavior)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_relative_text(ptr, behavior);
@@ -528,7 +546,7 @@ static long timelib_lookup_month(char **ptr)
static long timelib_get_month(char **ptr)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_month(ptr);
@@ -536,7 +554,7 @@ static long timelib_get_month(char **ptr)
static void timelib_eat_spaces(char **ptr)
{
- while (**ptr == ' ') {
+ while (**ptr == ' ' || **ptr == '\t') {
++*ptr;
}
}
@@ -547,7 +565,7 @@ static const timelib_relunit* timelib_lookup_relunit(char **ptr)
char *begin = *ptr, *end;
const timelib_relunit *tp, *value = NULL;
- while (**ptr != '\0' && **ptr != ' ') {
+ while (**ptr != '\0' && **ptr != ' ' && **ptr != '\t') {
++*ptr;
}
end = *ptr;
@@ -591,7 +609,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst)
{
int first_found = 0;
- timelib_tz_lookup_table *tp, *first_found_elem;
+ timelib_tz_lookup_table *tp, *first_found_elem = NULL;
timelib_tz_lookup_table *fmp;
if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) {
@@ -660,7 +678,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
*tz_not_found = 0;
- while (**ptr == ' ' || **ptr == '(') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') {
++*ptr;
}
if (**ptr == '+') {
@@ -685,9 +703,11 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
char *tz_abbr;
t->is_localtime = 1;
- t->zone_type = TIMELIB_ZONETYPE_ABBR;
offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found);
+ if (found) {
+ t->zone_type = TIMELIB_ZONETYPE_ABBR;
+ }
#if 0
/* If we found a TimeZone identifier, use it */
if (tz_name) {
@@ -703,7 +723,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
found++;
}
}
- if (t->zone_type != TIMELIB_ZONETYPE_ID) {
+ if (found && t->zone_type != TIMELIB_ZONETYPE_ID) {
timelib_time_tz_abbr_update(t, tz_abbr);
}
free(tz_abbr);
@@ -739,11 +759,11 @@ std:
{
static unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 208, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 208, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 192, 64, 192, 0,
+ 208, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 128, 64, 192, 0,
8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -780,12 +800,12 @@ std:
YYDEBUG(1, *YYCURSOR);
++YYCURSOR;
yy0:
- if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
+ if((YYLIMIT - YYCURSOR) < 29) YYFILL(29);
yych = *YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
case 0x00: case 0x0A: goto yy48;
- case ' ': goto yy45;
+ case 0x09: case ' ': goto yy45;
case '(': goto yy42;
case '+': case '-': goto yy41;
case ',': case '.': goto yy47;
@@ -853,16 +873,16 @@ yy2:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy1283;
+ goto yy1405;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
- if(yych >= 'a') goto yy136;
+ if(yych >= 'a') goto yy138;
goto yy3;
} else {
- if(yych <= 'e') goto yy1292;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy1414;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -873,8 +893,11 @@ yy3:
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
TIMELIB_INIT;
+ TIMELIB_HAVE_TZ();
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
@@ -888,7 +911,7 @@ yy4:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy1283;
+ goto yy1405;
}
} else {
if(yych <= 'd'){
@@ -896,7 +919,7 @@ yy4:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy1283;
+ if(yych <= 'e') goto yy1405;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -911,12 +934,12 @@ yy5:
goto yy133;
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy1254;
+ if(yych <= 'E') goto yy1376;
goto yy133;
} else {
- if(yych <= 'I') goto yy1255;
+ if(yych <= 'I') goto yy1377;
if(yych <= 'N') goto yy133;
- goto yy1253;
+ goto yy1375;
}
}
} else {
@@ -925,16 +948,16 @@ yy5:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'e') goto yy1270;
- goto yy136;
+ if(yych == 'e') goto yy1392;
+ goto yy138;
}
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1271;
- goto yy136;
+ if(yych <= 'i') goto yy1393;
+ goto yy138;
} else {
- if(yych <= 'o') goto yy1269;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'o') goto yy1391;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -949,12 +972,12 @@ yy6:
goto yy133;
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy1254;
+ if(yych <= 'E') goto yy1376;
goto yy133;
} else {
- if(yych <= 'I') goto yy1255;
+ if(yych <= 'I') goto yy1377;
if(yych <= 'N') goto yy133;
- goto yy1253;
+ goto yy1375;
}
}
} else {
@@ -963,15 +986,15 @@ yy6:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'e') goto yy1254;
+ if(yych == 'e') goto yy1376;
goto yy133;
}
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1255;
+ if(yych <= 'i') goto yy1377;
goto yy133;
} else {
- if(yych <= 'o') goto yy1253;
+ if(yych <= 'o') goto yy1375;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -984,25 +1007,25 @@ yy7:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1225;
+ goto yy1345;
} else {
- if(yych == 'I') goto yy1226;
+ if(yych == 'I') goto yy1346;
if(yych <= 'N') goto yy133;
- goto yy1227;
+ goto yy1347;
}
} else {
if(yych <= 'h'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1239;
- goto yy136;
+ if(yych <= 'a') goto yy1360;
+ goto yy138;
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1240;
- goto yy136;
+ if(yych <= 'i') goto yy1361;
+ goto yy138;
} else {
- if(yych <= 'o') goto yy1241;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'o') goto yy1362;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1014,24 +1037,24 @@ yy8:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1225;
+ goto yy1345;
} else {
- if(yych == 'I') goto yy1226;
+ if(yych == 'I') goto yy1346;
if(yych <= 'N') goto yy133;
- goto yy1227;
+ goto yy1347;
}
} else {
if(yych <= 'h'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1225;
+ if(yych <= 'a') goto yy1345;
goto yy133;
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1226;
+ if(yych <= 'i') goto yy1346;
goto yy133;
} else {
- if(yych <= 'o') goto yy1227;
+ if(yych <= 'o') goto yy1347;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1039,131 +1062,143 @@ yy8:
}
yy9:
YYDEBUG(9, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'W'){
- if(yych <= 'G'){
- if(yych <= '@'){
- if(yych == ')') goto yy132;
- goto yy3;
- } else {
- if(yych == 'E') goto yy1161;
- goto yy133;
- }
- } else {
- if(yych <= 'O'){
- if(yych <= 'H') goto yy1162;
- if(yych <= 'N') goto yy133;
- goto yy1163;
- } else {
- if(yych == 'U') goto yy1164;
- if(yych <= 'V') goto yy133;
- goto yy1165;
- }
- }
- } else {
- if(yych <= 'n'){
- if(yych <= 'd'){
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- goto yy136;
- } else {
- if(yych <= 'e') goto yy1194;
- if(yych == 'h') goto yy1195;
- goto yy136;
- }
- } else {
- if(yych <= 'u'){
- if(yych <= 'o') goto yy1196;
- if(yych <= 't') goto yy136;
- goto yy1197;
- } else {
- if(yych == 'w') goto yy1198;
- if(yych <= 'z') goto yy136;
- goto yy3;
- }
- }
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case ')': goto yy132;
+ case '0':
+ case '1': goto yy1277;
+ case '2': goto yy1278;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy1279;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D': case 'F':
+ case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N': case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T': case 'V': case 'X':
+ case 'Y':
+ case 'Z': goto yy133;
+ case 'E': goto yy1272;
+ case 'H': goto yy1273;
+ case 'O': goto yy1274;
+ case 'U': goto yy1275;
+ case 'W': goto yy1276;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd': case 'f':
+ case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n': case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't': case 'v': case 'x':
+ case 'y':
+ case 'z': goto yy138;
+ case 'e': goto yy1314;
+ case 'h': goto yy1315;
+ case 'o': goto yy1316;
+ case 'u': goto yy1317;
+ case 'w': goto yy1318;
+ default: goto yy3;
}
yy10:
YYDEBUG(10, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'W'){
- if(yych <= 'G'){
- if(yych <= '@'){
- if(yych == ')') goto yy132;
- goto yy3;
- } else {
- if(yych == 'E') goto yy1161;
- goto yy133;
- }
- } else {
- if(yych <= 'O'){
- if(yych <= 'H') goto yy1162;
- if(yych <= 'N') goto yy133;
- goto yy1163;
- } else {
- if(yych == 'U') goto yy1164;
- if(yych <= 'V') goto yy133;
- goto yy1165;
- }
- }
- } else {
- if(yych <= 'n'){
- if(yych <= 'd'){
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- goto yy133;
- } else {
- if(yych <= 'e') goto yy1161;
- if(yych == 'h') goto yy1162;
- goto yy133;
- }
- } else {
- if(yych <= 'u'){
- if(yych <= 'o') goto yy1163;
- if(yych <= 't') goto yy133;
- goto yy1164;
- } else {
- if(yych == 'w') goto yy1165;
- if(yych <= 'z') goto yy133;
- goto yy3;
- }
- }
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case ')': goto yy132;
+ case '0':
+ case '1': goto yy1277;
+ case '2': goto yy1278;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy1279;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D': case 'F':
+ case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N': case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T': case 'V': case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd': case 'f':
+ case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n': case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't': case 'v': case 'x':
+ case 'y':
+ case 'z': goto yy133;
+ case 'E': case 'e': goto yy1272;
+ case 'H': case 'h': goto yy1273;
+ case 'O': case 'o': goto yy1274;
+ case 'U': case 'u': goto yy1275;
+ case 'W': case 'w': goto yy1276;
+ default: goto yy3;
}
yy11:
YYDEBUG(11, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '-') goto yy1157;
- if(yych <= '0') goto yy12;
- if(yych <= '9') goto yy1158;
+ if(yych == '-') goto yy1268;
+ if(yych <= '/') goto yy12;
+ if(yych <= '9') goto yy1269;
goto yy12;
yy12:
YYDEBUG(12, *YYCURSOR);
{
-/* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */
- s->errors++;
+ add_error(s, "Unexpected character");
goto std;
}
yy13:
YYDEBUG(13, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy1230;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1171,11 +1206,11 @@ yy13:
case 'T': case 'V':
case 'W':
case 'X':
- case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'w': case 'y': goto yy1121;
- case '-': goto yy615;
- case '.': goto yy1123;
- case '/': goto yy614;
- case '0': goto yy1156;
+ case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'w': case 'y': goto yy1232;
+ case '-': goto yy695;
+ case '.': goto yy1234;
+ case '/': goto yy694;
+ case '0': goto yy1267;
case '1':
case '2':
case '3':
@@ -1184,33 +1219,22 @@ yy13:
case '6':
case '7':
case '8':
- case '9': goto yy1155;
- case ':': goto yy1124;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1266;
+ case ':': goto yy1235;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy14:
YYDEBUG(14, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1220,46 +1244,35 @@ yy14:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
- case '2': goto yy1155;
+ case '2': goto yy1266;
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1122;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1233;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy15:
YYDEBUG(15, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1269,46 +1282,35 @@ yy15:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
case '2':
- case '3': goto yy1122;
+ case '3': goto yy1233;
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1119;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1229;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy16:
YYDEBUG(16, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1318,12 +1320,12 @@ yy16:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
- case '1': goto yy1119;
+ case '1': goto yy1229;
case '2':
case '3':
case '4':
@@ -1331,33 +1333,22 @@ yy16:
case '6':
case '7':
case '8':
- case '9': goto yy611;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy691;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy17:
YYDEBUG(17, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1367,10 +1358,10 @@ yy17:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
case '2':
@@ -1380,93 +1371,117 @@ yy17:
case '6':
case '7':
case '8':
- case '9': goto yy611;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy691;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy18:
YYDEBUG(18, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
- if(yych <= '.'){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy133;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == '/') goto yy3;
+ goto yy423;
+ }
}
} else {
- if(yych <= 'W'){
- if(yych <= 'I') goto yy602;
- if(yych == 'V') goto yy601;
- goto yy133;
+ if(yych <= 'V'){
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy133;
+ } else {
+ if(yych <= 'I') goto yy681;
+ if(yych <= 'U') goto yy133;
+ goto yy680;
+ }
} else {
if(yych <= 'Z'){
- if(yych <= 'X') goto yy601;
+ if(yych == 'X') goto yy680;
goto yy133;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
}
yy19:
YYDEBUG(19, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy133;
- goto yy599;
+ goto yy133;
} else {
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy678;
+ goto yy133;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy138;
+ goto yy3;
+ }
}
}
yy20:
YYDEBUG(20, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy133;
- goto yy597;
+ goto yy133;
} else {
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy676;
+ goto yy133;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy138;
+ goto yy3;
+ }
}
}
yy21:
@@ -1477,18 +1492,18 @@ yy21:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy580;
+ if(yych <= 'A') goto yy659;
if(yych <= 'T') goto yy133;
- goto yy579;
+ goto yy658;
}
} else {
if(yych <= 'a'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy589;
+ goto yy668;
} else {
- if(yych == 'u') goto yy588;
- if(yych <= 'z') goto yy136;
+ if(yych == 'u') goto yy667;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1500,17 +1515,17 @@ yy22:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy580;
+ if(yych <= 'A') goto yy659;
if(yych <= 'T') goto yy133;
- goto yy579;
+ goto yy658;
}
} else {
if(yych <= 'a'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy580;
+ goto yy659;
} else {
- if(yych == 'u') goto yy579;
+ if(yych == 'u') goto yy658;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1526,16 +1541,16 @@ yy23:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy541;
+ goto yy620;
}
} else {
if(yych <= 'N'){
- if(yych == 'I') goto yy542;
+ if(yych == 'I') goto yy621;
goto yy133;
} else {
- if(yych <= 'O') goto yy543;
+ if(yych <= 'O') goto yy622;
if(yych <= 'Q') goto yy133;
- goto yy544;
+ goto yy623;
}
}
} else {
@@ -1543,19 +1558,19 @@ yy23:
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy560;
- if(yych <= 'h') goto yy136;
- goto yy561;
+ if(yych <= 'e') goto yy639;
+ if(yych <= 'h') goto yy138;
+ goto yy640;
}
} else {
if(yych <= 'q'){
- if(yych == 'o') goto yy562;
- goto yy136;
+ if(yych == 'o') goto yy641;
+ goto yy138;
} else {
- if(yych <= 'r') goto yy563;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'r') goto yy642;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1571,16 +1586,16 @@ yy24:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy541;
+ goto yy620;
}
} else {
if(yych <= 'N'){
- if(yych == 'I') goto yy542;
+ if(yych == 'I') goto yy621;
goto yy133;
} else {
- if(yych <= 'O') goto yy543;
+ if(yych <= 'O') goto yy622;
if(yych <= 'Q') goto yy133;
- goto yy544;
+ goto yy623;
}
}
} else {
@@ -1590,16 +1605,16 @@ yy24:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy541;
+ if(yych <= 'e') goto yy620;
if(yych <= 'h') goto yy133;
- goto yy542;
+ goto yy621;
}
} else {
if(yych <= 'q'){
- if(yych == 'o') goto yy543;
+ if(yych == 'o') goto yy622;
goto yy133;
} else {
- if(yych <= 'r') goto yy544;
+ if(yych <= 'r') goto yy623;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1615,12 +1630,12 @@ yy25:
goto yy133;
} else {
if(yych <= 'O'){
- if(yych <= 'G') goto yy524;
+ if(yych <= 'G') goto yy599;
goto yy133;
} else {
- if(yych <= 'P') goto yy523;
+ if(yych <= 'P') goto yy598;
if(yych <= 'T') goto yy133;
- goto yy522;
+ goto yy597;
}
}
} else {
@@ -1629,16 +1644,16 @@ yy25:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'g') goto yy534;
- goto yy136;
+ if(yych == 'g') goto yy611;
+ goto yy138;
}
} else {
if(yych <= 't'){
- if(yych <= 'p') goto yy533;
- goto yy136;
+ if(yych <= 'p') goto yy610;
+ goto yy138;
} else {
- if(yych <= 'u') goto yy532;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'u') goto yy609;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1653,12 +1668,12 @@ yy26:
goto yy133;
} else {
if(yych <= 'O'){
- if(yych <= 'G') goto yy524;
+ if(yych <= 'G') goto yy599;
goto yy133;
} else {
- if(yych <= 'P') goto yy523;
+ if(yych <= 'P') goto yy598;
if(yych <= 'T') goto yy133;
- goto yy522;
+ goto yy597;
}
}
} else {
@@ -1667,15 +1682,15 @@ yy26:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'g') goto yy524;
+ if(yych == 'g') goto yy599;
goto yy133;
}
} else {
if(yych <= 't'){
- if(yych <= 'p') goto yy523;
+ if(yych <= 'p') goto yy598;
goto yy133;
} else {
- if(yych <= 'u') goto yy522;
+ if(yych <= 'u') goto yy597;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1691,17 +1706,17 @@ yy27:
goto yy132;
} else {
if(yych <= '@') goto yy3;
- if(yych <= 'A') goto yy469;
+ if(yych <= 'A') goto yy540;
goto yy133;
}
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy468;
+ if(yych <= 'E') goto yy539;
goto yy133;
} else {
- if(yych <= 'I') goto yy470;
+ if(yych <= 'I') goto yy541;
if(yych <= 'T') goto yy133;
- goto yy471;
+ goto yy542;
}
}
} else {
@@ -1710,17 +1725,17 @@ yy27:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy496;
- if(yych <= 'd') goto yy136;
- goto yy495;
+ if(yych <= 'a') goto yy569;
+ if(yych <= 'd') goto yy138;
+ goto yy568;
}
} else {
if(yych <= 't'){
- if(yych == 'i') goto yy497;
- goto yy136;
+ if(yych == 'i') goto yy570;
+ goto yy138;
} else {
- if(yych <= 'u') goto yy498;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'u') goto yy571;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1735,17 +1750,17 @@ yy28:
goto yy132;
} else {
if(yych <= '@') goto yy3;
- if(yych <= 'A') goto yy469;
+ if(yych <= 'A') goto yy540;
goto yy133;
}
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy468;
+ if(yych <= 'E') goto yy539;
goto yy133;
} else {
- if(yych <= 'I') goto yy470;
+ if(yych <= 'I') goto yy541;
if(yych <= 'T') goto yy133;
- goto yy471;
+ goto yy542;
}
}
} else {
@@ -1754,16 +1769,16 @@ yy28:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy469;
+ if(yych <= 'a') goto yy540;
if(yych <= 'd') goto yy133;
- goto yy468;
+ goto yy539;
}
} else {
if(yych <= 't'){
- if(yych == 'i') goto yy470;
+ if(yych == 'i') goto yy541;
goto yy133;
} else {
- if(yych <= 'u') goto yy471;
+ if(yych <= 'u') goto yy542;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1779,16 +1794,16 @@ yy29:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy133;
- goto yy458;
+ goto yy529;
}
} else {
if(yych <= 'b'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'c') goto yy463;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'c') goto yy534;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1802,7 +1817,7 @@ yy30:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy133;
- goto yy458;
+ goto yy529;
}
} else {
if(yych <= 'b'){
@@ -1810,7 +1825,7 @@ yy30:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'c') goto yy458;
+ if(yych <= 'c') goto yy529;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1825,16 +1840,16 @@ yy31:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy356;
+ goto yy420;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy451;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy522;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1848,7 +1863,7 @@ yy32:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy356;
+ goto yy420;
}
} else {
if(yych <= 'd'){
@@ -1856,7 +1871,7 @@ yy32:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy356;
+ if(yych <= 'e') goto yy420;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1871,16 +1886,16 @@ yy33:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy339;
+ goto yy403;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy348;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy412;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1894,7 +1909,7 @@ yy34:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy339;
+ goto yy403;
}
} else {
if(yych <= 'd'){
@@ -1902,7 +1917,7 @@ yy34:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy339;
+ if(yych <= 'e') goto yy403;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1915,19 +1930,19 @@ yy35:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy321;
+ if(yych == 'I') goto yy367;
if(yych <= 'K') goto yy133;
- goto yy322;
+ goto yy368;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'h') goto yy136;
- goto yy330;
+ if(yych <= 'h') goto yy138;
+ goto yy385;
} else {
- if(yych == 'l') goto yy331;
- if(yych <= 'z') goto yy136;
+ if(yych == 'l') goto yy386;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1939,18 +1954,18 @@ yy36:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy321;
+ if(yych == 'I') goto yy367;
if(yych <= 'K') goto yy133;
- goto yy322;
+ goto yy368;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
if(yych <= 'h') goto yy133;
- goto yy321;
+ goto yy367;
} else {
- if(yych == 'l') goto yy322;
+ if(yych == 'l') goto yy368;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1961,14 +1976,14 @@ yy37:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy315;
+ goto yy319;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy318;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'a') goto yy343;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1978,13 +1993,13 @@ yy38:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy315;
+ goto yy319;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy315;
+ if(yych <= 'a') goto yy319;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1999,16 +2014,16 @@ yy39:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy133;
- goto yy153;
+ goto yy157;
}
} else {
if(yych <= 'q'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'r') goto yy235;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'r') goto yy239;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -2022,7 +2037,7 @@ yy40:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy133;
- goto yy153;
+ goto yy157;
}
} else {
if(yych <= 'q'){
@@ -2030,30 +2045,30 @@ yy40:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'r') goto yy153;
+ if(yych <= 'r') goto yy157;
if(yych <= 'z') goto yy133;
goto yy3;
}
}
yy41:
YYDEBUG(41, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 16) {
goto yy54;
}
if(yych <= '/') goto yy12;
- if(yych <= '1') goto yy146;
- if(yych <= '2') goto yy147;
- if(yych <= '9') goto yy148;
+ if(yych <= '1') goto yy150;
+ if(yych <= '2') goto yy151;
+ if(yych <= '9') goto yy152;
goto yy12;
yy42:
YYDEBUG(42, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@') goto yy12;
- if(yych <= 'Z') goto yy145;
+ if(yych <= 'Z') goto yy149;
if(yych <= '`') goto yy12;
- if(yych <= 'z') goto yy145;
+ if(yych <= 'z') goto yy149;
goto yy12;
yy43:
YYDEBUG(43, *YYCURSOR);
@@ -2064,7 +2079,7 @@ yy43:
} else {
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
yy44:
@@ -2125,50 +2140,96 @@ yy52:
if(yybm[0+yych] & 8) {
goto yy51;
}
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': case 't': goto yy65;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- default: goto yy53;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych >= ' ') goto yy56;
+ goto yy53;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych >= 'F') goto yy63;
+ goto yy53;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych >= 'M') goto yy59;
+ goto yy53;
+ } else {
+ if(yych <= 'S'){
+ if(yych >= 'S') goto yy58;
+ goto yy53;
+ } else {
+ if(yych <= 'T') goto yy65;
+ if(yych >= 'W') goto yy62;
+ goto yy53;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych >= 'd') goto yy61;
+ goto yy53;
+ } else {
+ if(yych <= 'f'){
+ if(yych >= 'f') goto yy63;
+ goto yy53;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy53;
+ if(yych <= 's') goto yy58;
+ goto yy65;
+ } else {
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy62;
+ goto yy53;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy53;
+ }
+ }
+ }
}
yy53:
YYDEBUG(53, *YYCURSOR);
YYCURSOR = YYMARKER;
switch(yyaccept){
- case 26: goto yy1291;
- case 24: goto yy1260;
- case 25: goto yy1268;
- case 23: goto yy1184;
- case 22: goto yy1181;
- case 11: goto yy634;
- case 20: goto yy1127;
- case 21: goto yy1135;
- case 13: goto yy784;
- case 18: goto yy1024;
- case 12: goto yy775;
- case 8: goto yy420;
- case 17: goto yy889;
- case 6: goto yy363;
- case 10: goto yy620;
- case 16: goto yy922;
- case 19: goto yy933;
- case 15: goto yy915;
- case 14: goto yy880;
- case 9: goto yy526;
- case 5: goto yy341;
- case 4: goto yy172;
- case 1: goto yy3;
- case 7: goto yy385;
+ case 26: goto yy1413;
+ case 24: goto yy1382;
+ case 25: goto yy1390;
+ case 23: goto yy1304;
+ case 22: goto yy1301;
+ case 11: goto yy713;
+ case 20: goto yy1238;
+ case 21: goto yy1246;
+ case 13: goto yy870;
+ case 18: goto yy1134;
+ case 12: goto yy860;
+ case 8: goto yy491;
+ case 17: goto yy978;
+ case 6: goto yy426;
+ case 10: goto yy698;
+ case 16: goto yy1032;
+ case 19: goto yy1026;
+ case 15: goto yy1005;
+ case 14: goto yy971;
+ case 9: goto yy601;
+ case 5: goto yy405;
+ case 4: goto yy176;
+ case 0: goto yy3;
+ case 7: goto yy448;
case 3: goto yy69;
case 2: goto yy46;
- case 0: goto yy12;
+ case 1: goto yy12;
}
yy54:
YYDEBUG(54, *YYCURSOR);
@@ -2192,18 +2253,64 @@ yy56:
goto yy57;
yy57:
YYDEBUG(57, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': case 't': goto yy65;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- default: goto yy53;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych <= 0x1F) goto yy53;
+ goto yy56;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych <= 'E') goto yy53;
+ goto yy63;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych <= 'L') goto yy53;
+ goto yy59;
+ } else {
+ if(yych <= 'S'){
+ if(yych <= 'R') goto yy53;
+ goto yy58;
+ } else {
+ if(yych <= 'T') goto yy65;
+ if(yych <= 'V') goto yy53;
+ goto yy62;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych <= 'c') goto yy53;
+ goto yy61;
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'e') goto yy53;
+ goto yy63;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy53;
+ if(yych >= 't') goto yy65;
+ goto yy58;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy53;
+ goto yy62;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy53;
+ }
+ }
+ }
}
yy58:
YYDEBUG(58, *YYCURSOR);
@@ -2791,34 +2898,58 @@ yy134:
yy135:
YYDEBUG(135, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy136;
+ }
yy136:
YYDEBUG(136, *YYCURSOR);
- yyaccept = 1;
+ yych = *++YYCURSOR;
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy137;
+ }
+yy137:
+ YYDEBUG(137, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy132;
+ goto yy3;
+yy138:
+ YYDEBUG(138, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy134;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
if(yych >= '{') goto yy3;
- goto yy137;
+ goto yy139;
}
}
-yy137:
- YYDEBUG(137, *YYCURSOR);
- yyaccept = 1;
+yy139:
+ YYDEBUG(139, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
@@ -2826,88 +2957,134 @@ yy137:
goto yy132;
} else {
if(yych != '/') goto yy3;
- goto yy138;
+ goto yy140;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy138:
- YYDEBUG(138, *YYCURSOR);
+yy140:
+ YYDEBUG(140, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '@') goto yy53;
if(yych >= '[') goto yy53;
- goto yy139;
-yy139:
- YYDEBUG(139, *YYCURSOR);
+ goto yy141;
+yy141:
+ YYDEBUG(141, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 32) {
- goto yy140;
+ goto yy142;
}
goto yy53;
-yy140:
- YYDEBUG(140, *YYCURSOR);
- yyaccept = 1;
+yy142:
+ YYDEBUG(142, *YYCURSOR);
+ yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy141;
-yy141:
- YYDEBUG(141, *YYCURSOR);
+ goto yy143;
+yy143:
+ YYDEBUG(143, *YYCURSOR);
if(yybm[0+yych] & 32) {
- goto yy140;
+ goto yy142;
}
- if(yych == '/') goto yy138;
- if(yych == '_') goto yy138;
+ if(yych == '/') goto yy140;
+ if(yych == '_') goto yy140;
goto yy3;
-yy142:
- YYDEBUG(142, *YYCURSOR);
- yyaccept = 1;
+yy144:
+ YYDEBUG(144, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy145;
+ }
+ }
+yy145:
+ YYDEBUG(145, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy146;
+ }
+ }
+yy146:
+ YYDEBUG(146, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '_'){
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
if(yych >= '{') goto yy3;
- goto yy143;
+ goto yy147;
}
}
-yy143:
- YYDEBUG(143, *YYCURSOR);
+yy147:
+ YYDEBUG(147, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy144;
-yy144:
- YYDEBUG(144, *YYCURSOR);
+ goto yy148;
+yy148:
+ YYDEBUG(148, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy53;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
-yy145:
- YYDEBUG(145, *YYCURSOR);
+yy149:
+ YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
if(yych == ')') goto yy132;
@@ -2918,160 +3095,356 @@ yy145:
if(yych <= 'z') goto yy133;
goto yy3;
}
-yy146:
- YYDEBUG(146, *YYCURSOR);
- yyaccept = 1;
+yy150:
+ YYDEBUG(150, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy148;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '9'){
+ if(yych <= '/') goto yy3;
+ goto yy152;
+ } else {
+ if(yych <= ':') goto yy153;
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy57;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy147:
- YYDEBUG(147, *YYCURSOR);
- yyaccept = 1;
+yy151:
+ YYDEBUG(151, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3': goto yy148;
- case '4':
- case '5': goto yy150;
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'T'){
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '3'){
+ if(yych <= '/') goto yy3;
+ goto yy152;
+ } else {
+ if(yych <= '5') goto yy154;
+ if(yych <= '9') goto yy155;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy3;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy148:
- YYDEBUG(148, *YYCURSOR);
- yyaccept = 1;
+yy152:
+ YYDEBUG(152, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5': goto yy150;
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'T'){
+ if(yych <= 'C'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '5'){
+ if(yych <= '/') goto yy3;
+ goto yy154;
+ } else {
+ if(yych <= '9') goto yy155;
+ if(yych >= ';') goto yy3;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych == 'E') goto yy3;
+ if(yych <= 'F') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy3;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy149:
- YYDEBUG(149, *YYCURSOR);
+yy153:
+ YYDEBUG(153, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy3;
- if(yych <= '5') goto yy152;
+ if(yych <= '5') goto yy156;
if(yych <= '9') goto yy132;
goto yy3;
-yy150:
- YYDEBUG(150, *YYCURSOR);
- yyaccept = 1;
+yy154:
+ YYDEBUG(154, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- default: goto yy3;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy155;
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy57;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy151:
- YYDEBUG(151, *YYCURSOR);
- yyaccept = 1;
+yy155:
+ YYDEBUG(155, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy3;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
} else {
- if(yych == 'E') goto yy3;
- if(yych <= 'F') goto yy57;
- goto yy3;
+ if(yych == 'D') goto yy57;
+ if(yych <= 'E') goto yy3;
+ goto yy57;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy3;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych <= 'L') goto yy3;
+ goto yy57;
} else {
+ if(yych <= 'R') goto yy3;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy3;
+ if(yych <= 'V') goto yy3;
+ goto yy57;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy3;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych <= 'c') goto yy3;
+ goto yy57;
} else {
- if(yych == 'g') goto yy3;
- if(yych <= 'h') goto yy57;
- goto yy3;
+ if(yych == 'f') goto yy57;
+ if(yych <= 'g') goto yy3;
+ goto yy57;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
if(yych <= 'r') goto yy3;
- if(yych <= 't') goto yy57;
- goto yy3;
+ goto yy57;
} else {
- if(yych == 'x') goto yy3;
- if(yych <= 'y') goto yy57;
- goto yy3;
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
}
}
}
-yy152:
- YYDEBUG(152, *YYCURSOR);
+yy156:
+ YYDEBUG(156, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy3;
if(yych <= '9') goto yy132;
goto yy3;
-yy153:
- YYDEBUG(153, *YYCURSOR);
+yy157:
+ YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -3080,7 +3453,7 @@ yy153:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy154;
+ goto yy158;
}
} else {
if(yych <= 'd'){
@@ -3088,13 +3461,13 @@ yy153:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy154;
+ if(yych <= 'e') goto yy158;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy154:
- YYDEBUG(154, *YYCURSOR);
+yy158:
+ YYDEBUG(158, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= ')'){
@@ -3103,7 +3476,7 @@ yy154:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy155;
+ goto yy159;
}
} else {
if(yych <= 'u'){
@@ -3111,181 +3484,261 @@ yy154:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'v') goto yy155;
+ if(yych <= 'v') goto yy159;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy155:
- YYDEBUG(155, *YYCURSOR);
- yyaccept = 1;
+yy159:
+ YYDEBUG(159, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'I'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy160;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'i') goto yy160;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy160:
+ YYDEBUG(160, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy161;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'o') goto yy161;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy161:
+ YYDEBUG(161, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
+ if(yych <= 'T'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'I') goto yy156;
- if(yych != 'i') goto yy3;
- goto yy156;
+ if(yych <= 'U') goto yy162;
+ if(yych != 'u') goto yy3;
+ goto yy162;
}
-yy156:
- YYDEBUG(156, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy157;
- if(yych != 'o') goto yy53;
- goto yy157;
-yy157:
- YYDEBUG(157, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy158;
- if(yych != 'u') goto yy53;
- goto yy158;
-yy158:
- YYDEBUG(158, *YYCURSOR);
+yy162:
+ YYDEBUG(162, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy159;
+ if(yych == 'S') goto yy163;
if(yych != 's') goto yy53;
- goto yy159;
-yy159:
- YYDEBUG(159, *YYCURSOR);
+ goto yy163;
+yy163:
+ YYDEBUG(163, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR;
- goto yy160;
-yy160:
- YYDEBUG(160, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy159;
- case 'D': case 'd': goto yy164;
- case 'F': case 'f': goto yy166;
- case 'H': case 'h': goto yy163;
- case 'M': case 'm': goto yy162;
- case 'S': case 's': goto yy161;
- case 'T': case 't': goto yy168;
- case 'W': case 'w': goto yy165;
- case 'Y': case 'y': goto yy167;
- default: goto yy53;
+ goto yy164;
+yy164:
+ YYDEBUG(164, *YYCURSOR);
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy163;
+ if(yych <= 0x1F) goto yy53;
+ goto yy163;
+ } else {
+ if(yych == 'D') goto yy168;
+ if(yych <= 'E') goto yy53;
+ goto yy170;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy167;
+ if(yych <= 'L') goto yy53;
+ goto yy166;
+ } else {
+ if(yych <= 'S'){
+ if(yych <= 'R') goto yy53;
+ goto yy165;
+ } else {
+ if(yych <= 'T') goto yy172;
+ if(yych <= 'V') goto yy53;
+ goto yy169;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy171;
+ if(yych <= 'c') goto yy53;
+ goto yy168;
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'e') goto yy53;
+ goto yy170;
+ } else {
+ if(yych == 'h') goto yy167;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy166;
+ if(yych <= 'r') goto yy53;
+ if(yych >= 't') goto yy172;
+ goto yy165;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy53;
+ goto yy169;
+ } else {
+ if(yych == 'y') goto yy171;
+ goto yy53;
+ }
+ }
+ }
}
-yy161:
- YYDEBUG(161, *YYCURSOR);
+yy165:
+ YYDEBUG(165, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
- if(yych == 'A') goto yy222;
+ if(yych == 'A') goto yy226;
goto yy53;
} else {
- if(yych <= 'E') goto yy223;
+ if(yych <= 'E') goto yy227;
if(yych <= 'T') goto yy53;
- goto yy221;
+ goto yy225;
}
} else {
if(yych <= 'd'){
- if(yych == 'a') goto yy222;
+ if(yych == 'a') goto yy226;
goto yy53;
} else {
- if(yych <= 'e') goto yy223;
- if(yych == 'u') goto yy221;
+ if(yych <= 'e') goto yy227;
+ if(yych == 'u') goto yy225;
goto yy53;
}
}
-yy162:
- YYDEBUG(162, *YYCURSOR);
+yy166:
+ YYDEBUG(166, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
- if(yych == 'I') goto yy213;
+ if(yych == 'I') goto yy217;
if(yych <= 'N') goto yy53;
- goto yy212;
+ goto yy216;
} else {
if(yych <= 'i'){
if(yych <= 'h') goto yy53;
- goto yy213;
+ goto yy217;
} else {
- if(yych == 'o') goto yy212;
+ if(yych == 'o') goto yy216;
goto yy53;
}
}
-yy163:
- YYDEBUG(163, *YYCURSOR);
+yy167:
+ YYDEBUG(167, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy210;
- if(yych == 'o') goto yy210;
+ if(yych == 'O') goto yy214;
+ if(yych == 'o') goto yy214;
goto yy53;
-yy164:
- YYDEBUG(164, *YYCURSOR);
+yy168:
+ YYDEBUG(168, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy209;
- if(yych == 'a') goto yy209;
+ if(yych == 'A') goto yy213;
+ if(yych == 'a') goto yy213;
goto yy53;
-yy165:
- YYDEBUG(165, *YYCURSOR);
+yy169:
+ YYDEBUG(169, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy201;
- if(yych == 'e') goto yy201;
+ if(yych == 'E') goto yy205;
+ if(yych == 'e') goto yy205;
goto yy53;
-yy166:
- YYDEBUG(166, *YYCURSOR);
+yy170:
+ YYDEBUG(170, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
- if(yych == 'O') goto yy186;
+ if(yych == 'O') goto yy190;
if(yych <= 'Q') goto yy53;
- goto yy185;
+ goto yy189;
} else {
if(yych <= 'o'){
if(yych <= 'n') goto yy53;
- goto yy186;
+ goto yy190;
} else {
- if(yych == 'r') goto yy185;
+ if(yych == 'r') goto yy189;
goto yy53;
}
}
-yy167:
- YYDEBUG(167, *YYCURSOR);
+yy171:
+ YYDEBUG(171, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy182;
- if(yych == 'e') goto yy182;
+ if(yych == 'E') goto yy186;
+ if(yych == 'e') goto yy186;
goto yy53;
-yy168:
- YYDEBUG(168, *YYCURSOR);
+yy172:
+ YYDEBUG(172, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'H') goto yy169;
+ if(yych == 'H') goto yy173;
if(yych <= 'T') goto yy53;
- goto yy170;
+ goto yy174;
} else {
if(yych <= 'h'){
if(yych <= 'g') goto yy53;
- goto yy169;
+ goto yy173;
} else {
- if(yych == 'u') goto yy170;
+ if(yych == 'u') goto yy174;
goto yy53;
}
}
-yy169:
- YYDEBUG(169, *YYCURSOR);
+yy173:
+ YYDEBUG(173, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy177;
- if(yych == 'u') goto yy177;
+ if(yych == 'U') goto yy181;
+ if(yych == 'u') goto yy181;
goto yy53;
-yy170:
- YYDEBUG(170, *YYCURSOR);
+yy174:
+ YYDEBUG(174, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy171;
+ if(yych == 'E') goto yy175;
if(yych != 'e') goto yy53;
- goto yy171;
-yy171:
- YYDEBUG(171, *YYCURSOR);
+ goto yy175;
+yy175:
+ YYDEBUG(175, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'S') goto yy173;
- if(yych == 's') goto yy173;
- goto yy172;
-yy172:
- YYDEBUG(172, *YYCURSOR);
+ if(yych == 'S') goto yy177;
+ if(yych == 's') goto yy177;
+ goto yy176;
+yy176:
+ YYDEBUG(176, *YYCURSOR);
{
timelib_sll i;
- int behavior;
+ int behavior = 0;
DEBUG_OUTPUT("relativetext");
TIMELIB_INIT;
TIMELIB_HAVE_RELATIVE();
@@ -3298,1268 +3751,1306 @@ yy172:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy173:
- YYDEBUG(173, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy174;
- if(yych != 'd') goto yy53;
- goto yy174;
-yy174:
- YYDEBUG(174, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy175;
- if(yych != 'a') goto yy53;
- goto yy175;
-yy175:
- YYDEBUG(175, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych != 'y') goto yy53;
- goto yy176;
-yy176:
- YYDEBUG(176, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy172;
yy177:
YYDEBUG(177, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'R') goto yy178;
- if(yych != 'r') goto yy172;
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy178;
+ if(yych != 'd') goto yy53;
goto yy178;
yy178:
YYDEBUG(178, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy179;
- if(yych != 's') goto yy53;
+ if(yych == 'A') goto yy179;
+ if(yych != 'a') goto yy53;
goto yy179;
yy179:
YYDEBUG(179, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy180;
- if(yych != 'd') goto yy53;
+ if(yych == 'Y') goto yy180;
+ if(yych != 'y') goto yy53;
goto yy180;
yy180:
YYDEBUG(180, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy181;
- if(yych != 'a') goto yy53;
- goto yy181;
+ goto yy176;
yy181:
YYDEBUG(181, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'R') goto yy182;
+ if(yych != 'r') goto yy176;
+ goto yy182;
yy182:
YYDEBUG(182, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy183;
- if(yych != 'a') goto yy53;
+ if(yych == 'S') goto yy183;
+ if(yych != 's') goto yy53;
goto yy183;
yy183:
YYDEBUG(183, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych != 'r') goto yy53;
+ if(yych == 'D') goto yy184;
+ if(yych != 'd') goto yy53;
goto yy184;
yy184:
YYDEBUG(184, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy176;
- if(yych == 's') goto yy176;
- goto yy172;
+ if(yych == 'A') goto yy185;
+ if(yych != 'a') goto yy53;
+ goto yy185;
yy185:
YYDEBUG(185, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy198;
- if(yych == 'i') goto yy198;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
goto yy53;
yy186:
YYDEBUG(186, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy187;
- if(yych != 'r') goto yy53;
+ if(yych == 'A') goto yy187;
+ if(yych != 'a') goto yy53;
goto yy187;
yy187:
YYDEBUG(187, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy188;
- if(yych != 't') goto yy53;
+ if(yych == 'R') goto yy188;
+ if(yych != 'r') goto yy53;
goto yy188;
yy188:
YYDEBUG(188, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'N'){
- if(yych == 'H') goto yy190;
- if(yych <= 'M') goto yy53;
- goto yy189;
- } else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy53;
- goto yy190;
- } else {
- if(yych != 'n') goto yy53;
- goto yy189;
- }
- }
+ if(yych == 'S') goto yy180;
+ if(yych == 's') goto yy180;
+ goto yy176;
yy189:
YYDEBUG(189, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy195;
- if(yych == 'i') goto yy195;
+ if(yych == 'I') goto yy202;
+ if(yych == 'i') goto yy202;
goto yy53;
yy190:
YYDEBUG(190, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy191;
- if(yych != 'n') goto yy53;
+ if(yych == 'R') goto yy191;
+ if(yych != 'r') goto yy53;
goto yy191;
yy191:
YYDEBUG(191, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy192;
- if(yych != 'i') goto yy53;
+ if(yych == 'T') goto yy192;
+ if(yych != 't') goto yy53;
goto yy192;
yy192:
YYDEBUG(192, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy193;
- if(yych != 'g') goto yy53;
- goto yy193;
+ if(yych <= 'N'){
+ if(yych == 'H') goto yy194;
+ if(yych <= 'M') goto yy53;
+ goto yy193;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy53;
+ goto yy194;
+ } else {
+ if(yych != 'n') goto yy53;
+ goto yy193;
+ }
+ }
yy193:
YYDEBUG(193, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy194;
- if(yych != 'h') goto yy53;
- goto yy194;
+ if(yych == 'I') goto yy199;
+ if(yych == 'i') goto yy199;
+ goto yy53;
yy194:
YYDEBUG(194, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy184;
- goto yy53;
+ if(yych == 'N') goto yy195;
+ if(yych != 'n') goto yy53;
+ goto yy195;
yy195:
YYDEBUG(195, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy196;
- if(yych != 'g') goto yy53;
+ if(yych == 'I') goto yy196;
+ if(yych != 'i') goto yy53;
goto yy196;
yy196:
YYDEBUG(196, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy197;
- if(yych != 'h') goto yy53;
+ if(yych == 'G') goto yy197;
+ if(yych != 'g') goto yy53;
goto yy197;
yy197:
YYDEBUG(197, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy184;
- goto yy53;
+ if(yych == 'H') goto yy198;
+ if(yych != 'h') goto yy53;
+ goto yy198;
yy198:
YYDEBUG(198, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'D') goto yy199;
- if(yych != 'd') goto yy172;
- goto yy199;
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy188;
+ goto yy53;
yy199:
YYDEBUG(199, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy200;
- if(yych != 'a') goto yy53;
+ if(yych == 'G') goto yy200;
+ if(yych != 'g') goto yy53;
goto yy200;
yy200:
YYDEBUG(200, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'H') goto yy201;
+ if(yych != 'h') goto yy53;
+ goto yy201;
yy201:
YYDEBUG(201, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'E'){
- if(yych <= 'C') goto yy53;
- if(yych <= 'D') goto yy203;
- goto yy202;
- } else {
- if(yych <= 'c') goto yy53;
- if(yych <= 'd') goto yy203;
- if(yych >= 'f') goto yy53;
- goto yy202;
- }
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy188;
+ goto yy53;
yy202:
YYDEBUG(202, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'K') goto yy184;
- if(yych == 'k') goto yy184;
- goto yy53;
-yy203:
- YYDEBUG(203, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'N') goto yy204;
- if(yych != 'n') goto yy172;
+ if(yych == 'D') goto yy203;
+ if(yych != 'd') goto yy176;
+ goto yy203;
+yy203:
+ YYDEBUG(203, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy204;
+ if(yych != 'a') goto yy53;
goto yy204;
yy204:
YYDEBUG(204, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy205;
- if(yych != 'e') goto yy53;
- goto yy205;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
yy205:
YYDEBUG(205, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy206;
- if(yych != 's') goto yy53;
- goto yy206;
+ if(yych <= 'E'){
+ if(yych <= 'C') goto yy53;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ } else {
+ if(yych <= 'c') goto yy53;
+ if(yych <= 'd') goto yy207;
+ if(yych >= 'f') goto yy53;
+ goto yy206;
+ }
yy206:
YYDEBUG(206, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy207;
- if(yych != 'd') goto yy53;
- goto yy207;
+ if(yych == 'K') goto yy188;
+ if(yych == 'k') goto yy188;
+ goto yy53;
yy207:
YYDEBUG(207, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy208;
- if(yych != 'a') goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'N') goto yy208;
+ if(yych != 'n') goto yy176;
goto yy208;
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'E') goto yy209;
+ if(yych != 'e') goto yy53;
+ goto yy209;
yy209:
YYDEBUG(209, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy184;
- if(yych == 'y') goto yy184;
- goto yy53;
+ if(yych == 'S') goto yy210;
+ if(yych != 's') goto yy53;
+ goto yy210;
yy210:
YYDEBUG(210, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy211;
- if(yych != 'u') goto yy53;
+ if(yych == 'D') goto yy211;
+ if(yych != 'd') goto yy53;
goto yy211;
yy211:
YYDEBUG(211, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych == 'r') goto yy184;
- goto yy53;
+ if(yych == 'A') goto yy212;
+ if(yych != 'a') goto yy53;
+ goto yy212;
yy212:
YYDEBUG(212, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy217;
- if(yych == 'n') goto yy217;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
goto yy53;
yy213:
YYDEBUG(213, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy214;
- if(yych != 'n') goto yy53;
- goto yy214;
+ if(yych == 'Y') goto yy188;
+ if(yych == 'y') goto yy188;
+ goto yy53;
yy214:
YYDEBUG(214, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'U'){
- if(yych == 'S') goto yy176;
- if(yych <= 'T') goto yy172;
- goto yy215;
- } else {
- if(yych <= 's'){
- if(yych <= 'r') goto yy172;
- goto yy176;
- } else {
- if(yych != 'u') goto yy172;
- goto yy215;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy215;
+ if(yych != 'u') goto yy53;
+ goto yy215;
yy215:
YYDEBUG(215, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy216;
- if(yych != 't') goto yy53;
- goto yy216;
+ if(yych == 'R') goto yy188;
+ if(yych == 'r') goto yy188;
+ goto yy53;
yy216:
YYDEBUG(216, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy184;
- if(yych == 'e') goto yy184;
+ if(yych == 'N') goto yy221;
+ if(yych == 'n') goto yy221;
goto yy53;
yy217:
YYDEBUG(217, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'N') goto yy218;
+ if(yych != 'n') goto yy53;
+ goto yy218;
+yy218:
+ YYDEBUG(218, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'T'){
- if(yych == 'D') goto yy218;
- if(yych <= 'S') goto yy172;
+ if(yych <= 'U'){
+ if(yych == 'S') goto yy180;
+ if(yych <= 'T') goto yy176;
goto yy219;
} else {
- if(yych <= 'd'){
- if(yych <= 'c') goto yy172;
- goto yy218;
+ if(yych <= 's'){
+ if(yych <= 'r') goto yy176;
+ goto yy180;
} else {
- if(yych == 't') goto yy219;
- goto yy172;
+ if(yych != 'u') goto yy176;
+ goto yy219;
}
}
-yy218:
- YYDEBUG(218, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy220;
- if(yych == 'a') goto yy220;
- goto yy53;
yy219:
YYDEBUG(219, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy184;
- if(yych == 'h') goto yy184;
- goto yy53;
+ if(yych == 'T') goto yy220;
+ if(yych != 't') goto yy53;
+ goto yy220;
yy220:
YYDEBUG(220, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
+ if(yych == 'E') goto yy188;
+ if(yych == 'e') goto yy188;
goto yy53;
yy221:
YYDEBUG(221, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy232;
- if(yych == 'n') goto yy232;
- goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych == 'D') goto yy222;
+ if(yych <= 'S') goto yy176;
+ goto yy223;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy176;
+ goto yy222;
+ } else {
+ if(yych == 't') goto yy223;
+ goto yy176;
+ }
+ }
yy222:
YYDEBUG(222, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy227;
- if(yych == 't') goto yy227;
+ if(yych == 'A') goto yy224;
+ if(yych == 'a') goto yy224;
goto yy53;
yy223:
YYDEBUG(223, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy224;
- if(yych != 'c') goto yy53;
- goto yy224;
+ if(yych == 'H') goto yy188;
+ if(yych == 'h') goto yy188;
+ goto yy53;
yy224:
YYDEBUG(224, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == 'O') goto yy225;
- if(yych <= 'R') goto yy172;
- goto yy176;
- } else {
- if(yych <= 'o'){
- if(yych <= 'n') goto yy172;
- goto yy225;
- } else {
- if(yych == 's') goto yy176;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
yy225:
YYDEBUG(225, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy226;
- if(yych != 'n') goto yy53;
- goto yy226;
+ if(yych == 'N') goto yy236;
+ if(yych == 'n') goto yy236;
+ goto yy53;
yy226:
YYDEBUG(226, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy184;
- if(yych == 'd') goto yy184;
+ if(yych == 'T') goto yy231;
+ if(yych == 't') goto yy231;
goto yy53;
yy227:
YYDEBUG(227, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy228;
- if(yych != 'u') goto yy172;
+ yych = *++YYCURSOR;
+ if(yych == 'C') goto yy228;
+ if(yych != 'c') goto yy53;
goto yy228;
yy228:
YYDEBUG(228, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy229;
- if(yych != 'r') goto yy53;
- goto yy229;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'S'){
+ if(yych == 'O') goto yy229;
+ if(yych <= 'R') goto yy176;
+ goto yy180;
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'n') goto yy176;
+ goto yy229;
+ } else {
+ if(yych == 's') goto yy180;
+ goto yy176;
+ }
+ }
yy229:
YYDEBUG(229, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy230;
- if(yych != 'd') goto yy53;
+ if(yych == 'N') goto yy230;
+ if(yych != 'n') goto yy53;
goto yy230;
yy230:
YYDEBUG(230, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy231;
- if(yych != 'a') goto yy53;
- goto yy231;
+ if(yych == 'D') goto yy188;
+ if(yych == 'd') goto yy188;
+ goto yy53;
yy231:
YYDEBUG(231, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
-yy232:
- YYDEBUG(232, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'D') goto yy233;
- if(yych != 'd') goto yy172;
+ if(yych == 'U') goto yy232;
+ if(yych != 'u') goto yy176;
+ goto yy232;
+yy232:
+ YYDEBUG(232, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'R') goto yy233;
+ if(yych != 'r') goto yy53;
goto yy233;
yy233:
YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy234;
- if(yych != 'a') goto yy53;
+ if(yych == 'D') goto yy234;
+ if(yych != 'd') goto yy53;
goto yy234;
yy234:
YYDEBUG(234, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'A') goto yy235;
+ if(yych != 'a') goto yy53;
+ goto yy235;
yy235:
YYDEBUG(235, *YYCURSOR);
- yyaccept = 1;
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
+yy236:
+ YYDEBUG(236, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'D') goto yy237;
+ if(yych != 'd') goto yy176;
+ goto yy237;
+yy237:
+ YYDEBUG(237, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy238;
+ if(yych != 'a') goto yy53;
+ goto yy238;
+yy238:
+ YYDEBUG(238, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
+yy239:
+ YYDEBUG(239, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy154;
+ goto yy158;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy236;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy240;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy236:
- YYDEBUG(236, *YYCURSOR);
- yyaccept = 1;
+yy240:
+ YYDEBUG(240, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy155;
+ goto yy159;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'v') goto yy237;
- if(yych <= 'z') goto yy142;
+ if(yych == 'v') goto yy241;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy237:
- YYDEBUG(237, *YYCURSOR);
- yyaccept = 1;
+yy241:
+ YYDEBUG(241, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'H') goto yy3;
- goto yy156;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy160;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy238;
- if(yych <= 'z') goto yy143;
+ if(yych == 'i') goto yy242;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy238:
- YYDEBUG(238, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy157;
- if(yych != 'o') goto yy144;
- goto yy239;
-yy239:
- YYDEBUG(239, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy158;
- if(yych != 'u') goto yy144;
- goto yy240;
-yy240:
- YYDEBUG(240, *YYCURSOR);
+yy242:
+ YYDEBUG(242, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy161;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy243;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy243:
+ YYDEBUG(243, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy162;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy244;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy244:
+ YYDEBUG(244, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'S') goto yy159;
+ if(yych == 'S') goto yy163;
goto yy53;
}
} else {
if(yych <= 'r'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 's') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych <= 's') goto yy245;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy241:
- YYDEBUG(241, *YYCURSOR);
+yy245:
+ YYDEBUG(245, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'h'){
if(yych <= '`'){
if(yych <= '/'){
- if(yych <= '.') goto yy160;
- goto yy138;
+ if(yych <= '.') goto yy164;
+ goto yy140;
} else {
- if(yych == '_') goto yy138;
- goto yy160;
+ if(yych == '_') goto yy140;
+ goto yy164;
}
} else {
if(yych <= 'e'){
- if(yych == 'd') goto yy245;
- goto yy143;
+ if(yych == 'd') goto yy249;
+ goto yy147;
} else {
- if(yych <= 'f') goto yy247;
- if(yych <= 'g') goto yy143;
- goto yy244;
+ if(yych <= 'f') goto yy251;
+ if(yych <= 'g') goto yy147;
+ goto yy248;
}
}
} else {
if(yych <= 't'){
if(yych <= 'm'){
- if(yych <= 'l') goto yy143;
- goto yy243;
+ if(yych <= 'l') goto yy147;
+ goto yy247;
} else {
- if(yych <= 'r') goto yy143;
- if(yych >= 't') goto yy249;
- goto yy242;
+ if(yych <= 'r') goto yy147;
+ if(yych >= 't') goto yy253;
+ goto yy246;
}
} else {
if(yych <= 'x'){
- if(yych == 'w') goto yy246;
- goto yy143;
+ if(yych == 'w') goto yy250;
+ goto yy147;
} else {
- if(yych <= 'y') goto yy248;
- if(yych <= 'z') goto yy143;
- goto yy160;
+ if(yych <= 'y') goto yy252;
+ if(yych <= 'z') goto yy147;
+ goto yy164;
}
}
}
-yy242:
- YYDEBUG(242, *YYCURSOR);
+yy246:
+ YYDEBUG(246, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
- if(yych == 'A') goto yy222;
- goto yy144;
+ if(yych == 'A') goto yy226;
+ goto yy148;
} else {
- if(yych <= 'E') goto yy223;
- if(yych <= 'T') goto yy144;
- goto yy221;
+ if(yych <= 'E') goto yy227;
+ if(yych <= 'T') goto yy148;
+ goto yy225;
}
} else {
if(yych <= 'd'){
- if(yych == 'a') goto yy301;
- goto yy144;
+ if(yych == 'a') goto yy305;
+ goto yy148;
} else {
- if(yych <= 'e') goto yy302;
- if(yych == 'u') goto yy303;
- goto yy144;
+ if(yych <= 'e') goto yy306;
+ if(yych == 'u') goto yy307;
+ goto yy148;
}
}
-yy243:
- YYDEBUG(243, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'O'){
- if(yych == 'I') goto yy213;
- if(yych <= 'N') goto yy144;
- goto yy212;
- } else {
- if(yych <= 'i'){
- if(yych <= 'h') goto yy144;
- goto yy292;
- } else {
- if(yych == 'o') goto yy293;
- goto yy144;
- }
- }
-yy244:
- YYDEBUG(244, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy210;
- if(yych == 'o') goto yy290;
- goto yy144;
-yy245:
- YYDEBUG(245, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy209;
- if(yych == 'a') goto yy289;
- goto yy144;
-yy246:
- YYDEBUG(246, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy201;
- if(yych == 'e') goto yy281;
- goto yy144;
yy247:
YYDEBUG(247, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'R'){
- if(yych == 'O') goto yy186;
- if(yych <= 'Q') goto yy144;
- goto yy185;
+ if(yych <= 'O'){
+ if(yych == 'I') goto yy217;
+ if(yych <= 'N') goto yy148;
+ goto yy216;
} else {
- if(yych <= 'o'){
- if(yych <= 'n') goto yy144;
- goto yy265;
+ if(yych <= 'i'){
+ if(yych <= 'h') goto yy148;
+ goto yy296;
} else {
- if(yych == 'r') goto yy266;
- goto yy144;
+ if(yych == 'o') goto yy297;
+ goto yy148;
}
}
yy248:
YYDEBUG(248, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy182;
- if(yych == 'e') goto yy262;
- goto yy144;
+ if(yych == 'O') goto yy214;
+ if(yych == 'o') goto yy294;
+ goto yy148;
yy249:
YYDEBUG(249, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'U'){
- if(yych == 'H') goto yy169;
- if(yych <= 'T') goto yy144;
- goto yy170;
- } else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy144;
- goto yy250;
- } else {
- if(yych == 'u') goto yy251;
- goto yy144;
- }
- }
+ if(yych == 'A') goto yy213;
+ if(yych == 'a') goto yy293;
+ goto yy148;
yy250:
YYDEBUG(250, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy177;
- if(yych == 'u') goto yy257;
- goto yy144;
+ if(yych == 'E') goto yy205;
+ if(yych == 'e') goto yy285;
+ goto yy148;
yy251:
YYDEBUG(251, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy171;
- if(yych != 'e') goto yy144;
- goto yy252;
-yy252:
- YYDEBUG(252, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
- } else {
- if(yych == 'S') goto yy173;
- goto yy172;
- }
+ if(yych <= 'R'){
+ if(yych == 'O') goto yy190;
+ if(yych <= 'Q') goto yy148;
+ goto yy189;
} else {
- if(yych <= 'r'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'o'){
+ if(yych <= 'n') goto yy148;
+ goto yy269;
} else {
- if(yych <= 's') goto yy253;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 'r') goto yy270;
+ goto yy148;
}
}
+yy252:
+ YYDEBUG(252, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'E') goto yy186;
+ if(yych == 'e') goto yy266;
+ goto yy148;
yy253:
YYDEBUG(253, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy174;
- if(yych != 'd') goto yy144;
- goto yy254;
+ if(yych <= 'U'){
+ if(yych == 'H') goto yy173;
+ if(yych <= 'T') goto yy148;
+ goto yy174;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy148;
+ goto yy254;
+ } else {
+ if(yych == 'u') goto yy255;
+ goto yy148;
+ }
+ }
yy254:
YYDEBUG(254, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy175;
- if(yych != 'a') goto yy144;
- goto yy255;
+ if(yych == 'U') goto yy181;
+ if(yych == 'u') goto yy261;
+ goto yy148;
yy255:
YYDEBUG(255, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych != 'y') goto yy144;
+ if(yych == 'E') goto yy175;
+ if(yych != 'e') goto yy148;
goto yy256;
yy256:
YYDEBUG(256, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy172;
- } else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
-yy257:
- YYDEBUG(257, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'R') goto yy178;
- goto yy172;
+ if(yych == 'S') goto yy177;
+ goto yy176;
}
} else {
- if(yych <= 'q'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'r'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy258;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 's') goto yy257;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy257:
+ YYDEBUG(257, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy178;
+ if(yych != 'd') goto yy148;
+ goto yy258;
yy258:
YYDEBUG(258, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy179;
- if(yych != 's') goto yy144;
+ if(yych == 'A') goto yy179;
+ if(yych != 'a') goto yy148;
goto yy259;
yy259:
YYDEBUG(259, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy180;
- if(yych != 'd') goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych != 'y') goto yy148;
goto yy260;
yy260:
YYDEBUG(260, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy181;
- if(yych != 'a') goto yy144;
- goto yy261;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ goto yy176;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
yy261:
YYDEBUG(261, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
-yy262:
- YYDEBUG(262, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy183;
- if(yych != 'a') goto yy144;
- goto yy263;
-yy263:
- YYDEBUG(263, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych != 'r') goto yy144;
- goto yy264;
-yy264:
- YYDEBUG(264, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'S') goto yy176;
- goto yy172;
+ if(yych == 'R') goto yy182;
+ goto yy176;
}
} else {
- if(yych <= 'r'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'q'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 's') goto yy256;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 'r') goto yy262;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy262:
+ YYDEBUG(262, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'S') goto yy183;
+ if(yych != 's') goto yy148;
+ goto yy263;
+yy263:
+ YYDEBUG(263, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy184;
+ if(yych != 'd') goto yy148;
+ goto yy264;
+yy264:
+ YYDEBUG(264, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy185;
+ if(yych != 'a') goto yy148;
+ goto yy265;
yy265:
YYDEBUG(265, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy187;
- if(yych == 'r') goto yy270;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy266:
YYDEBUG(266, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy198;
- if(yych != 'i') goto yy144;
+ if(yych == 'A') goto yy187;
+ if(yych != 'a') goto yy148;
goto yy267;
yy267:
YYDEBUG(267, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'R') goto yy188;
+ if(yych != 'r') goto yy148;
+ goto yy268;
+yy268:
+ YYDEBUG(268, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'D') goto yy199;
- goto yy172;
+ if(yych == 'S') goto yy180;
+ goto yy176;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'r'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 'd') goto yy268;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 's') goto yy260;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy268:
- YYDEBUG(268, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy200;
- if(yych != 'a') goto yy144;
- goto yy269;
yy269:
YYDEBUG(269, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'R') goto yy191;
+ if(yych == 'r') goto yy274;
+ goto yy148;
yy270:
YYDEBUG(270, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy188;
- if(yych != 't') goto yy144;
+ if(yych == 'I') goto yy202;
+ if(yych != 'i') goto yy148;
goto yy271;
yy271:
YYDEBUG(271, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'N'){
- if(yych == 'H') goto yy190;
- if(yych <= 'M') goto yy144;
- goto yy189;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'D') goto yy203;
+ goto yy176;
+ }
} else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy144;
- goto yy273;
+ if(yych <= 'c'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych != 'n') goto yy144;
- goto yy272;
+ if(yych <= 'd') goto yy272;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
yy272:
YYDEBUG(272, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy195;
- if(yych == 'i') goto yy278;
- goto yy144;
+ if(yych == 'A') goto yy204;
+ if(yych != 'a') goto yy148;
+ goto yy273;
yy273:
YYDEBUG(273, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy191;
- if(yych != 'n') goto yy144;
- goto yy274;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy274:
YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy192;
- if(yych != 'i') goto yy144;
+ if(yych == 'T') goto yy192;
+ if(yych != 't') goto yy148;
goto yy275;
yy275:
YYDEBUG(275, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy193;
- if(yych != 'g') goto yy144;
- goto yy276;
+ if(yych <= 'N'){
+ if(yych == 'H') goto yy194;
+ if(yych <= 'M') goto yy148;
+ goto yy193;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy148;
+ goto yy277;
+ } else {
+ if(yych != 'n') goto yy148;
+ goto yy276;
+ }
+ }
yy276:
YYDEBUG(276, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy194;
- if(yych != 'h') goto yy144;
- goto yy277;
+ if(yych == 'I') goto yy199;
+ if(yych == 'i') goto yy282;
+ goto yy148;
yy277:
YYDEBUG(277, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy264;
- goto yy144;
+ if(yych == 'N') goto yy195;
+ if(yych != 'n') goto yy148;
+ goto yy278;
yy278:
YYDEBUG(278, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy196;
- if(yych != 'g') goto yy144;
+ if(yych == 'I') goto yy196;
+ if(yych != 'i') goto yy148;
goto yy279;
yy279:
YYDEBUG(279, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy197;
- if(yych != 'h') goto yy144;
+ if(yych == 'G') goto yy197;
+ if(yych != 'g') goto yy148;
goto yy280;
yy280:
YYDEBUG(280, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy264;
- goto yy144;
+ if(yych == 'H') goto yy198;
+ if(yych != 'h') goto yy148;
+ goto yy281;
yy281:
YYDEBUG(281, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'E'){
- if(yych <= 'C') goto yy144;
- if(yych <= 'D') goto yy203;
- goto yy202;
- } else {
- if(yych <= 'c') goto yy144;
- if(yych <= 'd') goto yy283;
- if(yych >= 'f') goto yy144;
- goto yy282;
- }
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy268;
+ goto yy148;
yy282:
YYDEBUG(282, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'K') goto yy184;
- if(yych == 'k') goto yy264;
- goto yy144;
+ if(yych == 'G') goto yy200;
+ if(yych != 'g') goto yy148;
+ goto yy283;
yy283:
YYDEBUG(283, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
- } else {
- if(yych == 'N') goto yy204;
- goto yy172;
- }
- } else {
- if(yych <= 'm'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
- } else {
- if(yych <= 'n') goto yy284;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'H') goto yy201;
+ if(yych != 'h') goto yy148;
+ goto yy284;
yy284:
YYDEBUG(284, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy205;
- if(yych != 'e') goto yy144;
- goto yy285;
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy268;
+ goto yy148;
yy285:
YYDEBUG(285, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy206;
- if(yych != 's') goto yy144;
- goto yy286;
+ if(yych <= 'E'){
+ if(yych <= 'C') goto yy148;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ } else {
+ if(yych <= 'c') goto yy148;
+ if(yych <= 'd') goto yy287;
+ if(yych >= 'f') goto yy148;
+ goto yy286;
+ }
yy286:
YYDEBUG(286, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy207;
- if(yych != 'd') goto yy144;
- goto yy287;
+ if(yych == 'K') goto yy188;
+ if(yych == 'k') goto yy268;
+ goto yy148;
yy287:
YYDEBUG(287, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy208;
- if(yych != 'a') goto yy144;
- goto yy288;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'N') goto yy208;
+ goto yy176;
+ }
+ } else {
+ if(yych <= 'm'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
+ } else {
+ if(yych <= 'n') goto yy288;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
+ }
yy288:
YYDEBUG(288, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'E') goto yy209;
+ if(yych != 'e') goto yy148;
+ goto yy289;
yy289:
YYDEBUG(289, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy184;
- if(yych == 'y') goto yy264;
- goto yy144;
+ if(yych == 'S') goto yy210;
+ if(yych != 's') goto yy148;
+ goto yy290;
yy290:
YYDEBUG(290, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy211;
- if(yych != 'u') goto yy144;
+ if(yych == 'D') goto yy211;
+ if(yych != 'd') goto yy148;
goto yy291;
yy291:
YYDEBUG(291, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych == 'r') goto yy264;
- goto yy144;
+ if(yych == 'A') goto yy212;
+ if(yych != 'a') goto yy148;
+ goto yy292;
yy292:
YYDEBUG(292, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy214;
- if(yych == 'n') goto yy298;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy293:
YYDEBUG(293, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy217;
- if(yych != 'n') goto yy144;
- goto yy294;
+ if(yych == 'Y') goto yy188;
+ if(yych == 'y') goto yy268;
+ goto yy148;
yy294:
YYDEBUG(294, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= 'C'){
- if(yych == '/') goto yy138;
- goto yy172;
- } else {
- if(yych <= 'D') goto yy218;
- if(yych == 'T') goto yy219;
- goto yy172;
- }
- } else {
- if(yych <= 'd'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'c') goto yy143;
- goto yy295;
- } else {
- if(yych == 't') goto yy296;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy215;
+ if(yych != 'u') goto yy148;
+ goto yy295;
yy295:
YYDEBUG(295, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy220;
- if(yych == 'a') goto yy297;
- goto yy144;
+ if(yych == 'R') goto yy188;
+ if(yych == 'r') goto yy268;
+ goto yy148;
yy296:
YYDEBUG(296, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy184;
- if(yych == 'h') goto yy264;
- goto yy144;
+ if(yych == 'N') goto yy218;
+ if(yych == 'n') goto yy302;
+ goto yy148;
yy297:
YYDEBUG(297, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'N') goto yy221;
+ if(yych != 'n') goto yy148;
+ goto yy298;
yy298:
YYDEBUG(298, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= 'R'){
- if(yych == '/') goto yy138;
- goto yy172;
+ if(yych <= 'C'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych <= 'S') goto yy176;
- if(yych == 'U') goto yy215;
- goto yy172;
+ if(yych <= 'D') goto yy222;
+ if(yych == 'T') goto yy223;
+ goto yy176;
}
} else {
- if(yych <= 's'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'r') goto yy143;
- goto yy256;
+ if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'c') goto yy147;
+ goto yy299;
} else {
- if(yych == 'u') goto yy299;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 't') goto yy300;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
yy299:
YYDEBUG(299, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy216;
- if(yych != 't') goto yy144;
- goto yy300;
+ if(yych == 'A') goto yy224;
+ if(yych == 'a') goto yy301;
+ goto yy148;
yy300:
YYDEBUG(300, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy184;
- if(yych == 'e') goto yy264;
- goto yy144;
+ if(yych == 'H') goto yy188;
+ if(yych == 'h') goto yy268;
+ goto yy148;
yy301:
YYDEBUG(301, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy227;
- if(yych == 't') goto yy310;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy302:
YYDEBUG(302, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'C') goto yy224;
- if(yych == 'c') goto yy307;
- goto yy144;
-yy303:
- YYDEBUG(303, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy232;
- if(yych != 'n') goto yy144;
- goto yy304;
-yy304:
- YYDEBUG(304, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= 'R'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych == 'D') goto yy233;
- goto yy172;
+ if(yych <= 'S') goto yy180;
+ if(yych == 'U') goto yy219;
+ goto yy176;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 's'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'r') goto yy147;
+ goto yy260;
} else {
- if(yych <= 'd') goto yy305;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 'u') goto yy303;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy220;
+ if(yych != 't') goto yy148;
+ goto yy304;
+yy304:
+ YYDEBUG(304, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'E') goto yy188;
+ if(yych == 'e') goto yy268;
+ goto yy148;
yy305:
YYDEBUG(305, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy234;
- if(yych != 'a') goto yy144;
- goto yy306;
+ if(yych == 'T') goto yy231;
+ if(yych == 't') goto yy314;
+ goto yy148;
yy306:
YYDEBUG(306, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'C') goto yy228;
+ if(yych == 'c') goto yy311;
+ goto yy148;
yy307:
YYDEBUG(307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'N') goto yy236;
+ if(yych != 'n') goto yy148;
+ goto yy308;
+yy308:
+ YYDEBUG(308, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= 'N'){
- if(yych == '/') goto yy138;
- goto yy172;
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych <= 'O') goto yy225;
- if(yych == 'S') goto yy176;
- goto yy172;
+ if(yych == 'D') goto yy237;
+ goto yy176;
}
} else {
- if(yych <= 'o'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'n') goto yy143;
- goto yy308;
+ if(yych <= 'c'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych == 's') goto yy256;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 'd') goto yy309;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy308:
- YYDEBUG(308, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy226;
- if(yych != 'n') goto yy144;
- goto yy309;
yy309:
YYDEBUG(309, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy184;
- if(yych == 'd') goto yy264;
- goto yy144;
+ if(yych == 'A') goto yy238;
+ if(yych != 'a') goto yy148;
+ goto yy310;
yy310:
YYDEBUG(310, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
+yy311:
+ YYDEBUG(311, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= 'N'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych == 'U') goto yy228;
- goto yy172;
+ if(yych <= 'O') goto yy229;
+ if(yych == 'S') goto yy180;
+ goto yy176;
}
} else {
- if(yych <= 't'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'o'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'n') goto yy147;
+ goto yy312;
} else {
- if(yych <= 'u') goto yy311;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 's') goto yy260;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy311:
- YYDEBUG(311, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy229;
- if(yych != 'r') goto yy144;
- goto yy312;
yy312:
YYDEBUG(312, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy230;
- if(yych != 'd') goto yy144;
+ if(yych == 'N') goto yy230;
+ if(yych != 'n') goto yy148;
goto yy313;
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy231;
- if(yych != 'a') goto yy144;
- goto yy314;
+ if(yych == 'D') goto yy188;
+ if(yych == 'd') goto yy268;
+ goto yy148;
yy314:
YYDEBUG(314, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'U') goto yy232;
+ goto yy176;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy315;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
+ }
yy315:
YYDEBUG(315, *YYCURSOR);
yych = *++YYCURSOR;
+ if(yych == 'R') goto yy233;
+ if(yych != 'r') goto yy148;
+ goto yy316;
+yy316:
+ YYDEBUG(316, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy234;
+ if(yych != 'd') goto yy148;
+ goto yy317;
+yy317:
+ YYDEBUG(317, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy235;
+ if(yych != 'a') goto yy148;
+ goto yy318;
+yy318:
+ YYDEBUG(318, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
+yy319:
+ YYDEBUG(319, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
if(yych <= '(') goto yy3;
@@ -4567,7 +5058,7 @@ yy315:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy316;
+ goto yy320;
}
} else {
if(yych <= 'r'){
@@ -4575,13 +5066,13 @@ yy315:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 's') goto yy316;
+ if(yych <= 's') goto yy320;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy316:
- YYDEBUG(316, *YYCURSOR);
+yy320:
+ YYDEBUG(320, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -4590,7 +5081,7 @@ yy316:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= 's'){
@@ -4598,83 +5089,469 @@ yy316:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy317;
+ if(yych <= 't') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy317:
- YYDEBUG(317, *YYCURSOR);
- yyaccept = 1;
+yy321:
+ YYDEBUG(321, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy160;
+ case 0x09: case ' ': goto yy163;
case ')': goto yy132;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy136;
+ case 'D': case 'd': goto yy325;
+ case 'F': case 'f': goto yy327;
+ case 'H': case 'h': goto yy324;
+ case 'M': case 'm': goto yy323;
+ case 'S': case 's': goto yy322;
+ case 'T': case 't': goto yy329;
+ case 'W': case 'w': goto yy326;
+ case 'Y': case 'y': goto yy328;
default: goto yy3;
}
-yy318:
- YYDEBUG(318, *YYCURSOR);
- yyaccept = 1;
+yy322:
+ YYDEBUG(322, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy340;
+ } else {
+ if(yych == 'E') goto yy341;
+ if(yych <= 'T') goto yy137;
+ goto yy342;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy340;
+ goto yy137;
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'e') goto yy341;
+ goto yy137;
+ } else {
+ if(yych <= 'u') goto yy342;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+ }
+yy323:
+ YYDEBUG(323, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'I') goto yy338;
+ if(yych <= 'N') goto yy137;
+ goto yy339;
+ }
+ } else {
+ if(yych <= 'i'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'h') goto yy137;
+ goto yy338;
+ } else {
+ if(yych == 'o') goto yy339;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy324:
+ YYDEBUG(324, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy337;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'o') goto yy337;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy325:
+ YYDEBUG(325, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy336;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy336;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy326:
+ YYDEBUG(326, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy335;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy335;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy327:
+ YYDEBUG(327, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'O') goto yy333;
+ if(yych <= 'Q') goto yy137;
+ goto yy334;
+ }
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'n') goto yy137;
+ goto yy333;
+ } else {
+ if(yych == 'r') goto yy334;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy328:
+ YYDEBUG(328, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy332;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy332;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy329:
+ YYDEBUG(329, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'H') goto yy330;
+ if(yych <= 'T') goto yy137;
+ goto yy331;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'g') goto yy137;
+ goto yy330;
+ } else {
+ if(yych == 'u') goto yy331;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy330:
+ YYDEBUG(330, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'U') goto yy181;
+ if(yych == 'u') goto yy181;
+ goto yy3;
+ }
+yy331:
+ YYDEBUG(331, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy175;
+ if(yych == 'e') goto yy175;
+ goto yy3;
+ }
+yy332:
+ YYDEBUG(332, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'A') goto yy187;
+ if(yych == 'a') goto yy187;
+ goto yy3;
+ }
+yy333:
+ YYDEBUG(333, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Q'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'R') goto yy191;
+ if(yych == 'r') goto yy191;
+ goto yy3;
+ }
+yy334:
+ YYDEBUG(334, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'I') goto yy202;
+ if(yych == 'i') goto yy202;
+ goto yy3;
+ }
+yy335:
+ YYDEBUG(335, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ if(yych <= 'C') goto yy3;
+ goto yy207;
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'E') goto yy206;
+ goto yy3;
+ } else {
+ if(yych <= 'd') goto yy207;
+ if(yych <= 'e') goto yy206;
+ goto yy3;
+ }
+ }
+yy336:
+ YYDEBUG(336, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'X'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Y') goto yy188;
+ if(yych == 'y') goto yy188;
+ goto yy3;
+ }
+yy337:
+ YYDEBUG(337, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'U') goto yy215;
+ if(yych == 'u') goto yy215;
+ goto yy3;
+ }
+yy338:
+ YYDEBUG(338, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy218;
+ if(yych == 'n') goto yy218;
+ goto yy3;
+ }
+yy339:
+ YYDEBUG(339, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy221;
+ if(yych == 'n') goto yy221;
+ goto yy3;
+ }
+yy340:
+ YYDEBUG(340, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'T') goto yy231;
+ if(yych == 't') goto yy231;
+ goto yy3;
+ }
+yy341:
+ YYDEBUG(341, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'C') goto yy228;
+ if(yych == 'c') goto yy228;
+ goto yy3;
+ }
+yy342:
+ YYDEBUG(342, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy236;
+ if(yych == 'n') goto yy236;
+ goto yy3;
+ }
+yy343:
+ YYDEBUG(343, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy316;
+ goto yy320;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy319;
- if(yych <= 'z') goto yy137;
+ if(yych == 's') goto yy344;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy319:
- YYDEBUG(319, *YYCURSOR);
- yyaccept = 1;
+yy344:
+ YYDEBUG(344, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy320:
- YYDEBUG(320, *YYCURSOR);
- yyaccept = 1;
+yy345:
+ YYDEBUG(345, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': goto yy160;
+ case 0x09: case ' ': goto yy163;
case ')': goto yy132;
- case '/': case '_': goto yy138;
+ case '/': case '_': goto yy140;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': goto yy136;
+ case 'D': goto yy325;
+ case 'F': goto yy327;
+ case 'H': goto yy324;
+ case 'M': goto yy323;
+ case 'S': goto yy322;
+ case 'T': goto yy329;
+ case 'W': goto yy326;
+ case 'Y': goto yy328;
case 'a':
case 'b':
case 'c': case 'e': case 'g': case 'i':
@@ -4685,19 +5562,585 @@ yy320:
case 'p':
case 'q':
case 'r': case 'u':
- case 'v': case 'x': case 'z': goto yy143;
- case 'd': goto yy245;
- case 'f': goto yy247;
- case 'h': goto yy244;
- case 'm': goto yy243;
- case 's': goto yy242;
- case 't': goto yy249;
- case 'w': goto yy246;
- case 'y': goto yy248;
+ case 'v': case 'x': case 'z': goto yy145;
+ case 'd': goto yy349;
+ case 'f': goto yy351;
+ case 'h': goto yy348;
+ case 'm': goto yy347;
+ case 's': goto yy346;
+ case 't': goto yy353;
+ case 'w': goto yy350;
+ case 'y': goto yy352;
default: goto yy3;
}
-yy321:
- YYDEBUG(321, *YYCURSOR);
+yy346:
+ YYDEBUG(346, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'D'){
+ if(yych <= 'A') goto yy340;
+ goto yy137;
+ } else {
+ if(yych <= 'E') goto yy341;
+ if(yych <= 'T') goto yy137;
+ goto yy342;
+ }
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy364;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'e') goto yy365;
+ goto yy146;
+ } else {
+ if(yych <= 'u') goto yy366;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy347:
+ YYDEBUG(347, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'I') goto yy338;
+ if(yych <= 'N') goto yy137;
+ goto yy339;
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'i') goto yy362;
+ goto yy146;
+ } else {
+ if(yych <= 'o') goto yy363;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy348:
+ YYDEBUG(348, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy337;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy361;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy349:
+ YYDEBUG(349, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy336;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy360;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy350:
+ YYDEBUG(350, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy335;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy359;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy351:
+ YYDEBUG(351, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'N'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'O') goto yy333;
+ if(yych <= 'Q') goto yy137;
+ goto yy334;
+ }
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'o') goto yy357;
+ goto yy146;
+ } else {
+ if(yych <= 'r') goto yy358;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy352:
+ YYDEBUG(352, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy332;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy356;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy353:
+ YYDEBUG(353, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'G'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'H') goto yy330;
+ if(yych <= 'T') goto yy137;
+ goto yy331;
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych >= 'i') goto yy146;
+ goto yy354;
+ } else {
+ if(yych <= 'u') goto yy355;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy354:
+ YYDEBUG(354, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy181;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy261;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy355:
+ YYDEBUG(355, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy175;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy256;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy356:
+ YYDEBUG(356, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy187;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy267;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy357:
+ YYDEBUG(357, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy191;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy274;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy358:
+ YYDEBUG(358, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'I'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'H') goto yy3;
+ goto yy202;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'i') goto yy271;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy359:
+ YYDEBUG(359, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'd') goto yy287;
+ if(yych <= 'e') goto yy286;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy360:
+ YYDEBUG(360, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy188;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'y') goto yy268;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy361:
+ YYDEBUG(361, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy215;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy295;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy362:
+ YYDEBUG(362, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy218;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy302;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy363:
+ YYDEBUG(363, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy221;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy298;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy364:
+ YYDEBUG(364, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'S') goto yy3;
+ goto yy231;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 't') goto yy314;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy365:
+ YYDEBUG(365, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'C'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'B') goto yy3;
+ goto yy228;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'c') goto yy311;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy366:
+ YYDEBUG(366, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy236;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy308;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy367:
+ YYDEBUG(367, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'G'){
if(yych <= ')'){
@@ -4706,7 +6149,7 @@ yy321:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy328;
+ goto yy374;
}
} else {
if(yych <= 'f'){
@@ -4714,13 +6157,13 @@ yy321:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'g') goto yy328;
+ if(yych <= 'g') goto yy374;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy322:
- YYDEBUG(322, *YYCURSOR);
+yy368:
+ YYDEBUG(368, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -4729,7 +6172,7 @@ yy322:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy323;
+ goto yy369;
}
} else {
if(yych <= 'd'){
@@ -4737,13 +6180,13 @@ yy322:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy323;
+ if(yych <= 'e') goto yy369;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy323:
- YYDEBUG(323, *YYCURSOR);
+yy369:
+ YYDEBUG(369, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= ')'){
@@ -4752,7 +6195,7 @@ yy323:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy324;
+ goto yy370;
}
} else {
if(yych <= 'u'){
@@ -4760,43 +6203,77 @@ yy323:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'v') goto yy324;
+ if(yych <= 'v') goto yy370;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy324:
- YYDEBUG(324, *YYCURSOR);
- yyaccept = 1;
+yy370:
+ YYDEBUG(370, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy371;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy371;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy371:
+ YYDEBUG(371, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy137;
+ goto yy372;
+ }
+ } else {
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'n') goto yy372;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy372:
+ YYDEBUG(372, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'S'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy325;
- if(yych != 'e') goto yy3;
- goto yy325;
+ if(yych <= 'T') goto yy373;
+ if(yych != 't') goto yy3;
+ goto yy373;
}
-yy325:
- YYDEBUG(325, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy326;
- if(yych != 'n') goto yy53;
- goto yy326;
-yy326:
- YYDEBUG(326, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy327;
- if(yych != 't') goto yy53;
- goto yy327;
-yy327:
- YYDEBUG(327, *YYCURSOR);
+yy373:
+ YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
+ if(yych == 'H') goto yy163;
+ if(yych == 'h') goto yy163;
goto yy53;
-yy328:
- YYDEBUG(328, *YYCURSOR);
+yy374:
+ YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= ')'){
@@ -4805,7 +6282,7 @@ yy328:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'G') goto yy135;
- goto yy329;
+ goto yy375;
}
} else {
if(yych <= 'g'){
@@ -4813,205 +6290,708 @@ yy328:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'h') goto yy329;
+ if(yych <= 'h') goto yy375;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy329:
- YYDEBUG(329, *YYCURSOR);
- yyaccept = 1;
+yy375:
+ YYDEBUG(375, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy376:
+ YYDEBUG(376, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': goto yy163;
+ case ')': goto yy132;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy137;
+ case 'D': case 'd': goto yy377;
+ case 'F': case 'f': goto yy378;
+ case 'H': case 'h': goto yy379;
+ case 'M': case 'm': goto yy380;
+ case 'S': case 's': goto yy381;
+ case 'T': case 't': goto yy382;
+ case 'W': case 'w': goto yy383;
+ case 'Y': case 'y': goto yy384;
+ default: goto yy3;
+ }
+yy377:
+ YYDEBUG(377, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'T') goto yy159;
- if(yych == 't') goto yy159;
+ if(yych <= 'A') goto yy213;
+ if(yych == 'a') goto yy213;
goto yy3;
}
-yy330:
- YYDEBUG(330, *YYCURSOR);
- yyaccept = 1;
+yy378:
+ YYDEBUG(378, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Q'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'O') goto yy190;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'R') goto yy189;
+ if(yych <= 'n') goto yy3;
+ goto yy190;
+ } else {
+ if(yych == 'r') goto yy189;
+ goto yy3;
+ }
+ }
+yy379:
+ YYDEBUG(379, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'O') goto yy214;
+ if(yych == 'o') goto yy214;
+ goto yy3;
+ }
+yy380:
+ YYDEBUG(380, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'I') goto yy217;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'i'){
+ if(yych <= 'O') goto yy216;
+ if(yych <= 'h') goto yy3;
+ goto yy217;
+ } else {
+ if(yych == 'o') goto yy216;
+ goto yy3;
+ }
+ }
+yy381:
+ YYDEBUG(381, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'A') goto yy226;
+ if(yych == 'E') goto yy227;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'U') goto yy225;
+ if(yych == 'a') goto yy226;
+ goto yy3;
+ } else {
+ if(yych <= 'e') goto yy227;
+ if(yych == 'u') goto yy225;
+ goto yy3;
+ }
+ }
+yy382:
+ YYDEBUG(382, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'H') goto yy173;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'U') goto yy174;
+ if(yych <= 'g') goto yy3;
+ goto yy173;
+ } else {
+ if(yych == 'u') goto yy174;
+ goto yy3;
+ }
+ }
+yy383:
+ YYDEBUG(383, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy205;
+ if(yych == 'e') goto yy205;
+ goto yy3;
+ }
+yy384:
+ YYDEBUG(384, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy186;
+ if(yych == 'e') goto yy186;
+ goto yy3;
+ }
+yy385:
+ YYDEBUG(385, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'G'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy328;
+ goto yy374;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'g') goto yy337;
- if(yych <= 'z') goto yy137;
+ if(yych == 'g') goto yy392;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy331:
- YYDEBUG(331, *YYCURSOR);
- yyaccept = 1;
+yy386:
+ YYDEBUG(386, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy323;
+ goto yy369;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy332;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy387;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy332:
- YYDEBUG(332, *YYCURSOR);
- yyaccept = 1;
+yy387:
+ YYDEBUG(387, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy324;
+ goto yy370;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'v') goto yy333;
- if(yych <= 'z') goto yy142;
+ if(yych == 'v') goto yy388;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy333:
- YYDEBUG(333, *YYCURSOR);
- yyaccept = 1;
+yy388:
+ YYDEBUG(388, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy325;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy371;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy334;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy389;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy334:
- YYDEBUG(334, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy326;
- if(yych != 'n') goto yy144;
- goto yy335;
-yy335:
- YYDEBUG(335, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy327;
- if(yych != 't') goto yy144;
- goto yy336;
-yy336:
- YYDEBUG(336, *YYCURSOR);
+yy389:
+ YYDEBUG(389, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy137;
+ goto yy372;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy390;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy390:
+ YYDEBUG(390, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'S') goto yy3;
+ goto yy373;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 't') goto yy391;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy391:
+ YYDEBUG(391, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'H') goto yy159;
+ if(yych == 'H') goto yy163;
goto yy53;
}
} else {
if(yych <= 'g'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy337:
- YYDEBUG(337, *YYCURSOR);
- yyaccept = 1;
+yy392:
+ YYDEBUG(392, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'G') goto yy135;
- goto yy329;
+ goto yy375;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy338;
- if(yych <= 'z') goto yy142;
+ if(yych == 'h') goto yy393;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy338:
- YYDEBUG(338, *YYCURSOR);
- yyaccept = 1;
+yy393:
+ YYDEBUG(393, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy339:
- YYDEBUG(339, *YYCURSOR);
+yy394:
+ YYDEBUG(394, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': goto yy163;
+ case ')': goto yy132;
+ case '/': case '_': goto yy140;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': goto yy137;
+ case 'D': goto yy377;
+ case 'F': goto yy378;
+ case 'H': goto yy379;
+ case 'M': goto yy380;
+ case 'S': goto yy381;
+ case 'T': goto yy382;
+ case 'W': goto yy383;
+ case 'Y': goto yy384;
+ case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy146;
+ case 'd': goto yy395;
+ case 'f': goto yy396;
+ case 'h': goto yy397;
+ case 'm': goto yy398;
+ case 's': goto yy399;
+ case 't': goto yy400;
+ case 'w': goto yy401;
+ case 'y': goto yy402;
+ default: goto yy3;
+ }
+yy395:
+ YYDEBUG(395, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy213;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy293;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy396:
+ YYDEBUG(396, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'O') goto yy190;
+ if(yych <= 'Q') goto yy3;
+ goto yy189;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'o') goto yy269;
+ goto yy147;
+ } else {
+ if(yych <= 'r') goto yy270;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy397:
+ YYDEBUG(397, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'N') goto yy3;
+ goto yy214;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy294;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy398:
+ YYDEBUG(398, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'I') goto yy217;
+ if(yych <= 'N') goto yy3;
+ goto yy216;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'i') goto yy296;
+ goto yy147;
+ } else {
+ if(yych <= 'o') goto yy297;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy399:
+ YYDEBUG(399, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'D'){
+ if(yych <= 'A') goto yy226;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy227;
+ if(yych <= 'T') goto yy3;
+ goto yy225;
+ }
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy305;
+ goto yy147;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'e') goto yy306;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy307;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy400:
+ YYDEBUG(400, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'H') goto yy173;
+ if(yych <= 'T') goto yy3;
+ goto yy174;
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'h') goto yy254;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy255;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy401:
+ YYDEBUG(401, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy205;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy285;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy402:
+ YYDEBUG(402, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy186;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy266;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy403:
+ YYDEBUG(403, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
@@ -5020,7 +7000,7 @@ yy339:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy340;
+ goto yy404;
}
} else {
if(yych <= 'c'){
@@ -5028,36 +7008,36 @@ yy339:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'd') goto yy340;
+ if(yych <= 'd') goto yy404;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy340:
- YYDEBUG(340, *YYCURSOR);
+yy404:
+ YYDEBUG(404, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= 'N'){
if(yych <= ')'){
if(yych >= ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'M') goto yy135;
- goto yy342;
+ goto yy406;
}
} else {
if(yych <= 'm'){
if(yych <= 'Z') goto yy135;
if(yych >= 'a') goto yy135;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= 'n') goto yy342;
+ if(yych <= 'n') goto yy406;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy341:
- YYDEBUG(341, *YYCURSOR);
+yy405:
+ YYDEBUG(405, *YYCURSOR);
{
const timelib_relunit* relunit;
@@ -5073,158 +7053,230 @@ yy341:
TIMELIB_DEINIT;
return TIMELIB_WEEKDAY;
}
-yy342:
- YYDEBUG(342, *YYCURSOR);
- yyaccept = 1;
+yy406:
+ YYDEBUG(406, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy407;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy407;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy407:
+ YYDEBUG(407, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy137;
+ goto yy408;
+ }
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 's') goto yy408;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy408:
+ YYDEBUG(408, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'C'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy343;
- if(yych != 'e') goto yy3;
- goto yy343;
+ if(yych <= 'D') goto yy409;
+ if(yych != 'd') goto yy3;
+ goto yy409;
}
-yy343:
- YYDEBUG(343, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'S') goto yy344;
- if(yych != 's') goto yy53;
- goto yy344;
-yy344:
- YYDEBUG(344, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy345;
- if(yych != 'd') goto yy53;
- goto yy345;
-yy345:
- YYDEBUG(345, *YYCURSOR);
+yy409:
+ YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy346;
+ if(yych == 'A') goto yy410;
if(yych != 'a') goto yy53;
- goto yy346;
-yy346:
- YYDEBUG(346, *YYCURSOR);
+ goto yy410;
+yy410:
+ YYDEBUG(410, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
+ if(yych == 'Y') goto yy411;
if(yych != 'y') goto yy53;
- goto yy347;
-yy347:
- YYDEBUG(347, *YYCURSOR);
+ goto yy411;
+yy411:
+ YYDEBUG(411, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy341;
-yy348:
- YYDEBUG(348, *YYCURSOR);
- yyaccept = 1;
+ goto yy405;
+yy412:
+ YYDEBUG(412, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy340;
+ goto yy404;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy349;
- if(yych <= 'z') goto yy137;
+ if(yych == 'd') goto yy413;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy349:
- YYDEBUG(349, *YYCURSOR);
+yy413:
+ YYDEBUG(413, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'M') goto yy135;
- goto yy342;
+ goto yy406;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'n') goto yy350;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'n') goto yy414;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy350:
- YYDEBUG(350, *YYCURSOR);
- yyaccept = 1;
+yy414:
+ YYDEBUG(414, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy343;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy407;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy351;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy415;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy351:
- YYDEBUG(351, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'S') goto yy344;
- if(yych != 's') goto yy144;
- goto yy352;
-yy352:
- YYDEBUG(352, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy345;
- if(yych != 'd') goto yy144;
- goto yy353;
-yy353:
- YYDEBUG(353, *YYCURSOR);
+yy415:
+ YYDEBUG(415, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'S'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy137;
+ goto yy408;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 's') goto yy416;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy416:
+ YYDEBUG(416, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ goto yy409;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy417;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy417:
+ YYDEBUG(417, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy346;
- if(yych != 'a') goto yy144;
- goto yy354;
-yy354:
- YYDEBUG(354, *YYCURSOR);
+ if(yych == 'A') goto yy410;
+ if(yych != 'a') goto yy148;
+ goto yy418;
+yy418:
+ YYDEBUG(418, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych != 'y') goto yy144;
- goto yy355;
-yy355:
- YYDEBUG(355, *YYCURSOR);
+ if(yych == 'Y') goto yy411;
+ if(yych != 'y') goto yy148;
+ goto yy419;
+yy419:
+ YYDEBUG(419, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy341;
+ if(yych == '/') goto yy140;
+ goto yy405;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy341;
- if(yych <= 'z') goto yy143;
- goto yy341;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy405;
+ if(yych <= 'z') goto yy147;
+ goto yy405;
}
-yy356:
- YYDEBUG(356, *YYCURSOR);
+yy420:
+ YYDEBUG(420, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'C'){
if(yych <= ')'){
@@ -5233,7 +7285,7 @@ yy356:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy134;
- goto yy357;
+ goto yy421;
}
} else {
if(yych <= 'b'){
@@ -5241,98 +7293,104 @@ yy356:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'c') goto yy357;
+ if(yych <= 'c') goto yy421;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy357:
- YYDEBUG(357, *YYCURSOR);
- yyaccept = 1;
+yy421:
+ YYDEBUG(421, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'E') goto yy366;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'E') goto yy429;
+ goto yy135;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy366;
+ if(yych <= 'e') goto yy429;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy358:
- YYDEBUG(358, *YYCURSOR);
+yy422:
+ YYDEBUG(422, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ if((YYLIMIT - YYCURSOR) < 20) YYFILL(20);
yych = *YYCURSOR;
- goto yy359;
-yy359:
- YYDEBUG(359, *YYCURSOR);
+ goto yy423;
+yy423:
+ YYDEBUG(423, *YYCURSOR);
if(yybm[0+yych] & 64) {
- goto yy358;
+ goto yy422;
}
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy362;
- if(yych <= '3') goto yy364;
- if(yych <= '9') goto yy365;
+ if(yych <= '2') goto yy425;
+ if(yych <= '3') goto yy427;
+ if(yych <= '9') goto yy428;
goto yy53;
-yy360:
- YYDEBUG(360, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x1F) goto yy3;
- if(yych == '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
-yy361:
- YYDEBUG(361, *YYCURSOR);
+yy424:
+ YYDEBUG(424, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy359;
- if(yych <= '0') goto yy440;
- if(yych <= '2') goto yy441;
- if(yych <= '3') goto yy442;
- goto yy359;
-yy362:
- YYDEBUG(362, *YYCURSOR);
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= 'm'){
+ if(yych <= '/') goto yy423;
+ if(yych <= '0') goto yy511;
+ if(yych <= '2') goto yy512;
+ if(yych <= '3') goto yy513;
+ goto yy423;
+yy425:
+ YYDEBUG(425, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy422;
+ if(yych <= '/') goto yy441;
+ goto yy493;
} else {
- if(yych <= '2') goto yy439;
- if(yych <= '9') goto yy422;
- goto yy378;
+ if(yych <= '2') goto yy510;
+ if(yych <= '9') goto yy493;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy363:
- YYDEBUG(363, *YYCURSOR);
+yy426:
+ YYDEBUG(426, *YYCURSOR);
{
DEBUG_OUTPUT("datetextual | datenoyear");
@@ -5345,215 +7403,253 @@ yy363:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-yy364:
- YYDEBUG(364, *YYCURSOR);
- yych = *++YYCURSOR;
+yy427:
+ YYDEBUG(427, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy422;
+ if(yych <= '/') goto yy441;
+ goto yy493;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy365:
- YYDEBUG(365, *YYCURSOR);
- yych = *++YYCURSOR;
+yy428:
+ YYDEBUG(428, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy370;
+ if(yych <= '/') goto yy441;
+ goto yy433;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy366:
- YYDEBUG(366, *YYCURSOR);
- yyaccept = 1;
+yy429:
+ YYDEBUG(429, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy430;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'm') goto yy430;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy430:
+ YYDEBUG(430, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy431;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'b') goto yy431;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy431:
+ YYDEBUG(431, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'L'){
+ if(yych <= 'D'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'M') goto yy367;
- if(yych != 'm') goto yy3;
- goto yy367;
+ if(yych <= 'E') goto yy432;
+ if(yych != 'e') goto yy3;
+ goto yy432;
}
-yy367:
- YYDEBUG(367, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy368;
- if(yych != 'b') goto yy53;
- goto yy368;
-yy368:
- YYDEBUG(368, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy369;
- if(yych != 'e') goto yy53;
- goto yy369;
-yy369:
- YYDEBUG(369, *YYCURSOR);
+yy432:
+ YYDEBUG(432, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy370:
- YYDEBUG(370, *YYCURSOR);
+yy433:
+ YYDEBUG(433, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy421;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy492;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy371:
- YYDEBUG(371, *YYCURSOR);
+yy434:
+ YYDEBUG(434, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '3') goto yy421;
- if(yych <= '9') goto yy418;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy492;
+ if(yych <= '9') goto yy489;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy372:
- YYDEBUG(372, *YYCURSOR);
+yy435:
+ YYDEBUG(435, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy418;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy489;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy373:
- YYDEBUG(373, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy374:
- YYDEBUG(374, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy375:
- YYDEBUG(375, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy376:
- YYDEBUG(376, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy377:
- YYDEBUG(377, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 14) YYFILL(14);
+yy436:
+ YYDEBUG(436, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy437:
+ YYDEBUG(437, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy438:
+ YYDEBUG(438, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy439:
+ YYDEBUG(439, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy440:
+ YYDEBUG(440, *YYCURSOR);
+ yyaccept = 6;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
yych = *YYCURSOR;
- goto yy378;
-yy378:
- YYDEBUG(378, *YYCURSOR);
+ goto yy441;
+yy441:
+ YYDEBUG(441, *YYCURSOR);
if(yybm[0+yych] & 128) {
- goto yy377;
+ goto yy440;
}
- if(yych <= '/') goto yy363;
- if(yych <= '1') goto yy379;
- if(yych <= '2') goto yy380;
- if(yych <= '9') goto yy381;
- goto yy363;
-yy379:
- YYDEBUG(379, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych <= '2'){
+ if(yych <= '/') goto yy426;
+ if(yych <= '1') goto yy482;
+ goto yy483;
} else {
- if(yych <= '9') goto yy417;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy484;
+ if(yych != 'T') goto yy426;
+ goto yy442;
}
-yy380:
- YYDEBUG(380, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
+yy442:
+ YYDEBUG(442, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '1') goto yy443;
+ if(yych <= '2') goto yy444;
+ if(yych <= '9') goto yy445;
+ goto yy53;
+yy443:
+ YYDEBUG(443, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy53;
} else {
- if(yych <= '3') goto yy417;
- if(yych <= '9') goto yy382;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy445;
+ if(yych <= ':') goto yy446;
+ goto yy53;
}
-yy381:
- YYDEBUG(381, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
+yy444:
+ YYDEBUG(444, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy53;
} else {
- if(yych <= '9') goto yy382;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy445;
+ if(yych == ':') goto yy446;
+ goto yy53;
}
-yy382:
- YYDEBUG(382, *YYCURSOR);
+yy445:
+ YYDEBUG(445, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych <= '9') goto yy415;
- goto yy363;
-yy383:
- YYDEBUG(383, *YYCURSOR);
+ if(yych == '.') goto yy446;
+ if(yych != ':') goto yy53;
+ goto yy446;
+yy446:
+ YYDEBUG(446, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy384;
- if(yych <= '9') goto yy386;
+ if(yych <= '5') goto yy447;
+ if(yych <= '9') goto yy449;
goto yy53;
-yy384:
- YYDEBUG(384, *YYCURSOR);
+yy447:
+ YYDEBUG(447, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '9') goto yy386;
- if(yych <= ':') goto yy387;
- goto yy385;
+ if(yych <= '9') goto yy449;
+ if(yych <= ':') goto yy450;
+ goto yy448;
}
-yy385:
- YYDEBUG(385, *YYCURSOR);
+yy448:
+ YYDEBUG(448, *YYCURSOR);
{
int tz_not_found;
@@ -5576,353 +7672,470 @@ yy385:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-yy386:
- YYDEBUG(386, *YYCURSOR);
+yy449:
+ YYDEBUG(449, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy387;
- if(yych != ':') goto yy385;
- goto yy387;
-yy387:
- YYDEBUG(387, *YYCURSOR);
+ if(yych == '.') goto yy450;
+ if(yych != ':') goto yy448;
+ goto yy450;
+yy450:
+ YYDEBUG(450, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy388;
- if(yych <= '6') goto yy389;
- if(yych <= '9') goto yy390;
+ if(yych <= '5') goto yy451;
+ if(yych <= '6') goto yy452;
+ if(yych <= '9') goto yy453;
goto yy53;
-yy388:
- YYDEBUG(388, *YYCURSOR);
+yy451:
+ YYDEBUG(451, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy391;
- goto yy385;
-yy389:
- YYDEBUG(389, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy454;
+ goto yy448;
+yy452:
+ YYDEBUG(452, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy391;
- goto yy385;
-yy390:
- YYDEBUG(390, *YYCURSOR);
+ if(yych == '0') goto yy454;
+ goto yy448;
+yy453:
+ YYDEBUG(453, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy385;
-yy391:
- YYDEBUG(391, *YYCURSOR);
+ goto yy448;
+yy454:
+ YYDEBUG(454, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '+'){
- if(yych <= '\''){
- if(yych != ' ') goto yy385;
- goto yy392;
+ if(yych <= '*'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy448;
+ goto yy455;
} else {
- if(yych <= '(') goto yy395;
- if(yych <= '*') goto yy385;
- goto yy394;
+ if(yych <= ' ') goto yy455;
+ if(yych == '(') goto yy458;
+ goto yy448;
}
} else {
if(yych <= '@'){
- if(yych == '-') goto yy394;
- goto yy385;
+ if(yych == ',') goto yy448;
+ if(yych <= '-') goto yy457;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy396;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy397;
- goto yy385;
+ if(yych <= 'Z') goto yy459;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy460;
+ goto yy448;
}
}
-yy392:
- YYDEBUG(392, *YYCURSOR);
+yy455:
+ YYDEBUG(455, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
yych = *YYCURSOR;
- goto yy393;
-yy393:
- YYDEBUG(393, *YYCURSOR);
- if(yych <= '+'){
- if(yych <= '\''){
- if(yych == ' ') goto yy392;
+ goto yy456;
+yy456:
+ YYDEBUG(456, *YYCURSOR);
+ if(yych <= '*'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy455;
goto yy53;
} else {
- if(yych <= '(') goto yy395;
- if(yych <= '*') goto yy53;
- goto yy394;
+ if(yych <= ' ') goto yy455;
+ if(yych == '(') goto yy458;
+ goto yy53;
}
} else {
if(yych <= '@'){
- if(yych != '-') goto yy53;
- goto yy394;
+ if(yych == ',') goto yy53;
+ if(yych >= '.') goto yy53;
+ goto yy457;
} else {
- if(yych <= 'Z') goto yy396;
+ if(yych <= 'Z') goto yy459;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy397;
+ if(yych <= 'z') goto yy460;
goto yy53;
}
}
-yy394:
- YYDEBUG(394, *YYCURSOR);
+yy457:
+ YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy410;
- if(yych <= '2') goto yy411;
- if(yych <= '9') goto yy412;
+ if(yych <= '1') goto yy477;
+ if(yych <= '2') goto yy478;
+ if(yych <= '9') goto yy479;
goto yy53;
-yy395:
- YYDEBUG(395, *YYCURSOR);
+yy458:
+ YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@') goto yy53;
- if(yych <= 'Z') goto yy397;
+ if(yych <= 'Z') goto yy460;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy397;
+ if(yych <= 'z') goto yy460;
goto yy53;
-yy396:
- YYDEBUG(396, *YYCURSOR);
+yy459:
+ YYDEBUG(459, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy398;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy401;
- goto yy385;
+ if(yych <= 'Z') goto yy461;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy466;
+ goto yy448;
}
-yy397:
- YYDEBUG(397, *YYCURSOR);
+yy460:
+ YYDEBUG(460, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy398;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy398;
+ if(yych <= 'Z') goto yy461;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy461;
}
-yy398:
- YYDEBUG(398, *YYCURSOR);
+yy461:
+ YYDEBUG(461, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy399;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy399;
+ if(yych <= 'Z') goto yy462;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy462;
}
-yy399:
- YYDEBUG(399, *YYCURSOR);
+yy462:
+ YYDEBUG(462, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy400;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy400;
+ if(yych <= 'Z') goto yy463;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy463;
}
-yy400:
- YYDEBUG(400, *YYCURSOR);
+yy463:
+ YYDEBUG(463, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == ')') goto yy390;
- goto yy385;
-yy401:
- YYDEBUG(401, *YYCURSOR);
+ if(yych <= '@'){
+ if(yych == ')') goto yy453;
+ goto yy448;
+ } else {
+ if(yych <= 'Z') goto yy464;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy464;
+ }
+yy464:
+ YYDEBUG(464, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '@'){
+ if(yych == ')') goto yy453;
+ goto yy448;
+ } else {
+ if(yych <= 'Z') goto yy465;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy465;
+ }
+yy465:
+ YYDEBUG(465, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy453;
+ goto yy448;
+yy466:
+ YYDEBUG(466, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy385;
- goto yy390;
+ if(yych <= '(') goto yy448;
+ goto yy453;
} else {
- if(yych == '/') goto yy403;
- goto yy385;
+ if(yych == '/') goto yy468;
+ goto yy448;
}
} else {
if(yych <= '_'){
- if(yych <= 'Z') goto yy399;
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= 'Z') goto yy462;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy402;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy467;
}
}
-yy402:
- YYDEBUG(402, *YYCURSOR);
+yy467:
+ YYDEBUG(467, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy385;
- goto yy390;
+ if(yych <= '(') goto yy448;
+ goto yy453;
} else {
- if(yych != '/') goto yy385;
- goto yy403;
+ if(yych != '/') goto yy448;
+ goto yy468;
}
} else {
if(yych <= '_'){
- if(yych <= 'Z') goto yy400;
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= 'Z') goto yy463;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy407;
- goto yy385;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy472;
+ goto yy448;
}
}
-yy403:
- YYDEBUG(403, *YYCURSOR);
+yy468:
+ YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '@') goto yy53;
if(yych >= '[') goto yy53;
- goto yy404;
-yy404:
- YYDEBUG(404, *YYCURSOR);
+ goto yy469;
+yy469:
+ YYDEBUG(469, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '`') goto yy53;
if(yych >= '{') goto yy53;
- goto yy405;
-yy405:
- YYDEBUG(405, *YYCURSOR);
+ goto yy470;
+yy470:
+ YYDEBUG(470, *YYCURSOR);
yyaccept = 7;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy406;
-yy406:
- YYDEBUG(406, *YYCURSOR);
+ goto yy471;
+yy471:
+ YYDEBUG(471, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy403;
- goto yy385;
+ if(yych == '/') goto yy468;
+ goto yy448;
} else {
- if(yych <= '_') goto yy403;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy405;
- goto yy385;
+ if(yych <= '_') goto yy468;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy470;
+ goto yy448;
}
-yy407:
- YYDEBUG(407, *YYCURSOR);
+yy472:
+ YYDEBUG(472, *YYCURSOR);
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy448;
+ goto yy453;
+ } else {
+ if(yych == '/') goto yy468;
+ goto yy448;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy464;
+ if(yych <= '^') goto yy448;
+ goto yy468;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy473;
+ }
+ }
+yy473:
+ YYDEBUG(473, *YYCURSOR);
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy448;
+ goto yy453;
+ } else {
+ if(yych == '/') goto yy468;
+ goto yy448;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy465;
+ if(yych <= '^') goto yy448;
+ goto yy468;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy474;
+ }
+ }
+yy474:
+ YYDEBUG(474, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == ')') goto yy390;
- if(yych <= '.') goto yy385;
- goto yy403;
+ if(yych == ')') goto yy453;
+ if(yych <= '.') goto yy448;
+ goto yy468;
} else {
if(yych <= '_'){
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy408;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy475;
}
}
-yy408:
- YYDEBUG(408, *YYCURSOR);
+yy475:
+ YYDEBUG(475, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy409;
-yy409:
- YYDEBUG(409, *YYCURSOR);
+ goto yy476;
+yy476:
+ YYDEBUG(476, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy403;
+ if(yych == '/') goto yy468;
goto yy53;
} else {
- if(yych <= '_') goto yy403;
+ if(yych <= '_') goto yy468;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy408;
+ if(yych <= 'z') goto yy475;
goto yy53;
}
-yy410:
- YYDEBUG(410, *YYCURSOR);
+yy477:
+ YYDEBUG(477, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy412;
- if(yych <= ':') goto yy413;
- goto yy385;
-yy411:
- YYDEBUG(411, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy479;
+ if(yych <= ':') goto yy480;
+ goto yy448;
+yy478:
+ YYDEBUG(478, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy385;
- if(yych >= '4') goto yy414;
- goto yy412;
+ if(yych <= '/') goto yy448;
+ if(yych >= '4') goto yy481;
+ goto yy479;
} else {
- if(yych <= '9') goto yy390;
- if(yych <= ':') goto yy413;
- goto yy385;
+ if(yych <= '9') goto yy453;
+ if(yych <= ':') goto yy480;
+ goto yy448;
}
-yy412:
- YYDEBUG(412, *YYCURSOR);
+yy479:
+ YYDEBUG(479, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '5') goto yy414;
- if(yych <= '9') goto yy390;
- if(yych >= ';') goto yy385;
- goto yy413;
-yy413:
- YYDEBUG(413, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '5') goto yy481;
+ if(yych <= '9') goto yy453;
+ if(yych >= ';') goto yy448;
+ goto yy480;
+yy480:
+ YYDEBUG(480, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '5') goto yy414;
- if(yych <= '9') goto yy390;
- goto yy385;
-yy414:
- YYDEBUG(414, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '5') goto yy481;
+ if(yych <= '9') goto yy453;
+ goto yy448;
+yy481:
+ YYDEBUG(481, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy390;
- goto yy385;
-yy415:
- YYDEBUG(415, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy453;
+ goto yy448;
+yy482:
+ YYDEBUG(482, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '9') goto yy488;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy483:
+ YYDEBUG(483, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '3') goto yy488;
+ if(yych <= '9') goto yy485;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy484:
+ YYDEBUG(484, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '9') goto yy485;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy485:
+ YYDEBUG(485, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych >= ':') goto yy363;
- goto yy416;
-yy416:
- YYDEBUG(416, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy486;
+yy486:
+ YYDEBUG(486, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy363;
-yy417:
- YYDEBUG(417, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy487;
+yy487:
+ YYDEBUG(487, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy426;
+yy488:
+ YYDEBUG(488, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy418:
- YYDEBUG(418, *YYCURSOR);
+yy489:
+ YYDEBUG(489, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych >= ':') goto yy363;
- goto yy419;
-yy419:
- YYDEBUG(419, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy490;
+yy490:
+ YYDEBUG(490, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy420;
- if(yych <= '9') goto yy416;
- goto yy420;
-yy420:
- YYDEBUG(420, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy491;
+ if(yych <= '9') goto yy487;
+ goto yy491;
+yy491:
+ YYDEBUG(491, *YYCURSOR);
{
DEBUG_OUTPUT("datenoday");
@@ -5935,377 +8148,390 @@ yy420:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-yy421:
- YYDEBUG(421, *YYCURSOR);
+yy492:
+ YYDEBUG(492, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy419;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy490;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy422:
- YYDEBUG(422, *YYCURSOR);
+yy493:
+ YYDEBUG(493, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= ':'){
if(yych <= '/'){
- if(yych != '.') goto yy378;
- goto yy423;
+ if(yych != '.') goto yy441;
+ goto yy494;
} else {
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- if(yych <= '9') goto yy426;
- goto yy383;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ if(yych <= '9') goto yy497;
+ goto yy446;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy423:
- YYDEBUG(423, *YYCURSOR);
- yych = *++YYCURSOR;
+yy494:
+ YYDEBUG(494, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '2'){
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy429;
- goto yy430;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy500;
+ goto yy501;
} else {
- if(yych <= '5') goto yy431;
- if(yych <= '9') goto yy432;
- goto yy378;
+ if(yych <= '5') goto yy502;
+ if(yych <= '9') goto yy503;
+ goto yy441;
}
-yy424:
- YYDEBUG(424, *YYCURSOR);
+yy495:
+ YYDEBUG(495, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy428;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy499;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy425:
- YYDEBUG(425, *YYCURSOR);
+yy496:
+ YYDEBUG(496, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '3') goto yy428;
- if(yych <= '9') goto yy427;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy499;
+ if(yych <= '9') goto yy498;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy426:
- YYDEBUG(426, *YYCURSOR);
+yy497:
+ YYDEBUG(497, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy427;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy498;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy427:
- YYDEBUG(427, *YYCURSOR);
+yy498:
+ YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy420;
- if(yych <= '9') goto yy415;
- goto yy420;
-yy428:
- YYDEBUG(428, *YYCURSOR);
+ if(yych <= '/') goto yy491;
+ if(yych <= '9') goto yy486;
+ goto yy491;
+yy499:
+ YYDEBUG(499, *YYCURSOR);
yyaccept = 8;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy420;
+ if(yych == '.') goto yy446;
+ goto yy491;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy383;
- goto yy420;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy446;
+ goto yy491;
}
-yy429:
- YYDEBUG(429, *YYCURSOR);
+yy500:
+ YYDEBUG(500, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy438;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy509;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy430:
- YYDEBUG(430, *YYCURSOR);
+yy501:
+ YYDEBUG(501, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '3') goto yy438;
- if(yych <= '9') goto yy437;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '3') goto yy509;
+ if(yych <= '9') goto yy508;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy431:
- YYDEBUG(431, *YYCURSOR);
+yy502:
+ YYDEBUG(502, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy437;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy508;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy432:
- YYDEBUG(432, *YYCURSOR);
+yy503:
+ YYDEBUG(503, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych != '.') goto yy363;
- goto yy433;
+ if(yych != '.') goto yy426;
+ goto yy504;
} else {
- if(yych <= '9') goto yy382;
- if(yych >= ';') goto yy363;
- goto yy433;
+ if(yych <= '9') goto yy485;
+ if(yych >= ';') goto yy426;
+ goto yy504;
}
-yy433:
- YYDEBUG(433, *YYCURSOR);
+yy504:
+ YYDEBUG(504, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy434;
- if(yych <= '6') goto yy435;
- if(yych <= '9') goto yy386;
+ if(yych <= '5') goto yy505;
+ if(yych <= '6') goto yy506;
+ if(yych <= '9') goto yy449;
goto yy53;
-yy434:
- YYDEBUG(434, *YYCURSOR);
+yy505:
+ YYDEBUG(505, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '9') goto yy436;
- if(yych <= ':') goto yy387;
- goto yy385;
+ if(yych <= '9') goto yy507;
+ if(yych <= ':') goto yy450;
+ goto yy448;
}
-yy435:
- YYDEBUG(435, *YYCURSOR);
+yy506:
+ YYDEBUG(506, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '0') goto yy391;
- if(yych == ':') goto yy387;
- goto yy385;
+ if(yych <= '0') goto yy454;
+ if(yych == ':') goto yy450;
+ goto yy448;
}
-yy436:
- YYDEBUG(436, *YYCURSOR);
+yy507:
+ YYDEBUG(507, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-'){
- if(yych <= '('){
- if(yych == ' ') goto yy392;
- if(yych <= '\'') goto yy385;
- goto yy395;
+ if(yych <= ','){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy455;
+ if(yych <= 0x1F) goto yy448;
+ goto yy455;
} else {
- if(yych == '+') goto yy394;
- if(yych <= ',') goto yy385;
- goto yy394;
+ if(yych <= '('){
+ if(yych <= '\'') goto yy448;
+ goto yy458;
+ } else {
+ if(yych == '+') goto yy457;
+ goto yy448;
+ }
}
} else {
- if(yych <= '@'){
- if(yych <= '.') goto yy387;
- if(yych == ':') goto yy387;
- goto yy385;
+ if(yych <= ':'){
+ if(yych <= '-') goto yy457;
+ if(yych <= '.') goto yy450;
+ if(yych <= '9') goto yy448;
+ goto yy450;
} else {
- if(yych <= 'Z') goto yy396;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy397;
- goto yy385;
+ if(yych <= 'Z'){
+ if(yych <= '@') goto yy448;
+ goto yy459;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy460;
+ goto yy448;
+ }
}
}
-yy437:
- YYDEBUG(437, *YYCURSOR);
+yy508:
+ YYDEBUG(508, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy363;
+ if(yych == '.') goto yy450;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy387;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy450;
+ goto yy426;
}
-yy438:
- YYDEBUG(438, *YYCURSOR);
+yy509:
+ YYDEBUG(509, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy439:
- YYDEBUG(439, *YYCURSOR);
+yy510:
+ YYDEBUG(510, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= ':'){
if(yych <= '/'){
- if(yych == '.') goto yy423;
- goto yy378;
+ if(yych == '.') goto yy494;
+ goto yy441;
} else {
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- if(yych <= '9') goto yy426;
- goto yy383;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ if(yych <= '9') goto yy497;
+ goto yy446;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy440:
- YYDEBUG(440, *YYCURSOR);
- yych = *++YYCURSOR;
+yy511:
+ YYDEBUG(511, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- if(yych <= '0') goto yy422;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ if(yych <= '0') goto yy493;
+ goto yy514;
} else {
- if(yych <= '2') goto yy450;
- if(yych <= '9') goto yy443;
- goto yy378;
+ if(yych <= '2') goto yy521;
+ if(yych <= '9') goto yy514;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy441:
- YYDEBUG(441, *YYCURSOR);
- yych = *++YYCURSOR;
+yy512:
+ YYDEBUG(512, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ goto yy514;
} else {
- if(yych <= '2') goto yy450;
- if(yych <= '9') goto yy443;
- goto yy378;
+ if(yych <= '2') goto yy521;
+ if(yych <= '9') goto yy514;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy442:
- YYDEBUG(442, *YYCURSOR);
- yych = *++YYCURSOR;
+yy513:
+ YYDEBUG(513, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ goto yy514;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy443:
- YYDEBUG(443, *YYCURSOR);
+yy514:
+ YYDEBUG(514, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
if(yych <= '.'){
- if(yych <= ',') goto yy378;
- if(yych >= '.') goto yy423;
- goto yy444;
+ if(yych <= ',') goto yy441;
+ if(yych >= '.') goto yy494;
+ goto yy515;
} else {
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- goto yy426;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ goto yy497;
}
} else {
if(yych <= 'q'){
- if(yych <= ':') goto yy383;
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych <= ':') goto yy446;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy444:
- YYDEBUG(444, *YYCURSOR);
+yy515:
+ YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy445;
-yy445:
- YYDEBUG(445, *YYCURSOR);
+ goto yy516;
+yy516:
+ YYDEBUG(516, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy446;
- if(yych <= '9') goto yy447;
- goto yy446;
-yy446:
- YYDEBUG(446, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy517;
+ if(yych <= '9') goto yy518;
+ goto yy517;
+yy517:
+ YYDEBUG(517, *YYCURSOR);
{
DEBUG_OUTPUT("pgtextshort");
@@ -6318,185 +8544,228 @@ yy446:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-yy447:
- YYDEBUG(447, *YYCURSOR);
+yy518:
+ YYDEBUG(518, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy446;
- if(yych >= ':') goto yy446;
- goto yy448;
-yy448:
- YYDEBUG(448, *YYCURSOR);
+ if(yych <= '/') goto yy517;
+ if(yych >= ':') goto yy517;
+ goto yy519;
+yy519:
+ YYDEBUG(519, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy446;
- if(yych >= ':') goto yy446;
- goto yy449;
-yy449:
- YYDEBUG(449, *YYCURSOR);
+ if(yych <= '/') goto yy517;
+ if(yych >= ':') goto yy517;
+ goto yy520;
+yy520:
+ YYDEBUG(520, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy446;
-yy450:
- YYDEBUG(450, *YYCURSOR);
+ goto yy517;
+yy521:
+ YYDEBUG(521, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
if(yych <= '.'){
- if(yych <= ',') goto yy378;
- if(yych <= '-') goto yy444;
- goto yy423;
+ if(yych <= ',') goto yy441;
+ if(yych <= '-') goto yy515;
+ goto yy494;
} else {
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- goto yy426;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ goto yy497;
}
} else {
if(yych <= 'q'){
- if(yych <= ':') goto yy383;
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych <= ':') goto yy446;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy451:
- YYDEBUG(451, *YYCURSOR);
- yyaccept = 1;
+yy522:
+ YYDEBUG(522, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'C'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy134;
- goto yy357;
+ goto yy421;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'c') goto yy452;
- if(yych <= 'z') goto yy137;
+ if(yych == 'c') goto yy523;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy452:
- YYDEBUG(452, *YYCURSOR);
- yyaccept = 1;
+yy523:
+ YYDEBUG(523, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy366;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy429;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy453;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy524;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy453:
- YYDEBUG(453, *YYCURSOR);
- yyaccept = 1;
+yy524:
+ YYDEBUG(524, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'L') goto yy3;
- goto yy367;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy430;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'm') goto yy454;
- if(yych <= 'z') goto yy143;
+ if(yych == 'm') goto yy525;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy454:
- YYDEBUG(454, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy368;
- if(yych != 'b') goto yy144;
- goto yy455;
-yy455:
- YYDEBUG(455, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy369;
- if(yych != 'e') goto yy144;
- goto yy456;
-yy456:
- YYDEBUG(456, *YYCURSOR);
+yy525:
+ YYDEBUG(525, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy431;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy526;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy526:
+ YYDEBUG(526, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy432;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy527;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy527:
+ YYDEBUG(527, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy457:
- YYDEBUG(457, *YYCURSOR);
+yy528:
+ YYDEBUG(528, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy359;
+ if(yych == '/') goto yy140;
+ goto yy423;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy359;
- if(yych <= 'z') goto yy143;
- goto yy359;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy423;
+ if(yych <= 'z') goto yy147;
+ goto yy423;
}
-yy458:
- YYDEBUG(458, *YYCURSOR);
+yy529:
+ YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6505,7 +8774,7 @@ yy458:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy459;
+ goto yy530;
}
} else {
if(yych <= 's'){
@@ -6513,183 +8782,257 @@ yy458:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 't') goto yy459;
+ if(yych <= 't') goto yy530;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy459:
- YYDEBUG(459, *YYCURSOR);
- yyaccept = 1;
+yy530:
+ YYDEBUG(530, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'O') goto yy135;
- goto yy460;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'O') goto yy135;
+ goto yy531;
+ }
} else {
if(yych <= 'n'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy460;
+ if(yych <= 'o') goto yy531;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy460:
- YYDEBUG(460, *YYCURSOR);
- yyaccept = 1;
+yy531:
+ YYDEBUG(531, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy136;
+ goto yy532;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'b') goto yy532;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy532:
+ YYDEBUG(532, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy533;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy533;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy533:
+ YYDEBUG(533, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'A'){
+ if(yych <= 'Q'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'B') goto yy461;
- if(yych != 'b') goto yy3;
- goto yy461;
+ if(yych <= 'R') goto yy422;
+ if(yych == 'r') goto yy422;
+ goto yy3;
}
-yy461:
- YYDEBUG(461, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy462;
- if(yych != 'e') goto yy53;
- goto yy462;
-yy462:
- YYDEBUG(462, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
- goto yy53;
-yy463:
- YYDEBUG(463, *YYCURSOR);
- yyaccept = 1;
+yy534:
+ YYDEBUG(534, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy459;
+ goto yy530;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy464;
- if(yych <= 'z') goto yy137;
+ if(yych == 't') goto yy535;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy464:
- YYDEBUG(464, *YYCURSOR);
- yyaccept = 1;
+yy535:
+ YYDEBUG(535, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'O'){
- if(yych <= 'N') goto yy135;
- goto yy460;
+ if(yych <= '^'){
+ if(yych <= 'N'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'O') goto yy531;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'n'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'o') goto yy465;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'o') goto yy536;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy465:
- YYDEBUG(465, *YYCURSOR);
- yyaccept = 1;
+yy536:
+ YYDEBUG(536, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'A') goto yy3;
- goto yy461;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy136;
+ goto yy532;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'b') goto yy466;
- if(yych <= 'z') goto yy143;
+ if(yych == 'b') goto yy537;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy466:
- YYDEBUG(466, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy462;
- if(yych != 'e') goto yy144;
- goto yy467;
-yy467:
- YYDEBUG(467, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy537:
+ YYDEBUG(537, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'R') goto yy358;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy533;
}
} else {
- if(yych <= 'q'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'e') goto yy538;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy468:
- YYDEBUG(468, *YYCURSOR);
+yy538:
+ YYDEBUG(538, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy422;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy539:
+ YYDEBUG(539, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= 'B'){
@@ -6698,12 +9041,12 @@ yy468:
goto yy134;
} else {
if(yych <= 'O'){
- if(yych <= 'C') goto yy483;
+ if(yych <= 'C') goto yy555;
goto yy134;
} else {
- if(yych <= 'P') goto yy482;
+ if(yych <= 'P') goto yy554;
if(yych <= 'U') goto yy134;
- goto yy484;
+ goto yy556;
}
}
} else {
@@ -6712,22 +9055,22 @@ yy468:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych == 'c') goto yy483;
+ if(yych == 'c') goto yy555;
goto yy134;
}
} else {
if(yych <= 'u'){
- if(yych <= 'p') goto yy482;
+ if(yych <= 'p') goto yy554;
goto yy134;
} else {
- if(yych <= 'v') goto yy484;
+ if(yych <= 'v') goto yy556;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
}
-yy469:
- YYDEBUG(469, *YYCURSOR);
+yy540:
+ YYDEBUG(540, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6736,7 +9079,7 @@ yy469:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy477;
+ goto yy549;
}
} else {
if(yych <= 's'){
@@ -6744,13 +9087,13 @@ yy469:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 't') goto yy477;
+ if(yych <= 't') goto yy549;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy470:
- YYDEBUG(470, *YYCURSOR);
+yy541:
+ YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'X'){
if(yych <= ')'){
@@ -6759,7 +9102,7 @@ yy470:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy475;
+ goto yy547;
}
} else {
if(yych <= 'w'){
@@ -6767,13 +9110,13 @@ yy470:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'x') goto yy475;
+ if(yych <= 'x') goto yy547;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy471:
- YYDEBUG(471, *YYCURSOR);
+yy542:
+ YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -6782,7 +9125,7 @@ yy471:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy472;
+ goto yy543;
}
} else {
if(yych <= 'm'){
@@ -6790,54 +9133,81 @@ yy471:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy472;
+ if(yych <= 'n') goto yy543;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy472:
- YYDEBUG(472, *YYCURSOR);
+yy543:
+ YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy473;
+ goto yy544;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy473;
+ if(yych <= 'd') goto yy544;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy473:
- YYDEBUG(473, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy544:
+ YYDEBUG(544, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy545;
} else {
- if(yych <= 'A') goto yy474;
- if(yych != 'a') goto yy3;
- goto yy474;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy545;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy474:
- YYDEBUG(474, *YYCURSOR);
+yy545:
+ YYDEBUG(545, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy475:
- YYDEBUG(475, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy546:
+ YYDEBUG(546, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy132;
+ goto yy405;
+yy547:
+ YYDEBUG(547, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6846,7 +9216,7 @@ yy475:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy476;
+ goto yy548;
}
} else {
if(yych <= 's'){
@@ -6854,108 +9224,166 @@ yy475:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy476;
+ if(yych <= 't') goto yy548;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy476:
- YYDEBUG(476, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy548:
+ YYDEBUG(548, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy477:
- YYDEBUG(477, *YYCURSOR);
+yy549:
+ YYDEBUG(549, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'T') goto yy135;
- goto yy478;
+ goto yy550;
}
} else {
if(yych <= 't'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'u') goto yy478;
+ if(yych <= 'u') goto yy550;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy478:
- YYDEBUG(478, *YYCURSOR);
- yyaccept = 1;
+yy550:
+ YYDEBUG(550, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy551;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'r') goto yy551;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy551:
+ YYDEBUG(551, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy552;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy552;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy552:
+ YYDEBUG(552, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Q'){
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'R') goto yy479;
- if(yych != 'r') goto yy3;
- goto yy479;
+ if(yych <= 'A') goto yy553;
+ if(yych != 'a') goto yy3;
+ goto yy553;
}
-yy479:
- YYDEBUG(479, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy480;
- if(yych != 'd') goto yy53;
- goto yy480;
-yy480:
- YYDEBUG(480, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy481;
- if(yych != 'a') goto yy53;
- goto yy481;
-yy481:
- YYDEBUG(481, *YYCURSOR);
+yy553:
+ YYDEBUG(553, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
goto yy53;
-yy482:
- YYDEBUG(482, *YYCURSOR);
- yyaccept = 1;
+yy554:
+ YYDEBUG(554, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'T') goto yy490;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'T') goto yy563;
+ goto yy135;
+ }
} else {
if(yych <= 's'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy490;
+ if(yych <= 't') goto yy563;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy483:
- YYDEBUG(483, *YYCURSOR);
+yy555:
+ YYDEBUG(555, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -6964,7 +9392,7 @@ yy483:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy488;
+ goto yy560;
}
} else {
if(yych <= 'n'){
@@ -6972,13 +9400,13 @@ yy483:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy488;
+ if(yych <= 'o') goto yy560;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy484:
- YYDEBUG(484, *YYCURSOR);
+yy556:
+ YYDEBUG(556, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -6987,7 +9415,7 @@ yy484:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy135;
- goto yy485;
+ goto yy557;
}
} else {
if(yych <= 'd'){
@@ -6995,104 +9423,270 @@ yy484:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy485;
+ if(yych <= 'e') goto yy557;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy485:
- YYDEBUG(485, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'M'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy557:
+ YYDEBUG(557, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy558;
+ }
} else {
- if(yych <= 'N') goto yy486;
- if(yych != 'n') goto yy3;
- goto yy486;
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'n') goto yy558;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy486:
- YYDEBUG(486, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy487;
- if(yych != 't') goto yy53;
- goto yy487;
-yy487:
- YYDEBUG(487, *YYCURSOR);
+yy558:
+ YYDEBUG(558, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy488:
- YYDEBUG(488, *YYCURSOR);
- yyaccept = 1;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy559;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy559;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy559:
+ YYDEBUG(559, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'M'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'N') goto yy489;
- if(yych != 'n') goto yy3;
- goto yy489;
+ if(yych <= 'H') goto yy163;
+ if(yych == 'h') goto yy163;
+ goto yy3;
}
-yy489:
- YYDEBUG(489, *YYCURSOR);
+yy560:
+ YYDEBUG(560, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy159;
- if(yych == 'd') goto yy159;
- goto yy53;
-yy490:
- YYDEBUG(490, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '.'){
+ if(yych <= 'N'){
if(yych <= ')'){
- if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ if(yych <= '(') goto yy3;
+ goto yy132;
} else {
- if(yych == '-') goto yy361;
- goto yy359;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy561;
}
} else {
- if(yych <= 'D'){
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
} else {
- if(yych <= 'E') goto yy491;
- if(yych != 'e') goto yy3;
- goto yy491;
+ if(yych <= 'n') goto yy561;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
}
}
-yy491:
- YYDEBUG(491, *YYCURSOR);
+yy561:
+ YYDEBUG(561, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy492;
- if(yych != 'm') goto yy53;
- goto yy492;
-yy492:
- YYDEBUG(492, *YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy562;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy562;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy562:
+ YYDEBUG(562, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy164;
+ if(yych <= 0x1F) goto yy3;
+ goto yy164;
+ } else {
+ if(yych == ')') goto yy132;
+ if(yych <= 'C') goto yy3;
+ goto yy164;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy164;
+ if(yych <= 'G') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy164;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy164;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy164;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy164;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy164;
+ if(yych <= 'r') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy164;
+ } else {
+ if(yych == 'y') goto yy164;
+ goto yy3;
+ }
+ }
+ }
+ }
+yy563:
+ YYDEBUG(563, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 'Z'){
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'E') goto yy136;
+ goto yy564;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy564;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+ }
+yy564:
+ YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy493;
- if(yych != 'b') goto yy53;
- goto yy493;
-yy493:
- YYDEBUG(493, *YYCURSOR);
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy137;
+ goto yy565;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'm') goto yy565;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy565:
+ YYDEBUG(565, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'B') goto yy566;
+ if(yych != 'b') goto yy3;
+ goto yy566;
+ }
+yy566:
+ YYDEBUG(566, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy494;
+ if(yych == 'E') goto yy567;
if(yych != 'e') goto yy53;
- goto yy494;
-yy494:
- YYDEBUG(494, *YYCURSOR);
+ goto yy567;
+yy567:
+ YYDEBUG(567, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy495:
- YYDEBUG(495, *YYCURSOR);
- yyaccept = 1;
+yy568:
+ YYDEBUG(568, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '@'){
@@ -7100,17 +9694,17 @@ yy495:
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= 'O'){
- if(yych == 'C') goto yy483;
+ if(yych == 'C') goto yy555;
goto yy134;
} else {
- if(yych <= 'P') goto yy482;
+ if(yych <= 'P') goto yy554;
if(yych <= 'U') goto yy134;
- goto yy484;
+ goto yy556;
}
}
} else {
@@ -7118,524 +9712,717 @@ yy495:
if(yych <= '_'){
if(yych <= 'Z') goto yy134;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'b') goto yy137;
- goto yy510;
+ if(yych <= 'b') goto yy139;
+ goto yy584;
}
} else {
if(yych <= 'u'){
- if(yych == 'p') goto yy509;
- goto yy137;
+ if(yych == 'p') goto yy583;
+ goto yy139;
} else {
- if(yych <= 'v') goto yy511;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'v') goto yy585;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy496:
- YYDEBUG(496, *YYCURSOR);
- yyaccept = 1;
+yy569:
+ YYDEBUG(569, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy477;
+ goto yy549;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy504;
- if(yych <= 'z') goto yy137;
+ if(yych == 't') goto yy578;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy497:
- YYDEBUG(497, *YYCURSOR);
- yyaccept = 1;
+yy570:
+ YYDEBUG(570, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy475;
+ goto yy547;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'x') goto yy502;
- if(yych <= 'z') goto yy137;
+ if(yych == 'x') goto yy576;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy498:
- YYDEBUG(498, *YYCURSOR);
- yyaccept = 1;
+yy571:
+ YYDEBUG(571, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy472;
+ goto yy543;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy499;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy572;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy499:
- YYDEBUG(499, *YYCURSOR);
+yy572:
+ YYDEBUG(572, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy473;
+ goto yy544;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy500;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy573;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy500:
- YYDEBUG(500, *YYCURSOR);
- yyaccept = 1;
+yy573:
+ YYDEBUG(573, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy474;
+ goto yy545;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy574;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy574:
+ YYDEBUG(574, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy501;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy501:
- YYDEBUG(501, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy502:
- YYDEBUG(502, *YYCURSOR);
- yyaccept = 1;
+yy575:
+ YYDEBUG(575, *YYCURSOR);
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy405;
+ goto yy140;
+ } else {
+ if(yych <= '_'){
+ if(yych <= '^') goto yy405;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy405;
+ if(yych <= 'z') goto yy147;
+ goto yy405;
+ }
+ }
+yy576:
+ YYDEBUG(576, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy476;
+ goto yy548;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy503;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy577;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy503:
- YYDEBUG(503, *YYCURSOR);
- yyaccept = 1;
+yy577:
+ YYDEBUG(577, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy504:
- YYDEBUG(504, *YYCURSOR);
+yy578:
+ YYDEBUG(578, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'T') goto yy135;
- goto yy478;
+ goto yy550;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'u') goto yy505;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'u') goto yy579;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy505:
- YYDEBUG(505, *YYCURSOR);
- yyaccept = 1;
+yy579:
+ YYDEBUG(579, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'Q') goto yy3;
- goto yy479;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy551;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy506;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy580;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy506:
- YYDEBUG(506, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy480;
- if(yych != 'd') goto yy144;
- goto yy507;
-yy507:
- YYDEBUG(507, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy481;
- if(yych != 'a') goto yy144;
- goto yy508;
-yy508:
- YYDEBUG(508, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy509:
- YYDEBUG(509, *YYCURSOR);
- yyaccept = 1;
+yy580:
+ YYDEBUG(580, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy552;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy581;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy581:
+ YYDEBUG(581, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy553;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= 'a') goto yy582;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy582:
+ YYDEBUG(582, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy419;
+ goto yy148;
+yy583:
+ YYDEBUG(583, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'T'){
- if(yych <= 'S') goto yy135;
- goto yy490;
+ if(yych <= '^'){
+ if(yych <= 'S'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'T') goto yy563;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 's'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 't') goto yy517;
- if(yych <= 'z') goto yy142;
+ if(yych <= 't') goto yy592;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy510:
- YYDEBUG(510, *YYCURSOR);
- yyaccept = 1;
+yy584:
+ YYDEBUG(584, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy488;
+ goto yy560;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy515;
- if(yych <= 'z') goto yy142;
+ if(yych == 'o') goto yy589;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy511:
- YYDEBUG(511, *YYCURSOR);
- yyaccept = 1;
+yy585:
+ YYDEBUG(585, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy135;
- goto yy485;
+ goto yy557;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy512;
- if(yych <= 'z') goto yy142;
+ if(yych == 'e') goto yy586;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy512:
- YYDEBUG(512, *YYCURSOR);
- yyaccept = 1;
+yy586:
+ YYDEBUG(586, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'M') goto yy3;
- goto yy486;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy558;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy513;
- if(yych <= 'z') goto yy143;
+ if(yych == 'n') goto yy587;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy513:
- YYDEBUG(513, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy487;
- if(yych != 't') goto yy144;
- goto yy514;
-yy514:
- YYDEBUG(514, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy587:
+ YYDEBUG(587, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy559;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 't') goto yy588;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy515:
- YYDEBUG(515, *YYCURSOR);
- yyaccept = 1;
+yy588:
+ YYDEBUG(588, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy163;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy589:
+ YYDEBUG(589, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'M') goto yy3;
- goto yy489;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy561;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy516;
- if(yych <= 'z') goto yy143;
+ if(yych == 'n') goto yy590;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy516:
- YYDEBUG(516, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy590:
+ YYDEBUG(590, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'D') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy562;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'd') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'd') goto yy591;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy517:
- YYDEBUG(517, *YYCURSOR);
- yyaccept = 1;
+yy591:
+ YYDEBUG(591, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
+ case 'T': case 'W': case 'Y': goto yy164;
+ case ')': goto yy132;
+ case '/': case '_': goto yy140;
+ case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy147;
+ case 'd': goto yy249;
+ case 'f': goto yy251;
+ case 'h': goto yy248;
+ case 'm': goto yy247;
+ case 's': goto yy246;
+ case 't': goto yy253;
+ case 'w': goto yy250;
+ case 'y': goto yy252;
+ default: goto yy3;
+ }
+yy592:
+ YYDEBUG(592, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy138;
- goto yy359;
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych == 'E') goto yy491;
- if(yych <= '^') goto yy3;
- goto yy138;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'E') goto yy564;
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ }
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy143;
+ goto yy145;
} else {
- if(yych <= 'e') goto yy518;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'e') goto yy593;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
}
-yy518:
- YYDEBUG(518, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'M') goto yy492;
- if(yych != 'm') goto yy144;
- goto yy519;
-yy519:
- YYDEBUG(519, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy493;
- if(yych != 'b') goto yy144;
- goto yy520;
-yy520:
- YYDEBUG(520, *YYCURSOR);
+yy593:
+ YYDEBUG(593, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'M'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy137;
+ goto yy565;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'm') goto yy594;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy594:
+ YYDEBUG(594, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'A') goto yy3;
+ goto yy566;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy595;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy595:
+ YYDEBUG(595, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy494;
- if(yych != 'e') goto yy144;
- goto yy521;
-yy521:
- YYDEBUG(521, *YYCURSOR);
+ if(yych == 'E') goto yy567;
+ if(yych != 'e') goto yy148;
+ goto yy596;
+yy596:
+ YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy522:
- YYDEBUG(522, *YYCURSOR);
+yy597:
+ YYDEBUG(597, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'G'){
if(yych <= ')'){
@@ -7644,7 +10431,7 @@ yy522:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy529;
+ goto yy605;
}
} else {
if(yych <= 'f'){
@@ -7652,13 +10439,13 @@ yy522:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'g') goto yy529;
+ if(yych <= 'g') goto yy605;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy523:
- YYDEBUG(523, *YYCURSOR);
+yy598:
+ YYDEBUG(598, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
@@ -7667,7 +10454,7 @@ yy523:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy134;
- goto yy527;
+ goto yy602;
}
} else {
if(yych <= 'q'){
@@ -7675,13 +10462,13 @@ yy523:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'r') goto yy527;
+ if(yych <= 'r') goto yy602;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy524:
- YYDEBUG(524, *YYCURSOR);
+yy599:
+ YYDEBUG(599, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -7690,7 +10477,7 @@ yy524:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy134;
- goto yy525;
+ goto yy600;
}
} else {
if(yych <= 'n'){
@@ -7698,25 +10485,25 @@ yy524:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'o') goto yy525;
+ if(yych <= 'o') goto yy600;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy525:
- YYDEBUG(525, *YYCURSOR);
+yy600:
+ YYDEBUG(600, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= '@'){
if(yych == ')') goto yy132;
- goto yy526;
+ goto yy601;
} else {
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy526;
+ if(yych <= '`') goto yy601;
if(yych <= 'z') goto yy135;
- goto yy526;
+ goto yy601;
}
-yy526:
- YYDEBUG(526, *YYCURSOR);
+yy601:
+ YYDEBUG(601, *YYCURSOR);
{
DEBUG_OUTPUT("ago");
@@ -7731,344 +10518,530 @@ yy526:
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-yy527:
- YYDEBUG(527, *YYCURSOR);
- yyaccept = 1;
+yy602:
+ YYDEBUG(602, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'I') goto yy135;
- goto yy528;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'I') goto yy135;
+ goto yy603;
+ }
} else {
if(yych <= 'h'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'i') goto yy528;
+ if(yych <= 'i') goto yy603;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy528:
- YYDEBUG(528, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'K'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy603:
+ YYDEBUG(603, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'L'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'K') goto yy136;
+ goto yy604;
+ }
} else {
- if(yych <= 'L') goto yy358;
- if(yych == 'l') goto yy358;
- goto yy3;
+ if(yych <= 'k'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'l') goto yy604;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy529:
- YYDEBUG(529, *YYCURSOR);
- yyaccept = 1;
+yy604:
+ YYDEBUG(604, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= '-') goto yy361;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '@'){
if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy605:
+ YYDEBUG(605, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'U') goto yy135;
- goto yy530;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'U') goto yy135;
+ goto yy606;
+ }
} else {
if(yych <= 't'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'u') goto yy530;
+ if(yych <= 'u') goto yy606;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy530:
- YYDEBUG(530, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'R'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy606:
+ YYDEBUG(606, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy607;
+ }
} else {
- if(yych <= 'S') goto yy531;
- if(yych != 's') goto yy3;
- goto yy531;
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 's') goto yy607;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy531:
- YYDEBUG(531, *YYCURSOR);
+yy607:
+ YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy358;
- if(yych == 't') goto yy358;
- goto yy53;
-yy532:
- YYDEBUG(532, *YYCURSOR);
- yyaccept = 1;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy608;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy608;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy608:
+ YYDEBUG(608, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '.'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
+ } else {
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ }
+ }
+yy609:
+ YYDEBUG(609, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'G'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy529;
+ goto yy605;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'g') goto yy538;
- if(yych <= 'z') goto yy137;
+ if(yych == 'g') goto yy616;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy533:
- YYDEBUG(533, *YYCURSOR);
- yyaccept = 1;
+yy610:
+ YYDEBUG(610, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy134;
- goto yy527;
+ goto yy602;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy536;
- if(yych <= 'z') goto yy137;
+ if(yych == 'r') goto yy613;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy534:
- YYDEBUG(534, *YYCURSOR);
- yyaccept = 1;
+yy611:
+ YYDEBUG(611, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy134;
- goto yy525;
+ goto yy600;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy535;
- if(yych <= 'z') goto yy137;
+ if(yych == 'o') goto yy612;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy535:
- YYDEBUG(535, *YYCURSOR);
+yy612:
+ YYDEBUG(612, *YYCURSOR);
yyaccept = 9;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy526;
+ if(yych <= '(') goto yy601;
goto yy132;
} else {
- if(yych == '/') goto yy138;
- goto yy526;
+ if(yych == '/') goto yy140;
+ goto yy601;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy526;
- goto yy138;
+ if(yych <= '^') goto yy601;
+ goto yy140;
} else {
- if(yych <= '`') goto yy526;
- if(yych <= 'z') goto yy142;
- goto yy526;
+ if(yych <= '`') goto yy601;
+ if(yych <= 'z') goto yy144;
+ goto yy601;
}
}
-yy536:
- YYDEBUG(536, *YYCURSOR);
- yyaccept = 1;
+yy613:
+ YYDEBUG(613, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'I'){
- if(yych <= 'H') goto yy135;
- goto yy528;
+ if(yych <= '^'){
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'I') goto yy603;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'h'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'i') goto yy537;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'i') goto yy614;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy537:
- YYDEBUG(537, *YYCURSOR);
- yyaccept = 1;
+yy614:
+ YYDEBUG(614, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'L'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'K') goto yy3;
- goto yy358;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'K') goto yy136;
+ goto yy604;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'l') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych == 'l') goto yy615;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy538:
- YYDEBUG(538, *YYCURSOR);
- yyaccept = 1;
+yy615:
+ YYDEBUG(615, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ goto yy423;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
+ }
+ } else {
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy616:
+ YYDEBUG(616, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'U'){
- if(yych <= 'T') goto yy135;
- goto yy530;
+ if(yych <= '^'){
+ if(yych <= 'T'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'U') goto yy606;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 't'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'u') goto yy539;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'u') goto yy617;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy539:
- YYDEBUG(539, *YYCURSOR);
- yyaccept = 1;
+yy617:
+ YYDEBUG(617, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'R') goto yy3;
- goto yy531;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy607;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 's') goto yy618;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy618:
+ YYDEBUG(618, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy608;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy540;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy619;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy540:
- YYDEBUG(540, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy619:
+ YYDEBUG(619, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych == 'T') goto yy358;
- goto yy53;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
}
} else {
- if(yych <= 's'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ goto yy3;
} else {
- if(yych <= 't') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
}
}
-yy541:
- YYDEBUG(541, *YYCURSOR);
+yy620:
+ YYDEBUG(620, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'B'){
if(yych <= ')'){
@@ -8077,7 +11050,7 @@ yy541:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'A') goto yy134;
- goto yy555;
+ goto yy634;
}
} else {
if(yych <= 'a'){
@@ -8085,37 +11058,37 @@ yy541:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'b') goto yy555;
+ if(yych <= 'b') goto yy634;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy542:
- YYDEBUG(542, *YYCURSOR);
+yy621:
+ YYDEBUG(621, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'F') goto yy552;
+ if(yych == 'F') goto yy631;
if(yych <= 'Q') goto yy134;
- goto yy551;
+ goto yy630;
}
} else {
if(yych <= 'f'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'e') goto yy134;
- goto yy552;
+ goto yy631;
} else {
- if(yych == 'r') goto yy551;
+ if(yych == 'r') goto yy630;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy543:
- YYDEBUG(543, *YYCURSOR);
+yy622:
+ YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= ')'){
@@ -8124,7 +11097,7 @@ yy543:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'T') goto yy134;
- goto yy548;
+ goto yy627;
}
} else {
if(yych <= 't'){
@@ -8132,13 +11105,13 @@ yy543:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'u') goto yy548;
+ if(yych <= 'u') goto yy627;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy544:
- YYDEBUG(544, *YYCURSOR);
+yy623:
+ YYDEBUG(623, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'I'){
if(yych <= ')'){
@@ -8147,7 +11120,7 @@ yy544:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'H') goto yy134;
- goto yy545;
+ goto yy624;
}
} else {
if(yych <= 'h'){
@@ -8155,54 +11128,76 @@ yy544:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'i') goto yy545;
+ if(yych <= 'i') goto yy624;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy545:
- YYDEBUG(545, *YYCURSOR);
+yy624:
+ YYDEBUG(624, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy546;
+ goto yy625;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy546;
+ if(yych <= 'd') goto yy625;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy546:
- YYDEBUG(546, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy625:
+ YYDEBUG(625, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy626;
} else {
- if(yych <= 'A') goto yy547;
- if(yych != 'a') goto yy3;
- goto yy547;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy626;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy547:
- YYDEBUG(547, *YYCURSOR);
+yy626:
+ YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy548:
- YYDEBUG(548, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy627:
+ YYDEBUG(627, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
@@ -8211,7 +11206,7 @@ yy548:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- goto yy549;
+ goto yy628;
}
} else {
if(yych <= 'q'){
@@ -8219,31 +11214,59 @@ yy548:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy549;
+ if(yych <= 'r') goto yy628;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy549:
- YYDEBUG(549, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy628:
+ YYDEBUG(628, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy629;
+ }
} else {
- if(yych <= 'T') goto yy550;
- if(yych != 't') goto yy3;
- goto yy550;
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy629;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy550:
- YYDEBUG(550, *YYCURSOR);
+yy629:
+ YYDEBUG(629, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy551:
- YYDEBUG(551, *YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy137;
+ goto yy562;
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'h') goto yy562;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy630:
+ YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
@@ -8252,7 +11275,7 @@ yy551:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy135;
- goto yy554;
+ goto yy633;
}
} else {
if(yych <= 'r'){
@@ -8260,13 +11283,13 @@ yy551:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 's') goto yy554;
+ if(yych <= 's') goto yy633;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy552:
- YYDEBUG(552, *YYCURSOR);
+yy631:
+ YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -8275,7 +11298,7 @@ yy552:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy553;
+ goto yy632;
}
} else {
if(yych <= 's'){
@@ -8283,137 +11306,200 @@ yy552:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy553;
+ if(yych <= 't') goto yy632;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy553:
- YYDEBUG(553, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy632:
+ YYDEBUG(632, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy554:
- YYDEBUG(554, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy633:
+ YYDEBUG(633, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'T') goto yy159;
- if(yych == 't') goto yy159;
- goto yy3;
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy555:
- YYDEBUG(555, *YYCURSOR);
- yyaccept = 1;
+yy634:
+ YYDEBUG(634, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'R') goto yy135;
- goto yy556;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'R') goto yy135;
+ goto yy635;
+ }
} else {
if(yych <= 'q'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy556;
+ if(yych <= 'r') goto yy635;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy556:
- YYDEBUG(556, *YYCURSOR);
- yyaccept = 1;
+yy635:
+ YYDEBUG(635, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'T') goto yy136;
+ goto yy636;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'u') goto yy636;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy636:
+ YYDEBUG(636, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy637;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy637;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy637:
+ YYDEBUG(637, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'T'){
+ if(yych <= 'Q'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'U') goto yy557;
- if(yych != 'u') goto yy3;
- goto yy557;
+ if(yych <= 'R') goto yy638;
+ if(yych != 'r') goto yy3;
+ goto yy638;
}
-yy557:
- YYDEBUG(557, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy558;
- if(yych != 'a') goto yy53;
- goto yy558;
-yy558:
- YYDEBUG(558, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy559;
- if(yych != 'r') goto yy53;
- goto yy559;
-yy559:
- YYDEBUG(559, *YYCURSOR);
+yy638:
+ YYDEBUG(638, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy358;
- if(yych == 'y') goto yy358;
+ if(yych == 'Y') goto yy422;
+ if(yych == 'y') goto yy422;
goto yy53;
-yy560:
- YYDEBUG(560, *YYCURSOR);
- yyaccept = 1;
+yy639:
+ YYDEBUG(639, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'A') goto yy134;
- goto yy555;
+ goto yy634;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'b') goto yy574;
- if(yych <= 'z') goto yy137;
+ if(yych == 'b') goto yy653;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy561:
- YYDEBUG(561, *YYCURSOR);
- yyaccept = 1;
+yy640:
+ YYDEBUG(640, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'E'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'F') goto yy552;
+ if(yych <= 'F') goto yy631;
if(yych <= 'Q') goto yy134;
- goto yy551;
+ goto yy630;
}
}
} else {
@@ -8422,414 +11508,487 @@ yy561:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'q'){
- if(yych <= 'f') goto yy571;
- goto yy137;
+ if(yych <= 'f') goto yy650;
+ goto yy139;
} else {
- if(yych <= 'r') goto yy570;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'r') goto yy649;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy562:
- YYDEBUG(562, *YYCURSOR);
- yyaccept = 1;
+yy641:
+ YYDEBUG(641, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'T') goto yy134;
- goto yy548;
+ goto yy627;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'u') goto yy567;
- if(yych <= 'z') goto yy137;
+ if(yych == 'u') goto yy646;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy563:
- YYDEBUG(563, *YYCURSOR);
- yyaccept = 1;
+yy642:
+ YYDEBUG(642, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'H') goto yy134;
- goto yy545;
+ goto yy624;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy564;
- if(yych <= 'z') goto yy137;
+ if(yych == 'i') goto yy643;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy564:
- YYDEBUG(564, *YYCURSOR);
+yy643:
+ YYDEBUG(643, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy546;
+ goto yy625;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy565;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy644;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy565:
- YYDEBUG(565, *YYCURSOR);
- yyaccept = 1;
+yy644:
+ YYDEBUG(644, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy547;
+ goto yy626;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy645;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy645:
+ YYDEBUG(645, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy566;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy566:
- YYDEBUG(566, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy567:
- YYDEBUG(567, *YYCURSOR);
- yyaccept = 1;
+yy646:
+ YYDEBUG(646, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- goto yy549;
+ goto yy628;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy568;
- if(yych <= 'z') goto yy142;
+ if(yych == 'r') goto yy647;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy568:
- YYDEBUG(568, *YYCURSOR);
- yyaccept = 1;
+yy647:
+ YYDEBUG(647, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy550;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy629;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy569;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy648;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy569:
- YYDEBUG(569, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy648:
+ YYDEBUG(648, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy137;
+ goto yy562;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'h') goto yy591;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy570:
- YYDEBUG(570, *YYCURSOR);
- yyaccept = 1;
+yy649:
+ YYDEBUG(649, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy135;
- goto yy554;
+ goto yy633;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy573;
- if(yych <= 'z') goto yy142;
+ if(yych == 's') goto yy652;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy571:
- YYDEBUG(571, *YYCURSOR);
- yyaccept = 1;
+yy650:
+ YYDEBUG(650, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy553;
+ goto yy632;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy572;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy651;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy572:
- YYDEBUG(572, *YYCURSOR);
- yyaccept = 1;
+yy651:
+ YYDEBUG(651, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy573:
- YYDEBUG(573, *YYCURSOR);
- yyaccept = 1;
+yy652:
+ YYDEBUG(652, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy574:
- YYDEBUG(574, *YYCURSOR);
- yyaccept = 1;
+yy653:
+ YYDEBUG(653, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'R'){
- if(yych <= 'Q') goto yy135;
- goto yy556;
+ if(yych <= '^'){
+ if(yych <= 'Q'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'R') goto yy635;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'q'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'r') goto yy575;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'r') goto yy654;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy575:
- YYDEBUG(575, *YYCURSOR);
- yyaccept = 1;
+yy654:
+ YYDEBUG(654, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'T') goto yy3;
- goto yy557;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'T') goto yy136;
+ goto yy636;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'u') goto yy576;
- if(yych <= 'z') goto yy143;
+ if(yych == 'u') goto yy655;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy576:
- YYDEBUG(576, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy558;
- if(yych != 'a') goto yy144;
- goto yy577;
-yy577:
- YYDEBUG(577, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy559;
- if(yych != 'r') goto yy144;
- goto yy578;
-yy578:
- YYDEBUG(578, *YYCURSOR);
+yy655:
+ YYDEBUG(655, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy637;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy656;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy656:
+ YYDEBUG(656, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy638;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy657;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy657:
+ YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'Y') goto yy358;
+ if(yych == 'Y') goto yy422;
goto yy53;
}
} else {
if(yych <= 'x'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'y') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'y') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy579:
- YYDEBUG(579, *YYCURSOR);
+yy658:
+ YYDEBUG(658, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'L') goto yy586;
+ if(yych == 'L') goto yy665;
if(yych <= 'M') goto yy134;
- goto yy585;
+ goto yy664;
}
} else {
if(yych <= 'l'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'k') goto yy134;
- goto yy586;
+ goto yy665;
} else {
- if(yych == 'n') goto yy585;
+ if(yych == 'n') goto yy664;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy580:
- YYDEBUG(580, *YYCURSOR);
+yy659:
+ YYDEBUG(659, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -8838,7 +11997,7 @@ yy580:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy581;
+ goto yy660;
}
} else {
if(yych <= 'm'){
@@ -8846,155 +12005,234 @@ yy580:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy581;
+ if(yych <= 'n') goto yy660;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy581:
- YYDEBUG(581, *YYCURSOR);
- yyaccept = 1;
+yy660:
+ YYDEBUG(660, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'U') goto yy135;
- goto yy582;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'U') goto yy135;
+ goto yy661;
+ }
} else {
if(yych <= 't'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'u') goto yy582;
+ if(yych <= 'u') goto yy661;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy582:
- YYDEBUG(582, *YYCURSOR);
- yyaccept = 1;
+yy661:
+ YYDEBUG(661, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy662;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy662;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy662:
+ YYDEBUG(662, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy663;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy663;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy663:
+ YYDEBUG(663, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+ if(yych <= 'X'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy583;
- if(yych != 'a') goto yy3;
- goto yy583;
+ if(yych <= 'Y') goto yy422;
+ if(yych == 'y') goto yy422;
+ goto yy3;
}
-yy583:
- YYDEBUG(583, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy584;
- if(yych != 'r') goto yy53;
- goto yy584;
-yy584:
- YYDEBUG(584, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy358;
- if(yych == 'y') goto yy358;
- goto yy53;
-yy585:
- YYDEBUG(585, *YYCURSOR);
- yyaccept = 1;
+yy664:
+ YYDEBUG(664, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'E') goto yy587;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'E') goto yy666;
+ goto yy135;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy587;
+ if(yych <= 'e') goto yy666;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy586:
- YYDEBUG(586, *YYCURSOR);
- yyaccept = 1;
+yy665:
+ YYDEBUG(665, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'Y') goto yy135;
- goto yy587;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'Y') goto yy135;
+ goto yy666;
+ }
} else {
if(yych <= 'x'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'y') goto yy587;
+ if(yych <= 'y') goto yy666;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy587:
- YYDEBUG(587, *YYCURSOR);
- yyaccept = 1;
+yy666:
+ YYDEBUG(666, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= ')'){
- if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
+ }
} else {
- if(yych == '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy588:
- YYDEBUG(588, *YYCURSOR);
- yyaccept = 1;
+yy667:
+ YYDEBUG(667, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'K'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'L') goto yy586;
+ if(yych <= 'L') goto yy665;
if(yych <= 'M') goto yy134;
- goto yy585;
+ goto yy664;
}
}
} else {
@@ -9003,441 +12241,507 @@ yy588:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'm'){
- if(yych <= 'l') goto yy595;
- goto yy137;
+ if(yych <= 'l') goto yy674;
+ goto yy139;
} else {
- if(yych <= 'n') goto yy594;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'n') goto yy673;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy589:
- YYDEBUG(589, *YYCURSOR);
- yyaccept = 1;
+yy668:
+ YYDEBUG(668, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy581;
+ goto yy660;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy590;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy669;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy590:
- YYDEBUG(590, *YYCURSOR);
- yyaccept = 1;
+yy669:
+ YYDEBUG(669, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'U'){
- if(yych <= 'T') goto yy135;
- goto yy582;
+ if(yych <= '^'){
+ if(yych <= 'T'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'U') goto yy661;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 't'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'u') goto yy591;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'u') goto yy670;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy591:
- YYDEBUG(591, *YYCURSOR);
- yyaccept = 1;
+yy670:
+ YYDEBUG(670, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy583;
+ goto yy662;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy671;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy671:
+ YYDEBUG(671, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy663;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy592;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy672;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy592:
- YYDEBUG(592, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy584;
- if(yych != 'r') goto yy144;
- goto yy593;
-yy593:
- YYDEBUG(593, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy672:
+ YYDEBUG(672, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'Y') goto yy358;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy422;
}
} else {
- if(yych <= 'x'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'y') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'y') goto yy528;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
}
}
-yy594:
- YYDEBUG(594, *YYCURSOR);
- yyaccept = 1;
+yy673:
+ YYDEBUG(673, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy587;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy666;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy596;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy675;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy595:
- YYDEBUG(595, *YYCURSOR);
- yyaccept = 1;
+yy674:
+ YYDEBUG(674, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'Y'){
- if(yych <= 'X') goto yy135;
- goto yy587;
+ if(yych <= '^'){
+ if(yych <= 'X'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'Y') goto yy666;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'x'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'y') goto yy596;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'y') goto yy675;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy596:
- YYDEBUG(596, *YYCURSOR);
- yyaccept = 1;
+yy675:
+ YYDEBUG(675, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- goto yy359;
+ goto yy423;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
- goto yy138;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= '_'){
- if(yych <= '9') goto yy359;
- if(yych <= '^') goto yy3;
- goto yy138;
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ if(yych <= '@') goto yy3;
+ goto yy136;
} else {
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy143;
- goto yy3;
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
}
}
-yy597:
- YYDEBUG(597, *YYCURSOR);
- yyaccept = 1;
+yy676:
+ YYDEBUG(676, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy598;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych >= 'J') goto yy134;
+ goto yy677;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy598:
- YYDEBUG(598, *YYCURSOR);
- yyaccept = 1;
+yy677:
+ YYDEBUG(677, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
- if(yych <= 0x1F) goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
goto yy3;
}
} else {
- if(yych <= 'Z'){
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy135;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
} else {
+ if(yych <= 'Z') goto yy135;
if(yych <= '`') goto yy3;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy599:
- YYDEBUG(599, *YYCURSOR);
- yyaccept = 1;
+yy678:
+ YYDEBUG(678, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy600;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych >= 'J') goto yy134;
+ goto yy679;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy600:
- YYDEBUG(600, *YYCURSOR);
- yyaccept = 1;
+yy679:
+ YYDEBUG(679, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy135;
- goto yy587;
+ goto yy135;
} else {
- if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy135;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy666;
+ goto yy135;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy135;
+ goto yy3;
+ }
}
}
-yy601:
- YYDEBUG(601, *YYCURSOR);
- yyaccept = 1;
+yy680:
+ YYDEBUG(680, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
- if(yych <= 0x1F) goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
goto yy3;
}
} else {
- if(yych <= 'Z'){
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy134;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
} else {
+ if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy602:
- YYDEBUG(602, *YYCURSOR);
- yyaccept = 1;
+yy681:
+ YYDEBUG(681, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy598;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy677;
+ goto yy134;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy603:
- YYDEBUG(603, *YYCURSOR);
+yy682:
+ YYDEBUG(682, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy684;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy684;
+yy683:
+ YYDEBUG(683, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
yych = *YYCURSOR;
- goto yy604;
-yy604:
- YYDEBUG(604, *YYCURSOR);
+ goto yy684;
+yy684:
+ YYDEBUG(684, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy603;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy683;
case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy624;
- case 'D': case 'd': goto yy608;
- case 'F': case 'f': goto yy609;
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy702;
+ case 'D': case 'd': goto yy688;
+ case 'F': case 'f': goto yy689;
case 'H': case 'h': goto yy60;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy607;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'P': case 'p': goto yy628;
- case 'S': case 's': goto yy605;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy687;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'P': case 'p': goto yy706;
+ case 'S': case 's': goto yy685;
case 'T': case 't': goto yy65;
- case 'V': goto yy621;
+ case 'V': goto yy699;
case 'W': case 'w': goto yy62;
- case 'X': goto yy622;
+ case 'X': goto yy700;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy605:
- YYDEBUG(605, *YYCURSOR);
+yy685:
+ YYDEBUG(685, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy1118;
+ if(yych <= 'E') goto yy1228;
if(yych <= 'T') goto yy53;
goto yy118;
}
@@ -9446,20 +12750,20 @@ yy605:
if(yych == 'a') goto yy119;
goto yy53;
} else {
- if(yych <= 'e') goto yy1118;
+ if(yych <= 'e') goto yy1228;
if(yych == 'u') goto yy118;
goto yy53;
}
}
-yy606:
- YYDEBUG(606, *YYCURSOR);
+yy686:
+ YYDEBUG(686, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '`'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy1118;
+ if(yych <= 'E') goto yy1228;
if(yych == 'U') goto yy118;
goto yy53;
}
@@ -9467,20 +12771,20 @@ yy606:
if(yych <= 'e'){
if(yych <= 'a') goto yy119;
if(yych <= 'd') goto yy53;
- goto yy1118;
+ goto yy1228;
} else {
if(yych <= 's') goto yy53;
- if(yych <= 't') goto yy843;
+ if(yych <= 't') goto yy929;
if(yych <= 'u') goto yy118;
goto yy53;
}
}
-yy607:
- YYDEBUG(607, *YYCURSOR);
+yy687:
+ YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= 'H'){
- if(yych == 'A') goto yy715;
+ if(yych == 'A') goto yy798;
goto yy53;
} else {
if(yych <= 'I') goto yy110;
@@ -9489,7 +12793,7 @@ yy607:
}
} else {
if(yych <= 'h'){
- if(yych == 'a') goto yy715;
+ if(yych == 'a') goto yy798;
goto yy53;
} else {
if(yych <= 'i') goto yy110;
@@ -9497,28 +12801,28 @@ yy607:
goto yy53;
}
}
-yy608:
- YYDEBUG(608, *YYCURSOR);
+yy688:
+ YYDEBUG(688, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych == 'A') goto yy106;
if(yych <= 'D') goto yy53;
- goto yy702;
+ goto yy785;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
goto yy106;
} else {
- if(yych == 'e') goto yy702;
+ if(yych == 'e') goto yy785;
goto yy53;
}
}
-yy609:
- YYDEBUG(609, *YYCURSOR);
+yy689:
+ YYDEBUG(689, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= 'N'){
- if(yych == 'E') goto yy718;
+ if(yych == 'E') goto yy801;
goto yy53;
} else {
if(yych <= 'O') goto yy83;
@@ -9527,7 +12831,7 @@ yy609:
}
} else {
if(yych <= 'n'){
- if(yych == 'e') goto yy718;
+ if(yych == 'e') goto yy801;
goto yy53;
} else {
if(yych <= 'o') goto yy83;
@@ -9535,8 +12839,8 @@ yy609:
goto yy53;
}
}
-yy610:
- YYDEBUG(610, *YYCURSOR);
+yy690:
+ YYDEBUG(690, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych == 'H') goto yy66;
@@ -9545,67 +12849,67 @@ yy610:
} else {
if(yych <= 'h'){
if(yych <= 'g') goto yy53;
- goto yy1117;
+ goto yy1227;
} else {
if(yych == 'u') goto yy67;
goto yy53;
}
}
-yy611:
- YYDEBUG(611, *YYCURSOR);
+yy691:
+ YYDEBUG(691, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy851;
+ if(yych <= '9') goto yy935;
goto yy57;
-yy612:
- YYDEBUG(612, *YYCURSOR);
+yy692:
+ YYDEBUG(692, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'c'){
- if(yych == 'O') goto yy655;
+ if(yych == 'O') goto yy736;
goto yy53;
} else {
- if(yych <= 'd') goto yy843;
- if(yych == 'o') goto yy655;
+ if(yych <= 'd') goto yy929;
+ if(yych == 'o') goto yy736;
goto yy53;
}
-yy613:
- YYDEBUG(613, *YYCURSOR);
+yy693:
+ YYDEBUG(693, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy843;
+ if(yych == 'd') goto yy929;
goto yy53;
-yy614:
- YYDEBUG(614, *YYCURSOR);
+yy694:
+ YYDEBUG(694, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
case '0':
case '1':
- case '2': goto yy783;
- case '3': goto yy785;
+ case '2': goto yy869;
+ case '3': goto yy871;
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy786;
- case 'A': case 'a': goto yy790;
- case 'D': case 'd': goto yy794;
- case 'F': case 'f': goto yy788;
- case 'J': case 'j': goto yy787;
- case 'M': case 'm': goto yy789;
- case 'N': case 'n': goto yy793;
- case 'O': case 'o': goto yy792;
- case 'S': case 's': goto yy791;
+ case '9': goto yy872;
+ case 'A': case 'a': goto yy876;
+ case 'D': case 'd': goto yy880;
+ case 'F': case 'f': goto yy874;
+ case 'J': case 'j': goto yy873;
+ case 'M': case 'm': goto yy875;
+ case 'N': case 'n': goto yy879;
+ case 'O': case 'o': goto yy878;
+ case 'S': case 's': goto yy877;
default: goto yy53;
}
-yy615:
- YYDEBUG(615, *YYCURSOR);
+yy695:
+ YYDEBUG(695, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy734;
- case '1': goto yy735;
+ case '0': goto yy819;
+ case '1': goto yy820;
case '2':
case '3':
case '4':
@@ -9613,92 +12917,56 @@ yy615:
case '6':
case '7':
case '8':
- case '9': goto yy736;
- case 'A': case 'a': goto yy740;
- case 'D': case 'd': goto yy744;
- case 'F': case 'f': goto yy738;
- case 'J': case 'j': goto yy737;
- case 'M': case 'm': goto yy739;
- case 'N': case 'n': goto yy743;
- case 'O': case 'o': goto yy742;
- case 'S': case 's': goto yy741;
- default: goto yy617;
+ case '9': goto yy821;
+ case 'A': case 'a': goto yy825;
+ case 'D': case 'd': goto yy829;
+ case 'F': case 'f': goto yy823;
+ case 'J': case 'j': goto yy822;
+ case 'M': case 'm': goto yy824;
+ case 'N': case 'n': goto yy828;
+ case 'O': case 'o': goto yy827;
+ case 'S': case 's': goto yy826;
+ default: goto yy784;
}
-yy616:
- YYDEBUG(616, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
- yych = *YYCURSOR;
- goto yy617;
-yy617:
- YYDEBUG(617, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
- case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy699;
- case 'D': case 'd': goto yy701;
- case 'F': case 'f': goto yy697;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy698;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'S': case 's': goto yy700;
- case 'V': goto yy621;
- case 'X': goto yy622;
- default: goto yy53;
- }
-yy618:
- YYDEBUG(618, *YYCURSOR);
+yy696:
+ YYDEBUG(696, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '1'){
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy693;
- goto yy694;
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy774;
+ goto yy775;
} else {
- if(yych <= '5') goto yy695;
- if(yych <= '9') goto yy696;
- goto yy617;
+ if(yych <= '5') goto yy776;
+ if(yych <= '9') goto yy777;
+ goto yy784;
}
-yy619:
- YYDEBUG(619, *YYCURSOR);
+yy697:
+ YYDEBUG(697, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
- if(yych <= '.'){
- if(yych >= ' ') goto yy657;
- goto yy620;
+ if(yych <= '/'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '.') goto yy738;
+ goto yy698;
}
} else {
- if(yych <= 'V'){
- if(yych <= 'I') goto yy692;
- if(yych >= 'V') goto yy665;
- goto yy620;
+ if(yych <= 'U'){
+ if(yych <= '9') goto yy740;
+ if(yych == 'I') goto yy773;
+ goto yy698;
} else {
- if(yych == 'X') goto yy665;
- goto yy620;
+ if(yych == 'W') goto yy698;
+ if(yych <= 'X') goto yy746;
+ goto yy698;
}
}
-yy620:
- YYDEBUG(620, *YYCURSOR);
+yy698:
+ YYDEBUG(698, *YYCURSOR);
{
DEBUG_OUTPUT("datenoyearrev");
@@ -9710,114 +12978,154 @@ yy620:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-yy621:
- YYDEBUG(621, *YYCURSOR);
+yy699:
+ YYDEBUG(699, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy690;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy771;
+ goto yy698;
+ }
}
-yy622:
- YYDEBUG(622, *YYCURSOR);
+yy700:
+ YYDEBUG(700, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy689;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy770;
+ goto yy698;
+ }
}
-yy623:
- YYDEBUG(623, *YYCURSOR);
+yy701:
+ YYDEBUG(701, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy682;
+ if(yych == 'A') goto yy763;
if(yych <= 'T') goto yy53;
- goto yy681;
+ goto yy762;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy682;
+ goto yy763;
} else {
- if(yych == 'u') goto yy681;
+ if(yych == 'u') goto yy762;
goto yy53;
}
}
-yy624:
- YYDEBUG(624, *YYCURSOR);
+yy702:
+ YYDEBUG(702, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= 'L'){
- if(yych == '.') goto yy629;
+ if(yych == '.') goto yy707;
goto yy53;
} else {
- if(yych <= 'M') goto yy630;
- if(yych == 'P') goto yy675;
+ if(yych <= 'M') goto yy708;
+ if(yych == 'P') goto yy756;
goto yy53;
}
} else {
if(yych <= 'o'){
- if(yych <= 'U') goto yy674;
- if(yych == 'm') goto yy630;
+ if(yych <= 'U') goto yy755;
+ if(yych == 'm') goto yy708;
goto yy53;
} else {
- if(yych <= 'p') goto yy675;
- if(yych == 'u') goto yy674;
+ if(yych <= 'p') goto yy756;
+ if(yych == 'u') goto yy755;
goto yy53;
}
}
-yy625:
- YYDEBUG(625, *YYCURSOR);
+yy703:
+ YYDEBUG(703, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy669;
- if(yych == 'c') goto yy669;
+ if(yych == 'C') goto yy750;
+ if(yych == 'c') goto yy750;
goto yy53;
-yy626:
- YYDEBUG(626, *YYCURSOR);
+yy704:
+ YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy655;
- if(yych == 'o') goto yy655;
+ if(yych == 'O') goto yy736;
+ if(yych == 'o') goto yy736;
goto yy53;
-yy627:
- YYDEBUG(627, *YYCURSOR);
+yy705:
+ YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy633;
- if(yych <= '9') goto yy635;
+ if(yych <= '5') goto yy712;
+ if(yych <= '9') goto yy714;
goto yy53;
-yy628:
- YYDEBUG(628, *YYCURSOR);
+yy706:
+ YYDEBUG(706, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy629;
+ goto yy707;
} else {
- if(yych <= 'M') goto yy630;
- if(yych == 'm') goto yy630;
+ if(yych <= 'M') goto yy708;
+ if(yych == 'm') goto yy708;
goto yy53;
}
-yy629:
- YYDEBUG(629, *YYCURSOR);
+yy707:
+ YYDEBUG(707, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy630;
+ if(yych == 'M') goto yy708;
if(yych != 'm') goto yy53;
- goto yy630;
-yy630:
- YYDEBUG(630, *YYCURSOR);
+ goto yy708;
+yy708:
+ YYDEBUG(708, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy709;
+ }
+yy709:
+ YYDEBUG(709, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych != ' ') goto yy53;
+ goto yy710;
+ }
+yy710:
+ YYDEBUG(710, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) == '.') goto yy632;
- goto yy631;
-yy631:
- YYDEBUG(631, *YYCURSOR);
+ goto yy711;
+yy711:
+ YYDEBUG(711, *YYCURSOR);
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
@@ -9834,24 +13142,20 @@ yy631:
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-yy632:
- YYDEBUG(632, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy631;
-yy633:
- YYDEBUG(633, *YYCURSOR);
+yy712:
+ YYDEBUG(712, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy636;
- goto yy634;
+ if(yych == '.') goto yy715;
+ goto yy713;
} else {
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy634:
- YYDEBUG(634, *YYCURSOR);
+yy713:
+ YYDEBUG(713, *YYCURSOR);
{
int tz_not_found;
@@ -9870,252 +13174,313 @@ yy634:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-yy635:
- YYDEBUG(635, *YYCURSOR);
+yy714:
+ YYDEBUG(714, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy636;
- if(yych != ':') goto yy634;
- goto yy636;
-yy636:
- YYDEBUG(636, *YYCURSOR);
+ if(yych == '.') goto yy715;
+ if(yych != ':') goto yy713;
+ goto yy715;
+yy715:
+ YYDEBUG(715, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy637;
- if(yych <= '6') goto yy638;
- if(yych <= '9') goto yy639;
+ if(yych <= '5') goto yy716;
+ if(yych <= '6') goto yy717;
+ if(yych <= '9') goto yy718;
goto yy53;
-yy637:
- YYDEBUG(637, *YYCURSOR);
+yy716:
+ YYDEBUG(716, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy643;
- goto yy634;
-yy638:
- YYDEBUG(638, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy722;
+ goto yy713;
+yy717:
+ YYDEBUG(717, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych == '0') goto yy643;
- goto yy634;
-yy639:
- YYDEBUG(639, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych == '0') goto yy722;
+ goto yy713;
+yy718:
+ YYDEBUG(718, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '.') goto yy634;
- goto yy640;
-yy640:
- YYDEBUG(640, *YYCURSOR);
+ if(yych != '.') goto yy713;
+ goto yy719;
+yy719:
+ YYDEBUG(719, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy641;
-yy641:
- YYDEBUG(641, *YYCURSOR);
+ goto yy720;
+yy720:
+ YYDEBUG(720, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy642;
-yy642:
- YYDEBUG(642, *YYCURSOR);
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy641;
- goto yy634;
-yy643:
- YYDEBUG(643, *YYCURSOR);
+ goto yy721;
+yy721:
+ YYDEBUG(721, *YYCURSOR);
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy720;
+ goto yy713;
+yy722:
+ YYDEBUG(722, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'A'){
- if(yych <= '-'){
- if(yych != ' ') goto yy634;
- goto yy644;
+ if(yych <= '@'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy713;
+ goto yy723;
} else {
- if(yych <= '.') goto yy640;
- if(yych <= '@') goto yy634;
- goto yy646;
+ if(yych <= ' ') goto yy723;
+ if(yych == '.') goto yy719;
+ goto yy713;
}
} else {
if(yych <= '`'){
- if(yych == 'P') goto yy646;
- goto yy634;
+ if(yych <= 'A') goto yy725;
+ if(yych == 'P') goto yy725;
+ goto yy713;
} else {
- if(yych <= 'a') goto yy646;
- if(yych == 'p') goto yy646;
- goto yy634;
+ if(yych <= 'a') goto yy725;
+ if(yych == 'p') goto yy725;
+ goto yy713;
}
}
-yy644:
- YYDEBUG(644, *YYCURSOR);
+yy723:
+ YYDEBUG(723, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- goto yy645;
-yy645:
- YYDEBUG(645, *YYCURSOR);
- if(yych <= 'O'){
- if(yych <= ' '){
- if(yych <= 0x1F) goto yy53;
- goto yy644;
+ goto yy724;
+yy724:
+ YYDEBUG(724, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy723;
+ goto yy53;
} else {
- if(yych != 'A') goto yy53;
- goto yy646;
+ if(yych <= ' ') goto yy723;
+ if(yych <= '@') goto yy53;
+ goto yy725;
}
} else {
- if(yych <= 'a'){
- if(yych <= 'P') goto yy646;
- if(yych <= '`') goto yy53;
- goto yy646;
+ if(yych <= '`'){
+ if(yych != 'P') goto yy53;
+ goto yy725;
} else {
+ if(yych <= 'a') goto yy725;
if(yych != 'p') goto yy53;
- goto yy646;
+ goto yy725;
}
}
-yy646:
- YYDEBUG(646, *YYCURSOR);
+yy725:
+ YYDEBUG(725, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy647;
+ goto yy726;
} else {
- if(yych <= 'M') goto yy648;
- if(yych == 'm') goto yy648;
+ if(yych <= 'M') goto yy727;
+ if(yych == 'm') goto yy727;
goto yy53;
}
-yy647:
- YYDEBUG(647, *YYCURSOR);
+yy726:
+ YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy648;
+ if(yych == 'M') goto yy727;
if(yych != 'm') goto yy53;
- goto yy648;
-yy648:
- YYDEBUG(648, *YYCURSOR);
+ goto yy727;
+yy727:
+ YYDEBUG(727, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy632;
- goto yy631;
-yy649:
- YYDEBUG(649, *YYCURSOR);
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy728;
+ }
+yy728:
+ YYDEBUG(728, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych == ' ') goto yy710;
+ goto yy53;
+ }
+yy729:
+ YYDEBUG(729, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych != ' ') goto yy634;
- goto yy650;
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy730;
+ if(yych <= 0x1F) goto yy713;
+ goto yy730;
} else {
- if(yych <= '.') goto yy636;
- if(yych == ':') goto yy636;
- goto yy634;
+ if(yych == '.') goto yy715;
+ if(yych <= '9') goto yy713;
+ goto yy715;
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy652;
- if(yych == 'P') goto yy652;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy732;
+ if(yych <= 'O') goto yy713;
+ goto yy732;
} else {
- if(yych <= 'a') goto yy652;
- if(yych == 'p') goto yy652;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy732;
+ } else {
+ if(yych == 'p') goto yy732;
+ goto yy713;
+ }
}
}
-yy650:
- YYDEBUG(650, *YYCURSOR);
+yy730:
+ YYDEBUG(730, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- goto yy651;
-yy651:
- YYDEBUG(651, *YYCURSOR);
- if(yych <= 'O'){
- if(yych <= ' '){
- if(yych <= 0x1F) goto yy53;
- goto yy650;
+ goto yy731;
+yy731:
+ YYDEBUG(731, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy730;
+ goto yy53;
} else {
- if(yych != 'A') goto yy53;
- goto yy652;
+ if(yych <= ' ') goto yy730;
+ if(yych <= '@') goto yy53;
+ goto yy732;
}
} else {
- if(yych <= 'a'){
- if(yych <= 'P') goto yy652;
- if(yych <= '`') goto yy53;
- goto yy652;
+ if(yych <= '`'){
+ if(yych != 'P') goto yy53;
+ goto yy732;
} else {
+ if(yych <= 'a') goto yy732;
if(yych != 'p') goto yy53;
- goto yy652;
+ goto yy732;
}
}
-yy652:
- YYDEBUG(652, *YYCURSOR);
+yy732:
+ YYDEBUG(732, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy653;
+ goto yy733;
} else {
- if(yych <= 'M') goto yy654;
- if(yych == 'm') goto yy654;
+ if(yych <= 'M') goto yy734;
+ if(yych == 'm') goto yy734;
goto yy53;
}
-yy653:
- YYDEBUG(653, *YYCURSOR);
+yy733:
+ YYDEBUG(733, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy654;
+ if(yych == 'M') goto yy734;
if(yych != 'm') goto yy53;
- goto yy654;
-yy654:
- YYDEBUG(654, *YYCURSOR);
+ goto yy734;
+yy734:
+ YYDEBUG(734, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy632;
- goto yy631;
-yy655:
- YYDEBUG(655, *YYCURSOR);
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy735;
+ }
+yy735:
+ YYDEBUG(735, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych == ' ') goto yy710;
+ goto yy53;
+ }
+yy736:
+ YYDEBUG(736, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy656;
+ if(yych == 'V') goto yy737;
if(yych != 'v') goto yy53;
- goto yy656;
-yy656:
- YYDEBUG(656, *YYCURSOR);
+ goto yy737;
+yy737:
+ YYDEBUG(737, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy661;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy661;
- goto yy620;
+ if(yych <= 'E') goto yy742;
+ if(yych == 'e') goto yy742;
+ goto yy698;
}
}
-yy657:
- YYDEBUG(657, *YYCURSOR);
+yy738:
+ YYDEBUG(738, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
- goto yy658;
-yy658:
- YYDEBUG(658, *YYCURSOR);
- if(yych <= 0x1F) goto yy53;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy53;
- if(yych >= ':') goto yy53;
- goto yy659;
-yy659:
- YYDEBUG(659, *YYCURSOR);
+ goto yy739;
+yy739:
+ YYDEBUG(739, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy738;
+ if(yych <= 0x1F) goto yy53;
+ goto yy738;
+ } else {
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy740;
+ }
+ }
+yy740:
+ YYDEBUG(740, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy660;
- if(yych <= '9') goto yy666;
- goto yy660;
-yy660:
- YYDEBUG(660, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy741;
+ if(yych <= '9') goto yy747;
+ goto yy741;
+yy741:
+ YYDEBUG(741, *YYCURSOR);
{
DEBUG_OUTPUT("datefull");
@@ -10129,639 +13494,792 @@ yy660:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-yy661:
- YYDEBUG(661, *YYCURSOR);
+yy742:
+ YYDEBUG(742, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy662;
+ if(yych == 'M') goto yy743;
if(yych != 'm') goto yy53;
- goto yy662;
-yy662:
- YYDEBUG(662, *YYCURSOR);
+ goto yy743;
+yy743:
+ YYDEBUG(743, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy663;
+ if(yych == 'B') goto yy744;
if(yych != 'b') goto yy53;
- goto yy663;
-yy663:
- YYDEBUG(663, *YYCURSOR);
+ goto yy744;
+yy744:
+ YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy664;
+ if(yych == 'E') goto yy745;
if(yych != 'e') goto yy53;
- goto yy664;
-yy664:
- YYDEBUG(664, *YYCURSOR);
+ goto yy745;
+yy745:
+ YYDEBUG(745, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
+ if(yych == 'R') goto yy746;
if(yych != 'r') goto yy53;
- goto yy665;
-yy665:
- YYDEBUG(665, *YYCURSOR);
+ goto yy746;
+yy746:
+ YYDEBUG(746, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
-yy666:
- YYDEBUG(666, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy738;
+ if(yych <= 0x1F) goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= '.'){
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
+ }
+ }
+yy747:
+ YYDEBUG(747, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych >= ':') goto yy660;
- goto yy667;
-yy667:
- YYDEBUG(667, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych >= ':') goto yy741;
+ goto yy748;
+yy748:
+ YYDEBUG(748, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych >= ':') goto yy660;
- goto yy668;
-yy668:
- YYDEBUG(668, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych >= ':') goto yy741;
+ goto yy749;
+yy749:
+ YYDEBUG(749, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy660;
-yy669:
- YYDEBUG(669, *YYCURSOR);
+ goto yy741;
+yy750:
+ YYDEBUG(750, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy670;
+ if(yych == 'T') goto yy751;
if(yych != 't') goto yy53;
- goto yy670;
-yy670:
- YYDEBUG(670, *YYCURSOR);
+ goto yy751;
+yy751:
+ YYDEBUG(751, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'O'){
- if(yych <= 'N') goto yy620;
- goto yy671;
+ if(yych <= 'N'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'o') goto yy620;
- goto yy671;
+ if(yych <= 'O') goto yy752;
+ if(yych != 'o') goto yy698;
+ goto yy752;
}
}
-yy671:
- YYDEBUG(671, *YYCURSOR);
+yy752:
+ YYDEBUG(752, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy672;
+ if(yych == 'B') goto yy753;
if(yych != 'b') goto yy53;
- goto yy672;
-yy672:
- YYDEBUG(672, *YYCURSOR);
+ goto yy753;
+yy753:
+ YYDEBUG(753, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy673;
+ if(yych == 'E') goto yy754;
if(yych != 'e') goto yy53;
- goto yy673;
-yy673:
- YYDEBUG(673, *YYCURSOR);
+ goto yy754;
+yy754:
+ YYDEBUG(754, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy674:
- YYDEBUG(674, *YYCURSOR);
+yy755:
+ YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy678;
- if(yych == 'g') goto yy678;
+ if(yych == 'G') goto yy759;
+ if(yych == 'g') goto yy759;
goto yy53;
-yy675:
- YYDEBUG(675, *YYCURSOR);
+yy756:
+ YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy676;
+ if(yych == 'R') goto yy757;
if(yych != 'r') goto yy53;
- goto yy676;
-yy676:
- YYDEBUG(676, *YYCURSOR);
+ goto yy757;
+yy757:
+ YYDEBUG(757, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'I'){
- if(yych <= 'H') goto yy620;
- goto yy677;
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'i') goto yy620;
- goto yy677;
+ if(yych <= 'I') goto yy758;
+ if(yych != 'i') goto yy698;
+ goto yy758;
}
}
-yy677:
- YYDEBUG(677, *YYCURSOR);
+yy758:
+ YYDEBUG(758, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'L') goto yy665;
- if(yych == 'l') goto yy665;
+ if(yych == 'L') goto yy746;
+ if(yych == 'l') goto yy746;
goto yy53;
-yy678:
- YYDEBUG(678, *YYCURSOR);
+yy759:
+ YYDEBUG(759, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'U'){
- if(yych <= 'T') goto yy620;
- goto yy679;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'u') goto yy620;
- goto yy679;
+ if(yych <= 'U') goto yy760;
+ if(yych != 'u') goto yy698;
+ goto yy760;
}
}
-yy679:
- YYDEBUG(679, *YYCURSOR);
+yy760:
+ YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy680;
+ if(yych == 'S') goto yy761;
if(yych != 's') goto yy53;
- goto yy680;
-yy680:
- YYDEBUG(680, *YYCURSOR);
+ goto yy761;
+yy761:
+ YYDEBUG(761, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy665;
- if(yych == 't') goto yy665;
+ if(yych == 'T') goto yy746;
+ if(yych == 't') goto yy746;
goto yy53;
-yy681:
- YYDEBUG(681, *YYCURSOR);
+yy762:
+ YYDEBUG(762, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy688;
+ if(yych == 'L') goto yy769;
if(yych <= 'M') goto yy53;
- goto yy687;
+ goto yy768;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy688;
+ goto yy769;
} else {
- if(yych == 'n') goto yy687;
+ if(yych == 'n') goto yy768;
goto yy53;
}
}
-yy682:
- YYDEBUG(682, *YYCURSOR);
+yy763:
+ YYDEBUG(763, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy683;
+ if(yych == 'N') goto yy764;
if(yych != 'n') goto yy53;
- goto yy683;
-yy683:
- YYDEBUG(683, *YYCURSOR);
+ goto yy764;
+yy764:
+ YYDEBUG(764, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'U'){
- if(yych <= 'T') goto yy620;
- goto yy684;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'u') goto yy620;
- goto yy684;
+ if(yych <= 'U') goto yy765;
+ if(yych != 'u') goto yy698;
+ goto yy765;
}
}
-yy684:
- YYDEBUG(684, *YYCURSOR);
+yy765:
+ YYDEBUG(765, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy685;
+ if(yych == 'A') goto yy766;
if(yych != 'a') goto yy53;
- goto yy685;
-yy685:
- YYDEBUG(685, *YYCURSOR);
+ goto yy766;
+yy766:
+ YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy686;
+ if(yych == 'R') goto yy767;
if(yych != 'r') goto yy53;
- goto yy686;
-yy686:
- YYDEBUG(686, *YYCURSOR);
+ goto yy767;
+yy767:
+ YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy665;
- if(yych == 'y') goto yy665;
+ if(yych == 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
goto yy53;
-yy687:
- YYDEBUG(687, *YYCURSOR);
+yy768:
+ YYDEBUG(768, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy665;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy665;
- goto yy620;
+ if(yych <= 'E') goto yy746;
+ if(yych == 'e') goto yy746;
+ goto yy698;
}
}
-yy688:
- YYDEBUG(688, *YYCURSOR);
+yy769:
+ YYDEBUG(769, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'Y'){
- if(yych <= 'X') goto yy620;
- goto yy665;
+ if(yych <= 'X'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'y') goto yy665;
- goto yy620;
+ if(yych <= 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
+ goto yy698;
}
}
-yy689:
- YYDEBUG(689, *YYCURSOR);
+yy770:
+ YYDEBUG(770, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy690:
- YYDEBUG(690, *YYCURSOR);
+yy771:
+ YYDEBUG(771, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych != 'I') goto yy620;
- goto yy691;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych != 'I') goto yy698;
+ goto yy772;
+ }
}
-yy691:
- YYDEBUG(691, *YYCURSOR);
+yy772:
+ YYDEBUG(772, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy692:
- YYDEBUG(692, *YYCURSOR);
+yy773:
+ YYDEBUG(773, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy693:
- YYDEBUG(693, *YYCURSOR);
+yy774:
+ YYDEBUG(774, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
} else {
- if(yych <= '9') goto yy733;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy818;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy694:
- YYDEBUG(694, *YYCURSOR);
+yy775:
+ YYDEBUG(775, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ if(yych <= '.') goto yy808;
+ goto yy713;
} else {
- if(yych <= '2') goto yy733;
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '2') goto yy818;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy695:
- YYDEBUG(695, *YYCURSOR);
+yy776:
+ YYDEBUG(776, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
} else {
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy696:
- YYDEBUG(696, *YYCURSOR);
+yy777:
+ YYDEBUG(777, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy724;
- if(yych == ':') goto yy636;
- goto yy634;
-yy697:
- YYDEBUG(697, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
+ } else {
+ if(yych == ':') goto yy715;
+ goto yy713;
+ }
+yy778:
+ YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy718;
- if(yych == 'e') goto yy718;
+ if(yych == 'E') goto yy801;
+ if(yych == 'e') goto yy801;
goto yy53;
-yy698:
- YYDEBUG(698, *YYCURSOR);
+yy779:
+ YYDEBUG(779, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy715;
- if(yych == 'a') goto yy715;
+ if(yych == 'A') goto yy798;
+ if(yych == 'a') goto yy798;
goto yy53;
-yy699:
- YYDEBUG(699, *YYCURSOR);
+yy780:
+ YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy675;
+ if(yych == 'P') goto yy756;
if(yych <= 'T') goto yy53;
- goto yy674;
+ goto yy755;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy675;
+ goto yy756;
} else {
- if(yych == 'u') goto yy674;
+ if(yych == 'u') goto yy755;
goto yy53;
}
}
-yy700:
- YYDEBUG(700, *YYCURSOR);
+yy781:
+ YYDEBUG(781, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy708;
- if(yych == 'e') goto yy708;
+ if(yych == 'E') goto yy791;
+ if(yych == 'e') goto yy791;
goto yy53;
-yy701:
- YYDEBUG(701, *YYCURSOR);
+yy782:
+ YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy702;
- if(yych != 'e') goto yy53;
- goto yy702;
-yy702:
- YYDEBUG(702, *YYCURSOR);
+ if(yych == 'E') goto yy785;
+ if(yych == 'e') goto yy785;
+ goto yy53;
+yy783:
+ YYDEBUG(783, *YYCURSOR);
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+ yych = *YYCURSOR;
+ goto yy784;
+yy784:
+ YYDEBUG(784, *YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case '-':
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy780;
+ case 'D': case 'd': goto yy782;
+ case 'F': case 'f': goto yy778;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy779;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'S': case 's': goto yy781;
+ case 'V': goto yy699;
+ case 'X': goto yy700;
+ default: goto yy53;
+ }
+yy785:
+ YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy703;
+ if(yych == 'C') goto yy786;
if(yych != 'c') goto yy53;
- goto yy703;
-yy703:
- YYDEBUG(703, *YYCURSOR);
+ goto yy786;
+yy786:
+ YYDEBUG(786, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy704;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'e') goto yy620;
- goto yy704;
+ if(yych <= 'E') goto yy787;
+ if(yych != 'e') goto yy698;
+ goto yy787;
}
}
-yy704:
- YYDEBUG(704, *YYCURSOR);
+yy787:
+ YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy705;
+ if(yych == 'M') goto yy788;
if(yych != 'm') goto yy53;
- goto yy705;
-yy705:
- YYDEBUG(705, *YYCURSOR);
+ goto yy788;
+yy788:
+ YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy706;
+ if(yych == 'B') goto yy789;
if(yych != 'b') goto yy53;
- goto yy706;
-yy706:
- YYDEBUG(706, *YYCURSOR);
+ goto yy789;
+yy789:
+ YYDEBUG(789, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy707;
+ if(yych == 'E') goto yy790;
if(yych != 'e') goto yy53;
- goto yy707;
-yy707:
- YYDEBUG(707, *YYCURSOR);
+ goto yy790;
+yy790:
+ YYDEBUG(790, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy708:
- YYDEBUG(708, *YYCURSOR);
+yy791:
+ YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy709;
+ if(yych == 'P') goto yy792;
if(yych != 'p') goto yy53;
- goto yy709;
-yy709:
- YYDEBUG(709, *YYCURSOR);
+ goto yy792;
+yy792:
+ YYDEBUG(792, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'T'){
- if(yych <= 'S') goto yy620;
- goto yy710;
+ if(yych <= 'S'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 't') goto yy620;
- goto yy710;
+ if(yych <= 'T') goto yy793;
+ if(yych != 't') goto yy698;
+ goto yy793;
}
}
-yy710:
- YYDEBUG(710, *YYCURSOR);
+yy793:
+ YYDEBUG(793, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy711;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'e') goto yy620;
- goto yy711;
+ if(yych <= 'E') goto yy794;
+ if(yych != 'e') goto yy698;
+ goto yy794;
}
}
-yy711:
- YYDEBUG(711, *YYCURSOR);
+yy794:
+ YYDEBUG(794, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy712;
+ if(yych == 'M') goto yy795;
if(yych != 'm') goto yy53;
- goto yy712;
-yy712:
- YYDEBUG(712, *YYCURSOR);
+ goto yy795;
+yy795:
+ YYDEBUG(795, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy713;
+ if(yych == 'B') goto yy796;
if(yych != 'b') goto yy53;
- goto yy713;
-yy713:
- YYDEBUG(713, *YYCURSOR);
+ goto yy796;
+yy796:
+ YYDEBUG(796, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy714;
+ if(yych == 'E') goto yy797;
if(yych != 'e') goto yy53;
- goto yy714;
-yy714:
- YYDEBUG(714, *YYCURSOR);
+ goto yy797;
+yy797:
+ YYDEBUG(797, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy715:
- YYDEBUG(715, *YYCURSOR);
+yy798:
+ YYDEBUG(798, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy716;
+ if(yych == 'R') goto yy799;
if(yych <= 'X') goto yy53;
- goto yy665;
+ goto yy746;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy716;
+ goto yy799;
} else {
- if(yych == 'y') goto yy665;
+ if(yych == 'y') goto yy746;
goto yy53;
}
}
-yy716:
- YYDEBUG(716, *YYCURSOR);
+yy799:
+ YYDEBUG(799, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'C'){
- if(yych <= 'B') goto yy620;
- goto yy717;
+ if(yych <= 'B'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'c') goto yy620;
- goto yy717;
+ if(yych <= 'C') goto yy800;
+ if(yych != 'c') goto yy698;
+ goto yy800;
}
}
-yy717:
- YYDEBUG(717, *YYCURSOR);
+yy800:
+ YYDEBUG(800, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy665;
- if(yych == 'h') goto yy665;
+ if(yych == 'H') goto yy746;
+ if(yych == 'h') goto yy746;
goto yy53;
-yy718:
- YYDEBUG(718, *YYCURSOR);
+yy801:
+ YYDEBUG(801, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy719;
+ if(yych == 'B') goto yy802;
if(yych != 'b') goto yy53;
- goto yy719;
-yy719:
- YYDEBUG(719, *YYCURSOR);
+ goto yy802;
+yy802:
+ YYDEBUG(802, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'R'){
- if(yych <= 'Q') goto yy620;
- goto yy720;
+ if(yych <= 'Q'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'r') goto yy620;
- goto yy720;
+ if(yych <= 'R') goto yy803;
+ if(yych != 'r') goto yy698;
+ goto yy803;
}
}
-yy720:
- YYDEBUG(720, *YYCURSOR);
+yy803:
+ YYDEBUG(803, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy721;
+ if(yych == 'U') goto yy804;
if(yych != 'u') goto yy53;
- goto yy721;
-yy721:
- YYDEBUG(721, *YYCURSOR);
+ goto yy804;
+yy804:
+ YYDEBUG(804, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy722;
+ if(yych == 'A') goto yy805;
if(yych != 'a') goto yy53;
- goto yy722;
-yy722:
- YYDEBUG(722, *YYCURSOR);
+ goto yy805;
+yy805:
+ YYDEBUG(805, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy723;
+ if(yych == 'R') goto yy806;
if(yych != 'r') goto yy53;
- goto yy723;
-yy723:
- YYDEBUG(723, *YYCURSOR);
+ goto yy806;
+yy806:
+ YYDEBUG(806, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy665;
- if(yych == 'y') goto yy665;
+ if(yych == 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
goto yy53;
-yy724:
- YYDEBUG(724, *YYCURSOR);
+yy807:
+ YYDEBUG(807, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy725;
- if(yych <= '6') goto yy726;
- if(yych <= '9') goto yy727;
+ if(yych <= '9') goto yy817;
goto yy53;
-yy725:
- YYDEBUG(725, *YYCURSOR);
+yy808:
+ YYDEBUG(808, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '5') goto yy809;
+ if(yych <= '6') goto yy810;
+ if(yych <= '9') goto yy811;
+ goto yy53;
+yy809:
+ YYDEBUG(809, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy732;
- goto yy634;
-yy726:
- YYDEBUG(726, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy816;
+ goto yy713;
+yy810:
+ YYDEBUG(810, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy640;
- goto yy634;
+ if(yych == '.') goto yy719;
+ goto yy713;
} else {
- if(yych <= '0') goto yy732;
- if(yych <= '9') goto yy728;
- goto yy634;
+ if(yych <= '0') goto yy816;
+ if(yych <= '9') goto yy812;
+ goto yy713;
}
-yy727:
- YYDEBUG(727, *YYCURSOR);
+yy811:
+ YYDEBUG(811, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych >= ':') goto yy634;
- goto yy728;
-yy728:
- YYDEBUG(728, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych >= ':') goto yy713;
+ goto yy812;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy729;
- if(yych <= '9') goto yy730;
- goto yy729;
-yy729:
- YYDEBUG(729, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy813;
+ if(yych <= '9') goto yy814;
+ goto yy813;
+yy813:
+ YYDEBUG(813, *YYCURSOR);
{
DEBUG_OUTPUT("pointed date");
@@ -10774,585 +14292,649 @@ yy729:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-yy730:
- YYDEBUG(730, *YYCURSOR);
+yy814:
+ YYDEBUG(814, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy729;
- if(yych >= ':') goto yy729;
- goto yy731;
-yy731:
- YYDEBUG(731, *YYCURSOR);
+ if(yych <= '/') goto yy813;
+ if(yych >= ':') goto yy813;
+ goto yy815;
+yy815:
+ YYDEBUG(815, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy729;
-yy732:
- YYDEBUG(732, *YYCURSOR);
+ goto yy813;
+yy816:
+ YYDEBUG(816, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych == ' ') goto yy644;
- goto yy634;
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy723;
+ if(yych <= 0x1F) goto yy713;
+ goto yy723;
} else {
- if(yych <= '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy730;
- goto yy634;
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ goto yy814;
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy646;
- if(yych == 'P') goto yy646;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy725;
+ if(yych <= 'O') goto yy713;
+ goto yy725;
} else {
- if(yych <= 'a') goto yy646;
- if(yych == 'p') goto yy646;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy725;
+ } else {
+ if(yych == 'p') goto yy725;
+ goto yy713;
+ }
}
}
-yy733:
- YYDEBUG(733, *YYCURSOR);
+yy817:
+ YYDEBUG(817, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy813;
+ if(yych <= '9') goto yy812;
+ goto yy813;
+yy818:
+ YYDEBUG(818, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych == ' ') goto yy650;
- goto yy634;
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy730;
+ if(yych <= 0x1F) goto yy713;
+ goto yy730;
} else {
- if(yych <= '.') goto yy724;
- if(yych == ':') goto yy636;
- goto yy634;
+ if(yych <= '-'){
+ if(yych <= ',') goto yy713;
+ goto yy807;
+ } else {
+ if(yych <= '.') goto yy808;
+ if(yych <= '9') goto yy713;
+ goto yy715;
+ }
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy652;
- if(yych == 'P') goto yy652;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy732;
+ if(yych <= 'O') goto yy713;
+ goto yy732;
} else {
- if(yych <= 'a') goto yy652;
- if(yych == 'p') goto yy652;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy732;
+ } else {
+ if(yych == 'p') goto yy732;
+ goto yy713;
+ }
}
}
-yy734:
- YYDEBUG(734, *YYCURSOR);
+yy819:
+ YYDEBUG(819, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
- if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy736;
- goto yy53;
-yy735:
- YYDEBUG(735, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ goto yy807;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy821;
+ goto yy53;
+ }
+yy820:
+ YYDEBUG(820, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
- if(yych <= '/') goto yy53;
- if(yych >= '3') goto yy53;
- goto yy736;
-yy736:
- YYDEBUG(736, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ goto yy807;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy821;
+ }
+yy821:
+ YYDEBUG(821, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ if(yych <= '.') goto yy807;
goto yy53;
-yy737:
- YYDEBUG(737, *YYCURSOR);
+yy822:
+ YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy769;
+ if(yych == 'A') goto yy854;
if(yych <= 'T') goto yy53;
- goto yy768;
+ goto yy853;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy769;
+ goto yy854;
} else {
- if(yych == 'u') goto yy768;
+ if(yych == 'u') goto yy853;
goto yy53;
}
}
-yy738:
- YYDEBUG(738, *YYCURSOR);
+yy823:
+ YYDEBUG(823, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy766;
- if(yych == 'e') goto yy766;
+ if(yych == 'E') goto yy851;
+ if(yych == 'e') goto yy851;
goto yy53;
-yy739:
- YYDEBUG(739, *YYCURSOR);
+yy824:
+ YYDEBUG(824, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy763;
- if(yych == 'a') goto yy763;
+ if(yych == 'A') goto yy848;
+ if(yych == 'a') goto yy848;
goto yy53;
-yy740:
- YYDEBUG(740, *YYCURSOR);
+yy825:
+ YYDEBUG(825, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy760;
+ if(yych == 'P') goto yy845;
if(yych <= 'T') goto yy53;
- goto yy759;
+ goto yy844;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy760;
+ goto yy845;
} else {
- if(yych == 'u') goto yy759;
+ if(yych == 'u') goto yy844;
goto yy53;
}
}
-yy741:
- YYDEBUG(741, *YYCURSOR);
+yy826:
+ YYDEBUG(826, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy756;
- if(yych == 'e') goto yy756;
+ if(yych == 'E') goto yy841;
+ if(yych == 'e') goto yy841;
goto yy53;
-yy742:
- YYDEBUG(742, *YYCURSOR);
+yy827:
+ YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy754;
- if(yych == 'c') goto yy754;
+ if(yych == 'C') goto yy839;
+ if(yych == 'c') goto yy839;
goto yy53;
-yy743:
- YYDEBUG(743, *YYCURSOR);
+yy828:
+ YYDEBUG(828, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy752;
- if(yych == 'o') goto yy752;
+ if(yych == 'O') goto yy837;
+ if(yych == 'o') goto yy837;
goto yy53;
-yy744:
- YYDEBUG(744, *YYCURSOR);
+yy829:
+ YYDEBUG(829, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy745;
+ if(yych == 'E') goto yy830;
if(yych != 'e') goto yy53;
- goto yy745;
-yy745:
- YYDEBUG(745, *YYCURSOR);
+ goto yy830;
+yy830:
+ YYDEBUG(830, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy746;
+ if(yych == 'C') goto yy831;
if(yych != 'c') goto yy53;
- goto yy746;
-yy746:
- YYDEBUG(746, *YYCURSOR);
+ goto yy831;
+yy831:
+ YYDEBUG(831, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych >= '.') goto yy738;
+ goto yy832;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy704;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy704;
- goto yy620;
+ if(yych <= 'E') goto yy787;
+ if(yych == 'e') goto yy787;
+ goto yy698;
}
}
-yy747:
- YYDEBUG(747, *YYCURSOR);
+yy832:
+ YYDEBUG(832, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy658;
- if(yych <= '0') goto yy748;
- if(yych <= '2') goto yy749;
- if(yych <= '3') goto yy750;
- goto yy658;
-yy748:
- YYDEBUG(748, *YYCURSOR);
+ if(yych <= '/') goto yy739;
+ if(yych <= '0') goto yy833;
+ if(yych <= '2') goto yy834;
+ if(yych <= '3') goto yy835;
+ goto yy739;
+yy833:
+ YYDEBUG(833, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '0') goto yy666;
- if(yych <= '9') goto yy751;
- goto yy660;
-yy749:
- YYDEBUG(749, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '0') goto yy747;
+ if(yych <= '9') goto yy836;
+ goto yy741;
+yy834:
+ YYDEBUG(834, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '9') goto yy751;
- goto yy660;
-yy750:
- YYDEBUG(750, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '9') goto yy836;
+ goto yy741;
+yy835:
+ YYDEBUG(835, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '1') goto yy751;
- if(yych <= '9') goto yy666;
- goto yy660;
-yy751:
- YYDEBUG(751, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '1') goto yy836;
+ if(yych <= '9') goto yy747;
+ goto yy741;
+yy836:
+ YYDEBUG(836, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '9') goto yy667;
- goto yy660;
-yy752:
- YYDEBUG(752, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '9') goto yy748;
+ goto yy741;
+yy837:
+ YYDEBUG(837, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy753;
+ if(yych == 'V') goto yy838;
if(yych != 'v') goto yy53;
- goto yy753;
-yy753:
- YYDEBUG(753, *YYCURSOR);
+ goto yy838;
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy661;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy661;
- goto yy620;
+ if(yych <= 'E') goto yy742;
+ if(yych == 'e') goto yy742;
+ goto yy698;
}
}
-yy754:
- YYDEBUG(754, *YYCURSOR);
+yy839:
+ YYDEBUG(839, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy755;
+ if(yych == 'T') goto yy840;
if(yych != 't') goto yy53;
- goto yy755;
-yy755:
- YYDEBUG(755, *YYCURSOR);
+ goto yy840;
+yy840:
+ YYDEBUG(840, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'O'){
- if(yych <= '9') goto yy659;
- if(yych <= 'N') goto yy620;
- goto yy671;
+ if(yych <= 'N'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'o') goto yy671;
- goto yy620;
+ if(yych <= 'O') goto yy752;
+ if(yych == 'o') goto yy752;
+ goto yy698;
}
}
-yy756:
- YYDEBUG(756, *YYCURSOR);
+yy841:
+ YYDEBUG(841, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy757;
+ if(yych == 'P') goto yy842;
if(yych != 'p') goto yy53;
- goto yy757;
-yy757:
- YYDEBUG(757, *YYCURSOR);
+ goto yy842;
+yy842:
+ YYDEBUG(842, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'T'){
- if(yych <= '9') goto yy659;
- if(yych <= 'S') goto yy620;
- goto yy758;
+ if(yych <= 'S'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 't') goto yy620;
- goto yy758;
+ if(yych <= 'T') goto yy843;
+ if(yych != 't') goto yy698;
+ goto yy843;
}
}
-yy758:
- YYDEBUG(758, *YYCURSOR);
+yy843:
+ YYDEBUG(843, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy711;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy711;
- goto yy620;
+ if(yych <= 'E') goto yy794;
+ if(yych == 'e') goto yy794;
+ goto yy698;
}
}
-yy759:
- YYDEBUG(759, *YYCURSOR);
+yy844:
+ YYDEBUG(844, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy762;
- if(yych == 'g') goto yy762;
+ if(yych == 'G') goto yy847;
+ if(yych == 'g') goto yy847;
goto yy53;
-yy760:
- YYDEBUG(760, *YYCURSOR);
+yy845:
+ YYDEBUG(845, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy761;
+ if(yych == 'R') goto yy846;
if(yych != 'r') goto yy53;
- goto yy761;
-yy761:
- YYDEBUG(761, *YYCURSOR);
+ goto yy846;
+yy846:
+ YYDEBUG(846, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'I'){
- if(yych <= '9') goto yy659;
- if(yych <= 'H') goto yy620;
- goto yy677;
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'i') goto yy677;
- goto yy620;
+ if(yych <= 'I') goto yy758;
+ if(yych == 'i') goto yy758;
+ goto yy698;
}
}
-yy762:
- YYDEBUG(762, *YYCURSOR);
+yy847:
+ YYDEBUG(847, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'U'){
- if(yych <= '9') goto yy659;
- if(yych <= 'T') goto yy620;
- goto yy679;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'u') goto yy679;
- goto yy620;
+ if(yych <= 'U') goto yy760;
+ if(yych == 'u') goto yy760;
+ goto yy698;
}
}
-yy763:
- YYDEBUG(763, *YYCURSOR);
+yy848:
+ YYDEBUG(848, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy764;
+ if(yych == 'R') goto yy849;
if(yych <= 'X') goto yy53;
- goto yy765;
+ goto yy850;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy764;
+ goto yy849;
} else {
- if(yych == 'y') goto yy765;
+ if(yych == 'y') goto yy850;
goto yy53;
}
}
-yy764:
- YYDEBUG(764, *YYCURSOR);
+yy849:
+ YYDEBUG(849, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'C'){
- if(yych <= '9') goto yy659;
- if(yych <= 'B') goto yy620;
- goto yy717;
+ if(yych <= 'B'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'c') goto yy717;
- goto yy620;
+ if(yych <= 'C') goto yy800;
+ if(yych == 'c') goto yy800;
+ goto yy698;
}
}
-yy765:
- YYDEBUG(765, *YYCURSOR);
+yy850:
+ YYDEBUG(850, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= ',') goto yy657;
- goto yy747;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
+ if(yych <= '.'){
+ if(yych <= '-') goto yy832;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
+ }
}
-yy766:
- YYDEBUG(766, *YYCURSOR);
+yy851:
+ YYDEBUG(851, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy767;
+ if(yych == 'B') goto yy852;
if(yych != 'b') goto yy53;
- goto yy767;
-yy767:
- YYDEBUG(767, *YYCURSOR);
+ goto yy852;
+yy852:
+ YYDEBUG(852, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'R'){
- if(yych <= '9') goto yy659;
- if(yych <= 'Q') goto yy620;
- goto yy720;
+ if(yych <= 'Q'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'r') goto yy720;
- goto yy620;
+ if(yych <= 'R') goto yy803;
+ if(yych == 'r') goto yy803;
+ goto yy698;
}
}
-yy768:
- YYDEBUG(768, *YYCURSOR);
+yy853:
+ YYDEBUG(853, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy772;
+ if(yych == 'L') goto yy857;
if(yych <= 'M') goto yy53;
- goto yy771;
+ goto yy856;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy772;
+ goto yy857;
} else {
- if(yych == 'n') goto yy771;
+ if(yych == 'n') goto yy856;
goto yy53;
}
}
-yy769:
- YYDEBUG(769, *YYCURSOR);
+yy854:
+ YYDEBUG(854, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy770;
+ if(yych == 'N') goto yy855;
if(yych != 'n') goto yy53;
- goto yy770;
-yy770:
- YYDEBUG(770, *YYCURSOR);
+ goto yy855;
+yy855:
+ YYDEBUG(855, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'U'){
- if(yych <= '9') goto yy659;
- if(yych <= 'T') goto yy620;
- goto yy684;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'u') goto yy684;
- goto yy620;
+ if(yych <= 'U') goto yy765;
+ if(yych == 'u') goto yy765;
+ goto yy698;
}
}
-yy771:
- YYDEBUG(771, *YYCURSOR);
+yy856:
+ YYDEBUG(856, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy665;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy665;
- goto yy620;
+ if(yych <= 'E') goto yy746;
+ if(yych == 'e') goto yy746;
+ goto yy698;
}
}
-yy772:
- YYDEBUG(772, *YYCURSOR);
+yy857:
+ YYDEBUG(857, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'Y'){
- if(yych <= '9') goto yy659;
- if(yych <= 'X') goto yy620;
- goto yy665;
+ if(yych <= 'X'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'y') goto yy665;
- goto yy620;
+ if(yych <= 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
+ goto yy698;
}
}
-yy773:
- YYDEBUG(773, *YYCURSOR);
+yy858:
+ YYDEBUG(858, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy774;
- if(yych <= '3') goto yy776;
- if(yych <= '9') goto yy777;
+ if(yych <= '2') goto yy859;
+ if(yych <= '3') goto yy861;
+ if(yych <= '9') goto yy862;
goto yy53;
-yy774:
- YYDEBUG(774, *YYCURSOR);
+yy859:
+ YYDEBUG(859, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy775;
- if(yych <= '9') goto yy777;
- if(yych >= 'n') goto yy779;
- goto yy775;
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy868;
+ if(yych >= 'n') goto yy864;
+ goto yy860;
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy780;
- goto yy775;
+ if(yych >= 'r') goto yy865;
+ goto yy860;
} else {
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
}
}
-yy775:
- YYDEBUG(775, *YYCURSOR);
+yy860:
+ YYDEBUG(860, *YYCURSOR);
{
DEBUG_OUTPUT("gnudateshort");
@@ -11365,87 +14947,116 @@ yy775:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-yy776:
- YYDEBUG(776, *YYCURSOR);
+yy861:
+ YYDEBUG(861, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy775;
- if(yych <= '1') goto yy777;
- if(yych <= 'm') goto yy775;
- goto yy779;
+ if(yych <= '1'){
+ if(yych <= '/') goto yy860;
+ goto yy868;
+ } else {
+ if(yych <= '9') goto yy812;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ }
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy775;
- goto yy780;
+ if(yych <= 'q') goto yy860;
+ goto yy865;
} else {
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
}
}
-yy777:
- YYDEBUG(777, *YYCURSOR);
+yy862:
+ YYDEBUG(862, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'q'){
- if(yych == 'n') goto yy779;
- goto yy775;
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy812;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
} else {
- if(yych <= 'r') goto yy780;
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
}
-yy778:
- YYDEBUG(778, *YYCURSOR);
+yy863:
+ YYDEBUG(863, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy782;
+ if(yych == 't') goto yy867;
goto yy53;
-yy779:
- YYDEBUG(779, *YYCURSOR);
+yy864:
+ YYDEBUG(864, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy782;
+ if(yych == 'd') goto yy867;
goto yy53;
-yy780:
- YYDEBUG(780, *YYCURSOR);
+yy865:
+ YYDEBUG(865, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy782;
+ if(yych == 'd') goto yy867;
goto yy53;
-yy781:
- YYDEBUG(781, *YYCURSOR);
+yy866:
+ YYDEBUG(866, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != 'h') goto yy53;
- goto yy782;
-yy782:
- YYDEBUG(782, *YYCURSOR);
+ goto yy867;
+yy867:
+ YYDEBUG(867, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy775;
-yy783:
- YYDEBUG(783, *YYCURSOR);
+ goto yy860;
+yy868:
+ YYDEBUG(868, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy814;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy869:
+ YYDEBUG(869, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '/'){
- if(yych >= '/') goto yy837;
- goto yy784;
+ if(yych >= '/') goto yy923;
+ goto yy870;
} else {
- if(yych <= '9') goto yy786;
- if(yych >= 'n') goto yy834;
- goto yy784;
+ if(yych <= '9') goto yy872;
+ if(yych >= 'n') goto yy920;
+ goto yy870;
}
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy835;
- goto yy784;
+ if(yych >= 'r') goto yy921;
+ goto yy870;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy784:
- YYDEBUG(784, *YYCURSOR);
+yy870:
+ YYDEBUG(870, *YYCURSOR);
{
DEBUG_OUTPUT("americanshort | american");
@@ -11460,252 +15071,258 @@ yy784:
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-yy785:
- YYDEBUG(785, *YYCURSOR);
+yy871:
+ YYDEBUG(871, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '/'){
- if(yych <= '.') goto yy784;
- goto yy837;
+ if(yych <= '.') goto yy870;
+ goto yy923;
} else {
- if(yych <= '1') goto yy786;
- if(yych <= 'm') goto yy784;
- goto yy834;
+ if(yych <= '1') goto yy872;
+ if(yych <= 'm') goto yy870;
+ goto yy920;
}
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy784;
- goto yy835;
+ if(yych <= 'q') goto yy870;
+ goto yy921;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy786:
- YYDEBUG(786, *YYCURSOR);
+yy872:
+ YYDEBUG(872, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == '/') goto yy837;
- if(yych <= 'm') goto yy784;
- goto yy834;
+ if(yych == '/') goto yy923;
+ if(yych <= 'm') goto yy870;
+ goto yy920;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy784;
- goto yy835;
+ if(yych <= 'q') goto yy870;
+ goto yy921;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy787:
- YYDEBUG(787, *YYCURSOR);
+yy873:
+ YYDEBUG(873, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy832;
+ if(yych == 'A') goto yy918;
if(yych <= 'T') goto yy53;
- goto yy831;
+ goto yy917;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy832;
+ goto yy918;
} else {
- if(yych == 'u') goto yy831;
+ if(yych == 'u') goto yy917;
goto yy53;
}
}
-yy788:
- YYDEBUG(788, *YYCURSOR);
+yy874:
+ YYDEBUG(874, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy830;
- if(yych == 'e') goto yy830;
+ if(yych == 'E') goto yy916;
+ if(yych == 'e') goto yy916;
goto yy53;
-yy789:
- YYDEBUG(789, *YYCURSOR);
+yy875:
+ YYDEBUG(875, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy829;
- if(yych == 'a') goto yy829;
+ if(yych == 'A') goto yy915;
+ if(yych == 'a') goto yy915;
goto yy53;
-yy790:
- YYDEBUG(790, *YYCURSOR);
+yy876:
+ YYDEBUG(876, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy828;
+ if(yych == 'P') goto yy914;
if(yych <= 'T') goto yy53;
- goto yy827;
+ goto yy913;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy828;
+ goto yy914;
} else {
- if(yych == 'u') goto yy827;
+ if(yych == 'u') goto yy913;
goto yy53;
}
}
-yy791:
- YYDEBUG(791, *YYCURSOR);
+yy877:
+ YYDEBUG(877, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy825;
- if(yych == 'e') goto yy825;
+ if(yych == 'E') goto yy911;
+ if(yych == 'e') goto yy911;
goto yy53;
-yy792:
- YYDEBUG(792, *YYCURSOR);
+yy878:
+ YYDEBUG(878, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy824;
- if(yych == 'c') goto yy824;
+ if(yych == 'C') goto yy910;
+ if(yych == 'c') goto yy910;
goto yy53;
-yy793:
- YYDEBUG(793, *YYCURSOR);
+yy879:
+ YYDEBUG(879, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy823;
- if(yych == 'o') goto yy823;
+ if(yych == 'O') goto yy909;
+ if(yych == 'o') goto yy909;
goto yy53;
-yy794:
- YYDEBUG(794, *YYCURSOR);
+yy880:
+ YYDEBUG(880, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy795;
+ if(yych == 'E') goto yy881;
if(yych != 'e') goto yy53;
- goto yy795;
-yy795:
- YYDEBUG(795, *YYCURSOR);
+ goto yy881;
+yy881:
+ YYDEBUG(881, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy796;
+ if(yych == 'C') goto yy882;
if(yych != 'c') goto yy53;
- goto yy796;
-yy796:
- YYDEBUG(796, *YYCURSOR);
+ goto yy882;
+yy882:
+ YYDEBUG(882, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy797;
-yy797:
- YYDEBUG(797, *YYCURSOR);
+ goto yy883;
+yy883:
+ YYDEBUG(883, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy798;
-yy798:
- YYDEBUG(798, *YYCURSOR);
+ goto yy884;
+yy884:
+ YYDEBUG(884, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy799;
-yy799:
- YYDEBUG(799, *YYCURSOR);
+ goto yy885;
+yy885:
+ YYDEBUG(885, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy800;
-yy800:
- YYDEBUG(800, *YYCURSOR);
+ goto yy886;
+yy886:
+ YYDEBUG(886, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy801;
-yy801:
- YYDEBUG(801, *YYCURSOR);
+ goto yy887;
+yy887:
+ YYDEBUG(887, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy802;
-yy802:
- YYDEBUG(802, *YYCURSOR);
+ goto yy888;
+yy888:
+ YYDEBUG(888, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy803;
- if(yych <= '2') goto yy804;
+ if(yych <= '1') goto yy889;
+ if(yych <= '2') goto yy890;
goto yy53;
-yy803:
- YYDEBUG(803, *YYCURSOR);
+yy889:
+ YYDEBUG(889, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy805;
+ if(yych <= '9') goto yy891;
goto yy53;
-yy804:
- YYDEBUG(804, *YYCURSOR);
+yy890:
+ YYDEBUG(890, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '4') goto yy53;
- goto yy805;
-yy805:
- YYDEBUG(805, *YYCURSOR);
+ goto yy891;
+yy891:
+ YYDEBUG(891, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy806;
-yy806:
- YYDEBUG(806, *YYCURSOR);
+ goto yy892;
+yy892:
+ YYDEBUG(892, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy807;
-yy807:
- YYDEBUG(807, *YYCURSOR);
+ goto yy893;
+yy893:
+ YYDEBUG(893, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy808;
-yy808:
- YYDEBUG(808, *YYCURSOR);
+ goto yy894;
+yy894:
+ YYDEBUG(894, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy809;
-yy809:
- YYDEBUG(809, *YYCURSOR);
+ goto yy895;
+yy895:
+ YYDEBUG(895, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy810;
- if(yych <= '6') goto yy811;
+ if(yych <= '5') goto yy896;
+ if(yych <= '6') goto yy897;
goto yy53;
-yy810:
- YYDEBUG(810, *YYCURSOR);
+yy896:
+ YYDEBUG(896, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy812;
+ if(yych <= '9') goto yy898;
goto yy53;
-yy811:
- YYDEBUG(811, *YYCURSOR);
+yy897:
+ YYDEBUG(897, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '0') goto yy53;
- goto yy812;
-yy812:
- YYDEBUG(812, *YYCURSOR);
+ goto yy898;
+yy898:
+ YYDEBUG(898, *YYCURSOR);
yych = *++YYCURSOR;
+ if(yych == 0x09) goto yy899;
if(yych != ' ') goto yy53;
- goto yy813;
-yy813:
- YYDEBUG(813, *YYCURSOR);
+ goto yy899;
+yy899:
+ YYDEBUG(899, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
yych = *YYCURSOR;
- goto yy814;
-yy814:
- YYDEBUG(814, *YYCURSOR);
- if(yych <= '*'){
- if(yych == ' ') goto yy813;
- goto yy53;
+ goto yy900;
+yy900:
+ YYDEBUG(900, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy899;
+ if(yych <= 0x1F) goto yy53;
+ goto yy899;
} else {
- if(yych == ',') goto yy53;
- if(yych >= '.') goto yy53;
- goto yy815;
+ if(yych <= '+'){
+ if(yych <= '*') goto yy53;
+ goto yy901;
+ } else {
+ if(yych != '-') goto yy53;
+ goto yy901;
+ }
}
-yy815:
- YYDEBUG(815, *YYCURSOR);
+yy901:
+ YYDEBUG(901, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy816;
- if(yych <= '2') goto yy818;
- if(yych <= '9') goto yy819;
+ if(yych <= '1') goto yy902;
+ if(yych <= '2') goto yy904;
+ if(yych <= '9') goto yy905;
goto yy53;
-yy816:
- YYDEBUG(816, *YYCURSOR);
+yy902:
+ YYDEBUG(902, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy817;
- if(yych <= '9') goto yy819;
- if(yych <= ':') goto yy820;
- goto yy817;
-yy817:
- YYDEBUG(817, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy903;
+ if(yych <= '9') goto yy905;
+ if(yych <= ':') goto yy906;
+ goto yy903;
+yy903:
+ YYDEBUG(903, *YYCURSOR);
{
int tz_not_found;
@@ -11720,261 +15337,258 @@ yy817:
s->time->i = timelib_get_nr((char **) &ptr, 2);
s->time->s = timelib_get_nr((char **) &ptr, 2);
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-yy818:
- YYDEBUG(818, *YYCURSOR);
+yy904:
+ YYDEBUG(904, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy817;
- if(yych >= '4') goto yy821;
- goto yy819;
+ if(yych <= '/') goto yy903;
+ if(yych >= '4') goto yy907;
+ goto yy905;
} else {
- if(yych <= '9') goto yy822;
- if(yych <= ':') goto yy820;
- goto yy817;
+ if(yych <= '9') goto yy908;
+ if(yych <= ':') goto yy906;
+ goto yy903;
}
-yy819:
- YYDEBUG(819, *YYCURSOR);
+yy905:
+ YYDEBUG(905, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych <= '5') goto yy821;
- if(yych <= '9') goto yy822;
- if(yych >= ';') goto yy817;
- goto yy820;
-yy820:
- YYDEBUG(820, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych <= '5') goto yy907;
+ if(yych <= '9') goto yy908;
+ if(yych >= ';') goto yy903;
+ goto yy906;
+yy906:
+ YYDEBUG(906, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych <= '5') goto yy821;
- if(yych <= '9') goto yy822;
- goto yy817;
-yy821:
- YYDEBUG(821, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych <= '5') goto yy907;
+ if(yych <= '9') goto yy908;
+ goto yy903;
+yy907:
+ YYDEBUG(907, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych >= ':') goto yy817;
- goto yy822;
-yy822:
- YYDEBUG(822, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych >= ':') goto yy903;
+ goto yy908;
+yy908:
+ YYDEBUG(908, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy817;
-yy823:
- YYDEBUG(823, *YYCURSOR);
+ goto yy903;
+yy909:
+ YYDEBUG(909, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy796;
- if(yych == 'v') goto yy796;
+ if(yych == 'V') goto yy882;
+ if(yych == 'v') goto yy882;
goto yy53;
-yy824:
- YYDEBUG(824, *YYCURSOR);
+yy910:
+ YYDEBUG(910, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy796;
- if(yych == 't') goto yy796;
+ if(yych == 'T') goto yy882;
+ if(yych == 't') goto yy882;
goto yy53;
-yy825:
- YYDEBUG(825, *YYCURSOR);
+yy911:
+ YYDEBUG(911, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy826;
+ if(yych == 'P') goto yy912;
if(yych != 'p') goto yy53;
- goto yy826;
-yy826:
- YYDEBUG(826, *YYCURSOR);
+ goto yy912;
+yy912:
+ YYDEBUG(912, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
- if(yych == '/') goto yy797;
+ if(yych == '/') goto yy883;
goto yy53;
} else {
- if(yych <= 'T') goto yy796;
- if(yych == 't') goto yy796;
+ if(yych <= 'T') goto yy882;
+ if(yych == 't') goto yy882;
goto yy53;
}
-yy827:
- YYDEBUG(827, *YYCURSOR);
+yy913:
+ YYDEBUG(913, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy796;
- if(yych == 'g') goto yy796;
+ if(yych == 'G') goto yy882;
+ if(yych == 'g') goto yy882;
goto yy53;
-yy828:
- YYDEBUG(828, *YYCURSOR);
+yy914:
+ YYDEBUG(914, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy796;
- if(yych == 'r') goto yy796;
+ if(yych == 'R') goto yy882;
+ if(yych == 'r') goto yy882;
goto yy53;
-yy829:
- YYDEBUG(829, *YYCURSOR);
+yy915:
+ YYDEBUG(915, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy796;
+ if(yych == 'R') goto yy882;
if(yych <= 'X') goto yy53;
- goto yy796;
+ goto yy882;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy796;
+ goto yy882;
} else {
- if(yych == 'y') goto yy796;
+ if(yych == 'y') goto yy882;
goto yy53;
}
}
-yy830:
- YYDEBUG(830, *YYCURSOR);
+yy916:
+ YYDEBUG(916, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy796;
- if(yych == 'b') goto yy796;
+ if(yych == 'B') goto yy882;
+ if(yych == 'b') goto yy882;
goto yy53;
-yy831:
- YYDEBUG(831, *YYCURSOR);
+yy917:
+ YYDEBUG(917, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy796;
+ if(yych == 'L') goto yy882;
if(yych <= 'M') goto yy53;
- goto yy796;
+ goto yy882;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy796;
+ goto yy882;
} else {
- if(yych == 'n') goto yy796;
+ if(yych == 'n') goto yy882;
goto yy53;
}
}
-yy832:
- YYDEBUG(832, *YYCURSOR);
+yy918:
+ YYDEBUG(918, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy796;
- if(yych == 'n') goto yy796;
+ if(yych == 'N') goto yy882;
+ if(yych == 'n') goto yy882;
goto yy53;
-yy833:
- YYDEBUG(833, *YYCURSOR);
+yy919:
+ YYDEBUG(919, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy842;
+ if(yych == 't') goto yy928;
goto yy53;
-yy834:
- YYDEBUG(834, *YYCURSOR);
+yy920:
+ YYDEBUG(920, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy842;
+ if(yych == 'd') goto yy928;
goto yy53;
-yy835:
- YYDEBUG(835, *YYCURSOR);
+yy921:
+ YYDEBUG(921, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy842;
+ if(yych == 'd') goto yy928;
goto yy53;
-yy836:
- YYDEBUG(836, *YYCURSOR);
+yy922:
+ YYDEBUG(922, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'h') goto yy842;
+ if(yych == 'h') goto yy928;
goto yy53;
-yy837:
- YYDEBUG(837, *YYCURSOR);
+yy923:
+ YYDEBUG(923, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy838;
-yy838:
- YYDEBUG(838, *YYCURSOR);
+ goto yy924;
+yy924:
+ YYDEBUG(924, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy839;
-yy839:
- YYDEBUG(839, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy925;
+yy925:
+ YYDEBUG(925, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy840;
-yy840:
- YYDEBUG(840, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy926;
+yy926:
+ YYDEBUG(926, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy841;
-yy841:
- YYDEBUG(841, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy927;
+yy927:
+ YYDEBUG(927, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy784;
-yy842:
- YYDEBUG(842, *YYCURSOR);
+ goto yy870;
+yy928:
+ YYDEBUG(928, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '/') goto yy837;
- goto yy784;
-yy843:
- YYDEBUG(843, *YYCURSOR);
+ if(yych == '/') goto yy923;
+ goto yy870;
+yy929:
+ YYDEBUG(929, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '-') goto yy617;
- if(yych <= '.') goto yy845;
- if(yych >= '0') goto yy617;
- goto yy844;
-yy844:
- YYDEBUG(844, *YYCURSOR);
+ if(yych <= ','){
+ if(yych == 0x09) goto yy931;
+ goto yy784;
+ } else {
+ if(yych <= '.') goto yy931;
+ if(yych >= '0') goto yy784;
+ goto yy930;
+ }
+yy930:
+ YYDEBUG(930, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case 'A': case 'a': goto yy790;
- case 'D': case 'd': goto yy794;
- case 'F': case 'f': goto yy788;
- case 'J': case 'j': goto yy787;
- case 'M': case 'm': goto yy789;
- case 'N': case 'n': goto yy793;
- case 'O': case 'o': goto yy792;
- case 'S': case 's': goto yy791;
+ case 'A': case 'a': goto yy876;
+ case 'D': case 'd': goto yy880;
+ case 'F': case 'f': goto yy874;
+ case 'J': case 'j': goto yy873;
+ case 'M': case 'm': goto yy875;
+ case 'N': case 'n': goto yy879;
+ case 'O': case 'o': goto yy878;
+ case 'S': case 's': goto yy877;
default: goto yy53;
}
-yy845:
- YYDEBUG(845, *YYCURSOR);
+yy931:
+ YYDEBUG(931, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy846;
- if(yych <= '1') goto yy847;
- if(yych <= '9') goto yy848;
- goto yy617;
-yy846:
- YYDEBUG(846, *YYCURSOR);
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy784;
+yy932:
+ YYDEBUG(932, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy849;
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy848;
+ if(yych <= '9') goto yy934;
goto yy53;
-yy847:
- YYDEBUG(847, *YYCURSOR);
+yy933:
+ YYDEBUG(933, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy849;
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
if(yych <= '/') goto yy53;
if(yych >= '3') goto yy53;
- goto yy848;
-yy848:
- YYDEBUG(848, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych != '.') goto yy53;
- goto yy849;
-yy849:
- YYDEBUG(849, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy53;
- if(yych >= ':') goto yy53;
- goto yy850;
-yy850:
- YYDEBUG(850, *YYCURSOR);
+ goto yy934;
+yy934:
+ YYDEBUG(934, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy729;
- if(yych <= '9') goto yy728;
- goto yy729;
-yy851:
- YYDEBUG(851, *YYCURSOR);
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
+ goto yy53;
+yy935:
+ YYDEBUG(935, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy879;
+ if(yych <= '9') goto yy970;
goto yy57;
-yy852:
- YYDEBUG(852, *YYCURSOR);
+yy936:
+ YYDEBUG(936, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy734;
- case '1': goto yy735;
+ case '0': goto yy945;
+ case '1': goto yy946;
case '2':
case '3':
case '4':
@@ -11982,128 +15596,206 @@ yy852:
case '6':
case '7':
case '8':
- case '9': goto yy736;
- case 'A': case 'a': goto yy856;
- case 'D': case 'd': goto yy860;
- case 'F': case 'f': goto yy854;
- case 'J': case 'j': goto yy853;
- case 'M': case 'm': goto yy855;
- case 'N': case 'n': goto yy859;
- case 'O': case 'o': goto yy858;
- case 'S': case 's': goto yy857;
+ case '9': goto yy947;
+ case 'A': case 'a': goto yy940;
+ case 'D': case 'd': goto yy944;
+ case 'F': case 'f': goto yy938;
+ case 'J': case 'j': goto yy937;
+ case 'M': case 'm': goto yy939;
+ case 'N': case 'n': goto yy943;
+ case 'O': case 'o': goto yy942;
+ case 'S': case 's': goto yy941;
default: goto yy53;
}
-yy853:
- YYDEBUG(853, *YYCURSOR);
+yy937:
+ YYDEBUG(937, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy878;
+ if(yych == 'A') goto yy969;
if(yych <= 'T') goto yy53;
- goto yy877;
+ goto yy968;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy878;
+ goto yy969;
} else {
- if(yych == 'u') goto yy877;
+ if(yych == 'u') goto yy968;
goto yy53;
}
}
-yy854:
- YYDEBUG(854, *YYCURSOR);
+yy938:
+ YYDEBUG(938, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy876;
- if(yych == 'e') goto yy876;
+ if(yych == 'E') goto yy967;
+ if(yych == 'e') goto yy967;
goto yy53;
-yy855:
- YYDEBUG(855, *YYCURSOR);
+yy939:
+ YYDEBUG(939, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy875;
- if(yych == 'a') goto yy875;
+ if(yych == 'A') goto yy966;
+ if(yych == 'a') goto yy966;
goto yy53;
-yy856:
- YYDEBUG(856, *YYCURSOR);
+yy940:
+ YYDEBUG(940, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy874;
+ if(yych == 'P') goto yy965;
if(yych <= 'T') goto yy53;
- goto yy873;
+ goto yy964;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy874;
+ goto yy965;
} else {
- if(yych == 'u') goto yy873;
+ if(yych == 'u') goto yy964;
goto yy53;
}
}
-yy857:
- YYDEBUG(857, *YYCURSOR);
+yy941:
+ YYDEBUG(941, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy871;
- if(yych == 'e') goto yy871;
+ if(yych == 'E') goto yy962;
+ if(yych == 'e') goto yy962;
goto yy53;
-yy858:
- YYDEBUG(858, *YYCURSOR);
+yy942:
+ YYDEBUG(942, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy870;
- if(yych == 'c') goto yy870;
+ if(yych == 'C') goto yy961;
+ if(yych == 'c') goto yy961;
goto yy53;
-yy859:
- YYDEBUG(859, *YYCURSOR);
+yy943:
+ YYDEBUG(943, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy869;
- if(yych == 'o') goto yy869;
+ if(yych == 'O') goto yy960;
+ if(yych == 'o') goto yy960;
goto yy53;
-yy860:
- YYDEBUG(860, *YYCURSOR);
+yy944:
+ YYDEBUG(944, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy861;
- if(yych != 'e') goto yy53;
- goto yy861;
-yy861:
- YYDEBUG(861, *YYCURSOR);
+ if(yych == 'E') goto yy952;
+ if(yych == 'e') goto yy952;
+ goto yy53;
+yy945:
+ YYDEBUG(945, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == '-') goto yy948;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy947;
+ goto yy53;
+yy946:
+ YYDEBUG(946, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy862;
+ if(yych == '-') goto yy948;
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy947;
+yy947:
+ YYDEBUG(947, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '-') goto yy53;
+ goto yy948;
+yy948:
+ YYDEBUG(948, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '2') goto yy949;
+ if(yych <= '3') goto yy950;
+ if(yych <= '9') goto yy951;
+ goto yy53;
+yy949:
+ YYDEBUG(949, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy951;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy950:
+ YYDEBUG(950, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '1') goto yy951;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy951:
+ YYDEBUG(951, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'q'){
+ if(yych == 'n') goto yy864;
+ goto yy860;
+ } else {
+ if(yych <= 'r') goto yy865;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+yy952:
+ YYDEBUG(952, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'C') goto yy953;
if(yych != 'c') goto yy53;
- goto yy862;
-yy862:
- YYDEBUG(862, *YYCURSOR);
+ goto yy953;
+yy953:
+ YYDEBUG(953, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy863;
-yy863:
- YYDEBUG(863, *YYCURSOR);
+ goto yy954;
+yy954:
+ YYDEBUG(954, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy864;
- if(yych <= '2') goto yy865;
- if(yych <= '3') goto yy866;
+ if(yych <= '0') goto yy955;
+ if(yych <= '2') goto yy956;
+ if(yych <= '3') goto yy957;
goto yy53;
-yy864:
- YYDEBUG(864, *YYCURSOR);
+yy955:
+ YYDEBUG(955, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy867;
+ if(yych <= '9') goto yy958;
goto yy53;
-yy865:
- YYDEBUG(865, *YYCURSOR);
+yy956:
+ YYDEBUG(956, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy867;
+ if(yych <= '9') goto yy958;
goto yy53;
-yy866:
- YYDEBUG(866, *YYCURSOR);
+yy957:
+ YYDEBUG(957, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '2') goto yy53;
- goto yy867;
-yy867:
- YYDEBUG(867, *YYCURSOR);
+ goto yy958;
+yy958:
+ YYDEBUG(958, *YYCURSOR);
++YYCURSOR;
- goto yy868;
-yy868:
- YYDEBUG(868, *YYCURSOR);
+ goto yy959;
+yy959:
+ YYDEBUG(959, *YYCURSOR);
{
DEBUG_OUTPUT("pgtextreverse");
@@ -12116,110 +15808,98 @@ yy868:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-yy869:
- YYDEBUG(869, *YYCURSOR);
+yy960:
+ YYDEBUG(960, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy862;
- if(yych == 'v') goto yy862;
+ if(yych == 'V') goto yy953;
+ if(yych == 'v') goto yy953;
goto yy53;
-yy870:
- YYDEBUG(870, *YYCURSOR);
+yy961:
+ YYDEBUG(961, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy862;
- if(yych == 't') goto yy862;
+ if(yych == 'T') goto yy953;
+ if(yych == 't') goto yy953;
goto yy53;
-yy871:
- YYDEBUG(871, *YYCURSOR);
+yy962:
+ YYDEBUG(962, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy872;
+ if(yych == 'P') goto yy963;
if(yych != 'p') goto yy53;
- goto yy872;
-yy872:
- YYDEBUG(872, *YYCURSOR);
+ goto yy963;
+yy963:
+ YYDEBUG(963, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
- if(yych == '-') goto yy863;
+ if(yych == '-') goto yy954;
goto yy53;
} else {
- if(yych <= 'T') goto yy862;
- if(yych == 't') goto yy862;
+ if(yych <= 'T') goto yy953;
+ if(yych == 't') goto yy953;
goto yy53;
}
-yy873:
- YYDEBUG(873, *YYCURSOR);
+yy964:
+ YYDEBUG(964, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy862;
- if(yych == 'g') goto yy862;
+ if(yych == 'G') goto yy953;
+ if(yych == 'g') goto yy953;
goto yy53;
-yy874:
- YYDEBUG(874, *YYCURSOR);
+yy965:
+ YYDEBUG(965, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy862;
- if(yych == 'r') goto yy862;
+ if(yych == 'R') goto yy953;
+ if(yych == 'r') goto yy953;
goto yy53;
-yy875:
- YYDEBUG(875, *YYCURSOR);
+yy966:
+ YYDEBUG(966, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy862;
+ if(yych == 'R') goto yy953;
if(yych <= 'X') goto yy53;
- goto yy862;
+ goto yy953;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy862;
+ goto yy953;
} else {
- if(yych == 'y') goto yy862;
+ if(yych == 'y') goto yy953;
goto yy53;
}
}
-yy876:
- YYDEBUG(876, *YYCURSOR);
+yy967:
+ YYDEBUG(967, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy862;
- if(yych == 'b') goto yy862;
+ if(yych == 'B') goto yy953;
+ if(yych == 'b') goto yy953;
goto yy53;
-yy877:
- YYDEBUG(877, *YYCURSOR);
+yy968:
+ YYDEBUG(968, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy862;
+ if(yych == 'L') goto yy953;
if(yych <= 'M') goto yy53;
- goto yy862;
+ goto yy953;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy862;
+ goto yy953;
} else {
- if(yych == 'n') goto yy862;
+ if(yych == 'n') goto yy953;
goto yy53;
}
}
-yy878:
- YYDEBUG(878, *YYCURSOR);
+yy969:
+ YYDEBUG(969, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy862;
- if(yych == 'n') goto yy862;
+ if(yych == 'N') goto yy953;
+ if(yych == 'n') goto yy953;
goto yy53;
-yy879:
- YYDEBUG(879, *YYCURSOR);
+yy970:
+ YYDEBUG(970, *YYCURSOR);
yyaccept = 14;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -12228,25 +15908,26 @@ yy879:
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm':
case 'n':
case 'o': case 's':
- case 't': case 'w': case 'y': goto yy884;
- case '-': goto yy881;
- case '.': goto yy887;
- case '/': goto yy882;
- case '0': goto yy900;
- case '1': goto yy901;
- case '2': goto yy902;
- case '3': goto yy903;
+ case 't': case 'w': case 'y': goto yy975;
+ case '-': goto yy972;
+ case '.': goto yy976;
+ case '/': goto yy973;
+ case '0': goto yy989;
+ case '1': goto yy990;
+ case '2': goto yy992;
+ case '3': goto yy993;
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy51;
- case 'W': goto yy904;
- default: goto yy880;
+ case ':': goto yy991;
+ case 'W': goto yy994;
+ default: goto yy971;
}
-yy880:
- YYDEBUG(880, *YYCURSOR);
+yy971:
+ YYDEBUG(971, *YYCURSOR);
{
DEBUG_OUTPUT("year4");
@@ -12255,13 +15936,13 @@ yy880:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-yy881:
- YYDEBUG(881, *YYCURSOR);
+yy972:
+ YYDEBUG(972, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy1046;
- case '1': goto yy1047;
+ case '0': goto yy1156;
+ case '1': goto yy1157;
case '2':
case '3':
case '4':
@@ -12269,126 +15950,76 @@ yy881:
case '6':
case '7':
case '8':
- case '9': goto yy1048;
- case 'A': case 'a': goto yy1041;
- case 'D': case 'd': goto yy1045;
- case 'F': case 'f': goto yy1039;
- case 'J': case 'j': goto yy1038;
- case 'M': case 'm': goto yy1040;
- case 'N': case 'n': goto yy1044;
- case 'O': case 'o': goto yy1043;
- case 'S': case 's': goto yy1042;
- default: goto yy886;
+ case '9': goto yy1158;
+ case 'A': case 'a': goto yy1151;
+ case 'D': case 'd': goto yy1155;
+ case 'F': case 'f': goto yy1149;
+ case 'J': case 'j': goto yy1148;
+ case 'M': case 'm': goto yy1150;
+ case 'N': case 'n': goto yy1154;
+ case 'O': case 'o': goto yy1153;
+ case 'S': case 's': goto yy1152;
+ default: goto yy1121;
}
-yy882:
- YYDEBUG(882, *YYCURSOR);
+yy973:
+ YYDEBUG(973, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy1019;
- if(yych <= '1') goto yy1020;
- if(yych <= '9') goto yy1021;
+ if(yych <= '0') goto yy1129;
+ if(yych <= '1') goto yy1130;
+ if(yych <= '9') goto yy1131;
goto yy53;
-yy883:
- YYDEBUG(883, *YYCURSOR);
+yy974:
+ YYDEBUG(974, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR;
- goto yy884;
-yy884:
- YYDEBUG(884, *YYCURSOR);
+ goto yy975;
+yy975:
+ YYDEBUG(975, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy883;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy974;
case '-':
- case '.': goto yy885;
- case 'A': case 'a': goto yy895;
- case 'D': case 'd': goto yy899;
- case 'F': case 'f': goto yy893;
+ case '.': goto yy1120;
+ case 'A': case 'a': goto yy984;
+ case 'D': case 'd': goto yy988;
+ case 'F': case 'f': goto yy982;
case 'H': case 'h': goto yy60;
- case 'I': goto yy888;
- case 'J': case 'j': goto yy892;
- case 'M': case 'm': goto yy894;
- case 'N': case 'n': goto yy898;
- case 'O': case 'o': goto yy897;
- case 'S': case 's': goto yy896;
+ case 'I': goto yy977;
+ case 'J': case 'j': goto yy981;
+ case 'M': case 'm': goto yy983;
+ case 'N': case 'n': goto yy987;
+ case 'O': case 'o': goto yy986;
+ case 'S': case 's': goto yy985;
case 'T': case 't': goto yy65;
- case 'V': goto yy890;
+ case 'V': goto yy979;
case 'W': case 'w': goto yy62;
- case 'X': goto yy891;
+ case 'X': goto yy980;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy885:
- YYDEBUG(885, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
- yych = *YYCURSOR;
- goto yy886;
-yy886:
- YYDEBUG(886, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
- case '-':
- case '.': goto yy885;
- case 'A': case 'a': goto yy895;
- case 'D': case 'd': goto yy1011;
- case 'F': case 'f': goto yy1008;
- case 'I': goto yy888;
- case 'J': case 'j': goto yy892;
- case 'M': case 'm': goto yy1009;
- case 'N': case 'n': goto yy898;
- case 'O': case 'o': goto yy897;
- case 'S': case 's': goto yy1010;
- case 'V': goto yy890;
- case 'X': goto yy891;
- default: goto yy53;
- }
-yy887:
- YYDEBUG(887, *YYCURSOR);
+yy976:
+ YYDEBUG(976, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy886;
- if(yych <= '0') goto yy1005;
- if(yych <= '2') goto yy1006;
- if(yych <= '3') goto yy1007;
- goto yy886;
-yy888:
- YYDEBUG(888, *YYCURSOR);
+ if(yych <= '/') goto yy1121;
+ if(yych <= '0') goto yy1113;
+ if(yych <= '2') goto yy1114;
+ if(yych <= '3') goto yy1115;
+ goto yy1121;
+yy977:
+ YYDEBUG(977, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= 'U'){
- if(yych == 'I') goto yy1004;
- goto yy889;
+ if(yych == 'I') goto yy1112;
+ goto yy978;
} else {
- if(yych == 'W') goto yy889;
- if(yych <= 'X') goto yy958;
- goto yy889;
+ if(yych == 'W') goto yy978;
+ if(yych <= 'X') goto yy1066;
+ goto yy978;
}
-yy889:
- YYDEBUG(889, *YYCURSOR);
+yy978:
+ YYDEBUG(978, *YYCURSOR);
{
DEBUG_OUTPUT("datenodayrev");
@@ -12401,38 +16032,38 @@ yy889:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-yy890:
- YYDEBUG(890, *YYCURSOR);
+yy979:
+ YYDEBUG(979, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy1002;
- goto yy889;
-yy891:
- YYDEBUG(891, *YYCURSOR);
+ if(yych == 'I') goto yy1110;
+ goto yy978;
+yy980:
+ YYDEBUG(980, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy1001;
- goto yy889;
-yy892:
- YYDEBUG(892, *YYCURSOR);
+ if(yych == 'I') goto yy1109;
+ goto yy978;
+yy981:
+ YYDEBUG(981, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy994;
+ if(yych == 'A') goto yy1102;
if(yych <= 'T') goto yy53;
- goto yy993;
+ goto yy1101;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy994;
+ goto yy1102;
} else {
- if(yych == 'u') goto yy993;
+ if(yych == 'u') goto yy1101;
goto yy53;
}
}
-yy893:
- YYDEBUG(893, *YYCURSOR);
+yy982:
+ YYDEBUG(982, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= 'N'){
- if(yych == 'E') goto yy987;
+ if(yych == 'E') goto yy1095;
goto yy53;
} else {
if(yych <= 'O') goto yy83;
@@ -12441,7 +16072,7 @@ yy893:
}
} else {
if(yych <= 'n'){
- if(yych == 'e') goto yy987;
+ if(yych == 'e') goto yy1095;
goto yy53;
} else {
if(yych <= 'o') goto yy83;
@@ -12449,12 +16080,12 @@ yy893:
goto yy53;
}
}
-yy894:
- YYDEBUG(894, *YYCURSOR);
+yy983:
+ YYDEBUG(983, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= 'H'){
- if(yych == 'A') goto yy984;
+ if(yych == 'A') goto yy1092;
goto yy53;
} else {
if(yych <= 'I') goto yy110;
@@ -12463,7 +16094,7 @@ yy894:
}
} else {
if(yych <= 'h'){
- if(yych == 'a') goto yy984;
+ if(yych == 'a') goto yy1092;
goto yy53;
} else {
if(yych <= 'i') goto yy110;
@@ -12471,31 +16102,31 @@ yy894:
goto yy53;
}
}
-yy895:
- YYDEBUG(895, *YYCURSOR);
+yy984:
+ YYDEBUG(984, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy978;
+ if(yych == 'P') goto yy1086;
if(yych <= 'T') goto yy53;
- goto yy977;
+ goto yy1085;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy978;
+ goto yy1086;
} else {
- if(yych == 'u') goto yy977;
+ if(yych == 'u') goto yy1085;
goto yy53;
}
}
-yy896:
- YYDEBUG(896, *YYCURSOR);
+yy985:
+ YYDEBUG(985, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy970;
+ if(yych <= 'E') goto yy1078;
if(yych <= 'T') goto yy53;
goto yy118;
}
@@ -12504,75 +16135,82 @@ yy896:
if(yych == 'a') goto yy119;
goto yy53;
} else {
- if(yych <= 'e') goto yy970;
+ if(yych <= 'e') goto yy1078;
if(yych == 'u') goto yy118;
goto yy53;
}
}
-yy897:
- YYDEBUG(897, *YYCURSOR);
+yy986:
+ YYDEBUG(986, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy965;
- if(yych == 'c') goto yy965;
+ if(yych == 'C') goto yy1073;
+ if(yych == 'c') goto yy1073;
goto yy53;
-yy898:
- YYDEBUG(898, *YYCURSOR);
+yy987:
+ YYDEBUG(987, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy959;
- if(yych == 'o') goto yy959;
+ if(yych == 'O') goto yy1067;
+ if(yych == 'o') goto yy1067;
goto yy53;
-yy899:
- YYDEBUG(899, *YYCURSOR);
+yy988:
+ YYDEBUG(988, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych == 'A') goto yy106;
if(yych <= 'D') goto yy53;
- goto yy952;
+ goto yy1060;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
goto yy106;
} else {
- if(yych == 'e') goto yy952;
+ if(yych == 'e') goto yy1060;
goto yy53;
}
}
-yy900:
- YYDEBUG(900, *YYCURSOR);
+yy989:
+ YYDEBUG(989, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy950;
- if(yych <= '9') goto yy951;
+ if(yych <= '0') goto yy1058;
+ if(yych <= '9') goto yy1059;
goto yy57;
-yy901:
- YYDEBUG(901, *YYCURSOR);
+yy990:
+ YYDEBUG(990, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '2') goto yy917;
- if(yych <= '9') goto yy916;
+ if(yych <= '2') goto yy1027;
+ if(yych <= '9') goto yy1006;
goto yy57;
-yy902:
- YYDEBUG(902, *YYCURSOR);
+yy991:
+ YYDEBUG(991, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '0') goto yy1007;
+ if(yych <= '1') goto yy1008;
+ goto yy53;
+yy992:
+ YYDEBUG(992, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy916;
+ if(yych <= '9') goto yy1006;
goto yy57;
-yy903:
- YYDEBUG(903, *YYCURSOR);
+yy993:
+ YYDEBUG(993, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '5') goto yy912;
- if(yych <= '6') goto yy913;
+ if(yych <= '5') goto yy1002;
+ if(yych <= '6') goto yy1003;
if(yych <= '9') goto yy51;
goto yy57;
-yy904:
- YYDEBUG(904, *YYCURSOR);
+yy994:
+ YYDEBUG(994, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy905;
- if(yych <= '4') goto yy906;
- goto yy907;
+ if(yych <= '0') goto yy995;
+ if(yych <= '4') goto yy996;
+ goto yy997;
} else {
if(yych <= 'E'){
if(yych <= 'D') goto yy53;
@@ -12582,32 +16220,32 @@ yy904:
goto yy53;
}
}
-yy905:
- YYDEBUG(905, *YYCURSOR);
+yy995:
+ YYDEBUG(995, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy908;
+ if(yych <= '9') goto yy998;
goto yy53;
-yy906:
- YYDEBUG(906, *YYCURSOR);
+yy996:
+ YYDEBUG(996, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy908;
+ if(yych <= '9') goto yy998;
goto yy53;
-yy907:
- YYDEBUG(907, *YYCURSOR);
+yy997:
+ YYDEBUG(997, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '4') goto yy53;
- goto yy908;
-yy908:
- YYDEBUG(908, *YYCURSOR);
+ goto yy998;
+yy998:
+ YYDEBUG(998, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy909;
- if(yych <= '7') goto yy910;
- goto yy909;
-yy909:
- YYDEBUG(909, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy999;
+ if(yych <= '7') goto yy1000;
+ goto yy999;
+yy999:
+ YYDEBUG(999, *YYCURSOR);
{
timelib_sll w, d;
@@ -12626,12 +16264,12 @@ yy909:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-yy910:
- YYDEBUG(910, *YYCURSOR);
+yy1000:
+ YYDEBUG(1000, *YYCURSOR);
++YYCURSOR;
- goto yy911;
-yy911:
- YYDEBUG(911, *YYCURSOR);
+ goto yy1001;
+yy1001:
+ YYDEBUG(1001, *YYCURSOR);
{
timelib_sll w, d;
@@ -12650,73 +16288,78 @@ yy911:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-yy912:
- YYDEBUG(912, *YYCURSOR);
+yy1002:
+ YYDEBUG(1002, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy913:
- YYDEBUG(913, *YYCURSOR);
+yy1003:
+ YYDEBUG(1003, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '6') goto yy914;
+ if(yych <= '6') goto yy1004;
if(yych <= '9') goto yy51;
goto yy57;
-yy914:
- YYDEBUG(914, *YYCURSOR);
+yy1004:
+ YYDEBUG(1004, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy915;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych >= ' ') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'E') goto yy915;
- if(yych <= 'F') goto yy57;
- goto yy915;
+ if(yych == 'D') goto yy57;
+ if(yych >= 'F') goto yy57;
+ goto yy1005;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy915;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych >= 'M') goto yy57;
+ goto yy1005;
} else {
+ if(yych <= 'R') goto yy1005;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy915;
+ if(yych >= 'W') goto yy57;
+ goto yy1005;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy915;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych >= 'd') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'g') goto yy915;
- if(yych <= 'h') goto yy57;
- goto yy915;
+ if(yych == 'f') goto yy57;
+ if(yych >= 'h') goto yy57;
+ goto yy1005;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
- if(yych <= 'r') goto yy915;
- if(yych <= 't') goto yy57;
- goto yy915;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych >= 's') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'x') goto yy915;
- if(yych <= 'y') goto yy57;
- goto yy915;
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
}
}
}
-yy915:
- YYDEBUG(915, *YYCURSOR);
+yy1005:
+ YYDEBUG(1005, *YYCURSOR);
{
DEBUG_OUTPUT("pgydotd");
@@ -12729,110 +16372,427 @@ yy915:
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-yy916:
- YYDEBUG(916, *YYCURSOR);
+yy1006:
+ YYDEBUG(1006, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy917:
- YYDEBUG(917, *YYCURSOR);
+yy1007:
+ YYDEBUG(1007, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '0') goto yy53;
+ if(yych <= '9') goto yy1009;
+ goto yy53;
+yy1008:
+ YYDEBUG(1008, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy1009;
+yy1009:
+ YYDEBUG(1009, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1010;
+yy1010:
+ YYDEBUG(1010, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '0') goto yy1011;
+ if(yych <= '2') goto yy1012;
+ if(yych <= '3') goto yy1013;
+ goto yy53;
+yy1011:
+ YYDEBUG(1011, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '0') goto yy53;
+ if(yych <= '9') goto yy1014;
+ goto yy53;
+yy1012:
+ YYDEBUG(1012, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1014;
+ goto yy53;
+yy1013:
+ YYDEBUG(1013, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '2') goto yy53;
+ goto yy1014;
+yy1014:
+ YYDEBUG(1014, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ' ') goto yy53;
+ goto yy1015;
+yy1015:
+ YYDEBUG(1015, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '1') goto yy1016;
+ if(yych <= '2') goto yy1017;
+ goto yy53;
+yy1016:
+ YYDEBUG(1016, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1018;
+ goto yy53;
+yy1017:
+ YYDEBUG(1017, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '4') goto yy53;
+ goto yy1018;
+yy1018:
+ YYDEBUG(1018, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1019;
+yy1019:
+ YYDEBUG(1019, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '6') goto yy53;
+ goto yy1020;
+yy1020:
+ YYDEBUG(1020, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy1021;
+yy1021:
+ YYDEBUG(1021, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1022;
+yy1022:
+ YYDEBUG(1022, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '5') goto yy1023;
+ if(yych <= '6') goto yy1024;
+ goto yy53;
+yy1023:
+ YYDEBUG(1023, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1025;
+ goto yy53;
+yy1024:
+ YYDEBUG(1024, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '0') goto yy53;
+ goto yy1025;
+yy1025:
+ YYDEBUG(1025, *YYCURSOR);
+ ++YYCURSOR;
+ goto yy1026;
+yy1026:
+ YYDEBUG(1026, *YYCURSOR);
+
+{
+ int tz_not_found;
+ DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
+ TIMELIB_INIT;
+ TIMELIB_HAVE_TIME();
+ TIMELIB_HAVE_DATE();
+ s->time->y = timelib_get_nr((char **) &ptr, 4);
+ s->time->m = timelib_get_nr((char **) &ptr, 2);
+ s->time->d = timelib_get_nr((char **) &ptr, 2);
+ s->time->h = timelib_get_nr((char **) &ptr, 2);
+ s->time->i = timelib_get_nr((char **) &ptr, 2);
+ s->time->s = timelib_get_nr((char **) &ptr, 2);
+ if (*ptr == '.') {
+ s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
+ if (*ptr) { /* timezone is optional */
+ s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
+ }
+ }
+ TIMELIB_DEINIT;
+ return TIMELIB_XMLRPC_SOAP;
+ }
+yy1027:
+ YYDEBUG(1027, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy57;
- if(yych >= '1') goto yy919;
- goto yy918;
+ if(yych >= '1') goto yy1029;
+ goto yy1028;
} else {
- if(yych <= '3') goto yy920;
- if(yych <= '9') goto yy914;
+ if(yych <= '3') goto yy1030;
+ if(yych <= '9') goto yy1004;
goto yy57;
}
-yy918:
- YYDEBUG(918, *YYCURSOR);
+yy1028:
+ YYDEBUG(1028, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy51;
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy921;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1005;
+ goto yy51;
+ } else {
+ if(yych <= '9') goto yy1031;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy919:
- YYDEBUG(919, *YYCURSOR);
+yy1029:
+ YYDEBUG(1029, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy921;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1005;
+ if(yych <= '9') goto yy1031;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy920:
- YYDEBUG(920, *YYCURSOR);
+yy1030:
+ YYDEBUG(1030, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1': goto yy921;
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy51;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '1'){
+ if(yych <= '/') goto yy1005;
+ goto yy1031;
+ } else {
+ if(yych <= '9') goto yy51;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy921:
- YYDEBUG(921, *YYCURSOR);
+yy1031:
+ YYDEBUG(1031, *YYCURSOR);
yyaccept = 16;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': goto yy923;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- case 't': goto yy924;
- default: goto yy922;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych >= ' ') goto yy56;
+ goto yy1032;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych >= 'F') goto yy63;
+ goto yy1032;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych >= 'M') goto yy59;
+ goto yy1032;
+ } else {
+ if(yych <= 'S'){
+ if(yych >= 'S') goto yy58;
+ goto yy1032;
+ } else {
+ if(yych <= 'T') goto yy1033;
+ if(yych >= 'W') goto yy62;
+ goto yy1032;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych >= 'd') goto yy61;
+ goto yy1032;
+ } else {
+ if(yych <= 'f'){
+ if(yych >= 'f') goto yy63;
+ goto yy1032;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy1032;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy1032;
+ if(yych <= 's') goto yy58;
+ goto yy1034;
+ } else {
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy62;
+ goto yy1032;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy1032;
+ }
+ }
+ }
}
-yy922:
- YYDEBUG(922, *YYCURSOR);
+yy1032:
+ YYDEBUG(1032, *YYCURSOR);
{
DEBUG_OUTPUT("datenocolon");
@@ -12844,16 +16804,16 @@ yy922:
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-yy923:
- YYDEBUG(923, *YYCURSOR);
+yy1033:
+ YYDEBUG(1033, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy940;
- goto yy941;
+ if(yych <= '1') goto yy1048;
+ goto yy1049;
} else {
- if(yych <= '9') goto yy942;
+ if(yych <= '9') goto yy1050;
if(yych <= 'G') goto yy53;
goto yy66;
}
@@ -12867,16 +16827,16 @@ yy923:
goto yy53;
}
}
-yy924:
- YYDEBUG(924, *YYCURSOR);
+yy1034:
+ YYDEBUG(1034, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '2') goto yy926;
- goto yy925;
+ if(yych >= '2') goto yy1036;
+ goto yy1035;
} else {
- if(yych <= '9') goto yy927;
+ if(yych <= '9') goto yy1037;
if(yych <= 'G') goto yy53;
goto yy66;
}
@@ -12890,693 +16850,689 @@ yy924:
goto yy53;
}
}
-yy925:
- YYDEBUG(925, *YYCURSOR);
+yy1035:
+ YYDEBUG(1035, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy934;
- if(yych <= '9') goto yy927;
+ if(yych <= '5') goto yy1042;
+ if(yych <= '9') goto yy1037;
goto yy53;
-yy926:
- YYDEBUG(926, *YYCURSOR);
+yy1036:
+ YYDEBUG(1036, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy934;
- if(yych <= '5') goto yy928;
+ if(yych <= '3') goto yy1042;
+ if(yych <= '5') goto yy1038;
goto yy53;
-yy927:
- YYDEBUG(927, *YYCURSOR);
+yy1037:
+ YYDEBUG(1037, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy928;
-yy928:
- YYDEBUG(928, *YYCURSOR);
+ goto yy1038;
+yy1038:
+ YYDEBUG(1038, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy929;
-yy929:
- YYDEBUG(929, *YYCURSOR);
+ goto yy1039;
+yy1039:
+ YYDEBUG(1039, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy930;
- if(yych <= '6') goto yy931;
+ if(yych <= '5') goto yy1040;
+ if(yych <= '6') goto yy1041;
goto yy53;
-yy930:
- YYDEBUG(930, *YYCURSOR);
+yy1040:
+ YYDEBUG(1040, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy932;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy931:
- YYDEBUG(931, *YYCURSOR);
+yy1041:
+ YYDEBUG(1041, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != '0') goto yy53;
- goto yy932;
-yy932:
- YYDEBUG(932, *YYCURSOR);
- ++YYCURSOR;
- goto yy933;
-yy933:
- YYDEBUG(933, *YYCURSOR);
-
-{
- int tz_not_found;
- DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx");
- TIMELIB_INIT;
- TIMELIB_HAVE_TIME();
- TIMELIB_HAVE_DATE();
- s->time->y = timelib_get_nr((char **) &ptr, 4);
- s->time->m = timelib_get_nr((char **) &ptr, 2);
- s->time->d = timelib_get_nr((char **) &ptr, 2);
- s->time->h = timelib_get_nr((char **) &ptr, 2);
- s->time->i = timelib_get_nr((char **) &ptr, 2);
- s->time->s = timelib_get_nr((char **) &ptr, 2);
- if (*ptr == '.') {
- s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
- if (*ptr) { /* timezone is optional */
- s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
- }
- }
- TIMELIB_DEINIT;
- return TIMELIB_XMLRPC_SOAP;
- }
-yy934:
- YYDEBUG(934, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy53;
+yy1042:
+ YYDEBUG(1042, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy935;
- if(yych <= '9') goto yy929;
+ if(yych <= '5') goto yy1043;
+ if(yych <= '9') goto yy1039;
goto yy53;
-yy935:
- YYDEBUG(935, *YYCURSOR);
+yy1043:
+ YYDEBUG(1043, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy936;
- if(yych <= '6') goto yy937;
- if(yych <= '9') goto yy929;
+ if(yych <= '5') goto yy1044;
+ if(yych <= '6') goto yy1045;
+ if(yych <= '9') goto yy1039;
goto yy53;
-yy936:
- YYDEBUG(936, *YYCURSOR);
+yy1044:
+ YYDEBUG(1044, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy938;
- if(yych <= '6') goto yy939;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1046;
+ if(yych <= '6') goto yy1047;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy937:
- YYDEBUG(937, *YYCURSOR);
+yy1045:
+ YYDEBUG(1045, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy938;
- if(yych <= '5') goto yy930;
- if(yych <= '6') goto yy931;
+ if(yych <= '0') goto yy1046;
+ if(yych <= '5') goto yy1040;
+ if(yych <= '6') goto yy1041;
goto yy53;
-yy938:
- YYDEBUG(938, *YYCURSOR);
+yy1046:
+ YYDEBUG(1046, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy939:
- YYDEBUG(939, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1047:
+ YYDEBUG(1047, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
- goto yy933;
-yy940:
- YYDEBUG(940, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy1026;
+yy1048:
+ YYDEBUG(1048, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy949;
- if(yych <= '9') goto yy942;
- if(yych <= ':') goto yy943;
+ if(yych <= '5') goto yy1057;
+ if(yych <= '9') goto yy1050;
+ if(yych <= ':') goto yy1051;
goto yy53;
-yy941:
- YYDEBUG(941, *YYCURSOR);
+yy1049:
+ YYDEBUG(1049, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy949;
- goto yy928;
+ if(yych <= '3') goto yy1057;
+ goto yy1038;
} else {
- if(yych == ':') goto yy943;
+ if(yych == ':') goto yy1051;
goto yy53;
}
-yy942:
- YYDEBUG(942, *YYCURSOR);
+yy1050:
+ YYDEBUG(1050, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy928;
+ if(yych <= '5') goto yy1038;
if(yych != ':') goto yy53;
- goto yy943;
-yy943:
- YYDEBUG(943, *YYCURSOR);
+ goto yy1051;
+yy1051:
+ YYDEBUG(1051, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy944;
-yy944:
- YYDEBUG(944, *YYCURSOR);
+ goto yy1052;
+yy1052:
+ YYDEBUG(1052, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy945;
-yy945:
- YYDEBUG(945, *YYCURSOR);
+ goto yy1053;
+yy1053:
+ YYDEBUG(1053, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy946;
-yy946:
- YYDEBUG(946, *YYCURSOR);
+ goto yy1054;
+yy1054:
+ YYDEBUG(1054, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy947;
- if(yych <= '6') goto yy948;
+ if(yych <= '5') goto yy1055;
+ if(yych <= '6') goto yy1056;
goto yy53;
-yy947:
- YYDEBUG(947, *YYCURSOR);
+yy1055:
+ YYDEBUG(1055, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy932;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy948:
- YYDEBUG(948, *YYCURSOR);
+yy1056:
+ YYDEBUG(1056, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
+ if(yych == '0') goto yy1025;
goto yy53;
-yy949:
- YYDEBUG(949, *YYCURSOR);
+yy1057:
+ YYDEBUG(1057, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy935;
- if(yych <= '9') goto yy929;
- if(yych <= ':') goto yy943;
+ if(yych <= '5') goto yy1043;
+ if(yych <= '9') goto yy1039;
+ if(yych <= ':') goto yy1051;
goto yy53;
-yy950:
- YYDEBUG(950, *YYCURSOR);
+yy1058:
+ YYDEBUG(1058, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
if(yych <= '0') goto yy51;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy951:
- YYDEBUG(951, *YYCURSOR);
+yy1059:
+ YYDEBUG(1059, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy918;
- goto yy919;
+ if(yych <= '0') goto yy1028;
+ goto yy1029;
} else {
- if(yych <= '3') goto yy920;
- if(yych <= '9') goto yy914;
+ if(yych <= '3') goto yy1030;
+ if(yych <= '9') goto yy1004;
goto yy57;
}
-yy952:
- YYDEBUG(952, *YYCURSOR);
+yy1060:
+ YYDEBUG(1060, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy953;
+ if(yych == 'C') goto yy1061;
if(yych != 'c') goto yy53;
- goto yy953;
-yy953:
- YYDEBUG(953, *YYCURSOR);
+ goto yy1061;
+yy1061:
+ YYDEBUG(1061, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy954;
- if(yych != 'e') goto yy889;
- goto yy954;
-yy954:
- YYDEBUG(954, *YYCURSOR);
+ if(yych == 'E') goto yy1062;
+ if(yych != 'e') goto yy978;
+ goto yy1062;
+yy1062:
+ YYDEBUG(1062, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy955;
+ if(yych == 'M') goto yy1063;
if(yych != 'm') goto yy53;
- goto yy955;
-yy955:
- YYDEBUG(955, *YYCURSOR);
+ goto yy1063;
+yy1063:
+ YYDEBUG(1063, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy956;
+ if(yych == 'B') goto yy1064;
if(yych != 'b') goto yy53;
- goto yy956;
-yy956:
- YYDEBUG(956, *YYCURSOR);
+ goto yy1064;
+yy1064:
+ YYDEBUG(1064, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy957;
+ if(yych == 'E') goto yy1065;
if(yych != 'e') goto yy53;
- goto yy957;
-yy957:
- YYDEBUG(957, *YYCURSOR);
+ goto yy1065;
+yy1065:
+ YYDEBUG(1065, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
+ if(yych == 'R') goto yy1066;
if(yych != 'r') goto yy53;
- goto yy958;
-yy958:
- YYDEBUG(958, *YYCURSOR);
+ goto yy1066;
+yy1066:
+ YYDEBUG(1066, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy889;
-yy959:
- YYDEBUG(959, *YYCURSOR);
+ goto yy978;
+yy1067:
+ YYDEBUG(1067, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy960;
+ if(yych == 'V') goto yy1068;
if(yych != 'v') goto yy53;
- goto yy960;
-yy960:
- YYDEBUG(960, *YYCURSOR);
+ goto yy1068;
+yy1068:
+ YYDEBUG(1068, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy961;
- if(yych != 'e') goto yy889;
- goto yy961;
-yy961:
- YYDEBUG(961, *YYCURSOR);
+ if(yych == 'E') goto yy1069;
+ if(yych != 'e') goto yy978;
+ goto yy1069;
+yy1069:
+ YYDEBUG(1069, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy962;
+ if(yych == 'M') goto yy1070;
if(yych != 'm') goto yy53;
- goto yy962;
-yy962:
- YYDEBUG(962, *YYCURSOR);
+ goto yy1070;
+yy1070:
+ YYDEBUG(1070, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy963;
+ if(yych == 'B') goto yy1071;
if(yych != 'b') goto yy53;
- goto yy963;
-yy963:
- YYDEBUG(963, *YYCURSOR);
+ goto yy1071;
+yy1071:
+ YYDEBUG(1071, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy964;
+ if(yych == 'E') goto yy1072;
if(yych != 'e') goto yy53;
- goto yy964;
-yy964:
- YYDEBUG(964, *YYCURSOR);
+ goto yy1072;
+yy1072:
+ YYDEBUG(1072, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy965:
- YYDEBUG(965, *YYCURSOR);
+yy1073:
+ YYDEBUG(1073, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy966;
+ if(yych == 'T') goto yy1074;
if(yych != 't') goto yy53;
- goto yy966;
-yy966:
- YYDEBUG(966, *YYCURSOR);
+ goto yy1074;
+yy1074:
+ YYDEBUG(1074, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'O') goto yy967;
- if(yych != 'o') goto yy889;
- goto yy967;
-yy967:
- YYDEBUG(967, *YYCURSOR);
+ if(yych == 'O') goto yy1075;
+ if(yych != 'o') goto yy978;
+ goto yy1075;
+yy1075:
+ YYDEBUG(1075, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy968;
+ if(yych == 'B') goto yy1076;
if(yych != 'b') goto yy53;
- goto yy968;
-yy968:
- YYDEBUG(968, *YYCURSOR);
+ goto yy1076;
+yy1076:
+ YYDEBUG(1076, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy969;
+ if(yych == 'E') goto yy1077;
if(yych != 'e') goto yy53;
- goto yy969;
-yy969:
- YYDEBUG(969, *YYCURSOR);
+ goto yy1077;
+yy1077:
+ YYDEBUG(1077, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy970:
- YYDEBUG(970, *YYCURSOR);
+yy1078:
+ YYDEBUG(1078, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'P'){
if(yych == 'C') goto yy121;
if(yych <= 'O') goto yy53;
- goto yy971;
+ goto yy1079;
} else {
if(yych <= 'c'){
if(yych <= 'b') goto yy53;
goto yy121;
} else {
if(yych != 'p') goto yy53;
- goto yy971;
+ goto yy1079;
}
}
-yy971:
- YYDEBUG(971, *YYCURSOR);
+yy1079:
+ YYDEBUG(1079, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy972;
- if(yych != 't') goto yy889;
- goto yy972;
-yy972:
- YYDEBUG(972, *YYCURSOR);
+ if(yych == 'T') goto yy1080;
+ if(yych != 't') goto yy978;
+ goto yy1080;
+yy1080:
+ YYDEBUG(1080, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy973;
- if(yych != 'e') goto yy889;
- goto yy973;
-yy973:
- YYDEBUG(973, *YYCURSOR);
+ if(yych == 'E') goto yy1081;
+ if(yych != 'e') goto yy978;
+ goto yy1081;
+yy1081:
+ YYDEBUG(1081, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy974;
+ if(yych == 'M') goto yy1082;
if(yych != 'm') goto yy53;
- goto yy974;
-yy974:
- YYDEBUG(974, *YYCURSOR);
+ goto yy1082;
+yy1082:
+ YYDEBUG(1082, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy975;
+ if(yych == 'B') goto yy1083;
if(yych != 'b') goto yy53;
- goto yy975;
-yy975:
- YYDEBUG(975, *YYCURSOR);
+ goto yy1083;
+yy1083:
+ YYDEBUG(1083, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy976;
+ if(yych == 'E') goto yy1084;
if(yych != 'e') goto yy53;
- goto yy976;
-yy976:
- YYDEBUG(976, *YYCURSOR);
+ goto yy1084;
+yy1084:
+ YYDEBUG(1084, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy977:
- YYDEBUG(977, *YYCURSOR);
+yy1085:
+ YYDEBUG(1085, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy981;
- if(yych == 'g') goto yy981;
+ if(yych == 'G') goto yy1089;
+ if(yych == 'g') goto yy1089;
goto yy53;
-yy978:
- YYDEBUG(978, *YYCURSOR);
+yy1086:
+ YYDEBUG(1086, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy979;
+ if(yych == 'R') goto yy1087;
if(yych != 'r') goto yy53;
- goto yy979;
-yy979:
- YYDEBUG(979, *YYCURSOR);
+ goto yy1087;
+yy1087:
+ YYDEBUG(1087, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'I') goto yy980;
- if(yych != 'i') goto yy889;
- goto yy980;
-yy980:
- YYDEBUG(980, *YYCURSOR);
+ if(yych == 'I') goto yy1088;
+ if(yych != 'i') goto yy978;
+ goto yy1088;
+yy1088:
+ YYDEBUG(1088, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'L') goto yy958;
- if(yych == 'l') goto yy958;
+ if(yych == 'L') goto yy1066;
+ if(yych == 'l') goto yy1066;
goto yy53;
-yy981:
- YYDEBUG(981, *YYCURSOR);
+yy1089:
+ YYDEBUG(1089, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy982;
- if(yych != 'u') goto yy889;
- goto yy982;
-yy982:
- YYDEBUG(982, *YYCURSOR);
+ if(yych == 'U') goto yy1090;
+ if(yych != 'u') goto yy978;
+ goto yy1090;
+yy1090:
+ YYDEBUG(1090, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy983;
+ if(yych == 'S') goto yy1091;
if(yych != 's') goto yy53;
- goto yy983;
-yy983:
- YYDEBUG(983, *YYCURSOR);
+ goto yy1091;
+yy1091:
+ YYDEBUG(1091, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy958;
- if(yych == 't') goto yy958;
+ if(yych == 'T') goto yy1066;
+ if(yych == 't') goto yy1066;
goto yy53;
-yy984:
- YYDEBUG(984, *YYCURSOR);
+yy1092:
+ YYDEBUG(1092, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy985;
+ if(yych == 'R') goto yy1093;
if(yych <= 'X') goto yy53;
- goto yy958;
+ goto yy1066;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy985;
+ goto yy1093;
} else {
- if(yych == 'y') goto yy958;
+ if(yych == 'y') goto yy1066;
goto yy53;
}
}
-yy985:
- YYDEBUG(985, *YYCURSOR);
+yy1093:
+ YYDEBUG(1093, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'C') goto yy986;
- if(yych != 'c') goto yy889;
- goto yy986;
-yy986:
- YYDEBUG(986, *YYCURSOR);
+ if(yych == 'C') goto yy1094;
+ if(yych != 'c') goto yy978;
+ goto yy1094;
+yy1094:
+ YYDEBUG(1094, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy958;
- if(yych == 'h') goto yy958;
+ if(yych == 'H') goto yy1066;
+ if(yych == 'h') goto yy1066;
goto yy53;
-yy987:
- YYDEBUG(987, *YYCURSOR);
+yy1095:
+ YYDEBUG(1095, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy988;
+ if(yych == 'B') goto yy1096;
if(yych != 'b') goto yy53;
- goto yy988;
-yy988:
- YYDEBUG(988, *YYCURSOR);
+ goto yy1096;
+yy1096:
+ YYDEBUG(1096, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'R') goto yy989;
- if(yych != 'r') goto yy889;
- goto yy989;
-yy989:
- YYDEBUG(989, *YYCURSOR);
+ if(yych == 'R') goto yy1097;
+ if(yych != 'r') goto yy978;
+ goto yy1097;
+yy1097:
+ YYDEBUG(1097, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy990;
+ if(yych == 'U') goto yy1098;
if(yych != 'u') goto yy53;
- goto yy990;
-yy990:
- YYDEBUG(990, *YYCURSOR);
+ goto yy1098;
+yy1098:
+ YYDEBUG(1098, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy991;
+ if(yych == 'A') goto yy1099;
if(yych != 'a') goto yy53;
- goto yy991;
-yy991:
- YYDEBUG(991, *YYCURSOR);
+ goto yy1099;
+yy1099:
+ YYDEBUG(1099, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy992;
+ if(yych == 'R') goto yy1100;
if(yych != 'r') goto yy53;
- goto yy992;
-yy992:
- YYDEBUG(992, *YYCURSOR);
+ goto yy1100;
+yy1100:
+ YYDEBUG(1100, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
goto yy53;
-yy993:
- YYDEBUG(993, *YYCURSOR);
+yy1101:
+ YYDEBUG(1101, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy1000;
+ if(yych == 'L') goto yy1108;
if(yych <= 'M') goto yy53;
- goto yy999;
+ goto yy1107;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy1000;
+ goto yy1108;
} else {
- if(yych == 'n') goto yy999;
+ if(yych == 'n') goto yy1107;
goto yy53;
}
}
-yy994:
- YYDEBUG(994, *YYCURSOR);
+yy1102:
+ YYDEBUG(1102, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy995;
+ if(yych == 'N') goto yy1103;
if(yych != 'n') goto yy53;
- goto yy995;
-yy995:
- YYDEBUG(995, *YYCURSOR);
+ goto yy1103;
+yy1103:
+ YYDEBUG(1103, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy996;
- if(yych != 'u') goto yy889;
- goto yy996;
-yy996:
- YYDEBUG(996, *YYCURSOR);
+ if(yych == 'U') goto yy1104;
+ if(yych != 'u') goto yy978;
+ goto yy1104;
+yy1104:
+ YYDEBUG(1104, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy997;
+ if(yych == 'A') goto yy1105;
if(yych != 'a') goto yy53;
- goto yy997;
-yy997:
- YYDEBUG(997, *YYCURSOR);
+ goto yy1105;
+yy1105:
+ YYDEBUG(1105, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy998;
+ if(yych == 'R') goto yy1106;
if(yych != 'r') goto yy53;
- goto yy998;
-yy998:
- YYDEBUG(998, *YYCURSOR);
+ goto yy1106;
+yy1106:
+ YYDEBUG(1106, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
goto yy53;
-yy999:
- YYDEBUG(999, *YYCURSOR);
+yy1107:
+ YYDEBUG(1107, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy958;
- if(yych == 'e') goto yy958;
- goto yy889;
-yy1000:
- YYDEBUG(1000, *YYCURSOR);
+ if(yych == 'E') goto yy1066;
+ if(yych == 'e') goto yy1066;
+ goto yy978;
+yy1108:
+ YYDEBUG(1108, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
- goto yy889;
-yy1001:
- YYDEBUG(1001, *YYCURSOR);
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
+ goto yy978;
+yy1109:
+ YYDEBUG(1109, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1002:
- YYDEBUG(1002, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1110:
+ YYDEBUG(1110, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != 'I') goto yy889;
- goto yy1003;
-yy1003:
- YYDEBUG(1003, *YYCURSOR);
+ if(yych != 'I') goto yy978;
+ goto yy1111;
+yy1111:
+ YYDEBUG(1111, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1004:
- YYDEBUG(1004, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1112:
+ YYDEBUG(1112, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1005:
- YYDEBUG(1005, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1113:
+ YYDEBUG(1113, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy1018;
- if(yych <= '9') goto yy1017;
+ if(yych <= '0') goto yy1128;
+ if(yych <= '9') goto yy1127;
goto yy53;
-yy1006:
- YYDEBUG(1006, *YYCURSOR);
+yy1114:
+ YYDEBUG(1114, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1016;
+ if(yych <= '9') goto yy1126;
goto yy53;
-yy1007:
- YYDEBUG(1007, *YYCURSOR);
+yy1115:
+ YYDEBUG(1115, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1014;
- if(yych <= '6') goto yy1013;
+ if(yych <= '5') goto yy1124;
+ if(yych <= '6') goto yy1123;
goto yy53;
-yy1008:
- YYDEBUG(1008, *YYCURSOR);
+yy1116:
+ YYDEBUG(1116, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy987;
- if(yych == 'e') goto yy987;
+ if(yych == 'E') goto yy1095;
+ if(yych == 'e') goto yy1095;
goto yy53;
-yy1009:
- YYDEBUG(1009, *YYCURSOR);
+yy1117:
+ YYDEBUG(1117, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy984;
- if(yych == 'a') goto yy984;
+ if(yych == 'A') goto yy1092;
+ if(yych == 'a') goto yy1092;
goto yy53;
-yy1010:
- YYDEBUG(1010, *YYCURSOR);
+yy1118:
+ YYDEBUG(1118, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1012;
- if(yych == 'e') goto yy1012;
+ if(yych == 'E') goto yy1122;
+ if(yych == 'e') goto yy1122;
goto yy53;
-yy1011:
- YYDEBUG(1011, *YYCURSOR);
+yy1119:
+ YYDEBUG(1119, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy952;
- if(yych == 'e') goto yy952;
+ if(yych == 'E') goto yy1060;
+ if(yych == 'e') goto yy1060;
goto yy53;
-yy1012:
- YYDEBUG(1012, *YYCURSOR);
+yy1120:
+ YYDEBUG(1120, *YYCURSOR);
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
+ yych = *YYCURSOR;
+ goto yy1121;
+yy1121:
+ YYDEBUG(1121, *YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case '-':
+ case '.': goto yy1120;
+ case 'A': case 'a': goto yy984;
+ case 'D': case 'd': goto yy1119;
+ case 'F': case 'f': goto yy1116;
+ case 'I': goto yy977;
+ case 'J': case 'j': goto yy981;
+ case 'M': case 'm': goto yy1117;
+ case 'N': case 'n': goto yy987;
+ case 'O': case 'o': goto yy986;
+ case 'S': case 's': goto yy1118;
+ case 'V': goto yy979;
+ case 'X': goto yy980;
+ default: goto yy53;
+ }
+yy1122:
+ YYDEBUG(1122, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy971;
- if(yych == 'p') goto yy971;
+ if(yych == 'P') goto yy1079;
+ if(yych == 'p') goto yy1079;
goto yy53;
-yy1013:
- YYDEBUG(1013, *YYCURSOR);
+yy1123:
+ YYDEBUG(1123, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '6') goto yy1015;
+ if(yych <= '6') goto yy1125;
goto yy53;
-yy1014:
- YYDEBUG(1014, *YYCURSOR);
+yy1124:
+ YYDEBUG(1124, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1015;
-yy1015:
- YYDEBUG(1015, *YYCURSOR);
+ goto yy1125;
+yy1125:
+ YYDEBUG(1125, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy915;
-yy1016:
- YYDEBUG(1016, *YYCURSOR);
+ goto yy1005;
+yy1126:
+ YYDEBUG(1126, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1017:
- YYDEBUG(1017, *YYCURSOR);
+yy1127:
+ YYDEBUG(1127, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1018:
- YYDEBUG(1018, *YYCURSOR);
+yy1128:
+ YYDEBUG(1128, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1019:
- YYDEBUG(1019, *YYCURSOR);
+yy1129:
+ YYDEBUG(1129, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '.') goto yy53;
- if(yych <= '/') goto yy1022;
- if(yych <= '0') goto yy1021;
- if(yych <= '9') goto yy1032;
+ if(yych <= '/') goto yy1132;
+ if(yych <= '0') goto yy1131;
+ if(yych <= '9') goto yy1142;
goto yy53;
-yy1020:
- YYDEBUG(1020, *YYCURSOR);
+yy1130:
+ YYDEBUG(1130, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '.') goto yy53;
- if(yych <= '/') goto yy1022;
- if(yych <= '2') goto yy1032;
+ if(yych <= '/') goto yy1132;
+ if(yych <= '2') goto yy1142;
goto yy53;
-yy1021:
- YYDEBUG(1021, *YYCURSOR);
+yy1131:
+ YYDEBUG(1131, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy1022;
-yy1022:
- YYDEBUG(1022, *YYCURSOR);
+ goto yy1132;
+yy1132:
+ YYDEBUG(1132, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1023;
- if(yych <= '3') goto yy1025;
- if(yych <= '9') goto yy1026;
+ if(yych <= '2') goto yy1133;
+ if(yych <= '3') goto yy1135;
+ if(yych <= '9') goto yy1136;
goto yy53;
-yy1023:
- YYDEBUG(1023, *YYCURSOR);
+yy1133:
+ YYDEBUG(1133, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '9') goto yy1026;
- if(yych >= 'n') goto yy1028;
- goto yy1024;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '9') goto yy1136;
+ if(yych >= 'n') goto yy1138;
+ goto yy1134;
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy1029;
- goto yy1024;
+ if(yych >= 'r') goto yy1139;
+ goto yy1134;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1024:
- YYDEBUG(1024, *YYCURSOR);
+yy1134:
+ YYDEBUG(1134, *YYCURSOR);
{
DEBUG_OUTPUT("iso8601date | iso8601dateslash | dateslash");
@@ -13588,1055 +17544,1048 @@ yy1024:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-yy1025:
- YYDEBUG(1025, *YYCURSOR);
+yy1135:
+ YYDEBUG(1135, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '1') goto yy1026;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '1') goto yy1136;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1026:
- YYDEBUG(1026, *YYCURSOR);
+yy1136:
+ YYDEBUG(1136, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'q'){
- if(yych == 'n') goto yy1028;
- goto yy1024;
+ if(yych == 'n') goto yy1138;
+ goto yy1134;
} else {
- if(yych <= 'r') goto yy1029;
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 'r') goto yy1139;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
-yy1027:
- YYDEBUG(1027, *YYCURSOR);
+yy1137:
+ YYDEBUG(1137, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy1031;
+ if(yych == 't') goto yy1141;
goto yy53;
-yy1028:
- YYDEBUG(1028, *YYCURSOR);
+yy1138:
+ YYDEBUG(1138, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1031;
+ if(yych == 'd') goto yy1141;
goto yy53;
-yy1029:
- YYDEBUG(1029, *YYCURSOR);
+yy1139:
+ YYDEBUG(1139, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1031;
+ if(yych == 'd') goto yy1141;
goto yy53;
-yy1030:
- YYDEBUG(1030, *YYCURSOR);
+yy1140:
+ YYDEBUG(1140, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != 'h') goto yy53;
- goto yy1031;
-yy1031:
- YYDEBUG(1031, *YYCURSOR);
+ goto yy1141;
+yy1141:
+ YYDEBUG(1141, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy1024;
-yy1032:
- YYDEBUG(1032, *YYCURSOR);
+ goto yy1134;
+yy1142:
+ YYDEBUG(1142, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy1033;
-yy1033:
- YYDEBUG(1033, *YYCURSOR);
+ goto yy1143;
+yy1143:
+ YYDEBUG(1143, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '1') goto yy1035;
- goto yy1034;
+ if(yych >= '1') goto yy1145;
+ goto yy1144;
} else {
- if(yych <= '3') goto yy1036;
- if(yych <= '9') goto yy1026;
+ if(yych <= '3') goto yy1146;
+ if(yych <= '9') goto yy1136;
goto yy53;
}
-yy1034:
- YYDEBUG(1034, *YYCURSOR);
+yy1144:
+ YYDEBUG(1144, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '0'){
- if(yych <= '/') goto yy1024;
- goto yy1026;
+ if(yych <= '/') goto yy1134;
+ goto yy1136;
} else {
- if(yych <= '9') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '9') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
}
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1035:
- YYDEBUG(1035, *YYCURSOR);
+yy1145:
+ YYDEBUG(1145, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '9') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '9') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1036:
- YYDEBUG(1036, *YYCURSOR);
+yy1146:
+ YYDEBUG(1146, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '1') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '1') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1037:
- YYDEBUG(1037, *YYCURSOR);
+yy1147:
+ YYDEBUG(1147, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == '/') goto yy1031;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych == '/') goto yy1141;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1038:
- YYDEBUG(1038, *YYCURSOR);
+yy1148:
+ YYDEBUG(1148, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy1113;
+ if(yych == 'A') goto yy1223;
if(yych <= 'T') goto yy53;
- goto yy1112;
+ goto yy1222;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy1113;
+ goto yy1223;
} else {
- if(yych == 'u') goto yy1112;
+ if(yych == 'u') goto yy1222;
goto yy53;
}
}
-yy1039:
- YYDEBUG(1039, *YYCURSOR);
+yy1149:
+ YYDEBUG(1149, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1110;
- if(yych == 'e') goto yy1110;
+ if(yych == 'E') goto yy1220;
+ if(yych == 'e') goto yy1220;
goto yy53;
-yy1040:
- YYDEBUG(1040, *YYCURSOR);
+yy1150:
+ YYDEBUG(1150, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1107;
- if(yych == 'a') goto yy1107;
+ if(yych == 'A') goto yy1217;
+ if(yych == 'a') goto yy1217;
goto yy53;
-yy1041:
- YYDEBUG(1041, *YYCURSOR);
+yy1151:
+ YYDEBUG(1151, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy1104;
+ if(yych == 'P') goto yy1214;
if(yych <= 'T') goto yy53;
- goto yy1103;
+ goto yy1213;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy1104;
+ goto yy1214;
} else {
- if(yych == 'u') goto yy1103;
+ if(yych == 'u') goto yy1213;
goto yy53;
}
}
-yy1042:
- YYDEBUG(1042, *YYCURSOR);
+yy1152:
+ YYDEBUG(1152, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1100;
- if(yych == 'e') goto yy1100;
+ if(yych == 'E') goto yy1210;
+ if(yych == 'e') goto yy1210;
goto yy53;
-yy1043:
- YYDEBUG(1043, *YYCURSOR);
+yy1153:
+ YYDEBUG(1153, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy1098;
- if(yych == 'c') goto yy1098;
+ if(yych == 'C') goto yy1208;
+ if(yych == 'c') goto yy1208;
goto yy53;
-yy1044:
- YYDEBUG(1044, *YYCURSOR);
+yy1154:
+ YYDEBUG(1154, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy1096;
- if(yych == 'o') goto yy1096;
+ if(yych == 'O') goto yy1206;
+ if(yych == 'o') goto yy1206;
goto yy53;
-yy1045:
- YYDEBUG(1045, *YYCURSOR);
+yy1155:
+ YYDEBUG(1155, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1094;
- if(yych == 'e') goto yy1094;
+ if(yych == 'E') goto yy1204;
+ if(yych == 'e') goto yy1204;
goto yy53;
-yy1046:
- YYDEBUG(1046, *YYCURSOR);
+yy1156:
+ YYDEBUG(1156, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '-') goto yy1049;
+ if(yych == '-') goto yy1159;
goto yy53;
} else {
- if(yych <= '0') goto yy1048;
- if(yych <= '9') goto yy1068;
+ if(yych <= '0') goto yy1158;
+ if(yych <= '9') goto yy1178;
goto yy53;
}
-yy1047:
- YYDEBUG(1047, *YYCURSOR);
+yy1157:
+ YYDEBUG(1157, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy1049;
+ if(yych == '-') goto yy1159;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1068;
+ if(yych <= '2') goto yy1178;
goto yy53;
-yy1048:
- YYDEBUG(1048, *YYCURSOR);
+yy1158:
+ YYDEBUG(1158, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy1049;
-yy1049:
- YYDEBUG(1049, *YYCURSOR);
+ goto yy1159;
+yy1159:
+ YYDEBUG(1159, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1050;
- if(yych <= '3') goto yy1051;
- if(yych <= '9') goto yy1052;
+ if(yych <= '2') goto yy1160;
+ if(yych <= '3') goto yy1161;
+ if(yych <= '9') goto yy1162;
goto yy53;
-yy1050:
- YYDEBUG(1050, *YYCURSOR);
+yy1160:
+ YYDEBUG(1160, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- goto yy1052;
+ if(yych <= '/') goto yy860;
+ goto yy1162;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1051:
- YYDEBUG(1051, *YYCURSOR);
+yy1161:
+ YYDEBUG(1161, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy775;
- goto yy1052;
+ if(yych <= '/') goto yy860;
+ goto yy1162;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1052:
- YYDEBUG(1052, *YYCURSOR);
+yy1162:
+ YYDEBUG(1162, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == 'T') goto yy1057;
- if(yych <= 'm') goto yy775;
- goto yy1054;
+ if(yych == 'T') goto yy1167;
+ if(yych <= 'm') goto yy860;
+ goto yy1164;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1053:
- YYDEBUG(1053, *YYCURSOR);
+yy1163:
+ YYDEBUG(1163, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy1067;
+ if(yych == 't') goto yy1177;
goto yy53;
-yy1054:
- YYDEBUG(1054, *YYCURSOR);
+yy1164:
+ YYDEBUG(1164, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1067;
+ if(yych == 'd') goto yy1177;
goto yy53;
-yy1055:
- YYDEBUG(1055, *YYCURSOR);
+yy1165:
+ YYDEBUG(1165, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1067;
+ if(yych == 'd') goto yy1177;
goto yy53;
-yy1056:
- YYDEBUG(1056, *YYCURSOR);
+yy1166:
+ YYDEBUG(1166, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'h') goto yy1067;
+ if(yych == 'h') goto yy1177;
goto yy53;
-yy1057:
- YYDEBUG(1057, *YYCURSOR);
+yy1167:
+ YYDEBUG(1167, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1058;
- if(yych <= '2') goto yy1059;
- if(yych <= '9') goto yy1060;
+ if(yych <= '1') goto yy1168;
+ if(yych <= '2') goto yy1169;
+ if(yych <= '9') goto yy1170;
goto yy53;
-yy1058:
- YYDEBUG(1058, *YYCURSOR);
+yy1168:
+ YYDEBUG(1168, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1060;
- if(yych <= ':') goto yy1061;
+ if(yych <= '9') goto yy1170;
+ if(yych <= ':') goto yy1171;
goto yy53;
-yy1059:
- YYDEBUG(1059, *YYCURSOR);
+yy1169:
+ YYDEBUG(1169, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy1060;
- if(yych == ':') goto yy1061;
+ if(yych <= '3') goto yy1170;
+ if(yych == ':') goto yy1171;
goto yy53;
-yy1060:
- YYDEBUG(1060, *YYCURSOR);
+yy1170:
+ YYDEBUG(1170, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1061;
-yy1061:
- YYDEBUG(1061, *YYCURSOR);
+ goto yy1171;
+yy1171:
+ YYDEBUG(1171, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1062;
- if(yych <= '9') goto yy1063;
+ if(yych <= '5') goto yy1172;
+ if(yych <= '9') goto yy1173;
goto yy53;
-yy1062:
- YYDEBUG(1062, *YYCURSOR);
+yy1172:
+ YYDEBUG(1172, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1063;
- if(yych <= ':') goto yy1064;
+ if(yych <= '9') goto yy1173;
+ if(yych <= ':') goto yy1174;
goto yy53;
-yy1063:
- YYDEBUG(1063, *YYCURSOR);
+yy1173:
+ YYDEBUG(1173, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1064;
-yy1064:
- YYDEBUG(1064, *YYCURSOR);
+ goto yy1174;
+yy1174:
+ YYDEBUG(1174, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1065;
- if(yych <= '6') goto yy1066;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1175;
+ if(yych <= '6') goto yy1176;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy1065:
- YYDEBUG(1065, *YYCURSOR);
+yy1175:
+ YYDEBUG(1175, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1066:
- YYDEBUG(1066, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1176:
+ YYDEBUG(1176, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
- goto yy933;
-yy1067:
- YYDEBUG(1067, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy1026;
+yy1177:
+ YYDEBUG(1177, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'T') goto yy1057;
- goto yy775;
-yy1068:
- YYDEBUG(1068, *YYCURSOR);
+ if(yych == 'T') goto yy1167;
+ goto yy860;
+yy1178:
+ YYDEBUG(1178, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy1069;
-yy1069:
- YYDEBUG(1069, *YYCURSOR);
+ goto yy1179;
+yy1179:
+ YYDEBUG(1179, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '1') goto yy1071;
- goto yy1070;
+ if(yych >= '1') goto yy1181;
+ goto yy1180;
} else {
- if(yych <= '3') goto yy1072;
- if(yych <= '9') goto yy1052;
+ if(yych <= '3') goto yy1182;
+ if(yych <= '9') goto yy1162;
goto yy53;
}
-yy1070:
- YYDEBUG(1070, *YYCURSOR);
+yy1180:
+ YYDEBUG(1180, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- if(yych <= '0') goto yy1052;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ if(yych <= '0') goto yy1162;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1071:
- YYDEBUG(1071, *YYCURSOR);
+yy1181:
+ YYDEBUG(1181, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1072:
- YYDEBUG(1072, *YYCURSOR);
+yy1182:
+ YYDEBUG(1182, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy775;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1073:
- YYDEBUG(1073, *YYCURSOR);
+yy1183:
+ YYDEBUG(1183, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == 'T') goto yy1074;
- if(yych <= 'm') goto yy1024;
- goto yy1054;
+ if(yych == 'T') goto yy1184;
+ if(yych <= 'm') goto yy1134;
+ goto yy1164;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1055;
+ if(yych <= 'q') goto yy1134;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy1024;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy1134;
}
}
-yy1074:
- YYDEBUG(1074, *YYCURSOR);
+yy1184:
+ YYDEBUG(1184, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1075;
- if(yych <= '2') goto yy1076;
- if(yych <= '9') goto yy1060;
+ if(yych <= '1') goto yy1185;
+ if(yych <= '2') goto yy1186;
+ if(yych <= '9') goto yy1170;
goto yy53;
-yy1075:
- YYDEBUG(1075, *YYCURSOR);
+yy1185:
+ YYDEBUG(1185, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1077;
- if(yych <= ':') goto yy1061;
+ if(yych <= '9') goto yy1187;
+ if(yych <= ':') goto yy1171;
goto yy53;
-yy1076:
- YYDEBUG(1076, *YYCURSOR);
+yy1186:
+ YYDEBUG(1186, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy1077;
- if(yych == ':') goto yy1061;
+ if(yych <= '3') goto yy1187;
+ if(yych == ':') goto yy1171;
goto yy53;
-yy1077:
- YYDEBUG(1077, *YYCURSOR);
+yy1187:
+ YYDEBUG(1187, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1078;
-yy1078:
- YYDEBUG(1078, *YYCURSOR);
+ goto yy1188;
+yy1188:
+ YYDEBUG(1188, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1079;
- if(yych <= '9') goto yy1063;
+ if(yych <= '5') goto yy1189;
+ if(yych <= '9') goto yy1173;
goto yy53;
-yy1079:
- YYDEBUG(1079, *YYCURSOR);
+yy1189:
+ YYDEBUG(1189, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1080;
- if(yych <= ':') goto yy1064;
+ if(yych <= '9') goto yy1190;
+ if(yych <= ':') goto yy1174;
goto yy53;
-yy1080:
- YYDEBUG(1080, *YYCURSOR);
+yy1190:
+ YYDEBUG(1190, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1081;
-yy1081:
- YYDEBUG(1081, *YYCURSOR);
+ goto yy1191;
+yy1191:
+ YYDEBUG(1191, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1082;
- if(yych <= '6') goto yy1083;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1192;
+ if(yych <= '6') goto yy1193;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy1082:
- YYDEBUG(1082, *YYCURSOR);
+yy1192:
+ YYDEBUG(1192, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1084;
- goto yy933;
-yy1083:
- YYDEBUG(1083, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1194;
+ goto yy1026;
+yy1193:
+ YYDEBUG(1193, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != '0') goto yy933;
- goto yy1084;
-yy1084:
- YYDEBUG(1084, *YYCURSOR);
+ if(yych != '0') goto yy1026;
+ goto yy1194;
+yy1194:
+ YYDEBUG(1194, *YYCURSOR);
yyaccept = 19;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '.') goto yy933;
- goto yy1085;
-yy1085:
- YYDEBUG(1085, *YYCURSOR);
+ if(yych != '.') goto yy1026;
+ goto yy1195;
+yy1195:
+ YYDEBUG(1195, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1086;
-yy1086:
- YYDEBUG(1086, *YYCURSOR);
+ goto yy1196;
+yy1196:
+ YYDEBUG(1196, *YYCURSOR);
yyaccept = 19;
YYMARKER = ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
yych = *YYCURSOR;
- goto yy1087;
-yy1087:
- YYDEBUG(1087, *YYCURSOR);
+ goto yy1197;
+yy1197:
+ YYDEBUG(1197, *YYCURSOR);
if(yych <= ','){
- if(yych != '+') goto yy933;
- goto yy1088;
+ if(yych != '+') goto yy1026;
+ goto yy1198;
} else {
- if(yych <= '-') goto yy1088;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1086;
- goto yy933;
+ if(yych <= '-') goto yy1198;
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1196;
+ goto yy1026;
}
-yy1088:
- YYDEBUG(1088, *YYCURSOR);
+yy1198:
+ YYDEBUG(1198, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1089;
- if(yych <= '2') goto yy1090;
- if(yych <= '9') goto yy1091;
+ if(yych <= '1') goto yy1199;
+ if(yych <= '2') goto yy1200;
+ if(yych <= '9') goto yy1201;
goto yy53;
-yy1089:
- YYDEBUG(1089, *YYCURSOR);
+yy1199:
+ YYDEBUG(1199, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1091;
- if(yych <= ':') goto yy1092;
- goto yy933;
-yy1090:
- YYDEBUG(1090, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1201;
+ if(yych <= ':') goto yy1202;
+ goto yy1026;
+yy1200:
+ YYDEBUG(1200, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy933;
- if(yych >= '4') goto yy1093;
- goto yy1091;
+ if(yych <= '/') goto yy1026;
+ if(yych >= '4') goto yy1203;
+ goto yy1201;
} else {
- if(yych <= '9') goto yy932;
- if(yych <= ':') goto yy1092;
- goto yy933;
+ if(yych <= '9') goto yy1025;
+ if(yych <= ':') goto yy1202;
+ goto yy1026;
}
-yy1091:
- YYDEBUG(1091, *YYCURSOR);
+yy1201:
+ YYDEBUG(1201, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '5') goto yy1093;
- if(yych <= '9') goto yy932;
- if(yych >= ';') goto yy933;
- goto yy1092;
-yy1092:
- YYDEBUG(1092, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '5') goto yy1203;
+ if(yych <= '9') goto yy1025;
+ if(yych >= ';') goto yy1026;
+ goto yy1202;
+yy1202:
+ YYDEBUG(1202, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '5') goto yy1093;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1093:
- YYDEBUG(1093, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '5') goto yy1203;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1203:
+ YYDEBUG(1203, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1094:
- YYDEBUG(1094, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1204:
+ YYDEBUG(1204, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy1095;
+ if(yych == 'C') goto yy1205;
if(yych != 'c') goto yy53;
- goto yy1095;
-yy1095:
- YYDEBUG(1095, *YYCURSOR);
+ goto yy1205;
+yy1205:
+ YYDEBUG(1205, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy954;
- if(yych == 'e') goto yy954;
- goto yy889;
+ if(yych <= 'E') goto yy1062;
+ if(yych == 'e') goto yy1062;
+ goto yy978;
}
-yy1096:
- YYDEBUG(1096, *YYCURSOR);
+yy1206:
+ YYDEBUG(1206, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy1097;
+ if(yych == 'V') goto yy1207;
if(yych != 'v') goto yy53;
- goto yy1097;
-yy1097:
- YYDEBUG(1097, *YYCURSOR);
+ goto yy1207;
+yy1207:
+ YYDEBUG(1207, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy961;
- if(yych == 'e') goto yy961;
- goto yy889;
+ if(yych <= 'E') goto yy1069;
+ if(yych == 'e') goto yy1069;
+ goto yy978;
}
-yy1098:
- YYDEBUG(1098, *YYCURSOR);
+yy1208:
+ YYDEBUG(1208, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy1099;
+ if(yych == 'T') goto yy1209;
if(yych != 't') goto yy53;
- goto yy1099;
-yy1099:
- YYDEBUG(1099, *YYCURSOR);
+ goto yy1209;
+yy1209:
+ YYDEBUG(1209, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'O') goto yy967;
- if(yych == 'o') goto yy967;
- goto yy889;
+ if(yych <= 'O') goto yy1075;
+ if(yych == 'o') goto yy1075;
+ goto yy978;
}
-yy1100:
- YYDEBUG(1100, *YYCURSOR);
+yy1210:
+ YYDEBUG(1210, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy1101;
+ if(yych == 'P') goto yy1211;
if(yych != 'p') goto yy53;
- goto yy1101;
-yy1101:
- YYDEBUG(1101, *YYCURSOR);
+ goto yy1211;
+yy1211:
+ YYDEBUG(1211, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'T') goto yy1102;
- if(yych != 't') goto yy889;
- goto yy1102;
+ if(yych <= 'T') goto yy1212;
+ if(yych != 't') goto yy978;
+ goto yy1212;
}
-yy1102:
- YYDEBUG(1102, *YYCURSOR);
+yy1212:
+ YYDEBUG(1212, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy973;
- if(yych == 'e') goto yy973;
- goto yy889;
+ if(yych <= 'E') goto yy1081;
+ if(yych == 'e') goto yy1081;
+ goto yy978;
}
-yy1103:
- YYDEBUG(1103, *YYCURSOR);
+yy1213:
+ YYDEBUG(1213, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy1106;
- if(yych == 'g') goto yy1106;
+ if(yych == 'G') goto yy1216;
+ if(yych == 'g') goto yy1216;
goto yy53;
-yy1104:
- YYDEBUG(1104, *YYCURSOR);
+yy1214:
+ YYDEBUG(1214, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy1105;
+ if(yych == 'R') goto yy1215;
if(yych != 'r') goto yy53;
- goto yy1105;
-yy1105:
- YYDEBUG(1105, *YYCURSOR);
+ goto yy1215;
+yy1215:
+ YYDEBUG(1215, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'I') goto yy980;
- if(yych == 'i') goto yy980;
- goto yy889;
+ if(yych <= 'I') goto yy1088;
+ if(yych == 'i') goto yy1088;
+ goto yy978;
}
-yy1106:
- YYDEBUG(1106, *YYCURSOR);
+yy1216:
+ YYDEBUG(1216, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'U') goto yy982;
- if(yych == 'u') goto yy982;
- goto yy889;
+ if(yych <= 'U') goto yy1090;
+ if(yych == 'u') goto yy1090;
+ goto yy978;
}
-yy1107:
- YYDEBUG(1107, *YYCURSOR);
+yy1217:
+ YYDEBUG(1217, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy1108;
+ if(yych == 'R') goto yy1218;
if(yych <= 'X') goto yy53;
- goto yy1109;
+ goto yy1219;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy1108;
+ goto yy1218;
} else {
- if(yych == 'y') goto yy1109;
+ if(yych == 'y') goto yy1219;
goto yy53;
}
}
-yy1108:
- YYDEBUG(1108, *YYCURSOR);
+yy1218:
+ YYDEBUG(1218, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'C') goto yy986;
- if(yych == 'c') goto yy986;
- goto yy889;
+ if(yych <= 'C') goto yy1094;
+ if(yych == 'c') goto yy1094;
+ goto yy978;
}
-yy1109:
- YYDEBUG(1109, *YYCURSOR);
+yy1219:
+ YYDEBUG(1219, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '-') goto yy863;
- goto yy889;
-yy1110:
- YYDEBUG(1110, *YYCURSOR);
+ if(yych == '-') goto yy954;
+ goto yy978;
+yy1220:
+ YYDEBUG(1220, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy1111;
+ if(yych == 'B') goto yy1221;
if(yych != 'b') goto yy53;
- goto yy1111;
-yy1111:
- YYDEBUG(1111, *YYCURSOR);
+ goto yy1221;
+yy1221:
+ YYDEBUG(1221, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Q'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'R') goto yy989;
- if(yych == 'r') goto yy989;
- goto yy889;
+ if(yych <= 'R') goto yy1097;
+ if(yych == 'r') goto yy1097;
+ goto yy978;
}
-yy1112:
- YYDEBUG(1112, *YYCURSOR);
+yy1222:
+ YYDEBUG(1222, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy1116;
+ if(yych == 'L') goto yy1226;
if(yych <= 'M') goto yy53;
- goto yy1115;
+ goto yy1225;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy1116;
+ goto yy1226;
} else {
- if(yych == 'n') goto yy1115;
+ if(yych == 'n') goto yy1225;
goto yy53;
}
}
-yy1113:
- YYDEBUG(1113, *YYCURSOR);
+yy1223:
+ YYDEBUG(1223, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy1114;
+ if(yych == 'N') goto yy1224;
if(yych != 'n') goto yy53;
- goto yy1114;
-yy1114:
- YYDEBUG(1114, *YYCURSOR);
+ goto yy1224;
+yy1224:
+ YYDEBUG(1224, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'U') goto yy996;
- if(yych == 'u') goto yy996;
- goto yy889;
+ if(yych <= 'U') goto yy1104;
+ if(yych == 'u') goto yy1104;
+ goto yy978;
}
-yy1115:
- YYDEBUG(1115, *YYCURSOR);
+yy1225:
+ YYDEBUG(1225, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy958;
- if(yych == 'e') goto yy958;
- goto yy889;
+ if(yych <= 'E') goto yy1066;
+ if(yych == 'e') goto yy1066;
+ goto yy978;
}
-yy1116:
- YYDEBUG(1116, *YYCURSOR);
+yy1226:
+ YYDEBUG(1226, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'Y') goto yy958;
- if(yych == 'y') goto yy958;
- goto yy889;
+ if(yych <= 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
+ goto yy978;
}
-yy1117:
- YYDEBUG(1117, *YYCURSOR);
+yy1227:
+ YYDEBUG(1227, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'T'){
- if(yych <= '-') goto yy617;
- if(yych <= '.') goto yy845;
- if(yych <= '/') goto yy844;
- goto yy617;
+ if(yych <= '/'){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy784;
+ goto yy931;
+ } else {
+ if(yych <= ',') goto yy784;
+ if(yych <= '.') goto yy931;
+ goto yy930;
+ }
} else {
- if(yych <= 'U') goto yy74;
- if(yych == 'u') goto yy74;
- goto yy617;
+ if(yych <= 'U'){
+ if(yych <= 'T') goto yy784;
+ goto yy74;
+ } else {
+ if(yych == 'u') goto yy74;
+ goto yy784;
+ }
}
-yy1118:
- YYDEBUG(1118, *YYCURSOR);
+yy1228:
+ YYDEBUG(1228, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'P'){
if(yych == 'C') goto yy121;
if(yych <= 'O') goto yy53;
- goto yy709;
+ goto yy792;
} else {
if(yych <= 'c'){
if(yych <= 'b') goto yy53;
goto yy121;
} else {
- if(yych == 'p') goto yy709;
+ if(yych == 'p') goto yy792;
goto yy53;
}
}
-yy1119:
- YYDEBUG(1119, *YYCURSOR);
+yy1229:
+ YYDEBUG(1229, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'm'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy845;
+ if(yych <= '9'){
+ if(yych <= ','){
+ if(yych != 0x09) goto yy1232;
+ goto yy1230;
} else {
- if(yych <= '/') goto yy844;
- if(yych <= '9') goto yy851;
- goto yy1121;
+ if(yych <= '-') goto yy695;
+ if(yych <= '.') goto yy931;
+ if(yych <= '/') goto yy930;
+ goto yy935;
}
} else {
- if(yych <= 'r'){
- if(yych <= 'n') goto yy612;
- if(yych <= 'q') goto yy1121;
- goto yy613;
+ if(yych <= 'q'){
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1120:
- YYDEBUG(1120, *YYCURSOR);
+yy1230:
+ YYDEBUG(1230, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy1232;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy1232;
+yy1231:
+ YYDEBUG(1231, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
yych = *YYCURSOR;
- goto yy1121;
-yy1121:
- YYDEBUG(1121, *YYCURSOR);
+ goto yy1232;
+yy1232:
+ YYDEBUG(1232, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy1120;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy1231;
case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy699;
- case 'D': case 'd': goto yy608;
- case 'F': case 'f': goto yy609;
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy780;
+ case 'D': case 'd': goto yy688;
+ case 'F': case 'f': goto yy689;
case 'H': case 'h': goto yy60;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy607;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'S': case 's': goto yy605;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy687;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'S': case 's': goto yy685;
case 'T': case 't': goto yy65;
- case 'V': goto yy621;
+ case 'V': goto yy699;
case 'W': case 'w': goto yy62;
- case 'X': goto yy622;
+ case 'X': goto yy700;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy1122:
- YYDEBUG(1122, *YYCURSOR);
+yy1233:
+ YYDEBUG(1233, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy1123;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy1230;
+ if(yych <= ',') goto yy1232;
+ goto yy695;
} else {
- if(yych <= '/') goto yy844;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy1124;
+ if(yych <= '.') goto yy1234;
+ if(yych <= '/') goto yy930;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy1121;
+ if(yych <= ':') goto yy1235;
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1123:
- YYDEBUG(1123, *YYCURSOR);
+yy1234:
+ YYDEBUG(1234, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '1'){
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy1147;
- goto yy1148;
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy1258;
+ goto yy1259;
} else {
- if(yych <= '5') goto yy1149;
- if(yych <= '9') goto yy1150;
- goto yy617;
+ if(yych <= '5') goto yy1260;
+ if(yych <= '9') goto yy1261;
+ goto yy784;
}
-yy1124:
- YYDEBUG(1124, *YYCURSOR);
+yy1235:
+ YYDEBUG(1235, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1142;
- if(yych <= '9') goto yy1143;
+ if(yych <= '5') goto yy1253;
+ if(yych <= '9') goto yy1254;
goto yy53;
-yy1125:
- YYDEBUG(1125, *YYCURSOR);
+yy1236:
+ YYDEBUG(1236, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
if(yych >= ':') goto yy57;
- goto yy1126;
-yy1126:
- YYDEBUG(1126, *YYCURSOR);
+ goto yy1237;
+yy1237:
+ YYDEBUG(1237, *YYCURSOR);
yyaccept = 20;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -14645,25 +18594,26 @@ yy1126:
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm':
case 'n':
case 'o': case 's':
- case 't': case 'w': case 'y': goto yy884;
- case '-': goto yy881;
- case '.': goto yy887;
- case '/': goto yy882;
- case '0': goto yy1128;
- case '1': goto yy1129;
- case '2': goto yy1130;
- case '3': goto yy1131;
+ case 't': case 'w': case 'y': goto yy975;
+ case '-': goto yy972;
+ case '.': goto yy976;
+ case '/': goto yy973;
+ case '0': goto yy1239;
+ case '1': goto yy1240;
+ case '2': goto yy1241;
+ case '3': goto yy1242;
case '4':
- case '5': goto yy1132;
- case '6': goto yy1133;
+ case '5': goto yy1243;
+ case '6': goto yy1244;
case '7':
case '8':
case '9': goto yy51;
- case 'W': goto yy904;
- default: goto yy1127;
+ case ':': goto yy991;
+ case 'W': goto yy994;
+ default: goto yy1238;
}
-yy1127:
- YYDEBUG(1127, *YYCURSOR);
+yy1238:
+ YYDEBUG(1238, *YYCURSOR);
{
DEBUG_OUTPUT("gnunocolon");
@@ -14679,107 +18629,113 @@ yy1127:
break;
default:
TIMELIB_DEINIT;
+ add_error(s, "Double time specification");
return TIMELIB_ERROR;
}
s->time->have_time++;
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-yy1128:
- YYDEBUG(1128, *YYCURSOR);
+yy1239:
+ YYDEBUG(1239, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy1140;
- if(yych <= '9') goto yy1141;
+ if(yych <= '0') goto yy1251;
+ if(yych <= '9') goto yy1252;
goto yy57;
-yy1129:
- YYDEBUG(1129, *YYCURSOR);
+yy1240:
+ YYDEBUG(1240, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '2') goto yy1139;
- if(yych <= '9') goto yy1138;
+ if(yych <= '2') goto yy1250;
+ if(yych <= '9') goto yy1249;
goto yy57;
-yy1130:
- YYDEBUG(1130, *YYCURSOR);
+yy1241:
+ YYDEBUG(1241, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy1138;
+ if(yych <= '9') goto yy1249;
goto yy57;
-yy1131:
- YYDEBUG(1131, *YYCURSOR);
+yy1242:
+ YYDEBUG(1242, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '5') goto yy1136;
- if(yych <= '6') goto yy1137;
- if(yych <= '9') goto yy1134;
+ if(yych <= '5') goto yy1247;
+ if(yych <= '6') goto yy1248;
+ if(yych <= '9') goto yy1245;
goto yy57;
-yy1132:
- YYDEBUG(1132, *YYCURSOR);
+yy1243:
+ YYDEBUG(1243, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy1134;
+ if(yych <= '9') goto yy1245;
goto yy57;
-yy1133:
- YYDEBUG(1133, *YYCURSOR);
+yy1244:
+ YYDEBUG(1244, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy1134;
+ if(yych <= '0') goto yy1245;
if(yych <= '9') goto yy51;
goto yy57;
-yy1134:
- YYDEBUG(1134, *YYCURSOR);
+yy1245:
+ YYDEBUG(1245, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy1135;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych >= ' ') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'E') goto yy1135;
- if(yych <= 'F') goto yy57;
- goto yy1135;
+ if(yych == 'D') goto yy57;
+ if(yych >= 'F') goto yy57;
+ goto yy1246;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy1135;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych >= 'M') goto yy57;
+ goto yy1246;
} else {
+ if(yych <= 'R') goto yy1246;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy1135;
+ if(yych >= 'W') goto yy57;
+ goto yy1246;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy1135;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych >= 'd') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'g') goto yy1135;
- if(yych <= 'h') goto yy57;
- goto yy1135;
+ if(yych == 'f') goto yy57;
+ if(yych >= 'h') goto yy57;
+ goto yy1246;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
- if(yych <= 'r') goto yy1135;
- if(yych <= 't') goto yy57;
- goto yy1135;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych >= 's') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'x') goto yy1135;
- if(yych <= 'y') goto yy57;
- goto yy1135;
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
}
}
}
-yy1135:
- YYDEBUG(1135, *YYCURSOR);
+yy1246:
+ YYDEBUG(1246, *YYCURSOR);
{
int tz_not_found;
@@ -14792,328 +18748,629 @@ yy1135:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-yy1136:
- YYDEBUG(1136, *YYCURSOR);
+yy1247:
+ YYDEBUG(1247, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1246;
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1137:
- YYDEBUG(1137, *YYCURSOR);
+yy1248:
+ YYDEBUG(1248, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6': goto yy914;
- case '7':
- case '8':
- case '9': goto yy51;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '6'){
+ if(yych <= '/') goto yy1246;
+ goto yy1004;
+ } else {
+ if(yych <= '9') goto yy51;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1138:
- YYDEBUG(1138, *YYCURSOR);
+yy1249:
+ YYDEBUG(1249, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1246;
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1139:
- YYDEBUG(1139, *YYCURSOR);
+yy1250:
+ YYDEBUG(1250, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy918;
- case '1':
- case '2': goto yy919;
- case '3': goto yy920;
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'T'){
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy1028;
+ } else {
+ if(yych <= '2') goto yy1029;
+ if(yych <= '3') goto yy1030;
+ goto yy1004;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy1246;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy1246;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy1246;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1140:
- YYDEBUG(1140, *YYCURSOR);
+yy1251:
+ YYDEBUG(1251, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy51;
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy51;
+ } else {
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1141:
- YYDEBUG(1141, *YYCURSOR);
+yy1252:
+ YYDEBUG(1252, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy918;
- case '1':
- case '2': goto yy919;
- case '3': goto yy920;
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'T'){
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy1028;
+ } else {
+ if(yych <= '2') goto yy1029;
+ if(yych <= '3') goto yy1030;
+ goto yy1004;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy1246;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy1246;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy1246;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1142:
- YYDEBUG(1142, *YYCURSOR);
+yy1253:
+ YYDEBUG(1253, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy1144;
- goto yy634;
+ if(yych == '.') goto yy1255;
+ goto yy713;
} else {
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1143:
- YYDEBUG(1143, *YYCURSOR);
+yy1254:
+ YYDEBUG(1254, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy1144;
- if(yych != ':') goto yy634;
- goto yy1144;
-yy1144:
- YYDEBUG(1144, *YYCURSOR);
+ if(yych == '.') goto yy1255;
+ if(yych != ':') goto yy713;
+ goto yy1255;
+yy1255:
+ YYDEBUG(1255, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1145;
- if(yych <= '6') goto yy1146;
- if(yych <= '9') goto yy639;
+ if(yych <= '5') goto yy1256;
+ if(yych <= '6') goto yy1257;
+ if(yych <= '9') goto yy718;
goto yy53;
-yy1145:
- YYDEBUG(1145, *YYCURSOR);
+yy1256:
+ YYDEBUG(1256, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy639;
- goto yy634;
-yy1146:
- YYDEBUG(1146, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy718;
+ goto yy713;
+yy1257:
+ YYDEBUG(1257, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych == '0') goto yy639;
- goto yy634;
-yy1147:
- YYDEBUG(1147, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych == '0') goto yy718;
+ goto yy713;
+yy1258:
+ YYDEBUG(1258, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
} else {
- if(yych <= '9') goto yy1150;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1261;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1148:
- YYDEBUG(1148, *YYCURSOR);
+yy1259:
+ YYDEBUG(1259, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ if(yych <= '.') goto yy1262;
+ goto yy713;
} else {
- if(yych <= '2') goto yy1150;
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '2') goto yy1261;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1149:
- YYDEBUG(1149, *YYCURSOR);
+yy1260:
+ YYDEBUG(1260, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
} else {
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1150:
- YYDEBUG(1150, *YYCURSOR);
+yy1261:
+ YYDEBUG(1261, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy1151;
- if(yych == ':') goto yy1144;
- goto yy634;
-yy1151:
- YYDEBUG(1151, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
+ } else {
+ if(yych == ':') goto yy1255;
+ goto yy713;
+ }
+yy1262:
+ YYDEBUG(1262, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1152;
- if(yych <= '6') goto yy1153;
- if(yych <= '9') goto yy727;
+ if(yych <= '5') goto yy1263;
+ if(yych <= '6') goto yy1264;
+ if(yych <= '9') goto yy811;
goto yy53;
-yy1152:
- YYDEBUG(1152, *YYCURSOR);
+yy1263:
+ YYDEBUG(1263, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy1154;
- goto yy634;
-yy1153:
- YYDEBUG(1153, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1265;
+ goto yy713;
+yy1264:
+ YYDEBUG(1264, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy640;
- goto yy634;
+ if(yych == '.') goto yy719;
+ goto yy713;
} else {
- if(yych <= '0') goto yy1154;
- if(yych <= '9') goto yy728;
- goto yy634;
+ if(yych <= '0') goto yy1265;
+ if(yych <= '9') goto yy812;
+ goto yy713;
}
-yy1154:
- YYDEBUG(1154, *YYCURSOR);
+yy1265:
+ YYDEBUG(1265, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy730;
- goto yy634;
-yy1155:
- YYDEBUG(1155, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy814;
+ goto yy713;
+yy1266:
+ YYDEBUG(1266, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy604;
- if(yych <= '-') goto yy615;
- goto yy618;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy682;
+ if(yych <= ',') goto yy684;
+ goto yy695;
} else {
- if(yych <= '/') goto yy614;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy627;
+ if(yych <= '.') goto yy696;
+ if(yych <= '/') goto yy694;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy604;
+ if(yych <= ':') goto yy705;
+ if(yych == 'n') goto yy692;
+ goto yy684;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy604;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy684;
}
}
-yy1156:
- YYDEBUG(1156, *YYCURSOR);
+yy1267:
+ YYDEBUG(1267, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy1123;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy1230;
+ if(yych <= ',') goto yy1232;
+ goto yy695;
} else {
- if(yych <= '/') goto yy614;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy1124;
+ if(yych <= '.') goto yy1234;
+ if(yych <= '/') goto yy694;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy1121;
+ if(yych <= ':') goto yy1235;
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1157:
- YYDEBUG(1157, *YYCURSOR);
+yy1268:
+ YYDEBUG(1268, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '0') goto yy53;
+ if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1158;
-yy1158:
- YYDEBUG(1158, *YYCURSOR);
+ goto yy1269;
+yy1269:
+ YYDEBUG(1269, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy1159;
-yy1159:
- YYDEBUG(1159, *YYCURSOR);
- if(yych <= '/') goto yy1160;
- if(yych <= '9') goto yy1158;
- goto yy1160;
-yy1160:
- YYDEBUG(1160, *YYCURSOR);
+ goto yy1270;
+yy1270:
+ YYDEBUG(1270, *YYCURSOR);
+ if(yych <= '/') goto yy1271;
+ if(yych <= '9') goto yy1269;
+ goto yy1271;
+yy1271:
+ YYDEBUG(1271, *YYCURSOR);
{
timelib_ull i;
@@ -15137,8 +19394,8 @@ yy1160:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1161:
- YYDEBUG(1161, *YYCURSOR);
+yy1272:
+ YYDEBUG(1272, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -15147,7 +19404,7 @@ yy1161:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1192;
+ goto yy1312;
}
} else {
if(yych <= 'm'){
@@ -15155,61 +19412,61 @@ yy1161:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1192;
+ if(yych <= 'n') goto yy1312;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1162:
- YYDEBUG(1162, *YYCURSOR);
+yy1273:
+ YYDEBUG(1273, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy1186;
+ if(yych == 'I') goto yy1306;
if(yych <= 'T') goto yy134;
- goto yy1185;
+ goto yy1305;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'h') goto yy134;
- goto yy1186;
+ goto yy1306;
} else {
- if(yych == 'u') goto yy1185;
+ if(yych == 'u') goto yy1305;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1163:
- YYDEBUG(1163, *YYCURSOR);
+yy1274:
+ YYDEBUG(1274, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'M'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'D') goto yy1174;
+ if(yych == 'D') goto yy1294;
if(yych <= 'L') goto yy134;
- goto yy1175;
+ goto yy1295;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'c') goto yy134;
- goto yy1174;
+ goto yy1294;
} else {
- if(yych == 'm') goto yy1175;
+ if(yych == 'm') goto yy1295;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1164:
- YYDEBUG(1164, *YYCURSOR);
+yy1275:
+ YYDEBUG(1275, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -15218,7 +19475,7 @@ yy1164:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1170;
+ goto yy1290;
}
} else {
if(yych <= 'd'){
@@ -15226,13 +19483,13 @@ yy1164:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy1170;
+ if(yych <= 'e') goto yy1290;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1165:
- YYDEBUG(1165, *YYCURSOR);
+yy1276:
+ YYDEBUG(1276, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -15241,7 +19498,7 @@ yy1165:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1166;
+ goto yy1286;
}
} else {
if(yych <= 'd'){
@@ -15249,13 +19506,81 @@ yy1165:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy1166;
+ if(yych <= 'e') goto yy1286;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1166:
- YYDEBUG(1166, *YYCURSOR);
+yy1277:
+ YYDEBUG(1277, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '9') goto yy1280;
+ if(yych <= ':') goto yy1235;
+ goto yy53;
+ }
+yy1278:
+ YYDEBUG(1278, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '3') goto yy1280;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+ }
+yy1279:
+ YYDEBUG(1279, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == '.') goto yy1235;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+yy1280:
+ YYDEBUG(1280, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '5') goto yy1281;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+ }
+yy1281:
+ YYDEBUG(1281, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy1282;
+yy1282:
+ YYDEBUG(1282, *YYCURSOR);
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/') goto yy1238;
+ if(yych <= '5') goto yy1283;
+ if(yych <= '6') goto yy1284;
+ goto yy1238;
+yy1283:
+ YYDEBUG(1283, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1285;
+ goto yy53;
+yy1284:
+ YYDEBUG(1284, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '0') goto yy53;
+ goto yy1285;
+yy1285:
+ YYDEBUG(1285, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy1246;
+yy1286:
+ YYDEBUG(1286, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych <= ')'){
@@ -15264,7 +19589,7 @@ yy1166:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'K') goto yy135;
- goto yy1167;
+ goto yy1287;
}
} else {
if(yych <= 'k'){
@@ -15272,101 +19597,162 @@ yy1166:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'l') goto yy1167;
+ if(yych <= 'l') goto yy1287;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1167:
- YYDEBUG(1167, *YYCURSOR);
- yyaccept = 1;
+yy1287:
+ YYDEBUG(1287, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'F'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'E') goto yy136;
+ goto yy1288;
+ }
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'f') goto yy1288;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1288:
+ YYDEBUG(1288, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy1289;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy1289;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1289:
+ YYDEBUG(1289, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'E'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'F') goto yy1168;
- if(yych != 'f') goto yy3;
- goto yy1168;
+ if(yych <= 'H') goto yy163;
+ if(yych == 'h') goto yy163;
+ goto yy3;
}
-yy1168:
- YYDEBUG(1168, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1169;
- if(yych != 't') goto yy53;
- goto yy1169;
-yy1169:
- YYDEBUG(1169, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy1170:
- YYDEBUG(1170, *YYCURSOR);
+yy1290:
+ YYDEBUG(1290, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'R') goto yy135;
- goto yy1171;
+ goto yy1291;
}
} else {
if(yych <= 'r'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 's') goto yy1171;
+ if(yych <= 's') goto yy1291;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1171:
- YYDEBUG(1171, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'C'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1291:
+ YYDEBUG(1291, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy1292;
+ }
} else {
- if(yych <= 'D') goto yy1172;
- if(yych != 'd') goto yy3;
- goto yy1172;
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'd') goto yy1292;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1172:
- YYDEBUG(1172, *YYCURSOR);
+yy1292:
+ YYDEBUG(1292, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1173;
- if(yych != 'a') goto yy53;
- goto yy1173;
-yy1173:
- YYDEBUG(1173, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy1293;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1293;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1293:
+ YYDEBUG(1293, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy1174:
- YYDEBUG(1174, *YYCURSOR);
+ if(yych <= 'X'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
+ goto yy3;
+ }
+yy1294:
+ YYDEBUG(1294, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1182;
+ goto yy1302;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
goto yy3;
} else {
- if(yych <= 'a') goto yy1182;
+ if(yych <= 'a') goto yy1302;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1175:
- YYDEBUG(1175, *YYCURSOR);
+yy1295:
+ YYDEBUG(1295, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -15375,7 +19761,7 @@ yy1175:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy1176;
+ goto yy1296;
}
} else {
if(yych <= 'n'){
@@ -15383,47 +19769,81 @@ yy1175:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy1176;
+ if(yych <= 'o') goto yy1296;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1176:
- YYDEBUG(1176, *YYCURSOR);
- yyaccept = 1;
+yy1296:
+ YYDEBUG(1296, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy1297;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'r') goto yy1297;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1297:
+ YYDEBUG(1297, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1298;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy1298;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1298:
+ YYDEBUG(1298, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Q'){
+ if(yych <= 'N'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'R') goto yy1177;
- if(yych != 'r') goto yy3;
- goto yy1177;
+ if(yych <= 'O') goto yy1299;
+ if(yych != 'o') goto yy3;
+ goto yy1299;
}
-yy1177:
- YYDEBUG(1177, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1178;
- if(yych != 'r') goto yy53;
- goto yy1178;
-yy1178:
- YYDEBUG(1178, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy1179;
- if(yych != 'o') goto yy53;
- goto yy1179;
-yy1179:
- YYDEBUG(1179, *YYCURSOR);
+yy1299:
+ YYDEBUG(1299, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'W') goto yy1180;
+ if(yych == 'W') goto yy1300;
if(yych != 'w') goto yy53;
- goto yy1180;
-yy1180:
- YYDEBUG(1180, *YYCURSOR);
+ goto yy1300;
+yy1300:
+ YYDEBUG(1300, *YYCURSOR);
++YYCURSOR;
- goto yy1181;
-yy1181:
- YYDEBUG(1181, *YYCURSOR);
+ goto yy1301;
+yy1301:
+ YYDEBUG(1301, *YYCURSOR);
{
DEBUG_OUTPUT("tomorrow");
@@ -15435,23 +19855,43 @@ yy1181:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1182:
- YYDEBUG(1182, *YYCURSOR);
+yy1302:
+ YYDEBUG(1302, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'X'){
- if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy136;
+ goto yy1303;
+ }
} else {
- if(yych <= 'Y') goto yy1183;
- if(yych != 'y') goto yy3;
- goto yy1183;
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'y') goto yy1303;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1183:
- YYDEBUG(1183, *YYCURSOR);
+yy1303:
+ YYDEBUG(1303, *YYCURSOR);
++YYCURSOR;
- goto yy1184;
-yy1184:
- YYDEBUG(1184, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy1304;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy137;
+ goto yy1304;
+ }
+yy1304:
+ YYDEBUG(1304, *YYCURSOR);
{
DEBUG_OUTPUT("midnight | today");
@@ -15461,31 +19901,31 @@ yy1184:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1185:
- YYDEBUG(1185, *YYCURSOR);
+yy1305:
+ YYDEBUG(1305, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'Q') goto yy135;
- goto yy1188;
+ goto yy1308;
}
} else {
if(yych <= 'q'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'r') goto yy1188;
+ if(yych <= 'r') goto yy1308;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1186:
- YYDEBUG(1186, *YYCURSOR);
+yy1306:
+ YYDEBUG(1306, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= '@'){
@@ -15493,8 +19933,8 @@ yy1186:
goto yy3;
} else {
if(yych <= 'Q') goto yy135;
- if(yych >= 'S') goto yy317;
- goto yy1187;
+ if(yych >= 'S') goto yy321;
+ goto yy1307;
}
} else {
if(yych <= 'q'){
@@ -15502,56 +19942,101 @@ yy1186:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy1187;
- if(yych <= 's') goto yy317;
+ if(yych <= 'r') goto yy1307;
+ if(yych <= 's') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1187:
- YYDEBUG(1187, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'C'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1307:
+ YYDEBUG(1307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'D') goto yy159;
- if(yych == 'd') goto yy159;
- goto yy3;
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'd') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1188:
- YYDEBUG(1188, *YYCURSOR);
- yyaccept = 1;
+yy1308:
+ YYDEBUG(1308, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy1309;
+ }
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 's') goto yy1309;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1309:
+ YYDEBUG(1309, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy1310;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy1310;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1310:
+ YYDEBUG(1310, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'R'){
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'S') goto yy1189;
- if(yych != 's') goto yy3;
- goto yy1189;
+ if(yych <= 'A') goto yy1311;
+ if(yych != 'a') goto yy3;
+ goto yy1311;
}
-yy1189:
- YYDEBUG(1189, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1190;
- if(yych != 'd') goto yy53;
- goto yy1190;
-yy1190:
- YYDEBUG(1190, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1191;
- if(yych != 'a') goto yy53;
- goto yy1191;
-yy1191:
- YYDEBUG(1191, *YYCURSOR);
+yy1311:
+ YYDEBUG(1311, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
goto yy53;
-yy1192:
- YYDEBUG(1192, *YYCURSOR);
+yy1312:
+ YYDEBUG(1312, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -15560,7 +20045,7 @@ yy1192:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1193;
+ goto yy1313;
}
} else {
if(yych <= 's'){
@@ -15568,65 +20053,76 @@ yy1192:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1193;
+ if(yych <= 't') goto yy1313;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1193:
- YYDEBUG(1193, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1313:
+ YYDEBUG(1313, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1194:
- YYDEBUG(1194, *YYCURSOR);
- yyaccept = 1;
+yy1314:
+ YYDEBUG(1314, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1192;
+ goto yy1312;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1223;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1343;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1195:
- YYDEBUG(1195, *YYCURSOR);
- yyaccept = 1;
+yy1315:
+ YYDEBUG(1315, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'H'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'I') goto yy1186;
+ if(yych <= 'I') goto yy1306;
if(yych <= 'T') goto yy134;
- goto yy1185;
+ goto yy1305;
}
}
} else {
@@ -15635,38 +20131,38 @@ yy1195:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 't'){
- if(yych <= 'i') goto yy1217;
- goto yy137;
+ if(yych <= 'i') goto yy1337;
+ goto yy139;
} else {
- if(yych <= 'u') goto yy1216;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'u') goto yy1336;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1196:
- YYDEBUG(1196, *YYCURSOR);
- yyaccept = 1;
+yy1316:
+ YYDEBUG(1316, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'C'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'D') goto yy1174;
+ if(yych <= 'D') goto yy1294;
if(yych <= 'L') goto yy134;
- goto yy1175;
+ goto yy1295;
}
}
} else {
@@ -15675,541 +20171,693 @@ yy1196:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'l'){
- if(yych <= 'd') goto yy1207;
- goto yy137;
+ if(yych <= 'd') goto yy1327;
+ goto yy139;
} else {
- if(yych <= 'm') goto yy1208;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'm') goto yy1328;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1197:
- YYDEBUG(1197, *YYCURSOR);
- yyaccept = 1;
+yy1317:
+ YYDEBUG(1317, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1170;
+ goto yy1290;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1203;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy1323;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1198:
- YYDEBUG(1198, *YYCURSOR);
- yyaccept = 1;
+yy1318:
+ YYDEBUG(1318, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1166;
+ goto yy1286;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1199;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy1319;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1199:
- YYDEBUG(1199, *YYCURSOR);
- yyaccept = 1;
+yy1319:
+ YYDEBUG(1319, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'L'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'K') goto yy135;
- goto yy1167;
+ goto yy1287;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'l') goto yy1200;
- if(yych <= 'z') goto yy142;
+ if(yych == 'l') goto yy1320;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1200:
- YYDEBUG(1200, *YYCURSOR);
- yyaccept = 1;
+yy1320:
+ YYDEBUG(1320, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'F'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'E') goto yy3;
- goto yy1168;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'E') goto yy136;
+ goto yy1288;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'f') goto yy1201;
- if(yych <= 'z') goto yy143;
+ if(yych == 'f') goto yy1321;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1201:
- YYDEBUG(1201, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1169;
- if(yych != 't') goto yy144;
- goto yy1202;
-yy1202:
- YYDEBUG(1202, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy1321:
+ YYDEBUG(1321, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy1289;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 't') goto yy1322;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy1203:
- YYDEBUG(1203, *YYCURSOR);
+yy1322:
+ YYDEBUG(1322, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy163;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1323:
+ YYDEBUG(1323, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'R') goto yy135;
- goto yy1171;
+ goto yy1291;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 's') goto yy1204;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 's') goto yy1324;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1204:
- YYDEBUG(1204, *YYCURSOR);
- yyaccept = 1;
+yy1324:
+ YYDEBUG(1324, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'C') goto yy3;
- goto yy1172;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy1292;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy1205;
- if(yych <= 'z') goto yy143;
+ if(yych == 'd') goto yy1325;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1205:
- YYDEBUG(1205, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1173;
- if(yych != 'a') goto yy144;
- goto yy1206;
-yy1206:
- YYDEBUG(1206, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1207:
- YYDEBUG(1207, *YYCURSOR);
- yyaccept = 1;
+yy1325:
+ YYDEBUG(1325, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy1182;
+ goto yy1293;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy1326;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1326:
+ YYDEBUG(1326, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy411;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'y') goto yy419;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1327:
+ YYDEBUG(1327, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy1302;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1214;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'a') goto yy1334;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1208:
- YYDEBUG(1208, *YYCURSOR);
- yyaccept = 1;
+yy1328:
+ YYDEBUG(1328, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy1176;
+ goto yy1296;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy1209;
- if(yych <= 'z') goto yy142;
+ if(yych == 'o') goto yy1329;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1209:
- YYDEBUG(1209, *YYCURSOR);
- yyaccept = 1;
+yy1329:
+ YYDEBUG(1329, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'Q') goto yy3;
- goto yy1177;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy1297;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy1210;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy1330;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1210:
- YYDEBUG(1210, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1178;
- if(yych != 'r') goto yy144;
- goto yy1211;
-yy1211:
- YYDEBUG(1211, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy1179;
- if(yych != 'o') goto yy144;
- goto yy1212;
-yy1212:
- YYDEBUG(1212, *YYCURSOR);
+yy1330:
+ YYDEBUG(1330, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1298;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy1331;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1331:
+ YYDEBUG(1331, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'N') goto yy3;
+ goto yy1299;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy1332;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1332:
+ YYDEBUG(1332, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'W') goto yy1180;
- if(yych != 'w') goto yy144;
- goto yy1213;
-yy1213:
- YYDEBUG(1213, *YYCURSOR);
+ if(yych == 'W') goto yy1300;
+ if(yych != 'w') goto yy148;
+ goto yy1333;
+yy1333:
+ YYDEBUG(1333, *YYCURSOR);
yyaccept = 22;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1181;
+ if(yych == '/') goto yy140;
+ goto yy1301;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1181;
- if(yych <= 'z') goto yy143;
- goto yy1181;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1301;
+ if(yych <= 'z') goto yy147;
+ goto yy1301;
}
-yy1214:
- YYDEBUG(1214, *YYCURSOR);
- yyaccept = 1;
+yy1334:
+ YYDEBUG(1334, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Y'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'X') goto yy3;
- goto yy1183;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy136;
+ goto yy1303;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'y') goto yy1215;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy1335;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1215:
- YYDEBUG(1215, *YYCURSOR);
+yy1335:
+ YYDEBUG(1335, *YYCURSOR);
yyaccept = 23;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1184;
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy1304;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy1304;
+ }
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1184;
- if(yych <= 'z') goto yy143;
- goto yy1184;
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy1304;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy146;
+ goto yy1304;
+ }
}
-yy1216:
- YYDEBUG(1216, *YYCURSOR);
+yy1336:
+ YYDEBUG(1336, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'Q') goto yy135;
- goto yy1188;
+ goto yy1308;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'r') goto yy1219;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'r') goto yy1339;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1217:
- YYDEBUG(1217, *YYCURSOR);
- yyaccept = 1;
+yy1337:
+ YYDEBUG(1337, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- if(yych <= 'R') goto yy1187;
- goto yy317;
+ if(yych <= 'R') goto yy1307;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy142;
- goto yy1218;
+ if(yych <= 'q') goto yy144;
+ goto yy1338;
} else {
- if(yych <= 's') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych <= 's') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1218:
- YYDEBUG(1218, *YYCURSOR);
- yyaccept = 1;
+yy1338:
+ YYDEBUG(1338, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'C') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'd') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1219:
- YYDEBUG(1219, *YYCURSOR);
- yyaccept = 1;
+yy1339:
+ YYDEBUG(1339, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'R') goto yy3;
- goto yy1189;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy1309;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy1220;
- if(yych <= 'z') goto yy143;
+ if(yych == 's') goto yy1340;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1220:
- YYDEBUG(1220, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1190;
- if(yych != 'd') goto yy144;
- goto yy1221;
-yy1221:
- YYDEBUG(1221, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1191;
- if(yych != 'a') goto yy144;
- goto yy1222;
-yy1222:
- YYDEBUG(1222, *YYCURSOR);
+yy1340:
+ YYDEBUG(1340, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy1310;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy1341;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1341:
+ YYDEBUG(1341, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy1311;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1342;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1342:
+ YYDEBUG(1342, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1223:
- YYDEBUG(1223, *YYCURSOR);
- yyaccept = 1;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy419;
+ goto yy148;
+yy1343:
+ YYDEBUG(1343, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1193;
+ goto yy1313;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1224;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1344;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1224:
- YYDEBUG(1224, *YYCURSOR);
- yyaccept = 1;
+yy1344:
+ YYDEBUG(1344, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1225:
- YYDEBUG(1225, *YYCURSOR);
+yy1345:
+ YYDEBUG(1345, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'R') goto yy1236;
+ if(yych == 'R') goto yy1357;
if(yych <= 'X') goto yy134;
- goto yy1237;
+ goto yy1358;
}
} else {
if(yych <= 'r'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'q') goto yy134;
- goto yy1236;
+ goto yy1357;
} else {
- if(yych == 'y') goto yy1237;
+ if(yych == 'y') goto yy1358;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1226:
- YYDEBUG(1226, *YYCURSOR);
+yy1346:
+ YYDEBUG(1346, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
@@ -16218,7 +20866,7 @@ yy1226:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy1231;
+ goto yy1351;
}
} else {
if(yych <= 'c'){
@@ -16226,13 +20874,13 @@ yy1226:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'd') goto yy1231;
+ if(yych <= 'd') goto yy1351;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1227:
- YYDEBUG(1227, *YYCURSOR);
+yy1347:
+ YYDEBUG(1347, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16241,7 +20889,7 @@ yy1227:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1228;
+ goto yy1348;
}
} else {
if(yych <= 'm'){
@@ -16249,54 +20897,76 @@ yy1227:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1228;
+ if(yych <= 'n') goto yy1348;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1228:
- YYDEBUG(1228, *YYCURSOR);
+yy1348:
+ YYDEBUG(1348, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy1229;
+ goto yy1349;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy1229;
+ if(yych <= 'd') goto yy1349;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1229:
- YYDEBUG(1229, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy1349:
+ YYDEBUG(1349, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy1350;
} else {
- if(yych <= 'A') goto yy1230;
- if(yych != 'a') goto yy3;
- goto yy1230;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1350;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1230:
- YYDEBUG(1230, *YYCURSOR);
+yy1350:
+ YYDEBUG(1350, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy1231:
- YYDEBUG(1231, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1351:
+ YYDEBUG(1351, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16305,7 +20975,7 @@ yy1231:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1232;
+ goto yy1352;
}
} else {
if(yych <= 'm'){
@@ -16313,88 +20983,140 @@ yy1231:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'n') goto yy1232;
+ if(yych <= 'n') goto yy1352;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1232:
- YYDEBUG(1232, *YYCURSOR);
- yyaccept = 1;
+yy1352:
+ YYDEBUG(1352, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'I'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy1353;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'i') goto yy1353;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1353:
+ YYDEBUG(1353, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'G'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'F') goto yy137;
+ goto yy1354;
+ }
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'g') goto yy1354;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1354:
+ YYDEBUG(1354, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'I') goto yy1233;
- if(yych != 'i') goto yy3;
- goto yy1233;
+ if(yych <= 'H') goto yy1355;
+ if(yych != 'h') goto yy3;
+ goto yy1355;
}
-yy1233:
- YYDEBUG(1233, *YYCURSOR);
+yy1355:
+ YYDEBUG(1355, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy1234;
- if(yych != 'g') goto yy53;
- goto yy1234;
-yy1234:
- YYDEBUG(1234, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'H') goto yy1235;
- if(yych != 'h') goto yy53;
- goto yy1235;
-yy1235:
- YYDEBUG(1235, *YYCURSOR);
+ if(yych == 'T') goto yy1356;
+ if(yych != 't') goto yy53;
+ goto yy1356;
+yy1356:
+ YYDEBUG(1356, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy1183;
- if(yych == 't') goto yy1183;
- goto yy53;
-yy1236:
- YYDEBUG(1236, *YYCURSOR);
- yyaccept = 1;
+ goto yy1304;
+yy1357:
+ YYDEBUG(1357, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'C') goto yy1238;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'C') goto yy1359;
+ goto yy135;
+ }
} else {
if(yych <= 'b'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'c') goto yy1238;
+ if(yych <= 'c') goto yy1359;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy1237:
- YYDEBUG(1237, *YYCURSOR);
- yyaccept = 1;
+yy1358:
+ YYDEBUG(1358, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '.'){
- if(yych <= ')'){
+ if(yych <= '-'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '-') goto yy361;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
}
} else {
if(yych <= '@'){
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
goto yy3;
} else {
if(yych <= 'Z') goto yy135;
@@ -16403,35 +21125,46 @@ yy1237:
goto yy3;
}
}
-yy1238:
- YYDEBUG(1238, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1359:
+ YYDEBUG(1359, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy604;
+ }
} else {
- if(yych <= 'H') goto yy358;
- if(yych == 'h') goto yy358;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy604;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1239:
- YYDEBUG(1239, *YYCURSOR);
- yyaccept = 1;
+yy1360:
+ YYDEBUG(1360, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Y'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'Q'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'R') goto yy1236;
+ if(yych <= 'R') goto yy1357;
if(yych <= 'X') goto yy134;
- goto yy1237;
+ goto yy1358;
}
}
} else {
@@ -16440,283 +21173,371 @@ yy1239:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'x'){
- if(yych <= 'r') goto yy1250;
- goto yy137;
+ if(yych <= 'r') goto yy1372;
+ goto yy139;
} else {
- if(yych <= 'y') goto yy1251;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'y') goto yy1373;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1240:
- YYDEBUG(1240, *YYCURSOR);
- yyaccept = 1;
+yy1361:
+ YYDEBUG(1361, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy1231;
+ goto yy1351;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy1245;
- if(yych <= 'z') goto yy137;
+ if(yych == 'd') goto yy1366;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1241:
- YYDEBUG(1241, *YYCURSOR);
- yyaccept = 1;
+yy1362:
+ YYDEBUG(1362, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1228;
+ goto yy1348;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1242;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1363;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1242:
- YYDEBUG(1242, *YYCURSOR);
+yy1363:
+ YYDEBUG(1363, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy1229;
+ goto yy1349;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy1243;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy1364;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1243:
- YYDEBUG(1243, *YYCURSOR);
- yyaccept = 1;
+yy1364:
+ YYDEBUG(1364, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy1230;
+ goto yy1350;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy1365;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy1365:
+ YYDEBUG(1365, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy1244;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy1244:
- YYDEBUG(1244, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1245:
- YYDEBUG(1245, *YYCURSOR);
- yyaccept = 1;
+yy1366:
+ YYDEBUG(1366, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1232;
+ goto yy1352;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1246;
- if(yych <= 'z') goto yy142;
+ if(yych == 'n') goto yy1367;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1246:
- YYDEBUG(1246, *YYCURSOR);
- yyaccept = 1;
+yy1367:
+ YYDEBUG(1367, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'H') goto yy3;
- goto yy1233;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy1353;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy1247;
- if(yych <= 'z') goto yy143;
+ if(yych == 'i') goto yy1368;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1247:
- YYDEBUG(1247, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'G') goto yy1234;
- if(yych != 'g') goto yy144;
- goto yy1248;
-yy1248:
- YYDEBUG(1248, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'H') goto yy1235;
- if(yych != 'h') goto yy144;
- goto yy1249;
-yy1249:
- YYDEBUG(1249, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1183;
- if(yych == 't') goto yy1215;
- goto yy144;
-yy1250:
- YYDEBUG(1250, *YYCURSOR);
- yyaccept = 1;
+yy1368:
+ YYDEBUG(1368, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= 'G'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'F') goto yy137;
+ goto yy1354;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy1369;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1369:
+ YYDEBUG(1369, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy1355;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy1370;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1370:
+ YYDEBUG(1370, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy1356;
+ if(yych != 't') goto yy148;
+ goto yy1371;
+yy1371:
+ YYDEBUG(1371, *YYCURSOR);
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ goto yy1304;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy147;
+ goto yy1304;
+ }
+yy1372:
+ YYDEBUG(1372, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'C'){
- if(yych <= 'B') goto yy135;
- goto yy1238;
+ if(yych <= '^'){
+ if(yych <= 'B'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'C') goto yy1359;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'b'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'c') goto yy1252;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'c') goto yy1374;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1251:
- YYDEBUG(1251, *YYCURSOR);
- yyaccept = 1;
+yy1373:
+ YYDEBUG(1373, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '-') goto yy361;
- if(yych <= '.') goto yy359;
- goto yy138;
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= ',') goto yy3;
+ if(yych <= '-') goto yy424;
+ goto yy423;
+ }
}
} else {
- if(yych <= '^'){
- if(yych <= '9') goto yy359;
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'Z') goto yy135;
- goto yy3;
+ goto yy135;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy142;
- goto yy3;
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy144;
+ goto yy3;
+ }
}
}
-yy1252:
- YYDEBUG(1252, *YYCURSOR);
- yyaccept = 1;
+yy1374:
+ YYDEBUG(1374, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy358;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy604;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy615;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1253:
- YYDEBUG(1253, *YYCURSOR);
+yy1375:
+ YYDEBUG(1375, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'W'){
if(yych <= 'N'){
@@ -16724,30 +21545,30 @@ yy1253:
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'O') goto yy1261;
+ if(yych <= 'O') goto yy1383;
if(yych <= 'U') goto yy134;
- if(yych <= 'V') goto yy1262;
- goto yy1259;
+ if(yych <= 'V') goto yy1384;
+ goto yy1381;
}
} else {
if(yych <= 'o'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'n') goto yy134;
- goto yy1261;
+ goto yy1383;
} else {
if(yych <= 'v'){
if(yych <= 'u') goto yy134;
- goto yy1262;
+ goto yy1384;
} else {
- if(yych <= 'w') goto yy1259;
+ if(yych <= 'w') goto yy1381;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
}
-yy1254:
- YYDEBUG(1254, *YYCURSOR);
+yy1376:
+ YYDEBUG(1376, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'X'){
if(yych <= ')'){
@@ -16756,7 +21577,7 @@ yy1254:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy1258;
+ goto yy1380;
}
} else {
if(yych <= 'w'){
@@ -16764,13 +21585,13 @@ yy1254:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'x') goto yy1258;
+ if(yych <= 'x') goto yy1380;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1255:
- YYDEBUG(1255, *YYCURSOR);
+yy1377:
+ YYDEBUG(1377, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16779,7 +21600,7 @@ yy1255:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1256;
+ goto yy1378;
}
} else {
if(yych <= 'm'){
@@ -16787,13 +21608,13 @@ yy1255:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1256;
+ if(yych <= 'n') goto yy1378;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1256:
- YYDEBUG(1256, *YYCURSOR);
+yy1378:
+ YYDEBUG(1378, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -16802,7 +21623,7 @@ yy1256:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1257;
+ goto yy1379;
}
} else {
if(yych <= 's'){
@@ -16810,25 +21631,36 @@ yy1256:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1257;
+ if(yych <= 't') goto yy1379;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1257:
- YYDEBUG(1257, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1379:
+ YYDEBUG(1379, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1258:
- YYDEBUG(1258, *YYCURSOR);
+yy1380:
+ YYDEBUG(1380, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -16837,7 +21669,7 @@ yy1258:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= 's'){
@@ -16845,25 +21677,25 @@ yy1258:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy317;
+ if(yych <= 't') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1259:
- YYDEBUG(1259, *YYCURSOR);
+yy1381:
+ YYDEBUG(1381, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= '@'){
if(yych == ')') goto yy132;
- goto yy1260;
+ goto yy1382;
} else {
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy1260;
+ if(yych <= '`') goto yy1382;
if(yych <= 'z') goto yy135;
- goto yy1260;
+ goto yy1382;
}
-yy1260:
- YYDEBUG(1260, *YYCURSOR);
+yy1382:
+ YYDEBUG(1382, *YYCURSOR);
{
DEBUG_OUTPUT("now");
@@ -16872,8 +21704,8 @@ yy1260:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1261:
- YYDEBUG(1261, *YYCURSOR);
+yy1383:
+ YYDEBUG(1383, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16882,7 +21714,7 @@ yy1261:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1267;
+ goto yy1389;
}
} else {
if(yych <= 'm'){
@@ -16890,78 +21722,132 @@ yy1261:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'n') goto yy1267;
+ if(yych <= 'n') goto yy1389;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1262:
- YYDEBUG(1262, *YYCURSOR);
- yyaccept = 1;
+yy1384:
+ YYDEBUG(1384, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'E') goto yy135;
- goto yy1263;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'E') goto yy135;
+ goto yy1385;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy1263;
+ if(yych <= 'e') goto yy1385;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy1263:
- YYDEBUG(1263, *YYCURSOR);
- yyaccept = 1;
+yy1385:
+ YYDEBUG(1385, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy1386;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'm') goto yy1386;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1386:
+ YYDEBUG(1386, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy1387;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'b') goto yy1387;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1387:
+ YYDEBUG(1387, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'L'){
+ if(yych <= 'D'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'M') goto yy1264;
- if(yych != 'm') goto yy3;
- goto yy1264;
+ if(yych <= 'E') goto yy1388;
+ if(yych != 'e') goto yy3;
+ goto yy1388;
}
-yy1264:
- YYDEBUG(1264, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy1265;
- if(yych != 'b') goto yy53;
- goto yy1265;
-yy1265:
- YYDEBUG(1265, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy1266;
- if(yych != 'e') goto yy53;
- goto yy1266;
-yy1266:
- YYDEBUG(1266, *YYCURSOR);
+yy1388:
+ YYDEBUG(1388, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy1267:
- YYDEBUG(1267, *YYCURSOR);
+yy1389:
+ YYDEBUG(1389, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) == ')') goto yy132;
- goto yy1268;
-yy1268:
- YYDEBUG(1268, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy1390;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy1390;
+ if(yych <= 'z') goto yy136;
+ goto yy1390;
+ }
+yy1390:
+ YYDEBUG(1390, *YYCURSOR);
{
DEBUG_OUTPUT("noon");
@@ -16973,9 +21859,9 @@ yy1268:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1269:
- YYDEBUG(1269, *YYCURSOR);
- yyaccept = 1;
+yy1391:
+ YYDEBUG(1391, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'W'){
if(yych <= '@'){
@@ -16983,17 +21869,17 @@ yy1269:
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= 'O'){
if(yych <= 'N') goto yy134;
- goto yy1261;
+ goto yy1383;
} else {
if(yych <= 'U') goto yy134;
- if(yych <= 'V') goto yy1262;
- goto yy1259;
+ if(yych <= 'V') goto yy1384;
+ goto yy1381;
}
}
} else {
@@ -17002,310 +21888,360 @@ yy1269:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'v'){
- if(yych <= 'o') goto yy1276;
- if(yych <= 'u') goto yy137;
- goto yy1277;
+ if(yych <= 'o') goto yy1398;
+ if(yych <= 'u') goto yy139;
+ goto yy1399;
} else {
- if(yych <= 'w') goto yy1275;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'w') goto yy1397;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1270:
- YYDEBUG(1270, *YYCURSOR);
- yyaccept = 1;
+yy1392:
+ YYDEBUG(1392, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy1258;
+ goto yy1380;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'x') goto yy1274;
- if(yych <= 'z') goto yy137;
+ if(yych == 'x') goto yy1396;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1271:
- YYDEBUG(1271, *YYCURSOR);
- yyaccept = 1;
+yy1393:
+ YYDEBUG(1393, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1256;
+ goto yy1378;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1272;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1394;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1272:
- YYDEBUG(1272, *YYCURSOR);
- yyaccept = 1;
+yy1394:
+ YYDEBUG(1394, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1257;
+ goto yy1379;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1273;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1395;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1273:
- YYDEBUG(1273, *YYCURSOR);
- yyaccept = 1;
+yy1395:
+ YYDEBUG(1395, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1274:
- YYDEBUG(1274, *YYCURSOR);
- yyaccept = 1;
+yy1396:
+ YYDEBUG(1396, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1275:
- YYDEBUG(1275, *YYCURSOR);
+yy1397:
+ YYDEBUG(1397, *YYCURSOR);
yyaccept = 24;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy1260;
+ if(yych <= '(') goto yy1382;
goto yy132;
} else {
- if(yych == '/') goto yy138;
- goto yy1260;
+ if(yych == '/') goto yy140;
+ goto yy1382;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy1260;
- goto yy138;
+ if(yych <= '^') goto yy1382;
+ goto yy140;
} else {
- if(yych <= '`') goto yy1260;
- if(yych <= 'z') goto yy142;
- goto yy1260;
+ if(yych <= '`') goto yy1382;
+ if(yych <= 'z') goto yy144;
+ goto yy1382;
}
}
-yy1276:
- YYDEBUG(1276, *YYCURSOR);
- yyaccept = 1;
+yy1398:
+ YYDEBUG(1398, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1267;
+ goto yy1389;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1282;
- if(yych <= 'z') goto yy142;
+ if(yych == 'n') goto yy1404;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1277:
- YYDEBUG(1277, *YYCURSOR);
- yyaccept = 1;
+yy1399:
+ YYDEBUG(1399, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy1263;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy1385;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy1278;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy1400;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1278:
- YYDEBUG(1278, *YYCURSOR);
- yyaccept = 1;
+yy1400:
+ YYDEBUG(1400, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'L') goto yy3;
- goto yy1264;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy1386;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'm') goto yy1279;
- if(yych <= 'z') goto yy143;
+ if(yych == 'm') goto yy1401;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1279:
- YYDEBUG(1279, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy1265;
- if(yych != 'b') goto yy144;
- goto yy1280;
-yy1280:
- YYDEBUG(1280, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy1266;
- if(yych != 'e') goto yy144;
- goto yy1281;
-yy1281:
- YYDEBUG(1281, *YYCURSOR);
+yy1401:
+ YYDEBUG(1401, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy1387;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy1402;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1402:
+ YYDEBUG(1402, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy1388;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy1403;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1403:
+ YYDEBUG(1403, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy1282:
- YYDEBUG(1282, *YYCURSOR);
+yy1404:
+ YYDEBUG(1404, *YYCURSOR);
yyaccept = 25;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == ')') goto yy132;
- if(yych <= '.') goto yy1268;
- goto yy138;
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy1390;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy1390;
+ }
} else {
if(yych <= '_'){
- if(yych <= '^') goto yy1268;
- goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy1390;
+ goto yy140;
} else {
- if(yych <= '`') goto yy1268;
- if(yych <= 'z') goto yy143;
- goto yy1268;
+ if(yych <= '`') goto yy1390;
+ if(yych <= 'z') goto yy145;
+ goto yy1390;
}
}
-yy1283:
- YYDEBUG(1283, *YYCURSOR);
+yy1405:
+ YYDEBUG(1405, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
@@ -17314,7 +22250,7 @@ yy1283:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy1284;
+ goto yy1406;
}
} else {
if(yych <= 'r'){
@@ -17322,13 +22258,13 @@ yy1283:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 's') goto yy1284;
+ if(yych <= 's') goto yy1406;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1284:
- YYDEBUG(1284, *YYCURSOR);
+yy1406:
+ YYDEBUG(1406, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -17337,7 +22273,7 @@ yy1284:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1285;
+ goto yy1407;
}
} else {
if(yych <= 's'){
@@ -17345,53 +22281,87 @@ yy1284:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1285;
+ if(yych <= 't') goto yy1407;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1285:
- YYDEBUG(1285, *YYCURSOR);
- yyaccept = 1;
+yy1407:
+ YYDEBUG(1407, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy1408;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy1408;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1408:
+ YYDEBUG(1408, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1409;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy1409;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1409:
+ YYDEBUG(1409, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'C'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy1286;
- if(yych != 'e') goto yy3;
- goto yy1286;
+ if(yych <= 'D') goto yy1410;
+ if(yych != 'd') goto yy3;
+ goto yy1410;
}
-yy1286:
- YYDEBUG(1286, *YYCURSOR);
+yy1410:
+ YYDEBUG(1410, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy1287;
- if(yych != 'r') goto yy53;
- goto yy1287;
-yy1287:
- YYDEBUG(1287, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1288;
- if(yych != 'd') goto yy53;
- goto yy1288;
-yy1288:
- YYDEBUG(1288, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1289;
+ if(yych == 'A') goto yy1411;
if(yych != 'a') goto yy53;
- goto yy1289;
-yy1289:
- YYDEBUG(1289, *YYCURSOR);
+ goto yy1411;
+yy1411:
+ YYDEBUG(1411, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy1290;
+ if(yych == 'Y') goto yy1412;
if(yych != 'y') goto yy53;
- goto yy1290;
-yy1290:
- YYDEBUG(1290, *YYCURSOR);
+ goto yy1412;
+yy1412:
+ YYDEBUG(1412, *YYCURSOR);
++YYCURSOR;
- goto yy1291;
-yy1291:
- YYDEBUG(1291, *YYCURSOR);
+ goto yy1413;
+yy1413:
+ YYDEBUG(1413, *YYCURSOR);
{
DEBUG_OUTPUT("yesterday");
@@ -17403,130 +22373,175 @@ yy1291:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-yy1292:
- YYDEBUG(1292, *YYCURSOR);
- yyaccept = 1;
+yy1414:
+ YYDEBUG(1414, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy1284;
+ goto yy1406;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy1293;
- if(yych <= 'z') goto yy137;
+ if(yych == 's') goto yy1415;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1293:
- YYDEBUG(1293, *YYCURSOR);
- yyaccept = 1;
+yy1415:
+ YYDEBUG(1415, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1285;
+ goto yy1407;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1294;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1416;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1294:
- YYDEBUG(1294, *YYCURSOR);
- yyaccept = 1;
+yy1416:
+ YYDEBUG(1416, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy1286;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy1408;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1295;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy1417;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1295:
- YYDEBUG(1295, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1287;
- if(yych != 'r') goto yy144;
- goto yy1296;
-yy1296:
- YYDEBUG(1296, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1288;
- if(yych != 'd') goto yy144;
- goto yy1297;
-yy1297:
- YYDEBUG(1297, *YYCURSOR);
+yy1417:
+ YYDEBUG(1417, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1409;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy1418;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1418:
+ YYDEBUG(1418, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ goto yy1410;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy1419;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1419:
+ YYDEBUG(1419, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1289;
- if(yych != 'a') goto yy144;
- goto yy1298;
-yy1298:
- YYDEBUG(1298, *YYCURSOR);
+ if(yych == 'A') goto yy1411;
+ if(yych != 'a') goto yy148;
+ goto yy1420;
+yy1420:
+ YYDEBUG(1420, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy1290;
- if(yych != 'y') goto yy144;
- goto yy1299;
-yy1299:
- YYDEBUG(1299, *YYCURSOR);
+ if(yych == 'Y') goto yy1412;
+ if(yych != 'y') goto yy148;
+ goto yy1421;
+yy1421:
+ YYDEBUG(1421, *YYCURSOR);
yyaccept = 26;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1291;
+ if(yych == '/') goto yy140;
+ goto yy1413;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1291;
- if(yych <= 'z') goto yy143;
- goto yy1291;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1413;
+ if(yych <= 'z') goto yy147;
+ goto yy1413;
}
}
}
}
-#define YYMAXFILL 26
+#define YYMAXFILL 29
-timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzdb)
+timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container **errors, timelib_tzdb *tzdb)
{
Scanner in;
int t;
char *e = s + len - 1;
+ memset(&in, 0, sizeof(in));
+ in.errors = malloc(sizeof(struct timelib_error_container));
+ in.errors->warning_count = 0;
+ in.errors->warning_messages = NULL;
+ in.errors->error_count = 0;
+ in.errors->error_messages = NULL;
+
while (isspace(*s) && s < e) {
s++;
}
@@ -17534,15 +22549,19 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
e--;
}
if (e - s < 1) {
- *errors = 1;
in.time = timelib_time_ctor();
+ add_error(&in, "Empty string");
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->z = in.time->dst = -1;
in.time->is_localtime = in.time->zone_type = 0;
return in.time;
}
e++;
- memset(&in, 0, sizeof(in));
in.str = malloc((e - s) + YYMAXFILL);
memset(in.str, 0, (e - s) + YYMAXFILL);
memcpy(in.str, s, (e - s));
@@ -17558,7 +22577,6 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
in.time->f = -1;
in.time->z = -1;
in.time->dst = -1;
- in.errors = 0;
in.tzdb = tzdb;
in.time->is_localtime = 0;
in.time->zone_type = 0;
@@ -17571,7 +22589,11 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
} while(t != EOI);
free(in.str);
- *errors = in.errors;
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
return in.time;
}
diff --git a/ext/date/lib/parse_date.c.orig b/ext/date/lib/parse_date.c.orig
index 61769557e..2b4a3aead 100644
--- a/ext/date/lib/parse_date.c.orig
+++ b/ext/date/lib/parse_date.c.orig
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.12 on Wed Jan 4 15:16:35 2006 */
+/* Generated by re2c 0.9.12 on Tue Apr 11 20:02:18 2006 */
#line 1 "ext/date/lib/parse_date.re"
/*
+----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: parse_date.c,v 1.29.2.24 2006/01/04 21:31:29 derick Exp $ */
+/* $Id: parse_date.c,v 1.29.2.30 2006/04/11 18:03:46 derick Exp $ */
#include "timelib.h"
@@ -99,13 +99,13 @@ typedef unsigned char uchar;
#define timelib_string_free free
-#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
+#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; }
-#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
+#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
#define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; }
#define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; s->time->relative.weekday_behavior = 0; }
#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_weekday_relative = 1; }
-#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { return TIMELIB_ERROR; } else { s->time.have_zone = 1; } }
+#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { add_warning(s, "Double timezone specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_zone = 1; } }
#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str
#define TIMELIB_DEINIT timelib_string_free(str)
@@ -142,7 +142,7 @@ typedef struct Scanner {
int fd;
uchar *lim, *str, *ptr, *cur, *tok, *pos;
unsigned int line, len;
- int errors;
+ struct timelib_error_container *errors;
struct timelib_time *time;
timelib_tzdb *tzdb;
@@ -287,7 +287,7 @@ static timelib_lookup_table const timelib_month_lookup[] = {
static char* timelib_ltrim(char *s)
{
char *ptr = s;
- while (ptr[0] == ' ') {
+ while (ptr[0] == ' ' || ptr[0] == '\t') {
ptr++;
}
return ptr;
@@ -327,6 +327,24 @@ uchar *fill(Scanner *s, uchar *cursor){
}
#endif
+static void add_warning(Scanner *s, char *error)
+{
+ s->errors->warning_count++;
+ s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
+ s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error);
+}
+
+static void add_error(Scanner *s, char *error)
+{
+ s->errors->error_count++;
+ s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
+ s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->error_messages[s->errors->error_count - 1].message = strdup(error);
+}
+
static timelib_sll timelib_meridian(char **ptr, timelib_sll h)
{
timelib_sll retval = 0;
@@ -497,7 +515,7 @@ static timelib_sll timelib_lookup_relative_text(char **ptr, int *behavior)
static timelib_sll timelib_get_relative_text(char **ptr, int *behavior)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_relative_text(ptr, behavior);
@@ -529,7 +547,7 @@ static long timelib_lookup_month(char **ptr)
static long timelib_get_month(char **ptr)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_month(ptr);
@@ -537,7 +555,7 @@ static long timelib_get_month(char **ptr)
static void timelib_eat_spaces(char **ptr)
{
- while (**ptr == ' ') {
+ while (**ptr == ' ' || **ptr == '\t') {
++*ptr;
}
}
@@ -548,7 +566,7 @@ static const timelib_relunit* timelib_lookup_relunit(char **ptr)
char *begin = *ptr, *end;
const timelib_relunit *tp, *value = NULL;
- while (**ptr != '\0' && **ptr != ' ') {
+ while (**ptr != '\0' && **ptr != ' ' && **ptr != '\t') {
++*ptr;
}
end = *ptr;
@@ -592,7 +610,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst)
{
int first_found = 0;
- timelib_tz_lookup_table *tp, *first_found_elem;
+ timelib_tz_lookup_table *tp, *first_found_elem = NULL;
timelib_tz_lookup_table *fmp;
if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) {
@@ -661,7 +679,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
*tz_not_found = 0;
- while (**ptr == ' ' || **ptr == '(') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') {
++*ptr;
}
if (**ptr == '+') {
@@ -686,9 +704,11 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
char *tz_abbr;
t->is_localtime = 1;
- t->zone_type = TIMELIB_ZONETYPE_ABBR;
offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found);
+ if (found) {
+ t->zone_type = TIMELIB_ZONETYPE_ABBR;
+ }
#if 0
/* If we found a TimeZone identifier, use it */
if (tz_name) {
@@ -704,7 +724,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
found++;
}
}
- if (t->zone_type != TIMELIB_ZONETYPE_ID) {
+ if (found && t->zone_type != TIMELIB_ZONETYPE_ID) {
timelib_time_tz_abbr_update(t, tz_abbr);
}
free(tz_abbr);
@@ -735,17 +755,17 @@ static int scan(Scanner *s)
std:
s->tok = cursor;
s->len = 0;
-#line 844 "ext/date/lib/parse_date.re"
+#line 865 "ext/date/lib/parse_date.re"
{
static unsigned char yybm[] = {
0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 208, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 208, 64, 64, 64, 64, 64, 64, 64,
- 64, 64, 64, 64, 192, 64, 192, 0,
+ 208, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 128, 64, 192, 0,
8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
@@ -774,7 +794,7 @@ std:
0, 0, 0, 0, 0, 0, 0, 0,
};
-#line 778 "ext/date/lib/parse_date.c"
+#line 798 "ext/date/lib/parse_date.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -783,12 +803,12 @@ std:
YYDEBUG(1, *YYCURSOR);
++YYCURSOR;
yy0:
- if((YYLIMIT - YYCURSOR) < 26) YYFILL(26);
+ if((YYLIMIT - YYCURSOR) < 29) YYFILL(29);
yych = *YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
case 0x00: case 0x0A: goto yy48;
- case ' ': goto yy45;
+ case 0x09: case ' ': goto yy45;
case '(': goto yy42;
case '+': case '-': goto yy41;
case ',': case '.': goto yy47;
@@ -856,33 +876,36 @@ yy2:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy1283;
+ goto yy1405;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
- if(yych >= 'a') goto yy136;
+ if(yych >= 'a') goto yy138;
goto yy3;
} else {
- if(yych <= 'e') goto yy1292;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy1414;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
yy3:
YYDEBUG(3, *YYCURSOR);
-#line 1339 "ext/date/lib/parse_date.re"
+#line 1369 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
TIMELIB_INIT;
+ TIMELIB_HAVE_TZ();
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
-#line 879 "ext/date/lib/parse_date.c"
+#line 902 "ext/date/lib/parse_date.c"
yy4:
YYDEBUG(4, *YYCURSOR);
yych = *++YYCURSOR;
@@ -893,7 +916,7 @@ yy4:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy1283;
+ goto yy1405;
}
} else {
if(yych <= 'd'){
@@ -901,7 +924,7 @@ yy4:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy1283;
+ if(yych <= 'e') goto yy1405;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -916,12 +939,12 @@ yy5:
goto yy133;
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy1254;
+ if(yych <= 'E') goto yy1376;
goto yy133;
} else {
- if(yych <= 'I') goto yy1255;
+ if(yych <= 'I') goto yy1377;
if(yych <= 'N') goto yy133;
- goto yy1253;
+ goto yy1375;
}
}
} else {
@@ -930,16 +953,16 @@ yy5:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'e') goto yy1270;
- goto yy136;
+ if(yych == 'e') goto yy1392;
+ goto yy138;
}
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1271;
- goto yy136;
+ if(yych <= 'i') goto yy1393;
+ goto yy138;
} else {
- if(yych <= 'o') goto yy1269;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'o') goto yy1391;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -954,12 +977,12 @@ yy6:
goto yy133;
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy1254;
+ if(yych <= 'E') goto yy1376;
goto yy133;
} else {
- if(yych <= 'I') goto yy1255;
+ if(yych <= 'I') goto yy1377;
if(yych <= 'N') goto yy133;
- goto yy1253;
+ goto yy1375;
}
}
} else {
@@ -968,15 +991,15 @@ yy6:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'e') goto yy1254;
+ if(yych == 'e') goto yy1376;
goto yy133;
}
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1255;
+ if(yych <= 'i') goto yy1377;
goto yy133;
} else {
- if(yych <= 'o') goto yy1253;
+ if(yych <= 'o') goto yy1375;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -989,25 +1012,25 @@ yy7:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1225;
+ goto yy1345;
} else {
- if(yych == 'I') goto yy1226;
+ if(yych == 'I') goto yy1346;
if(yych <= 'N') goto yy133;
- goto yy1227;
+ goto yy1347;
}
} else {
if(yych <= 'h'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1239;
- goto yy136;
+ if(yych <= 'a') goto yy1360;
+ goto yy138;
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1240;
- goto yy136;
+ if(yych <= 'i') goto yy1361;
+ goto yy138;
} else {
- if(yych <= 'o') goto yy1241;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'o') goto yy1362;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1019,24 +1042,24 @@ yy8:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1225;
+ goto yy1345;
} else {
- if(yych == 'I') goto yy1226;
+ if(yych == 'I') goto yy1346;
if(yych <= 'N') goto yy133;
- goto yy1227;
+ goto yy1347;
}
} else {
if(yych <= 'h'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1225;
+ if(yych <= 'a') goto yy1345;
goto yy133;
} else {
if(yych <= 'n'){
- if(yych <= 'i') goto yy1226;
+ if(yych <= 'i') goto yy1346;
goto yy133;
} else {
- if(yych <= 'o') goto yy1227;
+ if(yych <= 'o') goto yy1347;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1044,133 +1067,145 @@ yy8:
}
yy9:
YYDEBUG(9, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'W'){
- if(yych <= 'G'){
- if(yych <= '@'){
- if(yych == ')') goto yy132;
- goto yy3;
- } else {
- if(yych == 'E') goto yy1161;
- goto yy133;
- }
- } else {
- if(yych <= 'O'){
- if(yych <= 'H') goto yy1162;
- if(yych <= 'N') goto yy133;
- goto yy1163;
- } else {
- if(yych == 'U') goto yy1164;
- if(yych <= 'V') goto yy133;
- goto yy1165;
- }
- }
- } else {
- if(yych <= 'n'){
- if(yych <= 'd'){
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- goto yy136;
- } else {
- if(yych <= 'e') goto yy1194;
- if(yych == 'h') goto yy1195;
- goto yy136;
- }
- } else {
- if(yych <= 'u'){
- if(yych <= 'o') goto yy1196;
- if(yych <= 't') goto yy136;
- goto yy1197;
- } else {
- if(yych == 'w') goto yy1198;
- if(yych <= 'z') goto yy136;
- goto yy3;
- }
- }
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case ')': goto yy132;
+ case '0':
+ case '1': goto yy1277;
+ case '2': goto yy1278;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy1279;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D': case 'F':
+ case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N': case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T': case 'V': case 'X':
+ case 'Y':
+ case 'Z': goto yy133;
+ case 'E': goto yy1272;
+ case 'H': goto yy1273;
+ case 'O': goto yy1274;
+ case 'U': goto yy1275;
+ case 'W': goto yy1276;
+ case 'a':
+ case 'b':
+ case 'c':
+ case 'd': case 'f':
+ case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n': case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't': case 'v': case 'x':
+ case 'y':
+ case 'z': goto yy138;
+ case 'e': goto yy1314;
+ case 'h': goto yy1315;
+ case 'o': goto yy1316;
+ case 'u': goto yy1317;
+ case 'w': goto yy1318;
+ default: goto yy3;
}
yy10:
YYDEBUG(10, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'W'){
- if(yych <= 'G'){
- if(yych <= '@'){
- if(yych == ')') goto yy132;
- goto yy3;
- } else {
- if(yych == 'E') goto yy1161;
- goto yy133;
- }
- } else {
- if(yych <= 'O'){
- if(yych <= 'H') goto yy1162;
- if(yych <= 'N') goto yy133;
- goto yy1163;
- } else {
- if(yych == 'U') goto yy1164;
- if(yych <= 'V') goto yy133;
- goto yy1165;
- }
- }
- } else {
- if(yych <= 'n'){
- if(yych <= 'd'){
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- goto yy133;
- } else {
- if(yych <= 'e') goto yy1161;
- if(yych == 'h') goto yy1162;
- goto yy133;
- }
- } else {
- if(yych <= 'u'){
- if(yych <= 'o') goto yy1163;
- if(yych <= 't') goto yy133;
- goto yy1164;
- } else {
- if(yych == 'w') goto yy1165;
- if(yych <= 'z') goto yy133;
- goto yy3;
- }
- }
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case ')': goto yy132;
+ case '0':
+ case '1': goto yy1277;
+ case '2': goto yy1278;
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9': goto yy1279;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D': case 'F':
+ case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N': case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T': case 'V': case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd': case 'f':
+ case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n': case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't': case 'v': case 'x':
+ case 'y':
+ case 'z': goto yy133;
+ case 'E': case 'e': goto yy1272;
+ case 'H': case 'h': goto yy1273;
+ case 'O': case 'o': goto yy1274;
+ case 'U': case 'u': goto yy1275;
+ case 'W': case 'w': goto yy1276;
+ default: goto yy3;
}
yy11:
YYDEBUG(11, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '-') goto yy1157;
- if(yych <= '0') goto yy12;
- if(yych <= '9') goto yy1158;
+ if(yych == '-') goto yy1268;
+ if(yych <= '/') goto yy12;
+ if(yych <= '9') goto yy1269;
goto yy12;
yy12:
YYDEBUG(12, *YYCURSOR);
-#line 1405 "ext/date/lib/parse_date.re"
+#line 1440 "ext/date/lib/parse_date.re"
{
-/* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */
- s->errors++;
+ add_error(s, "Unexpected character");
goto std;
}
-#line 1130 "ext/date/lib/parse_date.c"
+#line 1174 "ext/date/lib/parse_date.c"
yy13:
YYDEBUG(13, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy1230;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1178,11 +1213,11 @@ yy13:
case 'T': case 'V':
case 'W':
case 'X':
- case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'w': case 'y': goto yy1121;
- case '-': goto yy615;
- case '.': goto yy1123;
- case '/': goto yy614;
- case '0': goto yy1156;
+ case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o': case 'w': case 'y': goto yy1232;
+ case '-': goto yy695;
+ case '.': goto yy1234;
+ case '/': goto yy694;
+ case '0': goto yy1267;
case '1':
case '2':
case '3':
@@ -1191,33 +1226,22 @@ yy13:
case '6':
case '7':
case '8':
- case '9': goto yy1155;
- case ':': goto yy1124;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1266;
+ case ':': goto yy1235;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy14:
YYDEBUG(14, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1227,46 +1251,35 @@ yy14:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
- case '2': goto yy1155;
+ case '2': goto yy1266;
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1122;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1233;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy15:
YYDEBUG(15, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1276,46 +1289,35 @@ yy15:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
case '2':
- case '3': goto yy1122;
+ case '3': goto yy1233;
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy1119;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy1229;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy16:
YYDEBUG(16, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1325,12 +1327,12 @@ yy16:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
- case '1': goto yy1119;
+ case '1': goto yy1229;
case '2':
case '3':
case '4':
@@ -1338,33 +1340,22 @@ yy16:
case '6':
case '7':
case '8':
- case '9': goto yy611;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy691;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy17:
YYDEBUG(17, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: goto yy682;
+ case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -1374,10 +1365,10 @@ yy17:
case 'W':
case 'X':
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm': case 'o':
- case 'p': case 'w': case 'y': goto yy604;
- case '-': goto yy615;
- case '.': goto yy618;
- case '/': goto yy614;
+ case 'p': case 'w': case 'y': goto yy684;
+ case '-': goto yy695;
+ case '.': goto yy696;
+ case '/': goto yy694;
case '0':
case '1':
case '2':
@@ -1387,93 +1378,117 @@ yy17:
case '6':
case '7':
case '8':
- case '9': goto yy611;
- case ':': goto yy627;
- case 'n': goto yy612;
- case 'r': goto yy613;
- case 's': goto yy606;
- case 't': goto yy610;
+ case '9': goto yy691;
+ case ':': goto yy705;
+ case 'n': goto yy692;
+ case 'r': goto yy693;
+ case 's': goto yy686;
+ case 't': goto yy690;
default: goto yy12;
}
yy18:
YYDEBUG(18, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
- if(yych <= '.'){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy133;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == '/') goto yy3;
+ goto yy423;
+ }
}
} else {
- if(yych <= 'W'){
- if(yych <= 'I') goto yy602;
- if(yych == 'V') goto yy601;
- goto yy133;
+ if(yych <= 'V'){
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy133;
+ } else {
+ if(yych <= 'I') goto yy681;
+ if(yych <= 'U') goto yy133;
+ goto yy680;
+ }
} else {
if(yych <= 'Z'){
- if(yych <= 'X') goto yy601;
+ if(yych == 'X') goto yy680;
goto yy133;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
}
yy19:
YYDEBUG(19, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy133;
- goto yy599;
+ goto yy133;
} else {
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy678;
+ goto yy133;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy138;
+ goto yy3;
+ }
}
}
yy20:
YYDEBUG(20, *YYCURSOR);
- yyaccept = 1;
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy133;
- goto yy597;
+ goto yy133;
} else {
- if(yych <= 'Z') goto yy133;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy676;
+ goto yy133;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy138;
+ goto yy3;
+ }
}
}
yy21:
@@ -1484,18 +1499,18 @@ yy21:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy580;
+ if(yych <= 'A') goto yy659;
if(yych <= 'T') goto yy133;
- goto yy579;
+ goto yy658;
}
} else {
if(yych <= 'a'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy589;
+ goto yy668;
} else {
- if(yych == 'u') goto yy588;
- if(yych <= 'z') goto yy136;
+ if(yych == 'u') goto yy667;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1507,17 +1522,17 @@ yy22:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy580;
+ if(yych <= 'A') goto yy659;
if(yych <= 'T') goto yy133;
- goto yy579;
+ goto yy658;
}
} else {
if(yych <= 'a'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy580;
+ goto yy659;
} else {
- if(yych == 'u') goto yy579;
+ if(yych == 'u') goto yy658;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1533,16 +1548,16 @@ yy23:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy541;
+ goto yy620;
}
} else {
if(yych <= 'N'){
- if(yych == 'I') goto yy542;
+ if(yych == 'I') goto yy621;
goto yy133;
} else {
- if(yych <= 'O') goto yy543;
+ if(yych <= 'O') goto yy622;
if(yych <= 'Q') goto yy133;
- goto yy544;
+ goto yy623;
}
}
} else {
@@ -1550,19 +1565,19 @@ yy23:
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy560;
- if(yych <= 'h') goto yy136;
- goto yy561;
+ if(yych <= 'e') goto yy639;
+ if(yych <= 'h') goto yy138;
+ goto yy640;
}
} else {
if(yych <= 'q'){
- if(yych == 'o') goto yy562;
- goto yy136;
+ if(yych == 'o') goto yy641;
+ goto yy138;
} else {
- if(yych <= 'r') goto yy563;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'r') goto yy642;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1578,16 +1593,16 @@ yy24:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy541;
+ goto yy620;
}
} else {
if(yych <= 'N'){
- if(yych == 'I') goto yy542;
+ if(yych == 'I') goto yy621;
goto yy133;
} else {
- if(yych <= 'O') goto yy543;
+ if(yych <= 'O') goto yy622;
if(yych <= 'Q') goto yy133;
- goto yy544;
+ goto yy623;
}
}
} else {
@@ -1597,16 +1612,16 @@ yy24:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy541;
+ if(yych <= 'e') goto yy620;
if(yych <= 'h') goto yy133;
- goto yy542;
+ goto yy621;
}
} else {
if(yych <= 'q'){
- if(yych == 'o') goto yy543;
+ if(yych == 'o') goto yy622;
goto yy133;
} else {
- if(yych <= 'r') goto yy544;
+ if(yych <= 'r') goto yy623;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1622,12 +1637,12 @@ yy25:
goto yy133;
} else {
if(yych <= 'O'){
- if(yych <= 'G') goto yy524;
+ if(yych <= 'G') goto yy599;
goto yy133;
} else {
- if(yych <= 'P') goto yy523;
+ if(yych <= 'P') goto yy598;
if(yych <= 'T') goto yy133;
- goto yy522;
+ goto yy597;
}
}
} else {
@@ -1636,16 +1651,16 @@ yy25:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'g') goto yy534;
- goto yy136;
+ if(yych == 'g') goto yy611;
+ goto yy138;
}
} else {
if(yych <= 't'){
- if(yych <= 'p') goto yy533;
- goto yy136;
+ if(yych <= 'p') goto yy610;
+ goto yy138;
} else {
- if(yych <= 'u') goto yy532;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'u') goto yy609;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1660,12 +1675,12 @@ yy26:
goto yy133;
} else {
if(yych <= 'O'){
- if(yych <= 'G') goto yy524;
+ if(yych <= 'G') goto yy599;
goto yy133;
} else {
- if(yych <= 'P') goto yy523;
+ if(yych <= 'P') goto yy598;
if(yych <= 'T') goto yy133;
- goto yy522;
+ goto yy597;
}
}
} else {
@@ -1674,15 +1689,15 @@ yy26:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych == 'g') goto yy524;
+ if(yych == 'g') goto yy599;
goto yy133;
}
} else {
if(yych <= 't'){
- if(yych <= 'p') goto yy523;
+ if(yych <= 'p') goto yy598;
goto yy133;
} else {
- if(yych <= 'u') goto yy522;
+ if(yych <= 'u') goto yy597;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1698,17 +1713,17 @@ yy27:
goto yy132;
} else {
if(yych <= '@') goto yy3;
- if(yych <= 'A') goto yy469;
+ if(yych <= 'A') goto yy540;
goto yy133;
}
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy468;
+ if(yych <= 'E') goto yy539;
goto yy133;
} else {
- if(yych <= 'I') goto yy470;
+ if(yych <= 'I') goto yy541;
if(yych <= 'T') goto yy133;
- goto yy471;
+ goto yy542;
}
}
} else {
@@ -1717,17 +1732,17 @@ yy27:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy496;
- if(yych <= 'd') goto yy136;
- goto yy495;
+ if(yych <= 'a') goto yy569;
+ if(yych <= 'd') goto yy138;
+ goto yy568;
}
} else {
if(yych <= 't'){
- if(yych == 'i') goto yy497;
- goto yy136;
+ if(yych == 'i') goto yy570;
+ goto yy138;
} else {
- if(yych <= 'u') goto yy498;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'u') goto yy571;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1742,17 +1757,17 @@ yy28:
goto yy132;
} else {
if(yych <= '@') goto yy3;
- if(yych <= 'A') goto yy469;
+ if(yych <= 'A') goto yy540;
goto yy133;
}
} else {
if(yych <= 'H'){
- if(yych <= 'E') goto yy468;
+ if(yych <= 'E') goto yy539;
goto yy133;
} else {
- if(yych <= 'I') goto yy470;
+ if(yych <= 'I') goto yy541;
if(yych <= 'T') goto yy133;
- goto yy471;
+ goto yy542;
}
}
} else {
@@ -1761,16 +1776,16 @@ yy28:
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy469;
+ if(yych <= 'a') goto yy540;
if(yych <= 'd') goto yy133;
- goto yy468;
+ goto yy539;
}
} else {
if(yych <= 't'){
- if(yych == 'i') goto yy470;
+ if(yych == 'i') goto yy541;
goto yy133;
} else {
- if(yych <= 'u') goto yy471;
+ if(yych <= 'u') goto yy542;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1786,16 +1801,16 @@ yy29:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy133;
- goto yy458;
+ goto yy529;
}
} else {
if(yych <= 'b'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'c') goto yy463;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'c') goto yy534;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1809,7 +1824,7 @@ yy30:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy133;
- goto yy458;
+ goto yy529;
}
} else {
if(yych <= 'b'){
@@ -1817,7 +1832,7 @@ yy30:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'c') goto yy458;
+ if(yych <= 'c') goto yy529;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1832,16 +1847,16 @@ yy31:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy356;
+ goto yy420;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy451;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy522;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1855,7 +1870,7 @@ yy32:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy356;
+ goto yy420;
}
} else {
if(yych <= 'd'){
@@ -1863,7 +1878,7 @@ yy32:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy356;
+ if(yych <= 'e') goto yy420;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1878,16 +1893,16 @@ yy33:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy339;
+ goto yy403;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'e') goto yy348;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'e') goto yy412;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1901,7 +1916,7 @@ yy34:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy133;
- goto yy339;
+ goto yy403;
}
} else {
if(yych <= 'd'){
@@ -1909,7 +1924,7 @@ yy34:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'e') goto yy339;
+ if(yych <= 'e') goto yy403;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1922,19 +1937,19 @@ yy35:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy321;
+ if(yych == 'I') goto yy367;
if(yych <= 'K') goto yy133;
- goto yy322;
+ goto yy368;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'h') goto yy136;
- goto yy330;
+ if(yych <= 'h') goto yy138;
+ goto yy385;
} else {
- if(yych == 'l') goto yy331;
- if(yych <= 'z') goto yy136;
+ if(yych == 'l') goto yy386;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1946,18 +1961,18 @@ yy36:
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy321;
+ if(yych == 'I') goto yy367;
if(yych <= 'K') goto yy133;
- goto yy322;
+ goto yy368;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
if(yych <= 'h') goto yy133;
- goto yy321;
+ goto yy367;
} else {
- if(yych == 'l') goto yy322;
+ if(yych == 'l') goto yy368;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -1968,14 +1983,14 @@ yy37:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy315;
+ goto yy319;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy318;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'a') goto yy343;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -1985,13 +2000,13 @@ yy38:
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy315;
+ goto yy319;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy133;
goto yy3;
} else {
- if(yych <= 'a') goto yy315;
+ if(yych <= 'a') goto yy319;
if(yych <= 'z') goto yy133;
goto yy3;
}
@@ -2006,16 +2021,16 @@ yy39:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy133;
- goto yy153;
+ goto yy157;
}
} else {
if(yych <= 'q'){
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- goto yy136;
+ goto yy138;
} else {
- if(yych <= 'r') goto yy235;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'r') goto yy239;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
}
@@ -2029,7 +2044,7 @@ yy40:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy133;
- goto yy153;
+ goto yy157;
}
} else {
if(yych <= 'q'){
@@ -2037,30 +2052,30 @@ yy40:
if(yych <= '`') goto yy3;
goto yy133;
} else {
- if(yych <= 'r') goto yy153;
+ if(yych <= 'r') goto yy157;
if(yych <= 'z') goto yy133;
goto yy3;
}
}
yy41:
YYDEBUG(41, *YYCURSOR);
- yyaccept = 0;
+ yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 16) {
goto yy54;
}
if(yych <= '/') goto yy12;
- if(yych <= '1') goto yy146;
- if(yych <= '2') goto yy147;
- if(yych <= '9') goto yy148;
+ if(yych <= '1') goto yy150;
+ if(yych <= '2') goto yy151;
+ if(yych <= '9') goto yy152;
goto yy12;
yy42:
YYDEBUG(42, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@') goto yy12;
- if(yych <= 'Z') goto yy145;
+ if(yych <= 'Z') goto yy149;
if(yych <= '`') goto yy12;
- if(yych <= 'z') goto yy145;
+ if(yych <= 'z') goto yy149;
goto yy12;
yy43:
YYDEBUG(43, *YYCURSOR);
@@ -2071,7 +2086,7 @@ yy43:
} else {
if(yych <= 'Z') goto yy133;
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy136;
+ if(yych <= 'z') goto yy138;
goto yy3;
}
yy44:
@@ -2099,11 +2114,11 @@ yy45:
yy46:
YYDEBUG(46, *YYCURSOR);
-#line 1394 "ext/date/lib/parse_date.re"
+#line 1429 "ext/date/lib/parse_date.re"
{
goto std;
}
-#line 2009 "ext/date/lib/parse_date.c"
+#line 2022 "ext/date/lib/parse_date.c"
yy47:
YYDEBUG(47, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2115,12 +2130,12 @@ yy48:
yy49:
YYDEBUG(49, *YYCURSOR);
-#line 1399 "ext/date/lib/parse_date.re"
+#line 1434 "ext/date/lib/parse_date.re"
{
s->pos = cursor; s->line++;
goto std;
}
-#line 2020 "ext/date/lib/parse_date.c"
+#line 2033 "ext/date/lib/parse_date.c"
yy50:
YYDEBUG(50, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2136,50 +2151,96 @@ yy52:
if(yybm[0+yych] & 8) {
goto yy51;
}
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': case 't': goto yy65;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- default: goto yy53;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych >= ' ') goto yy56;
+ goto yy53;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych >= 'F') goto yy63;
+ goto yy53;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych >= 'M') goto yy59;
+ goto yy53;
+ } else {
+ if(yych <= 'S'){
+ if(yych >= 'S') goto yy58;
+ goto yy53;
+ } else {
+ if(yych <= 'T') goto yy65;
+ if(yych >= 'W') goto yy62;
+ goto yy53;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych >= 'd') goto yy61;
+ goto yy53;
+ } else {
+ if(yych <= 'f'){
+ if(yych >= 'f') goto yy63;
+ goto yy53;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy53;
+ if(yych <= 's') goto yy58;
+ goto yy65;
+ } else {
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy62;
+ goto yy53;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy53;
+ }
+ }
+ }
}
yy53:
YYDEBUG(53, *YYCURSOR);
YYCURSOR = YYMARKER;
switch(yyaccept){
- case 26: goto yy1291;
- case 24: goto yy1260;
- case 25: goto yy1268;
- case 23: goto yy1184;
- case 22: goto yy1181;
- case 11: goto yy634;
- case 20: goto yy1127;
- case 21: goto yy1135;
- case 13: goto yy784;
- case 18: goto yy1024;
- case 12: goto yy775;
- case 8: goto yy420;
- case 17: goto yy889;
- case 6: goto yy363;
- case 10: goto yy620;
- case 16: goto yy922;
- case 19: goto yy933;
- case 15: goto yy915;
- case 14: goto yy880;
- case 9: goto yy526;
- case 5: goto yy341;
- case 4: goto yy172;
- case 1: goto yy3;
- case 7: goto yy385;
+ case 26: goto yy1413;
+ case 24: goto yy1382;
+ case 25: goto yy1390;
+ case 23: goto yy1304;
+ case 22: goto yy1301;
+ case 11: goto yy713;
+ case 20: goto yy1238;
+ case 21: goto yy1246;
+ case 13: goto yy870;
+ case 18: goto yy1134;
+ case 12: goto yy860;
+ case 8: goto yy491;
+ case 17: goto yy978;
+ case 6: goto yy426;
+ case 10: goto yy698;
+ case 16: goto yy1032;
+ case 19: goto yy1026;
+ case 15: goto yy1005;
+ case 14: goto yy971;
+ case 9: goto yy601;
+ case 5: goto yy405;
+ case 4: goto yy176;
+ case 0: goto yy3;
+ case 7: goto yy448;
case 3: goto yy69;
case 2: goto yy46;
- case 0: goto yy12;
+ case 1: goto yy12;
}
yy54:
YYDEBUG(54, *YYCURSOR);
@@ -2203,18 +2264,64 @@ yy56:
goto yy57;
yy57:
YYDEBUG(57, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': case 't': goto yy65;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- default: goto yy53;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych <= 0x1F) goto yy53;
+ goto yy56;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych <= 'E') goto yy53;
+ goto yy63;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych <= 'L') goto yy53;
+ goto yy59;
+ } else {
+ if(yych <= 'S'){
+ if(yych <= 'R') goto yy53;
+ goto yy58;
+ } else {
+ if(yych <= 'T') goto yy65;
+ if(yych <= 'V') goto yy53;
+ goto yy62;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych <= 'c') goto yy53;
+ goto yy61;
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'e') goto yy53;
+ goto yy63;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy53;
+ if(yych >= 't') goto yy65;
+ goto yy58;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy53;
+ goto yy62;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy53;
+ }
+ }
+ }
}
yy58:
YYDEBUG(58, *YYCURSOR);
@@ -2332,7 +2439,7 @@ yy68:
yy69:
YYDEBUG(69, *YYCURSOR);
-#line 1378 "ext/date/lib/parse_date.re"
+#line 1413 "ext/date/lib/parse_date.re"
{
timelib_ull i;
DEBUG_OUTPUT("relative");
@@ -2347,7 +2454,7 @@ yy69:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 2205 "ext/date/lib/parse_date.c"
+#line 2312 "ext/date/lib/parse_date.c"
yy70:
YYDEBUG(70, *YYCURSOR);
yych = *++YYCURSOR;
@@ -2804,34 +2911,58 @@ yy134:
yy135:
YYDEBUG(135, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy136;
+ }
yy136:
YYDEBUG(136, *YYCURSOR);
- yyaccept = 1;
+ yych = *++YYCURSOR;
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy137;
+ }
+yy137:
+ YYDEBUG(137, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy132;
+ goto yy3;
+yy138:
+ YYDEBUG(138, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy134;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
if(yych >= '{') goto yy3;
- goto yy137;
+ goto yy139;
}
}
-yy137:
- YYDEBUG(137, *YYCURSOR);
- yyaccept = 1;
+yy139:
+ YYDEBUG(139, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
@@ -2839,88 +2970,134 @@ yy137:
goto yy132;
} else {
if(yych != '/') goto yy3;
- goto yy138;
+ goto yy140;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy138:
- YYDEBUG(138, *YYCURSOR);
+yy140:
+ YYDEBUG(140, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '@') goto yy53;
if(yych >= '[') goto yy53;
- goto yy139;
-yy139:
- YYDEBUG(139, *YYCURSOR);
+ goto yy141;
+yy141:
+ YYDEBUG(141, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yybm[0+yych] & 32) {
- goto yy140;
+ goto yy142;
}
goto yy53;
-yy140:
- YYDEBUG(140, *YYCURSOR);
- yyaccept = 1;
+yy142:
+ YYDEBUG(142, *YYCURSOR);
+ yyaccept = 0;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy141;
-yy141:
- YYDEBUG(141, *YYCURSOR);
+ goto yy143;
+yy143:
+ YYDEBUG(143, *YYCURSOR);
if(yybm[0+yych] & 32) {
- goto yy140;
+ goto yy142;
}
- if(yych == '/') goto yy138;
- if(yych == '_') goto yy138;
+ if(yych == '/') goto yy140;
+ if(yych == '_') goto yy140;
goto yy3;
-yy142:
- YYDEBUG(142, *YYCURSOR);
- yyaccept = 1;
+yy144:
+ YYDEBUG(144, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy145;
+ }
+ }
+yy145:
+ YYDEBUG(145, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych >= '{') goto yy3;
+ goto yy146;
+ }
+ }
+yy146:
+ YYDEBUG(146, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '_'){
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
if(yych >= '{') goto yy3;
- goto yy143;
+ goto yy147;
}
}
-yy143:
- YYDEBUG(143, *YYCURSOR);
+yy147:
+ YYDEBUG(147, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy144;
-yy144:
- YYDEBUG(144, *YYCURSOR);
+ goto yy148;
+yy148:
+ YYDEBUG(148, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy53;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
-yy145:
- YYDEBUG(145, *YYCURSOR);
+yy149:
+ YYDEBUG(149, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
if(yych == ')') goto yy132;
@@ -2931,160 +3108,356 @@ yy145:
if(yych <= 'z') goto yy133;
goto yy3;
}
-yy146:
- YYDEBUG(146, *YYCURSOR);
- yyaccept = 1;
+yy150:
+ YYDEBUG(150, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy148;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '9'){
+ if(yych <= '/') goto yy3;
+ goto yy152;
+ } else {
+ if(yych <= ':') goto yy153;
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy57;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy147:
- YYDEBUG(147, *YYCURSOR);
- yyaccept = 1;
+yy151:
+ YYDEBUG(151, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3': goto yy148;
- case '4':
- case '5': goto yy150;
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'T'){
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '3'){
+ if(yych <= '/') goto yy3;
+ goto yy152;
+ } else {
+ if(yych <= '5') goto yy154;
+ if(yych <= '9') goto yy155;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy3;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy148:
- YYDEBUG(148, *YYCURSOR);
- yyaccept = 1;
+yy152:
+ YYDEBUG(152, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5': goto yy150;
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- case ':': goto yy149;
- default: goto yy3;
+ if(yych <= 'T'){
+ if(yych <= 'C'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '5'){
+ if(yych <= '/') goto yy3;
+ goto yy154;
+ } else {
+ if(yych <= '9') goto yy155;
+ if(yych >= ';') goto yy3;
+ goto yy153;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych == 'E') goto yy3;
+ if(yych <= 'F') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy3;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy149:
- YYDEBUG(149, *YYCURSOR);
+yy153:
+ YYDEBUG(153, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy3;
- if(yych <= '5') goto yy152;
+ if(yych <= '5') goto yy156;
if(yych <= '9') goto yy132;
goto yy3;
-yy150:
- YYDEBUG(150, *YYCURSOR);
- yyaccept = 1;
+yy154:
+ YYDEBUG(154, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy151;
- default: goto yy3;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy155;
+ if(yych <= 'C') goto yy3;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy57;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy57;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy3;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
+ }
+ }
}
-yy151:
- YYDEBUG(151, *YYCURSOR);
- yyaccept = 1;
+yy155:
+ YYDEBUG(155, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy3;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy3;
+ goto yy57;
} else {
- if(yych == 'E') goto yy3;
- if(yych <= 'F') goto yy57;
- goto yy3;
+ if(yych == 'D') goto yy57;
+ if(yych <= 'E') goto yy3;
+ goto yy57;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy3;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych <= 'L') goto yy3;
+ goto yy57;
} else {
+ if(yych <= 'R') goto yy3;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy3;
+ if(yych <= 'V') goto yy3;
+ goto yy57;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy3;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych <= 'c') goto yy3;
+ goto yy57;
} else {
- if(yych == 'g') goto yy3;
- if(yych <= 'h') goto yy57;
- goto yy3;
+ if(yych == 'f') goto yy57;
+ if(yych <= 'g') goto yy3;
+ goto yy57;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
if(yych <= 'r') goto yy3;
- if(yych <= 't') goto yy57;
- goto yy3;
+ goto yy57;
} else {
- if(yych == 'x') goto yy3;
- if(yych <= 'y') goto yy57;
- goto yy3;
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy3;
+ }
}
}
}
-yy152:
- YYDEBUG(152, *YYCURSOR);
+yy156:
+ YYDEBUG(156, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy3;
if(yych <= '9') goto yy132;
goto yy3;
-yy153:
- YYDEBUG(153, *YYCURSOR);
+yy157:
+ YYDEBUG(157, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -3093,7 +3466,7 @@ yy153:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy154;
+ goto yy158;
}
} else {
if(yych <= 'd'){
@@ -3101,13 +3474,13 @@ yy153:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy154;
+ if(yych <= 'e') goto yy158;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy154:
- YYDEBUG(154, *YYCURSOR);
+yy158:
+ YYDEBUG(158, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= ')'){
@@ -3116,7 +3489,7 @@ yy154:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy155;
+ goto yy159;
}
} else {
if(yych <= 'u'){
@@ -3124,182 +3497,262 @@ yy154:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'v') goto yy155;
+ if(yych <= 'v') goto yy159;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy155:
- YYDEBUG(155, *YYCURSOR);
- yyaccept = 1;
+yy159:
+ YYDEBUG(159, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'I'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy160;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'i') goto yy160;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy160:
+ YYDEBUG(160, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy161;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'o') goto yy161;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy161:
+ YYDEBUG(161, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
+ if(yych <= 'T'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'I') goto yy156;
- if(yych != 'i') goto yy3;
- goto yy156;
+ if(yych <= 'U') goto yy162;
+ if(yych != 'u') goto yy3;
+ goto yy162;
}
-yy156:
- YYDEBUG(156, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy157;
- if(yych != 'o') goto yy53;
- goto yy157;
-yy157:
- YYDEBUG(157, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy158;
- if(yych != 'u') goto yy53;
- goto yy158;
-yy158:
- YYDEBUG(158, *YYCURSOR);
+yy162:
+ YYDEBUG(162, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy159;
+ if(yych == 'S') goto yy163;
if(yych != 's') goto yy53;
- goto yy159;
-yy159:
- YYDEBUG(159, *YYCURSOR);
+ goto yy163;
+yy163:
+ YYDEBUG(163, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR;
- goto yy160;
-yy160:
- YYDEBUG(160, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy159;
- case 'D': case 'd': goto yy164;
- case 'F': case 'f': goto yy166;
- case 'H': case 'h': goto yy163;
- case 'M': case 'm': goto yy162;
- case 'S': case 's': goto yy161;
- case 'T': case 't': goto yy168;
- case 'W': case 'w': goto yy165;
- case 'Y': case 'y': goto yy167;
- default: goto yy53;
+ goto yy164;
+yy164:
+ YYDEBUG(164, *YYCURSOR);
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy163;
+ if(yych <= 0x1F) goto yy53;
+ goto yy163;
+ } else {
+ if(yych == 'D') goto yy168;
+ if(yych <= 'E') goto yy53;
+ goto yy170;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy167;
+ if(yych <= 'L') goto yy53;
+ goto yy166;
+ } else {
+ if(yych <= 'S'){
+ if(yych <= 'R') goto yy53;
+ goto yy165;
+ } else {
+ if(yych <= 'T') goto yy172;
+ if(yych <= 'V') goto yy53;
+ goto yy169;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy171;
+ if(yych <= 'c') goto yy53;
+ goto yy168;
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'e') goto yy53;
+ goto yy170;
+ } else {
+ if(yych == 'h') goto yy167;
+ goto yy53;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy166;
+ if(yych <= 'r') goto yy53;
+ if(yych >= 't') goto yy172;
+ goto yy165;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy53;
+ goto yy169;
+ } else {
+ if(yych == 'y') goto yy171;
+ goto yy53;
+ }
+ }
+ }
}
-yy161:
- YYDEBUG(161, *YYCURSOR);
+yy165:
+ YYDEBUG(165, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
- if(yych == 'A') goto yy222;
+ if(yych == 'A') goto yy226;
goto yy53;
} else {
- if(yych <= 'E') goto yy223;
+ if(yych <= 'E') goto yy227;
if(yych <= 'T') goto yy53;
- goto yy221;
+ goto yy225;
}
} else {
if(yych <= 'd'){
- if(yych == 'a') goto yy222;
+ if(yych == 'a') goto yy226;
goto yy53;
} else {
- if(yych <= 'e') goto yy223;
- if(yych == 'u') goto yy221;
+ if(yych <= 'e') goto yy227;
+ if(yych == 'u') goto yy225;
goto yy53;
}
}
-yy162:
- YYDEBUG(162, *YYCURSOR);
+yy166:
+ YYDEBUG(166, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
- if(yych == 'I') goto yy213;
+ if(yych == 'I') goto yy217;
if(yych <= 'N') goto yy53;
- goto yy212;
+ goto yy216;
} else {
if(yych <= 'i'){
if(yych <= 'h') goto yy53;
- goto yy213;
+ goto yy217;
} else {
- if(yych == 'o') goto yy212;
+ if(yych == 'o') goto yy216;
goto yy53;
}
}
-yy163:
- YYDEBUG(163, *YYCURSOR);
+yy167:
+ YYDEBUG(167, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy210;
- if(yych == 'o') goto yy210;
+ if(yych == 'O') goto yy214;
+ if(yych == 'o') goto yy214;
goto yy53;
-yy164:
- YYDEBUG(164, *YYCURSOR);
+yy168:
+ YYDEBUG(168, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy209;
- if(yych == 'a') goto yy209;
+ if(yych == 'A') goto yy213;
+ if(yych == 'a') goto yy213;
goto yy53;
-yy165:
- YYDEBUG(165, *YYCURSOR);
+yy169:
+ YYDEBUG(169, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy201;
- if(yych == 'e') goto yy201;
+ if(yych == 'E') goto yy205;
+ if(yych == 'e') goto yy205;
goto yy53;
-yy166:
- YYDEBUG(166, *YYCURSOR);
+yy170:
+ YYDEBUG(170, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
- if(yych == 'O') goto yy186;
+ if(yych == 'O') goto yy190;
if(yych <= 'Q') goto yy53;
- goto yy185;
+ goto yy189;
} else {
if(yych <= 'o'){
if(yych <= 'n') goto yy53;
- goto yy186;
+ goto yy190;
} else {
- if(yych == 'r') goto yy185;
+ if(yych == 'r') goto yy189;
goto yy53;
}
}
-yy167:
- YYDEBUG(167, *YYCURSOR);
+yy171:
+ YYDEBUG(171, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy182;
- if(yych == 'e') goto yy182;
+ if(yych == 'E') goto yy186;
+ if(yych == 'e') goto yy186;
goto yy53;
-yy168:
- YYDEBUG(168, *YYCURSOR);
+yy172:
+ YYDEBUG(172, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'H') goto yy169;
+ if(yych == 'H') goto yy173;
if(yych <= 'T') goto yy53;
- goto yy170;
+ goto yy174;
} else {
if(yych <= 'h'){
if(yych <= 'g') goto yy53;
- goto yy169;
+ goto yy173;
} else {
- if(yych == 'u') goto yy170;
+ if(yych == 'u') goto yy174;
goto yy53;
}
}
-yy169:
- YYDEBUG(169, *YYCURSOR);
+yy173:
+ YYDEBUG(173, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy177;
- if(yych == 'u') goto yy177;
+ if(yych == 'U') goto yy181;
+ if(yych == 'u') goto yy181;
goto yy53;
-yy170:
- YYDEBUG(170, *YYCURSOR);
+yy174:
+ YYDEBUG(174, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy171;
+ if(yych == 'E') goto yy175;
if(yych != 'e') goto yy53;
- goto yy171;
-yy171:
- YYDEBUG(171, *YYCURSOR);
+ goto yy175;
+yy175:
+ YYDEBUG(175, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'S') goto yy173;
- if(yych == 's') goto yy173;
- goto yy172;
-yy172:
- YYDEBUG(172, *YYCURSOR);
+ if(yych == 'S') goto yy177;
+ if(yych == 's') goto yy177;
+ goto yy176;
+yy176:
+ YYDEBUG(176, *YYCURSOR);
-#line 1322 "ext/date/lib/parse_date.re"
+#line 1352 "ext/date/lib/parse_date.re"
{
timelib_sll i;
- int behavior;
+ int behavior = 0;
DEBUG_OUTPUT("relativetext");
TIMELIB_INIT;
TIMELIB_HAVE_RELATIVE();
@@ -3312,1269 +3765,1307 @@ yy172:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 2959 "ext/date/lib/parse_date.c"
-yy173:
- YYDEBUG(173, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy174;
- if(yych != 'd') goto yy53;
- goto yy174;
-yy174:
- YYDEBUG(174, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy175;
- if(yych != 'a') goto yy53;
- goto yy175;
-yy175:
- YYDEBUG(175, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych != 'y') goto yy53;
- goto yy176;
-yy176:
- YYDEBUG(176, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy172;
+#line 3409 "ext/date/lib/parse_date.c"
yy177:
YYDEBUG(177, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'R') goto yy178;
- if(yych != 'r') goto yy172;
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy178;
+ if(yych != 'd') goto yy53;
goto yy178;
yy178:
YYDEBUG(178, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy179;
- if(yych != 's') goto yy53;
+ if(yych == 'A') goto yy179;
+ if(yych != 'a') goto yy53;
goto yy179;
yy179:
YYDEBUG(179, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy180;
- if(yych != 'd') goto yy53;
+ if(yych == 'Y') goto yy180;
+ if(yych != 'y') goto yy53;
goto yy180;
yy180:
YYDEBUG(180, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy181;
- if(yych != 'a') goto yy53;
- goto yy181;
+ goto yy176;
yy181:
YYDEBUG(181, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'R') goto yy182;
+ if(yych != 'r') goto yy176;
+ goto yy182;
yy182:
YYDEBUG(182, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy183;
- if(yych != 'a') goto yy53;
+ if(yych == 'S') goto yy183;
+ if(yych != 's') goto yy53;
goto yy183;
yy183:
YYDEBUG(183, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych != 'r') goto yy53;
+ if(yych == 'D') goto yy184;
+ if(yych != 'd') goto yy53;
goto yy184;
yy184:
YYDEBUG(184, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy176;
- if(yych == 's') goto yy176;
- goto yy172;
+ if(yych == 'A') goto yy185;
+ if(yych != 'a') goto yy53;
+ goto yy185;
yy185:
YYDEBUG(185, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy198;
- if(yych == 'i') goto yy198;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
goto yy53;
yy186:
YYDEBUG(186, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy187;
- if(yych != 'r') goto yy53;
+ if(yych == 'A') goto yy187;
+ if(yych != 'a') goto yy53;
goto yy187;
yy187:
YYDEBUG(187, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy188;
- if(yych != 't') goto yy53;
+ if(yych == 'R') goto yy188;
+ if(yych != 'r') goto yy53;
goto yy188;
yy188:
YYDEBUG(188, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'N'){
- if(yych == 'H') goto yy190;
- if(yych <= 'M') goto yy53;
- goto yy189;
- } else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy53;
- goto yy190;
- } else {
- if(yych != 'n') goto yy53;
- goto yy189;
- }
- }
+ if(yych == 'S') goto yy180;
+ if(yych == 's') goto yy180;
+ goto yy176;
yy189:
YYDEBUG(189, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy195;
- if(yych == 'i') goto yy195;
+ if(yych == 'I') goto yy202;
+ if(yych == 'i') goto yy202;
goto yy53;
yy190:
YYDEBUG(190, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy191;
- if(yych != 'n') goto yy53;
+ if(yych == 'R') goto yy191;
+ if(yych != 'r') goto yy53;
goto yy191;
yy191:
YYDEBUG(191, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy192;
- if(yych != 'i') goto yy53;
+ if(yych == 'T') goto yy192;
+ if(yych != 't') goto yy53;
goto yy192;
yy192:
YYDEBUG(192, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy193;
- if(yych != 'g') goto yy53;
- goto yy193;
+ if(yych <= 'N'){
+ if(yych == 'H') goto yy194;
+ if(yych <= 'M') goto yy53;
+ goto yy193;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy53;
+ goto yy194;
+ } else {
+ if(yych != 'n') goto yy53;
+ goto yy193;
+ }
+ }
yy193:
YYDEBUG(193, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy194;
- if(yych != 'h') goto yy53;
- goto yy194;
+ if(yych == 'I') goto yy199;
+ if(yych == 'i') goto yy199;
+ goto yy53;
yy194:
YYDEBUG(194, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy184;
- goto yy53;
+ if(yych == 'N') goto yy195;
+ if(yych != 'n') goto yy53;
+ goto yy195;
yy195:
YYDEBUG(195, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy196;
- if(yych != 'g') goto yy53;
+ if(yych == 'I') goto yy196;
+ if(yych != 'i') goto yy53;
goto yy196;
yy196:
YYDEBUG(196, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy197;
- if(yych != 'h') goto yy53;
+ if(yych == 'G') goto yy197;
+ if(yych != 'g') goto yy53;
goto yy197;
yy197:
YYDEBUG(197, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy184;
- goto yy53;
+ if(yych == 'H') goto yy198;
+ if(yych != 'h') goto yy53;
+ goto yy198;
yy198:
YYDEBUG(198, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'D') goto yy199;
- if(yych != 'd') goto yy172;
- goto yy199;
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy188;
+ goto yy53;
yy199:
YYDEBUG(199, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy200;
- if(yych != 'a') goto yy53;
+ if(yych == 'G') goto yy200;
+ if(yych != 'g') goto yy53;
goto yy200;
yy200:
YYDEBUG(200, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'H') goto yy201;
+ if(yych != 'h') goto yy53;
+ goto yy201;
yy201:
YYDEBUG(201, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'E'){
- if(yych <= 'C') goto yy53;
- if(yych <= 'D') goto yy203;
- goto yy202;
- } else {
- if(yych <= 'c') goto yy53;
- if(yych <= 'd') goto yy203;
- if(yych >= 'f') goto yy53;
- goto yy202;
- }
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy188;
+ goto yy53;
yy202:
YYDEBUG(202, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'K') goto yy184;
- if(yych == 'k') goto yy184;
- goto yy53;
-yy203:
- YYDEBUG(203, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'N') goto yy204;
- if(yych != 'n') goto yy172;
+ if(yych == 'D') goto yy203;
+ if(yych != 'd') goto yy176;
+ goto yy203;
+yy203:
+ YYDEBUG(203, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy204;
+ if(yych != 'a') goto yy53;
goto yy204;
yy204:
YYDEBUG(204, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy205;
- if(yych != 'e') goto yy53;
- goto yy205;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
yy205:
YYDEBUG(205, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy206;
- if(yych != 's') goto yy53;
- goto yy206;
+ if(yych <= 'E'){
+ if(yych <= 'C') goto yy53;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ } else {
+ if(yych <= 'c') goto yy53;
+ if(yych <= 'd') goto yy207;
+ if(yych >= 'f') goto yy53;
+ goto yy206;
+ }
yy206:
YYDEBUG(206, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy207;
- if(yych != 'd') goto yy53;
- goto yy207;
+ if(yych == 'K') goto yy188;
+ if(yych == 'k') goto yy188;
+ goto yy53;
yy207:
YYDEBUG(207, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy208;
- if(yych != 'a') goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'N') goto yy208;
+ if(yych != 'n') goto yy176;
goto yy208;
yy208:
YYDEBUG(208, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'E') goto yy209;
+ if(yych != 'e') goto yy53;
+ goto yy209;
yy209:
YYDEBUG(209, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy184;
- if(yych == 'y') goto yy184;
- goto yy53;
+ if(yych == 'S') goto yy210;
+ if(yych != 's') goto yy53;
+ goto yy210;
yy210:
YYDEBUG(210, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy211;
- if(yych != 'u') goto yy53;
+ if(yych == 'D') goto yy211;
+ if(yych != 'd') goto yy53;
goto yy211;
yy211:
YYDEBUG(211, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych == 'r') goto yy184;
- goto yy53;
+ if(yych == 'A') goto yy212;
+ if(yych != 'a') goto yy53;
+ goto yy212;
yy212:
YYDEBUG(212, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy217;
- if(yych == 'n') goto yy217;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
goto yy53;
yy213:
YYDEBUG(213, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy214;
- if(yych != 'n') goto yy53;
- goto yy214;
+ if(yych == 'Y') goto yy188;
+ if(yych == 'y') goto yy188;
+ goto yy53;
yy214:
YYDEBUG(214, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'U'){
- if(yych == 'S') goto yy176;
- if(yych <= 'T') goto yy172;
- goto yy215;
- } else {
- if(yych <= 's'){
- if(yych <= 'r') goto yy172;
- goto yy176;
- } else {
- if(yych != 'u') goto yy172;
- goto yy215;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy215;
+ if(yych != 'u') goto yy53;
+ goto yy215;
yy215:
YYDEBUG(215, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy216;
- if(yych != 't') goto yy53;
- goto yy216;
+ if(yych == 'R') goto yy188;
+ if(yych == 'r') goto yy188;
+ goto yy53;
yy216:
YYDEBUG(216, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy184;
- if(yych == 'e') goto yy184;
+ if(yych == 'N') goto yy221;
+ if(yych == 'n') goto yy221;
goto yy53;
yy217:
YYDEBUG(217, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'N') goto yy218;
+ if(yych != 'n') goto yy53;
+ goto yy218;
+yy218:
+ YYDEBUG(218, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'T'){
- if(yych == 'D') goto yy218;
- if(yych <= 'S') goto yy172;
+ if(yych <= 'U'){
+ if(yych == 'S') goto yy180;
+ if(yych <= 'T') goto yy176;
goto yy219;
} else {
- if(yych <= 'd'){
- if(yych <= 'c') goto yy172;
- goto yy218;
+ if(yych <= 's'){
+ if(yych <= 'r') goto yy176;
+ goto yy180;
} else {
- if(yych == 't') goto yy219;
- goto yy172;
+ if(yych != 'u') goto yy176;
+ goto yy219;
}
}
-yy218:
- YYDEBUG(218, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy220;
- if(yych == 'a') goto yy220;
- goto yy53;
yy219:
YYDEBUG(219, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy184;
- if(yych == 'h') goto yy184;
- goto yy53;
+ if(yych == 'T') goto yy220;
+ if(yych != 't') goto yy53;
+ goto yy220;
yy220:
YYDEBUG(220, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
+ if(yych == 'E') goto yy188;
+ if(yych == 'e') goto yy188;
goto yy53;
yy221:
YYDEBUG(221, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy232;
- if(yych == 'n') goto yy232;
- goto yy53;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych == 'D') goto yy222;
+ if(yych <= 'S') goto yy176;
+ goto yy223;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy176;
+ goto yy222;
+ } else {
+ if(yych == 't') goto yy223;
+ goto yy176;
+ }
+ }
yy222:
YYDEBUG(222, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy227;
- if(yych == 't') goto yy227;
+ if(yych == 'A') goto yy224;
+ if(yych == 'a') goto yy224;
goto yy53;
yy223:
YYDEBUG(223, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy224;
- if(yych != 'c') goto yy53;
- goto yy224;
+ if(yych == 'H') goto yy188;
+ if(yych == 'h') goto yy188;
+ goto yy53;
yy224:
YYDEBUG(224, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == 'O') goto yy225;
- if(yych <= 'R') goto yy172;
- goto yy176;
- } else {
- if(yych <= 'o'){
- if(yych <= 'n') goto yy172;
- goto yy225;
- } else {
- if(yych == 's') goto yy176;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
yy225:
YYDEBUG(225, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy226;
- if(yych != 'n') goto yy53;
- goto yy226;
+ if(yych == 'N') goto yy236;
+ if(yych == 'n') goto yy236;
+ goto yy53;
yy226:
YYDEBUG(226, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy184;
- if(yych == 'd') goto yy184;
+ if(yych == 'T') goto yy231;
+ if(yych == 't') goto yy231;
goto yy53;
yy227:
YYDEBUG(227, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy228;
- if(yych != 'u') goto yy172;
+ yych = *++YYCURSOR;
+ if(yych == 'C') goto yy228;
+ if(yych != 'c') goto yy53;
goto yy228;
yy228:
YYDEBUG(228, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy229;
- if(yych != 'r') goto yy53;
- goto yy229;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'S'){
+ if(yych == 'O') goto yy229;
+ if(yych <= 'R') goto yy176;
+ goto yy180;
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'n') goto yy176;
+ goto yy229;
+ } else {
+ if(yych == 's') goto yy180;
+ goto yy176;
+ }
+ }
yy229:
YYDEBUG(229, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy230;
- if(yych != 'd') goto yy53;
+ if(yych == 'N') goto yy230;
+ if(yych != 'n') goto yy53;
goto yy230;
yy230:
YYDEBUG(230, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy231;
- if(yych != 'a') goto yy53;
- goto yy231;
+ if(yych == 'D') goto yy188;
+ if(yych == 'd') goto yy188;
+ goto yy53;
yy231:
YYDEBUG(231, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
-yy232:
- YYDEBUG(232, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'D') goto yy233;
- if(yych != 'd') goto yy172;
+ if(yych == 'U') goto yy232;
+ if(yych != 'u') goto yy176;
+ goto yy232;
+yy232:
+ YYDEBUG(232, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'R') goto yy233;
+ if(yych != 'r') goto yy53;
goto yy233;
yy233:
YYDEBUG(233, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy234;
- if(yych != 'a') goto yy53;
+ if(yych == 'D') goto yy234;
+ if(yych != 'd') goto yy53;
goto yy234;
yy234:
YYDEBUG(234, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy176;
- goto yy53;
+ if(yych == 'A') goto yy235;
+ if(yych != 'a') goto yy53;
+ goto yy235;
yy235:
YYDEBUG(235, *YYCURSOR);
- yyaccept = 1;
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
+yy236:
+ YYDEBUG(236, *YYCURSOR);
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych == 'D') goto yy237;
+ if(yych != 'd') goto yy176;
+ goto yy237;
+yy237:
+ YYDEBUG(237, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy238;
+ if(yych != 'a') goto yy53;
+ goto yy238;
+yy238:
+ YYDEBUG(238, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy180;
+ goto yy53;
+yy239:
+ YYDEBUG(239, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy154;
+ goto yy158;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy236;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy240;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy236:
- YYDEBUG(236, *YYCURSOR);
- yyaccept = 1;
+yy240:
+ YYDEBUG(240, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy155;
+ goto yy159;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'v') goto yy237;
- if(yych <= 'z') goto yy142;
+ if(yych == 'v') goto yy241;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy237:
- YYDEBUG(237, *YYCURSOR);
- yyaccept = 1;
+yy241:
+ YYDEBUG(241, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'H') goto yy3;
- goto yy156;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy160;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy238;
- if(yych <= 'z') goto yy143;
+ if(yych == 'i') goto yy242;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy238:
- YYDEBUG(238, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy157;
- if(yych != 'o') goto yy144;
- goto yy239;
-yy239:
- YYDEBUG(239, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'U') goto yy158;
- if(yych != 'u') goto yy144;
- goto yy240;
-yy240:
- YYDEBUG(240, *YYCURSOR);
+yy242:
+ YYDEBUG(242, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy161;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy243;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy243:
+ YYDEBUG(243, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy162;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy244;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy244:
+ YYDEBUG(244, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'S') goto yy159;
+ if(yych == 'S') goto yy163;
goto yy53;
}
} else {
if(yych <= 'r'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 's') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych <= 's') goto yy245;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy241:
- YYDEBUG(241, *YYCURSOR);
+yy245:
+ YYDEBUG(245, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'h'){
if(yych <= '`'){
if(yych <= '/'){
- if(yych <= '.') goto yy160;
- goto yy138;
+ if(yych <= '.') goto yy164;
+ goto yy140;
} else {
- if(yych == '_') goto yy138;
- goto yy160;
+ if(yych == '_') goto yy140;
+ goto yy164;
}
} else {
if(yych <= 'e'){
- if(yych == 'd') goto yy245;
- goto yy143;
+ if(yych == 'd') goto yy249;
+ goto yy147;
} else {
- if(yych <= 'f') goto yy247;
- if(yych <= 'g') goto yy143;
- goto yy244;
+ if(yych <= 'f') goto yy251;
+ if(yych <= 'g') goto yy147;
+ goto yy248;
}
}
} else {
if(yych <= 't'){
if(yych <= 'm'){
- if(yych <= 'l') goto yy143;
- goto yy243;
+ if(yych <= 'l') goto yy147;
+ goto yy247;
} else {
- if(yych <= 'r') goto yy143;
- if(yych >= 't') goto yy249;
- goto yy242;
+ if(yych <= 'r') goto yy147;
+ if(yych >= 't') goto yy253;
+ goto yy246;
}
} else {
if(yych <= 'x'){
- if(yych == 'w') goto yy246;
- goto yy143;
+ if(yych == 'w') goto yy250;
+ goto yy147;
} else {
- if(yych <= 'y') goto yy248;
- if(yych <= 'z') goto yy143;
- goto yy160;
+ if(yych <= 'y') goto yy252;
+ if(yych <= 'z') goto yy147;
+ goto yy164;
}
}
}
-yy242:
- YYDEBUG(242, *YYCURSOR);
+yy246:
+ YYDEBUG(246, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
- if(yych == 'A') goto yy222;
- goto yy144;
+ if(yych == 'A') goto yy226;
+ goto yy148;
} else {
- if(yych <= 'E') goto yy223;
- if(yych <= 'T') goto yy144;
- goto yy221;
+ if(yych <= 'E') goto yy227;
+ if(yych <= 'T') goto yy148;
+ goto yy225;
}
} else {
if(yych <= 'd'){
- if(yych == 'a') goto yy301;
- goto yy144;
- } else {
- if(yych <= 'e') goto yy302;
- if(yych == 'u') goto yy303;
- goto yy144;
- }
- }
-yy243:
- YYDEBUG(243, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'O'){
- if(yych == 'I') goto yy213;
- if(yych <= 'N') goto yy144;
- goto yy212;
- } else {
- if(yych <= 'i'){
- if(yych <= 'h') goto yy144;
- goto yy292;
+ if(yych == 'a') goto yy305;
+ goto yy148;
} else {
- if(yych == 'o') goto yy293;
- goto yy144;
+ if(yych <= 'e') goto yy306;
+ if(yych == 'u') goto yy307;
+ goto yy148;
}
}
-yy244:
- YYDEBUG(244, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy210;
- if(yych == 'o') goto yy290;
- goto yy144;
-yy245:
- YYDEBUG(245, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy209;
- if(yych == 'a') goto yy289;
- goto yy144;
-yy246:
- YYDEBUG(246, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy201;
- if(yych == 'e') goto yy281;
- goto yy144;
yy247:
YYDEBUG(247, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'R'){
- if(yych == 'O') goto yy186;
- if(yych <= 'Q') goto yy144;
- goto yy185;
+ if(yych <= 'O'){
+ if(yych == 'I') goto yy217;
+ if(yych <= 'N') goto yy148;
+ goto yy216;
} else {
- if(yych <= 'o'){
- if(yych <= 'n') goto yy144;
- goto yy265;
+ if(yych <= 'i'){
+ if(yych <= 'h') goto yy148;
+ goto yy296;
} else {
- if(yych == 'r') goto yy266;
- goto yy144;
+ if(yych == 'o') goto yy297;
+ goto yy148;
}
}
yy248:
YYDEBUG(248, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy182;
- if(yych == 'e') goto yy262;
- goto yy144;
+ if(yych == 'O') goto yy214;
+ if(yych == 'o') goto yy294;
+ goto yy148;
yy249:
YYDEBUG(249, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'U'){
- if(yych == 'H') goto yy169;
- if(yych <= 'T') goto yy144;
- goto yy170;
- } else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy144;
- goto yy250;
- } else {
- if(yych == 'u') goto yy251;
- goto yy144;
- }
- }
+ if(yych == 'A') goto yy213;
+ if(yych == 'a') goto yy293;
+ goto yy148;
yy250:
YYDEBUG(250, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy177;
- if(yych == 'u') goto yy257;
- goto yy144;
+ if(yych == 'E') goto yy205;
+ if(yych == 'e') goto yy285;
+ goto yy148;
yy251:
YYDEBUG(251, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy171;
- if(yych != 'e') goto yy144;
- goto yy252;
-yy252:
- YYDEBUG(252, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
- } else {
- if(yych == 'S') goto yy173;
- goto yy172;
- }
+ if(yych <= 'R'){
+ if(yych == 'O') goto yy190;
+ if(yych <= 'Q') goto yy148;
+ goto yy189;
} else {
- if(yych <= 'r'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'o'){
+ if(yych <= 'n') goto yy148;
+ goto yy269;
} else {
- if(yych <= 's') goto yy253;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 'r') goto yy270;
+ goto yy148;
}
}
+yy252:
+ YYDEBUG(252, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'E') goto yy186;
+ if(yych == 'e') goto yy266;
+ goto yy148;
yy253:
YYDEBUG(253, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy174;
- if(yych != 'd') goto yy144;
- goto yy254;
+ if(yych <= 'U'){
+ if(yych == 'H') goto yy173;
+ if(yych <= 'T') goto yy148;
+ goto yy174;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy148;
+ goto yy254;
+ } else {
+ if(yych == 'u') goto yy255;
+ goto yy148;
+ }
+ }
yy254:
YYDEBUG(254, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy175;
- if(yych != 'a') goto yy144;
- goto yy255;
+ if(yych == 'U') goto yy181;
+ if(yych == 'u') goto yy261;
+ goto yy148;
yy255:
YYDEBUG(255, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych != 'y') goto yy144;
+ if(yych == 'E') goto yy175;
+ if(yych != 'e') goto yy148;
goto yy256;
yy256:
YYDEBUG(256, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy172;
- } else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
-yy257:
- YYDEBUG(257, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'R') goto yy178;
- goto yy172;
+ if(yych == 'S') goto yy177;
+ goto yy176;
}
} else {
- if(yych <= 'q'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'r'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy258;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 's') goto yy257;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy257:
+ YYDEBUG(257, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy178;
+ if(yych != 'd') goto yy148;
+ goto yy258;
yy258:
YYDEBUG(258, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy179;
- if(yych != 's') goto yy144;
+ if(yych == 'A') goto yy179;
+ if(yych != 'a') goto yy148;
goto yy259;
yy259:
YYDEBUG(259, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy180;
- if(yych != 'd') goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych != 'y') goto yy148;
goto yy260;
yy260:
YYDEBUG(260, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy181;
- if(yych != 'a') goto yy144;
- goto yy261;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ goto yy176;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
yy261:
YYDEBUG(261, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
-yy262:
- YYDEBUG(262, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy183;
- if(yych != 'a') goto yy144;
- goto yy263;
-yy263:
- YYDEBUG(263, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych != 'r') goto yy144;
- goto yy264;
-yy264:
- YYDEBUG(264, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'S') goto yy176;
- goto yy172;
+ if(yych == 'R') goto yy182;
+ goto yy176;
}
} else {
- if(yych <= 'r'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'q'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 's') goto yy256;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 'r') goto yy262;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy262:
+ YYDEBUG(262, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'S') goto yy183;
+ if(yych != 's') goto yy148;
+ goto yy263;
+yy263:
+ YYDEBUG(263, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy184;
+ if(yych != 'd') goto yy148;
+ goto yy264;
+yy264:
+ YYDEBUG(264, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy185;
+ if(yych != 'a') goto yy148;
+ goto yy265;
yy265:
YYDEBUG(265, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy187;
- if(yych == 'r') goto yy270;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy266:
YYDEBUG(266, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy198;
- if(yych != 'i') goto yy144;
+ if(yych == 'A') goto yy187;
+ if(yych != 'a') goto yy148;
goto yy267;
yy267:
YYDEBUG(267, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'R') goto yy188;
+ if(yych != 'r') goto yy148;
+ goto yy268;
+yy268:
+ YYDEBUG(268, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych == 'D') goto yy199;
- goto yy172;
+ if(yych == 'S') goto yy180;
+ goto yy176;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'r'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych <= 'd') goto yy268;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 's') goto yy260;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy268:
- YYDEBUG(268, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy200;
- if(yych != 'a') goto yy144;
- goto yy269;
yy269:
YYDEBUG(269, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'R') goto yy191;
+ if(yych == 'r') goto yy274;
+ goto yy148;
yy270:
YYDEBUG(270, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy188;
- if(yych != 't') goto yy144;
+ if(yych == 'I') goto yy202;
+ if(yych != 'i') goto yy148;
goto yy271;
yy271:
YYDEBUG(271, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= 'N'){
- if(yych == 'H') goto yy190;
- if(yych <= 'M') goto yy144;
- goto yy189;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'D') goto yy203;
+ goto yy176;
+ }
} else {
- if(yych <= 'h'){
- if(yych <= 'g') goto yy144;
- goto yy273;
+ if(yych <= 'c'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych != 'n') goto yy144;
- goto yy272;
+ if(yych <= 'd') goto yy272;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
yy272:
YYDEBUG(272, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy195;
- if(yych == 'i') goto yy278;
- goto yy144;
+ if(yych == 'A') goto yy204;
+ if(yych != 'a') goto yy148;
+ goto yy273;
yy273:
YYDEBUG(273, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy191;
- if(yych != 'n') goto yy144;
- goto yy274;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy274:
YYDEBUG(274, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy192;
- if(yych != 'i') goto yy144;
+ if(yych == 'T') goto yy192;
+ if(yych != 't') goto yy148;
goto yy275;
yy275:
YYDEBUG(275, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy193;
- if(yych != 'g') goto yy144;
- goto yy276;
+ if(yych <= 'N'){
+ if(yych == 'H') goto yy194;
+ if(yych <= 'M') goto yy148;
+ goto yy193;
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'g') goto yy148;
+ goto yy277;
+ } else {
+ if(yych != 'n') goto yy148;
+ goto yy276;
+ }
+ }
yy276:
YYDEBUG(276, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy194;
- if(yych != 'h') goto yy144;
- goto yy277;
+ if(yych == 'I') goto yy199;
+ if(yych == 'i') goto yy282;
+ goto yy148;
yy277:
YYDEBUG(277, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy264;
- goto yy144;
+ if(yych == 'N') goto yy195;
+ if(yych != 'n') goto yy148;
+ goto yy278;
yy278:
YYDEBUG(278, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy196;
- if(yych != 'g') goto yy144;
+ if(yych == 'I') goto yy196;
+ if(yych != 'i') goto yy148;
goto yy279;
yy279:
YYDEBUG(279, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy197;
- if(yych != 'h') goto yy144;
+ if(yych == 'G') goto yy197;
+ if(yych != 'g') goto yy148;
goto yy280;
yy280:
YYDEBUG(280, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy184;
- if(yych == 't') goto yy264;
- goto yy144;
+ if(yych == 'H') goto yy198;
+ if(yych != 'h') goto yy148;
+ goto yy281;
yy281:
YYDEBUG(281, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'E'){
- if(yych <= 'C') goto yy144;
- if(yych <= 'D') goto yy203;
- goto yy202;
- } else {
- if(yych <= 'c') goto yy144;
- if(yych <= 'd') goto yy283;
- if(yych >= 'f') goto yy144;
- goto yy282;
- }
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy268;
+ goto yy148;
yy282:
YYDEBUG(282, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'K') goto yy184;
- if(yych == 'k') goto yy264;
- goto yy144;
+ if(yych == 'G') goto yy200;
+ if(yych != 'g') goto yy148;
+ goto yy283;
yy283:
YYDEBUG(283, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
- } else {
- if(yych == 'N') goto yy204;
- goto yy172;
- }
- } else {
- if(yych <= 'm'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
- } else {
- if(yych <= 'n') goto yy284;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'H') goto yy201;
+ if(yych != 'h') goto yy148;
+ goto yy284;
yy284:
YYDEBUG(284, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy205;
- if(yych != 'e') goto yy144;
- goto yy285;
+ if(yych == 'T') goto yy188;
+ if(yych == 't') goto yy268;
+ goto yy148;
yy285:
YYDEBUG(285, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy206;
- if(yych != 's') goto yy144;
- goto yy286;
+ if(yych <= 'E'){
+ if(yych <= 'C') goto yy148;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ } else {
+ if(yych <= 'c') goto yy148;
+ if(yych <= 'd') goto yy287;
+ if(yych >= 'f') goto yy148;
+ goto yy286;
+ }
yy286:
YYDEBUG(286, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy207;
- if(yych != 'd') goto yy144;
- goto yy287;
+ if(yych == 'K') goto yy188;
+ if(yych == 'k') goto yy268;
+ goto yy148;
yy287:
YYDEBUG(287, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy208;
- if(yych != 'a') goto yy144;
- goto yy288;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'N') goto yy208;
+ goto yy176;
+ }
+ } else {
+ if(yych <= 'm'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
+ } else {
+ if(yych <= 'n') goto yy288;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
+ }
yy288:
YYDEBUG(288, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'E') goto yy209;
+ if(yych != 'e') goto yy148;
+ goto yy289;
yy289:
YYDEBUG(289, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy184;
- if(yych == 'y') goto yy264;
- goto yy144;
+ if(yych == 'S') goto yy210;
+ if(yych != 's') goto yy148;
+ goto yy290;
yy290:
YYDEBUG(290, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy211;
- if(yych != 'u') goto yy144;
+ if(yych == 'D') goto yy211;
+ if(yych != 'd') goto yy148;
goto yy291;
yy291:
YYDEBUG(291, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy184;
- if(yych == 'r') goto yy264;
- goto yy144;
+ if(yych == 'A') goto yy212;
+ if(yych != 'a') goto yy148;
+ goto yy292;
yy292:
YYDEBUG(292, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy214;
- if(yych == 'n') goto yy298;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy293:
YYDEBUG(293, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy217;
- if(yych != 'n') goto yy144;
- goto yy294;
+ if(yych == 'Y') goto yy188;
+ if(yych == 'y') goto yy268;
+ goto yy148;
yy294:
YYDEBUG(294, *YYCURSOR);
- yyaccept = 4;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych <= 'C'){
- if(yych == '/') goto yy138;
- goto yy172;
- } else {
- if(yych <= 'D') goto yy218;
- if(yych == 'T') goto yy219;
- goto yy172;
- }
- } else {
- if(yych <= 'd'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'c') goto yy143;
- goto yy295;
- } else {
- if(yych == 't') goto yy296;
- if(yych <= 'z') goto yy143;
- goto yy172;
- }
- }
+ yych = *++YYCURSOR;
+ if(yych == 'U') goto yy215;
+ if(yych != 'u') goto yy148;
+ goto yy295;
yy295:
YYDEBUG(295, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy220;
- if(yych == 'a') goto yy297;
- goto yy144;
+ if(yych == 'R') goto yy188;
+ if(yych == 'r') goto yy268;
+ goto yy148;
yy296:
YYDEBUG(296, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy184;
- if(yych == 'h') goto yy264;
- goto yy144;
+ if(yych == 'N') goto yy218;
+ if(yych == 'n') goto yy302;
+ goto yy148;
yy297:
YYDEBUG(297, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'N') goto yy221;
+ if(yych != 'n') goto yy148;
+ goto yy298;
yy298:
YYDEBUG(298, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= 'R'){
- if(yych == '/') goto yy138;
- goto yy172;
+ if(yych <= 'C'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych <= 'S') goto yy176;
- if(yych == 'U') goto yy215;
- goto yy172;
+ if(yych <= 'D') goto yy222;
+ if(yych == 'T') goto yy223;
+ goto yy176;
}
} else {
- if(yych <= 's'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'r') goto yy143;
- goto yy256;
+ if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'c') goto yy147;
+ goto yy299;
} else {
- if(yych == 'u') goto yy299;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 't') goto yy300;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
yy299:
YYDEBUG(299, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy216;
- if(yych != 't') goto yy144;
- goto yy300;
+ if(yych == 'A') goto yy224;
+ if(yych == 'a') goto yy301;
+ goto yy148;
yy300:
YYDEBUG(300, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy184;
- if(yych == 'e') goto yy264;
- goto yy144;
+ if(yych == 'H') goto yy188;
+ if(yych == 'h') goto yy268;
+ goto yy148;
yy301:
YYDEBUG(301, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy227;
- if(yych == 't') goto yy310;
- goto yy144;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
yy302:
YYDEBUG(302, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'C') goto yy224;
- if(yych == 'c') goto yy307;
- goto yy144;
-yy303:
- YYDEBUG(303, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy232;
- if(yych != 'n') goto yy144;
- goto yy304;
-yy304:
- YYDEBUG(304, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= 'R'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych == 'D') goto yy233;
- goto yy172;
+ if(yych <= 'S') goto yy180;
+ if(yych == 'U') goto yy219;
+ goto yy176;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 's'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'r') goto yy147;
+ goto yy260;
} else {
- if(yych <= 'd') goto yy305;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 'u') goto yy303;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
+yy303:
+ YYDEBUG(303, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy220;
+ if(yych != 't') goto yy148;
+ goto yy304;
+yy304:
+ YYDEBUG(304, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'E') goto yy188;
+ if(yych == 'e') goto yy268;
+ goto yy148;
yy305:
YYDEBUG(305, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy234;
- if(yych != 'a') goto yy144;
- goto yy306;
+ if(yych == 'T') goto yy231;
+ if(yych == 't') goto yy314;
+ goto yy148;
yy306:
YYDEBUG(306, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ if(yych == 'C') goto yy228;
+ if(yych == 'c') goto yy311;
+ goto yy148;
yy307:
YYDEBUG(307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'N') goto yy236;
+ if(yych != 'n') goto yy148;
+ goto yy308;
+yy308:
+ YYDEBUG(308, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= 'N'){
- if(yych == '/') goto yy138;
- goto yy172;
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
} else {
- if(yych <= 'O') goto yy225;
- if(yych == 'S') goto yy176;
- goto yy172;
+ if(yych == 'D') goto yy237;
+ goto yy176;
}
} else {
- if(yych <= 'o'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- if(yych <= 'n') goto yy143;
- goto yy308;
+ if(yych <= 'c'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
} else {
- if(yych == 's') goto yy256;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych <= 'd') goto yy309;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy308:
- YYDEBUG(308, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy226;
- if(yych != 'n') goto yy144;
- goto yy309;
yy309:
YYDEBUG(309, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy184;
- if(yych == 'd') goto yy264;
- goto yy144;
+ if(yych == 'A') goto yy238;
+ if(yych != 'a') goto yy148;
+ goto yy310;
yy310:
YYDEBUG(310, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
+yy311:
+ YYDEBUG(311, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy172;
- goto yy138;
+ if(yych <= 'N'){
+ if(yych == '/') goto yy140;
+ goto yy176;
} else {
- if(yych == 'U') goto yy228;
- goto yy172;
+ if(yych <= 'O') goto yy229;
+ if(yych == 'S') goto yy180;
+ goto yy176;
}
} else {
- if(yych <= 't'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy172;
- goto yy143;
+ if(yych <= 'o'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ if(yych <= 'n') goto yy147;
+ goto yy312;
} else {
- if(yych <= 'u') goto yy311;
- if(yych <= 'z') goto yy143;
- goto yy172;
+ if(yych == 's') goto yy260;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
}
}
-yy311:
- YYDEBUG(311, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy229;
- if(yych != 'r') goto yy144;
- goto yy312;
yy312:
YYDEBUG(312, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy230;
- if(yych != 'd') goto yy144;
+ if(yych == 'N') goto yy230;
+ if(yych != 'n') goto yy148;
goto yy313;
yy313:
YYDEBUG(313, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy231;
- if(yych != 'a') goto yy144;
- goto yy314;
+ if(yych == 'D') goto yy188;
+ if(yych == 'd') goto yy268;
+ goto yy148;
yy314:
YYDEBUG(314, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy176;
- if(yych == 'y') goto yy256;
- goto yy144;
+ yyaccept = 4;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych <= '/'){
+ if(yych <= '.') goto yy176;
+ goto yy140;
+ } else {
+ if(yych == 'U') goto yy232;
+ goto yy176;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy176;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy315;
+ if(yych <= 'z') goto yy147;
+ goto yy176;
+ }
+ }
yy315:
YYDEBUG(315, *YYCURSOR);
yych = *++YYCURSOR;
+ if(yych == 'R') goto yy233;
+ if(yych != 'r') goto yy148;
+ goto yy316;
+yy316:
+ YYDEBUG(316, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'D') goto yy234;
+ if(yych != 'd') goto yy148;
+ goto yy317;
+yy317:
+ YYDEBUG(317, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'A') goto yy235;
+ if(yych != 'a') goto yy148;
+ goto yy318;
+yy318:
+ YYDEBUG(318, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy180;
+ if(yych == 'y') goto yy260;
+ goto yy148;
+yy319:
+ YYDEBUG(319, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
if(yych <= '(') goto yy3;
@@ -4582,7 +5073,7 @@ yy315:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy316;
+ goto yy320;
}
} else {
if(yych <= 'r'){
@@ -4590,13 +5081,13 @@ yy315:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 's') goto yy316;
+ if(yych <= 's') goto yy320;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy316:
- YYDEBUG(316, *YYCURSOR);
+yy320:
+ YYDEBUG(320, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -4605,7 +5096,7 @@ yy316:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= 's'){
@@ -4613,83 +5104,469 @@ yy316:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy317;
+ if(yych <= 't') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy317:
- YYDEBUG(317, *YYCURSOR);
- yyaccept = 1;
+yy321:
+ YYDEBUG(321, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy160;
+ case 0x09: case ' ': goto yy163;
case ')': goto yy132;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy136;
+ case 'D': case 'd': goto yy325;
+ case 'F': case 'f': goto yy327;
+ case 'H': case 'h': goto yy324;
+ case 'M': case 'm': goto yy323;
+ case 'S': case 's': goto yy322;
+ case 'T': case 't': goto yy329;
+ case 'W': case 'w': goto yy326;
+ case 'Y': case 'y': goto yy328;
default: goto yy3;
}
-yy318:
- YYDEBUG(318, *YYCURSOR);
- yyaccept = 1;
+yy322:
+ YYDEBUG(322, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy340;
+ } else {
+ if(yych == 'E') goto yy341;
+ if(yych <= 'T') goto yy137;
+ goto yy342;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy340;
+ goto yy137;
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'e') goto yy341;
+ goto yy137;
+ } else {
+ if(yych <= 'u') goto yy342;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+ }
+yy323:
+ YYDEBUG(323, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'I') goto yy338;
+ if(yych <= 'N') goto yy137;
+ goto yy339;
+ }
+ } else {
+ if(yych <= 'i'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'h') goto yy137;
+ goto yy338;
+ } else {
+ if(yych == 'o') goto yy339;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy324:
+ YYDEBUG(324, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'O'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy337;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'o') goto yy337;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy325:
+ YYDEBUG(325, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy336;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy336;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy326:
+ YYDEBUG(326, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy335;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy335;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy327:
+ YYDEBUG(327, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'O') goto yy333;
+ if(yych <= 'Q') goto yy137;
+ goto yy334;
+ }
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'n') goto yy137;
+ goto yy333;
+ } else {
+ if(yych == 'r') goto yy334;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy328:
+ YYDEBUG(328, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy332;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy332;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy329:
+ YYDEBUG(329, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych == 'H') goto yy330;
+ if(yych <= 'T') goto yy137;
+ goto yy331;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'g') goto yy137;
+ goto yy330;
+ } else {
+ if(yych == 'u') goto yy331;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy330:
+ YYDEBUG(330, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'U') goto yy181;
+ if(yych == 'u') goto yy181;
+ goto yy3;
+ }
+yy331:
+ YYDEBUG(331, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy175;
+ if(yych == 'e') goto yy175;
+ goto yy3;
+ }
+yy332:
+ YYDEBUG(332, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'A') goto yy187;
+ if(yych == 'a') goto yy187;
+ goto yy3;
+ }
+yy333:
+ YYDEBUG(333, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Q'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'R') goto yy191;
+ if(yych == 'r') goto yy191;
+ goto yy3;
+ }
+yy334:
+ YYDEBUG(334, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'I') goto yy202;
+ if(yych == 'i') goto yy202;
+ goto yy3;
+ }
+yy335:
+ YYDEBUG(335, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ if(yych <= 'C') goto yy3;
+ goto yy207;
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'E') goto yy206;
+ goto yy3;
+ } else {
+ if(yych <= 'd') goto yy207;
+ if(yych <= 'e') goto yy206;
+ goto yy3;
+ }
+ }
+yy336:
+ YYDEBUG(336, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'X'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Y') goto yy188;
+ if(yych == 'y') goto yy188;
+ goto yy3;
+ }
+yy337:
+ YYDEBUG(337, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'U') goto yy215;
+ if(yych == 'u') goto yy215;
+ goto yy3;
+ }
+yy338:
+ YYDEBUG(338, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy218;
+ if(yych == 'n') goto yy218;
+ goto yy3;
+ }
+yy339:
+ YYDEBUG(339, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy221;
+ if(yych == 'n') goto yy221;
+ goto yy3;
+ }
+yy340:
+ YYDEBUG(340, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'T') goto yy231;
+ if(yych == 't') goto yy231;
+ goto yy3;
+ }
+yy341:
+ YYDEBUG(341, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'C') goto yy228;
+ if(yych == 'c') goto yy228;
+ goto yy3;
+ }
+yy342:
+ YYDEBUG(342, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'N') goto yy236;
+ if(yych == 'n') goto yy236;
+ goto yy3;
+ }
+yy343:
+ YYDEBUG(343, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy316;
+ goto yy320;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy319;
- if(yych <= 'z') goto yy137;
+ if(yych == 's') goto yy344;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy319:
- YYDEBUG(319, *YYCURSOR);
- yyaccept = 1;
+yy344:
+ YYDEBUG(344, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy320:
- YYDEBUG(320, *YYCURSOR);
- yyaccept = 1;
+yy345:
+ YYDEBUG(345, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': goto yy160;
+ case 0x09: case ' ': goto yy163;
case ')': goto yy132;
- case '/': case '_': goto yy138;
+ case '/': case '_': goto yy140;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': goto yy136;
+ case 'D': goto yy325;
+ case 'F': goto yy327;
+ case 'H': goto yy324;
+ case 'M': goto yy323;
+ case 'S': goto yy322;
+ case 'T': goto yy329;
+ case 'W': goto yy326;
+ case 'Y': goto yy328;
case 'a':
case 'b':
case 'c': case 'e': case 'g': case 'i':
@@ -4700,19 +5577,585 @@ yy320:
case 'p':
case 'q':
case 'r': case 'u':
- case 'v': case 'x': case 'z': goto yy143;
- case 'd': goto yy245;
- case 'f': goto yy247;
- case 'h': goto yy244;
- case 'm': goto yy243;
- case 's': goto yy242;
- case 't': goto yy249;
- case 'w': goto yy246;
- case 'y': goto yy248;
+ case 'v': case 'x': case 'z': goto yy145;
+ case 'd': goto yy349;
+ case 'f': goto yy351;
+ case 'h': goto yy348;
+ case 'm': goto yy347;
+ case 's': goto yy346;
+ case 't': goto yy353;
+ case 'w': goto yy350;
+ case 'y': goto yy352;
default: goto yy3;
}
-yy321:
- YYDEBUG(321, *YYCURSOR);
+yy346:
+ YYDEBUG(346, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'D'){
+ if(yych <= 'A') goto yy340;
+ goto yy137;
+ } else {
+ if(yych <= 'E') goto yy341;
+ if(yych <= 'T') goto yy137;
+ goto yy342;
+ }
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy364;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'e') goto yy365;
+ goto yy146;
+ } else {
+ if(yych <= 'u') goto yy366;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy347:
+ YYDEBUG(347, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'I') goto yy338;
+ if(yych <= 'N') goto yy137;
+ goto yy339;
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'i') goto yy362;
+ goto yy146;
+ } else {
+ if(yych <= 'o') goto yy363;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy348:
+ YYDEBUG(348, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'N') goto yy137;
+ goto yy337;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy361;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy349:
+ YYDEBUG(349, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy336;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy360;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy350:
+ YYDEBUG(350, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy335;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy359;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy351:
+ YYDEBUG(351, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'N'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'O') goto yy333;
+ if(yych <= 'Q') goto yy137;
+ goto yy334;
+ }
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'o') goto yy357;
+ goto yy146;
+ } else {
+ if(yych <= 'r') goto yy358;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy352:
+ YYDEBUG(352, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy332;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy356;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy353:
+ YYDEBUG(353, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= 'G'){
+ if(yych <= '@') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'H') goto yy330;
+ if(yych <= 'T') goto yy137;
+ goto yy331;
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= '^'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy146;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych >= 'i') goto yy146;
+ goto yy354;
+ } else {
+ if(yych <= 'u') goto yy355;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+ }
+yy354:
+ YYDEBUG(354, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy181;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy261;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy355:
+ YYDEBUG(355, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy175;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy256;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy356:
+ YYDEBUG(356, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy187;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy267;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy357:
+ YYDEBUG(357, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy191;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy274;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy358:
+ YYDEBUG(358, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'I'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'H') goto yy3;
+ goto yy202;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'i') goto yy271;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy359:
+ YYDEBUG(359, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ if(yych <= 'D') goto yy207;
+ goto yy206;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'd') goto yy287;
+ if(yych <= 'e') goto yy286;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy360:
+ YYDEBUG(360, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy188;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'y') goto yy268;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy361:
+ YYDEBUG(361, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'T') goto yy3;
+ goto yy215;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'u') goto yy295;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy362:
+ YYDEBUG(362, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy218;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy302;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy363:
+ YYDEBUG(363, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy221;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy298;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy364:
+ YYDEBUG(364, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'S') goto yy3;
+ goto yy231;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 't') goto yy314;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy365:
+ YYDEBUG(365, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'C'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'B') goto yy3;
+ goto yy228;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'c') goto yy311;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy366:
+ YYDEBUG(366, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'M') goto yy3;
+ goto yy236;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy308;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy367:
+ YYDEBUG(367, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'G'){
if(yych <= ')'){
@@ -4721,7 +6164,7 @@ yy321:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy328;
+ goto yy374;
}
} else {
if(yych <= 'f'){
@@ -4729,13 +6172,13 @@ yy321:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'g') goto yy328;
+ if(yych <= 'g') goto yy374;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy322:
- YYDEBUG(322, *YYCURSOR);
+yy368:
+ YYDEBUG(368, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -4744,7 +6187,7 @@ yy322:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy323;
+ goto yy369;
}
} else {
if(yych <= 'd'){
@@ -4752,13 +6195,13 @@ yy322:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy323;
+ if(yych <= 'e') goto yy369;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy323:
- YYDEBUG(323, *YYCURSOR);
+yy369:
+ YYDEBUG(369, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= ')'){
@@ -4767,7 +6210,7 @@ yy323:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy324;
+ goto yy370;
}
} else {
if(yych <= 'u'){
@@ -4775,43 +6218,77 @@ yy323:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'v') goto yy324;
+ if(yych <= 'v') goto yy370;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy324:
- YYDEBUG(324, *YYCURSOR);
- yyaccept = 1;
+yy370:
+ YYDEBUG(370, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy371;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy371;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy371:
+ YYDEBUG(371, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy137;
+ goto yy372;
+ }
+ } else {
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'n') goto yy372;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy372:
+ YYDEBUG(372, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'S'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy325;
- if(yych != 'e') goto yy3;
- goto yy325;
+ if(yych <= 'T') goto yy373;
+ if(yych != 't') goto yy3;
+ goto yy373;
}
-yy325:
- YYDEBUG(325, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy326;
- if(yych != 'n') goto yy53;
- goto yy326;
-yy326:
- YYDEBUG(326, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy327;
- if(yych != 't') goto yy53;
- goto yy327;
-yy327:
- YYDEBUG(327, *YYCURSOR);
+yy373:
+ YYDEBUG(373, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
+ if(yych == 'H') goto yy163;
+ if(yych == 'h') goto yy163;
goto yy53;
-yy328:
- YYDEBUG(328, *YYCURSOR);
+yy374:
+ YYDEBUG(374, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= ')'){
@@ -4820,7 +6297,7 @@ yy328:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'G') goto yy135;
- goto yy329;
+ goto yy375;
}
} else {
if(yych <= 'g'){
@@ -4828,205 +6305,708 @@ yy328:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'h') goto yy329;
+ if(yych <= 'h') goto yy375;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy329:
- YYDEBUG(329, *YYCURSOR);
- yyaccept = 1;
+yy375:
+ YYDEBUG(375, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy376:
+ YYDEBUG(376, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': goto yy163;
+ case ')': goto yy132;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy137;
+ case 'D': case 'd': goto yy377;
+ case 'F': case 'f': goto yy378;
+ case 'H': case 'h': goto yy379;
+ case 'M': case 'm': goto yy380;
+ case 'S': case 's': goto yy381;
+ case 'T': case 't': goto yy382;
+ case 'W': case 'w': goto yy383;
+ case 'Y': case 'y': goto yy384;
+ default: goto yy3;
+ }
+yy377:
+ YYDEBUG(377, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'T') goto yy159;
- if(yych == 't') goto yy159;
+ if(yych <= 'A') goto yy213;
+ if(yych == 'a') goto yy213;
goto yy3;
}
-yy330:
- YYDEBUG(330, *YYCURSOR);
- yyaccept = 1;
+yy378:
+ YYDEBUG(378, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Q'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'O') goto yy190;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'o'){
+ if(yych <= 'R') goto yy189;
+ if(yych <= 'n') goto yy3;
+ goto yy190;
+ } else {
+ if(yych == 'r') goto yy189;
+ goto yy3;
+ }
+ }
+yy379:
+ YYDEBUG(379, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'O') goto yy214;
+ if(yych == 'o') goto yy214;
+ goto yy3;
+ }
+yy380:
+ YYDEBUG(380, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'I') goto yy217;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'i'){
+ if(yych <= 'O') goto yy216;
+ if(yych <= 'h') goto yy3;
+ goto yy217;
+ } else {
+ if(yych == 'o') goto yy216;
+ goto yy3;
+ }
+ }
+yy381:
+ YYDEBUG(381, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'A') goto yy226;
+ if(yych == 'E') goto yy227;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'U') goto yy225;
+ if(yych == 'a') goto yy226;
+ goto yy3;
+ } else {
+ if(yych <= 'e') goto yy227;
+ if(yych == 'u') goto yy225;
+ goto yy3;
+ }
+ }
+yy382:
+ YYDEBUG(382, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == 'H') goto yy173;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'U') goto yy174;
+ if(yych <= 'g') goto yy3;
+ goto yy173;
+ } else {
+ if(yych == 'u') goto yy174;
+ goto yy3;
+ }
+ }
+yy383:
+ YYDEBUG(383, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy205;
+ if(yych == 'e') goto yy205;
+ goto yy3;
+ }
+yy384:
+ YYDEBUG(384, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy186;
+ if(yych == 'e') goto yy186;
+ goto yy3;
+ }
+yy385:
+ YYDEBUG(385, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'G'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy328;
+ goto yy374;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'g') goto yy337;
- if(yych <= 'z') goto yy137;
+ if(yych == 'g') goto yy392;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy331:
- YYDEBUG(331, *YYCURSOR);
- yyaccept = 1;
+yy386:
+ YYDEBUG(386, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy323;
+ goto yy369;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy332;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy387;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy332:
- YYDEBUG(332, *YYCURSOR);
- yyaccept = 1;
+yy387:
+ YYDEBUG(387, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'U') goto yy135;
- goto yy324;
+ goto yy370;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'v') goto yy333;
- if(yych <= 'z') goto yy142;
+ if(yych == 'v') goto yy388;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy333:
- YYDEBUG(333, *YYCURSOR);
- yyaccept = 1;
+yy388:
+ YYDEBUG(388, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy325;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy371;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy334;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy389;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy334:
- YYDEBUG(334, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'N') goto yy326;
- if(yych != 'n') goto yy144;
- goto yy335;
-yy335:
- YYDEBUG(335, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy327;
- if(yych != 't') goto yy144;
- goto yy336;
-yy336:
- YYDEBUG(336, *YYCURSOR);
+yy389:
+ YYDEBUG(389, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'N'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy137;
+ goto yy372;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'n') goto yy390;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy390:
+ YYDEBUG(390, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'S') goto yy3;
+ goto yy373;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 't') goto yy391;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy391:
+ YYDEBUG(391, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'H') goto yy159;
+ if(yych == 'H') goto yy163;
goto yy53;
}
} else {
if(yych <= 'g'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy337:
- YYDEBUG(337, *YYCURSOR);
- yyaccept = 1;
+yy392:
+ YYDEBUG(392, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'G') goto yy135;
- goto yy329;
+ goto yy375;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy338;
- if(yych <= 'z') goto yy142;
+ if(yych == 'h') goto yy393;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy338:
- YYDEBUG(338, *YYCURSOR);
- yyaccept = 1;
+yy393:
+ YYDEBUG(393, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy339:
- YYDEBUG(339, *YYCURSOR);
+yy394:
+ YYDEBUG(394, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': goto yy163;
+ case ')': goto yy132;
+ case '/': case '_': goto yy140;
+ case 'A':
+ case 'B':
+ case 'C': case 'E': case 'G': case 'I':
+ case 'J':
+ case 'K':
+ case 'L': case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R': case 'U':
+ case 'V': case 'X': case 'Z': goto yy137;
+ case 'D': goto yy377;
+ case 'F': goto yy378;
+ case 'H': goto yy379;
+ case 'M': goto yy380;
+ case 'S': goto yy381;
+ case 'T': goto yy382;
+ case 'W': goto yy383;
+ case 'Y': goto yy384;
+ case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy146;
+ case 'd': goto yy395;
+ case 'f': goto yy396;
+ case 'h': goto yy397;
+ case 'm': goto yy398;
+ case 's': goto yy399;
+ case 't': goto yy400;
+ case 'w': goto yy401;
+ case 'y': goto yy402;
+ default: goto yy3;
+ }
+yy395:
+ YYDEBUG(395, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy213;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy293;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy396:
+ YYDEBUG(396, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'O') goto yy190;
+ if(yych <= 'Q') goto yy3;
+ goto yy189;
+ }
+ } else {
+ if(yych <= 'n'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'o') goto yy269;
+ goto yy147;
+ } else {
+ if(yych <= 'r') goto yy270;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy397:
+ YYDEBUG(397, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'N') goto yy3;
+ goto yy214;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy294;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy398:
+ YYDEBUG(398, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'I') goto yy217;
+ if(yych <= 'N') goto yy3;
+ goto yy216;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 'n'){
+ if(yych <= 'i') goto yy296;
+ goto yy147;
+ } else {
+ if(yych <= 'o') goto yy297;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy399:
+ YYDEBUG(399, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy3;
+ }
+ } else {
+ if(yych <= 'D'){
+ if(yych <= 'A') goto yy226;
+ goto yy3;
+ } else {
+ if(yych <= 'E') goto yy227;
+ if(yych <= 'T') goto yy3;
+ goto yy225;
+ }
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy305;
+ goto yy147;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'e') goto yy306;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy307;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy400:
+ YYDEBUG(400, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'U'){
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy3;
+ goto yy140;
+ } else {
+ if(yych == 'H') goto yy173;
+ if(yych <= 'T') goto yy3;
+ goto yy174;
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych == '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ goto yy147;
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'h') goto yy254;
+ goto yy147;
+ } else {
+ if(yych <= 'u') goto yy255;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+ }
+yy401:
+ YYDEBUG(401, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy205;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy285;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy402:
+ YYDEBUG(402, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy186;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy266;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy403:
+ YYDEBUG(403, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
@@ -5035,7 +7015,7 @@ yy339:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy340;
+ goto yy404;
}
} else {
if(yych <= 'c'){
@@ -5043,38 +7023,38 @@ yy339:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'd') goto yy340;
+ if(yych <= 'd') goto yy404;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy340:
- YYDEBUG(340, *YYCURSOR);
+yy404:
+ YYDEBUG(404, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= 'N'){
if(yych <= ')'){
if(yych >= ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'M') goto yy135;
- goto yy342;
+ goto yy406;
}
} else {
if(yych <= 'm'){
if(yych <= 'Z') goto yy135;
if(yych >= 'a') goto yy135;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= 'n') goto yy342;
+ if(yych <= 'n') goto yy406;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy341:
- YYDEBUG(341, *YYCURSOR);
+yy405:
+ YYDEBUG(405, *YYCURSOR);
-#line 1306 "ext/date/lib/parse_date.re"
+#line 1336 "ext/date/lib/parse_date.re"
{
const timelib_relunit* relunit;
DEBUG_OUTPUT("daytext");
@@ -5089,159 +7069,231 @@ yy341:
TIMELIB_DEINIT;
return TIMELIB_WEEKDAY;
}
-#line 4396 "ext/date/lib/parse_date.c"
-yy342:
- YYDEBUG(342, *YYCURSOR);
- yyaccept = 1;
+#line 6251 "ext/date/lib/parse_date.c"
+yy406:
+ YYDEBUG(406, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy407;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy407;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy407:
+ YYDEBUG(407, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy137;
+ goto yy408;
+ }
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 's') goto yy408;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy408:
+ YYDEBUG(408, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'C'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy343;
- if(yych != 'e') goto yy3;
- goto yy343;
+ if(yych <= 'D') goto yy409;
+ if(yych != 'd') goto yy3;
+ goto yy409;
}
-yy343:
- YYDEBUG(343, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'S') goto yy344;
- if(yych != 's') goto yy53;
- goto yy344;
-yy344:
- YYDEBUG(344, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy345;
- if(yych != 'd') goto yy53;
- goto yy345;
-yy345:
- YYDEBUG(345, *YYCURSOR);
+yy409:
+ YYDEBUG(409, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy346;
+ if(yych == 'A') goto yy410;
if(yych != 'a') goto yy53;
- goto yy346;
-yy346:
- YYDEBUG(346, *YYCURSOR);
+ goto yy410;
+yy410:
+ YYDEBUG(410, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
+ if(yych == 'Y') goto yy411;
if(yych != 'y') goto yy53;
- goto yy347;
-yy347:
- YYDEBUG(347, *YYCURSOR);
+ goto yy411;
+yy411:
+ YYDEBUG(411, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy341;
-yy348:
- YYDEBUG(348, *YYCURSOR);
- yyaccept = 1;
+ goto yy405;
+yy412:
+ YYDEBUG(412, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy340;
+ goto yy404;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy349;
- if(yych <= 'z') goto yy137;
+ if(yych == 'd') goto yy413;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy349:
- YYDEBUG(349, *YYCURSOR);
+yy413:
+ YYDEBUG(413, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'M') goto yy135;
- goto yy342;
+ goto yy406;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'n') goto yy350;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'n') goto yy414;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy350:
- YYDEBUG(350, *YYCURSOR);
- yyaccept = 1;
+yy414:
+ YYDEBUG(414, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy343;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy407;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy351;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy415;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy351:
- YYDEBUG(351, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'S') goto yy344;
- if(yych != 's') goto yy144;
- goto yy352;
-yy352:
- YYDEBUG(352, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy345;
- if(yych != 'd') goto yy144;
- goto yy353;
-yy353:
- YYDEBUG(353, *YYCURSOR);
+yy415:
+ YYDEBUG(415, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'S'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy137;
+ goto yy408;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 's') goto yy416;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy416:
+ YYDEBUG(416, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ goto yy409;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy417;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy417:
+ YYDEBUG(417, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy346;
- if(yych != 'a') goto yy144;
- goto yy354;
-yy354:
- YYDEBUG(354, *YYCURSOR);
+ if(yych == 'A') goto yy410;
+ if(yych != 'a') goto yy148;
+ goto yy418;
+yy418:
+ YYDEBUG(418, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych != 'y') goto yy144;
- goto yy355;
-yy355:
- YYDEBUG(355, *YYCURSOR);
+ if(yych == 'Y') goto yy411;
+ if(yych != 'y') goto yy148;
+ goto yy419;
+yy419:
+ YYDEBUG(419, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy341;
+ if(yych == '/') goto yy140;
+ goto yy405;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy341;
- if(yych <= 'z') goto yy143;
- goto yy341;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy405;
+ if(yych <= 'z') goto yy147;
+ goto yy405;
}
-yy356:
- YYDEBUG(356, *YYCURSOR);
+yy420:
+ YYDEBUG(420, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'C'){
if(yych <= ')'){
@@ -5250,7 +7302,7 @@ yy356:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy134;
- goto yy357;
+ goto yy421;
}
} else {
if(yych <= 'b'){
@@ -5258,100 +7310,106 @@ yy356:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'c') goto yy357;
+ if(yych <= 'c') goto yy421;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy357:
- YYDEBUG(357, *YYCURSOR);
- yyaccept = 1;
+yy421:
+ YYDEBUG(421, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'E') goto yy366;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'E') goto yy429;
+ goto yy135;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy366;
+ if(yych <= 'e') goto yy429;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy358:
- YYDEBUG(358, *YYCURSOR);
+yy422:
+ YYDEBUG(422, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
+ if((YYLIMIT - YYCURSOR) < 20) YYFILL(20);
yych = *YYCURSOR;
- goto yy359;
-yy359:
- YYDEBUG(359, *YYCURSOR);
+ goto yy423;
+yy423:
+ YYDEBUG(423, *YYCURSOR);
if(yybm[0+yych] & 64) {
- goto yy358;
+ goto yy422;
}
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy362;
- if(yych <= '3') goto yy364;
- if(yych <= '9') goto yy365;
+ if(yych <= '2') goto yy425;
+ if(yych <= '3') goto yy427;
+ if(yych <= '9') goto yy428;
goto yy53;
-yy360:
- YYDEBUG(360, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x1F) goto yy3;
- if(yych == '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
-yy361:
- YYDEBUG(361, *YYCURSOR);
+yy424:
+ YYDEBUG(424, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy359;
- if(yych <= '0') goto yy440;
- if(yych <= '2') goto yy441;
- if(yych <= '3') goto yy442;
- goto yy359;
-yy362:
- YYDEBUG(362, *YYCURSOR);
- ++YYCURSOR;
- if((yych = *YYCURSOR) <= 'm'){
+ if(yych <= '/') goto yy423;
+ if(yych <= '0') goto yy511;
+ if(yych <= '2') goto yy512;
+ if(yych <= '3') goto yy513;
+ goto yy423;
+yy425:
+ YYDEBUG(425, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy422;
+ if(yych <= '/') goto yy441;
+ goto yy493;
} else {
- if(yych <= '2') goto yy439;
- if(yych <= '9') goto yy422;
- goto yy378;
+ if(yych <= '2') goto yy510;
+ if(yych <= '9') goto yy493;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy363:
- YYDEBUG(363, *YYCURSOR);
+yy426:
+ YYDEBUG(426, *YYCURSOR);
-#line 1125 "ext/date/lib/parse_date.re"
+#line 1151 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datetextual | datenoyear");
TIMELIB_INIT;
@@ -5363,218 +7421,256 @@ yy363:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 4626 "ext/date/lib/parse_date.c"
-yy364:
- YYDEBUG(364, *YYCURSOR);
- yych = *++YYCURSOR;
+#line 6561 "ext/date/lib/parse_date.c"
+yy427:
+ YYDEBUG(427, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy422;
+ if(yych <= '/') goto yy441;
+ goto yy493;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy365:
- YYDEBUG(365, *YYCURSOR);
- yych = *++YYCURSOR;
+yy428:
+ YYDEBUG(428, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy370;
+ if(yych <= '/') goto yy441;
+ goto yy433;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy366:
- YYDEBUG(366, *YYCURSOR);
- yyaccept = 1;
+yy429:
+ YYDEBUG(429, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy430;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'm') goto yy430;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy430:
+ YYDEBUG(430, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy431;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'b') goto yy431;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy431:
+ YYDEBUG(431, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'L'){
+ if(yych <= 'D'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'M') goto yy367;
- if(yych != 'm') goto yy3;
- goto yy367;
+ if(yych <= 'E') goto yy432;
+ if(yych != 'e') goto yy3;
+ goto yy432;
}
-yy367:
- YYDEBUG(367, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy368;
- if(yych != 'b') goto yy53;
- goto yy368;
-yy368:
- YYDEBUG(368, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy369;
- if(yych != 'e') goto yy53;
- goto yy369;
-yy369:
- YYDEBUG(369, *YYCURSOR);
+yy432:
+ YYDEBUG(432, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy370:
- YYDEBUG(370, *YYCURSOR);
+yy433:
+ YYDEBUG(433, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy421;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy492;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy371:
- YYDEBUG(371, *YYCURSOR);
+yy434:
+ YYDEBUG(434, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '3') goto yy421;
- if(yych <= '9') goto yy418;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy492;
+ if(yych <= '9') goto yy489;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy372:
- YYDEBUG(372, *YYCURSOR);
+yy435:
+ YYDEBUG(435, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy418;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy489;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy373:
- YYDEBUG(373, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy374:
- YYDEBUG(374, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy375:
- YYDEBUG(375, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy376:
- YYDEBUG(376, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy378;
-yy377:
- YYDEBUG(377, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 14) YYFILL(14);
+yy436:
+ YYDEBUG(436, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy437:
+ YYDEBUG(437, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy438:
+ YYDEBUG(438, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy439:
+ YYDEBUG(439, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy441;
+yy440:
+ YYDEBUG(440, *YYCURSOR);
+ yyaccept = 6;
+ YYMARKER = ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 17) YYFILL(17);
yych = *YYCURSOR;
- goto yy378;
-yy378:
- YYDEBUG(378, *YYCURSOR);
+ goto yy441;
+yy441:
+ YYDEBUG(441, *YYCURSOR);
if(yybm[0+yych] & 128) {
- goto yy377;
+ goto yy440;
}
- if(yych <= '/') goto yy363;
- if(yych <= '1') goto yy379;
- if(yych <= '2') goto yy380;
- if(yych <= '9') goto yy381;
- goto yy363;
-yy379:
- YYDEBUG(379, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych <= '2'){
+ if(yych <= '/') goto yy426;
+ if(yych <= '1') goto yy482;
+ goto yy483;
} else {
- if(yych <= '9') goto yy417;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy484;
+ if(yych != 'T') goto yy426;
+ goto yy442;
}
-yy380:
- YYDEBUG(380, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
+yy442:
+ YYDEBUG(442, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '1') goto yy443;
+ if(yych <= '2') goto yy444;
+ if(yych <= '9') goto yy445;
+ goto yy53;
+yy443:
+ YYDEBUG(443, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy53;
} else {
- if(yych <= '3') goto yy417;
- if(yych <= '9') goto yy382;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy445;
+ if(yych <= ':') goto yy446;
+ goto yy53;
}
-yy381:
- YYDEBUG(381, *YYCURSOR);
- yyaccept = 6;
- yych = *(YYMARKER = ++YYCURSOR);
+yy444:
+ YYDEBUG(444, *YYCURSOR);
+ yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy53;
} else {
- if(yych <= '9') goto yy382;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy445;
+ if(yych == ':') goto yy446;
+ goto yy53;
}
-yy382:
- YYDEBUG(382, *YYCURSOR);
+yy445:
+ YYDEBUG(445, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych <= '9') goto yy415;
- goto yy363;
-yy383:
- YYDEBUG(383, *YYCURSOR);
+ if(yych == '.') goto yy446;
+ if(yych != ':') goto yy53;
+ goto yy446;
+yy446:
+ YYDEBUG(446, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy384;
- if(yych <= '9') goto yy386;
+ if(yych <= '5') goto yy447;
+ if(yych <= '9') goto yy449;
goto yy53;
-yy384:
- YYDEBUG(384, *YYCURSOR);
+yy447:
+ YYDEBUG(447, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '9') goto yy386;
- if(yych <= ':') goto yy387;
- goto yy385;
+ if(yych <= '9') goto yy449;
+ if(yych <= ':') goto yy450;
+ goto yy448;
}
-yy385:
- YYDEBUG(385, *YYCURSOR);
+yy448:
+ YYDEBUG(448, *YYCURSOR);
-#line 1350 "ext/date/lib/parse_date.re"
+#line 1383 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
@@ -5596,356 +7692,473 @@ yy385:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
}
-#line 4820 "ext/date/lib/parse_date.c"
-yy386:
- YYDEBUG(386, *YYCURSOR);
+#line 6795 "ext/date/lib/parse_date.c"
+yy449:
+ YYDEBUG(449, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy387;
- if(yych != ':') goto yy385;
- goto yy387;
-yy387:
- YYDEBUG(387, *YYCURSOR);
+ if(yych == '.') goto yy450;
+ if(yych != ':') goto yy448;
+ goto yy450;
+yy450:
+ YYDEBUG(450, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy388;
- if(yych <= '6') goto yy389;
- if(yych <= '9') goto yy390;
+ if(yych <= '5') goto yy451;
+ if(yych <= '6') goto yy452;
+ if(yych <= '9') goto yy453;
goto yy53;
-yy388:
- YYDEBUG(388, *YYCURSOR);
+yy451:
+ YYDEBUG(451, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy391;
- goto yy385;
-yy389:
- YYDEBUG(389, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy454;
+ goto yy448;
+yy452:
+ YYDEBUG(452, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy391;
- goto yy385;
-yy390:
- YYDEBUG(390, *YYCURSOR);
+ if(yych == '0') goto yy454;
+ goto yy448;
+yy453:
+ YYDEBUG(453, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy385;
-yy391:
- YYDEBUG(391, *YYCURSOR);
+ goto yy448;
+yy454:
+ YYDEBUG(454, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '+'){
- if(yych <= '\''){
- if(yych != ' ') goto yy385;
- goto yy392;
+ if(yych <= '*'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy448;
+ goto yy455;
} else {
- if(yych <= '(') goto yy395;
- if(yych <= '*') goto yy385;
- goto yy394;
+ if(yych <= ' ') goto yy455;
+ if(yych == '(') goto yy458;
+ goto yy448;
}
} else {
if(yych <= '@'){
- if(yych == '-') goto yy394;
- goto yy385;
+ if(yych == ',') goto yy448;
+ if(yych <= '-') goto yy457;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy396;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy397;
- goto yy385;
+ if(yych <= 'Z') goto yy459;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy460;
+ goto yy448;
}
}
-yy392:
- YYDEBUG(392, *YYCURSOR);
+yy455:
+ YYDEBUG(455, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
+ if((YYLIMIT - YYCURSOR) < 8) YYFILL(8);
yych = *YYCURSOR;
- goto yy393;
-yy393:
- YYDEBUG(393, *YYCURSOR);
- if(yych <= '+'){
- if(yych <= '\''){
- if(yych == ' ') goto yy392;
+ goto yy456;
+yy456:
+ YYDEBUG(456, *YYCURSOR);
+ if(yych <= '*'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy455;
goto yy53;
} else {
- if(yych <= '(') goto yy395;
- if(yych <= '*') goto yy53;
- goto yy394;
+ if(yych <= ' ') goto yy455;
+ if(yych == '(') goto yy458;
+ goto yy53;
}
} else {
if(yych <= '@'){
- if(yych != '-') goto yy53;
- goto yy394;
+ if(yych == ',') goto yy53;
+ if(yych >= '.') goto yy53;
+ goto yy457;
} else {
- if(yych <= 'Z') goto yy396;
+ if(yych <= 'Z') goto yy459;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy397;
+ if(yych <= 'z') goto yy460;
goto yy53;
}
}
-yy394:
- YYDEBUG(394, *YYCURSOR);
+yy457:
+ YYDEBUG(457, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy410;
- if(yych <= '2') goto yy411;
- if(yych <= '9') goto yy412;
+ if(yych <= '1') goto yy477;
+ if(yych <= '2') goto yy478;
+ if(yych <= '9') goto yy479;
goto yy53;
-yy395:
- YYDEBUG(395, *YYCURSOR);
+yy458:
+ YYDEBUG(458, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@') goto yy53;
- if(yych <= 'Z') goto yy397;
+ if(yych <= 'Z') goto yy460;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy397;
+ if(yych <= 'z') goto yy460;
goto yy53;
-yy396:
- YYDEBUG(396, *YYCURSOR);
+yy459:
+ YYDEBUG(459, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy398;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy401;
- goto yy385;
+ if(yych <= 'Z') goto yy461;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy466;
+ goto yy448;
}
-yy397:
- YYDEBUG(397, *YYCURSOR);
+yy460:
+ YYDEBUG(460, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy398;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy398;
+ if(yych <= 'Z') goto yy461;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy461;
}
-yy398:
- YYDEBUG(398, *YYCURSOR);
+yy461:
+ YYDEBUG(461, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy399;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy399;
+ if(yych <= 'Z') goto yy462;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy462;
}
-yy399:
- YYDEBUG(399, *YYCURSOR);
+yy462:
+ YYDEBUG(462, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '@'){
- if(yych == ')') goto yy390;
- goto yy385;
+ if(yych == ')') goto yy453;
+ goto yy448;
} else {
- if(yych <= 'Z') goto yy400;
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy400;
+ if(yych <= 'Z') goto yy463;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy463;
}
-yy400:
- YYDEBUG(400, *YYCURSOR);
+yy463:
+ YYDEBUG(463, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == ')') goto yy390;
- goto yy385;
-yy401:
- YYDEBUG(401, *YYCURSOR);
+ if(yych <= '@'){
+ if(yych == ')') goto yy453;
+ goto yy448;
+ } else {
+ if(yych <= 'Z') goto yy464;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy464;
+ }
+yy464:
+ YYDEBUG(464, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '@'){
+ if(yych == ')') goto yy453;
+ goto yy448;
+ } else {
+ if(yych <= 'Z') goto yy465;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy465;
+ }
+yy465:
+ YYDEBUG(465, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy453;
+ goto yy448;
+yy466:
+ YYDEBUG(466, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy385;
- goto yy390;
+ if(yych <= '(') goto yy448;
+ goto yy453;
} else {
- if(yych == '/') goto yy403;
- goto yy385;
+ if(yych == '/') goto yy468;
+ goto yy448;
}
} else {
if(yych <= '_'){
- if(yych <= 'Z') goto yy399;
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= 'Z') goto yy462;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy402;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy467;
}
}
-yy402:
- YYDEBUG(402, *YYCURSOR);
+yy467:
+ YYDEBUG(467, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy385;
- goto yy390;
+ if(yych <= '(') goto yy448;
+ goto yy453;
} else {
- if(yych != '/') goto yy385;
- goto yy403;
+ if(yych != '/') goto yy448;
+ goto yy468;
}
} else {
if(yych <= '_'){
- if(yych <= 'Z') goto yy400;
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= 'Z') goto yy463;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy407;
- goto yy385;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy472;
+ goto yy448;
}
}
-yy403:
- YYDEBUG(403, *YYCURSOR);
+yy468:
+ YYDEBUG(468, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '@') goto yy53;
if(yych >= '[') goto yy53;
- goto yy404;
-yy404:
- YYDEBUG(404, *YYCURSOR);
+ goto yy469;
+yy469:
+ YYDEBUG(469, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
if(yych <= '`') goto yy53;
if(yych >= '{') goto yy53;
- goto yy405;
-yy405:
- YYDEBUG(405, *YYCURSOR);
+ goto yy470;
+yy470:
+ YYDEBUG(470, *YYCURSOR);
yyaccept = 7;
YYMARKER = ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy406;
-yy406:
- YYDEBUG(406, *YYCURSOR);
+ goto yy471;
+yy471:
+ YYDEBUG(471, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy403;
- goto yy385;
+ if(yych == '/') goto yy468;
+ goto yy448;
} else {
- if(yych <= '_') goto yy403;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy405;
- goto yy385;
+ if(yych <= '_') goto yy468;
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy470;
+ goto yy448;
}
-yy407:
- YYDEBUG(407, *YYCURSOR);
+yy472:
+ YYDEBUG(472, *YYCURSOR);
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy448;
+ goto yy453;
+ } else {
+ if(yych == '/') goto yy468;
+ goto yy448;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy464;
+ if(yych <= '^') goto yy448;
+ goto yy468;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy473;
+ }
+ }
+yy473:
+ YYDEBUG(473, *YYCURSOR);
+ yyaccept = 7;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy448;
+ goto yy453;
+ } else {
+ if(yych == '/') goto yy468;
+ goto yy448;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy465;
+ if(yych <= '^') goto yy448;
+ goto yy468;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy474;
+ }
+ }
+yy474:
+ YYDEBUG(474, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == ')') goto yy390;
- if(yych <= '.') goto yy385;
- goto yy403;
+ if(yych == ')') goto yy453;
+ if(yych <= '.') goto yy448;
+ goto yy468;
} else {
if(yych <= '_'){
- if(yych <= '^') goto yy385;
- goto yy403;
+ if(yych <= '^') goto yy448;
+ goto yy468;
} else {
- if(yych <= '`') goto yy385;
- if(yych >= '{') goto yy385;
- goto yy408;
+ if(yych <= '`') goto yy448;
+ if(yych >= '{') goto yy448;
+ goto yy475;
}
}
-yy408:
- YYDEBUG(408, *YYCURSOR);
+yy475:
+ YYDEBUG(475, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy409;
-yy409:
- YYDEBUG(409, *YYCURSOR);
+ goto yy476;
+yy476:
+ YYDEBUG(476, *YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy403;
+ if(yych == '/') goto yy468;
goto yy53;
} else {
- if(yych <= '_') goto yy403;
+ if(yych <= '_') goto yy468;
if(yych <= '`') goto yy53;
- if(yych <= 'z') goto yy408;
+ if(yych <= 'z') goto yy475;
goto yy53;
}
-yy410:
- YYDEBUG(410, *YYCURSOR);
+yy477:
+ YYDEBUG(477, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy412;
- if(yych <= ':') goto yy413;
- goto yy385;
-yy411:
- YYDEBUG(411, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy479;
+ if(yych <= ':') goto yy480;
+ goto yy448;
+yy478:
+ YYDEBUG(478, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy385;
- if(yych >= '4') goto yy414;
- goto yy412;
+ if(yych <= '/') goto yy448;
+ if(yych >= '4') goto yy481;
+ goto yy479;
} else {
- if(yych <= '9') goto yy390;
- if(yych <= ':') goto yy413;
- goto yy385;
+ if(yych <= '9') goto yy453;
+ if(yych <= ':') goto yy480;
+ goto yy448;
}
-yy412:
- YYDEBUG(412, *YYCURSOR);
+yy479:
+ YYDEBUG(479, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '5') goto yy414;
- if(yych <= '9') goto yy390;
- if(yych >= ';') goto yy385;
- goto yy413;
-yy413:
- YYDEBUG(413, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '5') goto yy481;
+ if(yych <= '9') goto yy453;
+ if(yych >= ';') goto yy448;
+ goto yy480;
+yy480:
+ YYDEBUG(480, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '5') goto yy414;
- if(yych <= '9') goto yy390;
- goto yy385;
-yy414:
- YYDEBUG(414, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '5') goto yy481;
+ if(yych <= '9') goto yy453;
+ goto yy448;
+yy481:
+ YYDEBUG(481, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy385;
- if(yych <= '9') goto yy390;
- goto yy385;
-yy415:
- YYDEBUG(415, *YYCURSOR);
+ if(yych <= '/') goto yy448;
+ if(yych <= '9') goto yy453;
+ goto yy448;
+yy482:
+ YYDEBUG(482, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '9') goto yy488;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy483:
+ YYDEBUG(483, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '3') goto yy488;
+ if(yych <= '9') goto yy485;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy484:
+ YYDEBUG(484, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == '.') goto yy446;
+ goto yy426;
+ } else {
+ if(yych <= '9') goto yy485;
+ if(yych <= ':') goto yy446;
+ goto yy426;
+ }
+yy485:
+ YYDEBUG(485, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych >= ':') goto yy363;
- goto yy416;
-yy416:
- YYDEBUG(416, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy486;
+yy486:
+ YYDEBUG(486, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy363;
-yy417:
- YYDEBUG(417, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy487;
+yy487:
+ YYDEBUG(487, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy426;
+yy488:
+ YYDEBUG(488, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy418:
- YYDEBUG(418, *YYCURSOR);
+yy489:
+ YYDEBUG(489, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy363;
- if(yych >= ':') goto yy363;
- goto yy419;
-yy419:
- YYDEBUG(419, *YYCURSOR);
+ if(yych <= '/') goto yy426;
+ if(yych >= ':') goto yy426;
+ goto yy490;
+yy490:
+ YYDEBUG(490, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy420;
- if(yych <= '9') goto yy416;
- goto yy420;
-yy420:
- YYDEBUG(420, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy491;
+ if(yych <= '9') goto yy487;
+ goto yy491;
+yy491:
+ YYDEBUG(491, *YYCURSOR);
-#line 1099 "ext/date/lib/parse_date.re"
+#line 1125 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenoday");
TIMELIB_INIT;
@@ -5957,380 +8170,393 @@ yy420:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 5106 "ext/date/lib/parse_date.c"
-yy421:
- YYDEBUG(421, *YYCURSOR);
+#line 7180 "ext/date/lib/parse_date.c"
+yy492:
+ YYDEBUG(492, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy419;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy490;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy422:
- YYDEBUG(422, *YYCURSOR);
+yy493:
+ YYDEBUG(493, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= ':'){
if(yych <= '/'){
- if(yych != '.') goto yy378;
- goto yy423;
+ if(yych != '.') goto yy441;
+ goto yy494;
} else {
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- if(yych <= '9') goto yy426;
- goto yy383;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ if(yych <= '9') goto yy497;
+ goto yy446;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy423:
- YYDEBUG(423, *YYCURSOR);
- yych = *++YYCURSOR;
+yy494:
+ YYDEBUG(494, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '2'){
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy429;
- goto yy430;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy500;
+ goto yy501;
} else {
- if(yych <= '5') goto yy431;
- if(yych <= '9') goto yy432;
- goto yy378;
+ if(yych <= '5') goto yy502;
+ if(yych <= '9') goto yy503;
+ goto yy441;
}
-yy424:
- YYDEBUG(424, *YYCURSOR);
+yy495:
+ YYDEBUG(495, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy428;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy499;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy425:
- YYDEBUG(425, *YYCURSOR);
+yy496:
+ YYDEBUG(496, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '3') goto yy428;
- if(yych <= '9') goto yy427;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '3') goto yy499;
+ if(yych <= '9') goto yy498;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy426:
- YYDEBUG(426, *YYCURSOR);
+yy497:
+ YYDEBUG(497, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy363;
+ if(yych == '.') goto yy446;
+ goto yy426;
} else {
- if(yych <= '9') goto yy427;
- if(yych <= ':') goto yy383;
- goto yy363;
+ if(yych <= '9') goto yy498;
+ if(yych <= ':') goto yy446;
+ goto yy426;
}
-yy427:
- YYDEBUG(427, *YYCURSOR);
+yy498:
+ YYDEBUG(498, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy420;
- if(yych <= '9') goto yy415;
- goto yy420;
-yy428:
- YYDEBUG(428, *YYCURSOR);
+ if(yych <= '/') goto yy491;
+ if(yych <= '9') goto yy486;
+ goto yy491;
+yy499:
+ YYDEBUG(499, *YYCURSOR);
yyaccept = 8;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy383;
- goto yy420;
+ if(yych == '.') goto yy446;
+ goto yy491;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy383;
- goto yy420;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy446;
+ goto yy491;
}
-yy429:
- YYDEBUG(429, *YYCURSOR);
+yy500:
+ YYDEBUG(500, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy438;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy509;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy430:
- YYDEBUG(430, *YYCURSOR);
+yy501:
+ YYDEBUG(501, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '3') goto yy438;
- if(yych <= '9') goto yy437;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '3') goto yy509;
+ if(yych <= '9') goto yy508;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy431:
- YYDEBUG(431, *YYCURSOR);
+yy502:
+ YYDEBUG(502, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy437;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy508;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy432:
- YYDEBUG(432, *YYCURSOR);
+yy503:
+ YYDEBUG(503, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych != '.') goto yy363;
- goto yy433;
+ if(yych != '.') goto yy426;
+ goto yy504;
} else {
- if(yych <= '9') goto yy382;
- if(yych >= ';') goto yy363;
- goto yy433;
+ if(yych <= '9') goto yy485;
+ if(yych >= ';') goto yy426;
+ goto yy504;
}
-yy433:
- YYDEBUG(433, *YYCURSOR);
+yy504:
+ YYDEBUG(504, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy434;
- if(yych <= '6') goto yy435;
- if(yych <= '9') goto yy386;
+ if(yych <= '5') goto yy505;
+ if(yych <= '6') goto yy506;
+ if(yych <= '9') goto yy449;
goto yy53;
-yy434:
- YYDEBUG(434, *YYCURSOR);
+yy505:
+ YYDEBUG(505, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '9') goto yy436;
- if(yych <= ':') goto yy387;
- goto yy385;
+ if(yych <= '9') goto yy507;
+ if(yych <= ':') goto yy450;
+ goto yy448;
}
-yy435:
- YYDEBUG(435, *YYCURSOR);
+yy506:
+ YYDEBUG(506, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy385;
+ if(yych == '.') goto yy450;
+ goto yy448;
} else {
- if(yych <= '0') goto yy391;
- if(yych == ':') goto yy387;
- goto yy385;
+ if(yych <= '0') goto yy454;
+ if(yych == ':') goto yy450;
+ goto yy448;
}
-yy436:
- YYDEBUG(436, *YYCURSOR);
+yy507:
+ YYDEBUG(507, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-'){
- if(yych <= '('){
- if(yych == ' ') goto yy392;
- if(yych <= '\'') goto yy385;
- goto yy395;
+ if(yych <= ','){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy455;
+ if(yych <= 0x1F) goto yy448;
+ goto yy455;
} else {
- if(yych == '+') goto yy394;
- if(yych <= ',') goto yy385;
- goto yy394;
+ if(yych <= '('){
+ if(yych <= '\'') goto yy448;
+ goto yy458;
+ } else {
+ if(yych == '+') goto yy457;
+ goto yy448;
+ }
}
} else {
- if(yych <= '@'){
- if(yych <= '.') goto yy387;
- if(yych == ':') goto yy387;
- goto yy385;
+ if(yych <= ':'){
+ if(yych <= '-') goto yy457;
+ if(yych <= '.') goto yy450;
+ if(yych <= '9') goto yy448;
+ goto yy450;
} else {
- if(yych <= 'Z') goto yy396;
- if(yych <= '`') goto yy385;
- if(yych <= 'z') goto yy397;
- goto yy385;
+ if(yych <= 'Z'){
+ if(yych <= '@') goto yy448;
+ goto yy459;
+ } else {
+ if(yych <= '`') goto yy448;
+ if(yych <= 'z') goto yy460;
+ goto yy448;
+ }
}
}
-yy437:
- YYDEBUG(437, *YYCURSOR);
+yy508:
+ YYDEBUG(508, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy387;
- goto yy363;
+ if(yych == '.') goto yy450;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy387;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy450;
+ goto yy426;
}
-yy438:
- YYDEBUG(438, *YYCURSOR);
+yy509:
+ YYDEBUG(509, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy433;
- goto yy363;
+ if(yych == '.') goto yy504;
+ goto yy426;
} else {
- if(yych <= '9') goto yy415;
- if(yych <= ':') goto yy433;
- goto yy363;
+ if(yych <= '9') goto yy486;
+ if(yych <= ':') goto yy504;
+ goto yy426;
}
-yy439:
- YYDEBUG(439, *YYCURSOR);
+yy510:
+ YYDEBUG(510, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= ':'){
if(yych <= '/'){
- if(yych == '.') goto yy423;
- goto yy378;
+ if(yych == '.') goto yy494;
+ goto yy441;
} else {
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- if(yych <= '9') goto yy426;
- goto yy383;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ if(yych <= '9') goto yy497;
+ goto yy446;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy440:
- YYDEBUG(440, *YYCURSOR);
- yych = *++YYCURSOR;
+yy511:
+ YYDEBUG(511, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- if(yych <= '0') goto yy422;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ if(yych <= '0') goto yy493;
+ goto yy514;
} else {
- if(yych <= '2') goto yy450;
- if(yych <= '9') goto yy443;
- goto yy378;
+ if(yych <= '2') goto yy521;
+ if(yych <= '9') goto yy514;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy441:
- YYDEBUG(441, *YYCURSOR);
- yych = *++YYCURSOR;
+yy512:
+ YYDEBUG(512, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ goto yy514;
} else {
- if(yych <= '2') goto yy450;
- if(yych <= '9') goto yy443;
- goto yy378;
+ if(yych <= '2') goto yy521;
+ if(yych <= '9') goto yy514;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy442:
- YYDEBUG(442, *YYCURSOR);
- yych = *++YYCURSOR;
+yy513:
+ YYDEBUG(513, *YYCURSOR);
+ yyaccept = 6;
+ yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy378;
- goto yy443;
+ if(yych <= '/') goto yy441;
+ goto yy514;
} else {
- if(yych <= '2') goto yy371;
- if(yych <= '9') goto yy372;
- goto yy378;
+ if(yych <= '2') goto yy434;
+ if(yych <= '9') goto yy435;
+ goto yy441;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy374;
- if(yych <= 'q') goto yy378;
- goto yy375;
+ if(yych <= 'n') goto yy437;
+ if(yych <= 'q') goto yy441;
+ goto yy438;
} else {
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy443:
- YYDEBUG(443, *YYCURSOR);
+yy514:
+ YYDEBUG(514, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
if(yych <= '.'){
- if(yych <= ',') goto yy378;
- if(yych >= '.') goto yy423;
- goto yy444;
+ if(yych <= ',') goto yy441;
+ if(yych >= '.') goto yy494;
+ goto yy515;
} else {
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- goto yy426;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ goto yy497;
}
} else {
if(yych <= 'q'){
- if(yych <= ':') goto yy383;
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych <= ':') goto yy446;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy444:
- YYDEBUG(444, *YYCURSOR);
+yy515:
+ YYDEBUG(515, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy445;
-yy445:
- YYDEBUG(445, *YYCURSOR);
+ goto yy516;
+yy516:
+ YYDEBUG(516, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy446;
- if(yych <= '9') goto yy447;
- goto yy446;
-yy446:
- YYDEBUG(446, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy517;
+ if(yych <= '9') goto yy518;
+ goto yy517;
+yy517:
+ YYDEBUG(517, *YYCURSOR);
-#line 1237 "ext/date/lib/parse_date.re"
+#line 1265 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pgtextshort");
TIMELIB_INIT;
@@ -6342,186 +8568,229 @@ yy446:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 5439 "ext/date/lib/parse_date.c"
-yy447:
- YYDEBUG(447, *YYCURSOR);
+#line 7526 "ext/date/lib/parse_date.c"
+yy518:
+ YYDEBUG(518, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy446;
- if(yych >= ':') goto yy446;
- goto yy448;
-yy448:
- YYDEBUG(448, *YYCURSOR);
+ if(yych <= '/') goto yy517;
+ if(yych >= ':') goto yy517;
+ goto yy519;
+yy519:
+ YYDEBUG(519, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy446;
- if(yych >= ':') goto yy446;
- goto yy449;
-yy449:
- YYDEBUG(449, *YYCURSOR);
+ if(yych <= '/') goto yy517;
+ if(yych >= ':') goto yy517;
+ goto yy520;
+yy520:
+ YYDEBUG(520, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy446;
-yy450:
- YYDEBUG(450, *YYCURSOR);
+ goto yy517;
+yy521:
+ YYDEBUG(521, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
if(yych <= '.'){
- if(yych <= ',') goto yy378;
- if(yych <= '-') goto yy444;
- goto yy423;
+ if(yych <= ',') goto yy441;
+ if(yych <= '-') goto yy515;
+ goto yy494;
} else {
- if(yych <= '/') goto yy378;
- if(yych <= '1') goto yy424;
- if(yych <= '2') goto yy425;
- goto yy426;
+ if(yych <= '/') goto yy441;
+ if(yych <= '1') goto yy495;
+ if(yych <= '2') goto yy496;
+ goto yy497;
}
} else {
if(yych <= 'q'){
- if(yych <= ':') goto yy383;
- if(yych == 'n') goto yy374;
- goto yy378;
+ if(yych <= ':') goto yy446;
+ if(yych == 'n') goto yy437;
+ goto yy441;
} else {
- if(yych <= 'r') goto yy375;
- if(yych <= 's') goto yy373;
- if(yych <= 't') goto yy376;
- goto yy378;
+ if(yych <= 'r') goto yy438;
+ if(yych <= 's') goto yy436;
+ if(yych <= 't') goto yy439;
+ goto yy441;
}
}
-yy451:
- YYDEBUG(451, *YYCURSOR);
- yyaccept = 1;
+yy522:
+ YYDEBUG(522, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'C'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'B') goto yy134;
- goto yy357;
+ goto yy421;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'c') goto yy452;
- if(yych <= 'z') goto yy137;
+ if(yych == 'c') goto yy523;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy452:
- YYDEBUG(452, *YYCURSOR);
- yyaccept = 1;
+yy523:
+ YYDEBUG(523, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy366;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy429;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy453;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy524;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy453:
- YYDEBUG(453, *YYCURSOR);
- yyaccept = 1;
+yy524:
+ YYDEBUG(524, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'L') goto yy3;
- goto yy367;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy430;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'm') goto yy454;
- if(yych <= 'z') goto yy143;
+ if(yych == 'm') goto yy525;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy454:
- YYDEBUG(454, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy368;
- if(yych != 'b') goto yy144;
- goto yy455;
-yy455:
- YYDEBUG(455, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy369;
- if(yych != 'e') goto yy144;
- goto yy456;
-yy456:
- YYDEBUG(456, *YYCURSOR);
+yy525:
+ YYDEBUG(525, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy431;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy526;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy526:
+ YYDEBUG(526, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy432;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy527;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy527:
+ YYDEBUG(527, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy457:
- YYDEBUG(457, *YYCURSOR);
+yy528:
+ YYDEBUG(528, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy359;
+ if(yych == '/') goto yy140;
+ goto yy423;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy359;
- if(yych <= 'z') goto yy143;
- goto yy359;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy423;
+ if(yych <= 'z') goto yy147;
+ goto yy423;
}
-yy458:
- YYDEBUG(458, *YYCURSOR);
+yy529:
+ YYDEBUG(529, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6530,7 +8799,7 @@ yy458:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy459;
+ goto yy530;
}
} else {
if(yych <= 's'){
@@ -6538,183 +8807,257 @@ yy458:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 't') goto yy459;
+ if(yych <= 't') goto yy530;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy459:
- YYDEBUG(459, *YYCURSOR);
- yyaccept = 1;
+yy530:
+ YYDEBUG(530, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'O') goto yy135;
- goto yy460;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'O') goto yy135;
+ goto yy531;
+ }
} else {
if(yych <= 'n'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy460;
+ if(yych <= 'o') goto yy531;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy460:
- YYDEBUG(460, *YYCURSOR);
- yyaccept = 1;
+yy531:
+ YYDEBUG(531, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy136;
+ goto yy532;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'b') goto yy532;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy532:
+ YYDEBUG(532, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy533;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'e') goto yy533;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy533:
+ YYDEBUG(533, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'A'){
+ if(yych <= 'Q'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'B') goto yy461;
- if(yych != 'b') goto yy3;
- goto yy461;
+ if(yych <= 'R') goto yy422;
+ if(yych == 'r') goto yy422;
+ goto yy3;
}
-yy461:
- YYDEBUG(461, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy462;
- if(yych != 'e') goto yy53;
- goto yy462;
-yy462:
- YYDEBUG(462, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
- goto yy53;
-yy463:
- YYDEBUG(463, *YYCURSOR);
- yyaccept = 1;
+yy534:
+ YYDEBUG(534, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy459;
+ goto yy530;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy464;
- if(yych <= 'z') goto yy137;
+ if(yych == 't') goto yy535;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy464:
- YYDEBUG(464, *YYCURSOR);
- yyaccept = 1;
+yy535:
+ YYDEBUG(535, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'O'){
- if(yych <= 'N') goto yy135;
- goto yy460;
+ if(yych <= '^'){
+ if(yych <= 'N'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'O') goto yy531;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'n'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'o') goto yy465;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'o') goto yy536;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy465:
- YYDEBUG(465, *YYCURSOR);
- yyaccept = 1;
+yy536:
+ YYDEBUG(536, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'A') goto yy3;
- goto yy461;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy136;
+ goto yy532;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'b') goto yy466;
- if(yych <= 'z') goto yy143;
+ if(yych == 'b') goto yy537;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy466:
- YYDEBUG(466, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy462;
- if(yych != 'e') goto yy144;
- goto yy467;
-yy467:
- YYDEBUG(467, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy537:
+ YYDEBUG(537, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'R') goto yy358;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy137;
+ goto yy533;
}
} else {
- if(yych <= 'q'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'e') goto yy538;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy468:
- YYDEBUG(468, *YYCURSOR);
+yy538:
+ YYDEBUG(538, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy422;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy539:
+ YYDEBUG(539, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'V'){
if(yych <= 'B'){
@@ -6723,12 +9066,12 @@ yy468:
goto yy134;
} else {
if(yych <= 'O'){
- if(yych <= 'C') goto yy483;
+ if(yych <= 'C') goto yy555;
goto yy134;
} else {
- if(yych <= 'P') goto yy482;
+ if(yych <= 'P') goto yy554;
if(yych <= 'U') goto yy134;
- goto yy484;
+ goto yy556;
}
}
} else {
@@ -6737,22 +9080,22 @@ yy468:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych == 'c') goto yy483;
+ if(yych == 'c') goto yy555;
goto yy134;
}
} else {
if(yych <= 'u'){
- if(yych <= 'p') goto yy482;
+ if(yych <= 'p') goto yy554;
goto yy134;
} else {
- if(yych <= 'v') goto yy484;
+ if(yych <= 'v') goto yy556;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
}
-yy469:
- YYDEBUG(469, *YYCURSOR);
+yy540:
+ YYDEBUG(540, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6761,7 +9104,7 @@ yy469:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy477;
+ goto yy549;
}
} else {
if(yych <= 's'){
@@ -6769,13 +9112,13 @@ yy469:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 't') goto yy477;
+ if(yych <= 't') goto yy549;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy470:
- YYDEBUG(470, *YYCURSOR);
+yy541:
+ YYDEBUG(541, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'X'){
if(yych <= ')'){
@@ -6784,7 +9127,7 @@ yy470:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy475;
+ goto yy547;
}
} else {
if(yych <= 'w'){
@@ -6792,13 +9135,13 @@ yy470:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'x') goto yy475;
+ if(yych <= 'x') goto yy547;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy471:
- YYDEBUG(471, *YYCURSOR);
+yy542:
+ YYDEBUG(542, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -6807,7 +9150,7 @@ yy471:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy472;
+ goto yy543;
}
} else {
if(yych <= 'm'){
@@ -6815,54 +9158,81 @@ yy471:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy472;
+ if(yych <= 'n') goto yy543;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy472:
- YYDEBUG(472, *YYCURSOR);
+yy543:
+ YYDEBUG(543, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy473;
+ goto yy544;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy473;
+ if(yych <= 'd') goto yy544;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy473:
- YYDEBUG(473, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy544:
+ YYDEBUG(544, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy545;
} else {
- if(yych <= 'A') goto yy474;
- if(yych != 'a') goto yy3;
- goto yy474;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy545;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy474:
- YYDEBUG(474, *YYCURSOR);
+yy545:
+ YYDEBUG(545, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy475:
- YYDEBUG(475, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy546:
+ YYDEBUG(546, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == ')') goto yy132;
+ goto yy405;
+yy547:
+ YYDEBUG(547, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -6871,7 +9241,7 @@ yy475:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy476;
+ goto yy548;
}
} else {
if(yych <= 's'){
@@ -6879,108 +9249,166 @@ yy475:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy476;
+ if(yych <= 't') goto yy548;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy476:
- YYDEBUG(476, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy548:
+ YYDEBUG(548, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy477:
- YYDEBUG(477, *YYCURSOR);
+yy549:
+ YYDEBUG(549, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'T') goto yy135;
- goto yy478;
+ goto yy550;
}
} else {
if(yych <= 't'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'u') goto yy478;
+ if(yych <= 'u') goto yy550;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy478:
- YYDEBUG(478, *YYCURSOR);
- yyaccept = 1;
+yy550:
+ YYDEBUG(550, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy551;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'r') goto yy551;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy551:
+ YYDEBUG(551, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy552;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy552;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy552:
+ YYDEBUG(552, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Q'){
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'R') goto yy479;
- if(yych != 'r') goto yy3;
- goto yy479;
+ if(yych <= 'A') goto yy553;
+ if(yych != 'a') goto yy3;
+ goto yy553;
}
-yy479:
- YYDEBUG(479, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy480;
- if(yych != 'd') goto yy53;
- goto yy480;
-yy480:
- YYDEBUG(480, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy481;
- if(yych != 'a') goto yy53;
- goto yy481;
-yy481:
- YYDEBUG(481, *YYCURSOR);
+yy553:
+ YYDEBUG(553, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
goto yy53;
-yy482:
- YYDEBUG(482, *YYCURSOR);
- yyaccept = 1;
+yy554:
+ YYDEBUG(554, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'T') goto yy490;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'T') goto yy563;
+ goto yy135;
+ }
} else {
if(yych <= 's'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy490;
+ if(yych <= 't') goto yy563;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy483:
- YYDEBUG(483, *YYCURSOR);
+yy555:
+ YYDEBUG(555, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -6989,7 +9417,7 @@ yy483:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy488;
+ goto yy560;
}
} else {
if(yych <= 'n'){
@@ -6997,13 +9425,13 @@ yy483:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy488;
+ if(yych <= 'o') goto yy560;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy484:
- YYDEBUG(484, *YYCURSOR);
+yy556:
+ YYDEBUG(556, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -7012,7 +9440,7 @@ yy484:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy135;
- goto yy485;
+ goto yy557;
}
} else {
if(yych <= 'd'){
@@ -7020,104 +9448,270 @@ yy484:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy485;
+ if(yych <= 'e') goto yy557;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy485:
- YYDEBUG(485, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'M'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy557:
+ YYDEBUG(557, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'N'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy558;
+ }
} else {
- if(yych <= 'N') goto yy486;
- if(yych != 'n') goto yy3;
- goto yy486;
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'n') goto yy558;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy486:
- YYDEBUG(486, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy487;
- if(yych != 't') goto yy53;
- goto yy487;
-yy487:
- YYDEBUG(487, *YYCURSOR);
+yy558:
+ YYDEBUG(558, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy488:
- YYDEBUG(488, *YYCURSOR);
- yyaccept = 1;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy559;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy559;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy559:
+ YYDEBUG(559, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'M'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'N') goto yy489;
- if(yych != 'n') goto yy3;
- goto yy489;
+ if(yych <= 'H') goto yy163;
+ if(yych == 'h') goto yy163;
+ goto yy3;
}
-yy489:
- YYDEBUG(489, *YYCURSOR);
+yy560:
+ YYDEBUG(560, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'D') goto yy159;
- if(yych == 'd') goto yy159;
- goto yy53;
-yy490:
- YYDEBUG(490, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '.'){
+ if(yych <= 'N'){
if(yych <= ')'){
- if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ if(yych <= '(') goto yy3;
+ goto yy132;
} else {
- if(yych == '-') goto yy361;
- goto yy359;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy561;
}
} else {
- if(yych <= 'D'){
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
+ if(yych <= 'm'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
} else {
- if(yych <= 'E') goto yy491;
- if(yych != 'e') goto yy3;
- goto yy491;
+ if(yych <= 'n') goto yy561;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
}
}
-yy491:
- YYDEBUG(491, *YYCURSOR);
+yy561:
+ YYDEBUG(561, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy492;
- if(yych != 'm') goto yy53;
- goto yy492;
-yy492:
- YYDEBUG(492, *YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy562;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy562;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy562:
+ YYDEBUG(562, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy164;
+ if(yych <= 0x1F) goto yy3;
+ goto yy164;
+ } else {
+ if(yych == ')') goto yy132;
+ if(yych <= 'C') goto yy3;
+ goto yy164;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy164;
+ if(yych <= 'G') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'R') goto yy3;
+ if(yych <= 'T') goto yy164;
+ goto yy3;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy3;
+ if(yych <= 'Y') goto yy164;
+ goto yy3;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy164;
+ goto yy3;
+ } else {
+ if(yych == 'g') goto yy3;
+ goto yy164;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy164;
+ if(yych <= 'r') goto yy3;
+ goto yy164;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy3;
+ goto yy164;
+ } else {
+ if(yych == 'y') goto yy164;
+ goto yy3;
+ }
+ }
+ }
+ }
+yy563:
+ YYDEBUG(563, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
+ }
+ } else {
+ if(yych <= 'Z'){
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'E') goto yy136;
+ goto yy564;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy564;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+ }
+yy564:
+ YYDEBUG(564, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy493;
- if(yych != 'b') goto yy53;
- goto yy493;
-yy493:
- YYDEBUG(493, *YYCURSOR);
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy137;
+ goto yy565;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'm') goto yy565;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy565:
+ YYDEBUG(565, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'B') goto yy566;
+ if(yych != 'b') goto yy3;
+ goto yy566;
+ }
+yy566:
+ YYDEBUG(566, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy494;
+ if(yych == 'E') goto yy567;
if(yych != 'e') goto yy53;
- goto yy494;
-yy494:
- YYDEBUG(494, *YYCURSOR);
+ goto yy567;
+yy567:
+ YYDEBUG(567, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy495:
- YYDEBUG(495, *YYCURSOR);
- yyaccept = 1;
+yy568:
+ YYDEBUG(568, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'V'){
if(yych <= '@'){
@@ -7125,17 +9719,17 @@ yy495:
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= 'O'){
- if(yych == 'C') goto yy483;
+ if(yych == 'C') goto yy555;
goto yy134;
} else {
- if(yych <= 'P') goto yy482;
+ if(yych <= 'P') goto yy554;
if(yych <= 'U') goto yy134;
- goto yy484;
+ goto yy556;
}
}
} else {
@@ -7143,524 +9737,717 @@ yy495:
if(yych <= '_'){
if(yych <= 'Z') goto yy134;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'b') goto yy137;
- goto yy510;
+ if(yych <= 'b') goto yy139;
+ goto yy584;
}
} else {
if(yych <= 'u'){
- if(yych == 'p') goto yy509;
- goto yy137;
+ if(yych == 'p') goto yy583;
+ goto yy139;
} else {
- if(yych <= 'v') goto yy511;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'v') goto yy585;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy496:
- YYDEBUG(496, *YYCURSOR);
- yyaccept = 1;
+yy569:
+ YYDEBUG(569, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy134;
- goto yy477;
+ goto yy549;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy504;
- if(yych <= 'z') goto yy137;
+ if(yych == 't') goto yy578;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy497:
- YYDEBUG(497, *YYCURSOR);
- yyaccept = 1;
+yy570:
+ YYDEBUG(570, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy475;
+ goto yy547;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'x') goto yy502;
- if(yych <= 'z') goto yy137;
+ if(yych == 'x') goto yy576;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy498:
- YYDEBUG(498, *YYCURSOR);
- yyaccept = 1;
+yy571:
+ YYDEBUG(571, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy472;
+ goto yy543;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy499;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy572;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy499:
- YYDEBUG(499, *YYCURSOR);
+yy572:
+ YYDEBUG(572, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy473;
+ goto yy544;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy500;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy573;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy500:
- YYDEBUG(500, *YYCURSOR);
- yyaccept = 1;
+yy573:
+ YYDEBUG(573, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy474;
+ goto yy545;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy574;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy574:
+ YYDEBUG(574, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy501;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy501:
- YYDEBUG(501, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy502:
- YYDEBUG(502, *YYCURSOR);
- yyaccept = 1;
+yy575:
+ YYDEBUG(575, *YYCURSOR);
+ yyaccept = 5;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych == ')') goto yy132;
+ if(yych <= '.') goto yy405;
+ goto yy140;
+ } else {
+ if(yych <= '_'){
+ if(yych <= '^') goto yy405;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy405;
+ if(yych <= 'z') goto yy147;
+ goto yy405;
+ }
+ }
+yy576:
+ YYDEBUG(576, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy476;
+ goto yy548;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy503;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy577;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy503:
- YYDEBUG(503, *YYCURSOR);
- yyaccept = 1;
+yy577:
+ YYDEBUG(577, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy504:
- YYDEBUG(504, *YYCURSOR);
+yy578:
+ YYDEBUG(578, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'T') goto yy135;
- goto yy478;
+ goto yy550;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'u') goto yy505;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'u') goto yy579;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy505:
- YYDEBUG(505, *YYCURSOR);
- yyaccept = 1;
+yy579:
+ YYDEBUG(579, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'Q') goto yy3;
- goto yy479;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy551;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy506;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy580;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy506:
- YYDEBUG(506, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy480;
- if(yych != 'd') goto yy144;
- goto yy507;
-yy507:
- YYDEBUG(507, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy481;
- if(yych != 'a') goto yy144;
- goto yy508;
-yy508:
- YYDEBUG(508, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy509:
- YYDEBUG(509, *YYCURSOR);
- yyaccept = 1;
+yy580:
+ YYDEBUG(580, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy552;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy581;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy581:
+ YYDEBUG(581, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy553;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy582;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy582:
+ YYDEBUG(582, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy419;
+ goto yy148;
+yy583:
+ YYDEBUG(583, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'T'){
- if(yych <= 'S') goto yy135;
- goto yy490;
+ if(yych <= '^'){
+ if(yych <= 'S'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'T') goto yy563;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 's'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 't') goto yy517;
- if(yych <= 'z') goto yy142;
+ if(yych <= 't') goto yy592;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy510:
- YYDEBUG(510, *YYCURSOR);
- yyaccept = 1;
+yy584:
+ YYDEBUG(584, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy488;
+ goto yy560;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy515;
- if(yych <= 'z') goto yy142;
+ if(yych == 'o') goto yy589;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy511:
- YYDEBUG(511, *YYCURSOR);
- yyaccept = 1;
+yy585:
+ YYDEBUG(585, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy135;
- goto yy485;
+ goto yy557;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy512;
- if(yych <= 'z') goto yy142;
+ if(yych == 'e') goto yy586;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy512:
- YYDEBUG(512, *YYCURSOR);
- yyaccept = 1;
+yy586:
+ YYDEBUG(586, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'M') goto yy3;
- goto yy486;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy558;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy513;
- if(yych <= 'z') goto yy143;
+ if(yych == 'n') goto yy587;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy513:
- YYDEBUG(513, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy487;
- if(yych != 't') goto yy144;
- goto yy514;
-yy514:
- YYDEBUG(514, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy587:
+ YYDEBUG(587, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy559;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 't') goto yy588;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy515:
- YYDEBUG(515, *YYCURSOR);
- yyaccept = 1;
+yy588:
+ YYDEBUG(588, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy163;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy589:
+ YYDEBUG(589, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'M') goto yy3;
- goto yy489;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'M') goto yy136;
+ goto yy561;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy516;
- if(yych <= 'z') goto yy143;
+ if(yych == 'n') goto yy590;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy516:
- YYDEBUG(516, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy590:
+ YYDEBUG(590, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'D') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy562;
}
} else {
- if(yych <= 'c'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'd') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'd') goto yy591;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy517:
- YYDEBUG(517, *YYCURSOR);
- yyaccept = 1;
+yy591:
+ YYDEBUG(591, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
+ case 'T': case 'W': case 'Y': goto yy164;
+ case ')': goto yy132;
+ case '/': case '_': goto yy140;
+ case 'a':
+ case 'b':
+ case 'c': case 'e': case 'g': case 'i':
+ case 'j':
+ case 'k':
+ case 'l': case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r': case 'u':
+ case 'v': case 'x': case 'z': goto yy147;
+ case 'd': goto yy249;
+ case 'f': goto yy251;
+ case 'h': goto yy248;
+ case 'm': goto yy247;
+ case 's': goto yy246;
+ case 't': goto yy253;
+ case 'w': goto yy250;
+ case 'y': goto yy252;
+ default: goto yy3;
+ }
+yy592:
+ YYDEBUG(592, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy138;
- goto yy359;
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych == 'E') goto yy491;
- if(yych <= '^') goto yy3;
- goto yy138;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'E') goto yy564;
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ }
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy143;
+ goto yy145;
} else {
- if(yych <= 'e') goto yy518;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'e') goto yy593;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
}
-yy518:
- YYDEBUG(518, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'M') goto yy492;
- if(yych != 'm') goto yy144;
- goto yy519;
-yy519:
- YYDEBUG(519, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy493;
- if(yych != 'b') goto yy144;
- goto yy520;
-yy520:
- YYDEBUG(520, *YYCURSOR);
+yy593:
+ YYDEBUG(593, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'M'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy137;
+ goto yy565;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'm') goto yy594;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy594:
+ YYDEBUG(594, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'A') goto yy3;
+ goto yy566;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy595;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy595:
+ YYDEBUG(595, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy494;
- if(yych != 'e') goto yy144;
- goto yy521;
-yy521:
- YYDEBUG(521, *YYCURSOR);
+ if(yych == 'E') goto yy567;
+ if(yych != 'e') goto yy148;
+ goto yy596;
+yy596:
+ YYDEBUG(596, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy522:
- YYDEBUG(522, *YYCURSOR);
+yy597:
+ YYDEBUG(597, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'G'){
if(yych <= ')'){
@@ -7669,7 +10456,7 @@ yy522:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy529;
+ goto yy605;
}
} else {
if(yych <= 'f'){
@@ -7677,13 +10464,13 @@ yy522:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'g') goto yy529;
+ if(yych <= 'g') goto yy605;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy523:
- YYDEBUG(523, *YYCURSOR);
+yy598:
+ YYDEBUG(598, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
@@ -7692,7 +10479,7 @@ yy523:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy134;
- goto yy527;
+ goto yy602;
}
} else {
if(yych <= 'q'){
@@ -7700,13 +10487,13 @@ yy523:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'r') goto yy527;
+ if(yych <= 'r') goto yy602;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy524:
- YYDEBUG(524, *YYCURSOR);
+yy599:
+ YYDEBUG(599, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -7715,7 +10502,7 @@ yy524:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy134;
- goto yy525;
+ goto yy600;
}
} else {
if(yych <= 'n'){
@@ -7723,27 +10510,27 @@ yy524:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'o') goto yy525;
+ if(yych <= 'o') goto yy600;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy525:
- YYDEBUG(525, *YYCURSOR);
+yy600:
+ YYDEBUG(600, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= '@'){
if(yych == ')') goto yy132;
- goto yy526;
+ goto yy601;
} else {
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy526;
+ if(yych <= '`') goto yy601;
if(yych <= 'z') goto yy135;
- goto yy526;
+ goto yy601;
}
-yy526:
- YYDEBUG(526, *YYCURSOR);
+yy601:
+ YYDEBUG(601, *YYCURSOR);
-#line 1291 "ext/date/lib/parse_date.re"
+#line 1321 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("ago");
TIMELIB_INIT;
@@ -7757,345 +10544,531 @@ yy526:
TIMELIB_DEINIT;
return TIMELIB_AGO;
}
-#line 6694 "ext/date/lib/parse_date.c"
-yy527:
- YYDEBUG(527, *YYCURSOR);
- yyaccept = 1;
+#line 9333 "ext/date/lib/parse_date.c"
+yy602:
+ YYDEBUG(602, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'I') goto yy135;
- goto yy528;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'I') goto yy135;
+ goto yy603;
+ }
} else {
if(yych <= 'h'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'i') goto yy528;
+ if(yych <= 'i') goto yy603;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy528:
- YYDEBUG(528, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'K'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy603:
+ YYDEBUG(603, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'L'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'K') goto yy136;
+ goto yy604;
+ }
} else {
- if(yych <= 'L') goto yy358;
- if(yych == 'l') goto yy358;
- goto yy3;
+ if(yych <= 'k'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'l') goto yy604;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy529:
- YYDEBUG(529, *YYCURSOR);
- yyaccept = 1;
+yy604:
+ YYDEBUG(604, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= '-') goto yy361;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '@'){
if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy605:
+ YYDEBUG(605, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'U') goto yy135;
- goto yy530;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'U') goto yy135;
+ goto yy606;
+ }
} else {
if(yych <= 't'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'u') goto yy530;
+ if(yych <= 'u') goto yy606;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy530:
- YYDEBUG(530, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'R'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy606:
+ YYDEBUG(606, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy607;
+ }
} else {
- if(yych <= 'S') goto yy531;
- if(yych != 's') goto yy3;
- goto yy531;
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 's') goto yy607;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy531:
- YYDEBUG(531, *YYCURSOR);
+yy607:
+ YYDEBUG(607, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy358;
- if(yych == 't') goto yy358;
- goto yy53;
-yy532:
- YYDEBUG(532, *YYCURSOR);
- yyaccept = 1;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy608;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy608;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy608:
+ YYDEBUG(608, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '.'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
+ } else {
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ }
+ }
+yy609:
+ YYDEBUG(609, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'G'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'F') goto yy134;
- goto yy529;
+ goto yy605;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'g') goto yy538;
- if(yych <= 'z') goto yy137;
+ if(yych == 'g') goto yy616;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy533:
- YYDEBUG(533, *YYCURSOR);
- yyaccept = 1;
+yy610:
+ YYDEBUG(610, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy134;
- goto yy527;
+ goto yy602;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy536;
- if(yych <= 'z') goto yy137;
+ if(yych == 'r') goto yy613;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy534:
- YYDEBUG(534, *YYCURSOR);
- yyaccept = 1;
+yy611:
+ YYDEBUG(611, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy134;
- goto yy525;
+ goto yy600;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy535;
- if(yych <= 'z') goto yy137;
+ if(yych == 'o') goto yy612;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy535:
- YYDEBUG(535, *YYCURSOR);
+yy612:
+ YYDEBUG(612, *YYCURSOR);
yyaccept = 9;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy526;
+ if(yych <= '(') goto yy601;
goto yy132;
} else {
- if(yych == '/') goto yy138;
- goto yy526;
+ if(yych == '/') goto yy140;
+ goto yy601;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy526;
- goto yy138;
+ if(yych <= '^') goto yy601;
+ goto yy140;
} else {
- if(yych <= '`') goto yy526;
- if(yych <= 'z') goto yy142;
- goto yy526;
+ if(yych <= '`') goto yy601;
+ if(yych <= 'z') goto yy144;
+ goto yy601;
}
}
-yy536:
- YYDEBUG(536, *YYCURSOR);
- yyaccept = 1;
+yy613:
+ YYDEBUG(613, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'I'){
- if(yych <= 'H') goto yy135;
- goto yy528;
+ if(yych <= '^'){
+ if(yych <= 'H'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'I') goto yy603;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'h'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'i') goto yy537;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'i') goto yy614;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy537:
- YYDEBUG(537, *YYCURSOR);
- yyaccept = 1;
+yy614:
+ YYDEBUG(614, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'L'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'K') goto yy3;
- goto yy358;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'K') goto yy136;
+ goto yy604;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'l') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych == 'l') goto yy615;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy538:
- YYDEBUG(538, *YYCURSOR);
- yyaccept = 1;
+yy615:
+ YYDEBUG(615, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ goto yy423;
+ } else {
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
+ }
+ } else {
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ if(yych <= '@') goto yy3;
+ goto yy137;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
+ }
+yy616:
+ YYDEBUG(616, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
+ }
} else {
- if(yych <= '_'){
- if(yych <= 'U'){
- if(yych <= 'T') goto yy135;
- goto yy530;
+ if(yych <= '^'){
+ if(yych <= 'T'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'U') goto yy606;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 't'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'u') goto yy539;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'u') goto yy617;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy539:
- YYDEBUG(539, *YYCURSOR);
- yyaccept = 1;
+yy617:
+ YYDEBUG(617, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'R') goto yy3;
- goto yy531;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy607;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy540;
- if(yych <= 'z') goto yy143;
+ if(yych == 's') goto yy618;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy540:
- YYDEBUG(540, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy618:
+ YYDEBUG(618, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'T') goto yy358;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy608;
}
} else {
- if(yych <= 's'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 't') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 't') goto yy619;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy541:
- YYDEBUG(541, *YYCURSOR);
+yy619:
+ YYDEBUG(619, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
+ }
+ } else {
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy620:
+ YYDEBUG(620, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'B'){
if(yych <= ')'){
@@ -8104,7 +11077,7 @@ yy541:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'A') goto yy134;
- goto yy555;
+ goto yy634;
}
} else {
if(yych <= 'a'){
@@ -8112,37 +11085,37 @@ yy541:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'b') goto yy555;
+ if(yych <= 'b') goto yy634;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy542:
- YYDEBUG(542, *YYCURSOR);
+yy621:
+ YYDEBUG(621, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'F') goto yy552;
+ if(yych == 'F') goto yy631;
if(yych <= 'Q') goto yy134;
- goto yy551;
+ goto yy630;
}
} else {
if(yych <= 'f'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'e') goto yy134;
- goto yy552;
+ goto yy631;
} else {
- if(yych == 'r') goto yy551;
+ if(yych == 'r') goto yy630;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy543:
- YYDEBUG(543, *YYCURSOR);
+yy622:
+ YYDEBUG(622, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= ')'){
@@ -8151,7 +11124,7 @@ yy543:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'T') goto yy134;
- goto yy548;
+ goto yy627;
}
} else {
if(yych <= 't'){
@@ -8159,13 +11132,13 @@ yy543:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'u') goto yy548;
+ if(yych <= 'u') goto yy627;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy544:
- YYDEBUG(544, *YYCURSOR);
+yy623:
+ YYDEBUG(623, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'I'){
if(yych <= ')'){
@@ -8174,7 +11147,7 @@ yy544:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'H') goto yy134;
- goto yy545;
+ goto yy624;
}
} else {
if(yych <= 'h'){
@@ -8182,54 +11155,76 @@ yy544:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'i') goto yy545;
+ if(yych <= 'i') goto yy624;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy545:
- YYDEBUG(545, *YYCURSOR);
+yy624:
+ YYDEBUG(624, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy546;
+ goto yy625;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy546;
+ if(yych <= 'd') goto yy625;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy546:
- YYDEBUG(546, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy625:
+ YYDEBUG(625, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy626;
} else {
- if(yych <= 'A') goto yy547;
- if(yych != 'a') goto yy3;
- goto yy547;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy626;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy547:
- YYDEBUG(547, *YYCURSOR);
+yy626:
+ YYDEBUG(626, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy548:
- YYDEBUG(548, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy627:
+ YYDEBUG(627, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
@@ -8238,7 +11233,7 @@ yy548:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- goto yy549;
+ goto yy628;
}
} else {
if(yych <= 'q'){
@@ -8246,31 +11241,59 @@ yy548:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy549;
+ if(yych <= 'r') goto yy628;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy549:
- YYDEBUG(549, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy628:
+ YYDEBUG(628, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy629;
+ }
} else {
- if(yych <= 'T') goto yy550;
- if(yych != 't') goto yy3;
- goto yy550;
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy629;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy550:
- YYDEBUG(550, *YYCURSOR);
+yy629:
+ YYDEBUG(629, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy551:
- YYDEBUG(551, *YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy137;
+ goto yy562;
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'h') goto yy562;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy630:
+ YYDEBUG(630, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
@@ -8279,7 +11302,7 @@ yy551:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy135;
- goto yy554;
+ goto yy633;
}
} else {
if(yych <= 'r'){
@@ -8287,13 +11310,13 @@ yy551:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 's') goto yy554;
+ if(yych <= 's') goto yy633;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy552:
- YYDEBUG(552, *YYCURSOR);
+yy631:
+ YYDEBUG(631, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -8302,7 +11325,7 @@ yy552:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy553;
+ goto yy632;
}
} else {
if(yych <= 's'){
@@ -8310,137 +11333,200 @@ yy552:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy553;
+ if(yych <= 't') goto yy632;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy553:
- YYDEBUG(553, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy632:
+ YYDEBUG(632, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy554:
- YYDEBUG(554, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'S'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy633:
+ YYDEBUG(633, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'T') goto yy159;
- if(yych == 't') goto yy159;
- goto yy3;
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 't') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy555:
- YYDEBUG(555, *YYCURSOR);
- yyaccept = 1;
+yy634:
+ YYDEBUG(634, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'R') goto yy135;
- goto yy556;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'R') goto yy135;
+ goto yy635;
+ }
} else {
if(yych <= 'q'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy556;
+ if(yych <= 'r') goto yy635;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy556:
- YYDEBUG(556, *YYCURSOR);
- yyaccept = 1;
+yy635:
+ YYDEBUG(635, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'U'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'T') goto yy136;
+ goto yy636;
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'u') goto yy636;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy636:
+ YYDEBUG(636, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy637;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy637;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy637:
+ YYDEBUG(637, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'T'){
+ if(yych <= 'Q'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'U') goto yy557;
- if(yych != 'u') goto yy3;
- goto yy557;
+ if(yych <= 'R') goto yy638;
+ if(yych != 'r') goto yy3;
+ goto yy638;
}
-yy557:
- YYDEBUG(557, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy558;
- if(yych != 'a') goto yy53;
- goto yy558;
-yy558:
- YYDEBUG(558, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy559;
- if(yych != 'r') goto yy53;
- goto yy559;
-yy559:
- YYDEBUG(559, *YYCURSOR);
+yy638:
+ YYDEBUG(638, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy358;
- if(yych == 'y') goto yy358;
+ if(yych == 'Y') goto yy422;
+ if(yych == 'y') goto yy422;
goto yy53;
-yy560:
- YYDEBUG(560, *YYCURSOR);
- yyaccept = 1;
+yy639:
+ YYDEBUG(639, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'A') goto yy134;
- goto yy555;
+ goto yy634;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'b') goto yy574;
- if(yych <= 'z') goto yy137;
+ if(yych == 'b') goto yy653;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy561:
- YYDEBUG(561, *YYCURSOR);
- yyaccept = 1;
+yy640:
+ YYDEBUG(640, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'E'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'F') goto yy552;
+ if(yych <= 'F') goto yy631;
if(yych <= 'Q') goto yy134;
- goto yy551;
+ goto yy630;
}
}
} else {
@@ -8449,414 +11535,487 @@ yy561:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'q'){
- if(yych <= 'f') goto yy571;
- goto yy137;
+ if(yych <= 'f') goto yy650;
+ goto yy139;
} else {
- if(yych <= 'r') goto yy570;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'r') goto yy649;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy562:
- YYDEBUG(562, *YYCURSOR);
- yyaccept = 1;
+yy641:
+ YYDEBUG(641, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'T') goto yy134;
- goto yy548;
+ goto yy627;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'u') goto yy567;
- if(yych <= 'z') goto yy137;
+ if(yych == 'u') goto yy646;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy563:
- YYDEBUG(563, *YYCURSOR);
- yyaccept = 1;
+yy642:
+ YYDEBUG(642, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'H') goto yy134;
- goto yy545;
+ goto yy624;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy564;
- if(yych <= 'z') goto yy137;
+ if(yych == 'i') goto yy643;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy564:
- YYDEBUG(564, *YYCURSOR);
+yy643:
+ YYDEBUG(643, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy546;
+ goto yy625;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy565;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy644;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy565:
- YYDEBUG(565, *YYCURSOR);
- yyaccept = 1;
+yy644:
+ YYDEBUG(644, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy547;
+ goto yy626;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy645;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy645:
+ YYDEBUG(645, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy566;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy566:
- YYDEBUG(566, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy567:
- YYDEBUG(567, *YYCURSOR);
- yyaccept = 1;
+yy646:
+ YYDEBUG(646, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- goto yy549;
+ goto yy628;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy568;
- if(yych <= 'z') goto yy142;
+ if(yych == 'r') goto yy647;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy568:
- YYDEBUG(568, *YYCURSOR);
- yyaccept = 1;
+yy647:
+ YYDEBUG(647, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy550;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy629;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy569;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy648;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy569:
- YYDEBUG(569, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy648:
+ YYDEBUG(648, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy137;
+ goto yy562;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'h') goto yy591;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy570:
- YYDEBUG(570, *YYCURSOR);
- yyaccept = 1;
+yy649:
+ YYDEBUG(649, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy135;
- goto yy554;
+ goto yy633;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy573;
- if(yych <= 'z') goto yy142;
+ if(yych == 's') goto yy652;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy571:
- YYDEBUG(571, *YYCURSOR);
- yyaccept = 1;
+yy650:
+ YYDEBUG(650, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy553;
+ goto yy632;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy572;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy651;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy572:
- YYDEBUG(572, *YYCURSOR);
- yyaccept = 1;
+yy651:
+ YYDEBUG(651, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy573:
- YYDEBUG(573, *YYCURSOR);
- yyaccept = 1;
+yy652:
+ YYDEBUG(652, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'S') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 't') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy574:
- YYDEBUG(574, *YYCURSOR);
- yyaccept = 1;
+yy653:
+ YYDEBUG(653, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'R'){
- if(yych <= 'Q') goto yy135;
- goto yy556;
+ if(yych <= '^'){
+ if(yych <= 'Q'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'R') goto yy635;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'q'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'r') goto yy575;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'r') goto yy654;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy575:
- YYDEBUG(575, *YYCURSOR);
- yyaccept = 1;
+yy654:
+ YYDEBUG(654, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'T') goto yy3;
- goto yy557;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'T') goto yy136;
+ goto yy636;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'u') goto yy576;
- if(yych <= 'z') goto yy143;
+ if(yych == 'u') goto yy655;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy576:
- YYDEBUG(576, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy558;
- if(yych != 'a') goto yy144;
- goto yy577;
-yy577:
- YYDEBUG(577, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy559;
- if(yych != 'r') goto yy144;
- goto yy578;
-yy578:
- YYDEBUG(578, *YYCURSOR);
+yy655:
+ YYDEBUG(655, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy637;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy656;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy656:
+ YYDEBUG(656, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'Q') goto yy3;
+ goto yy638;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy657;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy657:
+ YYDEBUG(657, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'Y') goto yy358;
+ if(yych == 'Y') goto yy422;
goto yy53;
}
} else {
if(yych <= 'x'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'y') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'y') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy579:
- YYDEBUG(579, *YYCURSOR);
+yy658:
+ YYDEBUG(658, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'L') goto yy586;
+ if(yych == 'L') goto yy665;
if(yych <= 'M') goto yy134;
- goto yy585;
+ goto yy664;
}
} else {
if(yych <= 'l'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'k') goto yy134;
- goto yy586;
+ goto yy665;
} else {
- if(yych == 'n') goto yy585;
+ if(yych == 'n') goto yy664;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy580:
- YYDEBUG(580, *YYCURSOR);
+yy659:
+ YYDEBUG(659, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -8865,7 +12024,7 @@ yy580:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy581;
+ goto yy660;
}
} else {
if(yych <= 'm'){
@@ -8873,155 +12032,234 @@ yy580:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy581;
+ if(yych <= 'n') goto yy660;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy581:
- YYDEBUG(581, *YYCURSOR);
- yyaccept = 1;
+yy660:
+ YYDEBUG(660, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'U') goto yy135;
- goto yy582;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'U') goto yy135;
+ goto yy661;
+ }
} else {
if(yych <= 't'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'u') goto yy582;
+ if(yych <= 'u') goto yy661;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy582:
- YYDEBUG(582, *YYCURSOR);
- yyaccept = 1;
+yy661:
+ YYDEBUG(661, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy662;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy662;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy662:
+ YYDEBUG(662, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy663;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy663;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy663:
+ YYDEBUG(663, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+ if(yych <= 'X'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'A') goto yy583;
- if(yych != 'a') goto yy3;
- goto yy583;
+ if(yych <= 'Y') goto yy422;
+ if(yych == 'y') goto yy422;
+ goto yy3;
}
-yy583:
- YYDEBUG(583, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy584;
- if(yych != 'r') goto yy53;
- goto yy584;
-yy584:
- YYDEBUG(584, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy358;
- if(yych == 'y') goto yy358;
- goto yy53;
-yy585:
- YYDEBUG(585, *YYCURSOR);
- yyaccept = 1;
+yy664:
+ YYDEBUG(664, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'E') goto yy587;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'E') goto yy666;
+ goto yy135;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy587;
+ if(yych <= 'e') goto yy666;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy586:
- YYDEBUG(586, *YYCURSOR);
- yyaccept = 1;
+yy665:
+ YYDEBUG(665, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'Y') goto yy135;
- goto yy587;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'Y') goto yy135;
+ goto yy666;
+ }
} else {
if(yych <= 'x'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'y') goto yy587;
+ if(yych <= 'y') goto yy666;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy587:
- YYDEBUG(587, *YYCURSOR);
- yyaccept = 1;
+yy666:
+ YYDEBUG(666, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= ')'){
- if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
+ goto yy3;
+ }
} else {
- if(yych == '/') goto yy3;
- if(yych <= '9') goto yy359;
- goto yy3;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy588:
- YYDEBUG(588, *YYCURSOR);
- yyaccept = 1;
+yy667:
+ YYDEBUG(667, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'K'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'L') goto yy586;
+ if(yych <= 'L') goto yy665;
if(yych <= 'M') goto yy134;
- goto yy585;
+ goto yy664;
}
}
} else {
@@ -9030,441 +12268,507 @@ yy588:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'm'){
- if(yych <= 'l') goto yy595;
- goto yy137;
+ if(yych <= 'l') goto yy674;
+ goto yy139;
} else {
- if(yych <= 'n') goto yy594;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'n') goto yy673;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy589:
- YYDEBUG(589, *YYCURSOR);
- yyaccept = 1;
+yy668:
+ YYDEBUG(668, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy581;
+ goto yy660;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy590;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy669;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy590:
- YYDEBUG(590, *YYCURSOR);
- yyaccept = 1;
+yy669:
+ YYDEBUG(669, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'U'){
- if(yych <= 'T') goto yy135;
- goto yy582;
+ if(yych <= '^'){
+ if(yych <= 'T'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'U') goto yy661;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 't'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'u') goto yy591;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'u') goto yy670;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy591:
- YYDEBUG(591, *YYCURSOR);
- yyaccept = 1;
+yy670:
+ YYDEBUG(670, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy583;
+ goto yy662;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy671;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy671:
+ YYDEBUG(671, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy663;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy592;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy672;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy592:
- YYDEBUG(592, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy584;
- if(yych != 'r') goto yy144;
- goto yy593;
-yy593:
- YYDEBUG(593, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy672:
+ YYDEBUG(672, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'Y') goto yy358;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy422;
}
} else {
- if(yych <= 'x'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'y') goto yy457;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 'y') goto yy528;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
}
}
-yy594:
- YYDEBUG(594, *YYCURSOR);
- yyaccept = 1;
+yy673:
+ YYDEBUG(673, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy587;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy666;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy596;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy675;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy595:
- YYDEBUG(595, *YYCURSOR);
- yyaccept = 1;
+yy674:
+ YYDEBUG(674, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'Y'){
- if(yych <= 'X') goto yy135;
- goto yy587;
+ if(yych <= '^'){
+ if(yych <= 'X'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'Y') goto yy666;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'x'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'y') goto yy596;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'y') goto yy675;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy596:
- YYDEBUG(596, *YYCURSOR);
- yyaccept = 1;
+yy675:
+ YYDEBUG(675, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- goto yy359;
+ goto yy423;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
- goto yy138;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= '_'){
- if(yych <= '9') goto yy359;
- if(yych <= '^') goto yy3;
- goto yy138;
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
+ if(yych <= '@') goto yy3;
+ goto yy136;
} else {
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy143;
- goto yy3;
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
}
}
-yy597:
- YYDEBUG(597, *YYCURSOR);
- yyaccept = 1;
+yy676:
+ YYDEBUG(676, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy598;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych >= 'J') goto yy134;
+ goto yy677;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy598:
- YYDEBUG(598, *YYCURSOR);
- yyaccept = 1;
+yy677:
+ YYDEBUG(677, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
- if(yych <= 0x1F) goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
goto yy3;
}
} else {
- if(yych <= 'Z'){
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy135;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
} else {
+ if(yych <= 'Z') goto yy135;
if(yych <= '`') goto yy3;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy599:
- YYDEBUG(599, *YYCURSOR);
- yyaccept = 1;
+yy678:
+ YYDEBUG(678, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy600;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych >= 'J') goto yy134;
+ goto yy679;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy600:
- YYDEBUG(600, *YYCURSOR);
- yyaccept = 1;
+yy679:
+ YYDEBUG(679, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy135;
- goto yy587;
+ goto yy135;
} else {
- if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy135;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy666;
+ goto yy135;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy135;
+ goto yy3;
+ }
}
}
-yy601:
- YYDEBUG(601, *YYCURSOR);
- yyaccept = 1;
+yy680:
+ YYDEBUG(680, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= '('){
- if(yych <= 0x1F) goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy423;
+ goto yy3;
} else {
- if(yych <= ')') goto yy360;
- if(yych <= '.') goto yy359;
+ if(yych <= ' ') goto yy423;
+ if(yych == ')') goto yy132;
goto yy3;
}
} else {
- if(yych <= 'Z'){
- if(yych <= '9') goto yy359;
- if(yych <= '@') goto yy3;
- goto yy134;
+ if(yych <= '@'){
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
+ goto yy3;
} else {
+ if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy602:
- YYDEBUG(602, *YYCURSOR);
- yyaccept = 1;
+yy681:
+ YYDEBUG(681, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy423;
}
} else {
- if(yych <= 'I'){
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy3;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'H') goto yy134;
- goto yy598;
+ goto yy134;
} else {
- if(yych <= 'Z') goto yy134;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy134;
- goto yy3;
+ if(yych <= 'Z'){
+ if(yych <= 'I') goto yy677;
+ goto yy134;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy134;
+ goto yy3;
+ }
}
}
-yy603:
- YYDEBUG(603, *YYCURSOR);
+yy682:
+ YYDEBUG(682, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy684;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy684;
+yy683:
+ YYDEBUG(683, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
yych = *YYCURSOR;
- goto yy604;
-yy604:
- YYDEBUG(604, *YYCURSOR);
+ goto yy684;
+yy684:
+ YYDEBUG(684, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy603;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy683;
case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy624;
- case 'D': case 'd': goto yy608;
- case 'F': case 'f': goto yy609;
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy702;
+ case 'D': case 'd': goto yy688;
+ case 'F': case 'f': goto yy689;
case 'H': case 'h': goto yy60;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy607;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'P': case 'p': goto yy628;
- case 'S': case 's': goto yy605;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy687;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'P': case 'p': goto yy706;
+ case 'S': case 's': goto yy685;
case 'T': case 't': goto yy65;
- case 'V': goto yy621;
+ case 'V': goto yy699;
case 'W': case 'w': goto yy62;
- case 'X': goto yy622;
+ case 'X': goto yy700;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy605:
- YYDEBUG(605, *YYCURSOR);
+yy685:
+ YYDEBUG(685, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy1118;
+ if(yych <= 'E') goto yy1228;
if(yych <= 'T') goto yy53;
goto yy118;
}
@@ -9473,20 +12777,20 @@ yy605:
if(yych == 'a') goto yy119;
goto yy53;
} else {
- if(yych <= 'e') goto yy1118;
+ if(yych <= 'e') goto yy1228;
if(yych == 'u') goto yy118;
goto yy53;
}
}
-yy606:
- YYDEBUG(606, *YYCURSOR);
+yy686:
+ YYDEBUG(686, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '`'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy1118;
+ if(yych <= 'E') goto yy1228;
if(yych == 'U') goto yy118;
goto yy53;
}
@@ -9494,20 +12798,20 @@ yy606:
if(yych <= 'e'){
if(yych <= 'a') goto yy119;
if(yych <= 'd') goto yy53;
- goto yy1118;
+ goto yy1228;
} else {
if(yych <= 's') goto yy53;
- if(yych <= 't') goto yy843;
+ if(yych <= 't') goto yy929;
if(yych <= 'u') goto yy118;
goto yy53;
}
}
-yy607:
- YYDEBUG(607, *YYCURSOR);
+yy687:
+ YYDEBUG(687, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= 'H'){
- if(yych == 'A') goto yy715;
+ if(yych == 'A') goto yy798;
goto yy53;
} else {
if(yych <= 'I') goto yy110;
@@ -9516,7 +12820,7 @@ yy607:
}
} else {
if(yych <= 'h'){
- if(yych == 'a') goto yy715;
+ if(yych == 'a') goto yy798;
goto yy53;
} else {
if(yych <= 'i') goto yy110;
@@ -9524,28 +12828,28 @@ yy607:
goto yy53;
}
}
-yy608:
- YYDEBUG(608, *YYCURSOR);
+yy688:
+ YYDEBUG(688, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych == 'A') goto yy106;
if(yych <= 'D') goto yy53;
- goto yy702;
+ goto yy785;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
goto yy106;
} else {
- if(yych == 'e') goto yy702;
+ if(yych == 'e') goto yy785;
goto yy53;
}
}
-yy609:
- YYDEBUG(609, *YYCURSOR);
+yy689:
+ YYDEBUG(689, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= 'N'){
- if(yych == 'E') goto yy718;
+ if(yych == 'E') goto yy801;
goto yy53;
} else {
if(yych <= 'O') goto yy83;
@@ -9554,7 +12858,7 @@ yy609:
}
} else {
if(yych <= 'n'){
- if(yych == 'e') goto yy718;
+ if(yych == 'e') goto yy801;
goto yy53;
} else {
if(yych <= 'o') goto yy83;
@@ -9562,8 +12866,8 @@ yy609:
goto yy53;
}
}
-yy610:
- YYDEBUG(610, *YYCURSOR);
+yy690:
+ YYDEBUG(690, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych == 'H') goto yy66;
@@ -9572,67 +12876,67 @@ yy610:
} else {
if(yych <= 'h'){
if(yych <= 'g') goto yy53;
- goto yy1117;
+ goto yy1227;
} else {
if(yych == 'u') goto yy67;
goto yy53;
}
}
-yy611:
- YYDEBUG(611, *YYCURSOR);
+yy691:
+ YYDEBUG(691, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy851;
+ if(yych <= '9') goto yy935;
goto yy57;
-yy612:
- YYDEBUG(612, *YYCURSOR);
+yy692:
+ YYDEBUG(692, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'c'){
- if(yych == 'O') goto yy655;
+ if(yych == 'O') goto yy736;
goto yy53;
} else {
- if(yych <= 'd') goto yy843;
- if(yych == 'o') goto yy655;
+ if(yych <= 'd') goto yy929;
+ if(yych == 'o') goto yy736;
goto yy53;
}
-yy613:
- YYDEBUG(613, *YYCURSOR);
+yy693:
+ YYDEBUG(693, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy843;
+ if(yych == 'd') goto yy929;
goto yy53;
-yy614:
- YYDEBUG(614, *YYCURSOR);
+yy694:
+ YYDEBUG(694, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
case '0':
case '1':
- case '2': goto yy783;
- case '3': goto yy785;
+ case '2': goto yy869;
+ case '3': goto yy871;
case '4':
case '5':
case '6':
case '7':
case '8':
- case '9': goto yy786;
- case 'A': case 'a': goto yy790;
- case 'D': case 'd': goto yy794;
- case 'F': case 'f': goto yy788;
- case 'J': case 'j': goto yy787;
- case 'M': case 'm': goto yy789;
- case 'N': case 'n': goto yy793;
- case 'O': case 'o': goto yy792;
- case 'S': case 's': goto yy791;
+ case '9': goto yy872;
+ case 'A': case 'a': goto yy876;
+ case 'D': case 'd': goto yy880;
+ case 'F': case 'f': goto yy874;
+ case 'J': case 'j': goto yy873;
+ case 'M': case 'm': goto yy875;
+ case 'N': case 'n': goto yy879;
+ case 'O': case 'o': goto yy878;
+ case 'S': case 's': goto yy877;
default: goto yy53;
}
-yy615:
- YYDEBUG(615, *YYCURSOR);
+yy695:
+ YYDEBUG(695, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy734;
- case '1': goto yy735;
+ case '0': goto yy819;
+ case '1': goto yy820;
case '2':
case '3':
case '4':
@@ -9640,94 +12944,58 @@ yy615:
case '6':
case '7':
case '8':
- case '9': goto yy736;
- case 'A': case 'a': goto yy740;
- case 'D': case 'd': goto yy744;
- case 'F': case 'f': goto yy738;
- case 'J': case 'j': goto yy737;
- case 'M': case 'm': goto yy739;
- case 'N': case 'n': goto yy743;
- case 'O': case 'o': goto yy742;
- case 'S': case 's': goto yy741;
- default: goto yy617;
- }
-yy616:
- YYDEBUG(616, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
- yych = *YYCURSOR;
- goto yy617;
-yy617:
- YYDEBUG(617, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
- case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy699;
- case 'D': case 'd': goto yy701;
- case 'F': case 'f': goto yy697;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy698;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'S': case 's': goto yy700;
- case 'V': goto yy621;
- case 'X': goto yy622;
- default: goto yy53;
+ case '9': goto yy821;
+ case 'A': case 'a': goto yy825;
+ case 'D': case 'd': goto yy829;
+ case 'F': case 'f': goto yy823;
+ case 'J': case 'j': goto yy822;
+ case 'M': case 'm': goto yy824;
+ case 'N': case 'n': goto yy828;
+ case 'O': case 'o': goto yy827;
+ case 'S': case 's': goto yy826;
+ default: goto yy784;
}
-yy618:
- YYDEBUG(618, *YYCURSOR);
+yy696:
+ YYDEBUG(696, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '1'){
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy693;
- goto yy694;
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy774;
+ goto yy775;
} else {
- if(yych <= '5') goto yy695;
- if(yych <= '9') goto yy696;
- goto yy617;
+ if(yych <= '5') goto yy776;
+ if(yych <= '9') goto yy777;
+ goto yy784;
}
-yy619:
- YYDEBUG(619, *YYCURSOR);
+yy697:
+ YYDEBUG(697, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
- if(yych <= '.'){
- if(yych >= ' ') goto yy657;
- goto yy620;
+ if(yych <= '/'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '.') goto yy738;
+ goto yy698;
}
} else {
- if(yych <= 'V'){
- if(yych <= 'I') goto yy692;
- if(yych >= 'V') goto yy665;
- goto yy620;
+ if(yych <= 'U'){
+ if(yych <= '9') goto yy740;
+ if(yych == 'I') goto yy773;
+ goto yy698;
} else {
- if(yych == 'X') goto yy665;
- goto yy620;
+ if(yych == 'W') goto yy698;
+ if(yych <= 'X') goto yy746;
+ goto yy698;
}
}
-yy620:
- YYDEBUG(620, *YYCURSOR);
+yy698:
+ YYDEBUG(698, *YYCURSOR);
-#line 1138 "ext/date/lib/parse_date.re"
+#line 1164 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenoyearrev");
TIMELIB_INIT;
@@ -9738,117 +13006,157 @@ yy620:
TIMELIB_DEINIT;
return TIMELIB_DATE_TEXT;
}
-#line 8483 "ext/date/lib/parse_date.c"
-yy621:
- YYDEBUG(621, *YYCURSOR);
+#line 11598 "ext/date/lib/parse_date.c"
+yy699:
+ YYDEBUG(699, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy690;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy771;
+ goto yy698;
+ }
}
-yy622:
- YYDEBUG(622, *YYCURSOR);
+yy700:
+ YYDEBUG(700, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy689;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy770;
+ goto yy698;
+ }
}
-yy623:
- YYDEBUG(623, *YYCURSOR);
+yy701:
+ YYDEBUG(701, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy682;
+ if(yych == 'A') goto yy763;
if(yych <= 'T') goto yy53;
- goto yy681;
+ goto yy762;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy682;
+ goto yy763;
} else {
- if(yych == 'u') goto yy681;
+ if(yych == 'u') goto yy762;
goto yy53;
}
}
-yy624:
- YYDEBUG(624, *YYCURSOR);
+yy702:
+ YYDEBUG(702, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= 'L'){
- if(yych == '.') goto yy629;
+ if(yych == '.') goto yy707;
goto yy53;
} else {
- if(yych <= 'M') goto yy630;
- if(yych == 'P') goto yy675;
+ if(yych <= 'M') goto yy708;
+ if(yych == 'P') goto yy756;
goto yy53;
}
} else {
if(yych <= 'o'){
- if(yych <= 'U') goto yy674;
- if(yych == 'm') goto yy630;
+ if(yych <= 'U') goto yy755;
+ if(yych == 'm') goto yy708;
goto yy53;
} else {
- if(yych <= 'p') goto yy675;
- if(yych == 'u') goto yy674;
+ if(yych <= 'p') goto yy756;
+ if(yych == 'u') goto yy755;
goto yy53;
}
}
-yy625:
- YYDEBUG(625, *YYCURSOR);
+yy703:
+ YYDEBUG(703, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy669;
- if(yych == 'c') goto yy669;
+ if(yych == 'C') goto yy750;
+ if(yych == 'c') goto yy750;
goto yy53;
-yy626:
- YYDEBUG(626, *YYCURSOR);
+yy704:
+ YYDEBUG(704, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy655;
- if(yych == 'o') goto yy655;
+ if(yych == 'O') goto yy736;
+ if(yych == 'o') goto yy736;
goto yy53;
-yy627:
- YYDEBUG(627, *YYCURSOR);
+yy705:
+ YYDEBUG(705, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy633;
- if(yych <= '9') goto yy635;
+ if(yych <= '5') goto yy712;
+ if(yych <= '9') goto yy714;
goto yy53;
-yy628:
- YYDEBUG(628, *YYCURSOR);
+yy706:
+ YYDEBUG(706, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy629;
+ goto yy707;
} else {
- if(yych <= 'M') goto yy630;
- if(yych == 'm') goto yy630;
+ if(yych <= 'M') goto yy708;
+ if(yych == 'm') goto yy708;
goto yy53;
}
-yy629:
- YYDEBUG(629, *YYCURSOR);
+yy707:
+ YYDEBUG(707, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy630;
+ if(yych == 'M') goto yy708;
if(yych != 'm') goto yy53;
- goto yy630;
-yy630:
- YYDEBUG(630, *YYCURSOR);
+ goto yy708;
+yy708:
+ YYDEBUG(708, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy709;
+ }
+yy709:
+ YYDEBUG(709, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych != ' ') goto yy53;
+ goto yy710;
+ }
+yy710:
+ YYDEBUG(710, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) == '.') goto yy632;
- goto yy631;
-yy631:
- YYDEBUG(631, *YYCURSOR);
+ goto yy711;
+yy711:
+ YYDEBUG(711, *YYCURSOR);
-#line 928 "ext/date/lib/parse_date.re"
+#line 949 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
TIMELIB_INIT;
@@ -9864,27 +13172,23 @@ yy631:
TIMELIB_DEINIT;
return TIMELIB_TIME12;
}
-#line 8587 "ext/date/lib/parse_date.c"
-yy632:
- YYDEBUG(632, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy631;
-yy633:
- YYDEBUG(633, *YYCURSOR);
+#line 11738 "ext/date/lib/parse_date.c"
+yy712:
+ YYDEBUG(712, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy636;
- goto yy634;
+ if(yych == '.') goto yy715;
+ goto yy713;
} else {
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy634:
- YYDEBUG(634, *YYCURSOR);
+yy713:
+ YYDEBUG(713, *YYCURSOR);
-#line 945 "ext/date/lib/parse_date.re"
+#line 966 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
@@ -9902,255 +13206,316 @@ yy634:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
}
-#line 8624 "ext/date/lib/parse_date.c"
-yy635:
- YYDEBUG(635, *YYCURSOR);
+#line 11775 "ext/date/lib/parse_date.c"
+yy714:
+ YYDEBUG(714, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy636;
- if(yych != ':') goto yy634;
- goto yy636;
-yy636:
- YYDEBUG(636, *YYCURSOR);
+ if(yych == '.') goto yy715;
+ if(yych != ':') goto yy713;
+ goto yy715;
+yy715:
+ YYDEBUG(715, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy637;
- if(yych <= '6') goto yy638;
- if(yych <= '9') goto yy639;
+ if(yych <= '5') goto yy716;
+ if(yych <= '6') goto yy717;
+ if(yych <= '9') goto yy718;
goto yy53;
-yy637:
- YYDEBUG(637, *YYCURSOR);
+yy716:
+ YYDEBUG(716, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy643;
- goto yy634;
-yy638:
- YYDEBUG(638, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy722;
+ goto yy713;
+yy717:
+ YYDEBUG(717, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych == '0') goto yy643;
- goto yy634;
-yy639:
- YYDEBUG(639, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych == '0') goto yy722;
+ goto yy713;
+yy718:
+ YYDEBUG(718, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '.') goto yy634;
- goto yy640;
-yy640:
- YYDEBUG(640, *YYCURSOR);
+ if(yych != '.') goto yy713;
+ goto yy719;
+yy719:
+ YYDEBUG(719, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy641;
-yy641:
- YYDEBUG(641, *YYCURSOR);
+ goto yy720;
+yy720:
+ YYDEBUG(720, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy642;
-yy642:
- YYDEBUG(642, *YYCURSOR);
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy641;
- goto yy634;
-yy643:
- YYDEBUG(643, *YYCURSOR);
+ goto yy721;
+yy721:
+ YYDEBUG(721, *YYCURSOR);
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy720;
+ goto yy713;
+yy722:
+ YYDEBUG(722, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'A'){
- if(yych <= '-'){
- if(yych != ' ') goto yy634;
- goto yy644;
+ if(yych <= '@'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy713;
+ goto yy723;
} else {
- if(yych <= '.') goto yy640;
- if(yych <= '@') goto yy634;
- goto yy646;
+ if(yych <= ' ') goto yy723;
+ if(yych == '.') goto yy719;
+ goto yy713;
}
} else {
if(yych <= '`'){
- if(yych == 'P') goto yy646;
- goto yy634;
+ if(yych <= 'A') goto yy725;
+ if(yych == 'P') goto yy725;
+ goto yy713;
} else {
- if(yych <= 'a') goto yy646;
- if(yych == 'p') goto yy646;
- goto yy634;
+ if(yych <= 'a') goto yy725;
+ if(yych == 'p') goto yy725;
+ goto yy713;
}
}
-yy644:
- YYDEBUG(644, *YYCURSOR);
+yy723:
+ YYDEBUG(723, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- goto yy645;
-yy645:
- YYDEBUG(645, *YYCURSOR);
- if(yych <= 'O'){
- if(yych <= ' '){
- if(yych <= 0x1F) goto yy53;
- goto yy644;
+ goto yy724;
+yy724:
+ YYDEBUG(724, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy723;
+ goto yy53;
} else {
- if(yych != 'A') goto yy53;
- goto yy646;
+ if(yych <= ' ') goto yy723;
+ if(yych <= '@') goto yy53;
+ goto yy725;
}
} else {
- if(yych <= 'a'){
- if(yych <= 'P') goto yy646;
- if(yych <= '`') goto yy53;
- goto yy646;
+ if(yych <= '`'){
+ if(yych != 'P') goto yy53;
+ goto yy725;
} else {
+ if(yych <= 'a') goto yy725;
if(yych != 'p') goto yy53;
- goto yy646;
+ goto yy725;
}
}
-yy646:
- YYDEBUG(646, *YYCURSOR);
+yy725:
+ YYDEBUG(725, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy647;
+ goto yy726;
} else {
- if(yych <= 'M') goto yy648;
- if(yych == 'm') goto yy648;
+ if(yych <= 'M') goto yy727;
+ if(yych == 'm') goto yy727;
goto yy53;
}
-yy647:
- YYDEBUG(647, *YYCURSOR);
+yy726:
+ YYDEBUG(726, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy648;
+ if(yych == 'M') goto yy727;
if(yych != 'm') goto yy53;
- goto yy648;
-yy648:
- YYDEBUG(648, *YYCURSOR);
+ goto yy727;
+yy727:
+ YYDEBUG(727, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy632;
- goto yy631;
-yy649:
- YYDEBUG(649, *YYCURSOR);
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy728;
+ }
+yy728:
+ YYDEBUG(728, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych == ' ') goto yy710;
+ goto yy53;
+ }
+yy729:
+ YYDEBUG(729, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych != ' ') goto yy634;
- goto yy650;
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy730;
+ if(yych <= 0x1F) goto yy713;
+ goto yy730;
} else {
- if(yych <= '.') goto yy636;
- if(yych == ':') goto yy636;
- goto yy634;
+ if(yych == '.') goto yy715;
+ if(yych <= '9') goto yy713;
+ goto yy715;
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy652;
- if(yych == 'P') goto yy652;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy732;
+ if(yych <= 'O') goto yy713;
+ goto yy732;
} else {
- if(yych <= 'a') goto yy652;
- if(yych == 'p') goto yy652;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy732;
+ } else {
+ if(yych == 'p') goto yy732;
+ goto yy713;
+ }
}
}
-yy650:
- YYDEBUG(650, *YYCURSOR);
+yy730:
+ YYDEBUG(730, *YYCURSOR);
++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
+ if((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
yych = *YYCURSOR;
- goto yy651;
-yy651:
- YYDEBUG(651, *YYCURSOR);
- if(yych <= 'O'){
- if(yych <= ' '){
- if(yych <= 0x1F) goto yy53;
- goto yy650;
+ goto yy731;
+yy731:
+ YYDEBUG(731, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy730;
+ goto yy53;
} else {
- if(yych != 'A') goto yy53;
- goto yy652;
+ if(yych <= ' ') goto yy730;
+ if(yych <= '@') goto yy53;
+ goto yy732;
}
} else {
- if(yych <= 'a'){
- if(yych <= 'P') goto yy652;
- if(yych <= '`') goto yy53;
- goto yy652;
+ if(yych <= '`'){
+ if(yych != 'P') goto yy53;
+ goto yy732;
} else {
+ if(yych <= 'a') goto yy732;
if(yych != 'p') goto yy53;
- goto yy652;
+ goto yy732;
}
}
-yy652:
- YYDEBUG(652, *YYCURSOR);
+yy732:
+ YYDEBUG(732, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych != '.') goto yy53;
- goto yy653;
+ goto yy733;
} else {
- if(yych <= 'M') goto yy654;
- if(yych == 'm') goto yy654;
+ if(yych <= 'M') goto yy734;
+ if(yych == 'm') goto yy734;
goto yy53;
}
-yy653:
- YYDEBUG(653, *YYCURSOR);
+yy733:
+ YYDEBUG(733, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy654;
+ if(yych == 'M') goto yy734;
if(yych != 'm') goto yy53;
- goto yy654;
-yy654:
- YYDEBUG(654, *YYCURSOR);
+ goto yy734;
+yy734:
+ YYDEBUG(734, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy632;
- goto yy631;
-yy655:
- YYDEBUG(655, *YYCURSOR);
+ if(yych <= 0x1F){
+ if(yych <= 0x00) goto yy710;
+ if(yych == 0x09) goto yy710;
+ goto yy53;
+ } else {
+ if(yych <= ' ') goto yy710;
+ if(yych != '.') goto yy53;
+ goto yy735;
+ }
+yy735:
+ YYDEBUG(735, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy656;
+ if(yych <= 0x09){
+ if(yych <= 0x00) goto yy710;
+ if(yych <= 0x08) goto yy53;
+ goto yy710;
+ } else {
+ if(yych == ' ') goto yy710;
+ goto yy53;
+ }
+yy736:
+ YYDEBUG(736, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'V') goto yy737;
if(yych != 'v') goto yy53;
- goto yy656;
-yy656:
- YYDEBUG(656, *YYCURSOR);
+ goto yy737;
+yy737:
+ YYDEBUG(737, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych != 0x09) goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy661;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy661;
- goto yy620;
+ if(yych <= 'E') goto yy742;
+ if(yych == 'e') goto yy742;
+ goto yy698;
}
}
-yy657:
- YYDEBUG(657, *YYCURSOR);
+yy738:
+ YYDEBUG(738, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 4) YYFILL(4);
yych = *YYCURSOR;
- goto yy658;
-yy658:
- YYDEBUG(658, *YYCURSOR);
- if(yych <= 0x1F) goto yy53;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy53;
- if(yych >= ':') goto yy53;
- goto yy659;
-yy659:
- YYDEBUG(659, *YYCURSOR);
+ goto yy739;
+yy739:
+ YYDEBUG(739, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy738;
+ if(yych <= 0x1F) goto yy53;
+ goto yy738;
+ } else {
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy740;
+ }
+ }
+yy740:
+ YYDEBUG(740, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy660;
- if(yych <= '9') goto yy666;
- goto yy660;
-yy660:
- YYDEBUG(660, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy741;
+ if(yych <= '9') goto yy747;
+ goto yy741;
+yy741:
+ YYDEBUG(741, *YYCURSOR);
-#line 1072 "ext/date/lib/parse_date.re"
+#line 1098 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datefull");
TIMELIB_INIT;
@@ -10163,642 +13528,795 @@ yy660:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL;
}
-#line 8828 "ext/date/lib/parse_date.c"
-yy661:
- YYDEBUG(661, *YYCURSOR);
+#line 12034 "ext/date/lib/parse_date.c"
+yy742:
+ YYDEBUG(742, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy662;
+ if(yych == 'M') goto yy743;
if(yych != 'm') goto yy53;
- goto yy662;
-yy662:
- YYDEBUG(662, *YYCURSOR);
+ goto yy743;
+yy743:
+ YYDEBUG(743, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy663;
+ if(yych == 'B') goto yy744;
if(yych != 'b') goto yy53;
- goto yy663;
-yy663:
- YYDEBUG(663, *YYCURSOR);
+ goto yy744;
+yy744:
+ YYDEBUG(744, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy664;
+ if(yych == 'E') goto yy745;
if(yych != 'e') goto yy53;
- goto yy664;
-yy664:
- YYDEBUG(664, *YYCURSOR);
+ goto yy745;
+yy745:
+ YYDEBUG(745, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
+ if(yych == 'R') goto yy746;
if(yych != 'r') goto yy53;
- goto yy665;
-yy665:
- YYDEBUG(665, *YYCURSOR);
+ goto yy746;
+yy746:
+ YYDEBUG(746, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
-yy666:
- YYDEBUG(666, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy738;
+ if(yych <= 0x1F) goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= '.'){
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
+ }
+ }
+yy747:
+ YYDEBUG(747, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych >= ':') goto yy660;
- goto yy667;
-yy667:
- YYDEBUG(667, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych >= ':') goto yy741;
+ goto yy748;
+yy748:
+ YYDEBUG(748, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych >= ':') goto yy660;
- goto yy668;
-yy668:
- YYDEBUG(668, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych >= ':') goto yy741;
+ goto yy749;
+yy749:
+ YYDEBUG(749, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy660;
-yy669:
- YYDEBUG(669, *YYCURSOR);
+ goto yy741;
+yy750:
+ YYDEBUG(750, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy670;
+ if(yych == 'T') goto yy751;
if(yych != 't') goto yy53;
- goto yy670;
-yy670:
- YYDEBUG(670, *YYCURSOR);
+ goto yy751;
+yy751:
+ YYDEBUG(751, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'O'){
- if(yych <= 'N') goto yy620;
- goto yy671;
+ if(yych <= 'N'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'o') goto yy620;
- goto yy671;
+ if(yych <= 'O') goto yy752;
+ if(yych != 'o') goto yy698;
+ goto yy752;
}
}
-yy671:
- YYDEBUG(671, *YYCURSOR);
+yy752:
+ YYDEBUG(752, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy672;
+ if(yych == 'B') goto yy753;
if(yych != 'b') goto yy53;
- goto yy672;
-yy672:
- YYDEBUG(672, *YYCURSOR);
+ goto yy753;
+yy753:
+ YYDEBUG(753, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy673;
+ if(yych == 'E') goto yy754;
if(yych != 'e') goto yy53;
- goto yy673;
-yy673:
- YYDEBUG(673, *YYCURSOR);
+ goto yy754;
+yy754:
+ YYDEBUG(754, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy674:
- YYDEBUG(674, *YYCURSOR);
+yy755:
+ YYDEBUG(755, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy678;
- if(yych == 'g') goto yy678;
+ if(yych == 'G') goto yy759;
+ if(yych == 'g') goto yy759;
goto yy53;
-yy675:
- YYDEBUG(675, *YYCURSOR);
+yy756:
+ YYDEBUG(756, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy676;
+ if(yych == 'R') goto yy757;
if(yych != 'r') goto yy53;
- goto yy676;
-yy676:
- YYDEBUG(676, *YYCURSOR);
+ goto yy757;
+yy757:
+ YYDEBUG(757, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'I'){
- if(yych <= 'H') goto yy620;
- goto yy677;
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'i') goto yy620;
- goto yy677;
+ if(yych <= 'I') goto yy758;
+ if(yych != 'i') goto yy698;
+ goto yy758;
}
}
-yy677:
- YYDEBUG(677, *YYCURSOR);
+yy758:
+ YYDEBUG(758, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'L') goto yy665;
- if(yych == 'l') goto yy665;
+ if(yych == 'L') goto yy746;
+ if(yych == 'l') goto yy746;
goto yy53;
-yy678:
- YYDEBUG(678, *YYCURSOR);
+yy759:
+ YYDEBUG(759, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'U'){
- if(yych <= 'T') goto yy620;
- goto yy679;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'u') goto yy620;
- goto yy679;
+ if(yych <= 'U') goto yy760;
+ if(yych != 'u') goto yy698;
+ goto yy760;
}
}
-yy679:
- YYDEBUG(679, *YYCURSOR);
+yy760:
+ YYDEBUG(760, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy680;
+ if(yych == 'S') goto yy761;
if(yych != 's') goto yy53;
- goto yy680;
-yy680:
- YYDEBUG(680, *YYCURSOR);
+ goto yy761;
+yy761:
+ YYDEBUG(761, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy665;
- if(yych == 't') goto yy665;
+ if(yych == 'T') goto yy746;
+ if(yych == 't') goto yy746;
goto yy53;
-yy681:
- YYDEBUG(681, *YYCURSOR);
+yy762:
+ YYDEBUG(762, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy688;
+ if(yych == 'L') goto yy769;
if(yych <= 'M') goto yy53;
- goto yy687;
+ goto yy768;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy688;
+ goto yy769;
} else {
- if(yych == 'n') goto yy687;
+ if(yych == 'n') goto yy768;
goto yy53;
}
}
-yy682:
- YYDEBUG(682, *YYCURSOR);
+yy763:
+ YYDEBUG(763, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy683;
+ if(yych == 'N') goto yy764;
if(yych != 'n') goto yy53;
- goto yy683;
-yy683:
- YYDEBUG(683, *YYCURSOR);
+ goto yy764;
+yy764:
+ YYDEBUG(764, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'U'){
- if(yych <= 'T') goto yy620;
- goto yy684;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'u') goto yy620;
- goto yy684;
+ if(yych <= 'U') goto yy765;
+ if(yych != 'u') goto yy698;
+ goto yy765;
}
}
-yy684:
- YYDEBUG(684, *YYCURSOR);
+yy765:
+ YYDEBUG(765, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy685;
+ if(yych == 'A') goto yy766;
if(yych != 'a') goto yy53;
- goto yy685;
-yy685:
- YYDEBUG(685, *YYCURSOR);
+ goto yy766;
+yy766:
+ YYDEBUG(766, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy686;
+ if(yych == 'R') goto yy767;
if(yych != 'r') goto yy53;
- goto yy686;
-yy686:
- YYDEBUG(686, *YYCURSOR);
+ goto yy767;
+yy767:
+ YYDEBUG(767, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy665;
- if(yych == 'y') goto yy665;
+ if(yych == 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
goto yy53;
-yy687:
- YYDEBUG(687, *YYCURSOR);
+yy768:
+ YYDEBUG(768, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy665;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy665;
- goto yy620;
+ if(yych <= 'E') goto yy746;
+ if(yych == 'e') goto yy746;
+ goto yy698;
}
}
-yy688:
- YYDEBUG(688, *YYCURSOR);
+yy769:
+ YYDEBUG(769, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'Y'){
- if(yych <= 'X') goto yy620;
- goto yy665;
+ if(yych <= 'X'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'y') goto yy665;
- goto yy620;
+ if(yych <= 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
+ goto yy698;
}
}
-yy689:
- YYDEBUG(689, *YYCURSOR);
+yy770:
+ YYDEBUG(770, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy690:
- YYDEBUG(690, *YYCURSOR);
+yy771:
+ YYDEBUG(771, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych != 'I') goto yy620;
- goto yy691;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych != 'I') goto yy698;
+ goto yy772;
+ }
}
-yy691:
- YYDEBUG(691, *YYCURSOR);
+yy772:
+ YYDEBUG(772, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy692:
- YYDEBUG(692, *YYCURSOR);
+yy773:
+ YYDEBUG(773, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '9') goto yy659;
- if(yych == 'I') goto yy665;
- goto yy620;
+ if(yych <= '9'){
+ if(yych <= '.') goto yy738;
+ if(yych <= '/') goto yy698;
+ goto yy740;
+ } else {
+ if(yych == 'I') goto yy746;
+ goto yy698;
+ }
}
-yy693:
- YYDEBUG(693, *YYCURSOR);
+yy774:
+ YYDEBUG(774, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
} else {
- if(yych <= '9') goto yy733;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy818;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy694:
- YYDEBUG(694, *YYCURSOR);
+yy775:
+ YYDEBUG(775, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ if(yych <= '.') goto yy808;
+ goto yy713;
} else {
- if(yych <= '2') goto yy733;
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '2') goto yy818;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy695:
- YYDEBUG(695, *YYCURSOR);
+yy776:
+ YYDEBUG(776, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy724;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
} else {
- if(yych <= '9') goto yy649;
- if(yych <= ':') goto yy636;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy729;
+ if(yych <= ':') goto yy715;
+ goto yy713;
}
-yy696:
- YYDEBUG(696, *YYCURSOR);
+yy777:
+ YYDEBUG(777, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy724;
- if(yych == ':') goto yy636;
- goto yy634;
-yy697:
- YYDEBUG(697, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy808;
+ } else {
+ if(yych == ':') goto yy715;
+ goto yy713;
+ }
+yy778:
+ YYDEBUG(778, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy718;
- if(yych == 'e') goto yy718;
+ if(yych == 'E') goto yy801;
+ if(yych == 'e') goto yy801;
goto yy53;
-yy698:
- YYDEBUG(698, *YYCURSOR);
+yy779:
+ YYDEBUG(779, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy715;
- if(yych == 'a') goto yy715;
+ if(yych == 'A') goto yy798;
+ if(yych == 'a') goto yy798;
goto yy53;
-yy699:
- YYDEBUG(699, *YYCURSOR);
+yy780:
+ YYDEBUG(780, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy675;
+ if(yych == 'P') goto yy756;
if(yych <= 'T') goto yy53;
- goto yy674;
+ goto yy755;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy675;
+ goto yy756;
} else {
- if(yych == 'u') goto yy674;
+ if(yych == 'u') goto yy755;
goto yy53;
}
}
-yy700:
- YYDEBUG(700, *YYCURSOR);
+yy781:
+ YYDEBUG(781, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy708;
- if(yych == 'e') goto yy708;
+ if(yych == 'E') goto yy791;
+ if(yych == 'e') goto yy791;
goto yy53;
-yy701:
- YYDEBUG(701, *YYCURSOR);
+yy782:
+ YYDEBUG(782, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy702;
- if(yych != 'e') goto yy53;
- goto yy702;
-yy702:
- YYDEBUG(702, *YYCURSOR);
+ if(yych == 'E') goto yy785;
+ if(yych == 'e') goto yy785;
+ goto yy53;
+yy783:
+ YYDEBUG(783, *YYCURSOR);
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
+ yych = *YYCURSOR;
+ goto yy784;
+yy784:
+ YYDEBUG(784, *YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case '-':
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy780;
+ case 'D': case 'd': goto yy782;
+ case 'F': case 'f': goto yy778;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy779;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'S': case 's': goto yy781;
+ case 'V': goto yy699;
+ case 'X': goto yy700;
+ default: goto yy53;
+ }
+yy785:
+ YYDEBUG(785, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy703;
+ if(yych == 'C') goto yy786;
if(yych != 'c') goto yy53;
- goto yy703;
-yy703:
- YYDEBUG(703, *YYCURSOR);
+ goto yy786;
+yy786:
+ YYDEBUG(786, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy704;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'e') goto yy620;
- goto yy704;
+ if(yych <= 'E') goto yy787;
+ if(yych != 'e') goto yy698;
+ goto yy787;
}
}
-yy704:
- YYDEBUG(704, *YYCURSOR);
+yy787:
+ YYDEBUG(787, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy705;
+ if(yych == 'M') goto yy788;
if(yych != 'm') goto yy53;
- goto yy705;
-yy705:
- YYDEBUG(705, *YYCURSOR);
+ goto yy788;
+yy788:
+ YYDEBUG(788, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy706;
+ if(yych == 'B') goto yy789;
if(yych != 'b') goto yy53;
- goto yy706;
-yy706:
- YYDEBUG(706, *YYCURSOR);
+ goto yy789;
+yy789:
+ YYDEBUG(789, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy707;
+ if(yych == 'E') goto yy790;
if(yych != 'e') goto yy53;
- goto yy707;
-yy707:
- YYDEBUG(707, *YYCURSOR);
+ goto yy790;
+yy790:
+ YYDEBUG(790, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy708:
- YYDEBUG(708, *YYCURSOR);
+yy791:
+ YYDEBUG(791, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy709;
+ if(yych == 'P') goto yy792;
if(yych != 'p') goto yy53;
- goto yy709;
-yy709:
- YYDEBUG(709, *YYCURSOR);
+ goto yy792;
+yy792:
+ YYDEBUG(792, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'T'){
- if(yych <= 'S') goto yy620;
- goto yy710;
+ if(yych <= 'S'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 't') goto yy620;
- goto yy710;
+ if(yych <= 'T') goto yy793;
+ if(yych != 't') goto yy698;
+ goto yy793;
}
}
-yy710:
- YYDEBUG(710, *YYCURSOR);
+yy793:
+ YYDEBUG(793, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'E'){
- if(yych <= 'D') goto yy620;
- goto yy711;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'e') goto yy620;
- goto yy711;
+ if(yych <= 'E') goto yy794;
+ if(yych != 'e') goto yy698;
+ goto yy794;
}
}
-yy711:
- YYDEBUG(711, *YYCURSOR);
+yy794:
+ YYDEBUG(794, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy712;
+ if(yych == 'M') goto yy795;
if(yych != 'm') goto yy53;
- goto yy712;
-yy712:
- YYDEBUG(712, *YYCURSOR);
+ goto yy795;
+yy795:
+ YYDEBUG(795, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy713;
+ if(yych == 'B') goto yy796;
if(yych != 'b') goto yy53;
- goto yy713;
-yy713:
- YYDEBUG(713, *YYCURSOR);
+ goto yy796;
+yy796:
+ YYDEBUG(796, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy714;
+ if(yych == 'E') goto yy797;
if(yych != 'e') goto yy53;
- goto yy714;
-yy714:
- YYDEBUG(714, *YYCURSOR);
+ goto yy797;
+yy797:
+ YYDEBUG(797, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy665;
- if(yych == 'r') goto yy665;
+ if(yych == 'R') goto yy746;
+ if(yych == 'r') goto yy746;
goto yy53;
-yy715:
- YYDEBUG(715, *YYCURSOR);
+yy798:
+ YYDEBUG(798, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy716;
+ if(yych == 'R') goto yy799;
if(yych <= 'X') goto yy53;
- goto yy665;
+ goto yy746;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy716;
+ goto yy799;
} else {
- if(yych == 'y') goto yy665;
+ if(yych == 'y') goto yy746;
goto yy53;
}
}
-yy716:
- YYDEBUG(716, *YYCURSOR);
+yy799:
+ YYDEBUG(799, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'C'){
- if(yych <= 'B') goto yy620;
- goto yy717;
+ if(yych <= 'B'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'c') goto yy620;
- goto yy717;
+ if(yych <= 'C') goto yy800;
+ if(yych != 'c') goto yy698;
+ goto yy800;
}
}
-yy717:
- YYDEBUG(717, *YYCURSOR);
+yy800:
+ YYDEBUG(800, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy665;
- if(yych == 'h') goto yy665;
+ if(yych == 'H') goto yy746;
+ if(yych == 'h') goto yy746;
goto yy53;
-yy718:
- YYDEBUG(718, *YYCURSOR);
+yy801:
+ YYDEBUG(801, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy719;
+ if(yych == 'B') goto yy802;
if(yych != 'b') goto yy53;
- goto yy719;
-yy719:
- YYDEBUG(719, *YYCURSOR);
+ goto yy802;
+yy802:
+ YYDEBUG(802, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- goto yy659;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
+ } else {
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ goto yy738;
+ }
} else {
- if(yych <= 'R'){
- if(yych <= 'Q') goto yy620;
- goto yy720;
+ if(yych <= 'Q'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 'r') goto yy620;
- goto yy720;
+ if(yych <= 'R') goto yy803;
+ if(yych != 'r') goto yy698;
+ goto yy803;
}
}
-yy720:
- YYDEBUG(720, *YYCURSOR);
+yy803:
+ YYDEBUG(803, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy721;
+ if(yych == 'U') goto yy804;
if(yych != 'u') goto yy53;
- goto yy721;
-yy721:
- YYDEBUG(721, *YYCURSOR);
+ goto yy804;
+yy804:
+ YYDEBUG(804, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy722;
+ if(yych == 'A') goto yy805;
if(yych != 'a') goto yy53;
- goto yy722;
-yy722:
- YYDEBUG(722, *YYCURSOR);
+ goto yy805;
+yy805:
+ YYDEBUG(805, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy723;
+ if(yych == 'R') goto yy806;
if(yych != 'r') goto yy53;
- goto yy723;
-yy723:
- YYDEBUG(723, *YYCURSOR);
+ goto yy806;
+yy806:
+ YYDEBUG(806, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy665;
- if(yych == 'y') goto yy665;
+ if(yych == 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
goto yy53;
-yy724:
- YYDEBUG(724, *YYCURSOR);
+yy807:
+ YYDEBUG(807, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy725;
- if(yych <= '6') goto yy726;
- if(yych <= '9') goto yy727;
+ if(yych <= '9') goto yy817;
goto yy53;
-yy725:
- YYDEBUG(725, *YYCURSOR);
+yy808:
+ YYDEBUG(808, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '5') goto yy809;
+ if(yych <= '6') goto yy810;
+ if(yych <= '9') goto yy811;
+ goto yy53;
+yy809:
+ YYDEBUG(809, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy732;
- goto yy634;
-yy726:
- YYDEBUG(726, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy816;
+ goto yy713;
+yy810:
+ YYDEBUG(810, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy640;
- goto yy634;
+ if(yych == '.') goto yy719;
+ goto yy713;
} else {
- if(yych <= '0') goto yy732;
- if(yych <= '9') goto yy728;
- goto yy634;
+ if(yych <= '0') goto yy816;
+ if(yych <= '9') goto yy812;
+ goto yy713;
}
-yy727:
- YYDEBUG(727, *YYCURSOR);
+yy811:
+ YYDEBUG(811, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych >= ':') goto yy634;
- goto yy728;
-yy728:
- YYDEBUG(728, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych >= ':') goto yy713;
+ goto yy812;
+yy812:
+ YYDEBUG(812, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy729;
- if(yych <= '9') goto yy730;
- goto yy729;
-yy729:
- YYDEBUG(729, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy813;
+ if(yych <= '9') goto yy814;
+ goto yy813;
+yy813:
+ YYDEBUG(813, *YYCURSOR);
-#line 1086 "ext/date/lib/parse_date.re"
+#line 1112 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pointed date");
TIMELIB_INIT;
@@ -10810,588 +14328,652 @@ yy729:
TIMELIB_DEINIT;
return TIMELIB_DATE_FULL_POINTED;
}
-#line 9337 "ext/date/lib/parse_date.c"
-yy730:
- YYDEBUG(730, *YYCURSOR);
+#line 12689 "ext/date/lib/parse_date.c"
+yy814:
+ YYDEBUG(814, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy729;
- if(yych >= ':') goto yy729;
- goto yy731;
-yy731:
- YYDEBUG(731, *YYCURSOR);
+ if(yych <= '/') goto yy813;
+ if(yych >= ':') goto yy813;
+ goto yy815;
+yy815:
+ YYDEBUG(815, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy729;
-yy732:
- YYDEBUG(732, *YYCURSOR);
+ goto yy813;
+yy816:
+ YYDEBUG(816, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych == ' ') goto yy644;
- goto yy634;
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy723;
+ if(yych <= 0x1F) goto yy713;
+ goto yy723;
} else {
- if(yych <= '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy730;
- goto yy634;
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ goto yy814;
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy646;
- if(yych == 'P') goto yy646;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy725;
+ if(yych <= 'O') goto yy713;
+ goto yy725;
} else {
- if(yych <= 'a') goto yy646;
- if(yych == 'p') goto yy646;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy725;
+ } else {
+ if(yych == 'p') goto yy725;
+ goto yy713;
+ }
}
}
-yy733:
- YYDEBUG(733, *YYCURSOR);
+yy817:
+ YYDEBUG(817, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy813;
+ if(yych <= '9') goto yy812;
+ goto yy813;
+yy818:
+ YYDEBUG(818, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= '-'){
- if(yych == ' ') goto yy650;
- goto yy634;
+ if(yych <= ':'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy730;
+ if(yych <= 0x1F) goto yy713;
+ goto yy730;
} else {
- if(yych <= '.') goto yy724;
- if(yych == ':') goto yy636;
- goto yy634;
+ if(yych <= '-'){
+ if(yych <= ',') goto yy713;
+ goto yy807;
+ } else {
+ if(yych <= '.') goto yy808;
+ if(yych <= '9') goto yy713;
+ goto yy715;
+ }
}
} else {
- if(yych <= '`'){
- if(yych <= 'A') goto yy652;
- if(yych == 'P') goto yy652;
- goto yy634;
+ if(yych <= 'P'){
+ if(yych == 'A') goto yy732;
+ if(yych <= 'O') goto yy713;
+ goto yy732;
} else {
- if(yych <= 'a') goto yy652;
- if(yych == 'p') goto yy652;
- goto yy634;
+ if(yych <= 'a'){
+ if(yych <= '`') goto yy713;
+ goto yy732;
+ } else {
+ if(yych == 'p') goto yy732;
+ goto yy713;
+ }
}
}
-yy734:
- YYDEBUG(734, *YYCURSOR);
+yy819:
+ YYDEBUG(819, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
- if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy736;
- goto yy53;
-yy735:
- YYDEBUG(735, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ goto yy807;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy821;
+ goto yy53;
+ }
+yy820:
+ YYDEBUG(820, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
- if(yych <= '/') goto yy53;
- if(yych >= '3') goto yy53;
- goto yy736;
-yy736:
- YYDEBUG(736, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ goto yy807;
+ } else {
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy821;
+ }
+yy821:
+ YYDEBUG(821, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy773;
+ if(yych <= ',') goto yy53;
+ if(yych <= '-') goto yy858;
+ if(yych <= '.') goto yy807;
goto yy53;
-yy737:
- YYDEBUG(737, *YYCURSOR);
+yy822:
+ YYDEBUG(822, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy769;
+ if(yych == 'A') goto yy854;
if(yych <= 'T') goto yy53;
- goto yy768;
+ goto yy853;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy769;
+ goto yy854;
} else {
- if(yych == 'u') goto yy768;
+ if(yych == 'u') goto yy853;
goto yy53;
}
}
-yy738:
- YYDEBUG(738, *YYCURSOR);
+yy823:
+ YYDEBUG(823, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy766;
- if(yych == 'e') goto yy766;
+ if(yych == 'E') goto yy851;
+ if(yych == 'e') goto yy851;
goto yy53;
-yy739:
- YYDEBUG(739, *YYCURSOR);
+yy824:
+ YYDEBUG(824, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy763;
- if(yych == 'a') goto yy763;
+ if(yych == 'A') goto yy848;
+ if(yych == 'a') goto yy848;
goto yy53;
-yy740:
- YYDEBUG(740, *YYCURSOR);
+yy825:
+ YYDEBUG(825, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy760;
+ if(yych == 'P') goto yy845;
if(yych <= 'T') goto yy53;
- goto yy759;
+ goto yy844;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy760;
+ goto yy845;
} else {
- if(yych == 'u') goto yy759;
+ if(yych == 'u') goto yy844;
goto yy53;
}
}
-yy741:
- YYDEBUG(741, *YYCURSOR);
+yy826:
+ YYDEBUG(826, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy756;
- if(yych == 'e') goto yy756;
+ if(yych == 'E') goto yy841;
+ if(yych == 'e') goto yy841;
goto yy53;
-yy742:
- YYDEBUG(742, *YYCURSOR);
+yy827:
+ YYDEBUG(827, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy754;
- if(yych == 'c') goto yy754;
+ if(yych == 'C') goto yy839;
+ if(yych == 'c') goto yy839;
goto yy53;
-yy743:
- YYDEBUG(743, *YYCURSOR);
+yy828:
+ YYDEBUG(828, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy752;
- if(yych == 'o') goto yy752;
+ if(yych == 'O') goto yy837;
+ if(yych == 'o') goto yy837;
goto yy53;
-yy744:
- YYDEBUG(744, *YYCURSOR);
+yy829:
+ YYDEBUG(829, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy745;
+ if(yych == 'E') goto yy830;
if(yych != 'e') goto yy53;
- goto yy745;
-yy745:
- YYDEBUG(745, *YYCURSOR);
+ goto yy830;
+yy830:
+ YYDEBUG(830, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy746;
+ if(yych == 'C') goto yy831;
if(yych != 'c') goto yy53;
- goto yy746;
-yy746:
- YYDEBUG(746, *YYCURSOR);
+ goto yy831;
+yy831:
+ YYDEBUG(831, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych >= '.') goto yy738;
+ goto yy832;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy704;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy704;
- goto yy620;
+ if(yych <= 'E') goto yy787;
+ if(yych == 'e') goto yy787;
+ goto yy698;
}
}
-yy747:
- YYDEBUG(747, *YYCURSOR);
+yy832:
+ YYDEBUG(832, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy658;
- if(yych <= '0') goto yy748;
- if(yych <= '2') goto yy749;
- if(yych <= '3') goto yy750;
- goto yy658;
-yy748:
- YYDEBUG(748, *YYCURSOR);
+ if(yych <= '/') goto yy739;
+ if(yych <= '0') goto yy833;
+ if(yych <= '2') goto yy834;
+ if(yych <= '3') goto yy835;
+ goto yy739;
+yy833:
+ YYDEBUG(833, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '0') goto yy666;
- if(yych <= '9') goto yy751;
- goto yy660;
-yy749:
- YYDEBUG(749, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '0') goto yy747;
+ if(yych <= '9') goto yy836;
+ goto yy741;
+yy834:
+ YYDEBUG(834, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '9') goto yy751;
- goto yy660;
-yy750:
- YYDEBUG(750, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '9') goto yy836;
+ goto yy741;
+yy835:
+ YYDEBUG(835, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '1') goto yy751;
- if(yych <= '9') goto yy666;
- goto yy660;
-yy751:
- YYDEBUG(751, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '1') goto yy836;
+ if(yych <= '9') goto yy747;
+ goto yy741;
+yy836:
+ YYDEBUG(836, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy660;
- if(yych <= '9') goto yy667;
- goto yy660;
-yy752:
- YYDEBUG(752, *YYCURSOR);
+ if(yych <= '/') goto yy741;
+ if(yych <= '9') goto yy748;
+ goto yy741;
+yy837:
+ YYDEBUG(837, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy753;
+ if(yych == 'V') goto yy838;
if(yych != 'v') goto yy53;
- goto yy753;
-yy753:
- YYDEBUG(753, *YYCURSOR);
+ goto yy838;
+yy838:
+ YYDEBUG(838, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy661;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy661;
- goto yy620;
+ if(yych <= 'E') goto yy742;
+ if(yych == 'e') goto yy742;
+ goto yy698;
}
}
-yy754:
- YYDEBUG(754, *YYCURSOR);
+yy839:
+ YYDEBUG(839, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy755;
+ if(yych == 'T') goto yy840;
if(yych != 't') goto yy53;
- goto yy755;
-yy755:
- YYDEBUG(755, *YYCURSOR);
+ goto yy840;
+yy840:
+ YYDEBUG(840, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'O'){
- if(yych <= '9') goto yy659;
- if(yych <= 'N') goto yy620;
- goto yy671;
+ if(yych <= 'N'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'o') goto yy671;
- goto yy620;
+ if(yych <= 'O') goto yy752;
+ if(yych == 'o') goto yy752;
+ goto yy698;
}
}
-yy756:
- YYDEBUG(756, *YYCURSOR);
+yy841:
+ YYDEBUG(841, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy757;
+ if(yych == 'P') goto yy842;
if(yych != 'p') goto yy53;
- goto yy757;
-yy757:
- YYDEBUG(757, *YYCURSOR);
+ goto yy842;
+yy842:
+ YYDEBUG(842, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'T'){
- if(yych <= '9') goto yy659;
- if(yych <= 'S') goto yy620;
- goto yy758;
+ if(yych <= 'S'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych != 't') goto yy620;
- goto yy758;
+ if(yych <= 'T') goto yy843;
+ if(yych != 't') goto yy698;
+ goto yy843;
}
}
-yy758:
- YYDEBUG(758, *YYCURSOR);
+yy843:
+ YYDEBUG(843, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy711;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy711;
- goto yy620;
+ if(yych <= 'E') goto yy794;
+ if(yych == 'e') goto yy794;
+ goto yy698;
}
}
-yy759:
- YYDEBUG(759, *YYCURSOR);
+yy844:
+ YYDEBUG(844, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy762;
- if(yych == 'g') goto yy762;
+ if(yych == 'G') goto yy847;
+ if(yych == 'g') goto yy847;
goto yy53;
-yy760:
- YYDEBUG(760, *YYCURSOR);
+yy845:
+ YYDEBUG(845, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy761;
+ if(yych == 'R') goto yy846;
if(yych != 'r') goto yy53;
- goto yy761;
-yy761:
- YYDEBUG(761, *YYCURSOR);
+ goto yy846;
+yy846:
+ YYDEBUG(846, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'I'){
- if(yych <= '9') goto yy659;
- if(yych <= 'H') goto yy620;
- goto yy677;
+ if(yych <= 'H'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'i') goto yy677;
- goto yy620;
+ if(yych <= 'I') goto yy758;
+ if(yych == 'i') goto yy758;
+ goto yy698;
}
}
-yy762:
- YYDEBUG(762, *YYCURSOR);
+yy847:
+ YYDEBUG(847, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'U'){
- if(yych <= '9') goto yy659;
- if(yych <= 'T') goto yy620;
- goto yy679;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'u') goto yy679;
- goto yy620;
+ if(yych <= 'U') goto yy760;
+ if(yych == 'u') goto yy760;
+ goto yy698;
}
}
-yy763:
- YYDEBUG(763, *YYCURSOR);
+yy848:
+ YYDEBUG(848, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy764;
+ if(yych == 'R') goto yy849;
if(yych <= 'X') goto yy53;
- goto yy765;
+ goto yy850;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy764;
+ goto yy849;
} else {
- if(yych == 'y') goto yy765;
+ if(yych == 'y') goto yy850;
goto yy53;
}
}
-yy764:
- YYDEBUG(764, *YYCURSOR);
+yy849:
+ YYDEBUG(849, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'C'){
- if(yych <= '9') goto yy659;
- if(yych <= 'B') goto yy620;
- goto yy717;
+ if(yych <= 'B'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'c') goto yy717;
- goto yy620;
+ if(yych <= 'C') goto yy800;
+ if(yych == 'c') goto yy800;
+ goto yy698;
}
}
-yy765:
- YYDEBUG(765, *YYCURSOR);
+yy850:
+ YYDEBUG(850, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '-'){
- if(yych <= 0x1F) goto yy620;
- if(yych <= ',') goto yy657;
- goto yy747;
+ if(yych <= ','){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy698;
+ goto yy738;
+ } else {
+ if(yych == ' ') goto yy738;
+ goto yy698;
+ }
} else {
- if(yych <= '.') goto yy657;
- if(yych <= '/') goto yy620;
- if(yych <= '9') goto yy659;
- goto yy620;
+ if(yych <= '.'){
+ if(yych <= '-') goto yy832;
+ goto yy738;
+ } else {
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
+ }
}
-yy766:
- YYDEBUG(766, *YYCURSOR);
+yy851:
+ YYDEBUG(851, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy767;
+ if(yych == 'B') goto yy852;
if(yych != 'b') goto yy53;
- goto yy767;
-yy767:
- YYDEBUG(767, *YYCURSOR);
+ goto yy852;
+yy852:
+ YYDEBUG(852, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'R'){
- if(yych <= '9') goto yy659;
- if(yych <= 'Q') goto yy620;
- goto yy720;
+ if(yych <= 'Q'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'r') goto yy720;
- goto yy620;
+ if(yych <= 'R') goto yy803;
+ if(yych == 'r') goto yy803;
+ goto yy698;
}
}
-yy768:
- YYDEBUG(768, *YYCURSOR);
+yy853:
+ YYDEBUG(853, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy772;
+ if(yych == 'L') goto yy857;
if(yych <= 'M') goto yy53;
- goto yy771;
+ goto yy856;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy772;
+ goto yy857;
} else {
- if(yych == 'n') goto yy771;
+ if(yych == 'n') goto yy856;
goto yy53;
}
}
-yy769:
- YYDEBUG(769, *YYCURSOR);
+yy854:
+ YYDEBUG(854, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy770;
+ if(yych == 'N') goto yy855;
if(yych != 'n') goto yy53;
- goto yy770;
-yy770:
- YYDEBUG(770, *YYCURSOR);
+ goto yy855;
+yy855:
+ YYDEBUG(855, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'U'){
- if(yych <= '9') goto yy659;
- if(yych <= 'T') goto yy620;
- goto yy684;
+ if(yych <= 'T'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'u') goto yy684;
- goto yy620;
+ if(yych <= 'U') goto yy765;
+ if(yych == 'u') goto yy765;
+ goto yy698;
}
}
-yy771:
- YYDEBUG(771, *YYCURSOR);
+yy856:
+ YYDEBUG(856, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'E'){
- if(yych <= '9') goto yy659;
- if(yych <= 'D') goto yy620;
- goto yy665;
+ if(yych <= 'D'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'e') goto yy665;
- goto yy620;
+ if(yych <= 'E') goto yy746;
+ if(yych == 'e') goto yy746;
+ goto yy698;
}
}
-yy772:
- YYDEBUG(772, *YYCURSOR);
+yy857:
+ YYDEBUG(857, *YYCURSOR);
yyaccept = 10;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy620;
- goto yy657;
+ if(yych <= '.'){
+ if(yych <= 0x1F){
+ if(yych == 0x09) goto yy738;
+ goto yy698;
} else {
- if(yych <= '-') goto yy747;
- if(yych <= '.') goto yy657;
- goto yy620;
+ if(yych <= ' ') goto yy738;
+ if(yych <= ',') goto yy698;
+ if(yych <= '-') goto yy832;
+ goto yy738;
}
} else {
- if(yych <= 'Y'){
- if(yych <= '9') goto yy659;
- if(yych <= 'X') goto yy620;
- goto yy665;
+ if(yych <= 'X'){
+ if(yych <= '/') goto yy698;
+ if(yych <= '9') goto yy740;
+ goto yy698;
} else {
- if(yych == 'y') goto yy665;
- goto yy620;
+ if(yych <= 'Y') goto yy746;
+ if(yych == 'y') goto yy746;
+ goto yy698;
}
}
-yy773:
- YYDEBUG(773, *YYCURSOR);
+yy858:
+ YYDEBUG(858, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy774;
- if(yych <= '3') goto yy776;
- if(yych <= '9') goto yy777;
+ if(yych <= '2') goto yy859;
+ if(yych <= '3') goto yy861;
+ if(yych <= '9') goto yy862;
goto yy53;
-yy774:
- YYDEBUG(774, *YYCURSOR);
+yy859:
+ YYDEBUG(859, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy775;
- if(yych <= '9') goto yy777;
- if(yych >= 'n') goto yy779;
- goto yy775;
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy868;
+ if(yych >= 'n') goto yy864;
+ goto yy860;
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy780;
- goto yy775;
+ if(yych >= 'r') goto yy865;
+ goto yy860;
} else {
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
}
}
-yy775:
- YYDEBUG(775, *YYCURSOR);
+yy860:
+ YYDEBUG(860, *YYCURSOR);
-#line 1059 "ext/date/lib/parse_date.re"
+#line 1085 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("gnudateshort");
TIMELIB_INIT;
@@ -11403,90 +14985,119 @@ yy775:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 9838 "ext/date/lib/parse_date.c"
-yy776:
- YYDEBUG(776, *YYCURSOR);
+#line 13252 "ext/date/lib/parse_date.c"
+yy861:
+ YYDEBUG(861, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy775;
- if(yych <= '1') goto yy777;
- if(yych <= 'm') goto yy775;
- goto yy779;
+ if(yych <= '1'){
+ if(yych <= '/') goto yy860;
+ goto yy868;
+ } else {
+ if(yych <= '9') goto yy812;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ }
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy775;
- goto yy780;
+ if(yych <= 'q') goto yy860;
+ goto yy865;
} else {
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
}
}
-yy777:
- YYDEBUG(777, *YYCURSOR);
+yy862:
+ YYDEBUG(862, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'q'){
- if(yych == 'n') goto yy779;
- goto yy775;
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy812;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
} else {
- if(yych <= 'r') goto yy780;
- if(yych <= 's') goto yy778;
- if(yych <= 't') goto yy781;
- goto yy775;
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
}
-yy778:
- YYDEBUG(778, *YYCURSOR);
+yy863:
+ YYDEBUG(863, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy782;
+ if(yych == 't') goto yy867;
goto yy53;
-yy779:
- YYDEBUG(779, *YYCURSOR);
+yy864:
+ YYDEBUG(864, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy782;
+ if(yych == 'd') goto yy867;
goto yy53;
-yy780:
- YYDEBUG(780, *YYCURSOR);
+yy865:
+ YYDEBUG(865, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy782;
+ if(yych == 'd') goto yy867;
goto yy53;
-yy781:
- YYDEBUG(781, *YYCURSOR);
+yy866:
+ YYDEBUG(866, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != 'h') goto yy53;
- goto yy782;
-yy782:
- YYDEBUG(782, *YYCURSOR);
+ goto yy867;
+yy867:
+ YYDEBUG(867, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy775;
-yy783:
- YYDEBUG(783, *YYCURSOR);
+ goto yy860;
+yy868:
+ YYDEBUG(868, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy814;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy869:
+ YYDEBUG(869, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '/'){
- if(yych >= '/') goto yy837;
- goto yy784;
+ if(yych >= '/') goto yy923;
+ goto yy870;
} else {
- if(yych <= '9') goto yy786;
- if(yych >= 'n') goto yy834;
- goto yy784;
+ if(yych <= '9') goto yy872;
+ if(yych >= 'n') goto yy920;
+ goto yy870;
}
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy835;
- goto yy784;
+ if(yych >= 'r') goto yy921;
+ goto yy870;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy784:
- YYDEBUG(784, *YYCURSOR);
+yy870:
+ YYDEBUG(870, *YYCURSOR);
-#line 1032 "ext/date/lib/parse_date.re"
+#line 1058 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("americanshort | american");
TIMELIB_INIT;
@@ -11500,255 +15111,261 @@ yy784:
TIMELIB_DEINIT;
return TIMELIB_AMERICAN;
}
-#line 9917 "ext/date/lib/parse_date.c"
-yy785:
- YYDEBUG(785, *YYCURSOR);
+#line 13358 "ext/date/lib/parse_date.c"
+yy871:
+ YYDEBUG(871, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '/'){
- if(yych <= '.') goto yy784;
- goto yy837;
+ if(yych <= '.') goto yy870;
+ goto yy923;
} else {
- if(yych <= '1') goto yy786;
- if(yych <= 'm') goto yy784;
- goto yy834;
+ if(yych <= '1') goto yy872;
+ if(yych <= 'm') goto yy870;
+ goto yy920;
}
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy784;
- goto yy835;
+ if(yych <= 'q') goto yy870;
+ goto yy921;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy786:
- YYDEBUG(786, *YYCURSOR);
+yy872:
+ YYDEBUG(872, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == '/') goto yy837;
- if(yych <= 'm') goto yy784;
- goto yy834;
+ if(yych == '/') goto yy923;
+ if(yych <= 'm') goto yy870;
+ goto yy920;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy784;
- goto yy835;
+ if(yych <= 'q') goto yy870;
+ goto yy921;
} else {
- if(yych <= 's') goto yy833;
- if(yych <= 't') goto yy836;
- goto yy784;
+ if(yych <= 's') goto yy919;
+ if(yych <= 't') goto yy922;
+ goto yy870;
}
}
-yy787:
- YYDEBUG(787, *YYCURSOR);
+yy873:
+ YYDEBUG(873, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy832;
+ if(yych == 'A') goto yy918;
if(yych <= 'T') goto yy53;
- goto yy831;
+ goto yy917;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy832;
+ goto yy918;
} else {
- if(yych == 'u') goto yy831;
+ if(yych == 'u') goto yy917;
goto yy53;
}
}
-yy788:
- YYDEBUG(788, *YYCURSOR);
+yy874:
+ YYDEBUG(874, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy830;
- if(yych == 'e') goto yy830;
+ if(yych == 'E') goto yy916;
+ if(yych == 'e') goto yy916;
goto yy53;
-yy789:
- YYDEBUG(789, *YYCURSOR);
+yy875:
+ YYDEBUG(875, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy829;
- if(yych == 'a') goto yy829;
+ if(yych == 'A') goto yy915;
+ if(yych == 'a') goto yy915;
goto yy53;
-yy790:
- YYDEBUG(790, *YYCURSOR);
+yy876:
+ YYDEBUG(876, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy828;
+ if(yych == 'P') goto yy914;
if(yych <= 'T') goto yy53;
- goto yy827;
+ goto yy913;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy828;
+ goto yy914;
} else {
- if(yych == 'u') goto yy827;
+ if(yych == 'u') goto yy913;
goto yy53;
}
}
-yy791:
- YYDEBUG(791, *YYCURSOR);
+yy877:
+ YYDEBUG(877, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy825;
- if(yych == 'e') goto yy825;
+ if(yych == 'E') goto yy911;
+ if(yych == 'e') goto yy911;
goto yy53;
-yy792:
- YYDEBUG(792, *YYCURSOR);
+yy878:
+ YYDEBUG(878, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy824;
- if(yych == 'c') goto yy824;
+ if(yych == 'C') goto yy910;
+ if(yych == 'c') goto yy910;
goto yy53;
-yy793:
- YYDEBUG(793, *YYCURSOR);
+yy879:
+ YYDEBUG(879, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy823;
- if(yych == 'o') goto yy823;
+ if(yych == 'O') goto yy909;
+ if(yych == 'o') goto yy909;
goto yy53;
-yy794:
- YYDEBUG(794, *YYCURSOR);
+yy880:
+ YYDEBUG(880, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy795;
+ if(yych == 'E') goto yy881;
if(yych != 'e') goto yy53;
- goto yy795;
-yy795:
- YYDEBUG(795, *YYCURSOR);
+ goto yy881;
+yy881:
+ YYDEBUG(881, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy796;
+ if(yych == 'C') goto yy882;
if(yych != 'c') goto yy53;
- goto yy796;
-yy796:
- YYDEBUG(796, *YYCURSOR);
+ goto yy882;
+yy882:
+ YYDEBUG(882, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy797;
-yy797:
- YYDEBUG(797, *YYCURSOR);
+ goto yy883;
+yy883:
+ YYDEBUG(883, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy798;
-yy798:
- YYDEBUG(798, *YYCURSOR);
+ goto yy884;
+yy884:
+ YYDEBUG(884, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy799;
-yy799:
- YYDEBUG(799, *YYCURSOR);
+ goto yy885;
+yy885:
+ YYDEBUG(885, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy800;
-yy800:
- YYDEBUG(800, *YYCURSOR);
+ goto yy886;
+yy886:
+ YYDEBUG(886, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy801;
-yy801:
- YYDEBUG(801, *YYCURSOR);
+ goto yy887;
+yy887:
+ YYDEBUG(887, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy802;
-yy802:
- YYDEBUG(802, *YYCURSOR);
+ goto yy888;
+yy888:
+ YYDEBUG(888, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy803;
- if(yych <= '2') goto yy804;
+ if(yych <= '1') goto yy889;
+ if(yych <= '2') goto yy890;
goto yy53;
-yy803:
- YYDEBUG(803, *YYCURSOR);
+yy889:
+ YYDEBUG(889, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy805;
+ if(yych <= '9') goto yy891;
goto yy53;
-yy804:
- YYDEBUG(804, *YYCURSOR);
+yy890:
+ YYDEBUG(890, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '4') goto yy53;
- goto yy805;
-yy805:
- YYDEBUG(805, *YYCURSOR);
+ goto yy891;
+yy891:
+ YYDEBUG(891, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy806;
-yy806:
- YYDEBUG(806, *YYCURSOR);
+ goto yy892;
+yy892:
+ YYDEBUG(892, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy807;
-yy807:
- YYDEBUG(807, *YYCURSOR);
+ goto yy893;
+yy893:
+ YYDEBUG(893, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy808;
-yy808:
- YYDEBUG(808, *YYCURSOR);
+ goto yy894;
+yy894:
+ YYDEBUG(894, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy809;
-yy809:
- YYDEBUG(809, *YYCURSOR);
+ goto yy895;
+yy895:
+ YYDEBUG(895, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy810;
- if(yych <= '6') goto yy811;
+ if(yych <= '5') goto yy896;
+ if(yych <= '6') goto yy897;
goto yy53;
-yy810:
- YYDEBUG(810, *YYCURSOR);
+yy896:
+ YYDEBUG(896, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy812;
+ if(yych <= '9') goto yy898;
goto yy53;
-yy811:
- YYDEBUG(811, *YYCURSOR);
+yy897:
+ YYDEBUG(897, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '0') goto yy53;
- goto yy812;
-yy812:
- YYDEBUG(812, *YYCURSOR);
+ goto yy898;
+yy898:
+ YYDEBUG(898, *YYCURSOR);
yych = *++YYCURSOR;
+ if(yych == 0x09) goto yy899;
if(yych != ' ') goto yy53;
- goto yy813;
-yy813:
- YYDEBUG(813, *YYCURSOR);
+ goto yy899;
+yy899:
+ YYDEBUG(899, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
yych = *YYCURSOR;
- goto yy814;
-yy814:
- YYDEBUG(814, *YYCURSOR);
- if(yych <= '*'){
- if(yych == ' ') goto yy813;
- goto yy53;
+ goto yy900;
+yy900:
+ YYDEBUG(900, *YYCURSOR);
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy899;
+ if(yych <= 0x1F) goto yy53;
+ goto yy899;
} else {
- if(yych == ',') goto yy53;
- if(yych >= '.') goto yy53;
- goto yy815;
+ if(yych <= '+'){
+ if(yych <= '*') goto yy53;
+ goto yy901;
+ } else {
+ if(yych != '-') goto yy53;
+ goto yy901;
+ }
}
-yy815:
- YYDEBUG(815, *YYCURSOR);
+yy901:
+ YYDEBUG(901, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy816;
- if(yych <= '2') goto yy818;
- if(yych <= '9') goto yy819;
+ if(yych <= '1') goto yy902;
+ if(yych <= '2') goto yy904;
+ if(yych <= '9') goto yy905;
goto yy53;
-yy816:
- YYDEBUG(816, *YYCURSOR);
+yy902:
+ YYDEBUG(902, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy817;
- if(yych <= '9') goto yy819;
- if(yych <= ':') goto yy820;
- goto yy817;
-yy817:
- YYDEBUG(817, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy903;
+ if(yych <= '9') goto yy905;
+ if(yych <= ':') goto yy906;
+ goto yy903;
+yy903:
+ YYDEBUG(903, *YYCURSOR);
-#line 1263 "ext/date/lib/parse_date.re"
+#line 1291 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("clf");
@@ -11762,262 +15379,259 @@ yy817:
s->time->i = timelib_get_nr((char **) &ptr, 2);
s->time->s = timelib_get_nr((char **) &ptr, 2);
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 10117 "ext/date/lib/parse_date.c"
-yy818:
- YYDEBUG(818, *YYCURSOR);
+#line 13566 "ext/date/lib/parse_date.c"
+yy904:
+ YYDEBUG(904, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy817;
- if(yych >= '4') goto yy821;
- goto yy819;
+ if(yych <= '/') goto yy903;
+ if(yych >= '4') goto yy907;
+ goto yy905;
} else {
- if(yych <= '9') goto yy822;
- if(yych <= ':') goto yy820;
- goto yy817;
+ if(yych <= '9') goto yy908;
+ if(yych <= ':') goto yy906;
+ goto yy903;
}
-yy819:
- YYDEBUG(819, *YYCURSOR);
+yy905:
+ YYDEBUG(905, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych <= '5') goto yy821;
- if(yych <= '9') goto yy822;
- if(yych >= ';') goto yy817;
- goto yy820;
-yy820:
- YYDEBUG(820, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych <= '5') goto yy907;
+ if(yych <= '9') goto yy908;
+ if(yych >= ';') goto yy903;
+ goto yy906;
+yy906:
+ YYDEBUG(906, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych <= '5') goto yy821;
- if(yych <= '9') goto yy822;
- goto yy817;
-yy821:
- YYDEBUG(821, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych <= '5') goto yy907;
+ if(yych <= '9') goto yy908;
+ goto yy903;
+yy907:
+ YYDEBUG(907, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy817;
- if(yych >= ':') goto yy817;
- goto yy822;
-yy822:
- YYDEBUG(822, *YYCURSOR);
+ if(yych <= '/') goto yy903;
+ if(yych >= ':') goto yy903;
+ goto yy908;
+yy908:
+ YYDEBUG(908, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy817;
-yy823:
- YYDEBUG(823, *YYCURSOR);
+ goto yy903;
+yy909:
+ YYDEBUG(909, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy796;
- if(yych == 'v') goto yy796;
+ if(yych == 'V') goto yy882;
+ if(yych == 'v') goto yy882;
goto yy53;
-yy824:
- YYDEBUG(824, *YYCURSOR);
+yy910:
+ YYDEBUG(910, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy796;
- if(yych == 't') goto yy796;
+ if(yych == 'T') goto yy882;
+ if(yych == 't') goto yy882;
goto yy53;
-yy825:
- YYDEBUG(825, *YYCURSOR);
+yy911:
+ YYDEBUG(911, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy826;
+ if(yych == 'P') goto yy912;
if(yych != 'p') goto yy53;
- goto yy826;
-yy826:
- YYDEBUG(826, *YYCURSOR);
+ goto yy912;
+yy912:
+ YYDEBUG(912, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
- if(yych == '/') goto yy797;
+ if(yych == '/') goto yy883;
goto yy53;
} else {
- if(yych <= 'T') goto yy796;
- if(yych == 't') goto yy796;
+ if(yych <= 'T') goto yy882;
+ if(yych == 't') goto yy882;
goto yy53;
}
-yy827:
- YYDEBUG(827, *YYCURSOR);
+yy913:
+ YYDEBUG(913, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy796;
- if(yych == 'g') goto yy796;
+ if(yych == 'G') goto yy882;
+ if(yych == 'g') goto yy882;
goto yy53;
-yy828:
- YYDEBUG(828, *YYCURSOR);
+yy914:
+ YYDEBUG(914, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy796;
- if(yych == 'r') goto yy796;
+ if(yych == 'R') goto yy882;
+ if(yych == 'r') goto yy882;
goto yy53;
-yy829:
- YYDEBUG(829, *YYCURSOR);
+yy915:
+ YYDEBUG(915, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy796;
+ if(yych == 'R') goto yy882;
if(yych <= 'X') goto yy53;
- goto yy796;
+ goto yy882;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy796;
+ goto yy882;
} else {
- if(yych == 'y') goto yy796;
+ if(yych == 'y') goto yy882;
goto yy53;
}
}
-yy830:
- YYDEBUG(830, *YYCURSOR);
+yy916:
+ YYDEBUG(916, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy796;
- if(yych == 'b') goto yy796;
+ if(yych == 'B') goto yy882;
+ if(yych == 'b') goto yy882;
goto yy53;
-yy831:
- YYDEBUG(831, *YYCURSOR);
+yy917:
+ YYDEBUG(917, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy796;
+ if(yych == 'L') goto yy882;
if(yych <= 'M') goto yy53;
- goto yy796;
+ goto yy882;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy796;
+ goto yy882;
} else {
- if(yych == 'n') goto yy796;
+ if(yych == 'n') goto yy882;
goto yy53;
}
}
-yy832:
- YYDEBUG(832, *YYCURSOR);
+yy918:
+ YYDEBUG(918, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy796;
- if(yych == 'n') goto yy796;
+ if(yych == 'N') goto yy882;
+ if(yych == 'n') goto yy882;
goto yy53;
-yy833:
- YYDEBUG(833, *YYCURSOR);
+yy919:
+ YYDEBUG(919, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy842;
+ if(yych == 't') goto yy928;
goto yy53;
-yy834:
- YYDEBUG(834, *YYCURSOR);
+yy920:
+ YYDEBUG(920, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy842;
+ if(yych == 'd') goto yy928;
goto yy53;
-yy835:
- YYDEBUG(835, *YYCURSOR);
+yy921:
+ YYDEBUG(921, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy842;
+ if(yych == 'd') goto yy928;
goto yy53;
-yy836:
- YYDEBUG(836, *YYCURSOR);
+yy922:
+ YYDEBUG(922, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'h') goto yy842;
+ if(yych == 'h') goto yy928;
goto yy53;
-yy837:
- YYDEBUG(837, *YYCURSOR);
+yy923:
+ YYDEBUG(923, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy838;
-yy838:
- YYDEBUG(838, *YYCURSOR);
+ goto yy924;
+yy924:
+ YYDEBUG(924, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy839;
-yy839:
- YYDEBUG(839, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy925;
+yy925:
+ YYDEBUG(925, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy840;
-yy840:
- YYDEBUG(840, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy926;
+yy926:
+ YYDEBUG(926, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy784;
- if(yych >= ':') goto yy784;
- goto yy841;
-yy841:
- YYDEBUG(841, *YYCURSOR);
+ if(yych <= '/') goto yy870;
+ if(yych >= ':') goto yy870;
+ goto yy927;
+yy927:
+ YYDEBUG(927, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy784;
-yy842:
- YYDEBUG(842, *YYCURSOR);
+ goto yy870;
+yy928:
+ YYDEBUG(928, *YYCURSOR);
yyaccept = 13;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '/') goto yy837;
- goto yy784;
-yy843:
- YYDEBUG(843, *YYCURSOR);
+ if(yych == '/') goto yy923;
+ goto yy870;
+yy929:
+ YYDEBUG(929, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '-') goto yy617;
- if(yych <= '.') goto yy845;
- if(yych >= '0') goto yy617;
- goto yy844;
-yy844:
- YYDEBUG(844, *YYCURSOR);
+ if(yych <= ','){
+ if(yych == 0x09) goto yy931;
+ goto yy784;
+ } else {
+ if(yych <= '.') goto yy931;
+ if(yych >= '0') goto yy784;
+ goto yy930;
+ }
+yy930:
+ YYDEBUG(930, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case 'A': case 'a': goto yy790;
- case 'D': case 'd': goto yy794;
- case 'F': case 'f': goto yy788;
- case 'J': case 'j': goto yy787;
- case 'M': case 'm': goto yy789;
- case 'N': case 'n': goto yy793;
- case 'O': case 'o': goto yy792;
- case 'S': case 's': goto yy791;
+ case 'A': case 'a': goto yy876;
+ case 'D': case 'd': goto yy880;
+ case 'F': case 'f': goto yy874;
+ case 'J': case 'j': goto yy873;
+ case 'M': case 'm': goto yy875;
+ case 'N': case 'n': goto yy879;
+ case 'O': case 'o': goto yy878;
+ case 'S': case 's': goto yy877;
default: goto yy53;
}
-yy845:
- YYDEBUG(845, *YYCURSOR);
+yy931:
+ YYDEBUG(931, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy846;
- if(yych <= '1') goto yy847;
- if(yych <= '9') goto yy848;
- goto yy617;
-yy846:
- YYDEBUG(846, *YYCURSOR);
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy784;
+yy932:
+ YYDEBUG(932, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy849;
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy848;
+ if(yych <= '9') goto yy934;
goto yy53;
-yy847:
- YYDEBUG(847, *YYCURSOR);
+yy933:
+ YYDEBUG(933, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '.') goto yy849;
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
if(yych <= '/') goto yy53;
if(yych >= '3') goto yy53;
- goto yy848;
-yy848:
- YYDEBUG(848, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych != '.') goto yy53;
- goto yy849;
-yy849:
- YYDEBUG(849, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '/') goto yy53;
- if(yych >= ':') goto yy53;
- goto yy850;
-yy850:
- YYDEBUG(850, *YYCURSOR);
+ goto yy934;
+yy934:
+ YYDEBUG(934, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy729;
- if(yych <= '9') goto yy728;
- goto yy729;
-yy851:
- YYDEBUG(851, *YYCURSOR);
+ if(yych <= ',') goto yy53;
+ if(yych <= '.') goto yy807;
+ goto yy53;
+yy935:
+ YYDEBUG(935, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy879;
+ if(yych <= '9') goto yy970;
goto yy57;
-yy852:
- YYDEBUG(852, *YYCURSOR);
+yy936:
+ YYDEBUG(936, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy734;
- case '1': goto yy735;
+ case '0': goto yy945;
+ case '1': goto yy946;
case '2':
case '3':
case '4':
@@ -12025,130 +15639,208 @@ yy852:
case '6':
case '7':
case '8':
- case '9': goto yy736;
- case 'A': case 'a': goto yy856;
- case 'D': case 'd': goto yy860;
- case 'F': case 'f': goto yy854;
- case 'J': case 'j': goto yy853;
- case 'M': case 'm': goto yy855;
- case 'N': case 'n': goto yy859;
- case 'O': case 'o': goto yy858;
- case 'S': case 's': goto yy857;
+ case '9': goto yy947;
+ case 'A': case 'a': goto yy940;
+ case 'D': case 'd': goto yy944;
+ case 'F': case 'f': goto yy938;
+ case 'J': case 'j': goto yy937;
+ case 'M': case 'm': goto yy939;
+ case 'N': case 'n': goto yy943;
+ case 'O': case 'o': goto yy942;
+ case 'S': case 's': goto yy941;
default: goto yy53;
}
-yy853:
- YYDEBUG(853, *YYCURSOR);
+yy937:
+ YYDEBUG(937, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy878;
+ if(yych == 'A') goto yy969;
if(yych <= 'T') goto yy53;
- goto yy877;
+ goto yy968;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy878;
+ goto yy969;
} else {
- if(yych == 'u') goto yy877;
+ if(yych == 'u') goto yy968;
goto yy53;
}
}
-yy854:
- YYDEBUG(854, *YYCURSOR);
+yy938:
+ YYDEBUG(938, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy876;
- if(yych == 'e') goto yy876;
+ if(yych == 'E') goto yy967;
+ if(yych == 'e') goto yy967;
goto yy53;
-yy855:
- YYDEBUG(855, *YYCURSOR);
+yy939:
+ YYDEBUG(939, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy875;
- if(yych == 'a') goto yy875;
+ if(yych == 'A') goto yy966;
+ if(yych == 'a') goto yy966;
goto yy53;
-yy856:
- YYDEBUG(856, *YYCURSOR);
+yy940:
+ YYDEBUG(940, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy874;
+ if(yych == 'P') goto yy965;
if(yych <= 'T') goto yy53;
- goto yy873;
+ goto yy964;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy874;
+ goto yy965;
} else {
- if(yych == 'u') goto yy873;
+ if(yych == 'u') goto yy964;
goto yy53;
}
}
-yy857:
- YYDEBUG(857, *YYCURSOR);
+yy941:
+ YYDEBUG(941, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy871;
- if(yych == 'e') goto yy871;
+ if(yych == 'E') goto yy962;
+ if(yych == 'e') goto yy962;
goto yy53;
-yy858:
- YYDEBUG(858, *YYCURSOR);
+yy942:
+ YYDEBUG(942, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy870;
- if(yych == 'c') goto yy870;
+ if(yych == 'C') goto yy961;
+ if(yych == 'c') goto yy961;
goto yy53;
-yy859:
- YYDEBUG(859, *YYCURSOR);
+yy943:
+ YYDEBUG(943, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy869;
- if(yych == 'o') goto yy869;
+ if(yych == 'O') goto yy960;
+ if(yych == 'o') goto yy960;
goto yy53;
-yy860:
- YYDEBUG(860, *YYCURSOR);
+yy944:
+ YYDEBUG(944, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy861;
- if(yych != 'e') goto yy53;
- goto yy861;
-yy861:
- YYDEBUG(861, *YYCURSOR);
+ if(yych == 'E') goto yy952;
+ if(yych == 'e') goto yy952;
+ goto yy53;
+yy945:
+ YYDEBUG(945, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == '-') goto yy948;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy947;
+ goto yy53;
+yy946:
+ YYDEBUG(946, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == '-') goto yy948;
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy947;
+yy947:
+ YYDEBUG(947, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '-') goto yy53;
+ goto yy948;
+yy948:
+ YYDEBUG(948, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '2') goto yy949;
+ if(yych <= '3') goto yy950;
+ if(yych <= '9') goto yy951;
+ goto yy53;
+yy949:
+ YYDEBUG(949, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '9') goto yy951;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy950:
+ YYDEBUG(950, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'n'){
+ if(yych <= '/') goto yy860;
+ if(yych <= '1') goto yy951;
+ if(yych <= 'm') goto yy860;
+ goto yy864;
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'q') goto yy860;
+ goto yy865;
+ } else {
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+ }
+yy951:
+ YYDEBUG(951, *YYCURSOR);
+ yyaccept = 12;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'q'){
+ if(yych == 'n') goto yy864;
+ goto yy860;
+ } else {
+ if(yych <= 'r') goto yy865;
+ if(yych <= 's') goto yy863;
+ if(yych <= 't') goto yy866;
+ goto yy860;
+ }
+yy952:
+ YYDEBUG(952, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy862;
+ if(yych == 'C') goto yy953;
if(yych != 'c') goto yy53;
- goto yy862;
-yy862:
- YYDEBUG(862, *YYCURSOR);
+ goto yy953;
+yy953:
+ YYDEBUG(953, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy863;
-yy863:
- YYDEBUG(863, *YYCURSOR);
+ goto yy954;
+yy954:
+ YYDEBUG(954, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy864;
- if(yych <= '2') goto yy865;
- if(yych <= '3') goto yy866;
+ if(yych <= '0') goto yy955;
+ if(yych <= '2') goto yy956;
+ if(yych <= '3') goto yy957;
goto yy53;
-yy864:
- YYDEBUG(864, *YYCURSOR);
+yy955:
+ YYDEBUG(955, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy867;
+ if(yych <= '9') goto yy958;
goto yy53;
-yy865:
- YYDEBUG(865, *YYCURSOR);
+yy956:
+ YYDEBUG(956, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy867;
+ if(yych <= '9') goto yy958;
goto yy53;
-yy866:
- YYDEBUG(866, *YYCURSOR);
+yy957:
+ YYDEBUG(957, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '2') goto yy53;
- goto yy867;
-yy867:
- YYDEBUG(867, *YYCURSOR);
+ goto yy958;
+yy958:
+ YYDEBUG(958, *YYCURSOR);
++YYCURSOR;
- goto yy868;
-yy868:
- YYDEBUG(868, *YYCURSOR);
+ goto yy959;
+yy959:
+ YYDEBUG(959, *YYCURSOR);
-#line 1250 "ext/date/lib/parse_date.re"
+#line 1278 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pgtextreverse");
TIMELIB_INIT;
@@ -12160,111 +15852,99 @@ yy868:
TIMELIB_DEINIT;
return TIMELIB_PG_TEXT;
}
-#line 10407 "ext/date/lib/parse_date.c"
-yy869:
- YYDEBUG(869, *YYCURSOR);
+#line 13919 "ext/date/lib/parse_date.c"
+yy960:
+ YYDEBUG(960, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy862;
- if(yych == 'v') goto yy862;
+ if(yych == 'V') goto yy953;
+ if(yych == 'v') goto yy953;
goto yy53;
-yy870:
- YYDEBUG(870, *YYCURSOR);
+yy961:
+ YYDEBUG(961, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy862;
- if(yych == 't') goto yy862;
+ if(yych == 'T') goto yy953;
+ if(yych == 't') goto yy953;
goto yy53;
-yy871:
- YYDEBUG(871, *YYCURSOR);
+yy962:
+ YYDEBUG(962, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy872;
+ if(yych == 'P') goto yy963;
if(yych != 'p') goto yy53;
- goto yy872;
-yy872:
- YYDEBUG(872, *YYCURSOR);
+ goto yy963;
+yy963:
+ YYDEBUG(963, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
- if(yych == '-') goto yy863;
+ if(yych == '-') goto yy954;
goto yy53;
} else {
- if(yych <= 'T') goto yy862;
- if(yych == 't') goto yy862;
+ if(yych <= 'T') goto yy953;
+ if(yych == 't') goto yy953;
goto yy53;
}
-yy873:
- YYDEBUG(873, *YYCURSOR);
+yy964:
+ YYDEBUG(964, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy862;
- if(yych == 'g') goto yy862;
+ if(yych == 'G') goto yy953;
+ if(yych == 'g') goto yy953;
goto yy53;
-yy874:
- YYDEBUG(874, *YYCURSOR);
+yy965:
+ YYDEBUG(965, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy862;
- if(yych == 'r') goto yy862;
+ if(yych == 'R') goto yy953;
+ if(yych == 'r') goto yy953;
goto yy53;
-yy875:
- YYDEBUG(875, *YYCURSOR);
+yy966:
+ YYDEBUG(966, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy862;
+ if(yych == 'R') goto yy953;
if(yych <= 'X') goto yy53;
- goto yy862;
+ goto yy953;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy862;
+ goto yy953;
} else {
- if(yych == 'y') goto yy862;
+ if(yych == 'y') goto yy953;
goto yy53;
}
}
-yy876:
- YYDEBUG(876, *YYCURSOR);
+yy967:
+ YYDEBUG(967, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy862;
- if(yych == 'b') goto yy862;
+ if(yych == 'B') goto yy953;
+ if(yych == 'b') goto yy953;
goto yy53;
-yy877:
- YYDEBUG(877, *YYCURSOR);
+yy968:
+ YYDEBUG(968, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy862;
+ if(yych == 'L') goto yy953;
if(yych <= 'M') goto yy53;
- goto yy862;
+ goto yy953;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy862;
+ goto yy953;
} else {
- if(yych == 'n') goto yy862;
+ if(yych == 'n') goto yy953;
goto yy53;
}
}
-yy878:
- YYDEBUG(878, *YYCURSOR);
+yy969:
+ YYDEBUG(969, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy862;
- if(yych == 'n') goto yy862;
+ if(yych == 'N') goto yy953;
+ if(yych == 'n') goto yy953;
goto yy53;
-yy879:
- YYDEBUG(879, *YYCURSOR);
+yy970:
+ YYDEBUG(970, *YYCURSOR);
yyaccept = 14;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -12273,27 +15953,28 @@ yy879:
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm':
case 'n':
case 'o': case 's':
- case 't': case 'w': case 'y': goto yy884;
- case '-': goto yy881;
- case '.': goto yy887;
- case '/': goto yy882;
- case '0': goto yy900;
- case '1': goto yy901;
- case '2': goto yy902;
- case '3': goto yy903;
+ case 't': case 'w': case 'y': goto yy975;
+ case '-': goto yy972;
+ case '.': goto yy976;
+ case '/': goto yy973;
+ case '0': goto yy989;
+ case '1': goto yy990;
+ case '2': goto yy992;
+ case '3': goto yy993;
case '4':
case '5':
case '6':
case '7':
case '8':
case '9': goto yy51;
- case 'W': goto yy904;
- default: goto yy880;
+ case ':': goto yy991;
+ case 'W': goto yy994;
+ default: goto yy971;
}
-yy880:
- YYDEBUG(880, *YYCURSOR);
+yy971:
+ YYDEBUG(971, *YYCURSOR);
-#line 1282 "ext/date/lib/parse_date.re"
+#line 1312 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("year4");
TIMELIB_INIT;
@@ -12301,14 +15982,14 @@ yy880:
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
-#line 10523 "ext/date/lib/parse_date.c"
-yy881:
- YYDEBUG(881, *YYCURSOR);
+#line 14024 "ext/date/lib/parse_date.c"
+yy972:
+ YYDEBUG(972, *YYCURSOR);
yych = *++YYCURSOR;
YYDEBUG(-1, yych);
switch(yych){
- case '0': goto yy1046;
- case '1': goto yy1047;
+ case '0': goto yy1156;
+ case '1': goto yy1157;
case '2':
case '3':
case '4':
@@ -12316,128 +15997,78 @@ yy881:
case '6':
case '7':
case '8':
- case '9': goto yy1048;
- case 'A': case 'a': goto yy1041;
- case 'D': case 'd': goto yy1045;
- case 'F': case 'f': goto yy1039;
- case 'J': case 'j': goto yy1038;
- case 'M': case 'm': goto yy1040;
- case 'N': case 'n': goto yy1044;
- case 'O': case 'o': goto yy1043;
- case 'S': case 's': goto yy1042;
- default: goto yy886;
+ case '9': goto yy1158;
+ case 'A': case 'a': goto yy1151;
+ case 'D': case 'd': goto yy1155;
+ case 'F': case 'f': goto yy1149;
+ case 'J': case 'j': goto yy1148;
+ case 'M': case 'm': goto yy1150;
+ case 'N': case 'n': goto yy1154;
+ case 'O': case 'o': goto yy1153;
+ case 'S': case 's': goto yy1152;
+ default: goto yy1121;
}
-yy882:
- YYDEBUG(882, *YYCURSOR);
+yy973:
+ YYDEBUG(973, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy1019;
- if(yych <= '1') goto yy1020;
- if(yych <= '9') goto yy1021;
+ if(yych <= '0') goto yy1129;
+ if(yych <= '1') goto yy1130;
+ if(yych <= '9') goto yy1131;
goto yy53;
-yy883:
- YYDEBUG(883, *YYCURSOR);
+yy974:
+ YYDEBUG(974, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 11) YYFILL(11);
yych = *YYCURSOR;
- goto yy884;
-yy884:
- YYDEBUG(884, *YYCURSOR);
+ goto yy975;
+yy975:
+ YYDEBUG(975, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy883;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy974;
case '-':
- case '.': goto yy885;
- case 'A': case 'a': goto yy895;
- case 'D': case 'd': goto yy899;
- case 'F': case 'f': goto yy893;
+ case '.': goto yy1120;
+ case 'A': case 'a': goto yy984;
+ case 'D': case 'd': goto yy988;
+ case 'F': case 'f': goto yy982;
case 'H': case 'h': goto yy60;
- case 'I': goto yy888;
- case 'J': case 'j': goto yy892;
- case 'M': case 'm': goto yy894;
- case 'N': case 'n': goto yy898;
- case 'O': case 'o': goto yy897;
- case 'S': case 's': goto yy896;
+ case 'I': goto yy977;
+ case 'J': case 'j': goto yy981;
+ case 'M': case 'm': goto yy983;
+ case 'N': case 'n': goto yy987;
+ case 'O': case 'o': goto yy986;
+ case 'S': case 's': goto yy985;
case 'T': case 't': goto yy65;
- case 'V': goto yy890;
+ case 'V': goto yy979;
case 'W': case 'w': goto yy62;
- case 'X': goto yy891;
+ case 'X': goto yy980;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy885:
- YYDEBUG(885, *YYCURSOR);
- ++YYCURSOR;
- if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
- yych = *YYCURSOR;
- goto yy886;
-yy886:
- YYDEBUG(886, *YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
- case '-':
- case '.': goto yy885;
- case 'A': case 'a': goto yy895;
- case 'D': case 'd': goto yy1011;
- case 'F': case 'f': goto yy1008;
- case 'I': goto yy888;
- case 'J': case 'j': goto yy892;
- case 'M': case 'm': goto yy1009;
- case 'N': case 'n': goto yy898;
- case 'O': case 'o': goto yy897;
- case 'S': case 's': goto yy1010;
- case 'V': goto yy890;
- case 'X': goto yy891;
- default: goto yy53;
- }
-yy887:
- YYDEBUG(887, *YYCURSOR);
+yy976:
+ YYDEBUG(976, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy886;
- if(yych <= '0') goto yy1005;
- if(yych <= '2') goto yy1006;
- if(yych <= '3') goto yy1007;
- goto yy886;
-yy888:
- YYDEBUG(888, *YYCURSOR);
+ if(yych <= '/') goto yy1121;
+ if(yych <= '0') goto yy1113;
+ if(yych <= '2') goto yy1114;
+ if(yych <= '3') goto yy1115;
+ goto yy1121;
+yy977:
+ YYDEBUG(977, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= 'U'){
- if(yych == 'I') goto yy1004;
- goto yy889;
+ if(yych == 'I') goto yy1112;
+ goto yy978;
} else {
- if(yych == 'W') goto yy889;
- if(yych <= 'X') goto yy958;
- goto yy889;
+ if(yych == 'W') goto yy978;
+ if(yych <= 'X') goto yy1066;
+ goto yy978;
}
-yy889:
- YYDEBUG(889, *YYCURSOR);
+yy978:
+ YYDEBUG(978, *YYCURSOR);
-#line 1112 "ext/date/lib/parse_date.re"
+#line 1138 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenodayrev");
TIMELIB_INIT;
@@ -12449,39 +16080,39 @@ yy889:
TIMELIB_DEINIT;
return TIMELIB_DATE_NO_DAY;
}
-#line 10650 "ext/date/lib/parse_date.c"
-yy890:
- YYDEBUG(890, *YYCURSOR);
+#line 14106 "ext/date/lib/parse_date.c"
+yy979:
+ YYDEBUG(979, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy1002;
- goto yy889;
-yy891:
- YYDEBUG(891, *YYCURSOR);
+ if(yych == 'I') goto yy1110;
+ goto yy978;
+yy980:
+ YYDEBUG(980, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy1001;
- goto yy889;
-yy892:
- YYDEBUG(892, *YYCURSOR);
+ if(yych == 'I') goto yy1109;
+ goto yy978;
+yy981:
+ YYDEBUG(981, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy994;
+ if(yych == 'A') goto yy1102;
if(yych <= 'T') goto yy53;
- goto yy993;
+ goto yy1101;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy994;
+ goto yy1102;
} else {
- if(yych == 'u') goto yy993;
+ if(yych == 'u') goto yy1101;
goto yy53;
}
}
-yy893:
- YYDEBUG(893, *YYCURSOR);
+yy982:
+ YYDEBUG(982, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= 'N'){
- if(yych == 'E') goto yy987;
+ if(yych == 'E') goto yy1095;
goto yy53;
} else {
if(yych <= 'O') goto yy83;
@@ -12490,7 +16121,7 @@ yy893:
}
} else {
if(yych <= 'n'){
- if(yych == 'e') goto yy987;
+ if(yych == 'e') goto yy1095;
goto yy53;
} else {
if(yych <= 'o') goto yy83;
@@ -12498,12 +16129,12 @@ yy893:
goto yy53;
}
}
-yy894:
- YYDEBUG(894, *YYCURSOR);
+yy983:
+ YYDEBUG(983, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= 'H'){
- if(yych == 'A') goto yy984;
+ if(yych == 'A') goto yy1092;
goto yy53;
} else {
if(yych <= 'I') goto yy110;
@@ -12512,7 +16143,7 @@ yy894:
}
} else {
if(yych <= 'h'){
- if(yych == 'a') goto yy984;
+ if(yych == 'a') goto yy1092;
goto yy53;
} else {
if(yych <= 'i') goto yy110;
@@ -12520,31 +16151,31 @@ yy894:
goto yy53;
}
}
-yy895:
- YYDEBUG(895, *YYCURSOR);
+yy984:
+ YYDEBUG(984, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy978;
+ if(yych == 'P') goto yy1086;
if(yych <= 'T') goto yy53;
- goto yy977;
+ goto yy1085;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy978;
+ goto yy1086;
} else {
- if(yych == 'u') goto yy977;
+ if(yych == 'u') goto yy1085;
goto yy53;
}
}
-yy896:
- YYDEBUG(896, *YYCURSOR);
+yy985:
+ YYDEBUG(985, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= 'D'){
if(yych == 'A') goto yy119;
goto yy53;
} else {
- if(yych <= 'E') goto yy970;
+ if(yych <= 'E') goto yy1078;
if(yych <= 'T') goto yy53;
goto yy118;
}
@@ -12553,75 +16184,82 @@ yy896:
if(yych == 'a') goto yy119;
goto yy53;
} else {
- if(yych <= 'e') goto yy970;
+ if(yych <= 'e') goto yy1078;
if(yych == 'u') goto yy118;
goto yy53;
}
}
-yy897:
- YYDEBUG(897, *YYCURSOR);
+yy986:
+ YYDEBUG(986, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy965;
- if(yych == 'c') goto yy965;
+ if(yych == 'C') goto yy1073;
+ if(yych == 'c') goto yy1073;
goto yy53;
-yy898:
- YYDEBUG(898, *YYCURSOR);
+yy987:
+ YYDEBUG(987, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy959;
- if(yych == 'o') goto yy959;
+ if(yych == 'O') goto yy1067;
+ if(yych == 'o') goto yy1067;
goto yy53;
-yy899:
- YYDEBUG(899, *YYCURSOR);
+yy988:
+ YYDEBUG(988, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych == 'A') goto yy106;
if(yych <= 'D') goto yy53;
- goto yy952;
+ goto yy1060;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
goto yy106;
} else {
- if(yych == 'e') goto yy952;
+ if(yych == 'e') goto yy1060;
goto yy53;
}
}
-yy900:
- YYDEBUG(900, *YYCURSOR);
+yy989:
+ YYDEBUG(989, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy950;
- if(yych <= '9') goto yy951;
+ if(yych <= '0') goto yy1058;
+ if(yych <= '9') goto yy1059;
goto yy57;
-yy901:
- YYDEBUG(901, *YYCURSOR);
+yy990:
+ YYDEBUG(990, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '2') goto yy917;
- if(yych <= '9') goto yy916;
+ if(yych <= '2') goto yy1027;
+ if(yych <= '9') goto yy1006;
goto yy57;
-yy902:
- YYDEBUG(902, *YYCURSOR);
+yy991:
+ YYDEBUG(991, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '0') goto yy1007;
+ if(yych <= '1') goto yy1008;
+ goto yy53;
+yy992:
+ YYDEBUG(992, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy916;
+ if(yych <= '9') goto yy1006;
goto yy57;
-yy903:
- YYDEBUG(903, *YYCURSOR);
+yy993:
+ YYDEBUG(993, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '5') goto yy912;
- if(yych <= '6') goto yy913;
+ if(yych <= '5') goto yy1002;
+ if(yych <= '6') goto yy1003;
if(yych <= '9') goto yy51;
goto yy57;
-yy904:
- YYDEBUG(904, *YYCURSOR);
+yy994:
+ YYDEBUG(994, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy905;
- if(yych <= '4') goto yy906;
- goto yy907;
+ if(yych <= '0') goto yy995;
+ if(yych <= '4') goto yy996;
+ goto yy997;
} else {
if(yych <= 'E'){
if(yych <= 'D') goto yy53;
@@ -12631,34 +16269,34 @@ yy904:
goto yy53;
}
}
-yy905:
- YYDEBUG(905, *YYCURSOR);
+yy995:
+ YYDEBUG(995, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy908;
+ if(yych <= '9') goto yy998;
goto yy53;
-yy906:
- YYDEBUG(906, *YYCURSOR);
+yy996:
+ YYDEBUG(996, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy908;
+ if(yych <= '9') goto yy998;
goto yy53;
-yy907:
- YYDEBUG(907, *YYCURSOR);
+yy997:
+ YYDEBUG(997, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '4') goto yy53;
- goto yy908;
-yy908:
- YYDEBUG(908, *YYCURSOR);
+ goto yy998;
+yy998:
+ YYDEBUG(998, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) <= '/') goto yy909;
- if(yych <= '7') goto yy910;
- goto yy909;
-yy909:
- YYDEBUG(909, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '/') goto yy999;
+ if(yych <= '7') goto yy1000;
+ goto yy999;
+yy999:
+ YYDEBUG(999, *YYCURSOR);
-#line 1218 "ext/date/lib/parse_date.re"
+#line 1246 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweek");
@@ -12676,15 +16314,15 @@ yy909:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 10837 "ext/date/lib/parse_date.c"
-yy910:
- YYDEBUG(910, *YYCURSOR);
+#line 14298 "ext/date/lib/parse_date.c"
+yy1000:
+ YYDEBUG(1000, *YYCURSOR);
++YYCURSOR;
- goto yy911;
-yy911:
- YYDEBUG(911, *YYCURSOR);
+ goto yy1001;
+yy1001:
+ YYDEBUG(1001, *YYCURSOR);
-#line 1199 "ext/date/lib/parse_date.re"
+#line 1227 "ext/date/lib/parse_date.re"
{
timelib_sll w, d;
DEBUG_OUTPUT("isoweekday");
@@ -12702,76 +16340,81 @@ yy911:
TIMELIB_DEINIT;
return TIMELIB_ISO_WEEK;
}
-#line 10859 "ext/date/lib/parse_date.c"
-yy912:
- YYDEBUG(912, *YYCURSOR);
+#line 14320 "ext/date/lib/parse_date.c"
+yy1002:
+ YYDEBUG(1002, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy913:
- YYDEBUG(913, *YYCURSOR);
+yy1003:
+ YYDEBUG(1003, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '6') goto yy914;
+ if(yych <= '6') goto yy1004;
if(yych <= '9') goto yy51;
goto yy57;
-yy914:
- YYDEBUG(914, *YYCURSOR);
+yy1004:
+ YYDEBUG(1004, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy915;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych >= ' ') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'E') goto yy915;
- if(yych <= 'F') goto yy57;
- goto yy915;
+ if(yych == 'D') goto yy57;
+ if(yych >= 'F') goto yy57;
+ goto yy1005;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy915;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych >= 'M') goto yy57;
+ goto yy1005;
} else {
+ if(yych <= 'R') goto yy1005;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy915;
+ if(yych >= 'W') goto yy57;
+ goto yy1005;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy915;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych >= 'd') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'g') goto yy915;
- if(yych <= 'h') goto yy57;
- goto yy915;
+ if(yych == 'f') goto yy57;
+ if(yych >= 'h') goto yy57;
+ goto yy1005;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
- if(yych <= 'r') goto yy915;
- if(yych <= 't') goto yy57;
- goto yy915;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych >= 's') goto yy57;
+ goto yy1005;
} else {
- if(yych == 'x') goto yy915;
- if(yych <= 'y') goto yy57;
- goto yy915;
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
}
}
}
-yy915:
- YYDEBUG(915, *YYCURSOR);
+yy1005:
+ YYDEBUG(1005, *YYCURSOR);
-#line 1186 "ext/date/lib/parse_date.re"
+#line 1214 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("pgydotd");
TIMELIB_INIT;
@@ -12783,113 +16426,432 @@ yy915:
TIMELIB_DEINIT;
return TIMELIB_PG_YEARDAY;
}
-#line 10932 "ext/date/lib/parse_date.c"
-yy916:
- YYDEBUG(916, *YYCURSOR);
+#line 14398 "ext/date/lib/parse_date.c"
+yy1006:
+ YYDEBUG(1006, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy917:
- YYDEBUG(917, *YYCURSOR);
+yy1007:
+ YYDEBUG(1007, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '0') goto yy53;
+ if(yych <= '9') goto yy1009;
+ goto yy53;
+yy1008:
+ YYDEBUG(1008, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '3') goto yy53;
+ goto yy1009;
+yy1009:
+ YYDEBUG(1009, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1010;
+yy1010:
+ YYDEBUG(1010, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '0') goto yy1011;
+ if(yych <= '2') goto yy1012;
+ if(yych <= '3') goto yy1013;
+ goto yy53;
+yy1011:
+ YYDEBUG(1011, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '0') goto yy53;
+ if(yych <= '9') goto yy1014;
+ goto yy53;
+yy1012:
+ YYDEBUG(1012, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1014;
+ goto yy53;
+yy1013:
+ YYDEBUG(1013, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '2') goto yy53;
+ goto yy1014;
+yy1014:
+ YYDEBUG(1014, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ' ') goto yy53;
+ goto yy1015;
+yy1015:
+ YYDEBUG(1015, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '1') goto yy1016;
+ if(yych <= '2') goto yy1017;
+ goto yy53;
+yy1016:
+ YYDEBUG(1016, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1018;
+ goto yy53;
+yy1017:
+ YYDEBUG(1017, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '4') goto yy53;
+ goto yy1018;
+yy1018:
+ YYDEBUG(1018, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1019;
+yy1019:
+ YYDEBUG(1019, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= '6') goto yy53;
+ goto yy1020;
+yy1020:
+ YYDEBUG(1020, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy1021;
+yy1021:
+ YYDEBUG(1021, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != ':') goto yy53;
+ goto yy1022;
+yy1022:
+ YYDEBUG(1022, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '5') goto yy1023;
+ if(yych <= '6') goto yy1024;
+ goto yy53;
+yy1023:
+ YYDEBUG(1023, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1025;
+ goto yy53;
+yy1024:
+ YYDEBUG(1024, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '0') goto yy53;
+ goto yy1025;
+yy1025:
+ YYDEBUG(1025, *YYCURSOR);
+ ++YYCURSOR;
+ goto yy1026;
+yy1026:
+ YYDEBUG(1026, *YYCURSOR);
+
+#line 1188 "ext/date/lib/parse_date.re"
+{
+ int tz_not_found;
+ DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
+ TIMELIB_INIT;
+ TIMELIB_HAVE_TIME();
+ TIMELIB_HAVE_DATE();
+ s->time->y = timelib_get_nr((char **) &ptr, 4);
+ s->time->m = timelib_get_nr((char **) &ptr, 2);
+ s->time->d = timelib_get_nr((char **) &ptr, 2);
+ s->time->h = timelib_get_nr((char **) &ptr, 2);
+ s->time->i = timelib_get_nr((char **) &ptr, 2);
+ s->time->s = timelib_get_nr((char **) &ptr, 2);
+ if (*ptr == '.') {
+ s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
+ if (*ptr) { /* timezone is optional */
+ s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
+ }
+ }
+ TIMELIB_DEINIT;
+ return TIMELIB_XMLRPC_SOAP;
+ }
+#line 14502 "ext/date/lib/parse_date.c"
+yy1027:
+ YYDEBUG(1027, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy57;
- if(yych >= '1') goto yy919;
- goto yy918;
+ if(yych >= '1') goto yy1029;
+ goto yy1028;
} else {
- if(yych <= '3') goto yy920;
- if(yych <= '9') goto yy914;
+ if(yych <= '3') goto yy1030;
+ if(yych <= '9') goto yy1004;
goto yy57;
}
-yy918:
- YYDEBUG(918, *YYCURSOR);
+yy1028:
+ YYDEBUG(1028, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy51;
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy921;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1005;
+ goto yy51;
+ } else {
+ if(yych <= '9') goto yy1031;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy919:
- YYDEBUG(919, *YYCURSOR);
+yy1029:
+ YYDEBUG(1029, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy921;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1005;
+ if(yych <= '9') goto yy1031;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy920:
- YYDEBUG(920, *YYCURSOR);
+yy1030:
+ YYDEBUG(1030, *YYCURSOR);
yyaccept = 15;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1': goto yy921;
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy51;
- default: goto yy915;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= '1'){
+ if(yych <= '/') goto yy1005;
+ goto yy1031;
+ } else {
+ if(yych <= '9') goto yy51;
+ if(yych <= 'C') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1005;
+ if(yych <= 'T') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1005;
+ if(yych <= 'Y') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1005;
+ } else {
+ if(yych == 'g') goto yy1005;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1005;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1005;
+ }
+ }
+ }
}
-yy921:
- YYDEBUG(921, *YYCURSOR);
+yy1031:
+ YYDEBUG(1031, *YYCURSOR);
yyaccept = 16;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': goto yy56;
- case 'D': case 'd': goto yy61;
- case 'F': case 'f': goto yy63;
- case 'H': case 'h': goto yy60;
- case 'M': case 'm': goto yy59;
- case 'S': case 's': goto yy58;
- case 'T': goto yy923;
- case 'W': case 'w': goto yy62;
- case 'Y': case 'y': goto yy64;
- case 't': goto yy924;
- default: goto yy922;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy56;
+ if(yych >= ' ') goto yy56;
+ goto yy1032;
+ } else {
+ if(yych == 'D') goto yy61;
+ if(yych >= 'F') goto yy63;
+ goto yy1032;
+ }
+ } else {
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy60;
+ if(yych >= 'M') goto yy59;
+ goto yy1032;
+ } else {
+ if(yych <= 'S'){
+ if(yych >= 'S') goto yy58;
+ goto yy1032;
+ } else {
+ if(yych <= 'T') goto yy1033;
+ if(yych >= 'W') goto yy62;
+ goto yy1032;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy64;
+ if(yych >= 'd') goto yy61;
+ goto yy1032;
+ } else {
+ if(yych <= 'f'){
+ if(yych >= 'f') goto yy63;
+ goto yy1032;
+ } else {
+ if(yych == 'h') goto yy60;
+ goto yy1032;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'm') goto yy59;
+ if(yych <= 'r') goto yy1032;
+ if(yych <= 's') goto yy58;
+ goto yy1034;
+ } else {
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy62;
+ goto yy1032;
+ } else {
+ if(yych == 'y') goto yy64;
+ goto yy1032;
+ }
+ }
+ }
}
-yy922:
- YYDEBUG(922, *YYCURSOR);
+yy1032:
+ YYDEBUG(1032, *YYCURSOR);
-#line 1150 "ext/date/lib/parse_date.re"
+#line 1176 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("datenocolon");
TIMELIB_INIT;
@@ -12900,17 +16862,17 @@ yy922:
TIMELIB_DEINIT;
return TIMELIB_DATE_NOCOLON;
}
-#line 11031 "ext/date/lib/parse_date.c"
-yy923:
- YYDEBUG(923, *YYCURSOR);
+#line 14780 "ext/date/lib/parse_date.c"
+yy1033:
+ YYDEBUG(1033, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy940;
- goto yy941;
+ if(yych <= '1') goto yy1048;
+ goto yy1049;
} else {
- if(yych <= '9') goto yy942;
+ if(yych <= '9') goto yy1050;
if(yych <= 'G') goto yy53;
goto yy66;
}
@@ -12924,16 +16886,16 @@ yy923:
goto yy53;
}
}
-yy924:
- YYDEBUG(924, *YYCURSOR);
+yy1034:
+ YYDEBUG(1034, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'H'){
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '2') goto yy926;
- goto yy925;
+ if(yych >= '2') goto yy1036;
+ goto yy1035;
} else {
- if(yych <= '9') goto yy927;
+ if(yych <= '9') goto yy1037;
if(yych <= 'G') goto yy53;
goto yy66;
}
@@ -12947,697 +16909,691 @@ yy924:
goto yy53;
}
}
-yy925:
- YYDEBUG(925, *YYCURSOR);
+yy1035:
+ YYDEBUG(1035, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy934;
- if(yych <= '9') goto yy927;
+ if(yych <= '5') goto yy1042;
+ if(yych <= '9') goto yy1037;
goto yy53;
-yy926:
- YYDEBUG(926, *YYCURSOR);
+yy1036:
+ YYDEBUG(1036, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy934;
- if(yych <= '5') goto yy928;
+ if(yych <= '3') goto yy1042;
+ if(yych <= '5') goto yy1038;
goto yy53;
-yy927:
- YYDEBUG(927, *YYCURSOR);
+yy1037:
+ YYDEBUG(1037, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy928;
-yy928:
- YYDEBUG(928, *YYCURSOR);
+ goto yy1038;
+yy1038:
+ YYDEBUG(1038, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy929;
-yy929:
- YYDEBUG(929, *YYCURSOR);
+ goto yy1039;
+yy1039:
+ YYDEBUG(1039, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy930;
- if(yych <= '6') goto yy931;
+ if(yych <= '5') goto yy1040;
+ if(yych <= '6') goto yy1041;
goto yy53;
-yy930:
- YYDEBUG(930, *YYCURSOR);
+yy1040:
+ YYDEBUG(1040, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy932;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy931:
- YYDEBUG(931, *YYCURSOR);
+yy1041:
+ YYDEBUG(1041, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != '0') goto yy53;
- goto yy932;
-yy932:
- YYDEBUG(932, *YYCURSOR);
- ++YYCURSOR;
- goto yy933;
-yy933:
- YYDEBUG(933, *YYCURSOR);
-
-#line 1162 "ext/date/lib/parse_date.re"
-{
- int tz_not_found;
- DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx");
- TIMELIB_INIT;
- TIMELIB_HAVE_TIME();
- TIMELIB_HAVE_DATE();
- s->time->y = timelib_get_nr((char **) &ptr, 4);
- s->time->m = timelib_get_nr((char **) &ptr, 2);
- s->time->d = timelib_get_nr((char **) &ptr, 2);
- s->time->h = timelib_get_nr((char **) &ptr, 2);
- s->time->i = timelib_get_nr((char **) &ptr, 2);
- s->time->s = timelib_get_nr((char **) &ptr, 2);
- if (*ptr == '.') {
- s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
- if (*ptr) { /* timezone is optional */
- s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
- }
- }
- TIMELIB_DEINIT;
- return TIMELIB_XMLRPC_SOAP;
- }
-#line 11130 "ext/date/lib/parse_date.c"
-yy934:
- YYDEBUG(934, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy53;
+yy1042:
+ YYDEBUG(1042, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy935;
- if(yych <= '9') goto yy929;
+ if(yych <= '5') goto yy1043;
+ if(yych <= '9') goto yy1039;
goto yy53;
-yy935:
- YYDEBUG(935, *YYCURSOR);
+yy1043:
+ YYDEBUG(1043, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy936;
- if(yych <= '6') goto yy937;
- if(yych <= '9') goto yy929;
+ if(yych <= '5') goto yy1044;
+ if(yych <= '6') goto yy1045;
+ if(yych <= '9') goto yy1039;
goto yy53;
-yy936:
- YYDEBUG(936, *YYCURSOR);
+yy1044:
+ YYDEBUG(1044, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy938;
- if(yych <= '6') goto yy939;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1046;
+ if(yych <= '6') goto yy1047;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy937:
- YYDEBUG(937, *YYCURSOR);
+yy1045:
+ YYDEBUG(1045, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy938;
- if(yych <= '5') goto yy930;
- if(yych <= '6') goto yy931;
+ if(yych <= '0') goto yy1046;
+ if(yych <= '5') goto yy1040;
+ if(yych <= '6') goto yy1041;
goto yy53;
-yy938:
- YYDEBUG(938, *YYCURSOR);
+yy1046:
+ YYDEBUG(1046, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy939:
- YYDEBUG(939, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1047:
+ YYDEBUG(1047, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
- goto yy933;
-yy940:
- YYDEBUG(940, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy1026;
+yy1048:
+ YYDEBUG(1048, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy949;
- if(yych <= '9') goto yy942;
- if(yych <= ':') goto yy943;
+ if(yych <= '5') goto yy1057;
+ if(yych <= '9') goto yy1050;
+ if(yych <= ':') goto yy1051;
goto yy53;
-yy941:
- YYDEBUG(941, *YYCURSOR);
+yy1049:
+ YYDEBUG(1049, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy949;
- goto yy928;
+ if(yych <= '3') goto yy1057;
+ goto yy1038;
} else {
- if(yych == ':') goto yy943;
+ if(yych == ':') goto yy1051;
goto yy53;
}
-yy942:
- YYDEBUG(942, *YYCURSOR);
+yy1050:
+ YYDEBUG(1050, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy928;
+ if(yych <= '5') goto yy1038;
if(yych != ':') goto yy53;
- goto yy943;
-yy943:
- YYDEBUG(943, *YYCURSOR);
+ goto yy1051;
+yy1051:
+ YYDEBUG(1051, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= '6') goto yy53;
- goto yy944;
-yy944:
- YYDEBUG(944, *YYCURSOR);
+ goto yy1052;
+yy1052:
+ YYDEBUG(1052, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy945;
-yy945:
- YYDEBUG(945, *YYCURSOR);
+ goto yy1053;
+yy1053:
+ YYDEBUG(1053, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy946;
-yy946:
- YYDEBUG(946, *YYCURSOR);
+ goto yy1054;
+yy1054:
+ YYDEBUG(1054, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy947;
- if(yych <= '6') goto yy948;
+ if(yych <= '5') goto yy1055;
+ if(yych <= '6') goto yy1056;
goto yy53;
-yy947:
- YYDEBUG(947, *YYCURSOR);
+yy1055:
+ YYDEBUG(1055, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy932;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy948:
- YYDEBUG(948, *YYCURSOR);
+yy1056:
+ YYDEBUG(1056, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
+ if(yych == '0') goto yy1025;
goto yy53;
-yy949:
- YYDEBUG(949, *YYCURSOR);
+yy1057:
+ YYDEBUG(1057, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy935;
- if(yych <= '9') goto yy929;
- if(yych <= ':') goto yy943;
+ if(yych <= '5') goto yy1043;
+ if(yych <= '9') goto yy1039;
+ if(yych <= ':') goto yy1051;
goto yy53;
-yy950:
- YYDEBUG(950, *YYCURSOR);
+yy1058:
+ YYDEBUG(1058, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
if(yych <= '0') goto yy51;
- if(yych <= '9') goto yy914;
+ if(yych <= '9') goto yy1004;
goto yy57;
-yy951:
- YYDEBUG(951, *YYCURSOR);
+yy1059:
+ YYDEBUG(1059, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy918;
- goto yy919;
+ if(yych <= '0') goto yy1028;
+ goto yy1029;
} else {
- if(yych <= '3') goto yy920;
- if(yych <= '9') goto yy914;
+ if(yych <= '3') goto yy1030;
+ if(yych <= '9') goto yy1004;
goto yy57;
}
-yy952:
- YYDEBUG(952, *YYCURSOR);
+yy1060:
+ YYDEBUG(1060, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy953;
+ if(yych == 'C') goto yy1061;
if(yych != 'c') goto yy53;
- goto yy953;
-yy953:
- YYDEBUG(953, *YYCURSOR);
+ goto yy1061;
+yy1061:
+ YYDEBUG(1061, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy954;
- if(yych != 'e') goto yy889;
- goto yy954;
-yy954:
- YYDEBUG(954, *YYCURSOR);
+ if(yych == 'E') goto yy1062;
+ if(yych != 'e') goto yy978;
+ goto yy1062;
+yy1062:
+ YYDEBUG(1062, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy955;
+ if(yych == 'M') goto yy1063;
if(yych != 'm') goto yy53;
- goto yy955;
-yy955:
- YYDEBUG(955, *YYCURSOR);
+ goto yy1063;
+yy1063:
+ YYDEBUG(1063, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy956;
+ if(yych == 'B') goto yy1064;
if(yych != 'b') goto yy53;
- goto yy956;
-yy956:
- YYDEBUG(956, *YYCURSOR);
+ goto yy1064;
+yy1064:
+ YYDEBUG(1064, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy957;
+ if(yych == 'E') goto yy1065;
if(yych != 'e') goto yy53;
- goto yy957;
-yy957:
- YYDEBUG(957, *YYCURSOR);
+ goto yy1065;
+yy1065:
+ YYDEBUG(1065, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
+ if(yych == 'R') goto yy1066;
if(yych != 'r') goto yy53;
- goto yy958;
-yy958:
- YYDEBUG(958, *YYCURSOR);
+ goto yy1066;
+yy1066:
+ YYDEBUG(1066, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy889;
-yy959:
- YYDEBUG(959, *YYCURSOR);
+ goto yy978;
+yy1067:
+ YYDEBUG(1067, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy960;
+ if(yych == 'V') goto yy1068;
if(yych != 'v') goto yy53;
- goto yy960;
-yy960:
- YYDEBUG(960, *YYCURSOR);
+ goto yy1068;
+yy1068:
+ YYDEBUG(1068, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy961;
- if(yych != 'e') goto yy889;
- goto yy961;
-yy961:
- YYDEBUG(961, *YYCURSOR);
+ if(yych == 'E') goto yy1069;
+ if(yych != 'e') goto yy978;
+ goto yy1069;
+yy1069:
+ YYDEBUG(1069, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy962;
+ if(yych == 'M') goto yy1070;
if(yych != 'm') goto yy53;
- goto yy962;
-yy962:
- YYDEBUG(962, *YYCURSOR);
+ goto yy1070;
+yy1070:
+ YYDEBUG(1070, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy963;
+ if(yych == 'B') goto yy1071;
if(yych != 'b') goto yy53;
- goto yy963;
-yy963:
- YYDEBUG(963, *YYCURSOR);
+ goto yy1071;
+yy1071:
+ YYDEBUG(1071, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy964;
+ if(yych == 'E') goto yy1072;
if(yych != 'e') goto yy53;
- goto yy964;
-yy964:
- YYDEBUG(964, *YYCURSOR);
+ goto yy1072;
+yy1072:
+ YYDEBUG(1072, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy965:
- YYDEBUG(965, *YYCURSOR);
+yy1073:
+ YYDEBUG(1073, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy966;
+ if(yych == 'T') goto yy1074;
if(yych != 't') goto yy53;
- goto yy966;
-yy966:
- YYDEBUG(966, *YYCURSOR);
+ goto yy1074;
+yy1074:
+ YYDEBUG(1074, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'O') goto yy967;
- if(yych != 'o') goto yy889;
- goto yy967;
-yy967:
- YYDEBUG(967, *YYCURSOR);
+ if(yych == 'O') goto yy1075;
+ if(yych != 'o') goto yy978;
+ goto yy1075;
+yy1075:
+ YYDEBUG(1075, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy968;
+ if(yych == 'B') goto yy1076;
if(yych != 'b') goto yy53;
- goto yy968;
-yy968:
- YYDEBUG(968, *YYCURSOR);
+ goto yy1076;
+yy1076:
+ YYDEBUG(1076, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy969;
+ if(yych == 'E') goto yy1077;
if(yych != 'e') goto yy53;
- goto yy969;
-yy969:
- YYDEBUG(969, *YYCURSOR);
+ goto yy1077;
+yy1077:
+ YYDEBUG(1077, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy970:
- YYDEBUG(970, *YYCURSOR);
+yy1078:
+ YYDEBUG(1078, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'P'){
if(yych == 'C') goto yy121;
if(yych <= 'O') goto yy53;
- goto yy971;
+ goto yy1079;
} else {
if(yych <= 'c'){
if(yych <= 'b') goto yy53;
goto yy121;
} else {
if(yych != 'p') goto yy53;
- goto yy971;
+ goto yy1079;
}
}
-yy971:
- YYDEBUG(971, *YYCURSOR);
+yy1079:
+ YYDEBUG(1079, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy972;
- if(yych != 't') goto yy889;
- goto yy972;
-yy972:
- YYDEBUG(972, *YYCURSOR);
+ if(yych == 'T') goto yy1080;
+ if(yych != 't') goto yy978;
+ goto yy1080;
+yy1080:
+ YYDEBUG(1080, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'E') goto yy973;
- if(yych != 'e') goto yy889;
- goto yy973;
-yy973:
- YYDEBUG(973, *YYCURSOR);
+ if(yych == 'E') goto yy1081;
+ if(yych != 'e') goto yy978;
+ goto yy1081;
+yy1081:
+ YYDEBUG(1081, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'M') goto yy974;
+ if(yych == 'M') goto yy1082;
if(yych != 'm') goto yy53;
- goto yy974;
-yy974:
- YYDEBUG(974, *YYCURSOR);
+ goto yy1082;
+yy1082:
+ YYDEBUG(1082, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy975;
+ if(yych == 'B') goto yy1083;
if(yych != 'b') goto yy53;
- goto yy975;
-yy975:
- YYDEBUG(975, *YYCURSOR);
+ goto yy1083;
+yy1083:
+ YYDEBUG(1083, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy976;
+ if(yych == 'E') goto yy1084;
if(yych != 'e') goto yy53;
- goto yy976;
-yy976:
- YYDEBUG(976, *YYCURSOR);
+ goto yy1084;
+yy1084:
+ YYDEBUG(1084, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy958;
- if(yych == 'r') goto yy958;
+ if(yych == 'R') goto yy1066;
+ if(yych == 'r') goto yy1066;
goto yy53;
-yy977:
- YYDEBUG(977, *YYCURSOR);
+yy1085:
+ YYDEBUG(1085, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy981;
- if(yych == 'g') goto yy981;
+ if(yych == 'G') goto yy1089;
+ if(yych == 'g') goto yy1089;
goto yy53;
-yy978:
- YYDEBUG(978, *YYCURSOR);
+yy1086:
+ YYDEBUG(1086, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy979;
+ if(yych == 'R') goto yy1087;
if(yych != 'r') goto yy53;
- goto yy979;
-yy979:
- YYDEBUG(979, *YYCURSOR);
+ goto yy1087;
+yy1087:
+ YYDEBUG(1087, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'I') goto yy980;
- if(yych != 'i') goto yy889;
- goto yy980;
-yy980:
- YYDEBUG(980, *YYCURSOR);
+ if(yych == 'I') goto yy1088;
+ if(yych != 'i') goto yy978;
+ goto yy1088;
+yy1088:
+ YYDEBUG(1088, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'L') goto yy958;
- if(yych == 'l') goto yy958;
+ if(yych == 'L') goto yy1066;
+ if(yych == 'l') goto yy1066;
goto yy53;
-yy981:
- YYDEBUG(981, *YYCURSOR);
+yy1089:
+ YYDEBUG(1089, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy982;
- if(yych != 'u') goto yy889;
- goto yy982;
-yy982:
- YYDEBUG(982, *YYCURSOR);
+ if(yych == 'U') goto yy1090;
+ if(yych != 'u') goto yy978;
+ goto yy1090;
+yy1090:
+ YYDEBUG(1090, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'S') goto yy983;
+ if(yych == 'S') goto yy1091;
if(yych != 's') goto yy53;
- goto yy983;
-yy983:
- YYDEBUG(983, *YYCURSOR);
+ goto yy1091;
+yy1091:
+ YYDEBUG(1091, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy958;
- if(yych == 't') goto yy958;
+ if(yych == 'T') goto yy1066;
+ if(yych == 't') goto yy1066;
goto yy53;
-yy984:
- YYDEBUG(984, *YYCURSOR);
+yy1092:
+ YYDEBUG(1092, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy985;
+ if(yych == 'R') goto yy1093;
if(yych <= 'X') goto yy53;
- goto yy958;
+ goto yy1066;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy985;
+ goto yy1093;
} else {
- if(yych == 'y') goto yy958;
+ if(yych == 'y') goto yy1066;
goto yy53;
}
}
-yy985:
- YYDEBUG(985, *YYCURSOR);
+yy1093:
+ YYDEBUG(1093, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'C') goto yy986;
- if(yych != 'c') goto yy889;
- goto yy986;
-yy986:
- YYDEBUG(986, *YYCURSOR);
+ if(yych == 'C') goto yy1094;
+ if(yych != 'c') goto yy978;
+ goto yy1094;
+yy1094:
+ YYDEBUG(1094, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy958;
- if(yych == 'h') goto yy958;
+ if(yych == 'H') goto yy1066;
+ if(yych == 'h') goto yy1066;
goto yy53;
-yy987:
- YYDEBUG(987, *YYCURSOR);
+yy1095:
+ YYDEBUG(1095, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy988;
+ if(yych == 'B') goto yy1096;
if(yych != 'b') goto yy53;
- goto yy988;
-yy988:
- YYDEBUG(988, *YYCURSOR);
+ goto yy1096;
+yy1096:
+ YYDEBUG(1096, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'R') goto yy989;
- if(yych != 'r') goto yy889;
- goto yy989;
-yy989:
- YYDEBUG(989, *YYCURSOR);
+ if(yych == 'R') goto yy1097;
+ if(yych != 'r') goto yy978;
+ goto yy1097;
+yy1097:
+ YYDEBUG(1097, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'U') goto yy990;
+ if(yych == 'U') goto yy1098;
if(yych != 'u') goto yy53;
- goto yy990;
-yy990:
- YYDEBUG(990, *YYCURSOR);
+ goto yy1098;
+yy1098:
+ YYDEBUG(1098, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy991;
+ if(yych == 'A') goto yy1099;
if(yych != 'a') goto yy53;
- goto yy991;
-yy991:
- YYDEBUG(991, *YYCURSOR);
+ goto yy1099;
+yy1099:
+ YYDEBUG(1099, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy992;
+ if(yych == 'R') goto yy1100;
if(yych != 'r') goto yy53;
- goto yy992;
-yy992:
- YYDEBUG(992, *YYCURSOR);
+ goto yy1100;
+yy1100:
+ YYDEBUG(1100, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
goto yy53;
-yy993:
- YYDEBUG(993, *YYCURSOR);
+yy1101:
+ YYDEBUG(1101, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy1000;
+ if(yych == 'L') goto yy1108;
if(yych <= 'M') goto yy53;
- goto yy999;
+ goto yy1107;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy1000;
+ goto yy1108;
} else {
- if(yych == 'n') goto yy999;
+ if(yych == 'n') goto yy1107;
goto yy53;
}
}
-yy994:
- YYDEBUG(994, *YYCURSOR);
+yy1102:
+ YYDEBUG(1102, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy995;
+ if(yych == 'N') goto yy1103;
if(yych != 'n') goto yy53;
- goto yy995;
-yy995:
- YYDEBUG(995, *YYCURSOR);
+ goto yy1103;
+yy1103:
+ YYDEBUG(1103, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'U') goto yy996;
- if(yych != 'u') goto yy889;
- goto yy996;
-yy996:
- YYDEBUG(996, *YYCURSOR);
+ if(yych == 'U') goto yy1104;
+ if(yych != 'u') goto yy978;
+ goto yy1104;
+yy1104:
+ YYDEBUG(1104, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy997;
+ if(yych == 'A') goto yy1105;
if(yych != 'a') goto yy53;
- goto yy997;
-yy997:
- YYDEBUG(997, *YYCURSOR);
+ goto yy1105;
+yy1105:
+ YYDEBUG(1105, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy998;
+ if(yych == 'R') goto yy1106;
if(yych != 'r') goto yy53;
- goto yy998;
-yy998:
- YYDEBUG(998, *YYCURSOR);
+ goto yy1106;
+yy1106:
+ YYDEBUG(1106, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
goto yy53;
-yy999:
- YYDEBUG(999, *YYCURSOR);
+yy1107:
+ YYDEBUG(1107, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy958;
- if(yych == 'e') goto yy958;
- goto yy889;
-yy1000:
- YYDEBUG(1000, *YYCURSOR);
+ if(yych == 'E') goto yy1066;
+ if(yych == 'e') goto yy1066;
+ goto yy978;
+yy1108:
+ YYDEBUG(1108, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy958;
- if(yych == 'y') goto yy958;
- goto yy889;
-yy1001:
- YYDEBUG(1001, *YYCURSOR);
+ if(yych == 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
+ goto yy978;
+yy1109:
+ YYDEBUG(1109, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1002:
- YYDEBUG(1002, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1110:
+ YYDEBUG(1110, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != 'I') goto yy889;
- goto yy1003;
-yy1003:
- YYDEBUG(1003, *YYCURSOR);
+ if(yych != 'I') goto yy978;
+ goto yy1111;
+yy1111:
+ YYDEBUG(1111, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1004:
- YYDEBUG(1004, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1112:
+ YYDEBUG(1112, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'I') goto yy958;
- goto yy889;
-yy1005:
- YYDEBUG(1005, *YYCURSOR);
+ if(yych == 'I') goto yy1066;
+ goto yy978;
+yy1113:
+ YYDEBUG(1113, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '0') goto yy1018;
- if(yych <= '9') goto yy1017;
+ if(yych <= '0') goto yy1128;
+ if(yych <= '9') goto yy1127;
goto yy53;
-yy1006:
- YYDEBUG(1006, *YYCURSOR);
+yy1114:
+ YYDEBUG(1114, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1016;
+ if(yych <= '9') goto yy1126;
goto yy53;
-yy1007:
- YYDEBUG(1007, *YYCURSOR);
+yy1115:
+ YYDEBUG(1115, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1014;
- if(yych <= '6') goto yy1013;
+ if(yych <= '5') goto yy1124;
+ if(yych <= '6') goto yy1123;
goto yy53;
-yy1008:
- YYDEBUG(1008, *YYCURSOR);
+yy1116:
+ YYDEBUG(1116, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy987;
- if(yych == 'e') goto yy987;
+ if(yych == 'E') goto yy1095;
+ if(yych == 'e') goto yy1095;
goto yy53;
-yy1009:
- YYDEBUG(1009, *YYCURSOR);
+yy1117:
+ YYDEBUG(1117, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy984;
- if(yych == 'a') goto yy984;
+ if(yych == 'A') goto yy1092;
+ if(yych == 'a') goto yy1092;
goto yy53;
-yy1010:
- YYDEBUG(1010, *YYCURSOR);
+yy1118:
+ YYDEBUG(1118, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1012;
- if(yych == 'e') goto yy1012;
+ if(yych == 'E') goto yy1122;
+ if(yych == 'e') goto yy1122;
goto yy53;
-yy1011:
- YYDEBUG(1011, *YYCURSOR);
+yy1119:
+ YYDEBUG(1119, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy952;
- if(yych == 'e') goto yy952;
+ if(yych == 'E') goto yy1060;
+ if(yych == 'e') goto yy1060;
goto yy53;
-yy1012:
- YYDEBUG(1012, *YYCURSOR);
+yy1120:
+ YYDEBUG(1120, *YYCURSOR);
+ ++YYCURSOR;
+ if((YYLIMIT - YYCURSOR) < 9) YYFILL(9);
+ yych = *YYCURSOR;
+ goto yy1121;
+yy1121:
+ YYDEBUG(1121, *YYCURSOR);
+ YYDEBUG(-1, yych);
+ switch(yych){
+ case 0x09: case ' ': case '-':
+ case '.': goto yy1120;
+ case 'A': case 'a': goto yy984;
+ case 'D': case 'd': goto yy1119;
+ case 'F': case 'f': goto yy1116;
+ case 'I': goto yy977;
+ case 'J': case 'j': goto yy981;
+ case 'M': case 'm': goto yy1117;
+ case 'N': case 'n': goto yy987;
+ case 'O': case 'o': goto yy986;
+ case 'S': case 's': goto yy1118;
+ case 'V': goto yy979;
+ case 'X': goto yy980;
+ default: goto yy53;
+ }
+yy1122:
+ YYDEBUG(1122, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy971;
- if(yych == 'p') goto yy971;
+ if(yych == 'P') goto yy1079;
+ if(yych == 'p') goto yy1079;
goto yy53;
-yy1013:
- YYDEBUG(1013, *YYCURSOR);
+yy1123:
+ YYDEBUG(1123, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '6') goto yy1015;
+ if(yych <= '6') goto yy1125;
goto yy53;
-yy1014:
- YYDEBUG(1014, *YYCURSOR);
+yy1124:
+ YYDEBUG(1124, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1015;
-yy1015:
- YYDEBUG(1015, *YYCURSOR);
+ goto yy1125;
+yy1125:
+ YYDEBUG(1125, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy915;
-yy1016:
- YYDEBUG(1016, *YYCURSOR);
+ goto yy1005;
+yy1126:
+ YYDEBUG(1126, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1017:
- YYDEBUG(1017, *YYCURSOR);
+yy1127:
+ YYDEBUG(1127, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1018:
- YYDEBUG(1018, *YYCURSOR);
+yy1128:
+ YYDEBUG(1128, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '0') goto yy53;
- if(yych <= '9') goto yy1015;
+ if(yych <= '9') goto yy1125;
goto yy53;
-yy1019:
- YYDEBUG(1019, *YYCURSOR);
+yy1129:
+ YYDEBUG(1129, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '.') goto yy53;
- if(yych <= '/') goto yy1022;
- if(yych <= '0') goto yy1021;
- if(yych <= '9') goto yy1032;
+ if(yych <= '/') goto yy1132;
+ if(yych <= '0') goto yy1131;
+ if(yych <= '9') goto yy1142;
goto yy53;
-yy1020:
- YYDEBUG(1020, *YYCURSOR);
+yy1130:
+ YYDEBUG(1130, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '.') goto yy53;
- if(yych <= '/') goto yy1022;
- if(yych <= '2') goto yy1032;
+ if(yych <= '/') goto yy1132;
+ if(yych <= '2') goto yy1142;
goto yy53;
-yy1021:
- YYDEBUG(1021, *YYCURSOR);
+yy1131:
+ YYDEBUG(1131, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy1022;
-yy1022:
- YYDEBUG(1022, *YYCURSOR);
+ goto yy1132;
+yy1132:
+ YYDEBUG(1132, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1023;
- if(yych <= '3') goto yy1025;
- if(yych <= '9') goto yy1026;
+ if(yych <= '2') goto yy1133;
+ if(yych <= '3') goto yy1135;
+ if(yych <= '9') goto yy1136;
goto yy53;
-yy1023:
- YYDEBUG(1023, *YYCURSOR);
+yy1133:
+ YYDEBUG(1133, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '9') goto yy1026;
- if(yych >= 'n') goto yy1028;
- goto yy1024;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '9') goto yy1136;
+ if(yych >= 'n') goto yy1138;
+ goto yy1134;
} else {
if(yych <= 'r'){
- if(yych >= 'r') goto yy1029;
- goto yy1024;
+ if(yych >= 'r') goto yy1139;
+ goto yy1134;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1024:
- YYDEBUG(1024, *YYCURSOR);
+yy1134:
+ YYDEBUG(1134, *YYCURSOR);
-#line 1047 "ext/date/lib/parse_date.re"
+#line 1073 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("iso8601date | iso8601dateslash | dateslash");
TIMELIB_INIT;
@@ -13648,1056 +17604,1049 @@ yy1024:
TIMELIB_DEINIT;
return TIMELIB_ISO_DATE;
}
-#line 11575 "ext/date/lib/parse_date.c"
-yy1025:
- YYDEBUG(1025, *YYCURSOR);
+#line 15317 "ext/date/lib/parse_date.c"
+yy1135:
+ YYDEBUG(1135, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '1') goto yy1026;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '1') goto yy1136;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1026:
- YYDEBUG(1026, *YYCURSOR);
+yy1136:
+ YYDEBUG(1136, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'q'){
- if(yych == 'n') goto yy1028;
- goto yy1024;
+ if(yych == 'n') goto yy1138;
+ goto yy1134;
} else {
- if(yych <= 'r') goto yy1029;
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 'r') goto yy1139;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
-yy1027:
- YYDEBUG(1027, *YYCURSOR);
+yy1137:
+ YYDEBUG(1137, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy1031;
+ if(yych == 't') goto yy1141;
goto yy53;
-yy1028:
- YYDEBUG(1028, *YYCURSOR);
+yy1138:
+ YYDEBUG(1138, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1031;
+ if(yych == 'd') goto yy1141;
goto yy53;
-yy1029:
- YYDEBUG(1029, *YYCURSOR);
+yy1139:
+ YYDEBUG(1139, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1031;
+ if(yych == 'd') goto yy1141;
goto yy53;
-yy1030:
- YYDEBUG(1030, *YYCURSOR);
+yy1140:
+ YYDEBUG(1140, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != 'h') goto yy53;
- goto yy1031;
-yy1031:
- YYDEBUG(1031, *YYCURSOR);
+ goto yy1141;
+yy1141:
+ YYDEBUG(1141, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy1024;
-yy1032:
- YYDEBUG(1032, *YYCURSOR);
+ goto yy1134;
+yy1142:
+ YYDEBUG(1142, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '/') goto yy53;
- goto yy1033;
-yy1033:
- YYDEBUG(1033, *YYCURSOR);
+ goto yy1143;
+yy1143:
+ YYDEBUG(1143, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '1') goto yy1035;
- goto yy1034;
+ if(yych >= '1') goto yy1145;
+ goto yy1144;
} else {
- if(yych <= '3') goto yy1036;
- if(yych <= '9') goto yy1026;
+ if(yych <= '3') goto yy1146;
+ if(yych <= '9') goto yy1136;
goto yy53;
}
-yy1034:
- YYDEBUG(1034, *YYCURSOR);
+yy1144:
+ YYDEBUG(1144, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
if(yych <= '0'){
- if(yych <= '/') goto yy1024;
- goto yy1026;
+ if(yych <= '/') goto yy1134;
+ goto yy1136;
} else {
- if(yych <= '9') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '9') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
}
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1035:
- YYDEBUG(1035, *YYCURSOR);
+yy1145:
+ YYDEBUG(1145, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '9') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '9') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1036:
- YYDEBUG(1036, *YYCURSOR);
+yy1146:
+ YYDEBUG(1146, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych <= '/') goto yy1024;
- if(yych <= '1') goto yy1037;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych <= '/') goto yy1134;
+ if(yych <= '1') goto yy1147;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1037:
- YYDEBUG(1037, *YYCURSOR);
+yy1147:
+ YYDEBUG(1147, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == '/') goto yy1031;
- if(yych <= 'm') goto yy1024;
- goto yy1028;
+ if(yych == '/') goto yy1141;
+ if(yych <= 'm') goto yy1134;
+ goto yy1138;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1029;
+ if(yych <= 'q') goto yy1134;
+ goto yy1139;
} else {
- if(yych <= 's') goto yy1027;
- if(yych <= 't') goto yy1030;
- goto yy1024;
+ if(yych <= 's') goto yy1137;
+ if(yych <= 't') goto yy1140;
+ goto yy1134;
}
}
-yy1038:
- YYDEBUG(1038, *YYCURSOR);
+yy1148:
+ YYDEBUG(1148, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'A') goto yy1113;
+ if(yych == 'A') goto yy1223;
if(yych <= 'T') goto yy53;
- goto yy1112;
+ goto yy1222;
} else {
if(yych <= 'a'){
if(yych <= '`') goto yy53;
- goto yy1113;
+ goto yy1223;
} else {
- if(yych == 'u') goto yy1112;
+ if(yych == 'u') goto yy1222;
goto yy53;
}
}
-yy1039:
- YYDEBUG(1039, *YYCURSOR);
+yy1149:
+ YYDEBUG(1149, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1110;
- if(yych == 'e') goto yy1110;
+ if(yych == 'E') goto yy1220;
+ if(yych == 'e') goto yy1220;
goto yy53;
-yy1040:
- YYDEBUG(1040, *YYCURSOR);
+yy1150:
+ YYDEBUG(1150, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1107;
- if(yych == 'a') goto yy1107;
+ if(yych == 'A') goto yy1217;
+ if(yych == 'a') goto yy1217;
goto yy53;
-yy1041:
- YYDEBUG(1041, *YYCURSOR);
+yy1151:
+ YYDEBUG(1151, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
- if(yych == 'P') goto yy1104;
+ if(yych == 'P') goto yy1214;
if(yych <= 'T') goto yy53;
- goto yy1103;
+ goto yy1213;
} else {
if(yych <= 'p'){
if(yych <= 'o') goto yy53;
- goto yy1104;
+ goto yy1214;
} else {
- if(yych == 'u') goto yy1103;
+ if(yych == 'u') goto yy1213;
goto yy53;
}
}
-yy1042:
- YYDEBUG(1042, *YYCURSOR);
+yy1152:
+ YYDEBUG(1152, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1100;
- if(yych == 'e') goto yy1100;
+ if(yych == 'E') goto yy1210;
+ if(yych == 'e') goto yy1210;
goto yy53;
-yy1043:
- YYDEBUG(1043, *YYCURSOR);
+yy1153:
+ YYDEBUG(1153, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy1098;
- if(yych == 'c') goto yy1098;
+ if(yych == 'C') goto yy1208;
+ if(yych == 'c') goto yy1208;
goto yy53;
-yy1044:
- YYDEBUG(1044, *YYCURSOR);
+yy1154:
+ YYDEBUG(1154, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'O') goto yy1096;
- if(yych == 'o') goto yy1096;
+ if(yych == 'O') goto yy1206;
+ if(yych == 'o') goto yy1206;
goto yy53;
-yy1045:
- YYDEBUG(1045, *YYCURSOR);
+yy1155:
+ YYDEBUG(1155, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'E') goto yy1094;
- if(yych == 'e') goto yy1094;
+ if(yych == 'E') goto yy1204;
+ if(yych == 'e') goto yy1204;
goto yy53;
-yy1046:
- YYDEBUG(1046, *YYCURSOR);
+yy1156:
+ YYDEBUG(1156, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/'){
- if(yych == '-') goto yy1049;
+ if(yych == '-') goto yy1159;
goto yy53;
} else {
- if(yych <= '0') goto yy1048;
- if(yych <= '9') goto yy1068;
+ if(yych <= '0') goto yy1158;
+ if(yych <= '9') goto yy1178;
goto yy53;
}
-yy1047:
- YYDEBUG(1047, *YYCURSOR);
+yy1157:
+ YYDEBUG(1157, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy1049;
+ if(yych == '-') goto yy1159;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1068;
+ if(yych <= '2') goto yy1178;
goto yy53;
-yy1048:
- YYDEBUG(1048, *YYCURSOR);
+yy1158:
+ YYDEBUG(1158, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy1049;
-yy1049:
- YYDEBUG(1049, *YYCURSOR);
+ goto yy1159;
+yy1159:
+ YYDEBUG(1159, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '2') goto yy1050;
- if(yych <= '3') goto yy1051;
- if(yych <= '9') goto yy1052;
+ if(yych <= '2') goto yy1160;
+ if(yych <= '3') goto yy1161;
+ if(yych <= '9') goto yy1162;
goto yy53;
-yy1050:
- YYDEBUG(1050, *YYCURSOR);
+yy1160:
+ YYDEBUG(1160, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- goto yy1052;
+ if(yych <= '/') goto yy860;
+ goto yy1162;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1051:
- YYDEBUG(1051, *YYCURSOR);
+yy1161:
+ YYDEBUG(1161, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy775;
- goto yy1052;
+ if(yych <= '/') goto yy860;
+ goto yy1162;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1052:
- YYDEBUG(1052, *YYCURSOR);
+yy1162:
+ YYDEBUG(1162, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == 'T') goto yy1057;
- if(yych <= 'm') goto yy775;
- goto yy1054;
+ if(yych == 'T') goto yy1167;
+ if(yych <= 'm') goto yy860;
+ goto yy1164;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1053:
- YYDEBUG(1053, *YYCURSOR);
+yy1163:
+ YYDEBUG(1163, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 't') goto yy1067;
+ if(yych == 't') goto yy1177;
goto yy53;
-yy1054:
- YYDEBUG(1054, *YYCURSOR);
+yy1164:
+ YYDEBUG(1164, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1067;
+ if(yych == 'd') goto yy1177;
goto yy53;
-yy1055:
- YYDEBUG(1055, *YYCURSOR);
+yy1165:
+ YYDEBUG(1165, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'd') goto yy1067;
+ if(yych == 'd') goto yy1177;
goto yy53;
-yy1056:
- YYDEBUG(1056, *YYCURSOR);
+yy1166:
+ YYDEBUG(1166, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'h') goto yy1067;
+ if(yych == 'h') goto yy1177;
goto yy53;
-yy1057:
- YYDEBUG(1057, *YYCURSOR);
+yy1167:
+ YYDEBUG(1167, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1058;
- if(yych <= '2') goto yy1059;
- if(yych <= '9') goto yy1060;
+ if(yych <= '1') goto yy1168;
+ if(yych <= '2') goto yy1169;
+ if(yych <= '9') goto yy1170;
goto yy53;
-yy1058:
- YYDEBUG(1058, *YYCURSOR);
+yy1168:
+ YYDEBUG(1168, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1060;
- if(yych <= ':') goto yy1061;
+ if(yych <= '9') goto yy1170;
+ if(yych <= ':') goto yy1171;
goto yy53;
-yy1059:
- YYDEBUG(1059, *YYCURSOR);
+yy1169:
+ YYDEBUG(1169, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy1060;
- if(yych == ':') goto yy1061;
+ if(yych <= '3') goto yy1170;
+ if(yych == ':') goto yy1171;
goto yy53;
-yy1060:
- YYDEBUG(1060, *YYCURSOR);
+yy1170:
+ YYDEBUG(1170, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1061;
-yy1061:
- YYDEBUG(1061, *YYCURSOR);
+ goto yy1171;
+yy1171:
+ YYDEBUG(1171, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1062;
- if(yych <= '9') goto yy1063;
+ if(yych <= '5') goto yy1172;
+ if(yych <= '9') goto yy1173;
goto yy53;
-yy1062:
- YYDEBUG(1062, *YYCURSOR);
+yy1172:
+ YYDEBUG(1172, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1063;
- if(yych <= ':') goto yy1064;
+ if(yych <= '9') goto yy1173;
+ if(yych <= ':') goto yy1174;
goto yy53;
-yy1063:
- YYDEBUG(1063, *YYCURSOR);
+yy1173:
+ YYDEBUG(1173, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1064;
-yy1064:
- YYDEBUG(1064, *YYCURSOR);
+ goto yy1174;
+yy1174:
+ YYDEBUG(1174, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1065;
- if(yych <= '6') goto yy1066;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1175;
+ if(yych <= '6') goto yy1176;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy1065:
- YYDEBUG(1065, *YYCURSOR);
+yy1175:
+ YYDEBUG(1175, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1066:
- YYDEBUG(1066, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1176:
+ YYDEBUG(1176, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '0') goto yy932;
- goto yy933;
-yy1067:
- YYDEBUG(1067, *YYCURSOR);
+ if(yych == '0') goto yy1025;
+ goto yy1026;
+yy1177:
+ YYDEBUG(1177, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == 'T') goto yy1057;
- goto yy775;
-yy1068:
- YYDEBUG(1068, *YYCURSOR);
+ if(yych == 'T') goto yy1167;
+ goto yy860;
+yy1178:
+ YYDEBUG(1178, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != '-') goto yy53;
- goto yy1069;
-yy1069:
- YYDEBUG(1069, *YYCURSOR);
+ goto yy1179;
+yy1179:
+ YYDEBUG(1179, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '2'){
if(yych <= '/') goto yy53;
- if(yych >= '1') goto yy1071;
- goto yy1070;
+ if(yych >= '1') goto yy1181;
+ goto yy1180;
} else {
- if(yych <= '3') goto yy1072;
- if(yych <= '9') goto yy1052;
+ if(yych <= '3') goto yy1182;
+ if(yych <= '9') goto yy1162;
goto yy53;
}
-yy1070:
- YYDEBUG(1070, *YYCURSOR);
+yy1180:
+ YYDEBUG(1180, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- if(yych <= '0') goto yy1052;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ if(yych <= '0') goto yy1162;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1071:
- YYDEBUG(1071, *YYCURSOR);
+yy1181:
+ YYDEBUG(1181, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '9'){
- if(yych <= '/') goto yy775;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1072:
- YYDEBUG(1072, *YYCURSOR);
+yy1182:
+ YYDEBUG(1182, *YYCURSOR);
yyaccept = 12;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'm'){
if(yych <= '1'){
- if(yych <= '/') goto yy775;
- goto yy1073;
+ if(yych <= '/') goto yy860;
+ goto yy1183;
} else {
- if(yych == 'T') goto yy1057;
- goto yy775;
+ if(yych == 'T') goto yy1167;
+ goto yy860;
}
} else {
if(yych <= 'r'){
- if(yych <= 'n') goto yy1054;
- if(yych <= 'q') goto yy775;
- goto yy1055;
+ if(yych <= 'n') goto yy1164;
+ if(yych <= 'q') goto yy860;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy775;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy860;
}
}
-yy1073:
- YYDEBUG(1073, *YYCURSOR);
+yy1183:
+ YYDEBUG(1183, *YYCURSOR);
yyaccept = 18;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'n'){
- if(yych == 'T') goto yy1074;
- if(yych <= 'm') goto yy1024;
- goto yy1054;
+ if(yych == 'T') goto yy1184;
+ if(yych <= 'm') goto yy1134;
+ goto yy1164;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy1024;
- goto yy1055;
+ if(yych <= 'q') goto yy1134;
+ goto yy1165;
} else {
- if(yych <= 's') goto yy1053;
- if(yych <= 't') goto yy1056;
- goto yy1024;
+ if(yych <= 's') goto yy1163;
+ if(yych <= 't') goto yy1166;
+ goto yy1134;
}
}
-yy1074:
- YYDEBUG(1074, *YYCURSOR);
+yy1184:
+ YYDEBUG(1184, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1075;
- if(yych <= '2') goto yy1076;
- if(yych <= '9') goto yy1060;
+ if(yych <= '1') goto yy1185;
+ if(yych <= '2') goto yy1186;
+ if(yych <= '9') goto yy1170;
goto yy53;
-yy1075:
- YYDEBUG(1075, *YYCURSOR);
+yy1185:
+ YYDEBUG(1185, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1077;
- if(yych <= ':') goto yy1061;
+ if(yych <= '9') goto yy1187;
+ if(yych <= ':') goto yy1171;
goto yy53;
-yy1076:
- YYDEBUG(1076, *YYCURSOR);
+yy1186:
+ YYDEBUG(1186, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '3') goto yy1077;
- if(yych == ':') goto yy1061;
+ if(yych <= '3') goto yy1187;
+ if(yych == ':') goto yy1171;
goto yy53;
-yy1077:
- YYDEBUG(1077, *YYCURSOR);
+yy1187:
+ YYDEBUG(1187, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1078;
-yy1078:
- YYDEBUG(1078, *YYCURSOR);
+ goto yy1188;
+yy1188:
+ YYDEBUG(1188, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1079;
- if(yych <= '9') goto yy1063;
+ if(yych <= '5') goto yy1189;
+ if(yych <= '9') goto yy1173;
goto yy53;
-yy1079:
- YYDEBUG(1079, *YYCURSOR);
+yy1189:
+ YYDEBUG(1189, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '9') goto yy1080;
- if(yych <= ':') goto yy1064;
+ if(yych <= '9') goto yy1190;
+ if(yych <= ':') goto yy1174;
goto yy53;
-yy1080:
- YYDEBUG(1080, *YYCURSOR);
+yy1190:
+ YYDEBUG(1190, *YYCURSOR);
yych = *++YYCURSOR;
if(yych != ':') goto yy53;
- goto yy1081;
-yy1081:
- YYDEBUG(1081, *YYCURSOR);
+ goto yy1191;
+yy1191:
+ YYDEBUG(1191, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1082;
- if(yych <= '6') goto yy1083;
- if(yych <= '9') goto yy932;
+ if(yych <= '5') goto yy1192;
+ if(yych <= '6') goto yy1193;
+ if(yych <= '9') goto yy1025;
goto yy53;
-yy1082:
- YYDEBUG(1082, *YYCURSOR);
+yy1192:
+ YYDEBUG(1192, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1084;
- goto yy933;
-yy1083:
- YYDEBUG(1083, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1194;
+ goto yy1026;
+yy1193:
+ YYDEBUG(1193, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych != '0') goto yy933;
- goto yy1084;
-yy1084:
- YYDEBUG(1084, *YYCURSOR);
+ if(yych != '0') goto yy1026;
+ goto yy1194;
+yy1194:
+ YYDEBUG(1194, *YYCURSOR);
yyaccept = 19;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych != '.') goto yy933;
- goto yy1085;
-yy1085:
- YYDEBUG(1085, *YYCURSOR);
+ if(yych != '.') goto yy1026;
+ goto yy1195;
+yy1195:
+ YYDEBUG(1195, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1086;
-yy1086:
- YYDEBUG(1086, *YYCURSOR);
+ goto yy1196;
+yy1196:
+ YYDEBUG(1196, *YYCURSOR);
yyaccept = 19;
YYMARKER = ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 6) YYFILL(6);
yych = *YYCURSOR;
- goto yy1087;
-yy1087:
- YYDEBUG(1087, *YYCURSOR);
+ goto yy1197;
+yy1197:
+ YYDEBUG(1197, *YYCURSOR);
if(yych <= ','){
- if(yych != '+') goto yy933;
- goto yy1088;
+ if(yych != '+') goto yy1026;
+ goto yy1198;
} else {
- if(yych <= '-') goto yy1088;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1086;
- goto yy933;
+ if(yych <= '-') goto yy1198;
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1196;
+ goto yy1026;
}
-yy1088:
- YYDEBUG(1088, *YYCURSOR);
+yy1198:
+ YYDEBUG(1198, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '1') goto yy1089;
- if(yych <= '2') goto yy1090;
- if(yych <= '9') goto yy1091;
+ if(yych <= '1') goto yy1199;
+ if(yych <= '2') goto yy1200;
+ if(yych <= '9') goto yy1201;
goto yy53;
-yy1089:
- YYDEBUG(1089, *YYCURSOR);
+yy1199:
+ YYDEBUG(1199, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy1091;
- if(yych <= ':') goto yy1092;
- goto yy933;
-yy1090:
- YYDEBUG(1090, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1201;
+ if(yych <= ':') goto yy1202;
+ goto yy1026;
+yy1200:
+ YYDEBUG(1200, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '5'){
- if(yych <= '/') goto yy933;
- if(yych >= '4') goto yy1093;
- goto yy1091;
+ if(yych <= '/') goto yy1026;
+ if(yych >= '4') goto yy1203;
+ goto yy1201;
} else {
- if(yych <= '9') goto yy932;
- if(yych <= ':') goto yy1092;
- goto yy933;
+ if(yych <= '9') goto yy1025;
+ if(yych <= ':') goto yy1202;
+ goto yy1026;
}
-yy1091:
- YYDEBUG(1091, *YYCURSOR);
+yy1201:
+ YYDEBUG(1201, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '5') goto yy1093;
- if(yych <= '9') goto yy932;
- if(yych >= ';') goto yy933;
- goto yy1092;
-yy1092:
- YYDEBUG(1092, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '5') goto yy1203;
+ if(yych <= '9') goto yy1025;
+ if(yych >= ';') goto yy1026;
+ goto yy1202;
+yy1202:
+ YYDEBUG(1202, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '5') goto yy1093;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1093:
- YYDEBUG(1093, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '5') goto yy1203;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1203:
+ YYDEBUG(1203, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '/') goto yy933;
- if(yych <= '9') goto yy932;
- goto yy933;
-yy1094:
- YYDEBUG(1094, *YYCURSOR);
+ if(yych <= '/') goto yy1026;
+ if(yych <= '9') goto yy1025;
+ goto yy1026;
+yy1204:
+ YYDEBUG(1204, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'C') goto yy1095;
+ if(yych == 'C') goto yy1205;
if(yych != 'c') goto yy53;
- goto yy1095;
-yy1095:
- YYDEBUG(1095, *YYCURSOR);
+ goto yy1205;
+yy1205:
+ YYDEBUG(1205, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy954;
- if(yych == 'e') goto yy954;
- goto yy889;
+ if(yych <= 'E') goto yy1062;
+ if(yych == 'e') goto yy1062;
+ goto yy978;
}
-yy1096:
- YYDEBUG(1096, *YYCURSOR);
+yy1206:
+ YYDEBUG(1206, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'V') goto yy1097;
+ if(yych == 'V') goto yy1207;
if(yych != 'v') goto yy53;
- goto yy1097;
-yy1097:
- YYDEBUG(1097, *YYCURSOR);
+ goto yy1207;
+yy1207:
+ YYDEBUG(1207, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy961;
- if(yych == 'e') goto yy961;
- goto yy889;
+ if(yych <= 'E') goto yy1069;
+ if(yych == 'e') goto yy1069;
+ goto yy978;
}
-yy1098:
- YYDEBUG(1098, *YYCURSOR);
+yy1208:
+ YYDEBUG(1208, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy1099;
+ if(yych == 'T') goto yy1209;
if(yych != 't') goto yy53;
- goto yy1099;
-yy1099:
- YYDEBUG(1099, *YYCURSOR);
+ goto yy1209;
+yy1209:
+ YYDEBUG(1209, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'O') goto yy967;
- if(yych == 'o') goto yy967;
- goto yy889;
+ if(yych <= 'O') goto yy1075;
+ if(yych == 'o') goto yy1075;
+ goto yy978;
}
-yy1100:
- YYDEBUG(1100, *YYCURSOR);
+yy1210:
+ YYDEBUG(1210, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'P') goto yy1101;
+ if(yych == 'P') goto yy1211;
if(yych != 'p') goto yy53;
- goto yy1101;
-yy1101:
- YYDEBUG(1101, *YYCURSOR);
+ goto yy1211;
+yy1211:
+ YYDEBUG(1211, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'T') goto yy1102;
- if(yych != 't') goto yy889;
- goto yy1102;
+ if(yych <= 'T') goto yy1212;
+ if(yych != 't') goto yy978;
+ goto yy1212;
}
-yy1102:
- YYDEBUG(1102, *YYCURSOR);
+yy1212:
+ YYDEBUG(1212, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy973;
- if(yych == 'e') goto yy973;
- goto yy889;
+ if(yych <= 'E') goto yy1081;
+ if(yych == 'e') goto yy1081;
+ goto yy978;
}
-yy1103:
- YYDEBUG(1103, *YYCURSOR);
+yy1213:
+ YYDEBUG(1213, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'G') goto yy1106;
- if(yych == 'g') goto yy1106;
+ if(yych == 'G') goto yy1216;
+ if(yych == 'g') goto yy1216;
goto yy53;
-yy1104:
- YYDEBUG(1104, *YYCURSOR);
+yy1214:
+ YYDEBUG(1214, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy1105;
+ if(yych == 'R') goto yy1215;
if(yych != 'r') goto yy53;
- goto yy1105;
-yy1105:
- YYDEBUG(1105, *YYCURSOR);
+ goto yy1215;
+yy1215:
+ YYDEBUG(1215, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'I') goto yy980;
- if(yych == 'i') goto yy980;
- goto yy889;
+ if(yych <= 'I') goto yy1088;
+ if(yych == 'i') goto yy1088;
+ goto yy978;
}
-yy1106:
- YYDEBUG(1106, *YYCURSOR);
+yy1216:
+ YYDEBUG(1216, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'U') goto yy982;
- if(yych == 'u') goto yy982;
- goto yy889;
+ if(yych <= 'U') goto yy1090;
+ if(yych == 'u') goto yy1090;
+ goto yy978;
}
-yy1107:
- YYDEBUG(1107, *YYCURSOR);
+yy1217:
+ YYDEBUG(1217, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
- if(yych == 'R') goto yy1108;
+ if(yych == 'R') goto yy1218;
if(yych <= 'X') goto yy53;
- goto yy1109;
+ goto yy1219;
} else {
if(yych <= 'r'){
if(yych <= 'q') goto yy53;
- goto yy1108;
+ goto yy1218;
} else {
- if(yych == 'y') goto yy1109;
+ if(yych == 'y') goto yy1219;
goto yy53;
}
}
-yy1108:
- YYDEBUG(1108, *YYCURSOR);
+yy1218:
+ YYDEBUG(1218, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'B'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'C') goto yy986;
- if(yych == 'c') goto yy986;
- goto yy889;
+ if(yych <= 'C') goto yy1094;
+ if(yych == 'c') goto yy1094;
+ goto yy978;
}
-yy1109:
- YYDEBUG(1109, *YYCURSOR);
+yy1219:
+ YYDEBUG(1219, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '-') goto yy863;
- goto yy889;
-yy1110:
- YYDEBUG(1110, *YYCURSOR);
+ if(yych == '-') goto yy954;
+ goto yy978;
+yy1220:
+ YYDEBUG(1220, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy1111;
+ if(yych == 'B') goto yy1221;
if(yych != 'b') goto yy53;
- goto yy1111;
-yy1111:
- YYDEBUG(1111, *YYCURSOR);
+ goto yy1221;
+yy1221:
+ YYDEBUG(1221, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Q'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'R') goto yy989;
- if(yych == 'r') goto yy989;
- goto yy889;
+ if(yych <= 'R') goto yy1097;
+ if(yych == 'r') goto yy1097;
+ goto yy978;
}
-yy1112:
- YYDEBUG(1112, *YYCURSOR);
+yy1222:
+ YYDEBUG(1222, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
- if(yych == 'L') goto yy1116;
+ if(yych == 'L') goto yy1226;
if(yych <= 'M') goto yy53;
- goto yy1115;
+ goto yy1225;
} else {
if(yych <= 'l'){
if(yych <= 'k') goto yy53;
- goto yy1116;
+ goto yy1226;
} else {
- if(yych == 'n') goto yy1115;
+ if(yych == 'n') goto yy1225;
goto yy53;
}
}
-yy1113:
- YYDEBUG(1113, *YYCURSOR);
+yy1223:
+ YYDEBUG(1223, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'N') goto yy1114;
+ if(yych == 'N') goto yy1224;
if(yych != 'n') goto yy53;
- goto yy1114;
-yy1114:
- YYDEBUG(1114, *YYCURSOR);
+ goto yy1224;
+yy1224:
+ YYDEBUG(1224, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'U') goto yy996;
- if(yych == 'u') goto yy996;
- goto yy889;
+ if(yych <= 'U') goto yy1104;
+ if(yych == 'u') goto yy1104;
+ goto yy978;
}
-yy1115:
- YYDEBUG(1115, *YYCURSOR);
+yy1225:
+ YYDEBUG(1225, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'E') goto yy958;
- if(yych == 'e') goto yy958;
- goto yy889;
+ if(yych <= 'E') goto yy1066;
+ if(yych == 'e') goto yy1066;
+ goto yy978;
}
-yy1116:
- YYDEBUG(1116, *YYCURSOR);
+yy1226:
+ YYDEBUG(1226, *YYCURSOR);
yyaccept = 17;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
- if(yych == '-') goto yy863;
- goto yy889;
+ if(yych == '-') goto yy954;
+ goto yy978;
} else {
- if(yych <= 'Y') goto yy958;
- if(yych == 'y') goto yy958;
- goto yy889;
+ if(yych <= 'Y') goto yy1066;
+ if(yych == 'y') goto yy1066;
+ goto yy978;
}
-yy1117:
- YYDEBUG(1117, *YYCURSOR);
+yy1227:
+ YYDEBUG(1227, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'T'){
- if(yych <= '-') goto yy617;
- if(yych <= '.') goto yy845;
- if(yych <= '/') goto yy844;
- goto yy617;
+ if(yych <= '/'){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy784;
+ goto yy931;
+ } else {
+ if(yych <= ',') goto yy784;
+ if(yych <= '.') goto yy931;
+ goto yy930;
+ }
} else {
- if(yych <= 'U') goto yy74;
- if(yych == 'u') goto yy74;
- goto yy617;
+ if(yych <= 'U'){
+ if(yych <= 'T') goto yy784;
+ goto yy74;
+ } else {
+ if(yych == 'u') goto yy74;
+ goto yy784;
+ }
}
-yy1118:
- YYDEBUG(1118, *YYCURSOR);
+yy1228:
+ YYDEBUG(1228, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'P'){
if(yych == 'C') goto yy121;
if(yych <= 'O') goto yy53;
- goto yy709;
+ goto yy792;
} else {
if(yych <= 'c'){
if(yych <= 'b') goto yy53;
goto yy121;
} else {
- if(yych == 'p') goto yy709;
+ if(yych == 'p') goto yy792;
goto yy53;
}
}
-yy1119:
- YYDEBUG(1119, *YYCURSOR);
+yy1229:
+ YYDEBUG(1229, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'm'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy845;
+ if(yych <= '9'){
+ if(yych <= ','){
+ if(yych != 0x09) goto yy1232;
+ goto yy1230;
} else {
- if(yych <= '/') goto yy844;
- if(yych <= '9') goto yy851;
- goto yy1121;
+ if(yych <= '-') goto yy695;
+ if(yych <= '.') goto yy931;
+ if(yych <= '/') goto yy930;
+ goto yy935;
}
} else {
- if(yych <= 'r'){
- if(yych <= 'n') goto yy612;
- if(yych <= 'q') goto yy1121;
- goto yy613;
+ if(yych <= 'q'){
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1120:
- YYDEBUG(1120, *YYCURSOR);
+yy1230:
+ YYDEBUG(1230, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy1232;
+ if(yych <= '0') goto yy932;
+ if(yych <= '1') goto yy933;
+ if(yych <= '9') goto yy934;
+ goto yy1232;
+yy1231:
+ YYDEBUG(1231, *YYCURSOR);
++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 13) YYFILL(13);
yych = *YYCURSOR;
- goto yy1121;
-yy1121:
- YYDEBUG(1121, *YYCURSOR);
+ goto yy1232;
+yy1232:
+ YYDEBUG(1232, *YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ': goto yy1120;
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',':
+ case 0x09: case ' ': goto yy1231;
case '-':
- case '.': goto yy616;
- case 'A': case 'a': goto yy699;
- case 'D': case 'd': goto yy608;
- case 'F': case 'f': goto yy609;
+ case '.': goto yy783;
+ case 'A': case 'a': goto yy780;
+ case 'D': case 'd': goto yy688;
+ case 'F': case 'f': goto yy689;
case 'H': case 'h': goto yy60;
- case 'I': goto yy619;
- case 'J': case 'j': goto yy623;
- case 'M': case 'm': goto yy607;
- case 'N': case 'n': goto yy626;
- case 'O': case 'o': goto yy625;
- case 'S': case 's': goto yy605;
+ case 'I': goto yy697;
+ case 'J': case 'j': goto yy701;
+ case 'M': case 'm': goto yy687;
+ case 'N': case 'n': goto yy704;
+ case 'O': case 'o': goto yy703;
+ case 'S': case 's': goto yy685;
case 'T': case 't': goto yy65;
- case 'V': goto yy621;
+ case 'V': goto yy699;
case 'W': case 'w': goto yy62;
- case 'X': goto yy622;
+ case 'X': goto yy700;
case 'Y': case 'y': goto yy64;
default: goto yy53;
}
-yy1122:
- YYDEBUG(1122, *YYCURSOR);
+yy1233:
+ YYDEBUG(1233, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy1123;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy1230;
+ if(yych <= ',') goto yy1232;
+ goto yy695;
} else {
- if(yych <= '/') goto yy844;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy1124;
+ if(yych <= '.') goto yy1234;
+ if(yych <= '/') goto yy930;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy1121;
+ if(yych <= ':') goto yy1235;
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1123:
- YYDEBUG(1123, *YYCURSOR);
+yy1234:
+ YYDEBUG(1234, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '1'){
- if(yych <= '/') goto yy617;
- if(yych <= '0') goto yy1147;
- goto yy1148;
+ if(yych <= '/') goto yy784;
+ if(yych <= '0') goto yy1258;
+ goto yy1259;
} else {
- if(yych <= '5') goto yy1149;
- if(yych <= '9') goto yy1150;
- goto yy617;
+ if(yych <= '5') goto yy1260;
+ if(yych <= '9') goto yy1261;
+ goto yy784;
}
-yy1124:
- YYDEBUG(1124, *YYCURSOR);
+yy1235:
+ YYDEBUG(1235, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1142;
- if(yych <= '9') goto yy1143;
+ if(yych <= '5') goto yy1253;
+ if(yych <= '9') goto yy1254;
goto yy53;
-yy1125:
- YYDEBUG(1125, *YYCURSOR);
+yy1236:
+ YYDEBUG(1236, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == '-') goto yy852;
+ if(yych == '-') goto yy936;
if(yych <= '/') goto yy57;
if(yych >= ':') goto yy57;
- goto yy1126;
-yy1126:
- YYDEBUG(1126, *YYCURSOR);
+ goto yy1237;
+yy1237:
+ YYDEBUG(1237, *YYCURSOR);
yyaccept = 20;
yych = *(YYMARKER = ++YYCURSOR);
YYDEBUG(-1, yych);
switch(yych){
- case ' ':
- case '!':
- case '"':
- case '#':
- case '$':
- case '%':
- case '&':
- case '\'':
- case '(':
- case ')':
- case '*':
- case '+':
- case ',': case 'A': case 'D': case 'F': case 'H':
+ case 0x09: case ' ': case 'A': case 'D': case 'F': case 'H':
case 'I':
case 'J': case 'M':
case 'N':
@@ -14706,27 +18655,28 @@ yy1126:
case 'Y': case 'a': case 'd': case 'f': case 'h': case 'j': case 'm':
case 'n':
case 'o': case 's':
- case 't': case 'w': case 'y': goto yy884;
- case '-': goto yy881;
- case '.': goto yy887;
- case '/': goto yy882;
- case '0': goto yy1128;
- case '1': goto yy1129;
- case '2': goto yy1130;
- case '3': goto yy1131;
+ case 't': case 'w': case 'y': goto yy975;
+ case '-': goto yy972;
+ case '.': goto yy976;
+ case '/': goto yy973;
+ case '0': goto yy1239;
+ case '1': goto yy1240;
+ case '2': goto yy1241;
+ case '3': goto yy1242;
case '4':
- case '5': goto yy1132;
- case '6': goto yy1133;
+ case '5': goto yy1243;
+ case '6': goto yy1244;
case '7':
case '8':
case '9': goto yy51;
- case 'W': goto yy904;
- default: goto yy1127;
+ case ':': goto yy991;
+ case 'W': goto yy994;
+ default: goto yy1238;
}
-yy1127:
- YYDEBUG(1127, *YYCURSOR);
+yy1238:
+ YYDEBUG(1238, *YYCURSOR);
-#line 969 "ext/date/lib/parse_date.re"
+#line 992 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("gnunocolon");
TIMELIB_INIT;
@@ -14741,110 +18691,116 @@ yy1127:
break;
default:
TIMELIB_DEINIT;
+ add_error(s, "Double time specification");
return TIMELIB_ERROR;
}
s->time->have_time++;
TIMELIB_DEINIT;
return TIMELIB_GNU_NOCOLON;
}
-#line 12466 "ext/date/lib/parse_date.c"
-yy1128:
- YYDEBUG(1128, *YYCURSOR);
+#line 16201 "ext/date/lib/parse_date.c"
+yy1239:
+ YYDEBUG(1239, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy1140;
- if(yych <= '9') goto yy1141;
+ if(yych <= '0') goto yy1251;
+ if(yych <= '9') goto yy1252;
goto yy57;
-yy1129:
- YYDEBUG(1129, *YYCURSOR);
+yy1240:
+ YYDEBUG(1240, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '2') goto yy1139;
- if(yych <= '9') goto yy1138;
+ if(yych <= '2') goto yy1250;
+ if(yych <= '9') goto yy1249;
goto yy57;
-yy1130:
- YYDEBUG(1130, *YYCURSOR);
+yy1241:
+ YYDEBUG(1241, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy1138;
+ if(yych <= '9') goto yy1249;
goto yy57;
-yy1131:
- YYDEBUG(1131, *YYCURSOR);
+yy1242:
+ YYDEBUG(1242, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '5') goto yy1136;
- if(yych <= '6') goto yy1137;
- if(yych <= '9') goto yy1134;
+ if(yych <= '5') goto yy1247;
+ if(yych <= '6') goto yy1248;
+ if(yych <= '9') goto yy1245;
goto yy57;
-yy1132:
- YYDEBUG(1132, *YYCURSOR);
+yy1243:
+ YYDEBUG(1243, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '9') goto yy1134;
+ if(yych <= '9') goto yy1245;
goto yy57;
-yy1133:
- YYDEBUG(1133, *YYCURSOR);
+yy1244:
+ YYDEBUG(1244, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy57;
- if(yych <= '0') goto yy1134;
+ if(yych <= '0') goto yy1245;
if(yych <= '9') goto yy51;
goto yy57;
-yy1134:
- YYDEBUG(1134, *YYCURSOR);
+yy1245:
+ YYDEBUG(1245, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
if(yybm[0+yych] & 8) {
goto yy51;
}
- if(yych <= 'X'){
- if(yych <= 'G'){
- if(yych <= 'C'){
- if(yych == ' ') goto yy57;
- goto yy1135;
+ if(yych <= 'W'){
+ if(yych <= 'F'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych >= ' ') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'E') goto yy1135;
- if(yych <= 'F') goto yy57;
- goto yy1135;
+ if(yych == 'D') goto yy57;
+ if(yych >= 'F') goto yy57;
+ goto yy1246;
}
} else {
- if(yych <= 'R'){
- if(yych <= 'H') goto yy57;
- if(yych == 'M') goto yy57;
- goto yy1135;
+ if(yych <= 'M'){
+ if(yych == 'H') goto yy57;
+ if(yych >= 'M') goto yy57;
+ goto yy1246;
} else {
+ if(yych <= 'R') goto yy1246;
if(yych <= 'T') goto yy57;
- if(yych == 'W') goto yy57;
- goto yy1135;
+ if(yych >= 'W') goto yy57;
+ goto yy1246;
}
}
} else {
- if(yych <= 'l'){
- if(yych <= 'e'){
- if(yych <= 'Y') goto yy57;
- if(yych == 'd') goto yy57;
- goto yy1135;
+ if(yych <= 'h'){
+ if(yych <= 'd'){
+ if(yych == 'Y') goto yy57;
+ if(yych >= 'd') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'g') goto yy1135;
- if(yych <= 'h') goto yy57;
- goto yy1135;
+ if(yych == 'f') goto yy57;
+ if(yych >= 'h') goto yy57;
+ goto yy1246;
}
} else {
- if(yych <= 'v'){
- if(yych <= 'm') goto yy57;
- if(yych <= 'r') goto yy1135;
- if(yych <= 't') goto yy57;
- goto yy1135;
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych >= 's') goto yy57;
+ goto yy1246;
} else {
- if(yych == 'x') goto yy1135;
- if(yych <= 'y') goto yy57;
- goto yy1135;
+ if(yych <= 'w'){
+ if(yych >= 'w') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
}
}
}
-yy1135:
- YYDEBUG(1135, *YYCURSOR);
+yy1246:
+ YYDEBUG(1246, *YYCURSOR);
-#line 1014 "ext/date/lib/parse_date.re"
+#line 1038 "ext/date/lib/parse_date.re"
{
int tz_not_found;
DEBUG_OUTPUT("iso8601nocolon");
@@ -14856,331 +18812,632 @@ yy1135:
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
}
-#line 12564 "ext/date/lib/parse_date.c"
-yy1136:
- YYDEBUG(1136, *YYCURSOR);
+#line 16306 "ext/date/lib/parse_date.c"
+yy1247:
+ YYDEBUG(1247, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1246;
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1137:
- YYDEBUG(1137, *YYCURSOR);
+yy1248:
+ YYDEBUG(1248, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6': goto yy914;
- case '7':
- case '8':
- case '9': goto yy51;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '6'){
+ if(yych <= '/') goto yy1246;
+ goto yy1004;
+ } else {
+ if(yych <= '9') goto yy51;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1138:
- YYDEBUG(1138, *YYCURSOR);
+yy1249:
+ YYDEBUG(1249, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '/') goto yy1246;
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1139:
- YYDEBUG(1139, *YYCURSOR);
+yy1250:
+ YYDEBUG(1250, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy918;
- case '1':
- case '2': goto yy919;
- case '3': goto yy920;
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'T'){
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy1028;
+ } else {
+ if(yych <= '2') goto yy1029;
+ if(yych <= '3') goto yy1030;
+ goto yy1004;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy1246;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy1246;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy1246;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1140:
- YYDEBUG(1140, *YYCURSOR);
+yy1251:
+ YYDEBUG(1251, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy51;
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'V'){
+ if(yych <= 'D'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy51;
+ } else {
+ if(yych <= '9') goto yy1004;
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 'H'){
+ if(yych == 'F') goto yy57;
+ if(yych <= 'G') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'M'){
+ if(yych <= 'L') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'R') goto yy1246;
+ if(yych <= 'T') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'c'){
+ if(yych == 'X') goto yy1246;
+ if(yych <= 'Y') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'd') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych == 'g') goto yy1246;
+ goto yy57;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych == 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1141:
- YYDEBUG(1141, *YYCURSOR);
+yy1252:
+ YYDEBUG(1252, *YYCURSOR);
yyaccept = 21;
yych = *(YYMARKER = ++YYCURSOR);
- YYDEBUG(-1, yych);
- switch(yych){
- case ' ': case 'D': case 'F': case 'H': case 'M': case 'S':
- case 'T': case 'W': case 'Y': case 'd': case 'f': case 'h': case 'm': case 's':
- case 't': case 'w': case 'y': goto yy57;
- case '0': goto yy918;
- case '1':
- case '2': goto yy919;
- case '3': goto yy920;
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9': goto yy914;
- default: goto yy1135;
+ if(yych <= 'T'){
+ if(yych <= '9'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy57;
+ if(yych <= 0x1F) goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= '0'){
+ if(yych <= '/') goto yy1246;
+ goto yy1028;
+ } else {
+ if(yych <= '2') goto yy1029;
+ if(yych <= '3') goto yy1030;
+ goto yy1004;
+ }
+ }
+ } else {
+ if(yych <= 'G'){
+ if(yych <= 'D'){
+ if(yych <= 'C') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'F') goto yy57;
+ goto yy1246;
+ }
+ } else {
+ if(yych <= 'L'){
+ if(yych <= 'H') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'M') goto yy57;
+ if(yych <= 'R') goto yy1246;
+ goto yy57;
+ }
+ }
+ }
+ } else {
+ if(yych <= 'g'){
+ if(yych <= 'Y'){
+ if(yych == 'W') goto yy57;
+ if(yych <= 'X') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'c') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'f') goto yy57;
+ goto yy1246;
+ }
+ }
+ } else {
+ if(yych <= 't'){
+ if(yych <= 'l'){
+ if(yych <= 'h') goto yy57;
+ goto yy1246;
+ } else {
+ if(yych <= 'm') goto yy57;
+ if(yych <= 'r') goto yy1246;
+ goto yy57;
+ }
+ } else {
+ if(yych <= 'w'){
+ if(yych <= 'v') goto yy1246;
+ goto yy57;
+ } else {
+ if(yych == 'y') goto yy57;
+ goto yy1246;
+ }
+ }
+ }
}
-yy1142:
- YYDEBUG(1142, *YYCURSOR);
+yy1253:
+ YYDEBUG(1253, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy1144;
- goto yy634;
+ if(yych == '.') goto yy1255;
+ goto yy713;
} else {
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1143:
- YYDEBUG(1143, *YYCURSOR);
+yy1254:
+ YYDEBUG(1254, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy1144;
- if(yych != ':') goto yy634;
- goto yy1144;
-yy1144:
- YYDEBUG(1144, *YYCURSOR);
+ if(yych == '.') goto yy1255;
+ if(yych != ':') goto yy713;
+ goto yy1255;
+yy1255:
+ YYDEBUG(1255, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1145;
- if(yych <= '6') goto yy1146;
- if(yych <= '9') goto yy639;
+ if(yych <= '5') goto yy1256;
+ if(yych <= '6') goto yy1257;
+ if(yych <= '9') goto yy718;
goto yy53;
-yy1145:
- YYDEBUG(1145, *YYCURSOR);
+yy1256:
+ YYDEBUG(1256, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy639;
- goto yy634;
-yy1146:
- YYDEBUG(1146, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy718;
+ goto yy713;
+yy1257:
+ YYDEBUG(1257, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych == '0') goto yy639;
- goto yy634;
-yy1147:
- YYDEBUG(1147, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych == '0') goto yy718;
+ goto yy713;
+yy1258:
+ YYDEBUG(1258, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
} else {
- if(yych <= '9') goto yy1150;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1261;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1148:
- YYDEBUG(1148, *YYCURSOR);
+yy1259:
+ YYDEBUG(1259, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ if(yych <= '.') goto yy1262;
+ goto yy713;
} else {
- if(yych <= '2') goto yy1150;
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '2') goto yy1261;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1149:
- YYDEBUG(1149, *YYCURSOR);
+yy1260:
+ YYDEBUG(1260, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == '.') goto yy1151;
- goto yy634;
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
} else {
- if(yych <= '9') goto yy1143;
- if(yych <= ':') goto yy1144;
- goto yy634;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1254;
+ if(yych <= ':') goto yy1255;
+ goto yy713;
}
-yy1150:
- YYDEBUG(1150, *YYCURSOR);
+yy1261:
+ YYDEBUG(1261, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy1151;
- if(yych == ':') goto yy1144;
- goto yy634;
-yy1151:
- YYDEBUG(1151, *YYCURSOR);
+ if(yych <= '.'){
+ if(yych <= ',') goto yy713;
+ if(yych <= '-') goto yy807;
+ goto yy1262;
+ } else {
+ if(yych == ':') goto yy1255;
+ goto yy713;
+ }
+yy1262:
+ YYDEBUG(1262, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '/') goto yy53;
- if(yych <= '5') goto yy1152;
- if(yych <= '6') goto yy1153;
- if(yych <= '9') goto yy727;
+ if(yych <= '5') goto yy1263;
+ if(yych <= '6') goto yy1264;
+ if(yych <= '9') goto yy811;
goto yy53;
-yy1152:
- YYDEBUG(1152, *YYCURSOR);
+yy1263:
+ YYDEBUG(1263, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy1154;
- goto yy634;
-yy1153:
- YYDEBUG(1153, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy1265;
+ goto yy713;
+yy1264:
+ YYDEBUG(1264, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '/'){
- if(yych == '.') goto yy640;
- goto yy634;
+ if(yych == '.') goto yy719;
+ goto yy713;
} else {
- if(yych <= '0') goto yy1154;
- if(yych <= '9') goto yy728;
- goto yy634;
+ if(yych <= '0') goto yy1265;
+ if(yych <= '9') goto yy812;
+ goto yy713;
}
-yy1154:
- YYDEBUG(1154, *YYCURSOR);
+yy1265:
+ YYDEBUG(1265, *YYCURSOR);
yyaccept = 11;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == '.') goto yy640;
- if(yych <= '/') goto yy634;
- if(yych <= '9') goto yy730;
- goto yy634;
-yy1155:
- YYDEBUG(1155, *YYCURSOR);
+ if(yych == '.') goto yy719;
+ if(yych <= '/') goto yy713;
+ if(yych <= '9') goto yy814;
+ goto yy713;
+yy1266:
+ YYDEBUG(1266, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy604;
- if(yych <= '-') goto yy615;
- goto yy618;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy682;
+ if(yych <= ',') goto yy684;
+ goto yy695;
} else {
- if(yych <= '/') goto yy614;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy627;
+ if(yych <= '.') goto yy696;
+ if(yych <= '/') goto yy694;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy604;
+ if(yych <= ':') goto yy705;
+ if(yych == 'n') goto yy692;
+ goto yy684;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy604;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy684;
}
}
-yy1156:
- YYDEBUG(1156, *YYCURSOR);
+yy1267:
+ YYDEBUG(1267, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= ':'){
- if(yych <= '.'){
- if(yych <= ',') goto yy1121;
- if(yych <= '-') goto yy615;
- goto yy1123;
+ if(yych <= '9'){
+ if(yych <= '-'){
+ if(yych == 0x09) goto yy1230;
+ if(yych <= ',') goto yy1232;
+ goto yy695;
} else {
- if(yych <= '/') goto yy614;
- if(yych <= '5') goto yy1125;
- if(yych <= '9') goto yy851;
- goto yy1124;
+ if(yych <= '.') goto yy1234;
+ if(yych <= '/') goto yy694;
+ if(yych <= '5') goto yy1236;
+ goto yy935;
}
} else {
if(yych <= 'q'){
- if(yych == 'n') goto yy612;
- goto yy1121;
+ if(yych <= ':') goto yy1235;
+ if(yych == 'n') goto yy692;
+ goto yy1232;
} else {
- if(yych <= 'r') goto yy613;
- if(yych <= 's') goto yy606;
- if(yych <= 't') goto yy610;
- goto yy1121;
+ if(yych <= 'r') goto yy693;
+ if(yych <= 's') goto yy686;
+ if(yych <= 't') goto yy690;
+ goto yy1232;
}
}
-yy1157:
- YYDEBUG(1157, *YYCURSOR);
+yy1268:
+ YYDEBUG(1268, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= '0') goto yy53;
+ if(yych <= '/') goto yy53;
if(yych >= ':') goto yy53;
- goto yy1158;
-yy1158:
- YYDEBUG(1158, *YYCURSOR);
+ goto yy1269;
+yy1269:
+ YYDEBUG(1269, *YYCURSOR);
++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- goto yy1159;
-yy1159:
- YYDEBUG(1159, *YYCURSOR);
- if(yych <= '/') goto yy1160;
- if(yych <= '9') goto yy1158;
- goto yy1160;
-yy1160:
- YYDEBUG(1160, *YYCURSOR);
+ goto yy1270;
+yy1270:
+ YYDEBUG(1270, *YYCURSOR);
+ if(yych <= '/') goto yy1271;
+ if(yych <= '9') goto yy1269;
+ goto yy1271;
+yy1271:
+ YYDEBUG(1271, *YYCURSOR);
-#line 904 "ext/date/lib/parse_date.re"
+#line 925 "ext/date/lib/parse_date.re"
{
timelib_ull i;
@@ -15203,9 +19460,9 @@ yy1160:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 12850 "ext/date/lib/parse_date.c"
-yy1161:
- YYDEBUG(1161, *YYCURSOR);
+#line 16897 "ext/date/lib/parse_date.c"
+yy1272:
+ YYDEBUG(1272, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -15214,7 +19471,7 @@ yy1161:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1192;
+ goto yy1312;
}
} else {
if(yych <= 'm'){
@@ -15222,61 +19479,61 @@ yy1161:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1192;
+ if(yych <= 'n') goto yy1312;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1162:
- YYDEBUG(1162, *YYCURSOR);
+yy1273:
+ YYDEBUG(1273, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'U'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'I') goto yy1186;
+ if(yych == 'I') goto yy1306;
if(yych <= 'T') goto yy134;
- goto yy1185;
+ goto yy1305;
}
} else {
if(yych <= 'i'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'h') goto yy134;
- goto yy1186;
+ goto yy1306;
} else {
- if(yych == 'u') goto yy1185;
+ if(yych == 'u') goto yy1305;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1163:
- YYDEBUG(1163, *YYCURSOR);
+yy1274:
+ YYDEBUG(1274, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'M'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'D') goto yy1174;
+ if(yych == 'D') goto yy1294;
if(yych <= 'L') goto yy134;
- goto yy1175;
+ goto yy1295;
}
} else {
if(yych <= 'd'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'c') goto yy134;
- goto yy1174;
+ goto yy1294;
} else {
- if(yych == 'm') goto yy1175;
+ if(yych == 'm') goto yy1295;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1164:
- YYDEBUG(1164, *YYCURSOR);
+yy1275:
+ YYDEBUG(1275, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -15285,7 +19542,7 @@ yy1164:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1170;
+ goto yy1290;
}
} else {
if(yych <= 'd'){
@@ -15293,13 +19550,13 @@ yy1164:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy1170;
+ if(yych <= 'e') goto yy1290;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1165:
- YYDEBUG(1165, *YYCURSOR);
+yy1276:
+ YYDEBUG(1276, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'E'){
if(yych <= ')'){
@@ -15308,7 +19565,7 @@ yy1165:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1166;
+ goto yy1286;
}
} else {
if(yych <= 'd'){
@@ -15316,13 +19573,81 @@ yy1165:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'e') goto yy1166;
+ if(yych <= 'e') goto yy1286;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1166:
- YYDEBUG(1166, *YYCURSOR);
+yy1277:
+ YYDEBUG(1277, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '9') goto yy1280;
+ if(yych <= ':') goto yy1235;
+ goto yy53;
+ }
+yy1278:
+ YYDEBUG(1278, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '3') goto yy1280;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+ }
+yy1279:
+ YYDEBUG(1279, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == '.') goto yy1235;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+yy1280:
+ YYDEBUG(1280, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/'){
+ if(yych == '.') goto yy1235;
+ goto yy53;
+ } else {
+ if(yych <= '5') goto yy1281;
+ if(yych == ':') goto yy1235;
+ goto yy53;
+ }
+yy1281:
+ YYDEBUG(1281, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych >= ':') goto yy53;
+ goto yy1282;
+yy1282:
+ YYDEBUG(1282, *YYCURSOR);
+ yyaccept = 20;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '/') goto yy1238;
+ if(yych <= '5') goto yy1283;
+ if(yych <= '6') goto yy1284;
+ goto yy1238;
+yy1283:
+ YYDEBUG(1283, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= '/') goto yy53;
+ if(yych <= '9') goto yy1285;
+ goto yy53;
+yy1284:
+ YYDEBUG(1284, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych != '0') goto yy53;
+ goto yy1285;
+yy1285:
+ YYDEBUG(1285, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy1246;
+yy1286:
+ YYDEBUG(1286, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'L'){
if(yych <= ')'){
@@ -15331,7 +19656,7 @@ yy1166:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'K') goto yy135;
- goto yy1167;
+ goto yy1287;
}
} else {
if(yych <= 'k'){
@@ -15339,101 +19664,162 @@ yy1166:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'l') goto yy1167;
+ if(yych <= 'l') goto yy1287;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1167:
- YYDEBUG(1167, *YYCURSOR);
- yyaccept = 1;
+yy1287:
+ YYDEBUG(1287, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'F'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'E') goto yy136;
+ goto yy1288;
+ }
+ } else {
+ if(yych <= 'e'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'f') goto yy1288;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1288:
+ YYDEBUG(1288, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'T'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy1289;
+ }
+ } else {
+ if(yych <= 's'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 't') goto yy1289;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1289:
+ YYDEBUG(1289, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'E'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'F') goto yy1168;
- if(yych != 'f') goto yy3;
- goto yy1168;
+ if(yych <= 'H') goto yy163;
+ if(yych == 'h') goto yy163;
+ goto yy3;
}
-yy1168:
- YYDEBUG(1168, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1169;
- if(yych != 't') goto yy53;
- goto yy1169;
-yy1169:
- YYDEBUG(1169, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy53;
-yy1170:
- YYDEBUG(1170, *YYCURSOR);
+yy1290:
+ YYDEBUG(1290, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'R') goto yy135;
- goto yy1171;
+ goto yy1291;
}
} else {
if(yych <= 'r'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 's') goto yy1171;
+ if(yych <= 's') goto yy1291;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1171:
- YYDEBUG(1171, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'C'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1291:
+ YYDEBUG(1291, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy1292;
+ }
} else {
- if(yych <= 'D') goto yy1172;
- if(yych != 'd') goto yy3;
- goto yy1172;
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'd') goto yy1292;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1172:
- YYDEBUG(1172, *YYCURSOR);
+yy1292:
+ YYDEBUG(1292, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1173;
- if(yych != 'a') goto yy53;
- goto yy1173;
-yy1173:
- YYDEBUG(1173, *YYCURSOR);
+ if(yych <= 'A'){
+ if(yych == ')') goto yy132;
+ if(yych <= '@') goto yy3;
+ goto yy1293;
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1293;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1293:
+ YYDEBUG(1293, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy1174:
- YYDEBUG(1174, *YYCURSOR);
+ if(yych <= 'X'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
+ goto yy3;
+ }
+yy1294:
+ YYDEBUG(1294, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'A'){
if(yych == ')') goto yy132;
if(yych <= '@') goto yy3;
- goto yy1182;
+ goto yy1302;
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
goto yy3;
} else {
- if(yych <= 'a') goto yy1182;
+ if(yych <= 'a') goto yy1302;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1175:
- YYDEBUG(1175, *YYCURSOR);
+yy1295:
+ YYDEBUG(1295, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'O'){
if(yych <= ')'){
@@ -15442,7 +19828,7 @@ yy1175:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy1176;
+ goto yy1296;
}
} else {
if(yych <= 'n'){
@@ -15450,49 +19836,83 @@ yy1175:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'o') goto yy1176;
+ if(yych <= 'o') goto yy1296;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1176:
- YYDEBUG(1176, *YYCURSOR);
- yyaccept = 1;
+yy1296:
+ YYDEBUG(1296, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy1297;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'r') goto yy1297;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1297:
+ YYDEBUG(1297, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1298;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy1298;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1298:
+ YYDEBUG(1298, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'Q'){
+ if(yych <= 'N'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'R') goto yy1177;
- if(yych != 'r') goto yy3;
- goto yy1177;
+ if(yych <= 'O') goto yy1299;
+ if(yych != 'o') goto yy3;
+ goto yy1299;
}
-yy1177:
- YYDEBUG(1177, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1178;
- if(yych != 'r') goto yy53;
- goto yy1178;
-yy1178:
- YYDEBUG(1178, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy1179;
- if(yych != 'o') goto yy53;
- goto yy1179;
-yy1179:
- YYDEBUG(1179, *YYCURSOR);
+yy1299:
+ YYDEBUG(1299, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'W') goto yy1180;
+ if(yych == 'W') goto yy1300;
if(yych != 'w') goto yy53;
- goto yy1180;
-yy1180:
- YYDEBUG(1180, *YYCURSOR);
+ goto yy1300;
+yy1300:
+ YYDEBUG(1300, *YYCURSOR);
++YYCURSOR;
- goto yy1181;
-yy1181:
- YYDEBUG(1181, *YYCURSOR);
+ goto yy1301;
+yy1301:
+ YYDEBUG(1301, *YYCURSOR);
-#line 892 "ext/date/lib/parse_date.re"
+#line 913 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("tomorrow");
TIMELIB_INIT;
@@ -15503,26 +19923,46 @@ yy1181:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 13108 "ext/date/lib/parse_date.c"
-yy1182:
- YYDEBUG(1182, *YYCURSOR);
+#line 17300 "ext/date/lib/parse_date.c"
+yy1302:
+ YYDEBUG(1302, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych <= 'X'){
- if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy136;
+ goto yy1303;
+ }
} else {
- if(yych <= 'Y') goto yy1183;
- if(yych != 'y') goto yy3;
- goto yy1183;
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'y') goto yy1303;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1183:
- YYDEBUG(1183, *YYCURSOR);
+yy1303:
+ YYDEBUG(1303, *YYCURSOR);
++YYCURSOR;
- goto yy1184;
-yy1184:
- YYDEBUG(1184, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy1304;
+ } else {
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy137;
+ goto yy1304;
+ }
+yy1304:
+ YYDEBUG(1304, *YYCURSOR);
-#line 882 "ext/date/lib/parse_date.re"
+#line 903 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("midnight | today");
TIMELIB_INIT;
@@ -15531,32 +19971,32 @@ yy1184:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 13130 "ext/date/lib/parse_date.c"
-yy1185:
- YYDEBUG(1185, *YYCURSOR);
+#line 17342 "ext/date/lib/parse_date.c"
+yy1305:
+ YYDEBUG(1305, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'R'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'Q') goto yy135;
- goto yy1188;
+ goto yy1308;
}
} else {
if(yych <= 'q'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'r') goto yy1188;
+ if(yych <= 'r') goto yy1308;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1186:
- YYDEBUG(1186, *YYCURSOR);
+yy1306:
+ YYDEBUG(1306, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= '@'){
@@ -15564,8 +20004,8 @@ yy1186:
goto yy3;
} else {
if(yych <= 'Q') goto yy135;
- if(yych >= 'S') goto yy317;
- goto yy1187;
+ if(yych >= 'S') goto yy321;
+ goto yy1307;
}
} else {
if(yych <= 'q'){
@@ -15573,56 +20013,101 @@ yy1186:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'r') goto yy1187;
- if(yych <= 's') goto yy317;
+ if(yych <= 'r') goto yy1307;
+ if(yych <= 's') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1187:
- YYDEBUG(1187, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'C'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1307:
+ YYDEBUG(1307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'D') goto yy159;
- if(yych == 'd') goto yy159;
- goto yy3;
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'd') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1188:
- YYDEBUG(1188, *YYCURSOR);
- yyaccept = 1;
+yy1308:
+ YYDEBUG(1308, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'S'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy1309;
+ }
+ } else {
+ if(yych <= 'r'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 's') goto yy1309;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1309:
+ YYDEBUG(1309, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'D'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy1310;
+ }
+ } else {
+ if(yych <= 'c'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'd') goto yy1310;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1310:
+ YYDEBUG(1310, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'R'){
+ if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'S') goto yy1189;
- if(yych != 's') goto yy3;
- goto yy1189;
+ if(yych <= 'A') goto yy1311;
+ if(yych != 'a') goto yy3;
+ goto yy1311;
}
-yy1189:
- YYDEBUG(1189, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1190;
- if(yych != 'd') goto yy53;
- goto yy1190;
-yy1190:
- YYDEBUG(1190, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1191;
- if(yych != 'a') goto yy53;
- goto yy1191;
-yy1191:
- YYDEBUG(1191, *YYCURSOR);
+yy1311:
+ YYDEBUG(1311, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy411;
goto yy53;
-yy1192:
- YYDEBUG(1192, *YYCURSOR);
+yy1312:
+ YYDEBUG(1312, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -15631,7 +20116,7 @@ yy1192:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1193;
+ goto yy1313;
}
} else {
if(yych <= 's'){
@@ -15639,65 +20124,76 @@ yy1192:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1193;
+ if(yych <= 't') goto yy1313;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1193:
- YYDEBUG(1193, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1313:
+ YYDEBUG(1313, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1194:
- YYDEBUG(1194, *YYCURSOR);
- yyaccept = 1;
+yy1314:
+ YYDEBUG(1314, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1192;
+ goto yy1312;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1223;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1343;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1195:
- YYDEBUG(1195, *YYCURSOR);
- yyaccept = 1;
+yy1315:
+ YYDEBUG(1315, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'U'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'H'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'I') goto yy1186;
+ if(yych <= 'I') goto yy1306;
if(yych <= 'T') goto yy134;
- goto yy1185;
+ goto yy1305;
}
}
} else {
@@ -15706,38 +20202,38 @@ yy1195:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 't'){
- if(yych <= 'i') goto yy1217;
- goto yy137;
+ if(yych <= 'i') goto yy1337;
+ goto yy139;
} else {
- if(yych <= 'u') goto yy1216;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'u') goto yy1336;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1196:
- YYDEBUG(1196, *YYCURSOR);
- yyaccept = 1;
+yy1316:
+ YYDEBUG(1316, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'C'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'D') goto yy1174;
+ if(yych <= 'D') goto yy1294;
if(yych <= 'L') goto yy134;
- goto yy1175;
+ goto yy1295;
}
}
} else {
@@ -15746,541 +20242,693 @@ yy1196:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'l'){
- if(yych <= 'd') goto yy1207;
- goto yy137;
+ if(yych <= 'd') goto yy1327;
+ goto yy139;
} else {
- if(yych <= 'm') goto yy1208;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'm') goto yy1328;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1197:
- YYDEBUG(1197, *YYCURSOR);
- yyaccept = 1;
+yy1317:
+ YYDEBUG(1317, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1170;
+ goto yy1290;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1203;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy1323;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1198:
- YYDEBUG(1198, *YYCURSOR);
- yyaccept = 1;
+yy1318:
+ YYDEBUG(1318, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'D') goto yy134;
- goto yy1166;
+ goto yy1286;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1199;
- if(yych <= 'z') goto yy137;
+ if(yych == 'e') goto yy1319;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1199:
- YYDEBUG(1199, *YYCURSOR);
- yyaccept = 1;
+yy1319:
+ YYDEBUG(1319, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'L'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'K') goto yy135;
- goto yy1167;
+ goto yy1287;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'l') goto yy1200;
- if(yych <= 'z') goto yy142;
+ if(yych == 'l') goto yy1320;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1200:
- YYDEBUG(1200, *YYCURSOR);
- yyaccept = 1;
+yy1320:
+ YYDEBUG(1320, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'F'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'E') goto yy3;
- goto yy1168;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'E') goto yy136;
+ goto yy1288;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'f') goto yy1201;
- if(yych <= 'z') goto yy143;
+ if(yych == 'f') goto yy1321;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1201:
- YYDEBUG(1201, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1169;
- if(yych != 't') goto yy144;
- goto yy1202;
-yy1202:
- YYDEBUG(1202, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych <= '^'){
- if(yych <= '/'){
- if(yych <= '.') goto yy53;
- goto yy138;
+yy1321:
+ YYDEBUG(1321, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'T'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
} else {
- if(yych == 'H') goto yy159;
- goto yy53;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'S') goto yy137;
+ goto yy1289;
}
} else {
- if(yych <= 'g'){
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy53;
- goto yy143;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= 'h') goto yy241;
- if(yych <= 'z') goto yy143;
- goto yy53;
+ if(yych == 't') goto yy1322;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
}
}
-yy1203:
- YYDEBUG(1203, *YYCURSOR);
+yy1322:
+ YYDEBUG(1322, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy163;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy245;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1323:
+ YYDEBUG(1323, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'R') goto yy135;
- goto yy1171;
+ goto yy1291;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 's') goto yy1204;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 's') goto yy1324;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1204:
- YYDEBUG(1204, *YYCURSOR);
- yyaccept = 1;
+yy1324:
+ YYDEBUG(1324, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'C') goto yy3;
- goto yy1172;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy1292;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy1205;
- if(yych <= 'z') goto yy143;
+ if(yych == 'd') goto yy1325;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1205:
- YYDEBUG(1205, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1173;
- if(yych != 'a') goto yy144;
- goto yy1206;
-yy1206:
- YYDEBUG(1206, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1207:
- YYDEBUG(1207, *YYCURSOR);
- yyaccept = 1;
+yy1325:
+ YYDEBUG(1325, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy1293;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy1326;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1326:
+ YYDEBUG(1326, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'X') goto yy3;
+ goto yy411;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'y') goto yy419;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1327:
+ YYDEBUG(1327, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy1182;
+ goto yy1302;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '`') goto yy3;
- if(yych <= 'a') goto yy1214;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'a') goto yy1334;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1208:
- YYDEBUG(1208, *YYCURSOR);
- yyaccept = 1;
+yy1328:
+ YYDEBUG(1328, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'O'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'N') goto yy135;
- goto yy1176;
+ goto yy1296;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'o') goto yy1209;
- if(yych <= 'z') goto yy142;
+ if(yych == 'o') goto yy1329;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1209:
- YYDEBUG(1209, *YYCURSOR);
- yyaccept = 1;
+yy1329:
+ YYDEBUG(1329, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'Q') goto yy3;
- goto yy1177;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy136;
+ goto yy1297;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'r') goto yy1210;
- if(yych <= 'z') goto yy143;
+ if(yych == 'r') goto yy1330;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1210:
- YYDEBUG(1210, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1178;
- if(yych != 'r') goto yy144;
- goto yy1211;
-yy1211:
- YYDEBUG(1211, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'O') goto yy1179;
- if(yych != 'o') goto yy144;
- goto yy1212;
-yy1212:
- YYDEBUG(1212, *YYCURSOR);
+yy1330:
+ YYDEBUG(1330, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1298;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy1331;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1331:
+ YYDEBUG(1331, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'O'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'N') goto yy3;
+ goto yy1299;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'o') goto yy1332;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1332:
+ YYDEBUG(1332, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'W') goto yy1180;
- if(yych != 'w') goto yy144;
- goto yy1213;
-yy1213:
- YYDEBUG(1213, *YYCURSOR);
+ if(yych == 'W') goto yy1300;
+ if(yych != 'w') goto yy148;
+ goto yy1333;
+yy1333:
+ YYDEBUG(1333, *YYCURSOR);
yyaccept = 22;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1181;
+ if(yych == '/') goto yy140;
+ goto yy1301;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1181;
- if(yych <= 'z') goto yy143;
- goto yy1181;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1301;
+ if(yych <= 'z') goto yy147;
+ goto yy1301;
}
-yy1214:
- YYDEBUG(1214, *YYCURSOR);
- yyaccept = 1;
+yy1334:
+ YYDEBUG(1334, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Y'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'X') goto yy3;
- goto yy1183;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy136;
+ goto yy1303;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'y') goto yy1215;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy1335;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1215:
- YYDEBUG(1215, *YYCURSOR);
+yy1335:
+ YYDEBUG(1335, *YYCURSOR);
yyaccept = 23;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1184;
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy1304;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy1304;
+ }
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1184;
- if(yych <= 'z') goto yy143;
- goto yy1184;
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '^') goto yy1304;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy146;
+ goto yy1304;
+ }
}
-yy1216:
- YYDEBUG(1216, *YYCURSOR);
+yy1336:
+ YYDEBUG(1336, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'R'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'Q') goto yy135;
- goto yy1188;
+ goto yy1308;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'r') goto yy1219;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'r') goto yy1339;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1217:
- YYDEBUG(1217, *YYCURSOR);
- yyaccept = 1;
+yy1337:
+ YYDEBUG(1337, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= '@') goto yy3;
if(yych <= 'Q') goto yy135;
- if(yych <= 'R') goto yy1187;
- goto yy317;
+ if(yych <= 'R') goto yy1307;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
if(yych <= 'r'){
- if(yych <= 'q') goto yy142;
- goto yy1218;
+ if(yych <= 'q') goto yy144;
+ goto yy1338;
} else {
- if(yych <= 's') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych <= 's') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1218:
- YYDEBUG(1218, *YYCURSOR);
- yyaccept = 1;
+yy1338:
+ YYDEBUG(1338, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'C') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'd') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1219:
- YYDEBUG(1219, *YYCURSOR);
- yyaccept = 1;
+yy1339:
+ YYDEBUG(1339, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'R') goto yy3;
- goto yy1189;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'R') goto yy136;
+ goto yy1309;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy1220;
- if(yych <= 'z') goto yy143;
+ if(yych == 's') goto yy1340;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1220:
- YYDEBUG(1220, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1190;
- if(yych != 'd') goto yy144;
- goto yy1221;
-yy1221:
- YYDEBUG(1221, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1191;
- if(yych != 'a') goto yy144;
- goto yy1222;
-yy1222:
- YYDEBUG(1222, *YYCURSOR);
+yy1340:
+ YYDEBUG(1340, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'C') goto yy137;
+ goto yy1310;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy1341;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1341:
+ YYDEBUG(1341, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'A'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ goto yy1311;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1342;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1342:
+ YYDEBUG(1342, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1223:
- YYDEBUG(1223, *YYCURSOR);
- yyaccept = 1;
+ if(yych == 'Y') goto yy411;
+ if(yych == 'y') goto yy419;
+ goto yy148;
+yy1343:
+ YYDEBUG(1343, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1193;
+ goto yy1313;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1224;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1344;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1224:
- YYDEBUG(1224, *YYCURSOR);
- yyaccept = 1;
+yy1344:
+ YYDEBUG(1344, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1225:
- YYDEBUG(1225, *YYCURSOR);
+yy1345:
+ YYDEBUG(1345, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'Y'){
if(yych <= '@'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych == 'R') goto yy1236;
+ if(yych == 'R') goto yy1357;
if(yych <= 'X') goto yy134;
- goto yy1237;
+ goto yy1358;
}
} else {
if(yych <= 'r'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'q') goto yy134;
- goto yy1236;
+ goto yy1357;
} else {
- if(yych == 'y') goto yy1237;
+ if(yych == 'y') goto yy1358;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1226:
- YYDEBUG(1226, *YYCURSOR);
+yy1346:
+ YYDEBUG(1346, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
@@ -16289,7 +20937,7 @@ yy1226:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy1231;
+ goto yy1351;
}
} else {
if(yych <= 'c'){
@@ -16297,13 +20945,13 @@ yy1226:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'd') goto yy1231;
+ if(yych <= 'd') goto yy1351;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1227:
- YYDEBUG(1227, *YYCURSOR);
+yy1347:
+ YYDEBUG(1347, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16312,7 +20960,7 @@ yy1227:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1228;
+ goto yy1348;
}
} else {
if(yych <= 'm'){
@@ -16320,54 +20968,76 @@ yy1227:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1228;
+ if(yych <= 'n') goto yy1348;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1228:
- YYDEBUG(1228, *YYCURSOR);
+yy1348:
+ YYDEBUG(1348, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'D'){
if(yych <= ')'){
- if(yych <= '(') goto yy341;
+ if(yych <= '(') goto yy405;
goto yy132;
} else {
- if(yych <= '@') goto yy341;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy1229;
+ goto yy1349;
}
} else {
if(yych <= 'c'){
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy341;
+ if(yych <= '`') goto yy405;
goto yy135;
} else {
- if(yych <= 'd') goto yy1229;
+ if(yych <= 'd') goto yy1349;
if(yych <= 'z') goto yy135;
- goto yy341;
+ goto yy405;
}
}
-yy1229:
- YYDEBUG(1229, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
+yy1349:
+ YYDEBUG(1349, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'A'){
if(yych == ')') goto yy132;
- goto yy3;
+ if(yych <= '@') goto yy3;
+ goto yy1350;
} else {
- if(yych <= 'A') goto yy1230;
- if(yych != 'a') goto yy3;
- goto yy1230;
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy136;
+ goto yy3;
+ } else {
+ if(yych <= 'a') goto yy1350;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1230:
- YYDEBUG(1230, *YYCURSOR);
+yy1350:
+ YYDEBUG(1350, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy347;
- goto yy53;
-yy1231:
- YYDEBUG(1231, *YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
+ }
+ } else {
+ if(yych <= 'x'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'y') goto yy546;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1351:
+ YYDEBUG(1351, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16376,7 +21046,7 @@ yy1231:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1232;
+ goto yy1352;
}
} else {
if(yych <= 'm'){
@@ -16384,88 +21054,140 @@ yy1231:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'n') goto yy1232;
+ if(yych <= 'n') goto yy1352;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1232:
- YYDEBUG(1232, *YYCURSOR);
- yyaccept = 1;
+yy1352:
+ YYDEBUG(1352, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'I'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy1353;
+ }
+ } else {
+ if(yych <= 'h'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'i') goto yy1353;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1353:
+ YYDEBUG(1353, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'G'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'F') goto yy137;
+ goto yy1354;
+ }
+ } else {
+ if(yych <= 'f'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'g') goto yy1354;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1354:
+ YYDEBUG(1354, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'H'){
+ if(yych <= 'G'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'I') goto yy1233;
- if(yych != 'i') goto yy3;
- goto yy1233;
+ if(yych <= 'H') goto yy1355;
+ if(yych != 'h') goto yy3;
+ goto yy1355;
}
-yy1233:
- YYDEBUG(1233, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'G') goto yy1234;
- if(yych != 'g') goto yy53;
- goto yy1234;
-yy1234:
- YYDEBUG(1234, *YYCURSOR);
+yy1355:
+ YYDEBUG(1355, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'H') goto yy1235;
- if(yych != 'h') goto yy53;
- goto yy1235;
-yy1235:
- YYDEBUG(1235, *YYCURSOR);
+ if(yych == 'T') goto yy1356;
+ if(yych != 't') goto yy53;
+ goto yy1356;
+yy1356:
+ YYDEBUG(1356, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'T') goto yy1183;
- if(yych == 't') goto yy1183;
- goto yy53;
-yy1236:
- YYDEBUG(1236, *YYCURSOR);
- yyaccept = 1;
+ goto yy1304;
+yy1357:
+ YYDEBUG(1357, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych == 'C') goto yy1238;
- goto yy135;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych == 'C') goto yy1359;
+ goto yy135;
+ }
} else {
if(yych <= 'b'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'c') goto yy1238;
+ if(yych <= 'c') goto yy1359;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy1237:
- YYDEBUG(1237, *YYCURSOR);
- yyaccept = 1;
+yy1358:
+ YYDEBUG(1358, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '.'){
- if(yych <= ')'){
+ if(yych <= '-'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '-') goto yy361;
- goto yy359;
+ if(yych == ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
}
} else {
if(yych <= '@'){
- if(yych <= '/') goto yy3;
- if(yych <= '9') goto yy359;
+ if(yych == '/') goto yy3;
+ if(yych <= '9') goto yy423;
goto yy3;
} else {
if(yych <= 'Z') goto yy135;
@@ -16474,35 +21196,46 @@ yy1237:
goto yy3;
}
}
-yy1238:
- YYDEBUG(1238, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1359:
+ YYDEBUG(1359, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy604;
+ }
} else {
- if(yych <= 'H') goto yy358;
- if(yych == 'h') goto yy358;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy604;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1239:
- YYDEBUG(1239, *YYCURSOR);
- yyaccept = 1;
+yy1360:
+ YYDEBUG(1360, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'Y'){
if(yych <= '/'){
if(yych == ')') goto yy132;
if(yych <= '.') goto yy3;
- goto yy138;
+ goto yy140;
} else {
if(yych <= 'Q'){
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'R') goto yy1236;
+ if(yych <= 'R') goto yy1357;
if(yych <= 'X') goto yy134;
- goto yy1237;
+ goto yy1358;
}
}
} else {
@@ -16511,283 +21244,371 @@ yy1239:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'x'){
- if(yych <= 'r') goto yy1250;
- goto yy137;
+ if(yych <= 'r') goto yy1372;
+ goto yy139;
} else {
- if(yych <= 'y') goto yy1251;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'y') goto yy1373;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1240:
- YYDEBUG(1240, *YYCURSOR);
- yyaccept = 1;
+yy1361:
+ YYDEBUG(1361, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'C') goto yy134;
- goto yy1231;
+ goto yy1351;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'd') goto yy1245;
- if(yych <= 'z') goto yy137;
+ if(yych == 'd') goto yy1366;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1241:
- YYDEBUG(1241, *YYCURSOR);
- yyaccept = 1;
+yy1362:
+ YYDEBUG(1362, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1228;
+ goto yy1348;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1242;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1363;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1242:
- YYDEBUG(1242, *YYCURSOR);
+yy1363:
+ YYDEBUG(1363, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'D'){
if(yych <= '.'){
if(yych == ')') goto yy132;
- goto yy341;
+ goto yy405;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '@') goto yy341;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy405;
if(yych <= 'C') goto yy135;
- goto yy1229;
+ goto yy1349;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
- goto yy341;
+ if(yych == '_') goto yy140;
+ goto yy405;
} else {
- if(yych == 'd') goto yy1243;
- if(yych <= 'z') goto yy142;
- goto yy341;
+ if(yych == 'd') goto yy1364;
+ if(yych <= 'z') goto yy144;
+ goto yy405;
}
}
-yy1243:
- YYDEBUG(1243, *YYCURSOR);
- yyaccept = 1;
+yy1364:
+ YYDEBUG(1364, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'A'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
- goto yy1230;
+ goto yy1350;
+ }
+ } else {
+ if(yych <= '_'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'a') goto yy1365;
+ if(yych <= 'z') goto yy145;
+ goto yy3;
+ }
+ }
+yy1365:
+ YYDEBUG(1365, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'Y'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'X') goto yy137;
+ goto yy546;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych <= 'a') goto yy1244;
- if(yych <= 'z') goto yy143;
+ if(yych == 'y') goto yy575;
+ if(yych <= 'z') goto yy146;
goto yy3;
}
}
-yy1244:
- YYDEBUG(1244, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'Y') goto yy347;
- if(yych == 'y') goto yy355;
- goto yy144;
-yy1245:
- YYDEBUG(1245, *YYCURSOR);
- yyaccept = 1;
+yy1366:
+ YYDEBUG(1366, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1232;
+ goto yy1352;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1246;
- if(yych <= 'z') goto yy142;
+ if(yych == 'n') goto yy1367;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1246:
- YYDEBUG(1246, *YYCURSOR);
- yyaccept = 1;
+yy1367:
+ YYDEBUG(1367, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'I'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'H') goto yy3;
- goto yy1233;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'H') goto yy136;
+ goto yy1353;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'i') goto yy1247;
- if(yych <= 'z') goto yy143;
+ if(yych == 'i') goto yy1368;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1247:
- YYDEBUG(1247, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'G') goto yy1234;
- if(yych != 'g') goto yy144;
- goto yy1248;
-yy1248:
- YYDEBUG(1248, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'H') goto yy1235;
- if(yych != 'h') goto yy144;
- goto yy1249;
-yy1249:
- YYDEBUG(1249, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'T') goto yy1183;
- if(yych == 't') goto yy1215;
- goto yy144;
-yy1250:
- YYDEBUG(1250, *YYCURSOR);
- yyaccept = 1;
+yy1368:
+ YYDEBUG(1368, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= 'G'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'F') goto yy137;
+ goto yy1354;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
} else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych == 'g') goto yy1369;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1369:
+ YYDEBUG(1369, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'H'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'G') goto yy3;
+ goto yy1355;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'h') goto yy1370;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1370:
+ YYDEBUG(1370, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych == 'T') goto yy1356;
+ if(yych != 't') goto yy148;
+ goto yy1371;
+yy1371:
+ YYDEBUG(1371, *YYCURSOR);
+ yyaccept = 23;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '^'){
+ if(yych == '/') goto yy140;
+ goto yy1304;
+ } else {
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1304;
+ if(yych <= 'z') goto yy147;
+ goto yy1304;
+ }
+yy1372:
+ YYDEBUG(1372, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'C'){
- if(yych <= 'B') goto yy135;
- goto yy1238;
+ if(yych <= '^'){
+ if(yych <= 'B'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'C') goto yy1359;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'b'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'c') goto yy1252;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'c') goto yy1374;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1251:
- YYDEBUG(1251, *YYCURSOR);
- yyaccept = 1;
+yy1373:
+ YYDEBUG(1373, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych <= ')'){
+ if(yych <= '.'){
+ if(yych <= ' '){
+ if(yych == 0x09) goto yy423;
if(yych <= 0x1F) goto yy3;
- if(yych <= '(') goto yy359;
- goto yy360;
+ goto yy423;
} else {
- if(yych == '-') goto yy361;
- if(yych <= '.') goto yy359;
- goto yy138;
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= ',') goto yy3;
+ if(yych <= '-') goto yy424;
+ goto yy423;
+ }
}
} else {
- if(yych <= '^'){
- if(yych <= '9') goto yy359;
+ if(yych <= 'Z'){
+ if(yych <= '/') goto yy140;
+ if(yych <= '9') goto yy423;
if(yych <= '@') goto yy3;
- if(yych <= 'Z') goto yy135;
- goto yy3;
+ goto yy135;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy3;
- if(yych <= 'z') goto yy142;
- goto yy3;
+ if(yych <= '_'){
+ if(yych <= '^') goto yy3;
+ goto yy140;
+ } else {
+ if(yych <= '`') goto yy3;
+ if(yych <= 'z') goto yy144;
+ goto yy3;
+ }
}
}
-yy1252:
- YYDEBUG(1252, *YYCURSOR);
- yyaccept = 1;
+yy1374:
+ YYDEBUG(1374, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy358;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy604;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy615;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1253:
- YYDEBUG(1253, *YYCURSOR);
+yy1375:
+ YYDEBUG(1375, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'W'){
if(yych <= 'N'){
@@ -16795,30 +21616,30 @@ yy1253:
if(yych <= '@') goto yy3;
goto yy134;
} else {
- if(yych <= 'O') goto yy1261;
+ if(yych <= 'O') goto yy1383;
if(yych <= 'U') goto yy134;
- if(yych <= 'V') goto yy1262;
- goto yy1259;
+ if(yych <= 'V') goto yy1384;
+ goto yy1381;
}
} else {
if(yych <= 'o'){
if(yych <= 'Z') goto yy134;
if(yych <= '`') goto yy3;
if(yych <= 'n') goto yy134;
- goto yy1261;
+ goto yy1383;
} else {
if(yych <= 'v'){
if(yych <= 'u') goto yy134;
- goto yy1262;
+ goto yy1384;
} else {
- if(yych <= 'w') goto yy1259;
+ if(yych <= 'w') goto yy1381;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
}
-yy1254:
- YYDEBUG(1254, *YYCURSOR);
+yy1376:
+ YYDEBUG(1376, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'X'){
if(yych <= ')'){
@@ -16827,7 +21648,7 @@ yy1254:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy1258;
+ goto yy1380;
}
} else {
if(yych <= 'w'){
@@ -16835,13 +21656,13 @@ yy1254:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'x') goto yy1258;
+ if(yych <= 'x') goto yy1380;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1255:
- YYDEBUG(1255, *YYCURSOR);
+yy1377:
+ YYDEBUG(1377, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16850,7 +21671,7 @@ yy1255:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1256;
+ goto yy1378;
}
} else {
if(yych <= 'm'){
@@ -16858,13 +21679,13 @@ yy1255:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 'n') goto yy1256;
+ if(yych <= 'n') goto yy1378;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1256:
- YYDEBUG(1256, *YYCURSOR);
+yy1378:
+ YYDEBUG(1378, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -16873,7 +21694,7 @@ yy1256:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1257;
+ goto yy1379;
}
} else {
if(yych <= 's'){
@@ -16881,25 +21702,36 @@ yy1256:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1257;
+ if(yych <= 't') goto yy1379;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1257:
- YYDEBUG(1257, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'G'){
- if(yych == ')') goto yy132;
- goto yy3;
+yy1379:
+ YYDEBUG(1379, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'H'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
+ }
} else {
- if(yych <= 'H') goto yy159;
- if(yych == 'h') goto yy159;
- goto yy3;
+ if(yych <= 'g'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'h') goto yy376;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
}
-yy1258:
- YYDEBUG(1258, *YYCURSOR);
+yy1380:
+ YYDEBUG(1380, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -16908,7 +21740,7 @@ yy1258:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= 's'){
@@ -16916,27 +21748,27 @@ yy1258:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy317;
+ if(yych <= 't') goto yy321;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1259:
- YYDEBUG(1259, *YYCURSOR);
+yy1381:
+ YYDEBUG(1381, *YYCURSOR);
++YYCURSOR;
if((yych = *YYCURSOR) <= '@'){
if(yych == ')') goto yy132;
- goto yy1260;
+ goto yy1382;
} else {
if(yych <= 'Z') goto yy135;
- if(yych <= '`') goto yy1260;
+ if(yych <= '`') goto yy1382;
if(yych <= 'z') goto yy135;
- goto yy1260;
+ goto yy1382;
}
-yy1260:
- YYDEBUG(1260, *YYCURSOR);
+yy1382:
+ YYDEBUG(1382, *YYCURSOR);
-#line 861 "ext/date/lib/parse_date.re"
+#line 882 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("now");
TIMELIB_INIT;
@@ -16944,9 +21776,9 @@ yy1260:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 14391 "ext/date/lib/parse_date.c"
-yy1261:
- YYDEBUG(1261, *YYCURSOR);
+#line 18991 "ext/date/lib/parse_date.c"
+yy1383:
+ YYDEBUG(1383, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'N'){
if(yych <= ')'){
@@ -16955,7 +21787,7 @@ yy1261:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1267;
+ goto yy1389;
}
} else {
if(yych <= 'm'){
@@ -16963,80 +21795,134 @@ yy1261:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'n') goto yy1267;
+ if(yych <= 'n') goto yy1389;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1262:
- YYDEBUG(1262, *YYCURSOR);
- yyaccept = 1;
+yy1384:
+ YYDEBUG(1384, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '9'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
+ if(yych <= '/'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
+ } else {
+ if(yych == ' ') goto yy423;
+ goto yy3;
+ }
} else {
- if(yych <= '-') goto yy361;
- if(yych == '/') goto yy3;
- goto yy359;
+ if(yych <= ','){
+ if(yych <= ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '-') goto yy424;
+ if(yych <= '.') goto yy423;
+ goto yy3;
+ }
}
} else {
if(yych <= 'Z'){
- if(yych <= '@') goto yy3;
- if(yych != 'E') goto yy135;
- goto yy1263;
+ if(yych <= '@'){
+ if(yych <= '9') goto yy423;
+ goto yy3;
+ } else {
+ if(yych != 'E') goto yy135;
+ goto yy1385;
+ }
} else {
if(yych <= 'd'){
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 'e') goto yy1263;
+ if(yych <= 'e') goto yy1385;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
}
-yy1263:
- YYDEBUG(1263, *YYCURSOR);
- yyaccept = 1;
+yy1385:
+ YYDEBUG(1385, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'M'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy1386;
+ }
+ } else {
+ if(yych <= 'l'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'm') goto yy1386;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1386:
+ YYDEBUG(1386, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'B'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy1387;
+ }
+ } else {
+ if(yych <= 'a'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'b') goto yy1387;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1387:
+ YYDEBUG(1387, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'L'){
+ if(yych <= 'D'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'M') goto yy1264;
- if(yych != 'm') goto yy3;
- goto yy1264;
+ if(yych <= 'E') goto yy1388;
+ if(yych != 'e') goto yy3;
+ goto yy1388;
}
-yy1264:
- YYDEBUG(1264, *YYCURSOR);
+yy1388:
+ YYDEBUG(1388, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'B') goto yy1265;
- if(yych != 'b') goto yy53;
- goto yy1265;
-yy1265:
- YYDEBUG(1265, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy1266;
- if(yych != 'e') goto yy53;
- goto yy1266;
-yy1266:
- YYDEBUG(1266, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy358;
- if(yych == 'r') goto yy358;
+ if(yych == 'R') goto yy422;
+ if(yych == 'r') goto yy422;
goto yy53;
-yy1267:
- YYDEBUG(1267, *YYCURSOR);
+yy1389:
+ YYDEBUG(1389, *YYCURSOR);
++YYCURSOR;
- if((yych = *YYCURSOR) == ')') goto yy132;
- goto yy1268;
-yy1268:
- YYDEBUG(1268, *YYCURSOR);
+ if((yych = *YYCURSOR) <= '@'){
+ if(yych == ')') goto yy132;
+ goto yy1390;
+ } else {
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy1390;
+ if(yych <= 'z') goto yy136;
+ goto yy1390;
+ }
+yy1390:
+ YYDEBUG(1390, *YYCURSOR);
-#line 870 "ext/date/lib/parse_date.re"
+#line 891 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("noon");
TIMELIB_INIT;
@@ -17047,10 +21933,10 @@ yy1268:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 14478 "ext/date/lib/parse_date.c"
-yy1269:
- YYDEBUG(1269, *YYCURSOR);
- yyaccept = 1;
+#line 19132 "ext/date/lib/parse_date.c"
+yy1391:
+ YYDEBUG(1391, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'W'){
if(yych <= '@'){
@@ -17058,17 +21944,17 @@ yy1269:
if(yych <= '(') goto yy3;
goto yy132;
} else {
- if(yych == '/') goto yy138;
+ if(yych == '/') goto yy140;
goto yy3;
}
} else {
if(yych <= 'O'){
if(yych <= 'N') goto yy134;
- goto yy1261;
+ goto yy1383;
} else {
if(yych <= 'U') goto yy134;
- if(yych <= 'V') goto yy1262;
- goto yy1259;
+ if(yych <= 'V') goto yy1384;
+ goto yy1381;
}
}
} else {
@@ -17077,310 +21963,360 @@ yy1269:
if(yych <= 'Z') goto yy134;
goto yy3;
} else {
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy137;
+ goto yy139;
}
} else {
if(yych <= 'v'){
- if(yych <= 'o') goto yy1276;
- if(yych <= 'u') goto yy137;
- goto yy1277;
+ if(yych <= 'o') goto yy1398;
+ if(yych <= 'u') goto yy139;
+ goto yy1399;
} else {
- if(yych <= 'w') goto yy1275;
- if(yych <= 'z') goto yy137;
+ if(yych <= 'w') goto yy1397;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
}
-yy1270:
- YYDEBUG(1270, *YYCURSOR);
- yyaccept = 1;
+yy1392:
+ YYDEBUG(1392, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'X'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'W') goto yy134;
- goto yy1258;
+ goto yy1380;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'x') goto yy1274;
- if(yych <= 'z') goto yy137;
+ if(yych == 'x') goto yy1396;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1271:
- YYDEBUG(1271, *YYCURSOR);
- yyaccept = 1;
+yy1393:
+ YYDEBUG(1393, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy134;
- goto yy1256;
+ goto yy1378;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1272;
- if(yych <= 'z') goto yy137;
+ if(yych == 'n') goto yy1394;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1272:
- YYDEBUG(1272, *YYCURSOR);
- yyaccept = 1;
+yy1394:
+ YYDEBUG(1394, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1257;
+ goto yy1379;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1273;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1395;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1273:
- YYDEBUG(1273, *YYCURSOR);
- yyaccept = 1;
+yy1395:
+ YYDEBUG(1395, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'H'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'G') goto yy3;
- goto yy159;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'G') goto yy136;
+ goto yy376;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'h') goto yy241;
- if(yych <= 'z') goto yy143;
+ if(yych == 'h') goto yy394;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1274:
- YYDEBUG(1274, *YYCURSOR);
- yyaccept = 1;
+yy1396:
+ YYDEBUG(1396, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy317;
+ goto yy321;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy320;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy345;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1275:
- YYDEBUG(1275, *YYCURSOR);
+yy1397:
+ YYDEBUG(1397, *YYCURSOR);
yyaccept = 24;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '@'){
if(yych <= ')'){
- if(yych <= '(') goto yy1260;
+ if(yych <= '(') goto yy1382;
goto yy132;
} else {
- if(yych == '/') goto yy138;
- goto yy1260;
+ if(yych == '/') goto yy140;
+ goto yy1382;
}
} else {
if(yych <= '_'){
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy1260;
- goto yy138;
+ if(yych <= '^') goto yy1382;
+ goto yy140;
} else {
- if(yych <= '`') goto yy1260;
- if(yych <= 'z') goto yy142;
- goto yy1260;
+ if(yych <= '`') goto yy1382;
+ if(yych <= 'z') goto yy144;
+ goto yy1382;
}
}
-yy1276:
- YYDEBUG(1276, *YYCURSOR);
- yyaccept = 1;
+yy1398:
+ YYDEBUG(1398, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'N'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'M') goto yy135;
- goto yy1267;
+ goto yy1389;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'n') goto yy1282;
- if(yych <= 'z') goto yy142;
+ if(yych == 'n') goto yy1404;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1277:
- YYDEBUG(1277, *YYCURSOR);
- yyaccept = 1;
+yy1399:
+ YYDEBUG(1399, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '@'){
- if(yych <= ','){
- if(yych <= 0x1F) goto yy3;
- if(yych == ')') goto yy360;
- goto yy359;
- } else {
- if(yych <= '.'){
- if(yych <= '-') goto yy361;
- goto yy359;
+ if(yych <= '9'){
+ if(yych <= '('){
+ if(yych <= 0x09){
+ if(yych <= 0x08) goto yy3;
+ goto yy423;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= '9') goto yy359;
+ if(yych == ' ') goto yy423;
goto yy3;
}
+ } else {
+ if(yych <= '-'){
+ if(yych <= ')') goto yy132;
+ if(yych <= ',') goto yy3;
+ goto yy424;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy423;
+ }
}
} else {
- if(yych <= '_'){
- if(yych <= 'E'){
- if(yych <= 'D') goto yy135;
- goto yy1263;
+ if(yych <= '^'){
+ if(yych <= 'D'){
+ if(yych <= '@') goto yy3;
+ goto yy135;
} else {
+ if(yych <= 'E') goto yy1385;
if(yych <= 'Z') goto yy135;
- if(yych <= '^') goto yy3;
- goto yy138;
+ goto yy3;
}
} else {
if(yych <= 'd'){
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy3;
- goto yy142;
+ goto yy144;
} else {
- if(yych <= 'e') goto yy1278;
- if(yych <= 'z') goto yy142;
+ if(yych <= 'e') goto yy1400;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
}
-yy1278:
- YYDEBUG(1278, *YYCURSOR);
- yyaccept = 1;
+yy1400:
+ YYDEBUG(1400, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'M'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'L') goto yy3;
- goto yy1264;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'L') goto yy136;
+ goto yy1386;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'm') goto yy1279;
- if(yych <= 'z') goto yy143;
+ if(yych == 'm') goto yy1401;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1279:
- YYDEBUG(1279, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'B') goto yy1265;
- if(yych != 'b') goto yy144;
- goto yy1280;
-yy1280:
- YYDEBUG(1280, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'E') goto yy1266;
- if(yych != 'e') goto yy144;
- goto yy1281;
-yy1281:
- YYDEBUG(1281, *YYCURSOR);
+yy1401:
+ YYDEBUG(1401, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'B'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'A') goto yy137;
+ goto yy1387;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'b') goto yy1402;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1402:
+ YYDEBUG(1402, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'E'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'D') goto yy3;
+ goto yy1388;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'e') goto yy1403;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1403:
+ YYDEBUG(1403, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= '^'){
if(yych <= '/'){
if(yych <= '.') goto yy53;
- goto yy138;
+ goto yy140;
} else {
- if(yych == 'R') goto yy358;
+ if(yych == 'R') goto yy422;
goto yy53;
}
} else {
if(yych <= 'q'){
- if(yych <= '_') goto yy138;
+ if(yych <= '_') goto yy140;
if(yych <= '`') goto yy53;
- goto yy143;
+ goto yy147;
} else {
- if(yych <= 'r') goto yy457;
- if(yych <= 'z') goto yy143;
+ if(yych <= 'r') goto yy528;
+ if(yych <= 'z') goto yy147;
goto yy53;
}
}
-yy1282:
- YYDEBUG(1282, *YYCURSOR);
+yy1404:
+ YYDEBUG(1404, *YYCURSOR);
yyaccept = 25;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= '/'){
- if(yych == ')') goto yy132;
- if(yych <= '.') goto yy1268;
- goto yy138;
+ if(yych <= '@'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy1390;
+ goto yy132;
+ } else {
+ if(yych == '/') goto yy140;
+ goto yy1390;
+ }
} else {
if(yych <= '_'){
- if(yych <= '^') goto yy1268;
- goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '^') goto yy1390;
+ goto yy140;
} else {
- if(yych <= '`') goto yy1268;
- if(yych <= 'z') goto yy143;
- goto yy1268;
+ if(yych <= '`') goto yy1390;
+ if(yych <= 'z') goto yy145;
+ goto yy1390;
}
}
-yy1283:
- YYDEBUG(1283, *YYCURSOR);
+yy1405:
+ YYDEBUG(1405, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'S'){
if(yych <= ')'){
@@ -17389,7 +22325,7 @@ yy1283:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy1284;
+ goto yy1406;
}
} else {
if(yych <= 'r'){
@@ -17397,13 +22333,13 @@ yy1283:
if(yych <= '`') goto yy3;
goto yy134;
} else {
- if(yych <= 's') goto yy1284;
+ if(yych <= 's') goto yy1406;
if(yych <= 'z') goto yy134;
goto yy3;
}
}
-yy1284:
- YYDEBUG(1284, *YYCURSOR);
+yy1406:
+ YYDEBUG(1406, *YYCURSOR);
yych = *++YYCURSOR;
if(yych <= 'T'){
if(yych <= ')'){
@@ -17412,7 +22348,7 @@ yy1284:
} else {
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1285;
+ goto yy1407;
}
} else {
if(yych <= 's'){
@@ -17420,55 +22356,89 @@ yy1284:
if(yych <= '`') goto yy3;
goto yy135;
} else {
- if(yych <= 't') goto yy1285;
+ if(yych <= 't') goto yy1407;
if(yych <= 'z') goto yy135;
goto yy3;
}
}
-yy1285:
- YYDEBUG(1285, *YYCURSOR);
- yyaccept = 1;
+yy1407:
+ YYDEBUG(1407, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'E'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy1408;
+ }
+ } else {
+ if(yych <= 'd'){
+ if(yych <= 'Z') goto yy136;
+ if(yych <= '`') goto yy3;
+ goto yy136;
+ } else {
+ if(yych <= 'e') goto yy1408;
+ if(yych <= 'z') goto yy136;
+ goto yy3;
+ }
+ }
+yy1408:
+ YYDEBUG(1408, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if(yych <= 'R'){
+ if(yych <= ')'){
+ if(yych <= '(') goto yy3;
+ goto yy132;
+ } else {
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1409;
+ }
+ } else {
+ if(yych <= 'q'){
+ if(yych <= 'Z') goto yy137;
+ if(yych <= '`') goto yy3;
+ goto yy137;
+ } else {
+ if(yych <= 'r') goto yy1409;
+ if(yych <= 'z') goto yy137;
+ goto yy3;
+ }
+ }
+yy1409:
+ YYDEBUG(1409, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych <= 'D'){
+ if(yych <= 'C'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= 'E') goto yy1286;
- if(yych != 'e') goto yy3;
- goto yy1286;
+ if(yych <= 'D') goto yy1410;
+ if(yych != 'd') goto yy3;
+ goto yy1410;
}
-yy1286:
- YYDEBUG(1286, *YYCURSOR);
+yy1410:
+ YYDEBUG(1410, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'R') goto yy1287;
- if(yych != 'r') goto yy53;
- goto yy1287;
-yy1287:
- YYDEBUG(1287, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1288;
- if(yych != 'd') goto yy53;
- goto yy1288;
-yy1288:
- YYDEBUG(1288, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'A') goto yy1289;
+ if(yych == 'A') goto yy1411;
if(yych != 'a') goto yy53;
- goto yy1289;
-yy1289:
- YYDEBUG(1289, *YYCURSOR);
+ goto yy1411;
+yy1411:
+ YYDEBUG(1411, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy1290;
+ if(yych == 'Y') goto yy1412;
if(yych != 'y') goto yy53;
- goto yy1290;
-yy1290:
- YYDEBUG(1290, *YYCURSOR);
+ goto yy1412;
+yy1412:
+ YYDEBUG(1412, *YYCURSOR);
++YYCURSOR;
- goto yy1291;
-yy1291:
- YYDEBUG(1291, *YYCURSOR);
+ goto yy1413;
+yy1413:
+ YYDEBUG(1413, *YYCURSOR);
-#line 849 "ext/date/lib/parse_date.re"
+#line 870 "ext/date/lib/parse_date.re"
{
DEBUG_OUTPUT("yesterday");
TIMELIB_INIT;
@@ -17479,132 +22449,177 @@ yy1291:
TIMELIB_DEINIT;
return TIMELIB_RELATIVE;
}
-#line 14864 "ext/date/lib/parse_date.c"
-yy1292:
- YYDEBUG(1292, *YYCURSOR);
- yyaccept = 1;
+#line 19602 "ext/date/lib/parse_date.c"
+yy1414:
+ YYDEBUG(1414, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'S'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'R') goto yy134;
- goto yy1284;
+ goto yy1406;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy134;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 's') goto yy1293;
- if(yych <= 'z') goto yy137;
+ if(yych == 's') goto yy1415;
+ if(yych <= 'z') goto yy139;
goto yy3;
}
}
-yy1293:
- YYDEBUG(1293, *YYCURSOR);
- yyaccept = 1;
+yy1415:
+ YYDEBUG(1415, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'T'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
+ if(yych <= '/') goto yy140;
if(yych <= '@') goto yy3;
if(yych <= 'S') goto yy135;
- goto yy1285;
+ goto yy1407;
}
} else {
if(yych <= '`'){
if(yych <= 'Z') goto yy135;
- if(yych == '_') goto yy138;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 't') goto yy1294;
- if(yych <= 'z') goto yy142;
+ if(yych == 't') goto yy1416;
+ if(yych <= 'z') goto yy144;
goto yy3;
}
}
-yy1294:
- YYDEBUG(1294, *YYCURSOR);
- yyaccept = 1;
+yy1416:
+ YYDEBUG(1416, *YYCURSOR);
+ yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= 'E'){
if(yych <= '.'){
if(yych == ')') goto yy132;
goto yy3;
} else {
- if(yych <= '/') goto yy138;
- if(yych <= 'D') goto yy3;
- goto yy1286;
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'D') goto yy136;
+ goto yy1408;
}
} else {
if(yych <= '`'){
- if(yych == '_') goto yy138;
+ if(yych <= 'Z') goto yy136;
+ if(yych == '_') goto yy140;
goto yy3;
} else {
- if(yych == 'e') goto yy1295;
- if(yych <= 'z') goto yy143;
+ if(yych == 'e') goto yy1417;
+ if(yych <= 'z') goto yy145;
goto yy3;
}
}
-yy1295:
- YYDEBUG(1295, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'R') goto yy1287;
- if(yych != 'r') goto yy144;
- goto yy1296;
-yy1296:
- YYDEBUG(1296, *YYCURSOR);
- yych = *++YYCURSOR;
- if(yych == 'D') goto yy1288;
- if(yych != 'd') goto yy144;
- goto yy1297;
-yy1297:
- YYDEBUG(1297, *YYCURSOR);
+yy1417:
+ YYDEBUG(1417, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'R'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= '@') goto yy3;
+ if(yych <= 'Q') goto yy137;
+ goto yy1409;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych <= 'Z') goto yy137;
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'r') goto yy1418;
+ if(yych <= 'z') goto yy146;
+ goto yy3;
+ }
+ }
+yy1418:
+ YYDEBUG(1418, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if(yych <= 'D'){
+ if(yych <= '.'){
+ if(yych == ')') goto yy132;
+ goto yy3;
+ } else {
+ if(yych <= '/') goto yy140;
+ if(yych <= 'C') goto yy3;
+ goto yy1410;
+ }
+ } else {
+ if(yych <= '`'){
+ if(yych == '_') goto yy140;
+ goto yy3;
+ } else {
+ if(yych == 'd') goto yy1419;
+ if(yych <= 'z') goto yy147;
+ goto yy3;
+ }
+ }
+yy1419:
+ YYDEBUG(1419, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'A') goto yy1289;
- if(yych != 'a') goto yy144;
- goto yy1298;
-yy1298:
- YYDEBUG(1298, *YYCURSOR);
+ if(yych == 'A') goto yy1411;
+ if(yych != 'a') goto yy148;
+ goto yy1420;
+yy1420:
+ YYDEBUG(1420, *YYCURSOR);
yych = *++YYCURSOR;
- if(yych == 'Y') goto yy1290;
- if(yych != 'y') goto yy144;
- goto yy1299;
-yy1299:
- YYDEBUG(1299, *YYCURSOR);
+ if(yych == 'Y') goto yy1412;
+ if(yych != 'y') goto yy148;
+ goto yy1421;
+yy1421:
+ YYDEBUG(1421, *YYCURSOR);
yyaccept = 26;
yych = *(YYMARKER = ++YYCURSOR);
if(yych <= '^'){
- if(yych == '/') goto yy138;
- goto yy1291;
+ if(yych == '/') goto yy140;
+ goto yy1413;
} else {
- if(yych <= '_') goto yy138;
- if(yych <= '`') goto yy1291;
- if(yych <= 'z') goto yy143;
- goto yy1291;
+ if(yych <= '_') goto yy140;
+ if(yych <= '`') goto yy1413;
+ if(yych <= 'z') goto yy147;
+ goto yy1413;
}
}
}
-#line 1410 "ext/date/lib/parse_date.re"
+#line 1444 "ext/date/lib/parse_date.re"
}
-#define YYMAXFILL 26
+#define YYMAXFILL 29
-timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzdb)
+timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container **errors, timelib_tzdb *tzdb)
{
Scanner in;
int t;
char *e = s + len - 1;
+ memset(&in, 0, sizeof(in));
+ in.errors = malloc(sizeof(struct timelib_error_container));
+ in.errors->warning_count = 0;
+ in.errors->warning_messages = NULL;
+ in.errors->error_count = 0;
+ in.errors->error_messages = NULL;
+
while (isspace(*s) && s < e) {
s++;
}
@@ -17612,15 +22627,19 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
e--;
}
if (e - s < 1) {
- *errors = 1;
in.time = timelib_time_ctor();
+ add_error(&in, "Empty string");
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->z = in.time->dst = -1;
in.time->is_localtime = in.time->zone_type = 0;
return in.time;
}
e++;
- memset(&in, 0, sizeof(in));
in.str = malloc((e - s) + YYMAXFILL);
memset(in.str, 0, (e - s) + YYMAXFILL);
memcpy(in.str, s, (e - s));
@@ -17636,7 +22655,6 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
in.time->f = -1;
in.time->z = -1;
in.time->dst = -1;
- in.errors = 0;
in.tzdb = tzdb;
in.time->is_localtime = 0;
in.time->zone_type = 0;
@@ -17649,7 +22667,11 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
} while(t != EOI);
free(in.str);
- *errors = in.errors;
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
return in.time;
}
diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
index fd058a5eb..32501efef 100644
--- a/ext/date/lib/parse_date.re
+++ b/ext/date/lib/parse_date.re
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: parse_date.re,v 1.26.2.21 2006/01/04 21:31:34 derick Exp $ */
+/* $Id: parse_date.re,v 1.26.2.27 2006/04/11 18:03:52 derick Exp $ */
#include "timelib.h"
@@ -97,13 +97,13 @@ typedef unsigned char uchar;
#define timelib_string_free free
-#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
+#define TIMELIB_HAVE_TIME() { if (s->time->have_time) { add_error(s, "Double time specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_time = 1; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; } }
#define TIMELIB_UNHAVE_TIME() { s->time->have_time = 0; s->time->h = 0; s->time->i = 0; s->time->s = 0; s->time->f = 0; }
-#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
+#define TIMELIB_HAVE_DATE() { if (s->time->have_date) { add_error(s, "Double date specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_date = 1; } }
#define TIMELIB_UNHAVE_DATE() { s->time->have_date = 0; s->time->d = 0; s->time->m = 0; s->time->y = 0; }
#define TIMELIB_HAVE_RELATIVE() { s->time->have_relative = 1; s->time->relative.weekday_behavior = 0; }
#define TIMELIB_HAVE_WEEKDAY_RELATIVE() { s->time->have_weekday_relative = 1; }
-#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { return TIMELIB_ERROR; } else { s->time.have_zone = 1; } }
+#define TIMELIB_HAVE_TZ() { s->cur = cursor; if (s->time->have_zone) { add_warning(s, "Double timezone specification"); timelib_string_free(str); return TIMELIB_ERROR; } else { s->time->have_zone = 1; } }
#define TIMELIB_INIT s->cur = cursor; str = timelib_string(s); ptr = str
#define TIMELIB_DEINIT timelib_string_free(str)
@@ -140,7 +140,7 @@ typedef struct Scanner {
int fd;
uchar *lim, *str, *ptr, *cur, *tok, *pos;
unsigned int line, len;
- int errors;
+ struct timelib_error_container *errors;
struct timelib_time *time;
timelib_tzdb *tzdb;
@@ -285,7 +285,7 @@ static timelib_lookup_table const timelib_month_lookup[] = {
static char* timelib_ltrim(char *s)
{
char *ptr = s;
- while (ptr[0] == ' ') {
+ while (ptr[0] == ' ' || ptr[0] == '\t') {
ptr++;
}
return ptr;
@@ -325,6 +325,24 @@ uchar *fill(Scanner *s, uchar *cursor){
}
#endif
+static void add_warning(Scanner *s, char *error)
+{
+ s->errors->warning_count++;
+ s->errors->warning_messages = realloc(s->errors->warning_messages, s->errors->warning_count * sizeof(timelib_error_message));
+ s->errors->warning_messages[s->errors->warning_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->warning_messages[s->errors->warning_count - 1].message = strdup(error);
+}
+
+static void add_error(Scanner *s, char *error)
+{
+ s->errors->error_count++;
+ s->errors->error_messages = realloc(s->errors->error_messages, s->errors->error_count * sizeof(timelib_error_message));
+ s->errors->error_messages[s->errors->error_count - 1].position = s->tok ? s->tok - s->str : 0;
+ s->errors->error_messages[s->errors->error_count - 1].character = s->tok ? *s->tok : 0;
+ s->errors->error_messages[s->errors->error_count - 1].message = strdup(error);
+}
+
static timelib_sll timelib_meridian(char **ptr, timelib_sll h)
{
timelib_sll retval = 0;
@@ -495,7 +513,7 @@ static timelib_sll timelib_lookup_relative_text(char **ptr, int *behavior)
static timelib_sll timelib_get_relative_text(char **ptr, int *behavior)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_relative_text(ptr, behavior);
@@ -527,7 +545,7 @@ static long timelib_lookup_month(char **ptr)
static long timelib_get_month(char **ptr)
{
- while (**ptr == ' ' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '-' || **ptr == '.' || **ptr == '/') {
++*ptr;
}
return timelib_lookup_month(ptr);
@@ -535,7 +553,7 @@ static long timelib_get_month(char **ptr)
static void timelib_eat_spaces(char **ptr)
{
- while (**ptr == ' ') {
+ while (**ptr == ' ' || **ptr == '\t') {
++*ptr;
}
}
@@ -546,7 +564,7 @@ static const timelib_relunit* timelib_lookup_relunit(char **ptr)
char *begin = *ptr, *end;
const timelib_relunit *tp, *value = NULL;
- while (**ptr != '\0' && **ptr != ' ') {
+ while (**ptr != '\0' && **ptr != ' ' && **ptr != '\t') {
++*ptr;
}
end = *ptr;
@@ -590,7 +608,7 @@ static void timelib_set_relative(char **ptr, timelib_sll amount, int behavior, S
static timelib_tz_lookup_table* zone_search(const char *word, long gmtoffset, int isdst)
{
int first_found = 0;
- timelib_tz_lookup_table *tp, *first_found_elem;
+ timelib_tz_lookup_table *tp, *first_found_elem = NULL;
timelib_tz_lookup_table *fmp;
if (strcasecmp("utc", word) == 0 || strcasecmp("gmt", word) == 0) {
@@ -659,7 +677,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
*tz_not_found = 0;
- while (**ptr == ' ' || **ptr == '(') {
+ while (**ptr == ' ' || **ptr == '\t' || **ptr == '(') {
++*ptr;
}
if (**ptr == '+') {
@@ -684,9 +702,11 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
char *tz_abbr;
t->is_localtime = 1;
- t->zone_type = TIMELIB_ZONETYPE_ABBR;
offset = timelib_lookup_zone(ptr, dst, &tz_abbr, &found);
+ if (found) {
+ t->zone_type = TIMELIB_ZONETYPE_ABBR;
+ }
#if 0
/* If we found a TimeZone identifier, use it */
if (tz_name) {
@@ -702,7 +722,7 @@ static long timelib_get_zone(char **ptr, int *dst, timelib_time *t, int *tz_not_
found++;
}
}
- if (t->zone_type != TIMELIB_ZONETYPE_ID) {
+ if (found && t->zone_type != TIMELIB_ZONETYPE_ID) {
timelib_time_tz_abbr_update(t, tz_abbr);
}
free(tz_abbr);
@@ -736,7 +756,7 @@ std:
/*!re2c
any = [\000-\377];
-space = [ ]+;
+space = [ \t]+;
frac = "."[0-9]+;
ago = 'ago';
@@ -748,8 +768,8 @@ minute = [0-5]?[0-9];
minutelz = [0-5][0-9];
second = minute | "60";
secondlz = minutelz | "60";
-meridian = [AaPp] "."? [Mm] "."?;
-tz = "("? [A-Za-z]{1,4} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+;
+meridian = ([AaPp] "."? [Mm] "."?) [\000\t ];
+tz = "("? [A-Za-z]{1,6} ")"? | [A-Z][a-z]+([_/][A-Z][a-z]+)+;
tzcorrection = [+-] hour24 ":"? minute?;
daysuf = "st" | "nd" | "rd" | "th";
@@ -780,17 +800,17 @@ timetiny12 = hour12 space? meridian;
timeshort12 = hour12[:.]minutelz space? meridian;
timelong12 = hour12[:.]minute[:.]secondlz space? meridian;
-timeshort24 = hour24[:.]minute;
-timelong24 = hour24[:.]minute[:.]second;
-iso8601long = hour24 [:.] minute [:.] second frac;
+timeshort24 = 't'? hour24[:.]minute;
+timelong24 = 't'? hour24[:.]minute[:.]second;
+iso8601long = 't'? hour24 [:.] minute [:.] second frac;
/* iso8601shorttz = hour24 [:] minutelz space? (tzcorrection | tz); */
-iso8601normtz = hour24 [:.] minute [:.] secondlz space? (tzcorrection | tz);
+iso8601normtz = 't'? hour24 [:.] minute [:.] secondlz space? (tzcorrection | tz);
/* iso8601longtz = hour24 [:] minute [:] secondlz frac space? (tzcorrection | tz); */
-gnunocolon = hour24lz minutelz;
+gnunocolon = 't'? hour24lz minutelz;
/* gnunocolontz = hour24lz minutelz space? (tzcorrection | tz); */
-iso8601nocolon = hour24lz minutelz secondlz;
+iso8601nocolon = 't'? hour24lz minutelz secondlz;
/* iso8601nocolontz = hour24lz minutelz secondlz space? (tzcorrection | tz); */
/* Date formats */
@@ -800,13 +820,13 @@ iso8601dateslash = year4 "/" monthlz "/" daylz "/"?;
dateslash = year4 "/" month "/" day;
gnudateshort = year "-" month "-" day;
iso8601date = year4 "-" monthlz "-" daylz;
-pointeddate = day "." month "." year;
-datefull = day ([ -.])* monthtext ([ -.])* year;
-datenoday = monthtext ([ -.])* year4;
-datenodayrev = year4 ([ -.])* monthtext;
-datetextual = monthtext ([ -.])* day [,.stndrh ]* year;
-datenoyear = monthtext ([ -.])* day [,.stndrh ]*;
-datenoyearrev = day ([ -.])* monthtext;
+pointeddate = day [.\t-] month [.-] year;
+datefull = day ([ \t.-])* monthtext ([ \t.-])* year;
+datenoday = monthtext ([ .\t-])* year4;
+datenodayrev = year4 ([ .\t-])* monthtext;
+datetextual = monthtext ([ .\t-])* day [,.stndrh\t ]* year;
+datenoyear = monthtext ([ .\t-])* day [,.stndrh\t ]*;
+datenoyearrev = day ([ .\t-])* monthtext;
datenocolon = year4 monthlz daylz;
/* Special formats */
@@ -819,12 +839,13 @@ pgtextshort = monthabbr "-" daylz "-" year;
pgtextreverse = year "-" monthabbr "-" daylz;
isoweekday = year4 "W" weekofyear [0-7];
isoweek = year4 "W" weekofyear;
+exif = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
/* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
clf = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
/* Timestamp format: @1126396800 */
-timestamp = "@" "-"? [1-9] [0-9]*;
+timestamp = "@" "-"? [0-9]+;
/* To fix some ambiguities */
dateshortwithtimeshort = datenoyear timeshort24;
@@ -837,7 +858,7 @@ dateshortwithtimelongtz = datenoyear iso8601normtz;
reltextnumber = 'first'|'next'|'second'|'third'|'fourth'|'fifth'|'sixth'|'seventh'|'eight'|'ninth'|'tenth'|'eleventh'|'twelfth'|'last'|'previous'|'this';
reltextunit = (('sec'|'second'|'min'|'minute'|'hour'|'day'|'week'|'fortnight'|'forthnight'|'month'|'year') 's'?) | daytext;
-relnumber = ([+-]?[ ]*[0-9]+);
+relnumber = ([+-]?[ \t]*[0-9]+);
relative = relnumber space? reltextunit;
relativetext = reltextnumber space? reltextunit;
@@ -959,7 +980,9 @@ relativetext = reltextnumber space? reltextunit;
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_TIME24_WITH_ZONE;
@@ -980,6 +1003,7 @@ relativetext = reltextnumber space? reltextunit;
break;
default:
TIMELIB_DEINIT;
+ add_error(s, "Double time specification");
return TIMELIB_ERROR;
}
s->time->have_time++;
@@ -1022,7 +1046,9 @@ relativetext = reltextnumber space? reltextunit;
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_ISO_NOCOLON;
@@ -1158,10 +1184,10 @@ relativetext = reltextnumber space? reltextunit;
return TIMELIB_DATE_NOCOLON;
}
- xmlrpc | xmlrpcnocolon | soap | wddx
+ xmlrpc | xmlrpcnocolon | soap | wddx | exif
{
int tz_not_found;
- DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx");
+ DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
TIMELIB_INIT;
TIMELIB_HAVE_TIME();
TIMELIB_HAVE_DATE();
@@ -1175,7 +1201,9 @@ relativetext = reltextnumber space? reltextunit;
s->time->f = timelib_get_frac_nr((char **) &ptr, 9);
if (*ptr) { /* timezone is optional */
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
}
TIMELIB_DEINIT;
@@ -1273,7 +1301,9 @@ relativetext = reltextnumber space? reltextunit;
s->time->i = timelib_get_nr((char **) &ptr, 2);
s->time->s = timelib_get_nr((char **) &ptr, 2);
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_CLF;
}
@@ -1321,7 +1351,7 @@ relativetext = reltextnumber space? reltextunit;
relativetext
{
timelib_sll i;
- int behavior;
+ int behavior = 0;
DEBUG_OUTPUT("relativetext");
TIMELIB_INIT;
TIMELIB_HAVE_RELATIVE();
@@ -1340,8 +1370,11 @@ relativetext = reltextnumber space? reltextunit;
int tz_not_found;
DEBUG_OUTPUT("tzcorrection | tz");
TIMELIB_INIT;
+ TIMELIB_HAVE_TZ();
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
TIMELIB_DEINIT;
return TIMELIB_TIMEZONE;
}
@@ -1368,7 +1401,9 @@ relativetext = reltextnumber space? reltextunit;
if (*ptr != '\0') {
s->time->z = timelib_get_zone((char **) &ptr, &s->time->dst, s->time, &tz_not_found, s->tzdb);
- s->errors += tz_not_found;
+ if (tz_not_found) {
+ add_error(s, "The timezone could not be found in the database");
+ }
}
TIMELIB_DEINIT;
return TIMELIB_SHORTDATE_WITH_TIME;
@@ -1390,7 +1425,7 @@ relativetext = reltextnumber space? reltextunit;
return TIMELIB_RELATIVE;
}
- [ .,]
+ [ .,\t]
{
goto std;
}
@@ -1403,8 +1438,7 @@ relativetext = reltextnumber space? reltextunit;
any
{
-/* printf("unexpected character: #%d, %c ", *s->tok, *s->tok); */
- s->errors++;
+ add_error(s, "Unexpected character");
goto std;
}
*/
@@ -1412,12 +1446,19 @@ relativetext = reltextnumber space? reltextunit;
/*!max:re2c */
-timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzdb)
+timelib_time* timelib_strtotime(char *s, int len, struct timelib_error_container **errors, timelib_tzdb *tzdb)
{
Scanner in;
int t;
char *e = s + len - 1;
+ memset(&in, 0, sizeof(in));
+ in.errors = malloc(sizeof(struct timelib_error_container));
+ in.errors->warning_count = 0;
+ in.errors->warning_messages = NULL;
+ in.errors->error_count = 0;
+ in.errors->error_messages = NULL;
+
while (isspace(*s) && s < e) {
s++;
}
@@ -1425,15 +1466,19 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
e--;
}
if (e - s < 1) {
- *errors = 1;
in.time = timelib_time_ctor();
+ add_error(&in, "Empty string");
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
in.time->y = in.time->d = in.time->m = in.time->h = in.time->i = in.time->s = in.time->f = in.time->z = in.time->dst = -1;
in.time->is_localtime = in.time->zone_type = 0;
return in.time;
}
e++;
- memset(&in, 0, sizeof(in));
in.str = malloc((e - s) + YYMAXFILL);
memset(in.str, 0, (e - s) + YYMAXFILL);
memcpy(in.str, s, (e - s));
@@ -1449,7 +1494,6 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
in.time->f = -1;
in.time->z = -1;
in.time->dst = -1;
- in.errors = 0;
in.tzdb = tzdb;
in.time->is_localtime = 0;
in.time->zone_type = 0;
@@ -1462,7 +1506,11 @@ timelib_time* timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzd
} while(t != EOI);
free(in.str);
- *errors = in.errors;
+ if (errors) {
+ *errors = in.errors;
+ } else {
+ timelib_error_container_dtor(in.errors);
+ }
return in.time;
}
diff --git a/ext/date/lib/parse_tz.c b/ext/date/lib/parse_tz.c
index 3a23e30ef..ccd30c892 100644
--- a/ext/date/lib/parse_tz.c
+++ b/ext/date/lib/parse_tz.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: parse_tz.c,v 1.20.2.5 2006/01/04 21:31:34 derick Exp $ */
+/* $Id: parse_tz.c,v 1.20.2.6 2006/03/18 23:43:48 tony2001 Exp $ */
#include "timelib.h"
@@ -368,6 +368,7 @@ timelib_time_offset *timelib_get_time_zone_info(timelib_sll ts, timelib_tzinfo *
timelib_sll timelib_get_current_offset(timelib_time *t)
{
timelib_time_offset *gmt_offset;
+ timelib_sll retval;
switch (t->zone_type) {
case TIMELIB_ZONETYPE_ABBR:
@@ -376,7 +377,9 @@ timelib_sll timelib_get_current_offset(timelib_time *t)
case TIMELIB_ZONETYPE_ID:
gmt_offset = timelib_get_time_zone_info(t->sse, t->tz_info);
- return gmt_offset->offset;
+ retval = gmt_offset->offset;
+ timelib_time_offset_dtor(gmt_offset);
+ return retval;
default:
return 0;
diff --git a/ext/date/lib/timelib.c b/ext/date/lib/timelib.c
index dabc809ec..f08bbe2ec 100644
--- a/ext/date/lib/timelib.c
+++ b/ext/date/lib/timelib.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: timelib.c,v 1.7.2.3 2006/01/01 12:50:05 sniper Exp $ */
+/* $Id: timelib.c,v 1.7.2.4 2006/04/11 18:03:52 derick Exp $ */
#include "timelib.h"
#include <ctype.h>
@@ -122,6 +122,21 @@ char *timelib_get_tz_abbr_ptr(timelib_time *t)
return t->tz_abbr;
}
+void timelib_error_container_dtor(timelib_error_container *errors)
+{
+ int i;
+
+ for (i = 0; i < errors->warning_count; i++) {
+ free(errors->warning_messages[i].message);
+ }
+ free(errors->warning_messages);
+ for (i = 0; i < errors->error_count; i++) {
+ free(errors->error_messages[i].message);
+ }
+ free(errors->error_messages);
+ free(errors);
+}
+
signed long timelib_date_to_int(timelib_time *d, int *error)
{
timelib_sll ts;
diff --git a/ext/date/lib/timelib.h b/ext/date/lib/timelib.h
index 722420717..c6a99afca 100644
--- a/ext/date/lib/timelib.h
+++ b/ext/date/lib/timelib.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: timelib.h,v 1.10.2.10 2006/01/04 21:31:34 derick Exp $ */
+/* $Id: timelib.h,v 1.10.2.11 2006/04/11 18:03:52 derick Exp $ */
#ifndef __TIMELIB_H__
#define __TIMELIB_H__
@@ -51,7 +51,7 @@ timelib_sll timelib_days_in_month(timelib_sll y, timelib_sll m);
void timelib_isoweek_from_date(timelib_sll y, timelib_sll m, timelib_sll d, timelib_sll *iw, timelib_sll *iy);
/* From parse_date.re */
-timelib_time *timelib_strtotime(char *s, int len, int *errors, timelib_tzdb *tzdb);
+timelib_time *timelib_strtotime(char *s, int len, timelib_error_container **errors, timelib_tzdb *tzdb);
void timelib_fill_holes(timelib_time *parsed, timelib_time *now, int options);
char *timelib_timezone_id_from_abbr(const char *abbr, long gmtoffset, int isdst);
timelib_tz_lookup_table *timelib_timezone_abbreviations_list(void);
@@ -90,6 +90,8 @@ void timelib_time_dtor(timelib_time* t);
timelib_time_offset* timelib_time_offset_ctor();
void timelib_time_offset_dtor(timelib_time_offset* t);
+void timelib_error_container_dtor(timelib_error_container *errors);
+
signed long timelib_date_to_int(timelib_time *d, int *error);
void timelib_dump_date(timelib_time *d, int options);
diff --git a/ext/date/lib/timelib_structs.h b/ext/date/lib/timelib_structs.h
index 90df015a9..eb1460319 100644
--- a/ext/date/lib/timelib_structs.h
+++ b/ext/date/lib/timelib_structs.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: timelib_structs.h,v 1.13.2.5 2006/01/01 12:50:05 sniper Exp $ */
+/* $Id: timelib_structs.h,v 1.13.2.6 2006/04/11 18:03:52 derick Exp $ */
#ifndef __TIMELIB_STRUCTS_H__
#define __TIMELIB_STRUCTS_H__
@@ -147,6 +147,19 @@ typedef struct timelib_time {
* 2 TimeZone abbreviation */
} timelib_time;
+typedef struct timelib_error_message {
+ int position;
+ char character;
+ char *message;
+} timelib_error_message;
+
+typedef struct timelib_error_container {
+ int warning_count;
+ struct timelib_error_message *warning_messages;
+ int error_count;
+ struct timelib_error_message *error_messages;
+} timelib_error_container;
+
typedef struct _timelib_tz_lookup_table {
char *name;
int type;
@@ -170,9 +183,10 @@ typedef struct _timelib_tzdb {
#define TIMELIB_ZONETYPE_ABBR 2
#define TIMELIB_ZONETYPE_ID 3
-#define SECS_PER_DAY 86400
-#define DAYS_PER_YEAR 365
-#define DAYS_PER_LYEAR 366
+#define SECS_PER_ERA 12622780800L
+#define SECS_PER_DAY 86400
+#define DAYS_PER_YEAR 365
+#define DAYS_PER_LYEAR 366
#define timelib_is_leap(y) ((y) % 4 == 0 && ((y) % 100 != 0 || (y) % 400 == 0))
diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h
index e85fbe70f..1831b341c 100644
--- a/ext/date/lib/timezonedb.h
+++ b/ext/date/lib/timezonedb.h
@@ -1,4 +1,4 @@
-timelib_tzdb_index_entry timezonedb_idx_builtin[535] = {
+timelib_tzdb_index_entry timezonedb_idx_builtin[538] = {
{ "Africa/Abidjan" , 0x000000 },
{ "Africa/Accra" , 0x000049 },
{ "Africa/Addis_Ababa" , 0x0000E5 },
@@ -118,425 +118,428 @@ timelib_tzdb_index_entry timezonedb_idx_builtin[535] = {
{ "America/Hermosillo" , 0x008DB8 },
{ "America/Indiana/Indianapolis" , 0x008E6B },
{ "America/Indiana/Knox" , 0x0090C9 },
- { "America/Indiana/Marengo" , 0x00943A },
- { "America/Indiana/Vevay" , 0x00990A },
- { "America/Indianapolis" , 0x0096AC },
- { "America/Inuvik" , 0x009B0E },
- { "America/Iqaluit" , 0x009E05 },
- { "America/Jamaica" , 0x00A0F7 },
- { "America/Jujuy" , 0x00A1B0 },
- { "America/Juneau" , 0x00A344 },
- { "America/Kentucky/Louisville" , 0x00A698 },
- { "America/Kentucky/Monticello" , 0x00AA81 },
- { "America/Knox_IN" , 0x00ADD4 },
- { "America/La_Paz" , 0x00B145 },
- { "America/Lima" , 0x00B1A0 },
- { "America/Los_Angeles" , 0x00B23C },
- { "America/Louisville" , 0x00B635 },
- { "America/Maceio" , 0x00BA1E },
- { "America/Managua" , 0x00BB3C },
- { "America/Manaus" , 0x00BBD9 },
- { "America/Martinique" , 0x00BCC5 },
- { "America/Mazatlan" , 0x00BD25 },
- { "America/Mendoza" , 0x00BF5E },
- { "America/Menominee" , 0x00C0FC },
- { "America/Merida" , 0x00C42A },
- { "America/Mexico_City" , 0x00C639 },
- { "America/Miquelon" , 0x00C88B },
- { "America/Monterrey" , 0x00CAF1 },
- { "America/Montevideo" , 0x00CCF4 },
- { "America/Montreal" , 0x00CEBA },
- { "America/Montserrat" , 0x00D39E },
- { "America/Nassau" , 0x00D3E7 },
- { "America/New_York" , 0x00D720 },
- { "America/Nipigon" , 0x00DC13 },
- { "America/Nome" , 0x00DF0D },
- { "America/Noronha" , 0x00E266 },
- { "America/North_Dakota/Center" , 0x00E37A },
- { "America/Panama" , 0x00E6D7 },
- { "America/Pangnirtung" , 0x00E720 },
- { "America/Paramaribo" , 0x00EA2A },
- { "America/Phoenix" , 0x00EAB0 },
- { "America/Port-au-Prince" , 0x00EB32 },
- { "America/Port_of_Spain" , 0x00ED1A },
- { "America/Porto_Acre" , 0x00EC38 },
- { "America/Porto_Velho" , 0x00ED63 },
- { "America/Puerto_Rico" , 0x00EE45 },
- { "America/Rainy_River" , 0x00EE93 },
- { "America/Rankin_Inlet" , 0x00F18D },
- { "America/Recife" , 0x00F473 },
- { "America/Regina" , 0x00F587 },
- { "America/Rio_Branco" , 0x00F704 },
- { "America/Rosario" , 0x00F7E6 },
- { "America/Santiago" , 0x00F96C },
- { "America/Santo_Domingo" , 0x00FCE6 },
- { "America/Sao_Paulo" , 0x00FDA0 },
- { "America/Scoresbysund" , 0x010071 },
- { "America/Shiprock" , 0x010334 },
- { "America/St_Johns" , 0x0106A1 },
- { "America/St_Kitts" , 0x010BC0 },
- { "America/St_Lucia" , 0x010C09 },
- { "America/St_Thomas" , 0x010C52 },
- { "America/St_Vincent" , 0x010C9B },
- { "America/Swift_Current" , 0x010CE4 },
- { "America/Tegucigalpa" , 0x010DCB },
- { "America/Thule" , 0x010E34 },
- { "America/Thunder_Bay" , 0x01105F },
- { "America/Tijuana" , 0x011379 },
- { "America/Toronto" , 0x0116C5 },
- { "America/Tortola" , 0x011BA9 },
- { "America/Vancouver" , 0x011BF2 },
- { "America/Virgin" , 0x011FFF },
- { "America/Whitehorse" , 0x012048 },
- { "America/Winnipeg" , 0x01233F },
- { "America/Yakutat" , 0x012748 },
- { "America/Yellowknife" , 0x012A84 },
- { "Antarctica/Casey" , 0x012D5E },
- { "Antarctica/Davis" , 0x012DA7 },
- { "Antarctica/DumontDUrville" , 0x012DFB },
- { "Antarctica/Mawson" , 0x012E5B },
- { "Antarctica/McMurdo" , 0x012EA5 },
- { "Antarctica/Palmer" , 0x01317F },
- { "Antarctica/Rothera" , 0x013488 },
- { "Antarctica/South_Pole" , 0x0134D2 },
- { "Antarctica/Syowa" , 0x0137AC },
- { "Antarctica/Vostok" , 0x0137F6 },
- { "Arctic/Longyearbyen" , 0x013840 },
- { "Asia/Aden" , 0x013B66 },
- { "Asia/Almaty" , 0x013BAF },
- { "Asia/Amman" , 0x013D14 },
- { "Asia/Anadyr" , 0x013FC8 },
- { "Asia/Aqtau" , 0x014294 },
- { "Asia/Aqtobe" , 0x014456 },
- { "Asia/Ashgabat" , 0x0145F3 },
- { "Asia/Ashkhabad" , 0x014704 },
- { "Asia/Baghdad" , 0x014815 },
- { "Asia/Bahrain" , 0x014AAA },
- { "Asia/Baku" , 0x014B04 },
- { "Asia/Bangkok" , 0x014DE5 },
- { "Asia/Beirut" , 0x014E2E },
- { "Asia/Bishkek" , 0x01512F },
- { "Asia/Brunei" , 0x0152CF },
- { "Asia/Calcutta" , 0x015325 },
- { "Asia/Choibalsan" , 0x015392 },
- { "Asia/Chongqing" , 0x015626 },
- { "Asia/Chungking" , 0x0156C9 },
- { "Asia/Colombo" , 0x01576C },
- { "Asia/Dacca" , 0x0157F7 },
- { "Asia/Damascus" , 0x01587A },
- { "Asia/Dhaka" , 0x015BBE },
- { "Asia/Dili" , 0x015C41 },
- { "Asia/Dubai" , 0x015CBE },
- { "Asia/Dushanbe" , 0x015D07 },
- { "Asia/Gaza" , 0x015DFE },
- { "Asia/Harbin" , 0x01613B },
- { "Asia/Hong_Kong" , 0x0161F5 },
- { "Asia/Hovd" , 0x01639F },
- { "Asia/Irkutsk" , 0x016626 },
- { "Asia/Istanbul" , 0x0168EA },
- { "Asia/Jakarta" , 0x016CCB },
- { "Asia/Jayapura" , 0x016D5B },
- { "Asia/Jerusalem" , 0x016DBA },
- { "Asia/Kabul" , 0x0170DD },
- { "Asia/Kamchatka" , 0x017122 },
- { "Asia/Karachi" , 0x0173E6 },
- { "Asia/Kashgar" , 0x01747B },
- { "Asia/Katmandu" , 0x01752B },
- { "Asia/Krasnoyarsk" , 0x017585 },
- { "Asia/Kuala_Lumpur" , 0x017849 },
- { "Asia/Kuching" , 0x0178E7 },
- { "Asia/Kuwait" , 0x0179BA },
- { "Asia/Macao" , 0x017A03 },
- { "Asia/Macau" , 0x017B32 },
- { "Asia/Magadan" , 0x017C61 },
- { "Asia/Makassar" , 0x017F25 },
- { "Asia/Manila" , 0x017F95 },
- { "Asia/Muscat" , 0x01800E },
- { "Asia/Nicosia" , 0x018057 },
- { "Asia/Novosibirsk" , 0x018333 },
- { "Asia/Omsk" , 0x018604 },
- { "Asia/Oral" , 0x0188C8 },
- { "Asia/Phnom_Penh" , 0x018A7D },
- { "Asia/Pontianak" , 0x018AE9 },
- { "Asia/Pyongyang" , 0x018B89 },
- { "Asia/Qatar" , 0x018BEA },
- { "Asia/Qyzylorda" , 0x018C44 },
- { "Asia/Rangoon" , 0x018DEE },
- { "Asia/Riyadh" , 0x018E5A },
- { "Asia/Saigon" , 0x018EA3 },
- { "Asia/Sakhalin" , 0x018F0F },
- { "Asia/Samarkand" , 0x0191E8 },
- { "Asia/Seoul" , 0x01932B },
- { "Asia/Shanghai" , 0x0193C3 },
- { "Asia/Singapore" , 0x019468 },
- { "Asia/Taipei" , 0x019513 },
- { "Asia/Tashkent" , 0x01961F },
- { "Asia/Tbilisi" , 0x019747 },
- { "Asia/Tehran" , 0x0198F5 },
- { "Asia/Tel_Aviv" , 0x019B6B },
- { "Asia/Thimbu" , 0x019E8E },
- { "Asia/Thimphu" , 0x019EE8 },
- { "Asia/Tokyo" , 0x019F42 },
- { "Asia/Ujung_Pandang" , 0x019FBF },
- { "Asia/Ulaanbaatar" , 0x01A02F },
- { "Asia/Ulan_Bator" , 0x01A2B6 },
- { "Asia/Urumqi" , 0x01A53D },
- { "Asia/Vientiane" , 0x01A5E0 },
- { "Asia/Vladivostok" , 0x01A64C },
- { "Asia/Yakutsk" , 0x01A917 },
- { "Asia/Yekaterinburg" , 0x01ABDB },
- { "Asia/Yerevan" , 0x01AECA },
- { "Atlantic/Azores" , 0x01B1C2 },
- { "Atlantic/Bermuda" , 0x01B6B3 },
- { "Atlantic/Canary" , 0x01B988 },
- { "Atlantic/Cape_Verde" , 0x01BC44 },
- { "Atlantic/Faeroe" , 0x01BCB1 },
- { "Atlantic/Jan_Mayen" , 0x01BF49 },
- { "Atlantic/Madeira" , 0x01C26F },
- { "Atlantic/Reykjavik" , 0x01C75D },
- { "Atlantic/South_Georgia" , 0x01C90A },
- { "Atlantic/St_Helena" , 0x01CC0A },
- { "Atlantic/Stanley" , 0x01C942 },
- { "Australia/ACT" , 0x01CC53 },
- { "Australia/Adelaide" , 0x01CF64 },
- { "Australia/Brisbane" , 0x01D275 },
- { "Australia/Broken_Hill" , 0x01D315 },
- { "Australia/Canberra" , 0x01D62B },
- { "Australia/Currie" , 0x01D93C },
- { "Australia/Darwin" , 0x01DC4D },
- { "Australia/Hobart" , 0x01DCB5 },
- { "Australia/LHI" , 0x01DFEE },
- { "Australia/Lindeman" , 0x01E27D },
- { "Australia/Lord_Howe" , 0x01E336 },
- { "Australia/Melbourne" , 0x01E5C5 },
- { "Australia/North" , 0x01E8D6 },
- { "Australia/NSW" , 0x01E93E },
- { "Australia/Perth" , 0x01EC4F },
- { "Australia/Queensland" , 0x01ECDB },
- { "Australia/South" , 0x01ED7B },
- { "Australia/Sydney" , 0x01F08C },
- { "Australia/Tasmania" , 0x01F39D },
- { "Australia/Victoria" , 0x01F6D6 },
- { "Australia/West" , 0x01F9E7 },
- { "Australia/Yancowinna" , 0x01FA73 },
- { "Brazil/Acre" , 0x01FD89 },
- { "Brazil/DeNoronha" , 0x01FE6B },
- { "Brazil/East" , 0x01FF7F },
- { "Brazil/West" , 0x020250 },
- { "Canada/Atlantic" , 0x02033C },
- { "Canada/Central" , 0x020818 },
- { "Canada/East-Saskatchewan" , 0x021105 },
- { "Canada/Eastern" , 0x020C21 },
- { "Canada/Mountain" , 0x021282 },
- { "Canada/Newfoundland" , 0x0215EC },
- { "Canada/Pacific" , 0x021B0B },
- { "Canada/Saskatchewan" , 0x021F18 },
- { "Canada/Yukon" , 0x022095 },
- { "CET" , 0x02238C },
- { "Chile/Continental" , 0x02267F },
- { "Chile/EasterIsland" , 0x0229F9 },
- { "CST6CDT" , 0x022D41 },
- { "Cuba" , 0x023086 },
- { "EET" , 0x0233ED },
- { "Egypt" , 0x023694 },
- { "Eire" , 0x023A4F },
- { "EST" , 0x023F54 },
- { "EST5EDT" , 0x023F8C },
- { "Etc/GMT" , 0x0242D1 },
- { "Etc/GMT+0" , 0x024379 },
- { "Etc/GMT+1" , 0x0243EB },
- { "Etc/GMT+10" , 0x024460 },
- { "Etc/GMT+11" , 0x0244D6 },
- { "Etc/GMT+12" , 0x02454C },
- { "Etc/GMT+2" , 0x024637 },
- { "Etc/GMT+3" , 0x0246AB },
- { "Etc/GMT+4" , 0x02471F },
- { "Etc/GMT+5" , 0x024793 },
- { "Etc/GMT+6" , 0x024807 },
- { "Etc/GMT+7" , 0x02487B },
- { "Etc/GMT+8" , 0x0248EF },
- { "Etc/GMT+9" , 0x024963 },
- { "Etc/GMT-0" , 0x024341 },
- { "Etc/GMT-1" , 0x0243B1 },
- { "Etc/GMT-10" , 0x024425 },
- { "Etc/GMT-11" , 0x02449B },
- { "Etc/GMT-12" , 0x024511 },
- { "Etc/GMT-13" , 0x024587 },
- { "Etc/GMT-14" , 0x0245C2 },
- { "Etc/GMT-2" , 0x0245FD },
- { "Etc/GMT-3" , 0x024671 },
- { "Etc/GMT-4" , 0x0246E5 },
- { "Etc/GMT-5" , 0x024759 },
- { "Etc/GMT-6" , 0x0247CD },
- { "Etc/GMT-7" , 0x024841 },
- { "Etc/GMT-8" , 0x0248B5 },
- { "Etc/GMT-9" , 0x024929 },
- { "Etc/GMT0" , 0x024309 },
- { "Etc/Greenwich" , 0x02499D },
- { "Etc/UCT" , 0x0249D5 },
- { "Etc/Universal" , 0x024A0D },
- { "Etc/UTC" , 0x024A45 },
- { "Etc/Zulu" , 0x024A7D },
- { "Europe/Amsterdam" , 0x024AB5 },
- { "Europe/Andorra" , 0x024EE7 },
- { "Europe/Athens" , 0x025157 },
- { "Europe/Belfast" , 0x02548E },
- { "Europe/Belgrade" , 0x0259B9 },
- { "Europe/Berlin" , 0x025C71 },
- { "Europe/Bratislava" , 0x025FB6 },
- { "Europe/Brussels" , 0x0262DC },
- { "Europe/Bucharest" , 0x026707 },
- { "Europe/Budapest" , 0x026A25 },
- { "Europe/Chisinau" , 0x026D87 },
- { "Europe/Copenhagen" , 0x027109 },
- { "Europe/Dublin" , 0x027407 },
- { "Europe/Gibraltar" , 0x02790C },
- { "Europe/Helsinki" , 0x027D57 },
- { "Europe/Istanbul" , 0x028001 },
- { "Europe/Kaliningrad" , 0x0283E2 },
- { "Europe/Kiev" , 0x028722 },
- { "Europe/Lisbon" , 0x028A1F },
- { "Europe/Ljubljana" , 0x028F0F },
- { "Europe/London" , 0x0291C7 },
- { "Europe/Luxembourg" , 0x0296F2 },
- { "Europe/Madrid" , 0x029B3C },
- { "Europe/Malta" , 0x029EEE },
- { "Europe/Mariehamn" , 0x02A29B },
- { "Europe/Minsk" , 0x02A545 },
- { "Europe/Monaco" , 0x02A844 },
- { "Europe/Moscow" , 0x02AC73 },
- { "Europe/Nicosia" , 0x02AFA2 },
- { "Europe/Oslo" , 0x02B27E },
- { "Europe/Paris" , 0x02B5A4 },
- { "Europe/Prague" , 0x02B9DE },
- { "Europe/Riga" , 0x02BD04 },
- { "Europe/Rome" , 0x02C03D },
- { "Europe/Samara" , 0x02C3F4 },
- { "Europe/San_Marino" , 0x02C6F3 },
- { "Europe/Sarajevo" , 0x02CAAA },
- { "Europe/Simferopol" , 0x02CD62 },
- { "Europe/Skopje" , 0x02D073 },
- { "Europe/Sofia" , 0x02D32B },
- { "Europe/Stockholm" , 0x02D61A },
- { "Europe/Tallinn" , 0x02D8BD },
- { "Europe/Tirane" , 0x02DBEB },
- { "Europe/Tiraspol" , 0x02DEE5 },
- { "Europe/Uzhgorod" , 0x02E267 },
- { "Europe/Vaduz" , 0x02E56A },
- { "Europe/Vatican" , 0x02E7F1 },
- { "Europe/Vienna" , 0x02EBA8 },
- { "Europe/Vilnius" , 0x02EEC9 },
- { "Europe/Warsaw" , 0x02F1FC },
- { "Europe/Zagreb" , 0x02F5CC },
- { "Europe/Zaporozhye" , 0x02F884 },
- { "Europe/Zurich" , 0x02FB8B },
- { "Factory" , 0x02FE38 },
- { "GB" , 0x02FE9D },
- { "GB-Eire" , 0x0303C8 },
- { "GMT" , 0x0308F3 },
- { "GMT+0" , 0x03099B },
- { "GMT-0" , 0x030963 },
- { "GMT0" , 0x03092B },
- { "Greenwich" , 0x0309D3 },
- { "Hongkong" , 0x030A0B },
- { "HST" , 0x030BB5 },
- { "Iceland" , 0x030BED },
- { "Indian/Antananarivo" , 0x030D9A },
- { "Indian/Chagos" , 0x030E02 },
- { "Indian/Christmas" , 0x030E58 },
- { "Indian/Cocos" , 0x030E90 },
- { "Indian/Comoro" , 0x030EC8 },
- { "Indian/Kerguelen" , 0x030F11 },
- { "Indian/Mahe" , 0x030F5A },
- { "Indian/Maldives" , 0x030FA3 },
- { "Indian/Mauritius" , 0x030FEC },
- { "Indian/Mayotte" , 0x031035 },
- { "Indian/Reunion" , 0x03107E },
- { "Iran" , 0x0310C7 },
- { "Israel" , 0x03133D },
- { "Jamaica" , 0x031660 },
- { "Japan" , 0x031719 },
- { "Kwajalein" , 0x031796 },
- { "Libya" , 0x0317ED },
- { "MET" , 0x0318DB },
- { "Mexico/BajaNorte" , 0x031BCE },
- { "Mexico/BajaSur" , 0x031F1A },
- { "Mexico/General" , 0x032153 },
- { "MST" , 0x0323A5 },
- { "MST7MDT" , 0x0323DD },
- { "Navajo" , 0x032722 },
- { "NZ" , 0x032A8F },
- { "NZ-CHAT" , 0x032E01 },
- { "Pacific/Apia" , 0x0330DD },
- { "Pacific/Auckland" , 0x033138 },
- { "Pacific/Chatham" , 0x0334AA },
- { "Pacific/Easter" , 0x033786 },
- { "Pacific/Efate" , 0x033ACE },
- { "Pacific/Enderbury" , 0x033B88 },
- { "Pacific/Fakaofo" , 0x033BDB },
- { "Pacific/Fiji" , 0x033C13 },
- { "Pacific/Funafuti" , 0x033C7D },
- { "Pacific/Galapagos" , 0x033CB5 },
- { "Pacific/Gambier" , 0x033D10 },
- { "Pacific/Guadalcanal" , 0x033D5A },
- { "Pacific/Guam" , 0x033DA3 },
- { "Pacific/Honolulu" , 0x033DED },
- { "Pacific/Johnston" , 0x033E6F },
- { "Pacific/Kiritimati" , 0x033EA7 },
- { "Pacific/Kosrae" , 0x033EFA },
- { "Pacific/Kwajalein" , 0x033F45 },
- { "Pacific/Majuro" , 0x033F9C },
- { "Pacific/Marquesas" , 0x033FE1 },
- { "Pacific/Midway" , 0x03402B },
- { "Pacific/Nauru" , 0x03409B },
- { "Pacific/Niue" , 0x034107 },
- { "Pacific/Norfolk" , 0x034159 },
- { "Pacific/Noumea" , 0x0341A2 },
- { "Pacific/Pago_Pago" , 0x034226 },
- { "Pacific/Palau" , 0x0342A3 },
- { "Pacific/Pitcairn" , 0x0342DB },
- { "Pacific/Ponape" , 0x034324 },
- { "Pacific/Port_Moresby" , 0x03435D },
- { "Pacific/Rarotonga" , 0x034395 },
- { "Pacific/Saipan" , 0x034465 },
- { "Pacific/Samoa" , 0x0344BC },
- { "Pacific/Tahiti" , 0x034539 },
- { "Pacific/Tarawa" , 0x034583 },
- { "Pacific/Tongatapu" , 0x0345BC },
- { "Pacific/Truk" , 0x03463C },
- { "Pacific/Wake" , 0x034675 },
- { "Pacific/Wallis" , 0x0346AE },
- { "Pacific/Yap" , 0x0346E6 },
- { "Poland" , 0x03471F },
- { "Portugal" , 0x034AEF },
- { "PRC" , 0x034FDF },
- { "PST8PDT" , 0x035084 },
- { "ROC" , 0x0353C9 },
- { "ROK" , 0x0354D5 },
- { "Singapore" , 0x03556D },
- { "Turkey" , 0x035618 },
- { "UCT" , 0x0359F9 },
- { "Universal" , 0x035A31 },
- { "US/Alaska" , 0x035A69 },
- { "US/Aleutian" , 0x035DC1 },
- { "US/Arizona" , 0x03611B },
- { "US/Central" , 0x03619D },
- { "US/East-Indiana" , 0x036B8F },
- { "US/Eastern" , 0x03669C },
- { "US/Hawaii" , 0x036DED },
- { "US/Indiana-Starke" , 0x036E6F },
- { "US/Michigan" , 0x0371E0 },
- { "US/Mountain" , 0x03750B },
- { "US/Pacific" , 0x037878 },
- { "US/Pacific-New" , 0x037C71 },
- { "US/Samoa" , 0x03806A },
- { "UTC" , 0x0380E7 },
- { "W-SU" , 0x0383C6 },
- { "WET" , 0x03811F },
- { "Zulu" , 0x0386F5 },
+ { "America/Indiana/Marengo" , 0x00942E },
+ { "America/Indiana/Petersburg" , 0x0096A0 },
+ { "America/Indiana/Vevay" , 0x009BA5 },
+ { "America/Indiana/Vincennes" , 0x009DA9 },
+ { "America/Indianapolis" , 0x009947 },
+ { "America/Inuvik" , 0x00A011 },
+ { "America/Iqaluit" , 0x00A308 },
+ { "America/Jamaica" , 0x00A5FA },
+ { "America/Jujuy" , 0x00A6B3 },
+ { "America/Juneau" , 0x00A847 },
+ { "America/Kentucky/Louisville" , 0x00AB9B },
+ { "America/Kentucky/Monticello" , 0x00AF84 },
+ { "America/Knox_IN" , 0x00B2D7 },
+ { "America/La_Paz" , 0x00B63C },
+ { "America/Lima" , 0x00B697 },
+ { "America/Los_Angeles" , 0x00B733 },
+ { "America/Louisville" , 0x00BB2C },
+ { "America/Maceio" , 0x00BF15 },
+ { "America/Managua" , 0x00C033 },
+ { "America/Manaus" , 0x00C0D0 },
+ { "America/Martinique" , 0x00C1BC },
+ { "America/Mazatlan" , 0x00C21C },
+ { "America/Mendoza" , 0x00C455 },
+ { "America/Menominee" , 0x00C5F3 },
+ { "America/Merida" , 0x00C921 },
+ { "America/Mexico_City" , 0x00CB30 },
+ { "America/Miquelon" , 0x00CD82 },
+ { "America/Moncton" , 0x00CFE8 },
+ { "America/Monterrey" , 0x00D456 },
+ { "America/Montevideo" , 0x00D659 },
+ { "America/Montreal" , 0x00D81F },
+ { "America/Montserrat" , 0x00DD03 },
+ { "America/Nassau" , 0x00DD4C },
+ { "America/New_York" , 0x00E085 },
+ { "America/Nipigon" , 0x00E578 },
+ { "America/Nome" , 0x00E872 },
+ { "America/Noronha" , 0x00EBCB },
+ { "America/North_Dakota/Center" , 0x00ECDF },
+ { "America/Panama" , 0x00F03C },
+ { "America/Pangnirtung" , 0x00F085 },
+ { "America/Paramaribo" , 0x00F38F },
+ { "America/Phoenix" , 0x00F415 },
+ { "America/Port-au-Prince" , 0x00F497 },
+ { "America/Port_of_Spain" , 0x00F67F },
+ { "America/Porto_Acre" , 0x00F59D },
+ { "America/Porto_Velho" , 0x00F6C8 },
+ { "America/Puerto_Rico" , 0x00F7AA },
+ { "America/Rainy_River" , 0x00F7F8 },
+ { "America/Rankin_Inlet" , 0x00FAF2 },
+ { "America/Recife" , 0x00FDD8 },
+ { "America/Regina" , 0x00FEEC },
+ { "America/Rio_Branco" , 0x010069 },
+ { "America/Rosario" , 0x01014B },
+ { "America/Santiago" , 0x0102D1 },
+ { "America/Santo_Domingo" , 0x01064B },
+ { "America/Sao_Paulo" , 0x010705 },
+ { "America/Scoresbysund" , 0x0109D6 },
+ { "America/Shiprock" , 0x010C99 },
+ { "America/St_Johns" , 0x011006 },
+ { "America/St_Kitts" , 0x011525 },
+ { "America/St_Lucia" , 0x01156E },
+ { "America/St_Thomas" , 0x0115B7 },
+ { "America/St_Vincent" , 0x011600 },
+ { "America/Swift_Current" , 0x011649 },
+ { "America/Tegucigalpa" , 0x011730 },
+ { "America/Thule" , 0x011799 },
+ { "America/Thunder_Bay" , 0x0119C4 },
+ { "America/Tijuana" , 0x011CDE },
+ { "America/Toronto" , 0x01202A },
+ { "America/Tortola" , 0x01250E },
+ { "America/Vancouver" , 0x012557 },
+ { "America/Virgin" , 0x012964 },
+ { "America/Whitehorse" , 0x0129AD },
+ { "America/Winnipeg" , 0x012CA4 },
+ { "America/Yakutat" , 0x0130AD },
+ { "America/Yellowknife" , 0x0133E9 },
+ { "Antarctica/Casey" , 0x0136C3 },
+ { "Antarctica/Davis" , 0x01370C },
+ { "Antarctica/DumontDUrville" , 0x013760 },
+ { "Antarctica/Mawson" , 0x0137C0 },
+ { "Antarctica/McMurdo" , 0x01380A },
+ { "Antarctica/Palmer" , 0x013AE4 },
+ { "Antarctica/Rothera" , 0x013DED },
+ { "Antarctica/South_Pole" , 0x013E37 },
+ { "Antarctica/Syowa" , 0x014111 },
+ { "Antarctica/Vostok" , 0x01415B },
+ { "Arctic/Longyearbyen" , 0x0141A5 },
+ { "Asia/Aden" , 0x0144CB },
+ { "Asia/Almaty" , 0x014514 },
+ { "Asia/Amman" , 0x014679 },
+ { "Asia/Anadyr" , 0x01492D },
+ { "Asia/Aqtau" , 0x014BF9 },
+ { "Asia/Aqtobe" , 0x014DBB },
+ { "Asia/Ashgabat" , 0x014F58 },
+ { "Asia/Ashkhabad" , 0x015069 },
+ { "Asia/Baghdad" , 0x01517A },
+ { "Asia/Bahrain" , 0x01540F },
+ { "Asia/Baku" , 0x015469 },
+ { "Asia/Bangkok" , 0x01574A },
+ { "Asia/Beirut" , 0x015793 },
+ { "Asia/Bishkek" , 0x015A94 },
+ { "Asia/Brunei" , 0x015C34 },
+ { "Asia/Calcutta" , 0x015C8A },
+ { "Asia/Choibalsan" , 0x015CF7 },
+ { "Asia/Chongqing" , 0x015F8B },
+ { "Asia/Chungking" , 0x01602E },
+ { "Asia/Colombo" , 0x0160D1 },
+ { "Asia/Dacca" , 0x01615C },
+ { "Asia/Damascus" , 0x0161DF },
+ { "Asia/Dhaka" , 0x016523 },
+ { "Asia/Dili" , 0x0165A6 },
+ { "Asia/Dubai" , 0x016623 },
+ { "Asia/Dushanbe" , 0x01666C },
+ { "Asia/Gaza" , 0x016763 },
+ { "Asia/Harbin" , 0x016AA0 },
+ { "Asia/Hong_Kong" , 0x016B5A },
+ { "Asia/Hovd" , 0x016D04 },
+ { "Asia/Irkutsk" , 0x016F8B },
+ { "Asia/Istanbul" , 0x01724F },
+ { "Asia/Jakarta" , 0x017630 },
+ { "Asia/Jayapura" , 0x0176C0 },
+ { "Asia/Jerusalem" , 0x01771F },
+ { "Asia/Kabul" , 0x017A42 },
+ { "Asia/Kamchatka" , 0x017A87 },
+ { "Asia/Karachi" , 0x017D4B },
+ { "Asia/Kashgar" , 0x017DE0 },
+ { "Asia/Katmandu" , 0x017E90 },
+ { "Asia/Krasnoyarsk" , 0x017EEA },
+ { "Asia/Kuala_Lumpur" , 0x0181AE },
+ { "Asia/Kuching" , 0x01824C },
+ { "Asia/Kuwait" , 0x01831F },
+ { "Asia/Macao" , 0x018368 },
+ { "Asia/Macau" , 0x018497 },
+ { "Asia/Magadan" , 0x0185C6 },
+ { "Asia/Makassar" , 0x01888A },
+ { "Asia/Manila" , 0x0188FA },
+ { "Asia/Muscat" , 0x018973 },
+ { "Asia/Nicosia" , 0x0189BC },
+ { "Asia/Novosibirsk" , 0x018C98 },
+ { "Asia/Omsk" , 0x018F69 },
+ { "Asia/Oral" , 0x01922D },
+ { "Asia/Phnom_Penh" , 0x0193E2 },
+ { "Asia/Pontianak" , 0x01944E },
+ { "Asia/Pyongyang" , 0x0194EE },
+ { "Asia/Qatar" , 0x01954F },
+ { "Asia/Qyzylorda" , 0x0195A9 },
+ { "Asia/Rangoon" , 0x019753 },
+ { "Asia/Riyadh" , 0x0197BF },
+ { "Asia/Saigon" , 0x019808 },
+ { "Asia/Sakhalin" , 0x019874 },
+ { "Asia/Samarkand" , 0x019B4D },
+ { "Asia/Seoul" , 0x019C90 },
+ { "Asia/Shanghai" , 0x019D28 },
+ { "Asia/Singapore" , 0x019DCD },
+ { "Asia/Taipei" , 0x019E78 },
+ { "Asia/Tashkent" , 0x019F84 },
+ { "Asia/Tbilisi" , 0x01A0AC },
+ { "Asia/Tehran" , 0x01A25A },
+ { "Asia/Tel_Aviv" , 0x01A4D0 },
+ { "Asia/Thimbu" , 0x01A7F3 },
+ { "Asia/Thimphu" , 0x01A84D },
+ { "Asia/Tokyo" , 0x01A8A7 },
+ { "Asia/Ujung_Pandang" , 0x01A924 },
+ { "Asia/Ulaanbaatar" , 0x01A994 },
+ { "Asia/Ulan_Bator" , 0x01AC1B },
+ { "Asia/Urumqi" , 0x01AEA2 },
+ { "Asia/Vientiane" , 0x01AF45 },
+ { "Asia/Vladivostok" , 0x01AFB1 },
+ { "Asia/Yakutsk" , 0x01B27C },
+ { "Asia/Yekaterinburg" , 0x01B540 },
+ { "Asia/Yerevan" , 0x01B82F },
+ { "Atlantic/Azores" , 0x01BB27 },
+ { "Atlantic/Bermuda" , 0x01C018 },
+ { "Atlantic/Canary" , 0x01C2ED },
+ { "Atlantic/Cape_Verde" , 0x01C5A9 },
+ { "Atlantic/Faeroe" , 0x01C616 },
+ { "Atlantic/Jan_Mayen" , 0x01C8AE },
+ { "Atlantic/Madeira" , 0x01CBD4 },
+ { "Atlantic/Reykjavik" , 0x01D0C2 },
+ { "Atlantic/South_Georgia" , 0x01D26F },
+ { "Atlantic/St_Helena" , 0x01D56F },
+ { "Atlantic/Stanley" , 0x01D2A7 },
+ { "Australia/ACT" , 0x01D5B8 },
+ { "Australia/Adelaide" , 0x01D8C9 },
+ { "Australia/Brisbane" , 0x01DBDA },
+ { "Australia/Broken_Hill" , 0x01DC7A },
+ { "Australia/Canberra" , 0x01DF90 },
+ { "Australia/Currie" , 0x01E2A1 },
+ { "Australia/Darwin" , 0x01E5B2 },
+ { "Australia/Hobart" , 0x01E61A },
+ { "Australia/LHI" , 0x01E953 },
+ { "Australia/Lindeman" , 0x01EBE2 },
+ { "Australia/Lord_Howe" , 0x01EC9B },
+ { "Australia/Melbourne" , 0x01EF2A },
+ { "Australia/North" , 0x01F23B },
+ { "Australia/NSW" , 0x01F2A3 },
+ { "Australia/Perth" , 0x01F5B4 },
+ { "Australia/Queensland" , 0x01F640 },
+ { "Australia/South" , 0x01F6E0 },
+ { "Australia/Sydney" , 0x01F9F1 },
+ { "Australia/Tasmania" , 0x01FD02 },
+ { "Australia/Victoria" , 0x02003B },
+ { "Australia/West" , 0x02034C },
+ { "Australia/Yancowinna" , 0x0203D8 },
+ { "Brazil/Acre" , 0x0206EE },
+ { "Brazil/DeNoronha" , 0x0207D0 },
+ { "Brazil/East" , 0x0208E4 },
+ { "Brazil/West" , 0x020BB5 },
+ { "Canada/Atlantic" , 0x020CA1 },
+ { "Canada/Central" , 0x02117D },
+ { "Canada/East-Saskatchewan" , 0x021A6A },
+ { "Canada/Eastern" , 0x021586 },
+ { "Canada/Mountain" , 0x021BE7 },
+ { "Canada/Newfoundland" , 0x021F51 },
+ { "Canada/Pacific" , 0x022470 },
+ { "Canada/Saskatchewan" , 0x02287D },
+ { "Canada/Yukon" , 0x0229FA },
+ { "CET" , 0x022CF1 },
+ { "Chile/Continental" , 0x022FE4 },
+ { "Chile/EasterIsland" , 0x02335E },
+ { "CST6CDT" , 0x0236A6 },
+ { "Cuba" , 0x0239EB },
+ { "EET" , 0x023D52 },
+ { "Egypt" , 0x023FF9 },
+ { "Eire" , 0x0243B4 },
+ { "EST" , 0x0248B9 },
+ { "EST5EDT" , 0x0248F1 },
+ { "Etc/GMT" , 0x024C36 },
+ { "Etc/GMT+0" , 0x024CDE },
+ { "Etc/GMT+1" , 0x024D50 },
+ { "Etc/GMT+10" , 0x024DC5 },
+ { "Etc/GMT+11" , 0x024E3B },
+ { "Etc/GMT+12" , 0x024EB1 },
+ { "Etc/GMT+2" , 0x024F9C },
+ { "Etc/GMT+3" , 0x025010 },
+ { "Etc/GMT+4" , 0x025084 },
+ { "Etc/GMT+5" , 0x0250F8 },
+ { "Etc/GMT+6" , 0x02516C },
+ { "Etc/GMT+7" , 0x0251E0 },
+ { "Etc/GMT+8" , 0x025254 },
+ { "Etc/GMT+9" , 0x0252C8 },
+ { "Etc/GMT-0" , 0x024CA6 },
+ { "Etc/GMT-1" , 0x024D16 },
+ { "Etc/GMT-10" , 0x024D8A },
+ { "Etc/GMT-11" , 0x024E00 },
+ { "Etc/GMT-12" , 0x024E76 },
+ { "Etc/GMT-13" , 0x024EEC },
+ { "Etc/GMT-14" , 0x024F27 },
+ { "Etc/GMT-2" , 0x024F62 },
+ { "Etc/GMT-3" , 0x024FD6 },
+ { "Etc/GMT-4" , 0x02504A },
+ { "Etc/GMT-5" , 0x0250BE },
+ { "Etc/GMT-6" , 0x025132 },
+ { "Etc/GMT-7" , 0x0251A6 },
+ { "Etc/GMT-8" , 0x02521A },
+ { "Etc/GMT-9" , 0x02528E },
+ { "Etc/GMT0" , 0x024C6E },
+ { "Etc/Greenwich" , 0x025302 },
+ { "Etc/UCT" , 0x02533A },
+ { "Etc/Universal" , 0x025372 },
+ { "Etc/UTC" , 0x0253AA },
+ { "Etc/Zulu" , 0x0253E2 },
+ { "Europe/Amsterdam" , 0x02541A },
+ { "Europe/Andorra" , 0x02584C },
+ { "Europe/Athens" , 0x025ABC },
+ { "Europe/Belfast" , 0x025DF3 },
+ { "Europe/Belgrade" , 0x02631E },
+ { "Europe/Berlin" , 0x0265D6 },
+ { "Europe/Bratislava" , 0x02691B },
+ { "Europe/Brussels" , 0x026C41 },
+ { "Europe/Bucharest" , 0x02706C },
+ { "Europe/Budapest" , 0x02738A },
+ { "Europe/Chisinau" , 0x0276EC },
+ { "Europe/Copenhagen" , 0x027A6E },
+ { "Europe/Dublin" , 0x027D6C },
+ { "Europe/Gibraltar" , 0x028271 },
+ { "Europe/Helsinki" , 0x0286BC },
+ { "Europe/Istanbul" , 0x028966 },
+ { "Europe/Kaliningrad" , 0x028D47 },
+ { "Europe/Kiev" , 0x029087 },
+ { "Europe/Lisbon" , 0x029384 },
+ { "Europe/Ljubljana" , 0x029874 },
+ { "Europe/London" , 0x029B2C },
+ { "Europe/Luxembourg" , 0x02A057 },
+ { "Europe/Madrid" , 0x02A4A1 },
+ { "Europe/Malta" , 0x02A853 },
+ { "Europe/Mariehamn" , 0x02AC00 },
+ { "Europe/Minsk" , 0x02AEAA },
+ { "Europe/Monaco" , 0x02B1A9 },
+ { "Europe/Moscow" , 0x02B5D8 },
+ { "Europe/Nicosia" , 0x02B907 },
+ { "Europe/Oslo" , 0x02BBE3 },
+ { "Europe/Paris" , 0x02BF09 },
+ { "Europe/Prague" , 0x02C343 },
+ { "Europe/Riga" , 0x02C669 },
+ { "Europe/Rome" , 0x02C9A2 },
+ { "Europe/Samara" , 0x02CD59 },
+ { "Europe/San_Marino" , 0x02D058 },
+ { "Europe/Sarajevo" , 0x02D40F },
+ { "Europe/Simferopol" , 0x02D6C7 },
+ { "Europe/Skopje" , 0x02D9D8 },
+ { "Europe/Sofia" , 0x02DC90 },
+ { "Europe/Stockholm" , 0x02DF7F },
+ { "Europe/Tallinn" , 0x02E222 },
+ { "Europe/Tirane" , 0x02E550 },
+ { "Europe/Tiraspol" , 0x02E84A },
+ { "Europe/Uzhgorod" , 0x02EBCC },
+ { "Europe/Vaduz" , 0x02EECF },
+ { "Europe/Vatican" , 0x02F156 },
+ { "Europe/Vienna" , 0x02F50D },
+ { "Europe/Vilnius" , 0x02F82E },
+ { "Europe/Warsaw" , 0x02FB61 },
+ { "Europe/Zagreb" , 0x02FF31 },
+ { "Europe/Zaporozhye" , 0x0301E9 },
+ { "Europe/Zurich" , 0x0304F0 },
+ { "Factory" , 0x03079D },
+ { "GB" , 0x030802 },
+ { "GB-Eire" , 0x030D2D },
+ { "GMT" , 0x031258 },
+ { "GMT+0" , 0x031300 },
+ { "GMT-0" , 0x0312C8 },
+ { "GMT0" , 0x031290 },
+ { "Greenwich" , 0x031338 },
+ { "Hongkong" , 0x031370 },
+ { "HST" , 0x03151A },
+ { "Iceland" , 0x031552 },
+ { "Indian/Antananarivo" , 0x0316FF },
+ { "Indian/Chagos" , 0x031767 },
+ { "Indian/Christmas" , 0x0317BD },
+ { "Indian/Cocos" , 0x0317F5 },
+ { "Indian/Comoro" , 0x03182D },
+ { "Indian/Kerguelen" , 0x031876 },
+ { "Indian/Mahe" , 0x0318BF },
+ { "Indian/Maldives" , 0x031908 },
+ { "Indian/Mauritius" , 0x031951 },
+ { "Indian/Mayotte" , 0x03199A },
+ { "Indian/Reunion" , 0x0319E3 },
+ { "Iran" , 0x031A2C },
+ { "Israel" , 0x031CA2 },
+ { "Jamaica" , 0x031FC5 },
+ { "Japan" , 0x03207E },
+ { "Kwajalein" , 0x0320FB },
+ { "Libya" , 0x032152 },
+ { "MET" , 0x032240 },
+ { "Mexico/BajaNorte" , 0x032533 },
+ { "Mexico/BajaSur" , 0x03287F },
+ { "Mexico/General" , 0x032AB8 },
+ { "MST" , 0x032D0A },
+ { "MST7MDT" , 0x032D42 },
+ { "Navajo" , 0x033087 },
+ { "NZ" , 0x0333F4 },
+ { "NZ-CHAT" , 0x033766 },
+ { "Pacific/Apia" , 0x033A42 },
+ { "Pacific/Auckland" , 0x033A9D },
+ { "Pacific/Chatham" , 0x033E0F },
+ { "Pacific/Easter" , 0x0340EB },
+ { "Pacific/Efate" , 0x034433 },
+ { "Pacific/Enderbury" , 0x0344ED },
+ { "Pacific/Fakaofo" , 0x034540 },
+ { "Pacific/Fiji" , 0x034578 },
+ { "Pacific/Funafuti" , 0x0345E2 },
+ { "Pacific/Galapagos" , 0x03461A },
+ { "Pacific/Gambier" , 0x034675 },
+ { "Pacific/Guadalcanal" , 0x0346BF },
+ { "Pacific/Guam" , 0x034708 },
+ { "Pacific/Honolulu" , 0x034752 },
+ { "Pacific/Johnston" , 0x0347D4 },
+ { "Pacific/Kiritimati" , 0x03480C },
+ { "Pacific/Kosrae" , 0x03485F },
+ { "Pacific/Kwajalein" , 0x0348AA },
+ { "Pacific/Majuro" , 0x034901 },
+ { "Pacific/Marquesas" , 0x034946 },
+ { "Pacific/Midway" , 0x034990 },
+ { "Pacific/Nauru" , 0x034A00 },
+ { "Pacific/Niue" , 0x034A6C },
+ { "Pacific/Norfolk" , 0x034ABE },
+ { "Pacific/Noumea" , 0x034B07 },
+ { "Pacific/Pago_Pago" , 0x034B8B },
+ { "Pacific/Palau" , 0x034C08 },
+ { "Pacific/Pitcairn" , 0x034C40 },
+ { "Pacific/Ponape" , 0x034C89 },
+ { "Pacific/Port_Moresby" , 0x034CC2 },
+ { "Pacific/Rarotonga" , 0x034CFA },
+ { "Pacific/Saipan" , 0x034DCA },
+ { "Pacific/Samoa" , 0x034E21 },
+ { "Pacific/Tahiti" , 0x034E9E },
+ { "Pacific/Tarawa" , 0x034EE8 },
+ { "Pacific/Tongatapu" , 0x034F21 },
+ { "Pacific/Truk" , 0x034FA1 },
+ { "Pacific/Wake" , 0x034FDA },
+ { "Pacific/Wallis" , 0x035013 },
+ { "Pacific/Yap" , 0x03504B },
+ { "Poland" , 0x035084 },
+ { "Portugal" , 0x035454 },
+ { "PRC" , 0x035944 },
+ { "PST8PDT" , 0x0359E9 },
+ { "ROC" , 0x035D2E },
+ { "ROK" , 0x035E3A },
+ { "Singapore" , 0x035ED2 },
+ { "Turkey" , 0x035F7D },
+ { "UCT" , 0x03635E },
+ { "Universal" , 0x036396 },
+ { "US/Alaska" , 0x0363CE },
+ { "US/Aleutian" , 0x036726 },
+ { "US/Arizona" , 0x036A80 },
+ { "US/Central" , 0x036B02 },
+ { "US/East-Indiana" , 0x0374F4 },
+ { "US/Eastern" , 0x037001 },
+ { "US/Hawaii" , 0x037752 },
+ { "US/Indiana-Starke" , 0x0377D4 },
+ { "US/Michigan" , 0x037B39 },
+ { "US/Mountain" , 0x037E64 },
+ { "US/Pacific" , 0x0381D1 },
+ { "US/Pacific-New" , 0x0385CA },
+ { "US/Samoa" , 0x0389C3 },
+ { "UTC" , 0x038A40 },
+ { "W-SU" , 0x038D1F },
+ { "WET" , 0x038A78 },
+ { "Zulu" , 0x03904E },
};
/* This is a generated file, do not modify */
-unsigned char timelib_timezone_db_data_builtin[231213] = {
+unsigned char timelib_timezone_db_data_builtin[233606] = {
/* Africa/Abidjan */
@@ -3151,8 +3154,8 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
/* America/Indiana/Knox */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80,
0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0,
0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0,
@@ -3175,37 +3178,36 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70,
0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0,
0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0,
-0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0,
-0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0,
-0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60,
-0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60,
-0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60,
-0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0,
-0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0,
-0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60,
-0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60,
-0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60,
-0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0,
-0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0,
-0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0,
-0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60,
-0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60,
-0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60,
+0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0,
+0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0,
+0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70,
+0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70,
+0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70,
+0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0,
+0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0,
+0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70,
+0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70,
+0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70,
+0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0,
+0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0,
+0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0,
+0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70,
+0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70,
+0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70,
0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
-0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54,
-0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54,
-0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
-0x00,
+0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43,
+0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x00,
/* America/Indiana/Marengo */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -3249,6 +3251,51 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x00, 0x00,
+/* America/Indiana/Petersburg */
+0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x73, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80,
+0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
+0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xE4, 0x67, 0x3D, 0xE0, 0xE5, 0x29, 0x18, 0x70,
+0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0, 0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0,
+0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0, 0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0,
+0xED, 0xC6, 0xC4, 0x00, 0xEE, 0x91, 0xBC, 0xF0, 0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x9F, 0xC3, 0x70,
+0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70, 0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70,
+0xF5, 0x4F, 0x86, 0x80, 0xF6, 0x3F, 0x69, 0x70, 0xF7, 0x2F, 0x68, 0x80, 0xFA, 0x08, 0x67, 0xF0,
+0xFA, 0xF8, 0x67, 0x00, 0xFB, 0xE8, 0x49, 0xF0, 0xFC, 0xD8, 0x49, 0x00, 0xFD, 0xC8, 0x2B, 0xF0,
+0xFE, 0xB8, 0x2B, 0x00, 0xFF, 0xA8, 0x0D, 0xF0, 0x00, 0x98, 0x0D, 0x00, 0x01, 0x87, 0xEF, 0xF0,
+0x02, 0x77, 0xEF, 0x00, 0x03, 0x71, 0x0C, 0x70, 0x04, 0x61, 0x0B, 0x80, 0x05, 0x50, 0xEE, 0x70,
+0x06, 0x40, 0xED, 0x80, 0x07, 0x30, 0xD0, 0x70, 0x07, 0x8D, 0x27, 0x80, 0x09, 0x10, 0xB2, 0x70,
+0x09, 0xAD, 0xA3, 0x00, 0x0A, 0xF0, 0x94, 0x70, 0x0B, 0xE0, 0x93, 0x80, 0x0C, 0xD9, 0xB0, 0xF0,
+0x0D, 0xC0, 0x75, 0x80, 0x0E, 0xB9, 0x92, 0xF0, 0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70,
+0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0,
+0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70,
+0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70,
+0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70,
+0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0,
+0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0,
+0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0,
+0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70,
+0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70,
+0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70,
+0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0,
+0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0,
+0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70,
+0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70,
+0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70,
+0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
+0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9,
+0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54,
+0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00,
+0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+
/* America/Indianapolis */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
@@ -3324,6 +3371,47 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00,
0x00, 0x01, 0x00, 0x00,
+/* America/Indiana/Vincennes */
+0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80,
+0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
+0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD3, 0x75, 0xF3, 0x00, 0xD4, 0x40, 0xEB, 0xF0,
+0xE0, 0x9E, 0x5B, 0x80, 0xE1, 0x69, 0x54, 0x70, 0xE2, 0x7E, 0x3D, 0x80, 0xE3, 0x49, 0x36, 0x70,
+0xE4, 0x67, 0x3D, 0xE0, 0xE5, 0x29, 0x18, 0x70, 0xE6, 0x47, 0x3C, 0x00, 0xE7, 0x12, 0x34, 0xF0,
+0xE8, 0x27, 0x1E, 0x00, 0xE8, 0xF2, 0x16, 0xF0, 0xEA, 0x07, 0x00, 0x00, 0xEA, 0xD1, 0xF8, 0xF0,
+0xEB, 0xE6, 0xE2, 0x00, 0xEC, 0xB1, 0xDA, 0xF0, 0xED, 0xC6, 0xC4, 0x00, 0xEE, 0xBF, 0xE1, 0x70,
+0xEF, 0xAF, 0xE0, 0x80, 0xF0, 0x71, 0x9E, 0xF0, 0xF1, 0x8F, 0xC2, 0x80, 0xF2, 0x7F, 0xA5, 0x70,
+0xF3, 0x6F, 0xA4, 0x80, 0xF4, 0x5F, 0x87, 0x70, 0xF5, 0x4F, 0x86, 0x80, 0xFE, 0xB8, 0x1C, 0xF0,
+0xFF, 0xA7, 0xFF, 0xE0, 0x00, 0x97, 0xFE, 0xF0, 0x01, 0x87, 0xE1, 0xE0, 0x44, 0x2F, 0x76, 0x70,
+0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0, 0x47, 0xD3, 0x99, 0x00,
+0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0, 0x4B, 0x9C, 0x97, 0x80,
+0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70, 0x4F, 0x5C, 0x5B, 0x80,
+0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70, 0x53, 0x1C, 0x1F, 0x80,
+0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70, 0x56, 0xE5, 0x1E, 0x00,
+0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0, 0x5A, 0xA4, 0xE2, 0x00,
+0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0, 0x5E, 0x64, 0xA6, 0x00,
+0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70, 0x62, 0x2D, 0xA4, 0x80,
+0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70, 0x65, 0xED, 0x68, 0x80,
+0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70, 0x69, 0xAD, 0x2C, 0x80,
+0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0, 0x6D, 0x76, 0x2B, 0x00,
+0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0, 0x71, 0x35, 0xEF, 0x00,
+0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0, 0x74, 0xFE, 0xED, 0x80,
+0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70, 0x78, 0xBE, 0xB1, 0x80,
+0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70, 0x7C, 0x7E, 0x75, 0x80,
+0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70, 0x00, 0x01, 0x00, 0x01,
+0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x05, 0x04, 0x05, 0x04,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01,
+0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF, 0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0,
+0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF,
+0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00,
+0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
+
/* America/Inuvik */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00,
@@ -3645,8 +3733,8 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
/* America/Knox_IN */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80,
0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0,
0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0,
@@ -3669,37 +3757,36 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70,
0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0,
0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0,
-0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0,
-0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0,
-0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60,
-0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60,
-0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60,
-0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0,
-0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0,
-0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60,
-0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60,
-0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60,
-0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0,
-0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0,
-0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0,
-0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60,
-0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60,
-0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60,
+0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0,
+0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0,
+0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70,
+0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70,
+0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70,
+0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0,
+0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0,
+0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70,
+0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70,
+0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70,
+0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0,
+0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0,
+0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0,
+0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70,
+0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70,
+0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70,
0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
-0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54,
-0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54,
-0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
-0x00,
+0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43,
+0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x00,
/* America/La_Paz */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -4145,6 +4232,79 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x41, 0x53, 0x54, 0x00, 0x50, 0x4D, 0x53, 0x54, 0x00, 0x50, 0x4D, 0x44, 0x54, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+/* America/Moncton */
+0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0xCE, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x80, 0xF1, 0xB6, 0x50,
+0x9E, 0xB8, 0x85, 0x60, 0x9F, 0xC0, 0x23, 0x50, 0xBB, 0x3C, 0x38, 0xD0, 0xBB, 0xB4, 0x23, 0x40,
+0xBD, 0x1C, 0x1A, 0xD0, 0xBD, 0x94, 0x05, 0x40, 0xBE, 0xFB, 0xFC, 0xD0, 0xBF, 0x73, 0xE7, 0x40,
+0xC0, 0xDB, 0xDE, 0xD0, 0xC1, 0x53, 0xC9, 0x40, 0xC2, 0xBB, 0xC0, 0xD0, 0xC3, 0x33, 0xAB, 0x40,
+0xC4, 0x9B, 0xA2, 0xD0, 0xC5, 0x13, 0x8D, 0x40, 0xC6, 0x70, 0xF8, 0xD0, 0xC7, 0x0D, 0xCD, 0x40,
+0xC8, 0x48, 0xF1, 0xD0, 0xC8, 0xED, 0xAF, 0x40, 0xCA, 0x16, 0x5E, 0xD0, 0xCA, 0xD6, 0xCB, 0xC0,
+0xCB, 0x88, 0xE2, 0x60, 0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x60, 0xED, 0xD0, 0xD3, 0x75, 0xD6, 0xE0,
+0xD4, 0x40, 0xCF, 0xD0, 0xD5, 0x55, 0xB8, 0xE0, 0xD6, 0x20, 0xB1, 0xD0, 0xD7, 0x35, 0x9A, 0xE0,
+0xD8, 0x00, 0x93, 0xD0, 0xD9, 0x15, 0x7C, 0xE0, 0xD9, 0xE0, 0x75, 0xD0, 0xDA, 0xFE, 0x99, 0x60,
+0xDB, 0xC0, 0x57, 0xD0, 0xDC, 0xDE, 0x7B, 0x60, 0xDD, 0xA9, 0x74, 0x50, 0xDE, 0xBE, 0x5D, 0x60,
+0xDF, 0x89, 0x56, 0x50, 0xE0, 0x9E, 0x3F, 0x60, 0xE1, 0x69, 0x38, 0x50, 0xE2, 0x7E, 0x21, 0x60,
+0xE3, 0x49, 0x1A, 0x50, 0xE4, 0x5E, 0x03, 0x60, 0xE5, 0x28, 0xFC, 0x50, 0xE6, 0x47, 0x1F, 0xE0,
+0xE7, 0x12, 0x18, 0xD0, 0xE8, 0x27, 0x01, 0xE0, 0xE9, 0x16, 0xE4, 0xD0, 0xEA, 0x06, 0xE3, 0xE0,
+0xEA, 0xF6, 0xC6, 0xD0, 0xEB, 0xE6, 0xC5, 0xE0, 0xEC, 0xD6, 0xA8, 0xD0, 0xED, 0xC6, 0xA7, 0xE0,
+0xEE, 0xBF, 0xC5, 0x50, 0xEF, 0xAF, 0xC4, 0x60, 0xF0, 0x9F, 0xA7, 0x50, 0xF1, 0x8F, 0xA6, 0x60,
+0xF2, 0x7F, 0x89, 0x50, 0xF3, 0x6F, 0x88, 0x60, 0xF4, 0x5F, 0x6B, 0x50, 0xF5, 0x4F, 0x6A, 0x60,
+0xF6, 0x3F, 0x4D, 0x50, 0xF7, 0x2F, 0x4C, 0x60, 0xF8, 0x28, 0x69, 0xD0, 0xF9, 0x0F, 0x2E, 0x60,
+0xFA, 0x08, 0x4B, 0xD0, 0xFA, 0xF8, 0x4A, 0xE0, 0xFB, 0xE8, 0x2D, 0xD0, 0xFC, 0xD8, 0x2C, 0xE0,
+0xFD, 0xC8, 0x0F, 0xD0, 0xFE, 0xB8, 0x0E, 0xE0, 0xFF, 0xA7, 0xF1, 0xD0, 0x00, 0x97, 0xF0, 0xE0,
+0x01, 0x87, 0xD3, 0xD0, 0x02, 0x77, 0xD2, 0xE0, 0x03, 0x70, 0xF0, 0x50, 0x04, 0x60, 0xEF, 0x60,
+0x05, 0x50, 0xD2, 0x50, 0x08, 0x20, 0xB3, 0x60, 0x09, 0x10, 0x96, 0x50, 0x0A, 0x00, 0x95, 0x60,
+0x0A, 0xF0, 0x78, 0x50, 0x0B, 0xE0, 0x77, 0x60, 0x0C, 0xD9, 0x94, 0xD0, 0x0D, 0xC0, 0x59, 0x60,
+0x0E, 0xB9, 0x76, 0xD0, 0x0F, 0xA9, 0x75, 0xE0, 0x10, 0x99, 0x58, 0xD0, 0x11, 0x89, 0x57, 0xE0,
+0x12, 0x79, 0x3A, 0xD0, 0x13, 0x69, 0x39, 0xE0, 0x14, 0x59, 0x1C, 0xD0, 0x15, 0x49, 0x1B, 0xE0,
+0x16, 0x38, 0xFE, 0xD0, 0x17, 0x28, 0xFD, 0xE0, 0x18, 0x22, 0x1B, 0x50, 0x19, 0x08, 0xDF, 0xE0,
+0x1A, 0x01, 0xFD, 0x50, 0x1A, 0xF1, 0xFC, 0x60, 0x1B, 0xE1, 0xDF, 0x50, 0x1C, 0xD1, 0xDE, 0x60,
+0x1D, 0xC1, 0xC1, 0x50, 0x1E, 0xB1, 0xC0, 0x60, 0x1F, 0xA1, 0xA3, 0x50, 0x20, 0x75, 0xF2, 0xE0,
+0x21, 0x81, 0x85, 0x50, 0x22, 0x55, 0xD4, 0xE0, 0x23, 0x6A, 0xA1, 0xD0, 0x24, 0x35, 0xB6, 0xE0,
+0x25, 0x4A, 0x83, 0xD0, 0x26, 0x15, 0x98, 0xE0, 0x27, 0x2A, 0x65, 0xD0, 0x27, 0xFE, 0xB5, 0x60,
+0x29, 0x0A, 0x47, 0xD0, 0x29, 0xDE, 0x97, 0x60, 0x2A, 0xEA, 0x29, 0xD0, 0x2B, 0xBE, 0x5D, 0x7C,
+0x2C, 0xD3, 0x2A, 0x6C, 0x2D, 0x9E, 0x3F, 0x7C, 0x2E, 0xB3, 0x0C, 0x6C, 0x2F, 0x7E, 0x21, 0x7C,
+0x30, 0x92, 0xEE, 0x6C, 0x31, 0x67, 0x3D, 0xFC, 0x32, 0x72, 0xD0, 0x6C, 0x33, 0x47, 0x1F, 0xFC,
+0x34, 0x52, 0xB2, 0x6C, 0x35, 0x27, 0x01, 0xFC, 0x36, 0x32, 0x94, 0x6C, 0x37, 0x06, 0xE3, 0xFC,
+0x38, 0x1B, 0xB0, 0xEC, 0x38, 0xE6, 0xC5, 0xFC, 0x39, 0xFB, 0x92, 0xEC, 0x3A, 0xC6, 0xA7, 0xFC,
+0x3B, 0xDB, 0x74, 0xEC, 0x3C, 0xAF, 0xC4, 0x7C, 0x3D, 0xBB, 0x56, 0xEC, 0x3E, 0x8F, 0xA6, 0x7C,
+0x3F, 0x9B, 0x38, 0xEC, 0x40, 0x6F, 0x88, 0x7C, 0x41, 0x84, 0x55, 0x6C, 0x42, 0x4F, 0x6A, 0x7C,
+0x43, 0x64, 0x37, 0x6C, 0x44, 0x2F, 0x4C, 0x7C, 0x45, 0x44, 0x19, 0x6C, 0x45, 0xF3, 0x7E, 0xFC,
+0x47, 0x2D, 0x35, 0xEC, 0x47, 0xD3, 0x60, 0xFC, 0x49, 0x0D, 0x17, 0xEC, 0x49, 0xB3, 0x42, 0xFC,
+0x4A, 0xEC, 0xF9, 0xEC, 0x4B, 0x9C, 0x5F, 0x7C, 0x4C, 0xD6, 0x16, 0x6C, 0x4D, 0x7C, 0x41, 0x7C,
+0x4E, 0xB5, 0xF8, 0x6C, 0x4F, 0x5C, 0x23, 0x7C, 0x50, 0x95, 0xDA, 0x6C, 0x51, 0x3C, 0x05, 0x7C,
+0x52, 0x75, 0xBC, 0x6C, 0x53, 0x1B, 0xE7, 0x7C, 0x54, 0x55, 0x9E, 0x6C, 0x54, 0xFB, 0xC9, 0x7C,
+0x56, 0x35, 0x80, 0x6C, 0x56, 0xE4, 0xE5, 0xFC, 0x58, 0x1E, 0x9C, 0xEC, 0x58, 0xC4, 0xC7, 0xFC,
+0x59, 0xFE, 0x7E, 0xEC, 0x5A, 0xA4, 0xA9, 0xFC, 0x5B, 0xDE, 0x60, 0xEC, 0x5C, 0x84, 0x8B, 0xFC,
+0x5D, 0xBE, 0x42, 0xEC, 0x5E, 0x64, 0x6D, 0xFC, 0x5F, 0x9E, 0x24, 0xEC, 0x60, 0x4D, 0x8A, 0x7C,
+0x61, 0x87, 0x41, 0x6C, 0x62, 0x2D, 0x6C, 0x7C, 0x63, 0x67, 0x23, 0x6C, 0x64, 0x0D, 0x4E, 0x7C,
+0x65, 0x47, 0x05, 0x6C, 0x65, 0xED, 0x30, 0x7C, 0x67, 0x26, 0xE7, 0x6C, 0x67, 0xCD, 0x12, 0x7C,
+0x69, 0x06, 0xC9, 0x6C, 0x69, 0xAC, 0xF4, 0x7C, 0x6A, 0xE6, 0xAB, 0x6C, 0x6B, 0x96, 0x10, 0xFC,
+0x6C, 0xCF, 0xC7, 0xEC, 0x6D, 0x75, 0xF2, 0xFC, 0x6E, 0xAF, 0xA9, 0xEC, 0x6F, 0x55, 0xD4, 0xFC,
+0x70, 0x8F, 0x8B, 0xEC, 0x71, 0x35, 0xB6, 0xFC, 0x72, 0x6F, 0x6D, 0xEC, 0x73, 0x15, 0x98, 0xFC,
+0x74, 0x4F, 0x4F, 0xEC, 0x74, 0xFE, 0xB5, 0x7C, 0x76, 0x38, 0x6C, 0x6C, 0x76, 0xDE, 0x97, 0x7C,
+0x78, 0x18, 0x4E, 0x6C, 0x78, 0xBE, 0x79, 0x7C, 0x79, 0xF8, 0x30, 0x6C, 0x7A, 0x9E, 0x5B, 0x7C,
+0x7B, 0xD8, 0x12, 0x6C, 0x7C, 0x7E, 0x3D, 0x7C, 0x7D, 0xB7, 0xF4, 0x6C, 0x7E, 0x5E, 0x1F, 0x7C,
+0x7F, 0x97, 0xD6, 0x6C, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x04, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
+0x01, 0x02, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x00, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x04, 0xFF, 0xFF,
+0xC7, 0xC0, 0x00, 0x08, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x0C, 0xFF, 0xFF, 0xD5, 0xD0, 0x01, 0x10,
+0x45, 0x53, 0x54, 0x00, 0x41, 0x44, 0x54, 0x00, 0x41, 0x53, 0x54, 0x00, 0x41, 0x57, 0x54, 0x00,
+0x41, 0x50, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01,
+
/* America/Monterrey */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
@@ -6737,23 +6897,23 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x36, 0x8B, 0xF3, 0xE0, 0x37, 0x16, 0x61, 0x60, 0x38, 0x06, 0x44, 0x50, 0x38, 0xFF, 0x7D, 0xE0,
0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0,
0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0,
-0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xA9, 0xE0, 0x44, 0x48, 0x04, 0x60,
-0x45, 0x22, 0xDD, 0x60, 0x46, 0x27, 0xE6, 0x60, 0x47, 0x04, 0x10, 0xE0, 0x48, 0x07, 0xC8, 0x60,
-0x48, 0xE6, 0x95, 0xE0, 0x49, 0xE7, 0xAA, 0x60, 0x4A, 0xC7, 0xC9, 0x60, 0x4B, 0xC7, 0x8C, 0x60,
-0x4C, 0xA8, 0xFC, 0xE0, 0x4D, 0xA7, 0x6E, 0x60, 0x4E, 0x8A, 0x30, 0x60, 0x4F, 0x90, 0x8A, 0xE0,
-0x50, 0x6C, 0xB5, 0x60, 0x51, 0x70, 0x6C, 0xE0, 0x52, 0x4D, 0xE8, 0xE0, 0x53, 0x50, 0x4E, 0xE0,
-0x54, 0x2F, 0x1C, 0x60, 0x55, 0x30, 0x30, 0xE0, 0x56, 0x10, 0x4F, 0xE0, 0x57, 0x10, 0x12, 0xE0,
-0x57, 0xF2, 0xD4, 0xE0, 0x58, 0xF9, 0x2F, 0x60, 0x59, 0xD4, 0x08, 0x60, 0x5A, 0xD9, 0x11, 0x60,
-0x5B, 0xB5, 0x3B, 0xE0, 0x5C, 0xB8, 0xF3, 0x60, 0x5D, 0x96, 0x6F, 0x60, 0x5E, 0x98, 0xD5, 0x60,
-0x5F, 0x78, 0xF4, 0x60, 0x60, 0x78, 0xB7, 0x60, 0x61, 0x5A, 0x27, 0xE0, 0x62, 0x58, 0x99, 0x60,
-0x63, 0x3B, 0x5B, 0x60, 0x64, 0x41, 0xB5, 0xE0, 0x65, 0x1C, 0x8E, 0xE0, 0x66, 0x21, 0x97, 0xE0,
-0x66, 0xFF, 0x13, 0xE0, 0x68, 0x01, 0x79, 0xE0, 0x68, 0xE0, 0x47, 0x60, 0x69, 0xE1, 0x5B, 0xE0,
-0x6A, 0xC1, 0x7A, 0xE0, 0x6B, 0xC1, 0x3D, 0xE0, 0x6C, 0xA2, 0xAE, 0x60, 0x6D, 0xAA, 0x5A, 0x60,
-0x6E, 0x85, 0x33, 0x60, 0x6F, 0x8A, 0x3C, 0x60, 0x70, 0x66, 0x66, 0xE0, 0x71, 0x6A, 0x1E, 0x60,
-0x72, 0x47, 0x9A, 0x60, 0x73, 0x4A, 0x00, 0x60, 0x74, 0x28, 0xCD, 0xE0, 0x75, 0x29, 0xE2, 0x60,
-0x76, 0x0B, 0x52, 0xE0, 0x77, 0x09, 0xC4, 0x60, 0x77, 0xEC, 0x86, 0x60, 0x78, 0xF2, 0xE0, 0xE0,
-0x79, 0xCD, 0xB9, 0xE0, 0x7A, 0xD2, 0xC2, 0xE0, 0x7B, 0xAE, 0xED, 0x60, 0x7C, 0xB2, 0xA4, 0xE0,
-0x7D, 0x91, 0x72, 0x60, 0x7E, 0x92, 0x86, 0xE0, 0x7F, 0x72, 0xA5, 0xE0, 0x00, 0x01, 0x00, 0x01,
+0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x48, 0x04, 0x60,
+0x45, 0x22, 0xEB, 0x70, 0x46, 0x27, 0xE6, 0x60, 0x47, 0x04, 0x1E, 0xF0, 0x48, 0x07, 0xC8, 0x60,
+0x48, 0xE6, 0xA3, 0xF0, 0x49, 0xE7, 0xAA, 0x60, 0x4A, 0xC7, 0xD7, 0x70, 0x4B, 0xC7, 0x8C, 0x60,
+0x4C, 0xA9, 0x0A, 0xF0, 0x4D, 0xA7, 0x6E, 0x60, 0x4E, 0x8A, 0x3E, 0x70, 0x4F, 0x90, 0x8A, 0xE0,
+0x50, 0x6C, 0xC3, 0x70, 0x51, 0x70, 0x6C, 0xE0, 0x52, 0x4D, 0xF6, 0xF0, 0x53, 0x50, 0x4E, 0xE0,
+0x54, 0x2F, 0x2A, 0x70, 0x55, 0x30, 0x30, 0xE0, 0x56, 0x10, 0x5D, 0xF0, 0x57, 0x10, 0x12, 0xE0,
+0x57, 0xF2, 0xE2, 0xF0, 0x58, 0xF9, 0x2F, 0x60, 0x59, 0xD4, 0x16, 0x70, 0x5A, 0xD9, 0x11, 0x60,
+0x5B, 0xB5, 0x49, 0xF0, 0x5C, 0xB8, 0xF3, 0x60, 0x5D, 0x96, 0x7D, 0x70, 0x5E, 0x98, 0xD5, 0x60,
+0x5F, 0x79, 0x02, 0x70, 0x60, 0x78, 0xB7, 0x60, 0x61, 0x5A, 0x35, 0xF0, 0x62, 0x58, 0x99, 0x60,
+0x63, 0x3B, 0x69, 0x70, 0x64, 0x41, 0xB5, 0xE0, 0x65, 0x1C, 0x9C, 0xF0, 0x66, 0x21, 0x97, 0xE0,
+0x66, 0xFF, 0x21, 0xF0, 0x68, 0x01, 0x79, 0xE0, 0x68, 0xE0, 0x55, 0x70, 0x69, 0xE1, 0x5B, 0xE0,
+0x6A, 0xC1, 0x88, 0xF0, 0x6B, 0xC1, 0x3D, 0xE0, 0x6C, 0xA2, 0xBC, 0x70, 0x6D, 0xAA, 0x5A, 0x60,
+0x6E, 0x85, 0x41, 0x70, 0x6F, 0x8A, 0x3C, 0x60, 0x70, 0x66, 0x74, 0xF0, 0x71, 0x6A, 0x1E, 0x60,
+0x72, 0x47, 0xA8, 0x70, 0x73, 0x4A, 0x00, 0x60, 0x74, 0x28, 0xDB, 0xF0, 0x75, 0x29, 0xE2, 0x60,
+0x76, 0x0B, 0x60, 0xF0, 0x77, 0x09, 0xC4, 0x60, 0x77, 0xEC, 0x94, 0x70, 0x78, 0xF2, 0xE0, 0xE0,
+0x79, 0xCD, 0xC7, 0xF0, 0x7A, 0xD2, 0xC2, 0xE0, 0x7B, 0xAE, 0xFB, 0x70, 0x7C, 0xB2, 0xA4, 0xE0,
+0x7D, 0x91, 0x80, 0x70, 0x7E, 0x92, 0x86, 0xE0, 0x7F, 0x72, 0xB3, 0xF0, 0x00, 0x01, 0x00, 0x01,
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04,
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
@@ -15915,8 +16075,8 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
/* US/Indiana-Starke */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x18, 0x9E, 0xA6, 0x2C, 0x80,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x99, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x14, 0x9E, 0xA6, 0x2C, 0x80,
0x9F, 0xBA, 0xF9, 0x70, 0xA0, 0x86, 0x0E, 0x80, 0xA1, 0x9A, 0xDB, 0x70, 0xCB, 0x88, 0xFE, 0x80,
0xD2, 0x23, 0xF4, 0x70, 0xD2, 0x61, 0x09, 0xF0, 0xD5, 0x55, 0xD5, 0x00, 0xD6, 0x20, 0xCD, 0xF0,
0xD7, 0x35, 0xB7, 0x00, 0xD8, 0x00, 0xAF, 0xF0, 0xD9, 0x15, 0x99, 0x00, 0xD9, 0xE0, 0x91, 0xF0,
@@ -15939,37 +16099,36 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x1E, 0xB1, 0xDC, 0x80, 0x1F, 0xA1, 0xBF, 0x70, 0x20, 0x76, 0x0F, 0x00, 0x21, 0x81, 0xA1, 0x70,
0x22, 0x55, 0xF1, 0x00, 0x23, 0x6A, 0xBD, 0xF0, 0x24, 0x35, 0xD3, 0x00, 0x25, 0x4A, 0x9F, 0xF0,
0x26, 0x15, 0xB5, 0x00, 0x27, 0x2A, 0x81, 0xF0, 0x27, 0xFE, 0xD1, 0x80, 0x29, 0x0A, 0x63, 0xF0,
-0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x43, 0x60, 0x45, 0xF3, 0xA8, 0xF0, 0x47, 0x2D, 0x5F, 0xE0,
-0x47, 0xD3, 0x8A, 0xF0, 0x49, 0x0D, 0x41, 0xE0, 0x49, 0xB3, 0x6C, 0xF0, 0x4A, 0xED, 0x23, 0xE0,
-0x4B, 0x9C, 0x89, 0x70, 0x4C, 0xD6, 0x40, 0x60, 0x4D, 0x7C, 0x6B, 0x70, 0x4E, 0xB6, 0x22, 0x60,
-0x4F, 0x5C, 0x4D, 0x70, 0x50, 0x96, 0x04, 0x60, 0x51, 0x3C, 0x2F, 0x70, 0x52, 0x75, 0xE6, 0x60,
-0x53, 0x1C, 0x11, 0x70, 0x54, 0x55, 0xC8, 0x60, 0x54, 0xFB, 0xF3, 0x70, 0x56, 0x35, 0xAA, 0x60,
-0x56, 0xE5, 0x0F, 0xF0, 0x58, 0x1E, 0xC6, 0xE0, 0x58, 0xC4, 0xF1, 0xF0, 0x59, 0xFE, 0xA8, 0xE0,
-0x5A, 0xA4, 0xD3, 0xF0, 0x5B, 0xDE, 0x8A, 0xE0, 0x5C, 0x84, 0xB5, 0xF0, 0x5D, 0xBE, 0x6C, 0xE0,
-0x5E, 0x64, 0x97, 0xF0, 0x5F, 0x9E, 0x4E, 0xE0, 0x60, 0x4D, 0xB4, 0x70, 0x61, 0x87, 0x6B, 0x60,
-0x62, 0x2D, 0x96, 0x70, 0x63, 0x67, 0x4D, 0x60, 0x64, 0x0D, 0x78, 0x70, 0x65, 0x47, 0x2F, 0x60,
-0x65, 0xED, 0x5A, 0x70, 0x67, 0x27, 0x11, 0x60, 0x67, 0xCD, 0x3C, 0x70, 0x69, 0x06, 0xF3, 0x60,
-0x69, 0xAD, 0x1E, 0x70, 0x6A, 0xE6, 0xD5, 0x60, 0x6B, 0x96, 0x3A, 0xF0, 0x6C, 0xCF, 0xF1, 0xE0,
-0x6D, 0x76, 0x1C, 0xF0, 0x6E, 0xAF, 0xD3, 0xE0, 0x6F, 0x55, 0xFE, 0xF0, 0x70, 0x8F, 0xB5, 0xE0,
-0x71, 0x35, 0xE0, 0xF0, 0x72, 0x6F, 0x97, 0xE0, 0x73, 0x15, 0xC2, 0xF0, 0x74, 0x4F, 0x79, 0xE0,
-0x74, 0xFE, 0xDF, 0x70, 0x76, 0x38, 0x96, 0x60, 0x76, 0xDE, 0xC1, 0x70, 0x78, 0x18, 0x78, 0x60,
-0x78, 0xBE, 0xA3, 0x70, 0x79, 0xF8, 0x5A, 0x60, 0x7A, 0x9E, 0x85, 0x70, 0x7B, 0xD8, 0x3C, 0x60,
-0x7C, 0x7E, 0x67, 0x70, 0x7D, 0xB8, 0x1E, 0x60, 0x7E, 0x5E, 0x49, 0x70, 0x7F, 0x98, 0x00, 0x60,
+0x44, 0x2F, 0x76, 0x70, 0x45, 0x44, 0x51, 0x70, 0x45, 0xF3, 0xB7, 0x00, 0x47, 0x2D, 0x6D, 0xF0,
+0x47, 0xD3, 0x99, 0x00, 0x49, 0x0D, 0x4F, 0xF0, 0x49, 0xB3, 0x7B, 0x00, 0x4A, 0xED, 0x31, 0xF0,
+0x4B, 0x9C, 0x97, 0x80, 0x4C, 0xD6, 0x4E, 0x70, 0x4D, 0x7C, 0x79, 0x80, 0x4E, 0xB6, 0x30, 0x70,
+0x4F, 0x5C, 0x5B, 0x80, 0x50, 0x96, 0x12, 0x70, 0x51, 0x3C, 0x3D, 0x80, 0x52, 0x75, 0xF4, 0x70,
+0x53, 0x1C, 0x1F, 0x80, 0x54, 0x55, 0xD6, 0x70, 0x54, 0xFC, 0x01, 0x80, 0x56, 0x35, 0xB8, 0x70,
+0x56, 0xE5, 0x1E, 0x00, 0x58, 0x1E, 0xD4, 0xF0, 0x58, 0xC5, 0x00, 0x00, 0x59, 0xFE, 0xB6, 0xF0,
+0x5A, 0xA4, 0xE2, 0x00, 0x5B, 0xDE, 0x98, 0xF0, 0x5C, 0x84, 0xC4, 0x00, 0x5D, 0xBE, 0x7A, 0xF0,
+0x5E, 0x64, 0xA6, 0x00, 0x5F, 0x9E, 0x5C, 0xF0, 0x60, 0x4D, 0xC2, 0x80, 0x61, 0x87, 0x79, 0x70,
+0x62, 0x2D, 0xA4, 0x80, 0x63, 0x67, 0x5B, 0x70, 0x64, 0x0D, 0x86, 0x80, 0x65, 0x47, 0x3D, 0x70,
+0x65, 0xED, 0x68, 0x80, 0x67, 0x27, 0x1F, 0x70, 0x67, 0xCD, 0x4A, 0x80, 0x69, 0x07, 0x01, 0x70,
+0x69, 0xAD, 0x2C, 0x80, 0x6A, 0xE6, 0xE3, 0x70, 0x6B, 0x96, 0x49, 0x00, 0x6C, 0xCF, 0xFF, 0xF0,
+0x6D, 0x76, 0x2B, 0x00, 0x6E, 0xAF, 0xE1, 0xF0, 0x6F, 0x56, 0x0D, 0x00, 0x70, 0x8F, 0xC3, 0xF0,
+0x71, 0x35, 0xEF, 0x00, 0x72, 0x6F, 0xA5, 0xF0, 0x73, 0x15, 0xD1, 0x00, 0x74, 0x4F, 0x87, 0xF0,
+0x74, 0xFE, 0xED, 0x80, 0x76, 0x38, 0xA4, 0x70, 0x76, 0xDE, 0xCF, 0x80, 0x78, 0x18, 0x86, 0x70,
+0x78, 0xBE, 0xB1, 0x80, 0x79, 0xF8, 0x68, 0x70, 0x7A, 0x9E, 0x93, 0x80, 0x7B, 0xD8, 0x4A, 0x70,
+0x7C, 0x7E, 0x75, 0x80, 0x7D, 0xB8, 0x2C, 0x70, 0x7E, 0x5E, 0x57, 0x80, 0x7F, 0x98, 0x0E, 0x70,
0x00, 0x01, 0x00, 0x01, 0x02, 0x03, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x04, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
-0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05,
-0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00,
+0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x00, 0xFF,
0xFF, 0xAB, 0xA0, 0x00, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x01, 0x08, 0xFF, 0xFF, 0xB9, 0xB0, 0x01,
-0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x14, 0x43, 0x44, 0x54,
-0x00, 0x43, 0x53, 0x54, 0x00, 0x43, 0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54,
-0x00, 0x45, 0x44, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
-0x00,
+0x0C, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x10, 0x43, 0x44, 0x54, 0x00, 0x43, 0x53, 0x54, 0x00, 0x43,
+0x57, 0x54, 0x00, 0x43, 0x50, 0x54, 0x00, 0x45, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x01, 0x00,
/* US/Michigan */
0x54, 0x5A, 0x69, 0x66, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -16333,4 +16492,4 @@ unsigned char timelib_timezone_db_data_builtin[231213] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, };
-timelib_tzdb timezonedb_builtin = { "2005.18", 535, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+timelib_tzdb timezonedb_builtin = { "2006.1", 538, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff --git a/ext/date/lib/timezonemap.h b/ext/date/lib/timezonemap.h
index 8916c7993..36b3a876e 100644
--- a/ext/date/lib/timezonemap.h
+++ b/ext/date/lib/timezonemap.h
@@ -13,6 +13,7 @@
{ "adt", 1, -10800, "America/Glace_Bay" },
{ "adt", 1, -10800, "America/Goose_Bay" },
{ "adt", 1, -10800, "America/Martinique" },
+ { "adt", 1, -10800, "America/Moncton" },
{ "adt", 1, -10800, "America/Pangnirtung" },
{ "adt", 1, -10800, "America/Thule" },
{ "adt", 1, -10800, "Atlantic/Bermuda" },
@@ -70,6 +71,7 @@
{ "ant", 0, -16200, "America/Aruba" },
{ "apt", 1, -10800, "America/Halifax" },
{ "apt", 1, -10800, "America/Glace_Bay" },
+ { "apt", 1, -10800, "America/Moncton" },
{ "apt", 1, -10800, "America/Pangnirtung" },
{ "apt", 1, -10800, "Canada/Atlantic" },
{ "aqtst", 1, 18000, "Asia/Aqtau" },
@@ -172,6 +174,7 @@
{ "ast", 0, -14400, "America/Halifax" },
{ "ast", 0, -14400, "America/Martinique" },
{ "ast", 0, -14400, "America/Miquelon" },
+ { "ast", 0, -14400, "America/Moncton" },
{ "ast", 0, -14400, "America/Montserrat" },
{ "ast", 0, -14400, "America/Pangnirtung" },
{ "ast", 0, -14400, "America/Port_of_Spain" },
@@ -193,6 +196,7 @@
{ "ast", 0, 10800, "Asia/Qatar" },
{ "awt", 1, -10800, "America/Halifax" },
{ "awt", 1, -10800, "America/Glace_Bay" },
+ { "awt", 1, -10800, "America/Moncton" },
{ "awt", 1, -10800, "America/Pangnirtung" },
{ "awt", 1, -10800, "America/Puerto_Rico" },
{ "awt", 1, -10800, "Canada/Atlantic" },
@@ -309,7 +313,9 @@
{ "cdt", 1, -18000, "America/Indiana/Indianapolis" },
{ "cdt", 1, -18000, "America/Indiana/Knox" },
{ "cdt", 1, -18000, "America/Indiana/Marengo" },
+ { "cdt", 1, -18000, "America/Indiana/Petersburg" },
{ "cdt", 1, -18000, "America/Indiana/Vevay" },
+ { "cdt", 1, -18000, "America/Indiana/Vincennes" },
{ "cdt", 1, -18000, "America/Indianapolis" },
{ "cdt", 1, -18000, "America/Iqaluit" },
{ "cdt", 1, -18000, "America/Kentucky/Louisville" },
@@ -490,7 +496,9 @@
{ "cpt", 1, -18000, "America/Indiana/Indianapolis" },
{ "cpt", 1, -18000, "America/Indiana/Knox" },
{ "cpt", 1, -18000, "America/Indiana/Marengo" },
+ { "cpt", 1, -18000, "America/Indiana/Petersburg" },
{ "cpt", 1, -18000, "America/Indiana/Vevay" },
+ { "cpt", 1, -18000, "America/Indiana/Vincennes" },
{ "cpt", 1, -18000, "America/Indianapolis" },
{ "cpt", 1, -18000, "America/Kentucky/Louisville" },
{ "cpt", 1, -18000, "America/Kentucky/Monticello" },
@@ -521,7 +529,9 @@
{ "cst", 0, -21600, "America/Indiana/Indianapolis" },
{ "cst", 0, -21600, "America/Indiana/Knox" },
{ "cst", 0, -21600, "America/Indiana/Marengo" },
+ { "cst", 0, -21600, "America/Indiana/Petersburg" },
{ "cst", 0, -21600, "America/Indiana/Vevay" },
+ { "cst", 0, -21600, "America/Indiana/Vincennes" },
{ "cst", 0, -21600, "America/Indianapolis" },
{ "cst", 0, -21600, "America/Iqaluit" },
{ "cst", 0, -21600, "America/Kentucky/Louisville" },
@@ -584,7 +594,9 @@
{ "cwt", 1, -18000, "America/Indiana/Indianapolis" },
{ "cwt", 1, -18000, "America/Indiana/Knox" },
{ "cwt", 1, -18000, "America/Indiana/Marengo" },
+ { "cwt", 1, -18000, "America/Indiana/Petersburg" },
{ "cwt", 1, -18000, "America/Indiana/Vevay" },
+ { "cwt", 1, -18000, "America/Indiana/Vincennes" },
{ "cwt", 1, -18000, "America/Indianapolis" },
{ "cwt", 1, -18000, "America/Kentucky/Louisville" },
{ "cwt", 1, -18000, "America/Kentucky/Monticello" },
@@ -641,15 +653,14 @@
{ "edt", 1, -14400, "America/Fort_Wayne" },
{ "edt", 1, -14400, "America/Grand_Turk" },
{ "edt", 1, -14400, "America/Indiana/Indianapolis" },
- { "edt", 1, -14400, "America/Indiana/Knox" },
{ "edt", 1, -14400, "America/Indiana/Marengo" },
{ "edt", 1, -14400, "America/Indiana/Vevay" },
+ { "edt", 1, -14400, "America/Indiana/Vincennes" },
{ "edt", 1, -14400, "America/Indianapolis" },
{ "edt", 1, -14400, "America/Iqaluit" },
{ "edt", 1, -14400, "America/Jamaica" },
{ "edt", 1, -14400, "America/Kentucky/Louisville" },
{ "edt", 1, -14400, "America/Kentucky/Monticello" },
- { "edt", 1, -14400, "America/Knox_IN" },
{ "edt", 1, -14400, "America/Louisville" },
{ "edt", 1, -14400, "America/Montreal" },
{ "edt", 1, -14400, "America/Nassau" },
@@ -665,7 +676,6 @@
{ "edt", 1, -14400, "Jamaica" },
{ "edt", 1, -14400, "US/East-Indiana" },
{ "edt", 1, -14400, "US/Eastern" },
- { "edt", 1, -14400, "US/Indiana-Starke" },
{ "edt", 1, -14400, "US/Michigan" },
{ "eest", 1, 10800, "Europe/Helsinki" },
{ "eest", 1, 10800, "Africa/Cairo" },
@@ -764,7 +774,9 @@
{ "est", 0, -18000, "America/Indiana/Indianapolis" },
{ "est", 0, -18000, "America/Indiana/Knox" },
{ "est", 0, -18000, "America/Indiana/Marengo" },
+ { "est", 0, -18000, "America/Indiana/Petersburg" },
{ "est", 0, -18000, "America/Indiana/Vevay" },
+ { "est", 0, -18000, "America/Indiana/Vincennes" },
{ "est", 0, -18000, "America/Indianapolis" },
{ "est", 0, -18000, "America/Iqaluit" },
{ "est", 0, -18000, "America/Jamaica" },
@@ -883,7 +895,6 @@
{ "gmt", 0, 0, "Europe/London" },
{ "gmt", 0, 0, "GB" },
{ "gmt", 0, 0, "GB-Eire" },
- { "gmt", 0, 0, "GMT" },
{ "gmt", 0, 0, "Iceland" },
{ "gst", 0, 14400, "Asia/Dubai" },
{ "gst", 0, 14400, "Asia/Bahrain" },
diff --git a/ext/date/lib/tm2unixtime.c b/ext/date/lib/tm2unixtime.c
index 2d97a4061..522578077 100644
--- a/ext/date/lib/tm2unixtime.c
+++ b/ext/date/lib/tm2unixtime.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: tm2unixtime.c,v 1.13.2.2 2006/01/01 12:50:05 sniper Exp $ */
+/* $Id: tm2unixtime.c,v 1.13.2.3 2006/04/11 18:03:52 derick Exp $ */
#include "timelib.h"
@@ -135,6 +135,13 @@ static timelib_sll do_years(timelib_sll year)
{
timelib_sll i;
timelib_sll res = 0;
+ timelib_sll eras;
+
+ eras = (year - 1970) / 400;
+ if (eras != 0) {
+ year = year - (eras * 400);
+ res += (SECS_PER_ERA * eras);
+ }
if (year >= 1970) {
for (i = year - 1; i >= 1970; i--) {
diff --git a/ext/date/php_date.c b/ext/date/php_date.c
index a07a4effa..280fd27d7 100644
--- a/ext/date/php_date.c
+++ b/ext/date/php_date.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.c,v 1.43.2.37 2006/01/04 21:31:29 derick Exp $ */
+/* $Id: php_date.c,v 1.43.2.45 2006/04/11 18:03:46 derick Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -51,6 +51,7 @@ zend_function_entry date_functions[] = {
#ifdef EXPERIMENTAL_DATE_SUPPORT
/* Advanced Interface */
PHP_FE(date_create, NULL)
+ PHP_FE(date_parse, NULL)
PHP_FE(date_format, NULL)
PHP_FE(date_modify, NULL)
PHP_FE(date_timezone_get, NULL)
@@ -63,6 +64,7 @@ zend_function_entry date_functions[] = {
PHP_FE(timezone_open, NULL)
PHP_FE(timezone_name_get, NULL)
+ PHP_FE(timezone_name_from_abbr, NULL)
PHP_FE(timezone_offset_get, NULL)
PHP_FE(timezone_transistions_get, NULL)
PHP_FE(timezone_identifiers_list, NULL)
@@ -76,7 +78,7 @@ zend_function_entry date_functions[] = {
/* Astronomical functions */
PHP_FE(date_sunrise, NULL)
PHP_FE(date_sunset, NULL)
-/* PHP_FE(date_sun_info, NULL) */
+ PHP_FE(date_sun_info, NULL)
{NULL, NULL, NULL}
};
@@ -235,6 +237,7 @@ PHP_RSHUTDOWN_FUNCTION(date)
#define DATE_TIMEZONEDB php_date_global_timezone_db ? php_date_global_timezone_db : timelib_builtin_db()
+#define DATE_FORMAT_RFC3339 "Y-m-d\\TH:i:sP"
#define DATE_FORMAT_ISO8601 "Y-m-d\\TH:i:sO"
#define DATE_FORMAT_RFC1036 "l, d-M-y H:i:s T"
#define DATE_FORMAT_RFC1123 "D, d M Y H:i:s T"
@@ -260,7 +263,7 @@ PHP_MINIT_FUNCTION(date)
#ifdef EXPERIMENTAL_DATE_SUPPORT
date_register_classes(TSRMLS_C);
#endif
- REGISTER_STRING_CONSTANT("DATE_ATOM", DATE_FORMAT_ISO8601, CONST_CS | CONST_PERSISTENT);
+ REGISTER_STRING_CONSTANT("DATE_ATOM", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_COOKIE", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_ISO8601", DATE_FORMAT_ISO8601, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RFC822", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT);
@@ -268,8 +271,9 @@ PHP_MINIT_FUNCTION(date)
REGISTER_STRING_CONSTANT("DATE_RFC1036", DATE_FORMAT_RFC1036, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RFC1123", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RFC2822", DATE_FORMAT_RFC2822, CONST_CS | CONST_PERSISTENT);
+ REGISTER_STRING_CONSTANT("DATE_RFC3339", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("DATE_RSS", DATE_FORMAT_RFC1123, CONST_CS | CONST_PERSISTENT);
- REGISTER_STRING_CONSTANT("DATE_W3C", DATE_FORMAT_ISO8601, CONST_CS | CONST_PERSISTENT);
+ REGISTER_STRING_CONSTANT("DATE_W3C", DATE_FORMAT_RFC3339, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SUNFUNCS_RET_TIMESTAMP", SUNFUNCS_RET_TIMESTAMP, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SUNFUNCS_RET_STRING", SUNFUNCS_RET_STRING, CONST_CS | CONST_PERSISTENT);
@@ -459,6 +463,7 @@ static char *date_format(char *format, int format_len, timelib_time *t, int loca
char buffer[33];
timelib_time_offset *offset;
timelib_sll isoweek, isoyear;
+ int rfc_colon = 0;
if (!format_len) {
return estrdup("");
@@ -537,9 +542,11 @@ static char *date_format(char *format, int format_len, timelib_time *t, int loca
/* timezone */
case 'I': snprintf(buffer, 32, "%d", localtime ? offset->is_dst : 0); break;
- case 'O': snprintf(buffer, 32, "%c%02d%02d",
+ case 'P': rfc_colon = 1; /* break intentionally missing */
+ case 'O': snprintf(buffer, 32, "%c%02d%s%02d",
localtime ? ((offset->offset < 0) ? '-' : '+') : '+',
localtime ? abs(offset->offset / 3600) : 0,
+ rfc_colon ? ":" : "",
localtime ? abs((offset->offset % 3600) / 60) : 0
);
break;
@@ -786,17 +793,17 @@ PHPAPI void php_date_set_tzdb(timelib_tzdb *tzdb)
/* }}} */
/* {{{ php_parse_date: Backwards compability function */
-signed long php_parse_date(char *string, signed long *now)
+PHPAPI signed long php_parse_date(char *string, signed long *now)
{
timelib_time *parsed_time;
- int error1, error2;
+ int error2;
signed long retval;
- parsed_time = timelib_strtotime(string, strlen(string), &error1, DATE_TIMEZONEDB);
+ parsed_time = timelib_strtotime(string, strlen(string), NULL, DATE_TIMEZONEDB);
timelib_update_ts(parsed_time, NULL);
retval = timelib_date_to_int(parsed_time, &error2);
timelib_time_dtor(parsed_time);
- if (error1 || error2) {
+ if (error2) {
return -1;
}
return retval;
@@ -804,12 +811,13 @@ signed long php_parse_date(char *string, signed long *now)
/* }}} */
-/* {{{ proto int strtotime(string time, int now)
+/* {{{ proto int strtotime(string time [, int now ])
Convert string representation of date and time to a timestamp */
PHP_FUNCTION(strtotime)
{
char *times, *initial_ts;
int time_len, error1, error2;
+ struct timelib_error_container *error;
long preset_ts, ts;
timelib_time *t, *now;
@@ -822,8 +830,8 @@ PHP_FUNCTION(strtotime)
now = timelib_time_ctor();
initial_ts = emalloc(25);
- snprintf(initial_ts, 24, "@%lu", preset_ts);
- t = timelib_strtotime(initial_ts, strlen(initial_ts), &error1, DATE_TIMEZONEDB); /* we ignore the error here, as this should never fail */
+ snprintf(initial_ts, 24, "@%ld", preset_ts);
+ t = timelib_strtotime(initial_ts, strlen(initial_ts), NULL, DATE_TIMEZONEDB); /* we ignore the error here, as this should never fail */
timelib_update_ts(t, tzi);
now->tz_info = tzi;
now->zone_type = TIMELIB_ZONETYPE_ID;
@@ -840,7 +848,9 @@ PHP_FUNCTION(strtotime)
RETURN_FALSE;
}
- t = timelib_strtotime(times, time_len, &error1, DATE_TIMEZONEDB);
+ t = timelib_strtotime(times, time_len, &error, DATE_TIMEZONEDB);
+ error1 = error->error_count;
+ timelib_error_container_dtor(error);
timelib_fill_holes(t, now, 0);
timelib_update_ts(t, tzi);
ts = timelib_date_to_int(t, &error2);
@@ -1198,7 +1208,7 @@ static void date_register_classes(TSRMLS_D)
#define REGISTER_DATE_CLASS_CONST_STRING(const_name, value) \
zend_declare_class_constant_stringl(date_ce_date, const_name, sizeof(const_name)-1, value, sizeof(value)-1 TSRMLS_CC);
- REGISTER_DATE_CLASS_CONST_STRING("ATOM", DATE_FORMAT_ISO8601);
+ REGISTER_DATE_CLASS_CONST_STRING("ATOM", DATE_FORMAT_RFC3339);
REGISTER_DATE_CLASS_CONST_STRING("COOKIE", DATE_FORMAT_RFC1123);
REGISTER_DATE_CLASS_CONST_STRING("ISO8601", DATE_FORMAT_ISO8601);
REGISTER_DATE_CLASS_CONST_STRING("RFC822", DATE_FORMAT_RFC1123);
@@ -1206,6 +1216,7 @@ static void date_register_classes(TSRMLS_D)
REGISTER_DATE_CLASS_CONST_STRING("RFC1036", DATE_FORMAT_RFC1036);
REGISTER_DATE_CLASS_CONST_STRING("RFC1123", DATE_FORMAT_RFC1123);
REGISTER_DATE_CLASS_CONST_STRING("RFC2822", DATE_FORMAT_RFC2822);
+ REGISTER_DATE_CLASS_CONST_STRING("RFC3339", DATE_FORMAT_RFC3339);
REGISTER_DATE_CLASS_CONST_STRING("RSS", DATE_FORMAT_RFC1123);
REGISTER_DATE_CLASS_CONST_STRING("W3C", DATE_FORMAT_ISO8601);
@@ -1225,10 +1236,8 @@ static zend_object_value date_object_new_date(zend_class_entry *class_type TSRML
intern = emalloc(sizeof(php_date_obj));
memset(intern, 0, sizeof(php_date_obj));
- intern->std.ce = class_type;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_date, NULL TSRMLS_CC);
@@ -1245,10 +1254,8 @@ static zend_object_value date_object_new_timezone(zend_class_entry *class_type T
intern = emalloc(sizeof(php_timezone_obj));
memset(intern, 0, sizeof(php_timezone_obj));
- intern->std.ce = class_type;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) date_object_free_storage_timezone, NULL TSRMLS_CC);
@@ -1268,12 +1275,7 @@ static void date_object_free_storage_date(void *object TSRMLS_DC)
timelib_time_dtor(intern->time);
}
- if (intern->std.properties) {
- zend_hash_destroy(intern->std.properties);
- efree(intern->std.properties);
- intern->std.properties = NULL;
- }
-
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
efree(object);
}
@@ -1281,12 +1283,7 @@ static void date_object_free_storage_timezone(void *object TSRMLS_DC)
{
php_timezone_obj *intern = (php_timezone_obj *)object;
- if (intern->std.properties) {
- zend_hash_destroy(intern->std.properties);
- efree(intern->std.properties);
- intern->std.properties = NULL;
- }
-
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
efree(object);
}
@@ -1308,7 +1305,6 @@ PHP_FUNCTION(date_create)
{
php_date_obj *dateobj;
zval *timezone_object = NULL;
- int error;
timelib_time *now;
timelib_tzinfo *tzi;
char *time_str;
@@ -1320,7 +1316,7 @@ PHP_FUNCTION(date_create)
date_instanciate(date_ce_date, return_value TSRMLS_CC);
dateobj = (php_date_obj *) zend_object_store_get_object(return_value TSRMLS_CC);
- dateobj->time = timelib_strtotime(time_str_len ? time_str : "now", time_str_len ? time_str_len : sizeof("now") -1, &error, DATE_TIMEZONEDB);
+ dateobj->time = timelib_strtotime(time_str_len ? time_str : "now", time_str_len ? time_str_len : sizeof("now") -1, NULL, DATE_TIMEZONEDB);
if (timezone_object) {
php_timezone_obj *tzobj;
@@ -1352,6 +1348,101 @@ PHP_FUNCTION(date_create)
timelib_time_dtor(now);
}
+PHP_FUNCTION(date_parse)
+{
+ char *date;
+ int date_len, i;
+ struct timelib_error_container *error;
+ timelib_time *parsed_time;
+ zval *element;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &date, &date_len) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ parsed_time = timelib_strtotime(date, date_len, &error, DATE_TIMEZONEDB);
+ array_init(return_value);
+#define PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(name, elem) \
+ if (parsed_time->elem == -1) { \
+ add_assoc_bool(return_value, #name, 0); \
+ } else { \
+ add_assoc_long(return_value, #name, parsed_time->elem); \
+ }
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(year, y);
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(month, m);
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(day, d);
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(hour, h);
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(minute, i);
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(second, s);
+
+ if (parsed_time->f == -1) {
+ add_assoc_bool(return_value, "fraction", 0);
+ } else {
+ add_assoc_double(return_value, "fraction", parsed_time->f);
+ }
+
+ add_assoc_long(return_value, "warning_count", error->warning_count);
+ MAKE_STD_ZVAL(element);
+ array_init(element);
+ for (i = 0; i < error->warning_count; i++) {
+ add_index_string(element, error->warning_messages[i].position, error->warning_messages[i].message, 1);
+ }
+ add_assoc_zval(return_value, "warnings", element);
+
+ add_assoc_long(return_value, "error_count", error->error_count);
+ MAKE_STD_ZVAL(element);
+ array_init(element);
+ for (i = 0; i < error->error_count; i++) {
+ add_index_string(element, error->error_messages[i].position, error->error_messages[i].message, 1);
+ }
+ add_assoc_zval(return_value, "errors", element);
+ timelib_error_container_dtor(error);
+
+ add_assoc_bool(return_value, "is_localtime", parsed_time->is_localtime);
+
+ if (parsed_time->is_localtime) {
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone_type, zone_type);
+ switch (parsed_time->zone_type) {
+ case TIMELIB_ZONETYPE_OFFSET:
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone, z);
+ add_assoc_bool(return_value, "is_dst", parsed_time->dst);
+ break;
+ case TIMELIB_ZONETYPE_ID:
+ if (parsed_time->tz_abbr) {
+ add_assoc_string(return_value, "tz_abbr", parsed_time->tz_abbr, 1);
+ }
+ if (parsed_time->tz_info) {
+ add_assoc_string(return_value, "tz_id", parsed_time->tz_info->name, 1);
+ }
+ break;
+ case TIMELIB_ZONETYPE_ABBR:
+ PHP_DATE_PARSE_DATE_SET_TIME_ELEMENT(zone, z);
+ add_assoc_bool(return_value, "is_dst", parsed_time->dst);
+ add_assoc_string(return_value, "tz_abbr", parsed_time->tz_abbr, 1);
+ break;
+ }
+ }
+ if (parsed_time->have_relative || parsed_time->have_weekday_relative) {
+ MAKE_STD_ZVAL(element);
+ array_init(element);
+ }
+ if (parsed_time->have_relative) {
+ add_assoc_long(element, "year", parsed_time->relative.y);
+ add_assoc_long(element, "month", parsed_time->relative.m);
+ add_assoc_long(element, "day", parsed_time->relative.d);
+ add_assoc_long(element, "hour", parsed_time->relative.h);
+ add_assoc_long(element, "minute", parsed_time->relative.i);
+ add_assoc_long(element, "second", parsed_time->relative.s);
+ }
+ if (parsed_time->have_weekday_relative) {
+ add_assoc_long(element, "weekday", parsed_time->relative.weekday);
+ }
+ if (parsed_time->have_relative || parsed_time->have_weekday_relative) {
+ add_assoc_zval(return_value, "relative", element);
+ }
+ timelib_time_dtor(parsed_time);
+}
+
PHP_FUNCTION(date_format)
{
zval *object;
@@ -1372,7 +1463,6 @@ PHP_FUNCTION(date_modify)
php_date_obj *dateobj;
char *modify;
int modify_len;
- int error;
timelib_time *tmp_time;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &object, date_ce_date, &modify, &modify_len) == FAILURE) {
@@ -1380,7 +1470,7 @@ PHP_FUNCTION(date_modify)
}
dateobj = (php_date_obj *) zend_object_store_get_object(object TSRMLS_CC);
- tmp_time = timelib_strtotime(modify, modify_len, &error, DATE_TIMEZONEDB);
+ tmp_time = timelib_strtotime(modify, modify_len, NULL, DATE_TIMEZONEDB);
dateobj->time->relative.y = tmp_time->relative.y;
dateobj->time->relative.m = tmp_time->relative.m;
dateobj->time->relative.d = tmp_time->relative.d;
@@ -1553,6 +1643,26 @@ PHP_FUNCTION(timezone_name_get)
RETURN_STRING(tzobj->tz->name, 1);
}
+PHP_FUNCTION(timezone_name_from_abbr)
+{
+ char *abbr;
+ char *tzname;
+ int abbr_len;
+ long gmtoffset = -1;
+ long isdst = -1;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|ll", &abbr, &abbr_len, &gmtoffset, &isdst) == FAILURE) {
+ RETURN_FALSE;
+ }
+ tzname = timelib_timezone_id_from_abbr(abbr, gmtoffset, isdst);
+
+ if (tzname) {
+ RETURN_STRING(tzname, 1);
+ } else {
+ RETURN_FALSE;
+ }
+}
+
PHP_FUNCTION(timezone_offset_get)
{
zval *object, *dateobject;
@@ -1741,7 +1851,8 @@ static void php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAMETERS, int calc_su
timelib_unixtime2local(t, time);
rs = timelib_astro_rise_set_altitude(t, longitude, latitude, altitude, altitude > -1 ? 1 : 0, &h_rise, &h_set, &rise, &set, &transit);
-
+ timelib_time_dtor(t);
+
if (rs != 0) {
RETURN_FALSE;
}
@@ -1884,6 +1995,8 @@ PHP_FUNCTION(date_sun_info)
t2->sse = set;
add_assoc_long(return_value, "astronomical_twilight_end", timelib_date_to_int(t2, &dummy));
}
+ timelib_time_dtor(t);
+ timelib_time_dtor(t2);
}
/* }}} */
/*
diff --git a/ext/date/php_date.h b/ext/date/php_date.h
index 8f57f1f49..57ac98211 100644
--- a/ext/date/php_date.h
+++ b/ext/date/php_date.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_date.h,v 1.17.2.9 2006/01/04 21:31:29 derick Exp $ */
+/* $Id: php_date.h,v 1.17.2.11 2006/04/11 18:03:46 derick Exp $ */
#ifndef PHP_DATE_H
#define PHP_DATE_H
@@ -49,6 +49,7 @@ PHP_FUNCTION(getdate);
#ifdef EXPERIMENTAL_DATE_SUPPORT
/* Advanced Interface */
PHP_FUNCTION(date_create);
+PHP_FUNCTION(date_parse);
PHP_FUNCTION(date_format);
PHP_FUNCTION(date_modify);
PHP_FUNCTION(date_timezone_get);
@@ -61,6 +62,7 @@ PHP_FUNCTION(date_isodate_set);
PHP_FUNCTION(timezone_open);
PHP_FUNCTION(timezone_name_get);
+PHP_FUNCTION(timezone_name_from_abbr);
PHP_FUNCTION(timezone_offset_get);
PHP_FUNCTION(timezone_transistions_get);
PHP_FUNCTION(timezone_identifiers_list);
@@ -95,7 +97,7 @@ ZEND_END_MODULE_GLOBALS(date)
#endif
/* Backwards compability wrapper */
-signed long php_parse_date(char *string, signed long *now);
+PHPAPI signed long php_parse_date(char *string, signed long *now);
PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt);
PHPAPI int php_idate(char format, time_t ts, int localtime);
#if HAVE_STRFTIME
diff --git a/ext/date/tests/bug26317.phpt b/ext/date/tests/bug26317.phpt
index c889666dc..aef29035e 100644
--- a/ext/date/tests/bug26317.phpt
+++ b/ext/date/tests/bug26317.phpt
@@ -1,6 +1,6 @@
--TEST--
Bug #26317 (military timezone offset signedness)
---SKIP--
+--SKIPIF--
if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') {
die("skip unable to change TZ enviroment variable\n");
}
diff --git a/ext/date/tests/bug26320.phpt b/ext/date/tests/bug26320.phpt
index b57712009..5b237cadb 100644
--- a/ext/date/tests/bug26320.phpt
+++ b/ext/date/tests/bug26320.phpt
@@ -1,6 +1,6 @@
--TEST--
Bug #26320 (strtotime handling of XML Schema/ISO 8601 format)
---SKIP--
+--SKIPIF--
if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') {
die("skip unable to change TZ enviroment variable\n");
}
@@ -12,4 +12,4 @@ if (!@putenv("TZ=GMT0") || getenv("TZ") != 'GMT0') {
?>
--EXPECT--
2003-11-19 12:30:42
-2003-11-19 12:30:42 \ No newline at end of file
+2003-11-19 12:30:42
diff --git a/ext/date/tests/bug36224.phpt b/ext/date/tests/bug36224.phpt
new file mode 100644
index 000000000..1690f4e7b
--- /dev/null
+++ b/ext/date/tests/bug36224.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #36224 (date(DATE_ATOM) gives wrong resulsts)
+--FILE--
+<?php
+date_default_timezone_set("Europe/Oslo");
+
+echo date(DATE_ATOM, strtotime('2006-01-31T19:23:56Z')) . "\n";
+echo date(DATE_ATOM, strtotime('2006-01-31T19:23:56')) . "\n";
+
+?>
+--EXPECT--
+2006-01-31T20:23:56+01:00
+2006-01-31T19:23:56+01:00
diff --git a/ext/date/tests/bug36510.phpt b/ext/date/tests/bug36510.phpt
new file mode 100644
index 000000000..ea8bb028b
--- /dev/null
+++ b/ext/date/tests/bug36510.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #36510 (strtotime() fails to parse date strings with tabs)
+--FILE--
+<?php
+date_default_timezone_set("UTC");
+
+$t = 1140973388;
+
+var_dump(strtotime("-2 hours", $t));
+var_dump(strtotime("-2\thours", $t));
+?>
+--EXPECT--
+int(1140966188)
+int(1140966188)
diff --git a/ext/date/tests/bug36599.phpt b/ext/date/tests/bug36599.phpt
new file mode 100644
index 000000000..b34a7c288
--- /dev/null
+++ b/ext/date/tests/bug36599.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #36599 (DATE_W3C format constant incorrect).
+--FILE--
+<?php
+date_default_timezone_set("UTC");
+
+echo date( DATE_ATOM, strtotime( "2006-03-03 08:47:55" ) ), "\n";
+echo date( DATE_W3C, strtotime( "2006-03-03 08:47:55" ) ), "\n";
+?>
+--EXPECT--
+2006-03-03T08:47:55+00:00
+2006-03-03T08:47:55+00:00
diff --git a/ext/date/tests/bug36988.phpt b/ext/date/tests/bug36988.phpt
new file mode 100644
index 000000000..d35e58939
--- /dev/null
+++ b/ext/date/tests/bug36988.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #36988 (mktime freezes on long numbers)
+--INI--
+date.timezone=GMT
+--FILE--
+<?php
+$start = microtime(true);
+$a = mktime(1, 1, 1, 1, 1, 11111111111);
+echo (microtime(true) - $start) < 1 ? "smaller than one second" : "more than a second";
+?>
+--EXPECT--
+smaller than one second
diff --git a/ext/date/tests/bug37017.phpt b/ext/date/tests/bug37017.phpt
new file mode 100644
index 000000000..61dc8ba38
--- /dev/null
+++ b/ext/date/tests/bug37017.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #37017 (strtotime fails before 13:00:00 with some time zones identifiers).
+--INI--
+date.timezone=GMT
+--FILE--
+<?php
+echo strtotime("2006-05-12 13:00:01 America/New_York"), "\n";
+echo strtotime("2006-05-12 13:00:00 America/New_York"), "\n";
+echo strtotime("2006-05-12 12:59:59 America/New_York"), "\n";
+echo strtotime("2006-05-12 12:59:59 GMT"), "\n";
+?>
+--EXPECT--
+1147453201
+1147453200
+1147453199
+1147438799
diff --git a/ext/dba/dba_db4.c b/ext/dba/dba_db4.c
index 79c1e80b6..25e66ab0f 100644
--- a/ext/dba/dba_db4.c
+++ b/ext/dba/dba_db4.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dba_db4.c,v 1.15.2.2 2006/01/01 12:50:05 sniper Exp $ */
+/* $Id: dba_db4.c,v 1.15.2.3 2006/02/18 17:11:06 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -139,9 +139,15 @@ DBA_FETCH_FUNC(db4)
DB4_GKEY;
memset(&gval, 0, sizeof(gval));
+ if (info->flags & DBA_PERSISTENT) {
+ gval.flags |= DB_DBT_MALLOC;
+ }
if (!dba->dbp->get(dba->dbp, NULL, &gkey, &gval, 0)) {
if (newlen) *newlen = gval.size;
new = estrndup(gval.data, gval.size);
+ if (info->flags & DBA_PERSISTENT) {
+ free(gval.data);
+ }
}
return new;
}
@@ -210,11 +216,23 @@ DBA_NEXTKEY_FUNC(db4)
memset(&gkey, 0, sizeof(gkey));
memset(&gval, 0, sizeof(gval));
+ if (info->flags & DBA_PERSISTENT) {
+ gkey.flags |= DB_DBT_MALLOC;
+ gval.flags |= DB_DBT_MALLOC;
+ }
if (dba->cursor->c_get(dba->cursor, &gkey, &gval, DB_NEXT) == 0) {
if (gkey.data) {
nkey = estrndup(gkey.data, gkey.size);
if (newlen) *newlen = gkey.size;
}
+ if (info->flags & DBA_PERSISTENT) {
+ if (gkey.data) {
+ free(gkey.data);
+ }
+ if (gval.data) {
+ free(gval.data);
+ }
+ }
}
return nkey;
diff --git a/ext/dba/tests/bug36436.phpt b/ext/dba/tests/bug36436.phpt
new file mode 100755
index 000000000..e85cf8528
--- /dev/null
+++ b/ext/dba/tests/bug36436.phpt
@@ -0,0 +1,34 @@
+--TEST--
+Bug #36436 DBA problem with Berkeley DB4
+--SKIPIF--
+<?php
+ $handler = 'db4';
+ require_once('skipif.inc');
+?>
+--FILE--
+<?php
+
+$handler = 'db4';
+require_once('test.inc');
+
+$db = dba_popen($db_filename, 'c', 'db4');
+
+dba_insert('X', 'XYZ', $db);
+dba_insert('Y', '123', $db);
+
+var_dump($db, dba_fetch('X', $db));
+
+var_dump(dba_firstkey($db));
+var_dump(dba_nextkey($db));
+
+dba_close($db);
+unlink($db_filename);
+
+?>
+===DONE===
+--EXPECTF--
+resource(%d) of type (dba persistent)
+string(3) "XYZ"
+string(1) "X"
+string(1) "Y"
+===DONE===
diff --git a/ext/dbase/dbf_head.c b/ext/dbase/dbf_head.c
index 9ec1f40d6..f45a99cfd 100644
--- a/ext/dbase/dbf_head.c
+++ b/ext/dbase/dbf_head.c
@@ -24,7 +24,7 @@ dbhead_t *get_dbf_head(int fd)
dbfield_t *dbf, *cur_f, *tdbf;
int ret, nfields, offset, gf_retval;
- if ((dbh = (dbhead_t *)malloc(sizeof(dbhead_t))) == NULL)
+ if ((dbh = (dbhead_t *)calloc(1, sizeof(dbhead_t))) == NULL)
return NULL;
if (lseek(fd, 0, 0) < 0)
return NULL;
@@ -44,7 +44,7 @@ dbhead_t *get_dbf_head(int fd)
/* malloc enough memory for the maximum number of fields:
32 * 1024 = 32K dBase5 (for Win) seems to allow that many */
- tdbf = (dbfield_t *)malloc(sizeof(dbfield_t)*1024);
+ tdbf = (dbfield_t *)calloc(1, sizeof(dbfield_t)*1024);
offset = 1;
nfields = 0;
@@ -157,7 +157,8 @@ int get_dbf_field(dbhead_t *dbh, dbfield_t *dbf)
}
if ((dbf->db_format = get_dbf_f_fmt(dbf)) == NULL) {
- return 1;
+ /* something went wrong, most likely this fieldtype is not supported */
+ return -1;
}
return 0;
@@ -235,6 +236,8 @@ char *get_dbf_f_fmt(dbfield_t *dbf)
case 'M':
strcpy(format, "%s");
break;
+ default:
+ return NULL;
}
return (char *)strdup(format);
}
@@ -256,7 +259,7 @@ dbhead_t *dbf_open(char *dp, int o_flags TSRMLS_DC)
}
}
- if ((dbh = get_dbf_head(fd)) == 0) {
+ if ((dbh = get_dbf_head(fd)) == NULL) {
fprintf(stderr, "Unable to get header\n");
return NULL;
}
diff --git a/ext/dom/attr.c b/ext/dom/attr.c
index 75121b0a6..7d1642e62 100644
--- a/ext/dom/attr.c
+++ b/ext/dom/attr.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: attr.c,v 1.18.2.1 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: attr.c,v 1.18.2.2 2006/05/03 08:43:04 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -77,7 +77,7 @@ PHP_METHOD(domattr, __construct)
}
if (intern != NULL) {
- oldnode = (xmlNodePtr)intern->ptr;
+ oldnode = dom_object_get_node(intern);
if (oldnode != NULL) {
php_libxml_node_free_resource(oldnode TSRMLS_CC);
}
diff --git a/ext/dom/dom_iterators.c b/ext/dom/dom_iterators.c
index ef01536c7..862da4dc7 100644
--- a/ext/dom/dom_iterators.c
+++ b/ext/dom/dom_iterators.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dom_iterators.c,v 1.9.2.2 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: dom_iterators.c,v 1.9.2.3 2006/03/03 20:15:10 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -200,7 +200,8 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC)
curobj = iterator->curobj;
intern = (dom_object *)zend_object_store_get_object(curobj TSRMLS_CC);
if (intern != NULL && intern->ptr != NULL) {
- if (objmap->ht == NULL) {
+ if (objmap->nodetype != XML_ENTITY_NODE &&
+ objmap->nodetype != XML_NOTATION_NODE) {
if (objmap->nodetype == DOM_NODESET) {
nodeht = HASH_OF(objmap->baseobjptr);
zend_hash_move_forward(nodeht);
@@ -210,12 +211,14 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC)
}
} else {
curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->ptr)->node;
- if (objmap->nodetype == XML_ATTRIBUTE_NODE || objmap->nodetype == XML_ELEMENT_NODE) {
+ if (objmap->nodetype == XML_ATTRIBUTE_NODE ||
+ objmap->nodetype == XML_ELEMENT_NODE) {
curnode = curnode->next;
} else {
/* Nav the tree evey time as this is LIVE */
basenode = dom_object_get_node(objmap->baseobj);
- if (basenode && (basenode->type == XML_DOCUMENT_NODE || basenode->type == XML_HTML_DOCUMENT_NODE)) {
+ if (basenode && (basenode->type == XML_DOCUMENT_NODE ||
+ basenode->type == XML_HTML_DOCUMENT_NODE)) {
basenode = xmlDocGetRootElement((xmlDoc *) basenode);
} else {
basenode = basenode->children;
@@ -225,9 +228,9 @@ static void php_dom_iterator_move_forward(zend_object_iterator *iter TSRMLS_DC)
}
} else {
if (objmap->nodetype == XML_ENTITY_NODE) {
- curnode = php_dom_libxml_hash_iter(objmap->ht, iter->index);
+ curnode = php_dom_libxml_hash_iter(objmap->ht, iter->index - 1);
} else {
- curnode = php_dom_libxml_notation_iter(objmap->ht, iter->index);
+ curnode = php_dom_libxml_notation_iter(objmap->ht, iter->index - 1);
}
}
}
@@ -269,7 +272,8 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object TS
intern = (dom_object *)zend_object_store_get_object(object TSRMLS_CC);
objmap = (dom_nnodemap_object *)intern->ptr;
if (objmap != NULL) {
- if (objmap->ht == NULL) {
+ if (objmap->nodetype != XML_ENTITY_NODE &&
+ objmap->nodetype != XML_NOTATION_NODE) {
if (objmap->nodetype == DOM_NODESET) {
nodeht = HASH_OF(objmap->baseobjptr);
zend_hash_internal_pointer_reset(nodeht);
@@ -295,7 +299,11 @@ zend_object_iterator *php_dom_get_iterator(zend_class_entry *ce, zval *object TS
}
}
} else {
- curnode = php_dom_libxml_hash_iter(objmap->ht, 0);
+ if (objmap->nodetype == XML_ENTITY_NODE) {
+ curnode = php_dom_libxml_hash_iter(objmap->ht, 0);
+ } else {
+ curnode = php_dom_libxml_notation_iter(objmap->ht, 0);
+ }
}
}
diff --git a/ext/dom/domimplementation.c b/ext/dom/domimplementation.c
index 02c9d1e40..66adb568a 100644
--- a/ext/dom/domimplementation.c
+++ b/ext/dom/domimplementation.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: domimplementation.c,v 1.15.2.1 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: domimplementation.c,v 1.15.2.2 2006/02/24 10:19:54 mike Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -92,7 +92,7 @@ PHP_METHOD(domimplementation, createDocumentType)
pch2 = systemid;
uri = xmlParseURI(name);
- if (uri->opaque != NULL) {
+ if (uri != NULL && uri->opaque != NULL) {
localname = xmlStrdup(uri->opaque);
if (xmlStrchr(localname, (xmlChar) ':') != NULL) {
php_dom_throw_error(NAMESPACE_ERR, 1 TSRMLS_CC);
@@ -108,7 +108,9 @@ PHP_METHOD(domimplementation, createDocumentType)
php_dom_throw_error(INVALID_CHARACTER_ERR, TSRMLS_CC);
*/
- xmlFreeURI(uri);
+ if (uri) {
+ xmlFreeURI(uri);
+ }
doctype = xmlCreateIntSubset(NULL, localname, pch1, pch2);
xmlFree(localname);
diff --git a/ext/dom/element.c b/ext/dom/element.c
index d021d5aba..2be0e8f31 100644
--- a/ext/dom/element.c
+++ b/ext/dom/element.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: element.c,v 1.36.2.3 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: element.c,v 1.36.2.4 2006/05/03 08:43:04 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -128,7 +128,7 @@ PHP_METHOD(domelement, __construct)
intern = (dom_object *)zend_object_store_get_object(id TSRMLS_CC);
if (intern != NULL) {
- oldnode = (xmlNodePtr)intern->ptr;
+ oldnode = dom_object_get_node(intern);
if (oldnode != NULL) {
php_libxml_node_free_resource(oldnode TSRMLS_CC);
}
diff --git a/ext/dom/namednodemap.c b/ext/dom/namednodemap.c
index 92573fafa..478a4c40b 100644
--- a/ext/dom/namednodemap.c
+++ b/ext/dom/namednodemap.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: namednodemap.c,v 1.15.2.1 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: namednodemap.c,v 1.15.2.2 2006/03/03 20:15:10 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -61,8 +61,11 @@ int dom_namednodemap_length_read(dom_object *obj, zval **retval TSRMLS_DC)
objmap = (dom_nnodemap_object *)obj->ptr;
if (objmap != NULL) {
- if (objmap->ht) {
- count = xmlHashSize(objmap->ht);
+ if ((objmap->nodetype == XML_NOTATION_NODE) ||
+ objmap->nodetype == XML_ENTITY_NODE) {
+ if (objmap->ht) {
+ count = xmlHashSize(objmap->ht);
+ }
} else {
nodep = dom_object_get_node(objmap->baseobj);
if (nodep) {
@@ -113,12 +116,17 @@ PHP_FUNCTION(dom_namednodemap_get_named_item)
objmap = (dom_nnodemap_object *)intern->ptr;
if (objmap != NULL) {
- if (objmap->ht) {
- if (objmap->nodetype == XML_ENTITY_NODE) {
- itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, named);
- } else {
- notep = (xmlNotation *)xmlHashLookup(objmap->ht, named);
- itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID);
+ if ((objmap->nodetype == XML_NOTATION_NODE) ||
+ objmap->nodetype == XML_ENTITY_NODE) {
+ if (objmap->ht) {
+ if (objmap->nodetype == XML_ENTITY_NODE) {
+ itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, named);
+ } else {
+ notep = (xmlNotation *)xmlHashLookup(objmap->ht, named);
+ if (notep) {
+ itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID);
+ }
+ }
}
} else {
nodep = dom_object_get_node(objmap->baseobj);
@@ -185,11 +193,14 @@ PHP_FUNCTION(dom_namednodemap_item)
objmap = (dom_nnodemap_object *)intern->ptr;
if (objmap != NULL) {
- if (objmap->ht) {
- if (objmap->nodetype == XML_ENTITY_NODE) {
- itemnode = php_dom_libxml_hash_iter(objmap->ht, index);
- } else {
- itemnode = php_dom_libxml_notation_iter(objmap->ht, index);
+ if ((objmap->nodetype == XML_NOTATION_NODE) ||
+ objmap->nodetype == XML_ENTITY_NODE) {
+ if (objmap->ht) {
+ if (objmap->nodetype == XML_ENTITY_NODE) {
+ itemnode = php_dom_libxml_hash_iter(objmap->ht, index);
+ } else {
+ itemnode = php_dom_libxml_notation_iter(objmap->ht, index);
+ }
}
} else {
nodep = dom_object_get_node(objmap->baseobj);
@@ -241,12 +252,17 @@ PHP_FUNCTION(dom_namednodemap_get_named_item_ns)
objmap = (dom_nnodemap_object *)intern->ptr;
if (objmap != NULL) {
- if (objmap->ht) {
- if (objmap->nodetype == XML_ENTITY_NODE) {
- itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, named);
- } else {
- notep = (xmlNotation *)xmlHashLookup(objmap->ht, named);
- itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID);
+ if ((objmap->nodetype == XML_NOTATION_NODE) ||
+ objmap->nodetype == XML_ENTITY_NODE) {
+ if (objmap->ht) {
+ if (objmap->nodetype == XML_ENTITY_NODE) {
+ itemnode = (xmlNodePtr)xmlHashLookup(objmap->ht, named);
+ } else {
+ notep = (xmlNotation *)xmlHashLookup(objmap->ht, named);
+ if (notep) {
+ itemnode = create_notation(notep->name, notep->PublicID, notep->SystemID);
+ }
+ }
}
} else {
nodep = dom_object_get_node(objmap->baseobj);
diff --git a/ext/dom/node.c b/ext/dom/node.c
index 1e22aac92..0f4401e8e 100644
--- a/ext/dom/node.c
+++ b/ext/dom/node.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: node.c,v 1.37.2.2 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: node.c,v 1.37.2.3 2006/01/25 17:34:05 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -840,10 +840,10 @@ int dom_node_text_content_read(dom_object *obj, zval **retval TSRMLS_DC)
if(str != NULL) {
ZVAL_STRING(*retval, str, 1);
+ xmlFree(str);
} else {
ZVAL_EMPTY_STRING(*retval);
}
- xmlFree(str);
return SUCCESS;
}
diff --git a/ext/dom/notation.c b/ext/dom/notation.c
index 1bcc4387d..a546eefd3 100644
--- a/ext/dom/notation.c
+++ b/ext/dom/notation.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: notation.c,v 1.9.2.1 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: notation.c,v 1.9.2.2 2006/03/03 20:15:10 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -48,9 +48,9 @@ Since:
*/
int dom_notation_public_id_read(dom_object *obj, zval **retval TSRMLS_DC)
{
- xmlNotationPtr nodep;
+ xmlEntityPtr nodep;
- nodep = (xmlNotationPtr) dom_object_get_node(obj);
+ nodep = (xmlEntityPtr) dom_object_get_node(obj);
if (nodep == NULL) {
php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
@@ -58,8 +58,8 @@ int dom_notation_public_id_read(dom_object *obj, zval **retval TSRMLS_DC)
}
ALLOC_ZVAL(*retval);
- if (nodep->PublicID) {
- ZVAL_STRING(*retval, (char *) (nodep->PublicID), 1);
+ if (nodep->ExternalID) {
+ ZVAL_STRING(*retval, (char *) (nodep->ExternalID), 1);
} else {
ZVAL_EMPTY_STRING(*retval);
}
@@ -78,9 +78,9 @@ Since:
*/
int dom_notation_system_id_read(dom_object *obj, zval **retval TSRMLS_DC)
{
- xmlNotationPtr nodep;
+ xmlEntityPtr nodep;
- nodep = (xmlNotationPtr) dom_object_get_node(obj);
+ nodep = (xmlEntityPtr) dom_object_get_node(obj);
if (nodep == NULL) {
php_dom_throw_error(INVALID_STATE_ERR, 0 TSRMLS_CC);
@@ -89,7 +89,7 @@ int dom_notation_system_id_read(dom_object *obj, zval **retval TSRMLS_DC)
ALLOC_ZVAL(*retval);
if (nodep->SystemID) {
- ZVAL_STRING(*retval, (char *) (nodep->PublicID), 1);
+ ZVAL_STRING(*retval, (char *) (nodep->SystemID), 1);
} else {
ZVAL_EMPTY_STRING(*retval);
}
diff --git a/ext/dom/php_dom.c b/ext/dom/php_dom.c
index 30f693342..1060018eb 100644
--- a/ext/dom/php_dom.c
+++ b/ext/dom/php_dom.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_dom.c,v 1.73.2.8 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: php_dom.c,v 1.73.2.12 2006/05/03 08:43:04 rrichards Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -289,6 +289,8 @@ zval *dom_read_property(zval *object, zval *member, int type TSRMLS_DC)
if (obj->prop_handler != NULL) {
ret = zend_hash_find(obj->prop_handler, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, (void **) &hnd);
+ } else if (instanceof_function(obj->std.ce, dom_node_class_entry TSRMLS_CC)) {
+ php_error(E_WARNING, "Couldn't fetch %s. Node no longer exists", obj->std.ce->name);
}
if (ret == SUCCESS) {
ret = hnd->read_func(obj, &retval TSRMLS_CC);
@@ -903,8 +905,7 @@ void dom_xpath_objects_free_storage(void *object TSRMLS_DC)
{
dom_object *intern = (dom_object *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
if (intern->ptr != NULL) {
xmlXPathFreeContext((xmlXPathContextPtr) intern->ptr);
@@ -923,8 +924,7 @@ void dom_objects_free_storage(void *object TSRMLS_DC)
dom_object *intern = (dom_object *)object;
int retcount;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
if (intern->ptr != NULL && ((php_libxml_node_ptr *)intern->ptr)->node != NULL) {
if (((xmlNodePtr) ((php_libxml_node_ptr *)intern->ptr)->node)->type != XML_DOCUMENT_NODE && ((xmlNodePtr) ((php_libxml_node_ptr *)intern->ptr)->node)->type != XML_HTML_DOCUMENT_NODE) {
@@ -970,8 +970,6 @@ static dom_object* dom_objects_set_class(zend_class_entry *class_type, zend_bool
dom_object *intern;
intern = emalloc(sizeof(dom_object));
- intern->std.ce = class_type;
- intern->std.guards = NULL;
intern->ptr = NULL;
intern->prop_handler = NULL;
intern->document = NULL;
@@ -983,8 +981,7 @@ static dom_object* dom_objects_set_class(zend_class_entry *class_type, zend_bool
zend_hash_find(&classes, base_class->name, base_class->name_length + 1, (void **) &intern->prop_handler);
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
if (hash_copy) {
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
}
@@ -1089,8 +1086,7 @@ void dom_nnodemap_objects_free_storage(void *object TSRMLS_DC)
php_libxml_decrement_doc_ref((php_libxml_node_object *)intern TSRMLS_CC);
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
efree(object);
}
diff --git a/ext/dom/tests/bug36756.phpt b/ext/dom/tests/bug36756.phpt
new file mode 100644
index 000000000..e24f9f080
--- /dev/null
+++ b/ext/dom/tests/bug36756.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Bug #36756: (DOMDocument::removeChild corrupts node)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+/* Node is preserved from removeChild */
+$dom = new DOMDocument();
+$dom->loadXML('<root><child/></root>');
+$xpath = new DOMXpath($dom);
+$node = $xpath->query('/root')->item(0);
+echo $node->nodeName . "\n";
+$dom->removeChild($GLOBALS['dom']->firstChild);
+echo "nodeType: " . $node->nodeType . "\n";
+
+/* Node gets destroyed during removeChild */
+$dom->loadXML('<root><child/></root>');
+$xpath = new DOMXpath($dom);
+$node = $xpath->query('//child')->item(0);
+echo $node->nodeName . "\n";
+$GLOBALS['dom']->removeChild($GLOBALS['dom']->firstChild);
+
+echo "nodeType: " . $node->nodeType . "\n";
+
+?>
+--EXPECTF--
+root
+nodeType: 1
+child
+
+Warning: Couldn't fetch DOMElement. Node no longer exists in %sbug36756.php on line %d
+
+Notice: Undefined property: DOMElement::$nodeType in %sbug36756.php on line %d
+nodeType:
diff --git a/ext/dom/tests/bug37277.phpt b/ext/dom/tests/bug37277.phpt
new file mode 100644
index 000000000..4a0168417
--- /dev/null
+++ b/ext/dom/tests/bug37277.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug # 37277 (cloning Dom Documents or Nodes does not work)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$dom1 = new DomDocument('1.0', 'UTF-8');
+
+$xml = '<foo />';
+$dom1->loadXml($xml);
+
+$node = clone $dom1->documentElement;
+
+$dom2 = new DomDocument('1.0', 'UTF-8');
+$dom2->appendChild($dom2->importNode($node->cloneNode(true), TRUE));
+
+print $dom2->saveXML();
+
+
+?>
+--EXPECT--
+
+<?xml version="1.0" encoding="UTF-8"?>
+<foo/>
+
diff --git a/ext/dom/tests/dom007.phpt b/ext/dom/tests/dom007.phpt
new file mode 100644
index 000000000..649d63033
--- /dev/null
+++ b/ext/dom/tests/dom007.phpt
@@ -0,0 +1,99 @@
+--TEST--
+Test 7: DTD tests
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+?>
+--FILE--
+<?php
+$xml = <<< EOXML
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE courses [
+<!ELEMENT courses (course+)>
+<!ELEMENT course (title, description, temp*)>
+<!ATTLIST course cid ID #REQUIRED>
+<!ELEMENT title (#PCDATA)>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT temp (#PCDATA)>
+<!ATTLIST temp vid ID #REQUIRED>
+<!ENTITY test 'http://www.hpl.hp.com/semweb/2003/query_tester#'>
+<!ENTITY rdf 'http://www.w3.org/1999/02/22-rdf-syntax-ns#'>
+<!NOTATION GIF PUBLIC "-" "image/gif">
+<!ENTITY myimage PUBLIC "-" "mypicture.gif" NDATA GIF>
+]>
+<courses>
+ <course cid="c1">
+ <title>Basic Languages</title>
+ <description>Introduction to Languages</description>
+ </course>
+ <course cid="c6">
+ <title>French I</title>
+ <description>Introduction to French</description>
+ <temp vid="c7">
+ </temp>
+ </course>
+</courses>
+EOXML;
+
+$dom = new DOMDocument();
+$dom->loadXML($xml);
+
+$dtd = $dom->doctype;
+
+/* Notation Tests */
+$nots = $dtd->notations;
+
+$length = $nots->length;
+echo "Length: ".$length."\n";
+
+foreach ($nots AS $key=>$node) {
+ echo "Key $key: ".$node->nodeName." (".$node->systemId.") (".$node->publicId.")\n";
+}
+print "\n";
+for($x=0; $x < $length; $x++) {
+ echo "Index $x: ".$nots->item($x)->nodeName." (".$nots->item($x)->systemId.") (".$nots->item($x)->publicId.")\n";
+}
+
+echo "\n";
+$node = $nots->getNamedItem('xxx');
+var_dump($node);
+
+echo "\n";
+/* Entity Decl Tests */
+$ents = $dtd->entities;
+$length = $ents->length;
+echo "Length: ".$length."\n";
+foreach ($ents AS $key=>$node) {
+ echo "Key: $key Name: ".$node->nodeName."\n";
+}
+echo "\n";
+for($x=0; $x < $length; $x++) {
+ echo "Index $x: ".$ents->item($x)->nodeName."\n";
+}
+
+echo "\n";
+$node = $ents->item(3);
+var_dump($node);
+$node = $ents->getNamedItem('xxx');
+var_dump($node);
+
+
+--EXPECT--
+Length: 1
+Key GIF: GIF (image/gif) (-)
+
+Index 0: GIF (image/gif) (-)
+
+NULL
+
+Length: 3
+Key: test Name: test
+Key: rdf Name: rdf
+Key: myimage Name: myimage
+
+Index 0: test
+Index 1: rdf
+Index 2: myimage
+
+NULL
+NULL
diff --git a/ext/exif/exif.c b/ext/exif/exif.c
index 945931fe8..324195fa7 100644
--- a/ext/exif/exif.c
+++ b/ext/exif/exif.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: exif.c,v 1.173.2.4 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: exif.c,v 1.173.2.5 2006/04/10 18:23:24 helly Exp $ */
/* ToDos
*
@@ -115,7 +115,7 @@ zend_function_entry exif_functions[] = {
};
/* }}} */
-#define EXIF_VERSION "1.4 $Id: exif.c,v 1.173.2.4 2006/01/01 12:50:06 sniper Exp $"
+#define EXIF_VERSION "1.4 $Id: exif.c,v 1.173.2.5 2006/04/10 18:23:24 helly Exp $"
/* {{{ PHP_MINFO_FUNCTION
*/
@@ -1560,7 +1560,7 @@ static void exif_iif_add_value(image_info_type *image_info, int section_index, c
image_info_data *info_data;
image_info_data *list;
- if (length >= LONG_MAX) {
+ if (length < 0) {
return;
}
diff --git a/ext/fbsql/php_fbsql.c b/ext/fbsql/php_fbsql.c
index b79d28f43..13fcc5277 100644
--- a/ext/fbsql/php_fbsql.c
+++ b/ext/fbsql/php_fbsql.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_fbsql.c,v 1.114.2.3 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: php_fbsql.c,v 1.114.2.4 2006/08/14 18:40:20 fmk Exp $ */
/* TODO:
*
@@ -58,6 +58,10 @@
#define HAVE_FBSQL 1
+#ifndef min
+# define min(a,b) ((a)<(b)?(a):(b))
+#endif
+
#if HAVE_FBSQL
#include "php_fbsql.h"
#include <signal.h>
@@ -379,6 +383,7 @@ PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN ("fbsql.allow_persistent", "1", PHP_INI_SYSTEM, OnUpdateBool, allowPersistent, zend_fbsql_globals, fbsql_globals)
STD_PHP_INI_BOOLEAN ("fbsql.generate_warnings", "0", PHP_INI_SYSTEM, OnUpdateBool, generateWarnings, zend_fbsql_globals, fbsql_globals)
STD_PHP_INI_BOOLEAN ("fbsql.autocommit", "1", PHP_INI_SYSTEM, OnUpdateBool, autoCommit, zend_fbsql_globals, fbsql_globals)
+ STD_PHP_INI_BOOLEAN ("fbsql.show_timestamp_decimals", "0", PHP_INI_SYSTEM, OnUpdateBool, showTimestampDecimals, zend_fbsql_globals, fbsql_globals)
STD_PHP_INI_ENTRY_EX ("fbsql.max_persistent", "-1", PHP_INI_SYSTEM, OnUpdateLong, maxPersistent, zend_fbsql_globals, fbsql_globals, display_link_numbers)
STD_PHP_INI_ENTRY_EX ("fbsql.max_links", "128", PHP_INI_SYSTEM, OnUpdateLong, maxLinks, zend_fbsql_globals, fbsql_globals, display_link_numbers)
STD_PHP_INI_ENTRY_EX ("fbsql.max_connections", "128", PHP_INI_SYSTEM, OnUpdateLong, maxConnections, zend_fbsql_globals, fbsql_globals, display_link_numbers)
@@ -540,7 +545,26 @@ static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
if (persistent) {
if (zend_hash_find(&EG(persistent_list), name, strlen(name) + 1, (void **)&lep) == SUCCESS)
{
+ FBCMetaData *md;
phpLink = (PHPFBLink*)lep->ptr;
+ // Check if connection still there.
+ md = fbcdcRollback(phpLink->connection);
+ if ( !mdOk(phpLink, md, "Rollback;") ) {
+ if (FB_SQL_G(generateWarnings)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "FrontBase link is not connected, ty to reconnect.");
+ }
+ // Make sure select_db will reconnect.
+ fbcmdRelease(md);
+ fbcdcClose(phpLink->connection);
+ fbcdcRelease(phpLink->connection);
+ free(phpLink->connection);
+ phpLink->connection = NULL;
+ if (phpLink->databaseName) free(phpLink->databaseName);
+ phpLink->databaseName = NULL;
+ }
+ else {
+ fbcmdRelease(md);
+ }
}
else {
zend_rsrc_list_entry le;
@@ -2509,8 +2533,6 @@ void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* leng
case FB_Float:
case FB_Real:
case FB_Double:
- case FB_Numeric:
- case FB_Decimal:
{
double v = *((double*)data);
char b[128];
@@ -2519,6 +2541,18 @@ void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* leng
}
break;
+ case FB_Numeric:
+ case FB_Decimal:
+ {
+ unsigned precision = fbcdmdPrecision(dtmd);
+ unsigned scale = fbcdmdScale(dtmd);
+ double v = *((double*)data);
+ char b[128];
+ snprintf(b, sizeof(b), "%.*f", scale, v);
+ phpfbestrdup(b, length, value);
+ }
+ break;
+
case FB_Character:
case FB_VCharacter:
{
@@ -2589,7 +2623,6 @@ void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* leng
case FB_Date:
case FB_Time:
case FB_TimeTZ:
- case FB_Timestamp:
case FB_TimestampTZ:
{
char* v = (char*)data;
@@ -2597,6 +2630,27 @@ void phpfbColumnAsString(PHPFBResult* result, int column, void* data , int* leng
}
break;
+ case FB_Timestamp:
+ {
+ char* v = (char*)data;
+ if (FB_SQL_G(showTimestampDecimals)) {
+ phpfbestrdup(v, length, value);
+ }
+ // Copy only YYYY-MM-DD HH:MM:SS
+ else {
+ int stringLength = strlen(v);
+ stringLength = min(stringLength, 19);
+ if (value) {
+ char* r = emalloc(stringLength+1);
+ memcpy(r, v, stringLength);
+ r[stringLength] = 0;
+ *value = r;
+ }
+ *length = stringLength;
+ }
+ }
+ break;
+
case FB_YearMonth:
{
char b[128];
diff --git a/ext/fbsql/php_fbsql.h b/ext/fbsql/php_fbsql.h
index c41da0a3e..7414647f2 100644
--- a/ext/fbsql/php_fbsql.h
+++ b/ext/fbsql/php_fbsql.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_fbsql.h,v 1.31.2.1 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: php_fbsql.h,v 1.31.2.2 2006/08/14 18:40:20 fmk Exp $ */
#define HAVE_FBSQL 1
@@ -108,23 +108,23 @@ static void php_fbsql_fetch_hash(INTERNAL_FUNCTION_PARAMETERS, int result_type,
static void php_fbsql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent);
ZEND_BEGIN_MODULE_GLOBALS(fbsql)
- zend_bool allowPersistent;
- zend_bool generateWarnings;
- zend_bool autoCommit;
- long maxPersistent;
- long maxLinks;
- long maxConnections;
- long maxResults;
- long batchSize;
- char *hostName;
- char *databaseName;
- char *databasePassword;
- char *userName;
- char *userPassword;
- long persistentCount;
- long linkCount;
- long linkIndex;
-
+ zend_bool allowPersistent;
+ zend_bool generateWarnings;
+ zend_bool autoCommit;
+ zend_bool showTimestampDecimals;
+ long maxPersistent;
+ long maxLinks;
+ long maxConnections;
+ long maxResults;
+ long batchSize;
+ char *hostName;
+ char *databaseName;
+ char *databasePassword;
+ char *userName;
+ char *userPassword;
+ long persistentCount;
+ long linkCount;
+ long linkIndex;
ZEND_END_MODULE_GLOBALS(fbsql)
#ifdef ZTS
diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c
index 9291bd1fc..08db6a2ff 100644
--- a/ext/ftp/ftp.c
+++ b/ext/ftp/ftp.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ftp.c,v 1.112.2.3 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: ftp.c,v 1.112.2.4 2006/04/03 09:14:33 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -810,7 +810,7 @@ ftp_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t type,
if (resumepos > 0) {
if (resumepos > 2147483647) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files greater then 2147483647 bytes.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files greater than 2147483647 bytes.");
goto bail;
}
sprintf(arg, "%u", resumepos);
@@ -907,7 +907,7 @@ ftp_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type, i
if (startpos > 0) {
if (startpos > 2147483647) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files with a size greater then 2147483647 bytes.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files with a size greater than 2147483647 bytes.");
goto bail;
}
sprintf(arg, "%u", startpos);
@@ -1706,7 +1706,7 @@ ftp_nb_get(ftpbuf_t *ftp, php_stream *outstream, const char *path, ftptype_t typ
* since php is 32 bit by design, we bail out with warning
*/
if (resumepos > 2147483647) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files greater then 2147483648 bytes.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files greater than 2147483648 bytes.");
goto bail;
}
sprintf(arg, "%u", resumepos);
@@ -1824,7 +1824,7 @@ ftp_nb_put(ftpbuf_t *ftp, const char *path, php_stream *instream, ftptype_t type
}
if (startpos > 0) {
if (startpos > 2147483647) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files with a size greater then 2147483647 bytes.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "PHP cannot handle files with a size greater than 2147483647 bytes.");
goto bail;
}
sprintf(arg, "%u", startpos);
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index a37346cd2..398832392 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: gd.c,v 1.312.2.12 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: gd.c,v 1.312.2.20 2006/03/10 18:07:27 pajoye Exp $ */
/* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center,
Cold Spring Harbor Labs. */
@@ -29,7 +29,13 @@
#include "config.h"
#endif
+#ifdef HAVE_GD_PNG
+/* needs to be first */
+#include <png.h>
+#endif
+
#include "php.h"
+#include "php_ini.h"
#include "ext/standard/head.h"
#include <math.h>
#include "SAPI.h"
@@ -352,6 +358,12 @@ zend_module_entry gd_module_entry = {
ZEND_GET_MODULE(gd)
#endif
+/* {{{ PHP_INI_BEGIN */
+PHP_INI_BEGIN()
+ PHP_INI_ENTRY("gd.jpeg_ignore_warning", "0", PHP_INI_ALL, NULL)
+PHP_INI_END()
+/* }}} */
+
/* {{{ php_free_gd_image
*/
static void php_free_gd_image(zend_rsrc_list_entry *rsrc TSRMLS_DC)
@@ -400,6 +412,8 @@ PHP_MINIT_FUNCTION(gd)
le_ps_enc = zend_register_list_destructors_ex(php_free_ps_enc, NULL, "gd PS encoding", module_number);
#endif
+ REGISTER_INI_ENTRIES();
+
REGISTER_LONG_CONSTANT("IMG_GIF", 1, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IMG_JPG", 2, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("IMG_JPEG", 2, CONST_CS | CONST_PERSISTENT);
@@ -451,6 +465,22 @@ PHP_MINIT_FUNCTION(gd)
#else
REGISTER_LONG_CONSTANT("GD_BUNDLED", 0, CONST_CS | CONST_PERSISTENT);
#endif
+
+#ifdef HAVE_GD_PNG
+
+/*
+ * cannot include #include "png.h"
+ * /usr/include/pngconf.h:310:2: error: #error png.h already includes setjmp.h with some additional fixup.
+ * as error, use the values for now...
+ */
+ REGISTER_LONG_CONSTANT("PNG_NO_FILTER", 0x00, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_FILTER_NONE", 0x08, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_FILTER_SUB", 0x10, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_FILTER_UP", 0x20, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_FILTER_AVG", 0x40, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_FILTER_PAETH", 0x80, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("PNG_ALL_FILTERS", 0x08 | 0x10 | 0x20 | 0x40 | 0x80, CONST_CS | CONST_PERSISTENT);
+#endif
return SUCCESS;
}
/* }}} */
@@ -1064,6 +1094,7 @@ PHP_FUNCTION(imagesavealpha)
RETURN_TRUE;
}
+/* }}} */
#endif
#if HAVE_GD_BUNDLED
@@ -1095,6 +1126,7 @@ PHP_FUNCTION(imagecolorallocatealpha)
zval *IM;
long red, green, blue, alpha;
gdImagePtr im;
+ int ct = (-1);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zllll", &IM, &red, &green, &blue, &alpha) == FAILURE) {
RETURN_FALSE;
@@ -1102,7 +1134,12 @@ PHP_FUNCTION(imagecolorallocatealpha)
ZEND_FETCH_RESOURCE(im, gdImagePtr, &IM, -1, "Image", le_gd);
- RETURN_LONG(gdImageColorAllocateAlpha(im, red, green, blue, alpha));
+ ct = gdImageColorAllocateAlpha(im, red, green, blue, alpha);
+ if (ct < 0) {
+ RETURN_FALSE;
+ }
+
+ RETURN_LONG((long)ct);
}
/* }}} */
@@ -1513,6 +1550,8 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
php_stream *stream;
FILE * fp = NULL;
int argc=ZEND_NUM_ARGS();
+ long ignore_warning;
+
if ((image_type == PHP_GDIMG_TYPE_GD2PART && argc != 5) ||
(image_type != PHP_GDIMG_TYPE_GD2PART && argc != 1) ||
@@ -1593,6 +1632,18 @@ static void _php_image_create_from(INTERNAL_FUNCTION_PARAMETERS, int image_type,
im = gdImageCreateFromXpm(fn);
break;
#endif
+
+#ifdef HAVE_GD_JPG
+ case PHP_GDIMG_TYPE_JPG:
+ ignore_warning = INI_INT("gd.jpeg_ignore_warning");
+#ifdef HAVE_GD_BUNDLED
+ im = gdImageCreateFromJpeg(fp, ignore_warning);
+#else
+ im = gdImageCreateFromJpeg(fp);
+#endif
+ break;
+#endif
+
default:
im = (*func_p)(fp);
break;
@@ -1960,6 +2011,7 @@ PHP_FUNCTION(imagecolorallocate)
{
zval **IM, **red, **green, **blue;
gdImagePtr im;
+ int ct = (-1);
if (ZEND_NUM_ARGS() != 4 || zend_get_parameters_ex(4, &IM, &red, &green, &blue) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
@@ -1970,8 +2022,11 @@ PHP_FUNCTION(imagecolorallocate)
convert_to_long_ex(red);
convert_to_long_ex(green);
convert_to_long_ex(blue);
-
- RETURN_LONG(gdImageColorAllocate(im, Z_LVAL_PP(red), Z_LVAL_PP(green), Z_LVAL_PP(blue)));
+ ct = gdImageColorAllocate(im, Z_LVAL_PP(red), Z_LVAL_PP(green), Z_LVAL_PP(blue));
+ if (ct < 0) {
+ RETURN_FALSE;
+ }
+ RETURN_LONG(ct);
}
/* }}} */
@@ -3191,6 +3246,8 @@ static void php_imagettftext_common(INTERNAL_FUNCTION_PARAMETERS, int mode, int
fontname = (unsigned char *) fontname;
#endif
+ PHP_GD_CHECK_OPEN_BASEDIR(fontname, "Invalid font filename");
+
#ifdef USE_GD_IMGSTRTTF
# if HAVE_GD_STRINGFTEX
if (extended) {
@@ -3808,7 +3865,8 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
int int_threshold;
int x, y;
float x_ratio, y_ratio;
-
+ long ignore_warning;
+
if (argc != 5 || zend_get_parameters_ex(argc, &f_org, &f_dest, &height, &width, &threshold) == FAILURE) {
ZEND_WRONG_PARAM_COUNT();
}
@@ -3864,7 +3922,12 @@ static void _php_image_convert(INTERNAL_FUNCTION_PARAMETERS, int image_type )
#ifdef HAVE_GD_JPG
case PHP_GDIMG_TYPE_JPG:
+ ignore_warning = INI_INT("gd.jpeg_ignore_warning");
+#ifdef HAVE_GD_BUNDLED
+ im_org = gdImageCreateFromJpeg(org, ignore_warning);
+#else
im_org = gdImageCreateFromJpeg(org);
+#endif
if (im_org == NULL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to open '%s' Not a valid JPEG file", fn_dest);
RETURN_FALSE;
diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c
index 28a401a65..8b7434282 100644
--- a/ext/gd/gd_ctx.c
+++ b/ext/gd/gd_ctx.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: gd_ctx.c,v 1.22.2.4 2006/01/01 12:50:06 sniper Exp $ */
+/* $Id: gd_ctx.c,v 1.22.2.5 2006/01/27 13:36:29 pajoye Exp $ */
#include "php_gd.h"
@@ -49,12 +49,13 @@ static void _php_image_output_ctxfree(struct gdIOCtx *ctx)
/* {{{ _php_image_output_ctx */
static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type, char *tn, void (*func_p)())
{
- zval **imgind, **file, **quality;
+ zval **imgind, **file, **quality, **basefilter;
gdImagePtr im;
char *fn = NULL;
FILE *fp = NULL;
int argc = ZEND_NUM_ARGS();
int q = -1, i;
+ int f = -1;
gdIOCtx *ctx;
/* The third (quality) parameter for Wbmp stands for the threshold when called from image2wbmp().
@@ -65,7 +66,8 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
if (argc < 2 && image_type == PHP_GDIMG_TYPE_XBM) {
WRONG_PARAM_COUNT;
}
- if (argc < 1 || argc > 3 || zend_get_parameters_ex(argc, &imgind, &file, &quality) == FAILURE)
+
+ if (argc < 1 || argc > 4 || zend_get_parameters_ex(argc, &imgind, &file, &quality, &basefilter) == FAILURE)
{
WRONG_PARAM_COUNT;
}
@@ -75,9 +77,13 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
if (argc > 1) {
convert_to_string_ex(file);
fn = Z_STRVAL_PP(file);
- if (argc == 3) {
+ if (argc >= 3) {
convert_to_long_ex(quality);
q = Z_LVAL_PP(quality);/* or colorindex for foreground of BW images (defaults to black) */
+ if (argc == 4) {
+ convert_to_long_ex(basefilter);
+ f = Z_LVAL_PP(basefilter);
+ }
}
}
@@ -115,9 +121,11 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid threshold value '%d'. It must be between 0 and 255", q);
}
case PHP_GDIMG_TYPE_JPG:
- case PHP_GDIMG_TYPE_PNG:
(*func_p)(im, ctx, q);
break;
+ case PHP_GDIMG_TYPE_PNG:
+ (*func_p)(im, ctx, q, f);
+ break;
case PHP_GDIMG_TYPE_XBM:
case PHP_GDIMG_TYPE_WBM:
if (argc < 3) {
diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c
index 6a2e8fbcd..bb12cefc0 100644
--- a/ext/gd/libgd/gd.c
+++ b/ext/gd/libgd/gd.c
@@ -2161,7 +2161,7 @@ void gdImageCopy (gdImagePtr dst, gdImagePtr src, int dstX, int dstY, int srcX,
for (x = 0; (x < w); x++) {
int c = gdImageGetPixel (src, srcX + x, srcY + y);
if (c != src->transparent) {
- gdImageSetPixel (dst, dstX + x, dstY + y, gdTrueColor(src->red[c], src->green[c], src->blue[c]));
+ gdImageSetPixel(dst, dstX + x, dstY + y, gdTrueColorAlpha(src->red[c], src->green[c], src->blue[c], src->alpha[c]));
}
}
}
diff --git a/ext/gd/libgd/gd.h b/ext/gd/libgd/gd.h
index 19b69c1c5..751a1e74e 100644
--- a/ext/gd/libgd/gd.h
+++ b/ext/gd/libgd/gd.h
@@ -237,8 +237,8 @@ gdImagePtr gdImageCreateFromPng(FILE *fd);
gdImagePtr gdImageCreateFromPngCtx(gdIOCtxPtr in);
gdImagePtr gdImageCreateFromWBMP(FILE *inFile);
gdImagePtr gdImageCreateFromWBMPCtx(gdIOCtx *infile);
-gdImagePtr gdImageCreateFromJpeg(FILE *infile);
-gdImagePtr gdImageCreateFromJpegCtx(gdIOCtx *infile);
+gdImagePtr gdImageCreateFromJpeg(FILE *infile, int ignore_warning);
+gdImagePtr gdImageCreateFromJpegCtx(gdIOCtx *infile, int ignore_warning);
/* A custom data source. */
/* The source function must return -1 on error, otherwise the number
@@ -444,8 +444,8 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtx *out);
* compression (smallest files) but takes a long time to compress, and
* -1 selects the default compiled into the zlib library.
*/
-void gdImagePngEx(gdImagePtr im, FILE * out, int level);
-void gdImagePngCtxEx(gdImagePtr im, gdIOCtx * out, int level);
+void gdImagePngEx(gdImagePtr im, FILE * out, int level, int basefilter);
+void gdImagePngCtxEx(gdImagePtr im, gdIOCtx * out, int level, int basefilter);
void gdImageWBMP(gdImagePtr image, int fg, FILE *out);
void gdImageWBMPCtx(gdImagePtr image, int fg, gdIOCtx *out);
@@ -489,7 +489,7 @@ void* gdImagePngPtr(gdImagePtr im, int *size);
/* Best to free this memory with gdFree(), not free() */
void* gdImageGdPtr(gdImagePtr im, int *size);
-void *gdImagePngPtrEx(gdImagePtr im, int *size, int level);
+void *gdImagePngPtrEx(gdImagePtr im, int *size, int level, int basefilter);
/* Best to free this memory with gdFree(), not free() */
void* gdImageGd2Ptr(gdImagePtr im, int cs, int fmt, int *size);
diff --git a/ext/gd/libgd/gd_gd2.c b/ext/gd/libgd/gd_gd2.c
index 1e739179e..3f24e4a47 100644
--- a/ext/gd/libgd/gd_gd2.c
+++ b/ext/gd/libgd/gd_gd2.c
@@ -430,6 +430,10 @@ gdImagePtr gdImageCreateFromGd2PartCtx (gdIOCtx * in, int srcx, int srcy, int w,
gdImagePtr im;
+ if (w<1 || h <1) {
+ return 0;
+ }
+
/* The next few lines are basically copied from gd2CreateFromFile
* we change the file size, so don't want to use the code directly.
* but we do need to know the file size.
diff --git a/ext/gd/libgd/gd_gif_in.c b/ext/gd/libgd/gd_gif_in.c
index 1733a646f..ffe4168c8 100644
--- a/ext/gd/libgd/gd_gif_in.c
+++ b/ext/gd/libgd/gd_gif_in.c
@@ -44,7 +44,7 @@ static int set_verbose(void)
#define LOCALCOLORMAP 0x80
#define BitSet(byte, bit) (((byte) & (bit)) == (bit))
-#define ReadOK(file,buffer,len) (gdGetBuf(buffer, len, file) != 0)
+#define ReadOK(file,buffer,len) (gdGetBuf(buffer, len, file) > 0)
#define LM_to_uint(a,b) (((b)<<8)|(a))
@@ -147,6 +147,9 @@ gdImageCreateFromGifCtx(gdIOCtxPtr fd)
Background = buf[5];
AspectRatio = buf[6];
+ imw = LM_to_uint(buf[0],buf[1]);
+ imh = LM_to_uint(buf[2],buf[3]);
+
if (BitSet(buf[4], LOCALCOLORMAP)) { /* Global Colormap */
if (ReadColorMap(fd, BitPixel, ColorMap)) {
return 0;
@@ -182,14 +185,13 @@ gdImageCreateFromGifCtx(gdIOCtxPtr fd)
bitPixel = 1<<((buf[8]&0x07)+1);
- imw = LM_to_uint(buf[4],buf[5]);
- imh = LM_to_uint(buf[6],buf[7]);
- if (!(im = gdImageCreate(imw, imh))) {
- return 0;
- }
+ if (!(im = gdImageCreate(imw, imh))) {
+ return 0;
+ }
+
im->interlace = BitSet(buf[8], INTERLACE);
if (! useGlobalColormap) {
- if (ReadColorMap(fd, bitPixel, localColorMap)) {
+ if (ReadColorMap(fd, bitPixel, localColorMap)) {
return 0;
}
ReadImage(im, fd, imw, imh, localColorMap,
@@ -212,6 +214,10 @@ terminated:
if (!im) {
return 0;
}
+ if (!im->colorsTotal) {
+ gdImageDestroy(im);
+ return 0;
+ }
/* Check for open colors at the end, so
we can reduce colorsTotal and ultimately
BitsPerPixel */
@@ -502,6 +508,18 @@ ReadImage(gdImagePtr im, gdIOCtx *fd, int len, int height, unsigned char (*cmap)
int v;
int xpos = 0, ypos = 0, pass = 0;
int i;
+
+ /*
+ ** Initialize the Compression routines
+ */
+ if (! ReadOK(fd,&c,1)) {
+ return;
+ }
+
+ if (c > MAX_LWZ_BITS) {
+ return;
+ }
+
/* Stash the color map into the image */
for (i=0; (i<gdMaxColors); i++) {
im->red[i] = cmap[CM_RED][i];
@@ -511,12 +529,7 @@ ReadImage(gdImagePtr im, gdIOCtx *fd, int len, int height, unsigned char (*cmap)
}
/* Many (perhaps most) of these colors will remain marked open. */
im->colorsTotal = gdMaxColors;
- /*
- ** Initialize the Compression routines
- */
- if (! ReadOK(fd,&c,1)) {
- return;
- }
+
if (LWZReadByte(fd, TRUE, c) < 0) {
return;
}
diff --git a/ext/gd/libgd/gd_gif_out.c b/ext/gd/libgd/gd_gif_out.c
index 49da75f96..f6b4ff7e6 100644
--- a/ext/gd/libgd/gd_gif_out.c
+++ b/ext/gd/libgd/gd_gif_out.c
@@ -133,7 +133,7 @@ void gdImageGifCtx(gdImagePtr im, gdIOCtxPtr out)
BitsPerPixel = colorstobpp(tim->colorsTotal);
/* All set, let's do it. */
GIFEncode(
- out, tim->sx, tim->sy, interlace, 0, transparent, BitsPerPixel,
+ out, tim->sx, tim->sy, tim->interlace, 0, tim->transparent, BitsPerPixel,
tim->red, tim->green, tim->blue, tim);
if (pim) {
/* Destroy palette based temporary image. */
@@ -265,9 +265,11 @@ GIFEncode(gdIOCtxPtr fp, int GWidth, int GHeight, int GInterlace, int Background
int InitCodeSize;
int i;
GifCtx ctx;
+
+ memset(&ctx, 0, sizeof(ctx));
ctx.Interlace = GInterlace;
ctx.in_count = 1;
- memset(&ctx, 0, sizeof(ctx));
+
ColorMapSize = 1 << BitsPerPixel;
RWidth = ctx.Width = GWidth;
diff --git a/ext/gd/libgd/gd_jpeg.c b/ext/gd/libgd/gd_jpeg.c
index a276fe853..9573c1cf6 100644
--- a/ext/gd/libgd/gd_jpeg.c
+++ b/ext/gd/libgd/gd_jpeg.c
@@ -43,8 +43,44 @@ static const char *const GD_JPEG_VERSION = "1.0";
typedef struct _jmpbuf_wrapper
{
jmp_buf jmpbuf;
+ int ignore_warning;
} jmpbuf_wrapper;
+static long php_jpeg_emit_message(j_common_ptr jpeg_info, int level)
+{
+ char message[JMSG_LENGTH_MAX];
+ jmpbuf_wrapper *jmpbufw;
+ int ignore_warning = 0;
+
+ jmpbufw = (jmpbuf_wrapper *) jpeg_info->client_data;
+
+ if (jmpbufw != 0) {
+ ignore_warning = jmpbufw->ignore_warning;
+ }
+
+ (jpeg_info->err->format_message)(jpeg_info,message);
+
+ /* It is a warning message */
+ if (level < 0) {
+ /* display only the 1st warning, as would do a default libjpeg
+ * unless strace_level >= 3
+ */
+ if ((jpeg_info->err->num_warnings == 0) || (jpeg_info->err->trace_level >= 3)) {
+ php_gd_error_ex(ignore_warning ? E_NOTICE : E_WARNING, "gd-jpeg, libjpeg: recoverable error: %s\n", message);
+ }
+
+ jpeg_info->err->num_warnings++;
+ } else {
+ /* strace msg, Show it if trace_level >= level. */
+ if (jpeg_info->err->trace_level >= level) {
+ php_gd_error_ex(E_NOTICE, "gd-jpeg, libjpeg: strace message: %s\n", message);
+ }
+ }
+ return 1;
+}
+
+
+
/* Called by the IJG JPEG library upon encountering a fatal error */
static void fatal_jpeg_error (j_common_ptr cinfo)
{
@@ -207,21 +243,21 @@ void gdImageJpegCtx (gdImagePtr im, gdIOCtx * outfile, int quality)
gdFree (row);
}
-gdImagePtr gdImageCreateFromJpeg (FILE * inFile)
+gdImagePtr gdImageCreateFromJpeg (FILE * inFile, int ignore_warning)
{
gdImagePtr im;
gdIOCtx *in = gdNewFileCtx(inFile);
- im = gdImageCreateFromJpegCtx(in);
+ im = gdImageCreateFromJpegCtx(in, ignore_warning);
in->gd_free (in);
return im;
}
-gdImagePtr gdImageCreateFromJpegPtr (int size, void *data)
+gdImagePtr gdImageCreateFromJpegPtr (int size, void *data, int ignore_warning)
{
gdImagePtr im;
gdIOCtx *in = gdNewDynamicCtxEx(size, data, 0);
- im = gdImageCreateFromJpegCtx(in);
+ im = gdImageCreateFromJpegCtx(in, ignore_warning);
in->gd_free(in);
return im;
@@ -231,11 +267,12 @@ void jpeg_gdIOCtx_src (j_decompress_ptr cinfo, gdIOCtx * infile);
static int CMYKToRGB(int c, int m, int y, int k, int inverted);
+
/*
* Create a gd-format image from the JPEG-format INFILE. Returns the
* image, or NULL upon error.
*/
-gdImagePtr gdImageCreateFromJpegCtx (gdIOCtx * infile)
+gdImagePtr gdImageCreateFromJpegCtx (gdIOCtx * infile, int ignore_warning)
{
struct jpeg_decompress_struct cinfo;
struct jpeg_error_mgr jerr;
@@ -253,8 +290,13 @@ gdImagePtr gdImageCreateFromJpegCtx (gdIOCtx * infile)
memset (&cinfo, 0, sizeof (cinfo));
memset (&jerr, 0, sizeof (jerr));
+ jmpbufw.ignore_warning = ignore_warning;
+
cinfo.err = jpeg_std_error (&jerr);
cinfo.client_data = &jmpbufw;
+
+ cinfo.err->emit_message = (void (*)(j_common_ptr,int)) php_jpeg_emit_message;
+
if (setjmp (jmpbufw.jmpbuf) != 0) {
/* we're here courtesy of longjmp */
if (row) {
@@ -386,12 +428,12 @@ gdImagePtr gdImageCreateFromJpegCtx (gdIOCtx * infile)
if (jpeg_finish_decompress (&cinfo) != TRUE) {
php_gd_error("gd-jpeg: warning: jpeg_finish_decompress reports suspended data source");
}
-
- /* Thanks to Truxton Fulton */
- if (cinfo.err->num_warnings > 0) {
- goto error;
+ if (!ignore_warning) {
+ if (cinfo.err->num_warnings > 0) {
+ goto error;
+ }
}
-
+
jpeg_destroy_decompress (&cinfo);
gdFree (row);
diff --git a/ext/gd/libgd/gd_png.c b/ext/gd/libgd/gd_png.c
index f57f7c4b2..fcc9a008a 100644
--- a/ext/gd/libgd/gd_png.c
+++ b/ext/gd/libgd/gd_png.c
@@ -384,17 +384,17 @@ gdImagePtr gdImageCreateFromPngCtx (gdIOCtx * infile)
return im;
}
-void gdImagePngEx (gdImagePtr im, FILE * outFile, int level)
+void gdImagePngEx (gdImagePtr im, FILE * outFile, int level, int basefilter)
{
gdIOCtx *out = gdNewFileCtx(outFile);
- gdImagePngCtxEx(im, out, level);
+ gdImagePngCtxEx(im, out, level, basefilter);
out->gd_free(out);
}
void gdImagePng (gdImagePtr im, FILE * outFile)
{
gdIOCtx *out = gdNewFileCtx(outFile);
- gdImagePngCtxEx(im, out, -1);
+ gdImagePngCtxEx(im, out, -1, -1);
out->gd_free(out);
}
@@ -402,18 +402,18 @@ void * gdImagePngPtr (gdImagePtr im, int *size)
{
void *rv;
gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- gdImagePngCtxEx(im, out, -1);
+ gdImagePngCtxEx(im, out, -1, -1);
rv = gdDPExtractData(out, size);
out->gd_free(out);
return rv;
}
-void * gdImagePngPtrEx (gdImagePtr im, int *size, int level)
+void * gdImagePngPtrEx (gdImagePtr im, int *size, int level, int basefilter)
{
void *rv;
gdIOCtx *out = gdNewDynamicCtx(2048, NULL);
- gdImagePngCtxEx(im, out, level);
+ gdImagePngCtxEx(im, out, level, basefilter);
rv = gdDPExtractData(out, size);
out->gd_free(out);
return rv;
@@ -421,14 +421,14 @@ void * gdImagePngPtrEx (gdImagePtr im, int *size, int level)
void gdImagePngCtx (gdImagePtr im, gdIOCtx * outfile)
{
- gdImagePngCtxEx(im, outfile, -1);
+ gdImagePngCtxEx(im, outfile, -1, -1);
}
/* This routine is based in part on code from Dale Lutz (Safe Software Inc.)
* and in part on demo code from Chapter 15 of "PNG: The Definitive Guide"
* (http://www.cdrom.com/pub/png/pngbook.html).
*/
-void gdImagePngCtxEx (gdImagePtr im, gdIOCtx * outfile, int level)
+void gdImagePngCtxEx (gdImagePtr im, gdIOCtx * outfile, int level, int basefilter)
{
int i, j, bit_depth = 0, interlace_type;
int width = im->sx;
@@ -484,7 +484,10 @@ void gdImagePngCtxEx (gdImagePtr im, gdIOCtx * outfile, int level)
/* 2.0.12: this is finally a parameter */
png_set_compression_level(png_ptr, level);
-
+ if (basefilter >= 0) {
+ png_set_filter(png_ptr, PNG_FILTER_TYPE_BASE, basefilter);
+ }
+
/* can set this to a smaller value without compromising compression if all
* image data is 16K or less; will save some decoder memory [min == 8]
*/
diff --git a/ext/gd/tests/bug36697.phpt b/ext/gd/tests/bug36697.phpt
new file mode 100644
index 000000000..b257f63e2
--- /dev/null
+++ b/ext/gd/tests/bug36697.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Bug #36697 (TrueColor transparency with GIF palette output).
+--SKIPIF--
+<?php
+ if (!extension_loaded('gd')) {
+ die("skip gd extension not available\n");
+ }
+ if (!GD_BUNDLED) {
+ die('skip external GD libraries may fail');
+ }
+?>
+--FILE--
+<?php
+$dest = dirname(__FILE__) . "/36697.gif";
+
+$im = imagecreatetruecolor(192, 36);
+$trans_color = imagecolorallocate($im, 255, 0, 0);
+$color = imagecolorallocate($im, 255, 255, 255);
+imagecolortransparent($im, $trans_color);
+imagefilledrectangle($im, 0,0, 192,36, $trans_color);
+$c = imagecolorat($im, 191,35);
+imagegif($im, $dest);
+imagedestroy($im);
+$im = imagecreatefromgif($dest);
+$c = imagecolorat($im, 191, 35);
+$colors = imagecolorsforindex($im, $c);
+echo $colors['red'] . ' ' . $colors['green'] . ' ' . $colors['blue'];
+@unlink($dest);
+?>
+--EXPECT--
+255 0 0
diff --git a/ext/gd/tests/bug37346.gif b/ext/gd/tests/bug37346.gif
new file mode 100644
index 000000000..76ce1e398
--- /dev/null
+++ b/ext/gd/tests/bug37346.gif
@@ -0,0 +1,4 @@
+GIF89a
+<
+
+¿´°É, ÎÒ¶¼Ëµ¹ýÂ˲»ÑÏÁË \ No newline at end of file
diff --git a/ext/gd/tests/bug37346.phpt b/ext/gd/tests/bug37346.phpt
new file mode 100644
index 000000000..859518e1f
--- /dev/null
+++ b/ext/gd/tests/bug37346.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #37346 (gdimagecreatefromgif, bad colormap)
+--SKIPIF--
+<?php
+ if (!extension_loaded('gd')) die("skip gd extension not available\n");
+ if (!GD_BUNDLED) die('skip external GD libraries always fail');
+?>
+--FILE--
+<?php
+$im = imagecreatefromgif(dirname(__FILE__) . '/bug37346.gif');
+?>
+--EXPECTF--
+Warning: imagecreatefromgif(): '%sbug37346.gif' is not a valid GIF file in %sbug37346.php on line %d
diff --git a/ext/gd/tests/bug37360.gif b/ext/gd/tests/bug37360.gif
new file mode 100644
index 000000000..3f9e6c5e4
--- /dev/null
+++ b/ext/gd/tests/bug37360.gif
Binary files differ
diff --git a/ext/gd/tests/bug37360.phpt b/ext/gd/tests/bug37360.phpt
new file mode 100644
index 000000000..dce22e7c6
--- /dev/null
+++ b/ext/gd/tests/bug37360.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #37360 (gdimagecreatefromgif, bad image sizes)
+--SKIPIF--
+<?php
+ if (!extension_loaded('gd')) die("skip gd extension not available\n");
+ if (!GD_BUNDLED) die('skip external GD libraries always fail');
+?>
+--FILE--
+<?php
+$im = imagecreatefromgif(dirname(__FILE__) . '/bug37360.gif');
+var_dump($im);
+?>
+--EXPECTF--
+resource(%d) of type (gd)
diff --git a/ext/gettext/config.w32 b/ext/gettext/config.w32
index bfb586a36..1f79f722b 100644
--- a/ext/gettext/config.w32
+++ b/ext/gettext/config.w32
@@ -1,11 +1,11 @@
-// $Id: config.w32,v 1.2 2004/02/17 11:15:19 wez Exp $
+// $Id: config.w32,v 1.2.4.1 2006/04/09 23:14:47 edink Exp $
// vim:ft=javascript
ARG_WITH("gettext", "gettext support", "no");
if (PHP_GETTEXT != "no") {
if (CHECK_LIB("libintl.lib", "gettext", PHP_GETTEXT) && CHECK_HEADER_ADD_INCLUDE("libintl.h", "CFLAGS_GETTEXT")) {
- EXTENSION("gettext", "gettext.c", PHP_GETTEXT_SHARED, "-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_DNGETTEXT=1 -DHAVE_NGETTEXT=1 -DHAVE_LIBINTL=1");
+ EXTENSION("gettext", "gettext.c", PHP_GETTEXT_SHARED, "-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_DNGETTEXT=1 -DHAVE_NGETTEXT=1 -DHAVE_LIBINTL=1 -DHAVE_DCNGETTEXT=1");
} else {
WARNING("gettext not enabled; libraries and headers not found");
}
diff --git a/ext/hash/config.m4 b/ext/hash/config.m4
index 01ac28b61..3aaa5426b 100644
--- a/ext/hash/config.m4
+++ b/ext/hash/config.m4
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.10.2.3 2005/12/02 02:18:54 iliaa Exp $
+dnl $Id: config.m4,v 1.10.2.4 2006/02/19 23:39:53 mike Exp $
dnl config.m4 for extension hash
PHP_ARG_ENABLE(hash, whether to enable hash support,
@@ -7,6 +7,8 @@ PHP_ARG_ENABLE(hash, whether to enable hash support,
if test "$PHP_HASH" != "no"; then
AC_DEFINE(HAVE_HASH_EXT,1,[Have HASH Extension])
+ PHP_C_BIGENDIAN
+
AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
diff --git a/ext/hash/config.w32 b/ext/hash/config.w32
index 20fd5cef3..8b3d16800 100644
--- a/ext/hash/config.w32
+++ b/ext/hash/config.w32
@@ -1,7 +1,7 @@
-// $Id: config.w32,v 1.8.2.2 2005/12/02 01:59:44 iliaa Exp $
+// $Id: config.w32,v 1.8.2.3 2006/03/03 14:34:34 edink Exp $
// vim:ft=javascript
-ARG_ENABLE("hash", "enable hash support", "no");
+ARG_ENABLE("hash", "enable hash support", "yes");
if (PHP_HASH != "no") {
AC_DEFINE('HAVE_HASH_EXT', 1);
diff --git a/ext/hash/hash_adler32.c b/ext/hash/hash_adler32.c
index 1067dbfb3..5be7e53f3 100644
--- a/ext/hash/hash_adler32.c
+++ b/ext/hash/hash_adler32.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hash_adler32.c,v 1.3.2.3 2006/01/01 12:50:07 sniper Exp $ */
+/* $Id: hash_adler32.c,v 1.3.2.4 2006/04/25 08:34:25 mike Exp $ */
#include "php_hash.h"
#include "php_hash_adler32.h"
@@ -29,8 +29,10 @@ PHP_HASH_API void PHP_ADLER32Init(PHP_ADLER32_CTX *context)
PHP_HASH_API void PHP_ADLER32Update(PHP_ADLER32_CTX *context, const unsigned char *input, size_t len)
{
- php_hash_uint32 i, s[2] = { context->state & 0xffff, (context->state >> 16) & 0xffff };
+ php_hash_uint32 i, s[2];
+ s[0] = context->state & 0xffff;
+ s[1] = (context->state >> 16) & 0xffff;
for (i = 0; i < len; ++i) {
s[0] = (s[0] + input[i]) % 65521;
s[1] = (s[1] + s[0]) % 65521;
diff --git a/ext/hash/hash_tiger.c b/ext/hash/hash_tiger.c
index 2a30bed13..5c0b8d87e 100644
--- a/ext/hash/hash_tiger.c
+++ b/ext/hash/hash_tiger.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: hash_tiger.c,v 1.4.2.3 2006/01/01 12:50:07 sniper Exp $ */
+/* $Id: hash_tiger.c,v 1.4.2.4 2006/02/19 23:39:53 mike Exp $ */
#include "php_hash.h"
#include "php_hash_tiger.h"
@@ -88,6 +88,24 @@
} \
feedforward
+#define split_ex(str) \
+ x0=str[0]; x1=str[1]; x2=str[2]; x3=str[3]; \
+ x4=str[4]; x5=str[5]; x6=str[6]; x7=str[7];
+#ifdef WORDS_BIGENDIAN
+# define split(str) \
+ { \
+ int i; \
+ php_hash_uint64 tmp[8]; \
+ \
+ for (i = 0; i < 64; ++i) { \
+ ((unsigned char *) tmp)[i^7] = ((unsigned char *) str)[i]; \
+ } \
+ split_ex(tmp); \
+ }
+#else
+# define split split_ex
+#endif
+
#define tiger_compress(passes, str, state) \
{ \
register php_hash_uint64 a, b, c, tmpa, x0, x1, x2, x3, x4, x5, x6, x7; \
@@ -98,8 +116,7 @@
b = state[1]; \
c = state[2]; \
\
- x0=str[0]; x1=str[1]; x2=str[2]; x3=str[3]; \
- x4=str[4]; x5=str[5]; x6=str[6]; x7=str[7]; \
+ split(str); \
\
compress(passes); \
\
@@ -118,7 +135,7 @@ static inline void TigerFinalize(PHP_TIGER_CTX *context)
memset(&context->buffer[context->length], 0, 8-context->length%8);
context->length += 8-context->length%8;
}
-
+
if (context->length > 56) {
memset(&context->buffer[context->length], 0, 64 - context->length);
tiger_compress(context->passes, ((php_hash_uint64 *) context->buffer), context->state);
@@ -126,8 +143,19 @@ static inline void TigerFinalize(PHP_TIGER_CTX *context)
} else {
memset(&context->buffer[context->length], 0, 56 - context->length);
}
-
+
+#ifndef WORDS_BIGENDIAN
memcpy(&context->buffer[56], &context->passed, sizeof(php_hash_uint64));
+#else
+ context->buffer[56] = (unsigned char) (context->passed & 0xff);
+ context->buffer[57] = (unsigned char) ((context->passed >> 8) & 0xff);
+ context->buffer[58] = (unsigned char) ((context->passed >> 16) & 0xff);
+ context->buffer[59] = (unsigned char) ((context->passed >> 24) & 0xff);
+ context->buffer[60] = (unsigned char) ((context->passed >> 32) & 0xff);
+ context->buffer[61] = (unsigned char) ((context->passed >> 40) & 0xff);
+ context->buffer[62] = (unsigned char) ((context->passed >> 48) & 0xff);
+ context->buffer[63] = (unsigned char) ((context->passed >> 56) & 0xff);
+#endif
tiger_compress(context->passes, ((php_hash_uint64 *) context->buffer), context->state);
}
@@ -165,11 +193,12 @@ PHP_HASH_API void PHP_TIGERUpdate(PHP_TIGER_CTX *context, const unsigned char *i
}
for (; i + 64 <= len; i += 64) {
- tiger_compress(context->passes, ((const php_hash_uint64 *) (input + i)), context->state);
+ memcpy(context->buffer, &input[i], 64);
+ tiger_compress(context->passes, ((const php_hash_uint64 *) context->buffer), context->state);
context->passed += 512;
}
-
- memcpy(context->buffer, input + i, r);
+ memset(&context->buffer[r], 0, 64-r);
+ memcpy(context->buffer, &input[i], r);
context->length = r;
}
}
diff --git a/ext/hash/php_hash.h b/ext/hash/php_hash.h
index d22ec8c45..9ce1f24de 100644
--- a/ext/hash/php_hash.h
+++ b/ext/hash/php_hash.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_hash.h,v 1.13.2.6 2006/01/01 12:50:07 sniper Exp $ */
+/* $Id: php_hash.h,v 1.13.2.7 2006/01/16 23:04:23 tony2001 Exp $ */
#ifndef PHP_HASH_H
#define PHP_HASH_H
@@ -122,7 +122,7 @@ PHP_HASH_API void php_hash_register_algo(const char *algo, php_hash_ops *ops);
static inline void php_hash_bin2hex(char *out, const unsigned char *in, int in_len)
{
- static const char hexits[16] = "0123456789abcdef";
+ static const char hexits[17] = "0123456789abcdef";
int i;
for(i = 0; i < in_len; i++) {
diff --git a/ext/hash/php_hash_types.h b/ext/hash/php_hash_types.h
index 382ad7d5d..af1852aef 100644
--- a/ext/hash/php_hash_types.h
+++ b/ext/hash/php_hash_types.h
@@ -16,13 +16,17 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_hash_types.h,v 1.2.2.3 2006/01/01 12:50:07 sniper Exp $ */
+/* $Id: php_hash_types.h,v 1.2.2.4 2006/02/19 23:39:53 mike Exp $ */
#ifndef PHP_HASH_TYPES_H
#define PHP_HASH_TYPES_H
#ifdef HAVE_CONFIG_H
#include "config.h"
+#else
+#ifndef PHP_WIN32
+#include "php_config.h"
+#endif
#endif
#ifndef PHP_WIN32
diff --git a/ext/iconv/iconv.c b/ext/iconv/iconv.c
index b6494d45f..b646399a2 100644
--- a/ext/iconv/iconv.c
+++ b/ext/iconv/iconv.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: iconv.c,v 1.124.2.5 2006/01/01 12:50:08 sniper Exp $ */
+/* $Id: iconv.c,v 1.124.2.8 2006/04/27 00:50:54 moriyoshi Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -583,7 +583,7 @@ static php_iconv_err_t _php_iconv_substr(smart_str *pretval,
size_t out_left;
unsigned int cnt;
- unsigned int total_len;
+ int total_len;
err = _php_iconv_strlen(&total_len, str, nbytes, enc);
if (err != PHP_ICONV_ERR_SUCCESS) {
@@ -822,18 +822,16 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval,
j += GENERIC_SUPERSET_NBYTES;
}
- if (!_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) {
- i = 0;
- }
-
- if (i == 0) {
- match_ofs = (unsigned int)-1;
- } else {
+ if (_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) {
match_ofs += (lim - i) / GENERIC_SUPERSET_NBYTES;
i += GENERIC_SUPERSET_NBYTES;
+ ndl_buf_p = &ndl_buf[i];
+ ndl_buf_left = ndl_buf_len - i;
+ } else {
+ match_ofs = (unsigned int)-1;
+ ndl_buf_p = ndl_buf;
+ ndl_buf_left = ndl_buf_len;
}
- ndl_buf_p = &ndl_buf[i];
- ndl_buf_left = ndl_buf_len - i;
}
}
} else {
@@ -867,18 +865,16 @@ static php_iconv_err_t _php_iconv_strpos(unsigned int *pretval,
j += GENERIC_SUPERSET_NBYTES;
}
- if (!_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) {
- i = 0;
- }
-
- if (i == 0) {
- match_ofs = (unsigned int)-1;
- } else {
+ if (_php_iconv_memequal(buf, &ndl_buf[i], sizeof(buf))) {
match_ofs += (lim - i) / GENERIC_SUPERSET_NBYTES;
i += GENERIC_SUPERSET_NBYTES;
+ ndl_buf_p = &ndl_buf[i];
+ ndl_buf_left = ndl_buf_len - i;
+ } else {
+ match_ofs = (unsigned int)-1;
+ ndl_buf_p = ndl_buf;
+ ndl_buf_left = ndl_buf_len;
}
- ndl_buf_p = &ndl_buf[i];
- ndl_buf_left = ndl_buf_len - i;
}
}
}
@@ -1395,11 +1391,13 @@ static php_iconv_err_t _php_iconv_mime_decode(smart_str *pretval, const char *st
case 3: /* expecting a encoding scheme specifier */
switch (*p1) {
+ case 'b':
case 'B':
enc_scheme = PHP_ICONV_ENC_SCHEME_BASE64;
scan_stat = 4;
break;
+ case 'q':
case 'Q':
enc_scheme = PHP_ICONV_ENC_SCHEME_QPRINT;
scan_stat = 4;
diff --git a/ext/iconv/php_iconv.h b/ext/iconv/php_iconv.h
index b6149471d..2736b35de 100644
--- a/ext/iconv/php_iconv.h
+++ b/ext/iconv/php_iconv.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Revision: 1.28.2.1 $ */
+/* $Revision: 1.28.2.2 $ */
#ifndef PHP_ICONV_H
#define PHP_ICONV_H
@@ -93,7 +93,7 @@ typedef enum _php_iconv_err_t {
} php_iconv_err_t;
/* }}} */
-PHP_ICONV_API php_iconv_err_t php_iconv_string(const char * in_p, size_t in_len, char **out, size_t *out_len, const char *in_charset, const char *out_charset);
+PHP_ICONV_API php_iconv_err_t php_iconv_string(const char * in_p, size_t in_len, char **out, size_t *out_len, const char *out_charset, const char *in_charset);
#else
diff --git a/ext/iconv/tests/bug37176.phpt b/ext/iconv/tests/bug37176.phpt
new file mode 100644
index 000000000..3923dbd49
--- /dev/null
+++ b/ext/iconv/tests/bug37176.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Bug #37176 (iconv_strpos() fails to find a string)
+--FILE--
+<?php
+var_dump(iconv_strpos('11--','1-',0,'UTF-8'));
+var_dump(iconv_strpos('-11--','1-',0,'UTF-8'));
+?>
+--EXPECT--
+int(1)
+int(2)
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c
index 8c9841add..9b07924f6 100644
--- a/ext/imap/php_imap.c
+++ b/ext/imap/php_imap.c
@@ -26,7 +26,7 @@
| PHP 4.0 updates: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.c,v 1.208.2.4 2006/01/05 00:47:16 iliaa Exp $ */
+/* $Id: php_imap.c,v 1.208.2.9 2006/08/11 15:07:13 iliaa Exp $ */
#define IMAP41
@@ -36,6 +36,7 @@
#include "php.h"
#include "php_ini.h"
+#include "php_streams.h"
#include "ext/standard/php_string.h"
#include "ext/standard/info.h"
#include "ext/standard/file.h"
@@ -67,6 +68,9 @@ static void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC);
static void _php_imap_parse_address(ADDRESS *addresslist, char **fulladdress, zval *paddress TSRMLS_DC);
static int _php_imap_address_size(ADDRESS *addresslist);
+/* the gets we use */
+static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md);
+
/* These function declarations are missing from the IMAP header files... */
void rfc822_date(char *date);
char *cpystr(const char *str);
@@ -93,6 +97,7 @@ zend_function_entry imap_functions[] = {
PHP_FE(imap_body, NULL)
PHP_FE(imap_bodystruct, NULL)
PHP_FE(imap_fetchbody, NULL)
+ PHP_FE(imap_savebody, NULL)
PHP_FE(imap_fetchheader, NULL)
PHP_FE(imap_fetchstructure, NULL)
PHP_FE(imap_expunge, NULL)
@@ -418,6 +423,7 @@ static void php_imap_init_globals(zend_imap_globals *imap_globals)
imap_globals->quota_return = NIL;
imap_globals->imap_acl_list = NIL;
#endif
+ imap_globals->gets_stream = NIL;
}
/* }}} */
@@ -460,6 +466,9 @@ PHP_MINIT_FUNCTION(imap)
/* lets allow NIL */
REGISTER_LONG_CONSTANT("NIL", NIL, CONST_PERSISTENT | CONST_CS);
+ /* plug in our gets */
+ mail_parameters(NIL, SET_GETS, (void *) php_mail_gets);
+
/* set default timeout values */
mail_parameters(NIL, SET_OPENTIMEOUT, (void *) FG(default_socket_timeout));
mail_parameters(NIL, SET_READTIMEOUT, (void *) FG(default_socket_timeout));
@@ -650,6 +659,7 @@ PHP_RINIT_FUNCTION(imap)
{
IMAPG(imap_errorstack) = NIL;
IMAPG(imap_alertstack) = NIL;
+ IMAPG(gets_stream) = NIL;
return SUCCESS;
}
/* }}} */
@@ -751,6 +761,13 @@ static void php_imap_do_open(INTERNAL_FUNCTION_PARAMETERS, int persistent)
efree(IMAPG(imap_password));
}
+ /* local filename, need to perform open_basedir and safe_mode checks */
+ if (Z_STRVAL_PP(mailbox)[0] != '{' &&
+ (php_check_open_basedir(Z_STRVAL_PP(mailbox) TSRMLS_CC) ||
+ (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(mailbox), NULL, CHECKUID_CHECK_FILE_AND_DIR)))) {
+ RETURN_FALSE;
+ }
+
IMAPG(imap_user) = estrndup(Z_STRVAL_PP(user), Z_STRLEN_PP(user));
IMAPG(imap_password) = estrndup(Z_STRVAL_PP(passwd), Z_STRLEN_PP(passwd));
@@ -807,6 +824,14 @@ PHP_FUNCTION(imap_reopen)
}
imap_le_struct->flags = cl_flags;
}
+
+ /* local filename, need to perform open_basedir and safe_mode checks */
+ if (Z_STRVAL_PP(mailbox)[0] != '{' &&
+ (php_check_open_basedir(Z_STRVAL_PP(mailbox) TSRMLS_CC) ||
+ (PG(safe_mode) && !php_checkuid(Z_STRVAL_PP(mailbox), NULL, CHECKUID_CHECK_FILE_AND_DIR)))) {
+ RETURN_FALSE;
+ }
+
imap_stream = mail_open(imap_le_struct->imap_stream, Z_STRVAL_PP(mailbox), flags);
if (imap_stream == NIL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't re-open stream");
@@ -1845,6 +1870,57 @@ PHP_FUNCTION(imap_fetchbody)
/* }}} */
+/* {{{ proto bool imap_savebody(resource stream_id, string|resource file, int msg_no[, string section = ""[, int options = 0]])
+ Save a specific body section to a file */
+PHP_FUNCTION(imap_savebody)
+{
+ zval *stream, *out;
+ pils *imap_ptr = NULL;
+ php_stream *writer = NULL;
+ char *section = "";
+ int section_len = 0, close_stream = 1;
+ long msgno, flags = 0;
+
+ if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "rzl|sl", &stream, &out, &msgno, &section, &section_len, &flags)) {
+ RETURN_FALSE;
+ }
+
+ ZEND_FETCH_RESOURCE(imap_ptr, pils *, &stream, -1, "imap", le_imap);
+
+ if (!imap_ptr) {
+ RETURN_FALSE;
+ }
+
+ switch (Z_TYPE_P(out))
+ {
+ case IS_LONG:
+ case IS_RESOURCE:
+ close_stream = 0;
+ php_stream_from_zval(writer, &out);
+ break;
+
+ default:
+ convert_to_string_ex(&out);
+ writer = php_stream_open_wrapper(Z_STRVAL_P(out), "wb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL);
+ break;
+ }
+
+ if (!writer) {
+ RETURN_FALSE;
+ }
+
+ IMAPG(gets_stream) = writer;
+ mail_fetchbody_full(imap_ptr->imap_stream, msgno, section, NULL, flags);
+ IMAPG(gets_stream) = NULL;
+
+ if (close_stream) {
+ php_stream_close(writer);
+ }
+
+ RETURN_TRUE;
+}
+/* }}} */
+
/* {{{ proto string imap_base64(string text)
Decode BASE64 encoded text */
PHP_FUNCTION(imap_base64)
@@ -4147,6 +4223,52 @@ PHP_FUNCTION(imap_timeout)
}
/* }}} */
+#define GETS_FETCH_SIZE 8196LU
+/* {{{ php_mail_gets */
+static char *php_mail_gets(readfn_t f, void *stream, unsigned long size, GETS_DATA *md)
+{
+ TSRMLS_FETCH();
+
+ /* write to the gets stream if it is set,
+ otherwise forward to c-clients gets */
+ if (IMAPG(gets_stream)) {
+ char buf[GETS_FETCH_SIZE];
+
+ while (size) {
+ unsigned long read;
+
+ if (size > GETS_FETCH_SIZE) {
+ read = GETS_FETCH_SIZE;
+ size -=GETS_FETCH_SIZE;
+ } else {
+ read = size;
+ size = 0;
+ }
+
+ if (!f(stream, read, buf)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to read from socket");
+ break;
+ } else if (read != php_stream_write(IMAPG(gets_stream), buf, read)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to write to stream");
+ break;
+ }
+ }
+ return NULL;
+ } else {
+ char *buf = malloc(size + 1);
+
+ if (f(stream, size, buf)) {
+ buf[size] = '\0';
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to read from socket");
+ free(buf);
+ buf = NULL;
+ }
+ return buf;
+ }
+}
+/* }}} */
+
/* {{{ Interfaces to C-client
*/
void mm_searched(MAILSTREAM *stream, unsigned long number)
diff --git a/ext/imap/php_imap.h b/ext/imap/php_imap.h
index f29ba4af4..1bfeaa715 100644
--- a/ext/imap/php_imap.h
+++ b/ext/imap/php_imap.h
@@ -27,7 +27,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.h,v 1.32.2.1 2006/01/01 12:50:08 sniper Exp $ */
+/* $Id: php_imap.h,v 1.32.2.2 2006/01/27 19:46:11 mike Exp $ */
#ifndef PHP_IMAP_H
#define PHP_IMAP_H
@@ -114,6 +114,7 @@ PHP_FUNCTION(imap_rfc822_parse_headers);
PHP_FUNCTION(imap_body);
PHP_FUNCTION(imap_fetchstructure);
PHP_FUNCTION(imap_fetchbody);
+PHP_FUNCTION(imap_savebody);
PHP_FUNCTION(imap_expunge);
PHP_FUNCTION(imap_delete);
PHP_FUNCTION(imap_undelete);
@@ -205,6 +206,8 @@ ZEND_BEGIN_MODULE_GLOBALS(imap)
zval **quota_return;
zval *imap_acl_list;
#endif
+ /* php_stream for php_mail_gets() */
+ php_stream *gets_stream;
ZEND_END_MODULE_GLOBALS(imap)
#ifdef ZTS
diff --git a/ext/informix/config.m4 b/ext/informix/config.m4
index c76eaff10..5597b72a6 100644
--- a/ext/informix/config.m4
+++ b/ext/informix/config.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.34 2005/07/29 19:41:00 sniper Exp $
+dnl $Id: config.m4,v 1.34.2.1 2006/05/04 19:00:10 tony2001 Exp $
dnl
PHP_ARG_WITH(informix,for Informix support,
@@ -60,7 +60,7 @@ if test "$PHP_INFORMIX" != "no"; then
AC_DEFINE_UNQUOTED(IFX_VERSION, $IFX_VERSION, [ ])
- if test $IFX_VERSION -ge "900"; then
+ if test $IFX_VERSION -ge 900; then
AC_DEFINE(HAVE_IFX_IUS,1,[ ])
IFX_ESQL_FLAGS="$IFX_ESQL_FLAGS -EDHAVE_IFX_IUS"
else
diff --git a/ext/informix/ifx.ec b/ext/informix/ifx.ec
index b949ca933..eaade11bc 100644
--- a/ext/informix/ifx.ec
+++ b/ext/informix/ifx.ec
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ifx.ec,v 1.109.2.3 2006/01/01 12:50:08 sniper Exp $ */
+/* $Id: ifx.ec,v 1.109.2.7 2006/05/04 22:48:16 tony2001 Exp $ */
/* -------------------------------------------------------------------
* if you want a function reference : "grep '^\*\*' ifx.ec" will give
@@ -96,14 +96,14 @@ static long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS
static long php_intifx_free_char(long id, HashTable *list TSRMLS_DC);
static long php_intifx_update_char(long bid, char* param, long len, HashTable *list TSRMLS_DC);
static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS_DC);
-#if HAVE_IFX_IUS
+$ifdef HAVE_IFX_IUS;
static long php_intifxus_create_slob(long create_mode, HashTable *list TSRMLS_DC);
static long php_intifxus_free_slob(long bid, HashTable *list TSRMLS_DC);
static long php_intifxus_close_slob(long bid, HashTable *list TSRMLS_DC);
static long php_intifxus_open_slob(long bid, long create_mode, HashTable *list TSRMLS_DC);
static long php_intifxus_new_slob(HashTable *list TSRMLS_DC);
static ifx_lo_t *php_intifxus_get_slobloc(long bid, HashTable *list TSRMLS_DC);
-#endif
+$endif;
/* 7.10 on (at least) AIX is missing this */
#ifndef CLIENT_SQLI_VER
@@ -534,12 +534,12 @@ EXEC SQL END DECLARE SECTION;
zend_rsrc_list_entry new_le;
if (IFXG(max_links) != -1 && IFXG(num_links) >= IFXG(max_links)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%d)", IFXG(num_links));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%ld)", IFXG(num_links));
efree(hashed_details);
RETURN_FALSE;
}
if (IFXG(max_persistent) != -1 && IFXG(num_persistent) >= IFXG(max_persistent)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open persistent links (%d)", IFXG(num_persistent));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open persistent links (%ld)", IFXG(num_persistent));
efree(hashed_details);
RETURN_FALSE;
}
@@ -643,7 +643,7 @@ EXEC SQL END DECLARE SECTION;
}
}
if (IFXG(max_links) != -1 && IFXG(num_links) >= IFXG(max_links)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%d)", IFXG(num_links));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Too many open links (%ld)", IFXG(num_links));
efree(hashed_details);
RETURN_FALSE;
}
@@ -972,7 +972,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :i_descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not an Informix blob-result index", (int)((*tmp)->value.lval));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not an Informix blob-result index", (int)((*tmp)->value.lval));
RETURN_FALSE;
}
if (locator->loc_loctype == LOCFNAME) {
@@ -1398,7 +1398,7 @@ EXEC SQL END DECLARE SECTION;
EXEC SQL DEALLOCATE DESCRIPTOR :i_descrpid;
EXEC SQL free :statemid;
efree(Ifx_Result);
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", (int)((*tmp)->value.lval));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", (*tmp)->value.lval);
RETURN_FALSE;
}
if (locator->loc_loctype == LOCFNAME) {
@@ -1564,7 +1564,7 @@ EXEC SQL END DECLARE SECTION;
PHP_IFX_CHECK_CONNECTION(ifx);
if (Ifx_Result->iscursory < 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Resultindex %d is not a prepared query", Z_LVAL_PP(result));
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Resultindex %ld is not a prepared query", Z_LVAL_PP(result));
RETURN_FALSE;
}
@@ -2624,6 +2624,7 @@ EXEC SQL END DECLARE SECTION;
IFXG(sv_sqlcode) = SQLCODE;
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Get descriptor (field # %d) fails (%s)", i, ifx_err);
efree(ifx_err);
+ zval_dtor(return_value);
RETURN_FALSE;
}
@@ -2789,6 +2790,7 @@ EXEC SQL END DECLARE SECTION;
IFXG(sv_sqlcode) = SQLCODE;
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Get descriptor (field # %d) fails (%s)", i, ifx_err);
efree(ifx_err);
+ zval_dtor(return_value);
RETURN_FALSE;
}
@@ -3049,7 +3051,7 @@ static long php_intifx_getType(long id, HashTable *list TSRMLS_DC)
Ifx_res = (IFX_IDRES *) zend_list_find(id, &type);
if (type != le_idresult) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix id-result index", id);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix id-result index", id);
return -1;
}
return Ifx_res->type;
@@ -3331,7 +3333,7 @@ static long php_intifx_copy_blob(long bid, HashTable *list TSRMLS_DC)
Ifx_blob_orig = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult || !(Ifx_blob_orig->type == TYPE_BLBYTE || Ifx_blob_orig->type == TYPE_BLTEXT)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", bid);
return -1;
}
@@ -3425,12 +3427,12 @@ static long php_intifx_free_blob(long bid, HashTable *list TSRMLS_DC)
Ifx_blob = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_blob->type == TYPE_BLTEXT || Ifx_blob->type == TYPE_BLBYTE)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", bid);
return -1;
}
if (!(Ifx_blob->type == TYPE_BLTEXT || Ifx_blob->type == TYPE_BLBYTE)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix BYTE or TEXT type", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix BYTE or TEXT type", bid);
return -1;
}
@@ -3488,7 +3490,7 @@ static long php_intifx_get_blob(long bid, HashTable *list, char** content TSRMLS
Ifx_blob = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_blob->type == TYPE_BLTEXT || Ifx_blob->type == TYPE_BLBYTE)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", bid);
return -1;
}
@@ -3517,7 +3519,7 @@ static loc_t *php_intifx_get_blobloc(long bid, HashTable *list TSRMLS_DC)
Ifx_blob = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_blob->type == TYPE_BLTEXT || Ifx_blob->type == TYPE_BLBYTE)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", bid);
return NULL;
}
return &(Ifx_blob->BLOB.blob_data);
@@ -3572,7 +3574,7 @@ static long php_intifx_update_blob(long bid, char* param, long len, HashTable *l
Ifx_blob = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_blob->type == TYPE_BLTEXT || Ifx_blob->type == TYPE_BLBYTE)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix blob-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix blob-result index", bid);
return -1;
}
@@ -3948,6 +3950,7 @@ static long php_intifx_create_char(char* param, long len, HashTable *list TSRMLS
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't create char-resource");
return -1;
}
+ memset(Ifx_char, 0, sizeof(IFX_IDRES));
Ifx_char->type = TYPE_CHAR;
@@ -4018,7 +4021,7 @@ static long php_intifx_get_char(long bid, HashTable *list, char** content TSRMLS
Ifx_char = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_char->type == TYPE_CHAR)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix char-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix char-result index", bid);
return -1;
}
@@ -4071,7 +4074,7 @@ static long php_intifx_free_char(long bid, HashTable *list TSRMLS_DC)
Ifx_char = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_char->type == TYPE_CHAR)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix char-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix char-result index", bid);
return -1;
}
@@ -4131,7 +4134,7 @@ static long php_intifx_update_char(long bid, char* param, long len, HashTable *l
Ifx_char = (IFX_IDRES *) zend_list_find(bid, &type);
if (type != le_idresult && !(Ifx_char->type == TYPE_CHAR)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%d is not a Informix char-result index", bid);
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%ld is not a Informix char-result index", bid);
return -1;
}
@@ -4232,6 +4235,7 @@ static long php_intifxus_create_slob(long create_mode, HashTable *list TSRMLS_DC
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't create slob-resource");
return -1;
}
+ memset(Ifx_slob, 0, sizeof(IFX_IDRES));
errcode = ifx_lo_def_create_spec(&(Ifx_slob->SLOB.createspec));
if (errcode < 0) {
@@ -4474,6 +4478,7 @@ static long php_intifxus_new_slob(HashTable *list TSRMLS_DC)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Can't create slob-resource");
return -1;
}
+ memset(Ifx_slob, 0, sizeof(IFX_IDRES));
Ifx_slob->type = TYPE_SLOB;
Ifx_slob->SLOB.lofd = -1;
diff --git a/ext/mbstring/config.m4 b/ext/mbstring/config.m4
index 98df11f48..b62d8710c 100644
--- a/ext/mbstring/config.m4
+++ b/ext/mbstring/config.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.58.2.3 2005/12/23 15:18:52 hirokawa Exp $
+dnl $Id: config.m4,v 1.58.2.4 2006/04/17 22:13:56 sniper Exp $
dnl
AC_DEFUN([PHP_MBSTRING_ADD_SOURCES], [
@@ -293,7 +293,7 @@ if test "$PHP_MBSTRING" != "no"; then
dnl libmbfl is required
PHP_MBSTRING_SETUP_LIBMBFL
PHP_MBSTRING_EXTENSION
- PHP_INSTALL_HEADERS([ext/mbstring], [libmbfl libmbfl/mbfl])
+ PHP_INSTALL_HEADERS([ext/mbstring], [libmbfl/ libmbfl/mbfl])
fi
# vim600: sts=2 sw=2 et
diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.c b/ext/mbstring/libmbfl/mbfl/mbfilter.c
index ec3409d8e..a8e3b68d3 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfilter.c
+++ b/ext/mbstring/libmbfl/mbfl/mbfilter.c
@@ -331,6 +331,24 @@ mbfl_buffer_converter_feed_result(mbfl_buffer_converter *convd, mbfl_string *str
return mbfl_memory_device_result(&convd->device, result);
}
+int mbfl_buffer_illegalchars(mbfl_buffer_converter *convd)
+{
+ int num_illegalchars = 0;
+
+ if (convd == NULL) {
+ return 0;
+ }
+
+ if (convd->filter1 != NULL) {
+ num_illegalchars += convd->filter1->num_illegalchar;
+ }
+
+ if (convd->filter2 != NULL) {
+ num_illegalchars += convd->filter2->num_illegalchar;
+ }
+
+ return (num_illegalchars);
+}
/*
* encoding detector
diff --git a/ext/mbstring/libmbfl/mbfl/mbfilter.h b/ext/mbstring/libmbfl/mbfl/mbfilter.h
index 702079ac4..f958e936a 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfilter.h
+++ b/ext/mbstring/libmbfl/mbfl/mbfilter.h
@@ -129,6 +129,7 @@ MBFLAPI extern int mbfl_buffer_converter_flush(mbfl_buffer_converter *convd);
MBFLAPI extern mbfl_string * mbfl_buffer_converter_getbuffer(mbfl_buffer_converter *convd, mbfl_string *result);
MBFLAPI extern mbfl_string * mbfl_buffer_converter_result(mbfl_buffer_converter *convd, mbfl_string *result);
MBFLAPI extern mbfl_string * mbfl_buffer_converter_feed_result(mbfl_buffer_converter *convd, mbfl_string *string, mbfl_string *result);
+MBFLAPI extern int mbfl_buffer_illegalchars(mbfl_buffer_converter *convd);
/*
* encoding detector
diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_convert.c b/ext/mbstring/libmbfl/mbfl/mbfl_convert.c
index 981bba6af..78a995cd2 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfl_convert.c
+++ b/ext/mbstring/libmbfl/mbfl/mbfl_convert.c
@@ -250,6 +250,7 @@ mbfl_convert_filter_new(
filter->data = data;
filter->illegal_mode = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
filter->illegal_substchar = 0x3f; /* '?' */
+ filter->num_illegalchar = 0;
/* setup the function table */
mbfl_convert_filter_reset_vtbl(filter);
@@ -317,6 +318,7 @@ mbfl_convert_filter_copy(
dist->to = src->to;
dist->illegal_mode = src->illegal_mode;
dist->illegal_substchar = src->illegal_substchar;
+ dist->num_illegalchar = src->num_illegalchar;
}
int mbfl_convert_filter_devcat(mbfl_convert_filter *filter, mbfl_memory_device *src)
@@ -432,7 +434,7 @@ mbfl_filt_conv_illegal_output(int c, mbfl_convert_filter *filter)
break;
}
filter->illegal_mode = mode_backup;
-
+ filter->num_illegalchar++;
return ret;
}
diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_convert.h b/ext/mbstring/libmbfl/mbfl/mbfl_convert.h
index afec8f062..bf8b3bd63 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfl_convert.h
+++ b/ext/mbstring/libmbfl/mbfl/mbfl_convert.h
@@ -51,6 +51,7 @@ struct _mbfl_convert_filter {
const mbfl_encoding *to;
int illegal_mode;
int illegal_substchar;
+ int num_illegalchar;
void *opaque;
};
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 8adce024f..dbf2bf413 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.c,v 1.224.2.12 2006/01/01 12:50:08 sniper Exp $ */
+/* $Id: mbstring.c,v 1.224.2.23 2006/05/11 14:47:34 masugata Exp $ */
/*
* PHP 4 Multibyte String module "mbstring"
@@ -164,7 +164,7 @@ static
ZEND_BEGIN_ARG_INFO(third_and_rest_force_ref, 1)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
- ZEND_END_ARG_INFO();
+ ZEND_END_ARG_INFO()
/* {{{ mb_overload_def mb_ovld[] */
static const struct mb_overload_def mb_ovld[] = {
@@ -220,6 +220,7 @@ zend_function_entry mbstring_functions[] = {
PHP_FE(mb_decode_numericentity, NULL)
PHP_FE(mb_send_mail, NULL)
PHP_FE(mb_get_info, NULL)
+ PHP_FE(mb_check_encoding, NULL)
#if HAVE_MBREGEX
PHP_MBREGEX_FUNCTION_ENTRIES
#endif
@@ -687,14 +688,26 @@ static PHP_INI_MH(OnUpdate_mbstring_script_encoding)
/* {{{ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) */
static PHP_INI_MH(OnUpdate_mbstring_substitute_character)
{
+ int c;
+ char *endptr = NULL;
+
if (new_value != NULL) {
if (strcasecmp("none", new_value) == 0) {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE;
} else if (strcasecmp("long", new_value) == 0) {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG;
} else {
MBSTRG(filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
- MBSTRG(filter_illegal_substchar) = zend_atoi(new_value, new_value_length);
+ MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
+ if (new_value_length >0) {
+ c = strtol(new_value, &endptr, 0);
+ if (*endptr == '\0') {
+ MBSTRG(filter_illegal_substchar) = c;
+ MBSTRG(current_filter_illegal_substchar) = c;
+ }
+ }
}
}
@@ -777,6 +790,7 @@ static void _php_mb_globals_ctor(zend_mbstring_globals *pglobals TSRMLS_DC)
MBSTRG(filter_illegal_substchar) = 0x3f; /* '?' */
MBSTRG(current_filter_illegal_mode) = MBFL_OUTPUTFILTER_ILLEGAL_MODE_CHAR;
MBSTRG(current_filter_illegal_substchar) = 0x3f; /* '?' */
+ MBSTRG(illegalchars) = 0;
MBSTRG(func_overload) = 0;
MBSTRG(encoding_translation) = 0;
MBSTRG(strict_detection) = 0;
@@ -919,6 +933,7 @@ PHP_RINIT_FUNCTION(mbstring)
MBSTRG(current_http_output_encoding) = MBSTRG(http_output_encoding);
MBSTRG(current_filter_illegal_mode) = MBSTRG(filter_illegal_mode);
MBSTRG(current_filter_illegal_substchar) = MBSTRG(filter_illegal_substchar);
+ MBSTRG(illegalchars) = 0;
n = 0;
if (MBSTRG(detect_order_list)) {
@@ -987,6 +1002,7 @@ PHP_RSHUTDOWN_FUNCTION(mbstring)
MBSTRG(current_detect_order_list_size) = 0;
}
if (MBSTRG(outconv) != NULL) {
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv));
mbfl_buffer_converter_delete(MBSTRG(outconv));
MBSTRG(outconv) = NULL;
}
@@ -1443,6 +1459,7 @@ PHP_FUNCTION(mb_output_handler)
if ((arg_status & PHP_OUTPUT_HANDLER_START) != 0) {
/* delete the converter just in case. */
if (MBSTRG(outconv)) {
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv));
mbfl_buffer_converter_delete(MBSTRG(outconv));
MBSTRG(outconv) = NULL;
}
@@ -1507,6 +1524,7 @@ PHP_FUNCTION(mb_output_handler)
/* delete the converter if it is the last feed. */
if (last_feed) {
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(MBSTRG(outconv));
mbfl_buffer_converter_delete(MBSTRG(outconv));
MBSTRG(outconv) = NULL;
}
@@ -2071,6 +2089,7 @@ MBSTRING_API char * php_mb_convert_encoding(char *input, size_t length, char *_t
output = (char *)ret->val;
}
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd);
mbfl_buffer_converter_delete(convd);
return output;
}
@@ -2717,6 +2736,7 @@ detect_end:
}
efree(stack);
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd);
mbfl_buffer_converter_delete(convd);
}
@@ -3048,7 +3068,7 @@ PHP_FUNCTION(mb_send_mail)
char *extra_cmd=NULL;
int extra_cmd_len;
int i;
- char *to_r;
+ char *to_r = NULL;
char *force_extra_parameters = INI_STR("mail.force_extra_parameters");
struct {
int cnt_type:1;
@@ -3068,7 +3088,12 @@ PHP_FUNCTION(mb_send_mail)
HashTable ht_headers;
smart_str *s;
extern void mbfl_memory_device_unput(mbfl_memory_device *device);
-
+
+ if (PG(safe_mode) && (ZEND_NUM_ARGS() == 5)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE.");
+ RETURN_FALSE;
+ }
+
/* initialize */
mbfl_memory_device_init(&device, 0, 0);
mbfl_string_init(&orig_str);
@@ -3321,13 +3346,20 @@ PHP_FUNCTION(mb_send_mail)
/* }}} */
-/* {{{ proto string mb_get_info([string type])
+/* {{{ proto mixed mb_get_info([string type])
Returns the current settings of mbstring */
PHP_FUNCTION(mb_get_info)
{
char *typ = NULL;
- int typ_len;
+ int typ_len, n;
char *name;
+ const struct mb_overload_def *over_func;
+ zval *row1, *row2;
+ const mbfl_language *lang = mbfl_no2language(MBSTRG(current_language));
+ enum mbfl_no_encoding *entry;
+#ifdef ZEND_MULTIBYTE
+ zval *row3;
+#endif /* ZEND_MULTIBYTE */
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|s", &typ, &typ_len) == FAILURE) {
RETURN_FALSE;
@@ -3344,9 +3376,82 @@ PHP_FUNCTION(mb_get_info)
if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_http_output_encoding))) != NULL) {
add_assoc_string(return_value, "http_output", name, 1);
}
- if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) {
- add_assoc_string(return_value, "func_overload", name, 1);
+ if (MBSTRG(func_overload)){
+ over_func = &(mb_ovld[0]);
+ MAKE_STD_ZVAL(row1);
+ array_init(row1);
+ while (over_func->type > 0) {
+ if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) {
+ add_assoc_string(row1, over_func->orig_func, over_func->ovld_func, 1);
+ }
+ over_func++;
+ }
+ add_assoc_zval(return_value, "func_overload", row1);
+ } else {
+ add_assoc_string(return_value, "func_overload", "no overload", 1);
+ }
+ if (lang != NULL) {
+ if ((name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) {
+ add_assoc_string(return_value, "mail_charset", name, 1);
+ }
+ if ((name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) {
+ add_assoc_string(return_value, "mail_header_encoding", name, 1);
+ }
+ if ((name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) {
+ add_assoc_string(return_value, "mail_body_encoding", name, 1);
+ }
+ }
+ add_assoc_long(return_value, "illegal_chars", MBSTRG(illegalchars));
+ if (MBSTRG(encoding_translation)) {
+ add_assoc_string(return_value, "encoding_translation", "On", 1);
+ } else {
+ add_assoc_string(return_value, "encoding_translation", "Off", 1);
+ }
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ add_assoc_string(return_value, "language", name, 1);
+ }
+ n = MBSTRG(current_detect_order_list_size);
+ entry = MBSTRG(current_detect_order_list);
+ if(n > 0) {
+ MAKE_STD_ZVAL(row2);
+ array_init(row2);
+ while (n > 0) {
+ if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
+ add_next_index_string(row2, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ add_assoc_zval(return_value, "detect_order", row2);
+ }
+ if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
+ add_assoc_string(return_value, "substitute_character", "none", 1);
+ } else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
+ add_assoc_string(return_value, "substitute_character", "long", 1);
+ } else {
+ add_assoc_long(return_value, "substitute_character", MBSTRG(current_filter_illegal_substchar));
+ }
+ if (MBSTRG(strict_detection)) {
+ add_assoc_string(return_value, "strict_detection", "On", 1);
+ } else {
+ add_assoc_string(return_value, "strict_detection", "Off", 1);
+ }
+#ifdef ZEND_MULTIBYTE
+ entry = MBSTRG(script_encoding_list);
+ n = MBSTRG(script_encoding_list_size);
+ if(n > 0) {
+ MAKE_STD_ZVAL(row3);
+ array_init(row3);
+ while (n > 0) {
+ if ((name = (char *)mbfl_no_encoding2name(*entry)) != NULL) {
+ add_next_index_string(row3, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ add_assoc_zval(return_value, "script_encoding", row3);
}
+#endif /* ZEND_MULTIBYTE */
} else if (!strcasecmp("internal_encoding", typ)) {
if ((name = (char *)mbfl_no_encoding2name(MBSTRG(current_internal_encoding))) != NULL) {
RETVAL_STRING(name, 1);
@@ -3360,9 +3465,147 @@ PHP_FUNCTION(mb_get_info)
RETVAL_STRING(name, 1);
}
} else if (!strcasecmp("func_overload", typ)) {
- if ((name = (char *)mbfl_no_encoding2name(MBSTRG(func_overload))) != NULL) {
+ if (MBSTRG(func_overload)){
+ over_func = &(mb_ovld[0]);
+ array_init(return_value);
+ while (over_func->type > 0) {
+ if ((MBSTRG(func_overload) & over_func->type) == over_func->type ) {
+ add_assoc_string(return_value, over_func->orig_func, over_func->ovld_func, 1);
+ }
+ over_func++;
+ }
+ } else {
+ RETVAL_STRING("no overload", 1);
+ }
+ } else if (!strcasecmp("mail_charset", typ)) {
+ if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_charset)) != NULL) {
RETVAL_STRING(name, 1);
}
+ } else if (!strcasecmp("mail_header_encoding", typ)) {
+ if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_header_encoding)) != NULL) {
+ RETVAL_STRING(name, 1);
+ }
+ } else if (!strcasecmp("mail_body_encoding", typ)) {
+ if (lang != NULL && (name = (char *)mbfl_no_encoding2name(lang->mail_body_encoding)) != NULL) {
+ RETVAL_STRING(name, 1);
+ }
+ } else if (!strcasecmp("illegal_chars", typ)) {
+ RETVAL_LONG(MBSTRG(illegalchars));
+ } else if (!strcasecmp("encoding_translation", typ)) {
+ if (MBSTRG(encoding_translation)) {
+ RETVAL_STRING("On", 1);
+ } else {
+ RETVAL_STRING("Off", 1);
+ }
+ } else if (!strcasecmp("language", typ)) {
+ if ((name = (char *)mbfl_no_language2name(MBSTRG(current_language))) != NULL) {
+ RETVAL_STRING(name, 1);
+ }
+ } else if (!strcasecmp("detect_order", typ)) {
+ n = MBSTRG(current_detect_order_list_size);
+ entry = MBSTRG(current_detect_order_list);
+ if(n > 0) {
+ array_init(return_value);
+ while (n > 0) {
+ name = (char *)mbfl_no_encoding2name(*entry);
+ if (name) {
+ add_next_index_string(return_value, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ }
+ } else if (!strcasecmp("substitute_character", typ)) {
+ if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_NONE) {
+ RETVAL_STRING("none", 1);
+ } else if (MBSTRG(current_filter_illegal_mode) == MBFL_OUTPUTFILTER_ILLEGAL_MODE_LONG) {
+ RETVAL_STRING("long", 1);
+ } else {
+ RETVAL_LONG(MBSTRG(current_filter_illegal_substchar));
+ }
+ } else if (!strcasecmp("strict_detection", typ)) {
+ if (MBSTRG(strict_detection)) {
+ RETVAL_STRING("On", 1);
+ } else {
+ RETVAL_STRING("Off", 1);
+ }
+ } else {
+#ifdef ZEND_MULTIBYTE
+ if (!strcasecmp("script_encoding", typ)) {
+ entry = MBSTRG(script_encoding_list);
+ n = MBSTRG(script_encoding_list_size);
+ if(n > 0) {
+ array_init(return_value);
+ while (n > 0) {
+ name = (char *)mbfl_no_encoding2name(*entry);
+ if (name) {
+ add_next_index_string(return_value, name, 1);
+ }
+ entry++;
+ n--;
+ }
+ }
+ return;
+ }
+#endif /* ZEND_MULTIBYTE */
+ RETURN_FALSE;
+ }
+}
+/* }}} */
+
+/* {{{ proto bool mb_check_encoding([string var[, string encoding]])
+ Check if the string is valid for the specified encoding */
+PHP_FUNCTION(mb_check_encoding)
+{
+ char *var = NULL;
+ int var_len;
+ char *enc = NULL;
+ int enc_len;
+ mbfl_buffer_converter *convd;
+ enum mbfl_no_encoding no_encoding = MBSTRG(current_internal_encoding);
+ mbfl_string string, result, *ret = NULL;
+ long illegalchars = 0;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|ss", &var, &var_len, &enc, &enc_len) == FAILURE) {
+ RETURN_FALSE;
+ }
+
+ if (var == NULL) {
+ RETURN_BOOL(MBSTRG(illegalchars) == 0);
+ }
+
+ if (enc != NULL) {
+ no_encoding = mbfl_name2no_encoding(enc);
+ if (no_encoding == mbfl_no_encoding_invalid || no_encoding == mbfl_no_encoding_pass) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid encoding \"%s\"", enc);
+ RETURN_FALSE;
+ }
+ }
+
+ convd = mbfl_buffer_converter_new(no_encoding, no_encoding, 0);
+ if (convd == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to create converter");
+ RETURN_FALSE;
+ }
+ mbfl_buffer_converter_illegal_mode(convd, MBSTRG(current_filter_illegal_mode));
+ mbfl_buffer_converter_illegal_substchar(convd, MBSTRG(current_filter_illegal_substchar));
+
+ /* initialize string */
+ mbfl_string_init(&string);
+ mbfl_string_init(&result);
+ string.no_encoding = no_encoding;
+ string.no_language = MBSTRG(current_language);
+
+ string.val = (unsigned char *)var;
+ string.len = var_len;
+ ret = mbfl_buffer_converter_feed_result(convd, &string, &result);
+ illegalchars = mbfl_buffer_illegalchars(convd);
+ mbfl_buffer_converter_delete(convd);
+
+ if (ret != NULL) {
+ MBSTRG(illegalchars) += illegalchars;
+ efree(ret->val);
+ RETURN_BOOL(illegalchars == 0);
} else {
RETURN_FALSE;
}
@@ -3529,6 +3772,7 @@ MBSTRING_API int php_mb_gpc_encoding_converter(char **str, int *len, int num, co
str[i] = ret->val;
len[i] = ret->len;
}
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd);
mbfl_buffer_converter_delete(convd);
}
@@ -3745,6 +3989,7 @@ int php_mb_encoding_converter(char **to, int *to_length, const char *from,
*to = ret->val;
*to_length = ret->len;
}
+ MBSTRG(illegalchars) += mbfl_buffer_illegalchars(convd);
mbfl_buffer_converter_delete(convd);
return ret ? 0 : -1;
diff --git a/ext/mbstring/mbstring.h b/ext/mbstring/mbstring.h
index 2abcfe47f..131f4105c 100644
--- a/ext/mbstring/mbstring.h
+++ b/ext/mbstring/mbstring.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mbstring.h,v 1.66.2.2 2006/01/01 12:50:08 sniper Exp $ */
+/* $Id: mbstring.h,v 1.66.2.4 2006/03/21 07:56:28 hirokawa Exp $ */
/*
* PHP 4 Multibyte String module "mbstring" (currently only for Japanese)
@@ -120,6 +120,7 @@ PHP_FUNCTION(mb_encode_numericentity);
PHP_FUNCTION(mb_decode_numericentity);
PHP_FUNCTION(mb_send_mail);
PHP_FUNCTION(mb_get_info);
+PHP_FUNCTION(mb_check_encoding);
MBSTRING_API int php_mb_encoding_translation(TSRMLS_D);
@@ -181,6 +182,7 @@ ZEND_BEGIN_MODULE_GLOBALS(mbstring)
long func_overload;
zend_bool encoding_translation;
long strict_detection;
+ long illegalchars;
mbfl_buffer_converter *outconv;
#if HAVE_MBREGEX && defined(PHP_MBREGEX_GLOBALS)
PHP_MBREGEX_GLOBALS
diff --git a/ext/mhash/mhash.c b/ext/mhash/mhash.c
index 0d51c3899..042a4433b 100644
--- a/ext/mhash/mhash.c
+++ b/ext/mhash/mhash.c
@@ -16,7 +16,7 @@
| Nikos Mavroyanopoulos <nmav@hellug.gr> (HMAC, KEYGEN) |
+----------------------------------------------------------------------+
*/
-/* $Id: mhash.c,v 1.48.2.2 2006/01/01 12:50:09 sniper Exp $ */
+/* $Id: mhash.c,v 1.48.2.3 2006/04/03 09:14:33 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -205,7 +205,7 @@ PHP_FUNCTION(mhash_keygen_s2k)
WRONG_PARAM_COUNT;
}
if (bytes <= 0){
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "the byte parameter must be greater then 0");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "the byte parameter must be greater than 0");
RETURN_FALSE;
}
diff --git a/ext/ming/ming.c b/ext/ming/ming.c
index 6d9d053a8..12ef5d066 100644
--- a/ext/ming/ming.c
+++ b/ext/ming/ming.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: ming.c,v 1.79.2.3 2006/01/01 12:50:09 sniper Exp $ */
+/* $Id: ming.c,v 1.79.2.4 2006/03/06 10:06:15 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -296,8 +296,8 @@ static SWFInput getInput(zval **zfile TSRMLS_DC)
/* {{{ SWFAction
*/
-/* {{{ proto object swfaction::__construct(string)
- Returns a new SWFAction object, compiling the given script */
+/* {{{ proto void swfaction::__construct(string)
+ Creates a new SWFAction object, compiling the given script */
PHP_METHOD(swfaction, __construct)
{
SWFAction action;
@@ -345,8 +345,8 @@ static zend_function_entry swfaction_functions[] = {
/* {{{ SWFBitmap
*/
-/* {{{ proto class swfbitmap::__construct(mixed file [, mixed maskfile])
- Returns a new SWFBitmap object from jpg (with optional mask) or dbl file */
+/* {{{ proto void swfbitmap::__construct(mixed file [, mixed maskfile])
+ Creates a new SWFBitmap object from jpg (with optional mask) or dbl file */
PHP_METHOD(swfbitmap, __construct)
{
zval **zfile, **zmask = NULL;
@@ -440,8 +440,8 @@ static zend_function_entry swfbitmap_functions[] = {
/* {{{ SWFButton
*/
-/* {{{ proto object swfbutton::__construct()
- Returns a new SWFButton object */
+/* {{{ proto void swfbutton::__construct()
+ Creates a new SWFButton object */
PHP_METHOD(swfbutton, __construct)
{
SWFButton button = newSWFButton();
@@ -1204,8 +1204,8 @@ static zend_function_entry swfdisplayitem_functions[] = {
/* {{{ SWFFill
*/
-/* {{{ proto class swffill::__construct()
- Returns a new SWFFill object */
+/* {{{ proto void swffill::__construct()
+ Creates a new SWFFill object */
PHP_METHOD(swffill, __construct)
{
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Instantiating SWFFill won't do any good- use SWFShape::addFill() instead");
@@ -1404,8 +1404,8 @@ static SWFFont getFont(zval *id TSRMLS_DC)
}
/* }}} */
-/* {{{ proto object swffont::__construct(string filename)
- Returns a new SWFFont object from given file */
+/* {{{ proto void swffont::__construct(string filename)
+ Creates a new SWFFont object from given file */
PHP_METHOD(swffont, __construct)
{
zval **zfile;
@@ -1594,8 +1594,8 @@ static zend_function_entry swffont_functions[] = {
/* {{{ SWFGradient
*/
-/* {{{ proto class swfgradient::__construct()
- Returns a new SWFGradient object */
+/* {{{ proto void swfgradient::__construct()
+ Creates a new SWFGradient object */
PHP_METHOD(swfgradient, __construct)
{
SWFGradient gradient = newSWFGradient();
@@ -1669,8 +1669,8 @@ static zend_function_entry swfgradient_functions[] = {
/* {{{ SWFMorph
*/
-/* {{{ proto object swfmorph::__construct()
- Returns a new SWFMorph object */
+/* {{{ proto void swfmorph::__construct()
+ Creates a new SWFMorph object */
PHP_METHOD(swfmorph, __construct)
{
SWFMorph morph = newSWFMorphShape();
@@ -1752,8 +1752,8 @@ SWFSound getSound(zval *id TSRMLS_DC)
}
/* }}} */
-/* {{{ proto class swfsound::__construct(string filename, int flags)
- Returns a new SWFSound object from given file */
+/* {{{ proto void swfsound::__construct(string filename, int flags)
+ Creates a new SWFSound object from given file */
PHP_METHOD(swfsound, __construct)
{
zval **zfile, **zflags;
@@ -2088,7 +2088,7 @@ static zend_function_entry swfprebuiltclip_functions[] = {
/* {{{ SWFMovie
*/
-/* {{{ proto object swfmovie::__construct(int version)
+/* {{{ proto void swfmovie::__construct(int version)
Creates swfmovie object according to the passed version */
PHP_METHOD(swfmovie, __construct)
{
@@ -2695,8 +2695,8 @@ static zend_function_entry swfmovie_functions[] = {
/* {{{ SWFShape
*/
-/* {{{ proto object swfshape::__construct()
- Returns a new SWFShape object */
+/* {{{ proto void swfshape::__construct()
+ Creates a new SWFShape object */
PHP_METHOD(swfshape, __construct)
{
SWFShape shape = newSWFShape();
@@ -3216,8 +3216,8 @@ static zend_function_entry swfshape_functions[] = {
/* {{{ SWFSprite
*/
-/* {{{ proto class swfsprite::__construct()
- Returns a new SWFSprite object */
+/* {{{ proto void swfsprite::__construct()
+ Creates a new SWFSprite object */
PHP_METHOD(swfsprite, __construct)
{
SWFMovieClip sprite = newSWFMovieClip();
@@ -3401,8 +3401,8 @@ static zend_function_entry swfsprite_functions[] = {
/* {{{ SWFText
*/
-/* {{{ proto class swftext::__construct()
- Returns new SWFText object */
+/* {{{ proto void swftext::__construct()
+ Creates new SWFText object */
PHP_METHOD(swftext, __construct)
{
SWFText text = newSWFText2();
@@ -3687,8 +3687,8 @@ static zend_function_entry swftext_functions[] = {
/* {{{ SWFTextField
*/
-/* {{{ proto object swftextfield::__construct([int flags])
- Returns a new SWFTextField object */
+/* {{{ proto void swftextfield::__construct([int flags])
+ Creates a new SWFTextField object */
PHP_METHOD(swftextfield, __construct)
{
zval **flags;
diff --git a/ext/msession/CREDITS b/ext/msession/CREDITS
deleted file mode 100644
index 4703783a7..000000000
--- a/ext/msession/CREDITS
+++ /dev/null
@@ -1,3 +0,0 @@
-msession
-Mark L. Woodward
-mailto:mlwmohawk@mohawksoft.com
diff --git a/ext/msession/README b/ext/msession/README
deleted file mode 100644
index a4ed70fae..000000000
--- a/ext/msession/README
+++ /dev/null
@@ -1,33 +0,0 @@
-This is msession, it is an interface to a stand-alone session
-management system. The msession daemon can be found at
-Mohawk Software's web site.
-
-http://www.mohawksoft.com
-
-Requirements:
-Mohawk Software's Phoenix library.
-Mohawk Software's msession daemon.
-
-Building:
-In the config.m4 file you will need to specify the include
-and library directories for Phoenix. The setting in config.m4
-is probably wrong.
-
-You will need phoenix installed and built to compile this
-module.
-
-To use msession-test.php, msession must be the default session
-handler in PHP. The easiest way to do that is in the php.ini
-file as:
-
-[Session]
-session.save_handler = msession
-session.save_path = localhost
-
-The session.save.path is the host name of the server running
-msessiond.
-
-12/22/2001
-Changed msession_getdata(...) to msession_get_data(...)
-Changed msession_setdata(...) to msession_set_data(...)
-(docs to follow)
diff --git a/ext/msession/config.m4 b/ext/msession/config.m4
deleted file mode 100644
index 05ca09c7b..000000000
--- a/ext/msession/config.m4
+++ /dev/null
@@ -1,36 +0,0 @@
-dnl
-dnl $Id: config.m4,v 1.9 2003/02/12 18:34:20 mlwmohawk Exp $
-dnl
-
-PHP_ARG_WITH(msession, for msession support,
-[ --with-msession[=DIR] Include msession support])
-
-if test "$PHP_MSESSION" != "no"; then
- if test -r $PHP_MSESSION/lib/libphoenix.a; then
- PHOENIX_DIR=$PHP_MSESSION
- else
- AC_MSG_CHECKING(for msession in default path)
- for i in /usr/local/phoenix /usr/local /usr; do
- if test -r $i/lib/libphoenix.a; then
- PHOENIX_DIR=$i
- AC_MSG_RESULT(found in $i)
- fi
- done
- fi
-
- if test -z "$PHOENIX_DIR"; then
- AC_MSG_RESULT(not found)
- AC_MSG_ERROR(Please reinstall the Phoenix / msession distribution)
- fi
-
-
- AC_DEFINE(HAVE_MSESSION, 1, [ ])
- PHP_ADD_LIBRARY_WITH_PATH(phoenix, "$PHOENIX_DIR/lib", PHOENIX_LIB)
- PHOENIX_INCLUDE="-I$PHOENIX_DIR"
- PHP_SUBST(PHOENIX_LIB)
-
- PHP_REQUIRE_CXX
- PHP_NEW_EXTENSION(msession, msession.c, $ext_shared)
- PHP_ADD_LIBRARY(stdc++)
-fi
-
diff --git a/ext/msession/msession-test.php b/ext/msession/msession-test.php
deleted file mode 100644
index e591fcca7..000000000
--- a/ext/msession/msession-test.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?
-# msession-test.php
-# This is a test page for msession functions.
-# most msession functions are used in this page with
-# the exception of msession_get_data, and msession_set_data
-# which are used implicitly with the PHP session
-# extension.
-#
-#
-#
-
-# Start the session system, this will connect to msession
-# as configured in PHP.INI.
-#
-# Start sessions, this will set a cookie.
-session_start();
-
-# Now, optional, use msession_uniq() to create a guarenteed
-# uniq session name.
-#
-if(!$HTTP_COOKIE_VARS["PHPSESSID"])
-{
- # Use uniq to create the session. This is guarenteed to be
- # uniq in the server.
- $sid = msession_uniq(32);
- setcookie ("PHPSESSID", $sid);
- session_id($sid);
- $HTTP_COOKIE_VARS["PHPSESSID"] = $sid;
- # New session, set some variables
- if(0) // One at a time
- {
- echo "Set Variable: " . msession_set($sid, 'time',time()) ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name1','test1') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name2','test2') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name3','test3') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name4','test4') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name5','test5') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name6','test6') ."<p>\n";
- echo "Set Variable: " . msession_set($sid, 'name7','test7') ."<p>\n";
- }
- else // All at once in an array
- {
- $setarray = array();
- $setarray['time']=time();
- $setarray['name1'] = 'test1';
- $setarray['name2'] = 'test2';
- $setarray['name3'] = 'test3';
- $setarray['name4'] = 'test4';
- $setarray['name5'] = 'test5';
- $setarray['name6'] = 'test6';
- $setarray['name7'] = 'test7';
- msession_set_array($sid, $setarray);
- }
-}
-else
-{
- $sid = $HTTP_COOKIE_VARS["PHPSESSID"];
-}
-
-#This makes a link between the variable $count and the
-# session variable "count"
-session_register("count");
-
-$count ++;
-
-# Output some information.
-echo "sid: " . $sid . "<br>\n";
-echo "Session Count: " . $count . "<br>\n";
-
-# Use msession_randstr() to produce a random string.
-# A valid string of n characters of jibberish is returned.
-echo "Random String: " . msession_randstr(32) . "<br>\n";
-
-# This is a thread safe increment, unlike PHP's session, many web servers
-# can be updating this variable and collisions are managed.
-# (for this to work, older versions of msessiond must be started with "-g globals"
-# newer versions create it by default)
-echo "Global Count: " . msession_inc(globals, "counter") . "<br>\n";
-
-# This gets a count of active sessions.
-echo "Total active sessions: " . msession_count() . "<br>\n";
-
-# This gets all the variables for a user in an associative array.
-$varray = msession_get_array($sid);
-
-if(!$varray)
- echo "Get variable array: Failed<br>\n";
-
-# Display all the user's variables
-$arraykeys = array_keys($varray);
-for($i=0; $arraykeys[$i]; $i++)
- echo "Key: " . $arraykeys[ $i ] ." = " .$varray[$arraykeys[$i]] ."<br>\n";
-
-
-# Find a list of all sessions with same name/value pair
-$array = msession_find('name1', 'test1');
-
-#display the sessions
-for($i=0; $array[$i]; $i++)
- echo "Similar Sessions: " . $i . " " . $array[$i] . "<br>\n";
-
-# Find all the sessions which have the variable "time" set.
-$vararray = msession_listvar('time');
-
-$arraykeys = array_keys($vararray);
-
-for($i=0; $arraykeys[$i]; $i++)
- echo "Key: " . $arraykeys[ $i ] ." = " .$vararray[$arraykeys[$i]] ."<br>\n";
-
-# msession can support a personality plugin, this is an escape call directly
-# into the plugin's REQ_ESCAPE function.
-echo "Call the plugin: " . msession_plugin($sid, 3, "test"). "<br>\n";
-
-# msession also supprts function-only plugins. this is a call into the demo
-# plugin (funct.so) which returns the uptime of the msessiond process.
-echo "Call the function: " . msession_call('fntest', "1","2", "3", "4") ."<br>\n";
-
-#List ALL sessions on the system
-$sarray = msession_list();
-
-for($i=0; $sarray[$i]; $i++)
- echo "Sessions: " . $i . " " . $sarray[$i] . "<br>\n";
-
-?>
-
diff --git a/ext/msession/msession.c b/ext/msession/msession.c
deleted file mode 100644
index 9f218300e..000000000
--- a/ext/msession/msession.c
+++ /dev/null
@@ -1,1375 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | msession 1.0 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2006 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Mark Woodward <markw@mohawksoft.com> |
- | Portions copyright the PHP group. |
- +----------------------------------------------------------------------+
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include "php.h"
-#include "php_ini.h"
-#include "php_msession.h"
-#include "reqclient.h"
-#include "ext/standard/info.h"
-#include "ext/session/php_session.h"
-
-
-/* Macros and such */
-#ifndef TRUE
-#define TRUE 1
-#endif
-#ifndef FALSE
-#define FALSE 0
-#endif
-#ifndef SID_LEN
-#define SID_LEN 32
-#endif
-
-
-/* Uncomment to get debugging messages */
-/* #define ERR_DEBUG */
-
-#ifdef ERR_DEBUG
-#define ELOG( str ) php_log_err( str )
-#else
-#define ELOG( str )
-#endif
-
-/* Test if system is OK fror use. */
-/* Macros may be ugly, but I can globaly add debuging when needed. */
-#define IFCONNECT_BEGIN if(s_reqb && s_conn) {
-#define IFCONNECT_ENDVAL(V) } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Msession not initialized"); return V; }
-#define IFCONNECT_END } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Msession not initialized"); RETURN_FALSE; }
-
-#ifndef HAVE_PHP_SESSION
-#error HAVE_PHP_SESSION not defined
-#endif
-
-/* Test if session module contains custom sesson ID patch */
-#ifdef PHP_SESSION_API
-#if (PHP_SESSION_API >= 20020330)
-#define HAVE_PHP_SESSION_CREATESID
-#endif
-#endif
-
-/* This sets the PHP API version used in the file. */
-/* If this module does not compile on the version of PHP you are using, look for */
-/* this value in Zend/zend_modules.h, and set appropriately */
-#if (ZEND_MODULE_API_NO <= 20001222)
-#define PHP_4_0
-#define TSRMLS_CC
-#define TSRMLS_DC
-#define TSRMLS_FETCH()
-/* Comment out this line if you wish to have msession without php sessions */
-#define HAVE_PHP_SESSION
-#warning Backward compatible msession extension requires PHP sessions. If PHP compiles and links, you can ignore this warning.
-#elif (ZEND_MODULE_API_NO >= 20010901)
-#define PHP_4_1
-#else
-#warning ZEND_MODULE_API_NO not defined
-#define PHP_4_1
-#endif
-
-/*
- * Please do not remove backward compatibility from this module.
- * this same source must also work with the 4.0.6 version of PHP.
- *
- * Module Variable naming hints:
- * All global scope variables begin with "g_" for global.
- * All static file scoped variables begin with "s_" for static.
- * Zero terminated strings generally start with "sz" for "string followed by zero."
- * integers that hold string or data lengths generally start with "cb" for "count of bytes."
- * Also, please to not reformat braces ;-)
- * -MLW
- */
-#if HAVE_MSESSION
-#ifdef HAVE_PHP_SESSION
-#ifdef HAVE_PHP_SESSION_CREATESID
-/* If the PHP Session module is compiled or available, include support */
-PS_FUNCS_SID(msession);
-ps_module ps_mod_msession = {
- PS_MOD_SID(msession)
-};
-#else
-PS_FUNCS(msession);
-ps_module ps_mod_msession = {
- PS_MOD(msession)
-};
-#endif
-#endif
-
-/* Per-process variables need by msession */
-static char s_szdefhost[]="localhost";
-static char * s_szhost=s_szdefhost;
-static int s_port=8086;
-static void * s_conn=NULL;
-static REQB * s_reqb=NULL;
-
-zend_function_entry msession_functions[] = {
- PHP_FE(msession_connect,NULL)
- PHP_FE(msession_disconnect,NULL)
- PHP_FE(msession_lock,NULL)
- PHP_FE(msession_unlock,NULL)
- PHP_FE(msession_count,NULL)
- PHP_FE(msession_create,NULL)
- PHP_FE(msession_destroy,NULL)
- PHP_FE(msession_set,NULL)
- PHP_FE(msession_get,NULL)
- PHP_FE(msession_find,NULL)
- PHP_FE(msession_get_array,NULL)
- PHP_FE(msession_set_array,NULL)
- PHP_FE(msession_timeout,NULL)
- PHP_FE(msession_inc,NULL)
- PHP_FE(msession_set_data,NULL)
- PHP_FE(msession_get_data,NULL)
- PHP_FE(msession_listvar,NULL)
- PHP_FE(msession_list,NULL)
- PHP_FE(msession_uniq,NULL)
- PHP_FE(msession_randstr,NULL)
- PHP_FE(msession_plugin,NULL)
- PHP_FE(msession_call,NULL)
- PHP_FE(msession_ctl,NULL)
- PHP_FE(msession_exec,NULL)
- PHP_FE(msession_ping,NULL)
- {NULL, NULL, NULL}
-};
-
-zend_module_entry msession_module_entry = {
-#ifdef PHP_4_1
- STANDARD_MODULE_HEADER,
-#endif
- "msession",
- msession_functions,
- PHP_MINIT(msession),
- NULL,
- NULL,
- NULL,
- PHP_MINFO(msession),
-#ifdef PHP_4_1
- NO_VERSION_YET,
-#endif
- STANDARD_MODULE_PROPERTIES
-};
-
-#ifdef COMPILE_DL_MSESSION
-ZEND_GET_MODULE(msession)
-#endif
-
-PHP_MINIT_FUNCTION(msession)
-{
- s_conn = NULL;
- s_szhost = s_szdefhost;
-
-#ifdef HAVE_PHP_SESSION
- php_session_register_module(&ps_mod_msession);
-#endif
- return SUCCESS;
-}
-
-PHP_MINFO_FUNCTION(msession)
-{
- php_info_print_table_start();
- php_info_print_table_header(2, "msession support", "enabled");
- php_info_print_table_end();
-}
-#define RPT_CONN_ERR
-#ifdef ERR_DEBUG
-#undef RPT_CONN_ERR
-#define RPT_CONN_ERR if(s_reqb->req.stat == REQ_ERR && (result == REQE_BADCONN || result == REQE_NOSEND)) \
- ELOG("Socket reports closed"); \
- else if(s_reqb->req.stat == REQ_ERR)\
- ELOG("MSession call failed");\
-#else
-#endif
-
-#define CONN_ERR(reqb)\
- (reqb->req.stat == REQ_ERR) && (reqb->req.param == REQE_BADCONN || reqb->req.param == REQE_NOSEND)
-
-int PHPExecRequest(int req, char *session, char *d1, char *d2,int param)
-{
- int result;
- FormatRequest(&s_reqb, req, session, d1, d2, param);
- result = DoRequest(s_conn, &s_reqb);
-
- /* Server closed the connection! */
- if(CONN_ERR(s_reqb))
- {
- ELOG("Connection was closed by server");
- if(ReopenReqConn(s_conn))
- {
- FormatRequest(&s_reqb, req, session, d1, d2, param);
- result = DoRequest(s_conn, &s_reqb);
- }
- }
- RPT_CONN_ERR
- return result;
-}
-int PHPExecRequestMulti(int req, char *session, int n, char **pairs, int param)
-{
- int result;
- FormatRequestMulti(&s_reqb, req, session, n, pairs, param);
- result = DoRequest(s_conn, &s_reqb);
-
- /* Server closed the connection! */
- if(CONN_ERR(s_reqb))
- {
- ELOG("Connection was closed by server");
- if(ReopenReqConn(s_conn))
- {
- FormatRequestMulti(&s_reqb, req, session, n, pairs, param);
- result = DoRequest(s_conn, &s_reqb);
- }
- }
- RPT_CONN_ERR
- return result;
-}
-int PHPExecRequestStrings(int req, char *session, int n, char **strings)
-{
- int result;
- FormatRequestStrings(&s_reqb, req, session, n, strings);
- result = DoRequest(s_conn, &s_reqb);
- /* Server closed the connection! */
- if(CONN_ERR(s_reqb))
- {
- ELOG("Connection was closed by server");
- if(ReopenReqConn(s_conn))
- {
- FormatRequestStrings(&s_reqb, req, session, n, strings);
- result = DoRequest(s_conn, &s_reqb);
- }
- }
- RPT_CONN_ERR
- return result;
-}
-
-
-int PHPMsessionConnect(const char *szhost, int nport)
-{
- int fNewHost=FALSE;
-
- if(!s_reqb)
- s_reqb = AllocateRequestBuffer(2048);
-
- if(!s_reqb) /* no buffer, it won't work! */
- return 0;
-
- if(strcmp(s_szhost, szhost))
- {
- if(s_szhost != s_szdefhost)
- free(s_szhost);
- s_szhost = strdup(szhost);
- fNewHost = TRUE;
- }
- if(nport && nport != s_port)
- {
- fNewHost = TRUE;
- s_port = nport;
- }
-
- ELOG("PHPMsessionConnect:new");
- if(s_conn && fNewHost)
- {
- ELOG("Closing old connection, opening new");
- CloseReqConn(s_conn);
- s_conn = NULL;
- }
- if(!s_conn)
- s_conn = OpenReqConn(s_szhost, s_port);
-#ifdef ERR_DEBUG
- else
- {
- ELOG("Reusing old connection");
- }
-#endif
-
-
-#ifdef ERR_DEBUG
-{
- char buffer[256];
- sprintf(buffer,"Connect: %s [%d] = %d (%X)\n",
- s_szhost, s_port, (s_conn != NULL), (unsigned)s_conn);
- php_log_err(buffer);
-}
-#endif
- return (s_conn) ? 1 : 0;
-}
-
-void PHPMsessionDisconnect()
-{
-}
-
-char *PHPMsessionGetData(char *session TSRMLS_DC)
-{
- char *ret = NULL;
- ELOG("PHPMsessionGetData");
-
- IFCONNECT_BEGIN
-
- PHPExecRequest(REQ_DATAGET, (char *)session,"","",0);
-
- if(s_reqb->req.stat==REQ_OK)
- ret = safe_estrdup(s_reqb->req.datum);
- IFCONNECT_ENDVAL(0)
-
- return ret;
-}
-int PHPMsessionSetData(char *session, char *data TSRMLS_DC)
-{
- ELOG("PHPMsessionSetData");
- IFCONNECT_BEGIN
- int ret=0;
-
- PHPExecRequest(REQ_DATASET, session,"",data,0);
- ret = (s_reqb->req.stat==REQ_OK);
- if(s_reqb->req.stat!=REQ_OK)
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
-
- return ret;
-
- IFCONNECT_ENDVAL(0)
-}
-int PHPMsessionDestroy(char *session TSRMLS_DC)
-{
- ELOG("PHPMsessionDestroy");
- IFCONNECT_BEGIN
-
- int ret=0;
- PHPExecRequest( REQ_DROP, session, "","",0);
- ret = (s_reqb->req.stat==REQ_OK);
- if(s_reqb->req.stat!=REQ_OK)
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- return ret;
-
- IFCONNECT_ENDVAL(0)
-}
-
-/* {{{ proto bool msession_connect(string host, string port)
- Connect to msession sever */
-PHP_FUNCTION(msession_connect)
-{
- char *szhost;
- int nport;
-
- zval **zhost;
- zval **zport;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &zhost, &zport) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
-
- convert_to_string_ex(zhost);
- convert_to_string_ex(zport);
-
- szhost = Z_STRVAL_PP(zhost);
- nport = atoi(Z_STRVAL_PP(zport));
-
- if(PHPMsessionConnect(szhost,nport))
- {
- RETURN_TRUE;
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "MSession connect failed");
- RETURN_FALSE;
- }
-}
-/* }}} */
-
-/* {{{ proto void msession_disconnect(void)
- Disconnect from msession server */
-PHP_FUNCTION(msession_disconnect)
-{
- PHPMsessionDisconnect();
- RETURN_NULL();
-}
-/* }}} */
-
-/* {{{ proto int msession_count(void)
- Get session count */
-PHP_FUNCTION(msession_count)
-{
- IFCONNECT_BEGIN
-
- int count;
- PHPExecRequest( REQ_COUNT, "", "","",0);
-
- count = (s_reqb->req.stat == REQ_OK) ? s_reqb->req.param : 0;
-
- RETURN_LONG(count);
-
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto bool msession_create(string session)
- Create a session */
-PHP_FUNCTION(msession_create)
-{
- IFCONNECT_BEGIN
-/* int stat; */
- char *szsession;
- zval **session;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &session) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
- PHPExecRequest( REQ_CREATE, szsession, "","",0);
- if(s_reqb->req.stat==REQ_OK)
- {
- RETURN_TRUE;
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto bool msession_destroy(string name)
- Destroy a session */
-PHP_FUNCTION(msession_destroy)
-{
- char *szsession;
- zval **session;
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &session) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
- PHPMsessionDestroy(szsession TSRMLS_CC);
-
- RETURN_TRUE;
-}
-/* }}} */
-
-/* {{{ proto int msession_lock(string name)
- Lock a session */
-PHP_FUNCTION(msession_lock)
-{
- IFCONNECT_BEGIN
- char *szsession;
- zval **session;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &session) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
- PHPExecRequest( REQ_SLOCK, szsession, "","",0);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- RETURN_LONG(s_reqb->req.param);
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
-
- IFCONNECT_END
-
-}
-/* }}} */
-/* {{{ proto int msession_ctl(string name)
- Lock a session */
-PHP_FUNCTION(msession_ctl)
-{
- static char *parray[] =
- { "EXIST",
- "TTL",
- "AGE",
- "TLA",
- "CTIME",
- "TOUCH",
- "NOW",
- NULL
- };
- IFCONNECT_BEGIN
- char *szsession;
- zval **session;
- zval **which;
- int fn = REQ_STAT_EXIST;
-
-
- int n = ZEND_NUM_ARGS();
-
- if(n != 1 && n != 2)
- {
- WRONG_PARAM_COUNT;
- }
-
- if(zend_get_parameters_ex(n,&session,&which) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
-
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
-
- if(n > 1)
- {
- char *szwhich;
- int i;
- convert_to_string_ex(which);
- szwhich = Z_STRVAL_PP(which);
- for(i=0; parray[i]; i++)
- {
- if(strcasecmp(parray[i], szwhich) == 0)
- {
- ELOG(szwhich);
-
- fn = i;
- break;
- }
- }
- }
-
- PHPExecRequest( REQ_CTL, szsession, "","",fn);
-
- if(s_reqb->req.stat==REQ_OK)
- {
-#ifdef ERR_DEBUG
- char buffer[128];
- sprintf(buffer, "ret:%s", s_reqb->req.datum);
- ELOG(buffer);
-#endif
- s_reqb->req.param = atoi(s_reqb->req.datum);
- RETURN_LONG(s_reqb->req.param);
- }
- else
- {
- ELOG("msession_ctl failed");
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-
-/* {{{ proto int msession_unlock(string session, int key)
- Unlock a session */
-PHP_FUNCTION(msession_unlock)
-{
- IFCONNECT_BEGIN
- char *szsession;
- long lkey;
- zval **session;
- zval **key;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &session, &key) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
- convert_to_long_ex(key);
- lkey = Z_LVAL_PP(key);
- PHPExecRequest( REQ_SUNLOCK, szsession, "","",lkey);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- RETURN_LONG(s_reqb->req.param);
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto bool msession_set(string session, string name, string value)
- Set value in session */
-PHP_FUNCTION(msession_set)
-{
- IFCONNECT_BEGIN
-
- char *szsession;
- char *szname;
- char *szvalue;
- zval **session;
- zval **name;
- zval **value;
-
- if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&session,&name,&value) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- convert_to_string_ex(name);
- convert_to_string_ex(value);
-
- szsession = Z_STRVAL_PP(session);
- szname = Z_STRVAL_PP(name);
- szvalue = Z_STRVAL_PP(value);
-
- PHPExecRequest( REQ_SETVAL, szsession, szname, szvalue, 0);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- RETURN_TRUE;
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto string msession_get(string session, string name, string default_value)
- Get value from session */
-PHP_FUNCTION(msession_get)
-{
- IFCONNECT_BEGIN
- char *szsession;
- char *szname;
- char *szvalue;
- zval **session;
- zval **name;
- zval **value;
-
- if(ZEND_NUM_ARGS() != 3 || zend_get_parameters_ex(3,&session,&name,&value) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- convert_to_string_ex(name);
- convert_to_string_ex(value);
- szsession = Z_STRVAL_PP(session);
- szname = Z_STRVAL_PP(name);
- szvalue = Z_STRVAL_PP(value);
-
- PHPExecRequest( REQ_GETVAL, szsession, szname, szvalue,0);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- szvalue = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(szvalue, 0)
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto string msession_uniq(int num_chars)
- Get uniq id */
-PHP_FUNCTION(msession_uniq)
-{
- IFCONNECT_BEGIN
-
- long val;
- zval **param;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&param) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_long_ex(param);
- val = Z_LVAL_PP(param);
-
- PHPExecRequest( REQ_UNIQ,"", "", "",val);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- char *szval = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(szval, 0)
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-
-}
-/* }}} */
-
-/* {{{ proto string msession_randstr(int num_chars)
- Get random string */
-PHP_FUNCTION(msession_randstr)
-{
- IFCONNECT_BEGIN
- long val;
- zval **param;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1,&param) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_long_ex(param);
- val = Z_LVAL_PP(param);
-
- PHPExecRequest( REQ_RANDSTR,"", "", "",val);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- char *szval = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(szval, 0)
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto array msession_find(string name, string value)
- Find all sessions with name and value */
-PHP_FUNCTION(msession_find)
-{
- IFCONNECT_BEGIN
-
- char *szname;
- char *szvalue;
- zval **name;
- zval **value;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &name, &value) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(name);
- convert_to_string_ex(value);
- szname = Z_STRVAL_PP(name);
- szvalue = Z_STRVAL_PP(value);
-
- PHPExecRequest( REQ_FIND, "", szname, szvalue,0);
-
- if(s_reqb->req.stat==REQ_OK && s_reqb->req.param)
- {
- int i;
- char *str = s_reqb->req.datum;
- array_init(return_value);
-
- for(i=0; i < s_reqb->req.param; i++)
- {
- int cbstr = strlen(str);
- char *data = safe_estrdup(str);
- add_index_string(return_value, i, data, 0);
- str += (cbstr+1);
- }
- }
- else if(s_reqb->req.stat != REQ_OK)
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto array msession_list(void)
- List all sessions */
-PHP_FUNCTION(msession_list)
-{
- IFCONNECT_BEGIN
- PHPExecRequest( REQ_LIST, "", "", "",0);
-
- if(s_reqb->req.stat==REQ_OK && s_reqb->req.param)
- {
- int i;
- char *str = s_reqb->req.datum;
- array_init(return_value);
-
- for(i=0; i < s_reqb->req.param; i++)
- {
- int cbstr = strlen(str);
- char *data = safe_estrdup(str);
- add_index_string(return_value, i, data, 0);
- str += (cbstr+1);
- }
- }
- else if(s_reqb->req.stat != REQ_OK)
- {
- /* May this should be an error? */
- if(s_reqb->req.param != REQE_NOSESSION)
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto array msession_get_array(string session)
- Get array of msession variables */
-PHP_FUNCTION(msession_get_array)
-{
- IFCONNECT_BEGIN
- char *szsession;
- zval **session;
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &session) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- szsession = Z_STRVAL_PP(session);
- PHPExecRequest( REQ_GETALL, szsession, "", "",0);
-
- array_init(return_value);
-
- if(s_reqb->req.stat == REQ_OK)
- {
- int i;
- char *str = s_reqb->req.datum;
- int num = s_reqb->req.param*2;
-
- for(i=0; i < num; i+=2)
- {
- int cbvalue;
- int cbname;
- char *szvalue;
- char *szname;
-
- cbname = strlen(str);
- szname = safe_estrndup(str,cbname);
- str += (cbname+1);
-
- cbvalue = strlen(str);
- szvalue = safe_estrndup(str,cbvalue);
- str += (cbvalue+1);
- add_assoc_string(return_value, szname, szvalue, 0);
- }
- }
- else
- {
- if(s_reqb->req.param != REQE_NOSESSION)
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto bool msession_set_array(string session, array tuples)
- Set msession variables from an array*/
-PHP_FUNCTION(msession_set_array)
-{
- IFCONNECT_BEGIN
- zval **session;
- zval **tuples;
- HashPosition pos;
- zval **entry;
- char *key;
-#ifdef PHP_4_1
- uint keylen;
-#endif
-#ifdef PHP_4_0
- ulong keylen;
-#endif
- ulong numndx;
- int ndx=0;
- char **pairs;
- HashTable *htTuples;
- int i;
-
- int countpair;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &session, &tuples) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- htTuples = Z_ARRVAL_PP(tuples);
-
- countpair = zend_hash_num_elements(htTuples);
-
- pairs = (char **)safe_emalloc(sizeof(char *), countpair * 2, 0);
-
- ELOG("have pairs");
-
- /* Initializes pos */
- zend_hash_internal_pointer_reset_ex(htTuples, &pos);
-
- ELOG("reset pointer");
-
- for(i=0; i < countpair; i++)
- {
- if(zend_hash_get_current_data_ex(htTuples, (void **)&entry, &pos) != SUCCESS)
- break;
-
- if(entry)
- {
- char *szentry;
- convert_to_string_ex(entry);
- szentry = Z_STRVAL_PP(entry);
-
- if(zend_hash_get_current_key_ex(htTuples,&key,&keylen,&numndx,0,&pos)== HASH_KEY_IS_STRING)
- {
-#ifdef ERR_DEBUG
-{
- char buffer [256];
- sprintf(buffer, "%s=%s\n", key, szentry);
- ELOG(buffer);
-}
-#endif
- pairs[ndx++] = key;
- pairs[ndx++] = szentry;
- }
- }
- zend_hash_move_forward_ex(htTuples, &pos);
- }
-
- PHPExecRequestMulti(REQ_SETVAL, Z_STRVAL_PP(session), countpair, pairs,0);
-
- if(s_reqb->req.stat != REQ_OK)
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- efree((void *)pairs);
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto array msession_listvar(string name)
- return associative array of value:session for all sessions with a variable named 'name' */
-PHP_FUNCTION(msession_listvar)
-{
- IFCONNECT_BEGIN
- zval **name;
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &name) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(name);
- PHPExecRequest( REQ_LISTVAR, "", Z_STRVAL_PP(name), "",0);
-
- array_init(return_value);
-
- if(s_reqb->req.stat == REQ_OK)
- {
- int i;
- char *str = s_reqb->req.datum;
- int num = s_reqb->req.param*2;
-
- for(i=0; i < num; i+=2)
- {
- int cbvalue;
- int cbname;
- char *szvalue;
- char *szname;
-
- cbname= strlen(str);
- szname= safe_estrndup(str,cbname);
- str += (cbname+1);
-
- cbvalue = strlen(str);
- szvalue = safe_estrndup(str,cbvalue);
- str += (cbvalue+1);
- add_assoc_string(return_value, szname, szvalue, 0);
- }
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto int msession_timeout(string session [, int param ])
- Set/get session timeout */
-PHP_FUNCTION(msession_timeout)
-{
- IFCONNECT_BEGIN
- zval **session;
- int ac = ZEND_NUM_ARGS();
- int zstat = FAILURE;
- int timeout = 0;
- if(ac == 1)
- {
- zstat = zend_get_parameters_ex(1, &session);
- }
- else if(ac == 2)
- {
- zval **param;
- zstat = zend_get_parameters_ex(2, &session, &param);
- convert_to_long_ex(param);
- timeout = Z_LVAL_PP(param);
- }
- if(zstat == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- PHPExecRequest( REQ_TIMEOUT, Z_STRVAL_PP(session), "","",timeout);
-
- if(s_reqb->req.stat == REQ_OK)
- {
- RETURN_LONG( s_reqb->req.param);
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto string msession_inc(string session, string name)
- Increment value in session */
-PHP_FUNCTION(msession_inc)
-{
- IFCONNECT_BEGIN
- char *val;
- zval **session;
- zval **name;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &session, &name) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- convert_to_string_ex(name);
-
- PHPExecRequest( REQ_INC, Z_STRVAL_PP(session), Z_STRVAL_PP(name),0,0);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- val = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(val, 0)
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto string msession_get_data(string session)
- Get data session unstructured data. (PHP sessions use this) */
-PHP_FUNCTION(msession_get_data)
-{
- IFCONNECT_BEGIN
- char *val;
- zval **session;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &session) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
-
- val = PHPMsessionGetData(Z_STRVAL_PP(session) TSRMLS_CC);
-
- if(val)
- {
- RETURN_STRING(val, 0)
- }
- else
- {
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto bool msession_set_data(string session, string value)
- Set data session unstructured data. (PHP sessions use this) */
-PHP_FUNCTION(msession_set_data)
-{
- IFCONNECT_BEGIN
- zval **session;
- zval **value;
-
- if(ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &session, &value) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- convert_to_string_ex(value);
-
- if(PHPMsessionSetData(Z_STRVAL_PP(session), Z_STRVAL_PP(value) TSRMLS_CC))
- {
- RETURN_TRUE;
- }
- else
- {
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-/* {{{ proto string msession_plugin(string session, string val [, string param ])
- Call the personality plugin escape function */
-PHP_FUNCTION(msession_plugin)
-{
- IFCONNECT_BEGIN
- int ret;
- char *retval;
- zval **session;
- zval **val;
- zval **param=NULL;
-
- if(ZEND_NUM_ARGS() == 3)
- {
- ret = zend_get_parameters_ex(3, &session, &val, &param);
- convert_to_string_ex(param);
- }
- else if(ZEND_NUM_ARGS() == 2)
- {
- ret = zend_get_parameters_ex(2, &session, &val);
- }
- else
- {
- WRONG_PARAM_COUNT;
- }
- if(ret == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(session);
- convert_to_string_ex(val);
-
- ret = atoi(Z_STRVAL_PP(val));
-
- PHPExecRequest( REQ_PLUGIN, Z_STRVAL_PP(session), Z_STRVAL_PP(val), param ? Z_STRVAL_PP(param) : "",ret);
-
- if(s_reqb->req.stat==REQ_OK && s_reqb->req.len)
- {
- retval = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(retval, 0)
- }
- else if(s_reqb->req.stat != REQ_OK)
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
-
- }
- IFCONNECT_END
-}
-/* }}} */
-#define MAX_EXT_VAL 5
-/* {{{ proto string msession_call(string fn_name, [, string param1 ], ... [,string param4])
- Call the plugin function named fn_name */
-PHP_FUNCTION(msession_call)
-{
- IFCONNECT_BEGIN
- int n;
- int i;
- int ret;
- char *retval;
- zval **val[MAX_EXT_VAL];
- char *strings[MAX_EXT_VAL+1];
-/* zval **param=NULL; */
-
- n = ZEND_NUM_ARGS();
-
- if((n < 1) || (n > MAX_EXT_VAL))
- {
- WRONG_PARAM_COUNT;
- }
-
- ret = zend_get_parameters_ex(ZEND_NUM_ARGS(), &val[0],&val[1],&val[2],&val[3],&val[4]);
-
- if(ret == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- for(i=0; i < n; i++)
- {
- convert_to_string_ex(val[i]);
- strings[i] = Z_STRVAL_PP(val[i]);
- }
-
- PHPExecRequestStrings(REQ_CALL, NULL , n, strings);
-
- if(s_reqb->req.stat==REQ_OK && s_reqb->req.len)
- {
- retval = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(retval, 0)
- }
- else if(s_reqb->req.stat != REQ_OK)
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-/* {{{ proto string msession_exec(string cmdline)
- executes a program on msession system */
-PHP_FUNCTION(msession_exec)
-{
- IFCONNECT_BEGIN
- char *val;
- zval **cmdline;
-
- if(ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &cmdline) == FAILURE)
- {
- WRONG_PARAM_COUNT;
- }
- convert_to_string_ex(cmdline);
-
- PHPExecRequest( REQ_EXEC, Z_STRVAL_PP(cmdline), "","",0);
-
- if(s_reqb->req.stat == REQ_OK)
- {
- val = safe_estrdup(s_reqb->req.datum);
- RETURN_STRING(val, 0)
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_NULL();
- }
- IFCONNECT_END
-}
-/* }}} */
-/* {{{ proto bool msession_ping(void)
- returns non-zero if msession is alive*/
-PHP_FUNCTION(msession_ping)
-{
- IFCONNECT_BEGIN
-
- PHPExecRequest(REQ_PING,"","","", 0);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- RETURN_TRUE;
- }
- else
- {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- RETURN_FALSE;
- }
- IFCONNECT_END
-}
-/* }}} */
-
-#ifdef HAVE_PHP_SESSION
-
-PS_OPEN_FUNC(msession)
-{
- int port;
- int len = strlen(save_path)+1;
- char * path = emalloc(len);
- char * szport;
-
- strcpy(path, save_path);
-
- szport = strchr(path, ':');
-
- if(szport)
- {
- *szport++=0;
- port = atoi(szport);
- }
- else
- {
- port = s_port;
- }
-
- ELOG( "ps_open_msession");
- PS_SET_MOD_DATA((void *)1); /* session.c needs a non-zero here! */
- if (PHPMsessionConnect(path, port)) {
- efree(path);
- return SUCCESS;
- } else {
- efree(path);
- return FAILURE;
- }
-}
-
-PS_CLOSE_FUNC(msession)
-{
- ELOG( "ps_close_msession");
- PHPMsessionDisconnect();
- return SUCCESS;
-}
-
-PS_READ_FUNC(msession)
-{
- ELOG( "ps_read_msession");
- *val = PHPMsessionGetData((char *)key TSRMLS_CC);
- if(*val)
- {
- *vallen = strlen(*val);
- }
- else
- {
- *val = emalloc(1);
- **val=0;
- *vallen = 0;
- }
- return SUCCESS;
-}
-
-PS_WRITE_FUNC(msession)
-{
- ELOG( "ps_write_msession");
- return (PHPMsessionSetData((char *)key, (char *)val TSRMLS_CC)) ? SUCCESS : FAILURE;
-}
-
-PS_DESTROY_FUNC(msession)
-{
- ELOG( "ps_destroy_msession");
- return (PHPMsessionDestroy((char *)key TSRMLS_CC)) ? SUCCESS : FAILURE;
-}
-
-PS_GC_FUNC(msession)
-{
- ELOG( "ps_gc_msession");
- return SUCCESS;
-}
-
-#ifdef HAVE_PHP_SESSION_CREATESID
-PS_CREATE_SID_FUNC(msession)
-{
- if(s_reqb && s_conn)
- {
- ELOG("Should create a new session");
- PHPExecRequest( REQ_UNIQ,"", "", "",SID_LEN);
-
- if(s_reqb->req.stat==REQ_OK)
- {
- ELOG("Reports UNIQ success");
- if(newlen)
- *newlen = SID_LEN;
- return safe_estrdup(s_reqb->req.datum);
- }
- else
- {
- ELOG("Reports that UNIQ failed");
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ReqbErr(s_reqb));
- }
- }
- ELOG("Yikes, could not get sid from msession 2003");
- return php_session_create_id(mod_data, newlen TSRMLS_CC);
-}
-#endif /* HAVE_PHP_SESSION_CREATESID */
-#endif /* HAVE_PHP_SESSION */
-#endif /* HAVE_MSESSION */
-
diff --git a/ext/msession/msession.php b/ext/msession/msession.php
deleted file mode 100644
index 4eb9d9b6c..000000000
--- a/ext/msession/msession.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?
-$module = 'msession';
-$function = 'confirm_' . $module . '_compiled';
-if (extension_loaded($module)) {
- $str = $function($module);
-} else {
- $str = "Module $module is not compiled into PHP";
-}
-echo "$str\n";
-?>
diff --git a/ext/msession/php_msession.h b/ext/msession/php_msession.h
deleted file mode 100644
index b41df742f..000000000
--- a/ext/msession/php_msession.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | msession 1.0 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2006 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Mark Woodward <markw@mohawksoft.com> |
- | Portions copyright the PHP group. |
- +----------------------------------------------------------------------+
- */
-
-#ifndef PHP_MSESSION_H
-#define PHP_MSESSION_H
-
-/* You should tweak config.m4 so this symbol (or some else suitable)
- gets defined.
-*/
-#if HAVE_MSESSION
-
-extern zend_module_entry msession_module_entry;
-#define phpext_msession_ptr &msession_module_entry
-
-#ifdef PHP_WIN32
-#define PHP_MSESSION_API __declspec(dllexport)
-#else
-#define PHP_MSESSION_API
-#endif
-
-PHP_MINIT_FUNCTION(msession);
-PHP_MINFO_FUNCTION(msession);
-
-PHP_FUNCTION(msession_connect);
-PHP_FUNCTION(msession_disconnect);
-PHP_FUNCTION(msession_lock);
-PHP_FUNCTION(msession_unlock);
-PHP_FUNCTION(msession_ctl);
-PHP_FUNCTION(msession_count);
-PHP_FUNCTION(msession_create);
-PHP_FUNCTION(msession_destroy);
-PHP_FUNCTION(msession_exec);
-PHP_FUNCTION(msession_set);
-PHP_FUNCTION(msession_get);
-PHP_FUNCTION(msession_find);
-PHP_FUNCTION(msession_get_array);
-PHP_FUNCTION(msession_set_array);
-PHP_FUNCTION(msession_timeout);
-PHP_FUNCTION(msession_inc);
-PHP_FUNCTION(msession_set_data);
-PHP_FUNCTION(msession_get_data);
-PHP_FUNCTION(msession_listvar);
-PHP_FUNCTION(msession_list);
-PHP_FUNCTION(msession_uniq);
-PHP_FUNCTION(msession_randstr);
-PHP_FUNCTION(msession_plugin);
-PHP_FUNCTION(msession_call);
-PHP_FUNCTION(msession_ping);
-
-/*
- Declare any global variables you may need between the BEGIN
- and END macros here:
-
-ZEND_BEGIN_MODULE_GLOBALS(msession)
- int global_variable;
- void *conn;
- char *host;
-ZEND_END_MODULE_GLOBALS(msession)
-
-*/
-/* In every function that needs to use variables in php_msession_globals,
- do call MSESSIONLS_FETCH(); after declaring other variables used by
- that function, and always refer to them as MSESSIONG(variable).
- You are encouraged to rename these macros something shorter, see
- examples in any other php module directory.
-*/
-
-#ifdef ZTS
-#define MSESSIONG(v) (msession_globals->v)
-#define MSESSIONLS_FETCH() php_msession_globals *msession_globals = ts_resource(msession_globals_id)
-#else
-#define MSESSIONG(v) (msession_globals.v)
-#define MSESSIONLS_FETCH()
-#endif
-
-#else
-
-#define phpext_msession_ptr NULL
-
-#endif
-
-#endif /* PHP_MSESSION_H */
-
-
-/*
- * Local variables:
- * tab-width: 4
- * c-basic-offset: 4
- * End:
- */
diff --git a/ext/msession/reqclient.h b/ext/msession/reqclient.h
deleted file mode 100644
index c8ff1c979..000000000
--- a/ext/msession/reqclient.h
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- +----------------------------------------------------------------------+
- | msession 1.0 |
- +----------------------------------------------------------------------+
- | Copyright (c) 1997-2006 The PHP Group |
- +----------------------------------------------------------------------+
- | This source file is subject to version 3.01 of the PHP license, |
- | that is bundled with this package in the file LICENSE, and is |
- | available through the world-wide-web at the following url: |
- | http://www.php.net/license/3_01.txt |
- | If you did not receive a copy of the PHP license and are unable to |
- | obtain it through the world-wide-web, please send a note to |
- | license@php.net so we can mail you a copy immediately. |
- +----------------------------------------------------------------------+
- | Authors: Mark Woodward <markw@mohawksoft.com> |
- | Portions copyright the PHP group. |
- +----------------------------------------------------------------------+
- */
-
-/*
---------------------------------------------------------------------------
- These are definitions are pulled from Phoenix.
- It would probably be easier to maintain one file,
- but some phoenix header files conflict with other
- project header files common to PHP. Besides, this
- allows this header to be PHP license and Phoenix to
- be LGPL with no conflicts.
-
- MAKE NO CHANGES TO THIS FILE IT. MUST REMAIN CONSTANT
- WITH PHOENIX OR IT WILL NOT WORK.
---------------------------------------------------------------------------
-*/
-/* Required to use the new version of Phoenix 1.2 */
-
-#ifndef REQCLIENT_VER
-#define REQCLIENT_VER 030113
-#endif
-
-enum REQ_TYPES
-{
- REQ_ERR,
- REQ_OK,
- REQ_CTL,
- REQ_SETVAL,
- REQ_GETVAL,
- REQ_CREATE,
- REQ_DROP,
- REQ_GETALL,
- REQ_FIND,
- REQ_COUNT,
- REQ_FLUSH,
- REQ_SLOCK,
- REQ_SUNLOCK,
- REQ_TIMEOUT,
- REQ_INC,
- REQ_DATAGET,
- REQ_DATASET,
- REQ_LIST,
- REQ_LISTVAR,
- REQ_UNIQ,
- REQ_RANDSTR,
- REQ_PLUGIN,
- REQ_CALL,
- REQ_SERIALIZE,
- REQ_RESTORE,
- REQ_EXEC,
- REQ_LAST,
- REQ_INTERNAL_BEGIN=1023,
- REQ_INTERNALLAST,
-};
-enum REQ_ERRORS
-{
- REQE_NOERROR=0,
- REQE_NOSESSION,
- REQE_DUPSESSION,
- REQE_NOWLOCK,
- REQE_NOVALUE,
- REQE_LOCKED,
- REQE_NOSEND,
- REQE_NOCONNECT,
- REQE_BADCONN,
- REQE_BADHDR,
- REQE_BADVER,
- REQE_BADLEN,
- REQE_BUFFER,
- REQE_DENIED,
- REQE_NOFN,
- REQE_UNKNOWN
-};
-
-
-#define REQ_POPEN 1024
-#define REQ_PCLOSE 1025
-#define REQ_PING 1026
-
-typedef struct _requestPacket
-{
- int version;
- int stat;
- int len;
- int session;
- int name;
- int value;
- int param;
- char datum[0];
-}REQ;
-
-typedef struct _requestBuf
-{
- unsigned int type; /* Type of packet, dynamic/static */
- unsigned int size; /* size of memory block */
-#if (REQCLIENT_VER >= 030113)
- unsigned int fmt; /* format, binary/ascii */
- unsigned int reserved; /* Just in case */
-#else
-#warning You are using an old Phoenix definition, this will have problems with a newer version
-#endif
- REQ req;
-}REQB;
-
-#define MAX_REQ 16384
-
-#define REQB_STATIC 1
-#define REQB_DYNAMIC 2
-
-#define REQ_STAT_EXIST 0
-#define REQ_STAT_TTL 1
-#define REQ_STAT_AGE 2
-#define REQ_STAT_TLA 3
-#define REQ_STAT_CTIM 4
-#define REQ_STAT_TOUCH 5
-#define REQ_STAT_NOW 6
-
-
-#define STATIC_REQB( len ) \
- char buffer [ len ]; \
- REQB *preq = StaticRequestBuffer(buffer, len);
-
-#if defined (__cplusplus)
-extern "C" {
-#endif
-
-#define SIZEREQB(REQB,SIZE) (((REQB)->size >= (unsigned int) SIZE) ? REQB : SizeRequestBuffer(REQB,SIZE))
-REQB *AllocateRequestBuffer(unsigned size);
-void FreeRequestBuffer(REQB *req);
-REQB *SizeRequestBuffer(REQB *req, unsigned int size);
-REQB *StaticRequestBuffer(char *buffer, unsigned int cb);
-
-int FormatRequest(REQB **buffer, int stat, const char *session, const char *name, const char *value, int param);
-int FormatRequestMulti(REQB **buffer, int stat, char *session, int n, char **pairs, int param);
-int FormatRequestStrings(REQB **ppreq, int stat, char *session, int n, char **strings);
-int DoSingleRequest(char *hostname, int port, REQB **preq);
-void *OpenReqConn(char *hostname, int port);
-void CloseReqConn(void *conn);
-void DeleteReqConn(void *conn);
-unsigned char ReopenReqConn(void *conn);
-int DoRequest(void *conn, REQB **preq);
-char *ReqbErr(REQB *reqb);
-
-#define ASSERT_STAT(PREQ) if(PREQ->stat != REQ_OK) \
- {fprintf(stderr, "Error in Request %s %d %s\n", \
- __FILE__,__LINE__, ReqErr(PREQ->param)); exit(-1); }
-
-#if defined (__cplusplus)
- /* C API but with class definitions */
- int ReadRequestTimeout(REQB **ppreq, MSock *sock, int timeout);
- int ReadRequest(REQB **preq, MSock *sock);
- int WriteRequest(REQB *preq, MSock *sock);
-}
-#endif
-
diff --git a/ext/mssql/php_mssql.c b/ext/mssql/php_mssql.c
index 12c8a84bc..f900b5f81 100644
--- a/ext/mssql/php_mssql.c
+++ b/ext/mssql/php_mssql.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_mssql.c,v 1.152.2.12 2006/01/01 12:50:09 sniper Exp $ */
+/* $Id: php_mssql.c,v 1.152.2.13 2006/04/04 18:49:12 fmk Exp $ */
#ifdef COMPILE_DL_MSSQL
#define HAVE_MSSQL 1
@@ -229,6 +229,7 @@ static void _free_mssql_result(zend_rsrc_list_entry *rsrc TSRMLS_DC)
mssql_result *result = (mssql_result *)rsrc->ptr;
_free_result(result, 1);
+ dbcancel(result->mssql_ptr->link);
efree(result);
}
@@ -1233,6 +1234,7 @@ PHP_FUNCTION(mssql_query)
}
if (dbsqlexec(mssql_ptr->link)==FAIL || (retvalue = dbresults(mssql_ptr->link))==FAIL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Query failed");
+ dbcancel(mssql_ptr->link);
RETURN_FALSE;
}
@@ -1247,6 +1249,7 @@ PHP_FUNCTION(mssql_query)
retvalue=dbnextrow(mssql_ptr->link);
if (retvalue==FAIL) {
+ dbcancel(mssql_ptr->link);
RETURN_FALSE;
}
@@ -2172,6 +2175,7 @@ PHP_FUNCTION(mssql_execute)
if (dbrpcexec(mssql_ptr->link)==FAIL || dbsqlok(mssql_ptr->link)==FAIL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "stored procedure execution failed");
+ dbcancel(mssql_ptr->link);
RETURN_FALSE;
}
@@ -2179,6 +2183,7 @@ PHP_FUNCTION(mssql_execute)
if (retval_results==FAIL) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "could not retrieve results");
+ dbcancel(mssql_ptr->link);
RETURN_FALSE;
}
diff --git a/ext/mysql/tests/001.phpt b/ext/mysql/tests/001.phpt
index 8a7c9d22c..4f79ae3ef 100755
--- a/ext/mysql/tests/001.phpt
+++ b/ext/mysql/tests/001.phpt
@@ -8,11 +8,6 @@ mysql connect
include 'connect.inc';
$test = '';
-/*** test mysql_connect 127.0.0.1 ***/
-$db = mysql_connect('127.0.0.1', $user, $passwd);
-$test .= ($db) ? '1' : '0';
-mysql_close($db);
-
/*** test mysql_connect localhost ***/
$db = mysql_connect($host, $user, $passwd);
$test .= ($db) ? '1' : '0';
@@ -27,4 +22,4 @@ var_dump($test);
?>
--EXPECT--
-string(3) "111"
+string(2) "11"
diff --git a/ext/mysqli/mysqli.c b/ext/mysqli/mysqli.c
index b968639ec..562b0d61e 100644
--- a/ext/mysqli/mysqli.c
+++ b/ext/mysqli/mysqli.c
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli.c,v 1.72.2.7 2006/01/01 12:50:09 sniper Exp $
+ $Id: mysqli.c,v 1.72.2.16 2006/04/02 09:40:19 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -123,8 +123,9 @@ void php_clear_mysql(MY_MYSQL *mysql) {
static void mysqli_objects_free_storage(zend_object *object TSRMLS_DC)
{
mysqli_object *intern = (mysqli_object *)object;
-
- zend_objects_free_object_storage(&(intern->zo) TSRMLS_CC);
+
+ zend_object_std_dtor(&intern->zo TSRMLS_CC);
+ efree(intern);
}
/* }}} */
@@ -211,22 +212,11 @@ zval *mysqli_read_property(zval *object, zval *member, int type TSRMLS_DC)
}
if (ret == SUCCESS) {
-
- /* check if mysqli object is still valid */
- if (!strcmp(obj->zo.ce->name, "mysqli")) {
- if (!obj->ptr ||
- !((MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->mysql)->thread_id) {
- retval = EG(uninitialized_zval_ptr);
- return(retval);
- }
- } else
- /* check if stmt object is still valid */
- if (!strcmp(obj->zo.ce->name, "mysqli_stmt")) {
- if (!obj->ptr ||
- !((MYSQL_STMT *)((MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->stmt)->mysql) {
- retval = EG(uninitialized_zval_ptr);
- return(retval);
- }
+ if (strcmp(obj->zo.ce->name, "mysqli_driver") &&
+ (!obj->ptr || ((MYSQLI_RESOURCE *)(obj->ptr))->status < MYSQLI_STATUS_INITIALIZED)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", obj->zo.ce->name );
+ retval = EG(uninitialized_zval_ptr);
+ return(retval);
}
ret = hnd->read_func(obj, &retval TSRMLS_CC);
@@ -343,10 +333,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_
intern = emalloc(sizeof(mysqli_object));
memset(intern, 0, sizeof(mysqli_object));
- intern->zo.ce = class_type;
- intern->zo.guards = NULL;
intern->ptr = NULL;
- intern->valid = 0;
intern->prop_handler = NULL;
mysqli_base_class = class_type;
@@ -357,8 +344,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry *class_
zend_hash_find(&classes, mysqli_base_class->name, mysqli_base_class->name_length + 1,
(void **) &intern->prop_handler);
- ALLOC_HASHTABLE(intern->zo.properties);
- zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref,
(void *) &tmp, sizeof(zval *));
@@ -567,6 +553,13 @@ PHP_MINIT_FUNCTION(mysqli)
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_INTERVAL", FIELD_TYPE_INTERVAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_TYPE_GEOMETRY", FIELD_TYPE_GEOMETRY, CONST_CS | CONST_PERSISTENT);
+#if MYSQL_VERSION_ID > 50002
+ REGISTER_LONG_CONSTANT("MYSQLI_TYPE_NEWDECIMAL", FIELD_TYPE_NEWDECIMAL, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("MYSQLI_TYPE_BIT", FIELD_TYPE_BIT, CONST_CS | CONST_PERSISTENT);
+#endif
+
+
+
/* replication */
REGISTER_LONG_CONSTANT("MYSQLI_RPL_MASTER", MYSQL_RPL_MASTER, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_RPL_SLAVE", MYSQL_RPL_SLAVE, CONST_CS | CONST_PERSISTENT);
@@ -581,6 +574,7 @@ PHP_MINIT_FUNCTION(mysqli)
/* reporting */
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_INDEX", MYSQLI_REPORT_INDEX, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ERROR", MYSQLI_REPORT_ERROR, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("MYSQLI_REPORT_STRICT", MYSQLI_REPORT_STRICT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_ALL", MYSQLI_REPORT_ALL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("MYSQLI_REPORT_OFF", 0, CONST_CS | CONST_PERSISTENT);
@@ -632,7 +626,8 @@ PHP_MINFO_FUNCTION(mysqli)
{
php_info_print_table_start();
php_info_print_table_header(2, "MysqlI Support", "enabled");
- php_info_print_table_row(2, "Client API version", mysql_get_client_info());
+ php_info_print_table_row(2, "Client API library version", mysql_get_client_info());
+ php_info_print_table_row(2, "Client API header version", MYSQL_SERVER_VERSION);
php_info_print_table_row(2, "MYSQLI_SOCKET", MYSQL_UNIX_ADDR);
@@ -645,7 +640,7 @@ PHP_MINFO_FUNCTION(mysqli)
/* {{{ mixed mysqli_stmt_construct()
constructor for statement object.
Parameters:
- object -> mysqli_init
+ object -> mysqli_stmt_init
object, query -> mysqli_prepare
*/
ZEND_FUNCTION(mysqli_stmt_construct)
@@ -663,7 +658,7 @@ ZEND_FUNCTION(mysqli_stmt_construct)
if (zend_parse_parameters(1 TSRMLS_CC, "O", &mysql_link, mysqli_link_class_entry)==FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));
@@ -673,7 +668,7 @@ ZEND_FUNCTION(mysqli_stmt_construct)
if (zend_parse_parameters(2 TSRMLS_CC, "Os", &mysql_link, mysqli_link_class_entry, &statement, &stmt_len)==FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));
@@ -693,9 +688,9 @@ ZEND_FUNCTION(mysqli_stmt_construct)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)stmt;
-
+ mysqli_resource->status = (ZEND_NUM_ARGS() == 1) ? MYSQLI_STATUS_INITIALIZED : MYSQLI_STATUS_VALID;
+
((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;
- ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->valid = 1;
}
/* }}} */
@@ -727,7 +722,7 @@ ZEND_FUNCTION(mysqli_result_construct)
WRONG_PARAM_COUNT;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
result = (resmode == MYSQLI_STORE_RESULT) ? mysql_store_result(mysql->mysql) :
mysql_use_result(mysql->mysql);
@@ -738,9 +733,9 @@ ZEND_FUNCTION(mysqli_result_construct)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;
- ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->valid = 1;
}
/* }}} */
@@ -789,7 +784,7 @@ void php_mysqli_fetch_into_hash(INTERNAL_FUNCTION_PARAMETERS, int override_flags
}
}
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if ((fetchtype & MYSQLI_BOTH) == 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The result type should be either MYSQLI_NUM, MYSQLI_ASSOC or MYSQLI_BOTH");
@@ -981,6 +976,7 @@ int php_local_infile_init(void **ptr, const char *filename, void *userdata)
mysql->li_stream = php_stream_open_wrapper_ex((char *)filename, "r", 0, NULL, context);
if (mysql->li_stream == NULL) {
+ sprintf((char *)data->error_msg, "Can't find file '%-.64s'.", filename);
return 1;
}
diff --git a/ext/mysqli/mysqli_api.c b/ext/mysqli/mysqli_api.c
index 4c5811560..4886b3f78 100644
--- a/ext/mysqli/mysqli_api.c
+++ b/ext/mysqli/mysqli_api.c
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli_api.c,v 1.118.2.16 2006/01/01 16:55:01 andrey Exp $
+ $Id: mysqli_api.c,v 1.118.2.22 2006/04/05 12:17:08 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -41,7 +41,7 @@ PHP_FUNCTION(mysqli_affected_rows)
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
rc = mysql_affected_rows(mysql->mysql);
if (rc == (my_ulonglong) -1) {
@@ -62,7 +62,7 @@ PHP_FUNCTION(mysqli_autocommit)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ob", &mysql_link, mysqli_link_class_entry, &automode) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_autocommit(mysql->mysql, automode)) {
RETURN_FALSE;
@@ -103,7 +103,7 @@ PHP_FUNCTION(mysqli_stmt_bind_param)
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if (getThis()) {
start = 1;
@@ -229,7 +229,7 @@ PHP_FUNCTION(mysqli_stmt_bind_result)
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if (argc < (getThis() ? 1 : 2)) {
WRONG_PARAM_COUNT;
@@ -295,7 +295,7 @@ PHP_FUNCTION(mysqli_stmt_bind_result)
convert_to_long_ex(args[i]);
stmt->result.buf[ofs].type = IS_LONG;
stmt->result.buf[ofs].buflen = 0;
- stmt->result.buf[ofs].val = (char *)emalloc(sizeof(long));
+ stmt->result.buf[ofs].val = (char *)emalloc(sizeof(int));
bind[ofs].buffer_type = MYSQL_TYPE_LONG;
bind[ofs].buffer = stmt->result.buf[ofs].val;
bind[ofs].is_null = &stmt->result.is_null[ofs];
@@ -326,7 +326,12 @@ PHP_FUNCTION(mysqli_stmt_bind_result)
case MYSQL_TYPE_NEWDECIMAL:
#endif
{
- ulong tmp;
+#if MYSQL_VERSION_ID > 50099
+ /* Changed to my_bool in MySQL 5.1. See MySQL Bug #16144 */
+ my_bool tmp;
+#else
+ ulong tmp = 0;
+#endif
stmt->result.buf[ofs].type = IS_STRING;
/*
If the user has called $stmt->store_result() then we have asked
@@ -404,7 +409,7 @@ PHP_FUNCTION(mysqli_change_user)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osss", &mysql_link, mysqli_link_class_entry, &user, &user_len, &password, &password_len, &dbname, &dbname_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
rc = mysql_change_user(mysql->mysql, user, password, dbname);
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
@@ -428,7 +433,7 @@ PHP_FUNCTION(mysqli_character_set_name)
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((char *) mysql_character_set_name(mysql->mysql), 1);
}
@@ -445,7 +450,7 @@ PHP_FUNCTION(mysqli_close)
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED);
mysql_close(mysql->mysql);
php_clear_mysql(mysql);
@@ -465,7 +470,7 @@ PHP_FUNCTION(mysqli_commit)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_commit(mysql->mysql)) {
RETURN_FALSE;
}
@@ -485,7 +490,7 @@ PHP_FUNCTION(mysqli_data_seek)
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used with MYSQL_USE_RESULT");
@@ -528,7 +533,7 @@ PHP_FUNCTION(mysqli_dump_debug_info)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
rc = mysql_dump_debug_info(mysql->mysql);
@@ -549,7 +554,7 @@ PHP_FUNCTION(mysqli_errno)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_errno(mysql->mysql));
}
/* }}} */
@@ -564,7 +569,7 @@ PHP_FUNCTION(mysqli_error)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_error(mysql->mysql),1);
}
/* }}} */
@@ -580,7 +585,7 @@ PHP_FUNCTION(mysqli_stmt_execute)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
for (i = 0; i < stmt->param.var_cnt; i++) {
if (stmt->param.vars[i]) {
@@ -627,14 +632,13 @@ PHP_FUNCTION(mysqli_stmt_fetch)
unsigned int i;
ulong ret;
unsigned int uval;
- double dval;
my_ulonglong llval;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
/* reset buffers */
@@ -658,7 +662,7 @@ PHP_FUNCTION(mysqli_stmt_fetch)
if (!stmt->result.is_null[i]) {
switch (stmt->result.buf[i].type) {
case IS_LONG:
- if ((sizeof(long) ==4) && (stmt->stmt->fields[i].type == MYSQL_TYPE_LONG)
+ if ((stmt->stmt->fields[i].type == MYSQL_TYPE_LONG)
&& (stmt->stmt->fields[i].flags & UNSIGNED_FLAG))
{
/* unsigned int (11) */
@@ -679,11 +683,14 @@ PHP_FUNCTION(mysqli_stmt_fetch)
break;
}
}
- ZVAL_LONG(stmt->result.vars[i], *(int *)stmt->result.buf[i].val);
+ if (stmt->stmt->fields[i].flags & UNSIGNED_FLAG) {
+ ZVAL_LONG(stmt->result.vars[i], *(unsigned int *)stmt->result.buf[i].val);
+ } else {
+ ZVAL_LONG(stmt->result.vars[i], *(int *)stmt->result.buf[i].val);
+ };
break;
case IS_DOUBLE:
- memcpy(&dval, stmt->result.buf[i].val, sizeof(dval));
- ZVAL_DOUBLE(stmt->result.vars[i], dval);
+ ZVAL_DOUBLE(stmt->result.vars[i], *(double *)stmt->result.buf[i].val);
break;
case IS_STRING:
if (stmt->stmt->bind[i].buffer_type == MYSQL_TYPE_LONGLONG) {
@@ -698,10 +705,10 @@ PHP_FUNCTION(mysqli_stmt_fetch)
#endif
char tmp[22];
/* even though lval is declared as unsigned, the value
- * may be negative. Therefor we cannot use %llu and must
- * use %lld.
+ * may be negative. Therefor we cannot use MYSQLI_LLU_SPEC and must
+ * use MYSQLI_LL_SPEC.
*/
- sprintf((char *)&tmp, (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? "%llu":"%lld", llval);
+ sprintf((char *)&tmp, (stmt->stmt->fields[i].flags & UNSIGNED_FLAG)? MYSQLI_LLU_SPEC : MYSQLI_LL_SPEC, llval);
ZVAL_STRING(stmt->result.vars[i], tmp, 1);
} else {
ZVAL_LONG(stmt->result.vars[i], llval);
@@ -754,7 +761,7 @@ PHP_FUNCTION(mysqli_fetch_field)
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (!(field = mysql_fetch_field(result))) {
RETURN_FALSE;
@@ -791,7 +798,7 @@ PHP_FUNCTION(mysqli_fetch_fields)
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
array_init(return_value);
@@ -832,7 +839,7 @@ PHP_FUNCTION(mysqli_fetch_field_direct)
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (offset < 0 || offset >= mysql_num_fields(result)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Field offset is invalid for resultset");
@@ -872,7 +879,7 @@ PHP_FUNCTION(mysqli_fetch_lengths)
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (!(ret = mysql_fetch_lengths(result))) {
RETURN_FALSE;
@@ -905,7 +912,7 @@ PHP_FUNCTION(mysqli_field_count)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_field_count(mysql->mysql));
}
@@ -923,7 +930,7 @@ PHP_FUNCTION(mysqli_field_seek)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_result, mysqli_result_class_entry, &fieldnr) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (fieldnr < 0 || fieldnr >= mysql_num_fields(result)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used with MYSQL_USE_RESULT");
@@ -945,7 +952,7 @@ PHP_FUNCTION(mysqli_field_tell)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_field_tell(result));
}
@@ -961,7 +968,7 @@ PHP_FUNCTION(mysqli_free_result)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
mysql_free_result(result);
MYSQLI_CLEAR_RESOURCE(&mysql_result);
@@ -996,7 +1003,7 @@ PHP_FUNCTION(mysqli_get_host_info)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((mysql->mysql->host_info) ? mysql->mysql->host_info : "", 1);
}
@@ -1012,7 +1019,7 @@ PHP_FUNCTION(mysqli_get_proto_info)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_get_proto_info(mysql->mysql));
}
@@ -1028,7 +1035,7 @@ PHP_FUNCTION(mysqli_get_server_info)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_get_server_info(mysql->mysql), 1);
}
@@ -1045,7 +1052,7 @@ PHP_FUNCTION(mysqli_get_server_version)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_get_server_version(mysql->mysql));
}
@@ -1061,7 +1068,7 @@ PHP_FUNCTION(mysqli_info)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((mysql->mysql->info) ? mysql->mysql->info : "", 1);
}
@@ -1081,12 +1088,12 @@ PHP_FUNCTION(mysqli_init)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)mysql;
+ mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;
if (!getThis() || !instanceof_function(Z_OBJCE_P(getThis()), mysqli_link_class_entry TSRMLS_CC)) {
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);
} else {
((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;
- ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->valid = 1;
}
}
/* }}} */
@@ -1102,7 +1109,7 @@ PHP_FUNCTION(mysqli_insert_id)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
rc = mysql_insert_id(mysql->mysql);
MYSQLI_RETURN_LONG_LONG(rc)
}
@@ -1119,7 +1126,7 @@ PHP_FUNCTION(mysqli_kill)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_link, mysqli_link_class_entry, &processid) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_kill(mysql->mysql, processid)) {
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
@@ -1140,7 +1147,7 @@ PHP_FUNCTION(mysqli_set_local_infile_default)
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql->li_read) {
efree(Z_STRVAL_P(mysql->li_read));
@@ -1164,7 +1171,7 @@ PHP_FUNCTION(mysqli_set_local_infile_handler)
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
/* check callback function */
if (!zend_is_callable(callback_func, 0, &callback_name)) {
@@ -1190,7 +1197,7 @@ PHP_FUNCTION(mysqli_more_results)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (!mysql_more_results(mysql->mysql)) {
RETURN_FALSE;
@@ -1208,7 +1215,7 @@ PHP_FUNCTION(mysqli_next_result) {
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_next_result(mysql->mysql)) {
RETURN_FALSE;
@@ -1227,7 +1234,7 @@ PHP_FUNCTION(mysqli_num_fields)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_num_fields(result));
}
@@ -1243,7 +1250,7 @@ PHP_FUNCTION(mysqli_num_rows)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_result, mysqli_result_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result");
+ MYSQLI_FETCH_RESOURCE(result, MYSQL_RES *, &mysql_result, "mysqli_result", MYSQLI_STATUS_VALID);
if (result->handle && result->handle->status == MYSQL_STATUS_USE_RESULT) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Function cannot be used with MYSQL_USE_RESULT");
@@ -1268,7 +1275,7 @@ PHP_FUNCTION(mysqli_options)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Olz", &mysql_link, mysqli_link_class_entry, &mysql_option, &mysql_value) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED);
switch (Z_TYPE_PP(&mysql_value)) {
case IS_STRING:
@@ -1301,7 +1308,7 @@ PHP_FUNCTION(mysqli_ping)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
rc = mysql_ping(mysql->mysql);
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
if (rc) {
@@ -1325,7 +1332,7 @@ PHP_FUNCTION(mysqli_prepare)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os",&mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql->mysql->status == MYSQL_STATUS_GET_RESULT) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "All data must be fetched before a new statement prepare takes place");
RETURN_FALSE;
@@ -1360,10 +1367,14 @@ PHP_FUNCTION(mysqli_prepare)
RETURN_FALSE;
}
+
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)stmt;
stmt->query = (query_len) ? (char *)emalloc(query_len + 1) : NULL;
strcpy(stmt->query, query);
+
+ /* change status */
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry);
}
/* }}} */
@@ -1377,7 +1388,6 @@ PHP_FUNCTION(mysqli_real_connect)
unsigned int hostname_len = 0, username_len = 0, passwd_len = 0, dbname_len = 0, socket_len = 0;
unsigned long port=0, flags=0;
zval *mysql_link;
- zval *object = getThis();
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O|sssslsl", &mysql_link, mysqli_link_class_entry,
&hostname, &hostname_len, &username, &username_len, &passwd, &passwd_len, &dbname, &dbname_len, &port, &socket, &socket_len,
@@ -1403,7 +1413,7 @@ PHP_FUNCTION(mysqli_real_connect)
}
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_INITIALIZED);
/* remove some insecure options */
flags ^= CLIENT_MULTI_STATEMENTS; /* don't allow multi_queries via connect parameter */
@@ -1416,23 +1426,24 @@ PHP_FUNCTION(mysqli_real_connect)
}
if (mysql_real_connect(mysql->mysql,hostname,username,passwd,dbname,port,socket,flags) == NULL) {
-
php_mysqli_set_error(mysql_errno(mysql->mysql), (char *) mysql_error(mysql->mysql) TSRMLS_CC);
php_mysqli_throw_sql_exception( mysql->mysql->net.sqlstate, mysql->mysql->net.last_errno TSRMLS_CC,
"%s", mysql->mysql->net.last_error);
+ /* change status */
+ MYSQLI_SET_STATUS(&mysql_link, MYSQLI_STATUS_INITIALIZED);
RETURN_FALSE;
}
+
php_mysqli_set_error(mysql_errno(mysql->mysql), (char *)mysql_error(mysql->mysql) TSRMLS_CC);
mysql->mysql->reconnect = MyG(reconnect);
/* set our own local_infile handler */
php_set_local_infile_handler_default(mysql);
-
- if (object) {
- ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->valid = 1;
- }
+
+ /* change status */
+ MYSQLI_SET_STATUS(&mysql_link, MYSQLI_STATUS_VALID);
RETURN_TRUE;
}
@@ -1450,7 +1461,7 @@ PHP_FUNCTION(mysqli_real_query)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
MYSQLI_DISABLE_MQ; /* disable multi statements/queries */
@@ -1480,7 +1491,7 @@ PHP_FUNCTION(mysqli_real_escape_string) {
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &escapestr, &escapestr_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
newstr = safe_emalloc(2, escapestr_len, 1);
newstr_len = mysql_real_escape_string(mysql->mysql, newstr, escapestr, escapestr_len);
@@ -1500,7 +1511,7 @@ PHP_FUNCTION(mysqli_rollback)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_rollback(mysql->mysql)) {
RETURN_FALSE;
@@ -1523,7 +1534,7 @@ PHP_FUNCTION(mysqli_stmt_send_long_data)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ols", &mysql_stmt, mysqli_stmt_class_entry, &param_nr, &data, &data_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if (param_nr < 0) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid parameter number");
@@ -1548,7 +1559,7 @@ PHP_FUNCTION(mysqli_stmt_affected_rows)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
rc = mysql_stmt_affected_rows(stmt->stmt);
if (rc == (my_ulonglong) -1) {
@@ -1568,13 +1579,13 @@ PHP_FUNCTION(mysqli_stmt_close)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
+
mysql_stmt_close(stmt->stmt);
stmt->stmt = NULL;
php_clear_stmt_bind(stmt);
MYSQLI_CLEAR_RESOURCE(&mysql_stmt);
RETURN_TRUE;
-
}
/* }}} */
@@ -1594,7 +1605,7 @@ PHP_FUNCTION(mysqli_stmt_data_seek)
RETURN_FALSE;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
mysql_stmt_data_seek(stmt->stmt, offset);
return;
@@ -1611,7 +1622,7 @@ PHP_FUNCTION(mysqli_stmt_field_count)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_stmt_field_count(stmt->stmt));
}
@@ -1628,7 +1639,7 @@ PHP_FUNCTION(mysqli_stmt_free_result)
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
mysql_stmt_free_result(stmt->stmt);
@@ -1647,7 +1658,7 @@ PHP_FUNCTION(mysqli_stmt_insert_id)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
rc = mysql_stmt_insert_id(stmt->stmt);
MYSQLI_RETURN_LONG_LONG(rc)
}
@@ -1663,7 +1674,7 @@ PHP_FUNCTION(mysqli_stmt_param_count)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_stmt_param_count(stmt->stmt));
}
@@ -1680,7 +1691,7 @@ PHP_FUNCTION(mysqli_stmt_reset)
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if (mysql_stmt_reset(stmt->stmt)) {
RETURN_FALSE;
@@ -1701,7 +1712,7 @@ PHP_FUNCTION(mysqli_stmt_num_rows)
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
rc = mysql_stmt_num_rows(stmt->stmt);
MYSQLI_RETURN_LONG_LONG(rc)
@@ -1721,7 +1732,7 @@ PHP_FUNCTION(mysqli_select_db)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &dbname, &dbname_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (!mysql_select_db(mysql->mysql, dbname)) {
RETURN_TRUE;
@@ -1742,7 +1753,7 @@ PHP_FUNCTION(mysqli_sqlstate)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_sqlstate(mysql->mysql),1);
}
/* }}} */
@@ -1759,7 +1770,7 @@ PHP_FUNCTION(mysqli_ssl_set)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Osssss", &mysql_link, mysqli_link_class_entry, &ssl_parm[0], &ssl_parm_len[0], &ssl_parm[1], &ssl_parm_len[1], &ssl_parm[2], &ssl_parm_len[2], &ssl_parm[3], &ssl_parm_len[3], &ssl_parm[4], &ssl_parm_len[4]) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
for (i=0; i < 5; i++) {
if (!ssl_parm_len[i]) {
@@ -1784,7 +1795,7 @@ PHP_FUNCTION(mysqli_stat)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if ((stat = (char *)mysql_stat(mysql->mysql))) {
RETURN_STRING(stat, 1);
@@ -1807,7 +1818,7 @@ PHP_FUNCTION(mysqli_stmt_attr_set)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Oll", &mysql_stmt, mysqli_stmt_class_entry, &attr, &mode) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if ((rc = mysql_stmt_attr_set(stmt->stmt, attr, (void *)&mode))) {
RETURN_FALSE;
@@ -1822,14 +1833,14 @@ PHP_FUNCTION(mysqli_stmt_attr_get)
{
MY_STMT *stmt;
zval *mysql_stmt;
- ulong value;
+ ulong value = 0;
ulong attr;
int rc;
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Ol", &mysql_stmt, mysqli_stmt_class_entry, &attr) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if ((rc = mysql_stmt_attr_get(stmt->stmt, attr, &value))) {
RETURN_FALSE;
@@ -1848,7 +1859,7 @@ PHP_FUNCTION(mysqli_stmt_errno)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_INITIALIZED);
RETURN_LONG(mysql_stmt_errno(stmt->stmt));
}
@@ -1864,7 +1875,7 @@ PHP_FUNCTION(mysqli_stmt_error)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_INITIALIZED);
RETURN_STRING((char *)mysql_stmt_error(stmt->stmt),1);
}
@@ -1883,7 +1894,7 @@ PHP_FUNCTION(mysqli_stmt_init)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O",&mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
stmt = (MY_STMT *)ecalloc(1,sizeof(MY_STMT));
@@ -1893,6 +1904,7 @@ PHP_FUNCTION(mysqli_stmt_init)
}
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
+ mysqli_resource->status = MYSQLI_STATUS_INITIALIZED;
mysqli_resource->ptr = (void *)stmt;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_stmt_class_entry);
}
@@ -1911,12 +1923,14 @@ PHP_FUNCTION(mysqli_stmt_prepare)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_stmt, mysqli_stmt_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_INITIALIZED);
if (mysql_stmt_prepare(stmt->stmt, query, query_len)) {
MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
RETURN_FALSE;
}
+ /* change status */
+ MYSQLI_SET_STATUS(&mysql_stmt, MYSQLI_STATUS_VALID);
RETURN_TRUE;
}
/* }}} */
@@ -1933,7 +1947,7 @@ PHP_FUNCTION(mysqli_stmt_result_metadata)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
if (!(result = mysql_stmt_result_metadata(stmt->stmt))){
MYSQLI_REPORT_STMT_ERROR(stmt->stmt);
@@ -1942,6 +1956,7 @@ PHP_FUNCTION(mysqli_stmt_result_metadata)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
}
/* }}} */
@@ -1957,7 +1972,7 @@ PHP_FUNCTION(mysqli_stmt_store_result)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
/*
If the user wants to store the data and we have BLOBs/TEXTs we try to allocate
@@ -1992,7 +2007,7 @@ PHP_FUNCTION(mysqli_stmt_sqlstate)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_stmt, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &mysql_stmt, "mysqli_stmt", MYSQLI_STATUS_VALID);
RETURN_STRING((char *)mysql_stmt_sqlstate(stmt->stmt),1);
}
@@ -2010,7 +2025,7 @@ PHP_FUNCTION(mysqli_store_result)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (!(result = mysql_store_result(mysql->mysql))) {
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
@@ -2019,8 +2034,10 @@ PHP_FUNCTION(mysqli_store_result)
if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {
php_mysqli_report_index("from previous query", mysql->mysql->server_status TSRMLS_CC);
}
+
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
}
/* }}} */
@@ -2035,7 +2052,7 @@ PHP_FUNCTION(mysqli_thread_id)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_thread_id(mysql->mysql));
}
@@ -2062,7 +2079,7 @@ PHP_FUNCTION(mysqli_use_result)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (!(result = mysql_use_result(mysql->mysql))) {
MYSQLI_REPORT_MYSQL_ERROR(mysql->mysql);
@@ -2072,9 +2089,9 @@ PHP_FUNCTION(mysqli_use_result)
if (MyG(report_mode) & MYSQLI_REPORT_INDEX) {
php_mysqli_report_index("from previous query", mysql->mysql->server_status TSRMLS_CC);
}
-
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
}
/* }}} */
@@ -2089,7 +2106,7 @@ PHP_FUNCTION(mysqli_warning_count)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_warning_count(mysql->mysql));
}
diff --git a/ext/mysqli/mysqli_driver.c b/ext/mysqli/mysqli_driver.c
index 8e473eab0..d1c776ad1 100644
--- a/ext/mysqli/mysqli_driver.c
+++ b/ext/mysqli/mysqli_driver.c
@@ -130,7 +130,6 @@ MAP_PROPERTY_MYG_LONG_READ(driver_report_read, report_mode);
ZEND_FUNCTION(mysqli_driver_construct)
{
-
}
mysqli_property_entry mysqli_driver_property_entries[] = {
diff --git a/ext/mysqli/mysqli_nonapi.c b/ext/mysqli/mysqli_nonapi.c
index 2c408a99a..1866beb49 100644
--- a/ext/mysqli/mysqli_nonapi.c
+++ b/ext/mysqli/mysqli_nonapi.c
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli_nonapi.c,v 1.54.2.5 2006/01/01 12:50:09 sniper Exp $
+ $Id: mysqli_nonapi.c,v 1.54.2.7 2006/03/24 09:32:24 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -75,10 +75,11 @@ PHP_FUNCTION(mysqli_connect)
}
#ifdef HAVE_EMBEDDED_MYSQLI
- if (hostname_len && hostname) {
+ if (strcmp(hostname, ":embedded")) {
unsigned int external=1;
mysql_options(mysql->mysql, MYSQL_OPT_USE_REMOTE_CONNECTION, (char *)&external);
} else {
+ hostname[0] = '\0';
mysql_options(mysql->mysql, MYSQL_OPT_USE_EMBEDDED_CONNECTION, 0);
}
#endif
@@ -111,12 +112,12 @@ PHP_FUNCTION(mysqli_connect)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)mysql;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
if (!object || !instanceof_function(Z_OBJCE_P(object), mysqli_link_class_entry TSRMLS_CC)) {
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_link_class_entry);
} else {
((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->ptr = mysqli_resource;
- ((mysqli_object *) zend_object_store_get_object(object TSRMLS_CC))->valid = 1;
}
}
/* }}} */
@@ -177,7 +178,7 @@ PHP_FUNCTION(mysqli_multi_query)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
MYSQLI_ENABLE_MQ;
if (mysql_real_query(mysql->mysql, query, query_len)) {
@@ -228,7 +229,7 @@ PHP_FUNCTION(mysqli_query)
RETURN_FALSE;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
MYSQLI_DISABLE_MQ;
@@ -259,6 +260,7 @@ PHP_FUNCTION(mysqli_query)
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
mysqli_resource->ptr = (void *)result;
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_result_class_entry);
}
/* }}} */
@@ -274,7 +276,7 @@ PHP_FUNCTION(mysqli_get_warnings)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_warning_count(mysql->mysql)) {
w = php_get_warnings(mysql->mysql);
@@ -298,7 +300,7 @@ PHP_FUNCTION(mysqli_stmt_get_warnings)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &stmt_link, mysqli_stmt_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT*, &stmt_link, "mysqli_stmt", 1);
if (mysql_warning_count(stmt->stmt->mysql)) {
w = php_get_warnings(stmt->stmt->mysql);
@@ -324,7 +326,7 @@ PHP_FUNCTION(mysqli_set_charset)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &cs_name, &len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_set_character_set(mysql->mysql, cs_name)) {
RETURN_FALSE;
@@ -346,7 +348,7 @@ PHP_FUNCTION(mysqli_get_charset)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL*, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
object_init(return_value);
diff --git a/ext/mysqli/mysqli_prop.c b/ext/mysqli/mysqli_prop.c
index 664fe51d2..2ed0076cb 100644
--- a/ext/mysqli/mysqli_prop.c
+++ b/ext/mysqli/mysqli_prop.c
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli_prop.c,v 1.23.2.1 2006/01/01 12:50:09 sniper Exp $
+ $Id: mysqli_prop.c,v 1.23.2.5 2006/04/05 12:17:08 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -29,30 +29,49 @@
#include "ext/standard/info.h"
#include "php_mysqli.h"
-#define CHECK_OBJECT() \
- if (!obj->valid) { \
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Property access is not allowed yet. Call the default constructor of the object first"); \
+#define CHECK_STATUS(value) \
+ if (((MYSQLI_RESOURCE *)obj->ptr)->status < value ) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Property access is not allowed yet"); \
ZVAL_NULL(*retval); \
return SUCCESS; \
} \
-#define MYSQLI_GET_MYSQL() \
+#define MYSQLI_GET_MYSQL(statusval) \
MYSQL *p; \
ALLOC_ZVAL(*retval);\
-CHECK_OBJECT();\
-p = (MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->mysql;
+if (!obj->ptr || !(MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", obj->zo.ce->name);\
+ ZVAL_NULL(*retval);\
+ return SUCCESS; \
+} else { \
+ CHECK_STATUS(statusval);\
+ p = (MYSQL *)((MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->mysql;\
+}
-#define MYSQLI_GET_RESULT() \
+#define MYSQLI_GET_RESULT(statusval) \
MYSQL_RES *p; \
ALLOC_ZVAL(*retval);\
-CHECK_OBJECT();\
-p = (MYSQL_RES *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr
+if (!obj->ptr) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", obj->zo.ce->name);\
+ ZVAL_NULL(*retval);\
+ return SUCCESS; \
+} else { \
+ CHECK_STATUS(statusval);\
+ p = (MYSQL_RES *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr; \
+}
+
-#define MYSQLI_GET_STMT() \
+#define MYSQLI_GET_STMT(statusval) \
MYSQL_STMT *p; \
ALLOC_ZVAL(*retval);\
-CHECK_OBJECT();\
-p = (MYSQL_STMT *)((MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->stmt
+if (!obj->ptr) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", obj->zo.ce->name);\
+ ZVAL_NULL(*retval);\
+ return SUCCESS; \
+} else { \
+ CHECK_STATUS(statusval);\
+ p = (MYSQL_STMT *)((MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr)->stmt;\
+}
#define MYSQLI_MAP_PROPERTY_FUNC_LONG( __func, __int_func, __get_type, __ret_type)\
static int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
@@ -67,7 +86,7 @@ static int __func(mysqli_object *obj, zval **retval TSRMLS_DC) \
ZVAL_LONG(*retval, l);\
} else { \
char ret[40]; \
- sprintf(ret, "%llu", (my_ulonglong)l); \
+ sprintf(ret, MYSQLI_LLU_SPEC, (my_ulonglong)l); \
ZVAL_STRING(*retval, ret, 1); \
} \
}\
@@ -105,6 +124,7 @@ static int link_client_version_read(mysqli_object *obj, zval **retval TSRMLS_DC)
static int link_client_info_read(mysqli_object *obj, zval **retval TSRMLS_DC)
{
ALLOC_ZVAL(*retval);
+ CHECK_STATUS(MYSQLI_STATUS_INITIALIZED);
ZVAL_STRING(*retval, MYSQL_SERVER_VERSION, 1);
return SUCCESS;
}
@@ -114,6 +134,7 @@ static int link_client_info_read(mysqli_object *obj, zval **retval TSRMLS_DC)
static int link_connect_errno_read(mysqli_object *obj, zval **retval TSRMLS_DC)
{
ALLOC_ZVAL(*retval);
+ CHECK_STATUS(MYSQLI_STATUS_INITIALIZED);
ZVAL_LONG(*retval, (long)MyG(error_no));
return SUCCESS;
}
@@ -123,6 +144,7 @@ static int link_connect_errno_read(mysqli_object *obj, zval **retval TSRMLS_DC)
static int link_connect_error_read(mysqli_object *obj, zval **retval TSRMLS_DC)
{
ALLOC_ZVAL(*retval);
+ CHECK_STATUS(MYSQLI_STATUS_INITIALIZED);
ZVAL_STRING(*retval, MyG(error_msg), 1);
return SUCCESS;
}
@@ -135,41 +157,46 @@ static int link_affected_rows_read(mysqli_object *obj, zval **retval TSRMLS_DC)
my_ulonglong rc;
ALLOC_ZVAL(*retval);
- CHECK_OBJECT();
mysql = (MY_MYSQL *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
- rc = mysql_affected_rows(mysql->mysql);
-
- if (rc == (my_ulonglong)-1) {
- ZVAL_LONG(*retval, -1);
- return SUCCESS;
- }
-
- if (rc < LONG_MAX) {
- ZVAL_LONG(*retval, rc);
+
+ if (!mysql) {
+ ZVAL_NULL(*retval);
} else {
- char ret[40];
- sprintf(ret, "%llu", (my_ulonglong) rc);
- ZVAL_STRING(*retval, ret, 1);
+ CHECK_STATUS(MYSQLI_STATUS_VALID);
+
+ rc = mysql_affected_rows(mysql->mysql);
+
+ if (rc == (my_ulonglong)-1) {
+ ZVAL_LONG(*retval, -1);
+ return SUCCESS;
+ }
+
+ if (rc < LONG_MAX) {
+ ZVAL_LONG(*retval, rc);
+ } else {
+ char ret[40];
+ sprintf(ret, MYSQLI_LLU_SPEC, (my_ulonglong) rc);
+ ZVAL_STRING(*retval, ret, 1);
+ }
}
-
return SUCCESS;
}
/* }}} */
/* link properties */
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_errno_read, mysql_errno, MYSQLI_GET_MYSQL(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_STRING(link_error_read, mysql_error, MYSQLI_GET_MYSQL());
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_field_count_read, mysql_field_count, MYSQLI_GET_MYSQL(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_STRING(link_host_info_read, mysql_get_host_info, MYSQLI_GET_MYSQL());
-MYSQLI_MAP_PROPERTY_FUNC_STRING(link_info_read, mysql_info, MYSQLI_GET_MYSQL());
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_insert_id_read, mysql_insert_id, MYSQLI_GET_MYSQL(), my_ulonglong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_protocol_version_read, mysql_get_proto_info, MYSQLI_GET_MYSQL(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_STRING(link_server_info_read, mysql_get_server_info, MYSQLI_GET_MYSQL());
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_server_version_read, mysql_get_server_version, MYSQLI_GET_MYSQL(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_STRING(link_sqlstate_read, mysql_sqlstate, MYSQLI_GET_MYSQL());
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_thread_id_read, mysql_thread_id, MYSQLI_GET_MYSQL(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(link_warning_count_read, mysql_warning_count, MYSQLI_GET_MYSQL(), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_errno_read, mysql_errno, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_STRING(link_error_read, mysql_error, MYSQLI_GET_MYSQL(MYSQLI_STATUS_INITIALIZED));
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_field_count_read, mysql_field_count, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_STRING(link_host_info_read, mysql_get_host_info, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID));
+MYSQLI_MAP_PROPERTY_FUNC_STRING(link_info_read, mysql_info, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID));
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_insert_id_read, mysql_insert_id, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), my_ulonglong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_protocol_version_read, mysql_get_proto_info, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_STRING(link_server_info_read, mysql_get_server_info, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID));
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_server_version_read, mysql_get_server_version, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_STRING(link_sqlstate_read, mysql_sqlstate, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID));
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_thread_id_read, mysql_thread_id, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(link_warning_count_read, mysql_warning_count, MYSQLI_GET_MYSQL(MYSQLI_STATUS_VALID), ulong);
/* result properties */
/* {{{ property result_type_read */
@@ -178,7 +205,7 @@ static int result_type_read(mysqli_object *obj, zval **retval TSRMLS_DC)
MYSQL_RES *p;
ALLOC_ZVAL(*retval);
- CHECK_OBJECT();
+ CHECK_STATUS(MYSQLI_STATUS_VALID);
p = (MYSQL_RES *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
if (!p) {
@@ -196,15 +223,15 @@ static int result_lengths_read(mysqli_object *obj, zval **retval TSRMLS_DC)
MYSQL_RES *p;
ALLOC_ZVAL(*retval);
- CHECK_OBJECT();
+ CHECK_STATUS(MYSQLI_STATUS_VALID);
p = (MYSQL_RES *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
if (!p || !p->field_count) {
ZVAL_NULL(*retval);
} else {
ulong i;
zval *l;
-
+
array_init(*retval);
for (i=0; i < p->field_count; i++) {
@@ -218,9 +245,9 @@ static int result_lengths_read(mysqli_object *obj, zval **retval TSRMLS_DC)
/* }}} */
-MYSQLI_MAP_PROPERTY_FUNC_LONG(result_current_field_read, mysql_field_tell, MYSQLI_GET_RESULT(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(result_field_count_read, mysql_num_fields, MYSQLI_GET_RESULT(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(result_num_rows_read, mysql_num_rows, MYSQLI_GET_RESULT(), my_ulonglong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(result_current_field_read, mysql_field_tell, MYSQLI_GET_RESULT(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(result_field_count_read, mysql_num_fields, MYSQLI_GET_RESULT(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(result_num_rows_read, mysql_num_rows, MYSQLI_GET_RESULT(MYSQLI_STATUS_VALID), my_ulonglong);
/* statement properties */
@@ -230,7 +257,7 @@ static int stmt_id_read(mysqli_object *obj, zval **retval TSRMLS_DC)
MY_STMT *p;
ALLOC_ZVAL(*retval);
- CHECK_OBJECT();
+ CHECK_STATUS(MYSQLI_STATUS_VALID);
p = (MY_STMT*)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
@@ -246,39 +273,43 @@ static int stmt_id_read(mysqli_object *obj, zval **retval TSRMLS_DC)
/* {{{ property stmt_affected_rows_read */
static int stmt_affected_rows_read(mysqli_object *obj, zval **retval TSRMLS_DC)
{
- MY_STMT *stmt;
+ MY_STMT *p;
my_ulonglong rc;
ALLOC_ZVAL(*retval);
- CHECK_OBJECT();
+ CHECK_STATUS(MYSQLI_STATUS_VALID);
- stmt = (MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
- rc = mysql_stmt_affected_rows(stmt->stmt);
+ p = (MY_STMT *)((MYSQLI_RESOURCE *)(obj->ptr))->ptr;
- if (rc == (my_ulonglong)-1) {
- ZVAL_LONG(*retval, -1);
- return SUCCESS;
- }
-
- if (rc < LONG_MAX) {
- ZVAL_LONG(*retval, rc);
+ if (!p) {
+ ZVAL_NULL(*retval);
} else {
- char ret[40];
- sprintf(ret, "%llu", (my_ulonglong) rc);
- ZVAL_STRING(*retval, ret, 1);
+ rc = mysql_stmt_affected_rows(p->stmt);
+
+ if (rc == (my_ulonglong)-1) {
+ ZVAL_LONG(*retval, -1);
+ return SUCCESS;
+ }
+
+ if (rc < LONG_MAX) {
+ ZVAL_LONG(*retval, rc);
+ } else {
+ char ret[40];
+ sprintf(ret, MYSQLI_LLU_SPEC, (my_ulonglong) rc);
+ ZVAL_STRING(*retval, ret, 1);
+ }
}
-
return SUCCESS;
}
/* }}} */
-MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_insert_id_read, mysql_stmt_insert_id, MYSQLI_GET_STMT(), my_ulonglong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_num_rows_read, mysql_stmt_num_rows, MYSQLI_GET_STMT(), my_ulonglong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_param_count_read, mysql_stmt_param_count, MYSQLI_GET_STMT(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_field_count_read, mysql_stmt_field_count, MYSQLI_GET_STMT(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_errno_read, mysql_stmt_errno, MYSQLI_GET_STMT(), ulong);
-MYSQLI_MAP_PROPERTY_FUNC_STRING(stmt_error_read, mysql_stmt_error, MYSQLI_GET_STMT());
-MYSQLI_MAP_PROPERTY_FUNC_STRING(stmt_sqlstate_read, mysql_stmt_sqlstate, MYSQLI_GET_STMT());
+MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_insert_id_read, mysql_stmt_insert_id, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_num_rows_read, mysql_stmt_num_rows, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), my_ulonglong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_param_count_read, mysql_stmt_param_count, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_field_count_read, mysql_stmt_field_count, MYSQLI_GET_STMT(MYSQLI_STATUS_VALID), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_LONG(stmt_errno_read, mysql_stmt_errno, MYSQLI_GET_STMT(MYSQLI_STATUS_INITIALIZED), ulong);
+MYSQLI_MAP_PROPERTY_FUNC_STRING(stmt_error_read, mysql_stmt_error, MYSQLI_GET_STMT(MYSQLI_STATUS_INITIALIZED));
+MYSQLI_MAP_PROPERTY_FUNC_STRING(stmt_sqlstate_read, mysql_stmt_sqlstate, MYSQLI_GET_STMT(MYSQLI_STATUS_INITIALIZED));
/* }}} */
mysqli_property_entry mysqli_link_property_entries[] = {
diff --git a/ext/mysqli/mysqli_repl.c b/ext/mysqli/mysqli_repl.c
index 1f767d1ee..fc47cea02 100644
--- a/ext/mysqli/mysqli_repl.c
+++ b/ext/mysqli/mysqli_repl.c
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: mysqli_repl.c,v 1.3.2.1 2006/01/01 12:50:09 sniper Exp $
+ $Id: mysqli_repl.c,v 1.3.2.2 2006/03/24 09:32:24 georg Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -39,7 +39,7 @@ PHP_FUNCTION(mysqli_disable_reads_from_master)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
mysql_disable_reads_from_master(mysql);
RETURN_TRUE;
}
@@ -55,7 +55,7 @@ PHP_FUNCTION(mysqli_disable_rpl_parse)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
mysql_disable_rpl_parse(mysql);
RETURN_TRUE;
}
@@ -71,7 +71,7 @@ PHP_FUNCTION(mysqli_enable_reads_from_master)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
mysql_enable_reads_from_master(mysql);
RETURN_TRUE;
@@ -88,7 +88,7 @@ PHP_FUNCTION(mysqli_enable_rpl_parse)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
mysql_enable_rpl_parse(mysql);
RETURN_TRUE;
@@ -106,7 +106,7 @@ PHP_FUNCTION(mysqli_master_query) {
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_master_query(mysql, query, query_len)) {
RETURN_FALSE;
@@ -125,7 +125,7 @@ PHP_FUNCTION(mysqli_rpl_parse_enabled)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_rpl_parse_enabled(mysql));
}
@@ -141,7 +141,7 @@ PHP_FUNCTION(mysqli_rpl_probe)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "O", &mysql_link, mysqli_link_class_entry) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_rpl_probe(mysql)) {
@@ -163,7 +163,7 @@ PHP_FUNCTION(mysqli_rpl_query_type)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
RETURN_LONG(mysql_rpl_query_type(query, query_len));
}
@@ -181,7 +181,7 @@ PHP_FUNCTION(mysqli_send_query)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_send_query(mysql, query, query_len)) {
RETURN_FALSE;
@@ -202,7 +202,7 @@ PHP_FUNCTION(mysqli_slave_query)
if (zend_parse_method_parameters(ZEND_NUM_ARGS() TSRMLS_CC, getThis(), "Os", &mysql_link, mysqli_link_class_entry, &query, &query_len) == FAILURE) {
return;
}
- MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MYSQL *, &mysql_link, "mysqli_link", MYSQLI_STATUS_VALID);
if (mysql_slave_query(mysql, query, query_len)) {
RETURN_FALSE;
diff --git a/ext/mysqli/mysqli_warning.c b/ext/mysqli/mysqli_warning.c
index 427822bdc..733eab149 100644
--- a/ext/mysqli/mysqli_warning.c
+++ b/ext/mysqli/mysqli_warning.c
@@ -100,7 +100,7 @@ PHP_METHOD(mysqli_warning, next)
return;
}
- MYSQLI_FETCH_RESOURCE(w, MYSQLI_WARNING *, &mysqli_warning, "mysqli_warning");
+ MYSQLI_FETCH_RESOURCE(w, MYSQLI_WARNING *, &mysqli_warning, "mysqli_warning", MYSQLI_STATUS_VALID);
if (w->next) {
w = w->next;
@@ -182,11 +182,11 @@ PHP_METHOD(mysqli_warning, __construct)
if (obj->zo.ce == mysqli_link_class_entry) {
MY_MYSQL *mysql;
- MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &z, "mysqli_link");
+ MYSQLI_FETCH_RESOURCE(mysql, MY_MYSQL *, &z, "mysqli_link", MYSQLI_STATUS_VALID);
hdl = mysql->mysql;
} else if (obj->zo.ce == mysqli_stmt_class_entry) {
MY_STMT *stmt;
- MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &z, "mysqli_stmt");
+ MYSQLI_FETCH_RESOURCE(stmt, MY_STMT *, &z, "mysqli_stmt", MYSQLI_STATUS_VALID);
hdl = stmt->stmt->mysql;
} else {
RETURN_FALSE;
@@ -199,13 +199,13 @@ PHP_METHOD(mysqli_warning, __construct)
}
mysqli_resource = (MYSQLI_RESOURCE *)ecalloc (1, sizeof(MYSQLI_RESOURCE));
+ mysqli_resource->status = MYSQLI_STATUS_VALID;
mysqli_resource->ptr = mysqli_resource->info = (void *)w;
if (!getThis() || !instanceof_function(Z_OBJCE_P(getThis()), mysqli_warning_class_entry TSRMLS_CC)) {
MYSQLI_RETURN_RESOURCE(mysqli_resource, mysqli_warning_class_entry);
} else {
((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->ptr = mysqli_resource;
- ((mysqli_object *) zend_object_store_get_object(getThis() TSRMLS_CC))->valid = 1;
}
}
diff --git a/ext/mysqli/php_mysqli.h b/ext/mysqli/php_mysqli.h
index d2a96f2e6..78cbddcc5 100644
--- a/ext/mysqli/php_mysqli.h
+++ b/ext/mysqli/php_mysqli.h
@@ -15,7 +15,7 @@
| Author: Georg Richter <georg@php.net> |
+----------------------------------------------------------------------+
- $Id: php_mysqli.h,v 1.54.2.5 2006/01/01 12:50:09 sniper Exp $
+ $Id: php_mysqli.h,v 1.54.2.7 2006/04/05 12:17:08 georg Exp $
*/
/* A little hack to prevent build break, when mysql is used together with
@@ -36,12 +36,20 @@
#define HAVE_MYSQLI_SET_CHARSET
#endif
+
#include <errmsg.h>
#ifndef PHP_MYSQLI_H
#define PHP_MYSQLI_H
-#define MYSQLI_VERSION_ID 101008
+#define MYSQLI_VERSION_ID 101009
+
+enum mysqli_status {
+ MYSQLI_STATUS_UNKNOWN=0,
+ MYSQLI_STATUS_CLEARED,
+ MYSQLI_STATUS_INITIALIZED,
+ MYSQLI_STATUS_VALID
+};
typedef struct {
ulong buflen;
@@ -57,17 +65,17 @@ typedef struct {
} BIND_BUFFER;
typedef struct {
- MYSQL_STMT *stmt;
- BIND_BUFFER param;
- BIND_BUFFER result;
- char *query;
+ MYSQL_STMT *stmt;
+ BIND_BUFFER param;
+ BIND_BUFFER result;
+ char *query;
} MY_STMT;
typedef struct {
- MYSQL *mysql;
- zval *li_read;
- php_stream *li_stream;
- unsigned int multi_query;
+ MYSQL *mysql;
+ zval *li_read;
+ php_stream *li_stream;
+ unsigned int multi_query;
} MY_MYSQL;
typedef struct {
@@ -77,15 +85,15 @@ typedef struct {
} PROFILER;
typedef struct {
- void *ptr; /* resource: (mysql, result, stmt) */
- void *info; /* additional buffer */
+ void *ptr; /* resource: (mysql, result, stmt) */
+ void *info; /* additional buffer */
+ enum mysqli_status status;
} MYSQLI_RESOURCE;
typedef struct _mysqli_object {
- zend_object zo;
- void *ptr;
- char valid;
- HashTable *prop_handler;
+ zend_object zo;
+ void *ptr;
+ HashTable *prop_handler;
} mysqli_object; /* extends zend_object */
typedef struct {
@@ -110,8 +118,12 @@ typedef struct {
#ifdef PHP_WIN32
#define PHP_MYSQLI_API __declspec(dllexport)
+#define MYSQLI_LLU_SPEC "%I64u"
+#define MYSQLI_LL_SPEC "%I64d"
#else
#define PHP_MYSQLI_API
+#define MYSQLI_LLU_SPEC "%llu"
+#define MYSQLI_LL_SPEC "%lld"
#endif
#ifdef ZTS
@@ -181,7 +193,6 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
#define MYSQLI_REGISTER_RESOURCE_EX(__ptr, __zval, __ce) \
((mysqli_object *) zend_object_store_get_object(__zval TSRMLS_CC))->ptr = __ptr; \
- ((mysqli_object *) zend_object_store_get_object(__zval TSRMLS_CC))->valid = 1;
#define MYSQLI_RETURN_RESOURCE(__ptr, __ce) \
Z_TYPE_P(return_value) = IS_OBJECT; \
@@ -199,7 +210,7 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
MYSQLI_REGISTER_RESOURCE_EX(__ptr, object, __ce)\
}
-#define MYSQLI_FETCH_RESOURCE(__ptr, __type, __id, __name) \
+#define MYSQLI_FETCH_RESOURCE(__ptr, __type, __id, __name, __check) \
{ \
MYSQLI_RESOURCE *my_res; \
mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
@@ -207,19 +218,19 @@ PHP_MYSQLI_EXPORT(zend_object_value) mysqli_objects_new(zend_class_entry * TSRML
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Couldn't fetch %s", intern->zo.ce->name);\
RETURN_NULL();\
}\
- if (!intern->valid) { \
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid resource %s", intern->zo.ce->name); \
- RETURN_NULL(); \
- } \
__ptr = (__type)my_res->ptr; \
- if (!strcmp((char *)__name, "mysqli_stmt")) {\
- if (!((MY_STMT *)__ptr)->stmt->mysql) {\
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Statement isn't valid anymore");\
- RETURN_NULL();\
- }\
+ if (__check && my_res->status < __check) { \
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "invalid object or resource %s\n", intern->zo.ce->name); \
+ RETURN_NULL();\
}\
}
+#define MYSQLI_SET_STATUS(__id, __value) \
+{ \
+ mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
+ ((MYSQLI_RESOURCE *)intern->ptr)->status = __value; \
+} \
+
#define MYSQLI_CLEAR_RESOURCE(__id) \
{ \
mysqli_object *intern = (mysqli_object *)zend_object_store_get_object(*(__id) TSRMLS_CC);\
diff --git a/ext/mysqli/tests/002.phpt b/ext/mysqli/tests/002.phpt
index fa4e60e18..301af9893 100644
--- a/ext/mysqli/tests/002.phpt
+++ b/ext/mysqli/tests/002.phpt
@@ -8,6 +8,7 @@ mysqli bind_result 1
/*** test mysqli_connect 127.0.0.1 ***/
$link = mysqli_connect($host, $user, $passwd);
+ $link->query("CREATE SCHEMA test");
mysqli_select_db($link, "test");
$rc = mysqli_query($link,"DROP TABLE IF EXISTS test_fetch_null");
diff --git a/ext/mysqli/tests/014.phpt b/ext/mysqli/tests/014.phpt
index a180bea75..d6591fcab 100644
--- a/ext/mysqli/tests/014.phpt
+++ b/ext/mysqli/tests/014.phpt
@@ -2,19 +2,18 @@
mysqli autocommit/commit/rollback
--SKIPIF--
<?php
+ require_once('skipif.inc');
include "connect.inc";
$link = mysqli_connect($host, $user, $passwd);
$result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'");
$row = mysqli_fetch_row($result);
mysqli_free_result($result);
mysqli_close($link);
-
if ($row[1] == "DISABLED" || $row[1] == "NO") {
printf ("skip innodb support is not installed or enabled.");
+ exit;
}
?>
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
--FILE--
<?php
include "connect.inc";
diff --git a/ext/mysqli/tests/015.phpt b/ext/mysqli/tests/015.phpt
index 26eb4383c..7620f3c43 100644
--- a/ext/mysqli/tests/015.phpt
+++ b/ext/mysqli/tests/015.phpt
@@ -2,6 +2,7 @@
mysqli autocommit/commit/rollback with myisam
--SKIPIF--
<?php
+ require_once('skipif.inc');
include "connect.inc";
$link = mysqli_connect($host, $user, $passwd);
$result = mysqli_query($link, "SHOW VARIABLES LIKE 'have_innodb'");
@@ -13,8 +14,6 @@ mysqli autocommit/commit/rollback with myisam
printf ("skip innodb support not installed.");
}
?>
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
--FILE--
<?php
include "connect.inc";
diff --git a/ext/mysqli/tests/017.phpt b/ext/mysqli/tests/017.phpt
index 54d11ef71..866a118a8 100644
--- a/ext/mysqli/tests/017.phpt
+++ b/ext/mysqli/tests/017.phpt
@@ -12,15 +12,13 @@ mysqli fetch functions
mysqli_select_db($link, "test");
- $stmt = mysqli_prepare($link, "SELECT current_user(), database(), 'foo'");
+ $stmt = mysqli_prepare($link, "SELECT md5('bar'), database(), 'foo'");
mysqli_bind_result($stmt, $c0, $c1, $c2);
mysqli_execute($stmt);
mysqli_fetch($stmt);
mysqli_stmt_close($stmt);
- $c0 = ($c0 == $user . "@" . $host) ? 1 : 0;
-
$test = array($c0, $c1, $c2);
var_dump($test);
@@ -29,7 +27,7 @@ mysqli fetch functions
--EXPECT--
array(3) {
[0]=>
- int(1)
+ string(32) "37b51d194a7513e45b56f6524f2d51f2"
[1]=>
string(4) "test"
[2]=>
diff --git a/ext/mysqli/tests/045.phpt b/ext/mysqli/tests/045.phpt
index 2f9490c28..dd491a697 100644
--- a/ext/mysqli/tests/045.phpt
+++ b/ext/mysqli/tests/045.phpt
@@ -2,6 +2,9 @@
mysqli_bind_result (SHOW)
--SKIPIF--
<?php
+ require_once('skipif.inc');
+ require_once('skipifemb.inc');
+
include "connect.inc";
$link = mysqli_connect($host, $user, $passwd);
@@ -15,9 +18,6 @@ mysqli_bind_result (SHOW)
$stmt->close();
mysqli_close($link);
?>
---SKIPIF--
-<?php require_once('skipif.inc'); ?>
-<?php require_once('skipifemb.inc'); ?>
--FILE--
<?php
include "connect.inc";
diff --git a/ext/mysqli/tests/049.phpt b/ext/mysqli/tests/049.phpt
index 8d16c3d4c..4bb5bfef4 100644
--- a/ext/mysqli/tests/049.phpt
+++ b/ext/mysqli/tests/049.phpt
@@ -11,14 +11,16 @@ mysql_fetch_row (OO-Style)
$mysql = mysqli_connect($host, $user, $passwd);
$mysql->select_db("test");
- $result = $mysql->query("SELECT CURRENT_USER()");
+ $result = $mysql->query("SELECT DATABASE()");
$row = $result->fetch_row();
$result->close();
- $ok = ($row[0] == $user . "@" . $host);
- var_dump($ok);
+ var_dump($row);
$mysql->close();
?>
--EXPECT--
-bool(true)
+array(1) {
+ [0]=>
+ string(4) "test"
+}
diff --git a/ext/mysqli/tests/bug34810.phpt b/ext/mysqli/tests/bug34810.phpt
index 12d6ce2e9..0b8a799a8 100644
--- a/ext/mysqli/tests/bug34810.phpt
+++ b/ext/mysqli/tests/bug34810.phpt
@@ -9,15 +9,16 @@ class DbConnection {
public function connect() {
include "connect.inc";
- $link = mysqli::connect($host, $user, $passwd);
+ $link = mysqli_connect($host, $user, $passwd);
var_dump($link);
- $link = mysqli::init();
+ $link = mysqli_init();
var_dump($link);
$mysql = new mysqli($host, $user, $passwd, "test");
$mysql->query("DROP TABLE IF EXISTS test_warnings");
$mysql->query("CREATE TABLE test_warnings (a int not null)");
+ $mysql->query("SET sql_mode=''");
$mysql->query("INSERT INTO test_warnings VALUES (1),(2),(NULL)");
var_dump(mysqli_warning::__construct($mysql));
}
diff --git a/ext/mysqli/tests/bug36420.phpt b/ext/mysqli/tests/bug36420.phpt
new file mode 100644
index 000000000..d35485e7f
--- /dev/null
+++ b/ext/mysqli/tests/bug36420.phpt
@@ -0,0 +1,25 @@
+--TEST--
+bug #36420 (segfault when access result->num_rows after calling result->close())
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+include "connect.inc";
+$mysqli = mysqli_connect($host, $user, $passwd);
+
+$result = $mysqli->query('select 1');
+
+$result->close();
+echo $result->num_rows;
+
+$mysqli->close();
+echo $result->num_rows;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: main(): Couldn't fetch mysqli_result in %s on line %d
+
+Warning: main(): Couldn't fetch mysqli_result in %s on line %d
+Done
diff --git a/ext/mysqli/tests/bug36745.phpt b/ext/mysqli/tests/bug36745.phpt
new file mode 100644
index 000000000..7bbfe8180
--- /dev/null
+++ b/ext/mysqli/tests/bug36745.phpt
@@ -0,0 +1,23 @@
+--TEST--
+bug #36745 : LOAD DATA LOCAL INFILE doesn't return correct error message
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+ include ("connect.inc");
+
+ /*** test mysqli_connect 127.0.0.1 ***/
+ $mysql = mysqli_connect($host, $user, $passwd, "test");
+
+ $mysql->query("DROP TABLE IF EXISTS litest");
+ $mysql->query("CREATE TABLE litest (a VARCHAR(20))");
+
+ $mysql->query("LOAD DATA LOCAL INFILE 'filenotfound' INTO TABLE litest");
+ var_dump($mysql->error);
+
+ $mysql->close();
+ printf("Done");
+?>
+--EXPECT--
+string(31) "Can't find file 'filenotfound'."
+Done
diff --git a/ext/mysqli/tests/bug36802.phpt b/ext/mysqli/tests/bug36802.phpt
new file mode 100644
index 000000000..69ef56bba
--- /dev/null
+++ b/ext/mysqli/tests/bug36802.phpt
@@ -0,0 +1,42 @@
+--TEST--
+bug #36802 : crashes with mysql_init
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+ class my_mysqli extends mysqli {
+ function __construct()
+ {
+ }
+ }
+
+ include "connect.inc";
+
+
+ $mysql = mysqli_init();
+
+ /* following operations should not work */
+ $x[0] = @$mysql->set_charset('utf8');
+ $x[1] = @$mysql->query("SELECT 'foo' FROM DUAL");
+
+ /* following operations should work */
+ $x[2] = ($mysql->client_version > 0);
+ $x[3] = $mysql->errno;
+ $mysql->close();
+
+
+
+ var_dump($x);
+?>
+--EXPECT--
+array(4) {
+ [0]=>
+ NULL
+ [1]=>
+ NULL
+ [2]=>
+ bool(true)
+ [3]=>
+ int(0)
+}
diff --git a/ext/mysqli/tests/connect.inc b/ext/mysqli/tests/connect.inc
index 2fcf4ff0f..2b4a67be2 100644
--- a/ext/mysqli/tests/connect.inc
+++ b/ext/mysqli/tests/connect.inc
@@ -10,14 +10,16 @@
$passwd = "";
} else {
$path = dirname(__FILE__);
- $host = $user = $passwd = NULL;
+ $host = ":embedded";
+ $user = $passwd = NULL;
$args = array(
"--datadir=$path",
"--innodb_data_home_dir=$path",
"--innodb_data_file_path=ibdata1:10M:autoextend",
"--log-error=$path/testrun.log"
);
- $driver->embedded_server_start(TRUE, $args, NULL);
+ $x = $driver->embedded_server_start(TRUE, $args, NULL);
+ var_dump($x);
}
?>
diff --git a/ext/oci8/config.m4 b/ext/oci8/config.m4
index 6b87a775b..3d084d7d3 100644
--- a/ext/oci8/config.m4
+++ b/ext/oci8/config.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.55.2.1 2005/12/01 13:39:42 tony2001 Exp $
+dnl $Id: config.m4,v 1.55.2.3 2006/04/05 14:06:00 tony2001 Exp $
dnl
if test -z "$SED"; then
@@ -69,7 +69,7 @@ AC_DEFUN([AC_OCI8IC_VERSION],[
AC_DEFUN([AC_OCI8_VERSION],[
AC_MSG_CHECKING([Oracle version])
if test -s "$OCI8_DIR/orainst/unix.rgs"; then
- OCI8_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI_SED 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
+ OCI8_VERSION=`grep '"ocommon"' $OCI8_DIR/orainst/unix.rgs | $PHP_OCI8_SED 's/[ ][ ]*/:/g' | cut -d: -f 6 | cut -c 2-4`
test -z "$OCI8_VERSION" && OCI8_VERSION=7.3
elif test -f $OCI8_DIR/$OCI8_LIB_DIR/libclntsh.$SHLIB_SUFFIX_NAME.10.1; then
OCI8_VERSION=10.1
@@ -232,6 +232,13 @@ if test "$PHP_OCI8" != "no" && test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
], [], [
-L$OCI8_DIR/$OCI8_LIB_DIR $OCI8_SHARED_LIBADD
])
+
+ PHP_CHECK_LIBRARY(clntsh, OCILobRead2,
+ [
+ AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])
+ ], [], [
+ -L$OCI8_DIR/$OCI8_LIB_DIR $OCI8_SHARED_LIBADD
+ ])
;;
@@ -242,6 +249,7 @@ if test "$PHP_OCI8" != "no" && test "$PHP_OCI8_INSTANT_CLIENT" = "no"; then
AC_DEFINE(HAVE_OCI_ENV_NLS_CREATE,1,[ ])
AC_DEFINE(HAVE_OCI_ENV_CREATE,1,[ ])
AC_DEFINE(HAVE_OCI_STMT_PREPARE2,1,[ ])
+ AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])
AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
AC_DEFINE(PHP_OCI8_HAVE_COLLECTIONS,1,[ ])
;;
@@ -332,7 +340,7 @@ dnl Header directory for manual installation
AC_MSG_ERROR([Oracle Instant Client SDK header files not found])
fi
- OCISYSLIBLIST=`echo "$OCI8INCDIR" | $PHP_OCI_SED -e 's!\(.*\)/include$!\1/demo/sysliblist!'`
+ OCISYSLIBLIST=`echo "$OCI8INCDIR" | $PHP_OCI8_SED -e 's!\(.*\)/include$!\1/demo/sysliblist!'`
if test -f "$OCISYSLIBLIST"; then
PHP_EVAL_LIBLINE(`cat $OCISYSLIBLIST`, OCI8_SYSLIB)
fi
@@ -354,6 +362,7 @@ dnl Header directory for manual installation
AC_DEFINE(HAVE_OCI_ENV_NLS_CREATE,1,[ ])
AC_DEFINE(HAVE_OCI_ENV_CREATE,1,[ ])
AC_DEFINE(HAVE_OCI_STMT_PREPARE2,1,[ ])
+ AC_DEFINE(HAVE_OCI_LOB_READ2,1,[ ])
AC_DEFINE(HAVE_OCI8_TEMP_LOB,1,[ ])
AC_DEFINE(PHP_OCI8_HAVE_COLLECTIONS,1,[ ])
diff --git a/ext/oci8/config.w32 b/ext/oci8/config.w32
index 90e1995e3..a8a1a3da8 100644
--- a/ext/oci8/config.w32
+++ b/ext/oci8/config.w32
@@ -1,4 +1,4 @@
-// $Id: config.w32,v 1.3.4.1 2005/12/01 13:39:42 tony2001 Exp $
+// $Id: config.w32,v 1.3.4.4 2006/05/22 04:18:05 tony2001 Exp $
// vim:ft=javascript
ARG_WITH("oci8", "OCI8 support", "no");
@@ -11,9 +11,14 @@ if (PHP_OCI8 != "no") {
) {
EXTENSION('oci8', 'oci8.c oci8_lob.c oci8_statement.c oci8_collection.c oci8_interface.c');
- AC_DEFINE('HAVE_OCI8_TEMP_LOB', 1);
AC_DEFINE('HAVE_OCI8', 1);
+ AC_DEFINE('HAVE_OCI_INSTANT_CLIENT', 1);
AC_DEFINE('HAVE_OCI8_ATTR_STATEMENT', 1);
+ AC_DEFINE('HAVE_OCI_ENV_NLS_CREATE', 1);
+ AC_DEFINE('HAVE_OCI_ENV_CREATE', 1);
+ AC_DEFINE('HAVE_OCI_STMT_PREPARE2', 1);
+ AC_DEFINE('HAVE_OCI_LOB_READ2', 1);
+ AC_DEFINE('HAVE_OCI8_TEMP_LOB', 1);
AC_DEFINE('PHP_OCI8_HAVE_COLLECTIONS', 1);
} else {
diff --git a/ext/oci8/oci8.c b/ext/oci8/oci8.c
index 3508f143d..78e26cb97 100644
--- a/ext/oci8/oci8.c
+++ b/ext/oci8/oci8.c
@@ -26,7 +26,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8.c,v 1.269.2.8 2006/01/10 08:34:28 tony2001 Exp $ */
+/* $Id: oci8.c,v 1.269.2.18 2006/05/18 13:21:45 tony2001 Exp $ */
/* TODO
*
* file://localhost/www/docs/oci10/ociaahan.htm#423823 - implement lob_empty() with OCI_ATTR_LOBEMPTY
@@ -89,7 +89,7 @@ static void php_oci_collection_list_dtor (zend_rsrc_list_entry * TSRMLS_DC);
static int php_oci_persistent_helper(zend_rsrc_list_entry *le TSRMLS_DC);
#ifdef ZTS
-static int php_oci_regular_helper(zend_rsrc_list_entry *le TSRMLS_DC);
+static int php_oci_list_helper(zend_rsrc_list_entry *le, void *le_type TSRMLS_DC);
#endif
static int php_oci_connection_ping(php_oci_connection * TSRMLS_DC);
static int php_oci_connection_status(php_oci_connection * TSRMLS_DC);
@@ -541,6 +541,8 @@ PHP_MINIT_FUNCTION(oci)
REGISTER_LONG_CONSTANT("SQLT_FLT",SQLT_FLT, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SQLT_UIN",SQLT_UIN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SQLT_LNG",SQLT_LNG, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLT_LBI",SQLT_LBI, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SQLT_BIN",SQLT_BIN, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("SQLT_ODT",SQLT_ODT, CONST_CS | CONST_PERSISTENT);
#if defined(HAVE_OCI_INSTANT_CLIENT) || (defined(OCI_MAJOR_VERSION) && OCI_MAJOR_VERSION > 10)
REGISTER_LONG_CONSTANT("SQLT_BDOUBLE",SQLT_BDOUBLE, CONST_CS | CONST_PERSISTENT);
@@ -622,11 +624,17 @@ PHP_MSHUTDOWN_FUNCTION(oci)
PHP_RSHUTDOWN_FUNCTION(oci)
{
+#ifdef ZTS
+ zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_descriptor TSRMLS_CC);
+ zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_collection TSRMLS_CC);
+ zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_statement TSRMLS_CC);
+#endif
+
/* check persistent connections and do the necessary actions if needed */
zend_hash_apply(&EG(persistent_list), (apply_func_t) php_oci_persistent_helper TSRMLS_CC);
#ifdef ZTS
- zend_hash_apply(&EG(regular_list), (apply_func_t) php_oci_regular_helper TSRMLS_CC);
+ zend_hash_apply_with_argument(&EG(regular_list), (apply_func_arg_t) php_oci_list_helper, (void *)le_connection TSRMLS_CC);
php_oci_cleanup_global_handles(TSRMLS_C);
#endif
@@ -639,7 +647,7 @@ PHP_MINFO_FUNCTION(oci)
php_info_print_table_start();
php_info_print_table_row(2, "OCI8 Support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.269.2.8 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.269.2.18 $");
sprintf(buf, "%ld", OCI_G(num_persistent));
php_info_print_table_row(2, "Active Persistent Connections", buf);
@@ -982,7 +990,7 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
smart_str_appends_ex(&hashed_details, charset, 1);
}
else {
- size_t rsize;
+ size_t rsize = 0;
PHP_OCI_CALL(OCINlsEnvironmentVariableGet, (&charsetid, 2, OCI_NLS_CHARSET_ID, 0, &rsize));
smart_str_append_unsigned_ex(&hashed_details, charsetid, 0);
@@ -1050,7 +1058,9 @@ php_oci_connection *php_oci_do_connect_ex(char *username, int username_len, char
/* okay, the connection is open and the server is still alive */
connection->used_this_request = 1;
smart_str_free_ex(&hashed_details, 0);
- connection->rsrc_id = zend_list_insert(connection, le_pconnection);
+ if (zend_list_addref(connection->rsrc_id) == FAILURE) {
+ connection->rsrc_id = zend_list_insert(connection, le_pconnection);
+ }
return connection;
}
}
@@ -1280,7 +1290,11 @@ open:
case OCI_SYSDBA:
case OCI_SYSOPER:
default:
- OCI_G(errcode) = PHP_OCI_CALL(OCISessionBegin, (connection->svc, OCI_G(err), connection->session, (ub4) OCI_CRED_EXT, (ub4) session_mode));
+ if (username_len == 1 && username[0] == '/' && password_len == 0) {
+ OCI_G(errcode) = PHP_OCI_CALL(OCISessionBegin, (connection->svc, OCI_G(err), connection->session, (ub4) OCI_CRED_EXT, (ub4) session_mode));
+ } else {
+ OCI_G(errcode) = PHP_OCI_CALL(OCISessionBegin, (connection->svc, OCI_G(err), connection->session, (ub4) OCI_CRED_RDBMS, (ub4) session_mode));
+ }
break;
}
@@ -1341,8 +1355,8 @@ open:
* Ping connection. Uses OCIPing() or OCIServerVersion() depending on the Oracle Client version */
static int php_oci_connection_ping(php_oci_connection *connection TSRMLS_DC)
{
-#if OCI_MAJOR_VERSION >= 10 && OCI_MINOR_VERSION >= 2
- /* OCIPing() is usable only in 10.2 */
+ /* OCIPing() crashes Oracle servers older than 10.2 */
+#if 0
OCI_G(errcode) = PHP_OCI_CALL(OCIPing, (connection->svc, OCI_G(err), OCI_DEFAULT));
#else
char version[256];
@@ -1629,6 +1643,16 @@ void php_oci_fetch_row (INTERNAL_FUNCTION_PARAMETERS, int mode, int expected_arg
fetch_mode = mode;
}
+ if (!(fetch_mode & PHP_OCI_NUM) && !(fetch_mode & PHP_OCI_ASSOC)) {
+ /* none of the modes present, use the default one */
+ if (mode & PHP_OCI_ASSOC) {
+ fetch_mode |= PHP_OCI_ASSOC;
+ }
+ if (mode & PHP_OCI_NUM) {
+ fetch_mode |= PHP_OCI_NUM;
+ }
+ }
+
PHP_OCI_ZVAL_TO_STATEMENT(z_statement, statement);
if (php_oci_statement_fetch(statement, nrows TSRMLS_CC)) {
@@ -1704,7 +1728,9 @@ static int php_oci_persistent_helper(zend_rsrc_list_entry *le TSRMLS_DC)
connection->descriptors = NULL;
}
- php_oci_connection_rollback(connection TSRMLS_CC);
+ if (connection->needs_commit) {
+ php_oci_connection_rollback(connection TSRMLS_CC);
+ }
if (OCI_G(persistent_timeout) > 0) {
connection->idle_expiry = timestamp + OCI_G(persistent_timeout);
@@ -1731,15 +1757,14 @@ static int php_oci_persistent_helper(zend_rsrc_list_entry *le TSRMLS_DC)
} /* }}} */
#ifdef ZTS
-/* {{{ php_oci_regular_helper()
- Helper function to close non-persistent connections at the end of request in ZTS mode */
-static int php_oci_regular_helper(zend_rsrc_list_entry *le TSRMLS_DC)
+/* {{{ php_oci_list_helper()
+ Helper function to destroy data on thread shutdown in ZTS mode */
+static int php_oci_list_helper(zend_rsrc_list_entry *le, void *le_type TSRMLS_DC)
{
- php_oci_connection *connection;
-
- if (le->type == le_connection) {
- connection = (php_oci_connection *)le->ptr;
- if (connection) {
+ int type = (int) le_type;
+
+ if (le->type == type) {
+ if (le->ptr != NULL) {
return 1;
}
}
diff --git a/ext/oci8/oci8_interface.c b/ext/oci8/oci8_interface.c
index 49c5190f3..a5f7d00f9 100644
--- a/ext/oci8/oci8_interface.c
+++ b/ext/oci8/oci8_interface.c
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8_interface.c,v 1.8.2.4 2006/01/05 13:42:35 tony2001 Exp $ */
+/* $Id: oci8_interface.c,v 1.8.2.7 2006/03/28 09:12:18 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1102,7 +1102,7 @@ PHP_FUNCTION(oci_field_name)
{
php_oci_out_column *column;
- if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+ if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
RETURN_STRINGL(column->name, column->name_len, 1);
}
RETURN_FALSE;
@@ -1115,7 +1115,7 @@ PHP_FUNCTION(oci_field_size)
{
php_oci_out_column *column;
- if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+ if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
/* Handle data type of LONG */
if (column->data_type == SQLT_LNG){
RETURN_LONG(column->storage_size4);
@@ -1132,7 +1132,7 @@ PHP_FUNCTION(oci_field_scale)
{
php_oci_out_column *column;
- if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+ if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
RETURN_LONG(column->scale);
}
RETURN_FALSE;
@@ -1145,7 +1145,7 @@ PHP_FUNCTION(oci_field_precision)
{
php_oci_out_column *column;
- if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+ if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
RETURN_LONG(column->precision);
}
RETURN_FALSE;
@@ -1158,7 +1158,7 @@ PHP_FUNCTION(oci_field_type)
{
php_oci_out_column *column;
- column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+ column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
if (!column) {
RETURN_FALSE;
@@ -1191,7 +1191,7 @@ PHP_FUNCTION(oci_field_type)
RETVAL_STRING("LONG RAW",1);
break;
case SQLT_CHR:
- RETVAL_STRING("VARCHAR",1);
+ RETVAL_STRING("VARCHAR2",1);
break;
case SQLT_RSET:
RETVAL_STRING("REFCURSOR",1);
@@ -1223,7 +1223,7 @@ PHP_FUNCTION(oci_field_type_raw)
{
php_oci_out_column *column;
- column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+ column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
if (column) {
RETURN_LONG(column->data_type);
}
@@ -1237,7 +1237,7 @@ PHP_FUNCTION(oci_field_is_null)
{
php_oci_out_column *column;
- if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU) ) ) {
+ if ( ( column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0) ) ) {
if (column->indicator == -1) {
RETURN_TRUE;
}
@@ -1439,7 +1439,7 @@ PHP_FUNCTION(oci_fetch_all)
Fetch a result row as an object */
PHP_FUNCTION(oci_fetch_object)
{
- php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_ASSOC, 2);
+ php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_ASSOC | PHP_OCI_RETURN_NULLS, 2);
if (Z_TYPE_P(return_value) == IS_ARRAY) {
object_and_properties_init(return_value, ZEND_STANDARD_CLASS_DEF_PTR, Z_ARRVAL_P(return_value));
@@ -1451,7 +1451,7 @@ PHP_FUNCTION(oci_fetch_object)
Fetch a result row as an enumerated array */
PHP_FUNCTION(oci_fetch_row)
{
- php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_NUM, 1);
+ php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_NUM | PHP_OCI_RETURN_NULLS, 1);
}
/* }}} */
@@ -1459,7 +1459,7 @@ PHP_FUNCTION(oci_fetch_row)
Fetch a result row as an associative array */
PHP_FUNCTION(oci_fetch_assoc)
{
- php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_ASSOC, 1);
+ php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_ASSOC | PHP_OCI_RETURN_NULLS, 1);
}
/* }}} */
@@ -1467,7 +1467,7 @@ PHP_FUNCTION(oci_fetch_assoc)
Fetch a result row as an array */
PHP_FUNCTION(oci_fetch_array)
{
- php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_BOTH, 2);
+ php_oci_fetch_row(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_OCI_BOTH | PHP_OCI_RETURN_NULLS, 2);
}
/* }}} */
@@ -1521,7 +1521,7 @@ PHP_FUNCTION(oci_new_connect)
}
/* }}} */
-/* {{{ proto resource oci_connect(string user, string pass [, string db])
+/* {{{ proto resource oci_connect(string user, string pass [, string db [, string charset [, int session_mode ]])
Connect to an Oracle database and log on. Returns a new session. */
PHP_FUNCTION(oci_connect)
{
@@ -1529,7 +1529,7 @@ PHP_FUNCTION(oci_connect)
}
/* }}} */
-/* {{{ proto resource oci_pconnect(string user, string pass [, string db])
+/* {{{ proto resource oci_pconnect(string user, string pass [, string db [, string charset ]])
Connect to an Oracle database using a persistent connection and log on. Returns a new session. */
PHP_FUNCTION(oci_pconnect)
{
@@ -1734,7 +1734,7 @@ PHP_FUNCTION(oci_result)
{
php_oci_out_column *column;
- column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU);
+ column = php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
if(column) {
php_oci_column_to_zval(column, return_value, 0 TSRMLS_CC);
}
diff --git a/ext/oci8/oci8_lob.c b/ext/oci8/oci8_lob.c
index 6729b0511..023fbfaaf 100644
--- a/ext/oci8/oci8_lob.c
+++ b/ext/oci8/oci8_lob.c
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8_lob.c,v 1.7.2.4 2006/01/05 13:42:35 tony2001 Exp $ */
+/* $Id: oci8_lob.c,v 1.7.2.6 2006/04/05 14:06:00 tony2001 Exp $ */
@@ -150,9 +150,11 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
{
php_oci_connection *connection = descriptor->connection;
ub4 length = 0;
- ub4 block_length = PHP_OCI_LOB_BUFFER_SIZE;
- int bytes_read, bytes_total = 0, offset = 0, data_len_chars = 0;
+ int bytes_read, bytes_total = 0, offset = 0;
int requested_len = read_length; /* this is by default */
+#if defined(HAVE_OCI_LOB_READ2)
+ int chars_read = 0, is_clob = 0;
+#endif
*data_len = 0;
*data = NULL;
@@ -178,14 +180,10 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
requested_len = length - initial_offset;
}
- if (requested_len == 0) {
+ if (requested_len <= 0) {
return 0;
}
- if (requested_len < block_length) {
- block_length = requested_len;
- }
-
if (descriptor->type == OCI_DTYPE_FILE) {
connection->errcode = PHP_OCI_CALL(OCILobFileOpen, (connection->svc, connection->err, descriptor->descriptor, OCI_FILE_READONLY));
@@ -195,11 +193,71 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
return 1;
}
}
+#ifdef HAVE_OCI_LOB_READ2
+ else {
+ ub2 charset_id = 0;
+
+ connection->errcode = PHP_OCI_CALL(OCILobCharSetId, (connection->env, connection->err, descriptor->descriptor, &charset_id));
+
+ if (connection->errcode != OCI_SUCCESS) {
+ php_oci_error(connection->err, connection->errcode TSRMLS_CC);
+ PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
+ return 1;
+ }
+
+ if (charset_id > 0) { /* charset_id is always > 0 for [N]CLOBs */
+ is_clob = 1;
+ }
+ }
+#endif
- *data = (char *)emalloc(block_length + 1);
- bytes_read = block_length;
+ *data = (char *)emalloc(requested_len + 1);
+ bytes_read = requested_len;
offset = initial_offset;
+
+ /* TODO
+ * We need to make sure this function works with Unicode LOBs
+ * */
+
+#if defined(HAVE_OCI_LOB_READ2)
+
+ do {
+ chars_read = 0;
+ connection->errcode = PHP_OCI_CALL(OCILobRead2,
+ (
+ connection->svc,
+ connection->err,
+ descriptor->descriptor,
+ (oraub8 *)&bytes_read, /* IN/OUT bytes toread/read */
+ (oraub8 *)&chars_read,
+ (oraub8) offset + 1, /* offset (starts with 1) */
+ (dvoid *) ((char *) *data + *data_len),
+ (oraub8) requested_len, /* size of buffer */
+ 0,
+ NULL,
+ (OCICallbackLobRead2) 0, /* callback... */
+ (ub2) connection->charset, /* The character set ID of the buffer data. */
+ (ub1) SQLCS_IMPLICIT /* The character set form of the buffer data. */
+ )
+ );
+
+ bytes_total += bytes_read;
+ if (is_clob) {
+ offset += chars_read;
+ } else {
+ offset += bytes_read;
+ }
+ *data_len += bytes_read;
+
+ if (connection->errcode != OCI_NEED_DATA) {
+ break;
+ }
+ *data = erealloc(*data, *data_len + PHP_OCI_LOB_BUFFER_SIZE + 1);
+ } while (connection->errcode == OCI_NEED_DATA);
+
+#else
+
do {
connection->errcode = PHP_OCI_CALL(OCILobRead,
(
@@ -209,7 +267,7 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
&bytes_read, /* IN/OUT bytes toread/read */
offset + 1, /* offset (starts with 1) */
(dvoid *) ((char *) *data + *data_len),
- block_length, /* size of buffer */
+ requested_len, /* size of buffer */
(dvoid *)0,
(OCICallbackLobRead) 0, /* callback... */
(ub2) connection->charset, /* The character set ID of the buffer data. */
@@ -218,14 +276,9 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
);
bytes_total += bytes_read;
- /*
- * Oracle doesn't tell use how many CHARS were read,
- * so we have to count them to get the correct offset for CLOBS */
- data_len_chars = OCIMultiByteStrnDisplayLength(connection->env, *data, bytes_total);
- offset = initial_offset + data_len_chars;
+ offset += bytes_read;
*data_len += bytes_read;
- block_length = PHP_OCI_LOB_BUFFER_SIZE;
if (connection->errcode != OCI_NEED_DATA) {
break;
@@ -233,6 +286,8 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
*data = erealloc(*data, *data_len + PHP_OCI_LOB_BUFFER_SIZE + 1);
} while (connection->errcode == OCI_NEED_DATA);
+#endif
+
if (connection->errcode != OCI_SUCCESS) {
php_oci_error(connection->err, connection->errcode TSRMLS_CC);
PHP_OCI_HANDLE_ERROR(connection, connection->errcode);
@@ -241,7 +296,7 @@ int php_oci_lob_read (php_oci_descriptor *descriptor, long read_length, long ini
return 1;
}
- descriptor->lob_current_position += data_len_chars;
+ descriptor->lob_current_position = offset;
if (descriptor->type == OCI_DTYPE_FILE) {
connection->errcode = PHP_OCI_CALL(OCILobFileClose, (connection->svc, connection->err, descriptor->descriptor));
diff --git a/ext/oci8/oci8_statement.c b/ext/oci8/oci8_statement.c
index b0543d736..dcc33bd4e 100644
--- a/ext/oci8/oci8_statement.c
+++ b/ext/oci8/oci8_statement.c
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci8_statement.c,v 1.7.2.8 2006/01/01 12:50:10 sniper Exp $ */
+/* $Id: oci8_statement.c,v 1.7.2.14 2006/04/12 19:21:35 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
@@ -70,7 +70,7 @@ php_oci_statement *php_oci_statement_create (php_oci_connection *connection, cha
php_oci_error(connection->err, connection->errcode TSRMLS_CC);
#if HAVE_OCI_STMT_PREPARE2
- PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_DEFAULT));
+ PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_STRLS_CACHE_DELETE));
PHP_OCI_CALL(OCIHandleFree,(statement->err, OCI_HTYPE_ERROR));
#else
PHP_OCI_CALL(OCIHandleFree,(statement->stmt, OCI_HTYPE_STMT));
@@ -165,7 +165,6 @@ int php_oci_statement_fetch(php_oci_statement *statement, ub4 nrows TSRMLS_DC)
/* this is exactly what we requested */
return 0;
}
-
return 1;
}
@@ -283,8 +282,9 @@ int php_oci_statement_execute(php_oci_statement *statement, ub4 mode TSRMLS_DC)
switch (mode) {
case OCI_COMMIT_ON_SUCCESS:
+ case OCI_DESCRIBE_ONLY:
case OCI_DEFAULT:
- /* only these two are allowed */
+ /* only these are allowed */
break;
default:
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid execute mode given: %d", mode);
@@ -493,6 +493,9 @@ int php_oci_statement_execute(php_oci_statement *statement, ub4 mode TSRMLS_DC)
case SQLT_BIN:
default:
define_type = SQLT_CHR;
+ if (outcol->data_type == SQLT_BIN) {
+ define_type = SQLT_BIN;
+ }
if ((outcol->data_type == SQLT_DAT) || (outcol->data_type == SQLT_NUM)
#ifdef SQLT_TIMESTAMP
|| (outcol->data_type == SQLT_TIMESTAMP)
@@ -502,6 +505,10 @@ int php_oci_statement_execute(php_oci_statement *statement, ub4 mode TSRMLS_DC)
#endif
) {
outcol->storage_size4 = 512; /* XXX this should fit "most" NLS date-formats and Numbers */
+#if defined(SQLT_IBFLOAT) && defined(SQLT_IBDOUBLE)
+ } else if (outcol->data_type == SQLT_IBFLOAT || outcol->data_type == SQLT_IBDOUBLE) {
+ outcol->storage_size4 = 1024;
+#endif
} else {
outcol->storage_size4++; /* add one for string terminator */
}
@@ -509,7 +516,7 @@ int php_oci_statement_execute(php_oci_statement *statement, ub4 mode TSRMLS_DC)
outcol->storage_size4 *= 3;
dynamic = OCI_DEFAULT;
- buf = outcol->data = (text *) emalloc(outcol->storage_size4);
+ buf = outcol->data = (text *) ecalloc(1, outcol->storage_size4);
break;
}
@@ -579,7 +586,7 @@ void php_oci_statement_free(php_oci_statement *statement TSRMLS_DC)
if (statement->stmt) {
#if HAVE_OCI_STMT_PREPARE2
if (statement->last_query_len) { /* FIXME: magical */
- PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_DEFAULT));
+ PHP_OCI_CALL(OCIStmtRelease, (statement->stmt, statement->err, NULL, 0, OCI_STRLS_CACHE_DELETE));
}
else {
PHP_OCI_CALL(OCIHandleFree, (statement->stmt, OCI_HTYPE_STMT));
@@ -809,6 +816,9 @@ int php_oci_bind_by_name(php_oci_statement *statement, char *name, int name_len,
mode = OCI_DEFAULT;
break;
+ case SQLT_LBI:
+ case SQLT_BIN:
+ case SQLT_LNG:
case SQLT_CHR:
/* this is the default case when type was not specified */
convert_to_string(var);
@@ -1005,7 +1015,7 @@ sb4 php_oci_bind_out_callback(
/* {{{ php_oci_statement_get_column_helper()
Helper function to get column by name and index */
-php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS)
+php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int need_data)
{
zval *z_statement, *column_index;
php_oci_statement *statement;
@@ -1020,6 +1030,10 @@ php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAME
if (!statement) {
return NULL;
}
+
+ if (need_data && !statement->has_data) {
+ return NULL;
+ }
if (Z_TYPE_P(column_index) == IS_STRING) {
column = php_oci_statement_get_column(statement, -1, Z_STRVAL_P(column_index), Z_STRLEN_P(column_index) TSRMLS_CC);
diff --git a/ext/oci8/php_oci8_int.h b/ext/oci8/php_oci8_int.h
index 4f70fd920..0e872a335 100644
--- a/ext/oci8/php_oci8_int.h
+++ b/ext/oci8/php_oci8_int.h
@@ -25,7 +25,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_oci8_int.h,v 1.11.2.4 2006/01/05 13:42:35 tony2001 Exp $ */
+/* $Id: php_oci8_int.h,v 1.11.2.6 2006/04/05 14:06:00 tony2001 Exp $ */
#if HAVE_OCI8
# ifndef PHP_OCI8_INT_H
@@ -78,7 +78,7 @@ extern zend_class_entry *oci_coll_class_entry_ptr;
#define PHP_OCI_MAX_NAME_LEN 64
#define PHP_OCI_MAX_DATA_SIZE INT_MAX
#define PHP_OCI_PIECE_SIZE (64*1024)-1
-#define PHP_OCI_LOB_BUFFER_SIZE 1048576l
+#define PHP_OCI_LOB_BUFFER_SIZE 32768
#define PHP_OCI_ASSOC 1<<0
#define PHP_OCI_NUM 1<<1
@@ -358,7 +358,7 @@ int php_oci_bind_post_exec(void *data TSRMLS_DC);
int php_oci_bind_by_name(php_oci_statement *, char *, int, zval*, long, long TSRMLS_DC);
sb4 php_oci_bind_in_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 *, ub1 *, dvoid **);
sb4 php_oci_bind_out_callback(dvoid *, OCIBind *, ub4, ub4, dvoid **, ub4 **, ub1 *, dvoid **, ub2 **);
-php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS);
+php_oci_out_column *php_oci_statement_get_column_helper(INTERNAL_FUNCTION_PARAMETERS, int need_data);
int php_oci_statement_get_type(php_oci_statement *, ub2 * TSRMLS_DC);
int php_oci_statement_get_numrows(php_oci_statement *, ub4 * TSRMLS_DC);
diff --git a/ext/oci8/tests/bind_empty.phpt b/ext/oci8/tests/bind_empty.phpt
index dc993016a..9c602b32c 100644
--- a/ext/oci8/tests/bind_empty.phpt
+++ b/ext/oci8/tests/bind_empty.phpt
@@ -18,13 +18,13 @@ oci_execute($statement);
$name = null;
$stmt = oci_parse($c, "UPDATE bind_test SET name=:name");
-oci_bind_by_name($stmt, ":name", &$name);
+oci_bind_by_name($stmt, ":name", $name);
$res = oci_execute($stmt);
$name = "";
$stmt = oci_parse($c, "UPDATE bind_test SET name=:name");
-oci_bind_by_name($stmt, ":name", &$name);
+oci_bind_by_name($stmt, ":name", $name);
$res = oci_execute($stmt);
diff --git a/ext/oci8/tests/bind_long.phpt b/ext/oci8/tests/bind_long.phpt
new file mode 100644
index 000000000..58590f145
--- /dev/null
+++ b/ext/oci8/tests/bind_long.phpt
@@ -0,0 +1,38 @@
+--TEST--
+bind LONG field
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+
+$stmt = oci_parse($c, "create table phptestlng( id number(10), fileimage long)");
+oci_execute($stmt);
+
+$stmt = oci_parse ($c, "insert into phptestlng (id, fileimage) values (:id, :fileimage)");
+$i=1;
+$fileimage = file_get_contents( dirname(__FILE__)."/test.gif");
+
+oci_bind_by_name( $stmt, ":id", $i, -1);
+oci_bind_by_name( $stmt, ":fileimage", $fileimage, -1, SQLT_LNG);
+oci_execute($stmt, OCI_DEFAULT);
+oci_commit($c);
+
+$stmt = oci_parse($c, "SELECT fileimage FROM phptestlng");
+oci_execute($stmt);
+
+$row = oci_fetch_row($stmt);
+var_dump(md5($row[0]));
+var_dump(strlen($row[0]));
+
+$stmt = oci_parse($c, "drop table phptestlng");
+oci_execute($stmt);
+
+echo "Done\n";
+
+?>
+--EXPECT--
+string(32) "d04e7036e2f4221abc88fd14e960a45b"
+int(2523)
+Done
diff --git a/ext/oci8/tests/bind_long_raw.phpt b/ext/oci8/tests/bind_long_raw.phpt
new file mode 100644
index 000000000..2a9962eac
--- /dev/null
+++ b/ext/oci8/tests/bind_long_raw.phpt
@@ -0,0 +1,38 @@
+--TEST--
+bind LONG RAW field
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+
+$stmt = oci_parse($c, "create table phptestlngraw( id number(10), fileimage long raw)");
+oci_execute($stmt);
+
+$stmt = oci_parse ($c, "insert into phptestlngraw (id, fileimage) values (:id, :fileimage)");
+$i=1;
+$fileimage = file_get_contents( dirname(__FILE__)."/test.gif");
+
+oci_bind_by_name( $stmt, ":id", $i, -1);
+oci_bind_by_name( $stmt, ":fileimage", $fileimage, -1, SQLT_LBI);
+oci_execute($stmt, OCI_DEFAULT);
+oci_commit($c);
+
+$stmt = oci_parse($c, "SELECT fileimage FROM phptestlngraw");
+oci_execute($stmt);
+
+$row = oci_fetch_row($stmt);
+var_dump(md5($row[0]));
+var_dump(strlen($row[0]));
+
+$stmt = oci_parse($c, "drop table phptestlngraw");
+oci_execute($stmt);
+
+echo "Done\n";
+
+?>
+--EXPECT--
+string(32) "614fcbba1effb7caa27ef0ef25c27fcf"
+int(2523)
+Done
diff --git a/ext/oci8/tests/bind_raw.phpt b/ext/oci8/tests/bind_raw.phpt
new file mode 100644
index 000000000..c9087e552
--- /dev/null
+++ b/ext/oci8/tests/bind_raw.phpt
@@ -0,0 +1,39 @@
+--TEST--
+bind RAW field
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+
+$stmt = oci_parse($c, "create table phptestrawtable( id number(10), fileimage raw(1000))");
+oci_execute($stmt);
+
+$stmt = oci_parse ($c, "insert into phptestrawtable (id, fileimage) values (:id, :fileimage)");
+$i=1;
+$fileimage = file_get_contents( dirname(__FILE__)."/test.gif");
+$fileimage = substr($fileimage, 0, 300);
+
+oci_bind_by_name( $stmt, ":id", $i, -1);
+oci_bind_by_name( $stmt, ":fileimage", $fileimage, -1, SQLT_BIN);
+oci_execute($stmt, OCI_DEFAULT);
+oci_commit($c);
+
+$stmt = oci_parse($c, "SELECT fileimage FROM phptestrawtable");
+oci_execute($stmt);
+
+$row = oci_fetch_row($stmt);
+var_dump(md5($row[0]));
+var_dump(strlen($row[0]));
+
+$stmt = oci_parse($c, "drop table phptestrawtable");
+oci_execute($stmt);
+
+echo "Done\n";
+
+?>
+--EXPECT--
+string(32) "88b274d7a257ac6f70435b83abd4e26e"
+int(300)
+Done
diff --git a/ext/oci8/tests/bug36010.phpt b/ext/oci8/tests/bug36010.phpt
new file mode 100644
index 000000000..ef435496a
--- /dev/null
+++ b/ext/oci8/tests/bug36010.phpt
@@ -0,0 +1,26 @@
+--TEST--
+bug #36010 (Crash when executing SQL statment with lob parameter twice)
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__).'/connect.inc';
+
+function f($conn)
+{
+ $sql = "begin :p_clob := 'lob string'; end;";
+ $stid = oci_parse($conn, $sql);
+ $clob = oci_new_descriptor($conn, OCI_D_LOB);
+ oci_bind_by_name($stid, ":p_clob", $clob, -1, OCI_B_CLOB);
+ $r = oci_execute($stid, OCI_DEFAULT);
+}
+
+f($c);
+f($c);
+
+echo "Done\n";
+
+?>
+--EXPECT--
+Done
diff --git a/ext/oci8/tests/bug36096.phpt b/ext/oci8/tests/bug36096.phpt
new file mode 100644
index 000000000..44b3a6ddc
--- /dev/null
+++ b/ext/oci8/tests/bug36096.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Bug #36096 (oci_result() returns garbage after oci_fetch() failed)
+--SKIPIF--
+<?php if (!extension_loaded('oci8')) die("skip no oci8 extension"); ?>
+--FILE--
+<?php
+
+require dirname(__FILE__)."/connect.inc";
+
+$sql = "SELECT 'ABC' FROM DUAL WHERE 1<>1";
+$stmt = oci_parse($c, $sql);
+
+if(oci_execute($stmt, OCI_COMMIT_ON_SUCCESS)){
+ var_dump(oci_fetch($stmt));
+ var_dump(oci_result($stmt, 1));
+ var_dump(oci_field_name($stmt, 1));
+ var_dump(oci_field_type($stmt, 1));
+}
+
+echo "Done\n";
+
+?>
+--EXPECT--
+bool(false)
+bool(false)
+string(5) "'ABC'"
+string(4) "CHAR"
+Done
diff --git a/ext/oci8/tests/cursors.phpt b/ext/oci8/tests/cursors.phpt
index 6c92a2b91..22c89c9c5 100644
--- a/ext/oci8/tests/cursors.phpt
+++ b/ext/oci8/tests/cursors.phpt
@@ -45,15 +45,21 @@ echo "Done\n";
?>
--EXPECTF--
-array(2) {
+array(5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
bool(true)
-Warning: oci_fetch_assoc()%sORA-01002: fetch out of sequence in %scursors.php on line %d
+Warning: oci_fetch_assoc(): ORA-01002: fetch out of sequence in %s on line %d
bool(false)
bool(true)
Done
diff --git a/ext/oci8/tests/debug.phpt b/ext/oci8/tests/debug.phpt
index a3e393240..cc771d531 100644
--- a/ext/oci8/tests/debug.phpt
+++ b/ext/oci8/tests/debug.phpt
@@ -20,12 +20,14 @@ echo "Done\n";
?>
--EXPECTF--
-OCI8 DEBUG: OCINlsEnvironmentVariableGet in php_oci_do_connect_ex() (%s/oci8.c:%d)
+OCI8 DEBUG: OCINlsEnvironmentVariableGet at (%s:%d)
Done
-OCI8 DEBUG: OCISessionEnd in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIHandleFree in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIServerDetach in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIHandleFree in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIHandleFree in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIHandleFree in php_oci_connection_close() (%s/oci8.c:%d)
-OCI8 DEBUG: OCIHandleFree in php_oci_connection_close() (%s/oci8.c:%d)
+OCI8 DEBUG: OCISessionEnd at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIServerDetach at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
+OCI8 DEBUG: OCIHandleFree at (%s:%d)
diff --git a/ext/oci8/tests/error1.phpt b/ext/oci8/tests/error1.phpt
index 28408f9c9..8b358b612 100644
--- a/ext/oci8/tests/error1.phpt
+++ b/ext/oci8/tests/error1.phpt
@@ -12,7 +12,16 @@ echo "Done\n";
?>
--EXPECTF--
-Warning: oci_connect(): ORA-12154: TNS:could not resolve the connect identifier specified in %s on line %d
-bool(false)
+Warning: oci_connect(): ORA-12154: TNS:could not resolve service name in %s on line %d
bool(false)
+array(4) {
+ ["code"]=>
+ int(12154)
+ ["message"]=>
+ string(45) "ORA-12154: TNS:could not resolve service name"
+ ["offset"]=>
+ int(0)
+ ["sqltext"]=>
+ string(0) ""
+}
Done
diff --git a/ext/oci8/tests/exec_fetch.phpt b/ext/oci8/tests/exec_fetch.phpt
index 6734f6169..83aae69f7 100644
--- a/ext/oci8/tests/exec_fetch.phpt
+++ b/ext/oci8/tests/exec_fetch.phpt
@@ -16,4 +16,9 @@ var_dump(oci_fetch_array($stmt));
echo "Done\n";
?>
--EXPECTF--
+Warning: oci_execute(): ORA-00942: table or view does not exist in %s on line %d
+bool(false)
+
+Warning: oci_fetch_array(): ORA-24374: define not done before fetch or execute and fetch in %s on line %d
+bool(false)
Done
diff --git a/ext/oci8/tests/fetch_array.phpt b/ext/oci8/tests/fetch_array.phpt
index bfffd4e7d..e2f32483d 100644
--- a/ext/oci8/tests/fetch_array.phpt
+++ b/ext/oci8/tests/fetch_array.phpt
@@ -77,7 +77,7 @@ require dirname(__FILE__).'/drop_table.inc';
echo "Done\n";
?>
--EXPECT--
-array(4) {
+array(10) {
[0]=>
string(1) "1"
["ID"]=>
@@ -86,8 +86,20 @@ array(4) {
string(1) "1"
["VALUE"]=>
string(1) "1"
+ [2]=>
+ NULL
+ ["BLOB"]=>
+ NULL
+ [3]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ [4]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-array(4) {
+array(10) {
[0]=>
string(1) "1"
["ID"]=>
@@ -96,8 +108,20 @@ array(4) {
string(1) "1"
["VALUE"]=>
string(1) "1"
+ [2]=>
+ NULL
+ ["BLOB"]=>
+ NULL
+ [3]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ [4]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-array(4) {
+array(10) {
[0]=>
string(1) "1"
["ID"]=>
@@ -106,6 +130,18 @@ array(4) {
string(1) "1"
["VALUE"]=>
string(1) "1"
+ [2]=>
+ NULL
+ ["BLOB"]=>
+ NULL
+ [3]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ [4]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
array(2) {
[0]=>
@@ -173,58 +209,100 @@ array(4) {
["VALUE"]=>
string(1) "1"
}
-array(2) {
+array(4) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
}
-array(2) {
+array(4) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
}
-array(2) {
+array(4) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
}
-array(5) {
+array(10) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
[2]=>
NULL
+ ["BLOB"]=>
+ NULL
[3]=>
NULL
+ ["CLOB"]=>
+ NULL
[4]=>
NULL
+ ["STRING"]=>
+ NULL
}
-array(5) {
+array(10) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
[2]=>
NULL
+ ["BLOB"]=>
+ NULL
[3]=>
NULL
+ ["CLOB"]=>
+ NULL
[4]=>
NULL
+ ["STRING"]=>
+ NULL
}
-array(5) {
+array(10) {
[0]=>
string(1) "1"
+ ["ID"]=>
+ string(1) "1"
[1]=>
string(1) "1"
+ ["VALUE"]=>
+ string(1) "1"
[2]=>
NULL
+ ["BLOB"]=>
+ NULL
[3]=>
NULL
+ ["CLOB"]=>
+ NULL
[4]=>
NULL
+ ["STRING"]=>
+ NULL
}
Done
diff --git a/ext/oci8/tests/fetch_assoc.phpt b/ext/oci8/tests/fetch_assoc.phpt
index 2c9590db5..7dacf2e5b 100644
--- a/ext/oci8/tests/fetch_assoc.phpt
+++ b/ext/oci8/tests/fetch_assoc.phpt
@@ -43,22 +43,40 @@ echo "Done\n";
?>
--EXPECT--
-array(2) {
+array(5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-array(2) {
+array(5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-array(2) {
+array(5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
Done
diff --git a/ext/oci8/tests/fetch_object.phpt b/ext/oci8/tests/fetch_object.phpt
index d6b2714b9..57b7fc03d 100644
--- a/ext/oci8/tests/fetch_object.phpt
+++ b/ext/oci8/tests/fetch_object.phpt
@@ -42,23 +42,41 @@ require dirname(__FILE__).'/drop_table.inc';
echo "Done\n";
?>
---EXPECT--
-object(stdClass)#1 (2) {
+--EXPECTF--
+object(stdClass)#%d (5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-object(stdClass)#2 (2) {
+object(stdClass)#%d (5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
-object(stdClass)#1 (2) {
+object(stdClass)#%d (5) {
["ID"]=>
string(1) "1"
["VALUE"]=>
string(1) "1"
+ ["BLOB"]=>
+ NULL
+ ["CLOB"]=>
+ NULL
+ ["STRING"]=>
+ NULL
}
Done
diff --git a/ext/oci8/tests/fetch_row.phpt b/ext/oci8/tests/fetch_row.phpt
index d8a68cabb..a637ecc6f 100644
--- a/ext/oci8/tests/fetch_row.phpt
+++ b/ext/oci8/tests/fetch_row.phpt
@@ -43,22 +43,40 @@ echo "Done\n";
?>
--EXPECT--
-array(2) {
+array(5) {
[0]=>
string(1) "1"
[1]=>
string(1) "1"
+ [2]=>
+ NULL
+ [3]=>
+ NULL
+ [4]=>
+ NULL
}
-array(2) {
+array(5) {
[0]=>
string(1) "1"
[1]=>
string(1) "1"
+ [2]=>
+ NULL
+ [3]=>
+ NULL
+ [4]=>
+ NULL
}
-array(2) {
+array(5) {
[0]=>
string(1) "1"
[1]=>
string(1) "1"
+ [2]=>
+ NULL
+ [3]=>
+ NULL
+ [4]=>
+ NULL
}
Done
diff --git a/ext/oci8/tests/field_funcs.phpt b/ext/oci8/tests/field_funcs.phpt
index 2f1dbd710..988e5f7a1 100644
--- a/ext/oci8/tests/field_funcs.phpt
+++ b/ext/oci8/tests/field_funcs.phpt
@@ -34,7 +34,7 @@ if (!oci_execute($s)) {
die("oci_execute(select) failed!\n");
}
-$row = oci_fetch_array($s, OCI_RETURN_NULLS + OCI_RETURN_LOBS);
+$row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
var_dump($row);
foreach ($row as $num => $field) {
@@ -97,7 +97,7 @@ int(0)
int(4000)
bool(true)
string(6) "STRING"
-string(7) "VARCHAR"
+string(8) "VARCHAR2"
int(1)
int(0)
int(0)
diff --git a/ext/oci8/tests/field_funcs1.phpt b/ext/oci8/tests/field_funcs1.phpt
index 68986e051..b41e743e4 100644
--- a/ext/oci8/tests/field_funcs1.phpt
+++ b/ext/oci8/tests/field_funcs1.phpt
@@ -34,7 +34,7 @@ if (!oci_execute($s)) {
die("oci_execute(select) failed!\n");
}
-$row = oci_fetch_array($s, OCI_RETURN_NULLS + OCI_RETURN_LOBS);
+$row = oci_fetch_array($s, OCI_NUM + OCI_RETURN_NULLS + OCI_RETURN_LOBS);
var_dump($row);
var_dump(oci_field_is_null($s, -1));
diff --git a/ext/oci8/tests/field_funcs_old.phpt b/ext/oci8/tests/field_funcs_old.phpt
index 8627f6a78..34af09429 100644
--- a/ext/oci8/tests/field_funcs_old.phpt
+++ b/ext/oci8/tests/field_funcs_old.phpt
@@ -97,7 +97,7 @@ int(0)
int(4000)
bool(true)
string(6) "STRING"
-string(7) "VARCHAR"
+string(8) "VARCHAR2"
int(1)
int(0)
int(0)
diff --git a/ext/oci8/tests/lob_001.phpt b/ext/oci8/tests/lob_001.phpt
index 029888469..cbcb92e7e 100644
--- a/ext/oci8/tests/lob_001.phpt
+++ b/ext/oci8/tests/lob_001.phpt
Binary files differ
diff --git a/ext/oci8/tests/lob_011.phpt b/ext/oci8/tests/lob_011.phpt
index 2dd78985f..b074e1730 100644
--- a/ext/oci8/tests/lob_011.phpt
+++ b/ext/oci8/tests/lob_011.phpt
@@ -69,8 +69,10 @@ echo "Done\n";
int(32)
bool(true)
string(32) "some string here. string, I said"
-array(1) {
+array(2) {
[0]=>
string(32) "some string here. string, I said"
+ ["BLOB"]=>
+ string(32) "some string here. string, I said"
}
Done
diff --git a/ext/oci8/tests/lob_019.phpt b/ext/oci8/tests/lob_019.phpt
new file mode 100644
index 000000000..fb9a3c818
--- /dev/null
+++ b/ext/oci8/tests/lob_019.phpt
Binary files differ
diff --git a/ext/oci8/tests/lob_020.phpt b/ext/oci8/tests/lob_020.phpt
new file mode 100644
index 000000000..edd0f0249
--- /dev/null
+++ b/ext/oci8/tests/lob_020.phpt
Binary files differ
diff --git a/ext/oci8/tests/select_null.phpt b/ext/oci8/tests/select_null.phpt
index 20307b3e2..87c5b815f 100644
--- a/ext/oci8/tests/select_null.phpt
+++ b/ext/oci8/tests/select_null.phpt
@@ -16,8 +16,10 @@ var_dump(oci_fetch_array($stmt, OCI_RETURN_NULLS));
echo "Done\n";
?>
--EXPECT--
-array(1) {
+array(2) {
[0]=>
NULL
+ ["NULL"]=>
+ NULL
}
Done
diff --git a/ext/oci8/tests/test.gif b/ext/oci8/tests/test.gif
new file mode 100644
index 000000000..f352c7308
--- /dev/null
+++ b/ext/oci8/tests/test.gif
Binary files differ
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 9d306ea86..2a1ebd538 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: openssl.c,v 1.98.2.4 2006/01/01 12:50:10 sniper Exp $ */
+/* $Id: openssl.c,v 1.98.2.5 2006/04/30 23:43:40 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -156,6 +156,11 @@ static int le_x509;
static int le_csr;
static int ssl_stream_data_index;
+int php_openssl_get_x509_list_id(void)
+{
+ return le_x509;
+}
+
/* {{{ resource destructors */
static void php_pkey_free(zend_rsrc_list_entry *rsrc TSRMLS_DC)
{
diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c
index 852b17a7e..4b965fa9d 100644
--- a/ext/openssl/xp_ssl.c
+++ b/ext/openssl/xp_ssl.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xp_ssl.c,v 1.22.2.2 2006/01/01 12:50:10 sniper Exp $ */
+/* $Id: xp_ssl.c,v 1.22.2.3 2006/04/30 23:43:40 wez Exp $ */
#include "php.h"
#include "ext/standard/file.h"
@@ -33,6 +33,7 @@
int php_openssl_apply_verification_policy(SSL *ssl, X509 *peer, php_stream *stream TSRMLS_DC);
SSL *php_SSL_new_from_context(SSL_CTX *ctx, php_stream *stream TSRMLS_DC);
+int php_openssl_get_x509_list_id(void);
/* This implementation is very closely tied to the that of the native
* sockets implemented in the core.
@@ -414,9 +415,63 @@ static inline int php_openssl_enable_crypto(php_stream *stream,
SSL_shutdown(sslsock->ssl_handle);
} else {
sslsock->ssl_active = 1;
+
+ /* allow the script to capture the peer cert
+ * and/or the certificate chain */
+ if (stream->context) {
+ zval **val, *zcert;
+
+ if (SUCCESS == php_stream_context_get_option(
+ stream->context, "ssl",
+ "capture_peer_cert", &val) &&
+ zval_is_true(*val)) {
+ MAKE_STD_ZVAL(zcert);
+ ZVAL_RESOURCE(zcert, zend_list_insert(peer_cert,
+ php_openssl_get_x509_list_id()));
+ php_stream_context_set_option(stream->context,
+ "ssl", "peer_certificate",
+ zcert);
+ peer_cert = NULL;
+ }
+
+ if (SUCCESS == php_stream_context_get_option(
+ stream->context, "ssl",
+ "capture_peer_cert_chain", &val) &&
+ zval_is_true(*val)) {
+ zval *arr;
+ STACK_OF(X509) *chain;
+
+ MAKE_STD_ZVAL(arr);
+ chain = SSL_get_peer_cert_chain(
+ sslsock->ssl_handle);
+
+ if (chain) {
+ int i;
+ array_init(arr);
+
+ for (i = 0; i < sk_X509_num(chain); i++) {
+ X509 *mycert = X509_dup(
+ sk_X509_value(chain, i));
+ MAKE_STD_ZVAL(zcert);
+ ZVAL_RESOURCE(zcert,
+ zend_list_insert(mycert,
+ php_openssl_get_x509_list_id()));
+ add_next_index_zval(arr, zcert);
+ }
+ } else {
+ ZVAL_NULL(arr);
+ }
+
+ php_stream_context_set_option(stream->context,
+ "ssl", "peer_certificate_chain",
+ arr);
+ }
+ }
}
- X509_free(peer_cert);
+ if (peer_cert) {
+ X509_free(peer_cert);
+ }
} else {
n = errno == EAGAIN ? 0 : -1;
}
diff --git a/ext/pcre/config.w32 b/ext/pcre/config.w32
index f76373f76..9d31eded1 100644
--- a/ext/pcre/config.w32
+++ b/ext/pcre/config.w32
@@ -1,12 +1,12 @@
-// $Id: config.w32,v 1.4.2.3 2005/12/01 20:53:35 mike Exp $
+// $Id: config.w32,v 1.4.2.5 2006/03/06 22:49:16 sebastian Exp $
// vim:ft=javascript
ARG_WITH("pcre-regex", "Perl Compatible Regular Expressions", "yes");
if (PHP_PCRE_REGEX == "yes") {
EXTENSION("pcre", "php_pcre.c", PHP_PCRE_REGEX_SHARED,
- "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -Iext/pcre/pcrelib -DNO_RECURSE");
- ADD_SOURCES("ext/pcre/pcrelib", "pcre_chartables.c pcre_compile.c pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c pcre_get.c pcre_globals.c pcre_info.c pcre_maketables.c pcre_ord2utf8.c pcre_printint.c pcre_refcount.c pcre_study.c pcre_tables.c pcre_try_flipped.c pcre_ucp_findchar.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c", "pcre");
+ "-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=10000000 -Iext/pcre/pcrelib");
+ ADD_SOURCES("ext/pcre/pcrelib", "pcre_chartables.c pcre_ucp_searchfuncs.c pcre_compile.c pcre_config.c pcre_dfa_exec.c pcre_exec.c pcre_fullinfo.c pcre_get.c pcre_globals.c pcre_info.c pcre_maketables.c pcre_ord2utf8.c pcre_refcount.c pcre_study.c pcre_tables.c pcre_try_flipped.c pcre_valid_utf8.c pcre_version.c pcre_xclass.c", "pcre");
ADD_DEF_FILE("ext\\pcre\\php_pcre.def");
AC_DEFINE('HAVE_BUNDLED_PCRE', 1, 'Using bundled PCRE library');
diff --git a/ext/pcre/config0.m4 b/ext/pcre/config0.m4
index f36ac20e2..7fb8a079e 100644
--- a/ext/pcre/config0.m4
+++ b/ext/pcre/config0.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config0.m4,v 1.38.2.2 2005/12/07 17:44:43 helly Exp $
+dnl $Id: config0.m4,v 1.38.2.3 2006/03/06 21:45:57 andrei Exp $
dnl
dnl By default we'll compile and link against the bundled PCRE library
@@ -13,7 +13,7 @@ PHP_ARG_WITH(pcre-regex,for PCRE support,
if test "$PHP_PCRE_REGEX" != "no"; then
if test "$PHP_PCRE_REGEX" = "yes"; then
- PHP_NEW_EXTENSION(pcre, pcrelib/pcre_chartables.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_printint.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_ucp_findchar.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c, $ext_shared,,-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -I@ext_srcdir@/pcrelib)
+ PHP_NEW_EXTENSION(pcre, pcrelib/pcre_chartables.c pcrelib/pcre_ucp_searchfuncs.c pcrelib/pcre_compile.c pcrelib/pcre_config.c pcrelib/pcre_dfa_exec.c pcrelib/pcre_exec.c pcrelib/pcre_fullinfo.c pcrelib/pcre_get.c pcrelib/pcre_globals.c pcrelib/pcre_info.c pcrelib/pcre_maketables.c pcrelib/pcre_ord2utf8.c pcrelib/pcre_refcount.c pcrelib/pcre_study.c pcrelib/pcre_tables.c pcrelib/pcre_try_flipped.c pcrelib/pcre_valid_utf8.c pcrelib/pcre_version.c pcrelib/pcre_xclass.c php_pcre.c, $ext_shared,,-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=10000000 -I@ext_srcdir@/pcrelib)
PHP_ADD_BUILD_DIR($ext_builddir/pcrelib)
PHP_INSTALL_HEADERS([ext/pcre], [php_pcre.h pcrelib/])
AC_DEFINE(HAVE_BUNDLED_PCRE, 1, [ ])
@@ -51,7 +51,7 @@ if test "$PHP_PCRE_REGEX" != "no"; then
AC_DEFINE(HAVE_PCRE, 1, [ ])
PHP_ADD_INCLUDE($PCRE_INCDIR)
- PHP_NEW_EXTENSION(pcre, php_pcre.c, $ext_shared,,-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000)
+ PHP_NEW_EXTENSION(pcre, php_pcre.c, $ext_shared,,-DEXPORT= -DNEWLINE=10 -DSUPPORT_UTF8 -DSUPPORT_UCP -DLINK_SIZE=2 -DPOSIX_MALLOC_THRESHOLD=10 -DMATCH_LIMIT=10000000 -DMATCH_LIMIT_RECURSION=10000000)
fi
PHP_SUBST(PCRE_SHARED_LIBADD)
fi
diff --git a/ext/pcre/pcrelib/ChangeLog b/ext/pcre/pcrelib/ChangeLog
index b9d74d393..ce2b35853 100644
--- a/ext/pcre/pcrelib/ChangeLog
+++ b/ext/pcre/pcrelib/ChangeLog
@@ -1,6 +1,290 @@
ChangeLog for PCRE
------------------
+Version 6.6 06-Feb-06
+---------------------
+
+ 1. Change 16(a) for 6.5 broke things, because PCRE_DATA_SCOPE was not defined
+ in pcreposix.h. I have copied the definition from pcre.h.
+
+ 2. Change 25 for 6.5 broke compilation in a build directory out-of-tree
+ because pcre.h is no longer a built file.
+
+ 3. Added Jeff Friedl's additional debugging patches to pcregrep. These are
+ not normally included in the compiled code.
+
+
+Version 6.5 01-Feb-06
+---------------------
+
+ 1. When using the partial match feature with pcre_dfa_exec(), it was not
+ anchoring the second and subsequent partial matches at the new starting
+ point. This could lead to incorrect results. For example, with the pattern
+ /1234/, partially matching against "123" and then "a4" gave a match.
+
+ 2. Changes to pcregrep:
+
+ (a) All non-match returns from pcre_exec() were being treated as failures
+ to match the line. Now, unless the error is PCRE_ERROR_NOMATCH, an
+ error message is output. Some extra information is given for the
+ PCRE_ERROR_MATCHLIMIT and PCRE_ERROR_RECURSIONLIMIT errors, which are
+ probably the only errors that are likely to be caused by users (by
+ specifying a regex that has nested indefinite repeats, for instance).
+ If there are more than 20 of these errors, pcregrep is abandoned.
+
+ (b) A binary zero was treated as data while matching, but terminated the
+ output line if it was written out. This has been fixed: binary zeroes
+ are now no different to any other data bytes.
+
+ (c) Whichever of the LC_ALL or LC_CTYPE environment variables is set is
+ used to set a locale for matching. The --locale=xxxx long option has
+ been added (no short equivalent) to specify a locale explicitly on the
+ pcregrep command, overriding the environment variables.
+
+ (d) When -B was used with -n, some line numbers in the output were one less
+ than they should have been.
+
+ (e) Added the -o (--only-matching) option.
+
+ (f) If -A or -C was used with -c (count only), some lines of context were
+ accidentally printed for the final match.
+
+ (g) Added the -H (--with-filename) option.
+
+ (h) The combination of options -rh failed to suppress file names for files
+ that were found from directory arguments.
+
+ (i) Added the -D (--devices) and -d (--directories) options.
+
+ (j) Added the -F (--fixed-strings) option.
+
+ (k) Allow "-" to be used as a file name for -f as well as for a data file.
+
+ (l) Added the --colo(u)r option.
+
+ (m) Added Jeffrey Friedl's -S testing option, but within #ifdefs so that it
+ is not present by default.
+
+ 3. A nasty bug was discovered in the handling of recursive patterns, that is,
+ items such as (?R) or (?1), when the recursion could match a number of
+ alternatives. If it matched one of the alternatives, but subsequently,
+ outside the recursion, there was a failure, the code tried to back up into
+ the recursion. However, because of the way PCRE is implemented, this is not
+ possible, and the result was an incorrect result from the match.
+
+ In order to prevent this happening, the specification of recursion has
+ been changed so that all such subpatterns are automatically treated as
+ atomic groups. Thus, for example, (?R) is treated as if it were (?>(?R)).
+
+ 4. I had overlooked the fact that, in some locales, there are characters for
+ which isalpha() is true but neither isupper() nor islower() are true. In
+ the fr_FR locale, for instance, the \xAA and \xBA characters (ordmasculine
+ and ordfeminine) are like this. This affected the treatment of \w and \W
+ when they appeared in character classes, but not when they appeared outside
+ a character class. The bit map for "word" characters is now created
+ separately from the results of isalnum() instead of just taking it from the
+ upper, lower, and digit maps. (Plus the underscore character, of course.)
+
+ 5. The above bug also affected the handling of POSIX character classes such as
+ [[:alpha:]] and [[:alnum:]]. These do not have their own bit maps in PCRE's
+ permanent tables. Instead, the bit maps for such a class were previously
+ created as the appropriate unions of the upper, lower, and digit bitmaps.
+ Now they are created by subtraction from the [[:word:]] class, which has
+ its own bitmap.
+
+ 6. The [[:blank:]] character class matches horizontal, but not vertical space.
+ It is created by subtracting the vertical space characters (\x09, \x0a,
+ \x0b, \x0c) from the [[:space:]] bitmap. Previously, however, the
+ subtraction was done in the overall bitmap for a character class, meaning
+ that a class such as [\x0c[:blank:]] was incorrect because \x0c would not
+ be recognized. This bug has been fixed.
+
+ 7. Patches from the folks at Google:
+
+ (a) pcrecpp.cc: "to handle a corner case that may or may not happen in
+ real life, but is still worth protecting against".
+
+ (b) pcrecpp.cc: "corrects a bug when negative radixes are used with
+ regular expressions".
+
+ (c) pcre_scanner.cc: avoid use of std::count() because not all systems
+ have it.
+
+ (d) Split off pcrecpparg.h from pcrecpp.h and had the former built by
+ "configure" and the latter not, in order to fix a problem somebody had
+ with compiling the Arg class on HP-UX.
+
+ (e) Improve the error-handling of the C++ wrapper a little bit.
+
+ (f) New tests for checking recursion limiting.
+
+ 8. The pcre_memmove() function, which is used only if the environment does not
+ have a standard memmove() function (and is therefore rarely compiled),
+ contained two bugs: (a) use of int instead of size_t, and (b) it was not
+ returning a result (though PCRE never actually uses the result).
+
+ 9. In the POSIX regexec() interface, if nmatch is specified as a ridiculously
+ large number - greater than INT_MAX/(3*sizeof(int)) - REG_ESPACE is
+ returned instead of calling malloc() with an overflowing number that would
+ most likely cause subsequent chaos.
+
+10. The debugging option of pcretest was not showing the NO_AUTO_CAPTURE flag.
+
+11. The POSIX flag REG_NOSUB is now supported. When a pattern that was compiled
+ with this option is matched, the nmatch and pmatch options of regexec() are
+ ignored.
+
+12. Added REG_UTF8 to the POSIX interface. This is not defined by POSIX, but is
+ provided in case anyone wants to the the POSIX interface with UTF-8
+ strings.
+
+13. Added CXXLDFLAGS to the Makefile parameters to provide settings only on the
+ C++ linking (needed for some HP-UX environments).
+
+14. Avoid compiler warnings in get_ucpname() when compiled without UCP support
+ (unused parameter) and in the pcre_printint() function (omitted "default"
+ switch label when the default is to do nothing).
+
+15. Added some code to make it possible, when PCRE is compiled as a C++
+ library, to replace subject pointers for pcre_exec() with a smart pointer
+ class, thus making it possible to process discontinuous strings.
+
+16. The two macros PCRE_EXPORT and PCRE_DATA_SCOPE are confusing, and perform
+ much the same function. They were added by different people who were trying
+ to make PCRE easy to compile on non-Unix systems. It has been suggested
+ that PCRE_EXPORT be abolished now that there is more automatic apparatus
+ for compiling on Windows systems. I have therefore replaced it with
+ PCRE_DATA_SCOPE. This is set automatically for Windows; if not set it
+ defaults to "extern" for C or "extern C" for C++, which works fine on
+ Unix-like systems. It is now possible to override the value of PCRE_DATA_
+ SCOPE with something explicit in config.h. In addition:
+
+ (a) pcreposix.h still had just "extern" instead of either of these macros;
+ I have replaced it with PCRE_DATA_SCOPE.
+
+ (b) Functions such as _pcre_xclass(), which are internal to the library,
+ but external in the C sense, all had PCRE_EXPORT in their definitions.
+ This is apparently wrong for the Windows case, so I have removed it.
+ (It makes no difference on Unix-like systems.)
+
+17. Added a new limit, MATCH_LIMIT_RECURSION, which limits the depth of nesting
+ of recursive calls to match(). This is different to MATCH_LIMIT because
+ that limits the total number of calls to match(), not all of which increase
+ the depth of recursion. Limiting the recursion depth limits the amount of
+ stack (or heap if NO_RECURSE is set) that is used. The default can be set
+ when PCRE is compiled, and changed at run time. A patch from Google adds
+ this functionality to the C++ interface.
+
+18. Changes to the handling of Unicode character properties:
+
+ (a) Updated the table to Unicode 4.1.0.
+
+ (b) Recognize characters that are not in the table as "Cn" (undefined).
+
+ (c) I revised the way the table is implemented to a much improved format
+ which includes recognition of ranges. It now supports the ranges that
+ are defined in UnicodeData.txt, and it also amalgamates other
+ characters into ranges. This has reduced the number of entries in the
+ table from around 16,000 to around 3,000, thus reducing its size
+ considerably. I realized I did not need to use a tree structure after
+ all - a binary chop search is just as efficient. Having reduced the
+ number of entries, I extended their size from 6 bytes to 8 bytes to
+ allow for more data.
+
+ (d) Added support for Unicode script names via properties such as \p{Han}.
+
+19. In UTF-8 mode, a backslash followed by a non-Ascii character was not
+ matching that character.
+
+20. When matching a repeated Unicode property with a minimum greater than zero,
+ (for example \pL{2,}), PCRE could look past the end of the subject if it
+ reached it while seeking the minimum number of characters. This could
+ happen only if some of the characters were more than one byte long, because
+ there is a check for at least the minimum number of bytes.
+
+21. Refactored the implementation of \p and \P so as to be more general, to
+ allow for more different types of property in future. This has changed the
+ compiled form incompatibly. Anybody with saved compiled patterns that use
+ \p or \P will have to recompile them.
+
+22. Added "Any" and "L&" to the supported property types.
+
+23. Recognize \x{...} as a code point specifier, even when not in UTF-8 mode,
+ but give a compile time error if the value is greater than 0xff.
+
+24. The man pages for pcrepartial, pcreprecompile, and pcre_compile2 were
+ accidentally not being installed or uninstalled.
+
+25. The pcre.h file was built from pcre.h.in, but the only changes that were
+ made were to insert the current release number. This seemed silly, because
+ it made things harder for people building PCRE on systems that don't run
+ "configure". I have turned pcre.h into a distributed file, no longer built
+ by "configure", with the version identification directly included. There is
+ no longer a pcre.h.in file.
+
+ However, this change necessitated a change to the pcre-config script as
+ well. It is built from pcre-config.in, and one of the substitutions was the
+ release number. I have updated configure.ac so that ./configure now finds
+ the release number by grepping pcre.h.
+
+26. Added the ability to run the tests under valgrind.
+
+
+Version 6.4 05-Sep-05
+---------------------
+
+ 1. Change 6.0/10/(l) to pcregrep introduced a bug that caused separator lines
+ "--" to be printed when multiple files were scanned, even when none of the
+ -A, -B, or -C options were used. This is not compatible with Gnu grep, so I
+ consider it to be a bug, and have restored the previous behaviour.
+
+ 2. A couple of code tidies to get rid of compiler warnings.
+
+ 3. The pcretest program used to cheat by referring to symbols in the library
+ whose names begin with _pcre_. These are internal symbols that are not
+ really supposed to be visible externally, and in some environments it is
+ possible to suppress them. The cheating is now confined to including
+ certain files from the library's source, which is a bit cleaner.
+
+ 4. Renamed pcre.in as pcre.h.in to go with pcrecpp.h.in; it also makes the
+ file's purpose clearer.
+
+ 5. Reorganized pcre_ucp_findchar().
+
+
+Version 6.3 15-Aug-05
+---------------------
+
+ 1. The file libpcre.pc.in did not have general read permission in the tarball.
+
+ 2. There were some problems when building without C++ support:
+
+ (a) If C++ support was not built, "make install" and "make test" still
+ tried to test it.
+
+ (b) There were problems when the value of CXX was explicitly set. Some
+ changes have been made to try to fix these, and ...
+
+ (c) --disable-cpp can now be used to explicitly disable C++ support.
+
+ (d) The use of @CPP_OBJ@ directly caused a blank line preceded by a
+ backslash in a target when C++ was disabled. This confuses some
+ versions of "make", apparently. Using an intermediate variable solves
+ this. (Same for CPP_LOBJ.)
+
+ 3. $(LINK_FOR_BUILD) now includes $(CFLAGS_FOR_BUILD) and $(LINK)
+ (non-Windows) now includes $(CFLAGS) because these flags are sometimes
+ necessary on certain architectures.
+
+ 4. Added a setting of -export-symbols-regex to the link command to remove
+ those symbols that are exported in the C sense, but actually are local
+ within the library, and not documented. Their names all begin with
+ "_pcre_". This is not a perfect job, because (a) we have to except some
+ symbols that pcretest ("illegally") uses, and (b) the facility isn't always
+ available (and never for static libraries). I have made a note to try to
+ find a way round (a) in the future.
+
+
Version 6.2 01-Aug-05
---------------------
diff --git a/ext/pcre/pcrelib/LICENCE b/ext/pcre/pcrelib/LICENCE
index e8eb0d937..2a3d00e0b 100644
--- a/ext/pcre/pcrelib/LICENCE
+++ b/ext/pcre/pcrelib/LICENCE
@@ -22,7 +22,7 @@ Email domain: cam.ac.uk
University of Cambridge Computing Service,
Cambridge, England. Phone: +44 1223 334714.
-Copyright (c) 1997-2005 University of Cambridge
+Copyright (c) 1997-2006 University of Cambridge
All rights reserved.
diff --git a/ext/pcre/pcrelib/NEWS b/ext/pcre/pcrelib/NEWS
index a6113e089..a8b3a7a04 100644
--- a/ext/pcre/pcrelib/NEWS
+++ b/ext/pcre/pcrelib/NEWS
@@ -1,6 +1,28 @@
News about PCRE releases
------------------------
+Release 6.5 01-Feb-06
+---------------------
+
+Important changes in this release:
+
+1. A number of new features have been added to pcregrep.
+
+2. The Unicode property tables have been updated to Unicode 4.1.0, and the
+ supported properties have been extended with script names such as "Arabic",
+ and the derived properties "Any" and "L&". This has necessitated a change to
+ the interal format of compiled patterns. Any saved compiled patterns that
+ use \p or \P must be recompiled.
+
+3. The specification of recursion in patterns has been changed so that all
+ recursive subpatterns are automatically treated as atomic groups. Thus, for
+ example, (?R) is treated as if it were (?>(?R)). This is necessary because
+ otherwise there are situations where recursion does not work.
+
+See the ChangeLog for a complete list of changes, which include a number of bug
+fixes and tidies.
+
+
Release 6.0 07-Jun-05
---------------------
diff --git a/ext/pcre/pcrelib/NON-UNIX-USE b/ext/pcre/pcrelib/NON-UNIX-USE
index b7fe4301a..459bdf2b4 100644
--- a/ext/pcre/pcrelib/NON-UNIX-USE
+++ b/ext/pcre/pcrelib/NON-UNIX-USE
@@ -11,8 +11,9 @@ the Contrib directory on the ftp site that you may find useful. See
If you want to compile PCRE for a non-Unix system (or perhaps, more strictly,
for a system that does not support "configure" and "make" files), note that
-PCRE consists entirely of code written in Standard C, and so should compile
-successfully on any system that has a Standard C compiler and library.
+the basic PCRE library consists entirely of code written in Standard C, and so
+should compile successfully on any system that has a Standard C compiler and
+library. The C++ wrapper functions are a separate issue (see below).
GENERIC INSTRUCTIONS FOR THE C LIBRARY
@@ -34,27 +35,16 @@ your compiler gives to '\n'.
rem Use write, because notepad cannot handle UNIX files. Change values.
write config.h
-(2) Copy or rename the file pcre.in as pcre.h, and change the macro definitions
-for PCRE_MAJOR, PCRE_MINOR, and PCRE_DATE near its start to the values set in
-configure.in.
-
- rem Mark Tetrode's commands
- copy pcre.in pcre.h
- rem Read values from configure.in
- write configure.in
- rem Change values
- write pcre.h
-
-(3) Compile dftables.c as a stand-alone program, and then run it with
-the single argument "chartables.c". This generates a set of standard
+(2) Compile dftables.c as a stand-alone program, and then run it with
+the single argument "pcre_chartables.c". This generates a set of standard
character tables and writes them to that file.
rem Mark Tetrode's commands
rem Compile & run
cl -DSUPPORT_UTF8 -DSUPPORT_UCP dftables.c
- dftables.exe chartables.c
+ dftables.exe pcre_chartables.c
-(4) Compile the following source files:
+(3) Compile the following source files:
pcre_chartables.c
pcre_compile.c
@@ -67,12 +57,11 @@ character tables and writes them to that file.
pcre_info.c
pcre_maketables.c
pcre_ord2utf8.c
- pcre_printint.c
pcre_refcount.c
pcre_study.c
pcre_tables.c
pcre_try_flipped.c
- pcre_ucp_findchar.c
+ pcre_ucp_searchfuncs.c
pcre_valid_utf8.c
pcre_version.c
pcre_xclass.c
@@ -88,7 +77,7 @@ shared libraries, you may have to do this once for each type.
cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c maketables.c get.c study.c pcre.c
lib /OUT:pcre.lib maketables.obj get.obj study.obj pcre.obj
-(5) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix
+(4) Similarly, compile pcreposix.c and link it (on its own) as the pcreposix
library.
rem Mark Tetrode's commands, for a static library
@@ -96,14 +85,14 @@ library.
cl -DSUPPORT_UTF8 -DSUPPORT_UCP -DPOSIX_MALLOC_THRESHOLD=10 /c pcreposix.c
lib /OUT:pcreposix.lib pcreposix.obj
-(6) Compile the test program pcretest.c. This needs the functions in the
+(5) Compile the test program pcretest.c. This needs the functions in the
pcre and pcreposix libraries when linking.
rem Mark Tetrode's commands
rem compile & link
cl /F0x400000 pcretest.c pcre.lib pcreposix.lib
-(7) Run pcretest on the testinput files in the testdata directory, and check
+(6) Run pcretest on the testinput files in the testdata directory, and check
that the output matches the corresponding testoutput files. You must use the
-i option when checking testinput2. Note that the supplied files are in Unix
format, with just LF characters as line terminators. You may need to edit them
@@ -126,6 +115,9 @@ to change this if your system uses a different convention.
Note that there are now three more tests (7, 8, 9) that did not exist when Mark
wrote those comments. The test the new pcre_dfa_exec() function.
+(7) If you want to use the pcregrep command, compile and link pcregrep.c; it
+uses only the basic PCRE library.
+
THE C++ WRAPPER FUNCTIONS
diff --git a/ext/pcre/pcrelib/README b/ext/pcre/pcrelib/README
index f8d63bbd3..ab9ee516f 100644
--- a/ext/pcre/pcrelib/README
+++ b/ext/pcre/pcrelib/README
@@ -68,6 +68,9 @@ others are pointers to URLs containing relevant files.
Building PCRE on a Unix-like system
-----------------------------------
+If you are using HP's ANSI C++ compiler (aCC), please see the special note
+in the section entitled "Using HP's ANSI C++ compiler (aCC)" below.
+
To build PCRE on a Unix-like system, first run the "configure" command from the
PCRE distribution directory, with your current directory set to the directory
where you want the files to be created. This command is a standard GNU
@@ -91,9 +94,18 @@ into /source/pcre/pcre-xxx, but you want to build it in /build/pcre/pcre-xxx:
cd /build/pcre/pcre-xxx
/source/pcre/pcre-xxx/configure
+PCRE is written in C and is normally compiled as a C library. However, it is
+possible to build it as a C++ library, though the provided building apparatus
+does not have any features to support this.
+
There are some optional features that can be included or omitted from the PCRE
library. You can read more about them in the pcrebuild man page.
+. If you want to suppress the building of the C++ wrapper library, you can add
+ --disable-cpp to the "configure" command. Otherwise, when "configure" is run,
+ will try to find a C++ compiler and C++ header files, and if it succeeds, it
+ will try to build the C++ wrapper.
+
. If you want to make use of the support for UTF-8 character strings in PCRE,
you must add --enable-utf8 to the "configure" command. Without it, the code
for handling UTF-8 is not included in the library. (Even when included, it
@@ -106,11 +118,11 @@ library. You can read more about them in the pcrebuild man page.
property table); only the basic two-letter properties such as Lu are
supported.
-. You can build PCRE to recognized CR or NL as the newline character, instead
- of whatever your compiler uses for "\n", by adding --newline-is-cr or
- --newline-is-nl to the "configure" command, respectively. Only do this if you
+. You can build PCRE to recognize either CR or LF as the newline character,
+ instead of whatever your compiler uses for "\n", by adding --newline-is-cr or
+ --newline-is-lf to the "configure" command, respectively. Only do this if you
really understand what you are doing. On traditional Unix-like systems, the
- newline character is NL.
+ newline character is LF.
. When called via the POSIX interface, PCRE uses malloc() to get additional
storage for processing capturing parentheses if there are more than 10 of
@@ -257,6 +269,22 @@ when calling the "configure" command. If they are not specified, they default
to the values of CC and CFLAGS.
+Using HP's ANSI C++ compiler (aCC)
+----------------------------------
+
+Unless C++ support is disabled by specifiying the "--disable-cpp" option of the
+"configure" script, you *must* include the "-AA" option in the CXXFLAGS
+environment variable in order for the C++ components to compile correctly.
+
+Also, note that the aCC compiler on PA-RISC platforms may have a defect whereby
+needed libraries fail to get included when specifying the "-AA" compiler
+option. If you experience unresolved symbols when linking the C++ programs,
+use the workaround of specifying the following environment variable prior to
+running the "configure" script:
+
+ CXXLDFLAGS="-lstd_v2 -lCsup_v2"
+
+
Building on non-Unix systems
----------------------------
@@ -425,7 +453,8 @@ The distribution should contain the following files:
pcre_internal.h header for internal use
config.in template for config.h, which is built by configure
- pcrecpp.h.in "source" for the header file for the C++ wrapper
+ pcrecpp.h the header file for the C++ wrapper
+ pcrecpparg.h.in "source" for another C++ header file
pcrecpp.cc )
pcre_scanner.cc ) source for the C++ wrapper library
@@ -486,4 +515,4 @@ The distribution should contain the following files:
Philip Hazel
Email local part: ph10
Email domain: cam.ac.uk
-June 2005
+January 2006
diff --git a/ext/pcre/pcrelib/dftables.c b/ext/pcre/pcrelib/dftables.c
index 480753887..5ba207aeb 100644
--- a/ext/pcre/pcrelib/dftables.c
+++ b/ext/pcre/pcrelib/dftables.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
diff --git a/ext/pcre/pcrelib/doc/Tech.Notes b/ext/pcre/pcrelib/doc/Tech.Notes
index 322cc2de1..aa5398d0f 100644
--- a/ext/pcre/pcrelib/doc/Tech.Notes
+++ b/ext/pcre/pcrelib/doc/Tech.Notes
@@ -309,7 +309,10 @@ Recursion
Recursion either matches the current regex, or some subexpression. The opcode
OP_RECURSE is followed by an value which is the offset to the starting bracket
-from the start of the whole pattern.
+from the start of the whole pattern. From release 6.5, OP_RECURSE is
+automatically wrapped inside OP_ONCE brackets (because otherwise some patterns
+broke it). OP_RECURSE is also used for "subroutine" calls, even though they
+are not strictly a recursion.
Callout
@@ -336,4 +339,4 @@ at compile time, and so does not cause anything to be put into the compiled
data.
Philip Hazel
-March 2005
+January 2006
diff --git a/ext/pcre/pcrelib/doc/pcre.txt b/ext/pcre/pcrelib/doc/pcre.txt
index 801bde279..fe57de473 100644
--- a/ext/pcre/pcrelib/doc/pcre.txt
+++ b/ext/pcre/pcrelib/doc/pcre.txt
@@ -53,7 +53,9 @@ INTRODUCTION
data tables that are used by more than one of the exported external
functions, but which are not intended for use by external callers.
Their names all begin with "_pcre_", which hopefully will not provoke
- any name clashes.
+ any name clashes. In some environments, it is possible to control which
+ external symbols are exported when a shared library is built, and in
+ these cases the undocumented symbols are not exported.
USER DOCUMENTATION
@@ -135,9 +137,13 @@ UTF-8 AND UNICODE PROPERTY SUPPORT
UTF-8 support), the escape sequences \p{..}, \P{..}, and \X are sup-
ported. The available properties that can be tested are limited to the
general category properties such as Lu for an upper case letter or Nd
- for a decimal number. A full list is given in the pcrepattern documen-
- tation. The PCRE library is increased in size by about 90K when Unicode
- property support is included.
+ for a decimal number, the Unicode script names such as Arabic or Han,
+ and the derived properties Any and L&. A full list is given in the
+ pcrepattern documentation. Only the short names for properties are sup-
+ ported. For example, \p{L} matches a letter. Its Perl synonym, \p{Let-
+ ter}, is not supported. Furthermore, in Perl, many properties may
+ optionally be prefixed by "Is", for compatibility with Perl 5.6. PCRE
+ does not support this.
The following comments apply when PCRE is running in UTF-8 mode:
@@ -153,44 +159,41 @@ UTF-8 AND UNICODE PROPERTY SUPPORT
PCRE_NO_UTF8_CHECK is set, the results are undefined. Your program may
crash.
- 2. In a pattern, the escape sequence \x{...}, where the contents of the
- braces is a string of hexadecimal digits, is interpreted as a UTF-8
- character whose code number is the given hexadecimal number, for exam-
- ple: \x{1234}. If a non-hexadecimal digit appears between the braces,
- the item is not recognized. This escape sequence can be used either as
- a literal, or within a character class.
+ 2. An unbraced hexadecimal escape sequence (such as \xb3) matches a
+ two-byte UTF-8 character if the value is greater than 127.
- 3. The original hexadecimal escape sequence, \xhh, matches a two-byte
- UTF-8 character if the value is greater than 127.
-
- 4. Repeat quantifiers apply to complete UTF-8 characters, not to indi-
+ 3. Repeat quantifiers apply to complete UTF-8 characters, not to indi-
vidual bytes, for example: \x{100}{3}.
- 5. The dot metacharacter matches one UTF-8 character instead of a sin-
+ 4. The dot metacharacter matches one UTF-8 character instead of a sin-
gle byte.
- 6. The escape sequence \C can be used to match a single byte in UTF-8
- mode, but its use can lead to some strange effects. This facility is
+ 5. The escape sequence \C can be used to match a single byte in UTF-8
+ mode, but its use can lead to some strange effects. This facility is
not available in the alternative matching function, pcre_dfa_exec().
- 7. The character escapes \b, \B, \d, \D, \s, \S, \w, and \W correctly
- test characters of any code value, but the characters that PCRE recog-
- nizes as digits, spaces, or word characters remain the same set as
+ 6. The character escapes \b, \B, \d, \D, \s, \S, \w, and \W correctly
+ test characters of any code value, but the characters that PCRE recog-
+ nizes as digits, spaces, or word characters remain the same set as
before, all with values less than 256. This remains true even when PCRE
- includes Unicode property support, because to do otherwise would slow
- down PCRE in many common cases. If you really want to test for a wider
- sense of, say, "digit", you must use Unicode property tests such as
+ includes Unicode property support, because to do otherwise would slow
+ down PCRE in many common cases. If you really want to test for a wider
+ sense of, say, "digit", you must use Unicode property tests such as
\p{Nd}.
- 8. Similarly, characters that match the POSIX named character classes
+ 7. Similarly, characters that match the POSIX named character classes
are all low-valued characters.
- 9. Case-insensitive matching applies only to characters whose values
- are less than 128, unless PCRE is built with Unicode property support.
- Even when Unicode property support is available, PCRE still uses its
- own character tables when checking the case of low-valued characters,
- so as not to degrade performance. The Unicode property information is
- used only for characters with higher values.
+ 8. Case-insensitive matching applies only to characters whose values
+ are less than 128, unless PCRE is built with Unicode property support.
+ Even when Unicode property support is available, PCRE still uses its
+ own character tables when checking the case of low-valued characters,
+ so as not to degrade performance. The Unicode property information is
+ used only for characters with higher values. Even when Unicode property
+ support is available, PCRE supports case-insensitive matching only when
+ there is a one-to-one mapping between a letter's cases. There are a
+ small number of many-to-one mappings in Unicode; these are not sup-
+ ported by PCRE.
AUTHOR
@@ -199,12 +202,12 @@ AUTHOR
University Computing Service,
Cambridge CB2 3QG, England.
- Putting an actual email address here seems to have been a spam magnet,
+ Putting an actual email address here seems to have been a spam magnet,
so I've taken it away. If you want to email me, use my initial and sur-
name, separated by a dot, at the domain ucs.cam.ac.uk.
-Last updated: 07 March 2005
-Copyright (c) 1997-2005 University of Cambridge.
+Last updated: 24 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -234,6 +237,17 @@ PCRE BUILD-TIME OPTIONS
not described.
+C++ SUPPORT
+
+ By default, the configure script will search for a C++ compiler and C++
+ header files. If it finds them, it automatically builds the C++ wrapper
+ library for PCRE. You can disable this by adding
+
+ --disable-cpp
+
+ to the configure command.
+
+
UTF-8 SUPPORT
To build PCRE with support for UTF-8 character strings, add
@@ -381,7 +395,7 @@ USING EBCDIC CODE
to the configure command.
-Last updated: 28 February 2005
+Last updated: 15 August 2005
Copyright (c) 1997-2005 University of Cambridge.
------------------------------------------------------------------------------
@@ -795,6 +809,12 @@ CHECKING BUILD-TIME OPTIONS
internal matching function calls in a pcre_exec() execution. Further
details are given with pcre_exec() below.
+ PCRE_CONFIG_MATCH_LIMIT_RECURSION
+
+ The output is an integer that gives the default limit for the depth of
+ recursion when calling the internal matching function in a pcre_exec()
+ execution. Further details are given with pcre_exec() below.
+
PCRE_CONFIG_STACKRECURSE
The output is an integer that is set to one if internal recursion when
@@ -848,25 +868,26 @@ COMPILING A PATTERN
If errptr is NULL, pcre_compile() returns NULL immediately. Otherwise,
if compilation of a pattern fails, pcre_compile() returns NULL, and
sets the variable pointed to by errptr to point to a textual error mes-
- sage. The offset from the start of the pattern to the character where
- the error was discovered is placed in the variable pointed to by
- erroffset, which must not be NULL. If it is, an immediate error is
+ sage. This is a static string that is part of the library. You must not
+ try to free it. The offset from the start of the pattern to the charac-
+ ter where the error was discovered is placed in the variable pointed to
+ by erroffset, which must not be NULL. If it is, an immediate error is
given.
- If pcre_compile2() is used instead of pcre_compile(), and the error-
- codeptr argument is not NULL, a non-zero error code number is returned
- via this argument in the event of an error. This is in addition to the
+ If pcre_compile2() is used instead of pcre_compile(), and the error-
+ codeptr argument is not NULL, a non-zero error code number is returned
+ via this argument in the event of an error. This is in addition to the
textual error message. Error codes and messages are listed below.
- If the final argument, tableptr, is NULL, PCRE uses a default set of
- character tables that are built when PCRE is compiled, using the
- default C locale. Otherwise, tableptr must be an address that is the
- result of a call to pcre_maketables(). This value is stored with the
- compiled pattern, and used again by pcre_exec(), unless another table
+ If the final argument, tableptr, is NULL, PCRE uses a default set of
+ character tables that are built when PCRE is compiled, using the
+ default C locale. Otherwise, tableptr must be an address that is the
+ result of a call to pcre_maketables(). This value is stored with the
+ compiled pattern, and used again by pcre_exec(), unless another table
pointer is passed to it. For more discussion, see the section on locale
support below.
- This code fragment shows a typical straightforward call to pcre_com-
+ This code fragment shows a typical straightforward call to pcre_com-
pile():
pcre *re;
@@ -879,145 +900,145 @@ COMPILING A PATTERN
&erroffset, /* for error offset */
NULL); /* use default character tables */
- The following names for option bits are defined in the pcre.h header
+ The following names for option bits are defined in the pcre.h header
file:
PCRE_ANCHORED
If this bit is set, the pattern is forced to be "anchored", that is, it
- is constrained to match only at the first matching point in the string
- that is being searched (the "subject string"). This effect can also be
- achieved by appropriate constructs in the pattern itself, which is the
+ is constrained to match only at the first matching point in the string
+ that is being searched (the "subject string"). This effect can also be
+ achieved by appropriate constructs in the pattern itself, which is the
only way to do it in Perl.
PCRE_AUTO_CALLOUT
If this bit is set, pcre_compile() automatically inserts callout items,
- all with number 255, before each pattern item. For discussion of the
+ all with number 255, before each pattern item. For discussion of the
callout facility, see the pcrecallout documentation.
PCRE_CASELESS
- If this bit is set, letters in the pattern match both upper and lower
- case letters. It is equivalent to Perl's /i option, and it can be
- changed within a pattern by a (?i) option setting. In UTF-8 mode, PCRE
- always understands the concept of case for characters whose values are
- less than 128, so caseless matching is always possible. For characters
- with higher values, the concept of case is supported if PCRE is com-
- piled with Unicode property support, but not otherwise. If you want to
- use caseless matching for characters 128 and above, you must ensure
- that PCRE is compiled with Unicode property support as well as with
+ If this bit is set, letters in the pattern match both upper and lower
+ case letters. It is equivalent to Perl's /i option, and it can be
+ changed within a pattern by a (?i) option setting. In UTF-8 mode, PCRE
+ always understands the concept of case for characters whose values are
+ less than 128, so caseless matching is always possible. For characters
+ with higher values, the concept of case is supported if PCRE is com-
+ piled with Unicode property support, but not otherwise. If you want to
+ use caseless matching for characters 128 and above, you must ensure
+ that PCRE is compiled with Unicode property support as well as with
UTF-8 support.
PCRE_DOLLAR_ENDONLY
- If this bit is set, a dollar metacharacter in the pattern matches only
- at the end of the subject string. Without this option, a dollar also
- matches immediately before the final character if it is a newline (but
- not before any other newlines). The PCRE_DOLLAR_ENDONLY option is
+ If this bit is set, a dollar metacharacter in the pattern matches only
+ at the end of the subject string. Without this option, a dollar also
+ matches immediately before the final character if it is a newline (but
+ not before any other newlines). The PCRE_DOLLAR_ENDONLY option is
ignored if PCRE_MULTILINE is set. There is no equivalent to this option
in Perl, and no way to set it within a pattern.
PCRE_DOTALL
If this bit is set, a dot metacharater in the pattern matches all char-
- acters, including newlines. Without it, newlines are excluded. This
- option is equivalent to Perl's /s option, and it can be changed within
- a pattern by a (?s) option setting. A negative class such as [^a]
- always matches a newline character, independent of the setting of this
+ acters, including newlines. Without it, newlines are excluded. This
+ option is equivalent to Perl's /s option, and it can be changed within
+ a pattern by a (?s) option setting. A negative class such as [^a]
+ always matches a newline character, independent of the setting of this
option.
PCRE_EXTENDED
- If this bit is set, whitespace data characters in the pattern are
+ If this bit is set, whitespace data characters in the pattern are
totally ignored except when escaped or inside a character class. White-
space does not include the VT character (code 11). In addition, charac-
ters between an unescaped # outside a character class and the next new-
- line character, inclusive, are also ignored. This is equivalent to
- Perl's /x option, and it can be changed within a pattern by a (?x)
+ line character, inclusive, are also ignored. This is equivalent to
+ Perl's /x option, and it can be changed within a pattern by a (?x)
option setting.
- This option makes it possible to include comments inside complicated
- patterns. Note, however, that this applies only to data characters.
- Whitespace characters may never appear within special character
- sequences in a pattern, for example within the sequence (?( which
+ This option makes it possible to include comments inside complicated
+ patterns. Note, however, that this applies only to data characters.
+ Whitespace characters may never appear within special character
+ sequences in a pattern, for example within the sequence (?( which
introduces a conditional subpattern.
PCRE_EXTRA
- This option was invented in order to turn on additional functionality
- of PCRE that is incompatible with Perl, but it is currently of very
- little use. When set, any backslash in a pattern that is followed by a
- letter that has no special meaning causes an error, thus reserving
- these combinations for future expansion. By default, as in Perl, a
- backslash followed by a letter with no special meaning is treated as a
- literal. There are at present no other features controlled by this
+ This option was invented in order to turn on additional functionality
+ of PCRE that is incompatible with Perl, but it is currently of very
+ little use. When set, any backslash in a pattern that is followed by a
+ letter that has no special meaning causes an error, thus reserving
+ these combinations for future expansion. By default, as in Perl, a
+ backslash followed by a letter with no special meaning is treated as a
+ literal. There are at present no other features controlled by this
option. It can also be set by a (?X) option setting within a pattern.
PCRE_FIRSTLINE
- If this option is set, an unanchored pattern is required to match
- before or at the first newline character in the subject string, though
+ If this option is set, an unanchored pattern is required to match
+ before or at the first newline character in the subject string, though
the matched text may continue over the newline.
PCRE_MULTILINE
- By default, PCRE treats the subject string as consisting of a single
- line of characters (even if it actually contains newlines). The "start
- of line" metacharacter (^) matches only at the start of the string,
- while the "end of line" metacharacter ($) matches only at the end of
+ By default, PCRE treats the subject string as consisting of a single
+ line of characters (even if it actually contains newlines). The "start
+ of line" metacharacter (^) matches only at the start of the string,
+ while the "end of line" metacharacter ($) matches only at the end of
the string, or before a terminating newline (unless PCRE_DOLLAR_ENDONLY
is set). This is the same as Perl.
- When PCRE_MULTILINE it is set, the "start of line" and "end of line"
- constructs match immediately following or immediately before any new-
- line in the subject string, respectively, as well as at the very start
- and end. This is equivalent to Perl's /m option, and it can be changed
+ When PCRE_MULTILINE it is set, the "start of line" and "end of line"
+ constructs match immediately following or immediately before any new-
+ line in the subject string, respectively, as well as at the very start
+ and end. This is equivalent to Perl's /m option, and it can be changed
within a pattern by a (?m) option setting. If there are no "\n" charac-
- ters in a subject string, or no occurrences of ^ or $ in a pattern,
+ ters in a subject string, or no occurrences of ^ or $ in a pattern,
setting PCRE_MULTILINE has no effect.
PCRE_NO_AUTO_CAPTURE
If this option is set, it disables the use of numbered capturing paren-
- theses in the pattern. Any opening parenthesis that is not followed by
- ? behaves as if it were followed by ?: but named parentheses can still
- be used for capturing (and they acquire numbers in the usual way).
+ theses in the pattern. Any opening parenthesis that is not followed by
+ ? behaves as if it were followed by ?: but named parentheses can still
+ be used for capturing (and they acquire numbers in the usual way).
There is no equivalent of this option in Perl.
PCRE_UNGREEDY
- This option inverts the "greediness" of the quantifiers so that they
- are not greedy by default, but become greedy if followed by "?". It is
- not compatible with Perl. It can also be set by a (?U) option setting
+ This option inverts the "greediness" of the quantifiers so that they
+ are not greedy by default, but become greedy if followed by "?". It is
+ not compatible with Perl. It can also be set by a (?U) option setting
within the pattern.
PCRE_UTF8
- This option causes PCRE to regard both the pattern and the subject as
- strings of UTF-8 characters instead of single-byte character strings.
- However, it is available only when PCRE is built to include UTF-8 sup-
- port. If not, the use of this option provokes an error. Details of how
- this option changes the behaviour of PCRE are given in the section on
+ This option causes PCRE to regard both the pattern and the subject as
+ strings of UTF-8 characters instead of single-byte character strings.
+ However, it is available only when PCRE is built to include UTF-8 sup-
+ port. If not, the use of this option provokes an error. Details of how
+ this option changes the behaviour of PCRE are given in the section on
UTF-8 support in the main pcre page.
PCRE_NO_UTF8_CHECK
When PCRE_UTF8 is set, the validity of the pattern as a UTF-8 string is
- automatically checked. If an invalid UTF-8 sequence of bytes is found,
- pcre_compile() returns an error. If you already know that your pattern
- is valid, and you want to skip this check for performance reasons, you
- can set the PCRE_NO_UTF8_CHECK option. When it is set, the effect of
+ automatically checked. If an invalid UTF-8 sequence of bytes is found,
+ pcre_compile() returns an error. If you already know that your pattern
+ is valid, and you want to skip this check for performance reasons, you
+ can set the PCRE_NO_UTF8_CHECK option. When it is set, the effect of
passing an invalid UTF-8 string as a pattern is undefined. It may cause
- your program to crash. Note that this option can also be passed to
- pcre_exec() and pcre_dfa_exec(), to suppress the UTF-8 validity check-
+ your program to crash. Note that this option can also be passed to
+ pcre_exec() and pcre_dfa_exec(), to suppress the UTF-8 validity check-
ing of subject strings.
COMPILATION ERROR CODES
- The following table lists the error codes than may be returned by
- pcre_compile2(), along with the error messages that may be returned by
+ The following table lists the error codes than may be returned by
+ pcre_compile2(), along with the error messages that may be returned by
both compiling functions.
0 no error
@@ -1075,32 +1096,33 @@ STUDYING A PATTERN
pcre_extra *pcre_study(const pcre *code, int options
const char **errptr);
- If a compiled pattern is going to be used several times, it is worth
+ If a compiled pattern is going to be used several times, it is worth
spending more time analyzing it in order to speed up the time taken for
- matching. The function pcre_study() takes a pointer to a compiled pat-
+ matching. The function pcre_study() takes a pointer to a compiled pat-
tern as its first argument. If studying the pattern produces additional
- information that will help speed up matching, pcre_study() returns a
- pointer to a pcre_extra block, in which the study_data field points to
+ information that will help speed up matching, pcre_study() returns a
+ pointer to a pcre_extra block, in which the study_data field points to
the results of the study.
The returned value from pcre_study() can be passed directly to
- pcre_exec(). However, a pcre_extra block also contains other fields
- that can be set by the caller before the block is passed; these are
+ pcre_exec(). However, a pcre_extra block also contains other fields
+ that can be set by the caller before the block is passed; these are
described below in the section on matching a pattern.
- If studying the pattern does not produce any additional information
+ If studying the pattern does not produce any additional information
pcre_study() returns NULL. In that circumstance, if the calling program
- wants to pass any of the other fields to pcre_exec(), it must set up
+ wants to pass any of the other fields to pcre_exec(), it must set up
its own pcre_extra block.
- The second argument of pcre_study() contains option bits. At present,
+ The second argument of pcre_study() contains option bits. At present,
no options are defined, and this argument should always be zero.
- The third argument for pcre_study() is a pointer for an error message.
- If studying succeeds (even if no data is returned), the variable it
- points to is set to NULL. Otherwise it points to a textual error mes-
- sage. You should therefore test the error pointer for NULL after call-
- ing pcre_study(), to be sure that it has run successfully.
+ The third argument for pcre_study() is a pointer for an error message.
+ If studying succeeds (even if no data is returned), the variable it
+ points to is set to NULL. Otherwise it is set to point to a textual
+ error message. This is a static string that is part of the library. You
+ must not try to free it. You should test the error pointer for NULL
+ after calling pcre_study(), to be sure that it has run successfully.
This is a typical call to pcre_study():
@@ -1122,40 +1144,41 @@ LOCALE SUPPORT
by character value. When running in UTF-8 mode, this applies only to
characters with codes less than 128. Higher-valued codes never match
escapes such as \w or \d, but can be tested with \p if PCRE is built
- with Unicode character property support.
-
- An internal set of tables is created in the default C locale when PCRE
- is built. This is used when the final argument of pcre_compile() is
- NULL, and is sufficient for many applications. An alternative set of
- tables can, however, be supplied. These may be created in a different
- locale from the default. As more and more applications change to using
+ with Unicode character property support. The use of locales with Uni-
+ code is discouraged.
+
+ An internal set of tables is created in the default C locale when PCRE
+ is built. This is used when the final argument of pcre_compile() is
+ NULL, and is sufficient for many applications. An alternative set of
+ tables can, however, be supplied. These may be created in a different
+ locale from the default. As more and more applications change to using
Unicode, the need for this locale support is expected to die away.
- External tables are built by calling the pcre_maketables() function,
- which has no arguments, in the relevant locale. The result can then be
- passed to pcre_compile() or pcre_exec() as often as necessary. For
- example, to build and use tables that are appropriate for the French
- locale (where accented characters with values greater than 128 are
+ External tables are built by calling the pcre_maketables() function,
+ which has no arguments, in the relevant locale. The result can then be
+ passed to pcre_compile() or pcre_exec() as often as necessary. For
+ example, to build and use tables that are appropriate for the French
+ locale (where accented characters with values greater than 128 are
treated as letters), the following code could be used:
setlocale(LC_CTYPE, "fr_FR");
tables = pcre_maketables();
re = pcre_compile(..., tables);
- When pcre_maketables() runs, the tables are built in memory that is
- obtained via pcre_malloc. It is the caller's responsibility to ensure
- that the memory containing the tables remains available for as long as
+ When pcre_maketables() runs, the tables are built in memory that is
+ obtained via pcre_malloc. It is the caller's responsibility to ensure
+ that the memory containing the tables remains available for as long as
it is needed.
The pointer that is passed to pcre_compile() is saved with the compiled
- pattern, and the same tables are used via this pointer by pcre_study()
+ pattern, and the same tables are used via this pointer by pcre_study()
and normally also by pcre_exec(). Thus, by default, for any single pat-
tern, compilation, studying and matching all happen in the same locale,
but different patterns can be compiled in different locales.
- It is possible to pass a table pointer or NULL (indicating the use of
- the internal tables) to pcre_exec(). Although not intended for this
- purpose, this facility could be used to match a pattern in a different
+ It is possible to pass a table pointer or NULL (indicating the use of
+ the internal tables) to pcre_exec(). Although not intended for this
+ purpose, this facility could be used to match a pattern in a different
locale from the one in which it was compiled. Passing table pointers at
run time is discussed below in the section on matching a pattern.
@@ -1165,15 +1188,15 @@ INFORMATION ABOUT A PATTERN
int pcre_fullinfo(const pcre *code, const pcre_extra *extra,
int what, void *where);
- The pcre_fullinfo() function returns information about a compiled pat-
+ The pcre_fullinfo() function returns information about a compiled pat-
tern. It replaces the obsolete pcre_info() function, which is neverthe-
less retained for backwards compability (and is documented below).
- The first argument for pcre_fullinfo() is a pointer to the compiled
- pattern. The second argument is the result of pcre_study(), or NULL if
- the pattern was not studied. The third argument specifies which piece
- of information is required, and the fourth argument is a pointer to a
- variable to receive the data. The yield of the function is zero for
+ The first argument for pcre_fullinfo() is a pointer to the compiled
+ pattern. The second argument is the result of pcre_study(), or NULL if
+ the pattern was not studied. The third argument specifies which piece
+ of information is required, and the fourth argument is a pointer to a
+ variable to receive the data. The yield of the function is zero for
success, or one of the following negative numbers:
PCRE_ERROR_NULL the argument code was NULL
@@ -1181,9 +1204,9 @@ INFORMATION ABOUT A PATTERN
PCRE_ERROR_BADMAGIC the "magic number" was not found
PCRE_ERROR_BADOPTION the value of what was invalid
- The "magic number" is placed at the start of each compiled pattern as
- an simple check against passing an arbitrary memory pointer. Here is a
- typical call of pcre_fullinfo(), to obtain the length of the compiled
+ The "magic number" is placed at the start of each compiled pattern as
+ an simple check against passing an arbitrary memory pointer. Here is a
+ typical call of pcre_fullinfo(), to obtain the length of the compiled
pattern:
int rc;
@@ -1194,64 +1217,64 @@ INFORMATION ABOUT A PATTERN
PCRE_INFO_SIZE, /* what is required */
&length); /* where to put the data */
- The possible values for the third argument are defined in pcre.h, and
+ The possible values for the third argument are defined in pcre.h, and
are as follows:
PCRE_INFO_BACKREFMAX
- Return the number of the highest back reference in the pattern. The
- fourth argument should point to an int variable. Zero is returned if
+ Return the number of the highest back reference in the pattern. The
+ fourth argument should point to an int variable. Zero is returned if
there are no back references.
PCRE_INFO_CAPTURECOUNT
- Return the number of capturing subpatterns in the pattern. The fourth
+ Return the number of capturing subpatterns in the pattern. The fourth
argument should point to an int variable.
PCRE_INFO_DEFAULT_TABLES
- Return a pointer to the internal default character tables within PCRE.
- The fourth argument should point to an unsigned char * variable. This
+ Return a pointer to the internal default character tables within PCRE.
+ The fourth argument should point to an unsigned char * variable. This
information call is provided for internal use by the pcre_study() func-
- tion. External callers can cause PCRE to use its internal tables by
+ tion. External callers can cause PCRE to use its internal tables by
passing a NULL table pointer.
PCRE_INFO_FIRSTBYTE
- Return information about the first byte of any matched string, for a
- non-anchored pattern. (This option used to be called
- PCRE_INFO_FIRSTCHAR; the old name is still recognized for backwards
+ Return information about the first byte of any matched string, for a
+ non-anchored pattern. (This option used to be called
+ PCRE_INFO_FIRSTCHAR; the old name is still recognized for backwards
compatibility.)
- If there is a fixed first byte, for example, from a pattern such as
- (cat|cow|coyote), it is returned in the integer pointed to by where.
+ If there is a fixed first byte, for example, from a pattern such as
+ (cat|cow|coyote), it is returned in the integer pointed to by where.
Otherwise, if either
- (a) the pattern was compiled with the PCRE_MULTILINE option, and every
+ (a) the pattern was compiled with the PCRE_MULTILINE option, and every
branch starts with "^", or
(b) every branch of the pattern starts with ".*" and PCRE_DOTALL is not
set (if it were set, the pattern would be anchored),
- -1 is returned, indicating that the pattern matches only at the start
- of a subject string or after any newline within the string. Otherwise
+ -1 is returned, indicating that the pattern matches only at the start
+ of a subject string or after any newline within the string. Otherwise
-2 is returned. For anchored patterns, -2 is returned.
PCRE_INFO_FIRSTTABLE
- If the pattern was studied, and this resulted in the construction of a
+ If the pattern was studied, and this resulted in the construction of a
256-bit table indicating a fixed set of bytes for the first byte in any
- matching string, a pointer to the table is returned. Otherwise NULL is
- returned. The fourth argument should point to an unsigned char * vari-
+ matching string, a pointer to the table is returned. Otherwise NULL is
+ returned. The fourth argument should point to an unsigned char * vari-
able.
PCRE_INFO_LASTLITERAL
- Return the value of the rightmost literal byte that must exist in any
- matched string, other than at its start, if such a byte has been
+ Return the value of the rightmost literal byte that must exist in any
+ matched string, other than at its start, if such a byte has been
recorded. The fourth argument should point to an int variable. If there
- is no such byte, -1 is returned. For anchored patterns, a last literal
- byte is recorded only if it follows something of variable length. For
+ is no such byte, -1 is returned. For anchored patterns, a last literal
+ byte is recorded only if it follows something of variable length. For
example, for the pattern /^a\d+z\d+/ the returned value is "z", but for
/^a\dz\d/ the returned value is -1.
@@ -1259,32 +1282,32 @@ INFORMATION ABOUT A PATTERN
PCRE_INFO_NAMEENTRYSIZE
PCRE_INFO_NAMETABLE
- PCRE supports the use of named as well as numbered capturing parenthe-
- ses. The names are just an additional way of identifying the parenthe-
+ PCRE supports the use of named as well as numbered capturing parenthe-
+ ses. The names are just an additional way of identifying the parenthe-
ses, which still acquire numbers. A convenience function called
- pcre_get_named_substring() is provided for extracting an individual
- captured substring by name. It is also possible to extract the data
- directly, by first converting the name to a number in order to access
- the correct pointers in the output vector (described with pcre_exec()
- below). To do the conversion, you need to use the name-to-number map,
+ pcre_get_named_substring() is provided for extracting an individual
+ captured substring by name. It is also possible to extract the data
+ directly, by first converting the name to a number in order to access
+ the correct pointers in the output vector (described with pcre_exec()
+ below). To do the conversion, you need to use the name-to-number map,
which is described by these three values.
The map consists of a number of fixed-size entries. PCRE_INFO_NAMECOUNT
gives the number of entries, and PCRE_INFO_NAMEENTRYSIZE gives the size
- of each entry; both of these return an int value. The entry size
- depends on the length of the longest name. PCRE_INFO_NAMETABLE returns
- a pointer to the first entry of the table (a pointer to char). The
+ of each entry; both of these return an int value. The entry size
+ depends on the length of the longest name. PCRE_INFO_NAMETABLE returns
+ a pointer to the first entry of the table (a pointer to char). The
first two bytes of each entry are the number of the capturing parenthe-
- sis, most significant byte first. The rest of the entry is the corre-
- sponding name, zero terminated. The names are in alphabetical order.
- For example, consider the following pattern (assume PCRE_EXTENDED is
+ sis, most significant byte first. The rest of the entry is the corre-
+ sponding name, zero terminated. The names are in alphabetical order.
+ For example, consider the following pattern (assume PCRE_EXTENDED is
set, so white space - including newlines - is ignored):
(?P<date> (?P<year>(\d\d)?\d\d) -
(?P<month>\d\d) - (?P<day>\d\d) )
- There are four named subpatterns, so the table has four entries, and
- each entry in the table is eight bytes long. The table is as follows,
+ There are four named subpatterns, so the table has four entries, and
+ each entry in the table is eight bytes long. The table is as follows,
with non-printing bytes shows in hexadecimal, and undefined bytes shown
as ??:
@@ -1293,18 +1316,18 @@ INFORMATION ABOUT A PATTERN
00 04 m o n t h 00
00 02 y e a r 00 ??
- When writing code to extract data from named subpatterns using the
+ When writing code to extract data from named subpatterns using the
name-to-number map, remember that the length of each entry is likely to
be different for each compiled pattern.
PCRE_INFO_OPTIONS
- Return a copy of the options with which the pattern was compiled. The
- fourth argument should point to an unsigned long int variable. These
+ Return a copy of the options with which the pattern was compiled. The
+ fourth argument should point to an unsigned long int variable. These
option bits are those specified in the call to pcre_compile(), modified
by any top-level option settings within the pattern itself.
- A pattern is automatically anchored by PCRE if all of its top-level
+ A pattern is automatically anchored by PCRE if all of its top-level
alternatives begin with one of the following:
^ unless PCRE_MULTILINE is set
@@ -1318,7 +1341,7 @@ INFORMATION ABOUT A PATTERN
PCRE_INFO_SIZE
- Return the size of the compiled pattern, that is, the value that was
+ Return the size of the compiled pattern, that is, the value that was
passed as the argument to pcre_malloc() when PCRE was getting memory in
which to place the compiled data. The fourth argument should point to a
size_t variable.
@@ -1326,9 +1349,9 @@ INFORMATION ABOUT A PATTERN
PCRE_INFO_STUDYSIZE
Return the size of the data block pointed to by the study_data field in
- a pcre_extra block. That is, it is the value that was passed to
+ a pcre_extra block. That is, it is the value that was passed to
pcre_malloc() when PCRE was getting memory into which to place the data
- created by pcre_study(). The fourth argument should point to a size_t
+ created by pcre_study(). The fourth argument should point to a size_t
variable.
@@ -1336,21 +1359,21 @@ OBSOLETE INFO FUNCTION
int pcre_info(const pcre *code, int *optptr, int *firstcharptr);
- The pcre_info() function is now obsolete because its interface is too
- restrictive to return all the available data about a compiled pattern.
- New programs should use pcre_fullinfo() instead. The yield of
- pcre_info() is the number of capturing subpatterns, or one of the fol-
+ The pcre_info() function is now obsolete because its interface is too
+ restrictive to return all the available data about a compiled pattern.
+ New programs should use pcre_fullinfo() instead. The yield of
+ pcre_info() is the number of capturing subpatterns, or one of the fol-
lowing negative numbers:
PCRE_ERROR_NULL the argument code was NULL
PCRE_ERROR_BADMAGIC the "magic number" was not found
- If the optptr argument is not NULL, a copy of the options with which
- the pattern was compiled is placed in the integer it points to (see
+ If the optptr argument is not NULL, a copy of the options with which
+ the pattern was compiled is placed in the integer it points to (see
PCRE_INFO_OPTIONS above).
- If the pattern is not anchored and the firstcharptr argument is not
- NULL, it is used to pass back information about the first character of
+ If the pattern is not anchored and the firstcharptr argument is not
+ NULL, it is used to pass back information about the first character of
any matched string (see PCRE_INFO_FIRSTBYTE above).
@@ -1358,21 +1381,21 @@ REFERENCE COUNTS
int pcre_refcount(pcre *code, int adjust);
- The pcre_refcount() function is used to maintain a reference count in
+ The pcre_refcount() function is used to maintain a reference count in
the data block that contains a compiled pattern. It is provided for the
- benefit of applications that operate in an object-oriented manner,
+ benefit of applications that operate in an object-oriented manner,
where different parts of the application may be using the same compiled
pattern, but you want to free the block when they are all done.
When a pattern is compiled, the reference count field is initialized to
- zero. It is changed only by calling this function, whose action is to
- add the adjust value (which may be positive or negative) to it. The
+ zero. It is changed only by calling this function, whose action is to
+ add the adjust value (which may be positive or negative) to it. The
yield of the function is the new value. However, the value of the count
- is constrained to lie between 0 and 65535, inclusive. If the new value
+ is constrained to lie between 0 and 65535, inclusive. If the new value
is outside these limits, it is forced to the appropriate limit value.
- Except when it is zero, the reference count is not correctly preserved
- if a pattern is compiled on one host and then transferred to a host
+ Except when it is zero, the reference count is not correctly preserved
+ if a pattern is compiled on one host and then transferred to a host
whose byte-order is different. (This seems a highly unlikely scenario.)
@@ -1382,18 +1405,18 @@ MATCHING A PATTERN: THE TRADITIONAL FUNCTION
const char *subject, int length, int startoffset,
int options, int *ovector, int ovecsize);
- The function pcre_exec() is called to match a subject string against a
- compiled pattern, which is passed in the code argument. If the pattern
+ The function pcre_exec() is called to match a subject string against a
+ compiled pattern, which is passed in the code argument. If the pattern
has been studied, the result of the study should be passed in the extra
- argument. This function is the main matching facility of the library,
+ argument. This function is the main matching facility of the library,
and it operates in a Perl-like manner. For specialist use there is also
- an alternative matching function, which is described below in the sec-
+ an alternative matching function, which is described below in the sec-
tion about the pcre_dfa_exec() function.
- In most applications, the pattern will have been compiled (and option-
- ally studied) in the same process that calls pcre_exec(). However, it
+ In most applications, the pattern will have been compiled (and option-
+ ally studied) in the same process that calls pcre_exec(). However, it
is possible to save compiled patterns and study data, and then use them
- later in different processes, possibly even on different hosts. For a
+ later in different processes, possibly even on different hosts. For a
discussion about this, see the pcreprecompile documentation.
Here is an example of a simple call to pcre_exec():
@@ -1412,249 +1435,268 @@ MATCHING A PATTERN: THE TRADITIONAL FUNCTION
Extra data for pcre_exec()
- If the extra argument is not NULL, it must point to a pcre_extra data
- block. The pcre_study() function returns such a block (when it doesn't
- return NULL), but you can also create one for yourself, and pass addi-
- tional information in it. The fields in a pcre_extra block are as fol-
- lows:
+ If the extra argument is not NULL, it must point to a pcre_extra data
+ block. The pcre_study() function returns such a block (when it doesn't
+ return NULL), but you can also create one for yourself, and pass addi-
+ tional information in it. The pcre_extra block contains the following
+ fields (not necessarily in this order):
unsigned long int flags;
void *study_data;
unsigned long int match_limit;
+ unsigned long int match_limit_recursion;
void *callout_data;
const unsigned char *tables;
- The flags field is a bitmap that specifies which of the other fields
+ The flags field is a bitmap that specifies which of the other fields
are set. The flag bits are:
PCRE_EXTRA_STUDY_DATA
PCRE_EXTRA_MATCH_LIMIT
+ PCRE_EXTRA_MATCH_LIMIT_RECURSION
PCRE_EXTRA_CALLOUT_DATA
PCRE_EXTRA_TABLES
- Other flag bits should be set to zero. The study_data field is set in
- the pcre_extra block that is returned by pcre_study(), together with
+ Other flag bits should be set to zero. The study_data field is set in
+ the pcre_extra block that is returned by pcre_study(), together with
the appropriate flag bit. You should not set this yourself, but you may
- add to the block by setting the other fields and their corresponding
+ add to the block by setting the other fields and their corresponding
flag bits.
The match_limit field provides a means of preventing PCRE from using up
- a vast amount of resources when running patterns that are not going to
- match, but which have a very large number of possibilities in their
- search trees. The classic example is the use of nested unlimited
+ a vast amount of resources when running patterns that are not going to
+ match, but which have a very large number of possibilities in their
+ search trees. The classic example is the use of nested unlimited
repeats.
- Internally, PCRE uses a function called match() which it calls repeat-
- edly (sometimes recursively). The limit is imposed on the number of
- times this function is called during a match, which has the effect of
- limiting the amount of recursion and backtracking that can take place.
- For patterns that are not anchored, the count starts from zero for each
- position in the subject string.
-
- The default limit for the library can be set when PCRE is built; the
- default default is 10 million, which handles all but the most extreme
- cases. You can reduce the default by suppling pcre_exec() with a
- pcre_extra block in which match_limit is set to a smaller value, and
- PCRE_EXTRA_MATCH_LIMIT is set in the flags field. If the limit is
+ Internally, PCRE uses a function called match() which it calls repeat-
+ edly (sometimes recursively). The limit set by match_limit is imposed
+ on the number of times this function is called during a match, which
+ has the effect of limiting the amount of backtracking that can take
+ place. For patterns that are not anchored, the count restarts from zero
+ for each position in the subject string.
+
+ The default value for the limit can be set when PCRE is built; the
+ default default is 10 million, which handles all but the most extreme
+ cases. You can override the default by suppling pcre_exec() with a
+ pcre_extra block in which match_limit is set, and
+ PCRE_EXTRA_MATCH_LIMIT is set in the flags field. If the limit is
exceeded, pcre_exec() returns PCRE_ERROR_MATCHLIMIT.
- The pcre_callout field is used in conjunction with the "callout" fea-
+ The match_limit_recursion field is similar to match_limit, but instead
+ of limiting the total number of times that match() is called, it limits
+ the depth of recursion. The recursion depth is a smaller number than
+ the total number of calls, because not all calls to match() are recur-
+ sive. This limit is of use only if it is set smaller than match_limit.
+
+ Limiting the recursion depth limits the amount of stack that can be
+ used, or, when PCRE has been compiled to use memory on the heap instead
+ of the stack, the amount of heap memory that can be used.
+
+ The default value for match_limit_recursion can be set when PCRE is
+ built; the default default is the same value as the default for
+ match_limit. You can override the default by suppling pcre_exec() with
+ a pcre_extra block in which match_limit_recursion is set, and
+ PCRE_EXTRA_MATCH_LIMIT_RECURSION is set in the flags field. If the
+ limit is exceeded, pcre_exec() returns PCRE_ERROR_RECURSIONLIMIT.
+
+ The pcre_callout field is used in conjunction with the "callout" fea-
ture, which is described in the pcrecallout documentation.
- The tables field is used to pass a character tables pointer to
- pcre_exec(); this overrides the value that is stored with the compiled
- pattern. A non-NULL value is stored with the compiled pattern only if
- custom tables were supplied to pcre_compile() via its tableptr argu-
+ The tables field is used to pass a character tables pointer to
+ pcre_exec(); this overrides the value that is stored with the compiled
+ pattern. A non-NULL value is stored with the compiled pattern only if
+ custom tables were supplied to pcre_compile() via its tableptr argu-
ment. If NULL is passed to pcre_exec() using this mechanism, it forces
- PCRE's internal tables to be used. This facility is helpful when re-
- using patterns that have been saved after compiling with an external
- set of tables, because the external tables might be at a different
- address when pcre_exec() is called. See the pcreprecompile documenta-
+ PCRE's internal tables to be used. This facility is helpful when re-
+ using patterns that have been saved after compiling with an external
+ set of tables, because the external tables might be at a different
+ address when pcre_exec() is called. See the pcreprecompile documenta-
tion for a discussion of saving compiled patterns for later use.
Option bits for pcre_exec()
- The unused bits of the options argument for pcre_exec() must be zero.
- The only bits that may be set are PCRE_ANCHORED, PCRE_NOTBOL,
+ The unused bits of the options argument for pcre_exec() must be zero.
+ The only bits that may be set are PCRE_ANCHORED, PCRE_NOTBOL,
PCRE_NOTEOL, PCRE_NOTEMPTY, PCRE_NO_UTF8_CHECK and PCRE_PARTIAL.
PCRE_ANCHORED
- The PCRE_ANCHORED option limits pcre_exec() to matching at the first
- matching position. If a pattern was compiled with PCRE_ANCHORED, or
- turned out to be anchored by virtue of its contents, it cannot be made
+ The PCRE_ANCHORED option limits pcre_exec() to matching at the first
+ matching position. If a pattern was compiled with PCRE_ANCHORED, or
+ turned out to be anchored by virtue of its contents, it cannot be made
unachored at matching time.
PCRE_NOTBOL
This option specifies that first character of the subject string is not
- the beginning of a line, so the circumflex metacharacter should not
- match before it. Setting this without PCRE_MULTILINE (at compile time)
- causes circumflex never to match. This option affects only the behav-
+ the beginning of a line, so the circumflex metacharacter should not
+ match before it. Setting this without PCRE_MULTILINE (at compile time)
+ causes circumflex never to match. This option affects only the behav-
iour of the circumflex metacharacter. It does not affect \A.
PCRE_NOTEOL
This option specifies that the end of the subject string is not the end
- of a line, so the dollar metacharacter should not match it nor (except
- in multiline mode) a newline immediately before it. Setting this with-
+ of a line, so the dollar metacharacter should not match it nor (except
+ in multiline mode) a newline immediately before it. Setting this with-
out PCRE_MULTILINE (at compile time) causes dollar never to match. This
- option affects only the behaviour of the dollar metacharacter. It does
+ option affects only the behaviour of the dollar metacharacter. It does
not affect \Z or \z.
PCRE_NOTEMPTY
An empty string is not considered to be a valid match if this option is
- set. If there are alternatives in the pattern, they are tried. If all
- the alternatives match the empty string, the entire match fails. For
+ set. If there are alternatives in the pattern, they are tried. If all
+ the alternatives match the empty string, the entire match fails. For
example, if the pattern
a?b?
- is applied to a string not beginning with "a" or "b", it matches the
- empty string at the start of the subject. With PCRE_NOTEMPTY set, this
+ is applied to a string not beginning with "a" or "b", it matches the
+ empty string at the start of the subject. With PCRE_NOTEMPTY set, this
match is not valid, so PCRE searches further into the string for occur-
rences of "a" or "b".
Perl has no direct equivalent of PCRE_NOTEMPTY, but it does make a spe-
- cial case of a pattern match of the empty string within its split()
- function, and when using the /g modifier. It is possible to emulate
+ cial case of a pattern match of the empty string within its split()
+ function, and when using the /g modifier. It is possible to emulate
Perl's behaviour after matching a null string by first trying the match
again at the same offset with PCRE_NOTEMPTY and PCRE_ANCHORED, and then
- if that fails by advancing the starting offset (see below) and trying
+ if that fails by advancing the starting offset (see below) and trying
an ordinary match again. There is some code that demonstrates how to do
this in the pcredemo.c sample program.
PCRE_NO_UTF8_CHECK
When PCRE_UTF8 is set at compile time, the validity of the subject as a
- UTF-8 string is automatically checked when pcre_exec() is subsequently
- called. The value of startoffset is also checked to ensure that it
- points to the start of a UTF-8 character. If an invalid UTF-8 sequence
+ UTF-8 string is automatically checked when pcre_exec() is subsequently
+ called. The value of startoffset is also checked to ensure that it
+ points to the start of a UTF-8 character. If an invalid UTF-8 sequence
of bytes is found, pcre_exec() returns the error PCRE_ERROR_BADUTF8. If
- startoffset contains an invalid value, PCRE_ERROR_BADUTF8_OFFSET is
+ startoffset contains an invalid value, PCRE_ERROR_BADUTF8_OFFSET is
returned.
- If you already know that your subject is valid, and you want to skip
- these checks for performance reasons, you can set the
- PCRE_NO_UTF8_CHECK option when calling pcre_exec(). You might want to
- do this for the second and subsequent calls to pcre_exec() if you are
- making repeated calls to find all the matches in a single subject
- string. However, you should be sure that the value of startoffset
- points to the start of a UTF-8 character. When PCRE_NO_UTF8_CHECK is
- set, the effect of passing an invalid UTF-8 string as a subject, or a
- value of startoffset that does not point to the start of a UTF-8 char-
+ If you already know that your subject is valid, and you want to skip
+ these checks for performance reasons, you can set the
+ PCRE_NO_UTF8_CHECK option when calling pcre_exec(). You might want to
+ do this for the second and subsequent calls to pcre_exec() if you are
+ making repeated calls to find all the matches in a single subject
+ string. However, you should be sure that the value of startoffset
+ points to the start of a UTF-8 character. When PCRE_NO_UTF8_CHECK is
+ set, the effect of passing an invalid UTF-8 string as a subject, or a
+ value of startoffset that does not point to the start of a UTF-8 char-
acter, is undefined. Your program may crash.
PCRE_PARTIAL
- This option turns on the partial matching feature. If the subject
- string fails to match the pattern, but at some point during the match-
- ing process the end of the subject was reached (that is, the subject
- partially matches the pattern and the failure to match occurred only
- because there were not enough subject characters), pcre_exec() returns
- PCRE_ERROR_PARTIAL instead of PCRE_ERROR_NOMATCH. When PCRE_PARTIAL is
- used, there are restrictions on what may appear in the pattern. These
+ This option turns on the partial matching feature. If the subject
+ string fails to match the pattern, but at some point during the match-
+ ing process the end of the subject was reached (that is, the subject
+ partially matches the pattern and the failure to match occurred only
+ because there were not enough subject characters), pcre_exec() returns
+ PCRE_ERROR_PARTIAL instead of PCRE_ERROR_NOMATCH. When PCRE_PARTIAL is
+ used, there are restrictions on what may appear in the pattern. These
are discussed in the pcrepartial documentation.
The string to be matched by pcre_exec()
- The subject string is passed to pcre_exec() as a pointer in subject, a
- length in length, and a starting byte offset in startoffset. In UTF-8
- mode, the byte offset must point to the start of a UTF-8 character.
- Unlike the pattern string, the subject may contain binary zero bytes.
- When the starting offset is zero, the search for a match starts at the
+ The subject string is passed to pcre_exec() as a pointer in subject, a
+ length in length, and a starting byte offset in startoffset. In UTF-8
+ mode, the byte offset must point to the start of a UTF-8 character.
+ Unlike the pattern string, the subject may contain binary zero bytes.
+ When the starting offset is zero, the search for a match starts at the
beginning of the subject, and this is by far the most common case.
- A non-zero starting offset is useful when searching for another match
- in the same subject by calling pcre_exec() again after a previous suc-
- cess. Setting startoffset differs from just passing over a shortened
- string and setting PCRE_NOTBOL in the case of a pattern that begins
+ A non-zero starting offset is useful when searching for another match
+ in the same subject by calling pcre_exec() again after a previous suc-
+ cess. Setting startoffset differs from just passing over a shortened
+ string and setting PCRE_NOTBOL in the case of a pattern that begins
with any kind of lookbehind. For example, consider the pattern
\Biss\B
- which finds occurrences of "iss" in the middle of words. (\B matches
- only if the current position in the subject is not a word boundary.)
- When applied to the string "Mississipi" the first call to pcre_exec()
- finds the first occurrence. If pcre_exec() is called again with just
- the remainder of the subject, namely "issipi", it does not match,
+ which finds occurrences of "iss" in the middle of words. (\B matches
+ only if the current position in the subject is not a word boundary.)
+ When applied to the string "Mississipi" the first call to pcre_exec()
+ finds the first occurrence. If pcre_exec() is called again with just
+ the remainder of the subject, namely "issipi", it does not match,
because \B is always false at the start of the subject, which is deemed
- to be a word boundary. However, if pcre_exec() is passed the entire
+ to be a word boundary. However, if pcre_exec() is passed the entire
string again, but with startoffset set to 4, it finds the second occur-
- rence of "iss" because it is able to look behind the starting point to
+ rence of "iss" because it is able to look behind the starting point to
discover that it is preceded by a letter.
- If a non-zero starting offset is passed when the pattern is anchored,
+ If a non-zero starting offset is passed when the pattern is anchored,
one attempt to match at the given offset is made. This can only succeed
- if the pattern does not require the match to be at the start of the
+ if the pattern does not require the match to be at the start of the
subject.
How pcre_exec() returns captured substrings
- In general, a pattern matches a certain portion of the subject, and in
- addition, further substrings from the subject may be picked out by
- parts of the pattern. Following the usage in Jeffrey Friedl's book,
- this is called "capturing" in what follows, and the phrase "capturing
- subpattern" is used for a fragment of a pattern that picks out a sub-
- string. PCRE supports several other kinds of parenthesized subpattern
+ In general, a pattern matches a certain portion of the subject, and in
+ addition, further substrings from the subject may be picked out by
+ parts of the pattern. Following the usage in Jeffrey Friedl's book,
+ this is called "capturing" in what follows, and the phrase "capturing
+ subpattern" is used for a fragment of a pattern that picks out a sub-
+ string. PCRE supports several other kinds of parenthesized subpattern
that do not cause substrings to be captured.
- Captured substrings are returned to the caller via a vector of integer
- offsets whose address is passed in ovector. The number of elements in
- the vector is passed in ovecsize, which must be a non-negative number.
+ Captured substrings are returned to the caller via a vector of integer
+ offsets whose address is passed in ovector. The number of elements in
+ the vector is passed in ovecsize, which must be a non-negative number.
Note: this argument is NOT the size of ovector in bytes.
- The first two-thirds of the vector is used to pass back captured sub-
- strings, each substring using a pair of integers. The remaining third
- of the vector is used as workspace by pcre_exec() while matching cap-
- turing subpatterns, and is not available for passing back information.
- The length passed in ovecsize should always be a multiple of three. If
+ The first two-thirds of the vector is used to pass back captured sub-
+ strings, each substring using a pair of integers. The remaining third
+ of the vector is used as workspace by pcre_exec() while matching cap-
+ turing subpatterns, and is not available for passing back information.
+ The length passed in ovecsize should always be a multiple of three. If
it is not, it is rounded down.
- When a match is successful, information about captured substrings is
- returned in pairs of integers, starting at the beginning of ovector,
- and continuing up to two-thirds of its length at the most. The first
+ When a match is successful, information about captured substrings is
+ returned in pairs of integers, starting at the beginning of ovector,
+ and continuing up to two-thirds of its length at the most. The first
element of a pair is set to the offset of the first character in a sub-
- string, and the second is set to the offset of the first character
- after the end of a substring. The first pair, ovector[0] and ovec-
- tor[1], identify the portion of the subject string matched by the
- entire pattern. The next pair is used for the first capturing subpat-
- tern, and so on. The value returned by pcre_exec() is the number of
- pairs that have been set. If there are no capturing subpatterns, the
- return value from a successful match is 1, indicating that just the
+ string, and the second is set to the offset of the first character
+ after the end of a substring. The first pair, ovector[0] and ovec-
+ tor[1], identify the portion of the subject string matched by the
+ entire pattern. The next pair is used for the first capturing subpat-
+ tern, and so on. The value returned by pcre_exec() is the number of
+ pairs that have been set. If there are no capturing subpatterns, the
+ return value from a successful match is 1, indicating that just the
first pair of offsets has been set.
- Some convenience functions are provided for extracting the captured
- substrings as separate strings. These are described in the following
+ Some convenience functions are provided for extracting the captured
+ substrings as separate strings. These are described in the following
section.
- It is possible for an capturing subpattern number n+1 to match some
- part of the subject when subpattern n has not been used at all. For
+ It is possible for an capturing subpattern number n+1 to match some
+ part of the subject when subpattern n has not been used at all. For
example, if the string "abc" is matched against the pattern (a|(z))(bc)
- subpatterns 1 and 3 are matched, but 2 is not. When this happens, both
+ subpatterns 1 and 3 are matched, but 2 is not. When this happens, both
offset values corresponding to the unused subpattern are set to -1.
If a capturing subpattern is matched repeatedly, it is the last portion
of the string that it matched that is returned.
- If the vector is too small to hold all the captured substring offsets,
+ If the vector is too small to hold all the captured substring offsets,
it is used as far as possible (up to two-thirds of its length), and the
- function returns a value of zero. In particular, if the substring off-
+ function returns a value of zero. In particular, if the substring off-
sets are not of interest, pcre_exec() may be called with ovector passed
- as NULL and ovecsize as zero. However, if the pattern contains back
- references and the ovector is not big enough to remember the related
- substrings, PCRE has to get additional memory for use during matching.
+ as NULL and ovecsize as zero. However, if the pattern contains back
+ references and the ovector is not big enough to remember the related
+ substrings, PCRE has to get additional memory for use during matching.
Thus it is usually advisable to supply an ovector.
- Note that pcre_info() can be used to find out how many capturing sub-
+ Note that pcre_info() can be used to find out how many capturing sub-
patterns there are in a compiled pattern. The smallest size for ovector
- that will allow for n captured substrings, in addition to the offsets
+ that will allow for n captured substrings, in addition to the offsets
of the substring matched by the whole pattern, is (n+1)*3.
Return values from pcre_exec()
- If pcre_exec() fails, it returns a negative number. The following are
+ If pcre_exec() fails, it returns a negative number. The following are
defined in the header file:
PCRE_ERROR_NOMATCH (-1)
@@ -1663,7 +1705,7 @@ MATCHING A PATTERN: THE TRADITIONAL FUNCTION
PCRE_ERROR_NULL (-2)
- Either code or subject was passed as NULL, or ovector was NULL and
+ Either code or subject was passed as NULL, or ovector was NULL and
ovecsize was not zero.
PCRE_ERROR_BADOPTION (-3)
@@ -1672,74 +1714,80 @@ MATCHING A PATTERN: THE TRADITIONAL FUNCTION
PCRE_ERROR_BADMAGIC (-4)
- PCRE stores a 4-byte "magic number" at the start of the compiled code,
+ PCRE stores a 4-byte "magic number" at the start of the compiled code,
to catch the case when it is passed a junk pointer and to detect when a
pattern that was compiled in an environment of one endianness is run in
- an environment with the other endianness. This is the error that PCRE
+ an environment with the other endianness. This is the error that PCRE
gives when the magic number is not present.
PCRE_ERROR_UNKNOWN_NODE (-5)
While running the pattern match, an unknown item was encountered in the
- compiled pattern. This error could be caused by a bug in PCRE or by
+ compiled pattern. This error could be caused by a bug in PCRE or by
overwriting of the compiled pattern.
PCRE_ERROR_NOMEMORY (-6)
- If a pattern contains back references, but the ovector that is passed
+ If a pattern contains back references, but the ovector that is passed
to pcre_exec() is not big enough to remember the referenced substrings,
- PCRE gets a block of memory at the start of matching to use for this
- purpose. If the call via pcre_malloc() fails, this error is given. The
+ PCRE gets a block of memory at the start of matching to use for this
+ purpose. If the call via pcre_malloc() fails, this error is given. The
memory is automatically freed at the end of matching.
PCRE_ERROR_NOSUBSTRING (-7)
- This error is used by the pcre_copy_substring(), pcre_get_substring(),
+ This error is used by the pcre_copy_substring(), pcre_get_substring(),
and pcre_get_substring_list() functions (see below). It is never
returned by pcre_exec().
PCRE_ERROR_MATCHLIMIT (-8)
- The recursion and backtracking limit, as specified by the match_limit
- field in a pcre_extra structure (or defaulted) was reached. See the
+ The backtracking limit, as specified by the match_limit field in a
+ pcre_extra structure (or defaulted) was reached. See the description
+ above.
+
+ PCRE_ERROR_RECURSIONLIMIT (-21)
+
+ The internal recursion limit, as specified by the match_limit_recursion
+ field in a pcre_extra structure (or defaulted) was reached. See the
description above.
PCRE_ERROR_CALLOUT (-9)
This error is never generated by pcre_exec() itself. It is provided for
- use by callout functions that want to yield a distinctive error code.
+ use by callout functions that want to yield a distinctive error code.
See the pcrecallout documentation for details.
PCRE_ERROR_BADUTF8 (-10)
- A string that contains an invalid UTF-8 byte sequence was passed as a
+ A string that contains an invalid UTF-8 byte sequence was passed as a
subject.
PCRE_ERROR_BADUTF8_OFFSET (-11)
The UTF-8 byte sequence that was passed as a subject was valid, but the
- value of startoffset did not point to the beginning of a UTF-8 charac-
+ value of startoffset did not point to the beginning of a UTF-8 charac-
ter.
PCRE_ERROR_PARTIAL (-12)
- The subject string did not match, but it did match partially. See the
+ The subject string did not match, but it did match partially. See the
pcrepartial documentation for details of partial matching.
PCRE_ERROR_BADPARTIAL (-13)
- The PCRE_PARTIAL option was used with a compiled pattern containing
- items that are not supported for partial matching. See the pcrepartial
+ The PCRE_PARTIAL option was used with a compiled pattern containing
+ items that are not supported for partial matching. See the pcrepartial
documentation for details of partial matching.
PCRE_ERROR_INTERNAL (-14)
- An unexpected internal error has occurred. This error could be caused
+ An unexpected internal error has occurred. This error could be caused
by a bug in PCRE or by overwriting of the compiled pattern.
PCRE_ERROR_BADCOUNT (-15)
- This error is given if the value of the ovecsize argument is negative.
+ This error is given if the value of the ovecsize argument is negative.
EXTRACTING CAPTURED SUBSTRINGS BY NUMBER
@@ -1755,71 +1803,71 @@ EXTRACTING CAPTURED SUBSTRINGS BY NUMBER
int pcre_get_substring_list(const char *subject,
int *ovector, int stringcount, const char ***listptr);
- Captured substrings can be accessed directly by using the offsets
- returned by pcre_exec() in ovector. For convenience, the functions
+ Captured substrings can be accessed directly by using the offsets
+ returned by pcre_exec() in ovector. For convenience, the functions
pcre_copy_substring(), pcre_get_substring(), and pcre_get_sub-
- string_list() are provided for extracting captured substrings as new,
- separate, zero-terminated strings. These functions identify substrings
- by number. The next section describes functions for extracting named
- substrings. A substring that contains a binary zero is correctly
- extracted and has a further zero added on the end, but the result is
+ string_list() are provided for extracting captured substrings as new,
+ separate, zero-terminated strings. These functions identify substrings
+ by number. The next section describes functions for extracting named
+ substrings. A substring that contains a binary zero is correctly
+ extracted and has a further zero added on the end, but the result is
not, of course, a C string.
- The first three arguments are the same for all three of these func-
- tions: subject is the subject string that has just been successfully
+ The first three arguments are the same for all three of these func-
+ tions: subject is the subject string that has just been successfully
matched, ovector is a pointer to the vector of integer offsets that was
passed to pcre_exec(), and stringcount is the number of substrings that
- were captured by the match, including the substring that matched the
+ were captured by the match, including the substring that matched the
entire regular expression. This is the value returned by pcre_exec() if
- it is greater than zero. If pcre_exec() returned zero, indicating that
- it ran out of space in ovector, the value passed as stringcount should
+ it is greater than zero. If pcre_exec() returned zero, indicating that
+ it ran out of space in ovector, the value passed as stringcount should
be the number of elements in the vector divided by three.
- The functions pcre_copy_substring() and pcre_get_substring() extract a
- single substring, whose number is given as stringnumber. A value of
- zero extracts the substring that matched the entire pattern, whereas
- higher values extract the captured substrings. For pcre_copy_sub-
- string(), the string is placed in buffer, whose length is given by
- buffersize, while for pcre_get_substring() a new block of memory is
- obtained via pcre_malloc, and its address is returned via stringptr.
- The yield of the function is the length of the string, not including
+ The functions pcre_copy_substring() and pcre_get_substring() extract a
+ single substring, whose number is given as stringnumber. A value of
+ zero extracts the substring that matched the entire pattern, whereas
+ higher values extract the captured substrings. For pcre_copy_sub-
+ string(), the string is placed in buffer, whose length is given by
+ buffersize, while for pcre_get_substring() a new block of memory is
+ obtained via pcre_malloc, and its address is returned via stringptr.
+ The yield of the function is the length of the string, not including
the terminating zero, or one of
PCRE_ERROR_NOMEMORY (-6)
- The buffer was too small for pcre_copy_substring(), or the attempt to
+ The buffer was too small for pcre_copy_substring(), or the attempt to
get memory failed for pcre_get_substring().
PCRE_ERROR_NOSUBSTRING (-7)
There is no substring whose number is stringnumber.
- The pcre_get_substring_list() function extracts all available sub-
- strings and builds a list of pointers to them. All this is done in a
+ The pcre_get_substring_list() function extracts all available sub-
+ strings and builds a list of pointers to them. All this is done in a
single block of memory that is obtained via pcre_malloc. The address of
- the memory block is returned via listptr, which is also the start of
- the list of string pointers. The end of the list is marked by a NULL
+ the memory block is returned via listptr, which is also the start of
+ the list of string pointers. The end of the list is marked by a NULL
pointer. The yield of the function is zero if all went well, or
PCRE_ERROR_NOMEMORY (-6)
if the attempt to get the memory block failed.
- When any of these functions encounter a substring that is unset, which
- can happen when capturing subpattern number n+1 matches some part of
- the subject, but subpattern n has not been used at all, they return an
+ When any of these functions encounter a substring that is unset, which
+ can happen when capturing subpattern number n+1 matches some part of
+ the subject, but subpattern n has not been used at all, they return an
empty string. This can be distinguished from a genuine zero-length sub-
- string by inspecting the appropriate offset in ovector, which is nega-
+ string by inspecting the appropriate offset in ovector, which is nega-
tive for unset substrings.
- The two convenience functions pcre_free_substring() and pcre_free_sub-
- string_list() can be used to free the memory returned by a previous
+ The two convenience functions pcre_free_substring() and pcre_free_sub-
+ string_list() can be used to free the memory returned by a previous
call of pcre_get_substring() or pcre_get_substring_list(), respec-
- tively. They do nothing more than call the function pointed to by
- pcre_free, which of course could be called directly from a C program.
- However, PCRE is used in some situations where it is linked via a spe-
+ tively. They do nothing more than call the function pointed to by
+ pcre_free, which of course could be called directly from a C program.
+ However, PCRE is used in some situations where it is linked via a spe-
cial interface to another programming language which cannot use
- pcre_free directly; it is for these cases that the functions are pro-
+ pcre_free directly; it is for these cases that the functions are pro-
vided.
@@ -1838,52 +1886,52 @@ EXTRACTING CAPTURED SUBSTRINGS BY NAME
int stringcount, const char *stringname,
const char **stringptr);
- To extract a substring by name, you first have to find associated num-
+ To extract a substring by name, you first have to find associated num-
ber. For example, for this pattern
(a+)b(?P<xxx>\d+)...
the number of the subpattern called "xxx" is 2. You can find the number
from the name by calling pcre_get_stringnumber(). The first argument is
- the compiled pattern, and the second is the name. The yield of the
- function is the subpattern number, or PCRE_ERROR_NOSUBSTRING (-7) if
+ the compiled pattern, and the second is the name. The yield of the
+ function is the subpattern number, or PCRE_ERROR_NOSUBSTRING (-7) if
there is no subpattern of that name.
Given the number, you can extract the substring directly, or use one of
the functions described in the previous section. For convenience, there
are also two functions that do the whole job.
- Most of the arguments of pcre_copy_named_substring() and
- pcre_get_named_substring() are the same as those for the similarly
- named functions that extract by number. As these are described in the
- previous section, they are not re-described here. There are just two
+ Most of the arguments of pcre_copy_named_substring() and
+ pcre_get_named_substring() are the same as those for the similarly
+ named functions that extract by number. As these are described in the
+ previous section, they are not re-described here. There are just two
differences:
- First, instead of a substring number, a substring name is given. Sec-
+ First, instead of a substring number, a substring name is given. Sec-
ond, there is an extra argument, given at the start, which is a pointer
- to the compiled pattern. This is needed in order to gain access to the
+ to the compiled pattern. This is needed in order to gain access to the
name-to-number translation table.
- These functions call pcre_get_stringnumber(), and if it succeeds, they
- then call pcre_copy_substring() or pcre_get_substring(), as appropri-
+ These functions call pcre_get_stringnumber(), and if it succeeds, they
+ then call pcre_copy_substring() or pcre_get_substring(), as appropri-
ate.
FINDING ALL POSSIBLE MATCHES
- The traditional matching function uses a similar algorithm to Perl,
+ The traditional matching function uses a similar algorithm to Perl,
which stops when it finds the first match, starting at a given point in
- the subject. If you want to find all possible matches, or the longest
- possible match, consider using the alternative matching function (see
- below) instead. If you cannot use the alternative function, but still
- need to find all possible matches, you can kludge it up by making use
+ the subject. If you want to find all possible matches, or the longest
+ possible match, consider using the alternative matching function (see
+ below) instead. If you cannot use the alternative function, but still
+ need to find all possible matches, you can kludge it up by making use
of the callout facility, which is described in the pcrecallout documen-
tation.
What you have to do is to insert a callout right at the end of the pat-
- tern. When your callout function is called, extract and save the cur-
- rent matched substring. Then return 1, which forces pcre_exec() to
- backtrack and try other alternatives. Ultimately, when it runs out of
+ tern. When your callout function is called, extract and save the cur-
+ rent matched substring. Then return 1, which forces pcre_exec() to
+ backtrack and try other alternatives. Ultimately, when it runs out of
matches, pcre_exec() will yield PCRE_ERROR_NOMATCH.
@@ -1894,32 +1942,32 @@ MATCHING A PATTERN: THE ALTERNATIVE FUNCTION
int options, int *ovector, int ovecsize,
int *workspace, int wscount);
- The function pcre_dfa_exec() is called to match a subject string
- against a compiled pattern, using a "DFA" matching algorithm. This has
- different characteristics to the normal algorithm, and is not compati-
+ The function pcre_dfa_exec() is called to match a subject string
+ against a compiled pattern, using a "DFA" matching algorithm. This has
+ different characteristics to the normal algorithm, and is not compati-
ble with Perl. Some of the features of PCRE patterns are not supported.
Nevertheless, there are times when this kind of matching can be useful.
- For a discussion of the two matching algorithms, see the pcrematching
+ For a discussion of the two matching algorithms, see the pcrematching
documentation.
- The arguments for the pcre_dfa_exec() function are the same as for
+ The arguments for the pcre_dfa_exec() function are the same as for
pcre_exec(), plus two extras. The ovector argument is used in a differ-
- ent way, and this is described below. The other common arguments are
- used in the same way as for pcre_exec(), so their description is not
+ ent way, and this is described below. The other common arguments are
+ used in the same way as for pcre_exec(), so their description is not
repeated here.
- The two additional arguments provide workspace for the function. The
- workspace vector should contain at least 20 elements. It is used for
+ The two additional arguments provide workspace for the function. The
+ workspace vector should contain at least 20 elements. It is used for
keeping track of multiple paths through the pattern tree. More
- workspace will be needed for patterns and subjects where there are a
+ workspace will be needed for patterns and subjects where there are a
lot of possible matches.
- Here is an example of a simple call to pcre_exec():
+ Here is an example of a simple call to pcre_dfa_exec():
int rc;
int ovector[10];
int wspace[20];
- rc = pcre_exec(
+ rc = pcre_dfa_exec(
re, /* result of pcre_compile() */
NULL, /* we didn't study the pattern */
"some string", /* the subject string */
@@ -1933,47 +1981,47 @@ MATCHING A PATTERN: THE ALTERNATIVE FUNCTION
Option bits for pcre_dfa_exec()
- The unused bits of the options argument for pcre_dfa_exec() must be
- zero. The only bits that may be set are PCRE_ANCHORED, PCRE_NOTBOL,
- PCRE_NOTEOL, PCRE_NOTEMPTY, PCRE_NO_UTF8_CHECK, PCRE_PARTIAL,
- PCRE_DFA_SHORTEST, and PCRE_DFA_RESTART. All but the last three of
- these are the same as for pcre_exec(), so their description is not
+ The unused bits of the options argument for pcre_dfa_exec() must be
+ zero. The only bits that may be set are PCRE_ANCHORED, PCRE_NOTBOL,
+ PCRE_NOTEOL, PCRE_NOTEMPTY, PCRE_NO_UTF8_CHECK, PCRE_PARTIAL,
+ PCRE_DFA_SHORTEST, and PCRE_DFA_RESTART. All but the last three of
+ these are the same as for pcre_exec(), so their description is not
repeated here.
PCRE_PARTIAL
- This has the same general effect as it does for pcre_exec(), but the
- details are slightly different. When PCRE_PARTIAL is set for
- pcre_dfa_exec(), the return code PCRE_ERROR_NOMATCH is converted into
- PCRE_ERROR_PARTIAL if the end of the subject is reached, there have
+ This has the same general effect as it does for pcre_exec(), but the
+ details are slightly different. When PCRE_PARTIAL is set for
+ pcre_dfa_exec(), the return code PCRE_ERROR_NOMATCH is converted into
+ PCRE_ERROR_PARTIAL if the end of the subject is reached, there have
been no complete matches, but there is still at least one matching pos-
- sibility. The portion of the string that provided the partial match is
+ sibility. The portion of the string that provided the partial match is
set as the first matching string.
PCRE_DFA_SHORTEST
- Setting the PCRE_DFA_SHORTEST option causes the matching algorithm to
- stop as soon as it has found one match. Because of the way the DFA
+ Setting the PCRE_DFA_SHORTEST option causes the matching algorithm to
+ stop as soon as it has found one match. Because of the way the DFA
algorithm works, this is necessarily the shortest possible match at the
first possible matching point in the subject string.
PCRE_DFA_RESTART
- When pcre_dfa_exec() is called with the PCRE_PARTIAL option, and
- returns a partial match, it is possible to call it again, with addi-
- tional subject characters, and have it continue with the same match.
- The PCRE_DFA_RESTART option requests this action; when it is set, the
- workspace and wscount options must reference the same vector as before
- because data about the match so far is left in them after a partial
- match. There is more discussion of this facility in the pcrepartial
+ When pcre_dfa_exec() is called with the PCRE_PARTIAL option, and
+ returns a partial match, it is possible to call it again, with addi-
+ tional subject characters, and have it continue with the same match.
+ The PCRE_DFA_RESTART option requests this action; when it is set, the
+ workspace and wscount options must reference the same vector as before
+ because data about the match so far is left in them after a partial
+ match. There is more discussion of this facility in the pcrepartial
documentation.
Successful returns from pcre_dfa_exec()
- When pcre_dfa_exec() succeeds, it may have matched more than one sub-
+ When pcre_dfa_exec() succeeds, it may have matched more than one sub-
string in the subject. Note, however, that all the matches from one run
- of the function start at the same point in the subject. The shorter
- matches are all initial substrings of the longer matches. For example,
+ of the function start at the same point in the subject. The shorter
+ matches are all initial substrings of the longer matches. For example,
if the pattern
<.*>
@@ -1988,59 +2036,59 @@ MATCHING A PATTERN: THE ALTERNATIVE FUNCTION
<something> <something else>
<something> <something else> <something further>
- On success, the yield of the function is a number greater than zero,
- which is the number of matched substrings. The substrings themselves
- are returned in ovector. Each string uses two elements; the first is
- the offset to the start, and the second is the offset to the end. All
+ On success, the yield of the function is a number greater than zero,
+ which is the number of matched substrings. The substrings themselves
+ are returned in ovector. Each string uses two elements; the first is
+ the offset to the start, and the second is the offset to the end. All
the strings have the same start offset. (Space could have been saved by
- giving this only once, but it was decided to retain some compatibility
- with the way pcre_exec() returns data, even though the meaning of the
+ giving this only once, but it was decided to retain some compatibility
+ with the way pcre_exec() returns data, even though the meaning of the
strings is different.)
The strings are returned in reverse order of length; that is, the long-
- est matching string is given first. If there were too many matches to
- fit into ovector, the yield of the function is zero, and the vector is
+ est matching string is given first. If there were too many matches to
+ fit into ovector, the yield of the function is zero, and the vector is
filled with the longest matches.
Error returns from pcre_dfa_exec()
- The pcre_dfa_exec() function returns a negative number when it fails.
- Many of the errors are the same as for pcre_exec(), and these are
- described above. There are in addition the following errors that are
+ The pcre_dfa_exec() function returns a negative number when it fails.
+ Many of the errors are the same as for pcre_exec(), and these are
+ described above. There are in addition the following errors that are
specific to pcre_dfa_exec():
PCRE_ERROR_DFA_UITEM (-16)
- This return is given if pcre_dfa_exec() encounters an item in the pat-
- tern that it does not support, for instance, the use of \C or a back
+ This return is given if pcre_dfa_exec() encounters an item in the pat-
+ tern that it does not support, for instance, the use of \C or a back
reference.
PCRE_ERROR_DFA_UCOND (-17)
- This return is given if pcre_dfa_exec() encounters a condition item in
- a pattern that uses a back reference for the condition. This is not
+ This return is given if pcre_dfa_exec() encounters a condition item in
+ a pattern that uses a back reference for the condition. This is not
supported.
PCRE_ERROR_DFA_UMLIMIT (-18)
- This return is given if pcre_dfa_exec() is called with an extra block
+ This return is given if pcre_dfa_exec() is called with an extra block
that contains a setting of the match_limit field. This is not supported
(it is meaningless).
PCRE_ERROR_DFA_WSSIZE (-19)
- This return is given if pcre_dfa_exec() runs out of space in the
+ This return is given if pcre_dfa_exec() runs out of space in the
workspace vector.
PCRE_ERROR_DFA_RECURSE (-20)
- When a recursive subpattern is processed, the matching function calls
- itself recursively, using private vectors for ovector and workspace.
- This error is given if the output vector is not large enough. This
+ When a recursive subpattern is processed, the matching function calls
+ itself recursively, using private vectors for ovector and workspace.
+ This error is given if the output vector is not large enough. This
should be extremely rare, as a vector of size 1000 is used.
-Last updated: 16 May 2005
-Copyright (c) 1997-2005 University of Cambridge.
+Last updated: 18 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -2216,35 +2264,37 @@ DIFFERENCES BETWEEN PCRE AND PERL
handle regular expressions. The differences described here are with
respect to Perl 5.8.
- 1. PCRE does not have full UTF-8 support. Details of what it does have
- are given in the section on UTF-8 support in the main pcre page.
+ 1. PCRE has only a subset of Perl's UTF-8 and Unicode support. Details
+ of what it does have are given in the section on UTF-8 support in the
+ main pcre page.
2. PCRE does not allow repeat quantifiers on lookahead assertions. Perl
- permits them, but they do not mean what you might think. For example,
+ permits them, but they do not mean what you might think. For example,
(?!a){3} does not assert that the next three characters are not "a". It
just asserts that the next character is not "a" three times.
- 3. Capturing subpatterns that occur inside negative lookahead asser-
- tions are counted, but their entries in the offsets vector are never
- set. Perl sets its numerical variables from any such patterns that are
+ 3. Capturing subpatterns that occur inside negative lookahead asser-
+ tions are counted, but their entries in the offsets vector are never
+ set. Perl sets its numerical variables from any such patterns that are
matched before the assertion fails to match something (thereby succeed-
- ing), but only if the negative lookahead assertion contains just one
+ ing), but only if the negative lookahead assertion contains just one
branch.
- 4. Though binary zero characters are supported in the subject string,
+ 4. Though binary zero characters are supported in the subject string,
they are not allowed in a pattern string because it is passed as a nor-
mal C string, terminated by zero. The escape sequence \0 can be used in
the pattern to represent a binary zero.
- 5. The following Perl escape sequences are not supported: \l, \u, \L,
+ 5. The following Perl escape sequences are not supported: \l, \u, \L,
\U, and \N. In fact these are implemented by Perl's general string-han-
- dling and are not part of its pattern matching engine. If any of these
+ dling and are not part of its pattern matching engine. If any of these
are encountered by PCRE, an error is generated.
- 6. The Perl escape sequences \p, \P, and \X are supported only if PCRE
- is built with Unicode character property support. The properties that
- can be tested with \p and \P are limited to the general category prop-
- erties such as Lu and Nd.
+ 6. The Perl escape sequences \p, \P, and \X are supported only if PCRE
+ is built with Unicode character property support. The properties that
+ can be tested with \p and \P are limited to the general category prop-
+ erties such as Lu and Nd, script names such as Greek or Han, and the
+ derived properties Any and L&.
7. PCRE does support the \Q...\E escape for quoting substrings. Charac-
ters in between are treated as literals. This is slightly different
@@ -2317,8 +2367,8 @@ DIFFERENCES BETWEEN PCRE AND PERL
(n) The alternative matching function (pcre_dfa_exec()) matches in a
different way and is not Perl-compatible.
-Last updated: 28 February 2005
-Copyright (c) 1997-2005 University of Cambridge.
+Last updated: 24 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -2464,7 +2514,7 @@ BACKSLASH
\t tab (hex 09)
\ddd character with octal code ddd, or backreference
\xhh character with hex code hh
- \x{hhh..} character with hex code hhh... (UTF-8 mode only)
+ \x{hhh..} character with hex code hhh..
The precise effect of \cx is as follows: if x is a lower case letter,
it is converted to upper case. Then bit 6 of the character (hex 40) is
@@ -2472,38 +2522,37 @@ BACKSLASH
becomes hex 7B.
After \x, from zero to two hexadecimal digits are read (letters can be
- in upper or lower case). In UTF-8 mode, any number of hexadecimal dig-
- its may appear between \x{ and }, but the value of the character code
- must be less than 2**31 (that is, the maximum hexadecimal value is
- 7FFFFFFF). If characters other than hexadecimal digits appear between
- \x{ and }, or if there is no terminating }, this form of escape is not
- recognized. Instead, the initial \x will be interpreted as a basic
- hexadecimal escape, with no following digits, giving a character whose
- value is zero.
+ in upper or lower case). Any number of hexadecimal digits may appear
+ between \x{ and }, but the value of the character code must be less
+ than 256 in non-UTF-8 mode, and less than 2**31 in UTF-8 mode (that is,
+ the maximum hexadecimal value is 7FFFFFFF). If characters other than
+ hexadecimal digits appear between \x{ and }, or if there is no termi-
+ nating }, this form of escape is not recognized. Instead, the initial
+ \x will be interpreted as a basic hexadecimal escape, with no following
+ digits, giving a character whose value is zero.
Characters whose value is less than 256 can be defined by either of the
- two syntaxes for \x when PCRE is in UTF-8 mode. There is no difference
- in the way they are handled. For example, \xdc is exactly the same as
- \x{dc}.
-
- After \0 up to two further octal digits are read. In both cases, if
- there are fewer than two digits, just those that are present are used.
- Thus the sequence \0\x\07 specifies two binary zeros followed by a BEL
- character (code value 7). Make sure you supply two digits after the
- initial zero if the pattern character that follows is itself an octal
+ two syntaxes for \x. There is no difference in the way they are han-
+ dled. For example, \xdc is exactly the same as \x{dc}.
+
+ After \0 up to two further octal digits are read. In both cases, if
+ there are fewer than two digits, just those that are present are used.
+ Thus the sequence \0\x\07 specifies two binary zeros followed by a BEL
+ character (code value 7). Make sure you supply two digits after the
+ initial zero if the pattern character that follows is itself an octal
digit.
The handling of a backslash followed by a digit other than 0 is compli-
cated. Outside a character class, PCRE reads it and any following dig-
- its as a decimal number. If the number is less than 10, or if there
+ its as a decimal number. If the number is less than 10, or if there
have been at least that many previous capturing left parentheses in the
- expression, the entire sequence is taken as a back reference. A
- description of how this works is given later, following the discussion
+ expression, the entire sequence is taken as a back reference. A
+ description of how this works is given later, following the discussion
of parenthesized subpatterns.
- Inside a character class, or if the decimal number is greater than 9
- and there have not been that many capturing subpatterns, PCRE re-reads
- up to three octal digits following the backslash, and generates a sin-
+ Inside a character class, or if the decimal number is greater than 9
+ and there have not been that many capturing subpatterns, PCRE re-reads
+ up to three octal digits following the backslash, and generates a sin-
gle byte from the least significant 8 bits of the value. Any subsequent
digits stand for themselves. For example:
@@ -2522,19 +2571,19 @@ BACKSLASH
\81 is either a back reference, or a binary zero
followed by the two characters "8" and "1"
- Note that octal values of 100 or greater must not be introduced by a
+ Note that octal values of 100 or greater must not be introduced by a
leading zero, because no more than three octal digits are ever read.
- All the sequences that define a single byte value or a single UTF-8
+ All the sequences that define a single byte value or a single UTF-8
character (in UTF-8 mode) can be used both inside and outside character
- classes. In addition, inside a character class, the sequence \b is
+ classes. In addition, inside a character class, the sequence \b is
interpreted as the backspace character (hex 08), and the sequence \X is
- interpreted as the character "X". Outside a character class, these
+ interpreted as the character "X". Outside a character class, these
sequences have different meanings (see below).
Generic character types
- The third use of backslash is for specifying generic character types.
+ The third use of backslash is for specifying generic character types.
The following are always recognized:
\d any decimal digit
@@ -2545,56 +2594,81 @@ BACKSLASH
\W any "non-word" character
Each pair of escape sequences partitions the complete set of characters
- into two disjoint sets. Any given character matches one, and only one,
+ into two disjoint sets. Any given character matches one, and only one,
of each pair.
These character type sequences can appear both inside and outside char-
- acter classes. They each match one character of the appropriate type.
- If the current matching point is at the end of the subject string, all
+ acter classes. They each match one character of the appropriate type.
+ If the current matching point is at the end of the subject string, all
of them fail, since there is no character to match.
- For compatibility with Perl, \s does not match the VT character (code
- 11). This makes it different from the the POSIX "space" class. The \s
+ For compatibility with Perl, \s does not match the VT character (code
+ 11). This makes it different from the the POSIX "space" class. The \s
characters are HT (9), LF (10), FF (12), CR (13), and space (32).
A "word" character is an underscore or any character less than 256 that
- is a letter or digit. The definition of letters and digits is con-
- trolled by PCRE's low-valued character tables, and may vary if locale-
- specific matching is taking place (see "Locale support" in the pcreapi
- page). For example, in the "fr_FR" (French) locale, some character
- codes greater than 128 are used for accented letters, and these are
+ is a letter or digit. The definition of letters and digits is con-
+ trolled by PCRE's low-valued character tables, and may vary if locale-
+ specific matching is taking place (see "Locale support" in the pcreapi
+ page). For example, in the "fr_FR" (French) locale, some character
+ codes greater than 128 are used for accented letters, and these are
matched by \w.
- In UTF-8 mode, characters with values greater than 128 never match \d,
+ In UTF-8 mode, characters with values greater than 128 never match \d,
\s, or \w, and always match \D, \S, and \W. This is true even when Uni-
- code character property support is available.
+ code character property support is available. The use of locales with
+ Unicode is discouraged.
Unicode character properties
When PCRE is built with Unicode character property support, three addi-
- tional escape sequences to match generic character types are available
+ tional escape sequences to match character properties are available
when UTF-8 mode is selected. They are:
- \p{xx} a character with the xx property
- \P{xx} a character without the xx property
- \X an extended Unicode sequence
+ \p{xx} a character with the xx property
+ \P{xx} a character without the xx property
+ \X an extended Unicode sequence
The property names represented by xx above are limited to the Unicode
- general category properties. Each character has exactly one such prop-
- erty, specified by a two-letter abbreviation. For compatibility with
- Perl, negation can be specified by including a circumflex between the
- opening brace and the property name. For example, \p{^Lu} is the same
- as \P{Lu}.
-
- If only one letter is specified with \p or \P, it includes all the
- properties that start with that letter. In this case, in the absence of
- negation, the curly brackets in the escape sequence are optional; these
- two examples have the same effect:
+ script names, the general category properties, and "Any", which matches
+ any character (including newline). Other properties such as "InMusical-
+ Symbols" are not currently supported by PCRE. Note that \P{Any} does
+ not match any characters, so always causes a match failure.
+
+ Sets of Unicode characters are defined as belonging to certain scripts.
+ A character from one of these sets can be matched using a script name.
+ For example:
+
+ \p{Greek}
+ \P{Han}
+
+ Those that are not part of an identified script are lumped together as
+ "Common". The current list of scripts is:
+
+ Arabic, Armenian, Bengali, Bopomofo, Braille, Buginese, Buhid, Cana-
+ dian_Aboriginal, Cherokee, Common, Coptic, Cypriot, Cyrillic, Deseret,
+ Devanagari, Ethiopic, Georgian, Glagolitic, Gothic, Greek, Gujarati,
+ Gurmukhi, Han, Hangul, Hanunoo, Hebrew, Hiragana, Inherited, Kannada,
+ Katakana, Kharoshthi, Khmer, Lao, Latin, Limbu, Linear_B, Malayalam,
+ Mongolian, Myanmar, New_Tai_Lue, Ogham, Old_Italic, Old_Persian, Oriya,
+ Osmanya, Runic, Shavian, Sinhala, Syloti_Nagri, Syriac, Tagalog, Tag-
+ banwa, Tai_Le, Tamil, Telugu, Thaana, Thai, Tibetan, Tifinagh,
+ Ugaritic, Yi.
+
+ Each character has exactly one general category property, specified by
+ a two-letter abbreviation. For compatibility with Perl, negation can be
+ specified by including a circumflex between the opening brace and the
+ property name. For example, \p{^Lu} is the same as \P{Lu}.
+
+ If only one letter is specified with \p or \P, it includes all the gen-
+ eral category properties that start with that letter. In this case, in
+ the absence of negation, the curly brackets in the escape sequence are
+ optional; these two examples have the same effect:
\p{L}
\pL
- The following property codes are supported:
+ The following general category property codes are supported:
C Other
Cc Control
@@ -2640,8 +2714,17 @@ BACKSLASH
Zp Paragraph separator
Zs Space separator
- Extended properties such as "Greek" or "InMusicalSymbols" are not sup-
- ported by PCRE.
+ The special property L& is also supported: it matches a character that
+ has the Lu, Ll, or Lt property, in other words, a letter that is not
+ classified as a modifier or "other".
+
+ The long synonyms for these properties that Perl supports (such as
+ \p{Letter}) are not supported by PCRE. Nor is is permitted to prefix
+ any of these properties with "Is".
+
+ No character that is in the Unicode table has the Cn (unassigned) prop-
+ erty. Instead, this property is assumed for any code point that is not
+ in the Unicode table.
Specifying caseless matching does not affect these escape sequences.
For example, \p{Lu} always matches only upper case letters.
@@ -3620,15 +3703,19 @@ RECURSIVE PATTERNS
tion.) The special item (?R) is a recursive call of the entire regular
expression.
- For example, this PCRE pattern solves the nested parentheses problem
- (assume the PCRE_EXTENDED option is set so that white space is
- ignored):
+ A recursive subpattern call is always treated as an atomic group. That
+ is, once it has matched some of the subject string, it is never re-
+ entered, even if it contains untried alternatives and there is a subse-
+ quent matching failure.
+
+ This PCRE pattern solves the nested parentheses problem (assume the
+ PCRE_EXTENDED option is set so that white space is ignored):
\( ( (?>[^()]+) | (?R) )* \)
First it matches an opening parenthesis. Then it matches any number of
substrings which can either be a sequence of non-parentheses, or a
- recursive match of the pattern itself (that is a correctly parenthe-
+ recursive match of the pattern itself (that is, a correctly parenthe-
sized substring). Finally there is a closing parenthesis.
If this were part of a larger pattern, you would not want to recurse
@@ -3712,43 +3799,48 @@ SUBPATTERNS AS SUBROUTINES
two strings. Such references must, however, follow the subpattern to
which they refer.
+ Like recursive subpatterns, a "subroutine" call is always treated as an
+ atomic group. That is, once it has matched some of the subject string,
+ it is never re-entered, even if it contains untried alternatives and
+ there is a subsequent matching failure.
+
CALLOUTS
Perl has a feature whereby using the sequence (?{...}) causes arbitrary
- Perl code to be obeyed in the middle of matching a regular expression.
+ Perl code to be obeyed in the middle of matching a regular expression.
This makes it possible, amongst other things, to extract different sub-
strings that match the same pair of parentheses when there is a repeti-
tion.
PCRE provides a similar feature, but of course it cannot obey arbitrary
Perl code. The feature is called "callout". The caller of PCRE provides
- an external function by putting its entry point in the global variable
- pcre_callout. By default, this variable contains NULL, which disables
+ an external function by putting its entry point in the global variable
+ pcre_callout. By default, this variable contains NULL, which disables
all calling out.
- Within a regular expression, (?C) indicates the points at which the
- external function is to be called. If you want to identify different
- callout points, you can put a number less than 256 after the letter C.
- The default value is zero. For example, this pattern has two callout
+ Within a regular expression, (?C) indicates the points at which the
+ external function is to be called. If you want to identify different
+ callout points, you can put a number less than 256 after the letter C.
+ The default value is zero. For example, this pattern has two callout
points:
(?C1)abc(?C2)def
If the PCRE_AUTO_CALLOUT flag is passed to pcre_compile(), callouts are
- automatically installed before each item in the pattern. They are all
+ automatically installed before each item in the pattern. They are all
numbered 255.
During matching, when PCRE reaches a callout point (and pcre_callout is
- set), the external function is called. It is provided with the number
- of the callout, the position in the pattern, and, optionally, one item
- of data originally supplied by the caller of pcre_exec(). The callout
- function may cause matching to proceed, to backtrack, or to fail alto-
+ set), the external function is called. It is provided with the number
+ of the callout, the position in the pattern, and, optionally, one item
+ of data originally supplied by the caller of pcre_exec(). The callout
+ function may cause matching to proceed, to backtrack, or to fail alto-
gether. A complete description of the interface to the callout function
is given in the pcrecallout documentation.
-Last updated: 28 February 2005
-Copyright (c) 1997-2005 University of Cambridge.
+Last updated: 24 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -3838,16 +3930,16 @@ EXAMPLE OF PARTIAL MATCHING USING PCRETEST
uses the date example quoted above:
re> /^\d?\d(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)\d\d$/
- data> 25jun04P
+ data> 25jun04\P
0: 25jun04
1: jun
- data> 25dec3P
+ data> 25dec3\P
Partial match
- data> 3juP
+ data> 3ju\P
Partial match
- data> 3jujP
+ data> 3juj\P
No match
- data> jP
+ data> j\P
No match
The first data string is matched completely, so pcretest shows the
@@ -3937,8 +4029,27 @@ MULTI-SEGMENT MATCHING WITH pcre_dfa_exec()
Because of this phenomenon, it does not usually make sense to end a
pattern that is going to be matched in this way with a variable repeat.
-Last updated: 28 February 2005
-Copyright (c) 1997-2005 University of Cambridge.
+ 4. Patterns that contain alternatives at the top level which do not all
+ start with the same pattern item may not work as expected. For example,
+ consider this pattern:
+
+ 1234|3789
+
+ If the first part of the subject is "ABC123", a partial match of the
+ first alternative is found at offset 3. There is no partial match for
+ the second alternative, because such a match does not start at the same
+ point in the subject string. Attempting to continue with the string
+ "789" does not yield a match because only those alternatives that match
+ at one point in the subject are remembered. The problem arises because
+ the start of the second alternative matches within the first alterna-
+ tive. There is no problem with anchored patterns or patterns such as:
+
+ 1234|ABCD
+
+ where no string can be a partial match for both alternatives.
+
+Last updated: 16 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -4052,8 +4163,12 @@ COMPATIBILITY WITH DIFFERENT PCRE RELEASES
them for release 5.0. However, from now on, it should be possible to
make changes in a compatible manner.
-Last updated: 28 February 2005
-Copyright (c) 1997-2005 University of Cambridge.
+ Notwithstanding the above, if you have any saved patterns in UTF-8 mode
+ that use \p or \P that were compiled with any release up to and includ-
+ ing 6.4, you will have to recompile them for release 6.5 and above.
+
+Last updated: 01 February 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -4178,11 +4293,11 @@ DESCRIPTION
functions call the native ones, it is also necessary to add -lpcre.
I have implemented only those option bits that can be reasonably mapped
- to PCRE native options. In addition, the options REG_EXTENDED and
- REG_NOSUB are defined with the value zero. They have no effect, but
- since programs that are written to the POSIX interface often use them,
- this makes it easier to slot in PCRE as a replacement library. Other
- POSIX options are not even defined.
+ to PCRE native options. In addition, the option REG_EXTENDED is defined
+ with the value zero. This has no effect, but since programs that are
+ written to the POSIX interface often use it, this makes it easier to
+ slot in PCRE as a replacement library. Other POSIX options are not even
+ defined.
When PCRE is called via these functions, it is only the API that is
POSIX-like in style. The syntax and semantics of the regular expres-
@@ -4207,27 +4322,43 @@ COMPILING A PATTERN
form. The pattern is a C string terminated by a binary zero, and is
passed in the argument pattern. The preg argument is a pointer to a
regex_t structure that is used as a base for storing information about
- the compiled expression.
+ the compiled regular expression.
The argument cflags is either zero, or contains one or more of the bits
defined by the following macros:
REG_DOTALL
- The PCRE_DOTALL option is set when the expression is passed for compi-
- lation to the native function. Note that REG_DOTALL is not part of the
- POSIX standard.
+ The PCRE_DOTALL option is set when the regular expression is passed for
+ compilation to the native function. Note that REG_DOTALL is not part of
+ the POSIX standard.
REG_ICASE
- The PCRE_CASELESS option is set when the expression is passed for com-
- pilation to the native function.
+ The PCRE_CASELESS option is set when the regular expression is passed
+ for compilation to the native function.
REG_NEWLINE
- The PCRE_MULTILINE option is set when the expression is passed for com-
- pilation to the native function. Note that this does not mimic the
- defined POSIX behaviour for REG_NEWLINE (see the following section).
+ The PCRE_MULTILINE option is set when the regular expression is passed
+ for compilation to the native function. Note that this does not mimic
+ the defined POSIX behaviour for REG_NEWLINE (see the following sec-
+ tion).
+
+ REG_NOSUB
+
+ The PCRE_NO_AUTO_CAPTURE option is set when the regular expression is
+ passed for compilation to the native function. In addition, when a pat-
+ tern that is compiled with this flag is passed to regexec() for match-
+ ing, the nmatch and pmatch arguments are ignored, and no captured
+ strings are returned.
+
+ REG_UTF8
+
+ The PCRE_UTF8 option is set when the regular expression is passed for
+ compilation to the native function. This causes the pattern itself and
+ all data strings used for matching it to be treated as UTF-8 strings.
+ Note that REG_UTF8 is not part of the POSIX standard.
In the absence of these flags, no options are passed to the native
function. This means the the regex is compiled with PCRE default
@@ -4294,15 +4425,19 @@ MATCHING A PATTERN
The PCRE_NOTEOL option is set when calling the underlying PCRE matching
function.
- The portion of the string that was matched, and also any captured sub-
- strings, are returned via the pmatch argument, which points to an array
- of nmatch structures of type regmatch_t, containing the members rm_so
- and rm_eo. These contain the offset to the first character of each sub-
- string and the offset to the first character after the end of each sub-
- string, respectively. The 0th element of the vector relates to the
- entire portion of string that was matched; subsequent elements relate
- to the capturing subpatterns of the regular expression. Unused entries
- in the array have both structure members set to -1.
+ If the pattern was compiled with the REG_NOSUB flag, no data about any
+ matched strings is returned. The nmatch and pmatch arguments of
+ regexec() are ignored.
+
+ Otherwise,the portion of the string that was matched, and also any cap-
+ tured substrings, are returned via the pmatch argument, which points to
+ an array of nmatch structures of type regmatch_t, containing the mem-
+ bers rm_so and rm_eo. These contain the offset to the first character
+ of each substring and the offset to the first character after the end
+ of each substring, respectively. The 0th element of the vector relates
+ to the entire portion of string that was matched; subsequent elements
+ relate to the capturing subpatterns of the regular expression. Unused
+ entries in the array have both structure members set to -1.
A successful match yields a zero return; various error codes are
defined in the header file, of which REG_NOMATCH is the "expected"
@@ -4333,8 +4468,8 @@ AUTHOR
University Computing Service,
Cambridge CB2 3QG, England.
-Last updated: 28 February 2005
-Copyright (c) 1997-2005 University of Cambridge.
+Last updated: 16 January 2006
+Copyright (c) 1997-2006 University of Cambridge.
------------------------------------------------------------------------------
@@ -4507,13 +4642,17 @@ PASSING MODIFIERS TO THE REGULAR EXPRESSION ENGINE
RE_Options & set_caseless(bool)
- which sets or unsets the modifier. Moreover, PCRE_CONFIG_MATCH_LIMIT
- can be accessed through the set_match_limit() and match_limit() member
+ which sets or unsets the modifier. Moreover, PCRE_EXTRA_MATCH_LIMIT can
+ be accessed through the set_match_limit() and match_limit() member
functions. Setting match_limit to a non-zero value will limit the exe-
cution of pcre to keep it from doing bad things like blowing the stack
or taking an eternity to return a result. A value of 5000 is good
enough to stop stack blowup in a 2MB thread stack. Setting match_limit
- to zero disables match limiting.
+ to zero disables match limiting. Alternatively, you can call
+ match_limit_recursion() which uses PCRE_EXTRA_MATCH_LIMIT_RECURSION to
+ limit how much PCRE recurses. match_limit() limits the number of
+ matches PCRE does; match_limit_recursion() limits the depth of internal
+ recursion, and therefore the amount of stack that is used.
Normally, to pass one or more modifiers to a RE class, you declare a
RE_Options object, set the appropriate options, and pass this object to
diff --git a/ext/pcre/pcrelib/pcre.def b/ext/pcre/pcrelib/pcre.def
index adb53160d..ec2c7b395 100644
--- a/ext/pcre/pcrelib/pcre.def
+++ b/ext/pcre/pcrelib/pcre.def
@@ -4,16 +4,22 @@ pcre_malloc DATA
pcre_free DATA
pcre_compile
+pcre_compile2
+pcre_config
+pcre_copy_named_substring
pcre_copy_substring
pcre_dfa_exec
pcre_exec
-pcre_get_substring
-pcre_get_substring_list
pcre_free_substring
pcre_free_substring_list
-pcre_info
pcre_fullinfo
+pcre_get_named_substring
+pcre_get_stringnumber
+pcre_get_substring
+pcre_get_substring_list
+pcre_info
pcre_maketables
+pcre_refcount
pcre_study
pcre_version
diff --git a/ext/pcre/pcrelib/pcre.h b/ext/pcre/pcrelib/pcre.h
index ff3577402..e16cc7096 100644
--- a/ext/pcre/pcrelib/pcre.h
+++ b/ext/pcre/pcrelib/pcre.h
@@ -2,8 +2,8 @@
* Perl-Compatible Regular Expressions *
*************************************************/
-/* In its original form, this is the .in file that is transformed by
-"configure" into pcre.h.
+/* This is the public header file for the PCRE library, to be #included by
+applications that call the PCRE functions.
Copyright (c) 1997-2005 University of Cambridge
@@ -38,17 +38,29 @@ POSSIBILITY OF SUCH DAMAGE.
#ifndef _PCRE_H
#define _PCRE_H
+
+#include "php_compat.h"
-/* The file pcre.h is build by "configure". Do not edit it; instead
-make changes to pcre.in. */
+/* The current PCRE version information. */
-#include "php_compat.h"
+/* NOTES FOR FUTURE MAINTAINERS: Do not use numbers with leading zeros, because
+they may be treated as octal constants. The PCRE_PRERELEASE feature is for
+identifying release candidates. It might be defined as -RC2, for example. In
+real releases, it should be defined empty. Do not change the alignment of these
+statments. The code in ./configure greps out the version numbers by using "cut"
+to get values from column 29 onwards. These are substituted into pcre-config
+and libpcre.pc. The values are not put into configure.ac and substituted here
+(which would simplify this issue) because that makes life harder for those who
+cannot run ./configure. As it now stands, this file need not be edited in that
+circumstance. */
#define PCRE_MAJOR 6
-#define PCRE_MINOR 2
-#define PCRE_DATE 01-Aug-2005
+#define PCRE_MINOR 6
+#define PCRE_PRERELEASE
+#define PCRE_DATE 06-Feb-2006
-/* Win32 uses DLL by default; it needs special stuff for exported functions. */
+/* Win32 uses DLL by default; it needs special stuff for exported functions
+when building PCRE. */
#ifdef _WIN32
# ifdef PCRE_DEFINITION
@@ -62,7 +74,7 @@ make changes to pcre.in. */
# endif
#endif
-/* For other operating systems, we use the standard "extern". */
+/* Otherwise, we use the standard "extern". */
#ifndef PCRE_DATA_SCOPE
# ifdef __cplusplus
@@ -127,6 +139,7 @@ extern "C" {
#define PCRE_ERROR_DFA_UMLIMIT (-18)
#define PCRE_ERROR_DFA_WSSIZE (-19)
#define PCRE_ERROR_DFA_RECURSE (-20)
+#define PCRE_ERROR_RECURSIONLIMIT (-21)
/* Request types for pcre_fullinfo() */
@@ -144,7 +157,8 @@ extern "C" {
#define PCRE_INFO_STUDYSIZE 10
#define PCRE_INFO_DEFAULT_TABLES 11
-/* Request types for pcre_config() */
+/* Request types for pcre_config(). Do not re-arrange, in order to remain
+compatible. */
#define PCRE_CONFIG_UTF8 0
#define PCRE_CONFIG_NEWLINE 1
@@ -153,19 +167,30 @@ extern "C" {
#define PCRE_CONFIG_MATCH_LIMIT 4
#define PCRE_CONFIG_STACKRECURSE 5
#define PCRE_CONFIG_UNICODE_PROPERTIES 6
+#define PCRE_CONFIG_MATCH_LIMIT_RECURSION 7
-/* Bit flags for the pcre_extra structure */
+/* Bit flags for the pcre_extra structure. Do not re-arrange or redefine
+these bits, just add new ones on the end, in order to remain compatible. */
-#define PCRE_EXTRA_STUDY_DATA 0x0001
-#define PCRE_EXTRA_MATCH_LIMIT 0x0002
-#define PCRE_EXTRA_CALLOUT_DATA 0x0004
-#define PCRE_EXTRA_TABLES 0x0008
+#define PCRE_EXTRA_STUDY_DATA 0x0001
+#define PCRE_EXTRA_MATCH_LIMIT 0x0002
+#define PCRE_EXTRA_CALLOUT_DATA 0x0004
+#define PCRE_EXTRA_TABLES 0x0008
+#define PCRE_EXTRA_MATCH_LIMIT_RECURSION 0x0010
/* Types */
struct real_pcre; /* declaration; the definition is private */
typedef struct real_pcre pcre;
+/* When PCRE is compiled as a C++ library, the subject pointer type can be
+replaced with a custom type. For conventional use, the public interface is a
+const char *. */
+
+#ifndef PCRE_SPTR
+#define PCRE_SPTR const char *
+#endif
+
/* The structure for passing additional data to pcre_exec(). This is defined in
such as way as to be extensible. Always add new fields at the end, in order to
remain compatible. */
@@ -176,6 +201,7 @@ typedef struct pcre_extra {
unsigned long int match_limit; /* Maximum number of calls to match() */
void *callout_data; /* Data passed back in callouts */
const unsigned char *tables; /* Pointer to character tables */
+ unsigned long int match_limit_recursion; /* Max recursive calls to match() */
} pcre_extra;
/* The structure for passing out data via the pcre_callout_function. We use a
@@ -188,7 +214,7 @@ typedef struct pcre_callout_block {
/* ------------------------ Version 0 ------------------------------- */
int callout_number; /* Number compiled into pattern */
int *offset_vector; /* The offset vector */
- const char *subject; /* The subject being matched */
+ PCRE_SPTR subject; /* The subject being matched */
int subject_length; /* The length of the subject */
int start_match; /* Offset to start of this match attempt */
int current_position; /* Where we currently are in the subject */
@@ -234,7 +260,7 @@ PCRE_DATA_SCOPE int pcre_copy_substring(const char *, int *, int, int, char *,
int);
PCRE_DATA_SCOPE int pcre_dfa_exec(const pcre *, const pcre_extra *,
const char *, int, int, int, int *, int , int *, int);
-PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, const char *,
+PCRE_DATA_SCOPE int pcre_exec(const pcre *, const pcre_extra *, PCRE_SPTR,
int, int, int, int *, int);
PCRE_DATA_SCOPE void pcre_free_substring(const char *);
PCRE_DATA_SCOPE void pcre_free_substring_list(const char **);
diff --git a/ext/pcre/pcrelib/pcre_compile.c b/ext/pcre/pcrelib/pcre_compile.c
index 228995252..0bbc7f5ba 100644
--- a/ext/pcre/pcrelib/pcre_compile.c
+++ b/ext/pcre/pcrelib/pcre_compile.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -45,6 +45,15 @@ supporting internal functions that are not used by other modules. */
#include "pcre_internal.h"
+/* When DEBUG is defined, we need the pcre_printint() function, which is also
+used by pcretest. DEBUG is not defined when building a production library. */
+
+#ifdef DEBUG
+#include "pcre_printint.src"
+#endif
+
+
+
/*************************************************
* Code parameters and static tables *
*************************************************/
@@ -107,7 +116,7 @@ static const short int escapes[] = {
/* Tables of names of POSIX character classes and their lengths. The list is
-terminated by a zero length entry. The first three must be alpha, upper, lower,
+terminated by a zero length entry. The first three must be alpha, lower, upper,
as this is assumed for handling case independence. */
static const char *const posix_names[] = {
@@ -118,25 +127,31 @@ static const char *const posix_names[] = {
static const uschar posix_name_lengths[] = {
5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 6, 0 };
-/* Table of class bit maps for each POSIX class; up to three may be combined
-to form the class. The table for [:blank:] is dynamically modified to remove
-the vertical space characters. */
+/* Table of class bit maps for each POSIX class. Each class is formed from a
+base map, with an optional addition or removal of another map. Then, for some
+classes, there is some additional tweaking: for [:blank:] the vertical space
+characters are removed, and for [:alpha:] and [:alnum:] the underscore
+character is removed. The triples in the table consist of the base map offset,
+second map offset or -1 if no second map, and a non-negative value for map
+addition or a negative value for map subtraction (if there are two maps). The
+absolute value of the third field has these meanings: 0 => no tweaking, 1 =>
+remove vertical space characters, 2 => remove underscore. */
static const int posix_class_maps[] = {
- cbit_lower, cbit_upper, -1, /* alpha */
- cbit_lower, -1, -1, /* lower */
- cbit_upper, -1, -1, /* upper */
- cbit_digit, cbit_lower, cbit_upper, /* alnum */
- cbit_print, cbit_cntrl, -1, /* ascii */
- cbit_space, -1, -1, /* blank - a GNU extension */
- cbit_cntrl, -1, -1, /* cntrl */
- cbit_digit, -1, -1, /* digit */
- cbit_graph, -1, -1, /* graph */
- cbit_print, -1, -1, /* print */
- cbit_punct, -1, -1, /* punct */
- cbit_space, -1, -1, /* space */
- cbit_word, -1, -1, /* word - a Perl extension */
- cbit_xdigit,-1, -1 /* xdigit */
+ cbit_word, cbit_digit, -2, /* alpha */
+ cbit_lower, -1, 0, /* lower */
+ cbit_upper, -1, 0, /* upper */
+ cbit_word, -1, 2, /* alnum - word without underscore */
+ cbit_print, cbit_cntrl, 0, /* ascii */
+ cbit_space, -1, 1, /* blank - a GNU extension */
+ cbit_cntrl, -1, 0, /* cntrl */
+ cbit_digit, -1, 0, /* digit */
+ cbit_graph, -1, 0, /* graph */
+ cbit_print, -1, 0, /* print */
+ cbit_punct, -1, 0, /* punct */
+ cbit_space, -1, 0, /* space */
+ cbit_word, -1, 0, /* word - a Perl extension */
+ cbit_xdigit,-1, 0 /* xdigit */
};
@@ -362,12 +377,15 @@ static int
check_escape(const uschar **ptrptr, int *errorcodeptr, int bracount,
int options, BOOL isclass)
{
-const uschar *ptr = *ptrptr;
+BOOL utf8 = (options & PCRE_UTF8) != 0;
+const uschar *ptr = *ptrptr + 1;
int c, i;
+GETCHARINCTEST(c, ptr); /* Get character value, increment pointer */
+ptr--; /* Set pointer back to the last byte */
+
/* If backslash is at the end of the pattern, it's an error. */
-c = *(++ptr);
if (c == 0) *errorcodeptr = ERR1;
/* Non-alphamerics are literals. For digits or letters, do an initial lookup in
@@ -451,40 +469,44 @@ else
c &= 255; /* Take least significant 8 bits */
break;
- /* \x is complicated when UTF-8 is enabled. \x{ddd} is a character number
- which can be greater than 0xff, but only if the ddd are hex digits. */
+ /* \x is complicated. \x{ddd} is a character number which can be greater
+ than 0xff in utf8 mode, but only if the ddd are hex digits. If not, { is
+ treated as a data character. */
case 'x':
-#ifdef SUPPORT_UTF8
- if (ptr[1] == '{' && (options & PCRE_UTF8) != 0)
+ if (ptr[1] == '{')
{
const uschar *pt = ptr + 2;
- register int count = 0;
+ int count = 0;
+
c = 0;
while ((digitab[*pt] & ctype_xdigit) != 0)
{
- int cc = *pt++;
+ register int cc = *pt++;
+ if (c == 0 && cc == '0') continue; /* Leading zeroes */
count++;
+
#if !EBCDIC /* ASCII coding */
if (cc >= 'a') cc -= 32; /* Convert to upper case */
- c = c * 16 + cc - ((cc < 'A')? '0' : ('A' - 10));
+ c = (c << 4) + cc - ((cc < 'A')? '0' : ('A' - 10));
#else /* EBCDIC coding */
if (cc >= 'a' && cc <= 'z') cc += 64; /* Convert to upper case */
- c = c * 16 + cc - ((cc >= '0')? '0' : ('A' - 10));
+ c = (c << 4) + cc - ((cc >= '0')? '0' : ('A' - 10));
#endif
}
+
if (*pt == '}')
{
- if (c < 0 || count > 8) *errorcodeptr = ERR34;
+ if (c < 0 || count > (utf8? 8 : 2)) *errorcodeptr = ERR34;
ptr = pt;
break;
}
+
/* If the sequence of hex digits does not end with '}', then we don't
recognize this construct; fall through to the normal \x handling. */
}
-#endif
- /* Read just a single hex char */
+ /* Read just a single-byte hex-defined char */
c = 0;
while (i++ < 2 && (digitab[ptr[1]] & ctype_xdigit) != 0)
@@ -560,25 +582,26 @@ escape sequence.
Argument:
ptrptr points to the pattern position pointer
negptr points to a boolean that is set TRUE for negation else FALSE
+ dptr points to an int that is set to the detailed property value
errorcodeptr points to the error code variable
-Returns: value from ucp_type_table, or -1 for an invalid type
+Returns: type value from ucp_type_table, or -1 for an invalid type
*/
static int
-get_ucp(const uschar **ptrptr, BOOL *negptr, int *errorcodeptr)
+get_ucp(const uschar **ptrptr, BOOL *negptr, int *dptr, int *errorcodeptr)
{
int c, i, bot, top;
const uschar *ptr = *ptrptr;
-char name[4];
+char name[32];
c = *(++ptr);
if (c == 0) goto ERROR_RETURN;
*negptr = FALSE;
-/* \P or \p can be followed by a one- or two-character name in {}, optionally
-preceded by ^ for negation. */
+/* \P or \p can be followed by a name in {}, optionally preceded by ^ for
+negation. */
if (c == '{')
{
@@ -587,18 +610,14 @@ if (c == '{')
*negptr = TRUE;
ptr++;
}
- for (i = 0; i <= 2; i++)
+ for (i = 0; i < sizeof(name) - 1; i++)
{
c = *(++ptr);
if (c == 0) goto ERROR_RETURN;
if (c == '}') break;
name[i] = c;
}
- if (c !='}') /* Try to distinguish error cases */
- {
- while (*(++ptr) != 0 && *ptr != '}');
- if (*ptr == '}') goto UNKNOWN_RETURN; else goto ERROR_RETURN;
- }
+ if (c !='}') goto ERROR_RETURN;
name[i] = 0;
}
@@ -619,13 +638,16 @@ top = _pcre_utt_size;
while (bot < top)
{
- i = (bot + top)/2;
+ i = (bot + top) >> 1;
c = strcmp(name, _pcre_utt[i].name);
- if (c == 0) return _pcre_utt[i].value;
+ if (c == 0)
+ {
+ *dptr = _pcre_utt[i].value;
+ return _pcre_utt[i].type;
+ }
if (c > 0) bot = i + 1; else top = i;
}
-UNKNOWN_RETURN:
*errorcodeptr = ERR47;
*ptrptr = ptr;
return -1;
@@ -928,7 +950,7 @@ for (;;)
case OP_PROP:
case OP_NOTPROP:
- cc++;
+ cc += 2;
/* Fall through */
case OP_NOT_DIGIT:
@@ -1488,13 +1510,10 @@ Yield: TRUE when range returned; FALSE when no more
static BOOL
get_othercase_range(int *cptr, int d, int *ocptr, int *odptr)
{
-int c, chartype, othercase, next;
+int c, othercase, next;
for (c = *cptr; c <= d; c++)
- {
- if (_pcre_ucp_findchar(c, &chartype, &othercase) == ucp_L && othercase != 0)
- break;
- }
+ { if ((othercase = _pcre_ucp_othercase(c)) >= 0) break; }
if (c > d) return FALSE;
@@ -1503,9 +1522,7 @@ next = othercase + 1;
for (++c; c <= d; c++)
{
- if (_pcre_ucp_findchar(c, &chartype, &othercase) != ucp_L ||
- othercase != next)
- break;
+ if (_pcre_ucp_othercase(c) != next) break;
next++;
}
@@ -1722,11 +1739,11 @@ for (;; ptr++)
*code++ = OP_ANY;
break;
- /* Character classes. If the included characters are all < 255 in value, we
- build a 32-byte bitmap of the permitted characters, except in the special
- case where there is only one such character. For negated classes, we build
- the map as usual, then invert it at the end. However, we use a different
- opcode so that data characters > 255 can be handled correctly.
+ /* Character classes. If the included characters are all < 256, we build a
+ 32-byte bitmap of the permitted characters, except in the special case
+ where there is only one such character. For negated classes, we build the
+ map as usual, then invert it at the end. However, we use a different opcode
+ so that data characters > 255 can be handled correctly.
If the class contains characters outside the 0-255 range, a different
opcode is compiled. It may optionally have a bit map for characters < 256,
@@ -1817,8 +1834,9 @@ for (;; ptr++)
check_posix_syntax(ptr, &tempptr, cd))
{
BOOL local_negate = FALSE;
- int posix_class, i;
+ int posix_class, taboffset, tabopt;
register const uschar *cbits = cd->cbits;
+ uschar pbits[32];
if (ptr[1] != ':')
{
@@ -1847,32 +1865,46 @@ for (;; ptr++)
if ((options & PCRE_CASELESS) != 0 && posix_class <= 2)
posix_class = 0;
- /* Or into the map we are building up to 3 of the static class
- tables, or their negations. The [:blank:] class sets up the same
- chars as the [:space:] class (all white space). We remove the vertical
- white space chars afterwards. */
+ /* We build the bit map for the POSIX class in a chunk of local store
+ because we may be adding and subtracting from it, and we don't want to
+ subtract bits that may be in the main map already. At the end we or the
+ result into the bit map that is being built. */
posix_class *= 3;
- for (i = 0; i < 3; i++)
+
+ /* Copy in the first table (always present) */
+
+ memcpy(pbits, cbits + posix_class_maps[posix_class],
+ 32 * sizeof(uschar));
+
+ /* If there is a second table, add or remove it as required. */
+
+ taboffset = posix_class_maps[posix_class + 1];
+ tabopt = posix_class_maps[posix_class + 2];
+
+ if (taboffset >= 0)
{
- BOOL blankclass = strncmp((char *)ptr, "blank", 5) == 0;
- int taboffset = posix_class_maps[posix_class + i];
- if (taboffset < 0) break;
- if (local_negate)
- {
- if (i == 0)
- for (c = 0; c < 32; c++) classbits[c] |= ~cbits[c+taboffset];
- else
- for (c = 0; c < 32; c++) classbits[c] &= ~cbits[c+taboffset];
- if (blankclass) classbits[1] |= 0x3c;
- }
+ if (tabopt >= 0)
+ for (c = 0; c < 32; c++) pbits[c] |= cbits[c + taboffset];
else
- {
- for (c = 0; c < 32; c++) classbits[c] |= cbits[c+taboffset];
- if (blankclass) classbits[1] &= ~0x3c;
- }
+ for (c = 0; c < 32; c++) pbits[c] &= ~cbits[c + taboffset];
}
+ /* Not see if we need to remove any special characters. An option
+ value of 1 removes vertical space and 2 removes underscore. */
+
+ if (tabopt < 0) tabopt = -tabopt;
+ if (tabopt == 1) pbits[1] &= ~0x3c;
+ else if (tabopt == 2) pbits[11] &= 0x7f;
+
+ /* Add the POSIX table or its complement into the main table that is
+ being built and we are done. */
+
+ if (local_negate)
+ for (c = 0; c < 32; c++) classbits[c] |= ~pbits[c];
+ else
+ for (c = 0; c < 32; c++) classbits[c] |= pbits[c];
+
ptr = tempptr + 1;
class_charcount = 10; /* Set > 1; assumes more than 1 per class */
continue; /* End of POSIX syntax handling */
@@ -1939,12 +1971,14 @@ for (;; ptr++)
case ESC_P:
{
BOOL negated;
- int property = get_ucp(&ptr, &negated, errorcodeptr);
- if (property < 0) goto FAILED;
+ int pdata;
+ int ptype = get_ucp(&ptr, &negated, &pdata, errorcodeptr);
+ if (ptype < 0) goto FAILED;
class_utf8 = TRUE;
*class_utf8data++ = ((-c == ESC_p) != negated)?
XCL_PROP : XCL_NOTPROP;
- *class_utf8data++ = property;
+ *class_utf8data++ = ptype;
+ *class_utf8data++ = pdata;
class_charcount -= 2; /* Not a < 256 character */
}
continue;
@@ -2126,10 +2160,8 @@ for (;; ptr++)
#ifdef SUPPORT_UCP
if ((options & PCRE_CASELESS) != 0)
{
- int chartype;
int othercase;
- if (_pcre_ucp_findchar(c, &chartype, &othercase) >= 0 &&
- othercase > 0)
+ if ((othercase = _pcre_ucp_othercase(c)) >= 0)
{
*class_utf8data++ = XCL_SINGLE;
class_utf8data += _pcre_ord2utf8(othercase, class_utf8data);
@@ -2414,13 +2446,17 @@ for (;; ptr++)
else if (*previous < OP_EODN)
{
uschar *oldcode;
- int prop_type;
+ int prop_type, prop_value;
op_type = OP_TYPESTAR - OP_STAR; /* Use type opcodes */
c = *previous;
OUTPUT_SINGLE_REPEAT:
- prop_type = (*previous == OP_PROP || *previous == OP_NOTPROP)?
- previous[1] : -1;
+ if (*previous == OP_PROP || *previous == OP_NOTPROP)
+ {
+ prop_type = previous[1];
+ prop_value = previous[2];
+ }
+ else prop_type = prop_value = -1;
oldcode = code;
code = previous; /* Usually overwrite previous item */
@@ -2481,7 +2517,7 @@ for (;; ptr++)
/* If the maximum is unlimited, insert an OP_STAR. Before doing so,
we have to insert the character for the previous code. For a repeated
- Unicode property match, there is an extra byte that defines the
+ Unicode property match, there are two extra bytes that define the
required property. In UTF-8 mode, long characters have their length in
c, with the 0x80 bit as a flag. */
@@ -2497,7 +2533,11 @@ for (;; ptr++)
#endif
{
*code++ = c;
- if (prop_type >= 0) *code++ = prop_type;
+ if (prop_type >= 0)
+ {
+ *code++ = prop_type;
+ *code++ = prop_value;
+ }
}
*code++ = OP_STAR + repeat_type;
}
@@ -2516,7 +2556,11 @@ for (;; ptr++)
else
#endif
*code++ = c;
- if (prop_type >= 0) *code++ = prop_type;
+ if (prop_type >= 0)
+ {
+ *code++ = prop_type;
+ *code++ = prop_value;
+ }
repeat_max -= repeat_min;
*code++ = OP_UPTO + repeat_type;
PUT2INC(code, 0, repeat_max);
@@ -2535,11 +2579,15 @@ for (;; ptr++)
#endif
*code++ = c;
- /* For a repeated Unicode property match, there is an extra byte that
- defines the required property. */
+ /* For a repeated Unicode property match, there are two extra bytes that
+ define the required property. */
#ifdef SUPPORT_UCP
- if (prop_type >= 0) *code++ = prop_type;
+ if (prop_type >= 0)
+ {
+ *code++ = prop_type;
+ *code++ = prop_value;
+ }
#endif
}
@@ -3007,11 +3055,20 @@ for (;; ptr++)
goto FAILED;
}
- /* Insert the recursion/subroutine item */
+ /* Insert the recursion/subroutine item, automatically wrapped inside
+ "once" brackets. */
+
+ *code = OP_ONCE;
+ PUT(code, 1, 2 + 2*LINK_SIZE);
+ code += 1 + LINK_SIZE;
*code = OP_RECURSE;
PUT(code, 1, called - cd->start_code);
code += 1 + LINK_SIZE;
+
+ *code = OP_KET;
+ PUT(code, 1, 2 + 2*LINK_SIZE);
+ code += 1 + LINK_SIZE;
}
continue;
@@ -3281,10 +3338,12 @@ for (;; ptr++)
else if (-c == ESC_P || -c == ESC_p)
{
BOOL negated;
- int value = get_ucp(&ptr, &negated, errorcodeptr);
+ int pdata;
+ int ptype = get_ucp(&ptr, &negated, &pdata, errorcodeptr);
previous = code;
*code++ = ((-c == ESC_p) != negated)? OP_PROP : OP_NOTPROP;
- *code++ = value;
+ *code++ = ptype;
+ *code++ = pdata;
}
#endif
@@ -3839,7 +3898,7 @@ Returns: pointer to compiled data block, or NULL on error,
with errorptr and erroroffset set
*/
-EXPORT pcre *
+PCRE_DATA_SCOPE pcre *
pcre_compile(const char *pattern, int options, const char **errorptr,
int *erroroffset, const unsigned char *tables)
{
@@ -3847,7 +3906,7 @@ return pcre_compile2(pattern, options, NULL, errorptr, erroroffset, tables);
}
-EXPORT pcre *
+PCRE_DATA_SCOPE pcre *
pcre_compile2(const char *pattern, int options, int *errorcodeptr,
const char **errorptr, int *erroroffset, const unsigned char *tables)
{
@@ -4040,15 +4099,17 @@ while ((c = *(++ptr)) != 0)
#endif
/* \P and \p are for Unicode properties, but only when the support has
- been compiled. Each item needs 2 bytes. */
+ been compiled. Each item needs 3 bytes. */
else if (-c == ESC_P || -c == ESC_p)
{
#ifdef SUPPORT_UCP
BOOL negated;
- length += 2;
- lastitemlength = 2;
- if (get_ucp(&ptr, &negated, &errorcode) < 0) goto PCRE_ERROR_RETURN;
+ BOOL pdata;
+ length += 3;
+ lastitemlength = 3;
+ if (get_ucp(&ptr, &negated, &pdata, &errorcode) < 0)
+ goto PCRE_ERROR_RETURN;
continue;
#else
errorcode = ERR45;
@@ -4214,7 +4275,7 @@ while ((c = *(++ptr)) != 0)
class_utf8 = TRUE;
length += LINK_SIZE + 2;
}
- length += 2;
+ length += 3;
}
#endif
}
@@ -4477,7 +4538,7 @@ while ((c = *(++ptr)) != 0)
errorcode = ERR29;
goto PCRE_ERROR_RETURN;
}
- length += 1 + LINK_SIZE;
+ length += 3 + 3*LINK_SIZE; /* Allows for the automatic "once" */
/* If this item is quantified, it will get wrapped inside brackets so
as to use the code for quantified brackets. We jump down and use the
@@ -4533,6 +4594,7 @@ while ((c = *(++ptr)) != 0)
if (*ptr == '=' || *ptr == '>')
{
+ length += 2 + 2*LINK_SIZE; /* Allow for the automatic "once" */
while ((compile_block.ctypes[*(++ptr)] & ctype_word) != 0);
if (*ptr != ')')
{
@@ -5000,7 +5062,8 @@ if (reqbyte >= 0 &&
re->options |= PCRE_REQCHSET;
}
-/* Print out the compiled data for debugging */
+/* Print out the compiled data if debugging is enabled. This is never the
+case when building a production library. */
#ifdef DEBUG
@@ -5025,7 +5088,8 @@ if (re->options != 0)
if ((re->options & PCRE_FIRSTSET) != 0)
{
int ch = re->first_byte & 255;
- const char *caseless = ((re->first_byte & REQ_CASELESS) == 0)? "" : " (caseless)";
+ const char *caseless = ((re->first_byte & REQ_CASELESS) == 0)?
+ "" : " (caseless)";
if (isprint(ch)) printf("First char = %c%s\n", ch, caseless);
else printf("First char = \\x%02x%s\n", ch, caseless);
}
@@ -5033,12 +5097,13 @@ if ((re->options & PCRE_FIRSTSET) != 0)
if ((re->options & PCRE_REQCHSET) != 0)
{
int ch = re->req_byte & 255;
- const char *caseless = ((re->req_byte & REQ_CASELESS) == 0)? "" : " (caseless)";
+ const char *caseless = ((re->req_byte & REQ_CASELESS) == 0)?
+ "" : " (caseless)";
if (isprint(ch)) printf("Req char = %c%s\n", ch, caseless);
else printf("Req char = \\x%02x%s\n", ch, caseless);
}
-_pcre_printint(re, stdout);
+pcre_printint(re, stdout);
/* This check is done here in the debugging case so that the code that
was compiled can be seen. */
diff --git a/ext/pcre/pcrelib/pcre_config.c b/ext/pcre/pcrelib/pcre_config.c
index 04029a946..29e6c1a35 100644
--- a/ext/pcre/pcrelib/pcre_config.c
+++ b/ext/pcre/pcrelib/pcre_config.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -58,7 +58,7 @@ Arguments:
Returns: 0 if data returned, negative on error
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_config(int what, void *where)
{
switch (what)
@@ -95,6 +95,10 @@ switch (what)
*((unsigned int *)where) = MATCH_LIMIT;
break;
+ case PCRE_CONFIG_MATCH_LIMIT_RECURSION:
+ *((unsigned int *)where) = MATCH_LIMIT_RECURSION;
+ break;
+
case PCRE_CONFIG_STACKRECURSE:
#ifdef NO_RECURSE
*((int *)where) = 0;
diff --git a/ext/pcre/pcrelib/pcre_dfa_exec.c b/ext/pcre/pcrelib/pcre_dfa_exec.c
index cb3ec186c..b5e01dac3 100644
--- a/ext/pcre/pcrelib/pcre_dfa_exec.c
+++ b/ext/pcre/pcrelib/pcre_dfa_exec.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -288,7 +288,9 @@ const uschar *start_subject = md->start_subject;
const uschar *end_subject = md->end_subject;
const uschar *start_code = md->start_code;
+#ifdef SUPPORT_UTF8
BOOL utf8 = (md->poptions & PCRE_UTF8) != 0;
+#endif
rlevel++;
offsetcount &= (-2);
@@ -480,7 +482,7 @@ for (;;)
const uschar *code;
int state_offset = current_state->offset;
int count, codevalue;
- int chartype, othercase;
+ int chartype, script;
#ifdef DEBUG
printf ("%.*sProcessing state %d c=", rlevel*2-2, SP, state_offset);
@@ -757,19 +759,38 @@ for (;;)
case OP_NOTPROP:
if (clen > 0)
{
- int rqdtype, category;
- category = ucp_findchar(c, &chartype, &othercase);
- rqdtype = code[1];
- if (rqdtype >= 128)
- {
- if ((rqdtype - 128 == category) == (codevalue == OP_PROP))
- { ADD_NEW(state_offset + 2, 0); }
- }
- else
+ BOOL OK;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
+ switch(code[1])
{
- if ((rqdtype == chartype) == (codevalue == OP_PROP))
- { ADD_NEW(state_offset + 2, 0); }
+ case PT_ANY:
+ OK = TRUE;
+ break;
+
+ case PT_LAMP:
+ OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+ break;
+
+ case PT_GC:
+ OK = category == code[2];
+ break;
+
+ case PT_PC:
+ OK = chartype == code[2];
+ break;
+
+ case PT_SC:
+ OK = script == code[2];
+ break;
+
+ /* Should never occur, but keep compilers from grumbling. */
+
+ default:
+ OK = codevalue != OP_PROP;
+ break;
}
+
+ if (OK == (codevalue == OP_PROP)) { ADD_NEW(state_offset + 3, 0); }
}
break;
#endif
@@ -862,14 +883,41 @@ for (;;)
case OP_PROP_EXTRA + OP_TYPEPLUS:
case OP_PROP_EXTRA + OP_TYPEMINPLUS:
count = current_state->count; /* Already matched */
- if (count > 0) { ADD_ACTIVE(state_offset + 3, 0); }
+ if (count > 0) { ADD_ACTIVE(state_offset + 4, 0); }
if (clen > 0)
{
- int category = ucp_findchar(c, &chartype, &othercase);
- int rqdtype = code[2];
- if ((d == OP_PROP) ==
- (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
- { count++; ADD_NEW(state_offset, count); }
+ BOOL OK;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
+ switch(code[2])
+ {
+ case PT_ANY:
+ OK = TRUE;
+ break;
+
+ case PT_LAMP:
+ OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+ break;
+
+ case PT_GC:
+ OK = category == code[3];
+ break;
+
+ case PT_PC:
+ OK = chartype == code[3];
+ break;
+
+ case PT_SC:
+ OK = script == code[3];
+ break;
+
+ /* Should never occur, but keep compilers from grumbling. */
+
+ default:
+ OK = codevalue != OP_PROP;
+ break;
+ }
+
+ if (OK == (d == OP_PROP)) { count++; ADD_NEW(state_offset, count); }
}
break;
@@ -878,7 +926,7 @@ for (;;)
case OP_EXTUNI_EXTRA + OP_TYPEMINPLUS:
count = current_state->count; /* Already matched */
if (count > 0) { ADD_ACTIVE(state_offset + 2, 0); }
- if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M)
+ if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
{
const uschar *nptr = ptr + clen;
int ncount = 0;
@@ -887,7 +935,7 @@ for (;;)
int nd;
int ndlen = 1;
GETCHARLEN(nd, nptr, ndlen);
- if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+ if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
ncount++;
nptr += ndlen;
}
@@ -899,7 +947,7 @@ for (;;)
/*-----------------------------------------------------------------*/
case OP_PROP_EXTRA + OP_TYPEQUERY:
case OP_PROP_EXTRA + OP_TYPEMINQUERY:
- count = 3;
+ count = 4;
goto QS1;
case OP_PROP_EXTRA + OP_TYPESTAR:
@@ -908,14 +956,41 @@ for (;;)
QS1:
- ADD_ACTIVE(state_offset + 3, 0);
+ ADD_ACTIVE(state_offset + 4, 0);
if (clen > 0)
{
- int category = ucp_findchar(c, &chartype, &othercase);
- int rqdtype = code[2];
- if ((d == OP_PROP) ==
- (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
- { ADD_NEW(state_offset + count, 0); }
+ BOOL OK;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
+ switch(code[2])
+ {
+ case PT_ANY:
+ OK = TRUE;
+ break;
+
+ case PT_LAMP:
+ OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+ break;
+
+ case PT_GC:
+ OK = category == code[3];
+ break;
+
+ case PT_PC:
+ OK = chartype == code[3];
+ break;
+
+ case PT_SC:
+ OK = script == code[3];
+ break;
+
+ /* Should never occur, but keep compilers from grumbling. */
+
+ default:
+ OK = codevalue != OP_PROP;
+ break;
+ }
+
+ if (OK == (d == OP_PROP)) { ADD_NEW(state_offset + count, 0); }
}
break;
@@ -932,7 +1007,7 @@ for (;;)
QS2:
ADD_ACTIVE(state_offset + 2, 0);
- if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M)
+ if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
{
const uschar *nptr = ptr + clen;
int ncount = 0;
@@ -941,7 +1016,7 @@ for (;;)
int nd;
int ndlen = 1;
GETCHARLEN(nd, nptr, ndlen);
- if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+ if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
ncount++;
nptr += ndlen;
}
@@ -954,17 +1029,45 @@ for (;;)
case OP_PROP_EXTRA + OP_TYPEUPTO:
case OP_PROP_EXTRA + OP_TYPEMINUPTO:
if (codevalue != OP_PROP_EXTRA + OP_TYPEEXACT)
- { ADD_ACTIVE(state_offset + 5, 0); }
+ { ADD_ACTIVE(state_offset + 6, 0); }
count = current_state->count; /* Number already matched */
if (clen > 0)
{
- int category = ucp_findchar(c, &chartype, &othercase);
- int rqdtype = code[4];
- if ((d == OP_PROP) ==
- (rqdtype == ((rqdtype >= 128)? (category + 128) : chartype)))
+ BOOL OK;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
+ switch(code[4])
+ {
+ case PT_ANY:
+ OK = TRUE;
+ break;
+
+ case PT_LAMP:
+ OK = chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt;
+ break;
+
+ case PT_GC:
+ OK = category == code[5];
+ break;
+
+ case PT_PC:
+ OK = chartype == code[5];
+ break;
+
+ case PT_SC:
+ OK = script == code[5];
+ break;
+
+ /* Should never occur, but keep compilers from grumbling. */
+
+ default:
+ OK = codevalue != OP_PROP;
+ break;
+ }
+
+ if (OK == (d == OP_PROP))
{
if (++count >= GET2(code, 1))
- { ADD_NEW(state_offset + 5, 0); }
+ { ADD_NEW(state_offset + 6, 0); }
else
{ ADD_NEW(state_offset, count); }
}
@@ -978,7 +1081,7 @@ for (;;)
if (codevalue != OP_EXTUNI_EXTRA + OP_TYPEEXACT)
{ ADD_ACTIVE(state_offset + 4, 0); }
count = current_state->count; /* Number already matched */
- if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M)
+ if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
{
const uschar *nptr = ptr + clen;
int ncount = 0;
@@ -987,7 +1090,7 @@ for (;;)
int nd;
int ndlen = 1;
GETCHARLEN(nd, nptr, ndlen);
- if (ucp_findchar(nd, &chartype, &othercase) != ucp_M) break;
+ if (_pcre_ucp_findprop(nd, &chartype, &script) != ucp_M) break;
ncount++;
nptr += ndlen;
}
@@ -1018,17 +1121,17 @@ for (;;)
{
if (c == d) { ADD_NEW(state_offset + dlen + 1, 0); } else
{
+ int othercase;
if (c < 128) othercase = fcc[c]; else
/* If we have Unicode property support, we can use it to test the
- other case of the character, if there is one. The result of
- ucp_findchar() is < 0 if the char isn't found, and othercase is
- returned as zero if there isn't another case. */
+ other case of the character. */
#ifdef SUPPORT_UCP
- if (ucp_findchar(c, &chartype, &othercase) < 0)
+ othercase = _pcre_ucp_othercase(c);
+#else
+ othercase = -1;
#endif
- othercase = -1;
if (d == othercase) { ADD_NEW(state_offset + dlen + 1, 0); }
}
@@ -1050,7 +1153,7 @@ for (;;)
to wait for them to pass before continuing. */
case OP_EXTUNI:
- if (clen > 0 && ucp_findchar(c, &chartype, &othercase) != ucp_M)
+ if (clen > 0 && _pcre_ucp_findprop(c, &chartype, &script) != ucp_M)
{
const uschar *nptr = ptr + clen;
int ncount = 0;
@@ -1058,7 +1161,7 @@ for (;;)
{
int nclen = 1;
GETCHARLEN(c, nptr, nclen);
- if (ucp_findchar(c, &chartype, &othercase) != ucp_M) break;
+ if (_pcre_ucp_findprop(c, &chartype, &script) != ucp_M) break;
ncount++;
nptr += nclen;
}
@@ -1093,10 +1196,10 @@ for (;;)
if ((ims & PCRE_CASELESS) != 0)
{
#ifdef SUPPORT_UTF8
- if (utf8 && c >= 128)
+ if (utf8 && d >= 128)
{
#ifdef SUPPORT_UCP
- if (ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1;
+ otherd = _pcre_ucp_othercase(d);
#endif /* SUPPORT_UCP */
}
else
@@ -1120,10 +1223,10 @@ for (;;)
if ((ims && PCRE_CASELESS) != 0)
{
#ifdef SUPPORT_UTF8
- if (utf8 && c >= 128)
+ if (utf8 && d >= 128)
{
#ifdef SUPPORT_UCP
- if (ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1;
+ otherd = _pcre_ucp_othercase(d);
#endif /* SUPPORT_UCP */
}
else
@@ -1147,10 +1250,10 @@ for (;;)
if ((ims && PCRE_CASELESS) != 0)
{
#ifdef SUPPORT_UTF8
- if (utf8 && c >= 128)
+ if (utf8 && d >= 128)
{
#ifdef SUPPORT_UCP
- if (ucp_findchar(c, &chartype, &otherd) < 0) otherd = -1;
+ otherd = _pcre_ucp_othercase(d);
#endif /* SUPPORT_UCP */
}
else
@@ -1178,10 +1281,10 @@ for (;;)
if ((ims & PCRE_CASELESS) != 0)
{
#ifdef SUPPORT_UTF8
- if (utf8 && c >= 128)
+ if (utf8 && d >= 128)
{
#ifdef SUPPORT_UCP
- if (ucp_findchar(d, &chartype, &otherd) < 0) otherd = -1;
+ otherd = _pcre_ucp_othercase(d);
#endif /* SUPPORT_UCP */
}
else
@@ -1519,7 +1622,7 @@ for (;;)
cb.version = 1; /* Version 1 of the callout block */
cb.callout_number = code[1];
cb.offset_vector = offsets;
- cb.subject = (char *)start_subject;
+ cb.subject = (PCRE_SPTR)start_subject;
cb.subject_length = end_subject - start_subject;
cb.start_match = current_subject - start_subject;
cb.current_position = ptr - start_subject;
@@ -1611,7 +1714,7 @@ Returns: > 0 => number of match offset pairs placed in offsets
< -1 => some kind of unexpected problem
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_dfa_exec(const pcre *argument_re, const pcre_extra *extra_data,
const char *subject, int length, int start_offset, int options, int *offsets,
int offsetcount, int *workspace, int wscount)
@@ -1655,6 +1758,8 @@ if (extra_data != NULL)
if ((flags & PCRE_EXTRA_STUDY_DATA) != 0)
study = (const pcre_study_data *)extra_data->study_data;
if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0) return PCRE_ERROR_DFA_UMLIMIT;
+ if ((flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) != 0)
+ return PCRE_ERROR_DFA_UMLIMIT;
if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0)
match_block.callout_data = extra_data->callout_data;
if ((flags & PCRE_EXTRA_TABLES) != 0)
@@ -1680,7 +1785,9 @@ end_subject = (const unsigned char *)subject + length;
req_byte_ptr = current_subject - 1;
utf8 = (re->options & PCRE_UTF8) != 0;
-anchored = (options & PCRE_ANCHORED) != 0 || (re->options & PCRE_ANCHORED) != 0;
+
+anchored = (options & (PCRE_ANCHORED|PCRE_DFA_RESTART)) != 0 ||
+ (re->options & PCRE_ANCHORED) != 0;
/* The remaining fixed data for passing around. */
@@ -1771,9 +1878,9 @@ for (;;)
/* Advance to a unique first char if possible. If firstline is TRUE, the
start of the match is constrained to the first line of a multiline string.
- Implement this by temporarily adjusting end_subject so that we stop scanning
- at a newline. If the match fails at the newline, later code breaks this loop.
- */
+ Implement this by temporarily adjusting end_subject so that we stop
+ scanning at a newline. If the match fails at the newline, later code breaks
+ this loop. */
if (firstline)
{
diff --git a/ext/pcre/pcrelib/pcre_exec.c b/ext/pcre/pcrelib/pcre_exec.c
index 65173e2ba..ecb32977d 100644
--- a/ext/pcre/pcrelib/pcre_exec.c
+++ b/ext/pcre/pcrelib/pcre_exec.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -54,7 +54,7 @@ are on the heap, not on the stack. */
typedef struct eptrblock {
struct eptrblock *epb_prev;
- const uschar *epb_saved_eptr;
+ USPTR epb_saved_eptr;
} eptrblock;
/* Flag bits for the match() function */
@@ -128,10 +128,10 @@ Returns: TRUE if matched
*/
static BOOL
-match_ref(int offset, register const uschar *eptr, int length, match_data *md,
+match_ref(int offset, register USPTR eptr, int length, match_data *md,
unsigned long int ims)
{
-const uschar *p = md->start_subject + md->offset_vector[offset];
+USPTR p = md->start_subject + md->offset_vector[offset];
#ifdef DEBUG
if (eptr >= md->end_subject)
@@ -169,32 +169,50 @@ return TRUE;
****************************************************************************
RECURSION IN THE match() FUNCTION
-The match() function is highly recursive. Some regular expressions can cause
-it to recurse thousands of times. I was writing for Unix, so I just let it
-call itself recursively. This uses the stack for saving everything that has
-to be saved for a recursive call. On Unix, the stack can be large, and this
-works fine.
+The match() function is highly recursive, though not every recursive call
+increases the recursive depth. Nevertheless, some regular expressions can cause
+it to recurse to a great depth. I was writing for Unix, so I just let it call
+itself recursively. This uses the stack for saving everything that has to be
+saved for a recursive call. On Unix, the stack can be large, and this works
+fine.
-It turns out that on non-Unix systems there are problems with programs that
-use a lot of stack. (This despite the fact that every last chip has oodles
-of memory these days, and techniques for extending the stack have been known
-for decades.) So....
+It turns out that on some non-Unix-like systems there are problems with
+programs that use a lot of stack. (This despite the fact that every last chip
+has oodles of memory these days, and techniques for extending the stack have
+been known for decades.) So....
There is a fudge, triggered by defining NO_RECURSE, which avoids recursive
calls by keeping local variables that need to be preserved in blocks of memory
-obtained from malloc instead instead of on the stack. Macros are used to
+obtained from malloc() instead instead of on the stack. Macros are used to
achieve this so that the actual code doesn't look very different to what it
always used to.
****************************************************************************
***************************************************************************/
-/* These versions of the macros use the stack, as normal */
+/* These versions of the macros use the stack, as normal. There are debugging
+versions and production versions. */
#ifndef NO_RECURSE
#define REGISTER register
-#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) rx = match(ra,rb,rc,rd,re,rf,rg)
+#ifdef DEBUG
+#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) \
+ { \
+ printf("match() called in line %d\n", __LINE__); \
+ rx = match(ra,rb,rc,rd,re,rf,rg,rdepth+1); \
+ printf("to line %d\n", __LINE__); \
+ }
+#define RRETURN(ra) \
+ { \
+ printf("match() returned %d from line %d ", ra, __LINE__); \
+ return ra; \
+ }
+#else
+#define RMATCH(rx,ra,rb,rc,rd,re,rf,rg) \
+ rx = match(ra,rb,rc,rd,re,rf,rg,rdepth+1)
#define RRETURN(ra) return ra
+#endif
+
#else
@@ -215,6 +233,7 @@ match(), which never changes. */
newframe->Xims = re;\
newframe->Xeptrb = rf;\
newframe->Xflags = rg;\
+ newframe->Xrdepth = frame->Xrdepth + 1;\
newframe->Xprevframe = frame;\
frame = newframe;\
DPRINTF(("restarting from line %d\n", __LINE__));\
@@ -256,6 +275,7 @@ typedef struct heapframe {
long int Xims;
eptrblock *Xeptrb;
int Xflags;
+ int Xrdepth;
/* Function local variables */
@@ -278,11 +298,11 @@ typedef struct heapframe {
#ifdef SUPPORT_UCP
int Xprop_type;
+ int Xprop_value;
int Xprop_fail_result;
int Xprop_category;
int Xprop_chartype;
- int Xprop_othercase;
- int Xprop_test_against;
+ int Xprop_script;
int *Xprop_test_variable;
#endif
@@ -343,17 +363,18 @@ Arguments:
flags can contain
match_condassert - this is an assertion condition
match_isgroup - this is the start of a bracketed group
+ rdepth the recursion depth
Returns: MATCH_MATCH if matched ) these values are >= 0
MATCH_NOMATCH if failed to match )
a negative PCRE_ERROR_xxx value if aborted by an error condition
- (e.g. stopped by recursion limit)
+ (e.g. stopped by repeated call or recursion limit)
*/
static int
-match(REGISTER const uschar *eptr, REGISTER const uschar *ecode,
+match(REGISTER USPTR eptr, REGISTER const uschar *ecode,
int offset_top, match_data *md, unsigned long int ims, eptrblock *eptrb,
- int flags)
+ int flags, int rdepth)
{
/* These variables do not need to be preserved over recursion in this function,
so they can be ordinary variables in all cases. Mark them with "register"
@@ -381,6 +402,7 @@ frame->Xoffset_top = offset_top;
frame->Xims = ims;
frame->Xeptrb = eptrb;
frame->Xflags = flags;
+frame->Xrdepth = rdepth;
/* This is where control jumps back to to effect "recursion" */
@@ -394,6 +416,7 @@ HEAP_RECURSE:
#define ims frame->Xims
#define eptrb frame->Xeptrb
#define flags frame->Xflags
+#define rdepth frame->Xrdepth
/* Ditto for the local variables */
@@ -418,11 +441,11 @@ HEAP_RECURSE:
#ifdef SUPPORT_UCP
#define prop_type frame->Xprop_type
+#define prop_value frame->Xprop_value
#define prop_fail_result frame->Xprop_fail_result
#define prop_category frame->Xprop_category
#define prop_chartype frame->Xprop_chartype
-#define prop_othercase frame->Xprop_othercase
-#define prop_test_against frame->Xprop_test_against
+#define prop_script frame->Xprop_script
#define prop_test_variable frame->Xprop_test_variable
#endif
@@ -452,20 +475,20 @@ i, and fc and c, can be the same variables. */
#define fc c
-#ifdef SUPPORT_UTF8 /* Many of these variables are used ony */
-const uschar *charptr; /* small blocks of the code. My normal */
-#endif /* style of coding would have declared */
-const uschar *callpat; /* them within each of those blocks. */
-const uschar *data; /* However, in order to accommodate the */
-const uschar *next; /* version of this code that uses an */
-const uschar *pp; /* external "stack" implemented on the */
-const uschar *prev; /* heap, it is easier to declare them */
-const uschar *saved_eptr; /* all here, so the declarations can */
- /* be cut out in a block. The only */
-recursion_info new_recursive; /* declarations within blocks below are */
- /* for variables that do not have to */
-BOOL cur_is_word; /* be preserved over a recursive call */
-BOOL condition; /* to RMATCH(). */
+#ifdef SUPPORT_UTF8 /* Many of these variables are used only */
+const uschar *charptr; /* in small blocks of the code. My normal */
+#endif /* style of coding would have declared */
+const uschar *callpat; /* them within each of those blocks. */
+const uschar *data; /* However, in order to accommodate the */
+const uschar *next; /* version of this code that uses an */
+USPTR pp; /* external "stack" implemented on the */
+const uschar *prev; /* heap, it is easier to declare them all */
+USPTR saved_eptr; /* here, so the declarations can be cut */
+ /* out in a block. The only declarations */
+recursion_info new_recursive; /* within blocks below are for variables */
+ /* that do not have to be preserved over */
+BOOL cur_is_word; /* a recursive call to RMATCH(). */
+BOOL condition;
BOOL minimize;
BOOL prev_is_word;
@@ -473,11 +496,11 @@ unsigned long int original_ims;
#ifdef SUPPORT_UCP
int prop_type;
+int prop_value;
int prop_fail_result;
int prop_category;
int prop_chartype;
-int prop_othercase;
-int prop_test_against;
+int prop_script;
int *prop_test_variable;
#endif
@@ -499,19 +522,24 @@ eptrblock newptrb;
variables. */
#ifdef SUPPORT_UCP
+prop_value = 0;
prop_fail_result = 0;
-prop_test_against = 0;
prop_test_variable = NULL;
#endif
-/* OK, now we can get on with the real code of the function. Recursion is
-specified by the macros RMATCH and RRETURN. When NO_RECURSE is *not* defined,
-these just turn into a recursive call to match() and a "return", respectively.
-However, RMATCH isn't like a function call because it's quite a complicated
-macro. It has to be used in one particular way. This shouldn't, however, impact
-performance when true recursion is being used. */
+/* OK, now we can get on with the real code of the function. Recursive calls
+are specified by the macro RMATCH and RRETURN is used to return. When
+NO_RECURSE is *not* defined, these just turn into a recursive call to match()
+and a "return", respectively (possibly with some debugging if DEBUG is
+defined). However, RMATCH isn't like a function call because it's quite a
+complicated macro. It has to be used in one particular way. This shouldn't,
+however, impact performance when true recursion is being used. */
+
+/* First check that we haven't called match() too many times, or that we
+haven't exceeded the recursive call limit. */
if (md->match_call_count++ >= md->match_limit) RRETURN(PCRE_ERROR_MATCHLIMIT);
+if (rdepth >= md->match_limit_recursion) RRETURN(PCRE_ERROR_RECURSIONLIMIT);
original_ims = ims; /* Save for resetting on ')' */
utf8 = md->utf8; /* Local copy of the flag */
@@ -681,7 +709,7 @@ for (;;)
if (md->recursive != NULL && md->recursive->group_num == 0)
{
recursion_info *rec = md->recursive;
- DPRINTF(("Hit the end in a (?0) recursion\n"));
+ DPRINTF(("End of pattern in a (?0) recursion\n"));
md->recursive = rec->prevrec;
memmove(md->offset_vector, rec->offset_save,
rec->saved_max * sizeof(int));
@@ -800,7 +828,7 @@ for (;;)
cb.version = 1; /* Version 1 of the callout block */
cb.callout_number = ecode[1];
cb.offset_vector = md->offset_vector;
- cb.subject = (const char *)md->start_subject;
+ cb.subject = (PCRE_SPTR)md->start_subject;
cb.subject_length = md->end_subject - md->start_subject;
cb.start_match = md->start_match - md->start_subject;
cb.current_position = eptr - md->start_subject;
@@ -882,12 +910,17 @@ for (;;)
eptrb, match_isgroup);
if (rrc == MATCH_MATCH)
{
+ DPRINTF(("Recursion matched\n"));
md->recursive = new_recursive.prevrec;
if (new_recursive.offset_save != stacksave)
(pcre_free)(new_recursive.offset_save);
RRETURN(MATCH_MATCH);
}
- else if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ else if (rrc != MATCH_NOMATCH)
+ {
+ DPRINTF(("Recursion gave error %d\n", rrc));
+ RRETURN(rrc);
+ }
md->recursive = &new_recursive;
memcpy(md->offset_vector, new_recursive.offset_save,
@@ -1352,23 +1385,43 @@ for (;;)
if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
GETCHARINCTEST(c, eptr);
{
- int chartype, rqdtype;
- int othercase;
- int category = ucp_findchar(c, &chartype, &othercase);
+ int chartype, script;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
- rqdtype = *(++ecode);
- ecode++;
-
- if (rqdtype >= 128)
+ switch(ecode[1])
{
- if ((rqdtype - 128 != category) == (op == OP_PROP))
+ case PT_ANY:
+ if (op == OP_NOTPROP) RRETURN(MATCH_NOMATCH);
+ break;
+
+ case PT_LAMP:
+ if ((chartype == ucp_Lu ||
+ chartype == ucp_Ll ||
+ chartype == ucp_Lt) == (op == OP_NOTPROP))
RRETURN(MATCH_NOMATCH);
- }
- else
- {
- if ((rqdtype != chartype) == (op == OP_PROP))
+ break;
+
+ case PT_GC:
+ if ((ecode[2] != category) == (op == OP_PROP))
+ RRETURN(MATCH_NOMATCH);
+ break;
+
+ case PT_PC:
+ if ((ecode[2] != chartype) == (op == OP_PROP))
+ RRETURN(MATCH_NOMATCH);
+ break;
+
+ case PT_SC:
+ if ((ecode[2] != script) == (op == OP_PROP))
RRETURN(MATCH_NOMATCH);
+ break;
+
+ default:
+ RRETURN(PCRE_ERROR_INTERNAL);
+ break;
}
+
+ ecode += 3;
}
break;
@@ -1379,9 +1432,8 @@ for (;;)
if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
GETCHARINCTEST(c, eptr);
{
- int chartype;
- int othercase;
- int category = ucp_findchar(c, &chartype, &othercase);
+ int chartype, script;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
if (category == ucp_M) RRETURN(MATCH_NOMATCH);
while (eptr < md->end_subject)
{
@@ -1390,7 +1442,7 @@ for (;;)
{
GETCHARLEN(c, eptr, len);
}
- category = ucp_findchar(c, &chartype, &othercase);
+ category = _pcre_ucp_findprop(c, &chartype, &script);
if (category != ucp_M) break;
eptr += len;
}
@@ -1683,8 +1735,8 @@ for (;;)
while (eptr >= pp)
{
RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
- eptr--;
if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ eptr--;
}
}
@@ -1841,16 +1893,12 @@ for (;;)
ecode += length;
/* If we have Unicode property support, we can use it to test the other
- case of the character, if there is one. The result of ucp_findchar() is
- < 0 if the char isn't found, and othercase is returned as zero if there
- isn't one. */
+ case of the character, if there is one. */
if (fc != dc)
{
#ifdef SUPPORT_UCP
- int chartype;
- int othercase;
- if (ucp_findchar(fc, &chartype, &othercase) < 0 || dc != othercase)
+ if (dc != _pcre_ucp_othercase(fc))
#endif
RRETURN(MATCH_NOMATCH);
}
@@ -1918,10 +1966,9 @@ for (;;)
#ifdef SUPPORT_UCP
int othercase;
- int chartype;
if ((ims & PCRE_CASELESS) != 0 &&
- ucp_findchar(fc, &chartype, &othercase) >= 0 &&
- othercase > 0)
+ (othercase = _pcre_ucp_othercase(fc)) >= 0 &&
+ othercase >= 0)
oclength = _pcre_ord2utf8(othercase, occhars);
#endif /* SUPPORT_UCP */
@@ -2408,16 +2455,7 @@ for (;;)
{
prop_fail_result = ctype == OP_NOTPROP;
prop_type = *ecode++;
- if (prop_type >= 128)
- {
- prop_test_against = prop_type - 128;
- prop_test_variable = &prop_category;
- }
- else
- {
- prop_test_against = prop_type;
- prop_test_variable = &prop_chartype;
- }
+ prop_value = *ecode++;
}
else prop_type = -1;
#endif
@@ -2434,14 +2472,68 @@ for (;;)
if (min > 0)
{
#ifdef SUPPORT_UCP
- if (prop_type > 0)
+ if (prop_type >= 0)
{
- for (i = 1; i <= min; i++)
+ switch(prop_type)
{
- GETCHARINC(c, eptr);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
- if ((*prop_test_variable == prop_test_against) == prop_fail_result)
- RRETURN(MATCH_NOMATCH);
+ case PT_ANY:
+ if (prop_fail_result) RRETURN(MATCH_NOMATCH);
+ for (i = 1; i <= min; i++)
+ {
+ if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ }
+ break;
+
+ case PT_LAMP:
+ for (i = 1; i <= min; i++)
+ {
+ if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == ucp_Lu ||
+ prop_chartype == ucp_Ll ||
+ prop_chartype == ucp_Lt) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_GC:
+ for (i = 1; i <= min; i++)
+ {
+ if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_category == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_PC:
+ for (i = 1; i <= min; i++)
+ {
+ if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_SC:
+ for (i = 1; i <= min; i++)
+ {
+ if (eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_script == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ default:
+ RRETURN(PCRE_ERROR_INTERNAL);
+ break;
}
}
@@ -2453,7 +2545,7 @@ for (;;)
for (i = 1; i <= min; i++)
{
GETCHARINCTEST(c, eptr);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH);
while (eptr < md->end_subject)
{
@@ -2462,7 +2554,7 @@ for (;;)
{
GETCHARLEN(c, eptr, len);
}
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category != ucp_M) break;
eptr += len;
}
@@ -2624,17 +2716,78 @@ for (;;)
if (minimize)
{
#ifdef SUPPORT_UCP
- if (prop_type > 0)
+ if (prop_type >= 0)
{
- for (fi = min;; fi++)
+ switch(prop_type)
{
- RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
- if (rrc != MATCH_NOMATCH) RRETURN(rrc);
- if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
- GETCHARINC(c, eptr);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
- if ((*prop_test_variable == prop_test_against) == prop_fail_result)
- RRETURN(MATCH_NOMATCH);
+ case PT_ANY:
+ for (fi = min;; fi++)
+ {
+ RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ if (prop_fail_result) RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_LAMP:
+ for (fi = min;; fi++)
+ {
+ RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == ucp_Lu ||
+ prop_chartype == ucp_Ll ||
+ prop_chartype == ucp_Lt) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_GC:
+ for (fi = min;; fi++)
+ {
+ RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_category == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_PC:
+ for (fi = min;; fi++)
+ {
+ RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ case PT_SC:
+ for (fi = min;; fi++)
+ {
+ RMATCH(rrc, eptr, ecode, offset_top, md, ims, eptrb, 0);
+ if (rrc != MATCH_NOMATCH) RRETURN(rrc);
+ if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
+ GETCHARINC(c, eptr);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_script == prop_value) == prop_fail_result)
+ RRETURN(MATCH_NOMATCH);
+ }
+ break;
+
+ default:
+ RRETURN(PCRE_ERROR_INTERNAL);
+ break;
}
}
@@ -2649,7 +2802,7 @@ for (;;)
if (rrc != MATCH_NOMATCH) RRETURN(rrc);
if (fi >= max || eptr >= md->end_subject) RRETURN(MATCH_NOMATCH);
GETCHARINCTEST(c, eptr);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category == ucp_M) RRETURN(MATCH_NOMATCH);
while (eptr < md->end_subject)
{
@@ -2658,7 +2811,7 @@ for (;;)
{
GETCHARLEN(c, eptr, len);
}
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category != ucp_M) break;
eptr += len;
}
@@ -2783,17 +2936,74 @@ for (;;)
pp = eptr; /* Remember where we started */
#ifdef SUPPORT_UCP
- if (prop_type > 0)
+ if (prop_type >= 0)
{
- for (i = min; i < max; i++)
+ switch(prop_type)
{
- int len = 1;
- if (eptr >= md->end_subject) break;
- GETCHARLEN(c, eptr, len);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
- if ((*prop_test_variable == prop_test_against) == prop_fail_result)
- break;
- eptr+= len;
+ case PT_ANY:
+ for (i = min; i < max; i++)
+ {
+ int len = 1;
+ if (eptr >= md->end_subject) break;
+ GETCHARLEN(c, eptr, len);
+ if (prop_fail_result) break;
+ eptr+= len;
+ }
+ break;
+
+ case PT_LAMP:
+ for (i = min; i < max; i++)
+ {
+ int len = 1;
+ if (eptr >= md->end_subject) break;
+ GETCHARLEN(c, eptr, len);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == ucp_Lu ||
+ prop_chartype == ucp_Ll ||
+ prop_chartype == ucp_Lt) == prop_fail_result)
+ break;
+ eptr+= len;
+ }
+ break;
+
+ case PT_GC:
+ for (i = min; i < max; i++)
+ {
+ int len = 1;
+ if (eptr >= md->end_subject) break;
+ GETCHARLEN(c, eptr, len);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_category == prop_value) == prop_fail_result)
+ break;
+ eptr+= len;
+ }
+ break;
+
+ case PT_PC:
+ for (i = min; i < max; i++)
+ {
+ int len = 1;
+ if (eptr >= md->end_subject) break;
+ GETCHARLEN(c, eptr, len);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_chartype == prop_value) == prop_fail_result)
+ break;
+ eptr+= len;
+ }
+ break;
+
+ case PT_SC:
+ for (i = min; i < max; i++)
+ {
+ int len = 1;
+ if (eptr >= md->end_subject) break;
+ GETCHARLEN(c, eptr, len);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
+ if ((prop_script == prop_value) == prop_fail_result)
+ break;
+ eptr+= len;
+ }
+ break;
}
/* eptr is now past the end of the maximum run */
@@ -2816,7 +3026,7 @@ for (;;)
{
if (eptr >= md->end_subject) break;
GETCHARINCTEST(c, eptr);
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category == ucp_M) break;
while (eptr < md->end_subject)
{
@@ -2825,7 +3035,7 @@ for (;;)
{
GETCHARLEN(c, eptr, len);
}
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category != ucp_M) break;
eptr += len;
}
@@ -2846,7 +3056,7 @@ for (;;)
{
GETCHARLEN(c, eptr, len);
}
- prop_category = ucp_findchar(c, &prop_chartype, &prop_othercase);
+ prop_category = _pcre_ucp_findprop(c, &prop_chartype, &prop_script);
if (prop_category != ucp_M) break;
eptr--;
}
@@ -3200,9 +3410,9 @@ Returns: > 0 => success; value is the number of elements filled in
< -1 => some kind of unexpected problem
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_exec(const pcre *argument_re, const pcre_extra *extra_data,
- const char *subject, int length, int start_offset, int options, int *offsets,
+ PCRE_SPTR subject, int length, int start_offset, int options, int *offsets,
int offsetcount)
{
int rc, resetcount, ocount;
@@ -3219,9 +3429,9 @@ BOOL req_byte_caseless = FALSE;
match_data match_block;
const uschar *tables;
const uschar *start_bits = NULL;
-const uschar *start_match = (const uschar *)subject + start_offset;
-const uschar *end_subject;
-const uschar *req_byte_ptr = start_match - 1;
+USPTR start_match = (USPTR)subject + start_offset;
+USPTR end_subject;
+USPTR req_byte_ptr = start_match - 1;
pcre_study_data internal_study;
const pcre_study_data *study;
@@ -3242,6 +3452,7 @@ the default values. */
study = NULL;
match_block.match_limit = MATCH_LIMIT;
+match_block.match_limit_recursion = MATCH_LIMIT_RECURSION;
match_block.callout_data = NULL;
/* The table pointer is always in native byte order. */
@@ -3255,6 +3466,8 @@ if (extra_data != NULL)
study = (const pcre_study_data *)extra_data->study_data;
if ((flags & PCRE_EXTRA_MATCH_LIMIT) != 0)
match_block.match_limit = extra_data->match_limit;
+ if ((flags & PCRE_EXTRA_MATCH_LIMIT_RECURSION) != 0)
+ match_block.match_limit_recursion = extra_data->match_limit_recursion;
if ((flags & PCRE_EXTRA_CALLOUT_DATA) != 0)
match_block.callout_data = extra_data->callout_data;
if ((flags & PCRE_EXTRA_TABLES) != 0) tables = extra_data->tables;
@@ -3289,7 +3502,7 @@ firstline = (re->options & PCRE_FIRSTLINE) != 0;
match_block.start_code = (const uschar *)external_re + re->name_table_offset +
re->name_count * re->name_entry_size;
-match_block.start_subject = (const uschar *)subject;
+match_block.start_subject = (USPTR)subject;
match_block.start_offset = start_offset;
match_block.end_subject = match_block.start_subject + length;
end_subject = match_block.end_subject;
@@ -3415,7 +3628,7 @@ the loop runs just once. */
do
{
- const uschar *save_end_subject = end_subject;
+ USPTR save_end_subject = end_subject;
/* Reset the maximum number of extractions we might see. */
@@ -3434,7 +3647,7 @@ do
if (firstline)
{
- const uschar *t = start_match;
+ USPTR t = start_match;
while (t < save_end_subject && *t != '\n') t++;
end_subject = t;
}
@@ -3504,7 +3717,7 @@ do
end_subject - start_match < REQ_BYTE_MAX &&
!match_block.partial)
{
- register const uschar *p = start_match + ((first_byte >= 0)? 1 : 0);
+ register USPTR p = start_match + ((first_byte >= 0)? 1 : 0);
/* We don't need to repeat the search if we haven't yet reached the
place we found it at last time. */
@@ -3550,7 +3763,7 @@ do
match_block.match_call_count = 0;
rc = match(start_match, match_block.start_code, 2, &match_block, ims, NULL,
- match_isgroup);
+ match_isgroup, 0);
/* When the result is no match, if the subject's first character was a
newline and the PCRE_FIRSTLINE option is set, break (which will return
diff --git a/ext/pcre/pcrelib/pcre_fullinfo.c b/ext/pcre/pcrelib/pcre_fullinfo.c
index ac80e65e2..4a8edc6f4 100644
--- a/ext/pcre/pcrelib/pcre_fullinfo.c
+++ b/ext/pcre/pcrelib/pcre_fullinfo.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -61,7 +61,7 @@ Arguments:
Returns: 0 if data returned, negative on error
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_fullinfo(const pcre *argument_re, const pcre_extra *extra_data, int what,
void *where)
{
diff --git a/ext/pcre/pcrelib/pcre_get.c b/ext/pcre/pcrelib/pcre_get.c
index fc4a14ac1..674625a0e 100644
--- a/ext/pcre/pcrelib/pcre_get.c
+++ b/ext/pcre/pcrelib/pcre_get.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
diff --git a/ext/pcre/pcrelib/pcre_globals.c b/ext/pcre/pcrelib/pcre_globals.c
index 1a839802b..f829acfb1 100644
--- a/ext/pcre/pcrelib/pcre_globals.c
+++ b/ext/pcre/pcrelib/pcre_globals.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
diff --git a/ext/pcre/pcrelib/pcre_info.c b/ext/pcre/pcrelib/pcre_info.c
index 228949d0c..b318b93ea 100644
--- a/ext/pcre/pcrelib/pcre_info.c
+++ b/ext/pcre/pcrelib/pcre_info.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -68,7 +68,7 @@ Returns: number of capturing subpatterns
or negative values on error
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_info(const pcre *argument_re, int *optptr, int *first_byte)
{
real_pcre internal_re;
diff --git a/ext/pcre/pcrelib/pcre_internal.h b/ext/pcre/pcrelib/pcre_internal.h
index bffab024c..386ed3ddf 100644
--- a/ext/pcre/pcrelib/pcre_internal.h
+++ b/ext/pcre/pcrelib/pcre_internal.h
@@ -7,7 +7,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -42,12 +42,14 @@ POSSIBILITY OF SUCH DAMAGE.
modules, but which are not relevant to the exported API. This includes some
functions whose names all begin with "_pcre_". */
+#ifndef PCRE_INTERNAL_H
+#define PCRE_INTERNAL_H
/* Define DEBUG to get debugging output on stdout. */
-/****
+#if 0
#define DEBUG
-****/
+#endif
/* Use a macro for debugging printing, 'cause that eliminates the use of #ifdef
inline, and there are *still* stupid compilers about that don't like indented
@@ -116,14 +118,27 @@ Unix, where it is defined in sys/types, so use "uschar" instead. */
typedef unsigned char uschar;
-/* Include the public PCRE header */
-
-#include "pcre.h"
+/* When PCRE is compiled as a C++ library, the subject pointer can be replaced
+with a custom type. This makes it possible, for example, to allow pcre_exec()
+to process subject strings that are discontinuous by using a smart pointer
+class. It must always be possible to inspect all of the subject string in
+pcre_exec() because of the way it backtracks. Two macros are required in the
+normal case, for sign-unspecified and unsigned char pointers. The former is
+used for the external interface and appears in pcre.h, which is why its name
+must begin with PCRE_. */
+
+#ifdef CUSTOM_SUBJECT_PTR
+#define PCRE_SPTR CUSTOM_SUBJECT_PTR
+#define USPTR CUSTOM_SUBJECT_PTR
+#else
+#define PCRE_SPTR const char *
+#define USPTR const unsigned char *
+#endif
-/* Include the (copy of) the public ucp header, changing the external name into
-a private one. This does no harm, even if we aren't compiling UCP support. */
+/* Include the public PCRE header and the definitions of UCP character property
+values. */
-#define ucp_findchar _pcre_ucp_findchar
+#include "pcre.h"
#include "ucp.h"
/* When compiling for use with the Virtual Pascal compiler, these functions
@@ -152,10 +167,11 @@ case in PCRE. */
void *
pcre_memmove(unsigned char *dest, const unsigned char *src, size_t n)
{
-int i;
+size_t i;
dest += n;
src += n;
for (i = 0; i < n; ++i) *(--dest) = *(--src);
+return dest;
}
#define memmove(a, b, c) pcre_memmove(a, b, c)
#endif /* not HAVE_BCOPY */
@@ -449,6 +465,26 @@ ESC_n is defined as yet another macro, which is set in config.h to either \n
#define ESC_tee '\t'
#endif
+/* Codes for different types of Unicode property */
+
+#define PT_ANY 0 /* Any property - matches all chars */
+#define PT_LAMP 1 /* L& - the union of Lu, Ll, Lt */
+#define PT_GC 2 /* General characteristic (e.g. L) */
+#define PT_PC 3 /* Particular characteristic (e.g. Lu) */
+#define PT_SC 4 /* Script (e.g. Han) */
+
+/* Flag bits and data types for the extended class (OP_XCLASS) for classes that
+contain UTF-8 characters with values greater than 255. */
+
+#define XCL_NOT 0x01 /* Flag: this is a negative class */
+#define XCL_MAP 0x02 /* Flag: a 32-byte map is present */
+
+#define XCL_END 0 /* Marks end of individual items */
+#define XCL_SINGLE 1 /* Single item (one multibyte char) follows */
+#define XCL_RANGE 2 /* A range (two multibyte chars) follows */
+#define XCL_PROP 3 /* Unicode property (2-byte property code follows) */
+#define XCL_NOTPROP 4 /* Unicode inverted property (ditto) */
+
/* These are escaped items that aren't just an encoding of a particular data
value such as \n. They must have non-zero values, as check_escape() returns
their negation. Also, they must appear in the same order as in the opcode
@@ -464,19 +500,6 @@ enum { ESC_A = 1, ESC_G, ESC_B, ESC_b, ESC_D, ESC_d, ESC_S, ESC_s, ESC_W,
ESC_w, ESC_dum1, ESC_C, ESC_P, ESC_p, ESC_X, ESC_Z, ESC_z, ESC_E,
ESC_Q, ESC_REF };
-/* Flag bits and data types for the extended class (OP_XCLASS) for classes that
-contain UTF-8 characters with values greater than 255. */
-
-#define XCL_NOT 0x01 /* Flag: this is a negative class */
-#define XCL_MAP 0x02 /* Flag: a 32-byte map is present */
-
-#define XCL_END 0 /* Marks end of individual items */
-#define XCL_SINGLE 1 /* Single item (one multibyte char) follows */
-#define XCL_RANGE 2 /* A range (two multibyte chars) follows */
-#define XCL_PROP 3 /* Unicode property (one property code) follows */
-#define XCL_NOTPROP 4 /* Unicode inverted property (ditto) */
-
-
/* Opcode table: OP_BRA must be last, as all values >= it are used for brackets
that extract substrings. Starting from 1 (i.e. after OP_END), the values up to
OP_EOD must correspond in order to the list of escapes immediately above.
@@ -640,7 +663,7 @@ in UTF-8 mode. The code that uses this table must know about such things. */
1, /* End */ \
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* \A, \G, \B, \B, \D, \d, \S, \s, \W, \w */ \
1, 1, /* Any, Anybyte */ \
- 2, 2, 1, /* NOTPROP, PROP, EXTUNI */ \
+ 3, 3, 1, /* NOTPROP, PROP, EXTUNI */ \
1, 1, 2, 1, 1, /* \Z, \z, Opt, ^, $ */ \
2, /* Char - the minimum length */ \
2, /* Charnc - the minimum length */ \
@@ -772,7 +795,7 @@ typedef struct recursion_info {
struct recursion_info *prevrec; /* Previous recursion record (or NULL) */
int group_num; /* Number of group that was called */
const uschar *after_call; /* "Return value": points after the call in the expr */
- const uschar *save_start; /* Old value of md->start_match */
+ USPTR save_start; /* Old value of md->start_match */
int *offset_save; /* Pointer to start of saved offsets */
int saved_max; /* Number of saved offsets */
} recursion_info;
@@ -791,8 +814,9 @@ struct heapframe;
doing traditional NFA matching, so that they are thread-safe. */
typedef struct match_data {
- unsigned long int match_call_count; /* As it says */
- unsigned long int match_limit;/* As it says */
+ unsigned long int match_call_count; /* As it says */
+ unsigned long int match_limit; /* As it says */
+ unsigned long int match_limit_recursion; /* As it says */
int *offset_vector; /* Offset vector */
int offset_end; /* One past the end */
int offset_max; /* The maximum usable for return data */
@@ -807,10 +831,10 @@ typedef struct match_data {
BOOL partial; /* PARTIAL flag */
BOOL hitend; /* Hit the end of the subject at some point */
const uschar *start_code; /* For use when recursing */
- const uschar *start_subject; /* Start of the subject string */
- const uschar *end_subject; /* End of the subject string */
- const uschar *start_match; /* Start of this match attempt */
- const uschar *end_match_ptr; /* Subject position at end match */
+ USPTR start_subject; /* Start of the subject string */
+ USPTR end_subject; /* End of the subject string */
+ USPTR start_match; /* Start of this match attempt */
+ USPTR end_match_ptr; /* Subject position at end match */
int end_offset_top; /* Highwater mark at end of match */
int capture_last; /* Most recent capture number */
int start_offset; /* The start offset value */
@@ -865,12 +889,13 @@ total length. */
#define ctypes_offset (cbits_offset + cbit_length)
#define tables_length (ctypes_offset + 256)
-/* Layout of the UCP type table that translates property names into codes for
-ucp_findchar(). */
+/* Layout of the UCP type table that translates property names into types and
+codes. */
typedef struct {
const char *name;
- int value;
+ pcre_uint16 type;
+ pcre_uint16 value;
} ucp_type_table;
@@ -899,11 +924,13 @@ one of the exported public functions. They have to be "external" in the C
sense, but are not part of the PCRE public API. */
extern int _pcre_ord2utf8(int, uschar *);
-extern void _pcre_printint(pcre *, FILE *);
extern real_pcre * _pcre_try_flipped(const real_pcre *, real_pcre *,
const pcre_study_data *, pcre_study_data *);
-extern int _pcre_ucp_findchar(const int, int *, int *);
+extern int _pcre_ucp_findprop(const int, int *, int *);
+extern int _pcre_ucp_othercase(const int);
extern int _pcre_valid_utf8(const uschar *, int);
extern BOOL _pcre_xclass(int, const uschar *);
+#endif
+
/* End of pcre_internal.h */
diff --git a/ext/pcre/pcrelib/pcre_maketables.c b/ext/pcre/pcrelib/pcre_maketables.c
index c4954b264..abc272f49 100644
--- a/ext/pcre/pcrelib/pcre_maketables.c
+++ b/ext/pcre/pcrelib/pcre_maketables.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -86,29 +86,22 @@ for (i = 0; i < 256; i++) *p++ = tolower(i);
for (i = 0; i < 256; i++) *p++ = islower(i)? toupper(i) : tolower(i);
-/* Then the character class tables. Don't try to be clever and save effort
-on exclusive ones - in some locales things may be different. Note that the
-table for "space" includes everything "isspace" gives, including VT in the
-default locale. This makes it work for the POSIX class [:space:]. */
+/* Then the character class tables. Don't try to be clever and save effort on
+exclusive ones - in some locales things may be different. Note that the table
+for "space" includes everything "isspace" gives, including VT in the default
+locale. This makes it work for the POSIX class [:space:]. Note also that it is
+possible for a character to be alnum or alpha without being lower or upper,
+such as "male and female ordinals" (\xAA and \xBA) in the fr_FR locale (at
+least under Debian Linux's locales as of 12/2005). So we must test for alnum
+specially. */
memset(p, 0, cbit_length);
for (i = 0; i < 256; i++)
{
- if (isdigit(i))
- {
- p[cbit_digit + i/8] |= 1 << (i&7);
- p[cbit_word + i/8] |= 1 << (i&7);
- }
- if (isupper(i))
- {
- p[cbit_upper + i/8] |= 1 << (i&7);
- p[cbit_word + i/8] |= 1 << (i&7);
- }
- if (islower(i))
- {
- p[cbit_lower + i/8] |= 1 << (i&7);
- p[cbit_word + i/8] |= 1 << (i&7);
- }
+ if (isdigit(i)) p[cbit_digit + i/8] |= 1 << (i&7);
+ if (isupper(i)) p[cbit_upper + i/8] |= 1 << (i&7);
+ if (islower(i)) p[cbit_lower + i/8] |= 1 << (i&7);
+ if (isalnum(i)) p[cbit_word + i/8] |= 1 << (i&7);
if (i == '_') p[cbit_word + i/8] |= 1 << (i&7);
if (isspace(i)) p[cbit_space + i/8] |= 1 << (i&7);
if (isxdigit(i))p[cbit_xdigit + i/8] |= 1 << (i&7);
diff --git a/ext/pcre/pcrelib/pcre_ord2utf8.c b/ext/pcre/pcrelib/pcre_ord2utf8.c
index f6a06fc6e..fc4d6de81 100644
--- a/ext/pcre/pcrelib/pcre_ord2utf8.c
+++ b/ext/pcre/pcrelib/pcre_ord2utf8.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -59,7 +59,7 @@ Arguments:
Returns: number of characters placed in the buffer
*/
-EXPORT int
+int
_pcre_ord2utf8(int cvalue, uschar *buffer)
{
register int i, j;
diff --git a/ext/pcre/pcrelib/pcre_printint.c b/ext/pcre/pcrelib/pcre_printint.src
index d18f39925..34f52d114 100644
--- a/ext/pcre/pcrelib/pcre_printint.c
+++ b/ext/pcre/pcrelib/pcre_printint.src
@@ -38,12 +38,15 @@ POSSIBILITY OF SUCH DAMAGE.
*/
-/* This module contains an PCRE private debugging function for printing out the
+/* This module contains a PCRE private debugging function for printing out the
internal form of a compiled regular expression, along with some supporting
-local functions. */
+local functions. This source file is used in two places:
+(1) It is #included by pcre_compile.c when it is compiled in debugging mode
+(DEBUG defined in pcre_internal.h). It is not included in production compiles.
-#include "pcre_internal.h"
+(2) It is always #included by pcretest.c, which can be asked to print out a
+compiled regex for debugging purposes. */
static const char *OP_names[] = { OP_NAME_LIST };
@@ -98,16 +101,18 @@ else
*************************************************/
static const char *
-get_ucpname(int property)
+get_ucpname(int ptype, int pvalue)
{
#ifdef SUPPORT_UCP
int i;
for (i = _pcre_utt_size; i >= 0; i--)
{
- if (property == _pcre_utt[i].value) break;
+ if (ptype == _pcre_utt[i].type && pvalue == _pcre_utt[i].value) break;
}
return (i >= 0)? _pcre_utt[i].name : "??";
#else
+ptype = ptype; /* Avoid compiler warning */
+pvalue = pvalue;
return "??";
#endif
}
@@ -121,8 +126,8 @@ return "??";
/* Make this function work for a regex with integers either byte order.
However, we assume that what we are passed is a compiled regex. */
-EXPORT void
-_pcre_printint(pcre *external_re, FILE *f)
+static void
+pcre_printint(pcre *external_re, FILE *f)
{
real_pcre *re = (real_pcre *)external_re;
uschar *codestart, *code;
@@ -247,8 +252,8 @@ for(;;)
fprintf(f, "%s", OP_names[code[1]]);
if (code[1] == OP_PROP || code[1] == OP_NOTPROP)
{
- fprintf(f, " %s ", get_ucpname(code[2]));
- extra = 1;
+ fprintf(f, " %s ", get_ucpname(code[2], code[3]));
+ extra = 2;
}
}
else extra = print_char(f, code+1, utf8);
@@ -272,8 +277,8 @@ for(;;)
fprintf(f, " %s", OP_names[code[3]]);
if (code[3] == OP_PROP || code[3] == OP_NOTPROP)
{
- fprintf(f, " %s ", get_ucpname(code[4]));
- extra = 1;
+ fprintf(f, " %s ", get_ucpname(code[4], code[5]));
+ extra = 2;
}
fprintf(f, "{");
if (*code != OP_TYPEEXACT) fprintf(f, "0,");
@@ -323,7 +328,7 @@ for(;;)
case OP_PROP:
case OP_NOTPROP:
- fprintf(f, " %s %s", OP_names[*code], get_ucpname(code[1]));
+ fprintf(f, " %s %s", OP_names[*code], get_ucpname(code[1], code[2]));
break;
/* OP_XCLASS can only occur in UTF-8 mode. However, there's no harm in
@@ -386,11 +391,15 @@ for(;;)
{
if (ch == XCL_PROP)
{
- fprintf(f, "\\p{%s}", get_ucpname(*ccode++));
+ int ptype = *ccode++;
+ int pvalue = *ccode++;
+ fprintf(f, "\\p{%s}", get_ucpname(ptype, pvalue));
}
else if (ch == XCL_NOTPROP)
{
- fprintf(f, "\\P{%s}", get_ucpname(*ccode++));
+ int ptype = *ccode++;
+ int pvalue = *ccode++;
+ fprintf(f, "\\P{%s}", get_ucpname(ptype, pvalue));
}
else
{
@@ -432,6 +441,12 @@ for(;;)
if (*ccode == OP_CRMINRANGE) fprintf(f, "?");
extra += _pcre_OP_lengths[*ccode];
break;
+
+ /* Do nothing if it's not a repeat; this code stops picky compilers
+ warning about the lack of a default code path. */
+
+ default:
+ break;
}
}
break;
@@ -448,4 +463,4 @@ for(;;)
}
}
-/* End of pcre_printint.c */
+/* End of pcre_printint.src */
diff --git a/ext/pcre/pcrelib/pcre_refcount.c b/ext/pcre/pcrelib/pcre_refcount.c
index 35a7ee869..e6965812e 100644
--- a/ext/pcre/pcrelib/pcre_refcount.c
+++ b/ext/pcre/pcrelib/pcre_refcount.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,7 @@ Returns: the (possibly updated) count value (a non-negative number), or
a negative error number
*/
-EXPORT int
+PCRE_DATA_SCOPE int
pcre_refcount(pcre *argument_re, int adjust)
{
real_pcre *re = (real_pcre *)argument_re;
diff --git a/ext/pcre/pcrelib/pcre_scanner.cc b/ext/pcre/pcrelib/pcre_scanner.cc
index 4a66fdf0b..29e0d8400 100644
--- a/ext/pcre/pcrelib/pcre_scanner.cc
+++ b/ext/pcre/pcrelib/pcre_scanner.cc
@@ -30,7 +30,6 @@
// Author: Sanjay Ghemawat
#include <vector>
-#include <algorithm> // for count()
#include <assert.h>
#include "config.h"
#include "pcre_scanner.h"
@@ -90,7 +89,12 @@ void Scanner::EnableSkip() {
int Scanner::LineNumber() const {
// TODO: Make it more efficient by keeping track of the last point
// where we computed line numbers and counting newlines since then.
- return 1 + std::count(data_.data(), input_.data(), '\n');
+ // We could use std:count, but not all systems have it. :-(
+ int count = 1;
+ for (const char* p = data_.data(); p < input_.data(); ++p)
+ if (*p == '\n')
+ ++count;
+ return count;
}
int Scanner::Offset() const {
diff --git a/ext/pcre/pcrelib/pcre_scanner_unittest.cc b/ext/pcre/pcrelib/pcre_scanner_unittest.cc
index e000a078d..756823cbb 100644
--- a/ext/pcre/pcrelib/pcre_scanner_unittest.cc
+++ b/ext/pcre/pcrelib/pcre_scanner_unittest.cc
@@ -68,6 +68,7 @@ static void TestScanner() {
s.Consume(re, &var, &number);
CHECK_EQ(var, "alpha");
CHECK_EQ(number, 1);
+ CHECK_EQ(s.LineNumber(), 3);
s.GetNextComments(&comments);
CHECK_EQ(comments.size(), 1);
CHECK_EQ(comments[0].as_string(), " // this sets alpha\n");
diff --git a/ext/pcre/pcrelib/pcre_study.c b/ext/pcre/pcrelib/pcre_study.c
index 7c10c0491..d3ea04ff7 100644
--- a/ext/pcre/pcrelib/pcre_study.c
+++ b/ext/pcre/pcrelib/pcre_study.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -401,7 +401,7 @@ Returns: pointer to a pcre_extra block, with study_data filled in and the
NULL on error or if no optimization possible
*/
-EXPORT pcre_extra *
+PCRE_DATA_SCOPE pcre_extra *
pcre_study(const pcre *external_re, int options, const char **errorptr)
{
uschar start_bits[32];
diff --git a/ext/pcre/pcrelib/pcre_tables.c b/ext/pcre/pcrelib/pcre_tables.c
index 4f442eae0..480257cab 100644
--- a/ext/pcre/pcrelib/pcre_tables.c
+++ b/ext/pcre/pcrelib/pcre_tables.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -39,14 +39,16 @@ POSSIBILITY OF SUCH DAMAGE.
/* This module contains some fixed tables that are used by more than one of the
-PCRE code modules. */
+PCRE code modules. The tables are also #included by the pcretest program, which
+uses macros to change their names from _pcre_xxx to xxxx, thereby avoiding name
+clashes with the library. */
#include "pcre_internal.h"
/* Table of sizes for the fixed-length opcodes. It's defined in a macro so that
-the definition is next to the definition of the opcodes in internal.h. */
+the definition is next to the definition of the opcodes in pcre_internal.h. */
const uschar _pcre_OP_lengths[] = { OP_LENGTHS };
@@ -80,48 +82,110 @@ const uschar _pcre_utf8_table4[] = {
2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,
3,3,3,3,3,3,3,3,4,4,4,4,5,5,5,5 };
-/* This table translates Unicode property names into code values for the
-ucp_findchar() function. It is used by pcretest as well as by the library
-functions. */
+/* This table translates Unicode property names into type and code values. It
+is searched by binary chop, so must be in collating sequence of name. */
const ucp_type_table _pcre_utt[] = {
- { "C", 128 + ucp_C },
- { "Cc", ucp_Cc },
- { "Cf", ucp_Cf },
- { "Cn", ucp_Cn },
- { "Co", ucp_Co },
- { "Cs", ucp_Cs },
- { "L", 128 + ucp_L },
- { "Ll", ucp_Ll },
- { "Lm", ucp_Lm },
- { "Lo", ucp_Lo },
- { "Lt", ucp_Lt },
- { "Lu", ucp_Lu },
- { "M", 128 + ucp_M },
- { "Mc", ucp_Mc },
- { "Me", ucp_Me },
- { "Mn", ucp_Mn },
- { "N", 128 + ucp_N },
- { "Nd", ucp_Nd },
- { "Nl", ucp_Nl },
- { "No", ucp_No },
- { "P", 128 + ucp_P },
- { "Pc", ucp_Pc },
- { "Pd", ucp_Pd },
- { "Pe", ucp_Pe },
- { "Pf", ucp_Pf },
- { "Pi", ucp_Pi },
- { "Po", ucp_Po },
- { "Ps", ucp_Ps },
- { "S", 128 + ucp_S },
- { "Sc", ucp_Sc },
- { "Sk", ucp_Sk },
- { "Sm", ucp_Sm },
- { "So", ucp_So },
- { "Z", 128 + ucp_Z },
- { "Zl", ucp_Zl },
- { "Zp", ucp_Zp },
- { "Zs", ucp_Zs }
+ { "Any", PT_ANY, 0 },
+ { "Arabic", PT_SC, ucp_Arabic },
+ { "Armenian", PT_SC, ucp_Armenian },
+ { "Bengali", PT_SC, ucp_Bengali },
+ { "Bopomofo", PT_SC, ucp_Bopomofo },
+ { "Braille", PT_SC, ucp_Braille },
+ { "Buginese", PT_SC, ucp_Buginese },
+ { "Buhid", PT_SC, ucp_Buhid },
+ { "C", PT_GC, ucp_C },
+ { "Canadian_Aboriginal", PT_SC, ucp_Canadian_Aboriginal },
+ { "Cc", PT_PC, ucp_Cc },
+ { "Cf", PT_PC, ucp_Cf },
+ { "Cherokee", PT_SC, ucp_Cherokee },
+ { "Cn", PT_PC, ucp_Cn },
+ { "Co", PT_PC, ucp_Co },
+ { "Common", PT_SC, ucp_Common },
+ { "Coptic", PT_SC, ucp_Coptic },
+ { "Cs", PT_PC, ucp_Cs },
+ { "Cypriot", PT_SC, ucp_Cypriot },
+ { "Cyrillic", PT_SC, ucp_Cyrillic },
+ { "Deseret", PT_SC, ucp_Deseret },
+ { "Devanagari", PT_SC, ucp_Devanagari },
+ { "Ethiopic", PT_SC, ucp_Ethiopic },
+ { "Georgian", PT_SC, ucp_Georgian },
+ { "Glagolitic", PT_SC, ucp_Glagolitic },
+ { "Gothic", PT_SC, ucp_Gothic },
+ { "Greek", PT_SC, ucp_Greek },
+ { "Gujarati", PT_SC, ucp_Gujarati },
+ { "Gurmukhi", PT_SC, ucp_Gurmukhi },
+ { "Han", PT_SC, ucp_Han },
+ { "Hangul", PT_SC, ucp_Hangul },
+ { "Hanunoo", PT_SC, ucp_Hanunoo },
+ { "Hebrew", PT_SC, ucp_Hebrew },
+ { "Hiragana", PT_SC, ucp_Hiragana },
+ { "Inherited", PT_SC, ucp_Inherited },
+ { "Kannada", PT_SC, ucp_Kannada },
+ { "Katakana", PT_SC, ucp_Katakana },
+ { "Kharoshthi", PT_SC, ucp_Kharoshthi },
+ { "Khmer", PT_SC, ucp_Khmer },
+ { "L", PT_GC, ucp_L },
+ { "L&", PT_LAMP, 0 },
+ { "Lao", PT_SC, ucp_Lao },
+ { "Latin", PT_SC, ucp_Latin },
+ { "Limbu", PT_SC, ucp_Limbu },
+ { "Linear_B", PT_SC, ucp_Linear_B },
+ { "Ll", PT_PC, ucp_Ll },
+ { "Lm", PT_PC, ucp_Lm },
+ { "Lo", PT_PC, ucp_Lo },
+ { "Lt", PT_PC, ucp_Lt },
+ { "Lu", PT_PC, ucp_Lu },
+ { "M", PT_GC, ucp_M },
+ { "Malayalam", PT_SC, ucp_Malayalam },
+ { "Mc", PT_PC, ucp_Mc },
+ { "Me", PT_PC, ucp_Me },
+ { "Mn", PT_PC, ucp_Mn },
+ { "Mongolian", PT_SC, ucp_Mongolian },
+ { "Myanmar", PT_SC, ucp_Myanmar },
+ { "N", PT_GC, ucp_N },
+ { "Nd", PT_PC, ucp_Nd },
+ { "New_Tai_Lue", PT_SC, ucp_New_Tai_Lue },
+ { "Nl", PT_PC, ucp_Nl },
+ { "No", PT_PC, ucp_No },
+ { "Ogham", PT_SC, ucp_Ogham },
+ { "Old_Italic", PT_SC, ucp_Old_Italic },
+ { "Old_Persian", PT_SC, ucp_Old_Persian },
+ { "Oriya", PT_SC, ucp_Oriya },
+ { "Osmanya", PT_SC, ucp_Osmanya },
+ { "P", PT_GC, ucp_P },
+ { "Pc", PT_PC, ucp_Pc },
+ { "Pd", PT_PC, ucp_Pd },
+ { "Pe", PT_PC, ucp_Pe },
+ { "Pf", PT_PC, ucp_Pf },
+ { "Pi", PT_PC, ucp_Pi },
+ { "Po", PT_PC, ucp_Po },
+ { "Ps", PT_PC, ucp_Ps },
+ { "Runic", PT_SC, ucp_Runic },
+ { "S", PT_GC, ucp_S },
+ { "Sc", PT_PC, ucp_Sc },
+ { "Shavian", PT_SC, ucp_Shavian },
+ { "Sinhala", PT_SC, ucp_Sinhala },
+ { "Sk", PT_PC, ucp_Sk },
+ { "Sm", PT_PC, ucp_Sm },
+ { "So", PT_PC, ucp_So },
+ { "Syloti_Nagri", PT_SC, ucp_Syloti_Nagri },
+ { "Syriac", PT_SC, ucp_Syriac },
+ { "Tagalog", PT_SC, ucp_Tagalog },
+ { "Tagbanwa", PT_SC, ucp_Tagbanwa },
+ { "Tai_Le", PT_SC, ucp_Tai_Le },
+ { "Tamil", PT_SC, ucp_Tamil },
+ { "Telugu", PT_SC, ucp_Telugu },
+ { "Thaana", PT_SC, ucp_Thaana },
+ { "Thai", PT_SC, ucp_Thai },
+ { "Tibetan", PT_SC, ucp_Tibetan },
+ { "Tifinagh", PT_SC, ucp_Tifinagh },
+ { "Ugaritic", PT_SC, ucp_Ugaritic },
+ { "Yi", PT_SC, ucp_Yi },
+ { "Z", PT_GC, ucp_Z },
+ { "Zl", PT_PC, ucp_Zl },
+ { "Zp", PT_PC, ucp_Zp },
+ { "Zs", PT_PC, ucp_Zs }
};
const int _pcre_utt_size = sizeof(_pcre_utt)/sizeof(ucp_type_table);
diff --git a/ext/pcre/pcrelib/pcre_try_flipped.c b/ext/pcre/pcrelib/pcre_try_flipped.c
index a07bb23db..7174cb6e1 100644
--- a/ext/pcre/pcrelib/pcre_try_flipped.c
+++ b/ext/pcre/pcrelib/pcre_try_flipped.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -94,7 +94,7 @@ Returns: the new block if is is indeed a byte-flipped regex
NULL if it is not
*/
-EXPORT real_pcre *
+real_pcre *
_pcre_try_flipped(const real_pcre *re, real_pcre *internal_re,
const pcre_study_data *study, pcre_study_data *internal_study)
{
diff --git a/ext/pcre/pcrelib/pcre_ucp_findchar.c b/ext/pcre/pcrelib/pcre_ucp_findchar.c
deleted file mode 100644
index 9f8de0663..000000000
--- a/ext/pcre/pcrelib/pcre_ucp_findchar.c
+++ /dev/null
@@ -1,53 +0,0 @@
-/*************************************************
-* Perl-Compatible Regular Expressions *
-*************************************************/
-
-/* PCRE is a library of functions to support regular expressions whose syntax
-and semantics are as close as possible to those of the Perl 5 language.
-
- Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
-
------------------------------------------------------------------------------
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name of the University of Cambridge nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
-*/
-
-
-/* This module compiles code for supporting the use of Unicode character
-properties. We use the (embryonic at the time of writing) UCP library, by
-including some of its files, copies of which have been put in the PCRE
-distribution. There is a macro in pcre_internal.h that changes the name
-ucp_findchar into _pcre_ucp_findchar. */
-
-
-#include "pcre_internal.h"
-
-#include "ucp_findchar.c"
-
-
-/* End of pcre_ucp_findchar.c */
diff --git a/ext/pcre/pcrelib/pcre_ucp_searchfuncs.c b/ext/pcre/pcrelib/pcre_ucp_searchfuncs.c
new file mode 100644
index 000000000..ac964ca90
--- /dev/null
+++ b/ext/pcre/pcrelib/pcre_ucp_searchfuncs.c
@@ -0,0 +1,175 @@
+/*************************************************
+* Perl-Compatible Regular Expressions *
+*************************************************/
+
+/* PCRE is a library of functions to support regular expressions whose syntax
+and semantics are as close as possible to those of the Perl 5 language.
+
+ Written by Philip Hazel
+ Copyright (c) 1997-2006 University of Cambridge
+
+-----------------------------------------------------------------------------
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ * Redistributions of source code must retain the above copyright notice,
+ this list of conditions and the following disclaimer.
+
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
+
+ * Neither the name of the University of Cambridge nor the names of its
+ contributors may be used to endorse or promote products derived from
+ this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGE.
+-----------------------------------------------------------------------------
+*/
+
+
+/* This module contains code for searching the table of Unicode character
+properties. */
+
+#include "pcre_internal.h"
+
+#include "ucp.h" /* Category definitions */
+#include "ucpinternal.h" /* Internal table details */
+#include "ucptable.c" /* The table itself */
+
+
+/* Table to translate from particular type value to the general value. */
+
+static int ucp_gentype[] = {
+ ucp_C, ucp_C, ucp_C, ucp_C, ucp_C, /* Cc, Cf, Cn, Co, Cs */
+ ucp_L, ucp_L, ucp_L, ucp_L, ucp_L, /* Ll, Lu, Lm, Lo, Lt */
+ ucp_M, ucp_M, ucp_M, /* Mc, Me, Mn */
+ ucp_N, ucp_N, ucp_N, /* Nd, Nl, No */
+ ucp_P, ucp_P, ucp_P, ucp_P, ucp_P, /* Pc, Pd, Pe, Pf, Pi */
+ ucp_P, ucp_P, /* Ps, Po */
+ ucp_S, ucp_S, ucp_S, ucp_S, /* Sc, Sk, Sm, So */
+ ucp_Z, ucp_Z, ucp_Z /* Zl, Zp, Zs */
+};
+
+
+
+/*************************************************
+* Search table and return type *
+*************************************************/
+
+/* Three values are returned: the category is ucp_C, ucp_L, etc. The detailed
+character type is ucp_Lu, ucp_Nd, etc. The script is ucp_Latin, etc.
+
+Arguments:
+ c the character value
+ type_ptr the detailed character type is returned here
+ script_ptr the script is returned here
+
+Returns: the character type category
+*/
+
+int
+_pcre_ucp_findprop(const int c, int *type_ptr, int *script_ptr)
+{
+int bot = 0;
+int top = sizeof(ucp_table)/sizeof(cnode);
+int mid;
+
+/* The table is searched using a binary chop. You might think that using
+intermediate variables to hold some of the common expressions would speed
+things up, but tests with gcc 3.4.4 on Linux showed that, on the contrary, it
+makes things a lot slower. */
+
+for (;;)
+ {
+ if (top <= bot)
+ {
+ *type_ptr = ucp_Cn;
+ *script_ptr = ucp_Common;
+ return ucp_C;
+ }
+ mid = (bot + top) >> 1;
+ if (c == (ucp_table[mid].f0 & f0_charmask)) break;
+ if (c < (ucp_table[mid].f0 & f0_charmask)) top = mid;
+ else
+ {
+ if ((ucp_table[mid].f0 & f0_rangeflag) != 0 &&
+ c <= (ucp_table[mid].f0 & f0_charmask) +
+ (ucp_table[mid].f1 & f1_rangemask)) break;
+ bot = mid + 1;
+ }
+ }
+
+/* Found an entry in the table. Set the script and detailed type values, and
+return the general type. */
+
+*script_ptr = (ucp_table[mid].f0 & f0_scriptmask) >> f0_scriptshift;
+*type_ptr = (ucp_table[mid].f1 & f1_typemask) >> f1_typeshift;
+
+return ucp_gentype[*type_ptr];
+}
+
+
+
+/*************************************************
+* Search table and return other case *
+*************************************************/
+
+/* If the given character is a letter, and there is another case for the
+letter, return the other case. Otherwise, return -1.
+
+Arguments:
+ c the character value
+
+Returns: the other case or -1 if none
+*/
+
+int
+_pcre_ucp_othercase(const int c)
+{
+int bot = 0;
+int top = sizeof(ucp_table)/sizeof(cnode);
+int mid, offset;
+
+/* The table is searched using a binary chop. You might think that using
+intermediate variables to hold some of the common expressions would speed
+things up, but tests with gcc 3.4.4 on Linux showed that, on the contrary, it
+makes things a lot slower. */
+
+for (;;)
+ {
+ if (top <= bot) return -1;
+ mid = (bot + top) >> 1;
+ if (c == (ucp_table[mid].f0 & f0_charmask)) break;
+ if (c < (ucp_table[mid].f0 & f0_charmask)) top = mid;
+ else
+ {
+ if ((ucp_table[mid].f0 & f0_rangeflag) != 0 &&
+ c <= (ucp_table[mid].f0 & f0_charmask) +
+ (ucp_table[mid].f1 & f1_rangemask)) break;
+ bot = mid + 1;
+ }
+ }
+
+/* Found an entry in the table. Return -1 for a range entry. Otherwise return
+the other case if there is one, else -1. */
+
+if ((ucp_table[mid].f0 & f0_rangeflag) != 0) return -1;
+
+offset = ucp_table[mid].f1 & f1_casemask;
+if ((offset & f1_caseneg) != 0) offset |= f1_caseneg;
+return (offset == 0)? -1 : c + offset;
+}
+
+
+/* End of pcre_ucp_searchfuncs.c */
diff --git a/ext/pcre/pcrelib/pcre_valid_utf8.c b/ext/pcre/pcrelib/pcre_valid_utf8.c
index 72f0f5e6e..1c6094a0c 100644
--- a/ext/pcre/pcrelib/pcre_valid_utf8.c
+++ b/ext/pcre/pcrelib/pcre_valid_utf8.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -63,7 +63,7 @@ Returns: < 0 if the string is a valid UTF-8 string
>= 0 otherwise; the value is the offset of the bad byte
*/
-EXPORT int
+int
_pcre_valid_utf8(const uschar *string, int length)
{
register const uschar *p;
diff --git a/ext/pcre/pcrelib/pcre_version.c b/ext/pcre/pcrelib/pcre_version.c
index d296eea80..c2aad4da0 100644
--- a/ext/pcre/pcrelib/pcre_version.c
+++ b/ext/pcre/pcrelib/pcre_version.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -52,10 +52,13 @@ string that identifies the PCRE version that is in use. */
#define STRING(a) # a
#define XSTRING(s) STRING(s)
-EXPORT const char *
+PCRE_DATA_SCOPE const char *
pcre_version(void)
{
-return XSTRING(PCRE_MAJOR) "." XSTRING(PCRE_MINOR) " " XSTRING(PCRE_DATE);
+return XSTRING(PCRE_MAJOR)
+ "." XSTRING(PCRE_MINOR)
+ XSTRING(PCRE_PRERELEASE)
+ " " XSTRING(PCRE_DATE);
}
/* End of pcre_version.c */
diff --git a/ext/pcre/pcrelib/pcre_xclass.c b/ext/pcre/pcrelib/pcre_xclass.c
index 40d2654da..57c514b78 100644
--- a/ext/pcre/pcrelib/pcre_xclass.c
+++ b/ext/pcre/pcrelib/pcre_xclass.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -60,7 +60,7 @@ Arguments:
Returns: TRUE if character matches, else FALSE
*/
-EXPORT BOOL
+BOOL
_pcre_xclass(int c, const uschar *data)
{
int t;
@@ -100,17 +100,40 @@ while ((t = *data++) != XCL_END)
#ifdef SUPPORT_UCP
else /* XCL_PROP & XCL_NOTPROP */
{
- int chartype, othercase;
- int rqdtype = *data++;
- int category = ucp_findchar(c, &chartype, &othercase);
- if (rqdtype >= 128)
- {
- if ((rqdtype - 128 == category) == (t == XCL_PROP)) return !negated;
- }
- else
+ int chartype, script;
+ int category = _pcre_ucp_findprop(c, &chartype, &script);
+
+ switch(*data)
{
- if ((rqdtype == chartype) == (t == XCL_PROP)) return !negated;
+ case PT_ANY:
+ if (t == XCL_PROP) return !negated;
+ break;
+
+ case PT_LAMP:
+ if ((chartype == ucp_Lu || chartype == ucp_Ll || chartype == ucp_Lt) ==
+ (t == XCL_PROP)) return !negated;
+ break;
+
+ case PT_GC:
+ if ((data[1] == category) == (t == XCL_PROP)) return !negated;
+ break;
+
+ case PT_PC:
+ if ((data[1] == chartype) == (t == XCL_PROP)) return !negated;
+ break;
+
+ case PT_SC:
+ if ((data[1] == script) == (t == XCL_PROP)) return !negated;
+ break;
+
+ /* This should never occur, but compilers may mutter if there is no
+ default. */
+
+ default:
+ return FALSE;
}
+
+ data += 2;
}
#endif /* SUPPORT_UCP */
}
diff --git a/ext/pcre/pcrelib/pcrecpp.cc b/ext/pcre/pcrelib/pcrecpp.cc
index 0ffd221d2..70d59a272 100644
--- a/ext/pcre/pcrelib/pcrecpp.cc
+++ b/ext/pcre/pcrelib/pcrecpp.cc
@@ -397,12 +397,16 @@ int RE::TryMatch(const StringPiece& text,
pcre_extra extra = { 0 };
if (options_.match_limit() > 0) {
- extra.flags = PCRE_EXTRA_MATCH_LIMIT;
+ extra.flags |= PCRE_EXTRA_MATCH_LIMIT;
extra.match_limit = options_.match_limit();
}
+ if (options_.match_limit_recursion() > 0) {
+ extra.flags |= PCRE_EXTRA_MATCH_LIMIT_RECURSION;
+ extra.match_limit_recursion = options_.match_limit_recursion();
+ }
int rc = pcre_exec(re, // The regular expression object
&extra,
- text.data(),
+ (text.data() == NULL) ? "" : text.data(),
text.size(),
startpos,
(anchor == UNANCHORED) ? 0 : PCRE_ANCHORED,
@@ -449,11 +453,16 @@ bool RE::DoMatchImpl(const StringPiece& text,
*consumed = vec[1];
- if (args == NULL) {
+ if (n == 0 || args == NULL) {
// We are not interested in results
return true;
}
+ if (NumberOfCapturingGroups() < n) {
+ // RE has fewer capturing groups than number of arg pointers passed in
+ return false;
+ }
+
// If we got here, we must have matched the whole pattern.
// We do not need (can not do) any more checks on the value of 'matches' here
// -- see the comment for TryMatch.
@@ -517,7 +526,7 @@ bool RE::Rewrite(string *out, const StringPiece &rewrite,
// Return the number of capturing subpatterns, or -1 if the
// regexp wasn't valid on construction.
-int RE::NumberOfCapturingGroups() {
+int RE::NumberOfCapturingGroups() const {
if (re_partial_ == NULL) return -1;
int result;
@@ -613,6 +622,7 @@ bool Arg::parse_ulong_radix(const char* str,
if (n == 0) return false;
char buf[kMaxNumberLength+1];
str = TerminateNumber(buf, str, n);
+ if (str[0] == '-') return false; // strtoul() on a negative number?!
char* end;
errno = 0;
unsigned long r = strtoul(str, &end, radix);
@@ -702,6 +712,7 @@ bool Arg::parse_ulonglong_radix(const char* str,
if (n == 0) return false;
char buf[kMaxNumberLength+1];
str = TerminateNumber(buf, str, n);
+ if (str[0] == '-') return false; // strtoull() on a negative number?!
char* end;
errno = 0;
#if defined HAVE_STRTOQ
diff --git a/ext/pcre/pcrelib/pcrecpp.h b/ext/pcre/pcrelib/pcrecpp.h
index ef9d9b2b5..5916d8643 100644
--- a/ext/pcre/pcrelib/pcrecpp.h
+++ b/ext/pcre/pcrelib/pcrecpp.h
@@ -30,8 +30,8 @@
// Author: Sanjay Ghemawat
// Support for PCRE_XXX modifiers added by Giuseppe Maxia, July 2005
-#ifndef _PCRE_REGEXP_H
-#define _PCRE_REGEXP_H
+#ifndef _PCRECPP_H
+#define _PCRECPP_H
// C++ interface to the pcre regular-expression library. RE supports
// Perl-style regular expressions (with extensions like \d, \w, \s,
@@ -196,13 +196,16 @@
// RE_Options & set_caseless(bool),
// which sets or unsets the modifier.
//
-// Moreover, PCRE_CONFIG_MATCH_LIMIT can be accessed through the
+// Moreover, PCRE_EXTRA_MATCH_LIMIT can be accessed through the
// set_match_limit() and match_limit() member functions.
// Setting match_limit to a non-zero value will limit the executation of
// pcre to keep it from doing bad things like blowing the stack or taking
// an eternity to return a result. A value of 5000 is good enough to stop
// stack blowup in a 2MB thread stack. Setting match_limit to zero will
-// disable match limiting.
+// disable match limiting. Alternately, you can set match_limit_recursion()
+// which uses PCRE_EXTRA_MATCH_LIMIT_RECURSION to limit how much pcre
+// recurses. match_limit() caps the number of matches pcre does;
+// match_limit_recrusion() caps the depth of recursion.
//
// Normally, to pass one or more modifiers to a RE class, you declare
// a RE_Options object, set the appropriate options, and pass this
@@ -322,6 +325,7 @@
#include <string>
+#include <pcrecpparg.h> // defines the Arg class
// These aren't technically needed here, but we include them
// anyway so folks who include pcrecpp.h don't have to include
// all these other header files as well.
@@ -338,18 +342,18 @@ namespace pcrecpp {
(all_options_ & o) == o
// We convert user-passed pointers into special Arg objects
-class Arg;
extern Arg no_arg;
/***** Compiling regular expressions: the RE class *****/
// RE_Options allow you to set options to be passed along to pcre,
// along with other options we put on top of pcre.
-// Only 9 modifiers, plus match_limit are supported now.
+// Only 9 modifiers, plus match_limit and match_limit_recursion,
+// are supported now.
class RE_Options {
public:
// constructor
- RE_Options() : match_limit_(0), all_options_(0) {}
+ RE_Options() : match_limit_(0), match_limit_recursion_(0), all_options_(0) {}
// alternative constructor.
// To facilitate transfer of legacy code from C programs
@@ -359,7 +363,8 @@ class RE_Options {
// But new code is better off doing
// RE(pattern,
// RE_Options().set_caseless(true).set_multiline(true)).PartialMatch(str);
- RE_Options(int option_flags) : match_limit_(0), all_options_ (option_flags) {}
+ RE_Options(int option_flags) : match_limit_(0), match_limit_recursion_(0),
+ all_options_(option_flags) {}
// we're fine with the default destructor, copy constructor, etc.
// accessors and mutators
@@ -369,6 +374,12 @@ class RE_Options {
return *this;
}
+ int match_limit_recursion() const { return match_limit_recursion_; };
+ RE_Options &set_match_limit_recursion(int limit) {
+ match_limit_recursion_ = limit;
+ return *this;
+ }
+
bool caseless() const {
return PCRE_IS_SET(PCRE_CASELESS);
}
@@ -444,6 +455,7 @@ class RE_Options {
private:
int match_limit_;
+ int match_limit_recursion_;
int all_options_;
};
@@ -595,7 +607,7 @@ class RE {
// Return the number of capturing subpatterns, or -1 if the
// regexp wasn't valid on construction.
- int NumberOfCapturingGroups();
+ int NumberOfCapturingGroups() const;
private:
@@ -643,7 +655,6 @@ class RE {
pcre* re_full_; // For full matches
pcre* re_partial_; // For partial matches
const string* error_; // Error indicator (or points to empty string)
- int match_limit_; // limit on execution resources
// Don't allow the default copy or assignment constructors --
// they're expensive and too easy to do by accident.
@@ -651,136 +662,6 @@ class RE {
void operator=(const RE&);
};
-
-/***** Implementation details *****/
-
-// Hex/Octal/Binary?
-
-// Special class for parsing into objects that define a ParseFrom() method
-template <class T>
-class _RE_MatchObject {
- public:
- static inline bool Parse(const char* str, int n, void* dest) {
- T* object = reinterpret_cast<T*>(dest);
- return object->ParseFrom(str, n);
- }
-};
-
-class Arg {
- public:
- // Empty constructor so we can declare arrays of Arg
- Arg();
-
- // Constructor specially designed for NULL arguments
- Arg(void*);
-
- typedef bool (*Parser)(const char* str, int n, void* dest);
-
-// Type-specific parsers
-#define PCRE_MAKE_PARSER(type,name) \
- Arg(type* p) : arg_(p), parser_(name) { } \
- Arg(type* p, Parser parser) : arg_(p), parser_(parser) { }
-
-
- PCRE_MAKE_PARSER(char, parse_char);
- PCRE_MAKE_PARSER(unsigned char, parse_uchar);
- PCRE_MAKE_PARSER(short, parse_short);
- PCRE_MAKE_PARSER(unsigned short, parse_ushort);
- PCRE_MAKE_PARSER(int, parse_int);
- PCRE_MAKE_PARSER(unsigned int, parse_uint);
- PCRE_MAKE_PARSER(long, parse_long);
- PCRE_MAKE_PARSER(unsigned long, parse_ulong);
-#if 1
- PCRE_MAKE_PARSER(long long, parse_longlong);
-#endif
-#if 1
- PCRE_MAKE_PARSER(unsigned long long, parse_ulonglong);
-#endif
- PCRE_MAKE_PARSER(float, parse_float);
- PCRE_MAKE_PARSER(double, parse_double);
- PCRE_MAKE_PARSER(string, parse_string);
- PCRE_MAKE_PARSER(StringPiece, parse_stringpiece);
-
-#undef PCRE_MAKE_PARSER
-
- // Generic constructor
- template <class T> Arg(T*, Parser parser);
- // Generic constructor template
- template <class T> Arg(T* p)
- : arg_(p), parser_(_RE_MatchObject<T>::Parse) {
- }
-
- // Parse the data
- bool Parse(const char* str, int n) const;
-
- private:
- void* arg_;
- Parser parser_;
-
- static bool parse_null (const char* str, int n, void* dest);
- static bool parse_char (const char* str, int n, void* dest);
- static bool parse_uchar (const char* str, int n, void* dest);
- static bool parse_float (const char* str, int n, void* dest);
- static bool parse_double (const char* str, int n, void* dest);
- static bool parse_string (const char* str, int n, void* dest);
- static bool parse_stringpiece (const char* str, int n, void* dest);
-
-#define PCRE_DECLARE_INTEGER_PARSER(name) \
- private: \
- static bool parse_ ## name(const char* str, int n, void* dest); \
- static bool parse_ ## name ## _radix( \
- const char* str, int n, void* dest, int radix); \
- public: \
- static bool parse_ ## name ## _hex(const char* str, int n, void* dest); \
- static bool parse_ ## name ## _octal(const char* str, int n, void* dest); \
- static bool parse_ ## name ## _cradix(const char* str, int n, void* dest)
-
- PCRE_DECLARE_INTEGER_PARSER(short);
- PCRE_DECLARE_INTEGER_PARSER(ushort);
- PCRE_DECLARE_INTEGER_PARSER(int);
- PCRE_DECLARE_INTEGER_PARSER(uint);
- PCRE_DECLARE_INTEGER_PARSER(long);
- PCRE_DECLARE_INTEGER_PARSER(ulong);
- PCRE_DECLARE_INTEGER_PARSER(longlong);
- PCRE_DECLARE_INTEGER_PARSER(ulonglong);
-
-#undef PCRE_DECLARE_INTEGER_PARSER
-};
-
-inline Arg::Arg() : arg_(NULL), parser_(parse_null) { }
-inline Arg::Arg(void* p) : arg_(p), parser_(parse_null) { }
-
-inline bool Arg::Parse(const char* str, int n) const {
- return (*parser_)(str, n, arg_);
-}
-
-// This part of the parser, appropriate only for ints, deals with bases
-#define MAKE_INTEGER_PARSER(type, name) \
- inline Arg Hex(type* ptr) { \
- return Arg(ptr, Arg::parse_ ## name ## _hex); } \
- inline Arg Octal(type* ptr) { \
- return Arg(ptr, Arg::parse_ ## name ## _octal); } \
- inline Arg CRadix(type* ptr) { \
- return Arg(ptr, Arg::parse_ ## name ## _cradix); }
-
-MAKE_INTEGER_PARSER(short, short);
-MAKE_INTEGER_PARSER(unsigned short, ushort);
-MAKE_INTEGER_PARSER(int, int);
-MAKE_INTEGER_PARSER(unsigned int, uint);
-MAKE_INTEGER_PARSER(long, long);
-MAKE_INTEGER_PARSER(unsigned long, ulong);
-#if 1
-MAKE_INTEGER_PARSER(long long, longlong);
-#endif
-#if 1
-MAKE_INTEGER_PARSER(unsigned long long, ulonglong);
-#endif
-
-#undef PCRE_IS_SET
-#undef PCRE_SET_OR_CLEAR
-#undef MAKE_INTEGER_PARSER
-
} // namespace pcrecpp
-
-#endif /* _PCRE_REGEXP_H */
+#endif /* _PCRECPP_H */
diff --git a/ext/pcre/pcrelib/pcrecpp_unittest.cc b/ext/pcre/pcrelib/pcrecpp_unittest.cc
index 6a03744a7..ba808bc4f 100644
--- a/ext/pcre/pcrelib/pcrecpp_unittest.cc
+++ b/ext/pcre/pcrelib/pcrecpp_unittest.cc
@@ -348,21 +348,46 @@ static void TestMatchNumberPeculiarity() {
CHECK_EQ(a, "");
}
-static void TestRecursion(int size, const char *pattern, int match_limit) {
+static void TestRecursion() {
printf("Testing recursion\n");
- // Fill up a string repeating the pattern given
- string domain;
- domain.resize(size);
- int patlen = strlen(pattern);
- for (int i = 0; i < size; ++i) {
- domain[i] = pattern[i % patlen];
- }
- // Just make sure it doesn't crash due to too much recursion.
- RE_Options options;
- options.set_match_limit(match_limit);
- RE re("([a-zA-Z0-9]|-)+(\\.([a-zA-Z0-9]|-)+)*(\\.)?", options);
- re.FullMatch(domain);
+ // Get one string that passes (sometimes), one that never does.
+ string text_good("abcdefghijk");
+ string text_bad("acdefghijkl");
+
+ // According to pcretest, matching text_good against (\w+)*b
+ // requires match_limit of at least 8192, and match_recursion_limit
+ // of at least 37.
+
+ RE_Options options_ml;
+ options_ml.set_match_limit(8192);
+ RE re("(\\w+)*b", options_ml);
+ CHECK(re.PartialMatch(text_good) == true);
+ CHECK(re.PartialMatch(text_bad) == false);
+ CHECK(re.FullMatch(text_good) == false);
+ CHECK(re.FullMatch(text_bad) == false);
+
+ options_ml.set_match_limit(1024);
+ RE re2("(\\w+)*b", options_ml);
+ CHECK(re2.PartialMatch(text_good) == false); // because of match_limit
+ CHECK(re2.PartialMatch(text_bad) == false);
+ CHECK(re2.FullMatch(text_good) == false);
+ CHECK(re2.FullMatch(text_bad) == false);
+
+ RE_Options options_mlr;
+ options_mlr.set_match_limit_recursion(50);
+ RE re3("(\\w+)*b", options_mlr);
+ CHECK(re3.PartialMatch(text_good) == true);
+ CHECK(re3.PartialMatch(text_bad) == false);
+ CHECK(re3.FullMatch(text_good) == false);
+ CHECK(re3.FullMatch(text_bad) == false);
+
+ options_mlr.set_match_limit_recursion(10);
+ RE re4("(\\w+)*b", options_mlr);
+ CHECK(re4.PartialMatch(text_good) == false);
+ CHECK(re4.PartialMatch(text_bad) == false);
+ CHECK(re4.FullMatch(text_good) == false);
+ CHECK(re4.FullMatch(text_bad) == false);
}
//
@@ -1021,14 +1046,8 @@ int main(int argc, char** argv) {
CHECK(!re.error().empty());
}
- // Test that recursion is stopped: there will be some errors reported
- int matchlimit = 5000;
- int bytes = 15 * 1024; // enough to crash if there was no match limit
- TestRecursion(bytes, ".", matchlimit);
- TestRecursion(bytes, "a", matchlimit);
- TestRecursion(bytes, "a.", matchlimit);
- TestRecursion(bytes, "ab.", matchlimit);
- TestRecursion(bytes, "abc.", matchlimit);
+ // Test that recursion is stopped
+ TestRecursion();
// Test Options
if (getenv("VERBOSE_TEST") != NULL)
diff --git a/ext/pcre/pcrelib/pcrecpparg.h b/ext/pcre/pcrelib/pcrecpparg.h
new file mode 100644
index 000000000..323dde58e
--- /dev/null
+++ b/ext/pcre/pcrelib/pcrecpparg.h
@@ -0,0 +1,171 @@
+// Copyright (c) 2005, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+//
+// Author: Sanjay Ghemawat
+
+#ifndef _PCRECPPARG_H
+#define _PCRECPPARG_H
+
+#include <stdlib.h> // for NULL
+#include <string>
+
+namespace pcrecpp {
+
+class StringPiece;
+
+// Hex/Octal/Binary?
+
+// Special class for parsing into objects that define a ParseFrom() method
+template <class T>
+class _RE_MatchObject {
+ public:
+ static inline bool Parse(const char* str, int n, void* dest) {
+ T* object = reinterpret_cast<T*>(dest);
+ return object->ParseFrom(str, n);
+ }
+};
+
+class Arg {
+ public:
+ // Empty constructor so we can declare arrays of Arg
+ Arg();
+
+ // Constructor specially designed for NULL arguments
+ Arg(void*);
+
+ typedef bool (*Parser)(const char* str, int n, void* dest);
+
+// Type-specific parsers
+#define PCRE_MAKE_PARSER(type,name) \
+ Arg(type* p) : arg_(p), parser_(name) { } \
+ Arg(type* p, Parser parser) : arg_(p), parser_(parser) { }
+
+
+ PCRE_MAKE_PARSER(char, parse_char);
+ PCRE_MAKE_PARSER(unsigned char, parse_uchar);
+ PCRE_MAKE_PARSER(short, parse_short);
+ PCRE_MAKE_PARSER(unsigned short, parse_ushort);
+ PCRE_MAKE_PARSER(int, parse_int);
+ PCRE_MAKE_PARSER(unsigned int, parse_uint);
+ PCRE_MAKE_PARSER(long, parse_long);
+ PCRE_MAKE_PARSER(unsigned long, parse_ulong);
+#if 1
+ PCRE_MAKE_PARSER(long long, parse_longlong);
+#endif
+#if 1
+ PCRE_MAKE_PARSER(unsigned long long, parse_ulonglong);
+#endif
+ PCRE_MAKE_PARSER(float, parse_float);
+ PCRE_MAKE_PARSER(double, parse_double);
+ PCRE_MAKE_PARSER(std::string, parse_string);
+ PCRE_MAKE_PARSER(StringPiece, parse_stringpiece);
+
+#undef PCRE_MAKE_PARSER
+
+ // Generic constructor
+ template <class T> Arg(T*, Parser parser);
+ // Generic constructor template
+ template <class T> Arg(T* p)
+ : arg_(p), parser_(_RE_MatchObject<T>::Parse) {
+ }
+
+ // Parse the data
+ bool Parse(const char* str, int n) const;
+
+ private:
+ void* arg_;
+ Parser parser_;
+
+ static bool parse_null (const char* str, int n, void* dest);
+ static bool parse_char (const char* str, int n, void* dest);
+ static bool parse_uchar (const char* str, int n, void* dest);
+ static bool parse_float (const char* str, int n, void* dest);
+ static bool parse_double (const char* str, int n, void* dest);
+ static bool parse_string (const char* str, int n, void* dest);
+ static bool parse_stringpiece (const char* str, int n, void* dest);
+
+#define PCRE_DECLARE_INTEGER_PARSER(name) \
+ private: \
+ static bool parse_ ## name(const char* str, int n, void* dest); \
+ static bool parse_ ## name ## _radix( \
+ const char* str, int n, void* dest, int radix); \
+ public: \
+ static bool parse_ ## name ## _hex(const char* str, int n, void* dest); \
+ static bool parse_ ## name ## _octal(const char* str, int n, void* dest); \
+ static bool parse_ ## name ## _cradix(const char* str, int n, void* dest)
+
+ PCRE_DECLARE_INTEGER_PARSER(short);
+ PCRE_DECLARE_INTEGER_PARSER(ushort);
+ PCRE_DECLARE_INTEGER_PARSER(int);
+ PCRE_DECLARE_INTEGER_PARSER(uint);
+ PCRE_DECLARE_INTEGER_PARSER(long);
+ PCRE_DECLARE_INTEGER_PARSER(ulong);
+ PCRE_DECLARE_INTEGER_PARSER(longlong);
+ PCRE_DECLARE_INTEGER_PARSER(ulonglong);
+
+#undef PCRE_DECLARE_INTEGER_PARSER
+};
+
+inline Arg::Arg() : arg_(NULL), parser_(parse_null) { }
+inline Arg::Arg(void* p) : arg_(p), parser_(parse_null) { }
+
+inline bool Arg::Parse(const char* str, int n) const {
+ return (*parser_)(str, n, arg_);
+}
+
+// This part of the parser, appropriate only for ints, deals with bases
+#define MAKE_INTEGER_PARSER(type, name) \
+ inline Arg Hex(type* ptr) { \
+ return Arg(ptr, Arg::parse_ ## name ## _hex); } \
+ inline Arg Octal(type* ptr) { \
+ return Arg(ptr, Arg::parse_ ## name ## _octal); } \
+ inline Arg CRadix(type* ptr) { \
+ return Arg(ptr, Arg::parse_ ## name ## _cradix); }
+
+MAKE_INTEGER_PARSER(short, short);
+MAKE_INTEGER_PARSER(unsigned short, ushort);
+MAKE_INTEGER_PARSER(int, int);
+MAKE_INTEGER_PARSER(unsigned int, uint);
+MAKE_INTEGER_PARSER(long, long);
+MAKE_INTEGER_PARSER(unsigned long, ulong);
+#if 1
+MAKE_INTEGER_PARSER(long long, longlong);
+#endif
+#if 1
+MAKE_INTEGER_PARSER(unsigned long long, ulonglong);
+#endif
+
+#undef PCRE_IS_SET
+#undef PCRE_SET_OR_CLEAR
+#undef MAKE_INTEGER_PARSER
+
+} // namespace pcrecpp
+
+
+#endif /* _PCRECPPARG_H */
diff --git a/ext/pcre/pcrelib/pcregrep.c b/ext/pcre/pcrelib/pcregrep.c
index f6e518055..1533c8366 100644
--- a/ext/pcre/pcrelib/pcregrep.c
+++ b/ext/pcre/pcrelib/pcregrep.c
@@ -6,7 +6,7 @@
its pattern matching. On a Unix or Win32 system it can recurse into
directories.
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -38,6 +38,7 @@ POSSIBILITY OF SUCH DAMAGE.
*/
#include <ctype.h>
+#include <locale.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
@@ -55,7 +56,7 @@ POSSIBILITY OF SUCH DAMAGE.
typedef int BOOL;
-#define VERSION "4.0 07-Jun-2005"
+#define VERSION "4.2 09-Jan-2006"
#define MAX_PATTERN_COUNT 100
#if BUFSIZ > 8192
@@ -65,13 +66,50 @@ typedef int BOOL;
#endif
+/* Values for the "filenames" variable, which specifies options for file name
+output. The order is important; it is assumed that a file name is wanted for
+all values greater than FN_DEFAULT. */
+
+enum { FN_NONE, FN_DEFAULT, FN_ONLY, FN_NOMATCH_ONLY, FN_FORCE };
+
+/* Actions for the -d and -D options */
+
+enum { dee_READ, dee_SKIP, dee_RECURSE };
+enum { DEE_READ, DEE_SKIP };
+
+/* Actions for special processing options (flag bits) */
+
+#define PO_WORD_MATCH 0x0001
+#define PO_LINE_MATCH 0x0002
+#define PO_FIXED_STRINGS 0x0004
+
+
/*************************************************
* Global variables *
*************************************************/
+/* Jeffrey Friedl has some debugging requirements that are not part of the
+regular code. */
+
+#ifdef JFRIEDL_DEBUG
+static int S_arg = -1;
+static unsigned int jfriedl_XR = 0; /* repeat regex attempt this many times */
+static unsigned int jfriedl_XT = 0; /* replicate text this many times */
+static const char *jfriedl_prefix = "";
+static const char *jfriedl_postfix = "";
+#endif
+
+static char *colour_string = (char *)"1;31";
+static char *colour_option = NULL;
+static char *dee_option = NULL;
+static char *DEE_option = NULL;
static char *pattern_filename = NULL;
static char *stdin_name = (char *)"(standard input)";
+static char *locale = NULL;
+
+static const unsigned char *pcretables = NULL;
+
static int pattern_count = 0;
static pcre **pattern_list;
static pcre_extra **hints_list;
@@ -85,24 +123,26 @@ static pcre *exclude_compiled = NULL;
static int after_context = 0;
static int before_context = 0;
static int both_context = 0;
+static int dee_action = dee_READ;
+static int DEE_action = DEE_READ;
+static int error_count = 0;
+static int filenames = FN_DEFAULT;
+static int process_options = 0;
static BOOL count_only = FALSE;
-static BOOL filenames = TRUE;
-static BOOL filenames_only = FALSE;
-static BOOL filenames_nomatch_only = FALSE;
+static BOOL do_colour = FALSE;
static BOOL hyphenpending = FALSE;
static BOOL invert = FALSE;
static BOOL multiline = FALSE;
static BOOL number = FALSE;
+static BOOL only_matching = FALSE;
static BOOL quiet = FALSE;
-static BOOL recurse = FALSE;
static BOOL silent = FALSE;
-static BOOL whole_lines = FALSE;
-static BOOL word_match = FALSE;
/* Structure for options and list of them */
-enum { OP_NODATA, OP_STRING, OP_NUMBER };
+enum { OP_NODATA, OP_STRING, OP_OP_STRING, OP_NUMBER, OP_OP_NUMBER,
+ OP_PATLIST };
typedef struct option_item {
int type;
@@ -112,42 +152,76 @@ typedef struct option_item {
const char *help_text;
} option_item;
+/* Options without a single-letter equivalent get a negative value. This can be
+used to identify them. */
+
+#define N_COLOUR (-1)
+#define N_EXCLUDE (-2)
+#define N_HELP (-3)
+#define N_INCLUDE (-4)
+#define N_LABEL (-5)
+#define N_LOCALE (-6)
+#define N_NULL (-7)
+
static option_item optionlist[] = {
- { OP_NODATA, -1, NULL, "", " terminate options" },
- { OP_NODATA, -1, NULL, "help", "display this help and exit" },
- { OP_NUMBER, 'A', &after_context, "after-context=number", "set number of following context lines" },
- { OP_NUMBER, 'B', &before_context, "before-context=number", "set number of prior context lines" },
- { OP_NUMBER, 'C', &both_context, "context=number", "set number of context lines, before & after" },
- { OP_NODATA, 'c', NULL, "count", "print only a count of matching lines per FILE" },
- { OP_STRING, 'f', &pattern_filename, "file=path", "read patterns from file" },
- { OP_NODATA, 'h', NULL, "no-filename", "suppress the prefixing filename on output" },
- { OP_NODATA, 'i', NULL, "ignore-case", "ignore case distinctions" },
- { OP_NODATA, 'l', NULL, "files-with-matches", "print only FILE names containing matches" },
- { OP_NODATA, 'L', NULL, "files-without-match","print only FILE names not containing matches" },
- { OP_STRING, -1, &stdin_name, "label=name", "set name for standard input" },
- { OP_NODATA, 'M', NULL, "multiline", "run in multiline mode" },
- { OP_NODATA, 'n', NULL, "line-number", "print line number with output lines" },
- { OP_NODATA, 'q', NULL, "quiet", "suppress output, just set return code" },
- { OP_NODATA, 'r', NULL, "recursive", "recursively scan sub-directories" },
- { OP_STRING, -1, &exclude_pattern, "exclude=pattern","exclude matching files when recursing" },
- { OP_STRING, -1, &include_pattern, "include=pattern","include matching files when recursing" },
- { OP_NODATA, 's', NULL, "no-messages", "suppress error messages" },
- { OP_NODATA, 'u', NULL, "utf-8", "use UTF-8 mode" },
- { OP_NODATA, 'V', NULL, "version", "print version information and exit" },
- { OP_NODATA, 'v', NULL, "invert-match", "select non-matching lines" },
- { OP_NODATA, 'w', NULL, "word-regex(p)", "force PATTERN to match only as a word" },
- { OP_NODATA, 'x', NULL, "line-regex(p)", "force PATTERN to match only whole lines" },
- { OP_NODATA, 0, NULL, NULL, NULL }
+ { OP_NODATA, N_NULL, NULL, "", " terminate options" },
+ { OP_NODATA, N_HELP, NULL, "help", "display this help and exit" },
+ { OP_NUMBER, 'A', &after_context, "after-context=number", "set number of following context lines" },
+ { OP_NUMBER, 'B', &before_context, "before-context=number", "set number of prior context lines" },
+ { OP_OP_STRING, N_COLOUR, &colour_option, "color=option", "matched text color option" },
+ { OP_NUMBER, 'C', &both_context, "context=number", "set number of context lines, before & after" },
+ { OP_NODATA, 'c', NULL, "count", "print only a count of matching lines per FILE" },
+ { OP_OP_STRING, N_COLOUR, &colour_option, "colour=option", "matched text colour option" },
+ { OP_STRING, 'D', &DEE_option, "devices=action","how to handle devices, FIFOs, and sockets" },
+ { OP_STRING, 'd', &dee_option, "directories=action", "how to handle directories" },
+ { OP_PATLIST, 'e', NULL, "regex(p)", "specify pattern (may be used more than once)" },
+ { OP_NODATA, 'F', NULL, "fixed_strings", "patterns are sets of newline-separated strings" },
+ { OP_STRING, 'f', &pattern_filename, "file=path", "read patterns from file" },
+ { OP_NODATA, 'H', NULL, "with-filename", "force the prefixing filename on output" },
+ { OP_NODATA, 'h', NULL, "no-filename", "suppress the prefixing filename on output" },
+ { OP_NODATA, 'i', NULL, "ignore-case", "ignore case distinctions" },
+ { OP_NODATA, 'l', NULL, "files-with-matches", "print only FILE names containing matches" },
+ { OP_NODATA, 'L', NULL, "files-without-match","print only FILE names not containing matches" },
+ { OP_STRING, N_LABEL, &stdin_name, "label=name", "set name for standard input" },
+ { OP_STRING, N_LOCALE, &locale, "locale=locale", "use the named locale" },
+ { OP_NODATA, 'M', NULL, "multiline", "run in multiline mode" },
+ { OP_NODATA, 'n', NULL, "line-number", "print line number with output lines" },
+ { OP_NODATA, 'o', NULL, "only-matching", "show only the part of the line that matched" },
+ { OP_NODATA, 'q', NULL, "quiet", "suppress output, just set return code" },
+ { OP_NODATA, 'r', NULL, "recursive", "recursively scan sub-directories" },
+ { OP_STRING, N_EXCLUDE,&exclude_pattern, "exclude=pattern","exclude matching files when recursing" },
+ { OP_STRING, N_INCLUDE,&include_pattern, "include=pattern","include matching files when recursing" },
+#ifdef JFRIEDL_DEBUG
+ { OP_OP_NUMBER, 'S', &S_arg, "jeffS", "replace matched (sub)string with X" },
+#endif
+ { OP_NODATA, 's', NULL, "no-messages", "suppress error messages" },
+ { OP_NODATA, 'u', NULL, "utf-8", "use UTF-8 mode" },
+ { OP_NODATA, 'V', NULL, "version", "print version information and exit" },
+ { OP_NODATA, 'v', NULL, "invert-match", "select non-matching lines" },
+ { OP_NODATA, 'w', NULL, "word-regex(p)", "force patterns to match only as words" },
+ { OP_NODATA, 'x', NULL, "line-regex(p)", "force patterns to match only whole lines" },
+ { OP_NODATA, 0, NULL, NULL, NULL }
};
+/* Tables for prefixing and suffixing patterns, according to the -w, -x, and -F
+options. These set the 1, 2, and 4 bits in process_options, respectively. Note
+that the combination of -w and -x has the same effect as -x on its own, so we
+can treat them as the same. */
+
+static const char *prefix[] = {
+ "", "\\b", "^(?:", "^(?:", "\\Q", "\\b\\Q", "^(?:\\Q", "^(?:\\Q" };
+
+static const char *suffix[] = {
+ "", "\\b", ")$", ")$", "\\E", "\\E\\b", "\\E)$", "\\E)$" };
+
+
/*************************************************
-* Functions for directory scanning *
+* OS-specific functions *
*************************************************/
/* These functions are defined so that they can be made system specific,
-although at present the only ones are for Unix, Win32, and for "no directory
-recursion support". */
+although at present the only ones are for Unix, Win32, and for "no support". */
/************* Directory scanning in Unix ***********/
@@ -194,6 +268,27 @@ closedir(dir);
}
+/************* Test for regular file in Unix **********/
+
+static int
+isregfile(char *filename)
+{
+struct stat statbuf;
+if (stat(filename, &statbuf) < 0)
+ return 1; /* In the expectation that opening as a file will fail */
+return (statbuf.st_mode & S_IFMT) == S_IFREG;
+}
+
+
+/************* Test stdout for being a terminal in Unix **********/
+
+static BOOL
+is_stdout_tty(void)
+{
+return isatty(fileno(stdout));
+}
+
+
/************* Directory scanning in Win32 ***********/
/* I (Philip Hazel) have no means of testing this code. It was contributed by
@@ -292,6 +387,28 @@ free(dir);
}
+/************* Test for regular file in Win32 **********/
+
+/* I don't know how to do this, or if it can be done; assume all paths are
+regular if they are not directories. */
+
+int isregfile(char *filename)
+{
+return !isdirectory(filename)
+}
+
+
+/************* Test stdout for being a terminal in Win32 **********/
+
+/* I don't know how to do this; assume never */
+
+static BOOL
+is_stdout_tty(void)
+{
+FALSE;
+}
+
+
/************* Directory scanning when we can't do it ***********/
/* The type is void, and apart from isdirectory(), the functions do nothing. */
@@ -300,11 +417,28 @@ free(dir);
typedef void directory_type;
-int isdirectory(char *filename) { return FALSE; }
+int isdirectory(char *filename) { return 0; }
directory_type * opendirectory(char *filename) {}
char *readdirectory(directory_type *dir) {}
void closedirectory(directory_type *dir) {}
+
+/************* Test for regular when we can't do it **********/
+
+/* Assume all files are regular. */
+
+int isregfile(char *filename) { return 1; }
+
+
+/************* Test stdout for being a terminal when we can't do it **********/
+
+static BOOL
+is_stdout_tty(void)
+{
+return FALSE;
+}
+
+
#endif
@@ -336,7 +470,8 @@ return sys_errlist[n];
*************************************************/
/* This is called if we are about to lose said lines because of buffer filling,
-and at the end of the file.
+and at the end of the file. The data in the line is written using fwrite() so
+that a binary zero does not terminate it.
Arguments:
lastmatchnumber the number of the last matching line, plus one
@@ -359,7 +494,7 @@ if (after_context > 0 && lastmatchnumber > 0)
if (printname != NULL) fprintf(stdout, "%s-", printname);
if (number) fprintf(stdout, "%d-", lastmatchnumber++);
while (*pp != '\n') pp++;
- fprintf(stdout, "%.*s", pp - lastmatchrestart + 1, lastmatchrestart);
+ fwrite(lastmatchrestart, 1, pp - lastmatchrestart + 1, stdout);
lastmatchrestart = pp + 1;
}
hyphenpending = TRUE;
@@ -418,6 +553,7 @@ way, the buffer is shifted left and re-filled. */
while (ptr < endptr)
{
int i;
+ int mrc = 0;
BOOL match = FALSE;
char *t = ptr;
size_t length, linelength;
@@ -433,33 +569,130 @@ while (ptr < endptr)
while (t < endptr && *t++ != '\n') linelength++;
length = multiline? endptr - ptr : linelength;
+
+ /* Extra processing for Jeffrey Friedl's debugging. */
+
+#ifdef JFRIEDL_DEBUG
+ if (jfriedl_XT || jfriedl_XR)
+ {
+ #include <sys/time.h>
+ #include <time.h>
+ struct timeval start_time, end_time;
+ struct timezone dummy;
+
+ if (jfriedl_XT)
+ {
+ unsigned long newlen = length * jfriedl_XT + strlen(jfriedl_prefix) + strlen(jfriedl_postfix);
+ const char *orig = ptr;
+ ptr = malloc(newlen + 1);
+ if (!ptr) {
+ printf("out of memory");
+ exit(2);
+ }
+ endptr = ptr;
+ strcpy(endptr, jfriedl_prefix); endptr += strlen(jfriedl_prefix);
+ for (i = 0; i < jfriedl_XT; i++) {
+ strncpy(endptr, orig, length);
+ endptr += length;
+ }
+ strcpy(endptr, jfriedl_postfix); endptr += strlen(jfriedl_postfix);
+ length = newlen;
+ }
+
+ if (gettimeofday(&start_time, &dummy) != 0)
+ perror("bad gettimeofday");
+
+
+ for (i = 0; i < jfriedl_XR; i++)
+ match = (pcre_exec(pattern_list[0], hints_list[0], ptr, length, 0, 0, offsets, 99) >= 0);
+
+ if (gettimeofday(&end_time, &dummy) != 0)
+ perror("bad gettimeofday");
+
+ double delta = ((end_time.tv_sec + (end_time.tv_usec / 1000000.0))
+ -
+ (start_time.tv_sec + (start_time.tv_usec / 1000000.0)));
+
+ printf("%s TIMER[%.4f]\n", match ? "MATCH" : "FAIL", delta);
+ return 0;
+ }
+#endif
+
+
/* Run through all the patterns until one matches. Note that we don't include
the final newline in the subject string. */
- for (i = 0; !match && i < pattern_count; i++)
+ for (i = 0; i < pattern_count; i++)
{
- match = pcre_exec(pattern_list[i], hints_list[i], ptr, length, 0, 0,
- offsets, 99) >= 0;
+ mrc = pcre_exec(pattern_list[i], hints_list[i], ptr, length, 0, 0,
+ offsets, 99);
+ if (mrc >= 0) { match = TRUE; break; }
+ if (mrc != PCRE_ERROR_NOMATCH)
+ {
+ fprintf(stderr, "pcregrep: pcre_exec() error %d while matching ", mrc);
+ if (pattern_count > 1) fprintf(stderr, "pattern number %d to ", i+1);
+ fprintf(stderr, "this line:\n");
+ fwrite(ptr, 1, linelength, stderr); /* In case binary zero included */
+ fprintf(stderr, "\n");
+ if (error_count == 0 &&
+ (mrc == PCRE_ERROR_MATCHLIMIT || mrc == PCRE_ERROR_RECURSIONLIMIT))
+ {
+ fprintf(stderr, "pcregrep: error %d means that a resource limit "
+ "was exceeded\n", mrc);
+ fprintf(stderr, "pcregrep: check your regex for nested unlimited loops\n");
+ }
+ if (error_count++ > 20)
+ {
+ fprintf(stderr, "pcregrep: too many errors - abandoned\n");
+ exit(2);
+ }
+ match = invert; /* No more matching; don't show the line again */
+ break;
+ }
}
- /* If it's a match or a not-match (as required), print what's wanted. */
+ /* If it's a match or a not-match (as required), do what's wanted. */
if (match != invert)
{
BOOL hyphenprinted = FALSE;
- if (filenames_nomatch_only) return 1;
+ /* We've failed if we want a file that doesn't have any matches. */
+
+ if (filenames == FN_NOMATCH_ONLY) return 1;
+
+ /* Just count if just counting is wanted. */
if (count_only) count++;
- else if (filenames_only)
+ /* If all we want is a file name, there is no need to scan any more lines
+ in the file. */
+
+ else if (filenames == FN_ONLY)
{
fprintf(stdout, "%s\n", printname);
return 0;
}
+ /* Likewise, if all we want is a yes/no answer. */
+
else if (quiet) return 0;
+ /* The --only-matching option prints just the substring that matched, and
+ does not pring any context. */
+
+ else if (only_matching)
+ {
+ if (printname != NULL) fprintf(stdout, "%s:", printname);
+ if (number) fprintf(stdout, "%d:", linenumber);
+ fwrite(ptr + offsets[0], 1, offsets[1] - offsets[0], stdout);
+ fprintf(stdout, "\n");
+ }
+
+ /* This is the default case when none of the above options is set. We print
+ the matching lines(s), possibly preceded and/or followed by other lines of
+ context. */
+
else
{
/* See if there is a requirement to print some "after" lines from a
@@ -478,7 +711,8 @@ while (ptr < endptr)
}
/* It is important to advance lastmatchrestart during this printing so
- that it interacts correctly with any "before" printing below. */
+ that it interacts correctly with any "before" printing below. Print
+ each line's data using fwrite() in case there are binary zeroes. */
while (lastmatchrestart < p)
{
@@ -486,7 +720,7 @@ while (ptr < endptr)
if (printname != NULL) fprintf(stdout, "%s-", printname);
if (number) fprintf(stdout, "%d-", lastmatchnumber++);
while (*pp != '\n') pp++;
- fprintf(stdout, "%.*s", pp - lastmatchrestart + 1, lastmatchrestart);
+ fwrite(lastmatchrestart, 1, pp - lastmatchrestart + 1, stdout);
lastmatchrestart = pp + 1;
}
if (lastmatchrestart != ptr) hyphenpending = TRUE;
@@ -510,8 +744,9 @@ while (ptr < endptr)
char *p = ptr;
while (p > buffer && (lastmatchnumber == 0 || p > lastmatchrestart) &&
- linecount++ < before_context)
+ linecount < before_context)
{
+ linecount++;
p--;
while (p > buffer && p[-1] != '\n') p--;
}
@@ -525,15 +760,17 @@ while (ptr < endptr)
if (printname != NULL) fprintf(stdout, "%s-", printname);
if (number) fprintf(stdout, "%d-", linenumber - linecount--);
while (*pp != '\n') pp++;
- fprintf(stdout, "%.*s", pp - p + 1, p);
+ fwrite(p, 1, pp - p + 1, stdout); /* In case binary zero */
p = pp + 1;
}
}
/* Now print the matching line(s); ensure we set hyphenpending at the end
- of the file. */
+ of the file if any context lines are being output. */
+
+ if (after_context > 0 || before_context > 0)
+ endhyphenpending = TRUE;
- endhyphenpending = TRUE;
if (printname != NULL) fprintf(stdout, "%s:", printname);
if (number) fprintf(stdout, "%d:", linenumber);
@@ -551,9 +788,42 @@ while (ptr < endptr)
linelength = endmatch - ptr;
}
- fprintf(stdout, "%.*s\n", linelength, ptr);
+ /*** NOTE: Use only fwrite() to output the data line, so that binary
+ zeroes are treated as just another data character. */
+
+ /* This extra option, for Jeffrey Friedl's debugging requirements,
+ replaces the matched string, or a specific captured string if it exists,
+ with X. When this happens, colouring is ignored. */
+
+#ifdef JFRIEDL_DEBUG
+ if (S_arg >= 0 && S_arg < mrc)
+ {
+ int first = S_arg * 2;
+ int last = first + 1;
+ fwrite(ptr, 1, offsets[first], stdout);
+ fprintf(stdout, "X");
+ fwrite(ptr + offsets[last], 1, linelength - offsets[last], stdout);
+ }
+ else
+#endif
+
+ /* We have to split the line(s) up if colouring. */
+
+ if (do_colour)
+ {
+ fwrite(ptr, 1, offsets[0], stdout);
+ fprintf(stdout, "%c[%sm", 0x1b, colour_string);
+ fwrite(ptr + offsets[0], 1, offsets[1] - offsets[0], stdout);
+ fprintf(stdout, "%c[00m", 0x1b);
+ fwrite(ptr + offsets[1], 1, linelength - offsets[1], stdout);
+ }
+ else fwrite(ptr, 1, linelength, stdout);
+
+ fprintf(stdout, "\n");
}
+ /* End of doing what has to be done for a match */
+
rc = 0; /* Had some success */
/* Remember where the last match happened for after_context. We remember
@@ -599,13 +869,16 @@ while (ptr < endptr)
/* End of file; print final "after" lines if wanted; do_after_lines sets
hyphenpending if it prints something. */
-do_after_lines(lastmatchnumber, lastmatchrestart, endptr, printname);
-hyphenpending |= endhyphenpending;
+if (!only_matching && !count_only)
+ {
+ do_after_lines(lastmatchnumber, lastmatchrestart, endptr, printname);
+ hyphenpending |= endhyphenpending;
+ }
/* Print the file name if we are looking for those without matches and there
were none. If we found a match, we won't have got this far. */
-if (filenames_nomatch_only)
+if (filenames == FN_NOMATCH_ONLY)
{
fprintf(stdout, "%s\n", printname);
return 0;
@@ -633,9 +906,7 @@ recursing; if it's a file, grep it.
Arguments:
pathname the path to investigate
- dir_recurse TRUE if recursing is wanted (-r)
- show_filenames TRUE if file names are wanted for multiple files, except
- for the only file at top level when not filenames_only
+ dir_recurse TRUE if recursing is wanted (-r or -drecurse)
only_one_at_top TRUE if the path is the only one at toplevel
Returns: 0 if there was at least one match
@@ -646,69 +917,77 @@ However, file opening failures are suppressed if "silent" is set.
*/
static int
-grep_or_recurse(char *pathname, BOOL dir_recurse, BOOL show_filenames,
- BOOL only_one_at_top)
+grep_or_recurse(char *pathname, BOOL dir_recurse, BOOL only_one_at_top)
{
int rc = 1;
int sep;
FILE *in;
-char *printname;
/* If the file name is "-" we scan stdin */
if (strcmp(pathname, "-") == 0)
{
return pcregrep(stdin,
- (filenames_only || filenames_nomatch_only ||
- (show_filenames && !only_one_at_top))?
+ (filenames > FN_DEFAULT || (filenames == FN_DEFAULT && !only_one_at_top))?
stdin_name : NULL);
}
-/* If the file is a directory and we are recursing, scan each file within it,
-subject to any include or exclude patterns that were set. The scanning code is
-localized so it can be made system-specific. */
-if ((sep = isdirectory(pathname)) != 0 && dir_recurse)
- {
- char buffer[1024];
- char *nextfile;
- directory_type *dir = opendirectory(pathname);
+/* If the file is a directory, skip if skipping or if we are recursing, scan
+each file within it, subject to any include or exclude patterns that were set.
+The scanning code is localized so it can be made system-specific. */
- if (dir == NULL)
+if ((sep = isdirectory(pathname)) != 0)
+ {
+ if (dee_action == dee_SKIP) return 1;
+ if (dee_action == dee_RECURSE)
{
- if (!silent)
- fprintf(stderr, "pcregrep: Failed to open directory %s: %s\n", pathname,
- strerror(errno));
- return 2;
- }
+ char buffer[1024];
+ char *nextfile;
+ directory_type *dir = opendirectory(pathname);
- while ((nextfile = readdirectory(dir)) != NULL)
- {
- int frc, blen;
- sprintf(buffer, "%.512s%c%.128s", pathname, sep, nextfile);
- blen = strlen(buffer);
+ if (dir == NULL)
+ {
+ if (!silent)
+ fprintf(stderr, "pcregrep: Failed to open directory %s: %s\n", pathname,
+ strerror(errno));
+ return 2;
+ }
- if (exclude_compiled != NULL &&
- pcre_exec(exclude_compiled, NULL, buffer, blen, 0, 0, NULL, 0) >= 0)
- continue;
+ while ((nextfile = readdirectory(dir)) != NULL)
+ {
+ int frc, blen;
+ sprintf(buffer, "%.512s%c%.128s", pathname, sep, nextfile);
+ blen = strlen(buffer);
- if (include_compiled != NULL &&
- pcre_exec(include_compiled, NULL, buffer, blen, 0, 0, NULL, 0) < 0)
- continue;
+ if (exclude_compiled != NULL &&
+ pcre_exec(exclude_compiled, NULL, buffer, blen, 0, 0, NULL, 0) >= 0)
+ continue;
- frc = grep_or_recurse(buffer, dir_recurse, TRUE, FALSE);
- if (frc > 1) rc = frc;
- else if (frc == 0 && rc == 1) rc = 0;
- }
+ if (include_compiled != NULL &&
+ pcre_exec(include_compiled, NULL, buffer, blen, 0, 0, NULL, 0) < 0)
+ continue;
- closedirectory(dir);
- return rc;
+ frc = grep_or_recurse(buffer, dir_recurse, FALSE);
+ if (frc > 1) rc = frc;
+ else if (frc == 0 && rc == 1) rc = 0;
+ }
+
+ closedirectory(dir);
+ return rc;
+ }
}
-/* If the file is not a directory, or we are not recursing, scan it. If this is
-the first and only argument at top level, we don't show the file name (unless
-we are only showing the file name). Otherwise, control is via the
-show_filenames variable. */
+/* If the file is not a directory and not a regular file, skip it if that's
+been requested. */
+
+else if (!isregfile(pathname) && DEE_action == DEE_SKIP) return 1;
+
+/* Control reaches here if we have a regular file, or if we have a directory
+and recursion or skipping was not requested, or if we have anything else and
+skipping was not requested. The scan proceeds. If this is the first and only
+argument at top level, we don't show the file name, unless we are only showing
+the file name, or the filename was forced (-H). */
in = fopen(pathname, "r");
if (in == NULL)
@@ -719,10 +998,8 @@ if (in == NULL)
return 2;
}
-printname = (filenames_only || filenames_nomatch_only ||
- (show_filenames && !only_one_at_top))? pathname : NULL;
-
-rc = pcregrep(in, printname);
+rc = pcregrep(in, (filenames > FN_DEFAULT ||
+ (filenames == FN_DEFAULT && !only_one_at_top))? pathname : NULL);
fclose(in);
return rc;
@@ -738,7 +1015,13 @@ return rc;
static int
usage(int rc)
{
-fprintf(stderr, "Usage: pcregrep [-LMVcfhilnqrsvwx] [long-options] [pattern] [file1 file2 ...]\n");
+option_item *op;
+fprintf(stderr, "Usage: pcregrep [-");
+for (op = optionlist; op->one_char != 0; op++)
+ {
+ if (op->one_char > 0) fprintf(stderr, "%c", op->one_char);
+ }
+fprintf(stderr, "] [long options] [pattern] [files]\n");
fprintf(stderr, "Type `pcregrep --help' for more information.\n");
return rc;
}
@@ -757,8 +1040,8 @@ option_item *op;
printf("Usage: pcregrep [OPTION]... [PATTERN] [FILE1 FILE2 ...]\n");
printf("Search for PATTERN in each FILE or standard input.\n");
-printf("PATTERN must be present if -f is not used.\n");
-printf("\"-\" can be used as a file name to mean STDIN.\n");
+printf("PATTERN must be present if neither -e nor -f is used.\n");
+printf("\"-\" can be used as a file name to mean STDIN.\n\n");
printf("Example: pcregrep -i 'hello.*world' menu.h main.c\n\n");
printf("Options:\n");
@@ -794,21 +1077,24 @@ handle_option(int letter, int options)
{
switch(letter)
{
- case -1: help(); exit(0);
+ case N_HELP: help(); exit(0);
case 'c': count_only = TRUE; break;
- case 'h': filenames = FALSE; break;
+ case 'F': process_options |= PO_FIXED_STRINGS; break;
+ case 'H': filenames = FN_FORCE; break;
+ case 'h': filenames = FN_NONE; break;
case 'i': options |= PCRE_CASELESS; break;
- case 'l': filenames_only = TRUE; break;
- case 'L': filenames_nomatch_only = TRUE; break;
+ case 'l': filenames = FN_ONLY; break;
+ case 'L': filenames = FN_NOMATCH_ONLY; break;
case 'M': multiline = TRUE; options |= PCRE_MULTILINE|PCRE_FIRSTLINE; break;
case 'n': number = TRUE; break;
+ case 'o': only_matching = TRUE; break;
case 'q': quiet = TRUE; break;
- case 'r': recurse = TRUE; break;
+ case 'r': dee_action = dee_RECURSE; break;
case 's': silent = TRUE; break;
case 'u': options |= PCRE_UTF8; break;
case 'v': invert = TRUE; break;
- case 'w': word_match = TRUE; break;
- case 'x': whole_lines = TRUE; break;
+ case 'w': process_options |= PO_WORD_MATCH; break;
+ case 'x': process_options |= PO_LINE_MATCH; break;
case 'V':
fprintf(stderr, "pcregrep version %s using ", VERSION);
@@ -828,6 +1114,134 @@ return options;
/*************************************************
+* Construct printed ordinal *
+*************************************************/
+
+/* This turns a number into "1st", "3rd", etc. */
+
+static char *
+ordin(int n)
+{
+static char buffer[8];
+char *p = buffer;
+sprintf(p, "%d", n);
+while (*p != 0) p++;
+switch (n%10)
+ {
+ case 1: strcpy(p, "st"); break;
+ case 2: strcpy(p, "nd"); break;
+ case 3: strcpy(p, "rd"); break;
+ default: strcpy(p, "th"); break;
+ }
+return buffer;
+}
+
+
+
+/*************************************************
+* Compile a single pattern *
+*************************************************/
+
+/* When the -F option has been used, this is called for each substring.
+Otherwise it's called for each supplied pattern.
+
+Arguments:
+ pattern the pattern string
+ options the PCRE options
+ filename the file name, or NULL for a command-line pattern
+ count 0 if this is the only command line pattern, or
+ number of the command line pattern, or
+ linenumber for a pattern from a file
+
+Returns: TRUE on success, FALSE after an error
+*/
+
+static BOOL
+compile_single_pattern(char *pattern, int options, char *filename, int count)
+{
+char buffer[MBUFTHIRD + 16];
+const char *error;
+int errptr;
+
+if (pattern_count >= MAX_PATTERN_COUNT)
+ {
+ fprintf(stderr, "pcregrep: Too many %spatterns (max %d)\n",
+ (filename == NULL)? "command-line " : "", MAX_PATTERN_COUNT);
+ return FALSE;
+ }
+
+sprintf(buffer, "%s%.*s%s", prefix[process_options], MBUFTHIRD, pattern,
+ suffix[process_options]);
+pattern_list[pattern_count] =
+ pcre_compile(buffer, options, &error, &errptr, pcretables);
+if (pattern_list[pattern_count++] != NULL) return TRUE;
+
+/* Handle compile errors */
+
+errptr -= (int)strlen(prefix[process_options]);
+if (errptr > (int)strlen(pattern)) errptr = (int)strlen(pattern);
+
+if (filename == NULL)
+ {
+ if (count == 0)
+ fprintf(stderr, "pcregrep: Error in command-line regex "
+ "at offset %d: %s\n", errptr, error);
+ else
+ fprintf(stderr, "pcregrep: Error in %s command-line regex "
+ "at offset %d: %s\n", ordin(count), errptr, error);
+ }
+else
+ {
+ fprintf(stderr, "pcregrep: Error in regex in line %d of %s "
+ "at offset %d: %s\n", count, filename, errptr, error);
+ }
+
+return FALSE;
+}
+
+
+
+/*************************************************
+* Compile one supplied pattern *
+*************************************************/
+
+/* When the -F option has been used, each string may be a list of strings,
+separated by newlines. They will be matched literally.
+
+Arguments:
+ pattern the pattern string
+ options the PCRE options
+ filename the file name, or NULL for a command-line pattern
+ count 0 if this is the only command line pattern, or
+ number of the command line pattern, or
+ linenumber for a pattern from a file
+
+Returns: TRUE on success, FALSE after an error
+*/
+
+static BOOL
+compile_pattern(char *pattern, int options, char *filename, int count)
+{
+if ((process_options & PO_FIXED_STRINGS) != 0)
+ {
+ char buffer[MBUFTHIRD];
+ for(;;)
+ {
+ char *p = strchr(pattern, '\n');
+ if (p == NULL)
+ return compile_single_pattern(pattern, options, filename, count);
+ sprintf(buffer, "%.*s", p - pattern, pattern);
+ pattern = p + 1;
+ if (!compile_single_pattern(buffer, options, filename, count))
+ return FALSE;
+ }
+ }
+else return compile_single_pattern(pattern, options, filename, count);
+}
+
+
+
+/*************************************************
* Main program *
*************************************************/
@@ -838,10 +1252,13 @@ main(int argc, char **argv)
{
int i, j;
int rc = 1;
-int options = 0;
+int pcre_options = 0;
+int cmd_pattern_count = 0;
int errptr;
-const char *error;
BOOL only_one_at_top;
+char *patterns[MAX_PATTERN_COUNT];
+const char *locale_from = "--locale";
+const char *error;
/* Process the options */
@@ -855,11 +1272,11 @@ for (i = 1; i < argc; i++)
if (argv[i][0] != '-') break;
/* If we hit an argument that is just "-", it may be a reference to STDIN,
- but only if we have previously had -f to define the patterns. */
+ but only if we have previously had -e or -f to define the patterns. */
if (argv[i][1] == 0)
{
- if (pattern_filename != NULL) break;
+ if (pattern_filename != NULL || pattern_count > 0) break;
else exit(usage(2));
}
@@ -881,9 +1298,9 @@ for (i = 1; i < argc; i++)
/* Some long options have data that follows after =, for example file=name.
Some options have variations in the long name spelling: specifically, we
allow "regexp" because GNU grep allows it, though I personally go along
- with Jeff Friedl in preferring "regex" without the "p". These options are
- entered in the table as "regex(p)". No option is in both these categories,
- fortunately. */
+ with Jeffrey Friedl and Larry Wall in preferring "regex" without the "p".
+ These options are entered in the table as "regex(p)". No option is in both
+ these categories, fortunately. */
for (op = optionlist; op->one_char != 0; op++)
{
@@ -931,6 +1348,30 @@ for (i = 1; i < argc; i++)
}
}
+
+ /* Jeffrey Friedl's debugging harness uses these additional options which
+ are not in the right form for putting in the option table because they use
+ only one hyphen, yet are more than one character long. By putting them
+ separately here, they will not get displayed as part of the help() output,
+ but I don't think Jeffrey will care about that. */
+
+#ifdef JFRIEDL_DEBUG
+ else if (strcmp(argv[i], "-pre") == 0) {
+ jfriedl_prefix = argv[++i];
+ continue;
+ } else if (strcmp(argv[i], "-post") == 0) {
+ jfriedl_postfix = argv[++i];
+ continue;
+ } else if (strcmp(argv[i], "-XT") == 0) {
+ sscanf(argv[++i], "%d", &jfriedl_XT);
+ continue;
+ } else if (strcmp(argv[i], "-XR") == 0) {
+ sscanf(argv[++i], "%d", &jfriedl_XR);
+ continue;
+ }
+#endif
+
+
/* One-char options; many that have no data may be in a single argument; we
continue till we hit the last one or one that needs data. */
@@ -953,42 +1394,94 @@ for (i = 1; i < argc; i++)
option_data = s+1;
break;
}
- options = handle_option(*s++, options);
+ pcre_options = handle_option(*s++, pcre_options);
}
}
- /* At this point we should have op pointing to a matched option */
+ /* At this point we should have op pointing to a matched option. If the type
+ is NO_DATA, it means that there is no data, and the option might set
+ something in the PCRE options. */
if (op->type == OP_NODATA)
- options = handle_option(op->one_char, options);
- else
{
- if (*option_data == 0)
+ pcre_options = handle_option(op->one_char, pcre_options);
+ continue;
+ }
+
+ /* If the option type is OP_OP_STRING or OP_OP_NUMBER, it's an option that
+ either has a value or defaults to something. It cannot have data in a
+ separate item. At the moment, the only such options are "colo(u)r" and
+ Jeffrey Friedl's special -S debugging option. */
+
+ if (*option_data == 0 &&
+ (op->type == OP_OP_STRING || op->type == OP_OP_NUMBER))
+ {
+ switch (op->one_char)
{
- if (i >= argc - 1 || longopwasequals)
- {
- fprintf(stderr, "pcregrep: Data missing after %s\n", argv[i]);
- exit(usage(2));
- }
- option_data = argv[++i];
+ case N_COLOUR:
+ colour_option = (char *)"auto";
+ break;
+#ifdef JFRIEDL_DEBUG
+ case 'S':
+ S_arg = 0;
+ break;
+#endif
}
+ continue;
+ }
- if (op->type == OP_STRING) *((char **)op->dataptr) = option_data; else
+ /* Otherwise, find the data string for the option. */
+
+ if (*option_data == 0)
+ {
+ if (i >= argc - 1 || longopwasequals)
{
- char *endptr;
- int n = strtoul(option_data, &endptr, 10);
- if (*endptr != 0)
+ fprintf(stderr, "pcregrep: Data missing after %s\n", argv[i]);
+ exit(usage(2));
+ }
+ option_data = argv[++i];
+ }
+
+ /* If the option type is OP_PATLIST, it's the -e option, which can be called
+ multiple times to create a list of patterns. */
+
+ if (op->type == OP_PATLIST)
+ {
+ if (cmd_pattern_count >= MAX_PATTERN_COUNT)
+ {
+ fprintf(stderr, "pcregrep: Too many command-line patterns (max %d)\n",
+ MAX_PATTERN_COUNT);
+ return 2;
+ }
+ patterns[cmd_pattern_count++] = option_data;
+ }
+
+ /* Otherwise, deal with single string or numeric data values. */
+
+ else if (op->type != OP_NUMBER && op->type != OP_OP_NUMBER)
+ {
+ *((char **)op->dataptr) = option_data;
+ }
+ else
+ {
+ char *endptr;
+ int n = strtoul(option_data, &endptr, 10);
+ if (*endptr != 0)
+ {
+ if (longop)
{
- if (longop)
- fprintf(stderr, "pcregrep: Malformed number \"%s\" after --%s\n",
- option_data, op->long_name);
- else
- fprintf(stderr, "pcregrep: Malformed number \"%s\" after -%c\n",
- option_data, op->one_char);
- exit(usage(2));
+ char *equals = strchr(op->long_name, '=');
+ int nlen = (equals == NULL)? (int)strlen(op->long_name) :
+ equals - op->long_name;
+ fprintf(stderr, "pcregrep: Malformed number \"%s\" after --%.*s\n",
+ option_data, nlen, op->long_name);
}
- *((int *)op->dataptr) = n;
+ else
+ fprintf(stderr, "pcregrep: Malformed number \"%s\" after -%c\n",
+ option_data, op->one_char);
+ exit(usage(2));
}
+ *((int *)op->dataptr) = n;
}
}
@@ -1001,102 +1494,163 @@ if (both_context > 0)
if (before_context == 0) before_context = both_context;
}
-pattern_list = (pcre **)malloc(MAX_PATTERN_COUNT * sizeof(pcre *));
-hints_list = (pcre_extra **)malloc(MAX_PATTERN_COUNT * sizeof(pcre_extra *));
+/* If a locale has not been provided as an option, see if the LC_CTYPE or
+LC_ALL environment variable is set, and if so, use it. */
-if (pattern_list == NULL || hints_list == NULL)
+if (locale == NULL)
{
- fprintf(stderr, "pcregrep: malloc failed\n");
- return 2;
+ locale = getenv("LC_ALL");
+ locale_from = "LCC_ALL";
}
-/* Compile the regular expression(s). */
-
-if (pattern_filename != NULL)
+if (locale == NULL)
{
- FILE *f = fopen(pattern_filename, "r");
- char buffer[MBUFTHIRD + 16];
- char *rdstart;
- int adjust = 0;
+ locale = getenv("LC_CTYPE");
+ locale_from = "LC_CTYPE";
+ }
- if (f == NULL)
+/* If a locale has been provided, set it, and generate the tables the PCRE
+needs. Otherwise, pcretables==NULL, which causes the use of default tables. */
+
+if (locale != NULL)
+ {
+ if (setlocale(LC_CTYPE, locale) == NULL)
{
- fprintf(stderr, "pcregrep: Failed to open %s: %s\n", pattern_filename,
- strerror(errno));
+ fprintf(stderr, "pcregrep: Failed to set locale %s (obtained from %s)\n",
+ locale, locale_from);
return 2;
}
+ pcretables = pcre_maketables();
+ }
+
+/* Sort out colouring */
- if (whole_lines)
+if (colour_option != NULL && strcmp(colour_option, "never") != 0)
+ {
+ if (strcmp(colour_option, "always") == 0) do_colour = TRUE;
+ else if (strcmp(colour_option, "auto") == 0) do_colour = is_stdout_tty();
+ else
{
- strcpy(buffer, "^(?:");
- adjust = 4;
+ fprintf(stderr, "pcregrep: Unknown colour setting \"%s\"\n",
+ colour_option);
+ return 2;
}
- else if (word_match)
+ if (do_colour)
{
- strcpy(buffer, "\\b");
- adjust = 2;
+ char *cs = getenv("PCREGREP_COLOUR");
+ if (cs == NULL) cs = getenv("PCREGREP_COLOR");
+ if (cs != NULL) colour_string = cs;
}
+ }
- rdstart = buffer + adjust;
- while (fgets(rdstart, MBUFTHIRD, f) != NULL)
+/* Interpret the text values for -d and -D */
+
+if (dee_option != NULL)
+ {
+ if (strcmp(dee_option, "read") == 0) dee_action = dee_READ;
+ else if (strcmp(dee_option, "recurse") == 0) dee_action = dee_RECURSE;
+ else if (strcmp(dee_option, "skip") == 0) dee_action = dee_SKIP;
+ else
{
- char *s = rdstart + (int)strlen(rdstart);
- if (pattern_count >= MAX_PATTERN_COUNT)
- {
- fprintf(stderr, "pcregrep: Too many patterns in file (max %d)\n",
- MAX_PATTERN_COUNT);
- return 2;
- }
- while (s > rdstart && isspace((unsigned char)(s[-1]))) s--;
- if (s == rdstart) continue;
- if (whole_lines) strcpy(s, ")$");
- else if (word_match)strcpy(s, "\\b");
- else *s = 0;
- pattern_list[pattern_count] = pcre_compile(buffer, options, &error,
- &errptr, NULL);
- if (pattern_list[pattern_count++] == NULL)
- {
- fprintf(stderr, "pcregrep: Error in regex number %d at offset %d: %s\n",
- pattern_count, errptr - adjust, error);
- return 2;
- }
+ fprintf(stderr, "pcregrep: Invalid value \"%s\" for -d\n", dee_option);
+ return 2;
}
- fclose(f);
}
-/* If no file name, a single regex must be given inline. */
+if (DEE_option != NULL)
+ {
+ if (strcmp(DEE_option, "read") == 0) DEE_action = DEE_READ;
+ else if (strcmp(DEE_option, "skip") == 0) DEE_action = DEE_SKIP;
+ else
+ {
+ fprintf(stderr, "pcregrep: Invalid value \"%s\" for -D\n", DEE_option);
+ return 2;
+ }
+ }
-else
+/* Check the values for Jeffrey Friedl's debugging options. */
+
+#ifdef JFRIEDL_DEBUG
+if (S_arg > 9)
{
- char buffer[MBUFTHIRD + 16];
- char *pat;
- int adjust = 0;
+ fprintf(stderr, "pcregrep: bad value for -S option\n");
+ return 2;
+ }
+if (jfriedl_XT != 0 || jfriedl_XR != 0)
+ {
+ if (jfriedl_XT == 0) jfriedl_XT = 1;
+ if (jfriedl_XR == 0) jfriedl_XR = 1;
+ }
+#endif
+
+/* Get memory to store the pattern and hints lists. */
+
+pattern_list = (pcre **)malloc(MAX_PATTERN_COUNT * sizeof(pcre *));
+hints_list = (pcre_extra **)malloc(MAX_PATTERN_COUNT * sizeof(pcre_extra *));
+
+if (pattern_list == NULL || hints_list == NULL)
+ {
+ fprintf(stderr, "pcregrep: malloc failed\n");
+ return 2;
+ }
+/* If no patterns were provided by -e, and there is no file provided by -f,
+the first argument is the one and only pattern, and it must exist. */
+
+if (cmd_pattern_count == 0 && pattern_filename == NULL)
+ {
if (i >= argc) return usage(2);
+ patterns[cmd_pattern_count++] = argv[i++];
+ }
+
+/* Compile the patterns that were provided on the command line, either by
+multiple uses of -e or as a single unkeyed pattern. */
- if (whole_lines)
+for (j = 0; j < cmd_pattern_count; j++)
+ {
+ if (!compile_pattern(patterns[j], pcre_options, NULL,
+ (j == 0 && cmd_pattern_count == 1)? 0 : j + 1))
+ return 2;
+ }
+
+/* Compile the regular expressions that are provided in a file. */
+
+if (pattern_filename != NULL)
+ {
+ int linenumber = 0;
+ FILE *f;
+ char *filename;
+ char buffer[MBUFTHIRD];
+
+ if (strcmp(pattern_filename, "-") == 0)
{
- sprintf(buffer, "^(?:%.*s)$", MBUFTHIRD, argv[i++]);
- pat = buffer;
- adjust = 4;
+ f = stdin;
+ filename = stdin_name;
}
- else if (word_match)
+ else
{
- sprintf(buffer, "\\b%.*s\\b", MBUFTHIRD, argv[i++]);
- pat = buffer;
- adjust = 2;
+ f = fopen(pattern_filename, "r");
+ if (f == NULL)
+ {
+ fprintf(stderr, "pcregrep: Failed to open %s: %s\n", pattern_filename,
+ strerror(errno));
+ return 2;
+ }
+ filename = pattern_filename;
}
- else pat = argv[i++];
-
- pattern_list[0] = pcre_compile(pat, options, &error, &errptr, NULL);
- if (pattern_list[0] == NULL)
+ while (fgets(buffer, MBUFTHIRD, f) != NULL)
{
- fprintf(stderr, "pcregrep: Error in regex at offset %d: %s\n",
- errptr - adjust, error);
- return 2;
+ char *s = buffer + (int)strlen(buffer);
+ while (s > buffer && isspace((unsigned char)(s[-1]))) s--;
+ *s = 0;
+ linenumber++;
+ if (buffer[0] == 0) continue; /* Skip blank lines */
+ if (!compile_pattern(buffer, pcre_options, filename, linenumber))
+ return 2;
}
- pattern_count++;
+
+ if (f != stdin) fclose(f);
}
/* Study the regular expressions, as we will be running them many times */
@@ -1117,7 +1671,8 @@ for (j = 0; j < pattern_count; j++)
if (exclude_pattern != NULL)
{
- exclude_compiled = pcre_compile(exclude_pattern, 0, &error, &errptr, NULL);
+ exclude_compiled = pcre_compile(exclude_pattern, 0, &error, &errptr,
+ pcretables);
if (exclude_compiled == NULL)
{
fprintf(stderr, "pcregrep: Error in 'exclude' regex at offset %d: %s\n",
@@ -1128,7 +1683,8 @@ if (exclude_pattern != NULL)
if (include_pattern != NULL)
{
- include_compiled = pcre_compile(include_pattern, 0, &error, &errptr, NULL);
+ include_compiled = pcre_compile(include_pattern, 0, &error, &errptr,
+ pcretables);
if (include_compiled == NULL)
{
fprintf(stderr, "pcregrep: Error in 'include' regex at offset %d: %s\n",
@@ -1137,21 +1693,22 @@ if (include_pattern != NULL)
}
}
-/* If there are no further arguments, do the business on stdin and exit */
+/* If there are no further arguments, do the business on stdin and exit. */
-if (i >= argc) return pcregrep(stdin,
- (filenames_only || filenames_nomatch_only)? stdin_name : NULL);
+if (i >= argc)
+ return pcregrep(stdin, (filenames > FN_DEFAULT)? stdin_name : NULL);
/* Otherwise, work through the remaining arguments as files or directories.
Pass in the fact that there is only one argument at top level - this suppresses
-the file name if the argument is not a directory and filenames_only is not set.
-*/
+the file name if the argument is not a directory and filenames are not
+otherwise forced. */
-only_one_at_top = (i == argc - 1);
+only_one_at_top = i == argc - 1; /* Catch initial value of i */
for (; i < argc; i++)
{
- int frc = grep_or_recurse(argv[i], recurse, filenames, only_one_at_top);
+ int frc = grep_or_recurse(argv[i], dee_action == dee_RECURSE,
+ only_one_at_top);
if (frc > 1) rc = frc;
else if (frc == 0 && rc == 1) rc = 0;
}
diff --git a/ext/pcre/pcrelib/pcreposix.c b/ext/pcre/pcrelib/pcreposix.c
index 06fd58bcb..cbb1ff800 100644
--- a/ext/pcre/pcrelib/pcreposix.c
+++ b/ext/pcre/pcrelib/pcreposix.c
@@ -6,7 +6,7 @@
and semantics are as close as possible to those of the Perl 5 language.
Written by Philip Hazel
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -131,7 +131,7 @@ static const char *const pstring[] = {
* Translate error code to string *
*************************************************/
-EXPORT size_t
+PCRE_DATA_SCOPE size_t
regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size)
{
const char *message, *addmessage;
@@ -166,7 +166,7 @@ return length + addlength;
* Free store held by a regex *
*************************************************/
-EXPORT void
+PCRE_DATA_SCOPE void
regfree(regex_t *preg)
{
(pcre_free)(preg->re_pcre);
@@ -189,7 +189,7 @@ Returns: 0 on success
various non-zero codes on failure
*/
-EXPORT int
+PCRE_DATA_SCOPE int
regcomp(regex_t *preg, const char *pattern, int cflags)
{
const char *errorptr;
@@ -197,9 +197,11 @@ int erroffset;
int errorcode;
int options = 0;
-if ((cflags & REG_ICASE) != 0) options |= PCRE_CASELESS;
+if ((cflags & REG_ICASE) != 0) options |= PCRE_CASELESS;
if ((cflags & REG_NEWLINE) != 0) options |= PCRE_MULTILINE;
-if ((cflags & REG_DOTALL) != 0) options |= PCRE_DOTALL;
+if ((cflags & REG_DOTALL) != 0) options |= PCRE_DOTALL;
+if ((cflags & REG_NOSUB) != 0) options |= PCRE_NO_AUTO_CAPTURE;
+if ((cflags & REG_UTF8) != 0) options |= PCRE_UTF8;
preg->re_pcre = pcre_compile2(pattern, options, &errorcode, &errorptr,
&erroffset, NULL);
@@ -223,9 +225,13 @@ substring, so we have to get and release working store instead of just using
the POSIX structures as was done in earlier releases when PCRE needed only 2
ints. However, if the number of possible capturing brackets is small, use a
block of store on the stack, to reduce the use of malloc/free. The threshold is
-in a macro that can be changed at configure time. */
+in a macro that can be changed at configure time.
-EXPORT int
+If REG_NOSUB was specified at compile time, the PCRE_NO_AUTO_CAPTURE flag will
+be set. When this is the case, the nmatch and pmatch arguments are ignored, and
+the only result is yes/no/error. */
+
+PCRE_DATA_SCOPE int
regexec(const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags)
{
@@ -234,13 +240,20 @@ int options = 0;
int *ovector = NULL;
int small_ovector[POSIX_MALLOC_THRESHOLD * 3];
BOOL allocated_ovector = FALSE;
+BOOL nosub =
+ (((const pcre *)preg->re_pcre)->options & PCRE_NO_AUTO_CAPTURE) != 0;
if ((eflags & REG_NOTBOL) != 0) options |= PCRE_NOTBOL;
if ((eflags & REG_NOTEOL) != 0) options |= PCRE_NOTEOL;
((regex_t *)preg)->re_erroffset = (size_t)(-1); /* Only has meaning after compile */
-if (nmatch > 0)
+/* When no string data is being returned, ensure that nmatch is zero.
+Otherwise, ensure the vector for holding the return data is large enough. */
+
+if (nosub) nmatch = 0;
+
+else if (nmatch > 0)
{
if (nmatch <= POSIX_MALLOC_THRESHOLD)
{
@@ -248,6 +261,7 @@ if (nmatch > 0)
}
else
{
+ if (nmatch > INT_MAX/(sizeof(int) * 3)) return REG_ESPACE;
ovector = (int *)malloc(sizeof(int) * nmatch * 3);
if (ovector == NULL) return REG_ESPACE;
allocated_ovector = TRUE;
@@ -262,13 +276,16 @@ if (rc == 0) rc = nmatch; /* All captured slots were filled in */
if (rc >= 0)
{
size_t i;
- for (i = 0; i < (size_t)rc; i++)
+ if (!nosub)
{
- pmatch[i].rm_so = ovector[i*2];
- pmatch[i].rm_eo = ovector[i*2+1];
+ for (i = 0; i < (size_t)rc; i++)
+ {
+ pmatch[i].rm_so = ovector[i*2];
+ pmatch[i].rm_eo = ovector[i*2+1];
+ }
+ if (allocated_ovector) free(ovector);
+ for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
}
- if (allocated_ovector) free(ovector);
- for (; i < nmatch; i++) pmatch[i].rm_so = pmatch[i].rm_eo = -1;
return 0;
}
diff --git a/ext/pcre/pcrelib/pcreposix.h b/ext/pcre/pcrelib/pcreposix.h
index 4f1b1abd4..31ee03749 100644
--- a/ext/pcre/pcrelib/pcreposix.h
+++ b/ext/pcre/pcrelib/pcreposix.h
@@ -9,7 +9,7 @@
Compatible Regular Expression library. It defines the things POSIX says should
be there. I hope.
- Copyright (c) 1997-2005 University of Cambridge
+ Copyright (c) 1997-2006 University of Cambridge
-----------------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
@@ -50,22 +50,20 @@ POSSIBILITY OF SUCH DAMAGE.
extern "C" {
#endif
-/* Options defined by POSIX. */
+/* Options, mostly defined by POSIX, but with a couple of extras. */
-#define REG_ICASE 0x01
-#define REG_NEWLINE 0x02
-#define REG_NOTBOL 0x04
-#define REG_NOTEOL 0x08
+#define REG_ICASE 0x0001
+#define REG_NEWLINE 0x0002
+#define REG_NOTBOL 0x0004
+#define REG_NOTEOL 0x0008
+#define REG_DOTALL 0x0010 /* NOT defined by POSIX. */
+#define REG_NOSUB 0x0020
+#define REG_UTF8 0x0040 /* NOT defined by POSIX. */
-/* Additional options, not defined by POSIX, but somebody wanted them. */
-
-#define REG_DOTALL 0x10
-
-/* These are not used by PCRE, but by defining them we make it easier
+/* This is not used by PCRE, but by defining it we make it easier
to slot PCRE into existing programs that make POSIX calls. */
#define REG_EXTENDED 0
-#define REG_NOSUB 0
/* Error values. Not all these are relevant or used by the wrapper. */
@@ -107,12 +105,40 @@ typedef struct {
regoff_t rm_eo;
} regmatch_t;
+/* Win32 uses DLL by default; it needs special stuff for exported functions
+when building PCRE. */
+
+#ifndef PCRE_DATA_SCOPE
+#ifdef _WIN32
+# ifdef PCRE_DEFINITION
+# ifdef DLL_EXPORT
+# define PCRE_DATA_SCOPE __declspec(dllexport)
+# endif
+# else
+# ifndef PCRE_STATIC
+# define PCRE_DATA_SCOPE extern __declspec(dllimport)
+# endif
+# endif
+#endif
+#endif
+
+/* Otherwise, we use the standard "extern". */
+
+#ifndef PCRE_DATA_SCOPE
+# ifdef __cplusplus
+# define PCRE_DATA_SCOPE extern "C"
+# else
+# define PCRE_DATA_SCOPE extern
+# endif
+#endif
+
/* The functions */
-extern int regcomp(regex_t *, const char *, int);
-extern int regexec(const regex_t *, const char *, size_t, regmatch_t *, int);
-extern size_t regerror(int, const regex_t *, char *, size_t);
-extern void regfree(regex_t *);
+PCRE_DATA_SCOPE int regcomp(regex_t *, const char *, int);
+PCRE_DATA_SCOPE int regexec(const regex_t *, const char *, size_t,
+ regmatch_t *, int);
+PCRE_DATA_SCOPE size_t regerror(int, const regex_t *, char *, size_t);
+PCRE_DATA_SCOPE void regfree(regex_t *);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/ext/pcre/pcrelib/pcretest.c b/ext/pcre/pcrelib/pcretest.c
index 9b6347086..f5c6cdd2e 100644
--- a/ext/pcre/pcrelib/pcretest.c
+++ b/ext/pcre/pcrelib/pcretest.c
@@ -46,13 +46,34 @@ POSSIBILITY OF SUCH DAMAGE.
#define PCRE_SPY /* For Win32 build, import data, not export */
-/* We need the internal info for displaying the results of pcre_study() and
-other internal data; pcretest also uses some of the fixed tables, and generally
-has "inside information" compared to a program that strictly follows the PCRE
-API. */
+/* We include pcre_internal.h because we need the internal info for displaying
+the results of pcre_study() and we also need to know about the internal
+macros, structures, and other internal data values; pcretest has "inside
+information" compared to a program that strictly follows the PCRE API. */
#include "pcre_internal.h"
+/* We need access to the data tables that PCRE uses. So as not to have to keep
+two copies, we include the source file here, changing the names of the external
+symbols to prevent clashes. */
+
+#define _pcre_utf8_table1 utf8_table1
+#define _pcre_utf8_table1_size utf8_table1_size
+#define _pcre_utf8_table2 utf8_table2
+#define _pcre_utf8_table3 utf8_table3
+#define _pcre_utf8_table4 utf8_table4
+#define _pcre_utt utt
+#define _pcre_utt_size utt_size
+#define _pcre_OP_lengths OP_lengths
+
+#include "pcre_tables.c"
+
+/* We also need the pcre_printint() function for printing out compiled
+patterns. This function is in a separate file so that it can be included in
+pcre_compile.c when that module is compiled with debugging enabled. */
+
+#include "pcre_printint.src"
+
/* It is possible to compile this test program without including support for
testing the POSIX interface, though this is not available via the standard
@@ -68,6 +89,8 @@ to the DFA matcher (NODFA), and without the doublecheck of the old "info"
function (define NOINFOCHECK). */
+/* Other parameters */
+
#ifndef CLOCKS_PER_SEC
#ifdef CLK_TCK
#define CLOCKS_PER_SEC CLK_TCK
@@ -83,6 +106,8 @@ function (define NOINFOCHECK). */
#define DBUFFER_SIZE BUFFER_SIZE
+/* Static variables */
+
static FILE *outfile;
static int log_store = 0;
static int callout_count;
@@ -162,7 +187,7 @@ if (i == 0 || i == 6) return 0; /* invalid UTF-8 */
/* i now has a value in the range 1-5 */
s = 6*i;
-d = (c & _pcre_utf8_table3[i]) << s;
+d = (c & utf8_table3[i]) << s;
for (j = 0; j < i; j++)
{
@@ -174,8 +199,8 @@ for (j = 0; j < i; j++)
/* Check that encoding was the correct unique one */
-for (j = 0; j < _pcre_utf8_table1_size; j++)
- if (d <= _pcre_utf8_table1[j]) break;
+for (j = 0; j < utf8_table1_size; j++)
+ if (d <= utf8_table1[j]) break;
if (j != i) return -(i+1);
/* Valid value */
@@ -189,6 +214,38 @@ return i+1;
/*************************************************
+* Convert character value to UTF-8 *
+*************************************************/
+
+/* This function takes an integer value in the range 0 - 0x7fffffff
+and encodes it as a UTF-8 character in 0 to 6 bytes.
+
+Arguments:
+ cvalue the character value
+ buffer pointer to buffer for result - at least 6 bytes long
+
+Returns: number of characters placed in the buffer
+*/
+
+static int
+ord2utf8(int cvalue, uschar *buffer)
+{
+register int i, j;
+for (i = 0; i < utf8_table1_size; i++)
+ if (cvalue <= utf8_table1[i]) break;
+buffer += i;
+for (j = i; j > 0; j--)
+ {
+ *buffer-- = 0x80 | (cvalue & 0x3f);
+ cvalue >>= 6;
+ }
+*buffer = utf8_table2[i] | cvalue;
+return i + 1;
+}
+
+
+
+/*************************************************
* Print character string *
*************************************************/
@@ -198,7 +255,7 @@ chars without printing. */
static int pchars(unsigned char *p, int length, FILE *f)
{
-int c;
+int c = 0;
int yield = 0;
while (length-- > 0)
@@ -418,6 +475,57 @@ return ((value & 0x000000ff) << 24) |
/*************************************************
+* Check match or recursion limit *
+*************************************************/
+
+static int
+check_match_limit(pcre *re, pcre_extra *extra, uschar *bptr, int len,
+ int start_offset, int options, int *use_offsets, int use_size_offsets,
+ int flag, unsigned long int *limit, int errnumber, const char *msg)
+{
+int count;
+int min = 0;
+int mid = 64;
+int max = -1;
+
+extra->flags |= flag;
+
+for (;;)
+ {
+ *limit = mid;
+
+ count = pcre_exec(re, extra, (char *)bptr, len, start_offset, options,
+ use_offsets, use_size_offsets);
+
+ if (count == errnumber)
+ {
+ /* fprintf(outfile, "Testing %s limit = %d\n", msg, mid); */
+ min = mid;
+ mid = (mid == max - 1)? max : (max > 0)? (min + max)/2 : mid*2;
+ }
+
+ else if (count >= 0 || count == PCRE_ERROR_NOMATCH ||
+ count == PCRE_ERROR_PARTIAL)
+ {
+ if (mid == min + 1)
+ {
+ fprintf(outfile, "Minimum %s limit = %d\n", msg, mid);
+ break;
+ }
+ /* fprintf(outfile, "Testing %s limit = %d\n", msg, mid); */
+ max = mid;
+ mid = (min + mid)/2;
+ }
+ else break; /* Some other error */
+ }
+
+extra->flags &= ~flag;
+return count;
+}
+
+
+
+/*************************************************
* Main Program *
*************************************************/
@@ -434,6 +542,7 @@ int op = 1;
int timeit = 0;
int showinfo = 0;
int showstore = 0;
+int quiet = 0;
int size_offsets = 45;
int size_offsets_max;
int *offsets = NULL;
@@ -474,6 +583,7 @@ while (argc > 1 && argv[op][0] == '-')
if (strcmp(argv[op], "-s") == 0 || strcmp(argv[op], "-m") == 0)
showstore = 1;
else if (strcmp(argv[op], "-t") == 0) timeit = 1;
+ else if (strcmp(argv[op], "-q") == 0) quiet = 1;
else if (strcmp(argv[op], "-i") == 0) showinfo = 1;
else if (strcmp(argv[op], "-d") == 0) showinfo = debug = 1;
#if !defined NODFA
@@ -506,6 +616,8 @@ while (argc > 1 && argv[op][0] == '-')
printf(" POSIX malloc threshold = %d\n", rc);
(void)pcre_config(PCRE_CONFIG_MATCH_LIMIT, &rc);
printf(" Default match limit = %d\n", rc);
+ (void)pcre_config(PCRE_CONFIG_MATCH_LIMIT_RECURSION, &rc);
+ printf(" Default recursion depth limit = %d\n", rc);
(void)pcre_config(PCRE_CONFIG_STACKRECURSE, &rc);
printf(" Match recursion uses %s\n", rc? "stack" : "heap");
exit(0);
@@ -577,9 +689,9 @@ pcre_free = new_free;
pcre_stack_malloc = stack_malloc;
pcre_stack_free = stack_free;
-/* Heading line, then prompt for first regex if stdin */
+/* Heading line unless quiet, then prompt for first regex if stdin */
-fprintf(outfile, "PCRE version %s\n\n", pcre_version());
+if (!quiet) fprintf(outfile, "PCRE version %s\n\n", pcre_version());
/* Main loop */
@@ -839,6 +951,9 @@ while (!done)
if ((options & PCRE_CASELESS) != 0) cflags |= REG_ICASE;
if ((options & PCRE_MULTILINE) != 0) cflags |= REG_NEWLINE;
if ((options & PCRE_DOTALL) != 0) cflags |= REG_DOTALL;
+ if ((options & PCRE_NO_AUTO_CAPTURE) != 0) cflags |= REG_NOSUB;
+ if ((options & PCRE_UTF8) != 0) cflags |= REG_UTF8;
+
rc = regcomp(&preg, (char *)p, cflags);
/* Compilation failed; go back for another re, skipping to blank line
@@ -988,7 +1103,7 @@ while (!done)
if (do_debug)
{
fprintf(outfile, "------------------------------------------------------------------\n");
- _pcre_printint(re, outfile);
+ pcre_printint(re, outfile);
}
new_info(re, NULL, PCRE_INFO_OPTIONS, &get_options);
@@ -1054,7 +1169,7 @@ while (!done)
fprintf(outfile, "Partial matching not supported\n");
if (get_options == 0) fprintf(outfile, "No options\n");
- else fprintf(outfile, "Options:%s%s%s%s%s%s%s%s%s%s%s\n",
+ else fprintf(outfile, "Options:%s%s%s%s%s%s%s%s%s%s%s%s\n",
((get_options & PCRE_ANCHORED) != 0)? " anchored" : "",
((get_options & PCRE_CASELESS) != 0)? " caseless" : "",
((get_options & PCRE_EXTENDED) != 0)? " extended" : "",
@@ -1064,6 +1179,7 @@ while (!done)
((get_options & PCRE_DOLLAR_ENDONLY) != 0)? " dollar_endonly" : "",
((get_options & PCRE_EXTRA) != 0)? " extra" : "",
((get_options & PCRE_UNGREEDY) != 0)? " ungreedy" : "",
+ ((get_options & PCRE_NO_AUTO_CAPTURE) != 0)? " no_auto_capture" : "",
((get_options & PCRE_UTF8) != 0)? " utf8" : "",
((get_options & PCRE_NO_UTF8_CHECK) != 0)? " no_utf8_check" : "");
@@ -1209,8 +1325,8 @@ while (!done)
for (;;)
{
- unsigned char *q;
- unsigned char *bptr = dbuffer;
+ uschar *q;
+ uschar *bptr = dbuffer;
int *use_offsets = offsets;
int use_size_offsets = size_offsets;
int callout_data = 0;
@@ -1290,7 +1406,7 @@ while (!done)
{
unsigned char buff8[8];
int ii, utn;
- utn = _pcre_ord2utf8(c, buff8);
+ utn = ord2utf8(c, buff8);
for (ii = 0; ii < utn - 1; ii++) *q++ = buff8[ii];
c = buff8[ii]; /* Last byte */
p = pt + 1;
@@ -1498,6 +1614,11 @@ while (!done)
(void)regerror(rc, &preg, (char *)buffer, BUFFER_SIZE);
fprintf(outfile, "No match: POSIX code %d: %s\n", rc, buffer);
}
+ else if ((((const pcre *)preg.re_pcre)->options & PCRE_NO_AUTO_CAPTURE)
+ != 0)
+ {
+ fprintf(outfile, "Matched with REG_NOSUB\n");
+ }
else
{
size_t i;
@@ -1558,48 +1679,26 @@ while (!done)
}
/* If find_match_limit is set, we want to do repeated matches with
- varying limits in order to find the minimum value. */
+ varying limits in order to find the minimum value for the match limit and
+ for the recursion limit. */
if (find_match_limit)
{
- int min = 0;
- int mid = 64;
- int max = -1;
-
if (extra == NULL)
{
extra = (pcre_extra *)malloc(sizeof(pcre_extra));
extra->flags = 0;
}
- extra->flags |= PCRE_EXTRA_MATCH_LIMIT;
- for (;;)
- {
- extra->match_limit = mid;
- count = pcre_exec(re, extra, (char *)bptr, len, start_offset,
- options | g_notempty, use_offsets, use_size_offsets);
- if (count == PCRE_ERROR_MATCHLIMIT)
- {
- /* fprintf(outfile, "Testing match limit = %d\n", mid); */
- min = mid;
- mid = (mid == max - 1)? max : (max > 0)? (min + max)/2 : mid*2;
- }
- else if (count >= 0 || count == PCRE_ERROR_NOMATCH ||
- count == PCRE_ERROR_PARTIAL)
- {
- if (mid == min + 1)
- {
- fprintf(outfile, "Minimum match limit = %d\n", mid);
- break;
- }
- /* fprintf(outfile, "Testing match limit = %d\n", mid); */
- max = mid;
- mid = (min + mid)/2;
- }
- else break; /* Some other error */
- }
+ count = check_match_limit(re, extra, bptr, len, start_offset,
+ options|g_notempty, use_offsets, use_size_offsets,
+ PCRE_EXTRA_MATCH_LIMIT, &(extra->match_limit),
+ PCRE_ERROR_MATCHLIMIT, "match()");
- extra->flags &= ~PCRE_EXTRA_MATCH_LIMIT;
+ count = check_match_limit(re, extra, bptr, len, start_offset,
+ options|g_notempty, use_offsets, use_size_offsets,
+ PCRE_EXTRA_MATCH_LIMIT_RECURSION, &(extra->match_limit_recursion),
+ PCRE_ERROR_RECURSIONLIMIT, "match() recursion");
}
/* If callout_data is set, use the interface with additional data */
diff --git a/ext/pcre/pcrelib/testdata/grepinput b/ext/pcre/pcrelib/testdata/grepinput
index 2a89c2e09..0ded82475 100644
--- a/ext/pcre/pcrelib/testdata/grepinput
+++ b/ext/pcre/pcrelib/testdata/grepinput
@@ -583,6 +583,26 @@ jumps over the lazy dog. The quick brown fox jumps over the lazy dog. The quick
brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
-------------------------------------------------------------------------------
-Check up on PATTERN near the end.
+aaaaa0
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+bbbbbb
+cccccccccccccccccccccccccccccccccccccccccc
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+eeeee
+aaaaa2
+ffffffffff
+
+This is a line before the binary zero.
+This line contains a binary zero here >This is a line after the binary zero.
+
+ABOVE the elephant
+ABOVE
+ABOVE theatre
+AB.VE
+AB.VE the turtle
+
+PUT NEW DATA ABOVE THIS LINE.
+=============================
+Check up on PATTERN near the end.
This is the last line of this file.
diff --git a/ext/pcre/pcrelib/testdata/greplist b/ext/pcre/pcrelib/testdata/greplist
index bb2705e39..1434ae96f 100644
--- a/ext/pcre/pcrelib/testdata/greplist
+++ b/ext/pcre/pcrelib/testdata/greplist
@@ -1,4 +1,7 @@
This is a file of patterns for testing the -f option. Don't include any blank
-lines because they will match everything!
+lines because they will match everything! This is no longer true, so have one.
+
pattern
line by itself
+
+End of the list of patterns.
diff --git a/ext/pcre/pcrelib/testdata/grepoutput b/ext/pcre/pcrelib/testdata/grepoutput
index 27ab7e4a5..1dd375b65 100644
--- a/ext/pcre/pcrelib/testdata/grepoutput
+++ b/ext/pcre/pcrelib/testdata/grepoutput
@@ -1,4 +1,3 @@
-pcregrep version 4.0 07-Jun-2005 using PCRE version 6.2 01-Aug-2005
---------------------------- Test 1 ------------------------------
PATTERN at the start of a line.
In the middle of a line, PATTERN appears.
@@ -9,23 +8,21 @@ PATTERN at the start of a line.
7:PATTERN at the start of a line.
8:In the middle of a line, PATTERN appears.
10:This pattern is in lower case.
-586:Check up on PATTERN near the end.
+608:Check up on PATTERN near the end.
---------------------------- Test 4 ------------------------------
4
---------------------------- Test 5 ------------------------------
./testdata/grepinput:7:PATTERN at the start of a line.
./testdata/grepinput:8:In the middle of a line, PATTERN appears.
./testdata/grepinput:10:This pattern is in lower case.
-./testdata/grepinput:586:Check up on PATTERN near the end.
---
+./testdata/grepinput:608:Check up on PATTERN near the end.
./testdata/grepinputx:3:Here is the pattern again.
./testdata/grepinputx:5:Pattern
---------------------------- Test 6 ------------------------------
7:PATTERN at the start of a line.
8:In the middle of a line, PATTERN appears.
10:This pattern is in lower case.
-586:Check up on PATTERN near the end.
---
+608:Check up on PATTERN near the end.
3:Here is the pattern again.
5:Pattern
---------------------------- Test 7 ------------------------------
@@ -87,7 +84,7 @@ That time it was on a line by itself.
---------------------------- Test 14 -----------------------------
./testdata/grepinputx:To pat or not to pat, that is the question.
---------------------------- Test 15 -----------------------------
-pcregrep: Error in regex at offset 4: nothing to repeat
+pcregrep: Error in command-line regex at offset 4: nothing to repeat
---------------------------- Test 16 -----------------------------
pcregrep: Failed to open ./testdata/nonexistfile: No such file or directory
---------------------------- Test 17 -----------------------------
@@ -116,14 +113,14 @@ of lines
36-sixteen
37-seventeen
---------------------------- Test 22 -----------------------------
-20-one
-21-two
-22-three
+21-one
+22-two
+23-three
24:four
--
-30-eleven
-31-twelve
-32-thirteen
+31-eleven
+32-twelve
+33-thirteen
34:fourteen
---------------------------- Test 23 -----------------------------
one
@@ -162,15 +159,15 @@ twenty
This is the last line of this file.
---------------------------- Test 25 -----------------------------
-14-
-15-complete pair
-16-of lines
-17-
-18-And there they were again, to check line numbers.
-19-
-20-one
-21-two
-22-three
+15-
+16-complete pair
+17-of lines
+18-
+19-And there they were again, to check line numbers.
+20-
+21-one
+22-two
+23-three
24:four
25-five
26-six
@@ -232,16 +229,16 @@ twenty
This is the last line of this file.
---------------------------- Test 28 -----------------------------
-13-of lines all by themselves.
-14-
-15-complete pair
-16-of lines
-17-
-18-And there they were again, to check line numbers.
-19-
-20-one
-21-two
-22-three
+14-of lines all by themselves.
+15-
+16-complete pair
+17-of lines
+18-
+19-And there they were again, to check line numbers.
+20-
+21-one
+22-two
+23-three
24:four
25-five
26-six
@@ -284,18 +281,18 @@ twenty
This is the last line of this file.
---------------------------- Test 30 -----------------------------
-./testdata/grepinput-3-features should be added at the end, because some of the tests involve the
-./testdata/grepinput-4-output of line numbers, and we don't want these to change.
-./testdata/grepinput-5-
+./testdata/grepinput-4-features should be added at the end, because some of the tests involve the
+./testdata/grepinput-5-output of line numbers, and we don't want these to change.
+./testdata/grepinput-6-
./testdata/grepinput:7:PATTERN at the start of a line.
./testdata/grepinput:8:In the middle of a line, PATTERN appears.
./testdata/grepinput-9-
./testdata/grepinput:10:This pattern is in lower case.
--
-./testdata/grepinput-582-brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog.
-./testdata/grepinput-583--------------------------------------------------------------------------------
-./testdata/grepinput-584-
-./testdata/grepinput:586:Check up on PATTERN near the end.
+./testdata/grepinput-605-PUT NEW DATA ABOVE THIS LINE.
+./testdata/grepinput-606-=============================
+./testdata/grepinput-607-
+./testdata/grepinput:608:Check up on PATTERN near the end.
--
./testdata/grepinputx-1-This is a second file of input for the pcregrep tests.
./testdata/grepinputx-2-
@@ -311,9 +308,8 @@ This is the last line of this file.
./testdata/grepinput-12-Here follows a whole lot of stuff that makes the file over 24K long.
./testdata/grepinput-13-
--
-./testdata/grepinput:586:Check up on PATTERN near the end.
-./testdata/grepinput-587-
-./testdata/grepinput-588-This is the last line of this file.
+./testdata/grepinput:608:Check up on PATTERN near the end.
+./testdata/grepinput-609-This is the last line of this file.
--
./testdata/grepinputx:3:Here is the pattern again.
./testdata/grepinputx-4-
@@ -334,3 +330,51 @@ RC=0
---------------------------- Test 36 -----------------------------
./testdata/grepinputx
RC=0
+---------------------------- Test 37 -----------------------------
+aaaaa0
+aaaaa2
+RC=0
+======== STDERR ========
+pcregrep: pcre_exec() error -8 while matching this line:
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+pcregrep: error -8 means that a resource limit was exceeded
+pcregrep: check your regex for nested unlimited loops
+pcregrep: pcre_exec() error -8 while matching this line:
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+---------------------------- Test 38 ------------------------------
+This line contains a binary zero here >---------------------------- Test 39 ------------------------------
+This is a line before the binary zero.
+This line contains a binary zero here >---------------------------- Test 40 ------------------------------
+This line contains a binary zero here >This is a line after the binary zero.
+---------------------------- Test 41 ------------------------------
+before the binary zero
+after the binary zero
+---------------------------- Test 41 ------------------------------
+./testdata/grepinput:595:before the binary zero
+./testdata/grepinput:597:after the binary zero
+---------------------------- Test 42 ------------------------------
+595:before
+596:zero
+597:after
+---------------------------- Test 43 ------------------------------
+595:before
+596:zero
+597:zero
+---------------------------- Test 44 ------------------------------
+10:pattern
+595:binary
+596:binary
+597:binary
+---------------------------- Test 45 ------------------------------
+pcregrep: Error in 2nd command-line regex at offset 9: missing )
+---------------------------- Test 46 ------------------------------
+AB.VE
+---------------------------- Test 47 ------------------------------
+ABOVE the elephant
+AB.VE
+AB.VE the turtle
+---------------------------- Test 48 ------------------------------
+ABOVE the elephant
+AB.VE
+AB.VE the turtle
+PUT NEW DATA ABOVE THIS LINE.
diff --git a/ext/pcre/pcrelib/testdata/testinput2 b/ext/pcre/pcrelib/testdata/testinput2
index befb65a44..60d2db00f 100644
--- a/ext/pcre/pcrelib/testdata/testinput2
+++ b/ext/pcre/pcrelib/testdata/testinput2
@@ -672,12 +672,18 @@
/^[[:^alpha:]]/D
+/[_[:alpha:]]/IS
+
/^[[:ascii:]]/D
/^[[:^ascii:]]/D
/^[[:blank:]]/D
+/^[[:^blank:]]/D
+
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+
/^[[:cntrl:]]/D
/^[[:digit:]]/D
@@ -1450,4 +1456,38 @@
"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+/[^()]*(?:\((?R)\)[^()]*)*/
+ (this(and)that
+ (this(and)that)
+ (this(and)that)stuff
+
+/[^()]*(?:\((?>(?R))\)[^()]*)*/
+ (this(and)that
+ (this(and)that)
+
+/[^()]*(?:\((?R)\))*[^()]*/
+ (this(and)that
+ (this(and)that)
+
+/(?:\((?R)\))*[^()]*/
+ (this(and)that
+ (this(and)that)
+ ((this))
+
+/(?:\((?R)\))|[^()]*/
+ (this(and)that
+ (this(and)that)
+ (this)
+ ((this))
+
+/a(b)c/PN
+ abc
+
+/a(?P<name>b)c/PN
+ abc
+
+/\x{100}/
+
+/\x{0000ff}/
+
/ End of testinput2 /
diff --git a/ext/pcre/pcrelib/testdata/testinput3 b/ext/pcre/pcrelib/testdata/testinput3
index c2abdbfdb..e6ac826f7 100644
--- a/ext/pcre/pcrelib/testdata/testinput3
+++ b/ext/pcre/pcrelib/testdata/testinput3
@@ -62,4 +62,30 @@
*** Failers
école
+/\W+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/[\W]+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/[^[:alpha:]]+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/\w+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/[\w]+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/[[:alpha:]]+/Lfr_FR
+ >>>\xaa<<<
+ >>>\xba<<<
+
+/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR
+
/ End of testinput3 /
diff --git a/ext/pcre/pcrelib/testdata/testinput4 b/ext/pcre/pcrelib/testdata/testinput4
index c16e9d998..6e0099c64 100644
--- a/ext/pcre/pcrelib/testdata/testinput4
+++ b/ext/pcre/pcrelib/testdata/testinput4
@@ -510,4 +510,7 @@
/^\x{85}$/8i
\x{85}
+/^\ሴ/8
+ ሴ
+
/ End of testinput4 /
diff --git a/ext/pcre/pcrelib/testdata/testinput5 b/ext/pcre/pcrelib/testdata/testinput5
index fe6ee3e65..dc45445f6 100644
--- a/ext/pcre/pcrelib/testdata/testinput5
+++ b/ext/pcre/pcrelib/testdata/testinput5
@@ -260,4 +260,9 @@
/\w/8
\x{100}X
+/a\x{1234}b/P8
+ a\x{1234}b
+
+/^\ሴ/8D
+
/ End of testinput5 /
diff --git a/ext/pcre/pcrelib/testdata/testinput6 b/ext/pcre/pcrelib/testdata/testinput6
index 01a39477a..a45920a17 100644
--- a/ext/pcre/pcrelib/testdata/testinput6
+++ b/ext/pcre/pcrelib/testdata/testinput6
@@ -51,6 +51,7 @@
\x{09f}
/^\p{Cn}/8
+ \x{e0000}
** Failers
\x{09f}
@@ -77,9 +78,15 @@
/^\p{Lo}/8
\x{1bb}
+ \x{3400}
+ \x{3401}
+ \x{4d00}
+ \x{4db4}
+ \x{4db5}
** Failers
a
\x{2b0}
+ \x{4db6}
/^\p{Lt}/8
\x{1c5}
@@ -514,4 +521,221 @@
A\x{300}\x{301}B\x{300}C\x{300}\x{301}X
A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X
+/^\p{Han}+/8
+ \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ ** Failers
+ \x{2e7f}
+
+/^\P{Katakana}+/8
+ \x{3105}
+ ** Failers
+ \x{30ff}
+
+/^[\p{Arabic}]/8
+ \x{06e9}
+ \x{060b}
+ ** Failers
+ X\x{06e9}
+
+/^[\P{Yi}]/8
+ \x{2f800}
+ ** Failers
+ \x{a014}
+ \x{a4c6}
+
+/^\p{Any}X/8
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ X
+
+/^\P{Any}X/8
+ ** Failers
+ AX
+
+/^\p{Any}?X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ ABXYZ
+
+/^\P{Any}?X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ ABXYZ
+
+/^\p{Any}+X/8
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+ XYZ
+
+/^\P{Any}+X/8
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ XYZ
+
+/^\p{Any}*X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+
+/^\P{Any}*X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+
+/^[\p{Any}]X/8
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ X
+
+/^[\P{Any}]X/8
+ ** Failers
+ AX
+
+/^[\p{Any}]?X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ ABXYZ
+
+/^[\P{Any}]?X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ ABXYZ
+
+/^[\p{Any}]+X/8
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+ XYZ
+
+/^[\P{Any}]+X/8
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ XYZ
+
+/^[\p{Any}]*X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+
+/^[\P{Any}]*X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+
+/^\p{Any}{3,5}?/8
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\p{Any}{3,5}/8
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\P{Any}{3,5}?/8
+ ** Failers
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\p{L&}X/8
+ AXY
+ aXY
+ \x{1c5}XY
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]X/8
+ AXY
+ aXY
+ \x{1c5}XY
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\p{L&}+X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]+X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\p{L&}+?X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]+?X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\P{L&}X/8
+ !XY
+ \x{1bb}XY
+ \x{2b0}XY
+ ** Failers
+ \x{1c5}XY
+ AXY
+
+/^[\P{L&}]X/8
+ !XY
+ \x{1bb}XY
+ \x{2b0}XY
+ ** Failers
+ \x{1c5}XY
+ AXY
+
/ End of testinput6 /
diff --git a/ext/pcre/pcrelib/testdata/testinput7 b/ext/pcre/pcrelib/testdata/testinput7
index 4dd6037d3..0c7418ed3 100644
--- a/ext/pcre/pcrelib/testdata/testinput7
+++ b/ext/pcre/pcrelib/testdata/testinput7
@@ -483,10 +483,10 @@
/(?<=foo)bar/
xyzfo\P
- foob\R\P\>2
+ foob\P\>2
foobar...\R\P\>4
xyzfo\P
- foobar\R\>2
+ foobar\>2
*** Failers
xyzfo\P
obar\R
@@ -4010,4 +4010,12 @@
** Failers
line one\nthis is a line\nbreak in the second line
+/1234/
+ 123\P
+ a4\P\R
+
+/1234/
+ 123\P
+ 4\P\R
+
/ End of testinput7 /
diff --git a/ext/pcre/pcrelib/testdata/testinput9 b/ext/pcre/pcrelib/testdata/testinput9
index f18dd12c4..23d3d3e43 100644
--- a/ext/pcre/pcrelib/testdata/testinput9
+++ b/ext/pcre/pcrelib/testdata/testinput9
@@ -596,4 +596,221 @@
\x{100}
\x{101}
+/^\p{Han}+/8
+ \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ ** Failers
+ \x{2e7f}
+
+/^\P{Katakana}+/8
+ \x{3105}
+ ** Failers
+ \x{30ff}
+
+/^[\p{Arabic}]/8
+ \x{06e9}
+ \x{060b}
+ ** Failers
+ X\x{06e9}
+
+/^[\P{Yi}]/8
+ \x{2f800}
+ ** Failers
+ \x{a014}
+ \x{a4c6}
+
+/^\p{Any}X/8
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ X
+
+/^\P{Any}X/8
+ ** Failers
+ AX
+
+/^\p{Any}?X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ ABXYZ
+
+/^\P{Any}?X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ ABXYZ
+
+/^\p{Any}+X/8
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+ XYZ
+
+/^\P{Any}+X/8
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ XYZ
+
+/^\p{Any}*X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+
+/^\P{Any}*X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+
+/^[\p{Any}]X/8
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ X
+
+/^[\P{Any}]X/8
+ ** Failers
+ AX
+
+/^[\p{Any}]?X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ ** Failers
+ ABXYZ
+
+/^[\P{Any}]?X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ ABXYZ
+
+/^[\p{Any}]+X/8
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+ XYZ
+
+/^[\P{Any}]+X/8
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ XYZ
+
+/^[\p{Any}]*X/8
+ XYZ
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+ ** Failers
+
+/^[\P{Any}]*X/8
+ XYZ
+ ** Failers
+ AXYZ
+ \x{1234}XYZ
+ A\x{1234}XYZ
+
+/^\p{Any}{3,5}?/8
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\p{Any}{3,5}/8
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\P{Any}{3,5}?/8
+ ** Failers
+ abcdefgh
+ \x{1234}\n\r\x{3456}xyz
+
+/^\p{L&}X/8
+ AXY
+ aXY
+ \x{1c5}XY
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]X/8
+ AXY
+ aXY
+ \x{1c5}XY
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\p{L&}+X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]+X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\p{L&}+?X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^[\p{L&}]+?X/8
+ AXY
+ aXY
+ AbcdeXyz
+ \x{1c5}AbXY
+ abcDEXypqreXlmn
+ ** Failers
+ \x{1bb}XY
+ \x{2b0}XY
+ !XY
+
+/^\P{L&}X/8
+ !XY
+ \x{1bb}XY
+ \x{2b0}XY
+ ** Failers
+ \x{1c5}XY
+ AXY
+
+/^[\P{L&}]X/8
+ !XY
+ \x{1bb}XY
+ \x{2b0}XY
+ ** Failers
+ \x{1c5}XY
+ AXY
+
/ End /
diff --git a/ext/pcre/pcrelib/testdata/testoutput1 b/ext/pcre/pcrelib/testdata/testoutput1
index c82316255..3fdde0aab 100644
--- a/ext/pcre/pcrelib/testdata/testoutput1
+++ b/ext/pcre/pcrelib/testdata/testoutput1
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/the quick brown fox/
the quick brown fox
0: the quick brown fox
diff --git a/ext/pcre/pcrelib/testdata/testoutput2 b/ext/pcre/pcrelib/testdata/testoutput2
index 8f078b846..55adba0b9 100644
--- a/ext/pcre/pcrelib/testdata/testoutput2
+++ b/ext/pcre/pcrelib/testdata/testoutput2
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/(a)b|/
Capturing subpattern count = 1
No options
@@ -1945,6 +1943,14 @@ Options: anchored
No first char
No need char
+/[_[:alpha:]]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
+ _ a b c d e f g h i j k l m n o p q r s t u v w x y z
+
/^[[:ascii:]]/D
------------------------------------------------------------------
0 37 Bra 0
@@ -1984,6 +1990,26 @@ Options: anchored
No first char
No need char
+/^[[:^blank:]]/D
+------------------------------------------------------------------
+ 0 37 Bra 0
+ 3 ^
+ 4 [\x00-\x08\x0a-\x1f!-\xff]
+ 37 37 Ket
+ 40 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored
+No first char
+No need char
+
+/[\n\x0b\x0c\x0d[:blank:]]/IS
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
+
/^[[:cntrl:]]/D
------------------------------------------------------------------
0 37 Bra 0
@@ -3995,14 +4021,16 @@ Need char = '<'
/(a(?1)b)/D
------------------------------------------------------------------
- 0 16 Bra 0
- 3 10 Bra 1
+ 0 22 Bra 0
+ 3 16 Bra 1
6 a
- 8 3 Recurse
- 11 b
- 13 10 Ket
- 16 16 Ket
- 19 End
+ 8 6 Once
+ 11 3 Recurse
+ 14 6 Ket
+ 17 b
+ 19 16 Ket
+ 22 22 Ket
+ 25 End
------------------------------------------------------------------
Capturing subpattern count = 1
No options
@@ -4014,7 +4042,7 @@ Need char = 'b'
0 22 Bra 0
3 16 Bra 1
6 a
- 8 6 Bra 0
+ 8 6 Once
11 3 Recurse
14 6 KetRmax
17 b
@@ -4246,7 +4274,7 @@ Need char = 'a'
/(?P<a>a)...(?P=a)bbb(?P>a)d/D
------------------------------------------------------------------
- 0 28 Bra 0
+ 0 34 Bra 0
3 5 Bra 1
6 a
8 5 Ket
@@ -4255,10 +4283,12 @@ Need char = 'a'
13 Any
14 \1
17 bbb
- 23 3 Recurse
- 26 d
- 28 28 Ket
- 31 End
+ 23 6 Once
+ 26 3 Recurse
+ 29 6 Ket
+ 32 d
+ 34 34 Ket
+ 37 End
------------------------------------------------------------------
Capturing subpattern count = 1
Max back reference = 1
@@ -4418,7 +4448,7 @@ No need char
24 End
------------------------------------------------------------------
Capturing subpattern count = 0
-Options:
+Options: no_auto_capture
First char = 'a'
Need char = 'c'
abc
@@ -4439,7 +4469,7 @@ Need char = 'c'
Capturing subpattern count = 1
Named capturing subpatterns:
one 1
-Options:
+Options: no_auto_capture
First char = 'a'
Need char = 'c'
abc
@@ -4461,7 +4491,7 @@ Need char = 'c'
Capturing subpattern count = 1
Named capturing subpatterns:
named 1
-Options:
+Options: no_auto_capture
First char = 'a'
Need char = 'c'
@@ -4472,11 +4502,13 @@ No options
No first char
Need char = 'z'
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
-Minimum match limit = 8
+Minimum match() limit = 8
+Minimum match() recursion limit = 7
0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaz\M
-Minimum match limit = 32768
+Minimum match() limit = 32768
+Minimum match() recursion limit = 43
No match
/(aaa(?C1)bbb|ab)/
@@ -4633,18 +4665,20 @@ Need char = ']'
/(a(b(?2)c))?/D
------------------------------------------------------------------
- 0 25 Bra 0
+ 0 31 Bra 0
3 Brazero
- 4 18 Bra 1
+ 4 24 Bra 1
7 a
- 9 10 Bra 2
+ 9 16 Bra 2
12 b
- 14 9 Recurse
- 17 c
- 19 10 Ket
- 22 18 Ket
- 25 25 Ket
- 28 End
+ 14 6 Once
+ 17 9 Recurse
+ 20 6 Ket
+ 23 c
+ 25 16 Ket
+ 28 24 Ket
+ 31 31 Ket
+ 34 End
------------------------------------------------------------------
Capturing subpattern count = 2
No options
@@ -4653,18 +4687,20 @@ No need char
/(a(b(?2)c))*/D
------------------------------------------------------------------
- 0 25 Bra 0
+ 0 31 Bra 0
3 Brazero
- 4 18 Bra 1
+ 4 24 Bra 1
7 a
- 9 10 Bra 2
+ 9 16 Bra 2
12 b
- 14 9 Recurse
- 17 c
- 19 10 Ket
- 22 18 KetRmax
- 25 25 Ket
- 28 End
+ 14 6 Once
+ 17 9 Recurse
+ 20 6 Ket
+ 23 c
+ 25 16 Ket
+ 28 24 KetRmax
+ 31 31 Ket
+ 34 End
------------------------------------------------------------------
Capturing subpattern count = 2
No options
@@ -4673,29 +4709,33 @@ No need char
/(a(b(?2)c)){0,2}/D
------------------------------------------------------------------
- 0 53 Bra 0
+ 0 65 Bra 0
3 Brazero
- 4 46 Bra 0
- 7 18 Bra 1
+ 4 58 Bra 0
+ 7 24 Bra 1
10 a
- 12 10 Bra 2
+ 12 16 Bra 2
15 b
- 17 12 Recurse
- 20 c
- 22 10 Ket
- 25 18 Ket
- 28 Brazero
- 29 18 Bra 1
- 32 a
- 34 10 Bra 2
- 37 b
- 39 12 Recurse
- 42 c
- 44 10 Ket
- 47 18 Ket
- 50 46 Ket
- 53 53 Ket
- 56 End
+ 17 6 Once
+ 20 12 Recurse
+ 23 6 Ket
+ 26 c
+ 28 16 Ket
+ 31 24 Ket
+ 34 Brazero
+ 35 24 Bra 1
+ 38 a
+ 40 16 Bra 2
+ 43 b
+ 45 6 Once
+ 48 12 Recurse
+ 51 6 Ket
+ 54 c
+ 56 16 Ket
+ 59 24 Ket
+ 62 58 Ket
+ 65 65 Ket
+ 68 End
------------------------------------------------------------------
Capturing subpattern count = 2
No options
@@ -5939,6 +5979,86 @@ Matched, but too many substrings
13: a
14: a
+/[^()]*(?:\((?R)\)[^()]*)*/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ (this(and)that
+ 0:
+ (this(and)that)
+ 0: (this(and)that)
+ (this(and)that)stuff
+ 0: (this(and)that)stuff
+
+/[^()]*(?:\((?>(?R))\)[^()]*)*/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ (this(and)that
+ 0:
+ (this(and)that)
+ 0: (this(and)that)
+
+/[^()]*(?:\((?R)\))*[^()]*/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ (this(and)that
+ 0:
+ (this(and)that)
+ 0: (this(and)that)
+
+/(?:\((?R)\))*[^()]*/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ (this(and)that
+ 0:
+ (this(and)that)
+ 0:
+ ((this))
+ 0: ((this))
+
+/(?:\((?R)\))|[^()]*/
+Capturing subpattern count = 0
+Partial matching not supported
+No options
+No first char
+No need char
+ (this(and)that
+ 0:
+ (this(and)that)
+ 0:
+ (this)
+ 0: (this)
+ ((this))
+ 0: ((this))
+
+/a(b)c/PN
+ abc
+Matched with REG_NOSUB
+
+/a(?P<name>b)c/PN
+ abc
+Matched with REG_NOSUB
+
+/\x{100}/
+Failed: character value in \x{...} sequence is too large at offset 6
+
+/\x{0000ff}/
+Capturing subpattern count = 0
+No options
+First char = 255
+No need char
+
/ End of testinput2 /
Capturing subpattern count = 0
No options
diff --git a/ext/pcre/pcrelib/testdata/testoutput3 b/ext/pcre/pcrelib/testdata/testoutput3
index 16ebc7125..06e2888d9 100644
--- a/ext/pcre/pcrelib/testdata/testoutput3
+++ b/ext/pcre/pcrelib/testdata/testoutput3
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/^[\w]+/
*** Failers
No match
@@ -95,8 +93,8 @@ No first char
No need char
Starting byte set: 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P
Q R S T U V W X Y Z _ a b c d e f g h i j k l m n o p q r s t u v w x y z
- µ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â ã ä
- å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
+ ª µ º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ ß à á â
+ ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ø ù ú û ü ý þ ÿ
/^[\xc8-\xc9]/iLfr_FR
École
@@ -112,4 +110,54 @@ No match
école
No match
+/\W+/Lfr_FR
+ >>>\xaa<<<
+ 0: >>>
+ >>>\xba<<<
+ 0: >>>
+
+/[\W]+/Lfr_FR
+ >>>\xaa<<<
+ 0: >>>
+ >>>\xba<<<
+ 0: >>>
+
+/[^[:alpha:]]+/Lfr_FR
+ >>>\xaa<<<
+ 0: >>>
+ >>>\xba<<<
+ 0: >>>
+
+/\w+/Lfr_FR
+ >>>\xaa<<<
+ 0: ª
+ >>>\xba<<<
+ 0: º
+
+/[\w]+/Lfr_FR
+ >>>\xaa<<<
+ 0: ª
+ >>>\xba<<<
+ 0: º
+
+/[[:alpha:]]+/Lfr_FR
+ >>>\xaa<<<
+ 0: ª
+ >>>\xba<<<
+ 0: º
+
+/[[:alpha:]][[:lower:]][[:upper:]]/DLfr_FR
+------------------------------------------------------------------
+ 0 102 Bra 0
+ 3 [A-Za-zªµºÀ-ÖØ-öø-ÿ]
+ 36 [a-zµß-öø-ÿ]
+ 69 [A-ZÀ-ÖØ-Þ]
+102 102 Ket
+105 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+No options
+No first char
+No need char
+
/ End of testinput3 /
diff --git a/ext/pcre/pcrelib/testdata/testoutput4 b/ext/pcre/pcrelib/testdata/testoutput4
index 234fd1ae1..1b98f86a3 100644
--- a/ext/pcre/pcrelib/testdata/testoutput4
+++ b/ext/pcre/pcrelib/testdata/testoutput4
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/-- Do not use the \x{} construct except with patterns that have the --/
/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
No match
@@ -900,4 +898,8 @@ No match
\x{85}
0: \x{85}
+/^\ሴ/8
+ ሴ
+ 0: \x{1234}
+
/ End of testinput4 /
diff --git a/ext/pcre/pcrelib/testdata/testoutput5 b/ext/pcre/pcrelib/testdata/testoutput5
index 6e0d41802..533fd84b6 100644
--- a/ext/pcre/pcrelib/testdata/testoutput5
+++ b/ext/pcre/pcrelib/testdata/testoutput5
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/\x{100}/8DM
Memory allocation (code space): 10
------------------------------------------------------------------
@@ -645,12 +643,14 @@ Need char = 'A'
/\x{100}*\d(?R)/8D
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 16 Bra 0
3 \x{100}*
6 \d
- 7 0 Recurse
- 10 10 Ket
- 13 End
+ 7 6 Once
+ 10 0 Recurse
+ 13 6 Ket
+ 16 16 Ket
+ 19 End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
@@ -660,10 +660,10 @@ No need char
/[^\x{c4}]/D
------------------------------------------------------------------
- 0 36 Bra 0
- 3 [\x01-35-bd-z|~-\xff] (neg)
- 36 36 Ket
- 39 End
+ 0 5 Bra 0
+ 3 [^\xc4]
+ 5 5 Ket
+ 8 End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
@@ -912,14 +912,16 @@ No match
/\x{100}abc(xyz(?1))/8D
------------------------------------------------------------------
- 0 27 Bra 0
+ 0 33 Bra 0
3 \x{100}abc
- 12 12 Bra 1
+ 12 18 Bra 1
15 xyz
- 21 12 Recurse
- 24 12 Ket
- 27 27 Ket
- 30 End
+ 21 6 Once
+ 24 12 Recurse
+ 27 6 Ket
+ 30 18 Ket
+ 33 33 Ket
+ 36 End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
@@ -928,15 +930,17 @@ Need char = 'z'
/[^\x{100}]abc(xyz(?1))/8D
------------------------------------------------------------------
- 0 32 Bra 0
+ 0 38 Bra 0
3 [^\x{100}]
11 abc
- 17 12 Bra 1
+ 17 18 Bra 1
20 xyz
- 26 17 Recurse
- 29 12 Ket
- 32 32 Ket
- 35 End
+ 26 6 Once
+ 29 17 Recurse
+ 32 6 Ket
+ 35 18 Ket
+ 38 38 Ket
+ 41 End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
@@ -945,15 +949,17 @@ Need char = 'z'
/[ab\x{100}]abc(xyz(?1))/8D
------------------------------------------------------------------
- 0 64 Bra 0
+ 0 70 Bra 0
3 [ab\x{100}]
43 abc
- 49 12 Bra 1
+ 49 18 Bra 1
52 xyz
- 58 49 Recurse
- 61 12 Ket
- 64 64 Ket
- 67 End
+ 58 6 Once
+ 61 49 Recurse
+ 64 6 Ket
+ 67 18 Ket
+ 70 70 Ket
+ 73 End
------------------------------------------------------------------
Capturing subpattern count = 1
Options: utf8
@@ -962,18 +968,20 @@ Need char = 'z'
/(\x{100}(b(?2)c))?/D8
------------------------------------------------------------------
- 0 26 Bra 0
+ 0 32 Bra 0
3 Brazero
- 4 19 Bra 1
+ 4 25 Bra 1
7 \x{100}
- 10 10 Bra 2
+ 10 16 Bra 2
13 b
- 15 10 Recurse
- 18 c
- 20 10 Ket
- 23 19 Ket
- 26 26 Ket
- 29 End
+ 15 6 Once
+ 18 10 Recurse
+ 21 6 Ket
+ 24 c
+ 26 16 Ket
+ 29 25 Ket
+ 32 32 Ket
+ 35 End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
@@ -982,29 +990,33 @@ No need char
/(\x{100}(b(?2)c)){0,2}/D8
------------------------------------------------------------------
- 0 55 Bra 0
+ 0 67 Bra 0
3 Brazero
- 4 48 Bra 0
- 7 19 Bra 1
+ 4 60 Bra 0
+ 7 25 Bra 1
10 \x{100}
- 13 10 Bra 2
+ 13 16 Bra 2
16 b
- 18 13 Recurse
- 21 c
- 23 10 Ket
- 26 19 Ket
- 29 Brazero
- 30 19 Bra 1
- 33 \x{100}
- 36 10 Bra 2
- 39 b
- 41 13 Recurse
- 44 c
- 46 10 Ket
- 49 19 Ket
- 52 48 Ket
- 55 55 Ket
- 58 End
+ 18 6 Once
+ 21 13 Recurse
+ 24 6 Ket
+ 27 c
+ 29 16 Ket
+ 32 25 Ket
+ 35 Brazero
+ 36 25 Bra 1
+ 39 \x{100}
+ 42 16 Bra 2
+ 45 b
+ 47 6 Once
+ 50 13 Recurse
+ 53 6 Ket
+ 56 c
+ 58 16 Ket
+ 61 25 Ket
+ 64 60 Ket
+ 67 67 Ket
+ 70 End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
@@ -1013,18 +1025,20 @@ No need char
/(\x{100}(b(?1)c))?/D8
------------------------------------------------------------------
- 0 26 Bra 0
+ 0 32 Bra 0
3 Brazero
- 4 19 Bra 1
+ 4 25 Bra 1
7 \x{100}
- 10 10 Bra 2
+ 10 16 Bra 2
13 b
- 15 4 Recurse
- 18 c
- 20 10 Ket
- 23 19 Ket
- 26 26 Ket
- 29 End
+ 15 6 Once
+ 18 4 Recurse
+ 21 6 Ket
+ 24 c
+ 26 16 Ket
+ 29 25 Ket
+ 32 32 Ket
+ 35 End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
@@ -1033,29 +1047,33 @@ No need char
/(\x{100}(b(?1)c)){0,2}/D8
------------------------------------------------------------------
- 0 55 Bra 0
+ 0 67 Bra 0
3 Brazero
- 4 48 Bra 0
- 7 19 Bra 1
+ 4 60 Bra 0
+ 7 25 Bra 1
10 \x{100}
- 13 10 Bra 2
+ 13 16 Bra 2
16 b
- 18 7 Recurse
- 21 c
- 23 10 Ket
- 26 19 Ket
- 29 Brazero
- 30 19 Bra 1
- 33 \x{100}
- 36 10 Bra 2
- 39 b
- 41 7 Recurse
- 44 c
- 46 10 Ket
- 49 19 Ket
- 52 48 Ket
- 55 55 Ket
- 58 End
+ 18 6 Once
+ 21 7 Recurse
+ 24 6 Ket
+ 27 c
+ 29 16 Ket
+ 32 25 Ket
+ 35 Brazero
+ 36 25 Bra 1
+ 39 \x{100}
+ 42 16 Bra 2
+ 45 b
+ 47 6 Once
+ 50 7 Recurse
+ 53 6 Ket
+ 56 c
+ 58 16 Ket
+ 61 25 Ket
+ 64 60 Ket
+ 67 67 Ket
+ 70 End
------------------------------------------------------------------
Capturing subpattern count = 2
Options: utf8
@@ -1072,4 +1090,21 @@ No need char
\x{100}X
0: X
+/a\x{1234}b/P8
+ a\x{1234}b
+ 0: a\x{1234}b
+
+/^\ሴ/8D
+------------------------------------------------------------------
+ 0 8 Bra 0
+ 3 ^
+ 4 \x{1234}
+ 8 8 Ket
+ 11 End
+------------------------------------------------------------------
+Capturing subpattern count = 0
+Options: anchored utf8
+No first char
+No need char
+
/ End of testinput5 /
diff --git a/ext/pcre/pcrelib/testdata/testoutput6 b/ext/pcre/pcrelib/testdata/testoutput6
index 9f9421e51..87833bd26 100644
--- a/ext/pcre/pcrelib/testdata/testoutput6
+++ b/ext/pcre/pcrelib/testdata/testoutput6
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/^\pC\pL\pM\pN\pP\pS\pZ</8
\x7f\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
0: \x{7f}\x{c0}\x{30f}\x{660}\x{66c}\x{f01}\x{1680}<
@@ -85,6 +83,8 @@ No match
No match
/^\p{Cn}/8
+ \x{e0000}
+ 0: \x{e0000}
** Failers
No match
\x{09f}
@@ -127,12 +127,24 @@ No match
/^\p{Lo}/8
\x{1bb}
0: \x{1bb}
+ \x{3400}
+ 0: \x{3400}
+ \x{3401}
+ 0: \x{3401}
+ \x{4d00}
+ 0: \x{4d00}
+ \x{4db4}
+ 0: \x{4db4}
+ \x{4db5}
+ 0: \x{4db5}
** Failers
No match
a
No match
\x{2b0}
No match
+ \x{4db6}
+No match
/^\p{Lt}/8
\x{1c5}
@@ -538,10 +550,10 @@ No match
/[\p{L}]/D
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 11 Bra 0
3 [\p{L}]
- 10 10 Ket
- 13 End
+ 11 11 Ket
+ 14 End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
@@ -550,10 +562,10 @@ No need char
/[\p{^L}]/D
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 11 Bra 0
3 [\P{L}]
- 10 10 Ket
- 13 End
+ 11 11 Ket
+ 14 End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
@@ -562,10 +574,10 @@ No need char
/[\P{L}]/D
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 11 Bra 0
3 [\P{L}]
- 10 10 Ket
- 13 End
+ 11 11 Ket
+ 14 End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
@@ -574,10 +586,10 @@ No need char
/[\P{^L}]/D
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 11 Bra 0
3 [\p{L}]
- 10 10 Ket
- 13 End
+ 11 11 Ket
+ 14 End
------------------------------------------------------------------
Capturing subpattern count = 0
No options
@@ -586,10 +598,10 @@ No need char
/[abc\p{L}\x{0660}]/8D
------------------------------------------------------------------
- 0 45 Bra 0
+ 0 46 Bra 0
3 [a-c\p{L}\x{660}]
- 45 45 Ket
- 48 End
+ 46 46 Ket
+ 49 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
@@ -597,12 +609,12 @@ No first char
No need char
/[\p{Nd}]/8DM
-Memory allocation (code space): 46
+Memory allocation (code space): 47
------------------------------------------------------------------
- 0 10 Bra 0
+ 0 11 Bra 0
3 [\p{Nd}]
- 10 10 Ket
- 13 End
+ 11 11 Ket
+ 14 End
------------------------------------------------------------------
Capturing subpattern count = 0
Options: utf8
@@ -612,12 +624,12 @@ No need char
0: 1
/[\p{Nd}+-]+/8DM
-Memory allocation (code space): 47
+Memory allocation (code space): 48
------------------------------------------------------------------
- 0 43 Bra 0
+ 0 44 Bra 0
3 [+\-\p{Nd}]+
- 43 43 Ket
- 46 End
+ 44 44 Ket
+ 47 End
------------------------------------------------------------------
Capturing subpattern count = 0
Partial matching not supported
@@ -1010,4 +1022,376 @@ No match
0: A\x{300}\x{301}B\x{300}C
1: C
+/^\p{Han}+/8
+ \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ 0: \x{2e81}\x{3007}\x{2f804}
+ ** Failers
+No match
+ \x{2e7f}
+No match
+
+/^\P{Katakana}+/8
+ \x{3105}
+ 0: \x{3105}
+ ** Failers
+ 0: ** Failers
+ \x{30ff}
+No match
+
+/^[\p{Arabic}]/8
+ \x{06e9}
+ 0: \x{6e9}
+ \x{060b}
+ 0: \x{60b}
+ ** Failers
+No match
+ X\x{06e9}
+No match
+
+/^[\P{Yi}]/8
+ \x{2f800}
+ 0: \x{2f800}
+ ** Failers
+ 0: *
+ \x{a014}
+No match
+ \x{a4c6}
+No match
+
+/^\p{Any}X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ X
+No match
+
+/^\P{Any}X/8
+ ** Failers
+No match
+ AX
+No match
+
+/^\p{Any}?X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ ABXYZ
+No match
+
+/^\P{Any}?X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ ABXYZ
+No match
+
+/^\p{Any}+X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+ XYZ
+No match
+
+/^\P{Any}+X/8
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+ XYZ
+No match
+
+/^\p{Any}*X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+
+/^\P{Any}*X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+
+/^[\p{Any}]X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ X
+No match
+
+/^[\P{Any}]X/8
+ ** Failers
+No match
+ AX
+No match
+
+/^[\p{Any}]?X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ ABXYZ
+No match
+
+/^[\P{Any}]?X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ ABXYZ
+No match
+
+/^[\p{Any}]+X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+ XYZ
+No match
+
+/^[\P{Any}]+X/8
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+ XYZ
+No match
+
+/^[\p{Any}]*X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+
+/^[\P{Any}]*X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+
+/^\p{Any}{3,5}?/8
+ abcdefgh
+ 0: abc
+ \x{1234}\n\r\x{3456}xyz
+ 0: \x{1234}\x{0a}\x{0d}
+
+/^\p{Any}{3,5}/8
+ abcdefgh
+ 0: abcde
+ \x{1234}\n\r\x{3456}xyz
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+
+/^\P{Any}{3,5}?/8
+ ** Failers
+No match
+ abcdefgh
+No match
+ \x{1234}\n\r\x{3456}xyz
+No match
+
+/^\p{L&}X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ \x{1c5}XY
+ 0: \x{1c5}X
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ \x{1c5}XY
+ 0: \x{1c5}X
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\p{L&}+X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]+X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\p{L&}+?X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]+?X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\P{L&}X/8
+ !XY
+ 0: !X
+ \x{1bb}XY
+ 0: \x{1bb}X
+ \x{2b0}XY
+ 0: \x{2b0}X
+ ** Failers
+No match
+ \x{1c5}XY
+No match
+ AXY
+No match
+
+/^[\P{L&}]X/8
+ !XY
+ 0: !X
+ \x{1bb}XY
+ 0: \x{1bb}X
+ \x{2b0}XY
+ 0: \x{2b0}X
+ ** Failers
+No match
+ \x{1c5}XY
+No match
+ AXY
+No match
+
/ End of testinput6 /
diff --git a/ext/pcre/pcrelib/testdata/testoutput7 b/ext/pcre/pcrelib/testdata/testoutput7
index 8e55069dd..b50abeef8 100644
--- a/ext/pcre/pcrelib/testdata/testoutput7
+++ b/ext/pcre/pcrelib/testdata/testoutput7
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/abc/
abc
0: abc
@@ -675,7 +673,6 @@ No match
/^(a*\w|ab)=(?1)/
ab=ab
0: ab=ab
- 1: ab=a
/^([^()]|\((?1)*\))*$/
abc
@@ -983,13 +980,13 @@ Partial match: abc
/(?<=foo)bar/
xyzfo\P
No match
- foob\R\P\>2
+ foob\P\>2
Partial match: b
foobar...\R\P\>4
0: ar
xyzfo\P
No match
- foobar\R\>2
+ foobar\>2
0: bar
*** Failers
No match
@@ -6513,4 +6510,16 @@ No match
line one\nthis is a line\nbreak in the second line
No match
+/1234/
+ 123\P
+Partial match: 123
+ a4\P\R
+No match
+
+/1234/
+ 123\P
+Partial match: 123
+ 4\P\R
+ 0: 4
+
/ End of testinput7 /
diff --git a/ext/pcre/pcrelib/testdata/testoutput8 b/ext/pcre/pcrelib/testdata/testoutput8
index eb585ad1a..72e7673f5 100644
--- a/ext/pcre/pcrelib/testdata/testoutput8
+++ b/ext/pcre/pcrelib/testdata/testoutput8
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/-- Do not use the \x{} construct except with patterns that have the --/
/-- /8 option set, because PCRE doesn't recognize them as UTF-8 unless --/
No match
diff --git a/ext/pcre/pcrelib/testdata/testoutput9 b/ext/pcre/pcrelib/testdata/testoutput9
index f7b46611d..000e2b988 100644
--- a/ext/pcre/pcrelib/testdata/testoutput9
+++ b/ext/pcre/pcrelib/testdata/testoutput9
@@ -1,5 +1,3 @@
-PCRE version 6.2 01-Aug-2005
-
/\pL\P{Nd}/8
AB
0: AB
@@ -1231,4 +1229,399 @@ No match
\x{101}
0: \x{101}
+/^\p{Han}+/8
+ \x{2e81}\x{3007}\x{2f804}\x{31a0}
+ 0: \x{2e81}\x{3007}\x{2f804}
+ 1: \x{2e81}\x{3007}
+ 2: \x{2e81}
+ ** Failers
+No match
+ \x{2e7f}
+No match
+
+/^\P{Katakana}+/8
+ \x{3105}
+ 0: \x{3105}
+ ** Failers
+ 0: ** Failers
+ 1: ** Failer
+ 2: ** Faile
+ 3: ** Fail
+ 4: ** Fai
+ 5: ** Fa
+ 6: ** F
+ 7: **
+ 8: **
+ 9: *
+ \x{30ff}
+No match
+
+/^[\p{Arabic}]/8
+ \x{06e9}
+ 0: \x{6e9}
+ \x{060b}
+ 0: \x{60b}
+ ** Failers
+No match
+ X\x{06e9}
+No match
+
+/^[\P{Yi}]/8
+ \x{2f800}
+ 0: \x{2f800}
+ ** Failers
+ 0: *
+ \x{a014}
+No match
+ \x{a4c6}
+No match
+
+/^\p{Any}X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ X
+No match
+
+/^\P{Any}X/8
+ ** Failers
+No match
+ AX
+No match
+
+/^\p{Any}?X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ ABXYZ
+No match
+
+/^\P{Any}?X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ ABXYZ
+No match
+
+/^\p{Any}+X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+ XYZ
+No match
+
+/^\P{Any}+X/8
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+ XYZ
+No match
+
+/^\p{Any}*X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+
+/^\P{Any}*X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+
+/^[\p{Any}]X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ X
+No match
+
+/^[\P{Any}]X/8
+ ** Failers
+No match
+ AX
+No match
+
+/^[\p{Any}]?X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ ** Failers
+No match
+ ABXYZ
+No match
+
+/^[\P{Any}]?X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ ABXYZ
+No match
+
+/^[\p{Any}]+X/8
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+ XYZ
+No match
+
+/^[\P{Any}]+X/8
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+ XYZ
+No match
+
+/^[\p{Any}]*X/8
+ XYZ
+ 0: X
+ AXYZ
+ 0: AX
+ \x{1234}XYZ
+ 0: \x{1234}X
+ A\x{1234}XYZ
+ 0: A\x{1234}X
+ ** Failers
+No match
+
+/^[\P{Any}]*X/8
+ XYZ
+ 0: X
+ ** Failers
+No match
+ AXYZ
+No match
+ \x{1234}XYZ
+No match
+ A\x{1234}XYZ
+No match
+
+/^\p{Any}{3,5}?/8
+ abcdefgh
+ 0: abcde
+ 1: abcd
+ 2: abc
+ \x{1234}\n\r\x{3456}xyz
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+ 1: \x{1234}\x{0a}\x{0d}\x{3456}
+ 2: \x{1234}\x{0a}\x{0d}
+
+/^\p{Any}{3,5}/8
+ abcdefgh
+ 0: abcde
+ 1: abcd
+ 2: abc
+ \x{1234}\n\r\x{3456}xyz
+ 0: \x{1234}\x{0a}\x{0d}\x{3456}x
+ 1: \x{1234}\x{0a}\x{0d}\x{3456}
+ 2: \x{1234}\x{0a}\x{0d}
+
+/^\P{Any}{3,5}?/8
+ ** Failers
+No match
+ abcdefgh
+No match
+ \x{1234}\n\r\x{3456}xyz
+No match
+
+/^\p{L&}X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ \x{1c5}XY
+ 0: \x{1c5}X
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ \x{1c5}XY
+ 0: \x{1c5}X
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\p{L&}+X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ 1: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]+X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ 1: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\p{L&}+?X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ 1: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^[\p{L&}]+?X/8
+ AXY
+ 0: AX
+ aXY
+ 0: aX
+ AbcdeXyz
+ 0: AbcdeX
+ \x{1c5}AbXY
+ 0: \x{1c5}AbX
+ abcDEXypqreXlmn
+ 0: abcDEXypqreX
+ 1: abcDEX
+ ** Failers
+No match
+ \x{1bb}XY
+No match
+ \x{2b0}XY
+No match
+ !XY
+No match
+
+/^\P{L&}X/8
+ !XY
+ 0: !X
+ \x{1bb}XY
+ 0: \x{1bb}X
+ \x{2b0}XY
+ 0: \x{2b0}X
+ ** Failers
+No match
+ \x{1c5}XY
+No match
+ AXY
+No match
+
+/^[\P{L&}]X/8
+ !XY
+ 0: !X
+ \x{1bb}XY
+ 0: \x{1bb}X
+ \x{2b0}XY
+ 0: \x{2b0}X
+ ** Failers
+No match
+ \x{1c5}XY
+No match
+ AXY
+No match
+
/ End /
diff --git a/ext/pcre/pcrelib/ucp.h b/ext/pcre/pcrelib/ucp.h
index 955e104a6..1ca23c9c1 100644
--- a/ext/pcre/pcrelib/ucp.h
+++ b/ext/pcre/pcrelib/ucp.h
@@ -1,12 +1,14 @@
/*************************************************
-* libucp - Unicode Property Table handler *
+* Unicode Property Table handler *
*************************************************/
-
#ifndef _UCP_H
#define _UCP_H
-/* These are the character categories that are returned by ucp_findchar */
+/* This file contains definitions of the property values that are returned by
+the function _pcre_ucp_findprop(). */
+
+/* These are the general character categories. */
enum {
ucp_C, /* Other */
@@ -18,7 +20,7 @@ enum {
ucp_Z /* Separator */
};
-/* These are the detailed character types that are returned by ucp_findchar */
+/* These are the particular character types. */
enum {
ucp_Cc, /* Control */
@@ -53,7 +55,71 @@ enum {
ucp_Zs /* Space separator */
};
-extern int ucp_findchar(const int, int *, int *);
+/* These are the script identifications. */
+
+enum {
+ ucp_Arabic,
+ ucp_Armenian,
+ ucp_Bengali,
+ ucp_Bopomofo,
+ ucp_Braille,
+ ucp_Buginese,
+ ucp_Buhid,
+ ucp_Canadian_Aboriginal,
+ ucp_Cherokee,
+ ucp_Common,
+ ucp_Coptic,
+ ucp_Cypriot,
+ ucp_Cyrillic,
+ ucp_Deseret,
+ ucp_Devanagari,
+ ucp_Ethiopic,
+ ucp_Georgian,
+ ucp_Glagolitic,
+ ucp_Gothic,
+ ucp_Greek,
+ ucp_Gujarati,
+ ucp_Gurmukhi,
+ ucp_Han,
+ ucp_Hangul,
+ ucp_Hanunoo,
+ ucp_Hebrew,
+ ucp_Hiragana,
+ ucp_Inherited,
+ ucp_Kannada,
+ ucp_Katakana,
+ ucp_Kharoshthi,
+ ucp_Khmer,
+ ucp_Lao,
+ ucp_Latin,
+ ucp_Limbu,
+ ucp_Linear_B,
+ ucp_Malayalam,
+ ucp_Mongolian,
+ ucp_Myanmar,
+ ucp_New_Tai_Lue,
+ ucp_Ogham,
+ ucp_Old_Italic,
+ ucp_Old_Persian,
+ ucp_Oriya,
+ ucp_Osmanya,
+ ucp_Runic,
+ ucp_Shavian,
+ ucp_Sinhala,
+ ucp_Syloti_Nagri,
+ ucp_Syriac,
+ ucp_Tagalog,
+ ucp_Tagbanwa,
+ ucp_Tai_Le,
+ ucp_Tamil,
+ ucp_Telugu,
+ ucp_Thaana,
+ ucp_Thai,
+ ucp_Tibetan,
+ ucp_Tifinagh,
+ ucp_Ugaritic,
+ ucp_Yi
+};
#endif
diff --git a/ext/pcre/pcrelib/ucp_findchar.c b/ext/pcre/pcrelib/ucp_findchar.c
deleted file mode 100644
index 1f451172f..000000000
--- a/ext/pcre/pcrelib/ucp_findchar.c
+++ /dev/null
@@ -1,160 +0,0 @@
-/*************************************************
-* libucp - Unicode Property Table handler *
-*************************************************/
-
-/* Copyright (c) University of Cambridge 2004 */
-
-/* This little library provides a fast way of obtaining the basic Unicode
-properties of a character, using a compact binary tree that occupies less than
-100K bytes.
-
------------------------------------------------------------------------------
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
-
- * Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
-
- * Neither the name of the University of Cambridge nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGE.
------------------------------------------------------------------------------
-*/
-
-
-#include "ucp.h" /* Exported interface */
-#include "ucpinternal.h" /* Internal table details */
-#include "ucptable.c" /* The table itself */
-
-
-/* In some environments, external functions have to be preceded by some magic.
-In my world (Unix), they do not. Use a macro to deal with this. */
-
-#ifndef EXPORT
-#define EXPORT
-#endif
-
-
-
-/*************************************************
-* Search table and return data *
-*************************************************/
-
-/* Two values are returned: the category is ucp_C, ucp_L, etc. The detailed
-character type is ucp_Lu, ucp_Nd, etc.
-
-Arguments:
- c the character value
- type_ptr the detailed character type is returned here
- case_ptr for letters, the opposite case is returned here, if there
- is one, else zero
-
-Returns: the character type category or -1 if not found
-*/
-
-EXPORT int
-ucp_findchar(const int c, int *type_ptr, int *case_ptr)
-{
-cnode *node = ucp_table;
-register int cc = c;
-int case_offset;
-
-for (;;)
- {
- register int d = node->f1 | ((node->f0 & f0_chhmask) << 16);
- if (cc == d) break;
- if (cc < d)
- {
- if ((node->f0 & f0_leftexists) == 0) return -1;
- node ++;
- }
- else
- {
- register int roffset = (node->f2 & f2_rightmask) >> f2_rightshift;
- if (roffset == 0) return -1;
- node += 1 << (roffset - 1);
- }
- }
-
-switch ((*type_ptr = ((node->f0 & f0_typemask) >> f0_typeshift)))
- {
- case ucp_Cc:
- case ucp_Cf:
- case ucp_Cn:
- case ucp_Co:
- case ucp_Cs:
- return ucp_C;
- break;
-
- case ucp_Ll:
- case ucp_Lu:
- case_offset = node->f2 & f2_casemask;
- if ((case_offset & 0x0100) != 0) case_offset |= 0xfffff000;
- *case_ptr = (case_offset == 0)? 0 : cc + case_offset;
- return ucp_L;
-
- case ucp_Lm:
- case ucp_Lo:
- case ucp_Lt:
- *case_ptr = 0;
- return ucp_L;
- break;
-
- case ucp_Mc:
- case ucp_Me:
- case ucp_Mn:
- return ucp_M;
- break;
-
- case ucp_Nd:
- case ucp_Nl:
- case ucp_No:
- return ucp_N;
- break;
-
- case ucp_Pc:
- case ucp_Pd:
- case ucp_Pe:
- case ucp_Pf:
- case ucp_Pi:
- case ucp_Ps:
- case ucp_Po:
- return ucp_P;
- break;
-
- case ucp_Sc:
- case ucp_Sk:
- case ucp_Sm:
- case ucp_So:
- return ucp_S;
- break;
-
- case ucp_Zl:
- case ucp_Zp:
- case ucp_Zs:
- return ucp_Z;
- break;
-
- default: /* "Should never happen" */
- return -1;
- break;
- }
-}
-
-/* End of ucp_findchar.c */
diff --git a/ext/pcre/pcrelib/ucpinternal.h b/ext/pcre/pcrelib/ucpinternal.h
index faefb030c..16dfbe9b0 100644
--- a/ext/pcre/pcrelib/ucpinternal.h
+++ b/ext/pcre/pcrelib/ucpinternal.h
@@ -1,91 +1,87 @@
/*************************************************
-* libucp - Unicode Property Table handler *
+* Unicode Property Table handler *
*************************************************/
-/* Internal header file defining the layout of compact nodes in the tree. */
+/* Internal header file defining the layout of the bits in each pair of 32-bit
+words that form a data item in the table. */
typedef struct cnode {
- unsigned short int f0;
- unsigned short int f1;
- unsigned short int f2;
+ pcre_uint32 f0;
+ pcre_uint32 f1;
} cnode;
/* Things for the f0 field */
-#define f0_leftexists 0x8000 /* Left child exists */
-#define f0_typemask 0x3f00 /* Type bits */
-#define f0_typeshift 8 /* Type shift */
-#define f0_chhmask 0x00ff /* Character high bits */
+#define f0_scriptmask 0xff000000 /* Mask for script field */
+#define f0_scriptshift 24 /* Shift for script value */
+#define f0_rangeflag 0x00f00000 /* Flag for a range item */
+#define f0_charmask 0x001fffff /* Mask for code point value */
-/* Things for the f2 field */
+/* Things for the f1 field */
-#define f2_rightmask 0xf000 /* Mask for right offset bits */
-#define f2_rightshift 12 /* Shift for right offset */
-#define f2_casemask 0x0fff /* Mask for case offset */
+#define f1_typemask 0xfc000000 /* Mask for char type field */
+#define f1_typeshift 26 /* Shift for the type field */
+#define f1_rangemask 0x0000ffff /* Mask for a range offset */
+#define f1_casemask 0x0000ffff /* Mask for a case offset */
+#define f1_caseneg 0xffff8000 /* Bits for negation */
-/* The tree consists of a vector of structures of type cnode, with the root
-node as the first element. The three short ints (16-bits) are used as follows:
+/* The data consists of a vector of structures of type cnode. The two unsigned
+32-bit integers are used as follows:
-(f0) (1) The 0x8000 bit of f0 is set if a left child exists. The child's node
- is the next node in the vector.
- (2) The 0x4000 bits of f0 is spare.
- (3) The 0x3f00 bits of f0 contain the character type; this is a number
- defined by the enumeration in ucp.h (e.g. ucp_Lu).
- (4) The bottom 8 bits of f0 contain the most significant byte of the
- character's 24-bit codepoint.
+(f0) (1) The most significant byte holds the script number. The numbers are
+ defined by the enum in ucp.h.
-(f1) (1) The f1 field contains the two least significant bytes of the
- codepoint.
+ (2) The 0x00800000 bit is set if this entry defines a range of characters.
+ It is not set if this entry defines a single character
-(f2) (1) The 0xf000 bits of f2 contain zero if there is no right child of this
- node. Otherwise, they contain one plus the exponent of the power of
- two of the offset to the right node (e.g. a value of 3 means 8). The
- units of the offset are node items.
+ (3) The 0x00600000 bits are spare.
- (2) The 0x0fff bits of f2 contain the signed offset from this character to
- its alternate cased value. They are zero if there is no such
- character.
+ (4) The 0x001fffff bits contain the code point. No Unicode code point will
+ ever be greater than 0x0010ffff, so this should be OK for ever.
+(f1) (1) The 0xfc000000 bits contain the character type number. The numbers are
+ defined by an enum in ucp.h.
------------------------------------------------------------------------------
-||.|.| type (6) | ms char (8) || ls char (16) ||....| case offset (12) ||
------------------------------------------------------------------------------
- | | |
- | |-> spare |
- | exponent of right
- |-> left child exists child offset
+ (2) The 0x03ff0000 bits are spare.
+ (3) The 0x0000ffff bits contain EITHER the unsigned offset to the top of
+ range if this entry defines a range, OR the *signed* offset to the
+ character's "other case" partner if this entry defines a single
+ character. There is no partner if the value is zero.
-The upper/lower casing information is set only for characters that come in
-pairs. There are (at present) four non-one-to-one mappings in the Unicode data.
-These are ignored. They are:
+-------------------------------------------------------------------------------
+| script (8) |.|.|.| codepoint (21) || type (6) |.|.| spare (8) | offset (16) |
+-------------------------------------------------------------------------------
+ | | | | |
+ | | |-> spare | |-> spare
+ | | |
+ | |-> spare |-> spare
+ |
+ |-> range flag
- 1FBE Greek Prosgegrammeni (lower, with upper -> capital iota)
- 2126 Ohm
- 212A Kelvin
- 212B Angstrom
+The upper/lower casing information is set only for characters that come in
+pairs. The non-one-to-one mappings in the Unicode data are ignored.
-Certainly for the last three, having an alternate case would seem to be a
-mistake. I don't know any Greek, so cannot comment on the first one.
+When searching the data, proceed as follows:
+(1) Set up for a binary chop search.
-When searching the tree, proceed as follows:
+(2) If the top is not greater than the bottom, the character is not in the
+ table. Its type must therefore be "Cn" ("Undefined").
-(1) Start at the first node.
+(3) Find the middle vector element.
-(2) Extract the character value from f1 and the bottom 8 bits of f0;
+(4) Extract the code point and compare. If equal, we are done.
-(3) Compare with the character being sought. If equal, we are done.
+(5) If the test character is smaller, set the top to the current point, and
+ goto (2).
-(4) If the test character is smaller, inspect the f0_leftexists flag. If it is
- not set, the character is not in the tree. If it is set, move to the next
- node, and go to (2).
+(6) If the current entry defines a range, compute the last character by adding
+ the offset, and see if the test character is within the range. If it is,
+ we are done.
-(5) If the test character is bigger, extract the f2_rightmask bits from f2, and
- shift them right by f2_rightshift. If the result is zero, the character is
- not in the tree. Otherwise, calculate the number of nodes to skip by
- shifting the value 1 left by this number minus one. Go to (2).
+(7) Otherwise, set the bottom to one element past the current point and goto
+ (2).
*/
-
-/* End of internal.h */
+/* End of ucpinternal.h */
diff --git a/ext/pcre/pcrelib/ucptable.c b/ext/pcre/pcrelib/ucptable.c
index 7fb3a1234..ae665b376 100644
--- a/ext/pcre/pcrelib/ucptable.c
+++ b/ext/pcre/pcrelib/ucptable.c
@@ -1,15105 +1,2968 @@
/* This source module is automatically generated from the Unicode
-property table. See internal.h for a description of the layout. */
+property table. See ucpinternal.h for a description of the layout. */
static cnode ucp_table[] = {
- { 0x9a00, 0x2f1f, 0xe000 },
- { 0x8700, 0x1558, 0xd000 },
- { 0x8700, 0x0a99, 0xc000 },
- { 0x8500, 0x0435, 0xbfe0 },
- { 0x8500, 0x01ff, 0xafff },
- { 0x8500, 0x00ff, 0x9079 },
- { 0x8000, 0x007f, 0x8000 },
- { 0x9500, 0x003f, 0x7000 },
- { 0x8000, 0x001f, 0x6000 },
- { 0x8000, 0x000f, 0x5000 },
- { 0x8000, 0x0007, 0x4000 },
- { 0x8000, 0x0003, 0x3000 },
- { 0x8000, 0x0001, 0x2000 },
- { 0x0000, 0x0000, 0x0000 },
- { 0x0000, 0x0002, 0x0000 },
- { 0x8000, 0x0005, 0x2000 },
- { 0x0000, 0x0004, 0x0000 },
- { 0x0000, 0x0006, 0x0000 },
- { 0x8000, 0x000b, 0x3000 },
- { 0x8000, 0x0009, 0x2000 },
- { 0x0000, 0x0008, 0x0000 },
- { 0x0000, 0x000a, 0x0000 },
- { 0x8000, 0x000d, 0x2000 },
- { 0x0000, 0x000c, 0x0000 },
- { 0x0000, 0x000e, 0x0000 },
- { 0x8000, 0x0017, 0x4000 },
- { 0x8000, 0x0013, 0x3000 },
- { 0x8000, 0x0011, 0x2000 },
- { 0x0000, 0x0010, 0x0000 },
- { 0x0000, 0x0012, 0x0000 },
- { 0x8000, 0x0015, 0x2000 },
- { 0x0000, 0x0014, 0x0000 },
- { 0x0000, 0x0016, 0x0000 },
- { 0x8000, 0x001b, 0x3000 },
- { 0x8000, 0x0019, 0x2000 },
- { 0x0000, 0x0018, 0x0000 },
- { 0x0000, 0x001a, 0x0000 },
- { 0x8000, 0x001d, 0x2000 },
- { 0x0000, 0x001c, 0x0000 },
- { 0x0000, 0x001e, 0x0000 },
- { 0x9500, 0x002f, 0x5000 },
- { 0x9500, 0x0027, 0x4000 },
- { 0x9500, 0x0023, 0x3000 },
- { 0x9500, 0x0021, 0x2000 },
- { 0x1d00, 0x0020, 0x0000 },
- { 0x1500, 0x0022, 0x0000 },
- { 0x9500, 0x0025, 0x2000 },
- { 0x1700, 0x0024, 0x0000 },
- { 0x1500, 0x0026, 0x0000 },
- { 0x9900, 0x002b, 0x3000 },
- { 0x9200, 0x0029, 0x2000 },
- { 0x1600, 0x0028, 0x0000 },
- { 0x1500, 0x002a, 0x0000 },
- { 0x9100, 0x002d, 0x2000 },
- { 0x1500, 0x002c, 0x0000 },
- { 0x1500, 0x002e, 0x0000 },
- { 0x8d00, 0x0037, 0x4000 },
- { 0x8d00, 0x0033, 0x3000 },
- { 0x8d00, 0x0031, 0x2000 },
- { 0x0d00, 0x0030, 0x0000 },
- { 0x0d00, 0x0032, 0x0000 },
- { 0x8d00, 0x0035, 0x2000 },
- { 0x0d00, 0x0034, 0x0000 },
- { 0x0d00, 0x0036, 0x0000 },
- { 0x9500, 0x003b, 0x3000 },
- { 0x8d00, 0x0039, 0x2000 },
- { 0x0d00, 0x0038, 0x0000 },
- { 0x1500, 0x003a, 0x0000 },
- { 0x9900, 0x003d, 0x2000 },
- { 0x1900, 0x003c, 0x0000 },
- { 0x1900, 0x003e, 0x0000 },
- { 0x9000, 0x005f, 0x6000 },
- { 0x8900, 0x004f, 0x5020 },
- { 0x8900, 0x0047, 0x4020 },
- { 0x8900, 0x0043, 0x3020 },
- { 0x8900, 0x0041, 0x2020 },
- { 0x1500, 0x0040, 0x0000 },
- { 0x0900, 0x0042, 0x0020 },
- { 0x8900, 0x0045, 0x2020 },
- { 0x0900, 0x0044, 0x0020 },
- { 0x0900, 0x0046, 0x0020 },
- { 0x8900, 0x004b, 0x3020 },
- { 0x8900, 0x0049, 0x2020 },
- { 0x0900, 0x0048, 0x0020 },
- { 0x0900, 0x004a, 0x0020 },
- { 0x8900, 0x004d, 0x2020 },
- { 0x0900, 0x004c, 0x0020 },
- { 0x0900, 0x004e, 0x0020 },
- { 0x8900, 0x0057, 0x4020 },
- { 0x8900, 0x0053, 0x3020 },
- { 0x8900, 0x0051, 0x2020 },
- { 0x0900, 0x0050, 0x0020 },
- { 0x0900, 0x0052, 0x0020 },
- { 0x8900, 0x0055, 0x2020 },
- { 0x0900, 0x0054, 0x0020 },
- { 0x0900, 0x0056, 0x0020 },
- { 0x9600, 0x005b, 0x3000 },
- { 0x8900, 0x0059, 0x2020 },
- { 0x0900, 0x0058, 0x0020 },
- { 0x0900, 0x005a, 0x0020 },
- { 0x9200, 0x005d, 0x2000 },
- { 0x1500, 0x005c, 0x0000 },
- { 0x1800, 0x005e, 0x0000 },
- { 0x8500, 0x006f, 0x5fe0 },
- { 0x8500, 0x0067, 0x4fe0 },
- { 0x8500, 0x0063, 0x3fe0 },
- { 0x8500, 0x0061, 0x2fe0 },
- { 0x1800, 0x0060, 0x0000 },
- { 0x0500, 0x0062, 0x0fe0 },
- { 0x8500, 0x0065, 0x2fe0 },
- { 0x0500, 0x0064, 0x0fe0 },
- { 0x0500, 0x0066, 0x0fe0 },
- { 0x8500, 0x006b, 0x3fe0 },
- { 0x8500, 0x0069, 0x2fe0 },
- { 0x0500, 0x0068, 0x0fe0 },
- { 0x0500, 0x006a, 0x0fe0 },
- { 0x8500, 0x006d, 0x2fe0 },
- { 0x0500, 0x006c, 0x0fe0 },
- { 0x0500, 0x006e, 0x0fe0 },
- { 0x8500, 0x0077, 0x4fe0 },
- { 0x8500, 0x0073, 0x3fe0 },
- { 0x8500, 0x0071, 0x2fe0 },
- { 0x0500, 0x0070, 0x0fe0 },
- { 0x0500, 0x0072, 0x0fe0 },
- { 0x8500, 0x0075, 0x2fe0 },
- { 0x0500, 0x0074, 0x0fe0 },
- { 0x0500, 0x0076, 0x0fe0 },
- { 0x9600, 0x007b, 0x3000 },
- { 0x8500, 0x0079, 0x2fe0 },
- { 0x0500, 0x0078, 0x0fe0 },
- { 0x0500, 0x007a, 0x0fe0 },
- { 0x9200, 0x007d, 0x2000 },
- { 0x1900, 0x007c, 0x0000 },
- { 0x1900, 0x007e, 0x0000 },
- { 0x9500, 0x00bf, 0x7000 },
- { 0x8000, 0x009f, 0x6000 },
- { 0x8000, 0x008f, 0x5000 },
- { 0x8000, 0x0087, 0x4000 },
- { 0x8000, 0x0083, 0x3000 },
- { 0x8000, 0x0081, 0x2000 },
- { 0x0000, 0x0080, 0x0000 },
- { 0x0000, 0x0082, 0x0000 },
- { 0x8000, 0x0085, 0x2000 },
- { 0x0000, 0x0084, 0x0000 },
- { 0x0000, 0x0086, 0x0000 },
- { 0x8000, 0x008b, 0x3000 },
- { 0x8000, 0x0089, 0x2000 },
- { 0x0000, 0x0088, 0x0000 },
- { 0x0000, 0x008a, 0x0000 },
- { 0x8000, 0x008d, 0x2000 },
- { 0x0000, 0x008c, 0x0000 },
- { 0x0000, 0x008e, 0x0000 },
- { 0x8000, 0x0097, 0x4000 },
- { 0x8000, 0x0093, 0x3000 },
- { 0x8000, 0x0091, 0x2000 },
- { 0x0000, 0x0090, 0x0000 },
- { 0x0000, 0x0092, 0x0000 },
- { 0x8000, 0x0095, 0x2000 },
- { 0x0000, 0x0094, 0x0000 },
- { 0x0000, 0x0096, 0x0000 },
- { 0x8000, 0x009b, 0x3000 },
- { 0x8000, 0x0099, 0x2000 },
- { 0x0000, 0x0098, 0x0000 },
- { 0x0000, 0x009a, 0x0000 },
- { 0x8000, 0x009d, 0x2000 },
- { 0x0000, 0x009c, 0x0000 },
- { 0x0000, 0x009e, 0x0000 },
- { 0x9800, 0x00af, 0x5000 },
- { 0x9a00, 0x00a7, 0x4000 },
- { 0x9700, 0x00a3, 0x3000 },
- { 0x9500, 0x00a1, 0x2000 },
- { 0x1d00, 0x00a0, 0x0000 },
- { 0x1700, 0x00a2, 0x0000 },
- { 0x9700, 0x00a5, 0x2000 },
- { 0x1700, 0x00a4, 0x0000 },
- { 0x1a00, 0x00a6, 0x0000 },
- { 0x9400, 0x00ab, 0x3000 },
- { 0x9a00, 0x00a9, 0x2000 },
- { 0x1800, 0x00a8, 0x0000 },
- { 0x0500, 0x00aa, 0x0000 },
- { 0x8100, 0x00ad, 0x2000 },
- { 0x1900, 0x00ac, 0x0000 },
- { 0x1a00, 0x00ae, 0x0000 },
- { 0x9500, 0x00b7, 0x4000 },
- { 0x8f00, 0x00b3, 0x3000 },
- { 0x9900, 0x00b1, 0x2000 },
- { 0x1a00, 0x00b0, 0x0000 },
- { 0x0f00, 0x00b2, 0x0000 },
- { 0x8500, 0x00b5, 0x22e7 },
- { 0x1800, 0x00b4, 0x0000 },
- { 0x1a00, 0x00b6, 0x0000 },
- { 0x9300, 0x00bb, 0x3000 },
- { 0x8f00, 0x00b9, 0x2000 },
- { 0x1800, 0x00b8, 0x0000 },
- { 0x0500, 0x00ba, 0x0000 },
- { 0x8f00, 0x00bd, 0x2000 },
- { 0x0f00, 0x00bc, 0x0000 },
- { 0x0f00, 0x00be, 0x0000 },
- { 0x8500, 0x00df, 0x6000 },
- { 0x8900, 0x00cf, 0x5020 },
- { 0x8900, 0x00c7, 0x4020 },
- { 0x8900, 0x00c3, 0x3020 },
- { 0x8900, 0x00c1, 0x2020 },
- { 0x0900, 0x00c0, 0x0020 },
- { 0x0900, 0x00c2, 0x0020 },
- { 0x8900, 0x00c5, 0x2020 },
- { 0x0900, 0x00c4, 0x0020 },
- { 0x0900, 0x00c6, 0x0020 },
- { 0x8900, 0x00cb, 0x3020 },
- { 0x8900, 0x00c9, 0x2020 },
- { 0x0900, 0x00c8, 0x0020 },
- { 0x0900, 0x00ca, 0x0020 },
- { 0x8900, 0x00cd, 0x2020 },
- { 0x0900, 0x00cc, 0x0020 },
- { 0x0900, 0x00ce, 0x0020 },
- { 0x9900, 0x00d7, 0x4000 },
- { 0x8900, 0x00d3, 0x3020 },
- { 0x8900, 0x00d1, 0x2020 },
- { 0x0900, 0x00d0, 0x0020 },
- { 0x0900, 0x00d2, 0x0020 },
- { 0x8900, 0x00d5, 0x2020 },
- { 0x0900, 0x00d4, 0x0020 },
- { 0x0900, 0x00d6, 0x0020 },
- { 0x8900, 0x00db, 0x3020 },
- { 0x8900, 0x00d9, 0x2020 },
- { 0x0900, 0x00d8, 0x0020 },
- { 0x0900, 0x00da, 0x0020 },
- { 0x8900, 0x00dd, 0x2020 },
- { 0x0900, 0x00dc, 0x0020 },
- { 0x0900, 0x00de, 0x0020 },
- { 0x8500, 0x00ef, 0x5fe0 },
- { 0x8500, 0x00e7, 0x4fe0 },
- { 0x8500, 0x00e3, 0x3fe0 },
- { 0x8500, 0x00e1, 0x2fe0 },
- { 0x0500, 0x00e0, 0x0fe0 },
- { 0x0500, 0x00e2, 0x0fe0 },
- { 0x8500, 0x00e5, 0x2fe0 },
- { 0x0500, 0x00e4, 0x0fe0 },
- { 0x0500, 0x00e6, 0x0fe0 },
- { 0x8500, 0x00eb, 0x3fe0 },
- { 0x8500, 0x00e9, 0x2fe0 },
- { 0x0500, 0x00e8, 0x0fe0 },
- { 0x0500, 0x00ea, 0x0fe0 },
- { 0x8500, 0x00ed, 0x2fe0 },
- { 0x0500, 0x00ec, 0x0fe0 },
- { 0x0500, 0x00ee, 0x0fe0 },
- { 0x9900, 0x00f7, 0x4000 },
- { 0x8500, 0x00f3, 0x3fe0 },
- { 0x8500, 0x00f1, 0x2fe0 },
- { 0x0500, 0x00f0, 0x0fe0 },
- { 0x0500, 0x00f2, 0x0fe0 },
- { 0x8500, 0x00f5, 0x2fe0 },
- { 0x0500, 0x00f4, 0x0fe0 },
- { 0x0500, 0x00f6, 0x0fe0 },
- { 0x8500, 0x00fb, 0x3fe0 },
- { 0x8500, 0x00f9, 0x2fe0 },
- { 0x0500, 0x00f8, 0x0fe0 },
- { 0x0500, 0x00fa, 0x0fe0 },
- { 0x8500, 0x00fd, 0x2fe0 },
- { 0x0500, 0x00fc, 0x0fe0 },
- { 0x0500, 0x00fe, 0x0fe0 },
- { 0x8500, 0x017f, 0x8ed4 },
- { 0x8900, 0x013f, 0x7001 },
- { 0x8500, 0x011f, 0x6fff },
- { 0x8500, 0x010f, 0x5fff },
- { 0x8500, 0x0107, 0x4fff },
- { 0x8500, 0x0103, 0x3fff },
- { 0x8500, 0x0101, 0x2fff },
- { 0x0900, 0x0100, 0x0001 },
- { 0x0900, 0x0102, 0x0001 },
- { 0x8500, 0x0105, 0x2fff },
- { 0x0900, 0x0104, 0x0001 },
- { 0x0900, 0x0106, 0x0001 },
- { 0x8500, 0x010b, 0x3fff },
- { 0x8500, 0x0109, 0x2fff },
- { 0x0900, 0x0108, 0x0001 },
- { 0x0900, 0x010a, 0x0001 },
- { 0x8500, 0x010d, 0x2fff },
- { 0x0900, 0x010c, 0x0001 },
- { 0x0900, 0x010e, 0x0001 },
- { 0x8500, 0x0117, 0x4fff },
- { 0x8500, 0x0113, 0x3fff },
- { 0x8500, 0x0111, 0x2fff },
- { 0x0900, 0x0110, 0x0001 },
- { 0x0900, 0x0112, 0x0001 },
- { 0x8500, 0x0115, 0x2fff },
- { 0x0900, 0x0114, 0x0001 },
- { 0x0900, 0x0116, 0x0001 },
- { 0x8500, 0x011b, 0x3fff },
- { 0x8500, 0x0119, 0x2fff },
- { 0x0900, 0x0118, 0x0001 },
- { 0x0900, 0x011a, 0x0001 },
- { 0x8500, 0x011d, 0x2fff },
- { 0x0900, 0x011c, 0x0001 },
- { 0x0900, 0x011e, 0x0001 },
- { 0x8500, 0x012f, 0x5fff },
- { 0x8500, 0x0127, 0x4fff },
- { 0x8500, 0x0123, 0x3fff },
- { 0x8500, 0x0121, 0x2fff },
- { 0x0900, 0x0120, 0x0001 },
- { 0x0900, 0x0122, 0x0001 },
- { 0x8500, 0x0125, 0x2fff },
- { 0x0900, 0x0124, 0x0001 },
- { 0x0900, 0x0126, 0x0001 },
- { 0x8500, 0x012b, 0x3fff },
- { 0x8500, 0x0129, 0x2fff },
- { 0x0900, 0x0128, 0x0001 },
- { 0x0900, 0x012a, 0x0001 },
- { 0x8500, 0x012d, 0x2fff },
- { 0x0900, 0x012c, 0x0001 },
- { 0x0900, 0x012e, 0x0001 },
- { 0x8500, 0x0137, 0x4fff },
- { 0x8500, 0x0133, 0x3fff },
- { 0x8500, 0x0131, 0x2f18 },
- { 0x0900, 0x0130, 0x0f39 },
- { 0x0900, 0x0132, 0x0001 },
- { 0x8500, 0x0135, 0x2fff },
- { 0x0900, 0x0134, 0x0001 },
- { 0x0900, 0x0136, 0x0001 },
- { 0x8900, 0x013b, 0x3001 },
- { 0x8900, 0x0139, 0x2001 },
- { 0x0500, 0x0138, 0x0000 },
- { 0x0500, 0x013a, 0x0fff },
- { 0x8900, 0x013d, 0x2001 },
- { 0x0500, 0x013c, 0x0fff },
- { 0x0500, 0x013e, 0x0fff },
- { 0x8500, 0x015f, 0x6fff },
- { 0x8500, 0x014f, 0x5fff },
- { 0x8900, 0x0147, 0x4001 },
- { 0x8900, 0x0143, 0x3001 },
- { 0x8900, 0x0141, 0x2001 },
- { 0x0500, 0x0140, 0x0fff },
- { 0x0500, 0x0142, 0x0fff },
- { 0x8900, 0x0145, 0x2001 },
- { 0x0500, 0x0144, 0x0fff },
- { 0x0500, 0x0146, 0x0fff },
- { 0x8500, 0x014b, 0x3fff },
- { 0x8500, 0x0149, 0x2000 },
- { 0x0500, 0x0148, 0x0fff },
- { 0x0900, 0x014a, 0x0001 },
- { 0x8500, 0x014d, 0x2fff },
- { 0x0900, 0x014c, 0x0001 },
- { 0x0900, 0x014e, 0x0001 },
- { 0x8500, 0x0157, 0x4fff },
- { 0x8500, 0x0153, 0x3fff },
- { 0x8500, 0x0151, 0x2fff },
- { 0x0900, 0x0150, 0x0001 },
- { 0x0900, 0x0152, 0x0001 },
- { 0x8500, 0x0155, 0x2fff },
- { 0x0900, 0x0154, 0x0001 },
- { 0x0900, 0x0156, 0x0001 },
- { 0x8500, 0x015b, 0x3fff },
- { 0x8500, 0x0159, 0x2fff },
- { 0x0900, 0x0158, 0x0001 },
- { 0x0900, 0x015a, 0x0001 },
- { 0x8500, 0x015d, 0x2fff },
- { 0x0900, 0x015c, 0x0001 },
- { 0x0900, 0x015e, 0x0001 },
- { 0x8500, 0x016f, 0x5fff },
- { 0x8500, 0x0167, 0x4fff },
- { 0x8500, 0x0163, 0x3fff },
- { 0x8500, 0x0161, 0x2fff },
- { 0x0900, 0x0160, 0x0001 },
- { 0x0900, 0x0162, 0x0001 },
- { 0x8500, 0x0165, 0x2fff },
- { 0x0900, 0x0164, 0x0001 },
- { 0x0900, 0x0166, 0x0001 },
- { 0x8500, 0x016b, 0x3fff },
- { 0x8500, 0x0169, 0x2fff },
- { 0x0900, 0x0168, 0x0001 },
- { 0x0900, 0x016a, 0x0001 },
- { 0x8500, 0x016d, 0x2fff },
- { 0x0900, 0x016c, 0x0001 },
- { 0x0900, 0x016e, 0x0001 },
- { 0x8500, 0x0177, 0x4fff },
- { 0x8500, 0x0173, 0x3fff },
- { 0x8500, 0x0171, 0x2fff },
- { 0x0900, 0x0170, 0x0001 },
- { 0x0900, 0x0172, 0x0001 },
- { 0x8500, 0x0175, 0x2fff },
- { 0x0900, 0x0174, 0x0001 },
- { 0x0900, 0x0176, 0x0001 },
- { 0x8900, 0x017b, 0x3001 },
- { 0x8900, 0x0179, 0x2001 },
- { 0x0900, 0x0178, 0x0f87 },
- { 0x0500, 0x017a, 0x0fff },
- { 0x8900, 0x017d, 0x2001 },
- { 0x0500, 0x017c, 0x0fff },
- { 0x0500, 0x017e, 0x0fff },
- { 0x8500, 0x01bf, 0x7038 },
- { 0x8900, 0x019f, 0x60d6 },
- { 0x8900, 0x018f, 0x50ca },
- { 0x8900, 0x0187, 0x4001 },
- { 0x8500, 0x0183, 0x3fff },
- { 0x8900, 0x0181, 0x20d2 },
- { 0x0500, 0x0180, 0x0000 },
- { 0x0900, 0x0182, 0x0001 },
- { 0x8500, 0x0185, 0x2fff },
- { 0x0900, 0x0184, 0x0001 },
- { 0x0900, 0x0186, 0x00ce },
- { 0x8900, 0x018b, 0x3001 },
- { 0x8900, 0x0189, 0x20cd },
- { 0x0500, 0x0188, 0x0fff },
- { 0x0900, 0x018a, 0x00cd },
- { 0x8500, 0x018d, 0x2000 },
- { 0x0500, 0x018c, 0x0fff },
- { 0x0900, 0x018e, 0x004f },
- { 0x8900, 0x0197, 0x40d1 },
- { 0x8900, 0x0193, 0x30cd },
- { 0x8900, 0x0191, 0x2001 },
- { 0x0900, 0x0190, 0x00cb },
- { 0x0500, 0x0192, 0x0fff },
- { 0x8500, 0x0195, 0x2061 },
- { 0x0900, 0x0194, 0x00cf },
- { 0x0900, 0x0196, 0x00d3 },
- { 0x8500, 0x019b, 0x3000 },
- { 0x8500, 0x0199, 0x2fff },
- { 0x0900, 0x0198, 0x0001 },
- { 0x0500, 0x019a, 0x0000 },
- { 0x8900, 0x019d, 0x20d5 },
- { 0x0900, 0x019c, 0x00d3 },
- { 0x0500, 0x019e, 0x0082 },
- { 0x8900, 0x01af, 0x5001 },
- { 0x8900, 0x01a7, 0x4001 },
- { 0x8500, 0x01a3, 0x3fff },
- { 0x8500, 0x01a1, 0x2fff },
- { 0x0900, 0x01a0, 0x0001 },
- { 0x0900, 0x01a2, 0x0001 },
- { 0x8500, 0x01a5, 0x2fff },
- { 0x0900, 0x01a4, 0x0001 },
- { 0x0900, 0x01a6, 0x00da },
- { 0x8500, 0x01ab, 0x3000 },
- { 0x8900, 0x01a9, 0x20da },
- { 0x0500, 0x01a8, 0x0fff },
- { 0x0500, 0x01aa, 0x0000 },
- { 0x8500, 0x01ad, 0x2fff },
- { 0x0900, 0x01ac, 0x0001 },
- { 0x0900, 0x01ae, 0x00da },
- { 0x8900, 0x01b7, 0x40db },
- { 0x8900, 0x01b3, 0x3001 },
- { 0x8900, 0x01b1, 0x20d9 },
- { 0x0500, 0x01b0, 0x0fff },
- { 0x0900, 0x01b2, 0x00d9 },
- { 0x8900, 0x01b5, 0x2001 },
- { 0x0500, 0x01b4, 0x0fff },
- { 0x0500, 0x01b6, 0x0fff },
- { 0x8700, 0x01bb, 0x3000 },
- { 0x8500, 0x01b9, 0x2fff },
- { 0x0900, 0x01b8, 0x0001 },
- { 0x0500, 0x01ba, 0x0000 },
- { 0x8500, 0x01bd, 0x2fff },
- { 0x0900, 0x01bc, 0x0001 },
- { 0x0500, 0x01be, 0x0000 },
- { 0x8500, 0x01df, 0x6fff },
- { 0x8900, 0x01cf, 0x5001 },
- { 0x8900, 0x01c7, 0x4002 },
- { 0x8700, 0x01c3, 0x3000 },
- { 0x8700, 0x01c1, 0x2000 },
- { 0x0700, 0x01c0, 0x0000 },
- { 0x0700, 0x01c2, 0x0000 },
- { 0x8800, 0x01c5, 0x2000 },
- { 0x0900, 0x01c4, 0x0002 },
- { 0x0500, 0x01c6, 0x0ffe },
- { 0x8800, 0x01cb, 0x3000 },
- { 0x8500, 0x01c9, 0x2ffe },
- { 0x0800, 0x01c8, 0x0000 },
- { 0x0900, 0x01ca, 0x0002 },
- { 0x8900, 0x01cd, 0x2001 },
- { 0x0500, 0x01cc, 0x0ffe },
- { 0x0500, 0x01ce, 0x0fff },
- { 0x8900, 0x01d7, 0x4001 },
- { 0x8900, 0x01d3, 0x3001 },
- { 0x8900, 0x01d1, 0x2001 },
- { 0x0500, 0x01d0, 0x0fff },
- { 0x0500, 0x01d2, 0x0fff },
- { 0x8900, 0x01d5, 0x2001 },
- { 0x0500, 0x01d4, 0x0fff },
- { 0x0500, 0x01d6, 0x0fff },
- { 0x8900, 0x01db, 0x3001 },
- { 0x8900, 0x01d9, 0x2001 },
- { 0x0500, 0x01d8, 0x0fff },
- { 0x0500, 0x01da, 0x0fff },
- { 0x8500, 0x01dd, 0x2fb1 },
- { 0x0500, 0x01dc, 0x0fff },
- { 0x0900, 0x01de, 0x0001 },
- { 0x8500, 0x01ef, 0x5fff },
- { 0x8500, 0x01e7, 0x4fff },
- { 0x8500, 0x01e3, 0x3fff },
- { 0x8500, 0x01e1, 0x2fff },
- { 0x0900, 0x01e0, 0x0001 },
- { 0x0900, 0x01e2, 0x0001 },
- { 0x8500, 0x01e5, 0x2fff },
- { 0x0900, 0x01e4, 0x0001 },
- { 0x0900, 0x01e6, 0x0001 },
- { 0x8500, 0x01eb, 0x3fff },
- { 0x8500, 0x01e9, 0x2fff },
- { 0x0900, 0x01e8, 0x0001 },
- { 0x0900, 0x01ea, 0x0001 },
- { 0x8500, 0x01ed, 0x2fff },
- { 0x0900, 0x01ec, 0x0001 },
- { 0x0900, 0x01ee, 0x0001 },
- { 0x8900, 0x01f7, 0x4fc8 },
- { 0x8500, 0x01f3, 0x3ffe },
- { 0x8900, 0x01f1, 0x2002 },
- { 0x0500, 0x01f0, 0x0000 },
- { 0x0800, 0x01f2, 0x0000 },
- { 0x8500, 0x01f5, 0x2fff },
- { 0x0900, 0x01f4, 0x0001 },
- { 0x0900, 0x01f6, 0x0f9f },
- { 0x8500, 0x01fb, 0x3fff },
- { 0x8500, 0x01f9, 0x2fff },
- { 0x0900, 0x01f8, 0x0001 },
- { 0x0900, 0x01fa, 0x0001 },
- { 0x8500, 0x01fd, 0x2fff },
- { 0x0900, 0x01fc, 0x0001 },
- { 0x0900, 0x01fe, 0x0001 },
- { 0x8c00, 0x0318, 0x9000 },
- { 0x8500, 0x0298, 0x8000 },
- { 0x8500, 0x0258, 0x7000 },
- { 0x8500, 0x021f, 0x6fff },
- { 0x8500, 0x020f, 0x5fff },
- { 0x8500, 0x0207, 0x4fff },
- { 0x8500, 0x0203, 0x3fff },
- { 0x8500, 0x0201, 0x2fff },
- { 0x0900, 0x0200, 0x0001 },
- { 0x0900, 0x0202, 0x0001 },
- { 0x8500, 0x0205, 0x2fff },
- { 0x0900, 0x0204, 0x0001 },
- { 0x0900, 0x0206, 0x0001 },
- { 0x8500, 0x020b, 0x3fff },
- { 0x8500, 0x0209, 0x2fff },
- { 0x0900, 0x0208, 0x0001 },
- { 0x0900, 0x020a, 0x0001 },
- { 0x8500, 0x020d, 0x2fff },
- { 0x0900, 0x020c, 0x0001 },
- { 0x0900, 0x020e, 0x0001 },
- { 0x8500, 0x0217, 0x4fff },
- { 0x8500, 0x0213, 0x3fff },
- { 0x8500, 0x0211, 0x2fff },
- { 0x0900, 0x0210, 0x0001 },
- { 0x0900, 0x0212, 0x0001 },
- { 0x8500, 0x0215, 0x2fff },
- { 0x0900, 0x0214, 0x0001 },
- { 0x0900, 0x0216, 0x0001 },
- { 0x8500, 0x021b, 0x3fff },
- { 0x8500, 0x0219, 0x2fff },
- { 0x0900, 0x0218, 0x0001 },
- { 0x0900, 0x021a, 0x0001 },
- { 0x8500, 0x021d, 0x2fff },
- { 0x0900, 0x021c, 0x0001 },
- { 0x0900, 0x021e, 0x0001 },
- { 0x8500, 0x022f, 0x5fff },
- { 0x8500, 0x0227, 0x4fff },
- { 0x8500, 0x0223, 0x3fff },
- { 0x8500, 0x0221, 0x2000 },
- { 0x0900, 0x0220, 0x0f7e },
- { 0x0900, 0x0222, 0x0001 },
- { 0x8500, 0x0225, 0x2fff },
- { 0x0900, 0x0224, 0x0001 },
- { 0x0900, 0x0226, 0x0001 },
- { 0x8500, 0x022b, 0x3fff },
- { 0x8500, 0x0229, 0x2fff },
- { 0x0900, 0x0228, 0x0001 },
- { 0x0900, 0x022a, 0x0001 },
- { 0x8500, 0x022d, 0x2fff },
- { 0x0900, 0x022c, 0x0001 },
- { 0x0900, 0x022e, 0x0001 },
- { 0x8500, 0x0250, 0x4000 },
- { 0x8500, 0x0233, 0x3fff },
- { 0x8500, 0x0231, 0x2fff },
- { 0x0900, 0x0230, 0x0001 },
- { 0x0900, 0x0232, 0x0001 },
- { 0x8500, 0x0235, 0x2000 },
- { 0x0500, 0x0234, 0x0000 },
- { 0x0500, 0x0236, 0x0000 },
- { 0x8500, 0x0254, 0x3f32 },
- { 0x8500, 0x0252, 0x2000 },
- { 0x0500, 0x0251, 0x0000 },
- { 0x0500, 0x0253, 0x0f2e },
- { 0x8500, 0x0256, 0x2f33 },
- { 0x0500, 0x0255, 0x0000 },
- { 0x0500, 0x0257, 0x0f33 },
- { 0x8500, 0x0278, 0x6000 },
- { 0x8500, 0x0268, 0x5f2f },
- { 0x8500, 0x0260, 0x4f33 },
- { 0x8500, 0x025c, 0x3000 },
- { 0x8500, 0x025a, 0x2000 },
- { 0x0500, 0x0259, 0x0f36 },
- { 0x0500, 0x025b, 0x0f35 },
- { 0x8500, 0x025e, 0x2000 },
- { 0x0500, 0x025d, 0x0000 },
- { 0x0500, 0x025f, 0x0000 },
- { 0x8500, 0x0264, 0x3000 },
- { 0x8500, 0x0262, 0x2000 },
- { 0x0500, 0x0261, 0x0000 },
- { 0x0500, 0x0263, 0x0f31 },
- { 0x8500, 0x0266, 0x2000 },
- { 0x0500, 0x0265, 0x0000 },
- { 0x0500, 0x0267, 0x0000 },
- { 0x8500, 0x0270, 0x4000 },
- { 0x8500, 0x026c, 0x3000 },
- { 0x8500, 0x026a, 0x2000 },
- { 0x0500, 0x0269, 0x0f2d },
- { 0x0500, 0x026b, 0x0000 },
- { 0x8500, 0x026e, 0x2000 },
- { 0x0500, 0x026d, 0x0000 },
- { 0x0500, 0x026f, 0x0f2d },
- { 0x8500, 0x0274, 0x3000 },
- { 0x8500, 0x0272, 0x2f2b },
- { 0x0500, 0x0271, 0x0000 },
- { 0x0500, 0x0273, 0x0000 },
- { 0x8500, 0x0276, 0x2000 },
- { 0x0500, 0x0275, 0x0f2a },
- { 0x0500, 0x0277, 0x0000 },
- { 0x8500, 0x0288, 0x5f26 },
- { 0x8500, 0x0280, 0x4f26 },
- { 0x8500, 0x027c, 0x3000 },
- { 0x8500, 0x027a, 0x2000 },
- { 0x0500, 0x0279, 0x0000 },
- { 0x0500, 0x027b, 0x0000 },
- { 0x8500, 0x027e, 0x2000 },
- { 0x0500, 0x027d, 0x0000 },
- { 0x0500, 0x027f, 0x0000 },
- { 0x8500, 0x0284, 0x3000 },
- { 0x8500, 0x0282, 0x2000 },
- { 0x0500, 0x0281, 0x0000 },
- { 0x0500, 0x0283, 0x0f26 },
- { 0x8500, 0x0286, 0x2000 },
- { 0x0500, 0x0285, 0x0000 },
- { 0x0500, 0x0287, 0x0000 },
- { 0x8500, 0x0290, 0x4000 },
- { 0x8500, 0x028c, 0x3000 },
- { 0x8500, 0x028a, 0x2f27 },
- { 0x0500, 0x0289, 0x0000 },
- { 0x0500, 0x028b, 0x0f27 },
- { 0x8500, 0x028e, 0x2000 },
- { 0x0500, 0x028d, 0x0000 },
- { 0x0500, 0x028f, 0x0000 },
- { 0x8500, 0x0294, 0x3000 },
- { 0x8500, 0x0292, 0x2f25 },
- { 0x0500, 0x0291, 0x0000 },
- { 0x0500, 0x0293, 0x0000 },
- { 0x8500, 0x0296, 0x2000 },
- { 0x0500, 0x0295, 0x0000 },
- { 0x0500, 0x0297, 0x0000 },
- { 0x9800, 0x02d8, 0x7000 },
- { 0x8600, 0x02b8, 0x6000 },
- { 0x8500, 0x02a8, 0x5000 },
- { 0x8500, 0x02a0, 0x4000 },
- { 0x8500, 0x029c, 0x3000 },
- { 0x8500, 0x029a, 0x2000 },
- { 0x0500, 0x0299, 0x0000 },
- { 0x0500, 0x029b, 0x0000 },
- { 0x8500, 0x029e, 0x2000 },
- { 0x0500, 0x029d, 0x0000 },
- { 0x0500, 0x029f, 0x0000 },
- { 0x8500, 0x02a4, 0x3000 },
- { 0x8500, 0x02a2, 0x2000 },
- { 0x0500, 0x02a1, 0x0000 },
- { 0x0500, 0x02a3, 0x0000 },
- { 0x8500, 0x02a6, 0x2000 },
- { 0x0500, 0x02a5, 0x0000 },
- { 0x0500, 0x02a7, 0x0000 },
- { 0x8600, 0x02b0, 0x4000 },
- { 0x8500, 0x02ac, 0x3000 },
- { 0x8500, 0x02aa, 0x2000 },
- { 0x0500, 0x02a9, 0x0000 },
- { 0x0500, 0x02ab, 0x0000 },
- { 0x8500, 0x02ae, 0x2000 },
- { 0x0500, 0x02ad, 0x0000 },
- { 0x0500, 0x02af, 0x0000 },
- { 0x8600, 0x02b4, 0x3000 },
- { 0x8600, 0x02b2, 0x2000 },
- { 0x0600, 0x02b1, 0x0000 },
- { 0x0600, 0x02b3, 0x0000 },
- { 0x8600, 0x02b6, 0x2000 },
- { 0x0600, 0x02b5, 0x0000 },
- { 0x0600, 0x02b7, 0x0000 },
- { 0x8600, 0x02c8, 0x5000 },
- { 0x8600, 0x02c0, 0x4000 },
- { 0x8600, 0x02bc, 0x3000 },
- { 0x8600, 0x02ba, 0x2000 },
- { 0x0600, 0x02b9, 0x0000 },
- { 0x0600, 0x02bb, 0x0000 },
- { 0x8600, 0x02be, 0x2000 },
- { 0x0600, 0x02bd, 0x0000 },
- { 0x0600, 0x02bf, 0x0000 },
- { 0x9800, 0x02c4, 0x3000 },
- { 0x9800, 0x02c2, 0x2000 },
- { 0x0600, 0x02c1, 0x0000 },
- { 0x1800, 0x02c3, 0x0000 },
- { 0x8600, 0x02c6, 0x2000 },
- { 0x1800, 0x02c5, 0x0000 },
- { 0x0600, 0x02c7, 0x0000 },
- { 0x8600, 0x02d0, 0x4000 },
- { 0x8600, 0x02cc, 0x3000 },
- { 0x8600, 0x02ca, 0x2000 },
- { 0x0600, 0x02c9, 0x0000 },
- { 0x0600, 0x02cb, 0x0000 },
- { 0x8600, 0x02ce, 0x2000 },
- { 0x0600, 0x02cd, 0x0000 },
- { 0x0600, 0x02cf, 0x0000 },
- { 0x9800, 0x02d4, 0x3000 },
- { 0x9800, 0x02d2, 0x2000 },
- { 0x0600, 0x02d1, 0x0000 },
- { 0x1800, 0x02d3, 0x0000 },
- { 0x9800, 0x02d6, 0x2000 },
- { 0x1800, 0x02d5, 0x0000 },
- { 0x1800, 0x02d7, 0x0000 },
- { 0x9800, 0x02f8, 0x6000 },
- { 0x9800, 0x02e8, 0x5000 },
- { 0x8600, 0x02e0, 0x4000 },
- { 0x9800, 0x02dc, 0x3000 },
- { 0x9800, 0x02da, 0x2000 },
- { 0x1800, 0x02d9, 0x0000 },
- { 0x1800, 0x02db, 0x0000 },
- { 0x9800, 0x02de, 0x2000 },
- { 0x1800, 0x02dd, 0x0000 },
- { 0x1800, 0x02df, 0x0000 },
- { 0x8600, 0x02e4, 0x3000 },
- { 0x8600, 0x02e2, 0x2000 },
- { 0x0600, 0x02e1, 0x0000 },
- { 0x0600, 0x02e3, 0x0000 },
- { 0x9800, 0x02e6, 0x2000 },
- { 0x1800, 0x02e5, 0x0000 },
- { 0x1800, 0x02e7, 0x0000 },
- { 0x9800, 0x02f0, 0x4000 },
- { 0x9800, 0x02ec, 0x3000 },
- { 0x9800, 0x02ea, 0x2000 },
- { 0x1800, 0x02e9, 0x0000 },
- { 0x1800, 0x02eb, 0x0000 },
- { 0x8600, 0x02ee, 0x2000 },
- { 0x1800, 0x02ed, 0x0000 },
- { 0x1800, 0x02ef, 0x0000 },
- { 0x9800, 0x02f4, 0x3000 },
- { 0x9800, 0x02f2, 0x2000 },
- { 0x1800, 0x02f1, 0x0000 },
- { 0x1800, 0x02f3, 0x0000 },
- { 0x9800, 0x02f6, 0x2000 },
- { 0x1800, 0x02f5, 0x0000 },
- { 0x1800, 0x02f7, 0x0000 },
- { 0x8c00, 0x0308, 0x5000 },
- { 0x8c00, 0x0300, 0x4000 },
- { 0x9800, 0x02fc, 0x3000 },
- { 0x9800, 0x02fa, 0x2000 },
- { 0x1800, 0x02f9, 0x0000 },
- { 0x1800, 0x02fb, 0x0000 },
- { 0x9800, 0x02fe, 0x2000 },
- { 0x1800, 0x02fd, 0x0000 },
- { 0x1800, 0x02ff, 0x0000 },
- { 0x8c00, 0x0304, 0x3000 },
- { 0x8c00, 0x0302, 0x2000 },
- { 0x0c00, 0x0301, 0x0000 },
- { 0x0c00, 0x0303, 0x0000 },
- { 0x8c00, 0x0306, 0x2000 },
- { 0x0c00, 0x0305, 0x0000 },
- { 0x0c00, 0x0307, 0x0000 },
- { 0x8c00, 0x0310, 0x4000 },
- { 0x8c00, 0x030c, 0x3000 },
- { 0x8c00, 0x030a, 0x2000 },
- { 0x0c00, 0x0309, 0x0000 },
- { 0x0c00, 0x030b, 0x0000 },
- { 0x8c00, 0x030e, 0x2000 },
- { 0x0c00, 0x030d, 0x0000 },
- { 0x0c00, 0x030f, 0x0000 },
- { 0x8c00, 0x0314, 0x3000 },
- { 0x8c00, 0x0312, 0x2000 },
- { 0x0c00, 0x0311, 0x0000 },
- { 0x0c00, 0x0313, 0x0000 },
- { 0x8c00, 0x0316, 0x2000 },
- { 0x0c00, 0x0315, 0x0000 },
- { 0x0c00, 0x0317, 0x0000 },
- { 0x8500, 0x03b0, 0x8000 },
- { 0x8c00, 0x035d, 0x7000 },
- { 0x8c00, 0x0338, 0x6000 },
- { 0x8c00, 0x0328, 0x5000 },
- { 0x8c00, 0x0320, 0x4000 },
- { 0x8c00, 0x031c, 0x3000 },
- { 0x8c00, 0x031a, 0x2000 },
- { 0x0c00, 0x0319, 0x0000 },
- { 0x0c00, 0x031b, 0x0000 },
- { 0x8c00, 0x031e, 0x2000 },
- { 0x0c00, 0x031d, 0x0000 },
- { 0x0c00, 0x031f, 0x0000 },
- { 0x8c00, 0x0324, 0x3000 },
- { 0x8c00, 0x0322, 0x2000 },
- { 0x0c00, 0x0321, 0x0000 },
- { 0x0c00, 0x0323, 0x0000 },
- { 0x8c00, 0x0326, 0x2000 },
- { 0x0c00, 0x0325, 0x0000 },
- { 0x0c00, 0x0327, 0x0000 },
- { 0x8c00, 0x0330, 0x4000 },
- { 0x8c00, 0x032c, 0x3000 },
- { 0x8c00, 0x032a, 0x2000 },
- { 0x0c00, 0x0329, 0x0000 },
- { 0x0c00, 0x032b, 0x0000 },
- { 0x8c00, 0x032e, 0x2000 },
- { 0x0c00, 0x032d, 0x0000 },
- { 0x0c00, 0x032f, 0x0000 },
- { 0x8c00, 0x0334, 0x3000 },
- { 0x8c00, 0x0332, 0x2000 },
- { 0x0c00, 0x0331, 0x0000 },
- { 0x0c00, 0x0333, 0x0000 },
- { 0x8c00, 0x0336, 0x2000 },
- { 0x0c00, 0x0335, 0x0000 },
- { 0x0c00, 0x0337, 0x0000 },
- { 0x8c00, 0x0348, 0x5000 },
- { 0x8c00, 0x0340, 0x4000 },
- { 0x8c00, 0x033c, 0x3000 },
- { 0x8c00, 0x033a, 0x2000 },
- { 0x0c00, 0x0339, 0x0000 },
- { 0x0c00, 0x033b, 0x0000 },
- { 0x8c00, 0x033e, 0x2000 },
- { 0x0c00, 0x033d, 0x0000 },
- { 0x0c00, 0x033f, 0x0000 },
- { 0x8c00, 0x0344, 0x3000 },
- { 0x8c00, 0x0342, 0x2000 },
- { 0x0c00, 0x0341, 0x0000 },
- { 0x0c00, 0x0343, 0x0000 },
- { 0x8c00, 0x0346, 0x2000 },
- { 0x0c00, 0x0345, 0x0000 },
- { 0x0c00, 0x0347, 0x0000 },
- { 0x8c00, 0x0350, 0x4000 },
- { 0x8c00, 0x034c, 0x3000 },
- { 0x8c00, 0x034a, 0x2000 },
- { 0x0c00, 0x0349, 0x0000 },
- { 0x0c00, 0x034b, 0x0000 },
- { 0x8c00, 0x034e, 0x2000 },
- { 0x0c00, 0x034d, 0x0000 },
- { 0x0c00, 0x034f, 0x0000 },
- { 0x8c00, 0x0354, 0x3000 },
- { 0x8c00, 0x0352, 0x2000 },
- { 0x0c00, 0x0351, 0x0000 },
- { 0x0c00, 0x0353, 0x0000 },
- { 0x8c00, 0x0356, 0x2000 },
- { 0x0c00, 0x0355, 0x0000 },
- { 0x0c00, 0x0357, 0x0000 },
- { 0x8900, 0x038f, 0x603f },
- { 0x8c00, 0x036d, 0x5000 },
- { 0x8c00, 0x0365, 0x4000 },
- { 0x8c00, 0x0361, 0x3000 },
- { 0x8c00, 0x035f, 0x2000 },
- { 0x0c00, 0x035e, 0x0000 },
- { 0x0c00, 0x0360, 0x0000 },
- { 0x8c00, 0x0363, 0x2000 },
- { 0x0c00, 0x0362, 0x0000 },
- { 0x0c00, 0x0364, 0x0000 },
- { 0x8c00, 0x0369, 0x3000 },
- { 0x8c00, 0x0367, 0x2000 },
- { 0x0c00, 0x0366, 0x0000 },
- { 0x0c00, 0x0368, 0x0000 },
- { 0x8c00, 0x036b, 0x2000 },
- { 0x0c00, 0x036a, 0x0000 },
- { 0x0c00, 0x036c, 0x0000 },
- { 0x9800, 0x0385, 0x4000 },
- { 0x9800, 0x0375, 0x3000 },
- { 0x8c00, 0x036f, 0x2000 },
- { 0x0c00, 0x036e, 0x0000 },
- { 0x1800, 0x0374, 0x0000 },
- { 0x9500, 0x037e, 0x2000 },
- { 0x0600, 0x037a, 0x0000 },
- { 0x1800, 0x0384, 0x0000 },
- { 0x8900, 0x0389, 0x3025 },
- { 0x9500, 0x0387, 0x2000 },
- { 0x0900, 0x0386, 0x0026 },
- { 0x0900, 0x0388, 0x0025 },
- { 0x8900, 0x038c, 0x2040 },
- { 0x0900, 0x038a, 0x0025 },
- { 0x0900, 0x038e, 0x003f },
- { 0x8900, 0x039f, 0x5020 },
- { 0x8900, 0x0397, 0x4020 },
- { 0x8900, 0x0393, 0x3020 },
- { 0x8900, 0x0391, 0x2020 },
- { 0x0500, 0x0390, 0x0000 },
- { 0x0900, 0x0392, 0x0020 },
- { 0x8900, 0x0395, 0x2020 },
- { 0x0900, 0x0394, 0x0020 },
- { 0x0900, 0x0396, 0x0020 },
- { 0x8900, 0x039b, 0x3020 },
- { 0x8900, 0x0399, 0x2020 },
- { 0x0900, 0x0398, 0x0020 },
- { 0x0900, 0x039a, 0x0020 },
- { 0x8900, 0x039d, 0x2020 },
- { 0x0900, 0x039c, 0x0020 },
- { 0x0900, 0x039e, 0x0020 },
- { 0x8900, 0x03a8, 0x4020 },
- { 0x8900, 0x03a4, 0x3020 },
- { 0x8900, 0x03a1, 0x2020 },
- { 0x0900, 0x03a0, 0x0020 },
- { 0x0900, 0x03a3, 0x0020 },
- { 0x8900, 0x03a6, 0x2020 },
- { 0x0900, 0x03a5, 0x0020 },
- { 0x0900, 0x03a7, 0x0020 },
- { 0x8500, 0x03ac, 0x3fda },
- { 0x8900, 0x03aa, 0x2020 },
- { 0x0900, 0x03a9, 0x0020 },
- { 0x0900, 0x03ab, 0x0020 },
- { 0x8500, 0x03ae, 0x2fdb },
- { 0x0500, 0x03ad, 0x0fdb },
- { 0x0500, 0x03af, 0x0fdb },
- { 0x8500, 0x03f1, 0x7fb0 },
- { 0x8500, 0x03d1, 0x6fc7 },
- { 0x8500, 0x03c0, 0x5fe0 },
- { 0x8500, 0x03b8, 0x4fe0 },
- { 0x8500, 0x03b4, 0x3fe0 },
- { 0x8500, 0x03b2, 0x2fe0 },
- { 0x0500, 0x03b1, 0x0fe0 },
- { 0x0500, 0x03b3, 0x0fe0 },
- { 0x8500, 0x03b6, 0x2fe0 },
- { 0x0500, 0x03b5, 0x0fe0 },
- { 0x0500, 0x03b7, 0x0fe0 },
- { 0x8500, 0x03bc, 0x3fe0 },
- { 0x8500, 0x03ba, 0x2fe0 },
- { 0x0500, 0x03b9, 0x0fe0 },
- { 0x0500, 0x03bb, 0x0fe0 },
- { 0x8500, 0x03be, 0x2fe0 },
- { 0x0500, 0x03bd, 0x0fe0 },
- { 0x0500, 0x03bf, 0x0fe0 },
- { 0x8500, 0x03c8, 0x4fe0 },
- { 0x8500, 0x03c4, 0x3fe0 },
- { 0x8500, 0x03c2, 0x2fe1 },
- { 0x0500, 0x03c1, 0x0fe0 },
- { 0x0500, 0x03c3, 0x0fe0 },
- { 0x8500, 0x03c6, 0x2fe0 },
- { 0x0500, 0x03c5, 0x0fe0 },
- { 0x0500, 0x03c7, 0x0fe0 },
- { 0x8500, 0x03cc, 0x3fc0 },
- { 0x8500, 0x03ca, 0x2fe0 },
- { 0x0500, 0x03c9, 0x0fe0 },
- { 0x0500, 0x03cb, 0x0fe0 },
- { 0x8500, 0x03ce, 0x2fc1 },
- { 0x0500, 0x03cd, 0x0fc1 },
- { 0x0500, 0x03d0, 0x0fc2 },
- { 0x8500, 0x03e1, 0x5fff },
- { 0x8500, 0x03d9, 0x4fff },
- { 0x8500, 0x03d5, 0x3fd1 },
- { 0x8900, 0x03d3, 0x2000 },
- { 0x0900, 0x03d2, 0x0000 },
- { 0x0900, 0x03d4, 0x0000 },
- { 0x8500, 0x03d7, 0x2000 },
- { 0x0500, 0x03d6, 0x0fca },
- { 0x0900, 0x03d8, 0x0001 },
- { 0x8500, 0x03dd, 0x3fff },
- { 0x8500, 0x03db, 0x2fff },
- { 0x0900, 0x03da, 0x0001 },
- { 0x0900, 0x03dc, 0x0001 },
- { 0x8500, 0x03df, 0x2fff },
- { 0x0900, 0x03de, 0x0001 },
- { 0x0900, 0x03e0, 0x0001 },
- { 0x8500, 0x03e9, 0x4fff },
- { 0x8500, 0x03e5, 0x3fff },
- { 0x8500, 0x03e3, 0x2fff },
- { 0x0900, 0x03e2, 0x0001 },
- { 0x0900, 0x03e4, 0x0001 },
- { 0x8500, 0x03e7, 0x2fff },
- { 0x0900, 0x03e6, 0x0001 },
- { 0x0900, 0x03e8, 0x0001 },
- { 0x8500, 0x03ed, 0x3fff },
- { 0x8500, 0x03eb, 0x2fff },
- { 0x0900, 0x03ea, 0x0001 },
- { 0x0900, 0x03ec, 0x0001 },
- { 0x8500, 0x03ef, 0x2fff },
- { 0x0900, 0x03ee, 0x0001 },
- { 0x0500, 0x03f0, 0x0faa },
- { 0x8900, 0x0415, 0x6020 },
- { 0x8900, 0x0405, 0x5050 },
- { 0x8900, 0x03f9, 0x4ff9 },
- { 0x8500, 0x03f5, 0x3fa0 },
- { 0x8500, 0x03f3, 0x2000 },
- { 0x0500, 0x03f2, 0x0007 },
- { 0x0900, 0x03f4, 0x0fc4 },
- { 0x8900, 0x03f7, 0x2001 },
- { 0x1900, 0x03f6, 0x0000 },
- { 0x0500, 0x03f8, 0x0fff },
- { 0x8900, 0x0401, 0x3050 },
- { 0x8500, 0x03fb, 0x2fff },
- { 0x0900, 0x03fa, 0x0001 },
- { 0x0900, 0x0400, 0x0050 },
- { 0x8900, 0x0403, 0x2050 },
- { 0x0900, 0x0402, 0x0050 },
- { 0x0900, 0x0404, 0x0050 },
- { 0x8900, 0x040d, 0x4050 },
- { 0x8900, 0x0409, 0x3050 },
- { 0x8900, 0x0407, 0x2050 },
- { 0x0900, 0x0406, 0x0050 },
- { 0x0900, 0x0408, 0x0050 },
- { 0x8900, 0x040b, 0x2050 },
- { 0x0900, 0x040a, 0x0050 },
- { 0x0900, 0x040c, 0x0050 },
- { 0x8900, 0x0411, 0x3020 },
- { 0x8900, 0x040f, 0x2050 },
- { 0x0900, 0x040e, 0x0050 },
- { 0x0900, 0x0410, 0x0020 },
- { 0x8900, 0x0413, 0x2020 },
- { 0x0900, 0x0412, 0x0020 },
- { 0x0900, 0x0414, 0x0020 },
- { 0x8900, 0x0425, 0x5020 },
- { 0x8900, 0x041d, 0x4020 },
- { 0x8900, 0x0419, 0x3020 },
- { 0x8900, 0x0417, 0x2020 },
- { 0x0900, 0x0416, 0x0020 },
- { 0x0900, 0x0418, 0x0020 },
- { 0x8900, 0x041b, 0x2020 },
- { 0x0900, 0x041a, 0x0020 },
- { 0x0900, 0x041c, 0x0020 },
- { 0x8900, 0x0421, 0x3020 },
- { 0x8900, 0x041f, 0x2020 },
- { 0x0900, 0x041e, 0x0020 },
- { 0x0900, 0x0420, 0x0020 },
- { 0x8900, 0x0423, 0x2020 },
- { 0x0900, 0x0422, 0x0020 },
- { 0x0900, 0x0424, 0x0020 },
- { 0x8900, 0x042d, 0x4020 },
- { 0x8900, 0x0429, 0x3020 },
- { 0x8900, 0x0427, 0x2020 },
- { 0x0900, 0x0426, 0x0020 },
- { 0x0900, 0x0428, 0x0020 },
- { 0x8900, 0x042b, 0x2020 },
- { 0x0900, 0x042a, 0x0020 },
- { 0x0900, 0x042c, 0x0020 },
- { 0x8500, 0x0431, 0x3fe0 },
- { 0x8900, 0x042f, 0x2020 },
- { 0x0900, 0x042e, 0x0020 },
- { 0x0500, 0x0430, 0x0fe0 },
- { 0x8500, 0x0433, 0x2fe0 },
- { 0x0500, 0x0432, 0x0fe0 },
- { 0x0500, 0x0434, 0x0fe0 },
- { 0x8700, 0x06a4, 0xa000 },
- { 0x8500, 0x0563, 0x9fd0 },
- { 0x8900, 0x04b6, 0x8001 },
- { 0x8500, 0x0475, 0x7fff },
- { 0x8500, 0x0455, 0x6fb0 },
- { 0x8500, 0x0445, 0x5fe0 },
- { 0x8500, 0x043d, 0x4fe0 },
- { 0x8500, 0x0439, 0x3fe0 },
- { 0x8500, 0x0437, 0x2fe0 },
- { 0x0500, 0x0436, 0x0fe0 },
- { 0x0500, 0x0438, 0x0fe0 },
- { 0x8500, 0x043b, 0x2fe0 },
- { 0x0500, 0x043a, 0x0fe0 },
- { 0x0500, 0x043c, 0x0fe0 },
- { 0x8500, 0x0441, 0x3fe0 },
- { 0x8500, 0x043f, 0x2fe0 },
- { 0x0500, 0x043e, 0x0fe0 },
- { 0x0500, 0x0440, 0x0fe0 },
- { 0x8500, 0x0443, 0x2fe0 },
- { 0x0500, 0x0442, 0x0fe0 },
- { 0x0500, 0x0444, 0x0fe0 },
- { 0x8500, 0x044d, 0x4fe0 },
- { 0x8500, 0x0449, 0x3fe0 },
- { 0x8500, 0x0447, 0x2fe0 },
- { 0x0500, 0x0446, 0x0fe0 },
- { 0x0500, 0x0448, 0x0fe0 },
- { 0x8500, 0x044b, 0x2fe0 },
- { 0x0500, 0x044a, 0x0fe0 },
- { 0x0500, 0x044c, 0x0fe0 },
- { 0x8500, 0x0451, 0x3fb0 },
- { 0x8500, 0x044f, 0x2fe0 },
- { 0x0500, 0x044e, 0x0fe0 },
- { 0x0500, 0x0450, 0x0fb0 },
- { 0x8500, 0x0453, 0x2fb0 },
- { 0x0500, 0x0452, 0x0fb0 },
- { 0x0500, 0x0454, 0x0fb0 },
- { 0x8500, 0x0465, 0x5fff },
- { 0x8500, 0x045d, 0x4fb0 },
- { 0x8500, 0x0459, 0x3fb0 },
- { 0x8500, 0x0457, 0x2fb0 },
- { 0x0500, 0x0456, 0x0fb0 },
- { 0x0500, 0x0458, 0x0fb0 },
- { 0x8500, 0x045b, 0x2fb0 },
- { 0x0500, 0x045a, 0x0fb0 },
- { 0x0500, 0x045c, 0x0fb0 },
- { 0x8500, 0x0461, 0x3fff },
- { 0x8500, 0x045f, 0x2fb0 },
- { 0x0500, 0x045e, 0x0fb0 },
- { 0x0900, 0x0460, 0x0001 },
- { 0x8500, 0x0463, 0x2fff },
- { 0x0900, 0x0462, 0x0001 },
- { 0x0900, 0x0464, 0x0001 },
- { 0x8500, 0x046d, 0x4fff },
- { 0x8500, 0x0469, 0x3fff },
- { 0x8500, 0x0467, 0x2fff },
- { 0x0900, 0x0466, 0x0001 },
- { 0x0900, 0x0468, 0x0001 },
- { 0x8500, 0x046b, 0x2fff },
- { 0x0900, 0x046a, 0x0001 },
- { 0x0900, 0x046c, 0x0001 },
- { 0x8500, 0x0471, 0x3fff },
- { 0x8500, 0x046f, 0x2fff },
- { 0x0900, 0x046e, 0x0001 },
- { 0x0900, 0x0470, 0x0001 },
- { 0x8500, 0x0473, 0x2fff },
- { 0x0900, 0x0472, 0x0001 },
- { 0x0900, 0x0474, 0x0001 },
- { 0x8900, 0x0496, 0x6001 },
- { 0x8c00, 0x0485, 0x5000 },
- { 0x8500, 0x047d, 0x4fff },
- { 0x8500, 0x0479, 0x3fff },
- { 0x8500, 0x0477, 0x2fff },
- { 0x0900, 0x0476, 0x0001 },
- { 0x0900, 0x0478, 0x0001 },
- { 0x8500, 0x047b, 0x2fff },
- { 0x0900, 0x047a, 0x0001 },
- { 0x0900, 0x047c, 0x0001 },
- { 0x8500, 0x0481, 0x3fff },
- { 0x8500, 0x047f, 0x2fff },
- { 0x0900, 0x047e, 0x0001 },
- { 0x0900, 0x0480, 0x0001 },
- { 0x8c00, 0x0483, 0x2000 },
- { 0x1a00, 0x0482, 0x0000 },
- { 0x0c00, 0x0484, 0x0000 },
- { 0x8900, 0x048e, 0x4001 },
- { 0x8900, 0x048a, 0x3001 },
- { 0x8b00, 0x0488, 0x2000 },
- { 0x0c00, 0x0486, 0x0000 },
- { 0x0b00, 0x0489, 0x0000 },
- { 0x8900, 0x048c, 0x2001 },
- { 0x0500, 0x048b, 0x0fff },
- { 0x0500, 0x048d, 0x0fff },
- { 0x8900, 0x0492, 0x3001 },
- { 0x8900, 0x0490, 0x2001 },
- { 0x0500, 0x048f, 0x0fff },
- { 0x0500, 0x0491, 0x0fff },
- { 0x8900, 0x0494, 0x2001 },
- { 0x0500, 0x0493, 0x0fff },
- { 0x0500, 0x0495, 0x0fff },
- { 0x8900, 0x04a6, 0x5001 },
- { 0x8900, 0x049e, 0x4001 },
- { 0x8900, 0x049a, 0x3001 },
- { 0x8900, 0x0498, 0x2001 },
- { 0x0500, 0x0497, 0x0fff },
- { 0x0500, 0x0499, 0x0fff },
- { 0x8900, 0x049c, 0x2001 },
- { 0x0500, 0x049b, 0x0fff },
- { 0x0500, 0x049d, 0x0fff },
- { 0x8900, 0x04a2, 0x3001 },
- { 0x8900, 0x04a0, 0x2001 },
- { 0x0500, 0x049f, 0x0fff },
- { 0x0500, 0x04a1, 0x0fff },
- { 0x8900, 0x04a4, 0x2001 },
- { 0x0500, 0x04a3, 0x0fff },
- { 0x0500, 0x04a5, 0x0fff },
- { 0x8900, 0x04ae, 0x4001 },
- { 0x8900, 0x04aa, 0x3001 },
- { 0x8900, 0x04a8, 0x2001 },
- { 0x0500, 0x04a7, 0x0fff },
- { 0x0500, 0x04a9, 0x0fff },
- { 0x8900, 0x04ac, 0x2001 },
- { 0x0500, 0x04ab, 0x0fff },
- { 0x0500, 0x04ad, 0x0fff },
- { 0x8900, 0x04b2, 0x3001 },
- { 0x8900, 0x04b0, 0x2001 },
- { 0x0500, 0x04af, 0x0fff },
- { 0x0500, 0x04b1, 0x0fff },
- { 0x8900, 0x04b4, 0x2001 },
- { 0x0500, 0x04b3, 0x0fff },
- { 0x0500, 0x04b5, 0x0fff },
- { 0x8500, 0x04f9, 0x7fff },
- { 0x8500, 0x04d7, 0x6fff },
- { 0x8500, 0x04c6, 0x5fff },
- { 0x8900, 0x04be, 0x4001 },
- { 0x8900, 0x04ba, 0x3001 },
- { 0x8900, 0x04b8, 0x2001 },
- { 0x0500, 0x04b7, 0x0fff },
- { 0x0500, 0x04b9, 0x0fff },
- { 0x8900, 0x04bc, 0x2001 },
- { 0x0500, 0x04bb, 0x0fff },
- { 0x0500, 0x04bd, 0x0fff },
- { 0x8500, 0x04c2, 0x3fff },
- { 0x8900, 0x04c0, 0x2000 },
- { 0x0500, 0x04bf, 0x0fff },
- { 0x0900, 0x04c1, 0x0001 },
- { 0x8500, 0x04c4, 0x2fff },
- { 0x0900, 0x04c3, 0x0001 },
- { 0x0900, 0x04c5, 0x0001 },
- { 0x8500, 0x04ce, 0x4fff },
- { 0x8500, 0x04ca, 0x3fff },
- { 0x8500, 0x04c8, 0x2fff },
- { 0x0900, 0x04c7, 0x0001 },
- { 0x0900, 0x04c9, 0x0001 },
- { 0x8500, 0x04cc, 0x2fff },
- { 0x0900, 0x04cb, 0x0001 },
- { 0x0900, 0x04cd, 0x0001 },
- { 0x8500, 0x04d3, 0x3fff },
- { 0x8500, 0x04d1, 0x2fff },
- { 0x0900, 0x04d0, 0x0001 },
- { 0x0900, 0x04d2, 0x0001 },
- { 0x8500, 0x04d5, 0x2fff },
- { 0x0900, 0x04d4, 0x0001 },
- { 0x0900, 0x04d6, 0x0001 },
- { 0x8500, 0x04e7, 0x5fff },
- { 0x8500, 0x04df, 0x4fff },
- { 0x8500, 0x04db, 0x3fff },
- { 0x8500, 0x04d9, 0x2fff },
- { 0x0900, 0x04d8, 0x0001 },
- { 0x0900, 0x04da, 0x0001 },
- { 0x8500, 0x04dd, 0x2fff },
- { 0x0900, 0x04dc, 0x0001 },
- { 0x0900, 0x04de, 0x0001 },
- { 0x8500, 0x04e3, 0x3fff },
- { 0x8500, 0x04e1, 0x2fff },
- { 0x0900, 0x04e0, 0x0001 },
- { 0x0900, 0x04e2, 0x0001 },
- { 0x8500, 0x04e5, 0x2fff },
- { 0x0900, 0x04e4, 0x0001 },
- { 0x0900, 0x04e6, 0x0001 },
- { 0x8500, 0x04ef, 0x4fff },
- { 0x8500, 0x04eb, 0x3fff },
- { 0x8500, 0x04e9, 0x2fff },
- { 0x0900, 0x04e8, 0x0001 },
- { 0x0900, 0x04ea, 0x0001 },
- { 0x8500, 0x04ed, 0x2fff },
- { 0x0900, 0x04ec, 0x0001 },
- { 0x0900, 0x04ee, 0x0001 },
- { 0x8500, 0x04f3, 0x3fff },
- { 0x8500, 0x04f1, 0x2fff },
- { 0x0900, 0x04f0, 0x0001 },
- { 0x0900, 0x04f2, 0x0001 },
- { 0x8500, 0x04f5, 0x2fff },
- { 0x0900, 0x04f4, 0x0001 },
- { 0x0900, 0x04f8, 0x0001 },
- { 0x8900, 0x0540, 0x6030 },
- { 0x8500, 0x050f, 0x5fff },
- { 0x8500, 0x0507, 0x4fff },
- { 0x8500, 0x0503, 0x3fff },
- { 0x8500, 0x0501, 0x2fff },
- { 0x0900, 0x0500, 0x0001 },
- { 0x0900, 0x0502, 0x0001 },
- { 0x8500, 0x0505, 0x2fff },
- { 0x0900, 0x0504, 0x0001 },
- { 0x0900, 0x0506, 0x0001 },
- { 0x8500, 0x050b, 0x3fff },
- { 0x8500, 0x0509, 0x2fff },
- { 0x0900, 0x0508, 0x0001 },
- { 0x0900, 0x050a, 0x0001 },
- { 0x8500, 0x050d, 0x2fff },
- { 0x0900, 0x050c, 0x0001 },
- { 0x0900, 0x050e, 0x0001 },
- { 0x8900, 0x0538, 0x4030 },
- { 0x8900, 0x0534, 0x3030 },
- { 0x8900, 0x0532, 0x2030 },
- { 0x0900, 0x0531, 0x0030 },
- { 0x0900, 0x0533, 0x0030 },
- { 0x8900, 0x0536, 0x2030 },
- { 0x0900, 0x0535, 0x0030 },
- { 0x0900, 0x0537, 0x0030 },
- { 0x8900, 0x053c, 0x3030 },
- { 0x8900, 0x053a, 0x2030 },
- { 0x0900, 0x0539, 0x0030 },
- { 0x0900, 0x053b, 0x0030 },
- { 0x8900, 0x053e, 0x2030 },
- { 0x0900, 0x053d, 0x0030 },
- { 0x0900, 0x053f, 0x0030 },
- { 0x8900, 0x0550, 0x5030 },
- { 0x8900, 0x0548, 0x4030 },
- { 0x8900, 0x0544, 0x3030 },
- { 0x8900, 0x0542, 0x2030 },
- { 0x0900, 0x0541, 0x0030 },
- { 0x0900, 0x0543, 0x0030 },
- { 0x8900, 0x0546, 0x2030 },
- { 0x0900, 0x0545, 0x0030 },
- { 0x0900, 0x0547, 0x0030 },
- { 0x8900, 0x054c, 0x3030 },
- { 0x8900, 0x054a, 0x2030 },
- { 0x0900, 0x0549, 0x0030 },
- { 0x0900, 0x054b, 0x0030 },
- { 0x8900, 0x054e, 0x2030 },
- { 0x0900, 0x054d, 0x0030 },
- { 0x0900, 0x054f, 0x0030 },
- { 0x9500, 0x055a, 0x4000 },
- { 0x8900, 0x0554, 0x3030 },
- { 0x8900, 0x0552, 0x2030 },
- { 0x0900, 0x0551, 0x0030 },
- { 0x0900, 0x0553, 0x0030 },
- { 0x8900, 0x0556, 0x2030 },
- { 0x0900, 0x0555, 0x0030 },
- { 0x0600, 0x0559, 0x0000 },
- { 0x9500, 0x055e, 0x3000 },
- { 0x9500, 0x055c, 0x2000 },
- { 0x1500, 0x055b, 0x0000 },
- { 0x1500, 0x055d, 0x0000 },
- { 0x8500, 0x0561, 0x2fd0 },
- { 0x1500, 0x055f, 0x0000 },
- { 0x0500, 0x0562, 0x0fd0 },
- { 0x9a00, 0x060f, 0x8000 },
- { 0x8c00, 0x05ab, 0x7000 },
- { 0x8500, 0x0583, 0x6fd0 },
- { 0x8500, 0x0573, 0x5fd0 },
- { 0x8500, 0x056b, 0x4fd0 },
- { 0x8500, 0x0567, 0x3fd0 },
- { 0x8500, 0x0565, 0x2fd0 },
- { 0x0500, 0x0564, 0x0fd0 },
- { 0x0500, 0x0566, 0x0fd0 },
- { 0x8500, 0x0569, 0x2fd0 },
- { 0x0500, 0x0568, 0x0fd0 },
- { 0x0500, 0x056a, 0x0fd0 },
- { 0x8500, 0x056f, 0x3fd0 },
- { 0x8500, 0x056d, 0x2fd0 },
- { 0x0500, 0x056c, 0x0fd0 },
- { 0x0500, 0x056e, 0x0fd0 },
- { 0x8500, 0x0571, 0x2fd0 },
- { 0x0500, 0x0570, 0x0fd0 },
- { 0x0500, 0x0572, 0x0fd0 },
- { 0x8500, 0x057b, 0x4fd0 },
- { 0x8500, 0x0577, 0x3fd0 },
- { 0x8500, 0x0575, 0x2fd0 },
- { 0x0500, 0x0574, 0x0fd0 },
- { 0x0500, 0x0576, 0x0fd0 },
- { 0x8500, 0x0579, 0x2fd0 },
- { 0x0500, 0x0578, 0x0fd0 },
- { 0x0500, 0x057a, 0x0fd0 },
- { 0x8500, 0x057f, 0x3fd0 },
- { 0x8500, 0x057d, 0x2fd0 },
- { 0x0500, 0x057c, 0x0fd0 },
- { 0x0500, 0x057e, 0x0fd0 },
- { 0x8500, 0x0581, 0x2fd0 },
- { 0x0500, 0x0580, 0x0fd0 },
- { 0x0500, 0x0582, 0x0fd0 },
- { 0x8c00, 0x059a, 0x5000 },
- { 0x8c00, 0x0592, 0x4000 },
- { 0x8500, 0x0587, 0x3000 },
- { 0x8500, 0x0585, 0x2fd0 },
- { 0x0500, 0x0584, 0x0fd0 },
- { 0x0500, 0x0586, 0x0fd0 },
- { 0x9100, 0x058a, 0x2000 },
- { 0x1500, 0x0589, 0x0000 },
- { 0x0c00, 0x0591, 0x0000 },
- { 0x8c00, 0x0596, 0x3000 },
- { 0x8c00, 0x0594, 0x2000 },
- { 0x0c00, 0x0593, 0x0000 },
- { 0x0c00, 0x0595, 0x0000 },
- { 0x8c00, 0x0598, 0x2000 },
- { 0x0c00, 0x0597, 0x0000 },
- { 0x0c00, 0x0599, 0x0000 },
- { 0x8c00, 0x05a3, 0x4000 },
- { 0x8c00, 0x059e, 0x3000 },
- { 0x8c00, 0x059c, 0x2000 },
- { 0x0c00, 0x059b, 0x0000 },
- { 0x0c00, 0x059d, 0x0000 },
- { 0x8c00, 0x05a0, 0x2000 },
- { 0x0c00, 0x059f, 0x0000 },
- { 0x0c00, 0x05a1, 0x0000 },
- { 0x8c00, 0x05a7, 0x3000 },
- { 0x8c00, 0x05a5, 0x2000 },
- { 0x0c00, 0x05a4, 0x0000 },
- { 0x0c00, 0x05a6, 0x0000 },
- { 0x8c00, 0x05a9, 0x2000 },
- { 0x0c00, 0x05a8, 0x0000 },
- { 0x0c00, 0x05aa, 0x0000 },
- { 0x8700, 0x05d7, 0x6000 },
- { 0x8c00, 0x05bc, 0x5000 },
- { 0x8c00, 0x05b3, 0x4000 },
- { 0x8c00, 0x05af, 0x3000 },
- { 0x8c00, 0x05ad, 0x2000 },
- { 0x0c00, 0x05ac, 0x0000 },
- { 0x0c00, 0x05ae, 0x0000 },
- { 0x8c00, 0x05b1, 0x2000 },
- { 0x0c00, 0x05b0, 0x0000 },
- { 0x0c00, 0x05b2, 0x0000 },
- { 0x8c00, 0x05b7, 0x3000 },
- { 0x8c00, 0x05b5, 0x2000 },
- { 0x0c00, 0x05b4, 0x0000 },
- { 0x0c00, 0x05b6, 0x0000 },
- { 0x8c00, 0x05b9, 0x2000 },
- { 0x0c00, 0x05b8, 0x0000 },
- { 0x0c00, 0x05bb, 0x0000 },
- { 0x8c00, 0x05c4, 0x4000 },
- { 0x9500, 0x05c0, 0x3000 },
- { 0x9500, 0x05be, 0x2000 },
- { 0x0c00, 0x05bd, 0x0000 },
- { 0x0c00, 0x05bf, 0x0000 },
- { 0x8c00, 0x05c2, 0x2000 },
- { 0x0c00, 0x05c1, 0x0000 },
- { 0x1500, 0x05c3, 0x0000 },
- { 0x8700, 0x05d3, 0x3000 },
- { 0x8700, 0x05d1, 0x2000 },
- { 0x0700, 0x05d0, 0x0000 },
- { 0x0700, 0x05d2, 0x0000 },
- { 0x8700, 0x05d5, 0x2000 },
- { 0x0700, 0x05d4, 0x0000 },
- { 0x0700, 0x05d6, 0x0000 },
- { 0x8700, 0x05e7, 0x5000 },
- { 0x8700, 0x05df, 0x4000 },
- { 0x8700, 0x05db, 0x3000 },
- { 0x8700, 0x05d9, 0x2000 },
- { 0x0700, 0x05d8, 0x0000 },
- { 0x0700, 0x05da, 0x0000 },
- { 0x8700, 0x05dd, 0x2000 },
- { 0x0700, 0x05dc, 0x0000 },
- { 0x0700, 0x05de, 0x0000 },
- { 0x8700, 0x05e3, 0x3000 },
- { 0x8700, 0x05e1, 0x2000 },
- { 0x0700, 0x05e0, 0x0000 },
- { 0x0700, 0x05e2, 0x0000 },
- { 0x8700, 0x05e5, 0x2000 },
- { 0x0700, 0x05e4, 0x0000 },
- { 0x0700, 0x05e6, 0x0000 },
- { 0x9500, 0x05f4, 0x4000 },
- { 0x8700, 0x05f0, 0x3000 },
- { 0x8700, 0x05e9, 0x2000 },
- { 0x0700, 0x05e8, 0x0000 },
- { 0x0700, 0x05ea, 0x0000 },
- { 0x8700, 0x05f2, 0x2000 },
- { 0x0700, 0x05f1, 0x0000 },
- { 0x1500, 0x05f3, 0x0000 },
- { 0x8100, 0x0603, 0x3000 },
- { 0x8100, 0x0601, 0x2000 },
- { 0x0100, 0x0600, 0x0000 },
- { 0x0100, 0x0602, 0x0000 },
- { 0x9500, 0x060d, 0x2000 },
- { 0x1500, 0x060c, 0x0000 },
- { 0x1a00, 0x060e, 0x0000 },
- { 0x8d00, 0x0664, 0x7000 },
- { 0x8700, 0x0638, 0x6000 },
- { 0x8700, 0x0628, 0x5000 },
- { 0x9500, 0x061f, 0x4000 },
- { 0x8c00, 0x0613, 0x3000 },
- { 0x8c00, 0x0611, 0x2000 },
- { 0x0c00, 0x0610, 0x0000 },
- { 0x0c00, 0x0612, 0x0000 },
- { 0x8c00, 0x0615, 0x2000 },
- { 0x0c00, 0x0614, 0x0000 },
- { 0x1500, 0x061b, 0x0000 },
- { 0x8700, 0x0624, 0x3000 },
- { 0x8700, 0x0622, 0x2000 },
- { 0x0700, 0x0621, 0x0000 },
- { 0x0700, 0x0623, 0x0000 },
- { 0x8700, 0x0626, 0x2000 },
- { 0x0700, 0x0625, 0x0000 },
- { 0x0700, 0x0627, 0x0000 },
- { 0x8700, 0x0630, 0x4000 },
- { 0x8700, 0x062c, 0x3000 },
- { 0x8700, 0x062a, 0x2000 },
- { 0x0700, 0x0629, 0x0000 },
- { 0x0700, 0x062b, 0x0000 },
- { 0x8700, 0x062e, 0x2000 },
- { 0x0700, 0x062d, 0x0000 },
- { 0x0700, 0x062f, 0x0000 },
- { 0x8700, 0x0634, 0x3000 },
- { 0x8700, 0x0632, 0x2000 },
- { 0x0700, 0x0631, 0x0000 },
- { 0x0700, 0x0633, 0x0000 },
- { 0x8700, 0x0636, 0x2000 },
- { 0x0700, 0x0635, 0x0000 },
- { 0x0700, 0x0637, 0x0000 },
- { 0x8c00, 0x064d, 0x5000 },
- { 0x8700, 0x0645, 0x4000 },
- { 0x8700, 0x0641, 0x3000 },
- { 0x8700, 0x063a, 0x2000 },
- { 0x0700, 0x0639, 0x0000 },
- { 0x0600, 0x0640, 0x0000 },
- { 0x8700, 0x0643, 0x2000 },
- { 0x0700, 0x0642, 0x0000 },
- { 0x0700, 0x0644, 0x0000 },
- { 0x8700, 0x0649, 0x3000 },
- { 0x8700, 0x0647, 0x2000 },
- { 0x0700, 0x0646, 0x0000 },
- { 0x0700, 0x0648, 0x0000 },
- { 0x8c00, 0x064b, 0x2000 },
- { 0x0700, 0x064a, 0x0000 },
- { 0x0c00, 0x064c, 0x0000 },
- { 0x8c00, 0x0655, 0x4000 },
- { 0x8c00, 0x0651, 0x3000 },
- { 0x8c00, 0x064f, 0x2000 },
- { 0x0c00, 0x064e, 0x0000 },
- { 0x0c00, 0x0650, 0x0000 },
- { 0x8c00, 0x0653, 0x2000 },
- { 0x0c00, 0x0652, 0x0000 },
- { 0x0c00, 0x0654, 0x0000 },
- { 0x8d00, 0x0660, 0x3000 },
- { 0x8c00, 0x0657, 0x2000 },
- { 0x0c00, 0x0656, 0x0000 },
- { 0x0c00, 0x0658, 0x0000 },
- { 0x8d00, 0x0662, 0x2000 },
- { 0x0d00, 0x0661, 0x0000 },
- { 0x0d00, 0x0663, 0x0000 },
- { 0x8700, 0x0684, 0x6000 },
- { 0x8700, 0x0674, 0x5000 },
- { 0x9500, 0x066c, 0x4000 },
- { 0x8d00, 0x0668, 0x3000 },
- { 0x8d00, 0x0666, 0x2000 },
- { 0x0d00, 0x0665, 0x0000 },
- { 0x0d00, 0x0667, 0x0000 },
- { 0x9500, 0x066a, 0x2000 },
- { 0x0d00, 0x0669, 0x0000 },
- { 0x1500, 0x066b, 0x0000 },
- { 0x8c00, 0x0670, 0x3000 },
- { 0x8700, 0x066e, 0x2000 },
- { 0x1500, 0x066d, 0x0000 },
- { 0x0700, 0x066f, 0x0000 },
- { 0x8700, 0x0672, 0x2000 },
- { 0x0700, 0x0671, 0x0000 },
- { 0x0700, 0x0673, 0x0000 },
- { 0x8700, 0x067c, 0x4000 },
- { 0x8700, 0x0678, 0x3000 },
- { 0x8700, 0x0676, 0x2000 },
- { 0x0700, 0x0675, 0x0000 },
- { 0x0700, 0x0677, 0x0000 },
- { 0x8700, 0x067a, 0x2000 },
- { 0x0700, 0x0679, 0x0000 },
- { 0x0700, 0x067b, 0x0000 },
- { 0x8700, 0x0680, 0x3000 },
- { 0x8700, 0x067e, 0x2000 },
- { 0x0700, 0x067d, 0x0000 },
- { 0x0700, 0x067f, 0x0000 },
- { 0x8700, 0x0682, 0x2000 },
- { 0x0700, 0x0681, 0x0000 },
- { 0x0700, 0x0683, 0x0000 },
- { 0x8700, 0x0694, 0x5000 },
- { 0x8700, 0x068c, 0x4000 },
- { 0x8700, 0x0688, 0x3000 },
- { 0x8700, 0x0686, 0x2000 },
- { 0x0700, 0x0685, 0x0000 },
- { 0x0700, 0x0687, 0x0000 },
- { 0x8700, 0x068a, 0x2000 },
- { 0x0700, 0x0689, 0x0000 },
- { 0x0700, 0x068b, 0x0000 },
- { 0x8700, 0x0690, 0x3000 },
- { 0x8700, 0x068e, 0x2000 },
- { 0x0700, 0x068d, 0x0000 },
- { 0x0700, 0x068f, 0x0000 },
- { 0x8700, 0x0692, 0x2000 },
- { 0x0700, 0x0691, 0x0000 },
- { 0x0700, 0x0693, 0x0000 },
- { 0x8700, 0x069c, 0x4000 },
- { 0x8700, 0x0698, 0x3000 },
- { 0x8700, 0x0696, 0x2000 },
- { 0x0700, 0x0695, 0x0000 },
- { 0x0700, 0x0697, 0x0000 },
- { 0x8700, 0x069a, 0x2000 },
- { 0x0700, 0x0699, 0x0000 },
- { 0x0700, 0x069b, 0x0000 },
- { 0x8700, 0x06a0, 0x3000 },
- { 0x8700, 0x069e, 0x2000 },
- { 0x0700, 0x069d, 0x0000 },
- { 0x0700, 0x069f, 0x0000 },
- { 0x8700, 0x06a2, 0x2000 },
- { 0x0700, 0x06a1, 0x0000 },
- { 0x0700, 0x06a3, 0x0000 },
- { 0x8700, 0x0926, 0x9000 },
- { 0x8700, 0x0725, 0x8000 },
- { 0x8c00, 0x06e4, 0x7000 },
- { 0x8700, 0x06c4, 0x6000 },
- { 0x8700, 0x06b4, 0x5000 },
- { 0x8700, 0x06ac, 0x4000 },
- { 0x8700, 0x06a8, 0x3000 },
- { 0x8700, 0x06a6, 0x2000 },
- { 0x0700, 0x06a5, 0x0000 },
- { 0x0700, 0x06a7, 0x0000 },
- { 0x8700, 0x06aa, 0x2000 },
- { 0x0700, 0x06a9, 0x0000 },
- { 0x0700, 0x06ab, 0x0000 },
- { 0x8700, 0x06b0, 0x3000 },
- { 0x8700, 0x06ae, 0x2000 },
- { 0x0700, 0x06ad, 0x0000 },
- { 0x0700, 0x06af, 0x0000 },
- { 0x8700, 0x06b2, 0x2000 },
- { 0x0700, 0x06b1, 0x0000 },
- { 0x0700, 0x06b3, 0x0000 },
- { 0x8700, 0x06bc, 0x4000 },
- { 0x8700, 0x06b8, 0x3000 },
- { 0x8700, 0x06b6, 0x2000 },
- { 0x0700, 0x06b5, 0x0000 },
- { 0x0700, 0x06b7, 0x0000 },
- { 0x8700, 0x06ba, 0x2000 },
- { 0x0700, 0x06b9, 0x0000 },
- { 0x0700, 0x06bb, 0x0000 },
- { 0x8700, 0x06c0, 0x3000 },
- { 0x8700, 0x06be, 0x2000 },
- { 0x0700, 0x06bd, 0x0000 },
- { 0x0700, 0x06bf, 0x0000 },
- { 0x8700, 0x06c2, 0x2000 },
- { 0x0700, 0x06c1, 0x0000 },
- { 0x0700, 0x06c3, 0x0000 },
- { 0x9500, 0x06d4, 0x5000 },
- { 0x8700, 0x06cc, 0x4000 },
- { 0x8700, 0x06c8, 0x3000 },
- { 0x8700, 0x06c6, 0x2000 },
- { 0x0700, 0x06c5, 0x0000 },
- { 0x0700, 0x06c7, 0x0000 },
- { 0x8700, 0x06ca, 0x2000 },
- { 0x0700, 0x06c9, 0x0000 },
- { 0x0700, 0x06cb, 0x0000 },
- { 0x8700, 0x06d0, 0x3000 },
- { 0x8700, 0x06ce, 0x2000 },
- { 0x0700, 0x06cd, 0x0000 },
- { 0x0700, 0x06cf, 0x0000 },
- { 0x8700, 0x06d2, 0x2000 },
- { 0x0700, 0x06d1, 0x0000 },
- { 0x0700, 0x06d3, 0x0000 },
- { 0x8c00, 0x06dc, 0x4000 },
- { 0x8c00, 0x06d8, 0x3000 },
- { 0x8c00, 0x06d6, 0x2000 },
- { 0x0700, 0x06d5, 0x0000 },
- { 0x0c00, 0x06d7, 0x0000 },
- { 0x8c00, 0x06da, 0x2000 },
- { 0x0c00, 0x06d9, 0x0000 },
- { 0x0c00, 0x06db, 0x0000 },
- { 0x8c00, 0x06e0, 0x3000 },
- { 0x8b00, 0x06de, 0x2000 },
- { 0x0100, 0x06dd, 0x0000 },
- { 0x0c00, 0x06df, 0x0000 },
- { 0x8c00, 0x06e2, 0x2000 },
- { 0x0c00, 0x06e1, 0x0000 },
- { 0x0c00, 0x06e3, 0x0000 },
- { 0x9500, 0x0704, 0x6000 },
- { 0x8d00, 0x06f4, 0x5000 },
- { 0x8c00, 0x06ec, 0x4000 },
- { 0x8c00, 0x06e8, 0x3000 },
- { 0x8600, 0x06e6, 0x2000 },
- { 0x0600, 0x06e5, 0x0000 },
- { 0x0c00, 0x06e7, 0x0000 },
- { 0x8c00, 0x06ea, 0x2000 },
- { 0x1a00, 0x06e9, 0x0000 },
- { 0x0c00, 0x06eb, 0x0000 },
- { 0x8d00, 0x06f0, 0x3000 },
- { 0x8700, 0x06ee, 0x2000 },
- { 0x0c00, 0x06ed, 0x0000 },
- { 0x0700, 0x06ef, 0x0000 },
- { 0x8d00, 0x06f2, 0x2000 },
- { 0x0d00, 0x06f1, 0x0000 },
- { 0x0d00, 0x06f3, 0x0000 },
- { 0x8700, 0x06fc, 0x4000 },
- { 0x8d00, 0x06f8, 0x3000 },
- { 0x8d00, 0x06f6, 0x2000 },
- { 0x0d00, 0x06f5, 0x0000 },
- { 0x0d00, 0x06f7, 0x0000 },
- { 0x8700, 0x06fa, 0x2000 },
- { 0x0d00, 0x06f9, 0x0000 },
- { 0x0700, 0x06fb, 0x0000 },
- { 0x9500, 0x0700, 0x3000 },
- { 0x9a00, 0x06fe, 0x2000 },
- { 0x1a00, 0x06fd, 0x0000 },
- { 0x0700, 0x06ff, 0x0000 },
- { 0x9500, 0x0702, 0x2000 },
- { 0x1500, 0x0701, 0x0000 },
- { 0x1500, 0x0703, 0x0000 },
- { 0x8700, 0x0715, 0x5000 },
- { 0x9500, 0x070c, 0x4000 },
- { 0x9500, 0x0708, 0x3000 },
- { 0x9500, 0x0706, 0x2000 },
- { 0x1500, 0x0705, 0x0000 },
- { 0x1500, 0x0707, 0x0000 },
- { 0x9500, 0x070a, 0x2000 },
- { 0x1500, 0x0709, 0x0000 },
- { 0x1500, 0x070b, 0x0000 },
- { 0x8c00, 0x0711, 0x3000 },
- { 0x8100, 0x070f, 0x2000 },
- { 0x1500, 0x070d, 0x0000 },
- { 0x0700, 0x0710, 0x0000 },
- { 0x8700, 0x0713, 0x2000 },
- { 0x0700, 0x0712, 0x0000 },
- { 0x0700, 0x0714, 0x0000 },
- { 0x8700, 0x071d, 0x4000 },
- { 0x8700, 0x0719, 0x3000 },
- { 0x8700, 0x0717, 0x2000 },
- { 0x0700, 0x0716, 0x0000 },
- { 0x0700, 0x0718, 0x0000 },
- { 0x8700, 0x071b, 0x2000 },
- { 0x0700, 0x071a, 0x0000 },
- { 0x0700, 0x071c, 0x0000 },
- { 0x8700, 0x0721, 0x3000 },
- { 0x8700, 0x071f, 0x2000 },
- { 0x0700, 0x071e, 0x0000 },
- { 0x0700, 0x0720, 0x0000 },
- { 0x8700, 0x0723, 0x2000 },
- { 0x0700, 0x0722, 0x0000 },
- { 0x0700, 0x0724, 0x0000 },
- { 0x8700, 0x0797, 0x7000 },
- { 0x8c00, 0x0745, 0x6000 },
- { 0x8c00, 0x0735, 0x5000 },
- { 0x8700, 0x072d, 0x4000 },
- { 0x8700, 0x0729, 0x3000 },
- { 0x8700, 0x0727, 0x2000 },
- { 0x0700, 0x0726, 0x0000 },
- { 0x0700, 0x0728, 0x0000 },
- { 0x8700, 0x072b, 0x2000 },
- { 0x0700, 0x072a, 0x0000 },
- { 0x0700, 0x072c, 0x0000 },
- { 0x8c00, 0x0731, 0x3000 },
- { 0x8700, 0x072f, 0x2000 },
- { 0x0700, 0x072e, 0x0000 },
- { 0x0c00, 0x0730, 0x0000 },
- { 0x8c00, 0x0733, 0x2000 },
- { 0x0c00, 0x0732, 0x0000 },
- { 0x0c00, 0x0734, 0x0000 },
- { 0x8c00, 0x073d, 0x4000 },
- { 0x8c00, 0x0739, 0x3000 },
- { 0x8c00, 0x0737, 0x2000 },
- { 0x0c00, 0x0736, 0x0000 },
- { 0x0c00, 0x0738, 0x0000 },
- { 0x8c00, 0x073b, 0x2000 },
- { 0x0c00, 0x073a, 0x0000 },
- { 0x0c00, 0x073c, 0x0000 },
- { 0x8c00, 0x0741, 0x3000 },
- { 0x8c00, 0x073f, 0x2000 },
- { 0x0c00, 0x073e, 0x0000 },
- { 0x0c00, 0x0740, 0x0000 },
- { 0x8c00, 0x0743, 0x2000 },
- { 0x0c00, 0x0742, 0x0000 },
- { 0x0c00, 0x0744, 0x0000 },
- { 0x8700, 0x0787, 0x5000 },
- { 0x8700, 0x074f, 0x4000 },
- { 0x8c00, 0x0749, 0x3000 },
- { 0x8c00, 0x0747, 0x2000 },
- { 0x0c00, 0x0746, 0x0000 },
- { 0x0c00, 0x0748, 0x0000 },
- { 0x8700, 0x074d, 0x2000 },
- { 0x0c00, 0x074a, 0x0000 },
- { 0x0700, 0x074e, 0x0000 },
- { 0x8700, 0x0783, 0x3000 },
- { 0x8700, 0x0781, 0x2000 },
- { 0x0700, 0x0780, 0x0000 },
- { 0x0700, 0x0782, 0x0000 },
- { 0x8700, 0x0785, 0x2000 },
- { 0x0700, 0x0784, 0x0000 },
- { 0x0700, 0x0786, 0x0000 },
- { 0x8700, 0x078f, 0x4000 },
- { 0x8700, 0x078b, 0x3000 },
- { 0x8700, 0x0789, 0x2000 },
- { 0x0700, 0x0788, 0x0000 },
- { 0x0700, 0x078a, 0x0000 },
- { 0x8700, 0x078d, 0x2000 },
- { 0x0700, 0x078c, 0x0000 },
- { 0x0700, 0x078e, 0x0000 },
- { 0x8700, 0x0793, 0x3000 },
- { 0x8700, 0x0791, 0x2000 },
- { 0x0700, 0x0790, 0x0000 },
- { 0x0700, 0x0792, 0x0000 },
- { 0x8700, 0x0795, 0x2000 },
- { 0x0700, 0x0794, 0x0000 },
- { 0x0700, 0x0796, 0x0000 },
- { 0x8700, 0x0906, 0x6000 },
- { 0x8c00, 0x07a7, 0x5000 },
- { 0x8700, 0x079f, 0x4000 },
- { 0x8700, 0x079b, 0x3000 },
- { 0x8700, 0x0799, 0x2000 },
- { 0x0700, 0x0798, 0x0000 },
- { 0x0700, 0x079a, 0x0000 },
- { 0x8700, 0x079d, 0x2000 },
- { 0x0700, 0x079c, 0x0000 },
- { 0x0700, 0x079e, 0x0000 },
- { 0x8700, 0x07a3, 0x3000 },
- { 0x8700, 0x07a1, 0x2000 },
- { 0x0700, 0x07a0, 0x0000 },
- { 0x0700, 0x07a2, 0x0000 },
- { 0x8700, 0x07a5, 0x2000 },
- { 0x0700, 0x07a4, 0x0000 },
- { 0x0c00, 0x07a6, 0x0000 },
- { 0x8c00, 0x07af, 0x4000 },
- { 0x8c00, 0x07ab, 0x3000 },
- { 0x8c00, 0x07a9, 0x2000 },
- { 0x0c00, 0x07a8, 0x0000 },
- { 0x0c00, 0x07aa, 0x0000 },
- { 0x8c00, 0x07ad, 0x2000 },
- { 0x0c00, 0x07ac, 0x0000 },
- { 0x0c00, 0x07ae, 0x0000 },
- { 0x8c00, 0x0902, 0x3000 },
- { 0x8700, 0x07b1, 0x2000 },
- { 0x0c00, 0x07b0, 0x0000 },
- { 0x0c00, 0x0901, 0x0000 },
- { 0x8700, 0x0904, 0x2000 },
- { 0x0a00, 0x0903, 0x0000 },
- { 0x0700, 0x0905, 0x0000 },
- { 0x8700, 0x0916, 0x5000 },
- { 0x8700, 0x090e, 0x4000 },
- { 0x8700, 0x090a, 0x3000 },
- { 0x8700, 0x0908, 0x2000 },
- { 0x0700, 0x0907, 0x0000 },
- { 0x0700, 0x0909, 0x0000 },
- { 0x8700, 0x090c, 0x2000 },
- { 0x0700, 0x090b, 0x0000 },
- { 0x0700, 0x090d, 0x0000 },
- { 0x8700, 0x0912, 0x3000 },
- { 0x8700, 0x0910, 0x2000 },
- { 0x0700, 0x090f, 0x0000 },
- { 0x0700, 0x0911, 0x0000 },
- { 0x8700, 0x0914, 0x2000 },
- { 0x0700, 0x0913, 0x0000 },
- { 0x0700, 0x0915, 0x0000 },
- { 0x8700, 0x091e, 0x4000 },
- { 0x8700, 0x091a, 0x3000 },
- { 0x8700, 0x0918, 0x2000 },
- { 0x0700, 0x0917, 0x0000 },
- { 0x0700, 0x0919, 0x0000 },
- { 0x8700, 0x091c, 0x2000 },
- { 0x0700, 0x091b, 0x0000 },
- { 0x0700, 0x091d, 0x0000 },
- { 0x8700, 0x0922, 0x3000 },
- { 0x8700, 0x0920, 0x2000 },
- { 0x0700, 0x091f, 0x0000 },
- { 0x0700, 0x0921, 0x0000 },
- { 0x8700, 0x0924, 0x2000 },
- { 0x0700, 0x0923, 0x0000 },
- { 0x0700, 0x0925, 0x0000 },
- { 0x8c00, 0x09cd, 0x8000 },
- { 0x8d00, 0x096d, 0x7000 },
- { 0x8c00, 0x0948, 0x6000 },
- { 0x8700, 0x0936, 0x5000 },
- { 0x8700, 0x092e, 0x4000 },
- { 0x8700, 0x092a, 0x3000 },
- { 0x8700, 0x0928, 0x2000 },
- { 0x0700, 0x0927, 0x0000 },
- { 0x0700, 0x0929, 0x0000 },
- { 0x8700, 0x092c, 0x2000 },
- { 0x0700, 0x092b, 0x0000 },
- { 0x0700, 0x092d, 0x0000 },
- { 0x8700, 0x0932, 0x3000 },
- { 0x8700, 0x0930, 0x2000 },
- { 0x0700, 0x092f, 0x0000 },
- { 0x0700, 0x0931, 0x0000 },
- { 0x8700, 0x0934, 0x2000 },
- { 0x0700, 0x0933, 0x0000 },
- { 0x0700, 0x0935, 0x0000 },
- { 0x8a00, 0x0940, 0x4000 },
- { 0x8c00, 0x093c, 0x3000 },
- { 0x8700, 0x0938, 0x2000 },
- { 0x0700, 0x0937, 0x0000 },
- { 0x0700, 0x0939, 0x0000 },
- { 0x8a00, 0x093e, 0x2000 },
- { 0x0700, 0x093d, 0x0000 },
- { 0x0a00, 0x093f, 0x0000 },
- { 0x8c00, 0x0944, 0x3000 },
- { 0x8c00, 0x0942, 0x2000 },
- { 0x0c00, 0x0941, 0x0000 },
- { 0x0c00, 0x0943, 0x0000 },
- { 0x8c00, 0x0946, 0x2000 },
- { 0x0c00, 0x0945, 0x0000 },
- { 0x0c00, 0x0947, 0x0000 },
- { 0x8700, 0x095d, 0x5000 },
- { 0x8c00, 0x0952, 0x4000 },
- { 0x8a00, 0x094c, 0x3000 },
- { 0x8a00, 0x094a, 0x2000 },
- { 0x0a00, 0x0949, 0x0000 },
- { 0x0a00, 0x094b, 0x0000 },
- { 0x8700, 0x0950, 0x2000 },
- { 0x0c00, 0x094d, 0x0000 },
- { 0x0c00, 0x0951, 0x0000 },
- { 0x8700, 0x0959, 0x3000 },
- { 0x8c00, 0x0954, 0x2000 },
- { 0x0c00, 0x0953, 0x0000 },
- { 0x0700, 0x0958, 0x0000 },
- { 0x8700, 0x095b, 0x2000 },
- { 0x0700, 0x095a, 0x0000 },
- { 0x0700, 0x095c, 0x0000 },
- { 0x9500, 0x0965, 0x4000 },
- { 0x8700, 0x0961, 0x3000 },
- { 0x8700, 0x095f, 0x2000 },
- { 0x0700, 0x095e, 0x0000 },
- { 0x0700, 0x0960, 0x0000 },
- { 0x8c00, 0x0963, 0x2000 },
- { 0x0c00, 0x0962, 0x0000 },
- { 0x1500, 0x0964, 0x0000 },
- { 0x8d00, 0x0969, 0x3000 },
- { 0x8d00, 0x0967, 0x2000 },
- { 0x0d00, 0x0966, 0x0000 },
- { 0x0d00, 0x0968, 0x0000 },
- { 0x8d00, 0x096b, 0x2000 },
- { 0x0d00, 0x096a, 0x0000 },
- { 0x0d00, 0x096c, 0x0000 },
- { 0x8700, 0x09a2, 0x6000 },
- { 0x8700, 0x0990, 0x5000 },
- { 0x8700, 0x0986, 0x4000 },
- { 0x8c00, 0x0981, 0x3000 },
- { 0x8d00, 0x096f, 0x2000 },
- { 0x0d00, 0x096e, 0x0000 },
- { 0x1500, 0x0970, 0x0000 },
- { 0x8a00, 0x0983, 0x2000 },
- { 0x0a00, 0x0982, 0x0000 },
- { 0x0700, 0x0985, 0x0000 },
- { 0x8700, 0x098a, 0x3000 },
- { 0x8700, 0x0988, 0x2000 },
- { 0x0700, 0x0987, 0x0000 },
- { 0x0700, 0x0989, 0x0000 },
- { 0x8700, 0x098c, 0x2000 },
- { 0x0700, 0x098b, 0x0000 },
- { 0x0700, 0x098f, 0x0000 },
- { 0x8700, 0x099a, 0x4000 },
- { 0x8700, 0x0996, 0x3000 },
- { 0x8700, 0x0994, 0x2000 },
- { 0x0700, 0x0993, 0x0000 },
- { 0x0700, 0x0995, 0x0000 },
- { 0x8700, 0x0998, 0x2000 },
- { 0x0700, 0x0997, 0x0000 },
- { 0x0700, 0x0999, 0x0000 },
- { 0x8700, 0x099e, 0x3000 },
- { 0x8700, 0x099c, 0x2000 },
- { 0x0700, 0x099b, 0x0000 },
- { 0x0700, 0x099d, 0x0000 },
- { 0x8700, 0x09a0, 0x2000 },
- { 0x0700, 0x099f, 0x0000 },
- { 0x0700, 0x09a1, 0x0000 },
- { 0x8700, 0x09b7, 0x5000 },
- { 0x8700, 0x09ab, 0x4000 },
- { 0x8700, 0x09a6, 0x3000 },
- { 0x8700, 0x09a4, 0x2000 },
- { 0x0700, 0x09a3, 0x0000 },
- { 0x0700, 0x09a5, 0x0000 },
- { 0x8700, 0x09a8, 0x2000 },
- { 0x0700, 0x09a7, 0x0000 },
- { 0x0700, 0x09aa, 0x0000 },
- { 0x8700, 0x09af, 0x3000 },
- { 0x8700, 0x09ad, 0x2000 },
- { 0x0700, 0x09ac, 0x0000 },
- { 0x0700, 0x09ae, 0x0000 },
- { 0x8700, 0x09b2, 0x2000 },
- { 0x0700, 0x09b0, 0x0000 },
- { 0x0700, 0x09b6, 0x0000 },
- { 0x8c00, 0x09c1, 0x4000 },
- { 0x8700, 0x09bd, 0x3000 },
- { 0x8700, 0x09b9, 0x2000 },
- { 0x0700, 0x09b8, 0x0000 },
- { 0x0c00, 0x09bc, 0x0000 },
- { 0x8a00, 0x09bf, 0x2000 },
- { 0x0a00, 0x09be, 0x0000 },
- { 0x0a00, 0x09c0, 0x0000 },
- { 0x8a00, 0x09c7, 0x3000 },
- { 0x8c00, 0x09c3, 0x2000 },
- { 0x0c00, 0x09c2, 0x0000 },
- { 0x0c00, 0x09c4, 0x0000 },
- { 0x8a00, 0x09cb, 0x2000 },
- { 0x0a00, 0x09c8, 0x0000 },
- { 0x0a00, 0x09cc, 0x0000 },
- { 0x8700, 0x0a2b, 0x7000 },
- { 0x8a00, 0x0a03, 0x6000 },
- { 0x8d00, 0x09ed, 0x5000 },
- { 0x8c00, 0x09e3, 0x4000 },
- { 0x8700, 0x09df, 0x3000 },
- { 0x8700, 0x09dc, 0x2000 },
- { 0x0a00, 0x09d7, 0x0000 },
- { 0x0700, 0x09dd, 0x0000 },
- { 0x8700, 0x09e1, 0x2000 },
- { 0x0700, 0x09e0, 0x0000 },
- { 0x0c00, 0x09e2, 0x0000 },
- { 0x8d00, 0x09e9, 0x3000 },
- { 0x8d00, 0x09e7, 0x2000 },
- { 0x0d00, 0x09e6, 0x0000 },
- { 0x0d00, 0x09e8, 0x0000 },
- { 0x8d00, 0x09eb, 0x2000 },
- { 0x0d00, 0x09ea, 0x0000 },
- { 0x0d00, 0x09ec, 0x0000 },
- { 0x8f00, 0x09f5, 0x4000 },
- { 0x8700, 0x09f1, 0x3000 },
- { 0x8d00, 0x09ef, 0x2000 },
- { 0x0d00, 0x09ee, 0x0000 },
- { 0x0700, 0x09f0, 0x0000 },
- { 0x9700, 0x09f3, 0x2000 },
- { 0x1700, 0x09f2, 0x0000 },
- { 0x0f00, 0x09f4, 0x0000 },
- { 0x8f00, 0x09f9, 0x3000 },
- { 0x8f00, 0x09f7, 0x2000 },
- { 0x0f00, 0x09f6, 0x0000 },
- { 0x0f00, 0x09f8, 0x0000 },
- { 0x8c00, 0x0a01, 0x2000 },
- { 0x1a00, 0x09fa, 0x0000 },
- { 0x0c00, 0x0a02, 0x0000 },
- { 0x8700, 0x0a1a, 0x5000 },
- { 0x8700, 0x0a10, 0x4000 },
- { 0x8700, 0x0a08, 0x3000 },
- { 0x8700, 0x0a06, 0x2000 },
- { 0x0700, 0x0a05, 0x0000 },
- { 0x0700, 0x0a07, 0x0000 },
- { 0x8700, 0x0a0a, 0x2000 },
- { 0x0700, 0x0a09, 0x0000 },
- { 0x0700, 0x0a0f, 0x0000 },
- { 0x8700, 0x0a16, 0x3000 },
- { 0x8700, 0x0a14, 0x2000 },
- { 0x0700, 0x0a13, 0x0000 },
- { 0x0700, 0x0a15, 0x0000 },
- { 0x8700, 0x0a18, 0x2000 },
- { 0x0700, 0x0a17, 0x0000 },
- { 0x0700, 0x0a19, 0x0000 },
- { 0x8700, 0x0a22, 0x4000 },
- { 0x8700, 0x0a1e, 0x3000 },
- { 0x8700, 0x0a1c, 0x2000 },
- { 0x0700, 0x0a1b, 0x0000 },
- { 0x0700, 0x0a1d, 0x0000 },
- { 0x8700, 0x0a20, 0x2000 },
- { 0x0700, 0x0a1f, 0x0000 },
- { 0x0700, 0x0a21, 0x0000 },
- { 0x8700, 0x0a26, 0x3000 },
- { 0x8700, 0x0a24, 0x2000 },
- { 0x0700, 0x0a23, 0x0000 },
- { 0x0700, 0x0a25, 0x0000 },
- { 0x8700, 0x0a28, 0x2000 },
- { 0x0700, 0x0a27, 0x0000 },
- { 0x0700, 0x0a2a, 0x0000 },
- { 0x8d00, 0x0a6a, 0x6000 },
- { 0x8c00, 0x0a41, 0x5000 },
- { 0x8700, 0x0a35, 0x4000 },
- { 0x8700, 0x0a2f, 0x3000 },
- { 0x8700, 0x0a2d, 0x2000 },
- { 0x0700, 0x0a2c, 0x0000 },
- { 0x0700, 0x0a2e, 0x0000 },
- { 0x8700, 0x0a32, 0x2000 },
- { 0x0700, 0x0a30, 0x0000 },
- { 0x0700, 0x0a33, 0x0000 },
- { 0x8c00, 0x0a3c, 0x3000 },
- { 0x8700, 0x0a38, 0x2000 },
- { 0x0700, 0x0a36, 0x0000 },
- { 0x0700, 0x0a39, 0x0000 },
- { 0x8a00, 0x0a3f, 0x2000 },
- { 0x0a00, 0x0a3e, 0x0000 },
- { 0x0a00, 0x0a40, 0x0000 },
- { 0x8700, 0x0a5a, 0x4000 },
- { 0x8c00, 0x0a4b, 0x3000 },
- { 0x8c00, 0x0a47, 0x2000 },
- { 0x0c00, 0x0a42, 0x0000 },
- { 0x0c00, 0x0a48, 0x0000 },
- { 0x8c00, 0x0a4d, 0x2000 },
- { 0x0c00, 0x0a4c, 0x0000 },
- { 0x0700, 0x0a59, 0x0000 },
- { 0x8d00, 0x0a66, 0x3000 },
- { 0x8700, 0x0a5c, 0x2000 },
- { 0x0700, 0x0a5b, 0x0000 },
- { 0x0700, 0x0a5e, 0x0000 },
- { 0x8d00, 0x0a68, 0x2000 },
- { 0x0d00, 0x0a67, 0x0000 },
- { 0x0d00, 0x0a69, 0x0000 },
- { 0x8700, 0x0a87, 0x5000 },
- { 0x8700, 0x0a72, 0x4000 },
- { 0x8d00, 0x0a6e, 0x3000 },
- { 0x8d00, 0x0a6c, 0x2000 },
- { 0x0d00, 0x0a6b, 0x0000 },
- { 0x0d00, 0x0a6d, 0x0000 },
- { 0x8c00, 0x0a70, 0x2000 },
- { 0x0d00, 0x0a6f, 0x0000 },
- { 0x0c00, 0x0a71, 0x0000 },
- { 0x8c00, 0x0a82, 0x3000 },
- { 0x8700, 0x0a74, 0x2000 },
- { 0x0700, 0x0a73, 0x0000 },
- { 0x0c00, 0x0a81, 0x0000 },
- { 0x8700, 0x0a85, 0x2000 },
- { 0x0a00, 0x0a83, 0x0000 },
- { 0x0700, 0x0a86, 0x0000 },
- { 0x8700, 0x0a90, 0x4000 },
- { 0x8700, 0x0a8b, 0x3000 },
- { 0x8700, 0x0a89, 0x2000 },
- { 0x0700, 0x0a88, 0x0000 },
- { 0x0700, 0x0a8a, 0x0000 },
- { 0x8700, 0x0a8d, 0x2000 },
- { 0x0700, 0x0a8c, 0x0000 },
- { 0x0700, 0x0a8f, 0x0000 },
- { 0x8700, 0x0a95, 0x3000 },
- { 0x8700, 0x0a93, 0x2000 },
- { 0x0700, 0x0a91, 0x0000 },
- { 0x0700, 0x0a94, 0x0000 },
- { 0x8700, 0x0a97, 0x2000 },
- { 0x0700, 0x0a96, 0x0000 },
- { 0x0700, 0x0a98, 0x0000 },
- { 0x8700, 0x10ef, 0xb000 },
- { 0x8700, 0x0dc6, 0xa000 },
- { 0x8700, 0x0c31, 0x9000 },
- { 0x8700, 0x0b5f, 0x8000 },
- { 0x8a00, 0x0b03, 0x7000 },
- { 0x8a00, 0x0abe, 0x6000 },
- { 0x8700, 0x0aaa, 0x5000 },
- { 0x8700, 0x0aa1, 0x4000 },
- { 0x8700, 0x0a9d, 0x3000 },
- { 0x8700, 0x0a9b, 0x2000 },
- { 0x0700, 0x0a9a, 0x0000 },
- { 0x0700, 0x0a9c, 0x0000 },
- { 0x8700, 0x0a9f, 0x2000 },
- { 0x0700, 0x0a9e, 0x0000 },
- { 0x0700, 0x0aa0, 0x0000 },
- { 0x8700, 0x0aa5, 0x3000 },
- { 0x8700, 0x0aa3, 0x2000 },
- { 0x0700, 0x0aa2, 0x0000 },
- { 0x0700, 0x0aa4, 0x0000 },
- { 0x8700, 0x0aa7, 0x2000 },
- { 0x0700, 0x0aa6, 0x0000 },
- { 0x0700, 0x0aa8, 0x0000 },
- { 0x8700, 0x0ab3, 0x4000 },
- { 0x8700, 0x0aae, 0x3000 },
- { 0x8700, 0x0aac, 0x2000 },
- { 0x0700, 0x0aab, 0x0000 },
- { 0x0700, 0x0aad, 0x0000 },
- { 0x8700, 0x0ab0, 0x2000 },
- { 0x0700, 0x0aaf, 0x0000 },
- { 0x0700, 0x0ab2, 0x0000 },
- { 0x8700, 0x0ab8, 0x3000 },
- { 0x8700, 0x0ab6, 0x2000 },
- { 0x0700, 0x0ab5, 0x0000 },
- { 0x0700, 0x0ab7, 0x0000 },
- { 0x8c00, 0x0abc, 0x2000 },
- { 0x0700, 0x0ab9, 0x0000 },
- { 0x0700, 0x0abd, 0x0000 },
- { 0x8700, 0x0ae1, 0x5000 },
- { 0x8c00, 0x0ac7, 0x4000 },
- { 0x8c00, 0x0ac2, 0x3000 },
- { 0x8a00, 0x0ac0, 0x2000 },
- { 0x0a00, 0x0abf, 0x0000 },
- { 0x0c00, 0x0ac1, 0x0000 },
- { 0x8c00, 0x0ac4, 0x2000 },
- { 0x0c00, 0x0ac3, 0x0000 },
- { 0x0c00, 0x0ac5, 0x0000 },
- { 0x8a00, 0x0acc, 0x3000 },
- { 0x8a00, 0x0ac9, 0x2000 },
- { 0x0c00, 0x0ac8, 0x0000 },
- { 0x0a00, 0x0acb, 0x0000 },
- { 0x8700, 0x0ad0, 0x2000 },
- { 0x0c00, 0x0acd, 0x0000 },
- { 0x0700, 0x0ae0, 0x0000 },
- { 0x8d00, 0x0aeb, 0x4000 },
- { 0x8d00, 0x0ae7, 0x3000 },
- { 0x8c00, 0x0ae3, 0x2000 },
- { 0x0c00, 0x0ae2, 0x0000 },
- { 0x0d00, 0x0ae6, 0x0000 },
- { 0x8d00, 0x0ae9, 0x2000 },
- { 0x0d00, 0x0ae8, 0x0000 },
- { 0x0d00, 0x0aea, 0x0000 },
- { 0x8d00, 0x0aef, 0x3000 },
- { 0x8d00, 0x0aed, 0x2000 },
- { 0x0d00, 0x0aec, 0x0000 },
- { 0x0d00, 0x0aee, 0x0000 },
- { 0x8c00, 0x0b01, 0x2000 },
- { 0x1700, 0x0af1, 0x0000 },
- { 0x0a00, 0x0b02, 0x0000 },
- { 0x8700, 0x0b28, 0x6000 },
- { 0x8700, 0x0b18, 0x5000 },
- { 0x8700, 0x0b0c, 0x4000 },
- { 0x8700, 0x0b08, 0x3000 },
- { 0x8700, 0x0b06, 0x2000 },
- { 0x0700, 0x0b05, 0x0000 },
- { 0x0700, 0x0b07, 0x0000 },
- { 0x8700, 0x0b0a, 0x2000 },
- { 0x0700, 0x0b09, 0x0000 },
- { 0x0700, 0x0b0b, 0x0000 },
- { 0x8700, 0x0b14, 0x3000 },
- { 0x8700, 0x0b10, 0x2000 },
- { 0x0700, 0x0b0f, 0x0000 },
- { 0x0700, 0x0b13, 0x0000 },
- { 0x8700, 0x0b16, 0x2000 },
- { 0x0700, 0x0b15, 0x0000 },
- { 0x0700, 0x0b17, 0x0000 },
- { 0x8700, 0x0b20, 0x4000 },
- { 0x8700, 0x0b1c, 0x3000 },
- { 0x8700, 0x0b1a, 0x2000 },
- { 0x0700, 0x0b19, 0x0000 },
- { 0x0700, 0x0b1b, 0x0000 },
- { 0x8700, 0x0b1e, 0x2000 },
- { 0x0700, 0x0b1d, 0x0000 },
- { 0x0700, 0x0b1f, 0x0000 },
- { 0x8700, 0x0b24, 0x3000 },
- { 0x8700, 0x0b22, 0x2000 },
- { 0x0700, 0x0b21, 0x0000 },
- { 0x0700, 0x0b23, 0x0000 },
- { 0x8700, 0x0b26, 0x2000 },
- { 0x0700, 0x0b25, 0x0000 },
- { 0x0700, 0x0b27, 0x0000 },
- { 0x8700, 0x0b3d, 0x5000 },
- { 0x8700, 0x0b32, 0x4000 },
- { 0x8700, 0x0b2d, 0x3000 },
- { 0x8700, 0x0b2b, 0x2000 },
- { 0x0700, 0x0b2a, 0x0000 },
- { 0x0700, 0x0b2c, 0x0000 },
- { 0x8700, 0x0b2f, 0x2000 },
- { 0x0700, 0x0b2e, 0x0000 },
- { 0x0700, 0x0b30, 0x0000 },
- { 0x8700, 0x0b37, 0x3000 },
- { 0x8700, 0x0b35, 0x2000 },
- { 0x0700, 0x0b33, 0x0000 },
- { 0x0700, 0x0b36, 0x0000 },
- { 0x8700, 0x0b39, 0x2000 },
- { 0x0700, 0x0b38, 0x0000 },
- { 0x0c00, 0x0b3c, 0x0000 },
- { 0x8a00, 0x0b48, 0x4000 },
- { 0x8c00, 0x0b41, 0x3000 },
- { 0x8c00, 0x0b3f, 0x2000 },
- { 0x0a00, 0x0b3e, 0x0000 },
- { 0x0a00, 0x0b40, 0x0000 },
- { 0x8c00, 0x0b43, 0x2000 },
- { 0x0c00, 0x0b42, 0x0000 },
- { 0x0a00, 0x0b47, 0x0000 },
- { 0x8c00, 0x0b56, 0x3000 },
- { 0x8a00, 0x0b4c, 0x2000 },
- { 0x0a00, 0x0b4b, 0x0000 },
- { 0x0c00, 0x0b4d, 0x0000 },
- { 0x8700, 0x0b5c, 0x2000 },
- { 0x0a00, 0x0b57, 0x0000 },
- { 0x0700, 0x0b5d, 0x0000 },
- { 0x8d00, 0x0be7, 0x7000 },
- { 0x8700, 0x0b9c, 0x6000 },
- { 0x8700, 0x0b83, 0x5000 },
- { 0x8d00, 0x0b6b, 0x4000 },
- { 0x8d00, 0x0b67, 0x3000 },
- { 0x8700, 0x0b61, 0x2000 },
- { 0x0700, 0x0b60, 0x0000 },
- { 0x0d00, 0x0b66, 0x0000 },
- { 0x8d00, 0x0b69, 0x2000 },
- { 0x0d00, 0x0b68, 0x0000 },
- { 0x0d00, 0x0b6a, 0x0000 },
- { 0x8d00, 0x0b6f, 0x3000 },
- { 0x8d00, 0x0b6d, 0x2000 },
- { 0x0d00, 0x0b6c, 0x0000 },
- { 0x0d00, 0x0b6e, 0x0000 },
- { 0x8700, 0x0b71, 0x2000 },
- { 0x1a00, 0x0b70, 0x0000 },
- { 0x0c00, 0x0b82, 0x0000 },
- { 0x8700, 0x0b8f, 0x4000 },
- { 0x8700, 0x0b88, 0x3000 },
- { 0x8700, 0x0b86, 0x2000 },
- { 0x0700, 0x0b85, 0x0000 },
- { 0x0700, 0x0b87, 0x0000 },
- { 0x8700, 0x0b8a, 0x2000 },
- { 0x0700, 0x0b89, 0x0000 },
- { 0x0700, 0x0b8e, 0x0000 },
- { 0x8700, 0x0b94, 0x3000 },
- { 0x8700, 0x0b92, 0x2000 },
- { 0x0700, 0x0b90, 0x0000 },
- { 0x0700, 0x0b93, 0x0000 },
- { 0x8700, 0x0b99, 0x2000 },
- { 0x0700, 0x0b95, 0x0000 },
- { 0x0700, 0x0b9a, 0x0000 },
- { 0x8700, 0x0bb7, 0x5000 },
- { 0x8700, 0x0bae, 0x4000 },
- { 0x8700, 0x0ba4, 0x3000 },
- { 0x8700, 0x0b9f, 0x2000 },
- { 0x0700, 0x0b9e, 0x0000 },
- { 0x0700, 0x0ba3, 0x0000 },
- { 0x8700, 0x0ba9, 0x2000 },
- { 0x0700, 0x0ba8, 0x0000 },
- { 0x0700, 0x0baa, 0x0000 },
- { 0x8700, 0x0bb2, 0x3000 },
- { 0x8700, 0x0bb0, 0x2000 },
- { 0x0700, 0x0baf, 0x0000 },
- { 0x0700, 0x0bb1, 0x0000 },
- { 0x8700, 0x0bb4, 0x2000 },
- { 0x0700, 0x0bb3, 0x0000 },
- { 0x0700, 0x0bb5, 0x0000 },
- { 0x8a00, 0x0bc6, 0x4000 },
- { 0x8a00, 0x0bbf, 0x3000 },
- { 0x8700, 0x0bb9, 0x2000 },
- { 0x0700, 0x0bb8, 0x0000 },
- { 0x0a00, 0x0bbe, 0x0000 },
- { 0x8a00, 0x0bc1, 0x2000 },
- { 0x0c00, 0x0bc0, 0x0000 },
- { 0x0a00, 0x0bc2, 0x0000 },
- { 0x8a00, 0x0bcb, 0x3000 },
- { 0x8a00, 0x0bc8, 0x2000 },
- { 0x0a00, 0x0bc7, 0x0000 },
- { 0x0a00, 0x0bca, 0x0000 },
- { 0x8c00, 0x0bcd, 0x2000 },
- { 0x0a00, 0x0bcc, 0x0000 },
- { 0x0a00, 0x0bd7, 0x0000 },
- { 0x8700, 0x0c0f, 0x6000 },
- { 0x9a00, 0x0bf7, 0x5000 },
- { 0x8d00, 0x0bef, 0x4000 },
- { 0x8d00, 0x0beb, 0x3000 },
- { 0x8d00, 0x0be9, 0x2000 },
- { 0x0d00, 0x0be8, 0x0000 },
- { 0x0d00, 0x0bea, 0x0000 },
- { 0x8d00, 0x0bed, 0x2000 },
- { 0x0d00, 0x0bec, 0x0000 },
- { 0x0d00, 0x0bee, 0x0000 },
- { 0x9a00, 0x0bf3, 0x3000 },
- { 0x8f00, 0x0bf1, 0x2000 },
- { 0x0f00, 0x0bf0, 0x0000 },
- { 0x0f00, 0x0bf2, 0x0000 },
- { 0x9a00, 0x0bf5, 0x2000 },
- { 0x1a00, 0x0bf4, 0x0000 },
- { 0x1a00, 0x0bf6, 0x0000 },
- { 0x8700, 0x0c06, 0x4000 },
- { 0x8a00, 0x0c01, 0x3000 },
- { 0x9700, 0x0bf9, 0x2000 },
- { 0x1a00, 0x0bf8, 0x0000 },
- { 0x1a00, 0x0bfa, 0x0000 },
- { 0x8a00, 0x0c03, 0x2000 },
- { 0x0a00, 0x0c02, 0x0000 },
- { 0x0700, 0x0c05, 0x0000 },
- { 0x8700, 0x0c0a, 0x3000 },
- { 0x8700, 0x0c08, 0x2000 },
- { 0x0700, 0x0c07, 0x0000 },
- { 0x0700, 0x0c09, 0x0000 },
- { 0x8700, 0x0c0c, 0x2000 },
- { 0x0700, 0x0c0b, 0x0000 },
- { 0x0700, 0x0c0e, 0x0000 },
- { 0x8700, 0x0c20, 0x5000 },
- { 0x8700, 0x0c18, 0x4000 },
- { 0x8700, 0x0c14, 0x3000 },
- { 0x8700, 0x0c12, 0x2000 },
- { 0x0700, 0x0c10, 0x0000 },
- { 0x0700, 0x0c13, 0x0000 },
- { 0x8700, 0x0c16, 0x2000 },
- { 0x0700, 0x0c15, 0x0000 },
- { 0x0700, 0x0c17, 0x0000 },
- { 0x8700, 0x0c1c, 0x3000 },
- { 0x8700, 0x0c1a, 0x2000 },
- { 0x0700, 0x0c19, 0x0000 },
- { 0x0700, 0x0c1b, 0x0000 },
- { 0x8700, 0x0c1e, 0x2000 },
- { 0x0700, 0x0c1d, 0x0000 },
- { 0x0700, 0x0c1f, 0x0000 },
- { 0x8700, 0x0c28, 0x4000 },
- { 0x8700, 0x0c24, 0x3000 },
- { 0x8700, 0x0c22, 0x2000 },
- { 0x0700, 0x0c21, 0x0000 },
- { 0x0700, 0x0c23, 0x0000 },
- { 0x8700, 0x0c26, 0x2000 },
- { 0x0700, 0x0c25, 0x0000 },
- { 0x0700, 0x0c27, 0x0000 },
- { 0x8700, 0x0c2d, 0x3000 },
- { 0x8700, 0x0c2b, 0x2000 },
- { 0x0700, 0x0c2a, 0x0000 },
- { 0x0700, 0x0c2c, 0x0000 },
- { 0x8700, 0x0c2f, 0x2000 },
- { 0x0700, 0x0c2e, 0x0000 },
- { 0x0700, 0x0c30, 0x0000 },
- { 0x8700, 0x0d0e, 0x8000 },
- { 0x8700, 0x0ca1, 0x7000 },
- { 0x8d00, 0x0c6c, 0x6000 },
- { 0x8c00, 0x0c47, 0x5000 },
- { 0x8c00, 0x0c3e, 0x4000 },
- { 0x8700, 0x0c36, 0x3000 },
- { 0x8700, 0x0c33, 0x2000 },
- { 0x0700, 0x0c32, 0x0000 },
- { 0x0700, 0x0c35, 0x0000 },
- { 0x8700, 0x0c38, 0x2000 },
- { 0x0700, 0x0c37, 0x0000 },
- { 0x0700, 0x0c39, 0x0000 },
- { 0x8a00, 0x0c42, 0x3000 },
- { 0x8c00, 0x0c40, 0x2000 },
- { 0x0c00, 0x0c3f, 0x0000 },
- { 0x0a00, 0x0c41, 0x0000 },
- { 0x8a00, 0x0c44, 0x2000 },
- { 0x0a00, 0x0c43, 0x0000 },
- { 0x0c00, 0x0c46, 0x0000 },
- { 0x8700, 0x0c60, 0x4000 },
- { 0x8c00, 0x0c4c, 0x3000 },
- { 0x8c00, 0x0c4a, 0x2000 },
- { 0x0c00, 0x0c48, 0x0000 },
- { 0x0c00, 0x0c4b, 0x0000 },
- { 0x8c00, 0x0c55, 0x2000 },
- { 0x0c00, 0x0c4d, 0x0000 },
- { 0x0c00, 0x0c56, 0x0000 },
- { 0x8d00, 0x0c68, 0x3000 },
- { 0x8d00, 0x0c66, 0x2000 },
- { 0x0700, 0x0c61, 0x0000 },
- { 0x0d00, 0x0c67, 0x0000 },
- { 0x8d00, 0x0c6a, 0x2000 },
- { 0x0d00, 0x0c69, 0x0000 },
- { 0x0d00, 0x0c6b, 0x0000 },
- { 0x8700, 0x0c90, 0x5000 },
- { 0x8700, 0x0c87, 0x4000 },
- { 0x8a00, 0x0c82, 0x3000 },
- { 0x8d00, 0x0c6e, 0x2000 },
- { 0x0d00, 0x0c6d, 0x0000 },
- { 0x0d00, 0x0c6f, 0x0000 },
- { 0x8700, 0x0c85, 0x2000 },
- { 0x0a00, 0x0c83, 0x0000 },
- { 0x0700, 0x0c86, 0x0000 },
- { 0x8700, 0x0c8b, 0x3000 },
- { 0x8700, 0x0c89, 0x2000 },
- { 0x0700, 0x0c88, 0x0000 },
- { 0x0700, 0x0c8a, 0x0000 },
- { 0x8700, 0x0c8e, 0x2000 },
- { 0x0700, 0x0c8c, 0x0000 },
- { 0x0700, 0x0c8f, 0x0000 },
- { 0x8700, 0x0c99, 0x4000 },
- { 0x8700, 0x0c95, 0x3000 },
- { 0x8700, 0x0c93, 0x2000 },
- { 0x0700, 0x0c92, 0x0000 },
- { 0x0700, 0x0c94, 0x0000 },
- { 0x8700, 0x0c97, 0x2000 },
- { 0x0700, 0x0c96, 0x0000 },
- { 0x0700, 0x0c98, 0x0000 },
- { 0x8700, 0x0c9d, 0x3000 },
- { 0x8700, 0x0c9b, 0x2000 },
- { 0x0700, 0x0c9a, 0x0000 },
- { 0x0700, 0x0c9c, 0x0000 },
- { 0x8700, 0x0c9f, 0x2000 },
- { 0x0700, 0x0c9e, 0x0000 },
- { 0x0700, 0x0ca0, 0x0000 },
- { 0x8c00, 0x0cc6, 0x6000 },
- { 0x8700, 0x0cb2, 0x5000 },
- { 0x8700, 0x0caa, 0x4000 },
- { 0x8700, 0x0ca5, 0x3000 },
- { 0x8700, 0x0ca3, 0x2000 },
- { 0x0700, 0x0ca2, 0x0000 },
- { 0x0700, 0x0ca4, 0x0000 },
- { 0x8700, 0x0ca7, 0x2000 },
- { 0x0700, 0x0ca6, 0x0000 },
- { 0x0700, 0x0ca8, 0x0000 },
- { 0x8700, 0x0cae, 0x3000 },
- { 0x8700, 0x0cac, 0x2000 },
- { 0x0700, 0x0cab, 0x0000 },
- { 0x0700, 0x0cad, 0x0000 },
- { 0x8700, 0x0cb0, 0x2000 },
- { 0x0700, 0x0caf, 0x0000 },
- { 0x0700, 0x0cb1, 0x0000 },
- { 0x8700, 0x0cbd, 0x4000 },
- { 0x8700, 0x0cb7, 0x3000 },
- { 0x8700, 0x0cb5, 0x2000 },
- { 0x0700, 0x0cb3, 0x0000 },
- { 0x0700, 0x0cb6, 0x0000 },
- { 0x8700, 0x0cb9, 0x2000 },
- { 0x0700, 0x0cb8, 0x0000 },
- { 0x0c00, 0x0cbc, 0x0000 },
- { 0x8a00, 0x0cc1, 0x3000 },
- { 0x8c00, 0x0cbf, 0x2000 },
- { 0x0a00, 0x0cbe, 0x0000 },
- { 0x0a00, 0x0cc0, 0x0000 },
- { 0x8a00, 0x0cc3, 0x2000 },
- { 0x0a00, 0x0cc2, 0x0000 },
- { 0x0a00, 0x0cc4, 0x0000 },
- { 0x8d00, 0x0cea, 0x5000 },
- { 0x8a00, 0x0cd6, 0x4000 },
- { 0x8a00, 0x0ccb, 0x3000 },
- { 0x8a00, 0x0cc8, 0x2000 },
- { 0x0a00, 0x0cc7, 0x0000 },
- { 0x0a00, 0x0cca, 0x0000 },
- { 0x8c00, 0x0ccd, 0x2000 },
- { 0x0c00, 0x0ccc, 0x0000 },
- { 0x0a00, 0x0cd5, 0x0000 },
- { 0x8d00, 0x0ce6, 0x3000 },
- { 0x8700, 0x0ce0, 0x2000 },
- { 0x0700, 0x0cde, 0x0000 },
- { 0x0700, 0x0ce1, 0x0000 },
- { 0x8d00, 0x0ce8, 0x2000 },
- { 0x0d00, 0x0ce7, 0x0000 },
- { 0x0d00, 0x0ce9, 0x0000 },
- { 0x8700, 0x0d05, 0x4000 },
- { 0x8d00, 0x0cee, 0x3000 },
- { 0x8d00, 0x0cec, 0x2000 },
- { 0x0d00, 0x0ceb, 0x0000 },
- { 0x0d00, 0x0ced, 0x0000 },
- { 0x8a00, 0x0d02, 0x2000 },
- { 0x0d00, 0x0cef, 0x0000 },
- { 0x0a00, 0x0d03, 0x0000 },
- { 0x8700, 0x0d09, 0x3000 },
- { 0x8700, 0x0d07, 0x2000 },
- { 0x0700, 0x0d06, 0x0000 },
- { 0x0700, 0x0d08, 0x0000 },
- { 0x8700, 0x0d0b, 0x2000 },
- { 0x0700, 0x0d0a, 0x0000 },
- { 0x0700, 0x0d0c, 0x0000 },
- { 0x8d00, 0x0d6c, 0x7000 },
- { 0x8700, 0x0d30, 0x6000 },
- { 0x8700, 0x0d1f, 0x5000 },
- { 0x8700, 0x0d17, 0x4000 },
- { 0x8700, 0x0d13, 0x3000 },
- { 0x8700, 0x0d10, 0x2000 },
- { 0x0700, 0x0d0f, 0x0000 },
- { 0x0700, 0x0d12, 0x0000 },
- { 0x8700, 0x0d15, 0x2000 },
- { 0x0700, 0x0d14, 0x0000 },
- { 0x0700, 0x0d16, 0x0000 },
- { 0x8700, 0x0d1b, 0x3000 },
- { 0x8700, 0x0d19, 0x2000 },
- { 0x0700, 0x0d18, 0x0000 },
- { 0x0700, 0x0d1a, 0x0000 },
- { 0x8700, 0x0d1d, 0x2000 },
- { 0x0700, 0x0d1c, 0x0000 },
- { 0x0700, 0x0d1e, 0x0000 },
- { 0x8700, 0x0d27, 0x4000 },
- { 0x8700, 0x0d23, 0x3000 },
- { 0x8700, 0x0d21, 0x2000 },
- { 0x0700, 0x0d20, 0x0000 },
- { 0x0700, 0x0d22, 0x0000 },
- { 0x8700, 0x0d25, 0x2000 },
- { 0x0700, 0x0d24, 0x0000 },
- { 0x0700, 0x0d26, 0x0000 },
- { 0x8700, 0x0d2c, 0x3000 },
- { 0x8700, 0x0d2a, 0x2000 },
- { 0x0700, 0x0d28, 0x0000 },
- { 0x0700, 0x0d2b, 0x0000 },
- { 0x8700, 0x0d2e, 0x2000 },
- { 0x0700, 0x0d2d, 0x0000 },
- { 0x0700, 0x0d2f, 0x0000 },
- { 0x8a00, 0x0d46, 0x5000 },
- { 0x8700, 0x0d38, 0x4000 },
- { 0x8700, 0x0d34, 0x3000 },
- { 0x8700, 0x0d32, 0x2000 },
- { 0x0700, 0x0d31, 0x0000 },
- { 0x0700, 0x0d33, 0x0000 },
- { 0x8700, 0x0d36, 0x2000 },
- { 0x0700, 0x0d35, 0x0000 },
- { 0x0700, 0x0d37, 0x0000 },
- { 0x8a00, 0x0d40, 0x3000 },
- { 0x8a00, 0x0d3e, 0x2000 },
- { 0x0700, 0x0d39, 0x0000 },
- { 0x0a00, 0x0d3f, 0x0000 },
- { 0x8c00, 0x0d42, 0x2000 },
- { 0x0c00, 0x0d41, 0x0000 },
- { 0x0c00, 0x0d43, 0x0000 },
- { 0x8700, 0x0d60, 0x4000 },
- { 0x8a00, 0x0d4b, 0x3000 },
- { 0x8a00, 0x0d48, 0x2000 },
- { 0x0a00, 0x0d47, 0x0000 },
- { 0x0a00, 0x0d4a, 0x0000 },
- { 0x8c00, 0x0d4d, 0x2000 },
- { 0x0a00, 0x0d4c, 0x0000 },
- { 0x0a00, 0x0d57, 0x0000 },
- { 0x8d00, 0x0d68, 0x3000 },
- { 0x8d00, 0x0d66, 0x2000 },
- { 0x0700, 0x0d61, 0x0000 },
- { 0x0d00, 0x0d67, 0x0000 },
- { 0x8d00, 0x0d6a, 0x2000 },
- { 0x0d00, 0x0d69, 0x0000 },
- { 0x0d00, 0x0d6b, 0x0000 },
- { 0x8700, 0x0da2, 0x6000 },
- { 0x8700, 0x0d8f, 0x5000 },
- { 0x8700, 0x0d87, 0x4000 },
- { 0x8a00, 0x0d82, 0x3000 },
- { 0x8d00, 0x0d6e, 0x2000 },
- { 0x0d00, 0x0d6d, 0x0000 },
- { 0x0d00, 0x0d6f, 0x0000 },
- { 0x8700, 0x0d85, 0x2000 },
- { 0x0a00, 0x0d83, 0x0000 },
- { 0x0700, 0x0d86, 0x0000 },
- { 0x8700, 0x0d8b, 0x3000 },
- { 0x8700, 0x0d89, 0x2000 },
- { 0x0700, 0x0d88, 0x0000 },
- { 0x0700, 0x0d8a, 0x0000 },
- { 0x8700, 0x0d8d, 0x2000 },
- { 0x0700, 0x0d8c, 0x0000 },
- { 0x0700, 0x0d8e, 0x0000 },
- { 0x8700, 0x0d9a, 0x4000 },
- { 0x8700, 0x0d93, 0x3000 },
- { 0x8700, 0x0d91, 0x2000 },
- { 0x0700, 0x0d90, 0x0000 },
- { 0x0700, 0x0d92, 0x0000 },
- { 0x8700, 0x0d95, 0x2000 },
- { 0x0700, 0x0d94, 0x0000 },
- { 0x0700, 0x0d96, 0x0000 },
- { 0x8700, 0x0d9e, 0x3000 },
- { 0x8700, 0x0d9c, 0x2000 },
- { 0x0700, 0x0d9b, 0x0000 },
- { 0x0700, 0x0d9d, 0x0000 },
- { 0x8700, 0x0da0, 0x2000 },
- { 0x0700, 0x0d9f, 0x0000 },
- { 0x0700, 0x0da1, 0x0000 },
- { 0x8700, 0x0db3, 0x5000 },
- { 0x8700, 0x0daa, 0x4000 },
- { 0x8700, 0x0da6, 0x3000 },
- { 0x8700, 0x0da4, 0x2000 },
- { 0x0700, 0x0da3, 0x0000 },
- { 0x0700, 0x0da5, 0x0000 },
- { 0x8700, 0x0da8, 0x2000 },
- { 0x0700, 0x0da7, 0x0000 },
- { 0x0700, 0x0da9, 0x0000 },
- { 0x8700, 0x0dae, 0x3000 },
- { 0x8700, 0x0dac, 0x2000 },
- { 0x0700, 0x0dab, 0x0000 },
- { 0x0700, 0x0dad, 0x0000 },
- { 0x8700, 0x0db0, 0x2000 },
- { 0x0700, 0x0daf, 0x0000 },
- { 0x0700, 0x0db1, 0x0000 },
- { 0x8700, 0x0dbb, 0x4000 },
- { 0x8700, 0x0db7, 0x3000 },
- { 0x8700, 0x0db5, 0x2000 },
- { 0x0700, 0x0db4, 0x0000 },
- { 0x0700, 0x0db6, 0x0000 },
- { 0x8700, 0x0db9, 0x2000 },
- { 0x0700, 0x0db8, 0x0000 },
- { 0x0700, 0x0dba, 0x0000 },
- { 0x8700, 0x0dc2, 0x3000 },
- { 0x8700, 0x0dc0, 0x2000 },
- { 0x0700, 0x0dbd, 0x0000 },
- { 0x0700, 0x0dc1, 0x0000 },
- { 0x8700, 0x0dc4, 0x2000 },
- { 0x0700, 0x0dc3, 0x0000 },
- { 0x0700, 0x0dc5, 0x0000 },
- { 0x8700, 0x0f55, 0x9000 },
- { 0x8700, 0x0ea5, 0x8000 },
- { 0x8700, 0x0e2d, 0x7000 },
- { 0x8700, 0x0e0d, 0x6000 },
- { 0x8a00, 0x0ddf, 0x5000 },
- { 0x8c00, 0x0dd6, 0x4000 },
- { 0x8a00, 0x0dd1, 0x3000 },
- { 0x8a00, 0x0dcf, 0x2000 },
- { 0x0c00, 0x0dca, 0x0000 },
- { 0x0a00, 0x0dd0, 0x0000 },
- { 0x8c00, 0x0dd3, 0x2000 },
- { 0x0c00, 0x0dd2, 0x0000 },
- { 0x0c00, 0x0dd4, 0x0000 },
- { 0x8a00, 0x0ddb, 0x3000 },
- { 0x8a00, 0x0dd9, 0x2000 },
- { 0x0a00, 0x0dd8, 0x0000 },
- { 0x0a00, 0x0dda, 0x0000 },
- { 0x8a00, 0x0ddd, 0x2000 },
- { 0x0a00, 0x0ddc, 0x0000 },
- { 0x0a00, 0x0dde, 0x0000 },
- { 0x8700, 0x0e05, 0x4000 },
- { 0x8700, 0x0e01, 0x3000 },
- { 0x8a00, 0x0df3, 0x2000 },
- { 0x0a00, 0x0df2, 0x0000 },
- { 0x1500, 0x0df4, 0x0000 },
- { 0x8700, 0x0e03, 0x2000 },
- { 0x0700, 0x0e02, 0x0000 },
- { 0x0700, 0x0e04, 0x0000 },
- { 0x8700, 0x0e09, 0x3000 },
- { 0x8700, 0x0e07, 0x2000 },
- { 0x0700, 0x0e06, 0x0000 },
- { 0x0700, 0x0e08, 0x0000 },
- { 0x8700, 0x0e0b, 0x2000 },
- { 0x0700, 0x0e0a, 0x0000 },
- { 0x0700, 0x0e0c, 0x0000 },
- { 0x8700, 0x0e1d, 0x5000 },
- { 0x8700, 0x0e15, 0x4000 },
- { 0x8700, 0x0e11, 0x3000 },
- { 0x8700, 0x0e0f, 0x2000 },
- { 0x0700, 0x0e0e, 0x0000 },
- { 0x0700, 0x0e10, 0x0000 },
- { 0x8700, 0x0e13, 0x2000 },
- { 0x0700, 0x0e12, 0x0000 },
- { 0x0700, 0x0e14, 0x0000 },
- { 0x8700, 0x0e19, 0x3000 },
- { 0x8700, 0x0e17, 0x2000 },
- { 0x0700, 0x0e16, 0x0000 },
- { 0x0700, 0x0e18, 0x0000 },
- { 0x8700, 0x0e1b, 0x2000 },
- { 0x0700, 0x0e1a, 0x0000 },
- { 0x0700, 0x0e1c, 0x0000 },
- { 0x8700, 0x0e25, 0x4000 },
- { 0x8700, 0x0e21, 0x3000 },
- { 0x8700, 0x0e1f, 0x2000 },
- { 0x0700, 0x0e1e, 0x0000 },
- { 0x0700, 0x0e20, 0x0000 },
- { 0x8700, 0x0e23, 0x2000 },
- { 0x0700, 0x0e22, 0x0000 },
- { 0x0700, 0x0e24, 0x0000 },
- { 0x8700, 0x0e29, 0x3000 },
- { 0x8700, 0x0e27, 0x2000 },
- { 0x0700, 0x0e26, 0x0000 },
- { 0x0700, 0x0e28, 0x0000 },
- { 0x8700, 0x0e2b, 0x2000 },
- { 0x0700, 0x0e2a, 0x0000 },
- { 0x0700, 0x0e2c, 0x0000 },
- { 0x8d00, 0x0e51, 0x6000 },
- { 0x8700, 0x0e41, 0x5000 },
- { 0x8c00, 0x0e35, 0x4000 },
- { 0x8c00, 0x0e31, 0x3000 },
- { 0x8700, 0x0e2f, 0x2000 },
- { 0x0700, 0x0e2e, 0x0000 },
- { 0x0700, 0x0e30, 0x0000 },
- { 0x8700, 0x0e33, 0x2000 },
- { 0x0700, 0x0e32, 0x0000 },
- { 0x0c00, 0x0e34, 0x0000 },
- { 0x8c00, 0x0e39, 0x3000 },
- { 0x8c00, 0x0e37, 0x2000 },
- { 0x0c00, 0x0e36, 0x0000 },
- { 0x0c00, 0x0e38, 0x0000 },
- { 0x9700, 0x0e3f, 0x2000 },
- { 0x0c00, 0x0e3a, 0x0000 },
- { 0x0700, 0x0e40, 0x0000 },
- { 0x8c00, 0x0e49, 0x4000 },
- { 0x8700, 0x0e45, 0x3000 },
- { 0x8700, 0x0e43, 0x2000 },
- { 0x0700, 0x0e42, 0x0000 },
- { 0x0700, 0x0e44, 0x0000 },
- { 0x8c00, 0x0e47, 0x2000 },
- { 0x0600, 0x0e46, 0x0000 },
- { 0x0c00, 0x0e48, 0x0000 },
- { 0x8c00, 0x0e4d, 0x3000 },
- { 0x8c00, 0x0e4b, 0x2000 },
- { 0x0c00, 0x0e4a, 0x0000 },
- { 0x0c00, 0x0e4c, 0x0000 },
- { 0x9500, 0x0e4f, 0x2000 },
- { 0x0c00, 0x0e4e, 0x0000 },
- { 0x0d00, 0x0e50, 0x0000 },
- { 0x8700, 0x0e8a, 0x5000 },
- { 0x8d00, 0x0e59, 0x4000 },
- { 0x8d00, 0x0e55, 0x3000 },
- { 0x8d00, 0x0e53, 0x2000 },
- { 0x0d00, 0x0e52, 0x0000 },
- { 0x0d00, 0x0e54, 0x0000 },
- { 0x8d00, 0x0e57, 0x2000 },
- { 0x0d00, 0x0e56, 0x0000 },
- { 0x0d00, 0x0e58, 0x0000 },
- { 0x8700, 0x0e82, 0x3000 },
- { 0x9500, 0x0e5b, 0x2000 },
- { 0x1500, 0x0e5a, 0x0000 },
- { 0x0700, 0x0e81, 0x0000 },
- { 0x8700, 0x0e87, 0x2000 },
- { 0x0700, 0x0e84, 0x0000 },
- { 0x0700, 0x0e88, 0x0000 },
- { 0x8700, 0x0e9b, 0x4000 },
- { 0x8700, 0x0e96, 0x3000 },
- { 0x8700, 0x0e94, 0x2000 },
- { 0x0700, 0x0e8d, 0x0000 },
- { 0x0700, 0x0e95, 0x0000 },
- { 0x8700, 0x0e99, 0x2000 },
- { 0x0700, 0x0e97, 0x0000 },
- { 0x0700, 0x0e9a, 0x0000 },
- { 0x8700, 0x0e9f, 0x3000 },
- { 0x8700, 0x0e9d, 0x2000 },
- { 0x0700, 0x0e9c, 0x0000 },
- { 0x0700, 0x0e9e, 0x0000 },
- { 0x8700, 0x0ea2, 0x2000 },
- { 0x0700, 0x0ea1, 0x0000 },
- { 0x0700, 0x0ea3, 0x0000 },
- { 0x9a00, 0x0f14, 0x7000 },
- { 0x8d00, 0x0ed0, 0x6000 },
- { 0x8c00, 0x0eb9, 0x5000 },
- { 0x8c00, 0x0eb1, 0x4000 },
- { 0x8700, 0x0ead, 0x3000 },
- { 0x8700, 0x0eaa, 0x2000 },
- { 0x0700, 0x0ea7, 0x0000 },
- { 0x0700, 0x0eab, 0x0000 },
- { 0x8700, 0x0eaf, 0x2000 },
- { 0x0700, 0x0eae, 0x0000 },
- { 0x0700, 0x0eb0, 0x0000 },
- { 0x8c00, 0x0eb5, 0x3000 },
- { 0x8700, 0x0eb3, 0x2000 },
- { 0x0700, 0x0eb2, 0x0000 },
- { 0x0c00, 0x0eb4, 0x0000 },
- { 0x8c00, 0x0eb7, 0x2000 },
- { 0x0c00, 0x0eb6, 0x0000 },
- { 0x0c00, 0x0eb8, 0x0000 },
- { 0x8700, 0x0ec4, 0x4000 },
- { 0x8700, 0x0ec0, 0x3000 },
- { 0x8c00, 0x0ebc, 0x2000 },
- { 0x0c00, 0x0ebb, 0x0000 },
- { 0x0700, 0x0ebd, 0x0000 },
- { 0x8700, 0x0ec2, 0x2000 },
- { 0x0700, 0x0ec1, 0x0000 },
- { 0x0700, 0x0ec3, 0x0000 },
- { 0x8c00, 0x0eca, 0x3000 },
- { 0x8c00, 0x0ec8, 0x2000 },
- { 0x0600, 0x0ec6, 0x0000 },
- { 0x0c00, 0x0ec9, 0x0000 },
- { 0x8c00, 0x0ecc, 0x2000 },
- { 0x0c00, 0x0ecb, 0x0000 },
- { 0x0c00, 0x0ecd, 0x0000 },
- { 0x9500, 0x0f04, 0x5000 },
- { 0x8d00, 0x0ed8, 0x4000 },
- { 0x8d00, 0x0ed4, 0x3000 },
- { 0x8d00, 0x0ed2, 0x2000 },
- { 0x0d00, 0x0ed1, 0x0000 },
- { 0x0d00, 0x0ed3, 0x0000 },
- { 0x8d00, 0x0ed6, 0x2000 },
- { 0x0d00, 0x0ed5, 0x0000 },
- { 0x0d00, 0x0ed7, 0x0000 },
- { 0x8700, 0x0f00, 0x3000 },
- { 0x8700, 0x0edc, 0x2000 },
- { 0x0d00, 0x0ed9, 0x0000 },
- { 0x0700, 0x0edd, 0x0000 },
- { 0x9a00, 0x0f02, 0x2000 },
- { 0x1a00, 0x0f01, 0x0000 },
- { 0x1a00, 0x0f03, 0x0000 },
- { 0x9500, 0x0f0c, 0x4000 },
- { 0x9500, 0x0f08, 0x3000 },
- { 0x9500, 0x0f06, 0x2000 },
- { 0x1500, 0x0f05, 0x0000 },
- { 0x1500, 0x0f07, 0x0000 },
- { 0x9500, 0x0f0a, 0x2000 },
- { 0x1500, 0x0f09, 0x0000 },
- { 0x1500, 0x0f0b, 0x0000 },
- { 0x9500, 0x0f10, 0x3000 },
- { 0x9500, 0x0f0e, 0x2000 },
- { 0x1500, 0x0f0d, 0x0000 },
- { 0x1500, 0x0f0f, 0x0000 },
- { 0x9500, 0x0f12, 0x2000 },
- { 0x1500, 0x0f11, 0x0000 },
- { 0x1a00, 0x0f13, 0x0000 },
- { 0x9a00, 0x0f34, 0x6000 },
- { 0x8d00, 0x0f24, 0x5000 },
- { 0x9a00, 0x0f1c, 0x4000 },
- { 0x8c00, 0x0f18, 0x3000 },
- { 0x9a00, 0x0f16, 0x2000 },
- { 0x1a00, 0x0f15, 0x0000 },
- { 0x1a00, 0x0f17, 0x0000 },
- { 0x9a00, 0x0f1a, 0x2000 },
- { 0x0c00, 0x0f19, 0x0000 },
- { 0x1a00, 0x0f1b, 0x0000 },
- { 0x8d00, 0x0f20, 0x3000 },
- { 0x9a00, 0x0f1e, 0x2000 },
- { 0x1a00, 0x0f1d, 0x0000 },
- { 0x1a00, 0x0f1f, 0x0000 },
- { 0x8d00, 0x0f22, 0x2000 },
- { 0x0d00, 0x0f21, 0x0000 },
- { 0x0d00, 0x0f23, 0x0000 },
- { 0x8f00, 0x0f2c, 0x4000 },
- { 0x8d00, 0x0f28, 0x3000 },
- { 0x8d00, 0x0f26, 0x2000 },
- { 0x0d00, 0x0f25, 0x0000 },
- { 0x0d00, 0x0f27, 0x0000 },
- { 0x8f00, 0x0f2a, 0x2000 },
- { 0x0d00, 0x0f29, 0x0000 },
- { 0x0f00, 0x0f2b, 0x0000 },
- { 0x8f00, 0x0f30, 0x3000 },
- { 0x8f00, 0x0f2e, 0x2000 },
- { 0x0f00, 0x0f2d, 0x0000 },
- { 0x0f00, 0x0f2f, 0x0000 },
- { 0x8f00, 0x0f32, 0x2000 },
- { 0x0f00, 0x0f31, 0x0000 },
- { 0x0f00, 0x0f33, 0x0000 },
- { 0x8700, 0x0f44, 0x5000 },
- { 0x9600, 0x0f3c, 0x4000 },
- { 0x9a00, 0x0f38, 0x3000 },
- { 0x9a00, 0x0f36, 0x2000 },
- { 0x0c00, 0x0f35, 0x0000 },
- { 0x0c00, 0x0f37, 0x0000 },
- { 0x9600, 0x0f3a, 0x2000 },
- { 0x0c00, 0x0f39, 0x0000 },
- { 0x1200, 0x0f3b, 0x0000 },
- { 0x8700, 0x0f40, 0x3000 },
- { 0x8a00, 0x0f3e, 0x2000 },
- { 0x1200, 0x0f3d, 0x0000 },
- { 0x0a00, 0x0f3f, 0x0000 },
- { 0x8700, 0x0f42, 0x2000 },
- { 0x0700, 0x0f41, 0x0000 },
- { 0x0700, 0x0f43, 0x0000 },
- { 0x8700, 0x0f4d, 0x4000 },
- { 0x8700, 0x0f49, 0x3000 },
- { 0x8700, 0x0f46, 0x2000 },
- { 0x0700, 0x0f45, 0x0000 },
- { 0x0700, 0x0f47, 0x0000 },
- { 0x8700, 0x0f4b, 0x2000 },
- { 0x0700, 0x0f4a, 0x0000 },
- { 0x0700, 0x0f4c, 0x0000 },
- { 0x8700, 0x0f51, 0x3000 },
- { 0x8700, 0x0f4f, 0x2000 },
- { 0x0700, 0x0f4e, 0x0000 },
- { 0x0700, 0x0f50, 0x0000 },
- { 0x8700, 0x0f53, 0x2000 },
- { 0x0700, 0x0f52, 0x0000 },
- { 0x0700, 0x0f54, 0x0000 },
- { 0x8700, 0x1013, 0x8000 },
- { 0x8c00, 0x0fa0, 0x7000 },
- { 0x8c00, 0x0f7b, 0x6000 },
- { 0x8700, 0x0f65, 0x5000 },
- { 0x8700, 0x0f5d, 0x4000 },
- { 0x8700, 0x0f59, 0x3000 },
- { 0x8700, 0x0f57, 0x2000 },
- { 0x0700, 0x0f56, 0x0000 },
- { 0x0700, 0x0f58, 0x0000 },
- { 0x8700, 0x0f5b, 0x2000 },
- { 0x0700, 0x0f5a, 0x0000 },
- { 0x0700, 0x0f5c, 0x0000 },
- { 0x8700, 0x0f61, 0x3000 },
- { 0x8700, 0x0f5f, 0x2000 },
- { 0x0700, 0x0f5e, 0x0000 },
- { 0x0700, 0x0f60, 0x0000 },
- { 0x8700, 0x0f63, 0x2000 },
- { 0x0700, 0x0f62, 0x0000 },
- { 0x0700, 0x0f64, 0x0000 },
- { 0x8c00, 0x0f73, 0x4000 },
- { 0x8700, 0x0f69, 0x3000 },
- { 0x8700, 0x0f67, 0x2000 },
- { 0x0700, 0x0f66, 0x0000 },
- { 0x0700, 0x0f68, 0x0000 },
- { 0x8c00, 0x0f71, 0x2000 },
- { 0x0700, 0x0f6a, 0x0000 },
- { 0x0c00, 0x0f72, 0x0000 },
- { 0x8c00, 0x0f77, 0x3000 },
- { 0x8c00, 0x0f75, 0x2000 },
- { 0x0c00, 0x0f74, 0x0000 },
- { 0x0c00, 0x0f76, 0x0000 },
- { 0x8c00, 0x0f79, 0x2000 },
- { 0x0c00, 0x0f78, 0x0000 },
- { 0x0c00, 0x0f7a, 0x0000 },
- { 0x8700, 0x0f8b, 0x5000 },
- { 0x8c00, 0x0f83, 0x4000 },
- { 0x8a00, 0x0f7f, 0x3000 },
- { 0x8c00, 0x0f7d, 0x2000 },
- { 0x0c00, 0x0f7c, 0x0000 },
- { 0x0c00, 0x0f7e, 0x0000 },
- { 0x8c00, 0x0f81, 0x2000 },
- { 0x0c00, 0x0f80, 0x0000 },
- { 0x0c00, 0x0f82, 0x0000 },
- { 0x8c00, 0x0f87, 0x3000 },
- { 0x9500, 0x0f85, 0x2000 },
- { 0x0c00, 0x0f84, 0x0000 },
- { 0x0c00, 0x0f86, 0x0000 },
- { 0x8700, 0x0f89, 0x2000 },
- { 0x0700, 0x0f88, 0x0000 },
- { 0x0700, 0x0f8a, 0x0000 },
- { 0x8c00, 0x0f97, 0x4000 },
- { 0x8c00, 0x0f93, 0x3000 },
- { 0x8c00, 0x0f91, 0x2000 },
- { 0x0c00, 0x0f90, 0x0000 },
- { 0x0c00, 0x0f92, 0x0000 },
- { 0x8c00, 0x0f95, 0x2000 },
- { 0x0c00, 0x0f94, 0x0000 },
- { 0x0c00, 0x0f96, 0x0000 },
- { 0x8c00, 0x0f9c, 0x3000 },
- { 0x8c00, 0x0f9a, 0x2000 },
- { 0x0c00, 0x0f99, 0x0000 },
- { 0x0c00, 0x0f9b, 0x0000 },
- { 0x8c00, 0x0f9e, 0x2000 },
- { 0x0c00, 0x0f9d, 0x0000 },
- { 0x0c00, 0x0f9f, 0x0000 },
- { 0x9a00, 0x0fc1, 0x6000 },
- { 0x8c00, 0x0fb0, 0x5000 },
- { 0x8c00, 0x0fa8, 0x4000 },
- { 0x8c00, 0x0fa4, 0x3000 },
- { 0x8c00, 0x0fa2, 0x2000 },
- { 0x0c00, 0x0fa1, 0x0000 },
- { 0x0c00, 0x0fa3, 0x0000 },
- { 0x8c00, 0x0fa6, 0x2000 },
- { 0x0c00, 0x0fa5, 0x0000 },
- { 0x0c00, 0x0fa7, 0x0000 },
- { 0x8c00, 0x0fac, 0x3000 },
- { 0x8c00, 0x0faa, 0x2000 },
- { 0x0c00, 0x0fa9, 0x0000 },
- { 0x0c00, 0x0fab, 0x0000 },
- { 0x8c00, 0x0fae, 0x2000 },
- { 0x0c00, 0x0fad, 0x0000 },
- { 0x0c00, 0x0faf, 0x0000 },
- { 0x8c00, 0x0fb8, 0x4000 },
- { 0x8c00, 0x0fb4, 0x3000 },
- { 0x8c00, 0x0fb2, 0x2000 },
- { 0x0c00, 0x0fb1, 0x0000 },
- { 0x0c00, 0x0fb3, 0x0000 },
- { 0x8c00, 0x0fb6, 0x2000 },
- { 0x0c00, 0x0fb5, 0x0000 },
- { 0x0c00, 0x0fb7, 0x0000 },
- { 0x8c00, 0x0fbc, 0x3000 },
- { 0x8c00, 0x0fba, 0x2000 },
- { 0x0c00, 0x0fb9, 0x0000 },
- { 0x0c00, 0x0fbb, 0x0000 },
- { 0x9a00, 0x0fbf, 0x2000 },
- { 0x1a00, 0x0fbe, 0x0000 },
- { 0x1a00, 0x0fc0, 0x0000 },
- { 0x8700, 0x1003, 0x5000 },
- { 0x9a00, 0x0fc9, 0x4000 },
- { 0x9a00, 0x0fc5, 0x3000 },
- { 0x9a00, 0x0fc3, 0x2000 },
- { 0x1a00, 0x0fc2, 0x0000 },
- { 0x1a00, 0x0fc4, 0x0000 },
- { 0x9a00, 0x0fc7, 0x2000 },
- { 0x0c00, 0x0fc6, 0x0000 },
- { 0x1a00, 0x0fc8, 0x0000 },
- { 0x9a00, 0x0fcf, 0x3000 },
- { 0x9a00, 0x0fcb, 0x2000 },
- { 0x1a00, 0x0fca, 0x0000 },
- { 0x1a00, 0x0fcc, 0x0000 },
- { 0x8700, 0x1001, 0x2000 },
- { 0x0700, 0x1000, 0x0000 },
- { 0x0700, 0x1002, 0x0000 },
- { 0x8700, 0x100b, 0x4000 },
- { 0x8700, 0x1007, 0x3000 },
- { 0x8700, 0x1005, 0x2000 },
- { 0x0700, 0x1004, 0x0000 },
- { 0x0700, 0x1006, 0x0000 },
- { 0x8700, 0x1009, 0x2000 },
- { 0x0700, 0x1008, 0x0000 },
- { 0x0700, 0x100a, 0x0000 },
- { 0x8700, 0x100f, 0x3000 },
- { 0x8700, 0x100d, 0x2000 },
- { 0x0700, 0x100c, 0x0000 },
- { 0x0700, 0x100e, 0x0000 },
- { 0x8700, 0x1011, 0x2000 },
- { 0x0700, 0x1010, 0x0000 },
- { 0x0700, 0x1012, 0x0000 },
- { 0x8900, 0x10a5, 0x7000 },
- { 0x8c00, 0x1039, 0x6000 },
- { 0x8700, 0x1024, 0x5000 },
- { 0x8700, 0x101b, 0x4000 },
- { 0x8700, 0x1017, 0x3000 },
- { 0x8700, 0x1015, 0x2000 },
- { 0x0700, 0x1014, 0x0000 },
- { 0x0700, 0x1016, 0x0000 },
- { 0x8700, 0x1019, 0x2000 },
- { 0x0700, 0x1018, 0x0000 },
- { 0x0700, 0x101a, 0x0000 },
- { 0x8700, 0x101f, 0x3000 },
- { 0x8700, 0x101d, 0x2000 },
- { 0x0700, 0x101c, 0x0000 },
- { 0x0700, 0x101e, 0x0000 },
- { 0x8700, 0x1021, 0x2000 },
- { 0x0700, 0x1020, 0x0000 },
- { 0x0700, 0x1023, 0x0000 },
- { 0x8c00, 0x102e, 0x4000 },
- { 0x8700, 0x1029, 0x3000 },
- { 0x8700, 0x1026, 0x2000 },
- { 0x0700, 0x1025, 0x0000 },
- { 0x0700, 0x1027, 0x0000 },
- { 0x8a00, 0x102c, 0x2000 },
- { 0x0700, 0x102a, 0x0000 },
- { 0x0c00, 0x102d, 0x0000 },
- { 0x8c00, 0x1032, 0x3000 },
- { 0x8c00, 0x1030, 0x2000 },
- { 0x0c00, 0x102f, 0x0000 },
- { 0x0a00, 0x1031, 0x0000 },
- { 0x8c00, 0x1037, 0x2000 },
- { 0x0c00, 0x1036, 0x0000 },
- { 0x0a00, 0x1038, 0x0000 },
- { 0x9500, 0x104f, 0x5000 },
- { 0x8d00, 0x1047, 0x4000 },
- { 0x8d00, 0x1043, 0x3000 },
- { 0x8d00, 0x1041, 0x2000 },
- { 0x0d00, 0x1040, 0x0000 },
- { 0x0d00, 0x1042, 0x0000 },
- { 0x8d00, 0x1045, 0x2000 },
- { 0x0d00, 0x1044, 0x0000 },
- { 0x0d00, 0x1046, 0x0000 },
- { 0x9500, 0x104b, 0x3000 },
- { 0x8d00, 0x1049, 0x2000 },
- { 0x0d00, 0x1048, 0x0000 },
- { 0x1500, 0x104a, 0x0000 },
- { 0x9500, 0x104d, 0x2000 },
- { 0x1500, 0x104c, 0x0000 },
- { 0x1500, 0x104e, 0x0000 },
- { 0x8a00, 0x1057, 0x4000 },
- { 0x8700, 0x1053, 0x3000 },
- { 0x8700, 0x1051, 0x2000 },
- { 0x0700, 0x1050, 0x0000 },
- { 0x0700, 0x1052, 0x0000 },
- { 0x8700, 0x1055, 0x2000 },
- { 0x0700, 0x1054, 0x0000 },
- { 0x0a00, 0x1056, 0x0000 },
- { 0x8900, 0x10a1, 0x3000 },
- { 0x8c00, 0x1059, 0x2000 },
- { 0x0c00, 0x1058, 0x0000 },
- { 0x0900, 0x10a0, 0x0000 },
- { 0x8900, 0x10a3, 0x2000 },
- { 0x0900, 0x10a2, 0x0000 },
- { 0x0900, 0x10a4, 0x0000 },
- { 0x8900, 0x10c5, 0x6000 },
- { 0x8900, 0x10b5, 0x5000 },
- { 0x8900, 0x10ad, 0x4000 },
- { 0x8900, 0x10a9, 0x3000 },
- { 0x8900, 0x10a7, 0x2000 },
- { 0x0900, 0x10a6, 0x0000 },
- { 0x0900, 0x10a8, 0x0000 },
- { 0x8900, 0x10ab, 0x2000 },
- { 0x0900, 0x10aa, 0x0000 },
- { 0x0900, 0x10ac, 0x0000 },
- { 0x8900, 0x10b1, 0x3000 },
- { 0x8900, 0x10af, 0x2000 },
- { 0x0900, 0x10ae, 0x0000 },
- { 0x0900, 0x10b0, 0x0000 },
- { 0x8900, 0x10b3, 0x2000 },
- { 0x0900, 0x10b2, 0x0000 },
- { 0x0900, 0x10b4, 0x0000 },
- { 0x8900, 0x10bd, 0x4000 },
- { 0x8900, 0x10b9, 0x3000 },
- { 0x8900, 0x10b7, 0x2000 },
- { 0x0900, 0x10b6, 0x0000 },
- { 0x0900, 0x10b8, 0x0000 },
- { 0x8900, 0x10bb, 0x2000 },
- { 0x0900, 0x10ba, 0x0000 },
- { 0x0900, 0x10bc, 0x0000 },
- { 0x8900, 0x10c1, 0x3000 },
- { 0x8900, 0x10bf, 0x2000 },
- { 0x0900, 0x10be, 0x0000 },
- { 0x0900, 0x10c0, 0x0000 },
- { 0x8900, 0x10c3, 0x2000 },
- { 0x0900, 0x10c2, 0x0000 },
- { 0x0900, 0x10c4, 0x0000 },
- { 0x8700, 0x10df, 0x5000 },
- { 0x8700, 0x10d7, 0x4000 },
- { 0x8700, 0x10d3, 0x3000 },
- { 0x8700, 0x10d1, 0x2000 },
- { 0x0700, 0x10d0, 0x0000 },
- { 0x0700, 0x10d2, 0x0000 },
- { 0x8700, 0x10d5, 0x2000 },
- { 0x0700, 0x10d4, 0x0000 },
- { 0x0700, 0x10d6, 0x0000 },
- { 0x8700, 0x10db, 0x3000 },
- { 0x8700, 0x10d9, 0x2000 },
- { 0x0700, 0x10d8, 0x0000 },
- { 0x0700, 0x10da, 0x0000 },
- { 0x8700, 0x10dd, 0x2000 },
- { 0x0700, 0x10dc, 0x0000 },
- { 0x0700, 0x10de, 0x0000 },
- { 0x8700, 0x10e7, 0x4000 },
- { 0x8700, 0x10e3, 0x3000 },
- { 0x8700, 0x10e1, 0x2000 },
- { 0x0700, 0x10e0, 0x0000 },
- { 0x0700, 0x10e2, 0x0000 },
- { 0x8700, 0x10e5, 0x2000 },
- { 0x0700, 0x10e4, 0x0000 },
- { 0x0700, 0x10e6, 0x0000 },
- { 0x8700, 0x10eb, 0x3000 },
- { 0x8700, 0x10e9, 0x2000 },
- { 0x0700, 0x10e8, 0x0000 },
- { 0x0700, 0x10ea, 0x0000 },
- { 0x8700, 0x10ed, 0x2000 },
- { 0x0700, 0x10ec, 0x0000 },
- { 0x0700, 0x10ee, 0x0000 },
- { 0x8700, 0x1322, 0xa000 },
- { 0x8700, 0x1205, 0x9000 },
- { 0x8700, 0x117a, 0x8000 },
- { 0x8700, 0x1135, 0x7000 },
- { 0x8700, 0x1115, 0x6000 },
- { 0x8700, 0x1105, 0x5000 },
- { 0x8700, 0x10f7, 0x4000 },
- { 0x8700, 0x10f3, 0x3000 },
- { 0x8700, 0x10f1, 0x2000 },
- { 0x0700, 0x10f0, 0x0000 },
- { 0x0700, 0x10f2, 0x0000 },
- { 0x8700, 0x10f5, 0x2000 },
- { 0x0700, 0x10f4, 0x0000 },
- { 0x0700, 0x10f6, 0x0000 },
- { 0x8700, 0x1101, 0x3000 },
- { 0x9500, 0x10fb, 0x2000 },
- { 0x0700, 0x10f8, 0x0000 },
- { 0x0700, 0x1100, 0x0000 },
- { 0x8700, 0x1103, 0x2000 },
- { 0x0700, 0x1102, 0x0000 },
- { 0x0700, 0x1104, 0x0000 },
- { 0x8700, 0x110d, 0x4000 },
- { 0x8700, 0x1109, 0x3000 },
- { 0x8700, 0x1107, 0x2000 },
- { 0x0700, 0x1106, 0x0000 },
- { 0x0700, 0x1108, 0x0000 },
- { 0x8700, 0x110b, 0x2000 },
- { 0x0700, 0x110a, 0x0000 },
- { 0x0700, 0x110c, 0x0000 },
- { 0x8700, 0x1111, 0x3000 },
- { 0x8700, 0x110f, 0x2000 },
- { 0x0700, 0x110e, 0x0000 },
- { 0x0700, 0x1110, 0x0000 },
- { 0x8700, 0x1113, 0x2000 },
- { 0x0700, 0x1112, 0x0000 },
- { 0x0700, 0x1114, 0x0000 },
- { 0x8700, 0x1125, 0x5000 },
- { 0x8700, 0x111d, 0x4000 },
- { 0x8700, 0x1119, 0x3000 },
- { 0x8700, 0x1117, 0x2000 },
- { 0x0700, 0x1116, 0x0000 },
- { 0x0700, 0x1118, 0x0000 },
- { 0x8700, 0x111b, 0x2000 },
- { 0x0700, 0x111a, 0x0000 },
- { 0x0700, 0x111c, 0x0000 },
- { 0x8700, 0x1121, 0x3000 },
- { 0x8700, 0x111f, 0x2000 },
- { 0x0700, 0x111e, 0x0000 },
- { 0x0700, 0x1120, 0x0000 },
- { 0x8700, 0x1123, 0x2000 },
- { 0x0700, 0x1122, 0x0000 },
- { 0x0700, 0x1124, 0x0000 },
- { 0x8700, 0x112d, 0x4000 },
- { 0x8700, 0x1129, 0x3000 },
- { 0x8700, 0x1127, 0x2000 },
- { 0x0700, 0x1126, 0x0000 },
- { 0x0700, 0x1128, 0x0000 },
- { 0x8700, 0x112b, 0x2000 },
- { 0x0700, 0x112a, 0x0000 },
- { 0x0700, 0x112c, 0x0000 },
- { 0x8700, 0x1131, 0x3000 },
- { 0x8700, 0x112f, 0x2000 },
- { 0x0700, 0x112e, 0x0000 },
- { 0x0700, 0x1130, 0x0000 },
- { 0x8700, 0x1133, 0x2000 },
- { 0x0700, 0x1132, 0x0000 },
- { 0x0700, 0x1134, 0x0000 },
- { 0x8700, 0x1155, 0x6000 },
- { 0x8700, 0x1145, 0x5000 },
- { 0x8700, 0x113d, 0x4000 },
- { 0x8700, 0x1139, 0x3000 },
- { 0x8700, 0x1137, 0x2000 },
- { 0x0700, 0x1136, 0x0000 },
- { 0x0700, 0x1138, 0x0000 },
- { 0x8700, 0x113b, 0x2000 },
- { 0x0700, 0x113a, 0x0000 },
- { 0x0700, 0x113c, 0x0000 },
- { 0x8700, 0x1141, 0x3000 },
- { 0x8700, 0x113f, 0x2000 },
- { 0x0700, 0x113e, 0x0000 },
- { 0x0700, 0x1140, 0x0000 },
- { 0x8700, 0x1143, 0x2000 },
- { 0x0700, 0x1142, 0x0000 },
- { 0x0700, 0x1144, 0x0000 },
- { 0x8700, 0x114d, 0x4000 },
- { 0x8700, 0x1149, 0x3000 },
- { 0x8700, 0x1147, 0x2000 },
- { 0x0700, 0x1146, 0x0000 },
- { 0x0700, 0x1148, 0x0000 },
- { 0x8700, 0x114b, 0x2000 },
- { 0x0700, 0x114a, 0x0000 },
- { 0x0700, 0x114c, 0x0000 },
- { 0x8700, 0x1151, 0x3000 },
- { 0x8700, 0x114f, 0x2000 },
- { 0x0700, 0x114e, 0x0000 },
- { 0x0700, 0x1150, 0x0000 },
- { 0x8700, 0x1153, 0x2000 },
- { 0x0700, 0x1152, 0x0000 },
- { 0x0700, 0x1154, 0x0000 },
- { 0x8700, 0x116a, 0x5000 },
- { 0x8700, 0x1162, 0x4000 },
- { 0x8700, 0x1159, 0x3000 },
- { 0x8700, 0x1157, 0x2000 },
- { 0x0700, 0x1156, 0x0000 },
- { 0x0700, 0x1158, 0x0000 },
- { 0x8700, 0x1160, 0x2000 },
- { 0x0700, 0x115f, 0x0000 },
- { 0x0700, 0x1161, 0x0000 },
- { 0x8700, 0x1166, 0x3000 },
- { 0x8700, 0x1164, 0x2000 },
- { 0x0700, 0x1163, 0x0000 },
- { 0x0700, 0x1165, 0x0000 },
- { 0x8700, 0x1168, 0x2000 },
- { 0x0700, 0x1167, 0x0000 },
- { 0x0700, 0x1169, 0x0000 },
- { 0x8700, 0x1172, 0x4000 },
- { 0x8700, 0x116e, 0x3000 },
- { 0x8700, 0x116c, 0x2000 },
- { 0x0700, 0x116b, 0x0000 },
- { 0x0700, 0x116d, 0x0000 },
- { 0x8700, 0x1170, 0x2000 },
- { 0x0700, 0x116f, 0x0000 },
- { 0x0700, 0x1171, 0x0000 },
- { 0x8700, 0x1176, 0x3000 },
- { 0x8700, 0x1174, 0x2000 },
- { 0x0700, 0x1173, 0x0000 },
- { 0x0700, 0x1175, 0x0000 },
- { 0x8700, 0x1178, 0x2000 },
- { 0x0700, 0x1177, 0x0000 },
- { 0x0700, 0x1179, 0x0000 },
- { 0x8700, 0x11bf, 0x7000 },
- { 0x8700, 0x119a, 0x6000 },
- { 0x8700, 0x118a, 0x5000 },
- { 0x8700, 0x1182, 0x4000 },
- { 0x8700, 0x117e, 0x3000 },
- { 0x8700, 0x117c, 0x2000 },
- { 0x0700, 0x117b, 0x0000 },
- { 0x0700, 0x117d, 0x0000 },
- { 0x8700, 0x1180, 0x2000 },
- { 0x0700, 0x117f, 0x0000 },
- { 0x0700, 0x1181, 0x0000 },
- { 0x8700, 0x1186, 0x3000 },
- { 0x8700, 0x1184, 0x2000 },
- { 0x0700, 0x1183, 0x0000 },
- { 0x0700, 0x1185, 0x0000 },
- { 0x8700, 0x1188, 0x2000 },
- { 0x0700, 0x1187, 0x0000 },
- { 0x0700, 0x1189, 0x0000 },
- { 0x8700, 0x1192, 0x4000 },
- { 0x8700, 0x118e, 0x3000 },
- { 0x8700, 0x118c, 0x2000 },
- { 0x0700, 0x118b, 0x0000 },
- { 0x0700, 0x118d, 0x0000 },
- { 0x8700, 0x1190, 0x2000 },
- { 0x0700, 0x118f, 0x0000 },
- { 0x0700, 0x1191, 0x0000 },
- { 0x8700, 0x1196, 0x3000 },
- { 0x8700, 0x1194, 0x2000 },
- { 0x0700, 0x1193, 0x0000 },
- { 0x0700, 0x1195, 0x0000 },
- { 0x8700, 0x1198, 0x2000 },
- { 0x0700, 0x1197, 0x0000 },
- { 0x0700, 0x1199, 0x0000 },
- { 0x8700, 0x11af, 0x5000 },
- { 0x8700, 0x11a2, 0x4000 },
- { 0x8700, 0x119e, 0x3000 },
- { 0x8700, 0x119c, 0x2000 },
- { 0x0700, 0x119b, 0x0000 },
- { 0x0700, 0x119d, 0x0000 },
- { 0x8700, 0x11a0, 0x2000 },
- { 0x0700, 0x119f, 0x0000 },
- { 0x0700, 0x11a1, 0x0000 },
- { 0x8700, 0x11ab, 0x3000 },
- { 0x8700, 0x11a9, 0x2000 },
- { 0x0700, 0x11a8, 0x0000 },
- { 0x0700, 0x11aa, 0x0000 },
- { 0x8700, 0x11ad, 0x2000 },
- { 0x0700, 0x11ac, 0x0000 },
- { 0x0700, 0x11ae, 0x0000 },
- { 0x8700, 0x11b7, 0x4000 },
- { 0x8700, 0x11b3, 0x3000 },
- { 0x8700, 0x11b1, 0x2000 },
- { 0x0700, 0x11b0, 0x0000 },
- { 0x0700, 0x11b2, 0x0000 },
- { 0x8700, 0x11b5, 0x2000 },
- { 0x0700, 0x11b4, 0x0000 },
- { 0x0700, 0x11b6, 0x0000 },
- { 0x8700, 0x11bb, 0x3000 },
- { 0x8700, 0x11b9, 0x2000 },
- { 0x0700, 0x11b8, 0x0000 },
- { 0x0700, 0x11ba, 0x0000 },
- { 0x8700, 0x11bd, 0x2000 },
- { 0x0700, 0x11bc, 0x0000 },
- { 0x0700, 0x11be, 0x0000 },
- { 0x8700, 0x11df, 0x6000 },
- { 0x8700, 0x11cf, 0x5000 },
- { 0x8700, 0x11c7, 0x4000 },
- { 0x8700, 0x11c3, 0x3000 },
- { 0x8700, 0x11c1, 0x2000 },
- { 0x0700, 0x11c0, 0x0000 },
- { 0x0700, 0x11c2, 0x0000 },
- { 0x8700, 0x11c5, 0x2000 },
- { 0x0700, 0x11c4, 0x0000 },
- { 0x0700, 0x11c6, 0x0000 },
- { 0x8700, 0x11cb, 0x3000 },
- { 0x8700, 0x11c9, 0x2000 },
- { 0x0700, 0x11c8, 0x0000 },
- { 0x0700, 0x11ca, 0x0000 },
- { 0x8700, 0x11cd, 0x2000 },
- { 0x0700, 0x11cc, 0x0000 },
- { 0x0700, 0x11ce, 0x0000 },
- { 0x8700, 0x11d7, 0x4000 },
- { 0x8700, 0x11d3, 0x3000 },
- { 0x8700, 0x11d1, 0x2000 },
- { 0x0700, 0x11d0, 0x0000 },
- { 0x0700, 0x11d2, 0x0000 },
- { 0x8700, 0x11d5, 0x2000 },
- { 0x0700, 0x11d4, 0x0000 },
- { 0x0700, 0x11d6, 0x0000 },
- { 0x8700, 0x11db, 0x3000 },
- { 0x8700, 0x11d9, 0x2000 },
- { 0x0700, 0x11d8, 0x0000 },
- { 0x0700, 0x11da, 0x0000 },
- { 0x8700, 0x11dd, 0x2000 },
- { 0x0700, 0x11dc, 0x0000 },
- { 0x0700, 0x11de, 0x0000 },
- { 0x8700, 0x11ef, 0x5000 },
- { 0x8700, 0x11e7, 0x4000 },
- { 0x8700, 0x11e3, 0x3000 },
- { 0x8700, 0x11e1, 0x2000 },
- { 0x0700, 0x11e0, 0x0000 },
- { 0x0700, 0x11e2, 0x0000 },
- { 0x8700, 0x11e5, 0x2000 },
- { 0x0700, 0x11e4, 0x0000 },
- { 0x0700, 0x11e6, 0x0000 },
- { 0x8700, 0x11eb, 0x3000 },
- { 0x8700, 0x11e9, 0x2000 },
- { 0x0700, 0x11e8, 0x0000 },
- { 0x0700, 0x11ea, 0x0000 },
- { 0x8700, 0x11ed, 0x2000 },
- { 0x0700, 0x11ec, 0x0000 },
- { 0x0700, 0x11ee, 0x0000 },
- { 0x8700, 0x11f7, 0x4000 },
- { 0x8700, 0x11f3, 0x3000 },
- { 0x8700, 0x11f1, 0x2000 },
- { 0x0700, 0x11f0, 0x0000 },
- { 0x0700, 0x11f2, 0x0000 },
- { 0x8700, 0x11f5, 0x2000 },
- { 0x0700, 0x11f4, 0x0000 },
- { 0x0700, 0x11f6, 0x0000 },
- { 0x8700, 0x1201, 0x3000 },
- { 0x8700, 0x11f9, 0x2000 },
- { 0x0700, 0x11f8, 0x0000 },
- { 0x0700, 0x1200, 0x0000 },
- { 0x8700, 0x1203, 0x2000 },
- { 0x0700, 0x1202, 0x0000 },
- { 0x0700, 0x1204, 0x0000 },
- { 0x8700, 0x1292, 0x8000 },
- { 0x8700, 0x1246, 0x7000 },
- { 0x8700, 0x1226, 0x6000 },
- { 0x8700, 0x1216, 0x5000 },
- { 0x8700, 0x120e, 0x4000 },
- { 0x8700, 0x120a, 0x3000 },
- { 0x8700, 0x1208, 0x2000 },
- { 0x0700, 0x1206, 0x0000 },
- { 0x0700, 0x1209, 0x0000 },
- { 0x8700, 0x120c, 0x2000 },
- { 0x0700, 0x120b, 0x0000 },
- { 0x0700, 0x120d, 0x0000 },
- { 0x8700, 0x1212, 0x3000 },
- { 0x8700, 0x1210, 0x2000 },
- { 0x0700, 0x120f, 0x0000 },
- { 0x0700, 0x1211, 0x0000 },
- { 0x8700, 0x1214, 0x2000 },
- { 0x0700, 0x1213, 0x0000 },
- { 0x0700, 0x1215, 0x0000 },
- { 0x8700, 0x121e, 0x4000 },
- { 0x8700, 0x121a, 0x3000 },
- { 0x8700, 0x1218, 0x2000 },
- { 0x0700, 0x1217, 0x0000 },
- { 0x0700, 0x1219, 0x0000 },
- { 0x8700, 0x121c, 0x2000 },
- { 0x0700, 0x121b, 0x0000 },
- { 0x0700, 0x121d, 0x0000 },
- { 0x8700, 0x1222, 0x3000 },
- { 0x8700, 0x1220, 0x2000 },
- { 0x0700, 0x121f, 0x0000 },
- { 0x0700, 0x1221, 0x0000 },
- { 0x8700, 0x1224, 0x2000 },
- { 0x0700, 0x1223, 0x0000 },
- { 0x0700, 0x1225, 0x0000 },
- { 0x8700, 0x1236, 0x5000 },
- { 0x8700, 0x122e, 0x4000 },
- { 0x8700, 0x122a, 0x3000 },
- { 0x8700, 0x1228, 0x2000 },
- { 0x0700, 0x1227, 0x0000 },
- { 0x0700, 0x1229, 0x0000 },
- { 0x8700, 0x122c, 0x2000 },
- { 0x0700, 0x122b, 0x0000 },
- { 0x0700, 0x122d, 0x0000 },
- { 0x8700, 0x1232, 0x3000 },
- { 0x8700, 0x1230, 0x2000 },
- { 0x0700, 0x122f, 0x0000 },
- { 0x0700, 0x1231, 0x0000 },
- { 0x8700, 0x1234, 0x2000 },
- { 0x0700, 0x1233, 0x0000 },
- { 0x0700, 0x1235, 0x0000 },
- { 0x8700, 0x123e, 0x4000 },
- { 0x8700, 0x123a, 0x3000 },
- { 0x8700, 0x1238, 0x2000 },
- { 0x0700, 0x1237, 0x0000 },
- { 0x0700, 0x1239, 0x0000 },
- { 0x8700, 0x123c, 0x2000 },
- { 0x0700, 0x123b, 0x0000 },
- { 0x0700, 0x123d, 0x0000 },
- { 0x8700, 0x1242, 0x3000 },
- { 0x8700, 0x1240, 0x2000 },
- { 0x0700, 0x123f, 0x0000 },
- { 0x0700, 0x1241, 0x0000 },
- { 0x8700, 0x1244, 0x2000 },
- { 0x0700, 0x1243, 0x0000 },
- { 0x0700, 0x1245, 0x0000 },
- { 0x8700, 0x126e, 0x6000 },
- { 0x8700, 0x125c, 0x5000 },
- { 0x8700, 0x1252, 0x4000 },
- { 0x8700, 0x124c, 0x3000 },
- { 0x8700, 0x124a, 0x2000 },
- { 0x0700, 0x1248, 0x0000 },
- { 0x0700, 0x124b, 0x0000 },
- { 0x8700, 0x1250, 0x2000 },
- { 0x0700, 0x124d, 0x0000 },
- { 0x0700, 0x1251, 0x0000 },
- { 0x8700, 0x1256, 0x3000 },
- { 0x8700, 0x1254, 0x2000 },
- { 0x0700, 0x1253, 0x0000 },
- { 0x0700, 0x1255, 0x0000 },
- { 0x8700, 0x125a, 0x2000 },
- { 0x0700, 0x1258, 0x0000 },
- { 0x0700, 0x125b, 0x0000 },
- { 0x8700, 0x1266, 0x4000 },
- { 0x8700, 0x1262, 0x3000 },
- { 0x8700, 0x1260, 0x2000 },
- { 0x0700, 0x125d, 0x0000 },
- { 0x0700, 0x1261, 0x0000 },
- { 0x8700, 0x1264, 0x2000 },
- { 0x0700, 0x1263, 0x0000 },
- { 0x0700, 0x1265, 0x0000 },
- { 0x8700, 0x126a, 0x3000 },
- { 0x8700, 0x1268, 0x2000 },
- { 0x0700, 0x1267, 0x0000 },
- { 0x0700, 0x1269, 0x0000 },
- { 0x8700, 0x126c, 0x2000 },
- { 0x0700, 0x126b, 0x0000 },
- { 0x0700, 0x126d, 0x0000 },
- { 0x8700, 0x127e, 0x5000 },
- { 0x8700, 0x1276, 0x4000 },
- { 0x8700, 0x1272, 0x3000 },
- { 0x8700, 0x1270, 0x2000 },
- { 0x0700, 0x126f, 0x0000 },
- { 0x0700, 0x1271, 0x0000 },
- { 0x8700, 0x1274, 0x2000 },
- { 0x0700, 0x1273, 0x0000 },
- { 0x0700, 0x1275, 0x0000 },
- { 0x8700, 0x127a, 0x3000 },
- { 0x8700, 0x1278, 0x2000 },
- { 0x0700, 0x1277, 0x0000 },
- { 0x0700, 0x1279, 0x0000 },
- { 0x8700, 0x127c, 0x2000 },
- { 0x0700, 0x127b, 0x0000 },
- { 0x0700, 0x127d, 0x0000 },
- { 0x8700, 0x1286, 0x4000 },
- { 0x8700, 0x1282, 0x3000 },
- { 0x8700, 0x1280, 0x2000 },
- { 0x0700, 0x127f, 0x0000 },
- { 0x0700, 0x1281, 0x0000 },
- { 0x8700, 0x1284, 0x2000 },
- { 0x0700, 0x1283, 0x0000 },
- { 0x0700, 0x1285, 0x0000 },
- { 0x8700, 0x128c, 0x3000 },
- { 0x8700, 0x128a, 0x2000 },
- { 0x0700, 0x1288, 0x0000 },
- { 0x0700, 0x128b, 0x0000 },
- { 0x8700, 0x1290, 0x2000 },
- { 0x0700, 0x128d, 0x0000 },
- { 0x0700, 0x1291, 0x0000 },
- { 0x8700, 0x12dc, 0x7000 },
- { 0x8700, 0x12b4, 0x6000 },
- { 0x8700, 0x12a2, 0x5000 },
- { 0x8700, 0x129a, 0x4000 },
- { 0x8700, 0x1296, 0x3000 },
- { 0x8700, 0x1294, 0x2000 },
- { 0x0700, 0x1293, 0x0000 },
- { 0x0700, 0x1295, 0x0000 },
- { 0x8700, 0x1298, 0x2000 },
- { 0x0700, 0x1297, 0x0000 },
- { 0x0700, 0x1299, 0x0000 },
- { 0x8700, 0x129e, 0x3000 },
- { 0x8700, 0x129c, 0x2000 },
- { 0x0700, 0x129b, 0x0000 },
- { 0x0700, 0x129d, 0x0000 },
- { 0x8700, 0x12a0, 0x2000 },
- { 0x0700, 0x129f, 0x0000 },
- { 0x0700, 0x12a1, 0x0000 },
- { 0x8700, 0x12aa, 0x4000 },
- { 0x8700, 0x12a6, 0x3000 },
- { 0x8700, 0x12a4, 0x2000 },
- { 0x0700, 0x12a3, 0x0000 },
- { 0x0700, 0x12a5, 0x0000 },
- { 0x8700, 0x12a8, 0x2000 },
- { 0x0700, 0x12a7, 0x0000 },
- { 0x0700, 0x12a9, 0x0000 },
- { 0x8700, 0x12ae, 0x3000 },
- { 0x8700, 0x12ac, 0x2000 },
- { 0x0700, 0x12ab, 0x0000 },
- { 0x0700, 0x12ad, 0x0000 },
- { 0x8700, 0x12b2, 0x2000 },
- { 0x0700, 0x12b0, 0x0000 },
- { 0x0700, 0x12b3, 0x0000 },
- { 0x8700, 0x12ca, 0x5000 },
- { 0x8700, 0x12be, 0x4000 },
- { 0x8700, 0x12ba, 0x3000 },
- { 0x8700, 0x12b8, 0x2000 },
- { 0x0700, 0x12b5, 0x0000 },
- { 0x0700, 0x12b9, 0x0000 },
- { 0x8700, 0x12bc, 0x2000 },
- { 0x0700, 0x12bb, 0x0000 },
- { 0x0700, 0x12bd, 0x0000 },
- { 0x8700, 0x12c4, 0x3000 },
- { 0x8700, 0x12c2, 0x2000 },
- { 0x0700, 0x12c0, 0x0000 },
- { 0x0700, 0x12c3, 0x0000 },
- { 0x8700, 0x12c8, 0x2000 },
- { 0x0700, 0x12c5, 0x0000 },
- { 0x0700, 0x12c9, 0x0000 },
- { 0x8700, 0x12d3, 0x4000 },
- { 0x8700, 0x12ce, 0x3000 },
- { 0x8700, 0x12cc, 0x2000 },
- { 0x0700, 0x12cb, 0x0000 },
- { 0x0700, 0x12cd, 0x0000 },
- { 0x8700, 0x12d1, 0x2000 },
- { 0x0700, 0x12d0, 0x0000 },
- { 0x0700, 0x12d2, 0x0000 },
- { 0x8700, 0x12d8, 0x3000 },
- { 0x8700, 0x12d5, 0x2000 },
- { 0x0700, 0x12d4, 0x0000 },
- { 0x0700, 0x12d6, 0x0000 },
- { 0x8700, 0x12da, 0x2000 },
- { 0x0700, 0x12d9, 0x0000 },
- { 0x0700, 0x12db, 0x0000 },
- { 0x8700, 0x12fd, 0x6000 },
- { 0x8700, 0x12ec, 0x5000 },
- { 0x8700, 0x12e4, 0x4000 },
- { 0x8700, 0x12e0, 0x3000 },
- { 0x8700, 0x12de, 0x2000 },
- { 0x0700, 0x12dd, 0x0000 },
- { 0x0700, 0x12df, 0x0000 },
- { 0x8700, 0x12e2, 0x2000 },
- { 0x0700, 0x12e1, 0x0000 },
- { 0x0700, 0x12e3, 0x0000 },
- { 0x8700, 0x12e8, 0x3000 },
- { 0x8700, 0x12e6, 0x2000 },
- { 0x0700, 0x12e5, 0x0000 },
- { 0x0700, 0x12e7, 0x0000 },
- { 0x8700, 0x12ea, 0x2000 },
- { 0x0700, 0x12e9, 0x0000 },
- { 0x0700, 0x12eb, 0x0000 },
- { 0x8700, 0x12f5, 0x4000 },
- { 0x8700, 0x12f1, 0x3000 },
- { 0x8700, 0x12ee, 0x2000 },
- { 0x0700, 0x12ed, 0x0000 },
- { 0x0700, 0x12f0, 0x0000 },
- { 0x8700, 0x12f3, 0x2000 },
- { 0x0700, 0x12f2, 0x0000 },
- { 0x0700, 0x12f4, 0x0000 },
- { 0x8700, 0x12f9, 0x3000 },
- { 0x8700, 0x12f7, 0x2000 },
- { 0x0700, 0x12f6, 0x0000 },
- { 0x0700, 0x12f8, 0x0000 },
- { 0x8700, 0x12fb, 0x2000 },
- { 0x0700, 0x12fa, 0x0000 },
- { 0x0700, 0x12fc, 0x0000 },
- { 0x8700, 0x130d, 0x5000 },
- { 0x8700, 0x1305, 0x4000 },
- { 0x8700, 0x1301, 0x3000 },
- { 0x8700, 0x12ff, 0x2000 },
- { 0x0700, 0x12fe, 0x0000 },
- { 0x0700, 0x1300, 0x0000 },
- { 0x8700, 0x1303, 0x2000 },
- { 0x0700, 0x1302, 0x0000 },
- { 0x0700, 0x1304, 0x0000 },
- { 0x8700, 0x1309, 0x3000 },
- { 0x8700, 0x1307, 0x2000 },
- { 0x0700, 0x1306, 0x0000 },
- { 0x0700, 0x1308, 0x0000 },
- { 0x8700, 0x130b, 0x2000 },
- { 0x0700, 0x130a, 0x0000 },
- { 0x0700, 0x130c, 0x0000 },
- { 0x8700, 0x1319, 0x4000 },
- { 0x8700, 0x1313, 0x3000 },
- { 0x8700, 0x1310, 0x2000 },
- { 0x0700, 0x130e, 0x0000 },
- { 0x0700, 0x1312, 0x0000 },
- { 0x8700, 0x1315, 0x2000 },
- { 0x0700, 0x1314, 0x0000 },
- { 0x0700, 0x1318, 0x0000 },
- { 0x8700, 0x131d, 0x3000 },
- { 0x8700, 0x131b, 0x2000 },
- { 0x0700, 0x131a, 0x0000 },
- { 0x0700, 0x131c, 0x0000 },
- { 0x8700, 0x1320, 0x2000 },
- { 0x0700, 0x131e, 0x0000 },
- { 0x0700, 0x1321, 0x0000 },
- { 0x8700, 0x1458, 0x9000 },
- { 0x8700, 0x13cc, 0x8000 },
- { 0x8d00, 0x1369, 0x7000 },
- { 0x8700, 0x1342, 0x6000 },
- { 0x8700, 0x1332, 0x5000 },
- { 0x8700, 0x132a, 0x4000 },
- { 0x8700, 0x1326, 0x3000 },
- { 0x8700, 0x1324, 0x2000 },
- { 0x0700, 0x1323, 0x0000 },
- { 0x0700, 0x1325, 0x0000 },
- { 0x8700, 0x1328, 0x2000 },
- { 0x0700, 0x1327, 0x0000 },
- { 0x0700, 0x1329, 0x0000 },
- { 0x8700, 0x132e, 0x3000 },
- { 0x8700, 0x132c, 0x2000 },
- { 0x0700, 0x132b, 0x0000 },
- { 0x0700, 0x132d, 0x0000 },
- { 0x8700, 0x1330, 0x2000 },
- { 0x0700, 0x132f, 0x0000 },
- { 0x0700, 0x1331, 0x0000 },
- { 0x8700, 0x133a, 0x4000 },
- { 0x8700, 0x1336, 0x3000 },
- { 0x8700, 0x1334, 0x2000 },
- { 0x0700, 0x1333, 0x0000 },
- { 0x0700, 0x1335, 0x0000 },
- { 0x8700, 0x1338, 0x2000 },
- { 0x0700, 0x1337, 0x0000 },
- { 0x0700, 0x1339, 0x0000 },
- { 0x8700, 0x133e, 0x3000 },
- { 0x8700, 0x133c, 0x2000 },
- { 0x0700, 0x133b, 0x0000 },
- { 0x0700, 0x133d, 0x0000 },
- { 0x8700, 0x1340, 0x2000 },
- { 0x0700, 0x133f, 0x0000 },
- { 0x0700, 0x1341, 0x0000 },
- { 0x8700, 0x1353, 0x5000 },
- { 0x8700, 0x134b, 0x4000 },
- { 0x8700, 0x1346, 0x3000 },
- { 0x8700, 0x1344, 0x2000 },
- { 0x0700, 0x1343, 0x0000 },
- { 0x0700, 0x1345, 0x0000 },
- { 0x8700, 0x1349, 0x2000 },
- { 0x0700, 0x1348, 0x0000 },
- { 0x0700, 0x134a, 0x0000 },
- { 0x8700, 0x134f, 0x3000 },
- { 0x8700, 0x134d, 0x2000 },
- { 0x0700, 0x134c, 0x0000 },
- { 0x0700, 0x134e, 0x0000 },
- { 0x8700, 0x1351, 0x2000 },
- { 0x0700, 0x1350, 0x0000 },
- { 0x0700, 0x1352, 0x0000 },
- { 0x9500, 0x1361, 0x4000 },
- { 0x8700, 0x1357, 0x3000 },
- { 0x8700, 0x1355, 0x2000 },
- { 0x0700, 0x1354, 0x0000 },
- { 0x0700, 0x1356, 0x0000 },
- { 0x8700, 0x1359, 0x2000 },
- { 0x0700, 0x1358, 0x0000 },
- { 0x0700, 0x135a, 0x0000 },
- { 0x9500, 0x1365, 0x3000 },
- { 0x9500, 0x1363, 0x2000 },
- { 0x1500, 0x1362, 0x0000 },
- { 0x1500, 0x1364, 0x0000 },
- { 0x9500, 0x1367, 0x2000 },
- { 0x1500, 0x1366, 0x0000 },
- { 0x1500, 0x1368, 0x0000 },
- { 0x8700, 0x13ac, 0x6000 },
- { 0x8f00, 0x1379, 0x5000 },
- { 0x8d00, 0x1371, 0x4000 },
- { 0x8d00, 0x136d, 0x3000 },
- { 0x8d00, 0x136b, 0x2000 },
- { 0x0d00, 0x136a, 0x0000 },
- { 0x0d00, 0x136c, 0x0000 },
- { 0x8d00, 0x136f, 0x2000 },
- { 0x0d00, 0x136e, 0x0000 },
- { 0x0d00, 0x1370, 0x0000 },
- { 0x8f00, 0x1375, 0x3000 },
- { 0x8f00, 0x1373, 0x2000 },
- { 0x0f00, 0x1372, 0x0000 },
- { 0x0f00, 0x1374, 0x0000 },
- { 0x8f00, 0x1377, 0x2000 },
- { 0x0f00, 0x1376, 0x0000 },
- { 0x0f00, 0x1378, 0x0000 },
- { 0x8700, 0x13a4, 0x4000 },
- { 0x8700, 0x13a0, 0x3000 },
- { 0x8f00, 0x137b, 0x2000 },
- { 0x0f00, 0x137a, 0x0000 },
- { 0x0f00, 0x137c, 0x0000 },
- { 0x8700, 0x13a2, 0x2000 },
- { 0x0700, 0x13a1, 0x0000 },
- { 0x0700, 0x13a3, 0x0000 },
- { 0x8700, 0x13a8, 0x3000 },
- { 0x8700, 0x13a6, 0x2000 },
- { 0x0700, 0x13a5, 0x0000 },
- { 0x0700, 0x13a7, 0x0000 },
- { 0x8700, 0x13aa, 0x2000 },
- { 0x0700, 0x13a9, 0x0000 },
- { 0x0700, 0x13ab, 0x0000 },
- { 0x8700, 0x13bc, 0x5000 },
- { 0x8700, 0x13b4, 0x4000 },
- { 0x8700, 0x13b0, 0x3000 },
- { 0x8700, 0x13ae, 0x2000 },
- { 0x0700, 0x13ad, 0x0000 },
- { 0x0700, 0x13af, 0x0000 },
- { 0x8700, 0x13b2, 0x2000 },
- { 0x0700, 0x13b1, 0x0000 },
- { 0x0700, 0x13b3, 0x0000 },
- { 0x8700, 0x13b8, 0x3000 },
- { 0x8700, 0x13b6, 0x2000 },
- { 0x0700, 0x13b5, 0x0000 },
- { 0x0700, 0x13b7, 0x0000 },
- { 0x8700, 0x13ba, 0x2000 },
- { 0x0700, 0x13b9, 0x0000 },
- { 0x0700, 0x13bb, 0x0000 },
- { 0x8700, 0x13c4, 0x4000 },
- { 0x8700, 0x13c0, 0x3000 },
- { 0x8700, 0x13be, 0x2000 },
- { 0x0700, 0x13bd, 0x0000 },
- { 0x0700, 0x13bf, 0x0000 },
- { 0x8700, 0x13c2, 0x2000 },
- { 0x0700, 0x13c1, 0x0000 },
- { 0x0700, 0x13c3, 0x0000 },
- { 0x8700, 0x13c8, 0x3000 },
- { 0x8700, 0x13c6, 0x2000 },
- { 0x0700, 0x13c5, 0x0000 },
- { 0x0700, 0x13c7, 0x0000 },
- { 0x8700, 0x13ca, 0x2000 },
- { 0x0700, 0x13c9, 0x0000 },
- { 0x0700, 0x13cb, 0x0000 },
- { 0x8700, 0x1418, 0x7000 },
- { 0x8700, 0x13ec, 0x6000 },
- { 0x8700, 0x13dc, 0x5000 },
- { 0x8700, 0x13d4, 0x4000 },
- { 0x8700, 0x13d0, 0x3000 },
- { 0x8700, 0x13ce, 0x2000 },
- { 0x0700, 0x13cd, 0x0000 },
- { 0x0700, 0x13cf, 0x0000 },
- { 0x8700, 0x13d2, 0x2000 },
- { 0x0700, 0x13d1, 0x0000 },
- { 0x0700, 0x13d3, 0x0000 },
- { 0x8700, 0x13d8, 0x3000 },
- { 0x8700, 0x13d6, 0x2000 },
- { 0x0700, 0x13d5, 0x0000 },
- { 0x0700, 0x13d7, 0x0000 },
- { 0x8700, 0x13da, 0x2000 },
- { 0x0700, 0x13d9, 0x0000 },
- { 0x0700, 0x13db, 0x0000 },
- { 0x8700, 0x13e4, 0x4000 },
- { 0x8700, 0x13e0, 0x3000 },
- { 0x8700, 0x13de, 0x2000 },
- { 0x0700, 0x13dd, 0x0000 },
- { 0x0700, 0x13df, 0x0000 },
- { 0x8700, 0x13e2, 0x2000 },
- { 0x0700, 0x13e1, 0x0000 },
- { 0x0700, 0x13e3, 0x0000 },
- { 0x8700, 0x13e8, 0x3000 },
- { 0x8700, 0x13e6, 0x2000 },
- { 0x0700, 0x13e5, 0x0000 },
- { 0x0700, 0x13e7, 0x0000 },
- { 0x8700, 0x13ea, 0x2000 },
- { 0x0700, 0x13e9, 0x0000 },
- { 0x0700, 0x13eb, 0x0000 },
- { 0x8700, 0x1408, 0x5000 },
- { 0x8700, 0x13f4, 0x4000 },
- { 0x8700, 0x13f0, 0x3000 },
- { 0x8700, 0x13ee, 0x2000 },
- { 0x0700, 0x13ed, 0x0000 },
- { 0x0700, 0x13ef, 0x0000 },
- { 0x8700, 0x13f2, 0x2000 },
- { 0x0700, 0x13f1, 0x0000 },
- { 0x0700, 0x13f3, 0x0000 },
- { 0x8700, 0x1404, 0x3000 },
- { 0x8700, 0x1402, 0x2000 },
- { 0x0700, 0x1401, 0x0000 },
- { 0x0700, 0x1403, 0x0000 },
- { 0x8700, 0x1406, 0x2000 },
- { 0x0700, 0x1405, 0x0000 },
- { 0x0700, 0x1407, 0x0000 },
- { 0x8700, 0x1410, 0x4000 },
- { 0x8700, 0x140c, 0x3000 },
- { 0x8700, 0x140a, 0x2000 },
- { 0x0700, 0x1409, 0x0000 },
- { 0x0700, 0x140b, 0x0000 },
- { 0x8700, 0x140e, 0x2000 },
- { 0x0700, 0x140d, 0x0000 },
- { 0x0700, 0x140f, 0x0000 },
- { 0x8700, 0x1414, 0x3000 },
- { 0x8700, 0x1412, 0x2000 },
- { 0x0700, 0x1411, 0x0000 },
- { 0x0700, 0x1413, 0x0000 },
- { 0x8700, 0x1416, 0x2000 },
- { 0x0700, 0x1415, 0x0000 },
- { 0x0700, 0x1417, 0x0000 },
- { 0x8700, 0x1438, 0x6000 },
- { 0x8700, 0x1428, 0x5000 },
- { 0x8700, 0x1420, 0x4000 },
- { 0x8700, 0x141c, 0x3000 },
- { 0x8700, 0x141a, 0x2000 },
- { 0x0700, 0x1419, 0x0000 },
- { 0x0700, 0x141b, 0x0000 },
- { 0x8700, 0x141e, 0x2000 },
- { 0x0700, 0x141d, 0x0000 },
- { 0x0700, 0x141f, 0x0000 },
- { 0x8700, 0x1424, 0x3000 },
- { 0x8700, 0x1422, 0x2000 },
- { 0x0700, 0x1421, 0x0000 },
- { 0x0700, 0x1423, 0x0000 },
- { 0x8700, 0x1426, 0x2000 },
- { 0x0700, 0x1425, 0x0000 },
- { 0x0700, 0x1427, 0x0000 },
- { 0x8700, 0x1430, 0x4000 },
- { 0x8700, 0x142c, 0x3000 },
- { 0x8700, 0x142a, 0x2000 },
- { 0x0700, 0x1429, 0x0000 },
- { 0x0700, 0x142b, 0x0000 },
- { 0x8700, 0x142e, 0x2000 },
- { 0x0700, 0x142d, 0x0000 },
- { 0x0700, 0x142f, 0x0000 },
- { 0x8700, 0x1434, 0x3000 },
- { 0x8700, 0x1432, 0x2000 },
- { 0x0700, 0x1431, 0x0000 },
- { 0x0700, 0x1433, 0x0000 },
- { 0x8700, 0x1436, 0x2000 },
- { 0x0700, 0x1435, 0x0000 },
- { 0x0700, 0x1437, 0x0000 },
- { 0x8700, 0x1448, 0x5000 },
- { 0x8700, 0x1440, 0x4000 },
- { 0x8700, 0x143c, 0x3000 },
- { 0x8700, 0x143a, 0x2000 },
- { 0x0700, 0x1439, 0x0000 },
- { 0x0700, 0x143b, 0x0000 },
- { 0x8700, 0x143e, 0x2000 },
- { 0x0700, 0x143d, 0x0000 },
- { 0x0700, 0x143f, 0x0000 },
- { 0x8700, 0x1444, 0x3000 },
- { 0x8700, 0x1442, 0x2000 },
- { 0x0700, 0x1441, 0x0000 },
- { 0x0700, 0x1443, 0x0000 },
- { 0x8700, 0x1446, 0x2000 },
- { 0x0700, 0x1445, 0x0000 },
- { 0x0700, 0x1447, 0x0000 },
- { 0x8700, 0x1450, 0x4000 },
- { 0x8700, 0x144c, 0x3000 },
- { 0x8700, 0x144a, 0x2000 },
- { 0x0700, 0x1449, 0x0000 },
- { 0x0700, 0x144b, 0x0000 },
- { 0x8700, 0x144e, 0x2000 },
- { 0x0700, 0x144d, 0x0000 },
- { 0x0700, 0x144f, 0x0000 },
- { 0x8700, 0x1454, 0x3000 },
- { 0x8700, 0x1452, 0x2000 },
- { 0x0700, 0x1451, 0x0000 },
- { 0x0700, 0x1453, 0x0000 },
- { 0x8700, 0x1456, 0x2000 },
- { 0x0700, 0x1455, 0x0000 },
- { 0x0700, 0x1457, 0x0000 },
- { 0x8700, 0x14d8, 0x8000 },
- { 0x8700, 0x1498, 0x7000 },
- { 0x8700, 0x1478, 0x6000 },
- { 0x8700, 0x1468, 0x5000 },
- { 0x8700, 0x1460, 0x4000 },
- { 0x8700, 0x145c, 0x3000 },
- { 0x8700, 0x145a, 0x2000 },
- { 0x0700, 0x1459, 0x0000 },
- { 0x0700, 0x145b, 0x0000 },
- { 0x8700, 0x145e, 0x2000 },
- { 0x0700, 0x145d, 0x0000 },
- { 0x0700, 0x145f, 0x0000 },
- { 0x8700, 0x1464, 0x3000 },
- { 0x8700, 0x1462, 0x2000 },
- { 0x0700, 0x1461, 0x0000 },
- { 0x0700, 0x1463, 0x0000 },
- { 0x8700, 0x1466, 0x2000 },
- { 0x0700, 0x1465, 0x0000 },
- { 0x0700, 0x1467, 0x0000 },
- { 0x8700, 0x1470, 0x4000 },
- { 0x8700, 0x146c, 0x3000 },
- { 0x8700, 0x146a, 0x2000 },
- { 0x0700, 0x1469, 0x0000 },
- { 0x0700, 0x146b, 0x0000 },
- { 0x8700, 0x146e, 0x2000 },
- { 0x0700, 0x146d, 0x0000 },
- { 0x0700, 0x146f, 0x0000 },
- { 0x8700, 0x1474, 0x3000 },
- { 0x8700, 0x1472, 0x2000 },
- { 0x0700, 0x1471, 0x0000 },
- { 0x0700, 0x1473, 0x0000 },
- { 0x8700, 0x1476, 0x2000 },
- { 0x0700, 0x1475, 0x0000 },
- { 0x0700, 0x1477, 0x0000 },
- { 0x8700, 0x1488, 0x5000 },
- { 0x8700, 0x1480, 0x4000 },
- { 0x8700, 0x147c, 0x3000 },
- { 0x8700, 0x147a, 0x2000 },
- { 0x0700, 0x1479, 0x0000 },
- { 0x0700, 0x147b, 0x0000 },
- { 0x8700, 0x147e, 0x2000 },
- { 0x0700, 0x147d, 0x0000 },
- { 0x0700, 0x147f, 0x0000 },
- { 0x8700, 0x1484, 0x3000 },
- { 0x8700, 0x1482, 0x2000 },
- { 0x0700, 0x1481, 0x0000 },
- { 0x0700, 0x1483, 0x0000 },
- { 0x8700, 0x1486, 0x2000 },
- { 0x0700, 0x1485, 0x0000 },
- { 0x0700, 0x1487, 0x0000 },
- { 0x8700, 0x1490, 0x4000 },
- { 0x8700, 0x148c, 0x3000 },
- { 0x8700, 0x148a, 0x2000 },
- { 0x0700, 0x1489, 0x0000 },
- { 0x0700, 0x148b, 0x0000 },
- { 0x8700, 0x148e, 0x2000 },
- { 0x0700, 0x148d, 0x0000 },
- { 0x0700, 0x148f, 0x0000 },
- { 0x8700, 0x1494, 0x3000 },
- { 0x8700, 0x1492, 0x2000 },
- { 0x0700, 0x1491, 0x0000 },
- { 0x0700, 0x1493, 0x0000 },
- { 0x8700, 0x1496, 0x2000 },
- { 0x0700, 0x1495, 0x0000 },
- { 0x0700, 0x1497, 0x0000 },
- { 0x8700, 0x14b8, 0x6000 },
- { 0x8700, 0x14a8, 0x5000 },
- { 0x8700, 0x14a0, 0x4000 },
- { 0x8700, 0x149c, 0x3000 },
- { 0x8700, 0x149a, 0x2000 },
- { 0x0700, 0x1499, 0x0000 },
- { 0x0700, 0x149b, 0x0000 },
- { 0x8700, 0x149e, 0x2000 },
- { 0x0700, 0x149d, 0x0000 },
- { 0x0700, 0x149f, 0x0000 },
- { 0x8700, 0x14a4, 0x3000 },
- { 0x8700, 0x14a2, 0x2000 },
- { 0x0700, 0x14a1, 0x0000 },
- { 0x0700, 0x14a3, 0x0000 },
- { 0x8700, 0x14a6, 0x2000 },
- { 0x0700, 0x14a5, 0x0000 },
- { 0x0700, 0x14a7, 0x0000 },
- { 0x8700, 0x14b0, 0x4000 },
- { 0x8700, 0x14ac, 0x3000 },
- { 0x8700, 0x14aa, 0x2000 },
- { 0x0700, 0x14a9, 0x0000 },
- { 0x0700, 0x14ab, 0x0000 },
- { 0x8700, 0x14ae, 0x2000 },
- { 0x0700, 0x14ad, 0x0000 },
- { 0x0700, 0x14af, 0x0000 },
- { 0x8700, 0x14b4, 0x3000 },
- { 0x8700, 0x14b2, 0x2000 },
- { 0x0700, 0x14b1, 0x0000 },
- { 0x0700, 0x14b3, 0x0000 },
- { 0x8700, 0x14b6, 0x2000 },
- { 0x0700, 0x14b5, 0x0000 },
- { 0x0700, 0x14b7, 0x0000 },
- { 0x8700, 0x14c8, 0x5000 },
- { 0x8700, 0x14c0, 0x4000 },
- { 0x8700, 0x14bc, 0x3000 },
- { 0x8700, 0x14ba, 0x2000 },
- { 0x0700, 0x14b9, 0x0000 },
- { 0x0700, 0x14bb, 0x0000 },
- { 0x8700, 0x14be, 0x2000 },
- { 0x0700, 0x14bd, 0x0000 },
- { 0x0700, 0x14bf, 0x0000 },
- { 0x8700, 0x14c4, 0x3000 },
- { 0x8700, 0x14c2, 0x2000 },
- { 0x0700, 0x14c1, 0x0000 },
- { 0x0700, 0x14c3, 0x0000 },
- { 0x8700, 0x14c6, 0x2000 },
- { 0x0700, 0x14c5, 0x0000 },
- { 0x0700, 0x14c7, 0x0000 },
- { 0x8700, 0x14d0, 0x4000 },
- { 0x8700, 0x14cc, 0x3000 },
- { 0x8700, 0x14ca, 0x2000 },
- { 0x0700, 0x14c9, 0x0000 },
- { 0x0700, 0x14cb, 0x0000 },
- { 0x8700, 0x14ce, 0x2000 },
- { 0x0700, 0x14cd, 0x0000 },
- { 0x0700, 0x14cf, 0x0000 },
- { 0x8700, 0x14d4, 0x3000 },
- { 0x8700, 0x14d2, 0x2000 },
- { 0x0700, 0x14d1, 0x0000 },
- { 0x0700, 0x14d3, 0x0000 },
- { 0x8700, 0x14d6, 0x2000 },
- { 0x0700, 0x14d5, 0x0000 },
- { 0x0700, 0x14d7, 0x0000 },
- { 0x8700, 0x1518, 0x7000 },
- { 0x8700, 0x14f8, 0x6000 },
- { 0x8700, 0x14e8, 0x5000 },
- { 0x8700, 0x14e0, 0x4000 },
- { 0x8700, 0x14dc, 0x3000 },
- { 0x8700, 0x14da, 0x2000 },
- { 0x0700, 0x14d9, 0x0000 },
- { 0x0700, 0x14db, 0x0000 },
- { 0x8700, 0x14de, 0x2000 },
- { 0x0700, 0x14dd, 0x0000 },
- { 0x0700, 0x14df, 0x0000 },
- { 0x8700, 0x14e4, 0x3000 },
- { 0x8700, 0x14e2, 0x2000 },
- { 0x0700, 0x14e1, 0x0000 },
- { 0x0700, 0x14e3, 0x0000 },
- { 0x8700, 0x14e6, 0x2000 },
- { 0x0700, 0x14e5, 0x0000 },
- { 0x0700, 0x14e7, 0x0000 },
- { 0x8700, 0x14f0, 0x4000 },
- { 0x8700, 0x14ec, 0x3000 },
- { 0x8700, 0x14ea, 0x2000 },
- { 0x0700, 0x14e9, 0x0000 },
- { 0x0700, 0x14eb, 0x0000 },
- { 0x8700, 0x14ee, 0x2000 },
- { 0x0700, 0x14ed, 0x0000 },
- { 0x0700, 0x14ef, 0x0000 },
- { 0x8700, 0x14f4, 0x3000 },
- { 0x8700, 0x14f2, 0x2000 },
- { 0x0700, 0x14f1, 0x0000 },
- { 0x0700, 0x14f3, 0x0000 },
- { 0x8700, 0x14f6, 0x2000 },
- { 0x0700, 0x14f5, 0x0000 },
- { 0x0700, 0x14f7, 0x0000 },
- { 0x8700, 0x1508, 0x5000 },
- { 0x8700, 0x1500, 0x4000 },
- { 0x8700, 0x14fc, 0x3000 },
- { 0x8700, 0x14fa, 0x2000 },
- { 0x0700, 0x14f9, 0x0000 },
- { 0x0700, 0x14fb, 0x0000 },
- { 0x8700, 0x14fe, 0x2000 },
- { 0x0700, 0x14fd, 0x0000 },
- { 0x0700, 0x14ff, 0x0000 },
- { 0x8700, 0x1504, 0x3000 },
- { 0x8700, 0x1502, 0x2000 },
- { 0x0700, 0x1501, 0x0000 },
- { 0x0700, 0x1503, 0x0000 },
- { 0x8700, 0x1506, 0x2000 },
- { 0x0700, 0x1505, 0x0000 },
- { 0x0700, 0x1507, 0x0000 },
- { 0x8700, 0x1510, 0x4000 },
- { 0x8700, 0x150c, 0x3000 },
- { 0x8700, 0x150a, 0x2000 },
- { 0x0700, 0x1509, 0x0000 },
- { 0x0700, 0x150b, 0x0000 },
- { 0x8700, 0x150e, 0x2000 },
- { 0x0700, 0x150d, 0x0000 },
- { 0x0700, 0x150f, 0x0000 },
- { 0x8700, 0x1514, 0x3000 },
- { 0x8700, 0x1512, 0x2000 },
- { 0x0700, 0x1511, 0x0000 },
- { 0x0700, 0x1513, 0x0000 },
- { 0x8700, 0x1516, 0x2000 },
- { 0x0700, 0x1515, 0x0000 },
- { 0x0700, 0x1517, 0x0000 },
- { 0x8700, 0x1538, 0x6000 },
- { 0x8700, 0x1528, 0x5000 },
- { 0x8700, 0x1520, 0x4000 },
- { 0x8700, 0x151c, 0x3000 },
- { 0x8700, 0x151a, 0x2000 },
- { 0x0700, 0x1519, 0x0000 },
- { 0x0700, 0x151b, 0x0000 },
- { 0x8700, 0x151e, 0x2000 },
- { 0x0700, 0x151d, 0x0000 },
- { 0x0700, 0x151f, 0x0000 },
- { 0x8700, 0x1524, 0x3000 },
- { 0x8700, 0x1522, 0x2000 },
- { 0x0700, 0x1521, 0x0000 },
- { 0x0700, 0x1523, 0x0000 },
- { 0x8700, 0x1526, 0x2000 },
- { 0x0700, 0x1525, 0x0000 },
- { 0x0700, 0x1527, 0x0000 },
- { 0x8700, 0x1530, 0x4000 },
- { 0x8700, 0x152c, 0x3000 },
- { 0x8700, 0x152a, 0x2000 },
- { 0x0700, 0x1529, 0x0000 },
- { 0x0700, 0x152b, 0x0000 },
- { 0x8700, 0x152e, 0x2000 },
- { 0x0700, 0x152d, 0x0000 },
- { 0x0700, 0x152f, 0x0000 },
- { 0x8700, 0x1534, 0x3000 },
- { 0x8700, 0x1532, 0x2000 },
- { 0x0700, 0x1531, 0x0000 },
- { 0x0700, 0x1533, 0x0000 },
- { 0x8700, 0x1536, 0x2000 },
- { 0x0700, 0x1535, 0x0000 },
- { 0x0700, 0x1537, 0x0000 },
- { 0x8700, 0x1548, 0x5000 },
- { 0x8700, 0x1540, 0x4000 },
- { 0x8700, 0x153c, 0x3000 },
- { 0x8700, 0x153a, 0x2000 },
- { 0x0700, 0x1539, 0x0000 },
- { 0x0700, 0x153b, 0x0000 },
- { 0x8700, 0x153e, 0x2000 },
- { 0x0700, 0x153d, 0x0000 },
- { 0x0700, 0x153f, 0x0000 },
- { 0x8700, 0x1544, 0x3000 },
- { 0x8700, 0x1542, 0x2000 },
- { 0x0700, 0x1541, 0x0000 },
- { 0x0700, 0x1543, 0x0000 },
- { 0x8700, 0x1546, 0x2000 },
- { 0x0700, 0x1545, 0x0000 },
- { 0x0700, 0x1547, 0x0000 },
- { 0x8700, 0x1550, 0x4000 },
- { 0x8700, 0x154c, 0x3000 },
- { 0x8700, 0x154a, 0x2000 },
- { 0x0700, 0x1549, 0x0000 },
- { 0x0700, 0x154b, 0x0000 },
- { 0x8700, 0x154e, 0x2000 },
- { 0x0700, 0x154d, 0x0000 },
- { 0x0700, 0x154f, 0x0000 },
- { 0x8700, 0x1554, 0x3000 },
- { 0x8700, 0x1552, 0x2000 },
- { 0x0700, 0x1551, 0x0000 },
- { 0x0700, 0x1553, 0x0000 },
- { 0x8700, 0x1556, 0x2000 },
- { 0x0700, 0x1555, 0x0000 },
- { 0x0700, 0x1557, 0x0000 },
- { 0x9900, 0x22ae, 0xc000 },
- { 0x8900, 0x1e24, 0xb001 },
- { 0x8700, 0x17a2, 0xa000 },
- { 0x8700, 0x1658, 0x9000 },
- { 0x8700, 0x15d8, 0x8000 },
- { 0x8700, 0x1598, 0x7000 },
- { 0x8700, 0x1578, 0x6000 },
- { 0x8700, 0x1568, 0x5000 },
- { 0x8700, 0x1560, 0x4000 },
- { 0x8700, 0x155c, 0x3000 },
- { 0x8700, 0x155a, 0x2000 },
- { 0x0700, 0x1559, 0x0000 },
- { 0x0700, 0x155b, 0x0000 },
- { 0x8700, 0x155e, 0x2000 },
- { 0x0700, 0x155d, 0x0000 },
- { 0x0700, 0x155f, 0x0000 },
- { 0x8700, 0x1564, 0x3000 },
- { 0x8700, 0x1562, 0x2000 },
- { 0x0700, 0x1561, 0x0000 },
- { 0x0700, 0x1563, 0x0000 },
- { 0x8700, 0x1566, 0x2000 },
- { 0x0700, 0x1565, 0x0000 },
- { 0x0700, 0x1567, 0x0000 },
- { 0x8700, 0x1570, 0x4000 },
- { 0x8700, 0x156c, 0x3000 },
- { 0x8700, 0x156a, 0x2000 },
- { 0x0700, 0x1569, 0x0000 },
- { 0x0700, 0x156b, 0x0000 },
- { 0x8700, 0x156e, 0x2000 },
- { 0x0700, 0x156d, 0x0000 },
- { 0x0700, 0x156f, 0x0000 },
- { 0x8700, 0x1574, 0x3000 },
- { 0x8700, 0x1572, 0x2000 },
- { 0x0700, 0x1571, 0x0000 },
- { 0x0700, 0x1573, 0x0000 },
- { 0x8700, 0x1576, 0x2000 },
- { 0x0700, 0x1575, 0x0000 },
- { 0x0700, 0x1577, 0x0000 },
- { 0x8700, 0x1588, 0x5000 },
- { 0x8700, 0x1580, 0x4000 },
- { 0x8700, 0x157c, 0x3000 },
- { 0x8700, 0x157a, 0x2000 },
- { 0x0700, 0x1579, 0x0000 },
- { 0x0700, 0x157b, 0x0000 },
- { 0x8700, 0x157e, 0x2000 },
- { 0x0700, 0x157d, 0x0000 },
- { 0x0700, 0x157f, 0x0000 },
- { 0x8700, 0x1584, 0x3000 },
- { 0x8700, 0x1582, 0x2000 },
- { 0x0700, 0x1581, 0x0000 },
- { 0x0700, 0x1583, 0x0000 },
- { 0x8700, 0x1586, 0x2000 },
- { 0x0700, 0x1585, 0x0000 },
- { 0x0700, 0x1587, 0x0000 },
- { 0x8700, 0x1590, 0x4000 },
- { 0x8700, 0x158c, 0x3000 },
- { 0x8700, 0x158a, 0x2000 },
- { 0x0700, 0x1589, 0x0000 },
- { 0x0700, 0x158b, 0x0000 },
- { 0x8700, 0x158e, 0x2000 },
- { 0x0700, 0x158d, 0x0000 },
- { 0x0700, 0x158f, 0x0000 },
- { 0x8700, 0x1594, 0x3000 },
- { 0x8700, 0x1592, 0x2000 },
- { 0x0700, 0x1591, 0x0000 },
- { 0x0700, 0x1593, 0x0000 },
- { 0x8700, 0x1596, 0x2000 },
- { 0x0700, 0x1595, 0x0000 },
- { 0x0700, 0x1597, 0x0000 },
- { 0x8700, 0x15b8, 0x6000 },
- { 0x8700, 0x15a8, 0x5000 },
- { 0x8700, 0x15a0, 0x4000 },
- { 0x8700, 0x159c, 0x3000 },
- { 0x8700, 0x159a, 0x2000 },
- { 0x0700, 0x1599, 0x0000 },
- { 0x0700, 0x159b, 0x0000 },
- { 0x8700, 0x159e, 0x2000 },
- { 0x0700, 0x159d, 0x0000 },
- { 0x0700, 0x159f, 0x0000 },
- { 0x8700, 0x15a4, 0x3000 },
- { 0x8700, 0x15a2, 0x2000 },
- { 0x0700, 0x15a1, 0x0000 },
- { 0x0700, 0x15a3, 0x0000 },
- { 0x8700, 0x15a6, 0x2000 },
- { 0x0700, 0x15a5, 0x0000 },
- { 0x0700, 0x15a7, 0x0000 },
- { 0x8700, 0x15b0, 0x4000 },
- { 0x8700, 0x15ac, 0x3000 },
- { 0x8700, 0x15aa, 0x2000 },
- { 0x0700, 0x15a9, 0x0000 },
- { 0x0700, 0x15ab, 0x0000 },
- { 0x8700, 0x15ae, 0x2000 },
- { 0x0700, 0x15ad, 0x0000 },
- { 0x0700, 0x15af, 0x0000 },
- { 0x8700, 0x15b4, 0x3000 },
- { 0x8700, 0x15b2, 0x2000 },
- { 0x0700, 0x15b1, 0x0000 },
- { 0x0700, 0x15b3, 0x0000 },
- { 0x8700, 0x15b6, 0x2000 },
- { 0x0700, 0x15b5, 0x0000 },
- { 0x0700, 0x15b7, 0x0000 },
- { 0x8700, 0x15c8, 0x5000 },
- { 0x8700, 0x15c0, 0x4000 },
- { 0x8700, 0x15bc, 0x3000 },
- { 0x8700, 0x15ba, 0x2000 },
- { 0x0700, 0x15b9, 0x0000 },
- { 0x0700, 0x15bb, 0x0000 },
- { 0x8700, 0x15be, 0x2000 },
- { 0x0700, 0x15bd, 0x0000 },
- { 0x0700, 0x15bf, 0x0000 },
- { 0x8700, 0x15c4, 0x3000 },
- { 0x8700, 0x15c2, 0x2000 },
- { 0x0700, 0x15c1, 0x0000 },
- { 0x0700, 0x15c3, 0x0000 },
- { 0x8700, 0x15c6, 0x2000 },
- { 0x0700, 0x15c5, 0x0000 },
- { 0x0700, 0x15c7, 0x0000 },
- { 0x8700, 0x15d0, 0x4000 },
- { 0x8700, 0x15cc, 0x3000 },
- { 0x8700, 0x15ca, 0x2000 },
- { 0x0700, 0x15c9, 0x0000 },
- { 0x0700, 0x15cb, 0x0000 },
- { 0x8700, 0x15ce, 0x2000 },
- { 0x0700, 0x15cd, 0x0000 },
- { 0x0700, 0x15cf, 0x0000 },
- { 0x8700, 0x15d4, 0x3000 },
- { 0x8700, 0x15d2, 0x2000 },
- { 0x0700, 0x15d1, 0x0000 },
- { 0x0700, 0x15d3, 0x0000 },
- { 0x8700, 0x15d6, 0x2000 },
- { 0x0700, 0x15d5, 0x0000 },
- { 0x0700, 0x15d7, 0x0000 },
- { 0x8700, 0x1618, 0x7000 },
- { 0x8700, 0x15f8, 0x6000 },
- { 0x8700, 0x15e8, 0x5000 },
- { 0x8700, 0x15e0, 0x4000 },
- { 0x8700, 0x15dc, 0x3000 },
- { 0x8700, 0x15da, 0x2000 },
- { 0x0700, 0x15d9, 0x0000 },
- { 0x0700, 0x15db, 0x0000 },
- { 0x8700, 0x15de, 0x2000 },
- { 0x0700, 0x15dd, 0x0000 },
- { 0x0700, 0x15df, 0x0000 },
- { 0x8700, 0x15e4, 0x3000 },
- { 0x8700, 0x15e2, 0x2000 },
- { 0x0700, 0x15e1, 0x0000 },
- { 0x0700, 0x15e3, 0x0000 },
- { 0x8700, 0x15e6, 0x2000 },
- { 0x0700, 0x15e5, 0x0000 },
- { 0x0700, 0x15e7, 0x0000 },
- { 0x8700, 0x15f0, 0x4000 },
- { 0x8700, 0x15ec, 0x3000 },
- { 0x8700, 0x15ea, 0x2000 },
- { 0x0700, 0x15e9, 0x0000 },
- { 0x0700, 0x15eb, 0x0000 },
- { 0x8700, 0x15ee, 0x2000 },
- { 0x0700, 0x15ed, 0x0000 },
- { 0x0700, 0x15ef, 0x0000 },
- { 0x8700, 0x15f4, 0x3000 },
- { 0x8700, 0x15f2, 0x2000 },
- { 0x0700, 0x15f1, 0x0000 },
- { 0x0700, 0x15f3, 0x0000 },
- { 0x8700, 0x15f6, 0x2000 },
- { 0x0700, 0x15f5, 0x0000 },
- { 0x0700, 0x15f7, 0x0000 },
- { 0x8700, 0x1608, 0x5000 },
- { 0x8700, 0x1600, 0x4000 },
- { 0x8700, 0x15fc, 0x3000 },
- { 0x8700, 0x15fa, 0x2000 },
- { 0x0700, 0x15f9, 0x0000 },
- { 0x0700, 0x15fb, 0x0000 },
- { 0x8700, 0x15fe, 0x2000 },
- { 0x0700, 0x15fd, 0x0000 },
- { 0x0700, 0x15ff, 0x0000 },
- { 0x8700, 0x1604, 0x3000 },
- { 0x8700, 0x1602, 0x2000 },
- { 0x0700, 0x1601, 0x0000 },
- { 0x0700, 0x1603, 0x0000 },
- { 0x8700, 0x1606, 0x2000 },
- { 0x0700, 0x1605, 0x0000 },
- { 0x0700, 0x1607, 0x0000 },
- { 0x8700, 0x1610, 0x4000 },
- { 0x8700, 0x160c, 0x3000 },
- { 0x8700, 0x160a, 0x2000 },
- { 0x0700, 0x1609, 0x0000 },
- { 0x0700, 0x160b, 0x0000 },
- { 0x8700, 0x160e, 0x2000 },
- { 0x0700, 0x160d, 0x0000 },
- { 0x0700, 0x160f, 0x0000 },
- { 0x8700, 0x1614, 0x3000 },
- { 0x8700, 0x1612, 0x2000 },
- { 0x0700, 0x1611, 0x0000 },
- { 0x0700, 0x1613, 0x0000 },
- { 0x8700, 0x1616, 0x2000 },
- { 0x0700, 0x1615, 0x0000 },
- { 0x0700, 0x1617, 0x0000 },
- { 0x8700, 0x1638, 0x6000 },
- { 0x8700, 0x1628, 0x5000 },
- { 0x8700, 0x1620, 0x4000 },
- { 0x8700, 0x161c, 0x3000 },
- { 0x8700, 0x161a, 0x2000 },
- { 0x0700, 0x1619, 0x0000 },
- { 0x0700, 0x161b, 0x0000 },
- { 0x8700, 0x161e, 0x2000 },
- { 0x0700, 0x161d, 0x0000 },
- { 0x0700, 0x161f, 0x0000 },
- { 0x8700, 0x1624, 0x3000 },
- { 0x8700, 0x1622, 0x2000 },
- { 0x0700, 0x1621, 0x0000 },
- { 0x0700, 0x1623, 0x0000 },
- { 0x8700, 0x1626, 0x2000 },
- { 0x0700, 0x1625, 0x0000 },
- { 0x0700, 0x1627, 0x0000 },
- { 0x8700, 0x1630, 0x4000 },
- { 0x8700, 0x162c, 0x3000 },
- { 0x8700, 0x162a, 0x2000 },
- { 0x0700, 0x1629, 0x0000 },
- { 0x0700, 0x162b, 0x0000 },
- { 0x8700, 0x162e, 0x2000 },
- { 0x0700, 0x162d, 0x0000 },
- { 0x0700, 0x162f, 0x0000 },
- { 0x8700, 0x1634, 0x3000 },
- { 0x8700, 0x1632, 0x2000 },
- { 0x0700, 0x1631, 0x0000 },
- { 0x0700, 0x1633, 0x0000 },
- { 0x8700, 0x1636, 0x2000 },
- { 0x0700, 0x1635, 0x0000 },
- { 0x0700, 0x1637, 0x0000 },
- { 0x8700, 0x1648, 0x5000 },
- { 0x8700, 0x1640, 0x4000 },
- { 0x8700, 0x163c, 0x3000 },
- { 0x8700, 0x163a, 0x2000 },
- { 0x0700, 0x1639, 0x0000 },
- { 0x0700, 0x163b, 0x0000 },
- { 0x8700, 0x163e, 0x2000 },
- { 0x0700, 0x163d, 0x0000 },
- { 0x0700, 0x163f, 0x0000 },
- { 0x8700, 0x1644, 0x3000 },
- { 0x8700, 0x1642, 0x2000 },
- { 0x0700, 0x1641, 0x0000 },
- { 0x0700, 0x1643, 0x0000 },
- { 0x8700, 0x1646, 0x2000 },
- { 0x0700, 0x1645, 0x0000 },
- { 0x0700, 0x1647, 0x0000 },
- { 0x8700, 0x1650, 0x4000 },
- { 0x8700, 0x164c, 0x3000 },
- { 0x8700, 0x164a, 0x2000 },
- { 0x0700, 0x1649, 0x0000 },
- { 0x0700, 0x164b, 0x0000 },
- { 0x8700, 0x164e, 0x2000 },
- { 0x0700, 0x164d, 0x0000 },
- { 0x0700, 0x164f, 0x0000 },
- { 0x8700, 0x1654, 0x3000 },
- { 0x8700, 0x1652, 0x2000 },
- { 0x0700, 0x1651, 0x0000 },
- { 0x0700, 0x1653, 0x0000 },
- { 0x8700, 0x1656, 0x2000 },
- { 0x0700, 0x1655, 0x0000 },
- { 0x0700, 0x1657, 0x0000 },
- { 0x8700, 0x16e4, 0x8000 },
- { 0x8700, 0x16a4, 0x7000 },
- { 0x8700, 0x1681, 0x6000 },
- { 0x8700, 0x1668, 0x5000 },
- { 0x8700, 0x1660, 0x4000 },
- { 0x8700, 0x165c, 0x3000 },
- { 0x8700, 0x165a, 0x2000 },
- { 0x0700, 0x1659, 0x0000 },
- { 0x0700, 0x165b, 0x0000 },
- { 0x8700, 0x165e, 0x2000 },
- { 0x0700, 0x165d, 0x0000 },
- { 0x0700, 0x165f, 0x0000 },
- { 0x8700, 0x1664, 0x3000 },
- { 0x8700, 0x1662, 0x2000 },
- { 0x0700, 0x1661, 0x0000 },
- { 0x0700, 0x1663, 0x0000 },
- { 0x8700, 0x1666, 0x2000 },
- { 0x0700, 0x1665, 0x0000 },
- { 0x0700, 0x1667, 0x0000 },
- { 0x8700, 0x1670, 0x4000 },
- { 0x8700, 0x166c, 0x3000 },
- { 0x8700, 0x166a, 0x2000 },
- { 0x0700, 0x1669, 0x0000 },
- { 0x0700, 0x166b, 0x0000 },
- { 0x9500, 0x166e, 0x2000 },
- { 0x1500, 0x166d, 0x0000 },
- { 0x0700, 0x166f, 0x0000 },
- { 0x8700, 0x1674, 0x3000 },
- { 0x8700, 0x1672, 0x2000 },
- { 0x0700, 0x1671, 0x0000 },
- { 0x0700, 0x1673, 0x0000 },
- { 0x8700, 0x1676, 0x2000 },
- { 0x0700, 0x1675, 0x0000 },
- { 0x1d00, 0x1680, 0x0000 },
- { 0x8700, 0x1691, 0x5000 },
- { 0x8700, 0x1689, 0x4000 },
- { 0x8700, 0x1685, 0x3000 },
- { 0x8700, 0x1683, 0x2000 },
- { 0x0700, 0x1682, 0x0000 },
- { 0x0700, 0x1684, 0x0000 },
- { 0x8700, 0x1687, 0x2000 },
- { 0x0700, 0x1686, 0x0000 },
- { 0x0700, 0x1688, 0x0000 },
- { 0x8700, 0x168d, 0x3000 },
- { 0x8700, 0x168b, 0x2000 },
- { 0x0700, 0x168a, 0x0000 },
- { 0x0700, 0x168c, 0x0000 },
- { 0x8700, 0x168f, 0x2000 },
- { 0x0700, 0x168e, 0x0000 },
- { 0x0700, 0x1690, 0x0000 },
- { 0x8700, 0x1699, 0x4000 },
- { 0x8700, 0x1695, 0x3000 },
- { 0x8700, 0x1693, 0x2000 },
- { 0x0700, 0x1692, 0x0000 },
- { 0x0700, 0x1694, 0x0000 },
- { 0x8700, 0x1697, 0x2000 },
- { 0x0700, 0x1696, 0x0000 },
- { 0x0700, 0x1698, 0x0000 },
- { 0x8700, 0x16a0, 0x3000 },
- { 0x9600, 0x169b, 0x2000 },
- { 0x0700, 0x169a, 0x0000 },
- { 0x1200, 0x169c, 0x0000 },
- { 0x8700, 0x16a2, 0x2000 },
- { 0x0700, 0x16a1, 0x0000 },
- { 0x0700, 0x16a3, 0x0000 },
- { 0x8700, 0x16c4, 0x6000 },
- { 0x8700, 0x16b4, 0x5000 },
- { 0x8700, 0x16ac, 0x4000 },
- { 0x8700, 0x16a8, 0x3000 },
- { 0x8700, 0x16a6, 0x2000 },
- { 0x0700, 0x16a5, 0x0000 },
- { 0x0700, 0x16a7, 0x0000 },
- { 0x8700, 0x16aa, 0x2000 },
- { 0x0700, 0x16a9, 0x0000 },
- { 0x0700, 0x16ab, 0x0000 },
- { 0x8700, 0x16b0, 0x3000 },
- { 0x8700, 0x16ae, 0x2000 },
- { 0x0700, 0x16ad, 0x0000 },
- { 0x0700, 0x16af, 0x0000 },
- { 0x8700, 0x16b2, 0x2000 },
- { 0x0700, 0x16b1, 0x0000 },
- { 0x0700, 0x16b3, 0x0000 },
- { 0x8700, 0x16bc, 0x4000 },
- { 0x8700, 0x16b8, 0x3000 },
- { 0x8700, 0x16b6, 0x2000 },
- { 0x0700, 0x16b5, 0x0000 },
- { 0x0700, 0x16b7, 0x0000 },
- { 0x8700, 0x16ba, 0x2000 },
- { 0x0700, 0x16b9, 0x0000 },
- { 0x0700, 0x16bb, 0x0000 },
- { 0x8700, 0x16c0, 0x3000 },
- { 0x8700, 0x16be, 0x2000 },
- { 0x0700, 0x16bd, 0x0000 },
- { 0x0700, 0x16bf, 0x0000 },
- { 0x8700, 0x16c2, 0x2000 },
- { 0x0700, 0x16c1, 0x0000 },
- { 0x0700, 0x16c3, 0x0000 },
- { 0x8700, 0x16d4, 0x5000 },
- { 0x8700, 0x16cc, 0x4000 },
- { 0x8700, 0x16c8, 0x3000 },
- { 0x8700, 0x16c6, 0x2000 },
- { 0x0700, 0x16c5, 0x0000 },
- { 0x0700, 0x16c7, 0x0000 },
- { 0x8700, 0x16ca, 0x2000 },
- { 0x0700, 0x16c9, 0x0000 },
- { 0x0700, 0x16cb, 0x0000 },
- { 0x8700, 0x16d0, 0x3000 },
- { 0x8700, 0x16ce, 0x2000 },
- { 0x0700, 0x16cd, 0x0000 },
- { 0x0700, 0x16cf, 0x0000 },
- { 0x8700, 0x16d2, 0x2000 },
- { 0x0700, 0x16d1, 0x0000 },
- { 0x0700, 0x16d3, 0x0000 },
- { 0x8700, 0x16dc, 0x4000 },
- { 0x8700, 0x16d8, 0x3000 },
- { 0x8700, 0x16d6, 0x2000 },
- { 0x0700, 0x16d5, 0x0000 },
- { 0x0700, 0x16d7, 0x0000 },
- { 0x8700, 0x16da, 0x2000 },
- { 0x0700, 0x16d9, 0x0000 },
- { 0x0700, 0x16db, 0x0000 },
- { 0x8700, 0x16e0, 0x3000 },
- { 0x8700, 0x16de, 0x2000 },
- { 0x0700, 0x16dd, 0x0000 },
- { 0x0700, 0x16df, 0x0000 },
- { 0x8700, 0x16e2, 0x2000 },
- { 0x0700, 0x16e1, 0x0000 },
- { 0x0700, 0x16e3, 0x0000 },
- { 0x8700, 0x1748, 0x7000 },
- { 0x8c00, 0x1714, 0x6000 },
- { 0x8700, 0x1703, 0x5000 },
- { 0x9500, 0x16ec, 0x4000 },
- { 0x8700, 0x16e8, 0x3000 },
- { 0x8700, 0x16e6, 0x2000 },
- { 0x0700, 0x16e5, 0x0000 },
- { 0x0700, 0x16e7, 0x0000 },
- { 0x8700, 0x16ea, 0x2000 },
- { 0x0700, 0x16e9, 0x0000 },
- { 0x1500, 0x16eb, 0x0000 },
- { 0x8e00, 0x16f0, 0x3000 },
- { 0x8e00, 0x16ee, 0x2000 },
- { 0x1500, 0x16ed, 0x0000 },
- { 0x0e00, 0x16ef, 0x0000 },
- { 0x8700, 0x1701, 0x2000 },
- { 0x0700, 0x1700, 0x0000 },
- { 0x0700, 0x1702, 0x0000 },
- { 0x8700, 0x170b, 0x4000 },
- { 0x8700, 0x1707, 0x3000 },
- { 0x8700, 0x1705, 0x2000 },
- { 0x0700, 0x1704, 0x0000 },
- { 0x0700, 0x1706, 0x0000 },
- { 0x8700, 0x1709, 0x2000 },
- { 0x0700, 0x1708, 0x0000 },
- { 0x0700, 0x170a, 0x0000 },
- { 0x8700, 0x1710, 0x3000 },
- { 0x8700, 0x170e, 0x2000 },
- { 0x0700, 0x170c, 0x0000 },
- { 0x0700, 0x170f, 0x0000 },
- { 0x8c00, 0x1712, 0x2000 },
- { 0x0700, 0x1711, 0x0000 },
- { 0x0c00, 0x1713, 0x0000 },
- { 0x8700, 0x172f, 0x5000 },
- { 0x8700, 0x1727, 0x4000 },
- { 0x8700, 0x1723, 0x3000 },
- { 0x8700, 0x1721, 0x2000 },
- { 0x0700, 0x1720, 0x0000 },
- { 0x0700, 0x1722, 0x0000 },
- { 0x8700, 0x1725, 0x2000 },
- { 0x0700, 0x1724, 0x0000 },
- { 0x0700, 0x1726, 0x0000 },
- { 0x8700, 0x172b, 0x3000 },
- { 0x8700, 0x1729, 0x2000 },
- { 0x0700, 0x1728, 0x0000 },
- { 0x0700, 0x172a, 0x0000 },
- { 0x8700, 0x172d, 0x2000 },
- { 0x0700, 0x172c, 0x0000 },
- { 0x0700, 0x172e, 0x0000 },
- { 0x8700, 0x1740, 0x4000 },
- { 0x8c00, 0x1733, 0x3000 },
- { 0x8700, 0x1731, 0x2000 },
- { 0x0700, 0x1730, 0x0000 },
- { 0x0c00, 0x1732, 0x0000 },
- { 0x9500, 0x1735, 0x2000 },
- { 0x0c00, 0x1734, 0x0000 },
- { 0x1500, 0x1736, 0x0000 },
- { 0x8700, 0x1744, 0x3000 },
- { 0x8700, 0x1742, 0x2000 },
- { 0x0700, 0x1741, 0x0000 },
- { 0x0700, 0x1743, 0x0000 },
- { 0x8700, 0x1746, 0x2000 },
- { 0x0700, 0x1745, 0x0000 },
- { 0x0700, 0x1747, 0x0000 },
- { 0x8700, 0x1782, 0x6000 },
- { 0x8700, 0x1764, 0x5000 },
- { 0x8700, 0x1750, 0x4000 },
- { 0x8700, 0x174c, 0x3000 },
- { 0x8700, 0x174a, 0x2000 },
- { 0x0700, 0x1749, 0x0000 },
- { 0x0700, 0x174b, 0x0000 },
- { 0x8700, 0x174e, 0x2000 },
- { 0x0700, 0x174d, 0x0000 },
- { 0x0700, 0x174f, 0x0000 },
- { 0x8700, 0x1760, 0x3000 },
- { 0x8c00, 0x1752, 0x2000 },
- { 0x0700, 0x1751, 0x0000 },
- { 0x0c00, 0x1753, 0x0000 },
- { 0x8700, 0x1762, 0x2000 },
- { 0x0700, 0x1761, 0x0000 },
- { 0x0700, 0x1763, 0x0000 },
- { 0x8700, 0x176c, 0x4000 },
- { 0x8700, 0x1768, 0x3000 },
- { 0x8700, 0x1766, 0x2000 },
- { 0x0700, 0x1765, 0x0000 },
- { 0x0700, 0x1767, 0x0000 },
- { 0x8700, 0x176a, 0x2000 },
- { 0x0700, 0x1769, 0x0000 },
- { 0x0700, 0x176b, 0x0000 },
- { 0x8c00, 0x1772, 0x3000 },
- { 0x8700, 0x176f, 0x2000 },
- { 0x0700, 0x176e, 0x0000 },
- { 0x0700, 0x1770, 0x0000 },
- { 0x8700, 0x1780, 0x2000 },
- { 0x0c00, 0x1773, 0x0000 },
- { 0x0700, 0x1781, 0x0000 },
- { 0x8700, 0x1792, 0x5000 },
- { 0x8700, 0x178a, 0x4000 },
- { 0x8700, 0x1786, 0x3000 },
- { 0x8700, 0x1784, 0x2000 },
- { 0x0700, 0x1783, 0x0000 },
- { 0x0700, 0x1785, 0x0000 },
- { 0x8700, 0x1788, 0x2000 },
- { 0x0700, 0x1787, 0x0000 },
- { 0x0700, 0x1789, 0x0000 },
- { 0x8700, 0x178e, 0x3000 },
- { 0x8700, 0x178c, 0x2000 },
- { 0x0700, 0x178b, 0x0000 },
- { 0x0700, 0x178d, 0x0000 },
- { 0x8700, 0x1790, 0x2000 },
- { 0x0700, 0x178f, 0x0000 },
- { 0x0700, 0x1791, 0x0000 },
- { 0x8700, 0x179a, 0x4000 },
- { 0x8700, 0x1796, 0x3000 },
- { 0x8700, 0x1794, 0x2000 },
- { 0x0700, 0x1793, 0x0000 },
- { 0x0700, 0x1795, 0x0000 },
- { 0x8700, 0x1798, 0x2000 },
- { 0x0700, 0x1797, 0x0000 },
- { 0x0700, 0x1799, 0x0000 },
- { 0x8700, 0x179e, 0x3000 },
- { 0x8700, 0x179c, 0x2000 },
- { 0x0700, 0x179b, 0x0000 },
- { 0x0700, 0x179d, 0x0000 },
- { 0x8700, 0x17a0, 0x2000 },
- { 0x0700, 0x179f, 0x0000 },
- { 0x0700, 0x17a1, 0x0000 },
- { 0x8700, 0x1915, 0x9000 },
- { 0x8700, 0x1837, 0x8000 },
- { 0x8d00, 0x17e4, 0x7000 },
- { 0x8a00, 0x17c2, 0x6000 },
- { 0x8700, 0x17b2, 0x5000 },
- { 0x8700, 0x17aa, 0x4000 },
- { 0x8700, 0x17a6, 0x3000 },
- { 0x8700, 0x17a4, 0x2000 },
- { 0x0700, 0x17a3, 0x0000 },
- { 0x0700, 0x17a5, 0x0000 },
- { 0x8700, 0x17a8, 0x2000 },
- { 0x0700, 0x17a7, 0x0000 },
- { 0x0700, 0x17a9, 0x0000 },
- { 0x8700, 0x17ae, 0x3000 },
- { 0x8700, 0x17ac, 0x2000 },
- { 0x0700, 0x17ab, 0x0000 },
- { 0x0700, 0x17ad, 0x0000 },
- { 0x8700, 0x17b0, 0x2000 },
- { 0x0700, 0x17af, 0x0000 },
- { 0x0700, 0x17b1, 0x0000 },
- { 0x8c00, 0x17ba, 0x4000 },
- { 0x8a00, 0x17b6, 0x3000 },
- { 0x8100, 0x17b4, 0x2000 },
- { 0x0700, 0x17b3, 0x0000 },
- { 0x0100, 0x17b5, 0x0000 },
- { 0x8c00, 0x17b8, 0x2000 },
- { 0x0c00, 0x17b7, 0x0000 },
- { 0x0c00, 0x17b9, 0x0000 },
- { 0x8a00, 0x17be, 0x3000 },
- { 0x8c00, 0x17bc, 0x2000 },
- { 0x0c00, 0x17bb, 0x0000 },
- { 0x0c00, 0x17bd, 0x0000 },
- { 0x8a00, 0x17c0, 0x2000 },
- { 0x0a00, 0x17bf, 0x0000 },
- { 0x0a00, 0x17c1, 0x0000 },
- { 0x8c00, 0x17d2, 0x5000 },
- { 0x8c00, 0x17ca, 0x4000 },
- { 0x8c00, 0x17c6, 0x3000 },
- { 0x8a00, 0x17c4, 0x2000 },
- { 0x0a00, 0x17c3, 0x0000 },
- { 0x0a00, 0x17c5, 0x0000 },
- { 0x8a00, 0x17c8, 0x2000 },
- { 0x0a00, 0x17c7, 0x0000 },
- { 0x0c00, 0x17c9, 0x0000 },
- { 0x8c00, 0x17ce, 0x3000 },
- { 0x8c00, 0x17cc, 0x2000 },
- { 0x0c00, 0x17cb, 0x0000 },
- { 0x0c00, 0x17cd, 0x0000 },
- { 0x8c00, 0x17d0, 0x2000 },
- { 0x0c00, 0x17cf, 0x0000 },
- { 0x0c00, 0x17d1, 0x0000 },
- { 0x9500, 0x17da, 0x4000 },
- { 0x9500, 0x17d6, 0x3000 },
- { 0x9500, 0x17d4, 0x2000 },
- { 0x0c00, 0x17d3, 0x0000 },
- { 0x1500, 0x17d5, 0x0000 },
- { 0x9500, 0x17d8, 0x2000 },
- { 0x0600, 0x17d7, 0x0000 },
- { 0x1500, 0x17d9, 0x0000 },
- { 0x8d00, 0x17e0, 0x3000 },
- { 0x8700, 0x17dc, 0x2000 },
- { 0x1700, 0x17db, 0x0000 },
- { 0x0c00, 0x17dd, 0x0000 },
- { 0x8d00, 0x17e2, 0x2000 },
- { 0x0d00, 0x17e1, 0x0000 },
- { 0x0d00, 0x17e3, 0x0000 },
- { 0x8d00, 0x1811, 0x6000 },
- { 0x9500, 0x1800, 0x5000 },
- { 0x8f00, 0x17f2, 0x4000 },
- { 0x8d00, 0x17e8, 0x3000 },
- { 0x8d00, 0x17e6, 0x2000 },
- { 0x0d00, 0x17e5, 0x0000 },
- { 0x0d00, 0x17e7, 0x0000 },
- { 0x8f00, 0x17f0, 0x2000 },
- { 0x0d00, 0x17e9, 0x0000 },
- { 0x0f00, 0x17f1, 0x0000 },
- { 0x8f00, 0x17f6, 0x3000 },
- { 0x8f00, 0x17f4, 0x2000 },
- { 0x0f00, 0x17f3, 0x0000 },
- { 0x0f00, 0x17f5, 0x0000 },
- { 0x8f00, 0x17f8, 0x2000 },
- { 0x0f00, 0x17f7, 0x0000 },
- { 0x0f00, 0x17f9, 0x0000 },
- { 0x9500, 0x1808, 0x4000 },
- { 0x9500, 0x1804, 0x3000 },
- { 0x9500, 0x1802, 0x2000 },
- { 0x1500, 0x1801, 0x0000 },
- { 0x1500, 0x1803, 0x0000 },
- { 0x9100, 0x1806, 0x2000 },
- { 0x1500, 0x1805, 0x0000 },
- { 0x1500, 0x1807, 0x0000 },
- { 0x8c00, 0x180c, 0x3000 },
- { 0x9500, 0x180a, 0x2000 },
- { 0x1500, 0x1809, 0x0000 },
- { 0x0c00, 0x180b, 0x0000 },
- { 0x9d00, 0x180e, 0x2000 },
- { 0x0c00, 0x180d, 0x0000 },
- { 0x0d00, 0x1810, 0x0000 },
- { 0x8700, 0x1827, 0x5000 },
- { 0x8d00, 0x1819, 0x4000 },
- { 0x8d00, 0x1815, 0x3000 },
- { 0x8d00, 0x1813, 0x2000 },
- { 0x0d00, 0x1812, 0x0000 },
- { 0x0d00, 0x1814, 0x0000 },
- { 0x8d00, 0x1817, 0x2000 },
- { 0x0d00, 0x1816, 0x0000 },
- { 0x0d00, 0x1818, 0x0000 },
- { 0x8700, 0x1823, 0x3000 },
- { 0x8700, 0x1821, 0x2000 },
- { 0x0700, 0x1820, 0x0000 },
- { 0x0700, 0x1822, 0x0000 },
- { 0x8700, 0x1825, 0x2000 },
- { 0x0700, 0x1824, 0x0000 },
- { 0x0700, 0x1826, 0x0000 },
- { 0x8700, 0x182f, 0x4000 },
- { 0x8700, 0x182b, 0x3000 },
- { 0x8700, 0x1829, 0x2000 },
- { 0x0700, 0x1828, 0x0000 },
- { 0x0700, 0x182a, 0x0000 },
- { 0x8700, 0x182d, 0x2000 },
- { 0x0700, 0x182c, 0x0000 },
- { 0x0700, 0x182e, 0x0000 },
- { 0x8700, 0x1833, 0x3000 },
- { 0x8700, 0x1831, 0x2000 },
- { 0x0700, 0x1830, 0x0000 },
- { 0x0700, 0x1832, 0x0000 },
- { 0x8700, 0x1835, 0x2000 },
- { 0x0700, 0x1834, 0x0000 },
- { 0x0700, 0x1836, 0x0000 },
- { 0x8700, 0x1877, 0x7000 },
- { 0x8700, 0x1857, 0x6000 },
- { 0x8700, 0x1847, 0x5000 },
- { 0x8700, 0x183f, 0x4000 },
- { 0x8700, 0x183b, 0x3000 },
- { 0x8700, 0x1839, 0x2000 },
- { 0x0700, 0x1838, 0x0000 },
- { 0x0700, 0x183a, 0x0000 },
- { 0x8700, 0x183d, 0x2000 },
- { 0x0700, 0x183c, 0x0000 },
- { 0x0700, 0x183e, 0x0000 },
- { 0x8600, 0x1843, 0x3000 },
- { 0x8700, 0x1841, 0x2000 },
- { 0x0700, 0x1840, 0x0000 },
- { 0x0700, 0x1842, 0x0000 },
- { 0x8700, 0x1845, 0x2000 },
- { 0x0700, 0x1844, 0x0000 },
- { 0x0700, 0x1846, 0x0000 },
- { 0x8700, 0x184f, 0x4000 },
- { 0x8700, 0x184b, 0x3000 },
- { 0x8700, 0x1849, 0x2000 },
- { 0x0700, 0x1848, 0x0000 },
- { 0x0700, 0x184a, 0x0000 },
- { 0x8700, 0x184d, 0x2000 },
- { 0x0700, 0x184c, 0x0000 },
- { 0x0700, 0x184e, 0x0000 },
- { 0x8700, 0x1853, 0x3000 },
- { 0x8700, 0x1851, 0x2000 },
- { 0x0700, 0x1850, 0x0000 },
- { 0x0700, 0x1852, 0x0000 },
- { 0x8700, 0x1855, 0x2000 },
- { 0x0700, 0x1854, 0x0000 },
- { 0x0700, 0x1856, 0x0000 },
- { 0x8700, 0x1867, 0x5000 },
- { 0x8700, 0x185f, 0x4000 },
- { 0x8700, 0x185b, 0x3000 },
- { 0x8700, 0x1859, 0x2000 },
- { 0x0700, 0x1858, 0x0000 },
- { 0x0700, 0x185a, 0x0000 },
- { 0x8700, 0x185d, 0x2000 },
- { 0x0700, 0x185c, 0x0000 },
- { 0x0700, 0x185e, 0x0000 },
- { 0x8700, 0x1863, 0x3000 },
- { 0x8700, 0x1861, 0x2000 },
- { 0x0700, 0x1860, 0x0000 },
- { 0x0700, 0x1862, 0x0000 },
- { 0x8700, 0x1865, 0x2000 },
- { 0x0700, 0x1864, 0x0000 },
- { 0x0700, 0x1866, 0x0000 },
- { 0x8700, 0x186f, 0x4000 },
- { 0x8700, 0x186b, 0x3000 },
- { 0x8700, 0x1869, 0x2000 },
- { 0x0700, 0x1868, 0x0000 },
- { 0x0700, 0x186a, 0x0000 },
- { 0x8700, 0x186d, 0x2000 },
- { 0x0700, 0x186c, 0x0000 },
- { 0x0700, 0x186e, 0x0000 },
- { 0x8700, 0x1873, 0x3000 },
- { 0x8700, 0x1871, 0x2000 },
- { 0x0700, 0x1870, 0x0000 },
- { 0x0700, 0x1872, 0x0000 },
- { 0x8700, 0x1875, 0x2000 },
- { 0x0700, 0x1874, 0x0000 },
- { 0x0700, 0x1876, 0x0000 },
- { 0x8700, 0x189f, 0x6000 },
- { 0x8700, 0x188f, 0x5000 },
- { 0x8700, 0x1887, 0x4000 },
- { 0x8700, 0x1883, 0x3000 },
- { 0x8700, 0x1881, 0x2000 },
- { 0x0700, 0x1880, 0x0000 },
- { 0x0700, 0x1882, 0x0000 },
- { 0x8700, 0x1885, 0x2000 },
- { 0x0700, 0x1884, 0x0000 },
- { 0x0700, 0x1886, 0x0000 },
- { 0x8700, 0x188b, 0x3000 },
- { 0x8700, 0x1889, 0x2000 },
- { 0x0700, 0x1888, 0x0000 },
- { 0x0700, 0x188a, 0x0000 },
- { 0x8700, 0x188d, 0x2000 },
- { 0x0700, 0x188c, 0x0000 },
- { 0x0700, 0x188e, 0x0000 },
- { 0x8700, 0x1897, 0x4000 },
- { 0x8700, 0x1893, 0x3000 },
- { 0x8700, 0x1891, 0x2000 },
- { 0x0700, 0x1890, 0x0000 },
- { 0x0700, 0x1892, 0x0000 },
- { 0x8700, 0x1895, 0x2000 },
- { 0x0700, 0x1894, 0x0000 },
- { 0x0700, 0x1896, 0x0000 },
- { 0x8700, 0x189b, 0x3000 },
- { 0x8700, 0x1899, 0x2000 },
- { 0x0700, 0x1898, 0x0000 },
- { 0x0700, 0x189a, 0x0000 },
- { 0x8700, 0x189d, 0x2000 },
- { 0x0700, 0x189c, 0x0000 },
- { 0x0700, 0x189e, 0x0000 },
- { 0x8700, 0x1905, 0x5000 },
- { 0x8700, 0x18a7, 0x4000 },
- { 0x8700, 0x18a3, 0x3000 },
- { 0x8700, 0x18a1, 0x2000 },
- { 0x0700, 0x18a0, 0x0000 },
- { 0x0700, 0x18a2, 0x0000 },
- { 0x8700, 0x18a5, 0x2000 },
- { 0x0700, 0x18a4, 0x0000 },
- { 0x0700, 0x18a6, 0x0000 },
- { 0x8700, 0x1901, 0x3000 },
- { 0x8c00, 0x18a9, 0x2000 },
- { 0x0700, 0x18a8, 0x0000 },
- { 0x0700, 0x1900, 0x0000 },
- { 0x8700, 0x1903, 0x2000 },
- { 0x0700, 0x1902, 0x0000 },
- { 0x0700, 0x1904, 0x0000 },
- { 0x8700, 0x190d, 0x4000 },
- { 0x8700, 0x1909, 0x3000 },
- { 0x8700, 0x1907, 0x2000 },
- { 0x0700, 0x1906, 0x0000 },
- { 0x0700, 0x1908, 0x0000 },
- { 0x8700, 0x190b, 0x2000 },
- { 0x0700, 0x190a, 0x0000 },
- { 0x0700, 0x190c, 0x0000 },
- { 0x8700, 0x1911, 0x3000 },
- { 0x8700, 0x190f, 0x2000 },
- { 0x0700, 0x190e, 0x0000 },
- { 0x0700, 0x1910, 0x0000 },
- { 0x8700, 0x1913, 0x2000 },
- { 0x0700, 0x1912, 0x0000 },
- { 0x0700, 0x1914, 0x0000 },
- { 0x8500, 0x1d10, 0x8000 },
- { 0x8700, 0x1963, 0x7000 },
- { 0x9a00, 0x1940, 0x6000 },
- { 0x8c00, 0x1928, 0x5000 },
- { 0x8c00, 0x1920, 0x4000 },
- { 0x8700, 0x1919, 0x3000 },
- { 0x8700, 0x1917, 0x2000 },
- { 0x0700, 0x1916, 0x0000 },
- { 0x0700, 0x1918, 0x0000 },
- { 0x8700, 0x191b, 0x2000 },
- { 0x0700, 0x191a, 0x0000 },
- { 0x0700, 0x191c, 0x0000 },
- { 0x8a00, 0x1924, 0x3000 },
- { 0x8c00, 0x1922, 0x2000 },
- { 0x0c00, 0x1921, 0x0000 },
- { 0x0a00, 0x1923, 0x0000 },
- { 0x8a00, 0x1926, 0x2000 },
- { 0x0a00, 0x1925, 0x0000 },
- { 0x0c00, 0x1927, 0x0000 },
- { 0x8a00, 0x1934, 0x4000 },
- { 0x8a00, 0x1930, 0x3000 },
- { 0x8a00, 0x192a, 0x2000 },
- { 0x0a00, 0x1929, 0x0000 },
- { 0x0a00, 0x192b, 0x0000 },
- { 0x8c00, 0x1932, 0x2000 },
- { 0x0a00, 0x1931, 0x0000 },
- { 0x0a00, 0x1933, 0x0000 },
- { 0x8a00, 0x1938, 0x3000 },
- { 0x8a00, 0x1936, 0x2000 },
- { 0x0a00, 0x1935, 0x0000 },
- { 0x0a00, 0x1937, 0x0000 },
- { 0x8c00, 0x193a, 0x2000 },
- { 0x0c00, 0x1939, 0x0000 },
- { 0x0c00, 0x193b, 0x0000 },
- { 0x8700, 0x1953, 0x5000 },
- { 0x8d00, 0x194b, 0x4000 },
- { 0x8d00, 0x1947, 0x3000 },
- { 0x9500, 0x1945, 0x2000 },
- { 0x1500, 0x1944, 0x0000 },
- { 0x0d00, 0x1946, 0x0000 },
- { 0x8d00, 0x1949, 0x2000 },
- { 0x0d00, 0x1948, 0x0000 },
- { 0x0d00, 0x194a, 0x0000 },
- { 0x8d00, 0x194f, 0x3000 },
- { 0x8d00, 0x194d, 0x2000 },
- { 0x0d00, 0x194c, 0x0000 },
- { 0x0d00, 0x194e, 0x0000 },
- { 0x8700, 0x1951, 0x2000 },
- { 0x0700, 0x1950, 0x0000 },
- { 0x0700, 0x1952, 0x0000 },
- { 0x8700, 0x195b, 0x4000 },
- { 0x8700, 0x1957, 0x3000 },
- { 0x8700, 0x1955, 0x2000 },
- { 0x0700, 0x1954, 0x0000 },
- { 0x0700, 0x1956, 0x0000 },
- { 0x8700, 0x1959, 0x2000 },
- { 0x0700, 0x1958, 0x0000 },
- { 0x0700, 0x195a, 0x0000 },
- { 0x8700, 0x195f, 0x3000 },
- { 0x8700, 0x195d, 0x2000 },
- { 0x0700, 0x195c, 0x0000 },
- { 0x0700, 0x195e, 0x0000 },
- { 0x8700, 0x1961, 0x2000 },
- { 0x0700, 0x1960, 0x0000 },
- { 0x0700, 0x1962, 0x0000 },
- { 0x9a00, 0x19f0, 0x6000 },
- { 0x9a00, 0x19e0, 0x5000 },
- { 0x8700, 0x196b, 0x4000 },
- { 0x8700, 0x1967, 0x3000 },
- { 0x8700, 0x1965, 0x2000 },
- { 0x0700, 0x1964, 0x0000 },
- { 0x0700, 0x1966, 0x0000 },
- { 0x8700, 0x1969, 0x2000 },
- { 0x0700, 0x1968, 0x0000 },
- { 0x0700, 0x196a, 0x0000 },
- { 0x8700, 0x1971, 0x3000 },
- { 0x8700, 0x196d, 0x2000 },
- { 0x0700, 0x196c, 0x0000 },
- { 0x0700, 0x1970, 0x0000 },
- { 0x8700, 0x1973, 0x2000 },
- { 0x0700, 0x1972, 0x0000 },
- { 0x0700, 0x1974, 0x0000 },
- { 0x9a00, 0x19e8, 0x4000 },
- { 0x9a00, 0x19e4, 0x3000 },
- { 0x9a00, 0x19e2, 0x2000 },
- { 0x1a00, 0x19e1, 0x0000 },
- { 0x1a00, 0x19e3, 0x0000 },
- { 0x9a00, 0x19e6, 0x2000 },
- { 0x1a00, 0x19e5, 0x0000 },
- { 0x1a00, 0x19e7, 0x0000 },
- { 0x9a00, 0x19ec, 0x3000 },
- { 0x9a00, 0x19ea, 0x2000 },
- { 0x1a00, 0x19e9, 0x0000 },
- { 0x1a00, 0x19eb, 0x0000 },
- { 0x9a00, 0x19ee, 0x2000 },
- { 0x1a00, 0x19ed, 0x0000 },
- { 0x1a00, 0x19ef, 0x0000 },
- { 0x8500, 0x1d00, 0x5000 },
- { 0x9a00, 0x19f8, 0x4000 },
- { 0x9a00, 0x19f4, 0x3000 },
- { 0x9a00, 0x19f2, 0x2000 },
- { 0x1a00, 0x19f1, 0x0000 },
- { 0x1a00, 0x19f3, 0x0000 },
- { 0x9a00, 0x19f6, 0x2000 },
- { 0x1a00, 0x19f5, 0x0000 },
- { 0x1a00, 0x19f7, 0x0000 },
- { 0x9a00, 0x19fc, 0x3000 },
- { 0x9a00, 0x19fa, 0x2000 },
- { 0x1a00, 0x19f9, 0x0000 },
- { 0x1a00, 0x19fb, 0x0000 },
- { 0x9a00, 0x19fe, 0x2000 },
- { 0x1a00, 0x19fd, 0x0000 },
- { 0x1a00, 0x19ff, 0x0000 },
- { 0x8500, 0x1d08, 0x4000 },
- { 0x8500, 0x1d04, 0x3000 },
- { 0x8500, 0x1d02, 0x2000 },
- { 0x0500, 0x1d01, 0x0000 },
- { 0x0500, 0x1d03, 0x0000 },
- { 0x8500, 0x1d06, 0x2000 },
- { 0x0500, 0x1d05, 0x0000 },
- { 0x0500, 0x1d07, 0x0000 },
- { 0x8500, 0x1d0c, 0x3000 },
- { 0x8500, 0x1d0a, 0x2000 },
- { 0x0500, 0x1d09, 0x0000 },
- { 0x0500, 0x1d0b, 0x0000 },
- { 0x8500, 0x1d0e, 0x2000 },
- { 0x0500, 0x1d0d, 0x0000 },
- { 0x0500, 0x1d0f, 0x0000 },
- { 0x8600, 0x1d50, 0x7000 },
- { 0x8600, 0x1d30, 0x6000 },
- { 0x8500, 0x1d20, 0x5000 },
- { 0x8500, 0x1d18, 0x4000 },
- { 0x8500, 0x1d14, 0x3000 },
- { 0x8500, 0x1d12, 0x2000 },
- { 0x0500, 0x1d11, 0x0000 },
- { 0x0500, 0x1d13, 0x0000 },
- { 0x8500, 0x1d16, 0x2000 },
- { 0x0500, 0x1d15, 0x0000 },
- { 0x0500, 0x1d17, 0x0000 },
- { 0x8500, 0x1d1c, 0x3000 },
- { 0x8500, 0x1d1a, 0x2000 },
- { 0x0500, 0x1d19, 0x0000 },
- { 0x0500, 0x1d1b, 0x0000 },
- { 0x8500, 0x1d1e, 0x2000 },
- { 0x0500, 0x1d1d, 0x0000 },
- { 0x0500, 0x1d1f, 0x0000 },
- { 0x8500, 0x1d28, 0x4000 },
- { 0x8500, 0x1d24, 0x3000 },
- { 0x8500, 0x1d22, 0x2000 },
- { 0x0500, 0x1d21, 0x0000 },
- { 0x0500, 0x1d23, 0x0000 },
- { 0x8500, 0x1d26, 0x2000 },
- { 0x0500, 0x1d25, 0x0000 },
- { 0x0500, 0x1d27, 0x0000 },
- { 0x8600, 0x1d2c, 0x3000 },
- { 0x8500, 0x1d2a, 0x2000 },
- { 0x0500, 0x1d29, 0x0000 },
- { 0x0500, 0x1d2b, 0x0000 },
- { 0x8600, 0x1d2e, 0x2000 },
- { 0x0600, 0x1d2d, 0x0000 },
- { 0x0600, 0x1d2f, 0x0000 },
- { 0x8600, 0x1d40, 0x5000 },
- { 0x8600, 0x1d38, 0x4000 },
- { 0x8600, 0x1d34, 0x3000 },
- { 0x8600, 0x1d32, 0x2000 },
- { 0x0600, 0x1d31, 0x0000 },
- { 0x0600, 0x1d33, 0x0000 },
- { 0x8600, 0x1d36, 0x2000 },
- { 0x0600, 0x1d35, 0x0000 },
- { 0x0600, 0x1d37, 0x0000 },
- { 0x8600, 0x1d3c, 0x3000 },
- { 0x8600, 0x1d3a, 0x2000 },
- { 0x0600, 0x1d39, 0x0000 },
- { 0x0600, 0x1d3b, 0x0000 },
- { 0x8600, 0x1d3e, 0x2000 },
- { 0x0600, 0x1d3d, 0x0000 },
- { 0x0600, 0x1d3f, 0x0000 },
- { 0x8600, 0x1d48, 0x4000 },
- { 0x8600, 0x1d44, 0x3000 },
- { 0x8600, 0x1d42, 0x2000 },
- { 0x0600, 0x1d41, 0x0000 },
- { 0x0600, 0x1d43, 0x0000 },
- { 0x8600, 0x1d46, 0x2000 },
- { 0x0600, 0x1d45, 0x0000 },
- { 0x0600, 0x1d47, 0x0000 },
- { 0x8600, 0x1d4c, 0x3000 },
- { 0x8600, 0x1d4a, 0x2000 },
- { 0x0600, 0x1d49, 0x0000 },
- { 0x0600, 0x1d4b, 0x0000 },
- { 0x8600, 0x1d4e, 0x2000 },
- { 0x0600, 0x1d4d, 0x0000 },
- { 0x0600, 0x1d4f, 0x0000 },
- { 0x8900, 0x1e04, 0x6001 },
- { 0x8600, 0x1d60, 0x5000 },
- { 0x8600, 0x1d58, 0x4000 },
- { 0x8600, 0x1d54, 0x3000 },
- { 0x8600, 0x1d52, 0x2000 },
- { 0x0600, 0x1d51, 0x0000 },
- { 0x0600, 0x1d53, 0x0000 },
- { 0x8600, 0x1d56, 0x2000 },
- { 0x0600, 0x1d55, 0x0000 },
- { 0x0600, 0x1d57, 0x0000 },
- { 0x8600, 0x1d5c, 0x3000 },
- { 0x8600, 0x1d5a, 0x2000 },
- { 0x0600, 0x1d59, 0x0000 },
- { 0x0600, 0x1d5b, 0x0000 },
- { 0x8600, 0x1d5e, 0x2000 },
- { 0x0600, 0x1d5d, 0x0000 },
- { 0x0600, 0x1d5f, 0x0000 },
- { 0x8500, 0x1d68, 0x4000 },
- { 0x8500, 0x1d64, 0x3000 },
- { 0x8500, 0x1d62, 0x2000 },
- { 0x0600, 0x1d61, 0x0000 },
- { 0x0500, 0x1d63, 0x0000 },
- { 0x8500, 0x1d66, 0x2000 },
- { 0x0500, 0x1d65, 0x0000 },
- { 0x0500, 0x1d67, 0x0000 },
- { 0x8900, 0x1e00, 0x3001 },
- { 0x8500, 0x1d6a, 0x2000 },
- { 0x0500, 0x1d69, 0x0000 },
- { 0x0500, 0x1d6b, 0x0000 },
- { 0x8900, 0x1e02, 0x2001 },
- { 0x0500, 0x1e01, 0x0fff },
- { 0x0500, 0x1e03, 0x0fff },
- { 0x8900, 0x1e14, 0x5001 },
- { 0x8900, 0x1e0c, 0x4001 },
- { 0x8900, 0x1e08, 0x3001 },
- { 0x8900, 0x1e06, 0x2001 },
- { 0x0500, 0x1e05, 0x0fff },
- { 0x0500, 0x1e07, 0x0fff },
- { 0x8900, 0x1e0a, 0x2001 },
- { 0x0500, 0x1e09, 0x0fff },
- { 0x0500, 0x1e0b, 0x0fff },
- { 0x8900, 0x1e10, 0x3001 },
- { 0x8900, 0x1e0e, 0x2001 },
- { 0x0500, 0x1e0d, 0x0fff },
- { 0x0500, 0x1e0f, 0x0fff },
- { 0x8900, 0x1e12, 0x2001 },
- { 0x0500, 0x1e11, 0x0fff },
- { 0x0500, 0x1e13, 0x0fff },
- { 0x8900, 0x1e1c, 0x4001 },
- { 0x8900, 0x1e18, 0x3001 },
- { 0x8900, 0x1e16, 0x2001 },
- { 0x0500, 0x1e15, 0x0fff },
- { 0x0500, 0x1e17, 0x0fff },
- { 0x8900, 0x1e1a, 0x2001 },
- { 0x0500, 0x1e19, 0x0fff },
- { 0x0500, 0x1e1b, 0x0fff },
- { 0x8900, 0x1e20, 0x3001 },
- { 0x8900, 0x1e1e, 0x2001 },
- { 0x0500, 0x1e1d, 0x0fff },
- { 0x0500, 0x1e1f, 0x0fff },
- { 0x8900, 0x1e22, 0x2001 },
- { 0x0500, 0x1e21, 0x0fff },
- { 0x0500, 0x1e23, 0x0fff },
- { 0x9600, 0x2045, 0xa000 },
- { 0x8500, 0x1f32, 0x9008 },
- { 0x8900, 0x1ea8, 0x8001 },
- { 0x8900, 0x1e64, 0x7001 },
- { 0x8900, 0x1e44, 0x6001 },
- { 0x8900, 0x1e34, 0x5001 },
- { 0x8900, 0x1e2c, 0x4001 },
- { 0x8900, 0x1e28, 0x3001 },
- { 0x8900, 0x1e26, 0x2001 },
- { 0x0500, 0x1e25, 0x0fff },
- { 0x0500, 0x1e27, 0x0fff },
- { 0x8900, 0x1e2a, 0x2001 },
- { 0x0500, 0x1e29, 0x0fff },
- { 0x0500, 0x1e2b, 0x0fff },
- { 0x8900, 0x1e30, 0x3001 },
- { 0x8900, 0x1e2e, 0x2001 },
- { 0x0500, 0x1e2d, 0x0fff },
- { 0x0500, 0x1e2f, 0x0fff },
- { 0x8900, 0x1e32, 0x2001 },
- { 0x0500, 0x1e31, 0x0fff },
- { 0x0500, 0x1e33, 0x0fff },
- { 0x8900, 0x1e3c, 0x4001 },
- { 0x8900, 0x1e38, 0x3001 },
- { 0x8900, 0x1e36, 0x2001 },
- { 0x0500, 0x1e35, 0x0fff },
- { 0x0500, 0x1e37, 0x0fff },
- { 0x8900, 0x1e3a, 0x2001 },
- { 0x0500, 0x1e39, 0x0fff },
- { 0x0500, 0x1e3b, 0x0fff },
- { 0x8900, 0x1e40, 0x3001 },
- { 0x8900, 0x1e3e, 0x2001 },
- { 0x0500, 0x1e3d, 0x0fff },
- { 0x0500, 0x1e3f, 0x0fff },
- { 0x8900, 0x1e42, 0x2001 },
- { 0x0500, 0x1e41, 0x0fff },
- { 0x0500, 0x1e43, 0x0fff },
- { 0x8900, 0x1e54, 0x5001 },
- { 0x8900, 0x1e4c, 0x4001 },
- { 0x8900, 0x1e48, 0x3001 },
- { 0x8900, 0x1e46, 0x2001 },
- { 0x0500, 0x1e45, 0x0fff },
- { 0x0500, 0x1e47, 0x0fff },
- { 0x8900, 0x1e4a, 0x2001 },
- { 0x0500, 0x1e49, 0x0fff },
- { 0x0500, 0x1e4b, 0x0fff },
- { 0x8900, 0x1e50, 0x3001 },
- { 0x8900, 0x1e4e, 0x2001 },
- { 0x0500, 0x1e4d, 0x0fff },
- { 0x0500, 0x1e4f, 0x0fff },
- { 0x8900, 0x1e52, 0x2001 },
- { 0x0500, 0x1e51, 0x0fff },
- { 0x0500, 0x1e53, 0x0fff },
- { 0x8900, 0x1e5c, 0x4001 },
- { 0x8900, 0x1e58, 0x3001 },
- { 0x8900, 0x1e56, 0x2001 },
- { 0x0500, 0x1e55, 0x0fff },
- { 0x0500, 0x1e57, 0x0fff },
- { 0x8900, 0x1e5a, 0x2001 },
- { 0x0500, 0x1e59, 0x0fff },
- { 0x0500, 0x1e5b, 0x0fff },
- { 0x8900, 0x1e60, 0x3001 },
- { 0x8900, 0x1e5e, 0x2001 },
- { 0x0500, 0x1e5d, 0x0fff },
- { 0x0500, 0x1e5f, 0x0fff },
- { 0x8900, 0x1e62, 0x2001 },
- { 0x0500, 0x1e61, 0x0fff },
- { 0x0500, 0x1e63, 0x0fff },
- { 0x8900, 0x1e84, 0x6001 },
- { 0x8900, 0x1e74, 0x5001 },
- { 0x8900, 0x1e6c, 0x4001 },
- { 0x8900, 0x1e68, 0x3001 },
- { 0x8900, 0x1e66, 0x2001 },
- { 0x0500, 0x1e65, 0x0fff },
- { 0x0500, 0x1e67, 0x0fff },
- { 0x8900, 0x1e6a, 0x2001 },
- { 0x0500, 0x1e69, 0x0fff },
- { 0x0500, 0x1e6b, 0x0fff },
- { 0x8900, 0x1e70, 0x3001 },
- { 0x8900, 0x1e6e, 0x2001 },
- { 0x0500, 0x1e6d, 0x0fff },
- { 0x0500, 0x1e6f, 0x0fff },
- { 0x8900, 0x1e72, 0x2001 },
- { 0x0500, 0x1e71, 0x0fff },
- { 0x0500, 0x1e73, 0x0fff },
- { 0x8900, 0x1e7c, 0x4001 },
- { 0x8900, 0x1e78, 0x3001 },
- { 0x8900, 0x1e76, 0x2001 },
- { 0x0500, 0x1e75, 0x0fff },
- { 0x0500, 0x1e77, 0x0fff },
- { 0x8900, 0x1e7a, 0x2001 },
- { 0x0500, 0x1e79, 0x0fff },
- { 0x0500, 0x1e7b, 0x0fff },
- { 0x8900, 0x1e80, 0x3001 },
- { 0x8900, 0x1e7e, 0x2001 },
- { 0x0500, 0x1e7d, 0x0fff },
- { 0x0500, 0x1e7f, 0x0fff },
- { 0x8900, 0x1e82, 0x2001 },
- { 0x0500, 0x1e81, 0x0fff },
- { 0x0500, 0x1e83, 0x0fff },
- { 0x8900, 0x1e94, 0x5001 },
- { 0x8900, 0x1e8c, 0x4001 },
- { 0x8900, 0x1e88, 0x3001 },
- { 0x8900, 0x1e86, 0x2001 },
- { 0x0500, 0x1e85, 0x0fff },
- { 0x0500, 0x1e87, 0x0fff },
- { 0x8900, 0x1e8a, 0x2001 },
- { 0x0500, 0x1e89, 0x0fff },
- { 0x0500, 0x1e8b, 0x0fff },
- { 0x8900, 0x1e90, 0x3001 },
- { 0x8900, 0x1e8e, 0x2001 },
- { 0x0500, 0x1e8d, 0x0fff },
- { 0x0500, 0x1e8f, 0x0fff },
- { 0x8900, 0x1e92, 0x2001 },
- { 0x0500, 0x1e91, 0x0fff },
- { 0x0500, 0x1e93, 0x0fff },
- { 0x8900, 0x1ea0, 0x4001 },
- { 0x8500, 0x1e98, 0x3000 },
- { 0x8500, 0x1e96, 0x2000 },
- { 0x0500, 0x1e95, 0x0fff },
- { 0x0500, 0x1e97, 0x0000 },
- { 0x8500, 0x1e9a, 0x2000 },
- { 0x0500, 0x1e99, 0x0000 },
- { 0x0500, 0x1e9b, 0x0fc5 },
- { 0x8900, 0x1ea4, 0x3001 },
- { 0x8900, 0x1ea2, 0x2001 },
- { 0x0500, 0x1ea1, 0x0fff },
- { 0x0500, 0x1ea3, 0x0fff },
- { 0x8900, 0x1ea6, 0x2001 },
- { 0x0500, 0x1ea5, 0x0fff },
- { 0x0500, 0x1ea7, 0x0fff },
- { 0x8900, 0x1ee8, 0x7001 },
- { 0x8900, 0x1ec8, 0x6001 },
- { 0x8900, 0x1eb8, 0x5001 },
- { 0x8900, 0x1eb0, 0x4001 },
- { 0x8900, 0x1eac, 0x3001 },
- { 0x8900, 0x1eaa, 0x2001 },
- { 0x0500, 0x1ea9, 0x0fff },
- { 0x0500, 0x1eab, 0x0fff },
- { 0x8900, 0x1eae, 0x2001 },
- { 0x0500, 0x1ead, 0x0fff },
- { 0x0500, 0x1eaf, 0x0fff },
- { 0x8900, 0x1eb4, 0x3001 },
- { 0x8900, 0x1eb2, 0x2001 },
- { 0x0500, 0x1eb1, 0x0fff },
- { 0x0500, 0x1eb3, 0x0fff },
- { 0x8900, 0x1eb6, 0x2001 },
- { 0x0500, 0x1eb5, 0x0fff },
- { 0x0500, 0x1eb7, 0x0fff },
- { 0x8900, 0x1ec0, 0x4001 },
- { 0x8900, 0x1ebc, 0x3001 },
- { 0x8900, 0x1eba, 0x2001 },
- { 0x0500, 0x1eb9, 0x0fff },
- { 0x0500, 0x1ebb, 0x0fff },
- { 0x8900, 0x1ebe, 0x2001 },
- { 0x0500, 0x1ebd, 0x0fff },
- { 0x0500, 0x1ebf, 0x0fff },
- { 0x8900, 0x1ec4, 0x3001 },
- { 0x8900, 0x1ec2, 0x2001 },
- { 0x0500, 0x1ec1, 0x0fff },
- { 0x0500, 0x1ec3, 0x0fff },
- { 0x8900, 0x1ec6, 0x2001 },
- { 0x0500, 0x1ec5, 0x0fff },
- { 0x0500, 0x1ec7, 0x0fff },
- { 0x8900, 0x1ed8, 0x5001 },
- { 0x8900, 0x1ed0, 0x4001 },
- { 0x8900, 0x1ecc, 0x3001 },
- { 0x8900, 0x1eca, 0x2001 },
- { 0x0500, 0x1ec9, 0x0fff },
- { 0x0500, 0x1ecb, 0x0fff },
- { 0x8900, 0x1ece, 0x2001 },
- { 0x0500, 0x1ecd, 0x0fff },
- { 0x0500, 0x1ecf, 0x0fff },
- { 0x8900, 0x1ed4, 0x3001 },
- { 0x8900, 0x1ed2, 0x2001 },
- { 0x0500, 0x1ed1, 0x0fff },
- { 0x0500, 0x1ed3, 0x0fff },
- { 0x8900, 0x1ed6, 0x2001 },
- { 0x0500, 0x1ed5, 0x0fff },
- { 0x0500, 0x1ed7, 0x0fff },
- { 0x8900, 0x1ee0, 0x4001 },
- { 0x8900, 0x1edc, 0x3001 },
- { 0x8900, 0x1eda, 0x2001 },
- { 0x0500, 0x1ed9, 0x0fff },
- { 0x0500, 0x1edb, 0x0fff },
- { 0x8900, 0x1ede, 0x2001 },
- { 0x0500, 0x1edd, 0x0fff },
- { 0x0500, 0x1edf, 0x0fff },
- { 0x8900, 0x1ee4, 0x3001 },
- { 0x8900, 0x1ee2, 0x2001 },
- { 0x0500, 0x1ee1, 0x0fff },
- { 0x0500, 0x1ee3, 0x0fff },
- { 0x8900, 0x1ee6, 0x2001 },
- { 0x0500, 0x1ee5, 0x0fff },
- { 0x0500, 0x1ee7, 0x0fff },
- { 0x8900, 0x1f0e, 0x6ff8 },
- { 0x8900, 0x1ef8, 0x5001 },
- { 0x8900, 0x1ef0, 0x4001 },
- { 0x8900, 0x1eec, 0x3001 },
- { 0x8900, 0x1eea, 0x2001 },
- { 0x0500, 0x1ee9, 0x0fff },
- { 0x0500, 0x1eeb, 0x0fff },
- { 0x8900, 0x1eee, 0x2001 },
- { 0x0500, 0x1eed, 0x0fff },
- { 0x0500, 0x1eef, 0x0fff },
- { 0x8900, 0x1ef4, 0x3001 },
- { 0x8900, 0x1ef2, 0x2001 },
- { 0x0500, 0x1ef1, 0x0fff },
- { 0x0500, 0x1ef3, 0x0fff },
- { 0x8900, 0x1ef6, 0x2001 },
- { 0x0500, 0x1ef5, 0x0fff },
- { 0x0500, 0x1ef7, 0x0fff },
- { 0x8500, 0x1f06, 0x4008 },
- { 0x8500, 0x1f02, 0x3008 },
- { 0x8500, 0x1f00, 0x2008 },
- { 0x0500, 0x1ef9, 0x0fff },
- { 0x0500, 0x1f01, 0x0008 },
- { 0x8500, 0x1f04, 0x2008 },
- { 0x0500, 0x1f03, 0x0008 },
- { 0x0500, 0x1f05, 0x0008 },
- { 0x8900, 0x1f0a, 0x3ff8 },
- { 0x8900, 0x1f08, 0x2ff8 },
- { 0x0500, 0x1f07, 0x0008 },
- { 0x0900, 0x1f09, 0x0ff8 },
- { 0x8900, 0x1f0c, 0x2ff8 },
- { 0x0900, 0x1f0b, 0x0ff8 },
- { 0x0900, 0x1f0d, 0x0ff8 },
- { 0x8500, 0x1f22, 0x5008 },
- { 0x8900, 0x1f18, 0x4ff8 },
- { 0x8500, 0x1f12, 0x3008 },
- { 0x8500, 0x1f10, 0x2008 },
- { 0x0900, 0x1f0f, 0x0ff8 },
- { 0x0500, 0x1f11, 0x0008 },
- { 0x8500, 0x1f14, 0x2008 },
- { 0x0500, 0x1f13, 0x0008 },
- { 0x0500, 0x1f15, 0x0008 },
- { 0x8900, 0x1f1c, 0x3ff8 },
- { 0x8900, 0x1f1a, 0x2ff8 },
- { 0x0900, 0x1f19, 0x0ff8 },
- { 0x0900, 0x1f1b, 0x0ff8 },
- { 0x8500, 0x1f20, 0x2008 },
- { 0x0900, 0x1f1d, 0x0ff8 },
- { 0x0500, 0x1f21, 0x0008 },
- { 0x8900, 0x1f2a, 0x4ff8 },
- { 0x8500, 0x1f26, 0x3008 },
- { 0x8500, 0x1f24, 0x2008 },
- { 0x0500, 0x1f23, 0x0008 },
- { 0x0500, 0x1f25, 0x0008 },
- { 0x8900, 0x1f28, 0x2ff8 },
- { 0x0500, 0x1f27, 0x0008 },
- { 0x0900, 0x1f29, 0x0ff8 },
- { 0x8900, 0x1f2e, 0x3ff8 },
- { 0x8900, 0x1f2c, 0x2ff8 },
- { 0x0900, 0x1f2b, 0x0ff8 },
- { 0x0900, 0x1f2d, 0x0ff8 },
- { 0x8500, 0x1f30, 0x2008 },
- { 0x0900, 0x1f2f, 0x0ff8 },
- { 0x0500, 0x1f31, 0x0008 },
- { 0x9800, 0x1fbd, 0x8000 },
- { 0x8500, 0x1f7a, 0x7070 },
- { 0x8500, 0x1f56, 0x6000 },
- { 0x8500, 0x1f42, 0x5008 },
- { 0x8900, 0x1f3a, 0x4ff8 },
- { 0x8500, 0x1f36, 0x3008 },
- { 0x8500, 0x1f34, 0x2008 },
- { 0x0500, 0x1f33, 0x0008 },
- { 0x0500, 0x1f35, 0x0008 },
- { 0x8900, 0x1f38, 0x2ff8 },
- { 0x0500, 0x1f37, 0x0008 },
- { 0x0900, 0x1f39, 0x0ff8 },
- { 0x8900, 0x1f3e, 0x3ff8 },
- { 0x8900, 0x1f3c, 0x2ff8 },
- { 0x0900, 0x1f3b, 0x0ff8 },
- { 0x0900, 0x1f3d, 0x0ff8 },
- { 0x8500, 0x1f40, 0x2008 },
- { 0x0900, 0x1f3f, 0x0ff8 },
- { 0x0500, 0x1f41, 0x0008 },
- { 0x8900, 0x1f4c, 0x4ff8 },
- { 0x8900, 0x1f48, 0x3ff8 },
- { 0x8500, 0x1f44, 0x2008 },
- { 0x0500, 0x1f43, 0x0008 },
- { 0x0500, 0x1f45, 0x0008 },
- { 0x8900, 0x1f4a, 0x2ff8 },
- { 0x0900, 0x1f49, 0x0ff8 },
- { 0x0900, 0x1f4b, 0x0ff8 },
- { 0x8500, 0x1f52, 0x3000 },
- { 0x8500, 0x1f50, 0x2000 },
- { 0x0900, 0x1f4d, 0x0ff8 },
- { 0x0500, 0x1f51, 0x0008 },
- { 0x8500, 0x1f54, 0x2000 },
- { 0x0500, 0x1f53, 0x0008 },
- { 0x0500, 0x1f55, 0x0008 },
- { 0x8900, 0x1f6a, 0x5ff8 },
- { 0x8500, 0x1f62, 0x4008 },
- { 0x8900, 0x1f5d, 0x3ff8 },
- { 0x8900, 0x1f59, 0x2ff8 },
- { 0x0500, 0x1f57, 0x0008 },
- { 0x0900, 0x1f5b, 0x0ff8 },
- { 0x8500, 0x1f60, 0x2008 },
- { 0x0900, 0x1f5f, 0x0ff8 },
- { 0x0500, 0x1f61, 0x0008 },
- { 0x8500, 0x1f66, 0x3008 },
- { 0x8500, 0x1f64, 0x2008 },
- { 0x0500, 0x1f63, 0x0008 },
- { 0x0500, 0x1f65, 0x0008 },
- { 0x8900, 0x1f68, 0x2ff8 },
- { 0x0500, 0x1f67, 0x0008 },
- { 0x0900, 0x1f69, 0x0ff8 },
- { 0x8500, 0x1f72, 0x4056 },
- { 0x8900, 0x1f6e, 0x3ff8 },
- { 0x8900, 0x1f6c, 0x2ff8 },
- { 0x0900, 0x1f6b, 0x0ff8 },
- { 0x0900, 0x1f6d, 0x0ff8 },
- { 0x8500, 0x1f70, 0x204a },
- { 0x0900, 0x1f6f, 0x0ff8 },
- { 0x0500, 0x1f71, 0x004a },
- { 0x8500, 0x1f76, 0x3064 },
- { 0x8500, 0x1f74, 0x2056 },
- { 0x0500, 0x1f73, 0x0056 },
- { 0x0500, 0x1f75, 0x0056 },
- { 0x8500, 0x1f78, 0x2080 },
- { 0x0500, 0x1f77, 0x0064 },
- { 0x0500, 0x1f79, 0x0080 },
- { 0x8800, 0x1f9c, 0x6000 },
- { 0x8800, 0x1f8c, 0x5000 },
- { 0x8500, 0x1f84, 0x4008 },
- { 0x8500, 0x1f80, 0x3008 },
- { 0x8500, 0x1f7c, 0x207e },
- { 0x0500, 0x1f7b, 0x0070 },
- { 0x0500, 0x1f7d, 0x007e },
- { 0x8500, 0x1f82, 0x2008 },
- { 0x0500, 0x1f81, 0x0008 },
- { 0x0500, 0x1f83, 0x0008 },
- { 0x8800, 0x1f88, 0x3000 },
- { 0x8500, 0x1f86, 0x2008 },
- { 0x0500, 0x1f85, 0x0008 },
- { 0x0500, 0x1f87, 0x0008 },
- { 0x8800, 0x1f8a, 0x2000 },
- { 0x0800, 0x1f89, 0x0000 },
- { 0x0800, 0x1f8b, 0x0000 },
- { 0x8500, 0x1f94, 0x4008 },
- { 0x8500, 0x1f90, 0x3008 },
- { 0x8800, 0x1f8e, 0x2000 },
- { 0x0800, 0x1f8d, 0x0000 },
- { 0x0800, 0x1f8f, 0x0000 },
- { 0x8500, 0x1f92, 0x2008 },
- { 0x0500, 0x1f91, 0x0008 },
- { 0x0500, 0x1f93, 0x0008 },
- { 0x8800, 0x1f98, 0x3000 },
- { 0x8500, 0x1f96, 0x2008 },
- { 0x0500, 0x1f95, 0x0008 },
- { 0x0500, 0x1f97, 0x0008 },
- { 0x8800, 0x1f9a, 0x2000 },
- { 0x0800, 0x1f99, 0x0000 },
- { 0x0800, 0x1f9b, 0x0000 },
- { 0x8800, 0x1fac, 0x5000 },
- { 0x8500, 0x1fa4, 0x4008 },
- { 0x8500, 0x1fa0, 0x3008 },
- { 0x8800, 0x1f9e, 0x2000 },
- { 0x0800, 0x1f9d, 0x0000 },
- { 0x0800, 0x1f9f, 0x0000 },
- { 0x8500, 0x1fa2, 0x2008 },
- { 0x0500, 0x1fa1, 0x0008 },
- { 0x0500, 0x1fa3, 0x0008 },
- { 0x8800, 0x1fa8, 0x3000 },
- { 0x8500, 0x1fa6, 0x2008 },
- { 0x0500, 0x1fa5, 0x0008 },
- { 0x0500, 0x1fa7, 0x0008 },
- { 0x8800, 0x1faa, 0x2000 },
- { 0x0800, 0x1fa9, 0x0000 },
- { 0x0800, 0x1fab, 0x0000 },
- { 0x8500, 0x1fb4, 0x4000 },
- { 0x8500, 0x1fb0, 0x3008 },
- { 0x8800, 0x1fae, 0x2000 },
- { 0x0800, 0x1fad, 0x0000 },
- { 0x0800, 0x1faf, 0x0000 },
- { 0x8500, 0x1fb2, 0x2000 },
- { 0x0500, 0x1fb1, 0x0008 },
- { 0x0500, 0x1fb3, 0x0009 },
- { 0x8900, 0x1fb9, 0x3ff8 },
- { 0x8500, 0x1fb7, 0x2000 },
- { 0x0500, 0x1fb6, 0x0000 },
- { 0x0900, 0x1fb8, 0x0ff8 },
- { 0x8900, 0x1fbb, 0x2fb6 },
- { 0x0900, 0x1fba, 0x0fb6 },
- { 0x0800, 0x1fbc, 0x0000 },
- { 0x9d00, 0x2005, 0x7000 },
- { 0x8500, 0x1fe1, 0x6008 },
- { 0x9800, 0x1fce, 0x5000 },
- { 0x8500, 0x1fc6, 0x4000 },
- { 0x9800, 0x1fc1, 0x3000 },
- { 0x9800, 0x1fbf, 0x2000 },
- { 0x0500, 0x1fbe, 0x0000 },
- { 0x1800, 0x1fc0, 0x0000 },
- { 0x8500, 0x1fc3, 0x2009 },
- { 0x0500, 0x1fc2, 0x0000 },
- { 0x0500, 0x1fc4, 0x0000 },
- { 0x8900, 0x1fca, 0x3faa },
- { 0x8900, 0x1fc8, 0x2faa },
- { 0x0500, 0x1fc7, 0x0000 },
- { 0x0900, 0x1fc9, 0x0faa },
- { 0x8800, 0x1fcc, 0x2000 },
- { 0x0900, 0x1fcb, 0x0faa },
- { 0x1800, 0x1fcd, 0x0000 },
- { 0x8900, 0x1fd8, 0x4ff8 },
- { 0x8500, 0x1fd2, 0x3000 },
- { 0x8500, 0x1fd0, 0x2008 },
- { 0x1800, 0x1fcf, 0x0000 },
- { 0x0500, 0x1fd1, 0x0008 },
- { 0x8500, 0x1fd6, 0x2000 },
- { 0x0500, 0x1fd3, 0x0000 },
- { 0x0500, 0x1fd7, 0x0000 },
- { 0x9800, 0x1fdd, 0x3000 },
- { 0x8900, 0x1fda, 0x2f9c },
- { 0x0900, 0x1fd9, 0x0ff8 },
- { 0x0900, 0x1fdb, 0x0f9c },
- { 0x9800, 0x1fdf, 0x2000 },
- { 0x1800, 0x1fde, 0x0000 },
- { 0x0500, 0x1fe0, 0x0008 },
- { 0x8500, 0x1ff3, 0x5009 },
- { 0x8900, 0x1fe9, 0x4ff8 },
- { 0x8500, 0x1fe5, 0x3007 },
- { 0x8500, 0x1fe3, 0x2000 },
- { 0x0500, 0x1fe2, 0x0000 },
- { 0x0500, 0x1fe4, 0x0000 },
- { 0x8500, 0x1fe7, 0x2000 },
- { 0x0500, 0x1fe6, 0x0000 },
- { 0x0900, 0x1fe8, 0x0ff8 },
- { 0x9800, 0x1fed, 0x3000 },
- { 0x8900, 0x1feb, 0x2f90 },
- { 0x0900, 0x1fea, 0x0f90 },
- { 0x0900, 0x1fec, 0x0ff9 },
- { 0x9800, 0x1fef, 0x2000 },
- { 0x1800, 0x1fee, 0x0000 },
- { 0x0500, 0x1ff2, 0x0000 },
- { 0x8800, 0x1ffc, 0x4000 },
- { 0x8900, 0x1ff8, 0x3f80 },
- { 0x8500, 0x1ff6, 0x2000 },
- { 0x0500, 0x1ff4, 0x0000 },
- { 0x0500, 0x1ff7, 0x0000 },
- { 0x8900, 0x1ffa, 0x2f82 },
- { 0x0900, 0x1ff9, 0x0f80 },
- { 0x0900, 0x1ffb, 0x0f82 },
- { 0x9d00, 0x2001, 0x3000 },
- { 0x9800, 0x1ffe, 0x2000 },
- { 0x1800, 0x1ffd, 0x0000 },
- { 0x1d00, 0x2000, 0x0000 },
- { 0x9d00, 0x2003, 0x2000 },
- { 0x1d00, 0x2002, 0x0000 },
- { 0x1d00, 0x2004, 0x0000 },
- { 0x9500, 0x2025, 0x6000 },
- { 0x9100, 0x2015, 0x5000 },
- { 0x8100, 0x200d, 0x4000 },
- { 0x9d00, 0x2009, 0x3000 },
- { 0x9d00, 0x2007, 0x2000 },
- { 0x1d00, 0x2006, 0x0000 },
- { 0x1d00, 0x2008, 0x0000 },
- { 0x9d00, 0x200b, 0x2000 },
- { 0x1d00, 0x200a, 0x0000 },
- { 0x0100, 0x200c, 0x0000 },
- { 0x9100, 0x2011, 0x3000 },
- { 0x8100, 0x200f, 0x2000 },
- { 0x0100, 0x200e, 0x0000 },
- { 0x1100, 0x2010, 0x0000 },
- { 0x9100, 0x2013, 0x2000 },
- { 0x1100, 0x2012, 0x0000 },
- { 0x1100, 0x2014, 0x0000 },
- { 0x9300, 0x201d, 0x4000 },
- { 0x9300, 0x2019, 0x3000 },
- { 0x9500, 0x2017, 0x2000 },
- { 0x1500, 0x2016, 0x0000 },
- { 0x1400, 0x2018, 0x0000 },
- { 0x9400, 0x201b, 0x2000 },
- { 0x1600, 0x201a, 0x0000 },
- { 0x1400, 0x201c, 0x0000 },
- { 0x9500, 0x2021, 0x3000 },
- { 0x9400, 0x201f, 0x2000 },
- { 0x1600, 0x201e, 0x0000 },
- { 0x1500, 0x2020, 0x0000 },
- { 0x9500, 0x2023, 0x2000 },
- { 0x1500, 0x2022, 0x0000 },
- { 0x1500, 0x2024, 0x0000 },
- { 0x9500, 0x2035, 0x5000 },
- { 0x8100, 0x202d, 0x4000 },
- { 0x9c00, 0x2029, 0x3000 },
- { 0x9500, 0x2027, 0x2000 },
- { 0x1500, 0x2026, 0x0000 },
- { 0x1b00, 0x2028, 0x0000 },
- { 0x8100, 0x202b, 0x2000 },
- { 0x0100, 0x202a, 0x0000 },
- { 0x0100, 0x202c, 0x0000 },
- { 0x9500, 0x2031, 0x3000 },
- { 0x9d00, 0x202f, 0x2000 },
- { 0x0100, 0x202e, 0x0000 },
- { 0x1500, 0x2030, 0x0000 },
- { 0x9500, 0x2033, 0x2000 },
- { 0x1500, 0x2032, 0x0000 },
- { 0x1500, 0x2034, 0x0000 },
- { 0x9500, 0x203d, 0x4000 },
- { 0x9400, 0x2039, 0x3000 },
- { 0x9500, 0x2037, 0x2000 },
- { 0x1500, 0x2036, 0x0000 },
- { 0x1500, 0x2038, 0x0000 },
- { 0x9500, 0x203b, 0x2000 },
- { 0x1300, 0x203a, 0x0000 },
- { 0x1500, 0x203c, 0x0000 },
- { 0x9500, 0x2041, 0x3000 },
- { 0x9000, 0x203f, 0x2000 },
- { 0x1500, 0x203e, 0x0000 },
- { 0x1000, 0x2040, 0x0000 },
- { 0x9500, 0x2043, 0x2000 },
- { 0x1500, 0x2042, 0x0000 },
- { 0x1900, 0x2044, 0x0000 },
- { 0x9900, 0x21ae, 0x9000 },
- { 0x8900, 0x211a, 0x8000 },
- { 0x9700, 0x20a7, 0x7000 },
- { 0x8f00, 0x2076, 0x6000 },
- { 0x9500, 0x2057, 0x5000 },
- { 0x9500, 0x204d, 0x4000 },
- { 0x9500, 0x2049, 0x3000 },
- { 0x9500, 0x2047, 0x2000 },
- { 0x1200, 0x2046, 0x0000 },
- { 0x1500, 0x2048, 0x0000 },
- { 0x9500, 0x204b, 0x2000 },
- { 0x1500, 0x204a, 0x0000 },
- { 0x1500, 0x204c, 0x0000 },
- { 0x9500, 0x2051, 0x3000 },
- { 0x9500, 0x204f, 0x2000 },
- { 0x1500, 0x204e, 0x0000 },
- { 0x1500, 0x2050, 0x0000 },
- { 0x9500, 0x2053, 0x2000 },
- { 0x1900, 0x2052, 0x0000 },
- { 0x1000, 0x2054, 0x0000 },
- { 0x8100, 0x206c, 0x4000 },
- { 0x8100, 0x2062, 0x3000 },
- { 0x8100, 0x2060, 0x2000 },
- { 0x1d00, 0x205f, 0x0000 },
- { 0x0100, 0x2061, 0x0000 },
- { 0x8100, 0x206a, 0x2000 },
- { 0x0100, 0x2063, 0x0000 },
- { 0x0100, 0x206b, 0x0000 },
- { 0x8f00, 0x2070, 0x3000 },
- { 0x8100, 0x206e, 0x2000 },
- { 0x0100, 0x206d, 0x0000 },
- { 0x0100, 0x206f, 0x0000 },
- { 0x8f00, 0x2074, 0x2000 },
- { 0x0500, 0x2071, 0x0000 },
- { 0x0f00, 0x2075, 0x0000 },
- { 0x8f00, 0x2086, 0x5000 },
- { 0x9200, 0x207e, 0x4000 },
- { 0x9900, 0x207a, 0x3000 },
- { 0x8f00, 0x2078, 0x2000 },
- { 0x0f00, 0x2077, 0x0000 },
- { 0x0f00, 0x2079, 0x0000 },
- { 0x9900, 0x207c, 0x2000 },
- { 0x1900, 0x207b, 0x0000 },
- { 0x1600, 0x207d, 0x0000 },
- { 0x8f00, 0x2082, 0x3000 },
- { 0x8f00, 0x2080, 0x2000 },
- { 0x0500, 0x207f, 0x0000 },
- { 0x0f00, 0x2081, 0x0000 },
- { 0x8f00, 0x2084, 0x2000 },
- { 0x0f00, 0x2083, 0x0000 },
- { 0x0f00, 0x2085, 0x0000 },
- { 0x9200, 0x208e, 0x4000 },
- { 0x9900, 0x208a, 0x3000 },
- { 0x8f00, 0x2088, 0x2000 },
- { 0x0f00, 0x2087, 0x0000 },
- { 0x0f00, 0x2089, 0x0000 },
- { 0x9900, 0x208c, 0x2000 },
- { 0x1900, 0x208b, 0x0000 },
- { 0x1600, 0x208d, 0x0000 },
- { 0x9700, 0x20a3, 0x3000 },
- { 0x9700, 0x20a1, 0x2000 },
- { 0x1700, 0x20a0, 0x0000 },
- { 0x1700, 0x20a2, 0x0000 },
- { 0x9700, 0x20a5, 0x2000 },
- { 0x1700, 0x20a4, 0x0000 },
- { 0x1700, 0x20a6, 0x0000 },
- { 0x8c00, 0x20e5, 0x6000 },
- { 0x8c00, 0x20d5, 0x5000 },
- { 0x9700, 0x20af, 0x4000 },
- { 0x9700, 0x20ab, 0x3000 },
- { 0x9700, 0x20a9, 0x2000 },
- { 0x1700, 0x20a8, 0x0000 },
- { 0x1700, 0x20aa, 0x0000 },
- { 0x9700, 0x20ad, 0x2000 },
- { 0x1700, 0x20ac, 0x0000 },
- { 0x1700, 0x20ae, 0x0000 },
- { 0x8c00, 0x20d1, 0x3000 },
- { 0x9700, 0x20b1, 0x2000 },
- { 0x1700, 0x20b0, 0x0000 },
- { 0x0c00, 0x20d0, 0x0000 },
- { 0x8c00, 0x20d3, 0x2000 },
- { 0x0c00, 0x20d2, 0x0000 },
- { 0x0c00, 0x20d4, 0x0000 },
- { 0x8b00, 0x20dd, 0x4000 },
- { 0x8c00, 0x20d9, 0x3000 },
- { 0x8c00, 0x20d7, 0x2000 },
- { 0x0c00, 0x20d6, 0x0000 },
- { 0x0c00, 0x20d8, 0x0000 },
- { 0x8c00, 0x20db, 0x2000 },
- { 0x0c00, 0x20da, 0x0000 },
- { 0x0c00, 0x20dc, 0x0000 },
- { 0x8c00, 0x20e1, 0x3000 },
- { 0x8b00, 0x20df, 0x2000 },
- { 0x0b00, 0x20de, 0x0000 },
- { 0x0b00, 0x20e0, 0x0000 },
- { 0x8b00, 0x20e3, 0x2000 },
- { 0x0b00, 0x20e2, 0x0000 },
- { 0x0b00, 0x20e4, 0x0000 },
- { 0x8500, 0x210a, 0x5000 },
- { 0x8900, 0x2102, 0x4000 },
- { 0x8c00, 0x20e9, 0x3000 },
- { 0x8c00, 0x20e7, 0x2000 },
- { 0x0c00, 0x20e6, 0x0000 },
- { 0x0c00, 0x20e8, 0x0000 },
- { 0x9a00, 0x2100, 0x2000 },
- { 0x0c00, 0x20ea, 0x0000 },
- { 0x1a00, 0x2101, 0x0000 },
- { 0x9a00, 0x2106, 0x3000 },
- { 0x9a00, 0x2104, 0x2000 },
- { 0x1a00, 0x2103, 0x0000 },
- { 0x1a00, 0x2105, 0x0000 },
- { 0x9a00, 0x2108, 0x2000 },
- { 0x0900, 0x2107, 0x0000 },
- { 0x1a00, 0x2109, 0x0000 },
- { 0x8900, 0x2112, 0x4000 },
- { 0x8500, 0x210e, 0x3000 },
- { 0x8900, 0x210c, 0x2000 },
- { 0x0900, 0x210b, 0x0000 },
- { 0x0900, 0x210d, 0x0000 },
- { 0x8900, 0x2110, 0x2000 },
- { 0x0500, 0x210f, 0x0000 },
- { 0x0900, 0x2111, 0x0000 },
- { 0x9a00, 0x2116, 0x3000 },
- { 0x9a00, 0x2114, 0x2000 },
- { 0x0500, 0x2113, 0x0000 },
- { 0x0900, 0x2115, 0x0000 },
- { 0x9a00, 0x2118, 0x2000 },
- { 0x1a00, 0x2117, 0x0000 },
- { 0x0900, 0x2119, 0x0000 },
- { 0x8e00, 0x2162, 0x7000 },
- { 0x9a00, 0x213a, 0x6000 },
- { 0x8900, 0x212a, 0x5000 },
- { 0x9a00, 0x2122, 0x4000 },
- { 0x9a00, 0x211e, 0x3000 },
- { 0x8900, 0x211c, 0x2000 },
- { 0x0900, 0x211b, 0x0000 },
- { 0x0900, 0x211d, 0x0000 },
- { 0x9a00, 0x2120, 0x2000 },
- { 0x1a00, 0x211f, 0x0000 },
- { 0x1a00, 0x2121, 0x0000 },
- { 0x8900, 0x2126, 0x3000 },
- { 0x8900, 0x2124, 0x2000 },
- { 0x1a00, 0x2123, 0x0000 },
- { 0x1a00, 0x2125, 0x0000 },
- { 0x8900, 0x2128, 0x2000 },
- { 0x1a00, 0x2127, 0x0000 },
- { 0x1a00, 0x2129, 0x0000 },
- { 0x9a00, 0x2132, 0x4000 },
- { 0x9a00, 0x212e, 0x3000 },
- { 0x8900, 0x212c, 0x2000 },
- { 0x0900, 0x212b, 0x0000 },
- { 0x0900, 0x212d, 0x0000 },
- { 0x8900, 0x2130, 0x2000 },
- { 0x0500, 0x212f, 0x0000 },
- { 0x0900, 0x2131, 0x0000 },
- { 0x8700, 0x2136, 0x3000 },
- { 0x8500, 0x2134, 0x2000 },
- { 0x0900, 0x2133, 0x0000 },
- { 0x0700, 0x2135, 0x0000 },
- { 0x8700, 0x2138, 0x2000 },
- { 0x0700, 0x2137, 0x0000 },
- { 0x0500, 0x2139, 0x0000 },
- { 0x9900, 0x214b, 0x5000 },
- { 0x9900, 0x2143, 0x4000 },
- { 0x8900, 0x213f, 0x3000 },
- { 0x8500, 0x213d, 0x2000 },
- { 0x1a00, 0x213b, 0x0000 },
- { 0x0900, 0x213e, 0x0000 },
- { 0x9900, 0x2141, 0x2000 },
- { 0x1900, 0x2140, 0x0000 },
- { 0x1900, 0x2142, 0x0000 },
- { 0x8500, 0x2147, 0x3000 },
- { 0x8900, 0x2145, 0x2000 },
- { 0x1900, 0x2144, 0x0000 },
- { 0x0500, 0x2146, 0x0000 },
- { 0x8500, 0x2149, 0x2000 },
- { 0x0500, 0x2148, 0x0000 },
- { 0x1a00, 0x214a, 0x0000 },
- { 0x8f00, 0x215a, 0x4000 },
- { 0x8f00, 0x2156, 0x3000 },
- { 0x8f00, 0x2154, 0x2000 },
- { 0x0f00, 0x2153, 0x0000 },
- { 0x0f00, 0x2155, 0x0000 },
- { 0x8f00, 0x2158, 0x2000 },
- { 0x0f00, 0x2157, 0x0000 },
- { 0x0f00, 0x2159, 0x0000 },
- { 0x8f00, 0x215e, 0x3000 },
- { 0x8f00, 0x215c, 0x2000 },
- { 0x0f00, 0x215b, 0x0000 },
- { 0x0f00, 0x215d, 0x0000 },
- { 0x8e00, 0x2160, 0x2000 },
- { 0x0f00, 0x215f, 0x0000 },
- { 0x0e00, 0x2161, 0x0000 },
- { 0x8e00, 0x2182, 0x6000 },
- { 0x8e00, 0x2172, 0x5000 },
- { 0x8e00, 0x216a, 0x4000 },
- { 0x8e00, 0x2166, 0x3000 },
- { 0x8e00, 0x2164, 0x2000 },
- { 0x0e00, 0x2163, 0x0000 },
- { 0x0e00, 0x2165, 0x0000 },
- { 0x8e00, 0x2168, 0x2000 },
- { 0x0e00, 0x2167, 0x0000 },
- { 0x0e00, 0x2169, 0x0000 },
- { 0x8e00, 0x216e, 0x3000 },
- { 0x8e00, 0x216c, 0x2000 },
- { 0x0e00, 0x216b, 0x0000 },
- { 0x0e00, 0x216d, 0x0000 },
- { 0x8e00, 0x2170, 0x2000 },
- { 0x0e00, 0x216f, 0x0000 },
- { 0x0e00, 0x2171, 0x0000 },
- { 0x8e00, 0x217a, 0x4000 },
- { 0x8e00, 0x2176, 0x3000 },
- { 0x8e00, 0x2174, 0x2000 },
- { 0x0e00, 0x2173, 0x0000 },
- { 0x0e00, 0x2175, 0x0000 },
- { 0x8e00, 0x2178, 0x2000 },
- { 0x0e00, 0x2177, 0x0000 },
- { 0x0e00, 0x2179, 0x0000 },
- { 0x8e00, 0x217e, 0x3000 },
- { 0x8e00, 0x217c, 0x2000 },
- { 0x0e00, 0x217b, 0x0000 },
- { 0x0e00, 0x217d, 0x0000 },
- { 0x8e00, 0x2180, 0x2000 },
- { 0x0e00, 0x217f, 0x0000 },
- { 0x0e00, 0x2181, 0x0000 },
- { 0x9a00, 0x219e, 0x5000 },
- { 0x9a00, 0x2196, 0x4000 },
- { 0x9900, 0x2192, 0x3000 },
- { 0x9900, 0x2190, 0x2000 },
- { 0x0e00, 0x2183, 0x0000 },
- { 0x1900, 0x2191, 0x0000 },
- { 0x9900, 0x2194, 0x2000 },
- { 0x1900, 0x2193, 0x0000 },
- { 0x1a00, 0x2195, 0x0000 },
- { 0x9900, 0x219a, 0x3000 },
- { 0x9a00, 0x2198, 0x2000 },
- { 0x1a00, 0x2197, 0x0000 },
- { 0x1a00, 0x2199, 0x0000 },
- { 0x9a00, 0x219c, 0x2000 },
- { 0x1900, 0x219b, 0x0000 },
- { 0x1a00, 0x219d, 0x0000 },
- { 0x9900, 0x21a6, 0x4000 },
- { 0x9a00, 0x21a2, 0x3000 },
- { 0x9900, 0x21a0, 0x2000 },
- { 0x1a00, 0x219f, 0x0000 },
- { 0x1a00, 0x21a1, 0x0000 },
- { 0x9a00, 0x21a4, 0x2000 },
- { 0x1900, 0x21a3, 0x0000 },
- { 0x1a00, 0x21a5, 0x0000 },
- { 0x9a00, 0x21aa, 0x3000 },
- { 0x9a00, 0x21a8, 0x2000 },
- { 0x1a00, 0x21a7, 0x0000 },
- { 0x1a00, 0x21a9, 0x0000 },
- { 0x9a00, 0x21ac, 0x2000 },
- { 0x1a00, 0x21ab, 0x0000 },
- { 0x1a00, 0x21ad, 0x0000 },
- { 0x9900, 0x222e, 0x8000 },
- { 0x9a00, 0x21ee, 0x7000 },
- { 0x9900, 0x21ce, 0x6000 },
- { 0x9a00, 0x21be, 0x5000 },
- { 0x9a00, 0x21b6, 0x4000 },
- { 0x9a00, 0x21b2, 0x3000 },
- { 0x9a00, 0x21b0, 0x2000 },
- { 0x1a00, 0x21af, 0x0000 },
- { 0x1a00, 0x21b1, 0x0000 },
- { 0x9a00, 0x21b4, 0x2000 },
- { 0x1a00, 0x21b3, 0x0000 },
- { 0x1a00, 0x21b5, 0x0000 },
- { 0x9a00, 0x21ba, 0x3000 },
- { 0x9a00, 0x21b8, 0x2000 },
- { 0x1a00, 0x21b7, 0x0000 },
- { 0x1a00, 0x21b9, 0x0000 },
- { 0x9a00, 0x21bc, 0x2000 },
- { 0x1a00, 0x21bb, 0x0000 },
- { 0x1a00, 0x21bd, 0x0000 },
- { 0x9a00, 0x21c6, 0x4000 },
- { 0x9a00, 0x21c2, 0x3000 },
- { 0x9a00, 0x21c0, 0x2000 },
- { 0x1a00, 0x21bf, 0x0000 },
- { 0x1a00, 0x21c1, 0x0000 },
- { 0x9a00, 0x21c4, 0x2000 },
- { 0x1a00, 0x21c3, 0x0000 },
- { 0x1a00, 0x21c5, 0x0000 },
- { 0x9a00, 0x21ca, 0x3000 },
- { 0x9a00, 0x21c8, 0x2000 },
- { 0x1a00, 0x21c7, 0x0000 },
- { 0x1a00, 0x21c9, 0x0000 },
- { 0x9a00, 0x21cc, 0x2000 },
- { 0x1a00, 0x21cb, 0x0000 },
- { 0x1a00, 0x21cd, 0x0000 },
- { 0x9a00, 0x21de, 0x5000 },
- { 0x9a00, 0x21d6, 0x4000 },
- { 0x9900, 0x21d2, 0x3000 },
- { 0x9a00, 0x21d0, 0x2000 },
- { 0x1900, 0x21cf, 0x0000 },
- { 0x1a00, 0x21d1, 0x0000 },
- { 0x9900, 0x21d4, 0x2000 },
- { 0x1a00, 0x21d3, 0x0000 },
- { 0x1a00, 0x21d5, 0x0000 },
- { 0x9a00, 0x21da, 0x3000 },
- { 0x9a00, 0x21d8, 0x2000 },
- { 0x1a00, 0x21d7, 0x0000 },
- { 0x1a00, 0x21d9, 0x0000 },
- { 0x9a00, 0x21dc, 0x2000 },
- { 0x1a00, 0x21db, 0x0000 },
- { 0x1a00, 0x21dd, 0x0000 },
- { 0x9a00, 0x21e6, 0x4000 },
- { 0x9a00, 0x21e2, 0x3000 },
- { 0x9a00, 0x21e0, 0x2000 },
- { 0x1a00, 0x21df, 0x0000 },
- { 0x1a00, 0x21e1, 0x0000 },
- { 0x9a00, 0x21e4, 0x2000 },
- { 0x1a00, 0x21e3, 0x0000 },
- { 0x1a00, 0x21e5, 0x0000 },
- { 0x9a00, 0x21ea, 0x3000 },
- { 0x9a00, 0x21e8, 0x2000 },
- { 0x1a00, 0x21e7, 0x0000 },
- { 0x1a00, 0x21e9, 0x0000 },
- { 0x9a00, 0x21ec, 0x2000 },
- { 0x1a00, 0x21eb, 0x0000 },
- { 0x1a00, 0x21ed, 0x0000 },
- { 0x9900, 0x220e, 0x6000 },
- { 0x9900, 0x21fe, 0x5000 },
- { 0x9900, 0x21f6, 0x4000 },
- { 0x9a00, 0x21f2, 0x3000 },
- { 0x9a00, 0x21f0, 0x2000 },
- { 0x1a00, 0x21ef, 0x0000 },
- { 0x1a00, 0x21f1, 0x0000 },
- { 0x9900, 0x21f4, 0x2000 },
- { 0x1a00, 0x21f3, 0x0000 },
- { 0x1900, 0x21f5, 0x0000 },
- { 0x9900, 0x21fa, 0x3000 },
- { 0x9900, 0x21f8, 0x2000 },
- { 0x1900, 0x21f7, 0x0000 },
- { 0x1900, 0x21f9, 0x0000 },
- { 0x9900, 0x21fc, 0x2000 },
- { 0x1900, 0x21fb, 0x0000 },
- { 0x1900, 0x21fd, 0x0000 },
- { 0x9900, 0x2206, 0x4000 },
- { 0x9900, 0x2202, 0x3000 },
- { 0x9900, 0x2200, 0x2000 },
- { 0x1900, 0x21ff, 0x0000 },
- { 0x1900, 0x2201, 0x0000 },
- { 0x9900, 0x2204, 0x2000 },
- { 0x1900, 0x2203, 0x0000 },
- { 0x1900, 0x2205, 0x0000 },
- { 0x9900, 0x220a, 0x3000 },
- { 0x9900, 0x2208, 0x2000 },
- { 0x1900, 0x2207, 0x0000 },
- { 0x1900, 0x2209, 0x0000 },
- { 0x9900, 0x220c, 0x2000 },
- { 0x1900, 0x220b, 0x0000 },
- { 0x1900, 0x220d, 0x0000 },
- { 0x9900, 0x221e, 0x5000 },
- { 0x9900, 0x2216, 0x4000 },
- { 0x9900, 0x2212, 0x3000 },
- { 0x9900, 0x2210, 0x2000 },
- { 0x1900, 0x220f, 0x0000 },
- { 0x1900, 0x2211, 0x0000 },
- { 0x9900, 0x2214, 0x2000 },
- { 0x1900, 0x2213, 0x0000 },
- { 0x1900, 0x2215, 0x0000 },
- { 0x9900, 0x221a, 0x3000 },
- { 0x9900, 0x2218, 0x2000 },
- { 0x1900, 0x2217, 0x0000 },
- { 0x1900, 0x2219, 0x0000 },
- { 0x9900, 0x221c, 0x2000 },
- { 0x1900, 0x221b, 0x0000 },
- { 0x1900, 0x221d, 0x0000 },
- { 0x9900, 0x2226, 0x4000 },
- { 0x9900, 0x2222, 0x3000 },
- { 0x9900, 0x2220, 0x2000 },
- { 0x1900, 0x221f, 0x0000 },
- { 0x1900, 0x2221, 0x0000 },
- { 0x9900, 0x2224, 0x2000 },
- { 0x1900, 0x2223, 0x0000 },
- { 0x1900, 0x2225, 0x0000 },
- { 0x9900, 0x222a, 0x3000 },
- { 0x9900, 0x2228, 0x2000 },
- { 0x1900, 0x2227, 0x0000 },
- { 0x1900, 0x2229, 0x0000 },
- { 0x9900, 0x222c, 0x2000 },
- { 0x1900, 0x222b, 0x0000 },
- { 0x1900, 0x222d, 0x0000 },
- { 0x9900, 0x226e, 0x7000 },
- { 0x9900, 0x224e, 0x6000 },
- { 0x9900, 0x223e, 0x5000 },
- { 0x9900, 0x2236, 0x4000 },
- { 0x9900, 0x2232, 0x3000 },
- { 0x9900, 0x2230, 0x2000 },
- { 0x1900, 0x222f, 0x0000 },
- { 0x1900, 0x2231, 0x0000 },
- { 0x9900, 0x2234, 0x2000 },
- { 0x1900, 0x2233, 0x0000 },
- { 0x1900, 0x2235, 0x0000 },
- { 0x9900, 0x223a, 0x3000 },
- { 0x9900, 0x2238, 0x2000 },
- { 0x1900, 0x2237, 0x0000 },
- { 0x1900, 0x2239, 0x0000 },
- { 0x9900, 0x223c, 0x2000 },
- { 0x1900, 0x223b, 0x0000 },
- { 0x1900, 0x223d, 0x0000 },
- { 0x9900, 0x2246, 0x4000 },
- { 0x9900, 0x2242, 0x3000 },
- { 0x9900, 0x2240, 0x2000 },
- { 0x1900, 0x223f, 0x0000 },
- { 0x1900, 0x2241, 0x0000 },
- { 0x9900, 0x2244, 0x2000 },
- { 0x1900, 0x2243, 0x0000 },
- { 0x1900, 0x2245, 0x0000 },
- { 0x9900, 0x224a, 0x3000 },
- { 0x9900, 0x2248, 0x2000 },
- { 0x1900, 0x2247, 0x0000 },
- { 0x1900, 0x2249, 0x0000 },
- { 0x9900, 0x224c, 0x2000 },
- { 0x1900, 0x224b, 0x0000 },
- { 0x1900, 0x224d, 0x0000 },
- { 0x9900, 0x225e, 0x5000 },
- { 0x9900, 0x2256, 0x4000 },
- { 0x9900, 0x2252, 0x3000 },
- { 0x9900, 0x2250, 0x2000 },
- { 0x1900, 0x224f, 0x0000 },
- { 0x1900, 0x2251, 0x0000 },
- { 0x9900, 0x2254, 0x2000 },
- { 0x1900, 0x2253, 0x0000 },
- { 0x1900, 0x2255, 0x0000 },
- { 0x9900, 0x225a, 0x3000 },
- { 0x9900, 0x2258, 0x2000 },
- { 0x1900, 0x2257, 0x0000 },
- { 0x1900, 0x2259, 0x0000 },
- { 0x9900, 0x225c, 0x2000 },
- { 0x1900, 0x225b, 0x0000 },
- { 0x1900, 0x225d, 0x0000 },
- { 0x9900, 0x2266, 0x4000 },
- { 0x9900, 0x2262, 0x3000 },
- { 0x9900, 0x2260, 0x2000 },
- { 0x1900, 0x225f, 0x0000 },
- { 0x1900, 0x2261, 0x0000 },
- { 0x9900, 0x2264, 0x2000 },
- { 0x1900, 0x2263, 0x0000 },
- { 0x1900, 0x2265, 0x0000 },
- { 0x9900, 0x226a, 0x3000 },
- { 0x9900, 0x2268, 0x2000 },
- { 0x1900, 0x2267, 0x0000 },
- { 0x1900, 0x2269, 0x0000 },
- { 0x9900, 0x226c, 0x2000 },
- { 0x1900, 0x226b, 0x0000 },
- { 0x1900, 0x226d, 0x0000 },
- { 0x9900, 0x228e, 0x6000 },
- { 0x9900, 0x227e, 0x5000 },
- { 0x9900, 0x2276, 0x4000 },
- { 0x9900, 0x2272, 0x3000 },
- { 0x9900, 0x2270, 0x2000 },
- { 0x1900, 0x226f, 0x0000 },
- { 0x1900, 0x2271, 0x0000 },
- { 0x9900, 0x2274, 0x2000 },
- { 0x1900, 0x2273, 0x0000 },
- { 0x1900, 0x2275, 0x0000 },
- { 0x9900, 0x227a, 0x3000 },
- { 0x9900, 0x2278, 0x2000 },
- { 0x1900, 0x2277, 0x0000 },
- { 0x1900, 0x2279, 0x0000 },
- { 0x9900, 0x227c, 0x2000 },
- { 0x1900, 0x227b, 0x0000 },
- { 0x1900, 0x227d, 0x0000 },
- { 0x9900, 0x2286, 0x4000 },
- { 0x9900, 0x2282, 0x3000 },
- { 0x9900, 0x2280, 0x2000 },
- { 0x1900, 0x227f, 0x0000 },
- { 0x1900, 0x2281, 0x0000 },
- { 0x9900, 0x2284, 0x2000 },
- { 0x1900, 0x2283, 0x0000 },
- { 0x1900, 0x2285, 0x0000 },
- { 0x9900, 0x228a, 0x3000 },
- { 0x9900, 0x2288, 0x2000 },
- { 0x1900, 0x2287, 0x0000 },
- { 0x1900, 0x2289, 0x0000 },
- { 0x9900, 0x228c, 0x2000 },
- { 0x1900, 0x228b, 0x0000 },
- { 0x1900, 0x228d, 0x0000 },
- { 0x9900, 0x229e, 0x5000 },
- { 0x9900, 0x2296, 0x4000 },
- { 0x9900, 0x2292, 0x3000 },
- { 0x9900, 0x2290, 0x2000 },
- { 0x1900, 0x228f, 0x0000 },
- { 0x1900, 0x2291, 0x0000 },
- { 0x9900, 0x2294, 0x2000 },
- { 0x1900, 0x2293, 0x0000 },
- { 0x1900, 0x2295, 0x0000 },
- { 0x9900, 0x229a, 0x3000 },
- { 0x9900, 0x2298, 0x2000 },
- { 0x1900, 0x2297, 0x0000 },
- { 0x1900, 0x2299, 0x0000 },
- { 0x9900, 0x229c, 0x2000 },
- { 0x1900, 0x229b, 0x0000 },
- { 0x1900, 0x229d, 0x0000 },
- { 0x9900, 0x22a6, 0x4000 },
- { 0x9900, 0x22a2, 0x3000 },
- { 0x9900, 0x22a0, 0x2000 },
- { 0x1900, 0x229f, 0x0000 },
- { 0x1900, 0x22a1, 0x0000 },
- { 0x9900, 0x22a4, 0x2000 },
- { 0x1900, 0x22a3, 0x0000 },
- { 0x1900, 0x22a5, 0x0000 },
- { 0x9900, 0x22aa, 0x3000 },
- { 0x9900, 0x22a8, 0x2000 },
- { 0x1900, 0x22a7, 0x0000 },
- { 0x1900, 0x22a9, 0x0000 },
- { 0x9900, 0x22ac, 0x2000 },
- { 0x1900, 0x22ab, 0x0000 },
- { 0x1900, 0x22ad, 0x0000 },
- { 0x8f00, 0x2787, 0xb000 },
- { 0x9a00, 0x250b, 0xa000 },
- { 0x9900, 0x23ae, 0x9000 },
- { 0x9a00, 0x232e, 0x8000 },
- { 0x9900, 0x22ee, 0x7000 },
- { 0x9900, 0x22ce, 0x6000 },
- { 0x9900, 0x22be, 0x5000 },
- { 0x9900, 0x22b6, 0x4000 },
- { 0x9900, 0x22b2, 0x3000 },
- { 0x9900, 0x22b0, 0x2000 },
- { 0x1900, 0x22af, 0x0000 },
- { 0x1900, 0x22b1, 0x0000 },
- { 0x9900, 0x22b4, 0x2000 },
- { 0x1900, 0x22b3, 0x0000 },
- { 0x1900, 0x22b5, 0x0000 },
- { 0x9900, 0x22ba, 0x3000 },
- { 0x9900, 0x22b8, 0x2000 },
- { 0x1900, 0x22b7, 0x0000 },
- { 0x1900, 0x22b9, 0x0000 },
- { 0x9900, 0x22bc, 0x2000 },
- { 0x1900, 0x22bb, 0x0000 },
- { 0x1900, 0x22bd, 0x0000 },
- { 0x9900, 0x22c6, 0x4000 },
- { 0x9900, 0x22c2, 0x3000 },
- { 0x9900, 0x22c0, 0x2000 },
- { 0x1900, 0x22bf, 0x0000 },
- { 0x1900, 0x22c1, 0x0000 },
- { 0x9900, 0x22c4, 0x2000 },
- { 0x1900, 0x22c3, 0x0000 },
- { 0x1900, 0x22c5, 0x0000 },
- { 0x9900, 0x22ca, 0x3000 },
- { 0x9900, 0x22c8, 0x2000 },
- { 0x1900, 0x22c7, 0x0000 },
- { 0x1900, 0x22c9, 0x0000 },
- { 0x9900, 0x22cc, 0x2000 },
- { 0x1900, 0x22cb, 0x0000 },
- { 0x1900, 0x22cd, 0x0000 },
- { 0x9900, 0x22de, 0x5000 },
- { 0x9900, 0x22d6, 0x4000 },
- { 0x9900, 0x22d2, 0x3000 },
- { 0x9900, 0x22d0, 0x2000 },
- { 0x1900, 0x22cf, 0x0000 },
- { 0x1900, 0x22d1, 0x0000 },
- { 0x9900, 0x22d4, 0x2000 },
- { 0x1900, 0x22d3, 0x0000 },
- { 0x1900, 0x22d5, 0x0000 },
- { 0x9900, 0x22da, 0x3000 },
- { 0x9900, 0x22d8, 0x2000 },
- { 0x1900, 0x22d7, 0x0000 },
- { 0x1900, 0x22d9, 0x0000 },
- { 0x9900, 0x22dc, 0x2000 },
- { 0x1900, 0x22db, 0x0000 },
- { 0x1900, 0x22dd, 0x0000 },
- { 0x9900, 0x22e6, 0x4000 },
- { 0x9900, 0x22e2, 0x3000 },
- { 0x9900, 0x22e0, 0x2000 },
- { 0x1900, 0x22df, 0x0000 },
- { 0x1900, 0x22e1, 0x0000 },
- { 0x9900, 0x22e4, 0x2000 },
- { 0x1900, 0x22e3, 0x0000 },
- { 0x1900, 0x22e5, 0x0000 },
- { 0x9900, 0x22ea, 0x3000 },
- { 0x9900, 0x22e8, 0x2000 },
- { 0x1900, 0x22e7, 0x0000 },
- { 0x1900, 0x22e9, 0x0000 },
- { 0x9900, 0x22ec, 0x2000 },
- { 0x1900, 0x22eb, 0x0000 },
- { 0x1900, 0x22ed, 0x0000 },
- { 0x9a00, 0x230e, 0x6000 },
- { 0x9900, 0x22fe, 0x5000 },
- { 0x9900, 0x22f6, 0x4000 },
- { 0x9900, 0x22f2, 0x3000 },
- { 0x9900, 0x22f0, 0x2000 },
- { 0x1900, 0x22ef, 0x0000 },
- { 0x1900, 0x22f1, 0x0000 },
- { 0x9900, 0x22f4, 0x2000 },
- { 0x1900, 0x22f3, 0x0000 },
- { 0x1900, 0x22f5, 0x0000 },
- { 0x9900, 0x22fa, 0x3000 },
- { 0x9900, 0x22f8, 0x2000 },
- { 0x1900, 0x22f7, 0x0000 },
- { 0x1900, 0x22f9, 0x0000 },
- { 0x9900, 0x22fc, 0x2000 },
- { 0x1900, 0x22fb, 0x0000 },
- { 0x1900, 0x22fd, 0x0000 },
- { 0x9a00, 0x2306, 0x4000 },
- { 0x9a00, 0x2302, 0x3000 },
- { 0x9a00, 0x2300, 0x2000 },
- { 0x1900, 0x22ff, 0x0000 },
- { 0x1a00, 0x2301, 0x0000 },
- { 0x9a00, 0x2304, 0x2000 },
- { 0x1a00, 0x2303, 0x0000 },
- { 0x1a00, 0x2305, 0x0000 },
- { 0x9900, 0x230a, 0x3000 },
- { 0x9900, 0x2308, 0x2000 },
- { 0x1a00, 0x2307, 0x0000 },
- { 0x1900, 0x2309, 0x0000 },
- { 0x9a00, 0x230c, 0x2000 },
- { 0x1900, 0x230b, 0x0000 },
- { 0x1a00, 0x230d, 0x0000 },
- { 0x9a00, 0x231e, 0x5000 },
- { 0x9a00, 0x2316, 0x4000 },
- { 0x9a00, 0x2312, 0x3000 },
- { 0x9a00, 0x2310, 0x2000 },
- { 0x1a00, 0x230f, 0x0000 },
- { 0x1a00, 0x2311, 0x0000 },
- { 0x9a00, 0x2314, 0x2000 },
- { 0x1a00, 0x2313, 0x0000 },
- { 0x1a00, 0x2315, 0x0000 },
- { 0x9a00, 0x231a, 0x3000 },
- { 0x9a00, 0x2318, 0x2000 },
- { 0x1a00, 0x2317, 0x0000 },
- { 0x1a00, 0x2319, 0x0000 },
- { 0x9a00, 0x231c, 0x2000 },
- { 0x1a00, 0x231b, 0x0000 },
- { 0x1a00, 0x231d, 0x0000 },
- { 0x9a00, 0x2326, 0x4000 },
- { 0x9a00, 0x2322, 0x3000 },
- { 0x9900, 0x2320, 0x2000 },
- { 0x1a00, 0x231f, 0x0000 },
- { 0x1900, 0x2321, 0x0000 },
- { 0x9a00, 0x2324, 0x2000 },
- { 0x1a00, 0x2323, 0x0000 },
- { 0x1a00, 0x2325, 0x0000 },
- { 0x9200, 0x232a, 0x3000 },
- { 0x9a00, 0x2328, 0x2000 },
- { 0x1a00, 0x2327, 0x0000 },
- { 0x1600, 0x2329, 0x0000 },
- { 0x9a00, 0x232c, 0x2000 },
- { 0x1a00, 0x232b, 0x0000 },
- { 0x1a00, 0x232d, 0x0000 },
- { 0x9a00, 0x236e, 0x7000 },
- { 0x9a00, 0x234e, 0x6000 },
- { 0x9a00, 0x233e, 0x5000 },
- { 0x9a00, 0x2336, 0x4000 },
- { 0x9a00, 0x2332, 0x3000 },
- { 0x9a00, 0x2330, 0x2000 },
- { 0x1a00, 0x232f, 0x0000 },
- { 0x1a00, 0x2331, 0x0000 },
- { 0x9a00, 0x2334, 0x2000 },
- { 0x1a00, 0x2333, 0x0000 },
- { 0x1a00, 0x2335, 0x0000 },
- { 0x9a00, 0x233a, 0x3000 },
- { 0x9a00, 0x2338, 0x2000 },
- { 0x1a00, 0x2337, 0x0000 },
- { 0x1a00, 0x2339, 0x0000 },
- { 0x9a00, 0x233c, 0x2000 },
- { 0x1a00, 0x233b, 0x0000 },
- { 0x1a00, 0x233d, 0x0000 },
- { 0x9a00, 0x2346, 0x4000 },
- { 0x9a00, 0x2342, 0x3000 },
- { 0x9a00, 0x2340, 0x2000 },
- { 0x1a00, 0x233f, 0x0000 },
- { 0x1a00, 0x2341, 0x0000 },
- { 0x9a00, 0x2344, 0x2000 },
- { 0x1a00, 0x2343, 0x0000 },
- { 0x1a00, 0x2345, 0x0000 },
- { 0x9a00, 0x234a, 0x3000 },
- { 0x9a00, 0x2348, 0x2000 },
- { 0x1a00, 0x2347, 0x0000 },
- { 0x1a00, 0x2349, 0x0000 },
- { 0x9a00, 0x234c, 0x2000 },
- { 0x1a00, 0x234b, 0x0000 },
- { 0x1a00, 0x234d, 0x0000 },
- { 0x9a00, 0x235e, 0x5000 },
- { 0x9a00, 0x2356, 0x4000 },
- { 0x9a00, 0x2352, 0x3000 },
- { 0x9a00, 0x2350, 0x2000 },
- { 0x1a00, 0x234f, 0x0000 },
- { 0x1a00, 0x2351, 0x0000 },
- { 0x9a00, 0x2354, 0x2000 },
- { 0x1a00, 0x2353, 0x0000 },
- { 0x1a00, 0x2355, 0x0000 },
- { 0x9a00, 0x235a, 0x3000 },
- { 0x9a00, 0x2358, 0x2000 },
- { 0x1a00, 0x2357, 0x0000 },
- { 0x1a00, 0x2359, 0x0000 },
- { 0x9a00, 0x235c, 0x2000 },
- { 0x1a00, 0x235b, 0x0000 },
- { 0x1a00, 0x235d, 0x0000 },
- { 0x9a00, 0x2366, 0x4000 },
- { 0x9a00, 0x2362, 0x3000 },
- { 0x9a00, 0x2360, 0x2000 },
- { 0x1a00, 0x235f, 0x0000 },
- { 0x1a00, 0x2361, 0x0000 },
- { 0x9a00, 0x2364, 0x2000 },
- { 0x1a00, 0x2363, 0x0000 },
- { 0x1a00, 0x2365, 0x0000 },
- { 0x9a00, 0x236a, 0x3000 },
- { 0x9a00, 0x2368, 0x2000 },
- { 0x1a00, 0x2367, 0x0000 },
- { 0x1a00, 0x2369, 0x0000 },
- { 0x9a00, 0x236c, 0x2000 },
- { 0x1a00, 0x236b, 0x0000 },
- { 0x1a00, 0x236d, 0x0000 },
- { 0x9a00, 0x238e, 0x6000 },
- { 0x9a00, 0x237e, 0x5000 },
- { 0x9a00, 0x2376, 0x4000 },
- { 0x9a00, 0x2372, 0x3000 },
- { 0x9a00, 0x2370, 0x2000 },
- { 0x1a00, 0x236f, 0x0000 },
- { 0x1a00, 0x2371, 0x0000 },
- { 0x9a00, 0x2374, 0x2000 },
- { 0x1a00, 0x2373, 0x0000 },
- { 0x1a00, 0x2375, 0x0000 },
- { 0x9a00, 0x237a, 0x3000 },
- { 0x9a00, 0x2378, 0x2000 },
- { 0x1a00, 0x2377, 0x0000 },
- { 0x1a00, 0x2379, 0x0000 },
- { 0x9900, 0x237c, 0x2000 },
- { 0x1a00, 0x237b, 0x0000 },
- { 0x1a00, 0x237d, 0x0000 },
- { 0x9a00, 0x2386, 0x4000 },
- { 0x9a00, 0x2382, 0x3000 },
- { 0x9a00, 0x2380, 0x2000 },
- { 0x1a00, 0x237f, 0x0000 },
- { 0x1a00, 0x2381, 0x0000 },
- { 0x9a00, 0x2384, 0x2000 },
- { 0x1a00, 0x2383, 0x0000 },
- { 0x1a00, 0x2385, 0x0000 },
- { 0x9a00, 0x238a, 0x3000 },
- { 0x9a00, 0x2388, 0x2000 },
- { 0x1a00, 0x2387, 0x0000 },
- { 0x1a00, 0x2389, 0x0000 },
- { 0x9a00, 0x238c, 0x2000 },
- { 0x1a00, 0x238b, 0x0000 },
- { 0x1a00, 0x238d, 0x0000 },
- { 0x9900, 0x239e, 0x5000 },
- { 0x9a00, 0x2396, 0x4000 },
- { 0x9a00, 0x2392, 0x3000 },
- { 0x9a00, 0x2390, 0x2000 },
- { 0x1a00, 0x238f, 0x0000 },
- { 0x1a00, 0x2391, 0x0000 },
- { 0x9a00, 0x2394, 0x2000 },
- { 0x1a00, 0x2393, 0x0000 },
- { 0x1a00, 0x2395, 0x0000 },
- { 0x9a00, 0x239a, 0x3000 },
- { 0x9a00, 0x2398, 0x2000 },
- { 0x1a00, 0x2397, 0x0000 },
- { 0x1a00, 0x2399, 0x0000 },
- { 0x9900, 0x239c, 0x2000 },
- { 0x1900, 0x239b, 0x0000 },
- { 0x1900, 0x239d, 0x0000 },
- { 0x9900, 0x23a6, 0x4000 },
- { 0x9900, 0x23a2, 0x3000 },
- { 0x9900, 0x23a0, 0x2000 },
- { 0x1900, 0x239f, 0x0000 },
- { 0x1900, 0x23a1, 0x0000 },
- { 0x9900, 0x23a4, 0x2000 },
- { 0x1900, 0x23a3, 0x0000 },
- { 0x1900, 0x23a5, 0x0000 },
- { 0x9900, 0x23aa, 0x3000 },
- { 0x9900, 0x23a8, 0x2000 },
- { 0x1900, 0x23a7, 0x0000 },
- { 0x1900, 0x23a9, 0x0000 },
- { 0x9900, 0x23ac, 0x2000 },
- { 0x1900, 0x23ab, 0x0000 },
- { 0x1900, 0x23ad, 0x0000 },
- { 0x8f00, 0x248b, 0x8000 },
- { 0x9a00, 0x241d, 0x7000 },
- { 0x9a00, 0x23ce, 0x6000 },
- { 0x9a00, 0x23be, 0x5000 },
- { 0x9500, 0x23b6, 0x4000 },
- { 0x9900, 0x23b2, 0x3000 },
- { 0x9900, 0x23b0, 0x2000 },
- { 0x1900, 0x23af, 0x0000 },
- { 0x1900, 0x23b1, 0x0000 },
- { 0x9600, 0x23b4, 0x2000 },
- { 0x1900, 0x23b3, 0x0000 },
- { 0x1200, 0x23b5, 0x0000 },
- { 0x9a00, 0x23ba, 0x3000 },
- { 0x9a00, 0x23b8, 0x2000 },
- { 0x1a00, 0x23b7, 0x0000 },
- { 0x1a00, 0x23b9, 0x0000 },
- { 0x9a00, 0x23bc, 0x2000 },
- { 0x1a00, 0x23bb, 0x0000 },
- { 0x1a00, 0x23bd, 0x0000 },
- { 0x9a00, 0x23c6, 0x4000 },
- { 0x9a00, 0x23c2, 0x3000 },
- { 0x9a00, 0x23c0, 0x2000 },
- { 0x1a00, 0x23bf, 0x0000 },
- { 0x1a00, 0x23c1, 0x0000 },
- { 0x9a00, 0x23c4, 0x2000 },
- { 0x1a00, 0x23c3, 0x0000 },
- { 0x1a00, 0x23c5, 0x0000 },
- { 0x9a00, 0x23ca, 0x3000 },
- { 0x9a00, 0x23c8, 0x2000 },
- { 0x1a00, 0x23c7, 0x0000 },
- { 0x1a00, 0x23c9, 0x0000 },
- { 0x9a00, 0x23cc, 0x2000 },
- { 0x1a00, 0x23cb, 0x0000 },
- { 0x1a00, 0x23cd, 0x0000 },
- { 0x9a00, 0x240d, 0x5000 },
- { 0x9a00, 0x2405, 0x4000 },
- { 0x9a00, 0x2401, 0x3000 },
- { 0x9a00, 0x23d0, 0x2000 },
- { 0x1a00, 0x23cf, 0x0000 },
- { 0x1a00, 0x2400, 0x0000 },
- { 0x9a00, 0x2403, 0x2000 },
- { 0x1a00, 0x2402, 0x0000 },
- { 0x1a00, 0x2404, 0x0000 },
- { 0x9a00, 0x2409, 0x3000 },
- { 0x9a00, 0x2407, 0x2000 },
- { 0x1a00, 0x2406, 0x0000 },
- { 0x1a00, 0x2408, 0x0000 },
- { 0x9a00, 0x240b, 0x2000 },
- { 0x1a00, 0x240a, 0x0000 },
- { 0x1a00, 0x240c, 0x0000 },
- { 0x9a00, 0x2415, 0x4000 },
- { 0x9a00, 0x2411, 0x3000 },
- { 0x9a00, 0x240f, 0x2000 },
- { 0x1a00, 0x240e, 0x0000 },
- { 0x1a00, 0x2410, 0x0000 },
- { 0x9a00, 0x2413, 0x2000 },
- { 0x1a00, 0x2412, 0x0000 },
- { 0x1a00, 0x2414, 0x0000 },
- { 0x9a00, 0x2419, 0x3000 },
- { 0x9a00, 0x2417, 0x2000 },
- { 0x1a00, 0x2416, 0x0000 },
- { 0x1a00, 0x2418, 0x0000 },
- { 0x9a00, 0x241b, 0x2000 },
- { 0x1a00, 0x241a, 0x0000 },
- { 0x1a00, 0x241c, 0x0000 },
- { 0x8f00, 0x246b, 0x6000 },
- { 0x9a00, 0x2446, 0x5000 },
- { 0x9a00, 0x2425, 0x4000 },
- { 0x9a00, 0x2421, 0x3000 },
- { 0x9a00, 0x241f, 0x2000 },
- { 0x1a00, 0x241e, 0x0000 },
- { 0x1a00, 0x2420, 0x0000 },
- { 0x9a00, 0x2423, 0x2000 },
- { 0x1a00, 0x2422, 0x0000 },
- { 0x1a00, 0x2424, 0x0000 },
- { 0x9a00, 0x2442, 0x3000 },
- { 0x9a00, 0x2440, 0x2000 },
- { 0x1a00, 0x2426, 0x0000 },
- { 0x1a00, 0x2441, 0x0000 },
- { 0x9a00, 0x2444, 0x2000 },
- { 0x1a00, 0x2443, 0x0000 },
- { 0x1a00, 0x2445, 0x0000 },
- { 0x8f00, 0x2463, 0x4000 },
- { 0x9a00, 0x244a, 0x3000 },
- { 0x9a00, 0x2448, 0x2000 },
- { 0x1a00, 0x2447, 0x0000 },
- { 0x1a00, 0x2449, 0x0000 },
- { 0x8f00, 0x2461, 0x2000 },
- { 0x0f00, 0x2460, 0x0000 },
- { 0x0f00, 0x2462, 0x0000 },
- { 0x8f00, 0x2467, 0x3000 },
- { 0x8f00, 0x2465, 0x2000 },
- { 0x0f00, 0x2464, 0x0000 },
- { 0x0f00, 0x2466, 0x0000 },
- { 0x8f00, 0x2469, 0x2000 },
- { 0x0f00, 0x2468, 0x0000 },
- { 0x0f00, 0x246a, 0x0000 },
- { 0x8f00, 0x247b, 0x5000 },
- { 0x8f00, 0x2473, 0x4000 },
- { 0x8f00, 0x246f, 0x3000 },
- { 0x8f00, 0x246d, 0x2000 },
- { 0x0f00, 0x246c, 0x0000 },
- { 0x0f00, 0x246e, 0x0000 },
- { 0x8f00, 0x2471, 0x2000 },
- { 0x0f00, 0x2470, 0x0000 },
- { 0x0f00, 0x2472, 0x0000 },
- { 0x8f00, 0x2477, 0x3000 },
- { 0x8f00, 0x2475, 0x2000 },
- { 0x0f00, 0x2474, 0x0000 },
- { 0x0f00, 0x2476, 0x0000 },
- { 0x8f00, 0x2479, 0x2000 },
- { 0x0f00, 0x2478, 0x0000 },
- { 0x0f00, 0x247a, 0x0000 },
- { 0x8f00, 0x2483, 0x4000 },
- { 0x8f00, 0x247f, 0x3000 },
- { 0x8f00, 0x247d, 0x2000 },
- { 0x0f00, 0x247c, 0x0000 },
- { 0x0f00, 0x247e, 0x0000 },
- { 0x8f00, 0x2481, 0x2000 },
- { 0x0f00, 0x2480, 0x0000 },
- { 0x0f00, 0x2482, 0x0000 },
- { 0x8f00, 0x2487, 0x3000 },
- { 0x8f00, 0x2485, 0x2000 },
- { 0x0f00, 0x2484, 0x0000 },
- { 0x0f00, 0x2486, 0x0000 },
- { 0x8f00, 0x2489, 0x2000 },
- { 0x0f00, 0x2488, 0x0000 },
- { 0x0f00, 0x248a, 0x0000 },
- { 0x9a00, 0x24cb, 0x7000 },
- { 0x9a00, 0x24ab, 0x6000 },
- { 0x8f00, 0x249b, 0x5000 },
- { 0x8f00, 0x2493, 0x4000 },
- { 0x8f00, 0x248f, 0x3000 },
- { 0x8f00, 0x248d, 0x2000 },
- { 0x0f00, 0x248c, 0x0000 },
- { 0x0f00, 0x248e, 0x0000 },
- { 0x8f00, 0x2491, 0x2000 },
- { 0x0f00, 0x2490, 0x0000 },
- { 0x0f00, 0x2492, 0x0000 },
- { 0x8f00, 0x2497, 0x3000 },
- { 0x8f00, 0x2495, 0x2000 },
- { 0x0f00, 0x2494, 0x0000 },
- { 0x0f00, 0x2496, 0x0000 },
- { 0x8f00, 0x2499, 0x2000 },
- { 0x0f00, 0x2498, 0x0000 },
- { 0x0f00, 0x249a, 0x0000 },
- { 0x9a00, 0x24a3, 0x4000 },
- { 0x9a00, 0x249f, 0x3000 },
- { 0x9a00, 0x249d, 0x2000 },
- { 0x1a00, 0x249c, 0x0000 },
- { 0x1a00, 0x249e, 0x0000 },
- { 0x9a00, 0x24a1, 0x2000 },
- { 0x1a00, 0x24a0, 0x0000 },
- { 0x1a00, 0x24a2, 0x0000 },
- { 0x9a00, 0x24a7, 0x3000 },
- { 0x9a00, 0x24a5, 0x2000 },
- { 0x1a00, 0x24a4, 0x0000 },
- { 0x1a00, 0x24a6, 0x0000 },
- { 0x9a00, 0x24a9, 0x2000 },
- { 0x1a00, 0x24a8, 0x0000 },
- { 0x1a00, 0x24aa, 0x0000 },
- { 0x9a00, 0x24bb, 0x5000 },
- { 0x9a00, 0x24b3, 0x4000 },
- { 0x9a00, 0x24af, 0x3000 },
- { 0x9a00, 0x24ad, 0x2000 },
- { 0x1a00, 0x24ac, 0x0000 },
- { 0x1a00, 0x24ae, 0x0000 },
- { 0x9a00, 0x24b1, 0x2000 },
- { 0x1a00, 0x24b0, 0x0000 },
- { 0x1a00, 0x24b2, 0x0000 },
- { 0x9a00, 0x24b7, 0x3000 },
- { 0x9a00, 0x24b5, 0x2000 },
- { 0x1a00, 0x24b4, 0x0000 },
- { 0x1a00, 0x24b6, 0x0000 },
- { 0x9a00, 0x24b9, 0x2000 },
- { 0x1a00, 0x24b8, 0x0000 },
- { 0x1a00, 0x24ba, 0x0000 },
- { 0x9a00, 0x24c3, 0x4000 },
- { 0x9a00, 0x24bf, 0x3000 },
- { 0x9a00, 0x24bd, 0x2000 },
- { 0x1a00, 0x24bc, 0x0000 },
- { 0x1a00, 0x24be, 0x0000 },
- { 0x9a00, 0x24c1, 0x2000 },
- { 0x1a00, 0x24c0, 0x0000 },
- { 0x1a00, 0x24c2, 0x0000 },
- { 0x9a00, 0x24c7, 0x3000 },
- { 0x9a00, 0x24c5, 0x2000 },
- { 0x1a00, 0x24c4, 0x0000 },
- { 0x1a00, 0x24c6, 0x0000 },
- { 0x9a00, 0x24c9, 0x2000 },
- { 0x1a00, 0x24c8, 0x0000 },
- { 0x1a00, 0x24ca, 0x0000 },
- { 0x8f00, 0x24eb, 0x6000 },
- { 0x9a00, 0x24db, 0x5000 },
- { 0x9a00, 0x24d3, 0x4000 },
- { 0x9a00, 0x24cf, 0x3000 },
- { 0x9a00, 0x24cd, 0x2000 },
- { 0x1a00, 0x24cc, 0x0000 },
- { 0x1a00, 0x24ce, 0x0000 },
- { 0x9a00, 0x24d1, 0x2000 },
- { 0x1a00, 0x24d0, 0x0000 },
- { 0x1a00, 0x24d2, 0x0000 },
- { 0x9a00, 0x24d7, 0x3000 },
- { 0x9a00, 0x24d5, 0x2000 },
- { 0x1a00, 0x24d4, 0x0000 },
- { 0x1a00, 0x24d6, 0x0000 },
- { 0x9a00, 0x24d9, 0x2000 },
- { 0x1a00, 0x24d8, 0x0000 },
- { 0x1a00, 0x24da, 0x0000 },
- { 0x9a00, 0x24e3, 0x4000 },
- { 0x9a00, 0x24df, 0x3000 },
- { 0x9a00, 0x24dd, 0x2000 },
- { 0x1a00, 0x24dc, 0x0000 },
- { 0x1a00, 0x24de, 0x0000 },
- { 0x9a00, 0x24e1, 0x2000 },
- { 0x1a00, 0x24e0, 0x0000 },
- { 0x1a00, 0x24e2, 0x0000 },
- { 0x9a00, 0x24e7, 0x3000 },
- { 0x9a00, 0x24e5, 0x2000 },
- { 0x1a00, 0x24e4, 0x0000 },
- { 0x1a00, 0x24e6, 0x0000 },
- { 0x9a00, 0x24e9, 0x2000 },
- { 0x1a00, 0x24e8, 0x0000 },
- { 0x0f00, 0x24ea, 0x0000 },
- { 0x8f00, 0x24fb, 0x5000 },
- { 0x8f00, 0x24f3, 0x4000 },
- { 0x8f00, 0x24ef, 0x3000 },
- { 0x8f00, 0x24ed, 0x2000 },
- { 0x0f00, 0x24ec, 0x0000 },
- { 0x0f00, 0x24ee, 0x0000 },
- { 0x8f00, 0x24f1, 0x2000 },
- { 0x0f00, 0x24f0, 0x0000 },
- { 0x0f00, 0x24f2, 0x0000 },
- { 0x8f00, 0x24f7, 0x3000 },
- { 0x8f00, 0x24f5, 0x2000 },
- { 0x0f00, 0x24f4, 0x0000 },
- { 0x0f00, 0x24f6, 0x0000 },
- { 0x8f00, 0x24f9, 0x2000 },
- { 0x0f00, 0x24f8, 0x0000 },
- { 0x0f00, 0x24fa, 0x0000 },
- { 0x9a00, 0x2503, 0x4000 },
- { 0x8f00, 0x24ff, 0x3000 },
- { 0x8f00, 0x24fd, 0x2000 },
- { 0x0f00, 0x24fc, 0x0000 },
- { 0x0f00, 0x24fe, 0x0000 },
- { 0x9a00, 0x2501, 0x2000 },
- { 0x1a00, 0x2500, 0x0000 },
- { 0x1a00, 0x2502, 0x0000 },
- { 0x9a00, 0x2507, 0x3000 },
- { 0x9a00, 0x2505, 0x2000 },
- { 0x1a00, 0x2504, 0x0000 },
- { 0x1a00, 0x2506, 0x0000 },
- { 0x9a00, 0x2509, 0x2000 },
- { 0x1a00, 0x2508, 0x0000 },
- { 0x1a00, 0x250a, 0x0000 },
- { 0x9a00, 0x260b, 0x9000 },
- { 0x9a00, 0x258b, 0x8000 },
- { 0x9a00, 0x254b, 0x7000 },
- { 0x9a00, 0x252b, 0x6000 },
- { 0x9a00, 0x251b, 0x5000 },
- { 0x9a00, 0x2513, 0x4000 },
- { 0x9a00, 0x250f, 0x3000 },
- { 0x9a00, 0x250d, 0x2000 },
- { 0x1a00, 0x250c, 0x0000 },
- { 0x1a00, 0x250e, 0x0000 },
- { 0x9a00, 0x2511, 0x2000 },
- { 0x1a00, 0x2510, 0x0000 },
- { 0x1a00, 0x2512, 0x0000 },
- { 0x9a00, 0x2517, 0x3000 },
- { 0x9a00, 0x2515, 0x2000 },
- { 0x1a00, 0x2514, 0x0000 },
- { 0x1a00, 0x2516, 0x0000 },
- { 0x9a00, 0x2519, 0x2000 },
- { 0x1a00, 0x2518, 0x0000 },
- { 0x1a00, 0x251a, 0x0000 },
- { 0x9a00, 0x2523, 0x4000 },
- { 0x9a00, 0x251f, 0x3000 },
- { 0x9a00, 0x251d, 0x2000 },
- { 0x1a00, 0x251c, 0x0000 },
- { 0x1a00, 0x251e, 0x0000 },
- { 0x9a00, 0x2521, 0x2000 },
- { 0x1a00, 0x2520, 0x0000 },
- { 0x1a00, 0x2522, 0x0000 },
- { 0x9a00, 0x2527, 0x3000 },
- { 0x9a00, 0x2525, 0x2000 },
- { 0x1a00, 0x2524, 0x0000 },
- { 0x1a00, 0x2526, 0x0000 },
- { 0x9a00, 0x2529, 0x2000 },
- { 0x1a00, 0x2528, 0x0000 },
- { 0x1a00, 0x252a, 0x0000 },
- { 0x9a00, 0x253b, 0x5000 },
- { 0x9a00, 0x2533, 0x4000 },
- { 0x9a00, 0x252f, 0x3000 },
- { 0x9a00, 0x252d, 0x2000 },
- { 0x1a00, 0x252c, 0x0000 },
- { 0x1a00, 0x252e, 0x0000 },
- { 0x9a00, 0x2531, 0x2000 },
- { 0x1a00, 0x2530, 0x0000 },
- { 0x1a00, 0x2532, 0x0000 },
- { 0x9a00, 0x2537, 0x3000 },
- { 0x9a00, 0x2535, 0x2000 },
- { 0x1a00, 0x2534, 0x0000 },
- { 0x1a00, 0x2536, 0x0000 },
- { 0x9a00, 0x2539, 0x2000 },
- { 0x1a00, 0x2538, 0x0000 },
- { 0x1a00, 0x253a, 0x0000 },
- { 0x9a00, 0x2543, 0x4000 },
- { 0x9a00, 0x253f, 0x3000 },
- { 0x9a00, 0x253d, 0x2000 },
- { 0x1a00, 0x253c, 0x0000 },
- { 0x1a00, 0x253e, 0x0000 },
- { 0x9a00, 0x2541, 0x2000 },
- { 0x1a00, 0x2540, 0x0000 },
- { 0x1a00, 0x2542, 0x0000 },
- { 0x9a00, 0x2547, 0x3000 },
- { 0x9a00, 0x2545, 0x2000 },
- { 0x1a00, 0x2544, 0x0000 },
- { 0x1a00, 0x2546, 0x0000 },
- { 0x9a00, 0x2549, 0x2000 },
- { 0x1a00, 0x2548, 0x0000 },
- { 0x1a00, 0x254a, 0x0000 },
- { 0x9a00, 0x256b, 0x6000 },
- { 0x9a00, 0x255b, 0x5000 },
- { 0x9a00, 0x2553, 0x4000 },
- { 0x9a00, 0x254f, 0x3000 },
- { 0x9a00, 0x254d, 0x2000 },
- { 0x1a00, 0x254c, 0x0000 },
- { 0x1a00, 0x254e, 0x0000 },
- { 0x9a00, 0x2551, 0x2000 },
- { 0x1a00, 0x2550, 0x0000 },
- { 0x1a00, 0x2552, 0x0000 },
- { 0x9a00, 0x2557, 0x3000 },
- { 0x9a00, 0x2555, 0x2000 },
- { 0x1a00, 0x2554, 0x0000 },
- { 0x1a00, 0x2556, 0x0000 },
- { 0x9a00, 0x2559, 0x2000 },
- { 0x1a00, 0x2558, 0x0000 },
- { 0x1a00, 0x255a, 0x0000 },
- { 0x9a00, 0x2563, 0x4000 },
- { 0x9a00, 0x255f, 0x3000 },
- { 0x9a00, 0x255d, 0x2000 },
- { 0x1a00, 0x255c, 0x0000 },
- { 0x1a00, 0x255e, 0x0000 },
- { 0x9a00, 0x2561, 0x2000 },
- { 0x1a00, 0x2560, 0x0000 },
- { 0x1a00, 0x2562, 0x0000 },
- { 0x9a00, 0x2567, 0x3000 },
- { 0x9a00, 0x2565, 0x2000 },
- { 0x1a00, 0x2564, 0x0000 },
- { 0x1a00, 0x2566, 0x0000 },
- { 0x9a00, 0x2569, 0x2000 },
- { 0x1a00, 0x2568, 0x0000 },
- { 0x1a00, 0x256a, 0x0000 },
- { 0x9a00, 0x257b, 0x5000 },
- { 0x9a00, 0x2573, 0x4000 },
- { 0x9a00, 0x256f, 0x3000 },
- { 0x9a00, 0x256d, 0x2000 },
- { 0x1a00, 0x256c, 0x0000 },
- { 0x1a00, 0x256e, 0x0000 },
- { 0x9a00, 0x2571, 0x2000 },
- { 0x1a00, 0x2570, 0x0000 },
- { 0x1a00, 0x2572, 0x0000 },
- { 0x9a00, 0x2577, 0x3000 },
- { 0x9a00, 0x2575, 0x2000 },
- { 0x1a00, 0x2574, 0x0000 },
- { 0x1a00, 0x2576, 0x0000 },
- { 0x9a00, 0x2579, 0x2000 },
- { 0x1a00, 0x2578, 0x0000 },
- { 0x1a00, 0x257a, 0x0000 },
- { 0x9a00, 0x2583, 0x4000 },
- { 0x9a00, 0x257f, 0x3000 },
- { 0x9a00, 0x257d, 0x2000 },
- { 0x1a00, 0x257c, 0x0000 },
- { 0x1a00, 0x257e, 0x0000 },
- { 0x9a00, 0x2581, 0x2000 },
- { 0x1a00, 0x2580, 0x0000 },
- { 0x1a00, 0x2582, 0x0000 },
- { 0x9a00, 0x2587, 0x3000 },
- { 0x9a00, 0x2585, 0x2000 },
- { 0x1a00, 0x2584, 0x0000 },
- { 0x1a00, 0x2586, 0x0000 },
- { 0x9a00, 0x2589, 0x2000 },
- { 0x1a00, 0x2588, 0x0000 },
- { 0x1a00, 0x258a, 0x0000 },
- { 0x9a00, 0x25cb, 0x7000 },
- { 0x9a00, 0x25ab, 0x6000 },
- { 0x9a00, 0x259b, 0x5000 },
- { 0x9a00, 0x2593, 0x4000 },
- { 0x9a00, 0x258f, 0x3000 },
- { 0x9a00, 0x258d, 0x2000 },
- { 0x1a00, 0x258c, 0x0000 },
- { 0x1a00, 0x258e, 0x0000 },
- { 0x9a00, 0x2591, 0x2000 },
- { 0x1a00, 0x2590, 0x0000 },
- { 0x1a00, 0x2592, 0x0000 },
- { 0x9a00, 0x2597, 0x3000 },
- { 0x9a00, 0x2595, 0x2000 },
- { 0x1a00, 0x2594, 0x0000 },
- { 0x1a00, 0x2596, 0x0000 },
- { 0x9a00, 0x2599, 0x2000 },
- { 0x1a00, 0x2598, 0x0000 },
- { 0x1a00, 0x259a, 0x0000 },
- { 0x9a00, 0x25a3, 0x4000 },
- { 0x9a00, 0x259f, 0x3000 },
- { 0x9a00, 0x259d, 0x2000 },
- { 0x1a00, 0x259c, 0x0000 },
- { 0x1a00, 0x259e, 0x0000 },
- { 0x9a00, 0x25a1, 0x2000 },
- { 0x1a00, 0x25a0, 0x0000 },
- { 0x1a00, 0x25a2, 0x0000 },
- { 0x9a00, 0x25a7, 0x3000 },
- { 0x9a00, 0x25a5, 0x2000 },
- { 0x1a00, 0x25a4, 0x0000 },
- { 0x1a00, 0x25a6, 0x0000 },
- { 0x9a00, 0x25a9, 0x2000 },
- { 0x1a00, 0x25a8, 0x0000 },
- { 0x1a00, 0x25aa, 0x0000 },
- { 0x9a00, 0x25bb, 0x5000 },
- { 0x9a00, 0x25b3, 0x4000 },
- { 0x9a00, 0x25af, 0x3000 },
- { 0x9a00, 0x25ad, 0x2000 },
- { 0x1a00, 0x25ac, 0x0000 },
- { 0x1a00, 0x25ae, 0x0000 },
- { 0x9a00, 0x25b1, 0x2000 },
- { 0x1a00, 0x25b0, 0x0000 },
- { 0x1a00, 0x25b2, 0x0000 },
- { 0x9900, 0x25b7, 0x3000 },
- { 0x9a00, 0x25b5, 0x2000 },
- { 0x1a00, 0x25b4, 0x0000 },
- { 0x1a00, 0x25b6, 0x0000 },
- { 0x9a00, 0x25b9, 0x2000 },
- { 0x1a00, 0x25b8, 0x0000 },
- { 0x1a00, 0x25ba, 0x0000 },
- { 0x9a00, 0x25c3, 0x4000 },
- { 0x9a00, 0x25bf, 0x3000 },
- { 0x9a00, 0x25bd, 0x2000 },
- { 0x1a00, 0x25bc, 0x0000 },
- { 0x1a00, 0x25be, 0x0000 },
- { 0x9900, 0x25c1, 0x2000 },
- { 0x1a00, 0x25c0, 0x0000 },
- { 0x1a00, 0x25c2, 0x0000 },
- { 0x9a00, 0x25c7, 0x3000 },
- { 0x9a00, 0x25c5, 0x2000 },
- { 0x1a00, 0x25c4, 0x0000 },
- { 0x1a00, 0x25c6, 0x0000 },
- { 0x9a00, 0x25c9, 0x2000 },
- { 0x1a00, 0x25c8, 0x0000 },
- { 0x1a00, 0x25ca, 0x0000 },
- { 0x9a00, 0x25eb, 0x6000 },
- { 0x9a00, 0x25db, 0x5000 },
- { 0x9a00, 0x25d3, 0x4000 },
- { 0x9a00, 0x25cf, 0x3000 },
- { 0x9a00, 0x25cd, 0x2000 },
- { 0x1a00, 0x25cc, 0x0000 },
- { 0x1a00, 0x25ce, 0x0000 },
- { 0x9a00, 0x25d1, 0x2000 },
- { 0x1a00, 0x25d0, 0x0000 },
- { 0x1a00, 0x25d2, 0x0000 },
- { 0x9a00, 0x25d7, 0x3000 },
- { 0x9a00, 0x25d5, 0x2000 },
- { 0x1a00, 0x25d4, 0x0000 },
- { 0x1a00, 0x25d6, 0x0000 },
- { 0x9a00, 0x25d9, 0x2000 },
- { 0x1a00, 0x25d8, 0x0000 },
- { 0x1a00, 0x25da, 0x0000 },
- { 0x9a00, 0x25e3, 0x4000 },
- { 0x9a00, 0x25df, 0x3000 },
- { 0x9a00, 0x25dd, 0x2000 },
- { 0x1a00, 0x25dc, 0x0000 },
- { 0x1a00, 0x25de, 0x0000 },
- { 0x9a00, 0x25e1, 0x2000 },
- { 0x1a00, 0x25e0, 0x0000 },
- { 0x1a00, 0x25e2, 0x0000 },
- { 0x9a00, 0x25e7, 0x3000 },
- { 0x9a00, 0x25e5, 0x2000 },
- { 0x1a00, 0x25e4, 0x0000 },
- { 0x1a00, 0x25e6, 0x0000 },
- { 0x9a00, 0x25e9, 0x2000 },
- { 0x1a00, 0x25e8, 0x0000 },
- { 0x1a00, 0x25ea, 0x0000 },
- { 0x9900, 0x25fb, 0x5000 },
- { 0x9a00, 0x25f3, 0x4000 },
- { 0x9a00, 0x25ef, 0x3000 },
- { 0x9a00, 0x25ed, 0x2000 },
- { 0x1a00, 0x25ec, 0x0000 },
- { 0x1a00, 0x25ee, 0x0000 },
- { 0x9a00, 0x25f1, 0x2000 },
- { 0x1a00, 0x25f0, 0x0000 },
- { 0x1a00, 0x25f2, 0x0000 },
- { 0x9a00, 0x25f7, 0x3000 },
- { 0x9a00, 0x25f5, 0x2000 },
- { 0x1a00, 0x25f4, 0x0000 },
- { 0x1a00, 0x25f6, 0x0000 },
- { 0x9900, 0x25f9, 0x2000 },
- { 0x1900, 0x25f8, 0x0000 },
- { 0x1900, 0x25fa, 0x0000 },
- { 0x9a00, 0x2603, 0x4000 },
- { 0x9900, 0x25ff, 0x3000 },
- { 0x9900, 0x25fd, 0x2000 },
- { 0x1900, 0x25fc, 0x0000 },
- { 0x1900, 0x25fe, 0x0000 },
- { 0x9a00, 0x2601, 0x2000 },
- { 0x1a00, 0x2600, 0x0000 },
- { 0x1a00, 0x2602, 0x0000 },
- { 0x9a00, 0x2607, 0x3000 },
- { 0x9a00, 0x2605, 0x2000 },
- { 0x1a00, 0x2604, 0x0000 },
- { 0x1a00, 0x2606, 0x0000 },
- { 0x9a00, 0x2609, 0x2000 },
- { 0x1a00, 0x2608, 0x0000 },
- { 0x1a00, 0x260a, 0x0000 },
- { 0x9a00, 0x268e, 0x8000 },
- { 0x9a00, 0x264c, 0x7000 },
- { 0x9a00, 0x262c, 0x6000 },
- { 0x9a00, 0x261c, 0x5000 },
- { 0x9a00, 0x2613, 0x4000 },
- { 0x9a00, 0x260f, 0x3000 },
- { 0x9a00, 0x260d, 0x2000 },
- { 0x1a00, 0x260c, 0x0000 },
- { 0x1a00, 0x260e, 0x0000 },
- { 0x9a00, 0x2611, 0x2000 },
- { 0x1a00, 0x2610, 0x0000 },
- { 0x1a00, 0x2612, 0x0000 },
- { 0x9a00, 0x2617, 0x3000 },
- { 0x9a00, 0x2615, 0x2000 },
- { 0x1a00, 0x2614, 0x0000 },
- { 0x1a00, 0x2616, 0x0000 },
- { 0x9a00, 0x261a, 0x2000 },
- { 0x1a00, 0x2619, 0x0000 },
- { 0x1a00, 0x261b, 0x0000 },
- { 0x9a00, 0x2624, 0x4000 },
- { 0x9a00, 0x2620, 0x3000 },
- { 0x9a00, 0x261e, 0x2000 },
- { 0x1a00, 0x261d, 0x0000 },
- { 0x1a00, 0x261f, 0x0000 },
- { 0x9a00, 0x2622, 0x2000 },
- { 0x1a00, 0x2621, 0x0000 },
- { 0x1a00, 0x2623, 0x0000 },
- { 0x9a00, 0x2628, 0x3000 },
- { 0x9a00, 0x2626, 0x2000 },
- { 0x1a00, 0x2625, 0x0000 },
- { 0x1a00, 0x2627, 0x0000 },
- { 0x9a00, 0x262a, 0x2000 },
- { 0x1a00, 0x2629, 0x0000 },
- { 0x1a00, 0x262b, 0x0000 },
- { 0x9a00, 0x263c, 0x5000 },
- { 0x9a00, 0x2634, 0x4000 },
- { 0x9a00, 0x2630, 0x3000 },
- { 0x9a00, 0x262e, 0x2000 },
- { 0x1a00, 0x262d, 0x0000 },
- { 0x1a00, 0x262f, 0x0000 },
- { 0x9a00, 0x2632, 0x2000 },
- { 0x1a00, 0x2631, 0x0000 },
- { 0x1a00, 0x2633, 0x0000 },
- { 0x9a00, 0x2638, 0x3000 },
- { 0x9a00, 0x2636, 0x2000 },
- { 0x1a00, 0x2635, 0x0000 },
- { 0x1a00, 0x2637, 0x0000 },
- { 0x9a00, 0x263a, 0x2000 },
- { 0x1a00, 0x2639, 0x0000 },
- { 0x1a00, 0x263b, 0x0000 },
- { 0x9a00, 0x2644, 0x4000 },
- { 0x9a00, 0x2640, 0x3000 },
- { 0x9a00, 0x263e, 0x2000 },
- { 0x1a00, 0x263d, 0x0000 },
- { 0x1a00, 0x263f, 0x0000 },
- { 0x9a00, 0x2642, 0x2000 },
- { 0x1a00, 0x2641, 0x0000 },
- { 0x1a00, 0x2643, 0x0000 },
- { 0x9a00, 0x2648, 0x3000 },
- { 0x9a00, 0x2646, 0x2000 },
- { 0x1a00, 0x2645, 0x0000 },
- { 0x1a00, 0x2647, 0x0000 },
- { 0x9a00, 0x264a, 0x2000 },
- { 0x1a00, 0x2649, 0x0000 },
- { 0x1a00, 0x264b, 0x0000 },
- { 0x9a00, 0x266c, 0x6000 },
- { 0x9a00, 0x265c, 0x5000 },
- { 0x9a00, 0x2654, 0x4000 },
- { 0x9a00, 0x2650, 0x3000 },
- { 0x9a00, 0x264e, 0x2000 },
- { 0x1a00, 0x264d, 0x0000 },
- { 0x1a00, 0x264f, 0x0000 },
- { 0x9a00, 0x2652, 0x2000 },
- { 0x1a00, 0x2651, 0x0000 },
- { 0x1a00, 0x2653, 0x0000 },
- { 0x9a00, 0x2658, 0x3000 },
- { 0x9a00, 0x2656, 0x2000 },
- { 0x1a00, 0x2655, 0x0000 },
- { 0x1a00, 0x2657, 0x0000 },
- { 0x9a00, 0x265a, 0x2000 },
- { 0x1a00, 0x2659, 0x0000 },
- { 0x1a00, 0x265b, 0x0000 },
- { 0x9a00, 0x2664, 0x4000 },
- { 0x9a00, 0x2660, 0x3000 },
- { 0x9a00, 0x265e, 0x2000 },
- { 0x1a00, 0x265d, 0x0000 },
- { 0x1a00, 0x265f, 0x0000 },
- { 0x9a00, 0x2662, 0x2000 },
- { 0x1a00, 0x2661, 0x0000 },
- { 0x1a00, 0x2663, 0x0000 },
- { 0x9a00, 0x2668, 0x3000 },
- { 0x9a00, 0x2666, 0x2000 },
- { 0x1a00, 0x2665, 0x0000 },
- { 0x1a00, 0x2667, 0x0000 },
- { 0x9a00, 0x266a, 0x2000 },
- { 0x1a00, 0x2669, 0x0000 },
- { 0x1a00, 0x266b, 0x0000 },
- { 0x9a00, 0x267c, 0x5000 },
- { 0x9a00, 0x2674, 0x4000 },
- { 0x9a00, 0x2670, 0x3000 },
- { 0x9a00, 0x266e, 0x2000 },
- { 0x1a00, 0x266d, 0x0000 },
- { 0x1900, 0x266f, 0x0000 },
- { 0x9a00, 0x2672, 0x2000 },
- { 0x1a00, 0x2671, 0x0000 },
- { 0x1a00, 0x2673, 0x0000 },
- { 0x9a00, 0x2678, 0x3000 },
- { 0x9a00, 0x2676, 0x2000 },
- { 0x1a00, 0x2675, 0x0000 },
- { 0x1a00, 0x2677, 0x0000 },
- { 0x9a00, 0x267a, 0x2000 },
- { 0x1a00, 0x2679, 0x0000 },
- { 0x1a00, 0x267b, 0x0000 },
- { 0x9a00, 0x2686, 0x4000 },
- { 0x9a00, 0x2682, 0x3000 },
- { 0x9a00, 0x2680, 0x2000 },
- { 0x1a00, 0x267d, 0x0000 },
- { 0x1a00, 0x2681, 0x0000 },
- { 0x9a00, 0x2684, 0x2000 },
- { 0x1a00, 0x2683, 0x0000 },
- { 0x1a00, 0x2685, 0x0000 },
- { 0x9a00, 0x268a, 0x3000 },
- { 0x9a00, 0x2688, 0x2000 },
- { 0x1a00, 0x2687, 0x0000 },
- { 0x1a00, 0x2689, 0x0000 },
- { 0x9a00, 0x268c, 0x2000 },
- { 0x1a00, 0x268b, 0x0000 },
- { 0x1a00, 0x268d, 0x0000 },
- { 0x9a00, 0x273f, 0x7000 },
- { 0x9a00, 0x271e, 0x6000 },
- { 0x9a00, 0x270e, 0x5000 },
- { 0x9a00, 0x2703, 0x4000 },
- { 0x9a00, 0x26a0, 0x3000 },
- { 0x9a00, 0x2690, 0x2000 },
- { 0x1a00, 0x268f, 0x0000 },
- { 0x1a00, 0x2691, 0x0000 },
- { 0x9a00, 0x2701, 0x2000 },
- { 0x1a00, 0x26a1, 0x0000 },
- { 0x1a00, 0x2702, 0x0000 },
- { 0x9a00, 0x2708, 0x3000 },
- { 0x9a00, 0x2706, 0x2000 },
- { 0x1a00, 0x2704, 0x0000 },
- { 0x1a00, 0x2707, 0x0000 },
- { 0x9a00, 0x270c, 0x2000 },
- { 0x1a00, 0x2709, 0x0000 },
- { 0x1a00, 0x270d, 0x0000 },
- { 0x9a00, 0x2716, 0x4000 },
- { 0x9a00, 0x2712, 0x3000 },
- { 0x9a00, 0x2710, 0x2000 },
- { 0x1a00, 0x270f, 0x0000 },
- { 0x1a00, 0x2711, 0x0000 },
- { 0x9a00, 0x2714, 0x2000 },
- { 0x1a00, 0x2713, 0x0000 },
- { 0x1a00, 0x2715, 0x0000 },
- { 0x9a00, 0x271a, 0x3000 },
- { 0x9a00, 0x2718, 0x2000 },
- { 0x1a00, 0x2717, 0x0000 },
- { 0x1a00, 0x2719, 0x0000 },
- { 0x9a00, 0x271c, 0x2000 },
- { 0x1a00, 0x271b, 0x0000 },
- { 0x1a00, 0x271d, 0x0000 },
- { 0x9a00, 0x272f, 0x5000 },
- { 0x9a00, 0x2726, 0x4000 },
- { 0x9a00, 0x2722, 0x3000 },
- { 0x9a00, 0x2720, 0x2000 },
- { 0x1a00, 0x271f, 0x0000 },
- { 0x1a00, 0x2721, 0x0000 },
- { 0x9a00, 0x2724, 0x2000 },
- { 0x1a00, 0x2723, 0x0000 },
- { 0x1a00, 0x2725, 0x0000 },
- { 0x9a00, 0x272b, 0x3000 },
- { 0x9a00, 0x2729, 0x2000 },
- { 0x1a00, 0x2727, 0x0000 },
- { 0x1a00, 0x272a, 0x0000 },
- { 0x9a00, 0x272d, 0x2000 },
- { 0x1a00, 0x272c, 0x0000 },
- { 0x1a00, 0x272e, 0x0000 },
- { 0x9a00, 0x2737, 0x4000 },
- { 0x9a00, 0x2733, 0x3000 },
- { 0x9a00, 0x2731, 0x2000 },
- { 0x1a00, 0x2730, 0x0000 },
- { 0x1a00, 0x2732, 0x0000 },
- { 0x9a00, 0x2735, 0x2000 },
- { 0x1a00, 0x2734, 0x0000 },
- { 0x1a00, 0x2736, 0x0000 },
- { 0x9a00, 0x273b, 0x3000 },
- { 0x9a00, 0x2739, 0x2000 },
- { 0x1a00, 0x2738, 0x0000 },
- { 0x1a00, 0x273a, 0x0000 },
- { 0x9a00, 0x273d, 0x2000 },
- { 0x1a00, 0x273c, 0x0000 },
- { 0x1a00, 0x273e, 0x0000 },
- { 0x9a00, 0x2767, 0x6000 },
- { 0x9a00, 0x2751, 0x5000 },
- { 0x9a00, 0x2747, 0x4000 },
- { 0x9a00, 0x2743, 0x3000 },
- { 0x9a00, 0x2741, 0x2000 },
- { 0x1a00, 0x2740, 0x0000 },
- { 0x1a00, 0x2742, 0x0000 },
- { 0x9a00, 0x2745, 0x2000 },
- { 0x1a00, 0x2744, 0x0000 },
- { 0x1a00, 0x2746, 0x0000 },
- { 0x9a00, 0x274b, 0x3000 },
- { 0x9a00, 0x2749, 0x2000 },
- { 0x1a00, 0x2748, 0x0000 },
- { 0x1a00, 0x274a, 0x0000 },
- { 0x9a00, 0x274f, 0x2000 },
- { 0x1a00, 0x274d, 0x0000 },
- { 0x1a00, 0x2750, 0x0000 },
- { 0x9a00, 0x275d, 0x4000 },
- { 0x9a00, 0x2759, 0x3000 },
- { 0x9a00, 0x2756, 0x2000 },
- { 0x1a00, 0x2752, 0x0000 },
- { 0x1a00, 0x2758, 0x0000 },
- { 0x9a00, 0x275b, 0x2000 },
- { 0x1a00, 0x275a, 0x0000 },
- { 0x1a00, 0x275c, 0x0000 },
- { 0x9a00, 0x2763, 0x3000 },
- { 0x9a00, 0x2761, 0x2000 },
- { 0x1a00, 0x275e, 0x0000 },
- { 0x1a00, 0x2762, 0x0000 },
- { 0x9a00, 0x2765, 0x2000 },
- { 0x1a00, 0x2764, 0x0000 },
- { 0x1a00, 0x2766, 0x0000 },
- { 0x8f00, 0x2777, 0x5000 },
- { 0x9200, 0x276f, 0x4000 },
- { 0x9200, 0x276b, 0x3000 },
- { 0x9200, 0x2769, 0x2000 },
- { 0x1600, 0x2768, 0x0000 },
- { 0x1600, 0x276a, 0x0000 },
- { 0x9200, 0x276d, 0x2000 },
- { 0x1600, 0x276c, 0x0000 },
- { 0x1600, 0x276e, 0x0000 },
- { 0x9200, 0x2773, 0x3000 },
- { 0x9200, 0x2771, 0x2000 },
- { 0x1600, 0x2770, 0x0000 },
- { 0x1600, 0x2772, 0x0000 },
- { 0x9200, 0x2775, 0x2000 },
- { 0x1600, 0x2774, 0x0000 },
- { 0x0f00, 0x2776, 0x0000 },
- { 0x8f00, 0x277f, 0x4000 },
- { 0x8f00, 0x277b, 0x3000 },
- { 0x8f00, 0x2779, 0x2000 },
- { 0x0f00, 0x2778, 0x0000 },
- { 0x0f00, 0x277a, 0x0000 },
- { 0x8f00, 0x277d, 0x2000 },
- { 0x0f00, 0x277c, 0x0000 },
- { 0x0f00, 0x277e, 0x0000 },
- { 0x8f00, 0x2783, 0x3000 },
- { 0x8f00, 0x2781, 0x2000 },
- { 0x0f00, 0x2780, 0x0000 },
- { 0x0f00, 0x2782, 0x0000 },
- { 0x8f00, 0x2785, 0x2000 },
- { 0x0f00, 0x2784, 0x0000 },
- { 0x0f00, 0x2786, 0x0000 },
- { 0x9900, 0x29a0, 0xa000 },
- { 0x9a00, 0x28a0, 0x9000 },
- { 0x9a00, 0x2820, 0x8000 },
- { 0x9900, 0x27dc, 0x7000 },
- { 0x9a00, 0x27aa, 0x6000 },
- { 0x9a00, 0x279a, 0x5000 },
- { 0x8f00, 0x278f, 0x4000 },
- { 0x8f00, 0x278b, 0x3000 },
- { 0x8f00, 0x2789, 0x2000 },
- { 0x0f00, 0x2788, 0x0000 },
- { 0x0f00, 0x278a, 0x0000 },
- { 0x8f00, 0x278d, 0x2000 },
- { 0x0f00, 0x278c, 0x0000 },
- { 0x0f00, 0x278e, 0x0000 },
- { 0x8f00, 0x2793, 0x3000 },
- { 0x8f00, 0x2791, 0x2000 },
- { 0x0f00, 0x2790, 0x0000 },
- { 0x0f00, 0x2792, 0x0000 },
- { 0x9a00, 0x2798, 0x2000 },
- { 0x1a00, 0x2794, 0x0000 },
- { 0x1a00, 0x2799, 0x0000 },
- { 0x9a00, 0x27a2, 0x4000 },
- { 0x9a00, 0x279e, 0x3000 },
- { 0x9a00, 0x279c, 0x2000 },
- { 0x1a00, 0x279b, 0x0000 },
- { 0x1a00, 0x279d, 0x0000 },
- { 0x9a00, 0x27a0, 0x2000 },
- { 0x1a00, 0x279f, 0x0000 },
- { 0x1a00, 0x27a1, 0x0000 },
- { 0x9a00, 0x27a6, 0x3000 },
- { 0x9a00, 0x27a4, 0x2000 },
- { 0x1a00, 0x27a3, 0x0000 },
- { 0x1a00, 0x27a5, 0x0000 },
- { 0x9a00, 0x27a8, 0x2000 },
- { 0x1a00, 0x27a7, 0x0000 },
- { 0x1a00, 0x27a9, 0x0000 },
- { 0x9a00, 0x27bb, 0x5000 },
- { 0x9a00, 0x27b3, 0x4000 },
- { 0x9a00, 0x27ae, 0x3000 },
- { 0x9a00, 0x27ac, 0x2000 },
- { 0x1a00, 0x27ab, 0x0000 },
- { 0x1a00, 0x27ad, 0x0000 },
- { 0x9a00, 0x27b1, 0x2000 },
- { 0x1a00, 0x27af, 0x0000 },
- { 0x1a00, 0x27b2, 0x0000 },
- { 0x9a00, 0x27b7, 0x3000 },
- { 0x9a00, 0x27b5, 0x2000 },
- { 0x1a00, 0x27b4, 0x0000 },
- { 0x1a00, 0x27b6, 0x0000 },
- { 0x9a00, 0x27b9, 0x2000 },
- { 0x1a00, 0x27b8, 0x0000 },
- { 0x1a00, 0x27ba, 0x0000 },
- { 0x9900, 0x27d4, 0x4000 },
- { 0x9900, 0x27d0, 0x3000 },
- { 0x9a00, 0x27bd, 0x2000 },
- { 0x1a00, 0x27bc, 0x0000 },
- { 0x1a00, 0x27be, 0x0000 },
- { 0x9900, 0x27d2, 0x2000 },
- { 0x1900, 0x27d1, 0x0000 },
- { 0x1900, 0x27d3, 0x0000 },
- { 0x9900, 0x27d8, 0x3000 },
- { 0x9900, 0x27d6, 0x2000 },
- { 0x1900, 0x27d5, 0x0000 },
- { 0x1900, 0x27d7, 0x0000 },
- { 0x9900, 0x27da, 0x2000 },
- { 0x1900, 0x27d9, 0x0000 },
- { 0x1900, 0x27db, 0x0000 },
- { 0x9a00, 0x2800, 0x6000 },
- { 0x9900, 0x27f0, 0x5000 },
- { 0x9900, 0x27e4, 0x4000 },
- { 0x9900, 0x27e0, 0x3000 },
- { 0x9900, 0x27de, 0x2000 },
- { 0x1900, 0x27dd, 0x0000 },
- { 0x1900, 0x27df, 0x0000 },
- { 0x9900, 0x27e2, 0x2000 },
- { 0x1900, 0x27e1, 0x0000 },
- { 0x1900, 0x27e3, 0x0000 },
- { 0x9600, 0x27e8, 0x3000 },
- { 0x9600, 0x27e6, 0x2000 },
- { 0x1900, 0x27e5, 0x0000 },
- { 0x1200, 0x27e7, 0x0000 },
- { 0x9600, 0x27ea, 0x2000 },
- { 0x1200, 0x27e9, 0x0000 },
- { 0x1200, 0x27eb, 0x0000 },
- { 0x9900, 0x27f8, 0x4000 },
- { 0x9900, 0x27f4, 0x3000 },
- { 0x9900, 0x27f2, 0x2000 },
- { 0x1900, 0x27f1, 0x0000 },
- { 0x1900, 0x27f3, 0x0000 },
- { 0x9900, 0x27f6, 0x2000 },
- { 0x1900, 0x27f5, 0x0000 },
- { 0x1900, 0x27f7, 0x0000 },
- { 0x9900, 0x27fc, 0x3000 },
- { 0x9900, 0x27fa, 0x2000 },
- { 0x1900, 0x27f9, 0x0000 },
- { 0x1900, 0x27fb, 0x0000 },
- { 0x9900, 0x27fe, 0x2000 },
- { 0x1900, 0x27fd, 0x0000 },
- { 0x1900, 0x27ff, 0x0000 },
- { 0x9a00, 0x2810, 0x5000 },
- { 0x9a00, 0x2808, 0x4000 },
- { 0x9a00, 0x2804, 0x3000 },
- { 0x9a00, 0x2802, 0x2000 },
- { 0x1a00, 0x2801, 0x0000 },
- { 0x1a00, 0x2803, 0x0000 },
- { 0x9a00, 0x2806, 0x2000 },
- { 0x1a00, 0x2805, 0x0000 },
- { 0x1a00, 0x2807, 0x0000 },
- { 0x9a00, 0x280c, 0x3000 },
- { 0x9a00, 0x280a, 0x2000 },
- { 0x1a00, 0x2809, 0x0000 },
- { 0x1a00, 0x280b, 0x0000 },
- { 0x9a00, 0x280e, 0x2000 },
- { 0x1a00, 0x280d, 0x0000 },
- { 0x1a00, 0x280f, 0x0000 },
- { 0x9a00, 0x2818, 0x4000 },
- { 0x9a00, 0x2814, 0x3000 },
- { 0x9a00, 0x2812, 0x2000 },
- { 0x1a00, 0x2811, 0x0000 },
- { 0x1a00, 0x2813, 0x0000 },
- { 0x9a00, 0x2816, 0x2000 },
- { 0x1a00, 0x2815, 0x0000 },
- { 0x1a00, 0x2817, 0x0000 },
- { 0x9a00, 0x281c, 0x3000 },
- { 0x9a00, 0x281a, 0x2000 },
- { 0x1a00, 0x2819, 0x0000 },
- { 0x1a00, 0x281b, 0x0000 },
- { 0x9a00, 0x281e, 0x2000 },
- { 0x1a00, 0x281d, 0x0000 },
- { 0x1a00, 0x281f, 0x0000 },
- { 0x9a00, 0x2860, 0x7000 },
- { 0x9a00, 0x2840, 0x6000 },
- { 0x9a00, 0x2830, 0x5000 },
- { 0x9a00, 0x2828, 0x4000 },
- { 0x9a00, 0x2824, 0x3000 },
- { 0x9a00, 0x2822, 0x2000 },
- { 0x1a00, 0x2821, 0x0000 },
- { 0x1a00, 0x2823, 0x0000 },
- { 0x9a00, 0x2826, 0x2000 },
- { 0x1a00, 0x2825, 0x0000 },
- { 0x1a00, 0x2827, 0x0000 },
- { 0x9a00, 0x282c, 0x3000 },
- { 0x9a00, 0x282a, 0x2000 },
- { 0x1a00, 0x2829, 0x0000 },
- { 0x1a00, 0x282b, 0x0000 },
- { 0x9a00, 0x282e, 0x2000 },
- { 0x1a00, 0x282d, 0x0000 },
- { 0x1a00, 0x282f, 0x0000 },
- { 0x9a00, 0x2838, 0x4000 },
- { 0x9a00, 0x2834, 0x3000 },
- { 0x9a00, 0x2832, 0x2000 },
- { 0x1a00, 0x2831, 0x0000 },
- { 0x1a00, 0x2833, 0x0000 },
- { 0x9a00, 0x2836, 0x2000 },
- { 0x1a00, 0x2835, 0x0000 },
- { 0x1a00, 0x2837, 0x0000 },
- { 0x9a00, 0x283c, 0x3000 },
- { 0x9a00, 0x283a, 0x2000 },
- { 0x1a00, 0x2839, 0x0000 },
- { 0x1a00, 0x283b, 0x0000 },
- { 0x9a00, 0x283e, 0x2000 },
- { 0x1a00, 0x283d, 0x0000 },
- { 0x1a00, 0x283f, 0x0000 },
- { 0x9a00, 0x2850, 0x5000 },
- { 0x9a00, 0x2848, 0x4000 },
- { 0x9a00, 0x2844, 0x3000 },
- { 0x9a00, 0x2842, 0x2000 },
- { 0x1a00, 0x2841, 0x0000 },
- { 0x1a00, 0x2843, 0x0000 },
- { 0x9a00, 0x2846, 0x2000 },
- { 0x1a00, 0x2845, 0x0000 },
- { 0x1a00, 0x2847, 0x0000 },
- { 0x9a00, 0x284c, 0x3000 },
- { 0x9a00, 0x284a, 0x2000 },
- { 0x1a00, 0x2849, 0x0000 },
- { 0x1a00, 0x284b, 0x0000 },
- { 0x9a00, 0x284e, 0x2000 },
- { 0x1a00, 0x284d, 0x0000 },
- { 0x1a00, 0x284f, 0x0000 },
- { 0x9a00, 0x2858, 0x4000 },
- { 0x9a00, 0x2854, 0x3000 },
- { 0x9a00, 0x2852, 0x2000 },
- { 0x1a00, 0x2851, 0x0000 },
- { 0x1a00, 0x2853, 0x0000 },
- { 0x9a00, 0x2856, 0x2000 },
- { 0x1a00, 0x2855, 0x0000 },
- { 0x1a00, 0x2857, 0x0000 },
- { 0x9a00, 0x285c, 0x3000 },
- { 0x9a00, 0x285a, 0x2000 },
- { 0x1a00, 0x2859, 0x0000 },
- { 0x1a00, 0x285b, 0x0000 },
- { 0x9a00, 0x285e, 0x2000 },
- { 0x1a00, 0x285d, 0x0000 },
- { 0x1a00, 0x285f, 0x0000 },
- { 0x9a00, 0x2880, 0x6000 },
- { 0x9a00, 0x2870, 0x5000 },
- { 0x9a00, 0x2868, 0x4000 },
- { 0x9a00, 0x2864, 0x3000 },
- { 0x9a00, 0x2862, 0x2000 },
- { 0x1a00, 0x2861, 0x0000 },
- { 0x1a00, 0x2863, 0x0000 },
- { 0x9a00, 0x2866, 0x2000 },
- { 0x1a00, 0x2865, 0x0000 },
- { 0x1a00, 0x2867, 0x0000 },
- { 0x9a00, 0x286c, 0x3000 },
- { 0x9a00, 0x286a, 0x2000 },
- { 0x1a00, 0x2869, 0x0000 },
- { 0x1a00, 0x286b, 0x0000 },
- { 0x9a00, 0x286e, 0x2000 },
- { 0x1a00, 0x286d, 0x0000 },
- { 0x1a00, 0x286f, 0x0000 },
- { 0x9a00, 0x2878, 0x4000 },
- { 0x9a00, 0x2874, 0x3000 },
- { 0x9a00, 0x2872, 0x2000 },
- { 0x1a00, 0x2871, 0x0000 },
- { 0x1a00, 0x2873, 0x0000 },
- { 0x9a00, 0x2876, 0x2000 },
- { 0x1a00, 0x2875, 0x0000 },
- { 0x1a00, 0x2877, 0x0000 },
- { 0x9a00, 0x287c, 0x3000 },
- { 0x9a00, 0x287a, 0x2000 },
- { 0x1a00, 0x2879, 0x0000 },
- { 0x1a00, 0x287b, 0x0000 },
- { 0x9a00, 0x287e, 0x2000 },
- { 0x1a00, 0x287d, 0x0000 },
- { 0x1a00, 0x287f, 0x0000 },
- { 0x9a00, 0x2890, 0x5000 },
- { 0x9a00, 0x2888, 0x4000 },
- { 0x9a00, 0x2884, 0x3000 },
- { 0x9a00, 0x2882, 0x2000 },
- { 0x1a00, 0x2881, 0x0000 },
- { 0x1a00, 0x2883, 0x0000 },
- { 0x9a00, 0x2886, 0x2000 },
- { 0x1a00, 0x2885, 0x0000 },
- { 0x1a00, 0x2887, 0x0000 },
- { 0x9a00, 0x288c, 0x3000 },
- { 0x9a00, 0x288a, 0x2000 },
- { 0x1a00, 0x2889, 0x0000 },
- { 0x1a00, 0x288b, 0x0000 },
- { 0x9a00, 0x288e, 0x2000 },
- { 0x1a00, 0x288d, 0x0000 },
- { 0x1a00, 0x288f, 0x0000 },
- { 0x9a00, 0x2898, 0x4000 },
- { 0x9a00, 0x2894, 0x3000 },
- { 0x9a00, 0x2892, 0x2000 },
- { 0x1a00, 0x2891, 0x0000 },
- { 0x1a00, 0x2893, 0x0000 },
- { 0x9a00, 0x2896, 0x2000 },
- { 0x1a00, 0x2895, 0x0000 },
- { 0x1a00, 0x2897, 0x0000 },
- { 0x9a00, 0x289c, 0x3000 },
- { 0x9a00, 0x289a, 0x2000 },
- { 0x1a00, 0x2899, 0x0000 },
- { 0x1a00, 0x289b, 0x0000 },
- { 0x9a00, 0x289e, 0x2000 },
- { 0x1a00, 0x289d, 0x0000 },
- { 0x1a00, 0x289f, 0x0000 },
- { 0x9900, 0x2920, 0x8000 },
- { 0x9a00, 0x28e0, 0x7000 },
- { 0x9a00, 0x28c0, 0x6000 },
- { 0x9a00, 0x28b0, 0x5000 },
- { 0x9a00, 0x28a8, 0x4000 },
- { 0x9a00, 0x28a4, 0x3000 },
- { 0x9a00, 0x28a2, 0x2000 },
- { 0x1a00, 0x28a1, 0x0000 },
- { 0x1a00, 0x28a3, 0x0000 },
- { 0x9a00, 0x28a6, 0x2000 },
- { 0x1a00, 0x28a5, 0x0000 },
- { 0x1a00, 0x28a7, 0x0000 },
- { 0x9a00, 0x28ac, 0x3000 },
- { 0x9a00, 0x28aa, 0x2000 },
- { 0x1a00, 0x28a9, 0x0000 },
- { 0x1a00, 0x28ab, 0x0000 },
- { 0x9a00, 0x28ae, 0x2000 },
- { 0x1a00, 0x28ad, 0x0000 },
- { 0x1a00, 0x28af, 0x0000 },
- { 0x9a00, 0x28b8, 0x4000 },
- { 0x9a00, 0x28b4, 0x3000 },
- { 0x9a00, 0x28b2, 0x2000 },
- { 0x1a00, 0x28b1, 0x0000 },
- { 0x1a00, 0x28b3, 0x0000 },
- { 0x9a00, 0x28b6, 0x2000 },
- { 0x1a00, 0x28b5, 0x0000 },
- { 0x1a00, 0x28b7, 0x0000 },
- { 0x9a00, 0x28bc, 0x3000 },
- { 0x9a00, 0x28ba, 0x2000 },
- { 0x1a00, 0x28b9, 0x0000 },
- { 0x1a00, 0x28bb, 0x0000 },
- { 0x9a00, 0x28be, 0x2000 },
- { 0x1a00, 0x28bd, 0x0000 },
- { 0x1a00, 0x28bf, 0x0000 },
- { 0x9a00, 0x28d0, 0x5000 },
- { 0x9a00, 0x28c8, 0x4000 },
- { 0x9a00, 0x28c4, 0x3000 },
- { 0x9a00, 0x28c2, 0x2000 },
- { 0x1a00, 0x28c1, 0x0000 },
- { 0x1a00, 0x28c3, 0x0000 },
- { 0x9a00, 0x28c6, 0x2000 },
- { 0x1a00, 0x28c5, 0x0000 },
- { 0x1a00, 0x28c7, 0x0000 },
- { 0x9a00, 0x28cc, 0x3000 },
- { 0x9a00, 0x28ca, 0x2000 },
- { 0x1a00, 0x28c9, 0x0000 },
- { 0x1a00, 0x28cb, 0x0000 },
- { 0x9a00, 0x28ce, 0x2000 },
- { 0x1a00, 0x28cd, 0x0000 },
- { 0x1a00, 0x28cf, 0x0000 },
- { 0x9a00, 0x28d8, 0x4000 },
- { 0x9a00, 0x28d4, 0x3000 },
- { 0x9a00, 0x28d2, 0x2000 },
- { 0x1a00, 0x28d1, 0x0000 },
- { 0x1a00, 0x28d3, 0x0000 },
- { 0x9a00, 0x28d6, 0x2000 },
- { 0x1a00, 0x28d5, 0x0000 },
- { 0x1a00, 0x28d7, 0x0000 },
- { 0x9a00, 0x28dc, 0x3000 },
- { 0x9a00, 0x28da, 0x2000 },
- { 0x1a00, 0x28d9, 0x0000 },
- { 0x1a00, 0x28db, 0x0000 },
- { 0x9a00, 0x28de, 0x2000 },
- { 0x1a00, 0x28dd, 0x0000 },
- { 0x1a00, 0x28df, 0x0000 },
- { 0x9900, 0x2900, 0x6000 },
- { 0x9a00, 0x28f0, 0x5000 },
- { 0x9a00, 0x28e8, 0x4000 },
- { 0x9a00, 0x28e4, 0x3000 },
- { 0x9a00, 0x28e2, 0x2000 },
- { 0x1a00, 0x28e1, 0x0000 },
- { 0x1a00, 0x28e3, 0x0000 },
- { 0x9a00, 0x28e6, 0x2000 },
- { 0x1a00, 0x28e5, 0x0000 },
- { 0x1a00, 0x28e7, 0x0000 },
- { 0x9a00, 0x28ec, 0x3000 },
- { 0x9a00, 0x28ea, 0x2000 },
- { 0x1a00, 0x28e9, 0x0000 },
- { 0x1a00, 0x28eb, 0x0000 },
- { 0x9a00, 0x28ee, 0x2000 },
- { 0x1a00, 0x28ed, 0x0000 },
- { 0x1a00, 0x28ef, 0x0000 },
- { 0x9a00, 0x28f8, 0x4000 },
- { 0x9a00, 0x28f4, 0x3000 },
- { 0x9a00, 0x28f2, 0x2000 },
- { 0x1a00, 0x28f1, 0x0000 },
- { 0x1a00, 0x28f3, 0x0000 },
- { 0x9a00, 0x28f6, 0x2000 },
- { 0x1a00, 0x28f5, 0x0000 },
- { 0x1a00, 0x28f7, 0x0000 },
- { 0x9a00, 0x28fc, 0x3000 },
- { 0x9a00, 0x28fa, 0x2000 },
- { 0x1a00, 0x28f9, 0x0000 },
- { 0x1a00, 0x28fb, 0x0000 },
- { 0x9a00, 0x28fe, 0x2000 },
- { 0x1a00, 0x28fd, 0x0000 },
- { 0x1a00, 0x28ff, 0x0000 },
- { 0x9900, 0x2910, 0x5000 },
- { 0x9900, 0x2908, 0x4000 },
- { 0x9900, 0x2904, 0x3000 },
- { 0x9900, 0x2902, 0x2000 },
- { 0x1900, 0x2901, 0x0000 },
- { 0x1900, 0x2903, 0x0000 },
- { 0x9900, 0x2906, 0x2000 },
- { 0x1900, 0x2905, 0x0000 },
- { 0x1900, 0x2907, 0x0000 },
- { 0x9900, 0x290c, 0x3000 },
- { 0x9900, 0x290a, 0x2000 },
- { 0x1900, 0x2909, 0x0000 },
- { 0x1900, 0x290b, 0x0000 },
- { 0x9900, 0x290e, 0x2000 },
- { 0x1900, 0x290d, 0x0000 },
- { 0x1900, 0x290f, 0x0000 },
- { 0x9900, 0x2918, 0x4000 },
- { 0x9900, 0x2914, 0x3000 },
- { 0x9900, 0x2912, 0x2000 },
- { 0x1900, 0x2911, 0x0000 },
- { 0x1900, 0x2913, 0x0000 },
- { 0x9900, 0x2916, 0x2000 },
- { 0x1900, 0x2915, 0x0000 },
- { 0x1900, 0x2917, 0x0000 },
- { 0x9900, 0x291c, 0x3000 },
- { 0x9900, 0x291a, 0x2000 },
- { 0x1900, 0x2919, 0x0000 },
- { 0x1900, 0x291b, 0x0000 },
- { 0x9900, 0x291e, 0x2000 },
- { 0x1900, 0x291d, 0x0000 },
- { 0x1900, 0x291f, 0x0000 },
- { 0x9900, 0x2960, 0x7000 },
- { 0x9900, 0x2940, 0x6000 },
- { 0x9900, 0x2930, 0x5000 },
- { 0x9900, 0x2928, 0x4000 },
- { 0x9900, 0x2924, 0x3000 },
- { 0x9900, 0x2922, 0x2000 },
- { 0x1900, 0x2921, 0x0000 },
- { 0x1900, 0x2923, 0x0000 },
- { 0x9900, 0x2926, 0x2000 },
- { 0x1900, 0x2925, 0x0000 },
- { 0x1900, 0x2927, 0x0000 },
- { 0x9900, 0x292c, 0x3000 },
- { 0x9900, 0x292a, 0x2000 },
- { 0x1900, 0x2929, 0x0000 },
- { 0x1900, 0x292b, 0x0000 },
- { 0x9900, 0x292e, 0x2000 },
- { 0x1900, 0x292d, 0x0000 },
- { 0x1900, 0x292f, 0x0000 },
- { 0x9900, 0x2938, 0x4000 },
- { 0x9900, 0x2934, 0x3000 },
- { 0x9900, 0x2932, 0x2000 },
- { 0x1900, 0x2931, 0x0000 },
- { 0x1900, 0x2933, 0x0000 },
- { 0x9900, 0x2936, 0x2000 },
- { 0x1900, 0x2935, 0x0000 },
- { 0x1900, 0x2937, 0x0000 },
- { 0x9900, 0x293c, 0x3000 },
- { 0x9900, 0x293a, 0x2000 },
- { 0x1900, 0x2939, 0x0000 },
- { 0x1900, 0x293b, 0x0000 },
- { 0x9900, 0x293e, 0x2000 },
- { 0x1900, 0x293d, 0x0000 },
- { 0x1900, 0x293f, 0x0000 },
- { 0x9900, 0x2950, 0x5000 },
- { 0x9900, 0x2948, 0x4000 },
- { 0x9900, 0x2944, 0x3000 },
- { 0x9900, 0x2942, 0x2000 },
- { 0x1900, 0x2941, 0x0000 },
- { 0x1900, 0x2943, 0x0000 },
- { 0x9900, 0x2946, 0x2000 },
- { 0x1900, 0x2945, 0x0000 },
- { 0x1900, 0x2947, 0x0000 },
- { 0x9900, 0x294c, 0x3000 },
- { 0x9900, 0x294a, 0x2000 },
- { 0x1900, 0x2949, 0x0000 },
- { 0x1900, 0x294b, 0x0000 },
- { 0x9900, 0x294e, 0x2000 },
- { 0x1900, 0x294d, 0x0000 },
- { 0x1900, 0x294f, 0x0000 },
- { 0x9900, 0x2958, 0x4000 },
- { 0x9900, 0x2954, 0x3000 },
- { 0x9900, 0x2952, 0x2000 },
- { 0x1900, 0x2951, 0x0000 },
- { 0x1900, 0x2953, 0x0000 },
- { 0x9900, 0x2956, 0x2000 },
- { 0x1900, 0x2955, 0x0000 },
- { 0x1900, 0x2957, 0x0000 },
- { 0x9900, 0x295c, 0x3000 },
- { 0x9900, 0x295a, 0x2000 },
- { 0x1900, 0x2959, 0x0000 },
- { 0x1900, 0x295b, 0x0000 },
- { 0x9900, 0x295e, 0x2000 },
- { 0x1900, 0x295d, 0x0000 },
- { 0x1900, 0x295f, 0x0000 },
- { 0x9900, 0x2980, 0x6000 },
- { 0x9900, 0x2970, 0x5000 },
- { 0x9900, 0x2968, 0x4000 },
- { 0x9900, 0x2964, 0x3000 },
- { 0x9900, 0x2962, 0x2000 },
- { 0x1900, 0x2961, 0x0000 },
- { 0x1900, 0x2963, 0x0000 },
- { 0x9900, 0x2966, 0x2000 },
- { 0x1900, 0x2965, 0x0000 },
- { 0x1900, 0x2967, 0x0000 },
- { 0x9900, 0x296c, 0x3000 },
- { 0x9900, 0x296a, 0x2000 },
- { 0x1900, 0x2969, 0x0000 },
- { 0x1900, 0x296b, 0x0000 },
- { 0x9900, 0x296e, 0x2000 },
- { 0x1900, 0x296d, 0x0000 },
- { 0x1900, 0x296f, 0x0000 },
- { 0x9900, 0x2978, 0x4000 },
- { 0x9900, 0x2974, 0x3000 },
- { 0x9900, 0x2972, 0x2000 },
- { 0x1900, 0x2971, 0x0000 },
- { 0x1900, 0x2973, 0x0000 },
- { 0x9900, 0x2976, 0x2000 },
- { 0x1900, 0x2975, 0x0000 },
- { 0x1900, 0x2977, 0x0000 },
- { 0x9900, 0x297c, 0x3000 },
- { 0x9900, 0x297a, 0x2000 },
- { 0x1900, 0x2979, 0x0000 },
- { 0x1900, 0x297b, 0x0000 },
- { 0x9900, 0x297e, 0x2000 },
- { 0x1900, 0x297d, 0x0000 },
- { 0x1900, 0x297f, 0x0000 },
- { 0x9200, 0x2990, 0x5000 },
- { 0x9200, 0x2988, 0x4000 },
- { 0x9200, 0x2984, 0x3000 },
- { 0x9900, 0x2982, 0x2000 },
- { 0x1900, 0x2981, 0x0000 },
- { 0x1600, 0x2983, 0x0000 },
- { 0x9200, 0x2986, 0x2000 },
- { 0x1600, 0x2985, 0x0000 },
- { 0x1600, 0x2987, 0x0000 },
- { 0x9200, 0x298c, 0x3000 },
- { 0x9200, 0x298a, 0x2000 },
- { 0x1600, 0x2989, 0x0000 },
- { 0x1600, 0x298b, 0x0000 },
- { 0x9200, 0x298e, 0x2000 },
- { 0x1600, 0x298d, 0x0000 },
- { 0x1600, 0x298f, 0x0000 },
- { 0x9200, 0x2998, 0x4000 },
- { 0x9200, 0x2994, 0x3000 },
- { 0x9200, 0x2992, 0x2000 },
- { 0x1600, 0x2991, 0x0000 },
- { 0x1600, 0x2993, 0x0000 },
- { 0x9200, 0x2996, 0x2000 },
- { 0x1600, 0x2995, 0x0000 },
- { 0x1600, 0x2997, 0x0000 },
- { 0x9900, 0x299c, 0x3000 },
- { 0x9900, 0x299a, 0x2000 },
- { 0x1900, 0x2999, 0x0000 },
- { 0x1900, 0x299b, 0x0000 },
- { 0x9900, 0x299e, 0x2000 },
- { 0x1900, 0x299d, 0x0000 },
- { 0x1900, 0x299f, 0x0000 },
- { 0x9900, 0x2aa0, 0x9000 },
- { 0x9900, 0x2a20, 0x8000 },
- { 0x9900, 0x29e0, 0x7000 },
- { 0x9900, 0x29c0, 0x6000 },
- { 0x9900, 0x29b0, 0x5000 },
- { 0x9900, 0x29a8, 0x4000 },
- { 0x9900, 0x29a4, 0x3000 },
- { 0x9900, 0x29a2, 0x2000 },
- { 0x1900, 0x29a1, 0x0000 },
- { 0x1900, 0x29a3, 0x0000 },
- { 0x9900, 0x29a6, 0x2000 },
- { 0x1900, 0x29a5, 0x0000 },
- { 0x1900, 0x29a7, 0x0000 },
- { 0x9900, 0x29ac, 0x3000 },
- { 0x9900, 0x29aa, 0x2000 },
- { 0x1900, 0x29a9, 0x0000 },
- { 0x1900, 0x29ab, 0x0000 },
- { 0x9900, 0x29ae, 0x2000 },
- { 0x1900, 0x29ad, 0x0000 },
- { 0x1900, 0x29af, 0x0000 },
- { 0x9900, 0x29b8, 0x4000 },
- { 0x9900, 0x29b4, 0x3000 },
- { 0x9900, 0x29b2, 0x2000 },
- { 0x1900, 0x29b1, 0x0000 },
- { 0x1900, 0x29b3, 0x0000 },
- { 0x9900, 0x29b6, 0x2000 },
- { 0x1900, 0x29b5, 0x0000 },
- { 0x1900, 0x29b7, 0x0000 },
- { 0x9900, 0x29bc, 0x3000 },
- { 0x9900, 0x29ba, 0x2000 },
- { 0x1900, 0x29b9, 0x0000 },
- { 0x1900, 0x29bb, 0x0000 },
- { 0x9900, 0x29be, 0x2000 },
- { 0x1900, 0x29bd, 0x0000 },
- { 0x1900, 0x29bf, 0x0000 },
- { 0x9900, 0x29d0, 0x5000 },
- { 0x9900, 0x29c8, 0x4000 },
- { 0x9900, 0x29c4, 0x3000 },
- { 0x9900, 0x29c2, 0x2000 },
- { 0x1900, 0x29c1, 0x0000 },
- { 0x1900, 0x29c3, 0x0000 },
- { 0x9900, 0x29c6, 0x2000 },
- { 0x1900, 0x29c5, 0x0000 },
- { 0x1900, 0x29c7, 0x0000 },
- { 0x9900, 0x29cc, 0x3000 },
- { 0x9900, 0x29ca, 0x2000 },
- { 0x1900, 0x29c9, 0x0000 },
- { 0x1900, 0x29cb, 0x0000 },
- { 0x9900, 0x29ce, 0x2000 },
- { 0x1900, 0x29cd, 0x0000 },
- { 0x1900, 0x29cf, 0x0000 },
- { 0x9600, 0x29d8, 0x4000 },
- { 0x9900, 0x29d4, 0x3000 },
- { 0x9900, 0x29d2, 0x2000 },
- { 0x1900, 0x29d1, 0x0000 },
- { 0x1900, 0x29d3, 0x0000 },
- { 0x9900, 0x29d6, 0x2000 },
- { 0x1900, 0x29d5, 0x0000 },
- { 0x1900, 0x29d7, 0x0000 },
- { 0x9900, 0x29dc, 0x3000 },
- { 0x9600, 0x29da, 0x2000 },
- { 0x1200, 0x29d9, 0x0000 },
- { 0x1200, 0x29db, 0x0000 },
- { 0x9900, 0x29de, 0x2000 },
- { 0x1900, 0x29dd, 0x0000 },
- { 0x1900, 0x29df, 0x0000 },
- { 0x9900, 0x2a00, 0x6000 },
- { 0x9900, 0x29f0, 0x5000 },
- { 0x9900, 0x29e8, 0x4000 },
- { 0x9900, 0x29e4, 0x3000 },
- { 0x9900, 0x29e2, 0x2000 },
- { 0x1900, 0x29e1, 0x0000 },
- { 0x1900, 0x29e3, 0x0000 },
- { 0x9900, 0x29e6, 0x2000 },
- { 0x1900, 0x29e5, 0x0000 },
- { 0x1900, 0x29e7, 0x0000 },
- { 0x9900, 0x29ec, 0x3000 },
- { 0x9900, 0x29ea, 0x2000 },
- { 0x1900, 0x29e9, 0x0000 },
- { 0x1900, 0x29eb, 0x0000 },
- { 0x9900, 0x29ee, 0x2000 },
- { 0x1900, 0x29ed, 0x0000 },
- { 0x1900, 0x29ef, 0x0000 },
- { 0x9900, 0x29f8, 0x4000 },
- { 0x9900, 0x29f4, 0x3000 },
- { 0x9900, 0x29f2, 0x2000 },
- { 0x1900, 0x29f1, 0x0000 },
- { 0x1900, 0x29f3, 0x0000 },
- { 0x9900, 0x29f6, 0x2000 },
- { 0x1900, 0x29f5, 0x0000 },
- { 0x1900, 0x29f7, 0x0000 },
- { 0x9600, 0x29fc, 0x3000 },
- { 0x9900, 0x29fa, 0x2000 },
- { 0x1900, 0x29f9, 0x0000 },
- { 0x1900, 0x29fb, 0x0000 },
- { 0x9900, 0x29fe, 0x2000 },
- { 0x1200, 0x29fd, 0x0000 },
- { 0x1900, 0x29ff, 0x0000 },
- { 0x9900, 0x2a10, 0x5000 },
- { 0x9900, 0x2a08, 0x4000 },
- { 0x9900, 0x2a04, 0x3000 },
- { 0x9900, 0x2a02, 0x2000 },
- { 0x1900, 0x2a01, 0x0000 },
- { 0x1900, 0x2a03, 0x0000 },
- { 0x9900, 0x2a06, 0x2000 },
- { 0x1900, 0x2a05, 0x0000 },
- { 0x1900, 0x2a07, 0x0000 },
- { 0x9900, 0x2a0c, 0x3000 },
- { 0x9900, 0x2a0a, 0x2000 },
- { 0x1900, 0x2a09, 0x0000 },
- { 0x1900, 0x2a0b, 0x0000 },
- { 0x9900, 0x2a0e, 0x2000 },
- { 0x1900, 0x2a0d, 0x0000 },
- { 0x1900, 0x2a0f, 0x0000 },
- { 0x9900, 0x2a18, 0x4000 },
- { 0x9900, 0x2a14, 0x3000 },
- { 0x9900, 0x2a12, 0x2000 },
- { 0x1900, 0x2a11, 0x0000 },
- { 0x1900, 0x2a13, 0x0000 },
- { 0x9900, 0x2a16, 0x2000 },
- { 0x1900, 0x2a15, 0x0000 },
- { 0x1900, 0x2a17, 0x0000 },
- { 0x9900, 0x2a1c, 0x3000 },
- { 0x9900, 0x2a1a, 0x2000 },
- { 0x1900, 0x2a19, 0x0000 },
- { 0x1900, 0x2a1b, 0x0000 },
- { 0x9900, 0x2a1e, 0x2000 },
- { 0x1900, 0x2a1d, 0x0000 },
- { 0x1900, 0x2a1f, 0x0000 },
- { 0x9900, 0x2a60, 0x7000 },
- { 0x9900, 0x2a40, 0x6000 },
- { 0x9900, 0x2a30, 0x5000 },
- { 0x9900, 0x2a28, 0x4000 },
- { 0x9900, 0x2a24, 0x3000 },
- { 0x9900, 0x2a22, 0x2000 },
- { 0x1900, 0x2a21, 0x0000 },
- { 0x1900, 0x2a23, 0x0000 },
- { 0x9900, 0x2a26, 0x2000 },
- { 0x1900, 0x2a25, 0x0000 },
- { 0x1900, 0x2a27, 0x0000 },
- { 0x9900, 0x2a2c, 0x3000 },
- { 0x9900, 0x2a2a, 0x2000 },
- { 0x1900, 0x2a29, 0x0000 },
- { 0x1900, 0x2a2b, 0x0000 },
- { 0x9900, 0x2a2e, 0x2000 },
- { 0x1900, 0x2a2d, 0x0000 },
- { 0x1900, 0x2a2f, 0x0000 },
- { 0x9900, 0x2a38, 0x4000 },
- { 0x9900, 0x2a34, 0x3000 },
- { 0x9900, 0x2a32, 0x2000 },
- { 0x1900, 0x2a31, 0x0000 },
- { 0x1900, 0x2a33, 0x0000 },
- { 0x9900, 0x2a36, 0x2000 },
- { 0x1900, 0x2a35, 0x0000 },
- { 0x1900, 0x2a37, 0x0000 },
- { 0x9900, 0x2a3c, 0x3000 },
- { 0x9900, 0x2a3a, 0x2000 },
- { 0x1900, 0x2a39, 0x0000 },
- { 0x1900, 0x2a3b, 0x0000 },
- { 0x9900, 0x2a3e, 0x2000 },
- { 0x1900, 0x2a3d, 0x0000 },
- { 0x1900, 0x2a3f, 0x0000 },
- { 0x9900, 0x2a50, 0x5000 },
- { 0x9900, 0x2a48, 0x4000 },
- { 0x9900, 0x2a44, 0x3000 },
- { 0x9900, 0x2a42, 0x2000 },
- { 0x1900, 0x2a41, 0x0000 },
- { 0x1900, 0x2a43, 0x0000 },
- { 0x9900, 0x2a46, 0x2000 },
- { 0x1900, 0x2a45, 0x0000 },
- { 0x1900, 0x2a47, 0x0000 },
- { 0x9900, 0x2a4c, 0x3000 },
- { 0x9900, 0x2a4a, 0x2000 },
- { 0x1900, 0x2a49, 0x0000 },
- { 0x1900, 0x2a4b, 0x0000 },
- { 0x9900, 0x2a4e, 0x2000 },
- { 0x1900, 0x2a4d, 0x0000 },
- { 0x1900, 0x2a4f, 0x0000 },
- { 0x9900, 0x2a58, 0x4000 },
- { 0x9900, 0x2a54, 0x3000 },
- { 0x9900, 0x2a52, 0x2000 },
- { 0x1900, 0x2a51, 0x0000 },
- { 0x1900, 0x2a53, 0x0000 },
- { 0x9900, 0x2a56, 0x2000 },
- { 0x1900, 0x2a55, 0x0000 },
- { 0x1900, 0x2a57, 0x0000 },
- { 0x9900, 0x2a5c, 0x3000 },
- { 0x9900, 0x2a5a, 0x2000 },
- { 0x1900, 0x2a59, 0x0000 },
- { 0x1900, 0x2a5b, 0x0000 },
- { 0x9900, 0x2a5e, 0x2000 },
- { 0x1900, 0x2a5d, 0x0000 },
- { 0x1900, 0x2a5f, 0x0000 },
- { 0x9900, 0x2a80, 0x6000 },
- { 0x9900, 0x2a70, 0x5000 },
- { 0x9900, 0x2a68, 0x4000 },
- { 0x9900, 0x2a64, 0x3000 },
- { 0x9900, 0x2a62, 0x2000 },
- { 0x1900, 0x2a61, 0x0000 },
- { 0x1900, 0x2a63, 0x0000 },
- { 0x9900, 0x2a66, 0x2000 },
- { 0x1900, 0x2a65, 0x0000 },
- { 0x1900, 0x2a67, 0x0000 },
- { 0x9900, 0x2a6c, 0x3000 },
- { 0x9900, 0x2a6a, 0x2000 },
- { 0x1900, 0x2a69, 0x0000 },
- { 0x1900, 0x2a6b, 0x0000 },
- { 0x9900, 0x2a6e, 0x2000 },
- { 0x1900, 0x2a6d, 0x0000 },
- { 0x1900, 0x2a6f, 0x0000 },
- { 0x9900, 0x2a78, 0x4000 },
- { 0x9900, 0x2a74, 0x3000 },
- { 0x9900, 0x2a72, 0x2000 },
- { 0x1900, 0x2a71, 0x0000 },
- { 0x1900, 0x2a73, 0x0000 },
- { 0x9900, 0x2a76, 0x2000 },
- { 0x1900, 0x2a75, 0x0000 },
- { 0x1900, 0x2a77, 0x0000 },
- { 0x9900, 0x2a7c, 0x3000 },
- { 0x9900, 0x2a7a, 0x2000 },
- { 0x1900, 0x2a79, 0x0000 },
- { 0x1900, 0x2a7b, 0x0000 },
- { 0x9900, 0x2a7e, 0x2000 },
- { 0x1900, 0x2a7d, 0x0000 },
- { 0x1900, 0x2a7f, 0x0000 },
- { 0x9900, 0x2a90, 0x5000 },
- { 0x9900, 0x2a88, 0x4000 },
- { 0x9900, 0x2a84, 0x3000 },
- { 0x9900, 0x2a82, 0x2000 },
- { 0x1900, 0x2a81, 0x0000 },
- { 0x1900, 0x2a83, 0x0000 },
- { 0x9900, 0x2a86, 0x2000 },
- { 0x1900, 0x2a85, 0x0000 },
- { 0x1900, 0x2a87, 0x0000 },
- { 0x9900, 0x2a8c, 0x3000 },
- { 0x9900, 0x2a8a, 0x2000 },
- { 0x1900, 0x2a89, 0x0000 },
- { 0x1900, 0x2a8b, 0x0000 },
- { 0x9900, 0x2a8e, 0x2000 },
- { 0x1900, 0x2a8d, 0x0000 },
- { 0x1900, 0x2a8f, 0x0000 },
- { 0x9900, 0x2a98, 0x4000 },
- { 0x9900, 0x2a94, 0x3000 },
- { 0x9900, 0x2a92, 0x2000 },
- { 0x1900, 0x2a91, 0x0000 },
- { 0x1900, 0x2a93, 0x0000 },
- { 0x9900, 0x2a96, 0x2000 },
- { 0x1900, 0x2a95, 0x0000 },
- { 0x1900, 0x2a97, 0x0000 },
- { 0x9900, 0x2a9c, 0x3000 },
- { 0x9900, 0x2a9a, 0x2000 },
- { 0x1900, 0x2a99, 0x0000 },
- { 0x1900, 0x2a9b, 0x0000 },
- { 0x9900, 0x2a9e, 0x2000 },
- { 0x1900, 0x2a9d, 0x0000 },
- { 0x1900, 0x2a9f, 0x0000 },
- { 0x9a00, 0x2e92, 0x8000 },
- { 0x9900, 0x2ae0, 0x7000 },
- { 0x9900, 0x2ac0, 0x6000 },
- { 0x9900, 0x2ab0, 0x5000 },
- { 0x9900, 0x2aa8, 0x4000 },
- { 0x9900, 0x2aa4, 0x3000 },
- { 0x9900, 0x2aa2, 0x2000 },
- { 0x1900, 0x2aa1, 0x0000 },
- { 0x1900, 0x2aa3, 0x0000 },
- { 0x9900, 0x2aa6, 0x2000 },
- { 0x1900, 0x2aa5, 0x0000 },
- { 0x1900, 0x2aa7, 0x0000 },
- { 0x9900, 0x2aac, 0x3000 },
- { 0x9900, 0x2aaa, 0x2000 },
- { 0x1900, 0x2aa9, 0x0000 },
- { 0x1900, 0x2aab, 0x0000 },
- { 0x9900, 0x2aae, 0x2000 },
- { 0x1900, 0x2aad, 0x0000 },
- { 0x1900, 0x2aaf, 0x0000 },
- { 0x9900, 0x2ab8, 0x4000 },
- { 0x9900, 0x2ab4, 0x3000 },
- { 0x9900, 0x2ab2, 0x2000 },
- { 0x1900, 0x2ab1, 0x0000 },
- { 0x1900, 0x2ab3, 0x0000 },
- { 0x9900, 0x2ab6, 0x2000 },
- { 0x1900, 0x2ab5, 0x0000 },
- { 0x1900, 0x2ab7, 0x0000 },
- { 0x9900, 0x2abc, 0x3000 },
- { 0x9900, 0x2aba, 0x2000 },
- { 0x1900, 0x2ab9, 0x0000 },
- { 0x1900, 0x2abb, 0x0000 },
- { 0x9900, 0x2abe, 0x2000 },
- { 0x1900, 0x2abd, 0x0000 },
- { 0x1900, 0x2abf, 0x0000 },
- { 0x9900, 0x2ad0, 0x5000 },
- { 0x9900, 0x2ac8, 0x4000 },
- { 0x9900, 0x2ac4, 0x3000 },
- { 0x9900, 0x2ac2, 0x2000 },
- { 0x1900, 0x2ac1, 0x0000 },
- { 0x1900, 0x2ac3, 0x0000 },
- { 0x9900, 0x2ac6, 0x2000 },
- { 0x1900, 0x2ac5, 0x0000 },
- { 0x1900, 0x2ac7, 0x0000 },
- { 0x9900, 0x2acc, 0x3000 },
- { 0x9900, 0x2aca, 0x2000 },
- { 0x1900, 0x2ac9, 0x0000 },
- { 0x1900, 0x2acb, 0x0000 },
- { 0x9900, 0x2ace, 0x2000 },
- { 0x1900, 0x2acd, 0x0000 },
- { 0x1900, 0x2acf, 0x0000 },
- { 0x9900, 0x2ad8, 0x4000 },
- { 0x9900, 0x2ad4, 0x3000 },
- { 0x9900, 0x2ad2, 0x2000 },
- { 0x1900, 0x2ad1, 0x0000 },
- { 0x1900, 0x2ad3, 0x0000 },
- { 0x9900, 0x2ad6, 0x2000 },
- { 0x1900, 0x2ad5, 0x0000 },
- { 0x1900, 0x2ad7, 0x0000 },
- { 0x9900, 0x2adc, 0x3000 },
- { 0x9900, 0x2ada, 0x2000 },
- { 0x1900, 0x2ad9, 0x0000 },
- { 0x1900, 0x2adb, 0x0000 },
- { 0x9900, 0x2ade, 0x2000 },
- { 0x1900, 0x2add, 0x0000 },
- { 0x1900, 0x2adf, 0x0000 },
- { 0x9a00, 0x2b00, 0x6000 },
- { 0x9900, 0x2af0, 0x5000 },
- { 0x9900, 0x2ae8, 0x4000 },
- { 0x9900, 0x2ae4, 0x3000 },
- { 0x9900, 0x2ae2, 0x2000 },
- { 0x1900, 0x2ae1, 0x0000 },
- { 0x1900, 0x2ae3, 0x0000 },
- { 0x9900, 0x2ae6, 0x2000 },
- { 0x1900, 0x2ae5, 0x0000 },
- { 0x1900, 0x2ae7, 0x0000 },
- { 0x9900, 0x2aec, 0x3000 },
- { 0x9900, 0x2aea, 0x2000 },
- { 0x1900, 0x2ae9, 0x0000 },
- { 0x1900, 0x2aeb, 0x0000 },
- { 0x9900, 0x2aee, 0x2000 },
- { 0x1900, 0x2aed, 0x0000 },
- { 0x1900, 0x2aef, 0x0000 },
- { 0x9900, 0x2af8, 0x4000 },
- { 0x9900, 0x2af4, 0x3000 },
- { 0x9900, 0x2af2, 0x2000 },
- { 0x1900, 0x2af1, 0x0000 },
- { 0x1900, 0x2af3, 0x0000 },
- { 0x9900, 0x2af6, 0x2000 },
- { 0x1900, 0x2af5, 0x0000 },
- { 0x1900, 0x2af7, 0x0000 },
- { 0x9900, 0x2afc, 0x3000 },
- { 0x9900, 0x2afa, 0x2000 },
- { 0x1900, 0x2af9, 0x0000 },
- { 0x1900, 0x2afb, 0x0000 },
- { 0x9900, 0x2afe, 0x2000 },
- { 0x1900, 0x2afd, 0x0000 },
- { 0x1900, 0x2aff, 0x0000 },
- { 0x9a00, 0x2e82, 0x5000 },
- { 0x9a00, 0x2b08, 0x4000 },
- { 0x9a00, 0x2b04, 0x3000 },
- { 0x9a00, 0x2b02, 0x2000 },
- { 0x1a00, 0x2b01, 0x0000 },
- { 0x1a00, 0x2b03, 0x0000 },
- { 0x9a00, 0x2b06, 0x2000 },
- { 0x1a00, 0x2b05, 0x0000 },
- { 0x1a00, 0x2b07, 0x0000 },
- { 0x9a00, 0x2b0c, 0x3000 },
- { 0x9a00, 0x2b0a, 0x2000 },
- { 0x1a00, 0x2b09, 0x0000 },
- { 0x1a00, 0x2b0b, 0x0000 },
- { 0x9a00, 0x2e80, 0x2000 },
- { 0x1a00, 0x2b0d, 0x0000 },
- { 0x1a00, 0x2e81, 0x0000 },
- { 0x9a00, 0x2e8a, 0x4000 },
- { 0x9a00, 0x2e86, 0x3000 },
- { 0x9a00, 0x2e84, 0x2000 },
- { 0x1a00, 0x2e83, 0x0000 },
- { 0x1a00, 0x2e85, 0x0000 },
- { 0x9a00, 0x2e88, 0x2000 },
- { 0x1a00, 0x2e87, 0x0000 },
- { 0x1a00, 0x2e89, 0x0000 },
- { 0x9a00, 0x2e8e, 0x3000 },
- { 0x9a00, 0x2e8c, 0x2000 },
- { 0x1a00, 0x2e8b, 0x0000 },
- { 0x1a00, 0x2e8d, 0x0000 },
- { 0x9a00, 0x2e90, 0x2000 },
- { 0x1a00, 0x2e8f, 0x0000 },
- { 0x1a00, 0x2e91, 0x0000 },
- { 0x9a00, 0x2ed3, 0x7000 },
- { 0x9a00, 0x2eb3, 0x6000 },
- { 0x9a00, 0x2ea3, 0x5000 },
- { 0x9a00, 0x2e9b, 0x4000 },
- { 0x9a00, 0x2e96, 0x3000 },
- { 0x9a00, 0x2e94, 0x2000 },
- { 0x1a00, 0x2e93, 0x0000 },
- { 0x1a00, 0x2e95, 0x0000 },
- { 0x9a00, 0x2e98, 0x2000 },
- { 0x1a00, 0x2e97, 0x0000 },
- { 0x1a00, 0x2e99, 0x0000 },
- { 0x9a00, 0x2e9f, 0x3000 },
- { 0x9a00, 0x2e9d, 0x2000 },
- { 0x1a00, 0x2e9c, 0x0000 },
- { 0x1a00, 0x2e9e, 0x0000 },
- { 0x9a00, 0x2ea1, 0x2000 },
- { 0x1a00, 0x2ea0, 0x0000 },
- { 0x1a00, 0x2ea2, 0x0000 },
- { 0x9a00, 0x2eab, 0x4000 },
- { 0x9a00, 0x2ea7, 0x3000 },
- { 0x9a00, 0x2ea5, 0x2000 },
- { 0x1a00, 0x2ea4, 0x0000 },
- { 0x1a00, 0x2ea6, 0x0000 },
- { 0x9a00, 0x2ea9, 0x2000 },
- { 0x1a00, 0x2ea8, 0x0000 },
- { 0x1a00, 0x2eaa, 0x0000 },
- { 0x9a00, 0x2eaf, 0x3000 },
- { 0x9a00, 0x2ead, 0x2000 },
- { 0x1a00, 0x2eac, 0x0000 },
- { 0x1a00, 0x2eae, 0x0000 },
- { 0x9a00, 0x2eb1, 0x2000 },
- { 0x1a00, 0x2eb0, 0x0000 },
- { 0x1a00, 0x2eb2, 0x0000 },
- { 0x9a00, 0x2ec3, 0x5000 },
- { 0x9a00, 0x2ebb, 0x4000 },
- { 0x9a00, 0x2eb7, 0x3000 },
- { 0x9a00, 0x2eb5, 0x2000 },
- { 0x1a00, 0x2eb4, 0x0000 },
- { 0x1a00, 0x2eb6, 0x0000 },
- { 0x9a00, 0x2eb9, 0x2000 },
- { 0x1a00, 0x2eb8, 0x0000 },
- { 0x1a00, 0x2eba, 0x0000 },
- { 0x9a00, 0x2ebf, 0x3000 },
- { 0x9a00, 0x2ebd, 0x2000 },
- { 0x1a00, 0x2ebc, 0x0000 },
- { 0x1a00, 0x2ebe, 0x0000 },
- { 0x9a00, 0x2ec1, 0x2000 },
- { 0x1a00, 0x2ec0, 0x0000 },
- { 0x1a00, 0x2ec2, 0x0000 },
- { 0x9a00, 0x2ecb, 0x4000 },
- { 0x9a00, 0x2ec7, 0x3000 },
- { 0x9a00, 0x2ec5, 0x2000 },
- { 0x1a00, 0x2ec4, 0x0000 },
- { 0x1a00, 0x2ec6, 0x0000 },
- { 0x9a00, 0x2ec9, 0x2000 },
- { 0x1a00, 0x2ec8, 0x0000 },
- { 0x1a00, 0x2eca, 0x0000 },
- { 0x9a00, 0x2ecf, 0x3000 },
- { 0x9a00, 0x2ecd, 0x2000 },
- { 0x1a00, 0x2ecc, 0x0000 },
- { 0x1a00, 0x2ece, 0x0000 },
- { 0x9a00, 0x2ed1, 0x2000 },
- { 0x1a00, 0x2ed0, 0x0000 },
- { 0x1a00, 0x2ed2, 0x0000 },
- { 0x9a00, 0x2ef3, 0x6000 },
- { 0x9a00, 0x2ee3, 0x5000 },
- { 0x9a00, 0x2edb, 0x4000 },
- { 0x9a00, 0x2ed7, 0x3000 },
- { 0x9a00, 0x2ed5, 0x2000 },
- { 0x1a00, 0x2ed4, 0x0000 },
- { 0x1a00, 0x2ed6, 0x0000 },
- { 0x9a00, 0x2ed9, 0x2000 },
- { 0x1a00, 0x2ed8, 0x0000 },
- { 0x1a00, 0x2eda, 0x0000 },
- { 0x9a00, 0x2edf, 0x3000 },
- { 0x9a00, 0x2edd, 0x2000 },
- { 0x1a00, 0x2edc, 0x0000 },
- { 0x1a00, 0x2ede, 0x0000 },
- { 0x9a00, 0x2ee1, 0x2000 },
- { 0x1a00, 0x2ee0, 0x0000 },
- { 0x1a00, 0x2ee2, 0x0000 },
- { 0x9a00, 0x2eeb, 0x4000 },
- { 0x9a00, 0x2ee7, 0x3000 },
- { 0x9a00, 0x2ee5, 0x2000 },
- { 0x1a00, 0x2ee4, 0x0000 },
- { 0x1a00, 0x2ee6, 0x0000 },
- { 0x9a00, 0x2ee9, 0x2000 },
- { 0x1a00, 0x2ee8, 0x0000 },
- { 0x1a00, 0x2eea, 0x0000 },
- { 0x9a00, 0x2eef, 0x3000 },
- { 0x9a00, 0x2eed, 0x2000 },
- { 0x1a00, 0x2eec, 0x0000 },
- { 0x1a00, 0x2eee, 0x0000 },
- { 0x9a00, 0x2ef1, 0x2000 },
- { 0x1a00, 0x2ef0, 0x0000 },
- { 0x1a00, 0x2ef2, 0x0000 },
- { 0x9a00, 0x2f0f, 0x5000 },
- { 0x9a00, 0x2f07, 0x4000 },
- { 0x9a00, 0x2f03, 0x3000 },
- { 0x9a00, 0x2f01, 0x2000 },
- { 0x1a00, 0x2f00, 0x0000 },
- { 0x1a00, 0x2f02, 0x0000 },
- { 0x9a00, 0x2f05, 0x2000 },
- { 0x1a00, 0x2f04, 0x0000 },
- { 0x1a00, 0x2f06, 0x0000 },
- { 0x9a00, 0x2f0b, 0x3000 },
- { 0x9a00, 0x2f09, 0x2000 },
- { 0x1a00, 0x2f08, 0x0000 },
- { 0x1a00, 0x2f0a, 0x0000 },
- { 0x9a00, 0x2f0d, 0x2000 },
- { 0x1a00, 0x2f0c, 0x0000 },
- { 0x1a00, 0x2f0e, 0x0000 },
- { 0x9a00, 0x2f17, 0x4000 },
- { 0x9a00, 0x2f13, 0x3000 },
- { 0x9a00, 0x2f11, 0x2000 },
- { 0x1a00, 0x2f10, 0x0000 },
- { 0x1a00, 0x2f12, 0x0000 },
- { 0x9a00, 0x2f15, 0x2000 },
- { 0x1a00, 0x2f14, 0x0000 },
- { 0x1a00, 0x2f16, 0x0000 },
- { 0x9a00, 0x2f1b, 0x3000 },
- { 0x9a00, 0x2f19, 0x2000 },
- { 0x1a00, 0x2f18, 0x0000 },
- { 0x1a00, 0x2f1a, 0x0000 },
- { 0x9a00, 0x2f1d, 0x2000 },
- { 0x1a00, 0x2f1c, 0x0000 },
- { 0x1a00, 0x2f1e, 0x0000 },
- { 0x8701, 0x00f0, 0xd000 },
- { 0x8700, 0xa34d, 0xc000 },
- { 0x9a00, 0x3391, 0xb000 },
- { 0x8700, 0x3149, 0xa000 },
- { 0x9500, 0x303d, 0x9000 },
- { 0x9a00, 0x2f9f, 0x8000 },
- { 0x9a00, 0x2f5f, 0x7000 },
- { 0x9a00, 0x2f3f, 0x6000 },
- { 0x9a00, 0x2f2f, 0x5000 },
- { 0x9a00, 0x2f27, 0x4000 },
- { 0x9a00, 0x2f23, 0x3000 },
- { 0x9a00, 0x2f21, 0x2000 },
- { 0x1a00, 0x2f20, 0x0000 },
- { 0x1a00, 0x2f22, 0x0000 },
- { 0x9a00, 0x2f25, 0x2000 },
- { 0x1a00, 0x2f24, 0x0000 },
- { 0x1a00, 0x2f26, 0x0000 },
- { 0x9a00, 0x2f2b, 0x3000 },
- { 0x9a00, 0x2f29, 0x2000 },
- { 0x1a00, 0x2f28, 0x0000 },
- { 0x1a00, 0x2f2a, 0x0000 },
- { 0x9a00, 0x2f2d, 0x2000 },
- { 0x1a00, 0x2f2c, 0x0000 },
- { 0x1a00, 0x2f2e, 0x0000 },
- { 0x9a00, 0x2f37, 0x4000 },
- { 0x9a00, 0x2f33, 0x3000 },
- { 0x9a00, 0x2f31, 0x2000 },
- { 0x1a00, 0x2f30, 0x0000 },
- { 0x1a00, 0x2f32, 0x0000 },
- { 0x9a00, 0x2f35, 0x2000 },
- { 0x1a00, 0x2f34, 0x0000 },
- { 0x1a00, 0x2f36, 0x0000 },
- { 0x9a00, 0x2f3b, 0x3000 },
- { 0x9a00, 0x2f39, 0x2000 },
- { 0x1a00, 0x2f38, 0x0000 },
- { 0x1a00, 0x2f3a, 0x0000 },
- { 0x9a00, 0x2f3d, 0x2000 },
- { 0x1a00, 0x2f3c, 0x0000 },
- { 0x1a00, 0x2f3e, 0x0000 },
- { 0x9a00, 0x2f4f, 0x5000 },
- { 0x9a00, 0x2f47, 0x4000 },
- { 0x9a00, 0x2f43, 0x3000 },
- { 0x9a00, 0x2f41, 0x2000 },
- { 0x1a00, 0x2f40, 0x0000 },
- { 0x1a00, 0x2f42, 0x0000 },
- { 0x9a00, 0x2f45, 0x2000 },
- { 0x1a00, 0x2f44, 0x0000 },
- { 0x1a00, 0x2f46, 0x0000 },
- { 0x9a00, 0x2f4b, 0x3000 },
- { 0x9a00, 0x2f49, 0x2000 },
- { 0x1a00, 0x2f48, 0x0000 },
- { 0x1a00, 0x2f4a, 0x0000 },
- { 0x9a00, 0x2f4d, 0x2000 },
- { 0x1a00, 0x2f4c, 0x0000 },
- { 0x1a00, 0x2f4e, 0x0000 },
- { 0x9a00, 0x2f57, 0x4000 },
- { 0x9a00, 0x2f53, 0x3000 },
- { 0x9a00, 0x2f51, 0x2000 },
- { 0x1a00, 0x2f50, 0x0000 },
- { 0x1a00, 0x2f52, 0x0000 },
- { 0x9a00, 0x2f55, 0x2000 },
- { 0x1a00, 0x2f54, 0x0000 },
- { 0x1a00, 0x2f56, 0x0000 },
- { 0x9a00, 0x2f5b, 0x3000 },
- { 0x9a00, 0x2f59, 0x2000 },
- { 0x1a00, 0x2f58, 0x0000 },
- { 0x1a00, 0x2f5a, 0x0000 },
- { 0x9a00, 0x2f5d, 0x2000 },
- { 0x1a00, 0x2f5c, 0x0000 },
- { 0x1a00, 0x2f5e, 0x0000 },
- { 0x9a00, 0x2f7f, 0x6000 },
- { 0x9a00, 0x2f6f, 0x5000 },
- { 0x9a00, 0x2f67, 0x4000 },
- { 0x9a00, 0x2f63, 0x3000 },
- { 0x9a00, 0x2f61, 0x2000 },
- { 0x1a00, 0x2f60, 0x0000 },
- { 0x1a00, 0x2f62, 0x0000 },
- { 0x9a00, 0x2f65, 0x2000 },
- { 0x1a00, 0x2f64, 0x0000 },
- { 0x1a00, 0x2f66, 0x0000 },
- { 0x9a00, 0x2f6b, 0x3000 },
- { 0x9a00, 0x2f69, 0x2000 },
- { 0x1a00, 0x2f68, 0x0000 },
- { 0x1a00, 0x2f6a, 0x0000 },
- { 0x9a00, 0x2f6d, 0x2000 },
- { 0x1a00, 0x2f6c, 0x0000 },
- { 0x1a00, 0x2f6e, 0x0000 },
- { 0x9a00, 0x2f77, 0x4000 },
- { 0x9a00, 0x2f73, 0x3000 },
- { 0x9a00, 0x2f71, 0x2000 },
- { 0x1a00, 0x2f70, 0x0000 },
- { 0x1a00, 0x2f72, 0x0000 },
- { 0x9a00, 0x2f75, 0x2000 },
- { 0x1a00, 0x2f74, 0x0000 },
- { 0x1a00, 0x2f76, 0x0000 },
- { 0x9a00, 0x2f7b, 0x3000 },
- { 0x9a00, 0x2f79, 0x2000 },
- { 0x1a00, 0x2f78, 0x0000 },
- { 0x1a00, 0x2f7a, 0x0000 },
- { 0x9a00, 0x2f7d, 0x2000 },
- { 0x1a00, 0x2f7c, 0x0000 },
- { 0x1a00, 0x2f7e, 0x0000 },
- { 0x9a00, 0x2f8f, 0x5000 },
- { 0x9a00, 0x2f87, 0x4000 },
- { 0x9a00, 0x2f83, 0x3000 },
- { 0x9a00, 0x2f81, 0x2000 },
- { 0x1a00, 0x2f80, 0x0000 },
- { 0x1a00, 0x2f82, 0x0000 },
- { 0x9a00, 0x2f85, 0x2000 },
- { 0x1a00, 0x2f84, 0x0000 },
- { 0x1a00, 0x2f86, 0x0000 },
- { 0x9a00, 0x2f8b, 0x3000 },
- { 0x9a00, 0x2f89, 0x2000 },
- { 0x1a00, 0x2f88, 0x0000 },
- { 0x1a00, 0x2f8a, 0x0000 },
- { 0x9a00, 0x2f8d, 0x2000 },
- { 0x1a00, 0x2f8c, 0x0000 },
- { 0x1a00, 0x2f8e, 0x0000 },
- { 0x9a00, 0x2f97, 0x4000 },
- { 0x9a00, 0x2f93, 0x3000 },
- { 0x9a00, 0x2f91, 0x2000 },
- { 0x1a00, 0x2f90, 0x0000 },
- { 0x1a00, 0x2f92, 0x0000 },
- { 0x9a00, 0x2f95, 0x2000 },
- { 0x1a00, 0x2f94, 0x0000 },
- { 0x1a00, 0x2f96, 0x0000 },
- { 0x9a00, 0x2f9b, 0x3000 },
- { 0x9a00, 0x2f99, 0x2000 },
- { 0x1a00, 0x2f98, 0x0000 },
- { 0x1a00, 0x2f9a, 0x0000 },
- { 0x9a00, 0x2f9d, 0x2000 },
- { 0x1a00, 0x2f9c, 0x0000 },
- { 0x1a00, 0x2f9e, 0x0000 },
- { 0x9a00, 0x2ff9, 0x7000 },
- { 0x9a00, 0x2fbf, 0x6000 },
- { 0x9a00, 0x2faf, 0x5000 },
- { 0x9a00, 0x2fa7, 0x4000 },
- { 0x9a00, 0x2fa3, 0x3000 },
- { 0x9a00, 0x2fa1, 0x2000 },
- { 0x1a00, 0x2fa0, 0x0000 },
- { 0x1a00, 0x2fa2, 0x0000 },
- { 0x9a00, 0x2fa5, 0x2000 },
- { 0x1a00, 0x2fa4, 0x0000 },
- { 0x1a00, 0x2fa6, 0x0000 },
- { 0x9a00, 0x2fab, 0x3000 },
- { 0x9a00, 0x2fa9, 0x2000 },
- { 0x1a00, 0x2fa8, 0x0000 },
- { 0x1a00, 0x2faa, 0x0000 },
- { 0x9a00, 0x2fad, 0x2000 },
- { 0x1a00, 0x2fac, 0x0000 },
- { 0x1a00, 0x2fae, 0x0000 },
- { 0x9a00, 0x2fb7, 0x4000 },
- { 0x9a00, 0x2fb3, 0x3000 },
- { 0x9a00, 0x2fb1, 0x2000 },
- { 0x1a00, 0x2fb0, 0x0000 },
- { 0x1a00, 0x2fb2, 0x0000 },
- { 0x9a00, 0x2fb5, 0x2000 },
- { 0x1a00, 0x2fb4, 0x0000 },
- { 0x1a00, 0x2fb6, 0x0000 },
- { 0x9a00, 0x2fbb, 0x3000 },
- { 0x9a00, 0x2fb9, 0x2000 },
- { 0x1a00, 0x2fb8, 0x0000 },
- { 0x1a00, 0x2fba, 0x0000 },
- { 0x9a00, 0x2fbd, 0x2000 },
- { 0x1a00, 0x2fbc, 0x0000 },
- { 0x1a00, 0x2fbe, 0x0000 },
- { 0x9a00, 0x2fcf, 0x5000 },
- { 0x9a00, 0x2fc7, 0x4000 },
- { 0x9a00, 0x2fc3, 0x3000 },
- { 0x9a00, 0x2fc1, 0x2000 },
- { 0x1a00, 0x2fc0, 0x0000 },
- { 0x1a00, 0x2fc2, 0x0000 },
- { 0x9a00, 0x2fc5, 0x2000 },
- { 0x1a00, 0x2fc4, 0x0000 },
- { 0x1a00, 0x2fc6, 0x0000 },
- { 0x9a00, 0x2fcb, 0x3000 },
- { 0x9a00, 0x2fc9, 0x2000 },
- { 0x1a00, 0x2fc8, 0x0000 },
- { 0x1a00, 0x2fca, 0x0000 },
- { 0x9a00, 0x2fcd, 0x2000 },
- { 0x1a00, 0x2fcc, 0x0000 },
- { 0x1a00, 0x2fce, 0x0000 },
- { 0x9a00, 0x2ff1, 0x4000 },
- { 0x9a00, 0x2fd3, 0x3000 },
- { 0x9a00, 0x2fd1, 0x2000 },
- { 0x1a00, 0x2fd0, 0x0000 },
- { 0x1a00, 0x2fd2, 0x0000 },
- { 0x9a00, 0x2fd5, 0x2000 },
- { 0x1a00, 0x2fd4, 0x0000 },
- { 0x1a00, 0x2ff0, 0x0000 },
- { 0x9a00, 0x2ff5, 0x3000 },
- { 0x9a00, 0x2ff3, 0x2000 },
- { 0x1a00, 0x2ff2, 0x0000 },
- { 0x1a00, 0x2ff4, 0x0000 },
- { 0x9a00, 0x2ff7, 0x2000 },
- { 0x1a00, 0x2ff6, 0x0000 },
- { 0x1a00, 0x2ff8, 0x0000 },
- { 0x9600, 0x301d, 0x6000 },
- { 0x9200, 0x300d, 0x5000 },
- { 0x8600, 0x3005, 0x4000 },
- { 0x9500, 0x3001, 0x3000 },
- { 0x9a00, 0x2ffb, 0x2000 },
- { 0x1a00, 0x2ffa, 0x0000 },
- { 0x1d00, 0x3000, 0x0000 },
- { 0x9500, 0x3003, 0x2000 },
- { 0x1500, 0x3002, 0x0000 },
- { 0x1a00, 0x3004, 0x0000 },
- { 0x9200, 0x3009, 0x3000 },
- { 0x8e00, 0x3007, 0x2000 },
- { 0x0700, 0x3006, 0x0000 },
- { 0x1600, 0x3008, 0x0000 },
- { 0x9200, 0x300b, 0x2000 },
- { 0x1600, 0x300a, 0x0000 },
- { 0x1600, 0x300c, 0x0000 },
- { 0x9200, 0x3015, 0x4000 },
- { 0x9200, 0x3011, 0x3000 },
- { 0x9200, 0x300f, 0x2000 },
- { 0x1600, 0x300e, 0x0000 },
- { 0x1600, 0x3010, 0x0000 },
- { 0x9a00, 0x3013, 0x2000 },
- { 0x1a00, 0x3012, 0x0000 },
- { 0x1600, 0x3014, 0x0000 },
- { 0x9200, 0x3019, 0x3000 },
- { 0x9200, 0x3017, 0x2000 },
- { 0x1600, 0x3016, 0x0000 },
- { 0x1600, 0x3018, 0x0000 },
- { 0x9200, 0x301b, 0x2000 },
- { 0x1600, 0x301a, 0x0000 },
- { 0x1100, 0x301c, 0x0000 },
- { 0x8c00, 0x302d, 0x5000 },
- { 0x8e00, 0x3025, 0x4000 },
- { 0x8e00, 0x3021, 0x3000 },
- { 0x9200, 0x301f, 0x2000 },
- { 0x1200, 0x301e, 0x0000 },
- { 0x1a00, 0x3020, 0x0000 },
- { 0x8e00, 0x3023, 0x2000 },
- { 0x0e00, 0x3022, 0x0000 },
- { 0x0e00, 0x3024, 0x0000 },
- { 0x8e00, 0x3029, 0x3000 },
- { 0x8e00, 0x3027, 0x2000 },
- { 0x0e00, 0x3026, 0x0000 },
- { 0x0e00, 0x3028, 0x0000 },
- { 0x8c00, 0x302b, 0x2000 },
- { 0x0c00, 0x302a, 0x0000 },
- { 0x0c00, 0x302c, 0x0000 },
- { 0x8600, 0x3035, 0x4000 },
- { 0x8600, 0x3031, 0x3000 },
- { 0x8c00, 0x302f, 0x2000 },
- { 0x0c00, 0x302e, 0x0000 },
- { 0x1100, 0x3030, 0x0000 },
- { 0x8600, 0x3033, 0x2000 },
- { 0x0600, 0x3032, 0x0000 },
- { 0x0600, 0x3034, 0x0000 },
- { 0x8e00, 0x3039, 0x3000 },
- { 0x9a00, 0x3037, 0x2000 },
- { 0x1a00, 0x3036, 0x0000 },
- { 0x0e00, 0x3038, 0x0000 },
- { 0x8600, 0x303b, 0x2000 },
- { 0x0e00, 0x303a, 0x0000 },
- { 0x0700, 0x303c, 0x0000 },
- { 0x8700, 0x30c0, 0x8000 },
- { 0x8700, 0x307e, 0x7000 },
- { 0x8700, 0x305e, 0x6000 },
- { 0x8700, 0x304e, 0x5000 },
- { 0x8700, 0x3046, 0x4000 },
- { 0x8700, 0x3042, 0x3000 },
- { 0x9a00, 0x303f, 0x2000 },
- { 0x1a00, 0x303e, 0x0000 },
- { 0x0700, 0x3041, 0x0000 },
- { 0x8700, 0x3044, 0x2000 },
- { 0x0700, 0x3043, 0x0000 },
- { 0x0700, 0x3045, 0x0000 },
- { 0x8700, 0x304a, 0x3000 },
- { 0x8700, 0x3048, 0x2000 },
- { 0x0700, 0x3047, 0x0000 },
- { 0x0700, 0x3049, 0x0000 },
- { 0x8700, 0x304c, 0x2000 },
- { 0x0700, 0x304b, 0x0000 },
- { 0x0700, 0x304d, 0x0000 },
- { 0x8700, 0x3056, 0x4000 },
- { 0x8700, 0x3052, 0x3000 },
- { 0x8700, 0x3050, 0x2000 },
- { 0x0700, 0x304f, 0x0000 },
- { 0x0700, 0x3051, 0x0000 },
- { 0x8700, 0x3054, 0x2000 },
- { 0x0700, 0x3053, 0x0000 },
- { 0x0700, 0x3055, 0x0000 },
- { 0x8700, 0x305a, 0x3000 },
- { 0x8700, 0x3058, 0x2000 },
- { 0x0700, 0x3057, 0x0000 },
- { 0x0700, 0x3059, 0x0000 },
- { 0x8700, 0x305c, 0x2000 },
- { 0x0700, 0x305b, 0x0000 },
- { 0x0700, 0x305d, 0x0000 },
- { 0x8700, 0x306e, 0x5000 },
- { 0x8700, 0x3066, 0x4000 },
- { 0x8700, 0x3062, 0x3000 },
- { 0x8700, 0x3060, 0x2000 },
- { 0x0700, 0x305f, 0x0000 },
- { 0x0700, 0x3061, 0x0000 },
- { 0x8700, 0x3064, 0x2000 },
- { 0x0700, 0x3063, 0x0000 },
- { 0x0700, 0x3065, 0x0000 },
- { 0x8700, 0x306a, 0x3000 },
- { 0x8700, 0x3068, 0x2000 },
- { 0x0700, 0x3067, 0x0000 },
- { 0x0700, 0x3069, 0x0000 },
- { 0x8700, 0x306c, 0x2000 },
- { 0x0700, 0x306b, 0x0000 },
- { 0x0700, 0x306d, 0x0000 },
- { 0x8700, 0x3076, 0x4000 },
- { 0x8700, 0x3072, 0x3000 },
- { 0x8700, 0x3070, 0x2000 },
- { 0x0700, 0x306f, 0x0000 },
- { 0x0700, 0x3071, 0x0000 },
- { 0x8700, 0x3074, 0x2000 },
- { 0x0700, 0x3073, 0x0000 },
- { 0x0700, 0x3075, 0x0000 },
- { 0x8700, 0x307a, 0x3000 },
- { 0x8700, 0x3078, 0x2000 },
- { 0x0700, 0x3077, 0x0000 },
- { 0x0700, 0x3079, 0x0000 },
- { 0x8700, 0x307c, 0x2000 },
- { 0x0700, 0x307b, 0x0000 },
- { 0x0700, 0x307d, 0x0000 },
- { 0x9100, 0x30a0, 0x6000 },
- { 0x8700, 0x308e, 0x5000 },
- { 0x8700, 0x3086, 0x4000 },
- { 0x8700, 0x3082, 0x3000 },
- { 0x8700, 0x3080, 0x2000 },
- { 0x0700, 0x307f, 0x0000 },
- { 0x0700, 0x3081, 0x0000 },
- { 0x8700, 0x3084, 0x2000 },
- { 0x0700, 0x3083, 0x0000 },
- { 0x0700, 0x3085, 0x0000 },
- { 0x8700, 0x308a, 0x3000 },
- { 0x8700, 0x3088, 0x2000 },
- { 0x0700, 0x3087, 0x0000 },
- { 0x0700, 0x3089, 0x0000 },
- { 0x8700, 0x308c, 0x2000 },
- { 0x0700, 0x308b, 0x0000 },
- { 0x0700, 0x308d, 0x0000 },
- { 0x8700, 0x3096, 0x4000 },
- { 0x8700, 0x3092, 0x3000 },
- { 0x8700, 0x3090, 0x2000 },
- { 0x0700, 0x308f, 0x0000 },
- { 0x0700, 0x3091, 0x0000 },
- { 0x8700, 0x3094, 0x2000 },
- { 0x0700, 0x3093, 0x0000 },
- { 0x0700, 0x3095, 0x0000 },
- { 0x9800, 0x309c, 0x3000 },
- { 0x8c00, 0x309a, 0x2000 },
- { 0x0c00, 0x3099, 0x0000 },
- { 0x1800, 0x309b, 0x0000 },
- { 0x8600, 0x309e, 0x2000 },
- { 0x0600, 0x309d, 0x0000 },
- { 0x0700, 0x309f, 0x0000 },
- { 0x8700, 0x30b0, 0x5000 },
- { 0x8700, 0x30a8, 0x4000 },
- { 0x8700, 0x30a4, 0x3000 },
- { 0x8700, 0x30a2, 0x2000 },
- { 0x0700, 0x30a1, 0x0000 },
- { 0x0700, 0x30a3, 0x0000 },
- { 0x8700, 0x30a6, 0x2000 },
- { 0x0700, 0x30a5, 0x0000 },
- { 0x0700, 0x30a7, 0x0000 },
- { 0x8700, 0x30ac, 0x3000 },
- { 0x8700, 0x30aa, 0x2000 },
- { 0x0700, 0x30a9, 0x0000 },
- { 0x0700, 0x30ab, 0x0000 },
- { 0x8700, 0x30ae, 0x2000 },
- { 0x0700, 0x30ad, 0x0000 },
- { 0x0700, 0x30af, 0x0000 },
- { 0x8700, 0x30b8, 0x4000 },
- { 0x8700, 0x30b4, 0x3000 },
- { 0x8700, 0x30b2, 0x2000 },
- { 0x0700, 0x30b1, 0x0000 },
- { 0x0700, 0x30b3, 0x0000 },
- { 0x8700, 0x30b6, 0x2000 },
- { 0x0700, 0x30b5, 0x0000 },
- { 0x0700, 0x30b7, 0x0000 },
- { 0x8700, 0x30bc, 0x3000 },
- { 0x8700, 0x30ba, 0x2000 },
- { 0x0700, 0x30b9, 0x0000 },
- { 0x0700, 0x30bb, 0x0000 },
- { 0x8700, 0x30be, 0x2000 },
- { 0x0700, 0x30bd, 0x0000 },
- { 0x0700, 0x30bf, 0x0000 },
- { 0x8700, 0x3105, 0x7000 },
- { 0x8700, 0x30e0, 0x6000 },
- { 0x8700, 0x30d0, 0x5000 },
- { 0x8700, 0x30c8, 0x4000 },
- { 0x8700, 0x30c4, 0x3000 },
- { 0x8700, 0x30c2, 0x2000 },
- { 0x0700, 0x30c1, 0x0000 },
- { 0x0700, 0x30c3, 0x0000 },
- { 0x8700, 0x30c6, 0x2000 },
- { 0x0700, 0x30c5, 0x0000 },
- { 0x0700, 0x30c7, 0x0000 },
- { 0x8700, 0x30cc, 0x3000 },
- { 0x8700, 0x30ca, 0x2000 },
- { 0x0700, 0x30c9, 0x0000 },
- { 0x0700, 0x30cb, 0x0000 },
- { 0x8700, 0x30ce, 0x2000 },
- { 0x0700, 0x30cd, 0x0000 },
- { 0x0700, 0x30cf, 0x0000 },
- { 0x8700, 0x30d8, 0x4000 },
- { 0x8700, 0x30d4, 0x3000 },
- { 0x8700, 0x30d2, 0x2000 },
- { 0x0700, 0x30d1, 0x0000 },
- { 0x0700, 0x30d3, 0x0000 },
- { 0x8700, 0x30d6, 0x2000 },
- { 0x0700, 0x30d5, 0x0000 },
- { 0x0700, 0x30d7, 0x0000 },
- { 0x8700, 0x30dc, 0x3000 },
- { 0x8700, 0x30da, 0x2000 },
- { 0x0700, 0x30d9, 0x0000 },
- { 0x0700, 0x30db, 0x0000 },
- { 0x8700, 0x30de, 0x2000 },
- { 0x0700, 0x30dd, 0x0000 },
- { 0x0700, 0x30df, 0x0000 },
- { 0x8700, 0x30f0, 0x5000 },
- { 0x8700, 0x30e8, 0x4000 },
- { 0x8700, 0x30e4, 0x3000 },
- { 0x8700, 0x30e2, 0x2000 },
- { 0x0700, 0x30e1, 0x0000 },
- { 0x0700, 0x30e3, 0x0000 },
- { 0x8700, 0x30e6, 0x2000 },
- { 0x0700, 0x30e5, 0x0000 },
- { 0x0700, 0x30e7, 0x0000 },
- { 0x8700, 0x30ec, 0x3000 },
- { 0x8700, 0x30ea, 0x2000 },
- { 0x0700, 0x30e9, 0x0000 },
- { 0x0700, 0x30eb, 0x0000 },
- { 0x8700, 0x30ee, 0x2000 },
- { 0x0700, 0x30ed, 0x0000 },
- { 0x0700, 0x30ef, 0x0000 },
- { 0x8700, 0x30f8, 0x4000 },
- { 0x8700, 0x30f4, 0x3000 },
- { 0x8700, 0x30f2, 0x2000 },
- { 0x0700, 0x30f1, 0x0000 },
- { 0x0700, 0x30f3, 0x0000 },
- { 0x8700, 0x30f6, 0x2000 },
- { 0x0700, 0x30f5, 0x0000 },
- { 0x0700, 0x30f7, 0x0000 },
- { 0x8600, 0x30fc, 0x3000 },
- { 0x8700, 0x30fa, 0x2000 },
- { 0x0700, 0x30f9, 0x0000 },
- { 0x1000, 0x30fb, 0x0000 },
- { 0x8600, 0x30fe, 0x2000 },
- { 0x0600, 0x30fd, 0x0000 },
- { 0x0700, 0x30ff, 0x0000 },
- { 0x8700, 0x3125, 0x6000 },
- { 0x8700, 0x3115, 0x5000 },
- { 0x8700, 0x310d, 0x4000 },
- { 0x8700, 0x3109, 0x3000 },
- { 0x8700, 0x3107, 0x2000 },
- { 0x0700, 0x3106, 0x0000 },
- { 0x0700, 0x3108, 0x0000 },
- { 0x8700, 0x310b, 0x2000 },
- { 0x0700, 0x310a, 0x0000 },
- { 0x0700, 0x310c, 0x0000 },
- { 0x8700, 0x3111, 0x3000 },
- { 0x8700, 0x310f, 0x2000 },
- { 0x0700, 0x310e, 0x0000 },
- { 0x0700, 0x3110, 0x0000 },
- { 0x8700, 0x3113, 0x2000 },
- { 0x0700, 0x3112, 0x0000 },
- { 0x0700, 0x3114, 0x0000 },
- { 0x8700, 0x311d, 0x4000 },
- { 0x8700, 0x3119, 0x3000 },
- { 0x8700, 0x3117, 0x2000 },
- { 0x0700, 0x3116, 0x0000 },
- { 0x0700, 0x3118, 0x0000 },
- { 0x8700, 0x311b, 0x2000 },
- { 0x0700, 0x311a, 0x0000 },
- { 0x0700, 0x311c, 0x0000 },
- { 0x8700, 0x3121, 0x3000 },
- { 0x8700, 0x311f, 0x2000 },
- { 0x0700, 0x311e, 0x0000 },
- { 0x0700, 0x3120, 0x0000 },
- { 0x8700, 0x3123, 0x2000 },
- { 0x0700, 0x3122, 0x0000 },
- { 0x0700, 0x3124, 0x0000 },
- { 0x8700, 0x3139, 0x5000 },
- { 0x8700, 0x3131, 0x4000 },
- { 0x8700, 0x3129, 0x3000 },
- { 0x8700, 0x3127, 0x2000 },
- { 0x0700, 0x3126, 0x0000 },
- { 0x0700, 0x3128, 0x0000 },
- { 0x8700, 0x312b, 0x2000 },
- { 0x0700, 0x312a, 0x0000 },
- { 0x0700, 0x312c, 0x0000 },
- { 0x8700, 0x3135, 0x3000 },
- { 0x8700, 0x3133, 0x2000 },
- { 0x0700, 0x3132, 0x0000 },
- { 0x0700, 0x3134, 0x0000 },
- { 0x8700, 0x3137, 0x2000 },
- { 0x0700, 0x3136, 0x0000 },
- { 0x0700, 0x3138, 0x0000 },
- { 0x8700, 0x3141, 0x4000 },
- { 0x8700, 0x313d, 0x3000 },
- { 0x8700, 0x313b, 0x2000 },
- { 0x0700, 0x313a, 0x0000 },
- { 0x0700, 0x313c, 0x0000 },
- { 0x8700, 0x313f, 0x2000 },
- { 0x0700, 0x313e, 0x0000 },
- { 0x0700, 0x3140, 0x0000 },
- { 0x8700, 0x3145, 0x3000 },
- { 0x8700, 0x3143, 0x2000 },
- { 0x0700, 0x3142, 0x0000 },
- { 0x0700, 0x3144, 0x0000 },
- { 0x8700, 0x3147, 0x2000 },
- { 0x0700, 0x3146, 0x0000 },
- { 0x0700, 0x3148, 0x0000 },
- { 0x9a00, 0x3290, 0x9000 },
- { 0x9a00, 0x3202, 0x8000 },
- { 0x8700, 0x3189, 0x7000 },
- { 0x8700, 0x3169, 0x6000 },
- { 0x8700, 0x3159, 0x5000 },
- { 0x8700, 0x3151, 0x4000 },
- { 0x8700, 0x314d, 0x3000 },
- { 0x8700, 0x314b, 0x2000 },
- { 0x0700, 0x314a, 0x0000 },
- { 0x0700, 0x314c, 0x0000 },
- { 0x8700, 0x314f, 0x2000 },
- { 0x0700, 0x314e, 0x0000 },
- { 0x0700, 0x3150, 0x0000 },
- { 0x8700, 0x3155, 0x3000 },
- { 0x8700, 0x3153, 0x2000 },
- { 0x0700, 0x3152, 0x0000 },
- { 0x0700, 0x3154, 0x0000 },
- { 0x8700, 0x3157, 0x2000 },
- { 0x0700, 0x3156, 0x0000 },
- { 0x0700, 0x3158, 0x0000 },
- { 0x8700, 0x3161, 0x4000 },
- { 0x8700, 0x315d, 0x3000 },
- { 0x8700, 0x315b, 0x2000 },
- { 0x0700, 0x315a, 0x0000 },
- { 0x0700, 0x315c, 0x0000 },
- { 0x8700, 0x315f, 0x2000 },
- { 0x0700, 0x315e, 0x0000 },
- { 0x0700, 0x3160, 0x0000 },
- { 0x8700, 0x3165, 0x3000 },
- { 0x8700, 0x3163, 0x2000 },
- { 0x0700, 0x3162, 0x0000 },
- { 0x0700, 0x3164, 0x0000 },
- { 0x8700, 0x3167, 0x2000 },
- { 0x0700, 0x3166, 0x0000 },
- { 0x0700, 0x3168, 0x0000 },
- { 0x8700, 0x3179, 0x5000 },
- { 0x8700, 0x3171, 0x4000 },
- { 0x8700, 0x316d, 0x3000 },
- { 0x8700, 0x316b, 0x2000 },
- { 0x0700, 0x316a, 0x0000 },
- { 0x0700, 0x316c, 0x0000 },
- { 0x8700, 0x316f, 0x2000 },
- { 0x0700, 0x316e, 0x0000 },
- { 0x0700, 0x3170, 0x0000 },
- { 0x8700, 0x3175, 0x3000 },
- { 0x8700, 0x3173, 0x2000 },
- { 0x0700, 0x3172, 0x0000 },
- { 0x0700, 0x3174, 0x0000 },
- { 0x8700, 0x3177, 0x2000 },
- { 0x0700, 0x3176, 0x0000 },
- { 0x0700, 0x3178, 0x0000 },
- { 0x8700, 0x3181, 0x4000 },
- { 0x8700, 0x317d, 0x3000 },
- { 0x8700, 0x317b, 0x2000 },
- { 0x0700, 0x317a, 0x0000 },
- { 0x0700, 0x317c, 0x0000 },
- { 0x8700, 0x317f, 0x2000 },
- { 0x0700, 0x317e, 0x0000 },
- { 0x0700, 0x3180, 0x0000 },
- { 0x8700, 0x3185, 0x3000 },
- { 0x8700, 0x3183, 0x2000 },
- { 0x0700, 0x3182, 0x0000 },
- { 0x0700, 0x3184, 0x0000 },
- { 0x8700, 0x3187, 0x2000 },
- { 0x0700, 0x3186, 0x0000 },
- { 0x0700, 0x3188, 0x0000 },
- { 0x8700, 0x31aa, 0x6000 },
- { 0x9a00, 0x319a, 0x5000 },
- { 0x8f00, 0x3192, 0x4000 },
- { 0x8700, 0x318d, 0x3000 },
- { 0x8700, 0x318b, 0x2000 },
- { 0x0700, 0x318a, 0x0000 },
- { 0x0700, 0x318c, 0x0000 },
- { 0x9a00, 0x3190, 0x2000 },
- { 0x0700, 0x318e, 0x0000 },
- { 0x1a00, 0x3191, 0x0000 },
- { 0x9a00, 0x3196, 0x3000 },
- { 0x8f00, 0x3194, 0x2000 },
- { 0x0f00, 0x3193, 0x0000 },
- { 0x0f00, 0x3195, 0x0000 },
- { 0x9a00, 0x3198, 0x2000 },
- { 0x1a00, 0x3197, 0x0000 },
- { 0x1a00, 0x3199, 0x0000 },
- { 0x8700, 0x31a2, 0x4000 },
- { 0x9a00, 0x319e, 0x3000 },
- { 0x9a00, 0x319c, 0x2000 },
- { 0x1a00, 0x319b, 0x0000 },
- { 0x1a00, 0x319d, 0x0000 },
- { 0x8700, 0x31a0, 0x2000 },
- { 0x1a00, 0x319f, 0x0000 },
- { 0x0700, 0x31a1, 0x0000 },
- { 0x8700, 0x31a6, 0x3000 },
- { 0x8700, 0x31a4, 0x2000 },
- { 0x0700, 0x31a3, 0x0000 },
- { 0x0700, 0x31a5, 0x0000 },
- { 0x8700, 0x31a8, 0x2000 },
- { 0x0700, 0x31a7, 0x0000 },
- { 0x0700, 0x31a9, 0x0000 },
- { 0x8700, 0x31f2, 0x5000 },
- { 0x8700, 0x31b2, 0x4000 },
- { 0x8700, 0x31ae, 0x3000 },
- { 0x8700, 0x31ac, 0x2000 },
- { 0x0700, 0x31ab, 0x0000 },
- { 0x0700, 0x31ad, 0x0000 },
- { 0x8700, 0x31b0, 0x2000 },
- { 0x0700, 0x31af, 0x0000 },
- { 0x0700, 0x31b1, 0x0000 },
- { 0x8700, 0x31b6, 0x3000 },
- { 0x8700, 0x31b4, 0x2000 },
- { 0x0700, 0x31b3, 0x0000 },
- { 0x0700, 0x31b5, 0x0000 },
- { 0x8700, 0x31f0, 0x2000 },
- { 0x0700, 0x31b7, 0x0000 },
- { 0x0700, 0x31f1, 0x0000 },
- { 0x8700, 0x31fa, 0x4000 },
- { 0x8700, 0x31f6, 0x3000 },
- { 0x8700, 0x31f4, 0x2000 },
- { 0x0700, 0x31f3, 0x0000 },
- { 0x0700, 0x31f5, 0x0000 },
- { 0x8700, 0x31f8, 0x2000 },
- { 0x0700, 0x31f7, 0x0000 },
- { 0x0700, 0x31f9, 0x0000 },
- { 0x8700, 0x31fe, 0x3000 },
- { 0x8700, 0x31fc, 0x2000 },
- { 0x0700, 0x31fb, 0x0000 },
- { 0x0700, 0x31fd, 0x0000 },
- { 0x9a00, 0x3200, 0x2000 },
- { 0x0700, 0x31ff, 0x0000 },
- { 0x1a00, 0x3201, 0x0000 },
- { 0x9a00, 0x3243, 0x7000 },
- { 0x8f00, 0x3223, 0x6000 },
- { 0x9a00, 0x3212, 0x5000 },
- { 0x9a00, 0x320a, 0x4000 },
- { 0x9a00, 0x3206, 0x3000 },
- { 0x9a00, 0x3204, 0x2000 },
- { 0x1a00, 0x3203, 0x0000 },
- { 0x1a00, 0x3205, 0x0000 },
- { 0x9a00, 0x3208, 0x2000 },
- { 0x1a00, 0x3207, 0x0000 },
- { 0x1a00, 0x3209, 0x0000 },
- { 0x9a00, 0x320e, 0x3000 },
- { 0x9a00, 0x320c, 0x2000 },
- { 0x1a00, 0x320b, 0x0000 },
- { 0x1a00, 0x320d, 0x0000 },
- { 0x9a00, 0x3210, 0x2000 },
- { 0x1a00, 0x320f, 0x0000 },
- { 0x1a00, 0x3211, 0x0000 },
- { 0x9a00, 0x321a, 0x4000 },
- { 0x9a00, 0x3216, 0x3000 },
- { 0x9a00, 0x3214, 0x2000 },
- { 0x1a00, 0x3213, 0x0000 },
- { 0x1a00, 0x3215, 0x0000 },
- { 0x9a00, 0x3218, 0x2000 },
- { 0x1a00, 0x3217, 0x0000 },
- { 0x1a00, 0x3219, 0x0000 },
- { 0x9a00, 0x321e, 0x3000 },
- { 0x9a00, 0x321c, 0x2000 },
- { 0x1a00, 0x321b, 0x0000 },
- { 0x1a00, 0x321d, 0x0000 },
- { 0x8f00, 0x3221, 0x2000 },
- { 0x0f00, 0x3220, 0x0000 },
- { 0x0f00, 0x3222, 0x0000 },
- { 0x9a00, 0x3233, 0x5000 },
- { 0x9a00, 0x322b, 0x4000 },
- { 0x8f00, 0x3227, 0x3000 },
- { 0x8f00, 0x3225, 0x2000 },
- { 0x0f00, 0x3224, 0x0000 },
- { 0x0f00, 0x3226, 0x0000 },
- { 0x8f00, 0x3229, 0x2000 },
- { 0x0f00, 0x3228, 0x0000 },
- { 0x1a00, 0x322a, 0x0000 },
- { 0x9a00, 0x322f, 0x3000 },
- { 0x9a00, 0x322d, 0x2000 },
- { 0x1a00, 0x322c, 0x0000 },
- { 0x1a00, 0x322e, 0x0000 },
- { 0x9a00, 0x3231, 0x2000 },
- { 0x1a00, 0x3230, 0x0000 },
- { 0x1a00, 0x3232, 0x0000 },
- { 0x9a00, 0x323b, 0x4000 },
- { 0x9a00, 0x3237, 0x3000 },
- { 0x9a00, 0x3235, 0x2000 },
- { 0x1a00, 0x3234, 0x0000 },
- { 0x1a00, 0x3236, 0x0000 },
- { 0x9a00, 0x3239, 0x2000 },
- { 0x1a00, 0x3238, 0x0000 },
- { 0x1a00, 0x323a, 0x0000 },
- { 0x9a00, 0x323f, 0x3000 },
- { 0x9a00, 0x323d, 0x2000 },
- { 0x1a00, 0x323c, 0x0000 },
- { 0x1a00, 0x323e, 0x0000 },
- { 0x9a00, 0x3241, 0x2000 },
- { 0x1a00, 0x3240, 0x0000 },
- { 0x1a00, 0x3242, 0x0000 },
- { 0x9a00, 0x326f, 0x6000 },
- { 0x8f00, 0x325f, 0x5000 },
- { 0x8f00, 0x3257, 0x4000 },
- { 0x8f00, 0x3253, 0x3000 },
- { 0x8f00, 0x3251, 0x2000 },
- { 0x1a00, 0x3250, 0x0000 },
- { 0x0f00, 0x3252, 0x0000 },
- { 0x8f00, 0x3255, 0x2000 },
- { 0x0f00, 0x3254, 0x0000 },
- { 0x0f00, 0x3256, 0x0000 },
- { 0x8f00, 0x325b, 0x3000 },
- { 0x8f00, 0x3259, 0x2000 },
- { 0x0f00, 0x3258, 0x0000 },
- { 0x0f00, 0x325a, 0x0000 },
- { 0x8f00, 0x325d, 0x2000 },
- { 0x0f00, 0x325c, 0x0000 },
- { 0x0f00, 0x325e, 0x0000 },
- { 0x9a00, 0x3267, 0x4000 },
- { 0x9a00, 0x3263, 0x3000 },
- { 0x9a00, 0x3261, 0x2000 },
- { 0x1a00, 0x3260, 0x0000 },
- { 0x1a00, 0x3262, 0x0000 },
- { 0x9a00, 0x3265, 0x2000 },
- { 0x1a00, 0x3264, 0x0000 },
- { 0x1a00, 0x3266, 0x0000 },
- { 0x9a00, 0x326b, 0x3000 },
- { 0x9a00, 0x3269, 0x2000 },
- { 0x1a00, 0x3268, 0x0000 },
- { 0x1a00, 0x326a, 0x0000 },
- { 0x9a00, 0x326d, 0x2000 },
- { 0x1a00, 0x326c, 0x0000 },
- { 0x1a00, 0x326e, 0x0000 },
- { 0x8f00, 0x3280, 0x5000 },
- { 0x9a00, 0x3277, 0x4000 },
- { 0x9a00, 0x3273, 0x3000 },
- { 0x9a00, 0x3271, 0x2000 },
- { 0x1a00, 0x3270, 0x0000 },
- { 0x1a00, 0x3272, 0x0000 },
- { 0x9a00, 0x3275, 0x2000 },
- { 0x1a00, 0x3274, 0x0000 },
- { 0x1a00, 0x3276, 0x0000 },
- { 0x9a00, 0x327b, 0x3000 },
- { 0x9a00, 0x3279, 0x2000 },
- { 0x1a00, 0x3278, 0x0000 },
- { 0x1a00, 0x327a, 0x0000 },
- { 0x9a00, 0x327d, 0x2000 },
- { 0x1a00, 0x327c, 0x0000 },
- { 0x1a00, 0x327f, 0x0000 },
- { 0x8f00, 0x3288, 0x4000 },
- { 0x8f00, 0x3284, 0x3000 },
- { 0x8f00, 0x3282, 0x2000 },
- { 0x0f00, 0x3281, 0x0000 },
- { 0x0f00, 0x3283, 0x0000 },
- { 0x8f00, 0x3286, 0x2000 },
- { 0x0f00, 0x3285, 0x0000 },
- { 0x0f00, 0x3287, 0x0000 },
- { 0x9a00, 0x328c, 0x3000 },
- { 0x9a00, 0x328a, 0x2000 },
- { 0x0f00, 0x3289, 0x0000 },
- { 0x1a00, 0x328b, 0x0000 },
- { 0x9a00, 0x328e, 0x2000 },
- { 0x1a00, 0x328d, 0x0000 },
- { 0x1a00, 0x328f, 0x0000 },
- { 0x9a00, 0x3311, 0x8000 },
- { 0x9a00, 0x32d0, 0x7000 },
- { 0x9a00, 0x32b0, 0x6000 },
- { 0x9a00, 0x32a0, 0x5000 },
- { 0x9a00, 0x3298, 0x4000 },
- { 0x9a00, 0x3294, 0x3000 },
- { 0x9a00, 0x3292, 0x2000 },
- { 0x1a00, 0x3291, 0x0000 },
- { 0x1a00, 0x3293, 0x0000 },
- { 0x9a00, 0x3296, 0x2000 },
- { 0x1a00, 0x3295, 0x0000 },
- { 0x1a00, 0x3297, 0x0000 },
- { 0x9a00, 0x329c, 0x3000 },
- { 0x9a00, 0x329a, 0x2000 },
- { 0x1a00, 0x3299, 0x0000 },
- { 0x1a00, 0x329b, 0x0000 },
- { 0x9a00, 0x329e, 0x2000 },
- { 0x1a00, 0x329d, 0x0000 },
- { 0x1a00, 0x329f, 0x0000 },
- { 0x9a00, 0x32a8, 0x4000 },
- { 0x9a00, 0x32a4, 0x3000 },
- { 0x9a00, 0x32a2, 0x2000 },
- { 0x1a00, 0x32a1, 0x0000 },
- { 0x1a00, 0x32a3, 0x0000 },
- { 0x9a00, 0x32a6, 0x2000 },
- { 0x1a00, 0x32a5, 0x0000 },
- { 0x1a00, 0x32a7, 0x0000 },
- { 0x9a00, 0x32ac, 0x3000 },
- { 0x9a00, 0x32aa, 0x2000 },
- { 0x1a00, 0x32a9, 0x0000 },
- { 0x1a00, 0x32ab, 0x0000 },
- { 0x9a00, 0x32ae, 0x2000 },
- { 0x1a00, 0x32ad, 0x0000 },
- { 0x1a00, 0x32af, 0x0000 },
- { 0x9a00, 0x32c0, 0x5000 },
- { 0x8f00, 0x32b8, 0x4000 },
- { 0x8f00, 0x32b4, 0x3000 },
- { 0x8f00, 0x32b2, 0x2000 },
- { 0x0f00, 0x32b1, 0x0000 },
- { 0x0f00, 0x32b3, 0x0000 },
- { 0x8f00, 0x32b6, 0x2000 },
- { 0x0f00, 0x32b5, 0x0000 },
- { 0x0f00, 0x32b7, 0x0000 },
- { 0x8f00, 0x32bc, 0x3000 },
- { 0x8f00, 0x32ba, 0x2000 },
- { 0x0f00, 0x32b9, 0x0000 },
- { 0x0f00, 0x32bb, 0x0000 },
- { 0x8f00, 0x32be, 0x2000 },
- { 0x0f00, 0x32bd, 0x0000 },
- { 0x0f00, 0x32bf, 0x0000 },
- { 0x9a00, 0x32c8, 0x4000 },
- { 0x9a00, 0x32c4, 0x3000 },
- { 0x9a00, 0x32c2, 0x2000 },
- { 0x1a00, 0x32c1, 0x0000 },
- { 0x1a00, 0x32c3, 0x0000 },
- { 0x9a00, 0x32c6, 0x2000 },
- { 0x1a00, 0x32c5, 0x0000 },
- { 0x1a00, 0x32c7, 0x0000 },
- { 0x9a00, 0x32cc, 0x3000 },
- { 0x9a00, 0x32ca, 0x2000 },
- { 0x1a00, 0x32c9, 0x0000 },
- { 0x1a00, 0x32cb, 0x0000 },
- { 0x9a00, 0x32ce, 0x2000 },
- { 0x1a00, 0x32cd, 0x0000 },
- { 0x1a00, 0x32cf, 0x0000 },
- { 0x9a00, 0x32f0, 0x6000 },
- { 0x9a00, 0x32e0, 0x5000 },
- { 0x9a00, 0x32d8, 0x4000 },
- { 0x9a00, 0x32d4, 0x3000 },
- { 0x9a00, 0x32d2, 0x2000 },
- { 0x1a00, 0x32d1, 0x0000 },
- { 0x1a00, 0x32d3, 0x0000 },
- { 0x9a00, 0x32d6, 0x2000 },
- { 0x1a00, 0x32d5, 0x0000 },
- { 0x1a00, 0x32d7, 0x0000 },
- { 0x9a00, 0x32dc, 0x3000 },
- { 0x9a00, 0x32da, 0x2000 },
- { 0x1a00, 0x32d9, 0x0000 },
- { 0x1a00, 0x32db, 0x0000 },
- { 0x9a00, 0x32de, 0x2000 },
- { 0x1a00, 0x32dd, 0x0000 },
- { 0x1a00, 0x32df, 0x0000 },
- { 0x9a00, 0x32e8, 0x4000 },
- { 0x9a00, 0x32e4, 0x3000 },
- { 0x9a00, 0x32e2, 0x2000 },
- { 0x1a00, 0x32e1, 0x0000 },
- { 0x1a00, 0x32e3, 0x0000 },
- { 0x9a00, 0x32e6, 0x2000 },
- { 0x1a00, 0x32e5, 0x0000 },
- { 0x1a00, 0x32e7, 0x0000 },
- { 0x9a00, 0x32ec, 0x3000 },
- { 0x9a00, 0x32ea, 0x2000 },
- { 0x1a00, 0x32e9, 0x0000 },
- { 0x1a00, 0x32eb, 0x0000 },
- { 0x9a00, 0x32ee, 0x2000 },
- { 0x1a00, 0x32ed, 0x0000 },
- { 0x1a00, 0x32ef, 0x0000 },
- { 0x9a00, 0x3301, 0x5000 },
- { 0x9a00, 0x32f8, 0x4000 },
- { 0x9a00, 0x32f4, 0x3000 },
- { 0x9a00, 0x32f2, 0x2000 },
- { 0x1a00, 0x32f1, 0x0000 },
- { 0x1a00, 0x32f3, 0x0000 },
- { 0x9a00, 0x32f6, 0x2000 },
- { 0x1a00, 0x32f5, 0x0000 },
- { 0x1a00, 0x32f7, 0x0000 },
- { 0x9a00, 0x32fc, 0x3000 },
- { 0x9a00, 0x32fa, 0x2000 },
- { 0x1a00, 0x32f9, 0x0000 },
- { 0x1a00, 0x32fb, 0x0000 },
- { 0x9a00, 0x32fe, 0x2000 },
- { 0x1a00, 0x32fd, 0x0000 },
- { 0x1a00, 0x3300, 0x0000 },
- { 0x9a00, 0x3309, 0x4000 },
- { 0x9a00, 0x3305, 0x3000 },
- { 0x9a00, 0x3303, 0x2000 },
- { 0x1a00, 0x3302, 0x0000 },
- { 0x1a00, 0x3304, 0x0000 },
- { 0x9a00, 0x3307, 0x2000 },
- { 0x1a00, 0x3306, 0x0000 },
- { 0x1a00, 0x3308, 0x0000 },
- { 0x9a00, 0x330d, 0x3000 },
- { 0x9a00, 0x330b, 0x2000 },
- { 0x1a00, 0x330a, 0x0000 },
- { 0x1a00, 0x330c, 0x0000 },
- { 0x9a00, 0x330f, 0x2000 },
- { 0x1a00, 0x330e, 0x0000 },
- { 0x1a00, 0x3310, 0x0000 },
- { 0x9a00, 0x3351, 0x7000 },
- { 0x9a00, 0x3331, 0x6000 },
- { 0x9a00, 0x3321, 0x5000 },
- { 0x9a00, 0x3319, 0x4000 },
- { 0x9a00, 0x3315, 0x3000 },
- { 0x9a00, 0x3313, 0x2000 },
- { 0x1a00, 0x3312, 0x0000 },
- { 0x1a00, 0x3314, 0x0000 },
- { 0x9a00, 0x3317, 0x2000 },
- { 0x1a00, 0x3316, 0x0000 },
- { 0x1a00, 0x3318, 0x0000 },
- { 0x9a00, 0x331d, 0x3000 },
- { 0x9a00, 0x331b, 0x2000 },
- { 0x1a00, 0x331a, 0x0000 },
- { 0x1a00, 0x331c, 0x0000 },
- { 0x9a00, 0x331f, 0x2000 },
- { 0x1a00, 0x331e, 0x0000 },
- { 0x1a00, 0x3320, 0x0000 },
- { 0x9a00, 0x3329, 0x4000 },
- { 0x9a00, 0x3325, 0x3000 },
- { 0x9a00, 0x3323, 0x2000 },
- { 0x1a00, 0x3322, 0x0000 },
- { 0x1a00, 0x3324, 0x0000 },
- { 0x9a00, 0x3327, 0x2000 },
- { 0x1a00, 0x3326, 0x0000 },
- { 0x1a00, 0x3328, 0x0000 },
- { 0x9a00, 0x332d, 0x3000 },
- { 0x9a00, 0x332b, 0x2000 },
- { 0x1a00, 0x332a, 0x0000 },
- { 0x1a00, 0x332c, 0x0000 },
- { 0x9a00, 0x332f, 0x2000 },
- { 0x1a00, 0x332e, 0x0000 },
- { 0x1a00, 0x3330, 0x0000 },
- { 0x9a00, 0x3341, 0x5000 },
- { 0x9a00, 0x3339, 0x4000 },
- { 0x9a00, 0x3335, 0x3000 },
- { 0x9a00, 0x3333, 0x2000 },
- { 0x1a00, 0x3332, 0x0000 },
- { 0x1a00, 0x3334, 0x0000 },
- { 0x9a00, 0x3337, 0x2000 },
- { 0x1a00, 0x3336, 0x0000 },
- { 0x1a00, 0x3338, 0x0000 },
- { 0x9a00, 0x333d, 0x3000 },
- { 0x9a00, 0x333b, 0x2000 },
- { 0x1a00, 0x333a, 0x0000 },
- { 0x1a00, 0x333c, 0x0000 },
- { 0x9a00, 0x333f, 0x2000 },
- { 0x1a00, 0x333e, 0x0000 },
- { 0x1a00, 0x3340, 0x0000 },
- { 0x9a00, 0x3349, 0x4000 },
- { 0x9a00, 0x3345, 0x3000 },
- { 0x9a00, 0x3343, 0x2000 },
- { 0x1a00, 0x3342, 0x0000 },
- { 0x1a00, 0x3344, 0x0000 },
- { 0x9a00, 0x3347, 0x2000 },
- { 0x1a00, 0x3346, 0x0000 },
- { 0x1a00, 0x3348, 0x0000 },
- { 0x9a00, 0x334d, 0x3000 },
- { 0x9a00, 0x334b, 0x2000 },
- { 0x1a00, 0x334a, 0x0000 },
- { 0x1a00, 0x334c, 0x0000 },
- { 0x9a00, 0x334f, 0x2000 },
- { 0x1a00, 0x334e, 0x0000 },
- { 0x1a00, 0x3350, 0x0000 },
- { 0x9a00, 0x3371, 0x6000 },
- { 0x9a00, 0x3361, 0x5000 },
- { 0x9a00, 0x3359, 0x4000 },
- { 0x9a00, 0x3355, 0x3000 },
- { 0x9a00, 0x3353, 0x2000 },
- { 0x1a00, 0x3352, 0x0000 },
- { 0x1a00, 0x3354, 0x0000 },
- { 0x9a00, 0x3357, 0x2000 },
- { 0x1a00, 0x3356, 0x0000 },
- { 0x1a00, 0x3358, 0x0000 },
- { 0x9a00, 0x335d, 0x3000 },
- { 0x9a00, 0x335b, 0x2000 },
- { 0x1a00, 0x335a, 0x0000 },
- { 0x1a00, 0x335c, 0x0000 },
- { 0x9a00, 0x335f, 0x2000 },
- { 0x1a00, 0x335e, 0x0000 },
- { 0x1a00, 0x3360, 0x0000 },
- { 0x9a00, 0x3369, 0x4000 },
- { 0x9a00, 0x3365, 0x3000 },
- { 0x9a00, 0x3363, 0x2000 },
- { 0x1a00, 0x3362, 0x0000 },
- { 0x1a00, 0x3364, 0x0000 },
- { 0x9a00, 0x3367, 0x2000 },
- { 0x1a00, 0x3366, 0x0000 },
- { 0x1a00, 0x3368, 0x0000 },
- { 0x9a00, 0x336d, 0x3000 },
- { 0x9a00, 0x336b, 0x2000 },
- { 0x1a00, 0x336a, 0x0000 },
- { 0x1a00, 0x336c, 0x0000 },
- { 0x9a00, 0x336f, 0x2000 },
- { 0x1a00, 0x336e, 0x0000 },
- { 0x1a00, 0x3370, 0x0000 },
- { 0x9a00, 0x3381, 0x5000 },
- { 0x9a00, 0x3379, 0x4000 },
- { 0x9a00, 0x3375, 0x3000 },
- { 0x9a00, 0x3373, 0x2000 },
- { 0x1a00, 0x3372, 0x0000 },
- { 0x1a00, 0x3374, 0x0000 },
- { 0x9a00, 0x3377, 0x2000 },
- { 0x1a00, 0x3376, 0x0000 },
- { 0x1a00, 0x3378, 0x0000 },
- { 0x9a00, 0x337d, 0x3000 },
- { 0x9a00, 0x337b, 0x2000 },
- { 0x1a00, 0x337a, 0x0000 },
- { 0x1a00, 0x337c, 0x0000 },
- { 0x9a00, 0x337f, 0x2000 },
- { 0x1a00, 0x337e, 0x0000 },
- { 0x1a00, 0x3380, 0x0000 },
- { 0x9a00, 0x3389, 0x4000 },
- { 0x9a00, 0x3385, 0x3000 },
- { 0x9a00, 0x3383, 0x2000 },
- { 0x1a00, 0x3382, 0x0000 },
- { 0x1a00, 0x3384, 0x0000 },
- { 0x9a00, 0x3387, 0x2000 },
- { 0x1a00, 0x3386, 0x0000 },
- { 0x1a00, 0x3388, 0x0000 },
- { 0x9a00, 0x338d, 0x3000 },
- { 0x9a00, 0x338b, 0x2000 },
- { 0x1a00, 0x338a, 0x0000 },
- { 0x1a00, 0x338c, 0x0000 },
- { 0x9a00, 0x338f, 0x2000 },
- { 0x1a00, 0x338e, 0x0000 },
- { 0x1a00, 0x3390, 0x0000 },
- { 0x8700, 0xa14d, 0xa000 },
- { 0x8700, 0xa04d, 0x9000 },
- { 0x9a00, 0x4dcf, 0x8000 },
- { 0x9a00, 0x33d1, 0x7000 },
- { 0x9a00, 0x33b1, 0x6000 },
- { 0x9a00, 0x33a1, 0x5000 },
- { 0x9a00, 0x3399, 0x4000 },
- { 0x9a00, 0x3395, 0x3000 },
- { 0x9a00, 0x3393, 0x2000 },
- { 0x1a00, 0x3392, 0x0000 },
- { 0x1a00, 0x3394, 0x0000 },
- { 0x9a00, 0x3397, 0x2000 },
- { 0x1a00, 0x3396, 0x0000 },
- { 0x1a00, 0x3398, 0x0000 },
- { 0x9a00, 0x339d, 0x3000 },
- { 0x9a00, 0x339b, 0x2000 },
- { 0x1a00, 0x339a, 0x0000 },
- { 0x1a00, 0x339c, 0x0000 },
- { 0x9a00, 0x339f, 0x2000 },
- { 0x1a00, 0x339e, 0x0000 },
- { 0x1a00, 0x33a0, 0x0000 },
- { 0x9a00, 0x33a9, 0x4000 },
- { 0x9a00, 0x33a5, 0x3000 },
- { 0x9a00, 0x33a3, 0x2000 },
- { 0x1a00, 0x33a2, 0x0000 },
- { 0x1a00, 0x33a4, 0x0000 },
- { 0x9a00, 0x33a7, 0x2000 },
- { 0x1a00, 0x33a6, 0x0000 },
- { 0x1a00, 0x33a8, 0x0000 },
- { 0x9a00, 0x33ad, 0x3000 },
- { 0x9a00, 0x33ab, 0x2000 },
- { 0x1a00, 0x33aa, 0x0000 },
- { 0x1a00, 0x33ac, 0x0000 },
- { 0x9a00, 0x33af, 0x2000 },
- { 0x1a00, 0x33ae, 0x0000 },
- { 0x1a00, 0x33b0, 0x0000 },
- { 0x9a00, 0x33c1, 0x5000 },
- { 0x9a00, 0x33b9, 0x4000 },
- { 0x9a00, 0x33b5, 0x3000 },
- { 0x9a00, 0x33b3, 0x2000 },
- { 0x1a00, 0x33b2, 0x0000 },
- { 0x1a00, 0x33b4, 0x0000 },
- { 0x9a00, 0x33b7, 0x2000 },
- { 0x1a00, 0x33b6, 0x0000 },
- { 0x1a00, 0x33b8, 0x0000 },
- { 0x9a00, 0x33bd, 0x3000 },
- { 0x9a00, 0x33bb, 0x2000 },
- { 0x1a00, 0x33ba, 0x0000 },
- { 0x1a00, 0x33bc, 0x0000 },
- { 0x9a00, 0x33bf, 0x2000 },
- { 0x1a00, 0x33be, 0x0000 },
- { 0x1a00, 0x33c0, 0x0000 },
- { 0x9a00, 0x33c9, 0x4000 },
- { 0x9a00, 0x33c5, 0x3000 },
- { 0x9a00, 0x33c3, 0x2000 },
- { 0x1a00, 0x33c2, 0x0000 },
- { 0x1a00, 0x33c4, 0x0000 },
- { 0x9a00, 0x33c7, 0x2000 },
- { 0x1a00, 0x33c6, 0x0000 },
- { 0x1a00, 0x33c8, 0x0000 },
- { 0x9a00, 0x33cd, 0x3000 },
- { 0x9a00, 0x33cb, 0x2000 },
- { 0x1a00, 0x33ca, 0x0000 },
- { 0x1a00, 0x33cc, 0x0000 },
- { 0x9a00, 0x33cf, 0x2000 },
- { 0x1a00, 0x33ce, 0x0000 },
- { 0x1a00, 0x33d0, 0x0000 },
- { 0x9a00, 0x33f1, 0x6000 },
- { 0x9a00, 0x33e1, 0x5000 },
- { 0x9a00, 0x33d9, 0x4000 },
- { 0x9a00, 0x33d5, 0x3000 },
- { 0x9a00, 0x33d3, 0x2000 },
- { 0x1a00, 0x33d2, 0x0000 },
- { 0x1a00, 0x33d4, 0x0000 },
- { 0x9a00, 0x33d7, 0x2000 },
- { 0x1a00, 0x33d6, 0x0000 },
- { 0x1a00, 0x33d8, 0x0000 },
- { 0x9a00, 0x33dd, 0x3000 },
- { 0x9a00, 0x33db, 0x2000 },
- { 0x1a00, 0x33da, 0x0000 },
- { 0x1a00, 0x33dc, 0x0000 },
- { 0x9a00, 0x33df, 0x2000 },
- { 0x1a00, 0x33de, 0x0000 },
- { 0x1a00, 0x33e0, 0x0000 },
- { 0x9a00, 0x33e9, 0x4000 },
- { 0x9a00, 0x33e5, 0x3000 },
- { 0x9a00, 0x33e3, 0x2000 },
- { 0x1a00, 0x33e2, 0x0000 },
- { 0x1a00, 0x33e4, 0x0000 },
- { 0x9a00, 0x33e7, 0x2000 },
- { 0x1a00, 0x33e6, 0x0000 },
- { 0x1a00, 0x33e8, 0x0000 },
- { 0x9a00, 0x33ed, 0x3000 },
- { 0x9a00, 0x33eb, 0x2000 },
- { 0x1a00, 0x33ea, 0x0000 },
- { 0x1a00, 0x33ec, 0x0000 },
- { 0x9a00, 0x33ef, 0x2000 },
- { 0x1a00, 0x33ee, 0x0000 },
- { 0x1a00, 0x33f0, 0x0000 },
- { 0x8700, 0x4db5, 0x5000 },
- { 0x9a00, 0x33f9, 0x4000 },
- { 0x9a00, 0x33f5, 0x3000 },
- { 0x9a00, 0x33f3, 0x2000 },
- { 0x1a00, 0x33f2, 0x0000 },
- { 0x1a00, 0x33f4, 0x0000 },
- { 0x9a00, 0x33f7, 0x2000 },
- { 0x1a00, 0x33f6, 0x0000 },
- { 0x1a00, 0x33f8, 0x0000 },
- { 0x9a00, 0x33fd, 0x3000 },
- { 0x9a00, 0x33fb, 0x2000 },
- { 0x1a00, 0x33fa, 0x0000 },
- { 0x1a00, 0x33fc, 0x0000 },
- { 0x9a00, 0x33ff, 0x2000 },
- { 0x1a00, 0x33fe, 0x0000 },
- { 0x0700, 0x3400, 0x0000 },
- { 0x9a00, 0x4dc7, 0x4000 },
- { 0x9a00, 0x4dc3, 0x3000 },
- { 0x9a00, 0x4dc1, 0x2000 },
- { 0x1a00, 0x4dc0, 0x0000 },
- { 0x1a00, 0x4dc2, 0x0000 },
- { 0x9a00, 0x4dc5, 0x2000 },
- { 0x1a00, 0x4dc4, 0x0000 },
- { 0x1a00, 0x4dc6, 0x0000 },
- { 0x9a00, 0x4dcb, 0x3000 },
- { 0x9a00, 0x4dc9, 0x2000 },
- { 0x1a00, 0x4dc8, 0x0000 },
- { 0x1a00, 0x4dca, 0x0000 },
- { 0x9a00, 0x4dcd, 0x2000 },
- { 0x1a00, 0x4dcc, 0x0000 },
- { 0x1a00, 0x4dce, 0x0000 },
- { 0x8700, 0xa00d, 0x7000 },
- { 0x9a00, 0x4def, 0x6000 },
- { 0x9a00, 0x4ddf, 0x5000 },
- { 0x9a00, 0x4dd7, 0x4000 },
- { 0x9a00, 0x4dd3, 0x3000 },
- { 0x9a00, 0x4dd1, 0x2000 },
- { 0x1a00, 0x4dd0, 0x0000 },
- { 0x1a00, 0x4dd2, 0x0000 },
- { 0x9a00, 0x4dd5, 0x2000 },
- { 0x1a00, 0x4dd4, 0x0000 },
- { 0x1a00, 0x4dd6, 0x0000 },
- { 0x9a00, 0x4ddb, 0x3000 },
- { 0x9a00, 0x4dd9, 0x2000 },
- { 0x1a00, 0x4dd8, 0x0000 },
- { 0x1a00, 0x4dda, 0x0000 },
- { 0x9a00, 0x4ddd, 0x2000 },
- { 0x1a00, 0x4ddc, 0x0000 },
- { 0x1a00, 0x4dde, 0x0000 },
- { 0x9a00, 0x4de7, 0x4000 },
- { 0x9a00, 0x4de3, 0x3000 },
- { 0x9a00, 0x4de1, 0x2000 },
- { 0x1a00, 0x4de0, 0x0000 },
- { 0x1a00, 0x4de2, 0x0000 },
- { 0x9a00, 0x4de5, 0x2000 },
- { 0x1a00, 0x4de4, 0x0000 },
- { 0x1a00, 0x4de6, 0x0000 },
- { 0x9a00, 0x4deb, 0x3000 },
- { 0x9a00, 0x4de9, 0x2000 },
- { 0x1a00, 0x4de8, 0x0000 },
- { 0x1a00, 0x4dea, 0x0000 },
- { 0x9a00, 0x4ded, 0x2000 },
- { 0x1a00, 0x4dec, 0x0000 },
- { 0x1a00, 0x4dee, 0x0000 },
- { 0x9a00, 0x4dff, 0x5000 },
- { 0x9a00, 0x4df7, 0x4000 },
- { 0x9a00, 0x4df3, 0x3000 },
- { 0x9a00, 0x4df1, 0x2000 },
- { 0x1a00, 0x4df0, 0x0000 },
- { 0x1a00, 0x4df2, 0x0000 },
- { 0x9a00, 0x4df5, 0x2000 },
- { 0x1a00, 0x4df4, 0x0000 },
- { 0x1a00, 0x4df6, 0x0000 },
- { 0x9a00, 0x4dfb, 0x3000 },
- { 0x9a00, 0x4df9, 0x2000 },
- { 0x1a00, 0x4df8, 0x0000 },
- { 0x1a00, 0x4dfa, 0x0000 },
- { 0x9a00, 0x4dfd, 0x2000 },
- { 0x1a00, 0x4dfc, 0x0000 },
- { 0x1a00, 0x4dfe, 0x0000 },
- { 0x8700, 0xa005, 0x4000 },
- { 0x8700, 0xa001, 0x3000 },
- { 0x8700, 0x9fa5, 0x2000 },
- { 0x0700, 0x4e00, 0x0000 },
- { 0x0700, 0xa000, 0x0000 },
- { 0x8700, 0xa003, 0x2000 },
- { 0x0700, 0xa002, 0x0000 },
- { 0x0700, 0xa004, 0x0000 },
- { 0x8700, 0xa009, 0x3000 },
- { 0x8700, 0xa007, 0x2000 },
- { 0x0700, 0xa006, 0x0000 },
- { 0x0700, 0xa008, 0x0000 },
- { 0x8700, 0xa00b, 0x2000 },
- { 0x0700, 0xa00a, 0x0000 },
- { 0x0700, 0xa00c, 0x0000 },
- { 0x8700, 0xa02d, 0x6000 },
- { 0x8700, 0xa01d, 0x5000 },
- { 0x8700, 0xa015, 0x4000 },
- { 0x8700, 0xa011, 0x3000 },
- { 0x8700, 0xa00f, 0x2000 },
- { 0x0700, 0xa00e, 0x0000 },
- { 0x0700, 0xa010, 0x0000 },
- { 0x8700, 0xa013, 0x2000 },
- { 0x0700, 0xa012, 0x0000 },
- { 0x0700, 0xa014, 0x0000 },
- { 0x8700, 0xa019, 0x3000 },
- { 0x8700, 0xa017, 0x2000 },
- { 0x0700, 0xa016, 0x0000 },
- { 0x0700, 0xa018, 0x0000 },
- { 0x8700, 0xa01b, 0x2000 },
- { 0x0700, 0xa01a, 0x0000 },
- { 0x0700, 0xa01c, 0x0000 },
- { 0x8700, 0xa025, 0x4000 },
- { 0x8700, 0xa021, 0x3000 },
- { 0x8700, 0xa01f, 0x2000 },
- { 0x0700, 0xa01e, 0x0000 },
- { 0x0700, 0xa020, 0x0000 },
- { 0x8700, 0xa023, 0x2000 },
- { 0x0700, 0xa022, 0x0000 },
- { 0x0700, 0xa024, 0x0000 },
- { 0x8700, 0xa029, 0x3000 },
- { 0x8700, 0xa027, 0x2000 },
- { 0x0700, 0xa026, 0x0000 },
- { 0x0700, 0xa028, 0x0000 },
- { 0x8700, 0xa02b, 0x2000 },
- { 0x0700, 0xa02a, 0x0000 },
- { 0x0700, 0xa02c, 0x0000 },
- { 0x8700, 0xa03d, 0x5000 },
- { 0x8700, 0xa035, 0x4000 },
- { 0x8700, 0xa031, 0x3000 },
- { 0x8700, 0xa02f, 0x2000 },
- { 0x0700, 0xa02e, 0x0000 },
- { 0x0700, 0xa030, 0x0000 },
- { 0x8700, 0xa033, 0x2000 },
- { 0x0700, 0xa032, 0x0000 },
- { 0x0700, 0xa034, 0x0000 },
- { 0x8700, 0xa039, 0x3000 },
- { 0x8700, 0xa037, 0x2000 },
- { 0x0700, 0xa036, 0x0000 },
- { 0x0700, 0xa038, 0x0000 },
- { 0x8700, 0xa03b, 0x2000 },
- { 0x0700, 0xa03a, 0x0000 },
- { 0x0700, 0xa03c, 0x0000 },
- { 0x8700, 0xa045, 0x4000 },
- { 0x8700, 0xa041, 0x3000 },
- { 0x8700, 0xa03f, 0x2000 },
- { 0x0700, 0xa03e, 0x0000 },
- { 0x0700, 0xa040, 0x0000 },
- { 0x8700, 0xa043, 0x2000 },
- { 0x0700, 0xa042, 0x0000 },
- { 0x0700, 0xa044, 0x0000 },
- { 0x8700, 0xa049, 0x3000 },
- { 0x8700, 0xa047, 0x2000 },
- { 0x0700, 0xa046, 0x0000 },
- { 0x0700, 0xa048, 0x0000 },
- { 0x8700, 0xa04b, 0x2000 },
- { 0x0700, 0xa04a, 0x0000 },
- { 0x0700, 0xa04c, 0x0000 },
- { 0x8700, 0xa0cd, 0x8000 },
- { 0x8700, 0xa08d, 0x7000 },
- { 0x8700, 0xa06d, 0x6000 },
- { 0x8700, 0xa05d, 0x5000 },
- { 0x8700, 0xa055, 0x4000 },
- { 0x8700, 0xa051, 0x3000 },
- { 0x8700, 0xa04f, 0x2000 },
- { 0x0700, 0xa04e, 0x0000 },
- { 0x0700, 0xa050, 0x0000 },
- { 0x8700, 0xa053, 0x2000 },
- { 0x0700, 0xa052, 0x0000 },
- { 0x0700, 0xa054, 0x0000 },
- { 0x8700, 0xa059, 0x3000 },
- { 0x8700, 0xa057, 0x2000 },
- { 0x0700, 0xa056, 0x0000 },
- { 0x0700, 0xa058, 0x0000 },
- { 0x8700, 0xa05b, 0x2000 },
- { 0x0700, 0xa05a, 0x0000 },
- { 0x0700, 0xa05c, 0x0000 },
- { 0x8700, 0xa065, 0x4000 },
- { 0x8700, 0xa061, 0x3000 },
- { 0x8700, 0xa05f, 0x2000 },
- { 0x0700, 0xa05e, 0x0000 },
- { 0x0700, 0xa060, 0x0000 },
- { 0x8700, 0xa063, 0x2000 },
- { 0x0700, 0xa062, 0x0000 },
- { 0x0700, 0xa064, 0x0000 },
- { 0x8700, 0xa069, 0x3000 },
- { 0x8700, 0xa067, 0x2000 },
- { 0x0700, 0xa066, 0x0000 },
- { 0x0700, 0xa068, 0x0000 },
- { 0x8700, 0xa06b, 0x2000 },
- { 0x0700, 0xa06a, 0x0000 },
- { 0x0700, 0xa06c, 0x0000 },
- { 0x8700, 0xa07d, 0x5000 },
- { 0x8700, 0xa075, 0x4000 },
- { 0x8700, 0xa071, 0x3000 },
- { 0x8700, 0xa06f, 0x2000 },
- { 0x0700, 0xa06e, 0x0000 },
- { 0x0700, 0xa070, 0x0000 },
- { 0x8700, 0xa073, 0x2000 },
- { 0x0700, 0xa072, 0x0000 },
- { 0x0700, 0xa074, 0x0000 },
- { 0x8700, 0xa079, 0x3000 },
- { 0x8700, 0xa077, 0x2000 },
- { 0x0700, 0xa076, 0x0000 },
- { 0x0700, 0xa078, 0x0000 },
- { 0x8700, 0xa07b, 0x2000 },
- { 0x0700, 0xa07a, 0x0000 },
- { 0x0700, 0xa07c, 0x0000 },
- { 0x8700, 0xa085, 0x4000 },
- { 0x8700, 0xa081, 0x3000 },
- { 0x8700, 0xa07f, 0x2000 },
- { 0x0700, 0xa07e, 0x0000 },
- { 0x0700, 0xa080, 0x0000 },
- { 0x8700, 0xa083, 0x2000 },
- { 0x0700, 0xa082, 0x0000 },
- { 0x0700, 0xa084, 0x0000 },
- { 0x8700, 0xa089, 0x3000 },
- { 0x8700, 0xa087, 0x2000 },
- { 0x0700, 0xa086, 0x0000 },
- { 0x0700, 0xa088, 0x0000 },
- { 0x8700, 0xa08b, 0x2000 },
- { 0x0700, 0xa08a, 0x0000 },
- { 0x0700, 0xa08c, 0x0000 },
- { 0x8700, 0xa0ad, 0x6000 },
- { 0x8700, 0xa09d, 0x5000 },
- { 0x8700, 0xa095, 0x4000 },
- { 0x8700, 0xa091, 0x3000 },
- { 0x8700, 0xa08f, 0x2000 },
- { 0x0700, 0xa08e, 0x0000 },
- { 0x0700, 0xa090, 0x0000 },
- { 0x8700, 0xa093, 0x2000 },
- { 0x0700, 0xa092, 0x0000 },
- { 0x0700, 0xa094, 0x0000 },
- { 0x8700, 0xa099, 0x3000 },
- { 0x8700, 0xa097, 0x2000 },
- { 0x0700, 0xa096, 0x0000 },
- { 0x0700, 0xa098, 0x0000 },
- { 0x8700, 0xa09b, 0x2000 },
- { 0x0700, 0xa09a, 0x0000 },
- { 0x0700, 0xa09c, 0x0000 },
- { 0x8700, 0xa0a5, 0x4000 },
- { 0x8700, 0xa0a1, 0x3000 },
- { 0x8700, 0xa09f, 0x2000 },
- { 0x0700, 0xa09e, 0x0000 },
- { 0x0700, 0xa0a0, 0x0000 },
- { 0x8700, 0xa0a3, 0x2000 },
- { 0x0700, 0xa0a2, 0x0000 },
- { 0x0700, 0xa0a4, 0x0000 },
- { 0x8700, 0xa0a9, 0x3000 },
- { 0x8700, 0xa0a7, 0x2000 },
- { 0x0700, 0xa0a6, 0x0000 },
- { 0x0700, 0xa0a8, 0x0000 },
- { 0x8700, 0xa0ab, 0x2000 },
- { 0x0700, 0xa0aa, 0x0000 },
- { 0x0700, 0xa0ac, 0x0000 },
- { 0x8700, 0xa0bd, 0x5000 },
- { 0x8700, 0xa0b5, 0x4000 },
- { 0x8700, 0xa0b1, 0x3000 },
- { 0x8700, 0xa0af, 0x2000 },
- { 0x0700, 0xa0ae, 0x0000 },
- { 0x0700, 0xa0b0, 0x0000 },
- { 0x8700, 0xa0b3, 0x2000 },
- { 0x0700, 0xa0b2, 0x0000 },
- { 0x0700, 0xa0b4, 0x0000 },
- { 0x8700, 0xa0b9, 0x3000 },
- { 0x8700, 0xa0b7, 0x2000 },
- { 0x0700, 0xa0b6, 0x0000 },
- { 0x0700, 0xa0b8, 0x0000 },
- { 0x8700, 0xa0bb, 0x2000 },
- { 0x0700, 0xa0ba, 0x0000 },
- { 0x0700, 0xa0bc, 0x0000 },
- { 0x8700, 0xa0c5, 0x4000 },
- { 0x8700, 0xa0c1, 0x3000 },
- { 0x8700, 0xa0bf, 0x2000 },
- { 0x0700, 0xa0be, 0x0000 },
- { 0x0700, 0xa0c0, 0x0000 },
- { 0x8700, 0xa0c3, 0x2000 },
- { 0x0700, 0xa0c2, 0x0000 },
- { 0x0700, 0xa0c4, 0x0000 },
- { 0x8700, 0xa0c9, 0x3000 },
- { 0x8700, 0xa0c7, 0x2000 },
- { 0x0700, 0xa0c6, 0x0000 },
- { 0x0700, 0xa0c8, 0x0000 },
- { 0x8700, 0xa0cb, 0x2000 },
- { 0x0700, 0xa0ca, 0x0000 },
- { 0x0700, 0xa0cc, 0x0000 },
- { 0x8700, 0xa10d, 0x7000 },
- { 0x8700, 0xa0ed, 0x6000 },
- { 0x8700, 0xa0dd, 0x5000 },
- { 0x8700, 0xa0d5, 0x4000 },
- { 0x8700, 0xa0d1, 0x3000 },
- { 0x8700, 0xa0cf, 0x2000 },
- { 0x0700, 0xa0ce, 0x0000 },
- { 0x0700, 0xa0d0, 0x0000 },
- { 0x8700, 0xa0d3, 0x2000 },
- { 0x0700, 0xa0d2, 0x0000 },
- { 0x0700, 0xa0d4, 0x0000 },
- { 0x8700, 0xa0d9, 0x3000 },
- { 0x8700, 0xa0d7, 0x2000 },
- { 0x0700, 0xa0d6, 0x0000 },
- { 0x0700, 0xa0d8, 0x0000 },
- { 0x8700, 0xa0db, 0x2000 },
- { 0x0700, 0xa0da, 0x0000 },
- { 0x0700, 0xa0dc, 0x0000 },
- { 0x8700, 0xa0e5, 0x4000 },
- { 0x8700, 0xa0e1, 0x3000 },
- { 0x8700, 0xa0df, 0x2000 },
- { 0x0700, 0xa0de, 0x0000 },
- { 0x0700, 0xa0e0, 0x0000 },
- { 0x8700, 0xa0e3, 0x2000 },
- { 0x0700, 0xa0e2, 0x0000 },
- { 0x0700, 0xa0e4, 0x0000 },
- { 0x8700, 0xa0e9, 0x3000 },
- { 0x8700, 0xa0e7, 0x2000 },
- { 0x0700, 0xa0e6, 0x0000 },
- { 0x0700, 0xa0e8, 0x0000 },
- { 0x8700, 0xa0eb, 0x2000 },
- { 0x0700, 0xa0ea, 0x0000 },
- { 0x0700, 0xa0ec, 0x0000 },
- { 0x8700, 0xa0fd, 0x5000 },
- { 0x8700, 0xa0f5, 0x4000 },
- { 0x8700, 0xa0f1, 0x3000 },
- { 0x8700, 0xa0ef, 0x2000 },
- { 0x0700, 0xa0ee, 0x0000 },
- { 0x0700, 0xa0f0, 0x0000 },
- { 0x8700, 0xa0f3, 0x2000 },
- { 0x0700, 0xa0f2, 0x0000 },
- { 0x0700, 0xa0f4, 0x0000 },
- { 0x8700, 0xa0f9, 0x3000 },
- { 0x8700, 0xa0f7, 0x2000 },
- { 0x0700, 0xa0f6, 0x0000 },
- { 0x0700, 0xa0f8, 0x0000 },
- { 0x8700, 0xa0fb, 0x2000 },
- { 0x0700, 0xa0fa, 0x0000 },
- { 0x0700, 0xa0fc, 0x0000 },
- { 0x8700, 0xa105, 0x4000 },
- { 0x8700, 0xa101, 0x3000 },
- { 0x8700, 0xa0ff, 0x2000 },
- { 0x0700, 0xa0fe, 0x0000 },
- { 0x0700, 0xa100, 0x0000 },
- { 0x8700, 0xa103, 0x2000 },
- { 0x0700, 0xa102, 0x0000 },
- { 0x0700, 0xa104, 0x0000 },
- { 0x8700, 0xa109, 0x3000 },
- { 0x8700, 0xa107, 0x2000 },
- { 0x0700, 0xa106, 0x0000 },
- { 0x0700, 0xa108, 0x0000 },
- { 0x8700, 0xa10b, 0x2000 },
- { 0x0700, 0xa10a, 0x0000 },
- { 0x0700, 0xa10c, 0x0000 },
- { 0x8700, 0xa12d, 0x6000 },
- { 0x8700, 0xa11d, 0x5000 },
- { 0x8700, 0xa115, 0x4000 },
- { 0x8700, 0xa111, 0x3000 },
- { 0x8700, 0xa10f, 0x2000 },
- { 0x0700, 0xa10e, 0x0000 },
- { 0x0700, 0xa110, 0x0000 },
- { 0x8700, 0xa113, 0x2000 },
- { 0x0700, 0xa112, 0x0000 },
- { 0x0700, 0xa114, 0x0000 },
- { 0x8700, 0xa119, 0x3000 },
- { 0x8700, 0xa117, 0x2000 },
- { 0x0700, 0xa116, 0x0000 },
- { 0x0700, 0xa118, 0x0000 },
- { 0x8700, 0xa11b, 0x2000 },
- { 0x0700, 0xa11a, 0x0000 },
- { 0x0700, 0xa11c, 0x0000 },
- { 0x8700, 0xa125, 0x4000 },
- { 0x8700, 0xa121, 0x3000 },
- { 0x8700, 0xa11f, 0x2000 },
- { 0x0700, 0xa11e, 0x0000 },
- { 0x0700, 0xa120, 0x0000 },
- { 0x8700, 0xa123, 0x2000 },
- { 0x0700, 0xa122, 0x0000 },
- { 0x0700, 0xa124, 0x0000 },
- { 0x8700, 0xa129, 0x3000 },
- { 0x8700, 0xa127, 0x2000 },
- { 0x0700, 0xa126, 0x0000 },
- { 0x0700, 0xa128, 0x0000 },
- { 0x8700, 0xa12b, 0x2000 },
- { 0x0700, 0xa12a, 0x0000 },
- { 0x0700, 0xa12c, 0x0000 },
- { 0x8700, 0xa13d, 0x5000 },
- { 0x8700, 0xa135, 0x4000 },
- { 0x8700, 0xa131, 0x3000 },
- { 0x8700, 0xa12f, 0x2000 },
- { 0x0700, 0xa12e, 0x0000 },
- { 0x0700, 0xa130, 0x0000 },
- { 0x8700, 0xa133, 0x2000 },
- { 0x0700, 0xa132, 0x0000 },
- { 0x0700, 0xa134, 0x0000 },
- { 0x8700, 0xa139, 0x3000 },
- { 0x8700, 0xa137, 0x2000 },
- { 0x0700, 0xa136, 0x0000 },
- { 0x0700, 0xa138, 0x0000 },
- { 0x8700, 0xa13b, 0x2000 },
- { 0x0700, 0xa13a, 0x0000 },
- { 0x0700, 0xa13c, 0x0000 },
- { 0x8700, 0xa145, 0x4000 },
- { 0x8700, 0xa141, 0x3000 },
- { 0x8700, 0xa13f, 0x2000 },
- { 0x0700, 0xa13e, 0x0000 },
- { 0x0700, 0xa140, 0x0000 },
- { 0x8700, 0xa143, 0x2000 },
- { 0x0700, 0xa142, 0x0000 },
- { 0x0700, 0xa144, 0x0000 },
- { 0x8700, 0xa149, 0x3000 },
- { 0x8700, 0xa147, 0x2000 },
- { 0x0700, 0xa146, 0x0000 },
- { 0x0700, 0xa148, 0x0000 },
- { 0x8700, 0xa14b, 0x2000 },
- { 0x0700, 0xa14a, 0x0000 },
- { 0x0700, 0xa14c, 0x0000 },
- { 0x8700, 0xa24d, 0x9000 },
- { 0x8700, 0xa1cd, 0x8000 },
- { 0x8700, 0xa18d, 0x7000 },
- { 0x8700, 0xa16d, 0x6000 },
- { 0x8700, 0xa15d, 0x5000 },
- { 0x8700, 0xa155, 0x4000 },
- { 0x8700, 0xa151, 0x3000 },
- { 0x8700, 0xa14f, 0x2000 },
- { 0x0700, 0xa14e, 0x0000 },
- { 0x0700, 0xa150, 0x0000 },
- { 0x8700, 0xa153, 0x2000 },
- { 0x0700, 0xa152, 0x0000 },
- { 0x0700, 0xa154, 0x0000 },
- { 0x8700, 0xa159, 0x3000 },
- { 0x8700, 0xa157, 0x2000 },
- { 0x0700, 0xa156, 0x0000 },
- { 0x0700, 0xa158, 0x0000 },
- { 0x8700, 0xa15b, 0x2000 },
- { 0x0700, 0xa15a, 0x0000 },
- { 0x0700, 0xa15c, 0x0000 },
- { 0x8700, 0xa165, 0x4000 },
- { 0x8700, 0xa161, 0x3000 },
- { 0x8700, 0xa15f, 0x2000 },
- { 0x0700, 0xa15e, 0x0000 },
- { 0x0700, 0xa160, 0x0000 },
- { 0x8700, 0xa163, 0x2000 },
- { 0x0700, 0xa162, 0x0000 },
- { 0x0700, 0xa164, 0x0000 },
- { 0x8700, 0xa169, 0x3000 },
- { 0x8700, 0xa167, 0x2000 },
- { 0x0700, 0xa166, 0x0000 },
- { 0x0700, 0xa168, 0x0000 },
- { 0x8700, 0xa16b, 0x2000 },
- { 0x0700, 0xa16a, 0x0000 },
- { 0x0700, 0xa16c, 0x0000 },
- { 0x8700, 0xa17d, 0x5000 },
- { 0x8700, 0xa175, 0x4000 },
- { 0x8700, 0xa171, 0x3000 },
- { 0x8700, 0xa16f, 0x2000 },
- { 0x0700, 0xa16e, 0x0000 },
- { 0x0700, 0xa170, 0x0000 },
- { 0x8700, 0xa173, 0x2000 },
- { 0x0700, 0xa172, 0x0000 },
- { 0x0700, 0xa174, 0x0000 },
- { 0x8700, 0xa179, 0x3000 },
- { 0x8700, 0xa177, 0x2000 },
- { 0x0700, 0xa176, 0x0000 },
- { 0x0700, 0xa178, 0x0000 },
- { 0x8700, 0xa17b, 0x2000 },
- { 0x0700, 0xa17a, 0x0000 },
- { 0x0700, 0xa17c, 0x0000 },
- { 0x8700, 0xa185, 0x4000 },
- { 0x8700, 0xa181, 0x3000 },
- { 0x8700, 0xa17f, 0x2000 },
- { 0x0700, 0xa17e, 0x0000 },
- { 0x0700, 0xa180, 0x0000 },
- { 0x8700, 0xa183, 0x2000 },
- { 0x0700, 0xa182, 0x0000 },
- { 0x0700, 0xa184, 0x0000 },
- { 0x8700, 0xa189, 0x3000 },
- { 0x8700, 0xa187, 0x2000 },
- { 0x0700, 0xa186, 0x0000 },
- { 0x0700, 0xa188, 0x0000 },
- { 0x8700, 0xa18b, 0x2000 },
- { 0x0700, 0xa18a, 0x0000 },
- { 0x0700, 0xa18c, 0x0000 },
- { 0x8700, 0xa1ad, 0x6000 },
- { 0x8700, 0xa19d, 0x5000 },
- { 0x8700, 0xa195, 0x4000 },
- { 0x8700, 0xa191, 0x3000 },
- { 0x8700, 0xa18f, 0x2000 },
- { 0x0700, 0xa18e, 0x0000 },
- { 0x0700, 0xa190, 0x0000 },
- { 0x8700, 0xa193, 0x2000 },
- { 0x0700, 0xa192, 0x0000 },
- { 0x0700, 0xa194, 0x0000 },
- { 0x8700, 0xa199, 0x3000 },
- { 0x8700, 0xa197, 0x2000 },
- { 0x0700, 0xa196, 0x0000 },
- { 0x0700, 0xa198, 0x0000 },
- { 0x8700, 0xa19b, 0x2000 },
- { 0x0700, 0xa19a, 0x0000 },
- { 0x0700, 0xa19c, 0x0000 },
- { 0x8700, 0xa1a5, 0x4000 },
- { 0x8700, 0xa1a1, 0x3000 },
- { 0x8700, 0xa19f, 0x2000 },
- { 0x0700, 0xa19e, 0x0000 },
- { 0x0700, 0xa1a0, 0x0000 },
- { 0x8700, 0xa1a3, 0x2000 },
- { 0x0700, 0xa1a2, 0x0000 },
- { 0x0700, 0xa1a4, 0x0000 },
- { 0x8700, 0xa1a9, 0x3000 },
- { 0x8700, 0xa1a7, 0x2000 },
- { 0x0700, 0xa1a6, 0x0000 },
- { 0x0700, 0xa1a8, 0x0000 },
- { 0x8700, 0xa1ab, 0x2000 },
- { 0x0700, 0xa1aa, 0x0000 },
- { 0x0700, 0xa1ac, 0x0000 },
- { 0x8700, 0xa1bd, 0x5000 },
- { 0x8700, 0xa1b5, 0x4000 },
- { 0x8700, 0xa1b1, 0x3000 },
- { 0x8700, 0xa1af, 0x2000 },
- { 0x0700, 0xa1ae, 0x0000 },
- { 0x0700, 0xa1b0, 0x0000 },
- { 0x8700, 0xa1b3, 0x2000 },
- { 0x0700, 0xa1b2, 0x0000 },
- { 0x0700, 0xa1b4, 0x0000 },
- { 0x8700, 0xa1b9, 0x3000 },
- { 0x8700, 0xa1b7, 0x2000 },
- { 0x0700, 0xa1b6, 0x0000 },
- { 0x0700, 0xa1b8, 0x0000 },
- { 0x8700, 0xa1bb, 0x2000 },
- { 0x0700, 0xa1ba, 0x0000 },
- { 0x0700, 0xa1bc, 0x0000 },
- { 0x8700, 0xa1c5, 0x4000 },
- { 0x8700, 0xa1c1, 0x3000 },
- { 0x8700, 0xa1bf, 0x2000 },
- { 0x0700, 0xa1be, 0x0000 },
- { 0x0700, 0xa1c0, 0x0000 },
- { 0x8700, 0xa1c3, 0x2000 },
- { 0x0700, 0xa1c2, 0x0000 },
- { 0x0700, 0xa1c4, 0x0000 },
- { 0x8700, 0xa1c9, 0x3000 },
- { 0x8700, 0xa1c7, 0x2000 },
- { 0x0700, 0xa1c6, 0x0000 },
- { 0x0700, 0xa1c8, 0x0000 },
- { 0x8700, 0xa1cb, 0x2000 },
- { 0x0700, 0xa1ca, 0x0000 },
- { 0x0700, 0xa1cc, 0x0000 },
- { 0x8700, 0xa20d, 0x7000 },
- { 0x8700, 0xa1ed, 0x6000 },
- { 0x8700, 0xa1dd, 0x5000 },
- { 0x8700, 0xa1d5, 0x4000 },
- { 0x8700, 0xa1d1, 0x3000 },
- { 0x8700, 0xa1cf, 0x2000 },
- { 0x0700, 0xa1ce, 0x0000 },
- { 0x0700, 0xa1d0, 0x0000 },
- { 0x8700, 0xa1d3, 0x2000 },
- { 0x0700, 0xa1d2, 0x0000 },
- { 0x0700, 0xa1d4, 0x0000 },
- { 0x8700, 0xa1d9, 0x3000 },
- { 0x8700, 0xa1d7, 0x2000 },
- { 0x0700, 0xa1d6, 0x0000 },
- { 0x0700, 0xa1d8, 0x0000 },
- { 0x8700, 0xa1db, 0x2000 },
- { 0x0700, 0xa1da, 0x0000 },
- { 0x0700, 0xa1dc, 0x0000 },
- { 0x8700, 0xa1e5, 0x4000 },
- { 0x8700, 0xa1e1, 0x3000 },
- { 0x8700, 0xa1df, 0x2000 },
- { 0x0700, 0xa1de, 0x0000 },
- { 0x0700, 0xa1e0, 0x0000 },
- { 0x8700, 0xa1e3, 0x2000 },
- { 0x0700, 0xa1e2, 0x0000 },
- { 0x0700, 0xa1e4, 0x0000 },
- { 0x8700, 0xa1e9, 0x3000 },
- { 0x8700, 0xa1e7, 0x2000 },
- { 0x0700, 0xa1e6, 0x0000 },
- { 0x0700, 0xa1e8, 0x0000 },
- { 0x8700, 0xa1eb, 0x2000 },
- { 0x0700, 0xa1ea, 0x0000 },
- { 0x0700, 0xa1ec, 0x0000 },
- { 0x8700, 0xa1fd, 0x5000 },
- { 0x8700, 0xa1f5, 0x4000 },
- { 0x8700, 0xa1f1, 0x3000 },
- { 0x8700, 0xa1ef, 0x2000 },
- { 0x0700, 0xa1ee, 0x0000 },
- { 0x0700, 0xa1f0, 0x0000 },
- { 0x8700, 0xa1f3, 0x2000 },
- { 0x0700, 0xa1f2, 0x0000 },
- { 0x0700, 0xa1f4, 0x0000 },
- { 0x8700, 0xa1f9, 0x3000 },
- { 0x8700, 0xa1f7, 0x2000 },
- { 0x0700, 0xa1f6, 0x0000 },
- { 0x0700, 0xa1f8, 0x0000 },
- { 0x8700, 0xa1fb, 0x2000 },
- { 0x0700, 0xa1fa, 0x0000 },
- { 0x0700, 0xa1fc, 0x0000 },
- { 0x8700, 0xa205, 0x4000 },
- { 0x8700, 0xa201, 0x3000 },
- { 0x8700, 0xa1ff, 0x2000 },
- { 0x0700, 0xa1fe, 0x0000 },
- { 0x0700, 0xa200, 0x0000 },
- { 0x8700, 0xa203, 0x2000 },
- { 0x0700, 0xa202, 0x0000 },
- { 0x0700, 0xa204, 0x0000 },
- { 0x8700, 0xa209, 0x3000 },
- { 0x8700, 0xa207, 0x2000 },
- { 0x0700, 0xa206, 0x0000 },
- { 0x0700, 0xa208, 0x0000 },
- { 0x8700, 0xa20b, 0x2000 },
- { 0x0700, 0xa20a, 0x0000 },
- { 0x0700, 0xa20c, 0x0000 },
- { 0x8700, 0xa22d, 0x6000 },
- { 0x8700, 0xa21d, 0x5000 },
- { 0x8700, 0xa215, 0x4000 },
- { 0x8700, 0xa211, 0x3000 },
- { 0x8700, 0xa20f, 0x2000 },
- { 0x0700, 0xa20e, 0x0000 },
- { 0x0700, 0xa210, 0x0000 },
- { 0x8700, 0xa213, 0x2000 },
- { 0x0700, 0xa212, 0x0000 },
- { 0x0700, 0xa214, 0x0000 },
- { 0x8700, 0xa219, 0x3000 },
- { 0x8700, 0xa217, 0x2000 },
- { 0x0700, 0xa216, 0x0000 },
- { 0x0700, 0xa218, 0x0000 },
- { 0x8700, 0xa21b, 0x2000 },
- { 0x0700, 0xa21a, 0x0000 },
- { 0x0700, 0xa21c, 0x0000 },
- { 0x8700, 0xa225, 0x4000 },
- { 0x8700, 0xa221, 0x3000 },
- { 0x8700, 0xa21f, 0x2000 },
- { 0x0700, 0xa21e, 0x0000 },
- { 0x0700, 0xa220, 0x0000 },
- { 0x8700, 0xa223, 0x2000 },
- { 0x0700, 0xa222, 0x0000 },
- { 0x0700, 0xa224, 0x0000 },
- { 0x8700, 0xa229, 0x3000 },
- { 0x8700, 0xa227, 0x2000 },
- { 0x0700, 0xa226, 0x0000 },
- { 0x0700, 0xa228, 0x0000 },
- { 0x8700, 0xa22b, 0x2000 },
- { 0x0700, 0xa22a, 0x0000 },
- { 0x0700, 0xa22c, 0x0000 },
- { 0x8700, 0xa23d, 0x5000 },
- { 0x8700, 0xa235, 0x4000 },
- { 0x8700, 0xa231, 0x3000 },
- { 0x8700, 0xa22f, 0x2000 },
- { 0x0700, 0xa22e, 0x0000 },
- { 0x0700, 0xa230, 0x0000 },
- { 0x8700, 0xa233, 0x2000 },
- { 0x0700, 0xa232, 0x0000 },
- { 0x0700, 0xa234, 0x0000 },
- { 0x8700, 0xa239, 0x3000 },
- { 0x8700, 0xa237, 0x2000 },
- { 0x0700, 0xa236, 0x0000 },
- { 0x0700, 0xa238, 0x0000 },
- { 0x8700, 0xa23b, 0x2000 },
- { 0x0700, 0xa23a, 0x0000 },
- { 0x0700, 0xa23c, 0x0000 },
- { 0x8700, 0xa245, 0x4000 },
- { 0x8700, 0xa241, 0x3000 },
- { 0x8700, 0xa23f, 0x2000 },
- { 0x0700, 0xa23e, 0x0000 },
- { 0x0700, 0xa240, 0x0000 },
- { 0x8700, 0xa243, 0x2000 },
- { 0x0700, 0xa242, 0x0000 },
- { 0x0700, 0xa244, 0x0000 },
- { 0x8700, 0xa249, 0x3000 },
- { 0x8700, 0xa247, 0x2000 },
- { 0x0700, 0xa246, 0x0000 },
- { 0x0700, 0xa248, 0x0000 },
- { 0x8700, 0xa24b, 0x2000 },
- { 0x0700, 0xa24a, 0x0000 },
- { 0x0700, 0xa24c, 0x0000 },
- { 0x8700, 0xa2cd, 0x8000 },
- { 0x8700, 0xa28d, 0x7000 },
- { 0x8700, 0xa26d, 0x6000 },
- { 0x8700, 0xa25d, 0x5000 },
- { 0x8700, 0xa255, 0x4000 },
- { 0x8700, 0xa251, 0x3000 },
- { 0x8700, 0xa24f, 0x2000 },
- { 0x0700, 0xa24e, 0x0000 },
- { 0x0700, 0xa250, 0x0000 },
- { 0x8700, 0xa253, 0x2000 },
- { 0x0700, 0xa252, 0x0000 },
- { 0x0700, 0xa254, 0x0000 },
- { 0x8700, 0xa259, 0x3000 },
- { 0x8700, 0xa257, 0x2000 },
- { 0x0700, 0xa256, 0x0000 },
- { 0x0700, 0xa258, 0x0000 },
- { 0x8700, 0xa25b, 0x2000 },
- { 0x0700, 0xa25a, 0x0000 },
- { 0x0700, 0xa25c, 0x0000 },
- { 0x8700, 0xa265, 0x4000 },
- { 0x8700, 0xa261, 0x3000 },
- { 0x8700, 0xa25f, 0x2000 },
- { 0x0700, 0xa25e, 0x0000 },
- { 0x0700, 0xa260, 0x0000 },
- { 0x8700, 0xa263, 0x2000 },
- { 0x0700, 0xa262, 0x0000 },
- { 0x0700, 0xa264, 0x0000 },
- { 0x8700, 0xa269, 0x3000 },
- { 0x8700, 0xa267, 0x2000 },
- { 0x0700, 0xa266, 0x0000 },
- { 0x0700, 0xa268, 0x0000 },
- { 0x8700, 0xa26b, 0x2000 },
- { 0x0700, 0xa26a, 0x0000 },
- { 0x0700, 0xa26c, 0x0000 },
- { 0x8700, 0xa27d, 0x5000 },
- { 0x8700, 0xa275, 0x4000 },
- { 0x8700, 0xa271, 0x3000 },
- { 0x8700, 0xa26f, 0x2000 },
- { 0x0700, 0xa26e, 0x0000 },
- { 0x0700, 0xa270, 0x0000 },
- { 0x8700, 0xa273, 0x2000 },
- { 0x0700, 0xa272, 0x0000 },
- { 0x0700, 0xa274, 0x0000 },
- { 0x8700, 0xa279, 0x3000 },
- { 0x8700, 0xa277, 0x2000 },
- { 0x0700, 0xa276, 0x0000 },
- { 0x0700, 0xa278, 0x0000 },
- { 0x8700, 0xa27b, 0x2000 },
- { 0x0700, 0xa27a, 0x0000 },
- { 0x0700, 0xa27c, 0x0000 },
- { 0x8700, 0xa285, 0x4000 },
- { 0x8700, 0xa281, 0x3000 },
- { 0x8700, 0xa27f, 0x2000 },
- { 0x0700, 0xa27e, 0x0000 },
- { 0x0700, 0xa280, 0x0000 },
- { 0x8700, 0xa283, 0x2000 },
- { 0x0700, 0xa282, 0x0000 },
- { 0x0700, 0xa284, 0x0000 },
- { 0x8700, 0xa289, 0x3000 },
- { 0x8700, 0xa287, 0x2000 },
- { 0x0700, 0xa286, 0x0000 },
- { 0x0700, 0xa288, 0x0000 },
- { 0x8700, 0xa28b, 0x2000 },
- { 0x0700, 0xa28a, 0x0000 },
- { 0x0700, 0xa28c, 0x0000 },
- { 0x8700, 0xa2ad, 0x6000 },
- { 0x8700, 0xa29d, 0x5000 },
- { 0x8700, 0xa295, 0x4000 },
- { 0x8700, 0xa291, 0x3000 },
- { 0x8700, 0xa28f, 0x2000 },
- { 0x0700, 0xa28e, 0x0000 },
- { 0x0700, 0xa290, 0x0000 },
- { 0x8700, 0xa293, 0x2000 },
- { 0x0700, 0xa292, 0x0000 },
- { 0x0700, 0xa294, 0x0000 },
- { 0x8700, 0xa299, 0x3000 },
- { 0x8700, 0xa297, 0x2000 },
- { 0x0700, 0xa296, 0x0000 },
- { 0x0700, 0xa298, 0x0000 },
- { 0x8700, 0xa29b, 0x2000 },
- { 0x0700, 0xa29a, 0x0000 },
- { 0x0700, 0xa29c, 0x0000 },
- { 0x8700, 0xa2a5, 0x4000 },
- { 0x8700, 0xa2a1, 0x3000 },
- { 0x8700, 0xa29f, 0x2000 },
- { 0x0700, 0xa29e, 0x0000 },
- { 0x0700, 0xa2a0, 0x0000 },
- { 0x8700, 0xa2a3, 0x2000 },
- { 0x0700, 0xa2a2, 0x0000 },
- { 0x0700, 0xa2a4, 0x0000 },
- { 0x8700, 0xa2a9, 0x3000 },
- { 0x8700, 0xa2a7, 0x2000 },
- { 0x0700, 0xa2a6, 0x0000 },
- { 0x0700, 0xa2a8, 0x0000 },
- { 0x8700, 0xa2ab, 0x2000 },
- { 0x0700, 0xa2aa, 0x0000 },
- { 0x0700, 0xa2ac, 0x0000 },
- { 0x8700, 0xa2bd, 0x5000 },
- { 0x8700, 0xa2b5, 0x4000 },
- { 0x8700, 0xa2b1, 0x3000 },
- { 0x8700, 0xa2af, 0x2000 },
- { 0x0700, 0xa2ae, 0x0000 },
- { 0x0700, 0xa2b0, 0x0000 },
- { 0x8700, 0xa2b3, 0x2000 },
- { 0x0700, 0xa2b2, 0x0000 },
- { 0x0700, 0xa2b4, 0x0000 },
- { 0x8700, 0xa2b9, 0x3000 },
- { 0x8700, 0xa2b7, 0x2000 },
- { 0x0700, 0xa2b6, 0x0000 },
- { 0x0700, 0xa2b8, 0x0000 },
- { 0x8700, 0xa2bb, 0x2000 },
- { 0x0700, 0xa2ba, 0x0000 },
- { 0x0700, 0xa2bc, 0x0000 },
- { 0x8700, 0xa2c5, 0x4000 },
- { 0x8700, 0xa2c1, 0x3000 },
- { 0x8700, 0xa2bf, 0x2000 },
- { 0x0700, 0xa2be, 0x0000 },
- { 0x0700, 0xa2c0, 0x0000 },
- { 0x8700, 0xa2c3, 0x2000 },
- { 0x0700, 0xa2c2, 0x0000 },
- { 0x0700, 0xa2c4, 0x0000 },
- { 0x8700, 0xa2c9, 0x3000 },
- { 0x8700, 0xa2c7, 0x2000 },
- { 0x0700, 0xa2c6, 0x0000 },
- { 0x0700, 0xa2c8, 0x0000 },
- { 0x8700, 0xa2cb, 0x2000 },
- { 0x0700, 0xa2ca, 0x0000 },
- { 0x0700, 0xa2cc, 0x0000 },
- { 0x8700, 0xa30d, 0x7000 },
- { 0x8700, 0xa2ed, 0x6000 },
- { 0x8700, 0xa2dd, 0x5000 },
- { 0x8700, 0xa2d5, 0x4000 },
- { 0x8700, 0xa2d1, 0x3000 },
- { 0x8700, 0xa2cf, 0x2000 },
- { 0x0700, 0xa2ce, 0x0000 },
- { 0x0700, 0xa2d0, 0x0000 },
- { 0x8700, 0xa2d3, 0x2000 },
- { 0x0700, 0xa2d2, 0x0000 },
- { 0x0700, 0xa2d4, 0x0000 },
- { 0x8700, 0xa2d9, 0x3000 },
- { 0x8700, 0xa2d7, 0x2000 },
- { 0x0700, 0xa2d6, 0x0000 },
- { 0x0700, 0xa2d8, 0x0000 },
- { 0x8700, 0xa2db, 0x2000 },
- { 0x0700, 0xa2da, 0x0000 },
- { 0x0700, 0xa2dc, 0x0000 },
- { 0x8700, 0xa2e5, 0x4000 },
- { 0x8700, 0xa2e1, 0x3000 },
- { 0x8700, 0xa2df, 0x2000 },
- { 0x0700, 0xa2de, 0x0000 },
- { 0x0700, 0xa2e0, 0x0000 },
- { 0x8700, 0xa2e3, 0x2000 },
- { 0x0700, 0xa2e2, 0x0000 },
- { 0x0700, 0xa2e4, 0x0000 },
- { 0x8700, 0xa2e9, 0x3000 },
- { 0x8700, 0xa2e7, 0x2000 },
- { 0x0700, 0xa2e6, 0x0000 },
- { 0x0700, 0xa2e8, 0x0000 },
- { 0x8700, 0xa2eb, 0x2000 },
- { 0x0700, 0xa2ea, 0x0000 },
- { 0x0700, 0xa2ec, 0x0000 },
- { 0x8700, 0xa2fd, 0x5000 },
- { 0x8700, 0xa2f5, 0x4000 },
- { 0x8700, 0xa2f1, 0x3000 },
- { 0x8700, 0xa2ef, 0x2000 },
- { 0x0700, 0xa2ee, 0x0000 },
- { 0x0700, 0xa2f0, 0x0000 },
- { 0x8700, 0xa2f3, 0x2000 },
- { 0x0700, 0xa2f2, 0x0000 },
- { 0x0700, 0xa2f4, 0x0000 },
- { 0x8700, 0xa2f9, 0x3000 },
- { 0x8700, 0xa2f7, 0x2000 },
- { 0x0700, 0xa2f6, 0x0000 },
- { 0x0700, 0xa2f8, 0x0000 },
- { 0x8700, 0xa2fb, 0x2000 },
- { 0x0700, 0xa2fa, 0x0000 },
- { 0x0700, 0xa2fc, 0x0000 },
- { 0x8700, 0xa305, 0x4000 },
- { 0x8700, 0xa301, 0x3000 },
- { 0x8700, 0xa2ff, 0x2000 },
- { 0x0700, 0xa2fe, 0x0000 },
- { 0x0700, 0xa300, 0x0000 },
- { 0x8700, 0xa303, 0x2000 },
- { 0x0700, 0xa302, 0x0000 },
- { 0x0700, 0xa304, 0x0000 },
- { 0x8700, 0xa309, 0x3000 },
- { 0x8700, 0xa307, 0x2000 },
- { 0x0700, 0xa306, 0x0000 },
- { 0x0700, 0xa308, 0x0000 },
- { 0x8700, 0xa30b, 0x2000 },
- { 0x0700, 0xa30a, 0x0000 },
- { 0x0700, 0xa30c, 0x0000 },
- { 0x8700, 0xa32d, 0x6000 },
- { 0x8700, 0xa31d, 0x5000 },
- { 0x8700, 0xa315, 0x4000 },
- { 0x8700, 0xa311, 0x3000 },
- { 0x8700, 0xa30f, 0x2000 },
- { 0x0700, 0xa30e, 0x0000 },
- { 0x0700, 0xa310, 0x0000 },
- { 0x8700, 0xa313, 0x2000 },
- { 0x0700, 0xa312, 0x0000 },
- { 0x0700, 0xa314, 0x0000 },
- { 0x8700, 0xa319, 0x3000 },
- { 0x8700, 0xa317, 0x2000 },
- { 0x0700, 0xa316, 0x0000 },
- { 0x0700, 0xa318, 0x0000 },
- { 0x8700, 0xa31b, 0x2000 },
- { 0x0700, 0xa31a, 0x0000 },
- { 0x0700, 0xa31c, 0x0000 },
- { 0x8700, 0xa325, 0x4000 },
- { 0x8700, 0xa321, 0x3000 },
- { 0x8700, 0xa31f, 0x2000 },
- { 0x0700, 0xa31e, 0x0000 },
- { 0x0700, 0xa320, 0x0000 },
- { 0x8700, 0xa323, 0x2000 },
- { 0x0700, 0xa322, 0x0000 },
- { 0x0700, 0xa324, 0x0000 },
- { 0x8700, 0xa329, 0x3000 },
- { 0x8700, 0xa327, 0x2000 },
- { 0x0700, 0xa326, 0x0000 },
- { 0x0700, 0xa328, 0x0000 },
- { 0x8700, 0xa32b, 0x2000 },
- { 0x0700, 0xa32a, 0x0000 },
- { 0x0700, 0xa32c, 0x0000 },
- { 0x8700, 0xa33d, 0x5000 },
- { 0x8700, 0xa335, 0x4000 },
- { 0x8700, 0xa331, 0x3000 },
- { 0x8700, 0xa32f, 0x2000 },
- { 0x0700, 0xa32e, 0x0000 },
- { 0x0700, 0xa330, 0x0000 },
- { 0x8700, 0xa333, 0x2000 },
- { 0x0700, 0xa332, 0x0000 },
- { 0x0700, 0xa334, 0x0000 },
- { 0x8700, 0xa339, 0x3000 },
- { 0x8700, 0xa337, 0x2000 },
- { 0x0700, 0xa336, 0x0000 },
- { 0x0700, 0xa338, 0x0000 },
- { 0x8700, 0xa33b, 0x2000 },
- { 0x0700, 0xa33a, 0x0000 },
- { 0x0700, 0xa33c, 0x0000 },
- { 0x8700, 0xa345, 0x4000 },
- { 0x8700, 0xa341, 0x3000 },
- { 0x8700, 0xa33f, 0x2000 },
- { 0x0700, 0xa33e, 0x0000 },
- { 0x0700, 0xa340, 0x0000 },
- { 0x8700, 0xa343, 0x2000 },
- { 0x0700, 0xa342, 0x0000 },
- { 0x0700, 0xa344, 0x0000 },
- { 0x8700, 0xa349, 0x3000 },
- { 0x8700, 0xa347, 0x2000 },
- { 0x0700, 0xa346, 0x0000 },
- { 0x0700, 0xa348, 0x0000 },
- { 0x8700, 0xa34b, 0x2000 },
- { 0x0700, 0xa34a, 0x0000 },
- { 0x0700, 0xa34c, 0x0000 },
- { 0x8700, 0xfc4d, 0xb000 },
- { 0x8700, 0xf97f, 0xa000 },
- { 0x8700, 0xa44d, 0x9000 },
- { 0x8700, 0xa3cd, 0x8000 },
- { 0x8700, 0xa38d, 0x7000 },
- { 0x8700, 0xa36d, 0x6000 },
- { 0x8700, 0xa35d, 0x5000 },
- { 0x8700, 0xa355, 0x4000 },
- { 0x8700, 0xa351, 0x3000 },
- { 0x8700, 0xa34f, 0x2000 },
- { 0x0700, 0xa34e, 0x0000 },
- { 0x0700, 0xa350, 0x0000 },
- { 0x8700, 0xa353, 0x2000 },
- { 0x0700, 0xa352, 0x0000 },
- { 0x0700, 0xa354, 0x0000 },
- { 0x8700, 0xa359, 0x3000 },
- { 0x8700, 0xa357, 0x2000 },
- { 0x0700, 0xa356, 0x0000 },
- { 0x0700, 0xa358, 0x0000 },
- { 0x8700, 0xa35b, 0x2000 },
- { 0x0700, 0xa35a, 0x0000 },
- { 0x0700, 0xa35c, 0x0000 },
- { 0x8700, 0xa365, 0x4000 },
- { 0x8700, 0xa361, 0x3000 },
- { 0x8700, 0xa35f, 0x2000 },
- { 0x0700, 0xa35e, 0x0000 },
- { 0x0700, 0xa360, 0x0000 },
- { 0x8700, 0xa363, 0x2000 },
- { 0x0700, 0xa362, 0x0000 },
- { 0x0700, 0xa364, 0x0000 },
- { 0x8700, 0xa369, 0x3000 },
- { 0x8700, 0xa367, 0x2000 },
- { 0x0700, 0xa366, 0x0000 },
- { 0x0700, 0xa368, 0x0000 },
- { 0x8700, 0xa36b, 0x2000 },
- { 0x0700, 0xa36a, 0x0000 },
- { 0x0700, 0xa36c, 0x0000 },
- { 0x8700, 0xa37d, 0x5000 },
- { 0x8700, 0xa375, 0x4000 },
- { 0x8700, 0xa371, 0x3000 },
- { 0x8700, 0xa36f, 0x2000 },
- { 0x0700, 0xa36e, 0x0000 },
- { 0x0700, 0xa370, 0x0000 },
- { 0x8700, 0xa373, 0x2000 },
- { 0x0700, 0xa372, 0x0000 },
- { 0x0700, 0xa374, 0x0000 },
- { 0x8700, 0xa379, 0x3000 },
- { 0x8700, 0xa377, 0x2000 },
- { 0x0700, 0xa376, 0x0000 },
- { 0x0700, 0xa378, 0x0000 },
- { 0x8700, 0xa37b, 0x2000 },
- { 0x0700, 0xa37a, 0x0000 },
- { 0x0700, 0xa37c, 0x0000 },
- { 0x8700, 0xa385, 0x4000 },
- { 0x8700, 0xa381, 0x3000 },
- { 0x8700, 0xa37f, 0x2000 },
- { 0x0700, 0xa37e, 0x0000 },
- { 0x0700, 0xa380, 0x0000 },
- { 0x8700, 0xa383, 0x2000 },
- { 0x0700, 0xa382, 0x0000 },
- { 0x0700, 0xa384, 0x0000 },
- { 0x8700, 0xa389, 0x3000 },
- { 0x8700, 0xa387, 0x2000 },
- { 0x0700, 0xa386, 0x0000 },
- { 0x0700, 0xa388, 0x0000 },
- { 0x8700, 0xa38b, 0x2000 },
- { 0x0700, 0xa38a, 0x0000 },
- { 0x0700, 0xa38c, 0x0000 },
- { 0x8700, 0xa3ad, 0x6000 },
- { 0x8700, 0xa39d, 0x5000 },
- { 0x8700, 0xa395, 0x4000 },
- { 0x8700, 0xa391, 0x3000 },
- { 0x8700, 0xa38f, 0x2000 },
- { 0x0700, 0xa38e, 0x0000 },
- { 0x0700, 0xa390, 0x0000 },
- { 0x8700, 0xa393, 0x2000 },
- { 0x0700, 0xa392, 0x0000 },
- { 0x0700, 0xa394, 0x0000 },
- { 0x8700, 0xa399, 0x3000 },
- { 0x8700, 0xa397, 0x2000 },
- { 0x0700, 0xa396, 0x0000 },
- { 0x0700, 0xa398, 0x0000 },
- { 0x8700, 0xa39b, 0x2000 },
- { 0x0700, 0xa39a, 0x0000 },
- { 0x0700, 0xa39c, 0x0000 },
- { 0x8700, 0xa3a5, 0x4000 },
- { 0x8700, 0xa3a1, 0x3000 },
- { 0x8700, 0xa39f, 0x2000 },
- { 0x0700, 0xa39e, 0x0000 },
- { 0x0700, 0xa3a0, 0x0000 },
- { 0x8700, 0xa3a3, 0x2000 },
- { 0x0700, 0xa3a2, 0x0000 },
- { 0x0700, 0xa3a4, 0x0000 },
- { 0x8700, 0xa3a9, 0x3000 },
- { 0x8700, 0xa3a7, 0x2000 },
- { 0x0700, 0xa3a6, 0x0000 },
- { 0x0700, 0xa3a8, 0x0000 },
- { 0x8700, 0xa3ab, 0x2000 },
- { 0x0700, 0xa3aa, 0x0000 },
- { 0x0700, 0xa3ac, 0x0000 },
- { 0x8700, 0xa3bd, 0x5000 },
- { 0x8700, 0xa3b5, 0x4000 },
- { 0x8700, 0xa3b1, 0x3000 },
- { 0x8700, 0xa3af, 0x2000 },
- { 0x0700, 0xa3ae, 0x0000 },
- { 0x0700, 0xa3b0, 0x0000 },
- { 0x8700, 0xa3b3, 0x2000 },
- { 0x0700, 0xa3b2, 0x0000 },
- { 0x0700, 0xa3b4, 0x0000 },
- { 0x8700, 0xa3b9, 0x3000 },
- { 0x8700, 0xa3b7, 0x2000 },
- { 0x0700, 0xa3b6, 0x0000 },
- { 0x0700, 0xa3b8, 0x0000 },
- { 0x8700, 0xa3bb, 0x2000 },
- { 0x0700, 0xa3ba, 0x0000 },
- { 0x0700, 0xa3bc, 0x0000 },
- { 0x8700, 0xa3c5, 0x4000 },
- { 0x8700, 0xa3c1, 0x3000 },
- { 0x8700, 0xa3bf, 0x2000 },
- { 0x0700, 0xa3be, 0x0000 },
- { 0x0700, 0xa3c0, 0x0000 },
- { 0x8700, 0xa3c3, 0x2000 },
- { 0x0700, 0xa3c2, 0x0000 },
- { 0x0700, 0xa3c4, 0x0000 },
- { 0x8700, 0xa3c9, 0x3000 },
- { 0x8700, 0xa3c7, 0x2000 },
- { 0x0700, 0xa3c6, 0x0000 },
- { 0x0700, 0xa3c8, 0x0000 },
- { 0x8700, 0xa3cb, 0x2000 },
- { 0x0700, 0xa3ca, 0x0000 },
- { 0x0700, 0xa3cc, 0x0000 },
- { 0x8700, 0xa40d, 0x7000 },
- { 0x8700, 0xa3ed, 0x6000 },
- { 0x8700, 0xa3dd, 0x5000 },
- { 0x8700, 0xa3d5, 0x4000 },
- { 0x8700, 0xa3d1, 0x3000 },
- { 0x8700, 0xa3cf, 0x2000 },
- { 0x0700, 0xa3ce, 0x0000 },
- { 0x0700, 0xa3d0, 0x0000 },
- { 0x8700, 0xa3d3, 0x2000 },
- { 0x0700, 0xa3d2, 0x0000 },
- { 0x0700, 0xa3d4, 0x0000 },
- { 0x8700, 0xa3d9, 0x3000 },
- { 0x8700, 0xa3d7, 0x2000 },
- { 0x0700, 0xa3d6, 0x0000 },
- { 0x0700, 0xa3d8, 0x0000 },
- { 0x8700, 0xa3db, 0x2000 },
- { 0x0700, 0xa3da, 0x0000 },
- { 0x0700, 0xa3dc, 0x0000 },
- { 0x8700, 0xa3e5, 0x4000 },
- { 0x8700, 0xa3e1, 0x3000 },
- { 0x8700, 0xa3df, 0x2000 },
- { 0x0700, 0xa3de, 0x0000 },
- { 0x0700, 0xa3e0, 0x0000 },
- { 0x8700, 0xa3e3, 0x2000 },
- { 0x0700, 0xa3e2, 0x0000 },
- { 0x0700, 0xa3e4, 0x0000 },
- { 0x8700, 0xa3e9, 0x3000 },
- { 0x8700, 0xa3e7, 0x2000 },
- { 0x0700, 0xa3e6, 0x0000 },
- { 0x0700, 0xa3e8, 0x0000 },
- { 0x8700, 0xa3eb, 0x2000 },
- { 0x0700, 0xa3ea, 0x0000 },
- { 0x0700, 0xa3ec, 0x0000 },
- { 0x8700, 0xa3fd, 0x5000 },
- { 0x8700, 0xa3f5, 0x4000 },
- { 0x8700, 0xa3f1, 0x3000 },
- { 0x8700, 0xa3ef, 0x2000 },
- { 0x0700, 0xa3ee, 0x0000 },
- { 0x0700, 0xa3f0, 0x0000 },
- { 0x8700, 0xa3f3, 0x2000 },
- { 0x0700, 0xa3f2, 0x0000 },
- { 0x0700, 0xa3f4, 0x0000 },
- { 0x8700, 0xa3f9, 0x3000 },
- { 0x8700, 0xa3f7, 0x2000 },
- { 0x0700, 0xa3f6, 0x0000 },
- { 0x0700, 0xa3f8, 0x0000 },
- { 0x8700, 0xa3fb, 0x2000 },
- { 0x0700, 0xa3fa, 0x0000 },
- { 0x0700, 0xa3fc, 0x0000 },
- { 0x8700, 0xa405, 0x4000 },
- { 0x8700, 0xa401, 0x3000 },
- { 0x8700, 0xa3ff, 0x2000 },
- { 0x0700, 0xa3fe, 0x0000 },
- { 0x0700, 0xa400, 0x0000 },
- { 0x8700, 0xa403, 0x2000 },
- { 0x0700, 0xa402, 0x0000 },
- { 0x0700, 0xa404, 0x0000 },
- { 0x8700, 0xa409, 0x3000 },
- { 0x8700, 0xa407, 0x2000 },
- { 0x0700, 0xa406, 0x0000 },
- { 0x0700, 0xa408, 0x0000 },
- { 0x8700, 0xa40b, 0x2000 },
- { 0x0700, 0xa40a, 0x0000 },
- { 0x0700, 0xa40c, 0x0000 },
- { 0x8700, 0xa42d, 0x6000 },
- { 0x8700, 0xa41d, 0x5000 },
- { 0x8700, 0xa415, 0x4000 },
- { 0x8700, 0xa411, 0x3000 },
- { 0x8700, 0xa40f, 0x2000 },
- { 0x0700, 0xa40e, 0x0000 },
- { 0x0700, 0xa410, 0x0000 },
- { 0x8700, 0xa413, 0x2000 },
- { 0x0700, 0xa412, 0x0000 },
- { 0x0700, 0xa414, 0x0000 },
- { 0x8700, 0xa419, 0x3000 },
- { 0x8700, 0xa417, 0x2000 },
- { 0x0700, 0xa416, 0x0000 },
- { 0x0700, 0xa418, 0x0000 },
- { 0x8700, 0xa41b, 0x2000 },
- { 0x0700, 0xa41a, 0x0000 },
- { 0x0700, 0xa41c, 0x0000 },
- { 0x8700, 0xa425, 0x4000 },
- { 0x8700, 0xa421, 0x3000 },
- { 0x8700, 0xa41f, 0x2000 },
- { 0x0700, 0xa41e, 0x0000 },
- { 0x0700, 0xa420, 0x0000 },
- { 0x8700, 0xa423, 0x2000 },
- { 0x0700, 0xa422, 0x0000 },
- { 0x0700, 0xa424, 0x0000 },
- { 0x8700, 0xa429, 0x3000 },
- { 0x8700, 0xa427, 0x2000 },
- { 0x0700, 0xa426, 0x0000 },
- { 0x0700, 0xa428, 0x0000 },
- { 0x8700, 0xa42b, 0x2000 },
- { 0x0700, 0xa42a, 0x0000 },
- { 0x0700, 0xa42c, 0x0000 },
- { 0x8700, 0xa43d, 0x5000 },
- { 0x8700, 0xa435, 0x4000 },
- { 0x8700, 0xa431, 0x3000 },
- { 0x8700, 0xa42f, 0x2000 },
- { 0x0700, 0xa42e, 0x0000 },
- { 0x0700, 0xa430, 0x0000 },
- { 0x8700, 0xa433, 0x2000 },
- { 0x0700, 0xa432, 0x0000 },
- { 0x0700, 0xa434, 0x0000 },
- { 0x8700, 0xa439, 0x3000 },
- { 0x8700, 0xa437, 0x2000 },
- { 0x0700, 0xa436, 0x0000 },
- { 0x0700, 0xa438, 0x0000 },
- { 0x8700, 0xa43b, 0x2000 },
- { 0x0700, 0xa43a, 0x0000 },
- { 0x0700, 0xa43c, 0x0000 },
- { 0x8700, 0xa445, 0x4000 },
- { 0x8700, 0xa441, 0x3000 },
- { 0x8700, 0xa43f, 0x2000 },
- { 0x0700, 0xa43e, 0x0000 },
- { 0x0700, 0xa440, 0x0000 },
- { 0x8700, 0xa443, 0x2000 },
- { 0x0700, 0xa442, 0x0000 },
- { 0x0700, 0xa444, 0x0000 },
- { 0x8700, 0xa449, 0x3000 },
- { 0x8700, 0xa447, 0x2000 },
- { 0x0700, 0xa446, 0x0000 },
- { 0x0700, 0xa448, 0x0000 },
- { 0x8700, 0xa44b, 0x2000 },
- { 0x0700, 0xa44a, 0x0000 },
- { 0x0700, 0xa44c, 0x0000 },
- { 0x8300, 0xf8ff, 0x8000 },
- { 0x9a00, 0xa490, 0x7000 },
- { 0x8700, 0xa46d, 0x6000 },
- { 0x8700, 0xa45d, 0x5000 },
- { 0x8700, 0xa455, 0x4000 },
- { 0x8700, 0xa451, 0x3000 },
- { 0x8700, 0xa44f, 0x2000 },
- { 0x0700, 0xa44e, 0x0000 },
- { 0x0700, 0xa450, 0x0000 },
- { 0x8700, 0xa453, 0x2000 },
- { 0x0700, 0xa452, 0x0000 },
- { 0x0700, 0xa454, 0x0000 },
- { 0x8700, 0xa459, 0x3000 },
- { 0x8700, 0xa457, 0x2000 },
- { 0x0700, 0xa456, 0x0000 },
- { 0x0700, 0xa458, 0x0000 },
- { 0x8700, 0xa45b, 0x2000 },
- { 0x0700, 0xa45a, 0x0000 },
- { 0x0700, 0xa45c, 0x0000 },
- { 0x8700, 0xa465, 0x4000 },
- { 0x8700, 0xa461, 0x3000 },
- { 0x8700, 0xa45f, 0x2000 },
- { 0x0700, 0xa45e, 0x0000 },
- { 0x0700, 0xa460, 0x0000 },
- { 0x8700, 0xa463, 0x2000 },
- { 0x0700, 0xa462, 0x0000 },
- { 0x0700, 0xa464, 0x0000 },
- { 0x8700, 0xa469, 0x3000 },
- { 0x8700, 0xa467, 0x2000 },
- { 0x0700, 0xa466, 0x0000 },
- { 0x0700, 0xa468, 0x0000 },
- { 0x8700, 0xa46b, 0x2000 },
- { 0x0700, 0xa46a, 0x0000 },
- { 0x0700, 0xa46c, 0x0000 },
- { 0x8700, 0xa47d, 0x5000 },
- { 0x8700, 0xa475, 0x4000 },
- { 0x8700, 0xa471, 0x3000 },
- { 0x8700, 0xa46f, 0x2000 },
- { 0x0700, 0xa46e, 0x0000 },
- { 0x0700, 0xa470, 0x0000 },
- { 0x8700, 0xa473, 0x2000 },
- { 0x0700, 0xa472, 0x0000 },
- { 0x0700, 0xa474, 0x0000 },
- { 0x8700, 0xa479, 0x3000 },
- { 0x8700, 0xa477, 0x2000 },
- { 0x0700, 0xa476, 0x0000 },
- { 0x0700, 0xa478, 0x0000 },
- { 0x8700, 0xa47b, 0x2000 },
- { 0x0700, 0xa47a, 0x0000 },
- { 0x0700, 0xa47c, 0x0000 },
- { 0x8700, 0xa485, 0x4000 },
- { 0x8700, 0xa481, 0x3000 },
- { 0x8700, 0xa47f, 0x2000 },
- { 0x0700, 0xa47e, 0x0000 },
- { 0x0700, 0xa480, 0x0000 },
- { 0x8700, 0xa483, 0x2000 },
- { 0x0700, 0xa482, 0x0000 },
- { 0x0700, 0xa484, 0x0000 },
- { 0x8700, 0xa489, 0x3000 },
- { 0x8700, 0xa487, 0x2000 },
- { 0x0700, 0xa486, 0x0000 },
- { 0x0700, 0xa488, 0x0000 },
- { 0x8700, 0xa48b, 0x2000 },
- { 0x0700, 0xa48a, 0x0000 },
- { 0x0700, 0xa48c, 0x0000 },
- { 0x9a00, 0xa4b0, 0x6000 },
- { 0x9a00, 0xa4a0, 0x5000 },
- { 0x9a00, 0xa498, 0x4000 },
- { 0x9a00, 0xa494, 0x3000 },
- { 0x9a00, 0xa492, 0x2000 },
- { 0x1a00, 0xa491, 0x0000 },
- { 0x1a00, 0xa493, 0x0000 },
- { 0x9a00, 0xa496, 0x2000 },
- { 0x1a00, 0xa495, 0x0000 },
- { 0x1a00, 0xa497, 0x0000 },
- { 0x9a00, 0xa49c, 0x3000 },
- { 0x9a00, 0xa49a, 0x2000 },
- { 0x1a00, 0xa499, 0x0000 },
- { 0x1a00, 0xa49b, 0x0000 },
- { 0x9a00, 0xa49e, 0x2000 },
- { 0x1a00, 0xa49d, 0x0000 },
- { 0x1a00, 0xa49f, 0x0000 },
- { 0x9a00, 0xa4a8, 0x4000 },
- { 0x9a00, 0xa4a4, 0x3000 },
- { 0x9a00, 0xa4a2, 0x2000 },
- { 0x1a00, 0xa4a1, 0x0000 },
- { 0x1a00, 0xa4a3, 0x0000 },
- { 0x9a00, 0xa4a6, 0x2000 },
- { 0x1a00, 0xa4a5, 0x0000 },
- { 0x1a00, 0xa4a7, 0x0000 },
- { 0x9a00, 0xa4ac, 0x3000 },
- { 0x9a00, 0xa4aa, 0x2000 },
- { 0x1a00, 0xa4a9, 0x0000 },
- { 0x1a00, 0xa4ab, 0x0000 },
- { 0x9a00, 0xa4ae, 0x2000 },
- { 0x1a00, 0xa4ad, 0x0000 },
- { 0x1a00, 0xa4af, 0x0000 },
- { 0x9a00, 0xa4c0, 0x5000 },
- { 0x9a00, 0xa4b8, 0x4000 },
- { 0x9a00, 0xa4b4, 0x3000 },
- { 0x9a00, 0xa4b2, 0x2000 },
- { 0x1a00, 0xa4b1, 0x0000 },
- { 0x1a00, 0xa4b3, 0x0000 },
- { 0x9a00, 0xa4b6, 0x2000 },
- { 0x1a00, 0xa4b5, 0x0000 },
- { 0x1a00, 0xa4b7, 0x0000 },
- { 0x9a00, 0xa4bc, 0x3000 },
- { 0x9a00, 0xa4ba, 0x2000 },
- { 0x1a00, 0xa4b9, 0x0000 },
- { 0x1a00, 0xa4bb, 0x0000 },
- { 0x9a00, 0xa4be, 0x2000 },
- { 0x1a00, 0xa4bd, 0x0000 },
- { 0x1a00, 0xa4bf, 0x0000 },
- { 0x8700, 0xd7a3, 0x4000 },
- { 0x9a00, 0xa4c4, 0x3000 },
- { 0x9a00, 0xa4c2, 0x2000 },
- { 0x1a00, 0xa4c1, 0x0000 },
- { 0x1a00, 0xa4c3, 0x0000 },
- { 0x9a00, 0xa4c6, 0x2000 },
- { 0x1a00, 0xa4c5, 0x0000 },
- { 0x0700, 0xac00, 0x0000 },
- { 0x8400, 0xdbff, 0x3000 },
- { 0x8400, 0xdb7f, 0x2000 },
- { 0x0400, 0xd800, 0x0000 },
- { 0x0400, 0xdb80, 0x0000 },
- { 0x8400, 0xdfff, 0x2000 },
- { 0x0400, 0xdc00, 0x0000 },
- { 0x0300, 0xe000, 0x0000 },
- { 0x8700, 0xf93f, 0x7000 },
- { 0x8700, 0xf91f, 0x6000 },
- { 0x8700, 0xf90f, 0x5000 },
- { 0x8700, 0xf907, 0x4000 },
- { 0x8700, 0xf903, 0x3000 },
- { 0x8700, 0xf901, 0x2000 },
- { 0x0700, 0xf900, 0x0000 },
- { 0x0700, 0xf902, 0x0000 },
- { 0x8700, 0xf905, 0x2000 },
- { 0x0700, 0xf904, 0x0000 },
- { 0x0700, 0xf906, 0x0000 },
- { 0x8700, 0xf90b, 0x3000 },
- { 0x8700, 0xf909, 0x2000 },
- { 0x0700, 0xf908, 0x0000 },
- { 0x0700, 0xf90a, 0x0000 },
- { 0x8700, 0xf90d, 0x2000 },
- { 0x0700, 0xf90c, 0x0000 },
- { 0x0700, 0xf90e, 0x0000 },
- { 0x8700, 0xf917, 0x4000 },
- { 0x8700, 0xf913, 0x3000 },
- { 0x8700, 0xf911, 0x2000 },
- { 0x0700, 0xf910, 0x0000 },
- { 0x0700, 0xf912, 0x0000 },
- { 0x8700, 0xf915, 0x2000 },
- { 0x0700, 0xf914, 0x0000 },
- { 0x0700, 0xf916, 0x0000 },
- { 0x8700, 0xf91b, 0x3000 },
- { 0x8700, 0xf919, 0x2000 },
- { 0x0700, 0xf918, 0x0000 },
- { 0x0700, 0xf91a, 0x0000 },
- { 0x8700, 0xf91d, 0x2000 },
- { 0x0700, 0xf91c, 0x0000 },
- { 0x0700, 0xf91e, 0x0000 },
- { 0x8700, 0xf92f, 0x5000 },
- { 0x8700, 0xf927, 0x4000 },
- { 0x8700, 0xf923, 0x3000 },
- { 0x8700, 0xf921, 0x2000 },
- { 0x0700, 0xf920, 0x0000 },
- { 0x0700, 0xf922, 0x0000 },
- { 0x8700, 0xf925, 0x2000 },
- { 0x0700, 0xf924, 0x0000 },
- { 0x0700, 0xf926, 0x0000 },
- { 0x8700, 0xf92b, 0x3000 },
- { 0x8700, 0xf929, 0x2000 },
- { 0x0700, 0xf928, 0x0000 },
- { 0x0700, 0xf92a, 0x0000 },
- { 0x8700, 0xf92d, 0x2000 },
- { 0x0700, 0xf92c, 0x0000 },
- { 0x0700, 0xf92e, 0x0000 },
- { 0x8700, 0xf937, 0x4000 },
- { 0x8700, 0xf933, 0x3000 },
- { 0x8700, 0xf931, 0x2000 },
- { 0x0700, 0xf930, 0x0000 },
- { 0x0700, 0xf932, 0x0000 },
- { 0x8700, 0xf935, 0x2000 },
- { 0x0700, 0xf934, 0x0000 },
- { 0x0700, 0xf936, 0x0000 },
- { 0x8700, 0xf93b, 0x3000 },
- { 0x8700, 0xf939, 0x2000 },
- { 0x0700, 0xf938, 0x0000 },
- { 0x0700, 0xf93a, 0x0000 },
- { 0x8700, 0xf93d, 0x2000 },
- { 0x0700, 0xf93c, 0x0000 },
- { 0x0700, 0xf93e, 0x0000 },
- { 0x8700, 0xf95f, 0x6000 },
- { 0x8700, 0xf94f, 0x5000 },
- { 0x8700, 0xf947, 0x4000 },
- { 0x8700, 0xf943, 0x3000 },
- { 0x8700, 0xf941, 0x2000 },
- { 0x0700, 0xf940, 0x0000 },
- { 0x0700, 0xf942, 0x0000 },
- { 0x8700, 0xf945, 0x2000 },
- { 0x0700, 0xf944, 0x0000 },
- { 0x0700, 0xf946, 0x0000 },
- { 0x8700, 0xf94b, 0x3000 },
- { 0x8700, 0xf949, 0x2000 },
- { 0x0700, 0xf948, 0x0000 },
- { 0x0700, 0xf94a, 0x0000 },
- { 0x8700, 0xf94d, 0x2000 },
- { 0x0700, 0xf94c, 0x0000 },
- { 0x0700, 0xf94e, 0x0000 },
- { 0x8700, 0xf957, 0x4000 },
- { 0x8700, 0xf953, 0x3000 },
- { 0x8700, 0xf951, 0x2000 },
- { 0x0700, 0xf950, 0x0000 },
- { 0x0700, 0xf952, 0x0000 },
- { 0x8700, 0xf955, 0x2000 },
- { 0x0700, 0xf954, 0x0000 },
- { 0x0700, 0xf956, 0x0000 },
- { 0x8700, 0xf95b, 0x3000 },
- { 0x8700, 0xf959, 0x2000 },
- { 0x0700, 0xf958, 0x0000 },
- { 0x0700, 0xf95a, 0x0000 },
- { 0x8700, 0xf95d, 0x2000 },
- { 0x0700, 0xf95c, 0x0000 },
- { 0x0700, 0xf95e, 0x0000 },
- { 0x8700, 0xf96f, 0x5000 },
- { 0x8700, 0xf967, 0x4000 },
- { 0x8700, 0xf963, 0x3000 },
- { 0x8700, 0xf961, 0x2000 },
- { 0x0700, 0xf960, 0x0000 },
- { 0x0700, 0xf962, 0x0000 },
- { 0x8700, 0xf965, 0x2000 },
- { 0x0700, 0xf964, 0x0000 },
- { 0x0700, 0xf966, 0x0000 },
- { 0x8700, 0xf96b, 0x3000 },
- { 0x8700, 0xf969, 0x2000 },
- { 0x0700, 0xf968, 0x0000 },
- { 0x0700, 0xf96a, 0x0000 },
- { 0x8700, 0xf96d, 0x2000 },
- { 0x0700, 0xf96c, 0x0000 },
- { 0x0700, 0xf96e, 0x0000 },
- { 0x8700, 0xf977, 0x4000 },
- { 0x8700, 0xf973, 0x3000 },
- { 0x8700, 0xf971, 0x2000 },
- { 0x0700, 0xf970, 0x0000 },
- { 0x0700, 0xf972, 0x0000 },
- { 0x8700, 0xf975, 0x2000 },
- { 0x0700, 0xf974, 0x0000 },
- { 0x0700, 0xf976, 0x0000 },
- { 0x8700, 0xf97b, 0x3000 },
- { 0x8700, 0xf979, 0x2000 },
- { 0x0700, 0xf978, 0x0000 },
- { 0x0700, 0xf97a, 0x0000 },
- { 0x8700, 0xf97d, 0x2000 },
- { 0x0700, 0xf97c, 0x0000 },
- { 0x0700, 0xf97e, 0x0000 },
- { 0x8700, 0xfb27, 0x9000 },
- { 0x8700, 0xf9ff, 0x8000 },
- { 0x8700, 0xf9bf, 0x7000 },
- { 0x8700, 0xf99f, 0x6000 },
- { 0x8700, 0xf98f, 0x5000 },
- { 0x8700, 0xf987, 0x4000 },
- { 0x8700, 0xf983, 0x3000 },
- { 0x8700, 0xf981, 0x2000 },
- { 0x0700, 0xf980, 0x0000 },
- { 0x0700, 0xf982, 0x0000 },
- { 0x8700, 0xf985, 0x2000 },
- { 0x0700, 0xf984, 0x0000 },
- { 0x0700, 0xf986, 0x0000 },
- { 0x8700, 0xf98b, 0x3000 },
- { 0x8700, 0xf989, 0x2000 },
- { 0x0700, 0xf988, 0x0000 },
- { 0x0700, 0xf98a, 0x0000 },
- { 0x8700, 0xf98d, 0x2000 },
- { 0x0700, 0xf98c, 0x0000 },
- { 0x0700, 0xf98e, 0x0000 },
- { 0x8700, 0xf997, 0x4000 },
- { 0x8700, 0xf993, 0x3000 },
- { 0x8700, 0xf991, 0x2000 },
- { 0x0700, 0xf990, 0x0000 },
- { 0x0700, 0xf992, 0x0000 },
- { 0x8700, 0xf995, 0x2000 },
- { 0x0700, 0xf994, 0x0000 },
- { 0x0700, 0xf996, 0x0000 },
- { 0x8700, 0xf99b, 0x3000 },
- { 0x8700, 0xf999, 0x2000 },
- { 0x0700, 0xf998, 0x0000 },
- { 0x0700, 0xf99a, 0x0000 },
- { 0x8700, 0xf99d, 0x2000 },
- { 0x0700, 0xf99c, 0x0000 },
- { 0x0700, 0xf99e, 0x0000 },
- { 0x8700, 0xf9af, 0x5000 },
- { 0x8700, 0xf9a7, 0x4000 },
- { 0x8700, 0xf9a3, 0x3000 },
- { 0x8700, 0xf9a1, 0x2000 },
- { 0x0700, 0xf9a0, 0x0000 },
- { 0x0700, 0xf9a2, 0x0000 },
- { 0x8700, 0xf9a5, 0x2000 },
- { 0x0700, 0xf9a4, 0x0000 },
- { 0x0700, 0xf9a6, 0x0000 },
- { 0x8700, 0xf9ab, 0x3000 },
- { 0x8700, 0xf9a9, 0x2000 },
- { 0x0700, 0xf9a8, 0x0000 },
- { 0x0700, 0xf9aa, 0x0000 },
- { 0x8700, 0xf9ad, 0x2000 },
- { 0x0700, 0xf9ac, 0x0000 },
- { 0x0700, 0xf9ae, 0x0000 },
- { 0x8700, 0xf9b7, 0x4000 },
- { 0x8700, 0xf9b3, 0x3000 },
- { 0x8700, 0xf9b1, 0x2000 },
- { 0x0700, 0xf9b0, 0x0000 },
- { 0x0700, 0xf9b2, 0x0000 },
- { 0x8700, 0xf9b5, 0x2000 },
- { 0x0700, 0xf9b4, 0x0000 },
- { 0x0700, 0xf9b6, 0x0000 },
- { 0x8700, 0xf9bb, 0x3000 },
- { 0x8700, 0xf9b9, 0x2000 },
- { 0x0700, 0xf9b8, 0x0000 },
- { 0x0700, 0xf9ba, 0x0000 },
- { 0x8700, 0xf9bd, 0x2000 },
- { 0x0700, 0xf9bc, 0x0000 },
- { 0x0700, 0xf9be, 0x0000 },
- { 0x8700, 0xf9df, 0x6000 },
- { 0x8700, 0xf9cf, 0x5000 },
- { 0x8700, 0xf9c7, 0x4000 },
- { 0x8700, 0xf9c3, 0x3000 },
- { 0x8700, 0xf9c1, 0x2000 },
- { 0x0700, 0xf9c0, 0x0000 },
- { 0x0700, 0xf9c2, 0x0000 },
- { 0x8700, 0xf9c5, 0x2000 },
- { 0x0700, 0xf9c4, 0x0000 },
- { 0x0700, 0xf9c6, 0x0000 },
- { 0x8700, 0xf9cb, 0x3000 },
- { 0x8700, 0xf9c9, 0x2000 },
- { 0x0700, 0xf9c8, 0x0000 },
- { 0x0700, 0xf9ca, 0x0000 },
- { 0x8700, 0xf9cd, 0x2000 },
- { 0x0700, 0xf9cc, 0x0000 },
- { 0x0700, 0xf9ce, 0x0000 },
- { 0x8700, 0xf9d7, 0x4000 },
- { 0x8700, 0xf9d3, 0x3000 },
- { 0x8700, 0xf9d1, 0x2000 },
- { 0x0700, 0xf9d0, 0x0000 },
- { 0x0700, 0xf9d2, 0x0000 },
- { 0x8700, 0xf9d5, 0x2000 },
- { 0x0700, 0xf9d4, 0x0000 },
- { 0x0700, 0xf9d6, 0x0000 },
- { 0x8700, 0xf9db, 0x3000 },
- { 0x8700, 0xf9d9, 0x2000 },
- { 0x0700, 0xf9d8, 0x0000 },
- { 0x0700, 0xf9da, 0x0000 },
- { 0x8700, 0xf9dd, 0x2000 },
- { 0x0700, 0xf9dc, 0x0000 },
- { 0x0700, 0xf9de, 0x0000 },
- { 0x8700, 0xf9ef, 0x5000 },
- { 0x8700, 0xf9e7, 0x4000 },
- { 0x8700, 0xf9e3, 0x3000 },
- { 0x8700, 0xf9e1, 0x2000 },
- { 0x0700, 0xf9e0, 0x0000 },
- { 0x0700, 0xf9e2, 0x0000 },
- { 0x8700, 0xf9e5, 0x2000 },
- { 0x0700, 0xf9e4, 0x0000 },
- { 0x0700, 0xf9e6, 0x0000 },
- { 0x8700, 0xf9eb, 0x3000 },
- { 0x8700, 0xf9e9, 0x2000 },
- { 0x0700, 0xf9e8, 0x0000 },
- { 0x0700, 0xf9ea, 0x0000 },
- { 0x8700, 0xf9ed, 0x2000 },
- { 0x0700, 0xf9ec, 0x0000 },
- { 0x0700, 0xf9ee, 0x0000 },
- { 0x8700, 0xf9f7, 0x4000 },
- { 0x8700, 0xf9f3, 0x3000 },
- { 0x8700, 0xf9f1, 0x2000 },
- { 0x0700, 0xf9f0, 0x0000 },
- { 0x0700, 0xf9f2, 0x0000 },
- { 0x8700, 0xf9f5, 0x2000 },
- { 0x0700, 0xf9f4, 0x0000 },
- { 0x0700, 0xf9f6, 0x0000 },
- { 0x8700, 0xf9fb, 0x3000 },
- { 0x8700, 0xf9f9, 0x2000 },
- { 0x0700, 0xf9f8, 0x0000 },
- { 0x0700, 0xf9fa, 0x0000 },
- { 0x8700, 0xf9fd, 0x2000 },
- { 0x0700, 0xf9fc, 0x0000 },
- { 0x0700, 0xf9fe, 0x0000 },
- { 0x8700, 0xfa41, 0x7000 },
- { 0x8700, 0xfa1f, 0x6000 },
- { 0x8700, 0xfa0f, 0x5000 },
- { 0x8700, 0xfa07, 0x4000 },
- { 0x8700, 0xfa03, 0x3000 },
- { 0x8700, 0xfa01, 0x2000 },
- { 0x0700, 0xfa00, 0x0000 },
- { 0x0700, 0xfa02, 0x0000 },
- { 0x8700, 0xfa05, 0x2000 },
- { 0x0700, 0xfa04, 0x0000 },
- { 0x0700, 0xfa06, 0x0000 },
- { 0x8700, 0xfa0b, 0x3000 },
- { 0x8700, 0xfa09, 0x2000 },
- { 0x0700, 0xfa08, 0x0000 },
- { 0x0700, 0xfa0a, 0x0000 },
- { 0x8700, 0xfa0d, 0x2000 },
- { 0x0700, 0xfa0c, 0x0000 },
- { 0x0700, 0xfa0e, 0x0000 },
- { 0x8700, 0xfa17, 0x4000 },
- { 0x8700, 0xfa13, 0x3000 },
- { 0x8700, 0xfa11, 0x2000 },
- { 0x0700, 0xfa10, 0x0000 },
- { 0x0700, 0xfa12, 0x0000 },
- { 0x8700, 0xfa15, 0x2000 },
- { 0x0700, 0xfa14, 0x0000 },
- { 0x0700, 0xfa16, 0x0000 },
- { 0x8700, 0xfa1b, 0x3000 },
- { 0x8700, 0xfa19, 0x2000 },
- { 0x0700, 0xfa18, 0x0000 },
- { 0x0700, 0xfa1a, 0x0000 },
- { 0x8700, 0xfa1d, 0x2000 },
- { 0x0700, 0xfa1c, 0x0000 },
- { 0x0700, 0xfa1e, 0x0000 },
- { 0x8700, 0xfa31, 0x5000 },
- { 0x8700, 0xfa27, 0x4000 },
- { 0x8700, 0xfa23, 0x3000 },
- { 0x8700, 0xfa21, 0x2000 },
- { 0x0700, 0xfa20, 0x0000 },
- { 0x0700, 0xfa22, 0x0000 },
- { 0x8700, 0xfa25, 0x2000 },
- { 0x0700, 0xfa24, 0x0000 },
- { 0x0700, 0xfa26, 0x0000 },
- { 0x8700, 0xfa2b, 0x3000 },
- { 0x8700, 0xfa29, 0x2000 },
- { 0x0700, 0xfa28, 0x0000 },
- { 0x0700, 0xfa2a, 0x0000 },
- { 0x8700, 0xfa2d, 0x2000 },
- { 0x0700, 0xfa2c, 0x0000 },
- { 0x0700, 0xfa30, 0x0000 },
- { 0x8700, 0xfa39, 0x4000 },
- { 0x8700, 0xfa35, 0x3000 },
- { 0x8700, 0xfa33, 0x2000 },
- { 0x0700, 0xfa32, 0x0000 },
- { 0x0700, 0xfa34, 0x0000 },
- { 0x8700, 0xfa37, 0x2000 },
- { 0x0700, 0xfa36, 0x0000 },
- { 0x0700, 0xfa38, 0x0000 },
- { 0x8700, 0xfa3d, 0x3000 },
- { 0x8700, 0xfa3b, 0x2000 },
- { 0x0700, 0xfa3a, 0x0000 },
- { 0x0700, 0xfa3c, 0x0000 },
- { 0x8700, 0xfa3f, 0x2000 },
- { 0x0700, 0xfa3e, 0x0000 },
- { 0x0700, 0xfa40, 0x0000 },
- { 0x8700, 0xfa61, 0x6000 },
- { 0x8700, 0xfa51, 0x5000 },
- { 0x8700, 0xfa49, 0x4000 },
- { 0x8700, 0xfa45, 0x3000 },
- { 0x8700, 0xfa43, 0x2000 },
- { 0x0700, 0xfa42, 0x0000 },
- { 0x0700, 0xfa44, 0x0000 },
- { 0x8700, 0xfa47, 0x2000 },
- { 0x0700, 0xfa46, 0x0000 },
- { 0x0700, 0xfa48, 0x0000 },
- { 0x8700, 0xfa4d, 0x3000 },
- { 0x8700, 0xfa4b, 0x2000 },
- { 0x0700, 0xfa4a, 0x0000 },
- { 0x0700, 0xfa4c, 0x0000 },
- { 0x8700, 0xfa4f, 0x2000 },
- { 0x0700, 0xfa4e, 0x0000 },
- { 0x0700, 0xfa50, 0x0000 },
- { 0x8700, 0xfa59, 0x4000 },
- { 0x8700, 0xfa55, 0x3000 },
- { 0x8700, 0xfa53, 0x2000 },
- { 0x0700, 0xfa52, 0x0000 },
- { 0x0700, 0xfa54, 0x0000 },
- { 0x8700, 0xfa57, 0x2000 },
- { 0x0700, 0xfa56, 0x0000 },
- { 0x0700, 0xfa58, 0x0000 },
- { 0x8700, 0xfa5d, 0x3000 },
- { 0x8700, 0xfa5b, 0x2000 },
- { 0x0700, 0xfa5a, 0x0000 },
- { 0x0700, 0xfa5c, 0x0000 },
- { 0x8700, 0xfa5f, 0x2000 },
- { 0x0700, 0xfa5e, 0x0000 },
- { 0x0700, 0xfa60, 0x0000 },
- { 0x8500, 0xfb06, 0x5000 },
- { 0x8700, 0xfa69, 0x4000 },
- { 0x8700, 0xfa65, 0x3000 },
- { 0x8700, 0xfa63, 0x2000 },
- { 0x0700, 0xfa62, 0x0000 },
- { 0x0700, 0xfa64, 0x0000 },
- { 0x8700, 0xfa67, 0x2000 },
- { 0x0700, 0xfa66, 0x0000 },
- { 0x0700, 0xfa68, 0x0000 },
- { 0x8500, 0xfb02, 0x3000 },
- { 0x8500, 0xfb00, 0x2000 },
- { 0x0700, 0xfa6a, 0x0000 },
- { 0x0500, 0xfb01, 0x0000 },
- { 0x8500, 0xfb04, 0x2000 },
- { 0x0500, 0xfb03, 0x0000 },
- { 0x0500, 0xfb05, 0x0000 },
- { 0x8700, 0xfb1f, 0x4000 },
- { 0x8500, 0xfb16, 0x3000 },
- { 0x8500, 0xfb14, 0x2000 },
- { 0x0500, 0xfb13, 0x0000 },
- { 0x0500, 0xfb15, 0x0000 },
- { 0x8700, 0xfb1d, 0x2000 },
- { 0x0500, 0xfb17, 0x0000 },
- { 0x0c00, 0xfb1e, 0x0000 },
- { 0x8700, 0xfb23, 0x3000 },
- { 0x8700, 0xfb21, 0x2000 },
- { 0x0700, 0xfb20, 0x0000 },
- { 0x0700, 0xfb22, 0x0000 },
- { 0x8700, 0xfb25, 0x2000 },
- { 0x0700, 0xfb24, 0x0000 },
- { 0x0700, 0xfb26, 0x0000 },
- { 0x8700, 0xfbac, 0x8000 },
- { 0x8700, 0xfb6c, 0x7000 },
- { 0x8700, 0xfb4c, 0x6000 },
- { 0x8700, 0xfb38, 0x5000 },
- { 0x8700, 0xfb2f, 0x4000 },
- { 0x8700, 0xfb2b, 0x3000 },
- { 0x9900, 0xfb29, 0x2000 },
- { 0x0700, 0xfb28, 0x0000 },
- { 0x0700, 0xfb2a, 0x0000 },
- { 0x8700, 0xfb2d, 0x2000 },
- { 0x0700, 0xfb2c, 0x0000 },
- { 0x0700, 0xfb2e, 0x0000 },
- { 0x8700, 0xfb33, 0x3000 },
- { 0x8700, 0xfb31, 0x2000 },
- { 0x0700, 0xfb30, 0x0000 },
- { 0x0700, 0xfb32, 0x0000 },
- { 0x8700, 0xfb35, 0x2000 },
- { 0x0700, 0xfb34, 0x0000 },
- { 0x0700, 0xfb36, 0x0000 },
- { 0x8700, 0xfb43, 0x4000 },
- { 0x8700, 0xfb3c, 0x3000 },
- { 0x8700, 0xfb3a, 0x2000 },
- { 0x0700, 0xfb39, 0x0000 },
- { 0x0700, 0xfb3b, 0x0000 },
- { 0x8700, 0xfb40, 0x2000 },
- { 0x0700, 0xfb3e, 0x0000 },
- { 0x0700, 0xfb41, 0x0000 },
- { 0x8700, 0xfb48, 0x3000 },
- { 0x8700, 0xfb46, 0x2000 },
- { 0x0700, 0xfb44, 0x0000 },
- { 0x0700, 0xfb47, 0x0000 },
- { 0x8700, 0xfb4a, 0x2000 },
- { 0x0700, 0xfb49, 0x0000 },
- { 0x0700, 0xfb4b, 0x0000 },
- { 0x8700, 0xfb5c, 0x5000 },
- { 0x8700, 0xfb54, 0x4000 },
- { 0x8700, 0xfb50, 0x3000 },
- { 0x8700, 0xfb4e, 0x2000 },
- { 0x0700, 0xfb4d, 0x0000 },
- { 0x0700, 0xfb4f, 0x0000 },
- { 0x8700, 0xfb52, 0x2000 },
- { 0x0700, 0xfb51, 0x0000 },
- { 0x0700, 0xfb53, 0x0000 },
- { 0x8700, 0xfb58, 0x3000 },
- { 0x8700, 0xfb56, 0x2000 },
- { 0x0700, 0xfb55, 0x0000 },
- { 0x0700, 0xfb57, 0x0000 },
- { 0x8700, 0xfb5a, 0x2000 },
- { 0x0700, 0xfb59, 0x0000 },
- { 0x0700, 0xfb5b, 0x0000 },
- { 0x8700, 0xfb64, 0x4000 },
- { 0x8700, 0xfb60, 0x3000 },
- { 0x8700, 0xfb5e, 0x2000 },
- { 0x0700, 0xfb5d, 0x0000 },
- { 0x0700, 0xfb5f, 0x0000 },
- { 0x8700, 0xfb62, 0x2000 },
- { 0x0700, 0xfb61, 0x0000 },
- { 0x0700, 0xfb63, 0x0000 },
- { 0x8700, 0xfb68, 0x3000 },
- { 0x8700, 0xfb66, 0x2000 },
- { 0x0700, 0xfb65, 0x0000 },
- { 0x0700, 0xfb67, 0x0000 },
- { 0x8700, 0xfb6a, 0x2000 },
- { 0x0700, 0xfb69, 0x0000 },
- { 0x0700, 0xfb6b, 0x0000 },
- { 0x8700, 0xfb8c, 0x6000 },
- { 0x8700, 0xfb7c, 0x5000 },
- { 0x8700, 0xfb74, 0x4000 },
- { 0x8700, 0xfb70, 0x3000 },
- { 0x8700, 0xfb6e, 0x2000 },
- { 0x0700, 0xfb6d, 0x0000 },
- { 0x0700, 0xfb6f, 0x0000 },
- { 0x8700, 0xfb72, 0x2000 },
- { 0x0700, 0xfb71, 0x0000 },
- { 0x0700, 0xfb73, 0x0000 },
- { 0x8700, 0xfb78, 0x3000 },
- { 0x8700, 0xfb76, 0x2000 },
- { 0x0700, 0xfb75, 0x0000 },
- { 0x0700, 0xfb77, 0x0000 },
- { 0x8700, 0xfb7a, 0x2000 },
- { 0x0700, 0xfb79, 0x0000 },
- { 0x0700, 0xfb7b, 0x0000 },
- { 0x8700, 0xfb84, 0x4000 },
- { 0x8700, 0xfb80, 0x3000 },
- { 0x8700, 0xfb7e, 0x2000 },
- { 0x0700, 0xfb7d, 0x0000 },
- { 0x0700, 0xfb7f, 0x0000 },
- { 0x8700, 0xfb82, 0x2000 },
- { 0x0700, 0xfb81, 0x0000 },
- { 0x0700, 0xfb83, 0x0000 },
- { 0x8700, 0xfb88, 0x3000 },
- { 0x8700, 0xfb86, 0x2000 },
- { 0x0700, 0xfb85, 0x0000 },
- { 0x0700, 0xfb87, 0x0000 },
- { 0x8700, 0xfb8a, 0x2000 },
- { 0x0700, 0xfb89, 0x0000 },
- { 0x0700, 0xfb8b, 0x0000 },
- { 0x8700, 0xfb9c, 0x5000 },
- { 0x8700, 0xfb94, 0x4000 },
- { 0x8700, 0xfb90, 0x3000 },
- { 0x8700, 0xfb8e, 0x2000 },
- { 0x0700, 0xfb8d, 0x0000 },
- { 0x0700, 0xfb8f, 0x0000 },
- { 0x8700, 0xfb92, 0x2000 },
- { 0x0700, 0xfb91, 0x0000 },
- { 0x0700, 0xfb93, 0x0000 },
- { 0x8700, 0xfb98, 0x3000 },
- { 0x8700, 0xfb96, 0x2000 },
- { 0x0700, 0xfb95, 0x0000 },
- { 0x0700, 0xfb97, 0x0000 },
- { 0x8700, 0xfb9a, 0x2000 },
- { 0x0700, 0xfb99, 0x0000 },
- { 0x0700, 0xfb9b, 0x0000 },
- { 0x8700, 0xfba4, 0x4000 },
- { 0x8700, 0xfba0, 0x3000 },
- { 0x8700, 0xfb9e, 0x2000 },
- { 0x0700, 0xfb9d, 0x0000 },
- { 0x0700, 0xfb9f, 0x0000 },
- { 0x8700, 0xfba2, 0x2000 },
- { 0x0700, 0xfba1, 0x0000 },
- { 0x0700, 0xfba3, 0x0000 },
- { 0x8700, 0xfba8, 0x3000 },
- { 0x8700, 0xfba6, 0x2000 },
- { 0x0700, 0xfba5, 0x0000 },
- { 0x0700, 0xfba7, 0x0000 },
- { 0x8700, 0xfbaa, 0x2000 },
- { 0x0700, 0xfba9, 0x0000 },
- { 0x0700, 0xfbab, 0x0000 },
- { 0x8700, 0xfc0d, 0x7000 },
- { 0x8700, 0xfbed, 0x6000 },
- { 0x8700, 0xfbdd, 0x5000 },
- { 0x8700, 0xfbd5, 0x4000 },
- { 0x8700, 0xfbb0, 0x3000 },
- { 0x8700, 0xfbae, 0x2000 },
- { 0x0700, 0xfbad, 0x0000 },
- { 0x0700, 0xfbaf, 0x0000 },
- { 0x8700, 0xfbd3, 0x2000 },
- { 0x0700, 0xfbb1, 0x0000 },
- { 0x0700, 0xfbd4, 0x0000 },
- { 0x8700, 0xfbd9, 0x3000 },
- { 0x8700, 0xfbd7, 0x2000 },
- { 0x0700, 0xfbd6, 0x0000 },
- { 0x0700, 0xfbd8, 0x0000 },
- { 0x8700, 0xfbdb, 0x2000 },
- { 0x0700, 0xfbda, 0x0000 },
- { 0x0700, 0xfbdc, 0x0000 },
- { 0x8700, 0xfbe5, 0x4000 },
- { 0x8700, 0xfbe1, 0x3000 },
- { 0x8700, 0xfbdf, 0x2000 },
- { 0x0700, 0xfbde, 0x0000 },
- { 0x0700, 0xfbe0, 0x0000 },
- { 0x8700, 0xfbe3, 0x2000 },
- { 0x0700, 0xfbe2, 0x0000 },
- { 0x0700, 0xfbe4, 0x0000 },
- { 0x8700, 0xfbe9, 0x3000 },
- { 0x8700, 0xfbe7, 0x2000 },
- { 0x0700, 0xfbe6, 0x0000 },
- { 0x0700, 0xfbe8, 0x0000 },
- { 0x8700, 0xfbeb, 0x2000 },
- { 0x0700, 0xfbea, 0x0000 },
- { 0x0700, 0xfbec, 0x0000 },
- { 0x8700, 0xfbfd, 0x5000 },
- { 0x8700, 0xfbf5, 0x4000 },
- { 0x8700, 0xfbf1, 0x3000 },
- { 0x8700, 0xfbef, 0x2000 },
- { 0x0700, 0xfbee, 0x0000 },
- { 0x0700, 0xfbf0, 0x0000 },
- { 0x8700, 0xfbf3, 0x2000 },
- { 0x0700, 0xfbf2, 0x0000 },
- { 0x0700, 0xfbf4, 0x0000 },
- { 0x8700, 0xfbf9, 0x3000 },
- { 0x8700, 0xfbf7, 0x2000 },
- { 0x0700, 0xfbf6, 0x0000 },
- { 0x0700, 0xfbf8, 0x0000 },
- { 0x8700, 0xfbfb, 0x2000 },
- { 0x0700, 0xfbfa, 0x0000 },
- { 0x0700, 0xfbfc, 0x0000 },
- { 0x8700, 0xfc05, 0x4000 },
- { 0x8700, 0xfc01, 0x3000 },
- { 0x8700, 0xfbff, 0x2000 },
- { 0x0700, 0xfbfe, 0x0000 },
- { 0x0700, 0xfc00, 0x0000 },
- { 0x8700, 0xfc03, 0x2000 },
- { 0x0700, 0xfc02, 0x0000 },
- { 0x0700, 0xfc04, 0x0000 },
- { 0x8700, 0xfc09, 0x3000 },
- { 0x8700, 0xfc07, 0x2000 },
- { 0x0700, 0xfc06, 0x0000 },
- { 0x0700, 0xfc08, 0x0000 },
- { 0x8700, 0xfc0b, 0x2000 },
- { 0x0700, 0xfc0a, 0x0000 },
- { 0x0700, 0xfc0c, 0x0000 },
- { 0x8700, 0xfc2d, 0x6000 },
- { 0x8700, 0xfc1d, 0x5000 },
- { 0x8700, 0xfc15, 0x4000 },
- { 0x8700, 0xfc11, 0x3000 },
- { 0x8700, 0xfc0f, 0x2000 },
- { 0x0700, 0xfc0e, 0x0000 },
- { 0x0700, 0xfc10, 0x0000 },
- { 0x8700, 0xfc13, 0x2000 },
- { 0x0700, 0xfc12, 0x0000 },
- { 0x0700, 0xfc14, 0x0000 },
- { 0x8700, 0xfc19, 0x3000 },
- { 0x8700, 0xfc17, 0x2000 },
- { 0x0700, 0xfc16, 0x0000 },
- { 0x0700, 0xfc18, 0x0000 },
- { 0x8700, 0xfc1b, 0x2000 },
- { 0x0700, 0xfc1a, 0x0000 },
- { 0x0700, 0xfc1c, 0x0000 },
- { 0x8700, 0xfc25, 0x4000 },
- { 0x8700, 0xfc21, 0x3000 },
- { 0x8700, 0xfc1f, 0x2000 },
- { 0x0700, 0xfc1e, 0x0000 },
- { 0x0700, 0xfc20, 0x0000 },
- { 0x8700, 0xfc23, 0x2000 },
- { 0x0700, 0xfc22, 0x0000 },
- { 0x0700, 0xfc24, 0x0000 },
- { 0x8700, 0xfc29, 0x3000 },
- { 0x8700, 0xfc27, 0x2000 },
- { 0x0700, 0xfc26, 0x0000 },
- { 0x0700, 0xfc28, 0x0000 },
- { 0x8700, 0xfc2b, 0x2000 },
- { 0x0700, 0xfc2a, 0x0000 },
- { 0x0700, 0xfc2c, 0x0000 },
- { 0x8700, 0xfc3d, 0x5000 },
- { 0x8700, 0xfc35, 0x4000 },
- { 0x8700, 0xfc31, 0x3000 },
- { 0x8700, 0xfc2f, 0x2000 },
- { 0x0700, 0xfc2e, 0x0000 },
- { 0x0700, 0xfc30, 0x0000 },
- { 0x8700, 0xfc33, 0x2000 },
- { 0x0700, 0xfc32, 0x0000 },
- { 0x0700, 0xfc34, 0x0000 },
- { 0x8700, 0xfc39, 0x3000 },
- { 0x8700, 0xfc37, 0x2000 },
- { 0x0700, 0xfc36, 0x0000 },
- { 0x0700, 0xfc38, 0x0000 },
- { 0x8700, 0xfc3b, 0x2000 },
- { 0x0700, 0xfc3a, 0x0000 },
- { 0x0700, 0xfc3c, 0x0000 },
- { 0x8700, 0xfc45, 0x4000 },
- { 0x8700, 0xfc41, 0x3000 },
- { 0x8700, 0xfc3f, 0x2000 },
- { 0x0700, 0xfc3e, 0x0000 },
- { 0x0700, 0xfc40, 0x0000 },
- { 0x8700, 0xfc43, 0x2000 },
- { 0x0700, 0xfc42, 0x0000 },
- { 0x0700, 0xfc44, 0x0000 },
- { 0x8700, 0xfc49, 0x3000 },
- { 0x8700, 0xfc47, 0x2000 },
- { 0x0700, 0xfc46, 0x0000 },
- { 0x0700, 0xfc48, 0x0000 },
- { 0x8700, 0xfc4b, 0x2000 },
- { 0x0700, 0xfc4a, 0x0000 },
- { 0x0700, 0xfc4c, 0x0000 },
- { 0x8700, 0xfeac, 0xa000 },
- { 0x8700, 0xfd5d, 0x9000 },
- { 0x8700, 0xfccd, 0x8000 },
- { 0x8700, 0xfc8d, 0x7000 },
- { 0x8700, 0xfc6d, 0x6000 },
- { 0x8700, 0xfc5d, 0x5000 },
- { 0x8700, 0xfc55, 0x4000 },
- { 0x8700, 0xfc51, 0x3000 },
- { 0x8700, 0xfc4f, 0x2000 },
- { 0x0700, 0xfc4e, 0x0000 },
- { 0x0700, 0xfc50, 0x0000 },
- { 0x8700, 0xfc53, 0x2000 },
- { 0x0700, 0xfc52, 0x0000 },
- { 0x0700, 0xfc54, 0x0000 },
- { 0x8700, 0xfc59, 0x3000 },
- { 0x8700, 0xfc57, 0x2000 },
- { 0x0700, 0xfc56, 0x0000 },
- { 0x0700, 0xfc58, 0x0000 },
- { 0x8700, 0xfc5b, 0x2000 },
- { 0x0700, 0xfc5a, 0x0000 },
- { 0x0700, 0xfc5c, 0x0000 },
- { 0x8700, 0xfc65, 0x4000 },
- { 0x8700, 0xfc61, 0x3000 },
- { 0x8700, 0xfc5f, 0x2000 },
- { 0x0700, 0xfc5e, 0x0000 },
- { 0x0700, 0xfc60, 0x0000 },
- { 0x8700, 0xfc63, 0x2000 },
- { 0x0700, 0xfc62, 0x0000 },
- { 0x0700, 0xfc64, 0x0000 },
- { 0x8700, 0xfc69, 0x3000 },
- { 0x8700, 0xfc67, 0x2000 },
- { 0x0700, 0xfc66, 0x0000 },
- { 0x0700, 0xfc68, 0x0000 },
- { 0x8700, 0xfc6b, 0x2000 },
- { 0x0700, 0xfc6a, 0x0000 },
- { 0x0700, 0xfc6c, 0x0000 },
- { 0x8700, 0xfc7d, 0x5000 },
- { 0x8700, 0xfc75, 0x4000 },
- { 0x8700, 0xfc71, 0x3000 },
- { 0x8700, 0xfc6f, 0x2000 },
- { 0x0700, 0xfc6e, 0x0000 },
- { 0x0700, 0xfc70, 0x0000 },
- { 0x8700, 0xfc73, 0x2000 },
- { 0x0700, 0xfc72, 0x0000 },
- { 0x0700, 0xfc74, 0x0000 },
- { 0x8700, 0xfc79, 0x3000 },
- { 0x8700, 0xfc77, 0x2000 },
- { 0x0700, 0xfc76, 0x0000 },
- { 0x0700, 0xfc78, 0x0000 },
- { 0x8700, 0xfc7b, 0x2000 },
- { 0x0700, 0xfc7a, 0x0000 },
- { 0x0700, 0xfc7c, 0x0000 },
- { 0x8700, 0xfc85, 0x4000 },
- { 0x8700, 0xfc81, 0x3000 },
- { 0x8700, 0xfc7f, 0x2000 },
- { 0x0700, 0xfc7e, 0x0000 },
- { 0x0700, 0xfc80, 0x0000 },
- { 0x8700, 0xfc83, 0x2000 },
- { 0x0700, 0xfc82, 0x0000 },
- { 0x0700, 0xfc84, 0x0000 },
- { 0x8700, 0xfc89, 0x3000 },
- { 0x8700, 0xfc87, 0x2000 },
- { 0x0700, 0xfc86, 0x0000 },
- { 0x0700, 0xfc88, 0x0000 },
- { 0x8700, 0xfc8b, 0x2000 },
- { 0x0700, 0xfc8a, 0x0000 },
- { 0x0700, 0xfc8c, 0x0000 },
- { 0x8700, 0xfcad, 0x6000 },
- { 0x8700, 0xfc9d, 0x5000 },
- { 0x8700, 0xfc95, 0x4000 },
- { 0x8700, 0xfc91, 0x3000 },
- { 0x8700, 0xfc8f, 0x2000 },
- { 0x0700, 0xfc8e, 0x0000 },
- { 0x0700, 0xfc90, 0x0000 },
- { 0x8700, 0xfc93, 0x2000 },
- { 0x0700, 0xfc92, 0x0000 },
- { 0x0700, 0xfc94, 0x0000 },
- { 0x8700, 0xfc99, 0x3000 },
- { 0x8700, 0xfc97, 0x2000 },
- { 0x0700, 0xfc96, 0x0000 },
- { 0x0700, 0xfc98, 0x0000 },
- { 0x8700, 0xfc9b, 0x2000 },
- { 0x0700, 0xfc9a, 0x0000 },
- { 0x0700, 0xfc9c, 0x0000 },
- { 0x8700, 0xfca5, 0x4000 },
- { 0x8700, 0xfca1, 0x3000 },
- { 0x8700, 0xfc9f, 0x2000 },
- { 0x0700, 0xfc9e, 0x0000 },
- { 0x0700, 0xfca0, 0x0000 },
- { 0x8700, 0xfca3, 0x2000 },
- { 0x0700, 0xfca2, 0x0000 },
- { 0x0700, 0xfca4, 0x0000 },
- { 0x8700, 0xfca9, 0x3000 },
- { 0x8700, 0xfca7, 0x2000 },
- { 0x0700, 0xfca6, 0x0000 },
- { 0x0700, 0xfca8, 0x0000 },
- { 0x8700, 0xfcab, 0x2000 },
- { 0x0700, 0xfcaa, 0x0000 },
- { 0x0700, 0xfcac, 0x0000 },
- { 0x8700, 0xfcbd, 0x5000 },
- { 0x8700, 0xfcb5, 0x4000 },
- { 0x8700, 0xfcb1, 0x3000 },
- { 0x8700, 0xfcaf, 0x2000 },
- { 0x0700, 0xfcae, 0x0000 },
- { 0x0700, 0xfcb0, 0x0000 },
- { 0x8700, 0xfcb3, 0x2000 },
- { 0x0700, 0xfcb2, 0x0000 },
- { 0x0700, 0xfcb4, 0x0000 },
- { 0x8700, 0xfcb9, 0x3000 },
- { 0x8700, 0xfcb7, 0x2000 },
- { 0x0700, 0xfcb6, 0x0000 },
- { 0x0700, 0xfcb8, 0x0000 },
- { 0x8700, 0xfcbb, 0x2000 },
- { 0x0700, 0xfcba, 0x0000 },
- { 0x0700, 0xfcbc, 0x0000 },
- { 0x8700, 0xfcc5, 0x4000 },
- { 0x8700, 0xfcc1, 0x3000 },
- { 0x8700, 0xfcbf, 0x2000 },
- { 0x0700, 0xfcbe, 0x0000 },
- { 0x0700, 0xfcc0, 0x0000 },
- { 0x8700, 0xfcc3, 0x2000 },
- { 0x0700, 0xfcc2, 0x0000 },
- { 0x0700, 0xfcc4, 0x0000 },
- { 0x8700, 0xfcc9, 0x3000 },
- { 0x8700, 0xfcc7, 0x2000 },
- { 0x0700, 0xfcc6, 0x0000 },
- { 0x0700, 0xfcc8, 0x0000 },
- { 0x8700, 0xfccb, 0x2000 },
- { 0x0700, 0xfcca, 0x0000 },
- { 0x0700, 0xfccc, 0x0000 },
- { 0x8700, 0xfd0d, 0x7000 },
- { 0x8700, 0xfced, 0x6000 },
- { 0x8700, 0xfcdd, 0x5000 },
- { 0x8700, 0xfcd5, 0x4000 },
- { 0x8700, 0xfcd1, 0x3000 },
- { 0x8700, 0xfccf, 0x2000 },
- { 0x0700, 0xfcce, 0x0000 },
- { 0x0700, 0xfcd0, 0x0000 },
- { 0x8700, 0xfcd3, 0x2000 },
- { 0x0700, 0xfcd2, 0x0000 },
- { 0x0700, 0xfcd4, 0x0000 },
- { 0x8700, 0xfcd9, 0x3000 },
- { 0x8700, 0xfcd7, 0x2000 },
- { 0x0700, 0xfcd6, 0x0000 },
- { 0x0700, 0xfcd8, 0x0000 },
- { 0x8700, 0xfcdb, 0x2000 },
- { 0x0700, 0xfcda, 0x0000 },
- { 0x0700, 0xfcdc, 0x0000 },
- { 0x8700, 0xfce5, 0x4000 },
- { 0x8700, 0xfce1, 0x3000 },
- { 0x8700, 0xfcdf, 0x2000 },
- { 0x0700, 0xfcde, 0x0000 },
- { 0x0700, 0xfce0, 0x0000 },
- { 0x8700, 0xfce3, 0x2000 },
- { 0x0700, 0xfce2, 0x0000 },
- { 0x0700, 0xfce4, 0x0000 },
- { 0x8700, 0xfce9, 0x3000 },
- { 0x8700, 0xfce7, 0x2000 },
- { 0x0700, 0xfce6, 0x0000 },
- { 0x0700, 0xfce8, 0x0000 },
- { 0x8700, 0xfceb, 0x2000 },
- { 0x0700, 0xfcea, 0x0000 },
- { 0x0700, 0xfcec, 0x0000 },
- { 0x8700, 0xfcfd, 0x5000 },
- { 0x8700, 0xfcf5, 0x4000 },
- { 0x8700, 0xfcf1, 0x3000 },
- { 0x8700, 0xfcef, 0x2000 },
- { 0x0700, 0xfcee, 0x0000 },
- { 0x0700, 0xfcf0, 0x0000 },
- { 0x8700, 0xfcf3, 0x2000 },
- { 0x0700, 0xfcf2, 0x0000 },
- { 0x0700, 0xfcf4, 0x0000 },
- { 0x8700, 0xfcf9, 0x3000 },
- { 0x8700, 0xfcf7, 0x2000 },
- { 0x0700, 0xfcf6, 0x0000 },
- { 0x0700, 0xfcf8, 0x0000 },
- { 0x8700, 0xfcfb, 0x2000 },
- { 0x0700, 0xfcfa, 0x0000 },
- { 0x0700, 0xfcfc, 0x0000 },
- { 0x8700, 0xfd05, 0x4000 },
- { 0x8700, 0xfd01, 0x3000 },
- { 0x8700, 0xfcff, 0x2000 },
- { 0x0700, 0xfcfe, 0x0000 },
- { 0x0700, 0xfd00, 0x0000 },
- { 0x8700, 0xfd03, 0x2000 },
- { 0x0700, 0xfd02, 0x0000 },
- { 0x0700, 0xfd04, 0x0000 },
- { 0x8700, 0xfd09, 0x3000 },
- { 0x8700, 0xfd07, 0x2000 },
- { 0x0700, 0xfd06, 0x0000 },
- { 0x0700, 0xfd08, 0x0000 },
- { 0x8700, 0xfd0b, 0x2000 },
- { 0x0700, 0xfd0a, 0x0000 },
- { 0x0700, 0xfd0c, 0x0000 },
- { 0x8700, 0xfd2d, 0x6000 },
- { 0x8700, 0xfd1d, 0x5000 },
- { 0x8700, 0xfd15, 0x4000 },
- { 0x8700, 0xfd11, 0x3000 },
- { 0x8700, 0xfd0f, 0x2000 },
- { 0x0700, 0xfd0e, 0x0000 },
- { 0x0700, 0xfd10, 0x0000 },
- { 0x8700, 0xfd13, 0x2000 },
- { 0x0700, 0xfd12, 0x0000 },
- { 0x0700, 0xfd14, 0x0000 },
- { 0x8700, 0xfd19, 0x3000 },
- { 0x8700, 0xfd17, 0x2000 },
- { 0x0700, 0xfd16, 0x0000 },
- { 0x0700, 0xfd18, 0x0000 },
- { 0x8700, 0xfd1b, 0x2000 },
- { 0x0700, 0xfd1a, 0x0000 },
- { 0x0700, 0xfd1c, 0x0000 },
- { 0x8700, 0xfd25, 0x4000 },
- { 0x8700, 0xfd21, 0x3000 },
- { 0x8700, 0xfd1f, 0x2000 },
- { 0x0700, 0xfd1e, 0x0000 },
- { 0x0700, 0xfd20, 0x0000 },
- { 0x8700, 0xfd23, 0x2000 },
- { 0x0700, 0xfd22, 0x0000 },
- { 0x0700, 0xfd24, 0x0000 },
- { 0x8700, 0xfd29, 0x3000 },
- { 0x8700, 0xfd27, 0x2000 },
- { 0x0700, 0xfd26, 0x0000 },
- { 0x0700, 0xfd28, 0x0000 },
- { 0x8700, 0xfd2b, 0x2000 },
- { 0x0700, 0xfd2a, 0x0000 },
- { 0x0700, 0xfd2c, 0x0000 },
- { 0x8700, 0xfd3d, 0x5000 },
- { 0x8700, 0xfd35, 0x4000 },
- { 0x8700, 0xfd31, 0x3000 },
- { 0x8700, 0xfd2f, 0x2000 },
- { 0x0700, 0xfd2e, 0x0000 },
- { 0x0700, 0xfd30, 0x0000 },
- { 0x8700, 0xfd33, 0x2000 },
- { 0x0700, 0xfd32, 0x0000 },
- { 0x0700, 0xfd34, 0x0000 },
- { 0x8700, 0xfd39, 0x3000 },
- { 0x8700, 0xfd37, 0x2000 },
- { 0x0700, 0xfd36, 0x0000 },
- { 0x0700, 0xfd38, 0x0000 },
- { 0x8700, 0xfd3b, 0x2000 },
- { 0x0700, 0xfd3a, 0x0000 },
- { 0x0700, 0xfd3c, 0x0000 },
- { 0x8700, 0xfd55, 0x4000 },
- { 0x8700, 0xfd51, 0x3000 },
- { 0x9200, 0xfd3f, 0x2000 },
- { 0x1600, 0xfd3e, 0x0000 },
- { 0x0700, 0xfd50, 0x0000 },
- { 0x8700, 0xfd53, 0x2000 },
- { 0x0700, 0xfd52, 0x0000 },
- { 0x0700, 0xfd54, 0x0000 },
- { 0x8700, 0xfd59, 0x3000 },
- { 0x8700, 0xfd57, 0x2000 },
- { 0x0700, 0xfd56, 0x0000 },
- { 0x0700, 0xfd58, 0x0000 },
- { 0x8700, 0xfd5b, 0x2000 },
- { 0x0700, 0xfd5a, 0x0000 },
- { 0x0700, 0xfd5c, 0x0000 },
- { 0x8c00, 0xfe09, 0x8000 },
- { 0x8700, 0xfd9f, 0x7000 },
- { 0x8700, 0xfd7d, 0x6000 },
- { 0x8700, 0xfd6d, 0x5000 },
- { 0x8700, 0xfd65, 0x4000 },
- { 0x8700, 0xfd61, 0x3000 },
- { 0x8700, 0xfd5f, 0x2000 },
- { 0x0700, 0xfd5e, 0x0000 },
- { 0x0700, 0xfd60, 0x0000 },
- { 0x8700, 0xfd63, 0x2000 },
- { 0x0700, 0xfd62, 0x0000 },
- { 0x0700, 0xfd64, 0x0000 },
- { 0x8700, 0xfd69, 0x3000 },
- { 0x8700, 0xfd67, 0x2000 },
- { 0x0700, 0xfd66, 0x0000 },
- { 0x0700, 0xfd68, 0x0000 },
- { 0x8700, 0xfd6b, 0x2000 },
- { 0x0700, 0xfd6a, 0x0000 },
- { 0x0700, 0xfd6c, 0x0000 },
- { 0x8700, 0xfd75, 0x4000 },
- { 0x8700, 0xfd71, 0x3000 },
- { 0x8700, 0xfd6f, 0x2000 },
- { 0x0700, 0xfd6e, 0x0000 },
- { 0x0700, 0xfd70, 0x0000 },
- { 0x8700, 0xfd73, 0x2000 },
- { 0x0700, 0xfd72, 0x0000 },
- { 0x0700, 0xfd74, 0x0000 },
- { 0x8700, 0xfd79, 0x3000 },
- { 0x8700, 0xfd77, 0x2000 },
- { 0x0700, 0xfd76, 0x0000 },
- { 0x0700, 0xfd78, 0x0000 },
- { 0x8700, 0xfd7b, 0x2000 },
- { 0x0700, 0xfd7a, 0x0000 },
- { 0x0700, 0xfd7c, 0x0000 },
- { 0x8700, 0xfd8d, 0x5000 },
- { 0x8700, 0xfd85, 0x4000 },
- { 0x8700, 0xfd81, 0x3000 },
- { 0x8700, 0xfd7f, 0x2000 },
- { 0x0700, 0xfd7e, 0x0000 },
- { 0x0700, 0xfd80, 0x0000 },
- { 0x8700, 0xfd83, 0x2000 },
- { 0x0700, 0xfd82, 0x0000 },
- { 0x0700, 0xfd84, 0x0000 },
- { 0x8700, 0xfd89, 0x3000 },
- { 0x8700, 0xfd87, 0x2000 },
- { 0x0700, 0xfd86, 0x0000 },
- { 0x0700, 0xfd88, 0x0000 },
- { 0x8700, 0xfd8b, 0x2000 },
- { 0x0700, 0xfd8a, 0x0000 },
- { 0x0700, 0xfd8c, 0x0000 },
- { 0x8700, 0xfd97, 0x4000 },
- { 0x8700, 0xfd93, 0x3000 },
- { 0x8700, 0xfd8f, 0x2000 },
- { 0x0700, 0xfd8e, 0x0000 },
- { 0x0700, 0xfd92, 0x0000 },
- { 0x8700, 0xfd95, 0x2000 },
- { 0x0700, 0xfd94, 0x0000 },
- { 0x0700, 0xfd96, 0x0000 },
- { 0x8700, 0xfd9b, 0x3000 },
- { 0x8700, 0xfd99, 0x2000 },
- { 0x0700, 0xfd98, 0x0000 },
- { 0x0700, 0xfd9a, 0x0000 },
- { 0x8700, 0xfd9d, 0x2000 },
- { 0x0700, 0xfd9c, 0x0000 },
- { 0x0700, 0xfd9e, 0x0000 },
- { 0x8700, 0xfdbf, 0x6000 },
- { 0x8700, 0xfdaf, 0x5000 },
- { 0x8700, 0xfda7, 0x4000 },
- { 0x8700, 0xfda3, 0x3000 },
- { 0x8700, 0xfda1, 0x2000 },
- { 0x0700, 0xfda0, 0x0000 },
- { 0x0700, 0xfda2, 0x0000 },
- { 0x8700, 0xfda5, 0x2000 },
- { 0x0700, 0xfda4, 0x0000 },
- { 0x0700, 0xfda6, 0x0000 },
- { 0x8700, 0xfdab, 0x3000 },
- { 0x8700, 0xfda9, 0x2000 },
- { 0x0700, 0xfda8, 0x0000 },
- { 0x0700, 0xfdaa, 0x0000 },
- { 0x8700, 0xfdad, 0x2000 },
- { 0x0700, 0xfdac, 0x0000 },
- { 0x0700, 0xfdae, 0x0000 },
- { 0x8700, 0xfdb7, 0x4000 },
- { 0x8700, 0xfdb3, 0x3000 },
- { 0x8700, 0xfdb1, 0x2000 },
- { 0x0700, 0xfdb0, 0x0000 },
- { 0x0700, 0xfdb2, 0x0000 },
- { 0x8700, 0xfdb5, 0x2000 },
- { 0x0700, 0xfdb4, 0x0000 },
- { 0x0700, 0xfdb6, 0x0000 },
- { 0x8700, 0xfdbb, 0x3000 },
- { 0x8700, 0xfdb9, 0x2000 },
- { 0x0700, 0xfdb8, 0x0000 },
- { 0x0700, 0xfdba, 0x0000 },
- { 0x8700, 0xfdbd, 0x2000 },
- { 0x0700, 0xfdbc, 0x0000 },
- { 0x0700, 0xfdbe, 0x0000 },
- { 0x8700, 0xfdf7, 0x5000 },
- { 0x8700, 0xfdc7, 0x4000 },
- { 0x8700, 0xfdc3, 0x3000 },
- { 0x8700, 0xfdc1, 0x2000 },
- { 0x0700, 0xfdc0, 0x0000 },
- { 0x0700, 0xfdc2, 0x0000 },
- { 0x8700, 0xfdc5, 0x2000 },
- { 0x0700, 0xfdc4, 0x0000 },
- { 0x0700, 0xfdc6, 0x0000 },
- { 0x8700, 0xfdf3, 0x3000 },
- { 0x8700, 0xfdf1, 0x2000 },
- { 0x0700, 0xfdf0, 0x0000 },
- { 0x0700, 0xfdf2, 0x0000 },
- { 0x8700, 0xfdf5, 0x2000 },
- { 0x0700, 0xfdf4, 0x0000 },
- { 0x0700, 0xfdf6, 0x0000 },
- { 0x8c00, 0xfe01, 0x4000 },
- { 0x8700, 0xfdfb, 0x3000 },
- { 0x8700, 0xfdf9, 0x2000 },
- { 0x0700, 0xfdf8, 0x0000 },
- { 0x0700, 0xfdfa, 0x0000 },
- { 0x9a00, 0xfdfd, 0x2000 },
- { 0x1700, 0xfdfc, 0x0000 },
- { 0x0c00, 0xfe00, 0x0000 },
- { 0x8c00, 0xfe05, 0x3000 },
- { 0x8c00, 0xfe03, 0x2000 },
- { 0x0c00, 0xfe02, 0x0000 },
- { 0x0c00, 0xfe04, 0x0000 },
- { 0x8c00, 0xfe07, 0x2000 },
- { 0x0c00, 0xfe06, 0x0000 },
- { 0x0c00, 0xfe08, 0x0000 },
- { 0x9900, 0xfe66, 0x7000 },
- { 0x9500, 0xfe45, 0x6000 },
- { 0x9600, 0xfe35, 0x5000 },
- { 0x8c00, 0xfe21, 0x4000 },
- { 0x8c00, 0xfe0d, 0x3000 },
- { 0x8c00, 0xfe0b, 0x2000 },
- { 0x0c00, 0xfe0a, 0x0000 },
- { 0x0c00, 0xfe0c, 0x0000 },
- { 0x8c00, 0xfe0f, 0x2000 },
- { 0x0c00, 0xfe0e, 0x0000 },
- { 0x0c00, 0xfe20, 0x0000 },
- { 0x9100, 0xfe31, 0x3000 },
- { 0x8c00, 0xfe23, 0x2000 },
- { 0x0c00, 0xfe22, 0x0000 },
- { 0x1500, 0xfe30, 0x0000 },
- { 0x9000, 0xfe33, 0x2000 },
- { 0x1100, 0xfe32, 0x0000 },
- { 0x1000, 0xfe34, 0x0000 },
- { 0x9600, 0xfe3d, 0x4000 },
- { 0x9600, 0xfe39, 0x3000 },
- { 0x9600, 0xfe37, 0x2000 },
- { 0x1200, 0xfe36, 0x0000 },
- { 0x1200, 0xfe38, 0x0000 },
- { 0x9600, 0xfe3b, 0x2000 },
- { 0x1200, 0xfe3a, 0x0000 },
- { 0x1200, 0xfe3c, 0x0000 },
- { 0x9600, 0xfe41, 0x3000 },
- { 0x9600, 0xfe3f, 0x2000 },
- { 0x1200, 0xfe3e, 0x0000 },
- { 0x1200, 0xfe40, 0x0000 },
- { 0x9600, 0xfe43, 0x2000 },
- { 0x1200, 0xfe42, 0x0000 },
- { 0x1200, 0xfe44, 0x0000 },
- { 0x9500, 0xfe56, 0x5000 },
- { 0x9000, 0xfe4d, 0x4000 },
- { 0x9500, 0xfe49, 0x3000 },
- { 0x9600, 0xfe47, 0x2000 },
- { 0x1500, 0xfe46, 0x0000 },
- { 0x1200, 0xfe48, 0x0000 },
- { 0x9500, 0xfe4b, 0x2000 },
- { 0x1500, 0xfe4a, 0x0000 },
- { 0x1500, 0xfe4c, 0x0000 },
- { 0x9500, 0xfe51, 0x3000 },
- { 0x9000, 0xfe4f, 0x2000 },
- { 0x1000, 0xfe4e, 0x0000 },
- { 0x1500, 0xfe50, 0x0000 },
- { 0x9500, 0xfe54, 0x2000 },
- { 0x1500, 0xfe52, 0x0000 },
- { 0x1500, 0xfe55, 0x0000 },
- { 0x9200, 0xfe5e, 0x4000 },
- { 0x9200, 0xfe5a, 0x3000 },
- { 0x9100, 0xfe58, 0x2000 },
- { 0x1500, 0xfe57, 0x0000 },
- { 0x1600, 0xfe59, 0x0000 },
- { 0x9200, 0xfe5c, 0x2000 },
- { 0x1600, 0xfe5b, 0x0000 },
- { 0x1600, 0xfe5d, 0x0000 },
- { 0x9900, 0xfe62, 0x3000 },
- { 0x9500, 0xfe60, 0x2000 },
- { 0x1500, 0xfe5f, 0x0000 },
- { 0x1500, 0xfe61, 0x0000 },
- { 0x9900, 0xfe64, 0x2000 },
- { 0x1100, 0xfe63, 0x0000 },
- { 0x1900, 0xfe65, 0x0000 },
- { 0x8700, 0xfe8c, 0x6000 },
- { 0x8700, 0xfe7c, 0x5000 },
- { 0x8700, 0xfe73, 0x4000 },
- { 0x9500, 0xfe6b, 0x3000 },
- { 0x9700, 0xfe69, 0x2000 },
- { 0x1500, 0xfe68, 0x0000 },
- { 0x1500, 0xfe6a, 0x0000 },
- { 0x8700, 0xfe71, 0x2000 },
- { 0x0700, 0xfe70, 0x0000 },
- { 0x0700, 0xfe72, 0x0000 },
- { 0x8700, 0xfe78, 0x3000 },
- { 0x8700, 0xfe76, 0x2000 },
- { 0x0700, 0xfe74, 0x0000 },
- { 0x0700, 0xfe77, 0x0000 },
- { 0x8700, 0xfe7a, 0x2000 },
- { 0x0700, 0xfe79, 0x0000 },
- { 0x0700, 0xfe7b, 0x0000 },
- { 0x8700, 0xfe84, 0x4000 },
- { 0x8700, 0xfe80, 0x3000 },
- { 0x8700, 0xfe7e, 0x2000 },
- { 0x0700, 0xfe7d, 0x0000 },
- { 0x0700, 0xfe7f, 0x0000 },
- { 0x8700, 0xfe82, 0x2000 },
- { 0x0700, 0xfe81, 0x0000 },
- { 0x0700, 0xfe83, 0x0000 },
- { 0x8700, 0xfe88, 0x3000 },
- { 0x8700, 0xfe86, 0x2000 },
- { 0x0700, 0xfe85, 0x0000 },
- { 0x0700, 0xfe87, 0x0000 },
- { 0x8700, 0xfe8a, 0x2000 },
- { 0x0700, 0xfe89, 0x0000 },
- { 0x0700, 0xfe8b, 0x0000 },
- { 0x8700, 0xfe9c, 0x5000 },
- { 0x8700, 0xfe94, 0x4000 },
- { 0x8700, 0xfe90, 0x3000 },
- { 0x8700, 0xfe8e, 0x2000 },
- { 0x0700, 0xfe8d, 0x0000 },
- { 0x0700, 0xfe8f, 0x0000 },
- { 0x8700, 0xfe92, 0x2000 },
- { 0x0700, 0xfe91, 0x0000 },
- { 0x0700, 0xfe93, 0x0000 },
- { 0x8700, 0xfe98, 0x3000 },
- { 0x8700, 0xfe96, 0x2000 },
- { 0x0700, 0xfe95, 0x0000 },
- { 0x0700, 0xfe97, 0x0000 },
- { 0x8700, 0xfe9a, 0x2000 },
- { 0x0700, 0xfe99, 0x0000 },
- { 0x0700, 0xfe9b, 0x0000 },
- { 0x8700, 0xfea4, 0x4000 },
- { 0x8700, 0xfea0, 0x3000 },
- { 0x8700, 0xfe9e, 0x2000 },
- { 0x0700, 0xfe9d, 0x0000 },
- { 0x0700, 0xfe9f, 0x0000 },
- { 0x8700, 0xfea2, 0x2000 },
- { 0x0700, 0xfea1, 0x0000 },
- { 0x0700, 0xfea3, 0x0000 },
- { 0x8700, 0xfea8, 0x3000 },
- { 0x8700, 0xfea6, 0x2000 },
- { 0x0700, 0xfea5, 0x0000 },
- { 0x0700, 0xfea7, 0x0000 },
- { 0x8700, 0xfeaa, 0x2000 },
- { 0x0700, 0xfea9, 0x0000 },
- { 0x0700, 0xfeab, 0x0000 },
- { 0x8700, 0xffaf, 0x9000 },
- { 0x8900, 0xff2f, 0x8020 },
- { 0x8700, 0xfeec, 0x7000 },
- { 0x8700, 0xfecc, 0x6000 },
- { 0x8700, 0xfebc, 0x5000 },
- { 0x8700, 0xfeb4, 0x4000 },
- { 0x8700, 0xfeb0, 0x3000 },
- { 0x8700, 0xfeae, 0x2000 },
- { 0x0700, 0xfead, 0x0000 },
- { 0x0700, 0xfeaf, 0x0000 },
- { 0x8700, 0xfeb2, 0x2000 },
- { 0x0700, 0xfeb1, 0x0000 },
- { 0x0700, 0xfeb3, 0x0000 },
- { 0x8700, 0xfeb8, 0x3000 },
- { 0x8700, 0xfeb6, 0x2000 },
- { 0x0700, 0xfeb5, 0x0000 },
- { 0x0700, 0xfeb7, 0x0000 },
- { 0x8700, 0xfeba, 0x2000 },
- { 0x0700, 0xfeb9, 0x0000 },
- { 0x0700, 0xfebb, 0x0000 },
- { 0x8700, 0xfec4, 0x4000 },
- { 0x8700, 0xfec0, 0x3000 },
- { 0x8700, 0xfebe, 0x2000 },
- { 0x0700, 0xfebd, 0x0000 },
- { 0x0700, 0xfebf, 0x0000 },
- { 0x8700, 0xfec2, 0x2000 },
- { 0x0700, 0xfec1, 0x0000 },
- { 0x0700, 0xfec3, 0x0000 },
- { 0x8700, 0xfec8, 0x3000 },
- { 0x8700, 0xfec6, 0x2000 },
- { 0x0700, 0xfec5, 0x0000 },
- { 0x0700, 0xfec7, 0x0000 },
- { 0x8700, 0xfeca, 0x2000 },
- { 0x0700, 0xfec9, 0x0000 },
- { 0x0700, 0xfecb, 0x0000 },
- { 0x8700, 0xfedc, 0x5000 },
- { 0x8700, 0xfed4, 0x4000 },
- { 0x8700, 0xfed0, 0x3000 },
- { 0x8700, 0xfece, 0x2000 },
- { 0x0700, 0xfecd, 0x0000 },
- { 0x0700, 0xfecf, 0x0000 },
- { 0x8700, 0xfed2, 0x2000 },
- { 0x0700, 0xfed1, 0x0000 },
- { 0x0700, 0xfed3, 0x0000 },
- { 0x8700, 0xfed8, 0x3000 },
- { 0x8700, 0xfed6, 0x2000 },
- { 0x0700, 0xfed5, 0x0000 },
- { 0x0700, 0xfed7, 0x0000 },
- { 0x8700, 0xfeda, 0x2000 },
- { 0x0700, 0xfed9, 0x0000 },
- { 0x0700, 0xfedb, 0x0000 },
- { 0x8700, 0xfee4, 0x4000 },
- { 0x8700, 0xfee0, 0x3000 },
- { 0x8700, 0xfede, 0x2000 },
- { 0x0700, 0xfedd, 0x0000 },
- { 0x0700, 0xfedf, 0x0000 },
- { 0x8700, 0xfee2, 0x2000 },
- { 0x0700, 0xfee1, 0x0000 },
- { 0x0700, 0xfee3, 0x0000 },
- { 0x8700, 0xfee8, 0x3000 },
- { 0x8700, 0xfee6, 0x2000 },
- { 0x0700, 0xfee5, 0x0000 },
- { 0x0700, 0xfee7, 0x0000 },
- { 0x8700, 0xfeea, 0x2000 },
- { 0x0700, 0xfee9, 0x0000 },
- { 0x0700, 0xfeeb, 0x0000 },
- { 0x9500, 0xff0f, 0x6000 },
- { 0x8700, 0xfefc, 0x5000 },
- { 0x8700, 0xfef4, 0x4000 },
- { 0x8700, 0xfef0, 0x3000 },
- { 0x8700, 0xfeee, 0x2000 },
- { 0x0700, 0xfeed, 0x0000 },
- { 0x0700, 0xfeef, 0x0000 },
- { 0x8700, 0xfef2, 0x2000 },
- { 0x0700, 0xfef1, 0x0000 },
- { 0x0700, 0xfef3, 0x0000 },
- { 0x8700, 0xfef8, 0x3000 },
- { 0x8700, 0xfef6, 0x2000 },
- { 0x0700, 0xfef5, 0x0000 },
- { 0x0700, 0xfef7, 0x0000 },
- { 0x8700, 0xfefa, 0x2000 },
- { 0x0700, 0xfef9, 0x0000 },
- { 0x0700, 0xfefb, 0x0000 },
- { 0x9500, 0xff07, 0x4000 },
- { 0x9500, 0xff03, 0x3000 },
- { 0x9500, 0xff01, 0x2000 },
- { 0x0100, 0xfeff, 0x0000 },
- { 0x1500, 0xff02, 0x0000 },
- { 0x9500, 0xff05, 0x2000 },
- { 0x1700, 0xff04, 0x0000 },
- { 0x1500, 0xff06, 0x0000 },
- { 0x9900, 0xff0b, 0x3000 },
- { 0x9200, 0xff09, 0x2000 },
- { 0x1600, 0xff08, 0x0000 },
- { 0x1500, 0xff0a, 0x0000 },
- { 0x9100, 0xff0d, 0x2000 },
- { 0x1500, 0xff0c, 0x0000 },
- { 0x1500, 0xff0e, 0x0000 },
- { 0x9500, 0xff1f, 0x5000 },
- { 0x8d00, 0xff17, 0x4000 },
- { 0x8d00, 0xff13, 0x3000 },
- { 0x8d00, 0xff11, 0x2000 },
- { 0x0d00, 0xff10, 0x0000 },
- { 0x0d00, 0xff12, 0x0000 },
- { 0x8d00, 0xff15, 0x2000 },
- { 0x0d00, 0xff14, 0x0000 },
- { 0x0d00, 0xff16, 0x0000 },
- { 0x9500, 0xff1b, 0x3000 },
- { 0x8d00, 0xff19, 0x2000 },
- { 0x0d00, 0xff18, 0x0000 },
- { 0x1500, 0xff1a, 0x0000 },
- { 0x9900, 0xff1d, 0x2000 },
- { 0x1900, 0xff1c, 0x0000 },
- { 0x1900, 0xff1e, 0x0000 },
- { 0x8900, 0xff27, 0x4020 },
- { 0x8900, 0xff23, 0x3020 },
- { 0x8900, 0xff21, 0x2020 },
- { 0x1500, 0xff20, 0x0000 },
- { 0x0900, 0xff22, 0x0020 },
- { 0x8900, 0xff25, 0x2020 },
- { 0x0900, 0xff24, 0x0020 },
- { 0x0900, 0xff26, 0x0020 },
- { 0x8900, 0xff2b, 0x3020 },
- { 0x8900, 0xff29, 0x2020 },
- { 0x0900, 0xff28, 0x0020 },
- { 0x0900, 0xff2a, 0x0020 },
- { 0x8900, 0xff2d, 0x2020 },
- { 0x0900, 0xff2c, 0x0020 },
- { 0x0900, 0xff2e, 0x0020 },
- { 0x8700, 0xff6f, 0x7000 },
- { 0x8500, 0xff4f, 0x6fe0 },
- { 0x9000, 0xff3f, 0x5000 },
- { 0x8900, 0xff37, 0x4020 },
- { 0x8900, 0xff33, 0x3020 },
- { 0x8900, 0xff31, 0x2020 },
- { 0x0900, 0xff30, 0x0020 },
- { 0x0900, 0xff32, 0x0020 },
- { 0x8900, 0xff35, 0x2020 },
- { 0x0900, 0xff34, 0x0020 },
- { 0x0900, 0xff36, 0x0020 },
- { 0x9600, 0xff3b, 0x3000 },
- { 0x8900, 0xff39, 0x2020 },
- { 0x0900, 0xff38, 0x0020 },
- { 0x0900, 0xff3a, 0x0020 },
- { 0x9200, 0xff3d, 0x2000 },
- { 0x1500, 0xff3c, 0x0000 },
- { 0x1800, 0xff3e, 0x0000 },
- { 0x8500, 0xff47, 0x4fe0 },
- { 0x8500, 0xff43, 0x3fe0 },
- { 0x8500, 0xff41, 0x2fe0 },
- { 0x1800, 0xff40, 0x0000 },
- { 0x0500, 0xff42, 0x0fe0 },
- { 0x8500, 0xff45, 0x2fe0 },
- { 0x0500, 0xff44, 0x0fe0 },
- { 0x0500, 0xff46, 0x0fe0 },
- { 0x8500, 0xff4b, 0x3fe0 },
- { 0x8500, 0xff49, 0x2fe0 },
- { 0x0500, 0xff48, 0x0fe0 },
- { 0x0500, 0xff4a, 0x0fe0 },
- { 0x8500, 0xff4d, 0x2fe0 },
- { 0x0500, 0xff4c, 0x0fe0 },
- { 0x0500, 0xff4e, 0x0fe0 },
- { 0x9600, 0xff5f, 0x5000 },
- { 0x8500, 0xff57, 0x4fe0 },
- { 0x8500, 0xff53, 0x3fe0 },
- { 0x8500, 0xff51, 0x2fe0 },
- { 0x0500, 0xff50, 0x0fe0 },
- { 0x0500, 0xff52, 0x0fe0 },
- { 0x8500, 0xff55, 0x2fe0 },
- { 0x0500, 0xff54, 0x0fe0 },
- { 0x0500, 0xff56, 0x0fe0 },
- { 0x9600, 0xff5b, 0x3000 },
- { 0x8500, 0xff59, 0x2fe0 },
- { 0x0500, 0xff58, 0x0fe0 },
- { 0x0500, 0xff5a, 0x0fe0 },
- { 0x9200, 0xff5d, 0x2000 },
- { 0x1900, 0xff5c, 0x0000 },
- { 0x1900, 0xff5e, 0x0000 },
- { 0x8700, 0xff67, 0x4000 },
- { 0x9200, 0xff63, 0x3000 },
- { 0x9500, 0xff61, 0x2000 },
- { 0x1200, 0xff60, 0x0000 },
- { 0x1600, 0xff62, 0x0000 },
- { 0x9000, 0xff65, 0x2000 },
- { 0x1500, 0xff64, 0x0000 },
- { 0x0700, 0xff66, 0x0000 },
- { 0x8700, 0xff6b, 0x3000 },
- { 0x8700, 0xff69, 0x2000 },
- { 0x0700, 0xff68, 0x0000 },
- { 0x0700, 0xff6a, 0x0000 },
- { 0x8700, 0xff6d, 0x2000 },
- { 0x0700, 0xff6c, 0x0000 },
- { 0x0700, 0xff6e, 0x0000 },
- { 0x8700, 0xff8f, 0x6000 },
- { 0x8700, 0xff7f, 0x5000 },
- { 0x8700, 0xff77, 0x4000 },
- { 0x8700, 0xff73, 0x3000 },
- { 0x8700, 0xff71, 0x2000 },
- { 0x0600, 0xff70, 0x0000 },
- { 0x0700, 0xff72, 0x0000 },
- { 0x8700, 0xff75, 0x2000 },
- { 0x0700, 0xff74, 0x0000 },
- { 0x0700, 0xff76, 0x0000 },
- { 0x8700, 0xff7b, 0x3000 },
- { 0x8700, 0xff79, 0x2000 },
- { 0x0700, 0xff78, 0x0000 },
- { 0x0700, 0xff7a, 0x0000 },
- { 0x8700, 0xff7d, 0x2000 },
- { 0x0700, 0xff7c, 0x0000 },
- { 0x0700, 0xff7e, 0x0000 },
- { 0x8700, 0xff87, 0x4000 },
- { 0x8700, 0xff83, 0x3000 },
- { 0x8700, 0xff81, 0x2000 },
- { 0x0700, 0xff80, 0x0000 },
- { 0x0700, 0xff82, 0x0000 },
- { 0x8700, 0xff85, 0x2000 },
- { 0x0700, 0xff84, 0x0000 },
- { 0x0700, 0xff86, 0x0000 },
- { 0x8700, 0xff8b, 0x3000 },
- { 0x8700, 0xff89, 0x2000 },
- { 0x0700, 0xff88, 0x0000 },
- { 0x0700, 0xff8a, 0x0000 },
- { 0x8700, 0xff8d, 0x2000 },
- { 0x0700, 0xff8c, 0x0000 },
- { 0x0700, 0xff8e, 0x0000 },
- { 0x8600, 0xff9f, 0x5000 },
- { 0x8700, 0xff97, 0x4000 },
- { 0x8700, 0xff93, 0x3000 },
- { 0x8700, 0xff91, 0x2000 },
- { 0x0700, 0xff90, 0x0000 },
- { 0x0700, 0xff92, 0x0000 },
- { 0x8700, 0xff95, 0x2000 },
- { 0x0700, 0xff94, 0x0000 },
- { 0x0700, 0xff96, 0x0000 },
- { 0x8700, 0xff9b, 0x3000 },
- { 0x8700, 0xff99, 0x2000 },
- { 0x0700, 0xff98, 0x0000 },
- { 0x0700, 0xff9a, 0x0000 },
- { 0x8700, 0xff9d, 0x2000 },
- { 0x0700, 0xff9c, 0x0000 },
- { 0x0600, 0xff9e, 0x0000 },
- { 0x8700, 0xffa7, 0x4000 },
- { 0x8700, 0xffa3, 0x3000 },
- { 0x8700, 0xffa1, 0x2000 },
- { 0x0700, 0xffa0, 0x0000 },
- { 0x0700, 0xffa2, 0x0000 },
- { 0x8700, 0xffa5, 0x2000 },
- { 0x0700, 0xffa4, 0x0000 },
- { 0x0700, 0xffa6, 0x0000 },
- { 0x8700, 0xffab, 0x3000 },
- { 0x8700, 0xffa9, 0x2000 },
- { 0x0700, 0xffa8, 0x0000 },
- { 0x0700, 0xffaa, 0x0000 },
- { 0x8700, 0xffad, 0x2000 },
- { 0x0700, 0xffac, 0x0000 },
- { 0x0700, 0xffae, 0x0000 },
- { 0x8701, 0x004c, 0x8000 },
- { 0x8701, 0x0008, 0x7000 },
- { 0x8700, 0xffd6, 0x6000 },
- { 0x8700, 0xffc2, 0x5000 },
- { 0x8700, 0xffb7, 0x4000 },
- { 0x8700, 0xffb3, 0x3000 },
- { 0x8700, 0xffb1, 0x2000 },
- { 0x0700, 0xffb0, 0x0000 },
- { 0x0700, 0xffb2, 0x0000 },
- { 0x8700, 0xffb5, 0x2000 },
- { 0x0700, 0xffb4, 0x0000 },
- { 0x0700, 0xffb6, 0x0000 },
- { 0x8700, 0xffbb, 0x3000 },
- { 0x8700, 0xffb9, 0x2000 },
- { 0x0700, 0xffb8, 0x0000 },
- { 0x0700, 0xffba, 0x0000 },
- { 0x8700, 0xffbd, 0x2000 },
- { 0x0700, 0xffbc, 0x0000 },
- { 0x0700, 0xffbe, 0x0000 },
- { 0x8700, 0xffcc, 0x4000 },
- { 0x8700, 0xffc6, 0x3000 },
- { 0x8700, 0xffc4, 0x2000 },
- { 0x0700, 0xffc3, 0x0000 },
- { 0x0700, 0xffc5, 0x0000 },
- { 0x8700, 0xffca, 0x2000 },
- { 0x0700, 0xffc7, 0x0000 },
- { 0x0700, 0xffcb, 0x0000 },
- { 0x8700, 0xffd2, 0x3000 },
- { 0x8700, 0xffce, 0x2000 },
- { 0x0700, 0xffcd, 0x0000 },
- { 0x0700, 0xffcf, 0x0000 },
- { 0x8700, 0xffd4, 0x2000 },
- { 0x0700, 0xffd3, 0x0000 },
- { 0x0700, 0xffd5, 0x0000 },
- { 0x9900, 0xffec, 0x5000 },
- { 0x9800, 0xffe3, 0x4000 },
- { 0x8700, 0xffdc, 0x3000 },
- { 0x8700, 0xffda, 0x2000 },
- { 0x0700, 0xffd7, 0x0000 },
- { 0x0700, 0xffdb, 0x0000 },
- { 0x9700, 0xffe1, 0x2000 },
- { 0x1700, 0xffe0, 0x0000 },
- { 0x1900, 0xffe2, 0x0000 },
- { 0x9a00, 0xffe8, 0x3000 },
- { 0x9700, 0xffe5, 0x2000 },
- { 0x1a00, 0xffe4, 0x0000 },
- { 0x1700, 0xffe6, 0x0000 },
- { 0x9900, 0xffea, 0x2000 },
- { 0x1900, 0xffe9, 0x0000 },
- { 0x1900, 0xffeb, 0x0000 },
- { 0x8701, 0x0000, 0x4000 },
- { 0x8100, 0xfffa, 0x3000 },
- { 0x9a00, 0xffee, 0x2000 },
- { 0x1a00, 0xffed, 0x0000 },
- { 0x0100, 0xfff9, 0x0000 },
- { 0x9a00, 0xfffc, 0x2000 },
- { 0x0100, 0xfffb, 0x0000 },
- { 0x1a00, 0xfffd, 0x0000 },
- { 0x8701, 0x0004, 0x3000 },
- { 0x8701, 0x0002, 0x2000 },
- { 0x0701, 0x0001, 0x0000 },
- { 0x0701, 0x0003, 0x0000 },
- { 0x8701, 0x0006, 0x2000 },
- { 0x0701, 0x0005, 0x0000 },
- { 0x0701, 0x0007, 0x0000 },
- { 0x8701, 0x002a, 0x6000 },
- { 0x8701, 0x0019, 0x5000 },
- { 0x8701, 0x0011, 0x4000 },
- { 0x8701, 0x000d, 0x3000 },
- { 0x8701, 0x000a, 0x2000 },
- { 0x0701, 0x0009, 0x0000 },
- { 0x0701, 0x000b, 0x0000 },
- { 0x8701, 0x000f, 0x2000 },
- { 0x0701, 0x000e, 0x0000 },
- { 0x0701, 0x0010, 0x0000 },
- { 0x8701, 0x0015, 0x3000 },
- { 0x8701, 0x0013, 0x2000 },
- { 0x0701, 0x0012, 0x0000 },
- { 0x0701, 0x0014, 0x0000 },
- { 0x8701, 0x0017, 0x2000 },
- { 0x0701, 0x0016, 0x0000 },
- { 0x0701, 0x0018, 0x0000 },
- { 0x8701, 0x0021, 0x4000 },
- { 0x8701, 0x001d, 0x3000 },
- { 0x8701, 0x001b, 0x2000 },
- { 0x0701, 0x001a, 0x0000 },
- { 0x0701, 0x001c, 0x0000 },
- { 0x8701, 0x001f, 0x2000 },
- { 0x0701, 0x001e, 0x0000 },
- { 0x0701, 0x0020, 0x0000 },
- { 0x8701, 0x0025, 0x3000 },
- { 0x8701, 0x0023, 0x2000 },
- { 0x0701, 0x0022, 0x0000 },
- { 0x0701, 0x0024, 0x0000 },
- { 0x8701, 0x0028, 0x2000 },
- { 0x0701, 0x0026, 0x0000 },
- { 0x0701, 0x0029, 0x0000 },
- { 0x8701, 0x003a, 0x5000 },
- { 0x8701, 0x0032, 0x4000 },
- { 0x8701, 0x002e, 0x3000 },
- { 0x8701, 0x002c, 0x2000 },
- { 0x0701, 0x002b, 0x0000 },
- { 0x0701, 0x002d, 0x0000 },
- { 0x8701, 0x0030, 0x2000 },
- { 0x0701, 0x002f, 0x0000 },
- { 0x0701, 0x0031, 0x0000 },
- { 0x8701, 0x0036, 0x3000 },
- { 0x8701, 0x0034, 0x2000 },
- { 0x0701, 0x0033, 0x0000 },
- { 0x0701, 0x0035, 0x0000 },
- { 0x8701, 0x0038, 0x2000 },
- { 0x0701, 0x0037, 0x0000 },
- { 0x0701, 0x0039, 0x0000 },
- { 0x8701, 0x0044, 0x4000 },
- { 0x8701, 0x0040, 0x3000 },
- { 0x8701, 0x003d, 0x2000 },
- { 0x0701, 0x003c, 0x0000 },
- { 0x0701, 0x003f, 0x0000 },
- { 0x8701, 0x0042, 0x2000 },
- { 0x0701, 0x0041, 0x0000 },
- { 0x0701, 0x0043, 0x0000 },
- { 0x8701, 0x0048, 0x3000 },
- { 0x8701, 0x0046, 0x2000 },
- { 0x0701, 0x0045, 0x0000 },
- { 0x0701, 0x0047, 0x0000 },
- { 0x8701, 0x004a, 0x2000 },
- { 0x0701, 0x0049, 0x0000 },
- { 0x0701, 0x004b, 0x0000 },
- { 0x8701, 0x00b0, 0x7000 },
- { 0x8701, 0x0090, 0x6000 },
- { 0x8701, 0x0080, 0x5000 },
- { 0x8701, 0x0056, 0x4000 },
- { 0x8701, 0x0052, 0x3000 },
- { 0x8701, 0x0050, 0x2000 },
- { 0x0701, 0x004d, 0x0000 },
- { 0x0701, 0x0051, 0x0000 },
- { 0x8701, 0x0054, 0x2000 },
- { 0x0701, 0x0053, 0x0000 },
- { 0x0701, 0x0055, 0x0000 },
- { 0x8701, 0x005a, 0x3000 },
- { 0x8701, 0x0058, 0x2000 },
- { 0x0701, 0x0057, 0x0000 },
- { 0x0701, 0x0059, 0x0000 },
- { 0x8701, 0x005c, 0x2000 },
- { 0x0701, 0x005b, 0x0000 },
- { 0x0701, 0x005d, 0x0000 },
- { 0x8701, 0x0088, 0x4000 },
- { 0x8701, 0x0084, 0x3000 },
- { 0x8701, 0x0082, 0x2000 },
- { 0x0701, 0x0081, 0x0000 },
- { 0x0701, 0x0083, 0x0000 },
- { 0x8701, 0x0086, 0x2000 },
- { 0x0701, 0x0085, 0x0000 },
- { 0x0701, 0x0087, 0x0000 },
- { 0x8701, 0x008c, 0x3000 },
- { 0x8701, 0x008a, 0x2000 },
- { 0x0701, 0x0089, 0x0000 },
- { 0x0701, 0x008b, 0x0000 },
- { 0x8701, 0x008e, 0x2000 },
- { 0x0701, 0x008d, 0x0000 },
- { 0x0701, 0x008f, 0x0000 },
- { 0x8701, 0x00a0, 0x5000 },
- { 0x8701, 0x0098, 0x4000 },
- { 0x8701, 0x0094, 0x3000 },
- { 0x8701, 0x0092, 0x2000 },
- { 0x0701, 0x0091, 0x0000 },
- { 0x0701, 0x0093, 0x0000 },
- { 0x8701, 0x0096, 0x2000 },
- { 0x0701, 0x0095, 0x0000 },
- { 0x0701, 0x0097, 0x0000 },
- { 0x8701, 0x009c, 0x3000 },
- { 0x8701, 0x009a, 0x2000 },
- { 0x0701, 0x0099, 0x0000 },
- { 0x0701, 0x009b, 0x0000 },
- { 0x8701, 0x009e, 0x2000 },
- { 0x0701, 0x009d, 0x0000 },
- { 0x0701, 0x009f, 0x0000 },
- { 0x8701, 0x00a8, 0x4000 },
- { 0x8701, 0x00a4, 0x3000 },
- { 0x8701, 0x00a2, 0x2000 },
- { 0x0701, 0x00a1, 0x0000 },
- { 0x0701, 0x00a3, 0x0000 },
- { 0x8701, 0x00a6, 0x2000 },
- { 0x0701, 0x00a5, 0x0000 },
- { 0x0701, 0x00a7, 0x0000 },
- { 0x8701, 0x00ac, 0x3000 },
- { 0x8701, 0x00aa, 0x2000 },
- { 0x0701, 0x00a9, 0x0000 },
- { 0x0701, 0x00ab, 0x0000 },
- { 0x8701, 0x00ae, 0x2000 },
- { 0x0701, 0x00ad, 0x0000 },
- { 0x0701, 0x00af, 0x0000 },
- { 0x8701, 0x00d0, 0x6000 },
- { 0x8701, 0x00c0, 0x5000 },
- { 0x8701, 0x00b8, 0x4000 },
- { 0x8701, 0x00b4, 0x3000 },
- { 0x8701, 0x00b2, 0x2000 },
- { 0x0701, 0x00b1, 0x0000 },
- { 0x0701, 0x00b3, 0x0000 },
- { 0x8701, 0x00b6, 0x2000 },
- { 0x0701, 0x00b5, 0x0000 },
- { 0x0701, 0x00b7, 0x0000 },
- { 0x8701, 0x00bc, 0x3000 },
- { 0x8701, 0x00ba, 0x2000 },
- { 0x0701, 0x00b9, 0x0000 },
- { 0x0701, 0x00bb, 0x0000 },
- { 0x8701, 0x00be, 0x2000 },
- { 0x0701, 0x00bd, 0x0000 },
- { 0x0701, 0x00bf, 0x0000 },
- { 0x8701, 0x00c8, 0x4000 },
- { 0x8701, 0x00c4, 0x3000 },
- { 0x8701, 0x00c2, 0x2000 },
- { 0x0701, 0x00c1, 0x0000 },
- { 0x0701, 0x00c3, 0x0000 },
- { 0x8701, 0x00c6, 0x2000 },
- { 0x0701, 0x00c5, 0x0000 },
- { 0x0701, 0x00c7, 0x0000 },
- { 0x8701, 0x00cc, 0x3000 },
- { 0x8701, 0x00ca, 0x2000 },
- { 0x0701, 0x00c9, 0x0000 },
- { 0x0701, 0x00cb, 0x0000 },
- { 0x8701, 0x00ce, 0x2000 },
- { 0x0701, 0x00cd, 0x0000 },
- { 0x0701, 0x00cf, 0x0000 },
- { 0x8701, 0x00e0, 0x5000 },
- { 0x8701, 0x00d8, 0x4000 },
- { 0x8701, 0x00d4, 0x3000 },
- { 0x8701, 0x00d2, 0x2000 },
- { 0x0701, 0x00d1, 0x0000 },
- { 0x0701, 0x00d3, 0x0000 },
- { 0x8701, 0x00d6, 0x2000 },
- { 0x0701, 0x00d5, 0x0000 },
- { 0x0701, 0x00d7, 0x0000 },
- { 0x8701, 0x00dc, 0x3000 },
- { 0x8701, 0x00da, 0x2000 },
- { 0x0701, 0x00d9, 0x0000 },
- { 0x0701, 0x00db, 0x0000 },
- { 0x8701, 0x00de, 0x2000 },
- { 0x0701, 0x00dd, 0x0000 },
- { 0x0701, 0x00df, 0x0000 },
- { 0x8701, 0x00e8, 0x4000 },
- { 0x8701, 0x00e4, 0x3000 },
- { 0x8701, 0x00e2, 0x2000 },
- { 0x0701, 0x00e1, 0x0000 },
- { 0x0701, 0x00e3, 0x0000 },
- { 0x8701, 0x00e6, 0x2000 },
- { 0x0701, 0x00e5, 0x0000 },
- { 0x0701, 0x00e7, 0x0000 },
- { 0x8701, 0x00ec, 0x3000 },
- { 0x8701, 0x00ea, 0x2000 },
- { 0x0701, 0x00e9, 0x0000 },
- { 0x0701, 0x00eb, 0x0000 },
- { 0x8701, 0x00ee, 0x2000 },
- { 0x0701, 0x00ed, 0x0000 },
- { 0x0701, 0x00ef, 0x0000 },
- { 0x8501, 0xd459, 0xb000 },
- { 0x9a01, 0xd080, 0xa000 },
- { 0x8701, 0x045f, 0x9000 },
- { 0x8701, 0x0349, 0x8000 },
- { 0x9a01, 0x013c, 0x7000 },
- { 0x8f01, 0x0119, 0x6000 },
- { 0x8f01, 0x0109, 0x5000 },
- { 0x8701, 0x00f8, 0x4000 },
- { 0x8701, 0x00f4, 0x3000 },
- { 0x8701, 0x00f2, 0x2000 },
- { 0x0701, 0x00f1, 0x0000 },
- { 0x0701, 0x00f3, 0x0000 },
- { 0x8701, 0x00f6, 0x2000 },
- { 0x0701, 0x00f5, 0x0000 },
- { 0x0701, 0x00f7, 0x0000 },
- { 0x9501, 0x0101, 0x3000 },
- { 0x8701, 0x00fa, 0x2000 },
- { 0x0701, 0x00f9, 0x0000 },
- { 0x1501, 0x0100, 0x0000 },
- { 0x8f01, 0x0107, 0x2000 },
- { 0x1a01, 0x0102, 0x0000 },
- { 0x0f01, 0x0108, 0x0000 },
- { 0x8f01, 0x0111, 0x4000 },
- { 0x8f01, 0x010d, 0x3000 },
- { 0x8f01, 0x010b, 0x2000 },
- { 0x0f01, 0x010a, 0x0000 },
- { 0x0f01, 0x010c, 0x0000 },
- { 0x8f01, 0x010f, 0x2000 },
- { 0x0f01, 0x010e, 0x0000 },
- { 0x0f01, 0x0110, 0x0000 },
- { 0x8f01, 0x0115, 0x3000 },
- { 0x8f01, 0x0113, 0x2000 },
- { 0x0f01, 0x0112, 0x0000 },
- { 0x0f01, 0x0114, 0x0000 },
- { 0x8f01, 0x0117, 0x2000 },
- { 0x0f01, 0x0116, 0x0000 },
- { 0x0f01, 0x0118, 0x0000 },
- { 0x8f01, 0x0129, 0x5000 },
- { 0x8f01, 0x0121, 0x4000 },
- { 0x8f01, 0x011d, 0x3000 },
- { 0x8f01, 0x011b, 0x2000 },
- { 0x0f01, 0x011a, 0x0000 },
- { 0x0f01, 0x011c, 0x0000 },
- { 0x8f01, 0x011f, 0x2000 },
- { 0x0f01, 0x011e, 0x0000 },
- { 0x0f01, 0x0120, 0x0000 },
- { 0x8f01, 0x0125, 0x3000 },
- { 0x8f01, 0x0123, 0x2000 },
- { 0x0f01, 0x0122, 0x0000 },
- { 0x0f01, 0x0124, 0x0000 },
- { 0x8f01, 0x0127, 0x2000 },
- { 0x0f01, 0x0126, 0x0000 },
- { 0x0f01, 0x0128, 0x0000 },
- { 0x8f01, 0x0131, 0x4000 },
- { 0x8f01, 0x012d, 0x3000 },
- { 0x8f01, 0x012b, 0x2000 },
- { 0x0f01, 0x012a, 0x0000 },
- { 0x0f01, 0x012c, 0x0000 },
- { 0x8f01, 0x012f, 0x2000 },
- { 0x0f01, 0x012e, 0x0000 },
- { 0x0f01, 0x0130, 0x0000 },
- { 0x9a01, 0x0138, 0x3000 },
- { 0x8f01, 0x0133, 0x2000 },
- { 0x0f01, 0x0132, 0x0000 },
- { 0x1a01, 0x0137, 0x0000 },
- { 0x9a01, 0x013a, 0x2000 },
- { 0x1a01, 0x0139, 0x0000 },
- { 0x1a01, 0x013b, 0x0000 },
- { 0x8701, 0x031c, 0x6000 },
- { 0x8701, 0x030c, 0x5000 },
- { 0x8701, 0x0304, 0x4000 },
- { 0x8701, 0x0300, 0x3000 },
- { 0x9a01, 0x013e, 0x2000 },
- { 0x1a01, 0x013d, 0x0000 },
- { 0x1a01, 0x013f, 0x0000 },
- { 0x8701, 0x0302, 0x2000 },
- { 0x0701, 0x0301, 0x0000 },
- { 0x0701, 0x0303, 0x0000 },
- { 0x8701, 0x0308, 0x3000 },
- { 0x8701, 0x0306, 0x2000 },
- { 0x0701, 0x0305, 0x0000 },
- { 0x0701, 0x0307, 0x0000 },
- { 0x8701, 0x030a, 0x2000 },
- { 0x0701, 0x0309, 0x0000 },
- { 0x0701, 0x030b, 0x0000 },
- { 0x8701, 0x0314, 0x4000 },
- { 0x8701, 0x0310, 0x3000 },
- { 0x8701, 0x030e, 0x2000 },
- { 0x0701, 0x030d, 0x0000 },
- { 0x0701, 0x030f, 0x0000 },
- { 0x8701, 0x0312, 0x2000 },
- { 0x0701, 0x0311, 0x0000 },
- { 0x0701, 0x0313, 0x0000 },
- { 0x8701, 0x0318, 0x3000 },
- { 0x8701, 0x0316, 0x2000 },
- { 0x0701, 0x0315, 0x0000 },
- { 0x0701, 0x0317, 0x0000 },
- { 0x8701, 0x031a, 0x2000 },
- { 0x0701, 0x0319, 0x0000 },
- { 0x0701, 0x031b, 0x0000 },
- { 0x8701, 0x0339, 0x5000 },
- { 0x8701, 0x0331, 0x4000 },
- { 0x8f01, 0x0321, 0x3000 },
- { 0x8701, 0x031e, 0x2000 },
- { 0x0701, 0x031d, 0x0000 },
- { 0x0f01, 0x0320, 0x0000 },
- { 0x8f01, 0x0323, 0x2000 },
- { 0x0f01, 0x0322, 0x0000 },
- { 0x0701, 0x0330, 0x0000 },
- { 0x8701, 0x0335, 0x3000 },
- { 0x8701, 0x0333, 0x2000 },
- { 0x0701, 0x0332, 0x0000 },
- { 0x0701, 0x0334, 0x0000 },
- { 0x8701, 0x0337, 0x2000 },
- { 0x0701, 0x0336, 0x0000 },
- { 0x0701, 0x0338, 0x0000 },
- { 0x8701, 0x0341, 0x4000 },
- { 0x8701, 0x033d, 0x3000 },
- { 0x8701, 0x033b, 0x2000 },
- { 0x0701, 0x033a, 0x0000 },
- { 0x0701, 0x033c, 0x0000 },
- { 0x8701, 0x033f, 0x2000 },
- { 0x0701, 0x033e, 0x0000 },
- { 0x0701, 0x0340, 0x0000 },
- { 0x8701, 0x0345, 0x3000 },
- { 0x8701, 0x0343, 0x2000 },
- { 0x0701, 0x0342, 0x0000 },
- { 0x0701, 0x0344, 0x0000 },
- { 0x8701, 0x0347, 0x2000 },
- { 0x0701, 0x0346, 0x0000 },
- { 0x0701, 0x0348, 0x0000 },
- { 0x8901, 0x041f, 0x7028 },
- { 0x9501, 0x039f, 0x6000 },
- { 0x8701, 0x038e, 0x5000 },
- { 0x8701, 0x0386, 0x4000 },
- { 0x8701, 0x0382, 0x3000 },
- { 0x8701, 0x0380, 0x2000 },
- { 0x0e01, 0x034a, 0x0000 },
- { 0x0701, 0x0381, 0x0000 },
- { 0x8701, 0x0384, 0x2000 },
- { 0x0701, 0x0383, 0x0000 },
- { 0x0701, 0x0385, 0x0000 },
- { 0x8701, 0x038a, 0x3000 },
- { 0x8701, 0x0388, 0x2000 },
- { 0x0701, 0x0387, 0x0000 },
- { 0x0701, 0x0389, 0x0000 },
- { 0x8701, 0x038c, 0x2000 },
- { 0x0701, 0x038b, 0x0000 },
- { 0x0701, 0x038d, 0x0000 },
- { 0x8701, 0x0396, 0x4000 },
- { 0x8701, 0x0392, 0x3000 },
- { 0x8701, 0x0390, 0x2000 },
- { 0x0701, 0x038f, 0x0000 },
- { 0x0701, 0x0391, 0x0000 },
- { 0x8701, 0x0394, 0x2000 },
- { 0x0701, 0x0393, 0x0000 },
- { 0x0701, 0x0395, 0x0000 },
- { 0x8701, 0x039a, 0x3000 },
- { 0x8701, 0x0398, 0x2000 },
- { 0x0701, 0x0397, 0x0000 },
- { 0x0701, 0x0399, 0x0000 },
- { 0x8701, 0x039c, 0x2000 },
- { 0x0701, 0x039b, 0x0000 },
- { 0x0701, 0x039d, 0x0000 },
- { 0x8901, 0x040f, 0x5028 },
- { 0x8901, 0x0407, 0x4028 },
- { 0x8901, 0x0403, 0x3028 },
- { 0x8901, 0x0401, 0x2028 },
- { 0x0901, 0x0400, 0x0028 },
- { 0x0901, 0x0402, 0x0028 },
- { 0x8901, 0x0405, 0x2028 },
- { 0x0901, 0x0404, 0x0028 },
- { 0x0901, 0x0406, 0x0028 },
- { 0x8901, 0x040b, 0x3028 },
- { 0x8901, 0x0409, 0x2028 },
- { 0x0901, 0x0408, 0x0028 },
- { 0x0901, 0x040a, 0x0028 },
- { 0x8901, 0x040d, 0x2028 },
- { 0x0901, 0x040c, 0x0028 },
- { 0x0901, 0x040e, 0x0028 },
- { 0x8901, 0x0417, 0x4028 },
- { 0x8901, 0x0413, 0x3028 },
- { 0x8901, 0x0411, 0x2028 },
- { 0x0901, 0x0410, 0x0028 },
- { 0x0901, 0x0412, 0x0028 },
- { 0x8901, 0x0415, 0x2028 },
- { 0x0901, 0x0414, 0x0028 },
- { 0x0901, 0x0416, 0x0028 },
- { 0x8901, 0x041b, 0x3028 },
- { 0x8901, 0x0419, 0x2028 },
- { 0x0901, 0x0418, 0x0028 },
- { 0x0901, 0x041a, 0x0028 },
- { 0x8901, 0x041d, 0x2028 },
- { 0x0901, 0x041c, 0x0028 },
- { 0x0901, 0x041e, 0x0028 },
- { 0x8501, 0x043f, 0x6fd8 },
- { 0x8501, 0x042f, 0x5fd8 },
- { 0x8901, 0x0427, 0x4028 },
- { 0x8901, 0x0423, 0x3028 },
- { 0x8901, 0x0421, 0x2028 },
- { 0x0901, 0x0420, 0x0028 },
- { 0x0901, 0x0422, 0x0028 },
- { 0x8901, 0x0425, 0x2028 },
- { 0x0901, 0x0424, 0x0028 },
- { 0x0901, 0x0426, 0x0028 },
- { 0x8501, 0x042b, 0x3fd8 },
- { 0x8501, 0x0429, 0x2fd8 },
- { 0x0501, 0x0428, 0x0fd8 },
- { 0x0501, 0x042a, 0x0fd8 },
- { 0x8501, 0x042d, 0x2fd8 },
- { 0x0501, 0x042c, 0x0fd8 },
- { 0x0501, 0x042e, 0x0fd8 },
- { 0x8501, 0x0437, 0x4fd8 },
- { 0x8501, 0x0433, 0x3fd8 },
- { 0x8501, 0x0431, 0x2fd8 },
- { 0x0501, 0x0430, 0x0fd8 },
- { 0x0501, 0x0432, 0x0fd8 },
- { 0x8501, 0x0435, 0x2fd8 },
- { 0x0501, 0x0434, 0x0fd8 },
- { 0x0501, 0x0436, 0x0fd8 },
- { 0x8501, 0x043b, 0x3fd8 },
- { 0x8501, 0x0439, 0x2fd8 },
- { 0x0501, 0x0438, 0x0fd8 },
- { 0x0501, 0x043a, 0x0fd8 },
- { 0x8501, 0x043d, 0x2fd8 },
- { 0x0501, 0x043c, 0x0fd8 },
- { 0x0501, 0x043e, 0x0fd8 },
- { 0x8501, 0x044f, 0x5fd8 },
- { 0x8501, 0x0447, 0x4fd8 },
- { 0x8501, 0x0443, 0x3fd8 },
- { 0x8501, 0x0441, 0x2fd8 },
- { 0x0501, 0x0440, 0x0fd8 },
- { 0x0501, 0x0442, 0x0fd8 },
- { 0x8501, 0x0445, 0x2fd8 },
- { 0x0501, 0x0444, 0x0fd8 },
- { 0x0501, 0x0446, 0x0fd8 },
- { 0x8501, 0x044b, 0x3fd8 },
- { 0x8501, 0x0449, 0x2fd8 },
- { 0x0501, 0x0448, 0x0fd8 },
- { 0x0501, 0x044a, 0x0fd8 },
- { 0x8501, 0x044d, 0x2fd8 },
- { 0x0501, 0x044c, 0x0fd8 },
- { 0x0501, 0x044e, 0x0fd8 },
- { 0x8701, 0x0457, 0x4000 },
- { 0x8701, 0x0453, 0x3000 },
- { 0x8701, 0x0451, 0x2000 },
- { 0x0701, 0x0450, 0x0000 },
- { 0x0701, 0x0452, 0x0000 },
- { 0x8701, 0x0455, 0x2000 },
- { 0x0701, 0x0454, 0x0000 },
- { 0x0701, 0x0456, 0x0000 },
- { 0x8701, 0x045b, 0x3000 },
- { 0x8701, 0x0459, 0x2000 },
- { 0x0701, 0x0458, 0x0000 },
- { 0x0701, 0x045a, 0x0000 },
- { 0x8701, 0x045d, 0x2000 },
- { 0x0701, 0x045c, 0x0000 },
- { 0x0701, 0x045e, 0x0000 },
- { 0x9a01, 0xd000, 0x8000 },
- { 0x8d01, 0x04a1, 0x7000 },
- { 0x8701, 0x047f, 0x6000 },
- { 0x8701, 0x046f, 0x5000 },
- { 0x8701, 0x0467, 0x4000 },
- { 0x8701, 0x0463, 0x3000 },
- { 0x8701, 0x0461, 0x2000 },
- { 0x0701, 0x0460, 0x0000 },
- { 0x0701, 0x0462, 0x0000 },
- { 0x8701, 0x0465, 0x2000 },
- { 0x0701, 0x0464, 0x0000 },
- { 0x0701, 0x0466, 0x0000 },
- { 0x8701, 0x046b, 0x3000 },
- { 0x8701, 0x0469, 0x2000 },
- { 0x0701, 0x0468, 0x0000 },
- { 0x0701, 0x046a, 0x0000 },
- { 0x8701, 0x046d, 0x2000 },
- { 0x0701, 0x046c, 0x0000 },
- { 0x0701, 0x046e, 0x0000 },
- { 0x8701, 0x0477, 0x4000 },
- { 0x8701, 0x0473, 0x3000 },
- { 0x8701, 0x0471, 0x2000 },
- { 0x0701, 0x0470, 0x0000 },
- { 0x0701, 0x0472, 0x0000 },
- { 0x8701, 0x0475, 0x2000 },
- { 0x0701, 0x0474, 0x0000 },
- { 0x0701, 0x0476, 0x0000 },
- { 0x8701, 0x047b, 0x3000 },
- { 0x8701, 0x0479, 0x2000 },
- { 0x0701, 0x0478, 0x0000 },
- { 0x0701, 0x047a, 0x0000 },
- { 0x8701, 0x047d, 0x2000 },
- { 0x0701, 0x047c, 0x0000 },
- { 0x0701, 0x047e, 0x0000 },
- { 0x8701, 0x048f, 0x5000 },
- { 0x8701, 0x0487, 0x4000 },
- { 0x8701, 0x0483, 0x3000 },
- { 0x8701, 0x0481, 0x2000 },
- { 0x0701, 0x0480, 0x0000 },
- { 0x0701, 0x0482, 0x0000 },
- { 0x8701, 0x0485, 0x2000 },
- { 0x0701, 0x0484, 0x0000 },
- { 0x0701, 0x0486, 0x0000 },
- { 0x8701, 0x048b, 0x3000 },
- { 0x8701, 0x0489, 0x2000 },
- { 0x0701, 0x0488, 0x0000 },
- { 0x0701, 0x048a, 0x0000 },
- { 0x8701, 0x048d, 0x2000 },
- { 0x0701, 0x048c, 0x0000 },
- { 0x0701, 0x048e, 0x0000 },
- { 0x8701, 0x0497, 0x4000 },
- { 0x8701, 0x0493, 0x3000 },
- { 0x8701, 0x0491, 0x2000 },
- { 0x0701, 0x0490, 0x0000 },
- { 0x0701, 0x0492, 0x0000 },
- { 0x8701, 0x0495, 0x2000 },
- { 0x0701, 0x0494, 0x0000 },
- { 0x0701, 0x0496, 0x0000 },
- { 0x8701, 0x049b, 0x3000 },
- { 0x8701, 0x0499, 0x2000 },
- { 0x0701, 0x0498, 0x0000 },
- { 0x0701, 0x049a, 0x0000 },
- { 0x8701, 0x049d, 0x2000 },
- { 0x0701, 0x049c, 0x0000 },
- { 0x0d01, 0x04a0, 0x0000 },
- { 0x8701, 0x081a, 0x6000 },
- { 0x8701, 0x080a, 0x5000 },
- { 0x8d01, 0x04a9, 0x4000 },
- { 0x8d01, 0x04a5, 0x3000 },
- { 0x8d01, 0x04a3, 0x2000 },
- { 0x0d01, 0x04a2, 0x0000 },
- { 0x0d01, 0x04a4, 0x0000 },
- { 0x8d01, 0x04a7, 0x2000 },
- { 0x0d01, 0x04a6, 0x0000 },
- { 0x0d01, 0x04a8, 0x0000 },
- { 0x8701, 0x0803, 0x3000 },
- { 0x8701, 0x0801, 0x2000 },
- { 0x0701, 0x0800, 0x0000 },
- { 0x0701, 0x0802, 0x0000 },
- { 0x8701, 0x0805, 0x2000 },
- { 0x0701, 0x0804, 0x0000 },
- { 0x0701, 0x0808, 0x0000 },
- { 0x8701, 0x0812, 0x4000 },
- { 0x8701, 0x080e, 0x3000 },
- { 0x8701, 0x080c, 0x2000 },
- { 0x0701, 0x080b, 0x0000 },
- { 0x0701, 0x080d, 0x0000 },
- { 0x8701, 0x0810, 0x2000 },
- { 0x0701, 0x080f, 0x0000 },
- { 0x0701, 0x0811, 0x0000 },
- { 0x8701, 0x0816, 0x3000 },
- { 0x8701, 0x0814, 0x2000 },
- { 0x0701, 0x0813, 0x0000 },
- { 0x0701, 0x0815, 0x0000 },
- { 0x8701, 0x0818, 0x2000 },
- { 0x0701, 0x0817, 0x0000 },
- { 0x0701, 0x0819, 0x0000 },
- { 0x8701, 0x082a, 0x5000 },
- { 0x8701, 0x0822, 0x4000 },
- { 0x8701, 0x081e, 0x3000 },
- { 0x8701, 0x081c, 0x2000 },
- { 0x0701, 0x081b, 0x0000 },
- { 0x0701, 0x081d, 0x0000 },
- { 0x8701, 0x0820, 0x2000 },
- { 0x0701, 0x081f, 0x0000 },
- { 0x0701, 0x0821, 0x0000 },
- { 0x8701, 0x0826, 0x3000 },
- { 0x8701, 0x0824, 0x2000 },
- { 0x0701, 0x0823, 0x0000 },
- { 0x0701, 0x0825, 0x0000 },
- { 0x8701, 0x0828, 0x2000 },
- { 0x0701, 0x0827, 0x0000 },
- { 0x0701, 0x0829, 0x0000 },
- { 0x8701, 0x0832, 0x4000 },
- { 0x8701, 0x082e, 0x3000 },
- { 0x8701, 0x082c, 0x2000 },
- { 0x0701, 0x082b, 0x0000 },
- { 0x0701, 0x082d, 0x0000 },
- { 0x8701, 0x0830, 0x2000 },
- { 0x0701, 0x082f, 0x0000 },
- { 0x0701, 0x0831, 0x0000 },
- { 0x8701, 0x0837, 0x3000 },
- { 0x8701, 0x0834, 0x2000 },
- { 0x0701, 0x0833, 0x0000 },
- { 0x0701, 0x0835, 0x0000 },
- { 0x8701, 0x083c, 0x2000 },
- { 0x0701, 0x0838, 0x0000 },
- { 0x0701, 0x083f, 0x0000 },
- { 0x9a01, 0xd040, 0x7000 },
- { 0x9a01, 0xd020, 0x6000 },
- { 0x9a01, 0xd010, 0x5000 },
- { 0x9a01, 0xd008, 0x4000 },
- { 0x9a01, 0xd004, 0x3000 },
- { 0x9a01, 0xd002, 0x2000 },
- { 0x1a01, 0xd001, 0x0000 },
- { 0x1a01, 0xd003, 0x0000 },
- { 0x9a01, 0xd006, 0x2000 },
- { 0x1a01, 0xd005, 0x0000 },
- { 0x1a01, 0xd007, 0x0000 },
- { 0x9a01, 0xd00c, 0x3000 },
- { 0x9a01, 0xd00a, 0x2000 },
- { 0x1a01, 0xd009, 0x0000 },
- { 0x1a01, 0xd00b, 0x0000 },
- { 0x9a01, 0xd00e, 0x2000 },
- { 0x1a01, 0xd00d, 0x0000 },
- { 0x1a01, 0xd00f, 0x0000 },
- { 0x9a01, 0xd018, 0x4000 },
- { 0x9a01, 0xd014, 0x3000 },
- { 0x9a01, 0xd012, 0x2000 },
- { 0x1a01, 0xd011, 0x0000 },
- { 0x1a01, 0xd013, 0x0000 },
- { 0x9a01, 0xd016, 0x2000 },
- { 0x1a01, 0xd015, 0x0000 },
- { 0x1a01, 0xd017, 0x0000 },
- { 0x9a01, 0xd01c, 0x3000 },
- { 0x9a01, 0xd01a, 0x2000 },
- { 0x1a01, 0xd019, 0x0000 },
- { 0x1a01, 0xd01b, 0x0000 },
- { 0x9a01, 0xd01e, 0x2000 },
- { 0x1a01, 0xd01d, 0x0000 },
- { 0x1a01, 0xd01f, 0x0000 },
- { 0x9a01, 0xd030, 0x5000 },
- { 0x9a01, 0xd028, 0x4000 },
- { 0x9a01, 0xd024, 0x3000 },
- { 0x9a01, 0xd022, 0x2000 },
- { 0x1a01, 0xd021, 0x0000 },
- { 0x1a01, 0xd023, 0x0000 },
- { 0x9a01, 0xd026, 0x2000 },
- { 0x1a01, 0xd025, 0x0000 },
- { 0x1a01, 0xd027, 0x0000 },
- { 0x9a01, 0xd02c, 0x3000 },
- { 0x9a01, 0xd02a, 0x2000 },
- { 0x1a01, 0xd029, 0x0000 },
- { 0x1a01, 0xd02b, 0x0000 },
- { 0x9a01, 0xd02e, 0x2000 },
- { 0x1a01, 0xd02d, 0x0000 },
- { 0x1a01, 0xd02f, 0x0000 },
- { 0x9a01, 0xd038, 0x4000 },
- { 0x9a01, 0xd034, 0x3000 },
- { 0x9a01, 0xd032, 0x2000 },
- { 0x1a01, 0xd031, 0x0000 },
- { 0x1a01, 0xd033, 0x0000 },
- { 0x9a01, 0xd036, 0x2000 },
- { 0x1a01, 0xd035, 0x0000 },
- { 0x1a01, 0xd037, 0x0000 },
- { 0x9a01, 0xd03c, 0x3000 },
- { 0x9a01, 0xd03a, 0x2000 },
- { 0x1a01, 0xd039, 0x0000 },
- { 0x1a01, 0xd03b, 0x0000 },
- { 0x9a01, 0xd03e, 0x2000 },
- { 0x1a01, 0xd03d, 0x0000 },
- { 0x1a01, 0xd03f, 0x0000 },
- { 0x9a01, 0xd060, 0x6000 },
- { 0x9a01, 0xd050, 0x5000 },
- { 0x9a01, 0xd048, 0x4000 },
- { 0x9a01, 0xd044, 0x3000 },
- { 0x9a01, 0xd042, 0x2000 },
- { 0x1a01, 0xd041, 0x0000 },
- { 0x1a01, 0xd043, 0x0000 },
- { 0x9a01, 0xd046, 0x2000 },
- { 0x1a01, 0xd045, 0x0000 },
- { 0x1a01, 0xd047, 0x0000 },
- { 0x9a01, 0xd04c, 0x3000 },
- { 0x9a01, 0xd04a, 0x2000 },
- { 0x1a01, 0xd049, 0x0000 },
- { 0x1a01, 0xd04b, 0x0000 },
- { 0x9a01, 0xd04e, 0x2000 },
- { 0x1a01, 0xd04d, 0x0000 },
- { 0x1a01, 0xd04f, 0x0000 },
- { 0x9a01, 0xd058, 0x4000 },
- { 0x9a01, 0xd054, 0x3000 },
- { 0x9a01, 0xd052, 0x2000 },
- { 0x1a01, 0xd051, 0x0000 },
- { 0x1a01, 0xd053, 0x0000 },
- { 0x9a01, 0xd056, 0x2000 },
- { 0x1a01, 0xd055, 0x0000 },
- { 0x1a01, 0xd057, 0x0000 },
- { 0x9a01, 0xd05c, 0x3000 },
- { 0x9a01, 0xd05a, 0x2000 },
- { 0x1a01, 0xd059, 0x0000 },
- { 0x1a01, 0xd05b, 0x0000 },
- { 0x9a01, 0xd05e, 0x2000 },
- { 0x1a01, 0xd05d, 0x0000 },
- { 0x1a01, 0xd05f, 0x0000 },
- { 0x9a01, 0xd070, 0x5000 },
- { 0x9a01, 0xd068, 0x4000 },
- { 0x9a01, 0xd064, 0x3000 },
- { 0x9a01, 0xd062, 0x2000 },
- { 0x1a01, 0xd061, 0x0000 },
- { 0x1a01, 0xd063, 0x0000 },
- { 0x9a01, 0xd066, 0x2000 },
- { 0x1a01, 0xd065, 0x0000 },
- { 0x1a01, 0xd067, 0x0000 },
- { 0x9a01, 0xd06c, 0x3000 },
- { 0x9a01, 0xd06a, 0x2000 },
- { 0x1a01, 0xd069, 0x0000 },
- { 0x1a01, 0xd06b, 0x0000 },
- { 0x9a01, 0xd06e, 0x2000 },
- { 0x1a01, 0xd06d, 0x0000 },
- { 0x1a01, 0xd06f, 0x0000 },
- { 0x9a01, 0xd078, 0x4000 },
- { 0x9a01, 0xd074, 0x3000 },
- { 0x9a01, 0xd072, 0x2000 },
- { 0x1a01, 0xd071, 0x0000 },
- { 0x1a01, 0xd073, 0x0000 },
- { 0x9a01, 0xd076, 0x2000 },
- { 0x1a01, 0xd075, 0x0000 },
- { 0x1a01, 0xd077, 0x0000 },
- { 0x9a01, 0xd07c, 0x3000 },
- { 0x9a01, 0xd07a, 0x2000 },
- { 0x1a01, 0xd079, 0x0000 },
- { 0x1a01, 0xd07b, 0x0000 },
- { 0x9a01, 0xd07e, 0x2000 },
- { 0x1a01, 0xd07d, 0x0000 },
- { 0x1a01, 0xd07f, 0x0000 },
- { 0x9a01, 0xd18d, 0x9000 },
- { 0x9a01, 0xd10a, 0x8000 },
- { 0x9a01, 0xd0c0, 0x7000 },
- { 0x9a01, 0xd0a0, 0x6000 },
- { 0x9a01, 0xd090, 0x5000 },
- { 0x9a01, 0xd088, 0x4000 },
- { 0x9a01, 0xd084, 0x3000 },
- { 0x9a01, 0xd082, 0x2000 },
- { 0x1a01, 0xd081, 0x0000 },
- { 0x1a01, 0xd083, 0x0000 },
- { 0x9a01, 0xd086, 0x2000 },
- { 0x1a01, 0xd085, 0x0000 },
- { 0x1a01, 0xd087, 0x0000 },
- { 0x9a01, 0xd08c, 0x3000 },
- { 0x9a01, 0xd08a, 0x2000 },
- { 0x1a01, 0xd089, 0x0000 },
- { 0x1a01, 0xd08b, 0x0000 },
- { 0x9a01, 0xd08e, 0x2000 },
- { 0x1a01, 0xd08d, 0x0000 },
- { 0x1a01, 0xd08f, 0x0000 },
- { 0x9a01, 0xd098, 0x4000 },
- { 0x9a01, 0xd094, 0x3000 },
- { 0x9a01, 0xd092, 0x2000 },
- { 0x1a01, 0xd091, 0x0000 },
- { 0x1a01, 0xd093, 0x0000 },
- { 0x9a01, 0xd096, 0x2000 },
- { 0x1a01, 0xd095, 0x0000 },
- { 0x1a01, 0xd097, 0x0000 },
- { 0x9a01, 0xd09c, 0x3000 },
- { 0x9a01, 0xd09a, 0x2000 },
- { 0x1a01, 0xd099, 0x0000 },
- { 0x1a01, 0xd09b, 0x0000 },
- { 0x9a01, 0xd09e, 0x2000 },
- { 0x1a01, 0xd09d, 0x0000 },
- { 0x1a01, 0xd09f, 0x0000 },
- { 0x9a01, 0xd0b0, 0x5000 },
- { 0x9a01, 0xd0a8, 0x4000 },
- { 0x9a01, 0xd0a4, 0x3000 },
- { 0x9a01, 0xd0a2, 0x2000 },
- { 0x1a01, 0xd0a1, 0x0000 },
- { 0x1a01, 0xd0a3, 0x0000 },
- { 0x9a01, 0xd0a6, 0x2000 },
- { 0x1a01, 0xd0a5, 0x0000 },
- { 0x1a01, 0xd0a7, 0x0000 },
- { 0x9a01, 0xd0ac, 0x3000 },
- { 0x9a01, 0xd0aa, 0x2000 },
- { 0x1a01, 0xd0a9, 0x0000 },
- { 0x1a01, 0xd0ab, 0x0000 },
- { 0x9a01, 0xd0ae, 0x2000 },
- { 0x1a01, 0xd0ad, 0x0000 },
- { 0x1a01, 0xd0af, 0x0000 },
- { 0x9a01, 0xd0b8, 0x4000 },
- { 0x9a01, 0xd0b4, 0x3000 },
- { 0x9a01, 0xd0b2, 0x2000 },
- { 0x1a01, 0xd0b1, 0x0000 },
- { 0x1a01, 0xd0b3, 0x0000 },
- { 0x9a01, 0xd0b6, 0x2000 },
- { 0x1a01, 0xd0b5, 0x0000 },
- { 0x1a01, 0xd0b7, 0x0000 },
- { 0x9a01, 0xd0bc, 0x3000 },
- { 0x9a01, 0xd0ba, 0x2000 },
- { 0x1a01, 0xd0b9, 0x0000 },
- { 0x1a01, 0xd0bb, 0x0000 },
- { 0x9a01, 0xd0be, 0x2000 },
- { 0x1a01, 0xd0bd, 0x0000 },
- { 0x1a01, 0xd0bf, 0x0000 },
- { 0x9a01, 0xd0e0, 0x6000 },
- { 0x9a01, 0xd0d0, 0x5000 },
- { 0x9a01, 0xd0c8, 0x4000 },
- { 0x9a01, 0xd0c4, 0x3000 },
- { 0x9a01, 0xd0c2, 0x2000 },
- { 0x1a01, 0xd0c1, 0x0000 },
- { 0x1a01, 0xd0c3, 0x0000 },
- { 0x9a01, 0xd0c6, 0x2000 },
- { 0x1a01, 0xd0c5, 0x0000 },
- { 0x1a01, 0xd0c7, 0x0000 },
- { 0x9a01, 0xd0cc, 0x3000 },
- { 0x9a01, 0xd0ca, 0x2000 },
- { 0x1a01, 0xd0c9, 0x0000 },
- { 0x1a01, 0xd0cb, 0x0000 },
- { 0x9a01, 0xd0ce, 0x2000 },
- { 0x1a01, 0xd0cd, 0x0000 },
- { 0x1a01, 0xd0cf, 0x0000 },
- { 0x9a01, 0xd0d8, 0x4000 },
- { 0x9a01, 0xd0d4, 0x3000 },
- { 0x9a01, 0xd0d2, 0x2000 },
- { 0x1a01, 0xd0d1, 0x0000 },
- { 0x1a01, 0xd0d3, 0x0000 },
- { 0x9a01, 0xd0d6, 0x2000 },
- { 0x1a01, 0xd0d5, 0x0000 },
- { 0x1a01, 0xd0d7, 0x0000 },
- { 0x9a01, 0xd0dc, 0x3000 },
- { 0x9a01, 0xd0da, 0x2000 },
- { 0x1a01, 0xd0d9, 0x0000 },
- { 0x1a01, 0xd0db, 0x0000 },
- { 0x9a01, 0xd0de, 0x2000 },
- { 0x1a01, 0xd0dd, 0x0000 },
- { 0x1a01, 0xd0df, 0x0000 },
- { 0x9a01, 0xd0f0, 0x5000 },
- { 0x9a01, 0xd0e8, 0x4000 },
- { 0x9a01, 0xd0e4, 0x3000 },
- { 0x9a01, 0xd0e2, 0x2000 },
- { 0x1a01, 0xd0e1, 0x0000 },
- { 0x1a01, 0xd0e3, 0x0000 },
- { 0x9a01, 0xd0e6, 0x2000 },
- { 0x1a01, 0xd0e5, 0x0000 },
- { 0x1a01, 0xd0e7, 0x0000 },
- { 0x9a01, 0xd0ec, 0x3000 },
- { 0x9a01, 0xd0ea, 0x2000 },
- { 0x1a01, 0xd0e9, 0x0000 },
- { 0x1a01, 0xd0eb, 0x0000 },
- { 0x9a01, 0xd0ee, 0x2000 },
- { 0x1a01, 0xd0ed, 0x0000 },
- { 0x1a01, 0xd0ef, 0x0000 },
- { 0x9a01, 0xd102, 0x4000 },
- { 0x9a01, 0xd0f4, 0x3000 },
- { 0x9a01, 0xd0f2, 0x2000 },
- { 0x1a01, 0xd0f1, 0x0000 },
- { 0x1a01, 0xd0f3, 0x0000 },
- { 0x9a01, 0xd100, 0x2000 },
- { 0x1a01, 0xd0f5, 0x0000 },
- { 0x1a01, 0xd101, 0x0000 },
- { 0x9a01, 0xd106, 0x3000 },
- { 0x9a01, 0xd104, 0x2000 },
- { 0x1a01, 0xd103, 0x0000 },
- { 0x1a01, 0xd105, 0x0000 },
- { 0x9a01, 0xd108, 0x2000 },
- { 0x1a01, 0xd107, 0x0000 },
- { 0x1a01, 0xd109, 0x0000 },
- { 0x9a01, 0xd14d, 0x7000 },
- { 0x9a01, 0xd12d, 0x6000 },
- { 0x9a01, 0xd11a, 0x5000 },
- { 0x9a01, 0xd112, 0x4000 },
- { 0x9a01, 0xd10e, 0x3000 },
- { 0x9a01, 0xd10c, 0x2000 },
- { 0x1a01, 0xd10b, 0x0000 },
- { 0x1a01, 0xd10d, 0x0000 },
- { 0x9a01, 0xd110, 0x2000 },
- { 0x1a01, 0xd10f, 0x0000 },
- { 0x1a01, 0xd111, 0x0000 },
- { 0x9a01, 0xd116, 0x3000 },
- { 0x9a01, 0xd114, 0x2000 },
- { 0x1a01, 0xd113, 0x0000 },
- { 0x1a01, 0xd115, 0x0000 },
- { 0x9a01, 0xd118, 0x2000 },
- { 0x1a01, 0xd117, 0x0000 },
- { 0x1a01, 0xd119, 0x0000 },
- { 0x9a01, 0xd122, 0x4000 },
- { 0x9a01, 0xd11e, 0x3000 },
- { 0x9a01, 0xd11c, 0x2000 },
- { 0x1a01, 0xd11b, 0x0000 },
- { 0x1a01, 0xd11d, 0x0000 },
- { 0x9a01, 0xd120, 0x2000 },
- { 0x1a01, 0xd11f, 0x0000 },
- { 0x1a01, 0xd121, 0x0000 },
- { 0x9a01, 0xd126, 0x3000 },
- { 0x9a01, 0xd124, 0x2000 },
- { 0x1a01, 0xd123, 0x0000 },
- { 0x1a01, 0xd125, 0x0000 },
- { 0x9a01, 0xd12b, 0x2000 },
- { 0x1a01, 0xd12a, 0x0000 },
- { 0x1a01, 0xd12c, 0x0000 },
- { 0x9a01, 0xd13d, 0x5000 },
- { 0x9a01, 0xd135, 0x4000 },
- { 0x9a01, 0xd131, 0x3000 },
- { 0x9a01, 0xd12f, 0x2000 },
- { 0x1a01, 0xd12e, 0x0000 },
- { 0x1a01, 0xd130, 0x0000 },
- { 0x9a01, 0xd133, 0x2000 },
- { 0x1a01, 0xd132, 0x0000 },
- { 0x1a01, 0xd134, 0x0000 },
- { 0x9a01, 0xd139, 0x3000 },
- { 0x9a01, 0xd137, 0x2000 },
- { 0x1a01, 0xd136, 0x0000 },
- { 0x1a01, 0xd138, 0x0000 },
- { 0x9a01, 0xd13b, 0x2000 },
- { 0x1a01, 0xd13a, 0x0000 },
- { 0x1a01, 0xd13c, 0x0000 },
- { 0x9a01, 0xd145, 0x4000 },
- { 0x9a01, 0xd141, 0x3000 },
- { 0x9a01, 0xd13f, 0x2000 },
- { 0x1a01, 0xd13e, 0x0000 },
- { 0x1a01, 0xd140, 0x0000 },
- { 0x9a01, 0xd143, 0x2000 },
- { 0x1a01, 0xd142, 0x0000 },
- { 0x1a01, 0xd144, 0x0000 },
- { 0x9a01, 0xd149, 0x3000 },
- { 0x9a01, 0xd147, 0x2000 },
- { 0x1a01, 0xd146, 0x0000 },
- { 0x1a01, 0xd148, 0x0000 },
- { 0x9a01, 0xd14b, 0x2000 },
- { 0x1a01, 0xd14a, 0x0000 },
- { 0x1a01, 0xd14c, 0x0000 },
- { 0x8a01, 0xd16d, 0x6000 },
- { 0x9a01, 0xd15d, 0x5000 },
- { 0x9a01, 0xd155, 0x4000 },
- { 0x9a01, 0xd151, 0x3000 },
- { 0x9a01, 0xd14f, 0x2000 },
- { 0x1a01, 0xd14e, 0x0000 },
- { 0x1a01, 0xd150, 0x0000 },
- { 0x9a01, 0xd153, 0x2000 },
- { 0x1a01, 0xd152, 0x0000 },
- { 0x1a01, 0xd154, 0x0000 },
- { 0x9a01, 0xd159, 0x3000 },
- { 0x9a01, 0xd157, 0x2000 },
- { 0x1a01, 0xd156, 0x0000 },
- { 0x1a01, 0xd158, 0x0000 },
- { 0x9a01, 0xd15b, 0x2000 },
- { 0x1a01, 0xd15a, 0x0000 },
- { 0x1a01, 0xd15c, 0x0000 },
- { 0x8a01, 0xd165, 0x4000 },
- { 0x9a01, 0xd161, 0x3000 },
- { 0x9a01, 0xd15f, 0x2000 },
- { 0x1a01, 0xd15e, 0x0000 },
- { 0x1a01, 0xd160, 0x0000 },
- { 0x9a01, 0xd163, 0x2000 },
- { 0x1a01, 0xd162, 0x0000 },
- { 0x1a01, 0xd164, 0x0000 },
- { 0x8c01, 0xd169, 0x3000 },
- { 0x8c01, 0xd167, 0x2000 },
- { 0x0a01, 0xd166, 0x0000 },
- { 0x0c01, 0xd168, 0x0000 },
- { 0x9a01, 0xd16b, 0x2000 },
- { 0x1a01, 0xd16a, 0x0000 },
- { 0x1a01, 0xd16c, 0x0000 },
- { 0x8c01, 0xd17d, 0x5000 },
- { 0x8101, 0xd175, 0x4000 },
- { 0x8a01, 0xd171, 0x3000 },
- { 0x8a01, 0xd16f, 0x2000 },
- { 0x0a01, 0xd16e, 0x0000 },
- { 0x0a01, 0xd170, 0x0000 },
- { 0x8101, 0xd173, 0x2000 },
- { 0x0a01, 0xd172, 0x0000 },
- { 0x0101, 0xd174, 0x0000 },
- { 0x8101, 0xd179, 0x3000 },
- { 0x8101, 0xd177, 0x2000 },
- { 0x0101, 0xd176, 0x0000 },
- { 0x0101, 0xd178, 0x0000 },
- { 0x8c01, 0xd17b, 0x2000 },
- { 0x0101, 0xd17a, 0x0000 },
- { 0x0c01, 0xd17c, 0x0000 },
- { 0x8c01, 0xd185, 0x4000 },
- { 0x8c01, 0xd181, 0x3000 },
- { 0x8c01, 0xd17f, 0x2000 },
- { 0x0c01, 0xd17e, 0x0000 },
- { 0x0c01, 0xd180, 0x0000 },
- { 0x9a01, 0xd183, 0x2000 },
- { 0x0c01, 0xd182, 0x0000 },
- { 0x1a01, 0xd184, 0x0000 },
- { 0x8c01, 0xd189, 0x3000 },
- { 0x8c01, 0xd187, 0x2000 },
- { 0x0c01, 0xd186, 0x0000 },
- { 0x0c01, 0xd188, 0x0000 },
- { 0x8c01, 0xd18b, 0x2000 },
- { 0x0c01, 0xd18a, 0x0000 },
- { 0x1a01, 0xd18c, 0x0000 },
- { 0x9a01, 0xd32f, 0x8000 },
- { 0x9a01, 0xd1cd, 0x7000 },
- { 0x8c01, 0xd1ad, 0x6000 },
- { 0x9a01, 0xd19d, 0x5000 },
- { 0x9a01, 0xd195, 0x4000 },
- { 0x9a01, 0xd191, 0x3000 },
- { 0x9a01, 0xd18f, 0x2000 },
- { 0x1a01, 0xd18e, 0x0000 },
- { 0x1a01, 0xd190, 0x0000 },
- { 0x9a01, 0xd193, 0x2000 },
- { 0x1a01, 0xd192, 0x0000 },
- { 0x1a01, 0xd194, 0x0000 },
- { 0x9a01, 0xd199, 0x3000 },
- { 0x9a01, 0xd197, 0x2000 },
- { 0x1a01, 0xd196, 0x0000 },
- { 0x1a01, 0xd198, 0x0000 },
- { 0x9a01, 0xd19b, 0x2000 },
- { 0x1a01, 0xd19a, 0x0000 },
- { 0x1a01, 0xd19c, 0x0000 },
- { 0x9a01, 0xd1a5, 0x4000 },
- { 0x9a01, 0xd1a1, 0x3000 },
- { 0x9a01, 0xd19f, 0x2000 },
- { 0x1a01, 0xd19e, 0x0000 },
- { 0x1a01, 0xd1a0, 0x0000 },
- { 0x9a01, 0xd1a3, 0x2000 },
- { 0x1a01, 0xd1a2, 0x0000 },
- { 0x1a01, 0xd1a4, 0x0000 },
- { 0x9a01, 0xd1a9, 0x3000 },
- { 0x9a01, 0xd1a7, 0x2000 },
- { 0x1a01, 0xd1a6, 0x0000 },
- { 0x1a01, 0xd1a8, 0x0000 },
- { 0x8c01, 0xd1ab, 0x2000 },
- { 0x0c01, 0xd1aa, 0x0000 },
- { 0x0c01, 0xd1ac, 0x0000 },
- { 0x9a01, 0xd1bd, 0x5000 },
- { 0x9a01, 0xd1b5, 0x4000 },
- { 0x9a01, 0xd1b1, 0x3000 },
- { 0x9a01, 0xd1af, 0x2000 },
- { 0x1a01, 0xd1ae, 0x0000 },
- { 0x1a01, 0xd1b0, 0x0000 },
- { 0x9a01, 0xd1b3, 0x2000 },
- { 0x1a01, 0xd1b2, 0x0000 },
- { 0x1a01, 0xd1b4, 0x0000 },
- { 0x9a01, 0xd1b9, 0x3000 },
- { 0x9a01, 0xd1b7, 0x2000 },
- { 0x1a01, 0xd1b6, 0x0000 },
- { 0x1a01, 0xd1b8, 0x0000 },
- { 0x9a01, 0xd1bb, 0x2000 },
- { 0x1a01, 0xd1ba, 0x0000 },
- { 0x1a01, 0xd1bc, 0x0000 },
- { 0x9a01, 0xd1c5, 0x4000 },
- { 0x9a01, 0xd1c1, 0x3000 },
- { 0x9a01, 0xd1bf, 0x2000 },
- { 0x1a01, 0xd1be, 0x0000 },
- { 0x1a01, 0xd1c0, 0x0000 },
- { 0x9a01, 0xd1c3, 0x2000 },
- { 0x1a01, 0xd1c2, 0x0000 },
- { 0x1a01, 0xd1c4, 0x0000 },
- { 0x9a01, 0xd1c9, 0x3000 },
- { 0x9a01, 0xd1c7, 0x2000 },
- { 0x1a01, 0xd1c6, 0x0000 },
- { 0x1a01, 0xd1c8, 0x0000 },
- { 0x9a01, 0xd1cb, 0x2000 },
- { 0x1a01, 0xd1ca, 0x0000 },
- { 0x1a01, 0xd1cc, 0x0000 },
- { 0x9a01, 0xd30f, 0x6000 },
- { 0x9a01, 0xd1dd, 0x5000 },
- { 0x9a01, 0xd1d5, 0x4000 },
- { 0x9a01, 0xd1d1, 0x3000 },
- { 0x9a01, 0xd1cf, 0x2000 },
- { 0x1a01, 0xd1ce, 0x0000 },
- { 0x1a01, 0xd1d0, 0x0000 },
- { 0x9a01, 0xd1d3, 0x2000 },
- { 0x1a01, 0xd1d2, 0x0000 },
- { 0x1a01, 0xd1d4, 0x0000 },
- { 0x9a01, 0xd1d9, 0x3000 },
- { 0x9a01, 0xd1d7, 0x2000 },
- { 0x1a01, 0xd1d6, 0x0000 },
- { 0x1a01, 0xd1d8, 0x0000 },
- { 0x9a01, 0xd1db, 0x2000 },
- { 0x1a01, 0xd1da, 0x0000 },
- { 0x1a01, 0xd1dc, 0x0000 },
- { 0x9a01, 0xd307, 0x4000 },
- { 0x9a01, 0xd303, 0x3000 },
- { 0x9a01, 0xd301, 0x2000 },
- { 0x1a01, 0xd300, 0x0000 },
- { 0x1a01, 0xd302, 0x0000 },
- { 0x9a01, 0xd305, 0x2000 },
- { 0x1a01, 0xd304, 0x0000 },
- { 0x1a01, 0xd306, 0x0000 },
- { 0x9a01, 0xd30b, 0x3000 },
- { 0x9a01, 0xd309, 0x2000 },
- { 0x1a01, 0xd308, 0x0000 },
- { 0x1a01, 0xd30a, 0x0000 },
- { 0x9a01, 0xd30d, 0x2000 },
- { 0x1a01, 0xd30c, 0x0000 },
- { 0x1a01, 0xd30e, 0x0000 },
- { 0x9a01, 0xd31f, 0x5000 },
- { 0x9a01, 0xd317, 0x4000 },
- { 0x9a01, 0xd313, 0x3000 },
- { 0x9a01, 0xd311, 0x2000 },
- { 0x1a01, 0xd310, 0x0000 },
- { 0x1a01, 0xd312, 0x0000 },
- { 0x9a01, 0xd315, 0x2000 },
- { 0x1a01, 0xd314, 0x0000 },
- { 0x1a01, 0xd316, 0x0000 },
- { 0x9a01, 0xd31b, 0x3000 },
- { 0x9a01, 0xd319, 0x2000 },
- { 0x1a01, 0xd318, 0x0000 },
- { 0x1a01, 0xd31a, 0x0000 },
- { 0x9a01, 0xd31d, 0x2000 },
- { 0x1a01, 0xd31c, 0x0000 },
- { 0x1a01, 0xd31e, 0x0000 },
- { 0x9a01, 0xd327, 0x4000 },
- { 0x9a01, 0xd323, 0x3000 },
- { 0x9a01, 0xd321, 0x2000 },
- { 0x1a01, 0xd320, 0x0000 },
- { 0x1a01, 0xd322, 0x0000 },
- { 0x9a01, 0xd325, 0x2000 },
- { 0x1a01, 0xd324, 0x0000 },
- { 0x1a01, 0xd326, 0x0000 },
- { 0x9a01, 0xd32b, 0x3000 },
- { 0x9a01, 0xd329, 0x2000 },
- { 0x1a01, 0xd328, 0x0000 },
- { 0x1a01, 0xd32a, 0x0000 },
- { 0x9a01, 0xd32d, 0x2000 },
- { 0x1a01, 0xd32c, 0x0000 },
- { 0x1a01, 0xd32e, 0x0000 },
- { 0x8901, 0xd418, 0x7000 },
- { 0x9a01, 0xd34f, 0x6000 },
- { 0x9a01, 0xd33f, 0x5000 },
- { 0x9a01, 0xd337, 0x4000 },
- { 0x9a01, 0xd333, 0x3000 },
- { 0x9a01, 0xd331, 0x2000 },
- { 0x1a01, 0xd330, 0x0000 },
- { 0x1a01, 0xd332, 0x0000 },
- { 0x9a01, 0xd335, 0x2000 },
- { 0x1a01, 0xd334, 0x0000 },
- { 0x1a01, 0xd336, 0x0000 },
- { 0x9a01, 0xd33b, 0x3000 },
- { 0x9a01, 0xd339, 0x2000 },
- { 0x1a01, 0xd338, 0x0000 },
- { 0x1a01, 0xd33a, 0x0000 },
- { 0x9a01, 0xd33d, 0x2000 },
- { 0x1a01, 0xd33c, 0x0000 },
- { 0x1a01, 0xd33e, 0x0000 },
- { 0x9a01, 0xd347, 0x4000 },
- { 0x9a01, 0xd343, 0x3000 },
- { 0x9a01, 0xd341, 0x2000 },
- { 0x1a01, 0xd340, 0x0000 },
- { 0x1a01, 0xd342, 0x0000 },
- { 0x9a01, 0xd345, 0x2000 },
- { 0x1a01, 0xd344, 0x0000 },
- { 0x1a01, 0xd346, 0x0000 },
- { 0x9a01, 0xd34b, 0x3000 },
- { 0x9a01, 0xd349, 0x2000 },
- { 0x1a01, 0xd348, 0x0000 },
- { 0x1a01, 0xd34a, 0x0000 },
- { 0x9a01, 0xd34d, 0x2000 },
- { 0x1a01, 0xd34c, 0x0000 },
- { 0x1a01, 0xd34e, 0x0000 },
- { 0x8901, 0xd408, 0x5000 },
- { 0x8901, 0xd400, 0x4000 },
- { 0x9a01, 0xd353, 0x3000 },
- { 0x9a01, 0xd351, 0x2000 },
- { 0x1a01, 0xd350, 0x0000 },
- { 0x1a01, 0xd352, 0x0000 },
- { 0x9a01, 0xd355, 0x2000 },
- { 0x1a01, 0xd354, 0x0000 },
- { 0x1a01, 0xd356, 0x0000 },
- { 0x8901, 0xd404, 0x3000 },
- { 0x8901, 0xd402, 0x2000 },
- { 0x0901, 0xd401, 0x0000 },
- { 0x0901, 0xd403, 0x0000 },
- { 0x8901, 0xd406, 0x2000 },
- { 0x0901, 0xd405, 0x0000 },
- { 0x0901, 0xd407, 0x0000 },
- { 0x8901, 0xd410, 0x4000 },
- { 0x8901, 0xd40c, 0x3000 },
- { 0x8901, 0xd40a, 0x2000 },
- { 0x0901, 0xd409, 0x0000 },
- { 0x0901, 0xd40b, 0x0000 },
- { 0x8901, 0xd40e, 0x2000 },
- { 0x0901, 0xd40d, 0x0000 },
- { 0x0901, 0xd40f, 0x0000 },
- { 0x8901, 0xd414, 0x3000 },
- { 0x8901, 0xd412, 0x2000 },
- { 0x0901, 0xd411, 0x0000 },
- { 0x0901, 0xd413, 0x0000 },
- { 0x8901, 0xd416, 0x2000 },
- { 0x0901, 0xd415, 0x0000 },
- { 0x0901, 0xd417, 0x0000 },
- { 0x8901, 0xd438, 0x6000 },
- { 0x8501, 0xd428, 0x5000 },
- { 0x8501, 0xd420, 0x4000 },
- { 0x8501, 0xd41c, 0x3000 },
- { 0x8501, 0xd41a, 0x2000 },
- { 0x0901, 0xd419, 0x0000 },
- { 0x0501, 0xd41b, 0x0000 },
- { 0x8501, 0xd41e, 0x2000 },
- { 0x0501, 0xd41d, 0x0000 },
- { 0x0501, 0xd41f, 0x0000 },
- { 0x8501, 0xd424, 0x3000 },
- { 0x8501, 0xd422, 0x2000 },
- { 0x0501, 0xd421, 0x0000 },
- { 0x0501, 0xd423, 0x0000 },
- { 0x8501, 0xd426, 0x2000 },
- { 0x0501, 0xd425, 0x0000 },
- { 0x0501, 0xd427, 0x0000 },
- { 0x8501, 0xd430, 0x4000 },
- { 0x8501, 0xd42c, 0x3000 },
- { 0x8501, 0xd42a, 0x2000 },
- { 0x0501, 0xd429, 0x0000 },
- { 0x0501, 0xd42b, 0x0000 },
- { 0x8501, 0xd42e, 0x2000 },
- { 0x0501, 0xd42d, 0x0000 },
- { 0x0501, 0xd42f, 0x0000 },
- { 0x8901, 0xd434, 0x3000 },
- { 0x8501, 0xd432, 0x2000 },
- { 0x0501, 0xd431, 0x0000 },
- { 0x0501, 0xd433, 0x0000 },
- { 0x8901, 0xd436, 0x2000 },
- { 0x0901, 0xd435, 0x0000 },
- { 0x0901, 0xd437, 0x0000 },
- { 0x8901, 0xd448, 0x5000 },
- { 0x8901, 0xd440, 0x4000 },
- { 0x8901, 0xd43c, 0x3000 },
- { 0x8901, 0xd43a, 0x2000 },
- { 0x0901, 0xd439, 0x0000 },
- { 0x0901, 0xd43b, 0x0000 },
- { 0x8901, 0xd43e, 0x2000 },
- { 0x0901, 0xd43d, 0x0000 },
- { 0x0901, 0xd43f, 0x0000 },
- { 0x8901, 0xd444, 0x3000 },
- { 0x8901, 0xd442, 0x2000 },
- { 0x0901, 0xd441, 0x0000 },
- { 0x0901, 0xd443, 0x0000 },
- { 0x8901, 0xd446, 0x2000 },
- { 0x0901, 0xd445, 0x0000 },
- { 0x0901, 0xd447, 0x0000 },
- { 0x8501, 0xd450, 0x4000 },
- { 0x8901, 0xd44c, 0x3000 },
- { 0x8901, 0xd44a, 0x2000 },
- { 0x0901, 0xd449, 0x0000 },
- { 0x0901, 0xd44b, 0x0000 },
- { 0x8501, 0xd44e, 0x2000 },
- { 0x0901, 0xd44d, 0x0000 },
- { 0x0501, 0xd44f, 0x0000 },
- { 0x8501, 0xd454, 0x3000 },
- { 0x8501, 0xd452, 0x2000 },
- { 0x0501, 0xd451, 0x0000 },
- { 0x0501, 0xd453, 0x0000 },
- { 0x8501, 0xd457, 0x2000 },
- { 0x0501, 0xd456, 0x0000 },
- { 0x0501, 0xd458, 0x0000 },
- { 0x8702, 0xf876, 0xb000 },
- { 0x8901, 0xd670, 0xa000 },
- { 0x8901, 0xd570, 0x9000 },
- { 0x8901, 0xd4e4, 0x8000 },
- { 0x8501, 0xd499, 0x7000 },
- { 0x8901, 0xd479, 0x6000 },
- { 0x8901, 0xd469, 0x5000 },
- { 0x8501, 0xd461, 0x4000 },
- { 0x8501, 0xd45d, 0x3000 },
- { 0x8501, 0xd45b, 0x2000 },
- { 0x0501, 0xd45a, 0x0000 },
- { 0x0501, 0xd45c, 0x0000 },
- { 0x8501, 0xd45f, 0x2000 },
- { 0x0501, 0xd45e, 0x0000 },
- { 0x0501, 0xd460, 0x0000 },
- { 0x8501, 0xd465, 0x3000 },
- { 0x8501, 0xd463, 0x2000 },
- { 0x0501, 0xd462, 0x0000 },
- { 0x0501, 0xd464, 0x0000 },
- { 0x8501, 0xd467, 0x2000 },
- { 0x0501, 0xd466, 0x0000 },
- { 0x0901, 0xd468, 0x0000 },
- { 0x8901, 0xd471, 0x4000 },
- { 0x8901, 0xd46d, 0x3000 },
- { 0x8901, 0xd46b, 0x2000 },
- { 0x0901, 0xd46a, 0x0000 },
- { 0x0901, 0xd46c, 0x0000 },
- { 0x8901, 0xd46f, 0x2000 },
- { 0x0901, 0xd46e, 0x0000 },
- { 0x0901, 0xd470, 0x0000 },
- { 0x8901, 0xd475, 0x3000 },
- { 0x8901, 0xd473, 0x2000 },
- { 0x0901, 0xd472, 0x0000 },
- { 0x0901, 0xd474, 0x0000 },
- { 0x8901, 0xd477, 0x2000 },
- { 0x0901, 0xd476, 0x0000 },
- { 0x0901, 0xd478, 0x0000 },
- { 0x8501, 0xd489, 0x5000 },
- { 0x8901, 0xd481, 0x4000 },
- { 0x8901, 0xd47d, 0x3000 },
- { 0x8901, 0xd47b, 0x2000 },
- { 0x0901, 0xd47a, 0x0000 },
- { 0x0901, 0xd47c, 0x0000 },
- { 0x8901, 0xd47f, 0x2000 },
- { 0x0901, 0xd47e, 0x0000 },
- { 0x0901, 0xd480, 0x0000 },
- { 0x8501, 0xd485, 0x3000 },
- { 0x8501, 0xd483, 0x2000 },
- { 0x0501, 0xd482, 0x0000 },
- { 0x0501, 0xd484, 0x0000 },
- { 0x8501, 0xd487, 0x2000 },
- { 0x0501, 0xd486, 0x0000 },
- { 0x0501, 0xd488, 0x0000 },
- { 0x8501, 0xd491, 0x4000 },
- { 0x8501, 0xd48d, 0x3000 },
- { 0x8501, 0xd48b, 0x2000 },
- { 0x0501, 0xd48a, 0x0000 },
- { 0x0501, 0xd48c, 0x0000 },
- { 0x8501, 0xd48f, 0x2000 },
- { 0x0501, 0xd48e, 0x0000 },
- { 0x0501, 0xd490, 0x0000 },
- { 0x8501, 0xd495, 0x3000 },
- { 0x8501, 0xd493, 0x2000 },
- { 0x0501, 0xd492, 0x0000 },
- { 0x0501, 0xd494, 0x0000 },
- { 0x8501, 0xd497, 0x2000 },
- { 0x0501, 0xd496, 0x0000 },
- { 0x0501, 0xd498, 0x0000 },
- { 0x8501, 0xd4c3, 0x6000 },
- { 0x8901, 0xd4b1, 0x5000 },
- { 0x8901, 0xd4a6, 0x4000 },
- { 0x8901, 0xd49e, 0x3000 },
- { 0x8501, 0xd49b, 0x2000 },
- { 0x0501, 0xd49a, 0x0000 },
- { 0x0901, 0xd49c, 0x0000 },
- { 0x8901, 0xd4a2, 0x2000 },
- { 0x0901, 0xd49f, 0x0000 },
- { 0x0901, 0xd4a5, 0x0000 },
- { 0x8901, 0xd4ac, 0x3000 },
- { 0x8901, 0xd4aa, 0x2000 },
- { 0x0901, 0xd4a9, 0x0000 },
- { 0x0901, 0xd4ab, 0x0000 },
- { 0x8901, 0xd4af, 0x2000 },
- { 0x0901, 0xd4ae, 0x0000 },
- { 0x0901, 0xd4b0, 0x0000 },
- { 0x8501, 0xd4b9, 0x4000 },
- { 0x8901, 0xd4b5, 0x3000 },
- { 0x8901, 0xd4b3, 0x2000 },
- { 0x0901, 0xd4b2, 0x0000 },
- { 0x0901, 0xd4b4, 0x0000 },
- { 0x8501, 0xd4b7, 0x2000 },
- { 0x0501, 0xd4b6, 0x0000 },
- { 0x0501, 0xd4b8, 0x0000 },
- { 0x8501, 0xd4bf, 0x3000 },
- { 0x8501, 0xd4bd, 0x2000 },
- { 0x0501, 0xd4bb, 0x0000 },
- { 0x0501, 0xd4be, 0x0000 },
- { 0x8501, 0xd4c1, 0x2000 },
- { 0x0501, 0xd4c0, 0x0000 },
- { 0x0501, 0xd4c2, 0x0000 },
- { 0x8901, 0xd4d4, 0x5000 },
- { 0x8501, 0xd4cc, 0x4000 },
- { 0x8501, 0xd4c8, 0x3000 },
- { 0x8501, 0xd4c6, 0x2000 },
- { 0x0501, 0xd4c5, 0x0000 },
- { 0x0501, 0xd4c7, 0x0000 },
- { 0x8501, 0xd4ca, 0x2000 },
- { 0x0501, 0xd4c9, 0x0000 },
- { 0x0501, 0xd4cb, 0x0000 },
- { 0x8901, 0xd4d0, 0x3000 },
- { 0x8501, 0xd4ce, 0x2000 },
- { 0x0501, 0xd4cd, 0x0000 },
- { 0x0501, 0xd4cf, 0x0000 },
- { 0x8901, 0xd4d2, 0x2000 },
- { 0x0901, 0xd4d1, 0x0000 },
- { 0x0901, 0xd4d3, 0x0000 },
- { 0x8901, 0xd4dc, 0x4000 },
- { 0x8901, 0xd4d8, 0x3000 },
- { 0x8901, 0xd4d6, 0x2000 },
- { 0x0901, 0xd4d5, 0x0000 },
- { 0x0901, 0xd4d7, 0x0000 },
- { 0x8901, 0xd4da, 0x2000 },
- { 0x0901, 0xd4d9, 0x0000 },
- { 0x0901, 0xd4db, 0x0000 },
- { 0x8901, 0xd4e0, 0x3000 },
- { 0x8901, 0xd4de, 0x2000 },
- { 0x0901, 0xd4dd, 0x0000 },
- { 0x0901, 0xd4df, 0x0000 },
- { 0x8901, 0xd4e2, 0x2000 },
- { 0x0901, 0xd4e1, 0x0000 },
- { 0x0901, 0xd4e3, 0x0000 },
- { 0x8501, 0xd529, 0x7000 },
- { 0x8901, 0xd504, 0x6000 },
- { 0x8501, 0xd4f4, 0x5000 },
- { 0x8501, 0xd4ec, 0x4000 },
- { 0x8901, 0xd4e8, 0x3000 },
- { 0x8901, 0xd4e6, 0x2000 },
- { 0x0901, 0xd4e5, 0x0000 },
- { 0x0901, 0xd4e7, 0x0000 },
- { 0x8501, 0xd4ea, 0x2000 },
- { 0x0901, 0xd4e9, 0x0000 },
- { 0x0501, 0xd4eb, 0x0000 },
- { 0x8501, 0xd4f0, 0x3000 },
- { 0x8501, 0xd4ee, 0x2000 },
- { 0x0501, 0xd4ed, 0x0000 },
- { 0x0501, 0xd4ef, 0x0000 },
- { 0x8501, 0xd4f2, 0x2000 },
- { 0x0501, 0xd4f1, 0x0000 },
- { 0x0501, 0xd4f3, 0x0000 },
- { 0x8501, 0xd4fc, 0x4000 },
- { 0x8501, 0xd4f8, 0x3000 },
- { 0x8501, 0xd4f6, 0x2000 },
- { 0x0501, 0xd4f5, 0x0000 },
- { 0x0501, 0xd4f7, 0x0000 },
- { 0x8501, 0xd4fa, 0x2000 },
- { 0x0501, 0xd4f9, 0x0000 },
- { 0x0501, 0xd4fb, 0x0000 },
- { 0x8501, 0xd500, 0x3000 },
- { 0x8501, 0xd4fe, 0x2000 },
- { 0x0501, 0xd4fd, 0x0000 },
- { 0x0501, 0xd4ff, 0x0000 },
- { 0x8501, 0xd502, 0x2000 },
- { 0x0501, 0xd501, 0x0000 },
- { 0x0501, 0xd503, 0x0000 },
- { 0x8901, 0xd518, 0x5000 },
- { 0x8901, 0xd50f, 0x4000 },
- { 0x8901, 0xd509, 0x3000 },
- { 0x8901, 0xd507, 0x2000 },
- { 0x0901, 0xd505, 0x0000 },
- { 0x0901, 0xd508, 0x0000 },
- { 0x8901, 0xd50d, 0x2000 },
- { 0x0901, 0xd50a, 0x0000 },
- { 0x0901, 0xd50e, 0x0000 },
- { 0x8901, 0xd513, 0x3000 },
- { 0x8901, 0xd511, 0x2000 },
- { 0x0901, 0xd510, 0x0000 },
- { 0x0901, 0xd512, 0x0000 },
- { 0x8901, 0xd516, 0x2000 },
- { 0x0901, 0xd514, 0x0000 },
- { 0x0901, 0xd517, 0x0000 },
- { 0x8501, 0xd521, 0x4000 },
- { 0x8901, 0xd51c, 0x3000 },
- { 0x8901, 0xd51a, 0x2000 },
- { 0x0901, 0xd519, 0x0000 },
- { 0x0901, 0xd51b, 0x0000 },
- { 0x8501, 0xd51f, 0x2000 },
- { 0x0501, 0xd51e, 0x0000 },
- { 0x0501, 0xd520, 0x0000 },
- { 0x8501, 0xd525, 0x3000 },
- { 0x8501, 0xd523, 0x2000 },
- { 0x0501, 0xd522, 0x0000 },
- { 0x0501, 0xd524, 0x0000 },
- { 0x8501, 0xd527, 0x2000 },
- { 0x0501, 0xd526, 0x0000 },
- { 0x0501, 0xd528, 0x0000 },
- { 0x8901, 0xd54f, 0x6000 },
- { 0x8901, 0xd539, 0x5000 },
- { 0x8501, 0xd531, 0x4000 },
- { 0x8501, 0xd52d, 0x3000 },
- { 0x8501, 0xd52b, 0x2000 },
- { 0x0501, 0xd52a, 0x0000 },
- { 0x0501, 0xd52c, 0x0000 },
- { 0x8501, 0xd52f, 0x2000 },
- { 0x0501, 0xd52e, 0x0000 },
- { 0x0501, 0xd530, 0x0000 },
- { 0x8501, 0xd535, 0x3000 },
- { 0x8501, 0xd533, 0x2000 },
- { 0x0501, 0xd532, 0x0000 },
- { 0x0501, 0xd534, 0x0000 },
- { 0x8501, 0xd537, 0x2000 },
- { 0x0501, 0xd536, 0x0000 },
- { 0x0901, 0xd538, 0x0000 },
- { 0x8901, 0xd543, 0x4000 },
- { 0x8901, 0xd53e, 0x3000 },
- { 0x8901, 0xd53c, 0x2000 },
- { 0x0901, 0xd53b, 0x0000 },
- { 0x0901, 0xd53d, 0x0000 },
- { 0x8901, 0xd541, 0x2000 },
- { 0x0901, 0xd540, 0x0000 },
- { 0x0901, 0xd542, 0x0000 },
- { 0x8901, 0xd54b, 0x3000 },
- { 0x8901, 0xd546, 0x2000 },
- { 0x0901, 0xd544, 0x0000 },
- { 0x0901, 0xd54a, 0x0000 },
- { 0x8901, 0xd54d, 0x2000 },
- { 0x0901, 0xd54c, 0x0000 },
- { 0x0901, 0xd54e, 0x0000 },
- { 0x8501, 0xd560, 0x5000 },
- { 0x8501, 0xd558, 0x4000 },
- { 0x8501, 0xd554, 0x3000 },
- { 0x8501, 0xd552, 0x2000 },
- { 0x0901, 0xd550, 0x0000 },
- { 0x0501, 0xd553, 0x0000 },
- { 0x8501, 0xd556, 0x2000 },
- { 0x0501, 0xd555, 0x0000 },
- { 0x0501, 0xd557, 0x0000 },
- { 0x8501, 0xd55c, 0x3000 },
- { 0x8501, 0xd55a, 0x2000 },
- { 0x0501, 0xd559, 0x0000 },
- { 0x0501, 0xd55b, 0x0000 },
- { 0x8501, 0xd55e, 0x2000 },
- { 0x0501, 0xd55d, 0x0000 },
- { 0x0501, 0xd55f, 0x0000 },
- { 0x8501, 0xd568, 0x4000 },
- { 0x8501, 0xd564, 0x3000 },
- { 0x8501, 0xd562, 0x2000 },
- { 0x0501, 0xd561, 0x0000 },
- { 0x0501, 0xd563, 0x0000 },
- { 0x8501, 0xd566, 0x2000 },
- { 0x0501, 0xd565, 0x0000 },
- { 0x0501, 0xd567, 0x0000 },
- { 0x8901, 0xd56c, 0x3000 },
- { 0x8501, 0xd56a, 0x2000 },
- { 0x0501, 0xd569, 0x0000 },
- { 0x0501, 0xd56b, 0x0000 },
- { 0x8901, 0xd56e, 0x2000 },
- { 0x0901, 0xd56d, 0x0000 },
- { 0x0901, 0xd56f, 0x0000 },
- { 0x8501, 0xd5f0, 0x8000 },
- { 0x8901, 0xd5b0, 0x7000 },
- { 0x8501, 0xd590, 0x6000 },
- { 0x8901, 0xd580, 0x5000 },
- { 0x8901, 0xd578, 0x4000 },
- { 0x8901, 0xd574, 0x3000 },
- { 0x8901, 0xd572, 0x2000 },
- { 0x0901, 0xd571, 0x0000 },
- { 0x0901, 0xd573, 0x0000 },
- { 0x8901, 0xd576, 0x2000 },
- { 0x0901, 0xd575, 0x0000 },
- { 0x0901, 0xd577, 0x0000 },
- { 0x8901, 0xd57c, 0x3000 },
- { 0x8901, 0xd57a, 0x2000 },
- { 0x0901, 0xd579, 0x0000 },
- { 0x0901, 0xd57b, 0x0000 },
- { 0x8901, 0xd57e, 0x2000 },
- { 0x0901, 0xd57d, 0x0000 },
- { 0x0901, 0xd57f, 0x0000 },
- { 0x8501, 0xd588, 0x4000 },
- { 0x8901, 0xd584, 0x3000 },
- { 0x8901, 0xd582, 0x2000 },
- { 0x0901, 0xd581, 0x0000 },
- { 0x0901, 0xd583, 0x0000 },
- { 0x8501, 0xd586, 0x2000 },
- { 0x0901, 0xd585, 0x0000 },
- { 0x0501, 0xd587, 0x0000 },
- { 0x8501, 0xd58c, 0x3000 },
- { 0x8501, 0xd58a, 0x2000 },
- { 0x0501, 0xd589, 0x0000 },
- { 0x0501, 0xd58b, 0x0000 },
- { 0x8501, 0xd58e, 0x2000 },
- { 0x0501, 0xd58d, 0x0000 },
- { 0x0501, 0xd58f, 0x0000 },
- { 0x8901, 0xd5a0, 0x5000 },
- { 0x8501, 0xd598, 0x4000 },
- { 0x8501, 0xd594, 0x3000 },
- { 0x8501, 0xd592, 0x2000 },
- { 0x0501, 0xd591, 0x0000 },
- { 0x0501, 0xd593, 0x0000 },
- { 0x8501, 0xd596, 0x2000 },
- { 0x0501, 0xd595, 0x0000 },
- { 0x0501, 0xd597, 0x0000 },
- { 0x8501, 0xd59c, 0x3000 },
- { 0x8501, 0xd59a, 0x2000 },
- { 0x0501, 0xd599, 0x0000 },
- { 0x0501, 0xd59b, 0x0000 },
- { 0x8501, 0xd59e, 0x2000 },
- { 0x0501, 0xd59d, 0x0000 },
- { 0x0501, 0xd59f, 0x0000 },
- { 0x8901, 0xd5a8, 0x4000 },
- { 0x8901, 0xd5a4, 0x3000 },
- { 0x8901, 0xd5a2, 0x2000 },
- { 0x0901, 0xd5a1, 0x0000 },
- { 0x0901, 0xd5a3, 0x0000 },
- { 0x8901, 0xd5a6, 0x2000 },
- { 0x0901, 0xd5a5, 0x0000 },
- { 0x0901, 0xd5a7, 0x0000 },
- { 0x8901, 0xd5ac, 0x3000 },
- { 0x8901, 0xd5aa, 0x2000 },
- { 0x0901, 0xd5a9, 0x0000 },
- { 0x0901, 0xd5ab, 0x0000 },
- { 0x8901, 0xd5ae, 0x2000 },
- { 0x0901, 0xd5ad, 0x0000 },
- { 0x0901, 0xd5af, 0x0000 },
- { 0x8501, 0xd5d0, 0x6000 },
- { 0x8501, 0xd5c0, 0x5000 },
- { 0x8901, 0xd5b8, 0x4000 },
- { 0x8901, 0xd5b4, 0x3000 },
- { 0x8901, 0xd5b2, 0x2000 },
- { 0x0901, 0xd5b1, 0x0000 },
- { 0x0901, 0xd5b3, 0x0000 },
- { 0x8901, 0xd5b6, 0x2000 },
- { 0x0901, 0xd5b5, 0x0000 },
- { 0x0901, 0xd5b7, 0x0000 },
- { 0x8501, 0xd5bc, 0x3000 },
- { 0x8501, 0xd5ba, 0x2000 },
- { 0x0901, 0xd5b9, 0x0000 },
- { 0x0501, 0xd5bb, 0x0000 },
- { 0x8501, 0xd5be, 0x2000 },
- { 0x0501, 0xd5bd, 0x0000 },
- { 0x0501, 0xd5bf, 0x0000 },
- { 0x8501, 0xd5c8, 0x4000 },
- { 0x8501, 0xd5c4, 0x3000 },
- { 0x8501, 0xd5c2, 0x2000 },
- { 0x0501, 0xd5c1, 0x0000 },
- { 0x0501, 0xd5c3, 0x0000 },
- { 0x8501, 0xd5c6, 0x2000 },
- { 0x0501, 0xd5c5, 0x0000 },
- { 0x0501, 0xd5c7, 0x0000 },
- { 0x8501, 0xd5cc, 0x3000 },
- { 0x8501, 0xd5ca, 0x2000 },
- { 0x0501, 0xd5c9, 0x0000 },
- { 0x0501, 0xd5cb, 0x0000 },
- { 0x8501, 0xd5ce, 0x2000 },
- { 0x0501, 0xd5cd, 0x0000 },
- { 0x0501, 0xd5cf, 0x0000 },
- { 0x8901, 0xd5e0, 0x5000 },
- { 0x8901, 0xd5d8, 0x4000 },
- { 0x8901, 0xd5d4, 0x3000 },
- { 0x8501, 0xd5d2, 0x2000 },
- { 0x0501, 0xd5d1, 0x0000 },
- { 0x0501, 0xd5d3, 0x0000 },
- { 0x8901, 0xd5d6, 0x2000 },
- { 0x0901, 0xd5d5, 0x0000 },
- { 0x0901, 0xd5d7, 0x0000 },
- { 0x8901, 0xd5dc, 0x3000 },
- { 0x8901, 0xd5da, 0x2000 },
- { 0x0901, 0xd5d9, 0x0000 },
- { 0x0901, 0xd5db, 0x0000 },
- { 0x8901, 0xd5de, 0x2000 },
- { 0x0901, 0xd5dd, 0x0000 },
- { 0x0901, 0xd5df, 0x0000 },
- { 0x8901, 0xd5e8, 0x4000 },
- { 0x8901, 0xd5e4, 0x3000 },
- { 0x8901, 0xd5e2, 0x2000 },
- { 0x0901, 0xd5e1, 0x0000 },
- { 0x0901, 0xd5e3, 0x0000 },
- { 0x8901, 0xd5e6, 0x2000 },
- { 0x0901, 0xd5e5, 0x0000 },
- { 0x0901, 0xd5e7, 0x0000 },
- { 0x8901, 0xd5ec, 0x3000 },
- { 0x8901, 0xd5ea, 0x2000 },
- { 0x0901, 0xd5e9, 0x0000 },
- { 0x0901, 0xd5eb, 0x0000 },
- { 0x8501, 0xd5ee, 0x2000 },
- { 0x0901, 0xd5ed, 0x0000 },
- { 0x0501, 0xd5ef, 0x0000 },
- { 0x8501, 0xd630, 0x7000 },
- { 0x8901, 0xd610, 0x6000 },
- { 0x8501, 0xd600, 0x5000 },
- { 0x8501, 0xd5f8, 0x4000 },
- { 0x8501, 0xd5f4, 0x3000 },
- { 0x8501, 0xd5f2, 0x2000 },
- { 0x0501, 0xd5f1, 0x0000 },
- { 0x0501, 0xd5f3, 0x0000 },
- { 0x8501, 0xd5f6, 0x2000 },
- { 0x0501, 0xd5f5, 0x0000 },
- { 0x0501, 0xd5f7, 0x0000 },
- { 0x8501, 0xd5fc, 0x3000 },
- { 0x8501, 0xd5fa, 0x2000 },
- { 0x0501, 0xd5f9, 0x0000 },
- { 0x0501, 0xd5fb, 0x0000 },
- { 0x8501, 0xd5fe, 0x2000 },
- { 0x0501, 0xd5fd, 0x0000 },
- { 0x0501, 0xd5ff, 0x0000 },
- { 0x8901, 0xd608, 0x4000 },
- { 0x8501, 0xd604, 0x3000 },
- { 0x8501, 0xd602, 0x2000 },
- { 0x0501, 0xd601, 0x0000 },
- { 0x0501, 0xd603, 0x0000 },
- { 0x8501, 0xd606, 0x2000 },
- { 0x0501, 0xd605, 0x0000 },
- { 0x0501, 0xd607, 0x0000 },
- { 0x8901, 0xd60c, 0x3000 },
- { 0x8901, 0xd60a, 0x2000 },
- { 0x0901, 0xd609, 0x0000 },
- { 0x0901, 0xd60b, 0x0000 },
- { 0x8901, 0xd60e, 0x2000 },
- { 0x0901, 0xd60d, 0x0000 },
- { 0x0901, 0xd60f, 0x0000 },
- { 0x8901, 0xd620, 0x5000 },
- { 0x8901, 0xd618, 0x4000 },
- { 0x8901, 0xd614, 0x3000 },
- { 0x8901, 0xd612, 0x2000 },
- { 0x0901, 0xd611, 0x0000 },
- { 0x0901, 0xd613, 0x0000 },
- { 0x8901, 0xd616, 0x2000 },
- { 0x0901, 0xd615, 0x0000 },
- { 0x0901, 0xd617, 0x0000 },
- { 0x8901, 0xd61c, 0x3000 },
- { 0x8901, 0xd61a, 0x2000 },
- { 0x0901, 0xd619, 0x0000 },
- { 0x0901, 0xd61b, 0x0000 },
- { 0x8901, 0xd61e, 0x2000 },
- { 0x0901, 0xd61d, 0x0000 },
- { 0x0901, 0xd61f, 0x0000 },
- { 0x8501, 0xd628, 0x4000 },
- { 0x8501, 0xd624, 0x3000 },
- { 0x8501, 0xd622, 0x2000 },
- { 0x0901, 0xd621, 0x0000 },
- { 0x0501, 0xd623, 0x0000 },
- { 0x8501, 0xd626, 0x2000 },
- { 0x0501, 0xd625, 0x0000 },
- { 0x0501, 0xd627, 0x0000 },
- { 0x8501, 0xd62c, 0x3000 },
- { 0x8501, 0xd62a, 0x2000 },
- { 0x0501, 0xd629, 0x0000 },
- { 0x0501, 0xd62b, 0x0000 },
- { 0x8501, 0xd62e, 0x2000 },
- { 0x0501, 0xd62d, 0x0000 },
- { 0x0501, 0xd62f, 0x0000 },
- { 0x8901, 0xd650, 0x6000 },
- { 0x8901, 0xd640, 0x5000 },
- { 0x8501, 0xd638, 0x4000 },
- { 0x8501, 0xd634, 0x3000 },
- { 0x8501, 0xd632, 0x2000 },
- { 0x0501, 0xd631, 0x0000 },
- { 0x0501, 0xd633, 0x0000 },
- { 0x8501, 0xd636, 0x2000 },
- { 0x0501, 0xd635, 0x0000 },
- { 0x0501, 0xd637, 0x0000 },
- { 0x8901, 0xd63c, 0x3000 },
- { 0x8501, 0xd63a, 0x2000 },
- { 0x0501, 0xd639, 0x0000 },
- { 0x0501, 0xd63b, 0x0000 },
- { 0x8901, 0xd63e, 0x2000 },
- { 0x0901, 0xd63d, 0x0000 },
- { 0x0901, 0xd63f, 0x0000 },
- { 0x8901, 0xd648, 0x4000 },
- { 0x8901, 0xd644, 0x3000 },
- { 0x8901, 0xd642, 0x2000 },
- { 0x0901, 0xd641, 0x0000 },
- { 0x0901, 0xd643, 0x0000 },
- { 0x8901, 0xd646, 0x2000 },
- { 0x0901, 0xd645, 0x0000 },
- { 0x0901, 0xd647, 0x0000 },
- { 0x8901, 0xd64c, 0x3000 },
- { 0x8901, 0xd64a, 0x2000 },
- { 0x0901, 0xd649, 0x0000 },
- { 0x0901, 0xd64b, 0x0000 },
- { 0x8901, 0xd64e, 0x2000 },
- { 0x0901, 0xd64d, 0x0000 },
- { 0x0901, 0xd64f, 0x0000 },
- { 0x8501, 0xd660, 0x5000 },
- { 0x8501, 0xd658, 0x4000 },
- { 0x8901, 0xd654, 0x3000 },
- { 0x8901, 0xd652, 0x2000 },
- { 0x0901, 0xd651, 0x0000 },
- { 0x0901, 0xd653, 0x0000 },
- { 0x8501, 0xd656, 0x2000 },
- { 0x0901, 0xd655, 0x0000 },
- { 0x0501, 0xd657, 0x0000 },
- { 0x8501, 0xd65c, 0x3000 },
- { 0x8501, 0xd65a, 0x2000 },
- { 0x0501, 0xd659, 0x0000 },
- { 0x0501, 0xd65b, 0x0000 },
- { 0x8501, 0xd65e, 0x2000 },
- { 0x0501, 0xd65d, 0x0000 },
- { 0x0501, 0xd65f, 0x0000 },
- { 0x8501, 0xd668, 0x4000 },
- { 0x8501, 0xd664, 0x3000 },
- { 0x8501, 0xd662, 0x2000 },
- { 0x0501, 0xd661, 0x0000 },
- { 0x0501, 0xd663, 0x0000 },
- { 0x8501, 0xd666, 0x2000 },
- { 0x0501, 0xd665, 0x0000 },
- { 0x0501, 0xd667, 0x0000 },
- { 0x8501, 0xd66c, 0x3000 },
- { 0x8501, 0xd66a, 0x2000 },
- { 0x0501, 0xd669, 0x0000 },
- { 0x0501, 0xd66b, 0x0000 },
- { 0x8501, 0xd66e, 0x2000 },
- { 0x0501, 0xd66d, 0x0000 },
- { 0x0501, 0xd66f, 0x0000 },
- { 0x8501, 0xd774, 0x9000 },
- { 0x8901, 0xd6f4, 0x8000 },
- { 0x8901, 0xd6b4, 0x7000 },
- { 0x8501, 0xd690, 0x6000 },
- { 0x8901, 0xd680, 0x5000 },
- { 0x8901, 0xd678, 0x4000 },
- { 0x8901, 0xd674, 0x3000 },
- { 0x8901, 0xd672, 0x2000 },
- { 0x0901, 0xd671, 0x0000 },
- { 0x0901, 0xd673, 0x0000 },
- { 0x8901, 0xd676, 0x2000 },
- { 0x0901, 0xd675, 0x0000 },
- { 0x0901, 0xd677, 0x0000 },
- { 0x8901, 0xd67c, 0x3000 },
- { 0x8901, 0xd67a, 0x2000 },
- { 0x0901, 0xd679, 0x0000 },
- { 0x0901, 0xd67b, 0x0000 },
- { 0x8901, 0xd67e, 0x2000 },
- { 0x0901, 0xd67d, 0x0000 },
- { 0x0901, 0xd67f, 0x0000 },
- { 0x8901, 0xd688, 0x4000 },
- { 0x8901, 0xd684, 0x3000 },
- { 0x8901, 0xd682, 0x2000 },
- { 0x0901, 0xd681, 0x0000 },
- { 0x0901, 0xd683, 0x0000 },
- { 0x8901, 0xd686, 0x2000 },
- { 0x0901, 0xd685, 0x0000 },
- { 0x0901, 0xd687, 0x0000 },
- { 0x8501, 0xd68c, 0x3000 },
- { 0x8501, 0xd68a, 0x2000 },
- { 0x0901, 0xd689, 0x0000 },
- { 0x0501, 0xd68b, 0x0000 },
- { 0x8501, 0xd68e, 0x2000 },
- { 0x0501, 0xd68d, 0x0000 },
- { 0x0501, 0xd68f, 0x0000 },
- { 0x8501, 0xd6a0, 0x5000 },
- { 0x8501, 0xd698, 0x4000 },
- { 0x8501, 0xd694, 0x3000 },
- { 0x8501, 0xd692, 0x2000 },
- { 0x0501, 0xd691, 0x0000 },
- { 0x0501, 0xd693, 0x0000 },
- { 0x8501, 0xd696, 0x2000 },
- { 0x0501, 0xd695, 0x0000 },
- { 0x0501, 0xd697, 0x0000 },
- { 0x8501, 0xd69c, 0x3000 },
- { 0x8501, 0xd69a, 0x2000 },
- { 0x0501, 0xd699, 0x0000 },
- { 0x0501, 0xd69b, 0x0000 },
- { 0x8501, 0xd69e, 0x2000 },
- { 0x0501, 0xd69d, 0x0000 },
- { 0x0501, 0xd69f, 0x0000 },
- { 0x8901, 0xd6ac, 0x4000 },
- { 0x8901, 0xd6a8, 0x3000 },
- { 0x8501, 0xd6a2, 0x2000 },
- { 0x0501, 0xd6a1, 0x0000 },
- { 0x0501, 0xd6a3, 0x0000 },
- { 0x8901, 0xd6aa, 0x2000 },
- { 0x0901, 0xd6a9, 0x0000 },
- { 0x0901, 0xd6ab, 0x0000 },
- { 0x8901, 0xd6b0, 0x3000 },
- { 0x8901, 0xd6ae, 0x2000 },
- { 0x0901, 0xd6ad, 0x0000 },
- { 0x0901, 0xd6af, 0x0000 },
- { 0x8901, 0xd6b2, 0x2000 },
- { 0x0901, 0xd6b1, 0x0000 },
- { 0x0901, 0xd6b3, 0x0000 },
- { 0x8501, 0xd6d4, 0x6000 },
- { 0x8501, 0xd6c4, 0x5000 },
- { 0x8901, 0xd6bc, 0x4000 },
- { 0x8901, 0xd6b8, 0x3000 },
- { 0x8901, 0xd6b6, 0x2000 },
- { 0x0901, 0xd6b5, 0x0000 },
- { 0x0901, 0xd6b7, 0x0000 },
- { 0x8901, 0xd6ba, 0x2000 },
- { 0x0901, 0xd6b9, 0x0000 },
- { 0x0901, 0xd6bb, 0x0000 },
- { 0x8901, 0xd6c0, 0x3000 },
- { 0x8901, 0xd6be, 0x2000 },
- { 0x0901, 0xd6bd, 0x0000 },
- { 0x0901, 0xd6bf, 0x0000 },
- { 0x8501, 0xd6c2, 0x2000 },
- { 0x1901, 0xd6c1, 0x0000 },
- { 0x0501, 0xd6c3, 0x0000 },
- { 0x8501, 0xd6cc, 0x4000 },
- { 0x8501, 0xd6c8, 0x3000 },
- { 0x8501, 0xd6c6, 0x2000 },
- { 0x0501, 0xd6c5, 0x0000 },
- { 0x0501, 0xd6c7, 0x0000 },
- { 0x8501, 0xd6ca, 0x2000 },
- { 0x0501, 0xd6c9, 0x0000 },
- { 0x0501, 0xd6cb, 0x0000 },
- { 0x8501, 0xd6d0, 0x3000 },
- { 0x8501, 0xd6ce, 0x2000 },
- { 0x0501, 0xd6cd, 0x0000 },
- { 0x0501, 0xd6cf, 0x0000 },
- { 0x8501, 0xd6d2, 0x2000 },
- { 0x0501, 0xd6d1, 0x0000 },
- { 0x0501, 0xd6d3, 0x0000 },
- { 0x8901, 0xd6e4, 0x5000 },
- { 0x8501, 0xd6dc, 0x4000 },
- { 0x8501, 0xd6d8, 0x3000 },
- { 0x8501, 0xd6d6, 0x2000 },
- { 0x0501, 0xd6d5, 0x0000 },
- { 0x0501, 0xd6d7, 0x0000 },
- { 0x8501, 0xd6da, 0x2000 },
- { 0x0501, 0xd6d9, 0x0000 },
- { 0x1901, 0xd6db, 0x0000 },
- { 0x8501, 0xd6e0, 0x3000 },
- { 0x8501, 0xd6de, 0x2000 },
- { 0x0501, 0xd6dd, 0x0000 },
- { 0x0501, 0xd6df, 0x0000 },
- { 0x8901, 0xd6e2, 0x2000 },
- { 0x0501, 0xd6e1, 0x0000 },
- { 0x0901, 0xd6e3, 0x0000 },
- { 0x8901, 0xd6ec, 0x4000 },
- { 0x8901, 0xd6e8, 0x3000 },
- { 0x8901, 0xd6e6, 0x2000 },
- { 0x0901, 0xd6e5, 0x0000 },
- { 0x0901, 0xd6e7, 0x0000 },
- { 0x8901, 0xd6ea, 0x2000 },
- { 0x0901, 0xd6e9, 0x0000 },
- { 0x0901, 0xd6eb, 0x0000 },
- { 0x8901, 0xd6f0, 0x3000 },
- { 0x8901, 0xd6ee, 0x2000 },
- { 0x0901, 0xd6ed, 0x0000 },
- { 0x0901, 0xd6ef, 0x0000 },
- { 0x8901, 0xd6f2, 0x2000 },
- { 0x0901, 0xd6f1, 0x0000 },
- { 0x0901, 0xd6f3, 0x0000 },
- { 0x8901, 0xd734, 0x7000 },
- { 0x8501, 0xd714, 0x6000 },
- { 0x8501, 0xd704, 0x5000 },
- { 0x8501, 0xd6fc, 0x4000 },
- { 0x8901, 0xd6f8, 0x3000 },
- { 0x8901, 0xd6f6, 0x2000 },
- { 0x0901, 0xd6f5, 0x0000 },
- { 0x0901, 0xd6f7, 0x0000 },
- { 0x8901, 0xd6fa, 0x2000 },
- { 0x0901, 0xd6f9, 0x0000 },
- { 0x1901, 0xd6fb, 0x0000 },
- { 0x8501, 0xd700, 0x3000 },
- { 0x8501, 0xd6fe, 0x2000 },
- { 0x0501, 0xd6fd, 0x0000 },
- { 0x0501, 0xd6ff, 0x0000 },
- { 0x8501, 0xd702, 0x2000 },
- { 0x0501, 0xd701, 0x0000 },
- { 0x0501, 0xd703, 0x0000 },
- { 0x8501, 0xd70c, 0x4000 },
- { 0x8501, 0xd708, 0x3000 },
- { 0x8501, 0xd706, 0x2000 },
- { 0x0501, 0xd705, 0x0000 },
- { 0x0501, 0xd707, 0x0000 },
- { 0x8501, 0xd70a, 0x2000 },
- { 0x0501, 0xd709, 0x0000 },
- { 0x0501, 0xd70b, 0x0000 },
- { 0x8501, 0xd710, 0x3000 },
- { 0x8501, 0xd70e, 0x2000 },
- { 0x0501, 0xd70d, 0x0000 },
- { 0x0501, 0xd70f, 0x0000 },
- { 0x8501, 0xd712, 0x2000 },
- { 0x0501, 0xd711, 0x0000 },
- { 0x0501, 0xd713, 0x0000 },
- { 0x8901, 0xd724, 0x5000 },
- { 0x8901, 0xd71c, 0x4000 },
- { 0x8501, 0xd718, 0x3000 },
- { 0x8501, 0xd716, 0x2000 },
- { 0x1901, 0xd715, 0x0000 },
- { 0x0501, 0xd717, 0x0000 },
- { 0x8501, 0xd71a, 0x2000 },
- { 0x0501, 0xd719, 0x0000 },
- { 0x0501, 0xd71b, 0x0000 },
- { 0x8901, 0xd720, 0x3000 },
- { 0x8901, 0xd71e, 0x2000 },
- { 0x0901, 0xd71d, 0x0000 },
- { 0x0901, 0xd71f, 0x0000 },
- { 0x8901, 0xd722, 0x2000 },
- { 0x0901, 0xd721, 0x0000 },
- { 0x0901, 0xd723, 0x0000 },
- { 0x8901, 0xd72c, 0x4000 },
- { 0x8901, 0xd728, 0x3000 },
- { 0x8901, 0xd726, 0x2000 },
- { 0x0901, 0xd725, 0x0000 },
- { 0x0901, 0xd727, 0x0000 },
- { 0x8901, 0xd72a, 0x2000 },
- { 0x0901, 0xd729, 0x0000 },
- { 0x0901, 0xd72b, 0x0000 },
- { 0x8901, 0xd730, 0x3000 },
- { 0x8901, 0xd72e, 0x2000 },
- { 0x0901, 0xd72d, 0x0000 },
- { 0x0901, 0xd72f, 0x0000 },
- { 0x8901, 0xd732, 0x2000 },
- { 0x0901, 0xd731, 0x0000 },
- { 0x0901, 0xd733, 0x0000 },
- { 0x8501, 0xd754, 0x6000 },
- { 0x8501, 0xd744, 0x5000 },
- { 0x8501, 0xd73c, 0x4000 },
- { 0x8501, 0xd738, 0x3000 },
- { 0x8501, 0xd736, 0x2000 },
- { 0x1901, 0xd735, 0x0000 },
- { 0x0501, 0xd737, 0x0000 },
- { 0x8501, 0xd73a, 0x2000 },
- { 0x0501, 0xd739, 0x0000 },
- { 0x0501, 0xd73b, 0x0000 },
- { 0x8501, 0xd740, 0x3000 },
- { 0x8501, 0xd73e, 0x2000 },
- { 0x0501, 0xd73d, 0x0000 },
- { 0x0501, 0xd73f, 0x0000 },
- { 0x8501, 0xd742, 0x2000 },
- { 0x0501, 0xd741, 0x0000 },
- { 0x0501, 0xd743, 0x0000 },
- { 0x8501, 0xd74c, 0x4000 },
- { 0x8501, 0xd748, 0x3000 },
- { 0x8501, 0xd746, 0x2000 },
- { 0x0501, 0xd745, 0x0000 },
- { 0x0501, 0xd747, 0x0000 },
- { 0x8501, 0xd74a, 0x2000 },
- { 0x0501, 0xd749, 0x0000 },
- { 0x0501, 0xd74b, 0x0000 },
- { 0x8501, 0xd750, 0x3000 },
- { 0x8501, 0xd74e, 0x2000 },
- { 0x0501, 0xd74d, 0x0000 },
- { 0x1901, 0xd74f, 0x0000 },
- { 0x8501, 0xd752, 0x2000 },
- { 0x0501, 0xd751, 0x0000 },
- { 0x0501, 0xd753, 0x0000 },
- { 0x8901, 0xd764, 0x5000 },
- { 0x8901, 0xd75c, 0x4000 },
- { 0x8901, 0xd758, 0x3000 },
- { 0x8901, 0xd756, 0x2000 },
- { 0x0501, 0xd755, 0x0000 },
- { 0x0901, 0xd757, 0x0000 },
- { 0x8901, 0xd75a, 0x2000 },
- { 0x0901, 0xd759, 0x0000 },
- { 0x0901, 0xd75b, 0x0000 },
- { 0x8901, 0xd760, 0x3000 },
- { 0x8901, 0xd75e, 0x2000 },
- { 0x0901, 0xd75d, 0x0000 },
- { 0x0901, 0xd75f, 0x0000 },
- { 0x8901, 0xd762, 0x2000 },
- { 0x0901, 0xd761, 0x0000 },
- { 0x0901, 0xd763, 0x0000 },
- { 0x8901, 0xd76c, 0x4000 },
- { 0x8901, 0xd768, 0x3000 },
- { 0x8901, 0xd766, 0x2000 },
- { 0x0901, 0xd765, 0x0000 },
- { 0x0901, 0xd767, 0x0000 },
- { 0x8901, 0xd76a, 0x2000 },
- { 0x0901, 0xd769, 0x0000 },
- { 0x0901, 0xd76b, 0x0000 },
- { 0x8501, 0xd770, 0x3000 },
- { 0x8901, 0xd76e, 0x2000 },
- { 0x0901, 0xd76d, 0x0000 },
- { 0x1901, 0xd76f, 0x0000 },
- { 0x8501, 0xd772, 0x2000 },
- { 0x0501, 0xd771, 0x0000 },
- { 0x0501, 0xd773, 0x0000 },
- { 0x8d01, 0xd7f8, 0x8000 },
- { 0x8501, 0xd7b4, 0x7000 },
- { 0x8901, 0xd794, 0x6000 },
- { 0x8501, 0xd784, 0x5000 },
- { 0x8501, 0xd77c, 0x4000 },
- { 0x8501, 0xd778, 0x3000 },
- { 0x8501, 0xd776, 0x2000 },
- { 0x0501, 0xd775, 0x0000 },
- { 0x0501, 0xd777, 0x0000 },
- { 0x8501, 0xd77a, 0x2000 },
- { 0x0501, 0xd779, 0x0000 },
- { 0x0501, 0xd77b, 0x0000 },
- { 0x8501, 0xd780, 0x3000 },
- { 0x8501, 0xd77e, 0x2000 },
- { 0x0501, 0xd77d, 0x0000 },
- { 0x0501, 0xd77f, 0x0000 },
- { 0x8501, 0xd782, 0x2000 },
- { 0x0501, 0xd781, 0x0000 },
- { 0x0501, 0xd783, 0x0000 },
- { 0x8501, 0xd78c, 0x4000 },
- { 0x8501, 0xd788, 0x3000 },
- { 0x8501, 0xd786, 0x2000 },
- { 0x0501, 0xd785, 0x0000 },
- { 0x0501, 0xd787, 0x0000 },
- { 0x8501, 0xd78a, 0x2000 },
- { 0x1901, 0xd789, 0x0000 },
- { 0x0501, 0xd78b, 0x0000 },
- { 0x8901, 0xd790, 0x3000 },
- { 0x8501, 0xd78e, 0x2000 },
- { 0x0501, 0xd78d, 0x0000 },
- { 0x0501, 0xd78f, 0x0000 },
- { 0x8901, 0xd792, 0x2000 },
- { 0x0901, 0xd791, 0x0000 },
- { 0x0901, 0xd793, 0x0000 },
- { 0x8901, 0xd7a4, 0x5000 },
- { 0x8901, 0xd79c, 0x4000 },
- { 0x8901, 0xd798, 0x3000 },
- { 0x8901, 0xd796, 0x2000 },
- { 0x0901, 0xd795, 0x0000 },
- { 0x0901, 0xd797, 0x0000 },
- { 0x8901, 0xd79a, 0x2000 },
- { 0x0901, 0xd799, 0x0000 },
- { 0x0901, 0xd79b, 0x0000 },
- { 0x8901, 0xd7a0, 0x3000 },
- { 0x8901, 0xd79e, 0x2000 },
- { 0x0901, 0xd79d, 0x0000 },
- { 0x0901, 0xd79f, 0x0000 },
- { 0x8901, 0xd7a2, 0x2000 },
- { 0x0901, 0xd7a1, 0x0000 },
- { 0x0901, 0xd7a3, 0x0000 },
- { 0x8501, 0xd7ac, 0x4000 },
- { 0x8901, 0xd7a8, 0x3000 },
- { 0x8901, 0xd7a6, 0x2000 },
- { 0x0901, 0xd7a5, 0x0000 },
- { 0x0901, 0xd7a7, 0x0000 },
- { 0x8501, 0xd7aa, 0x2000 },
- { 0x1901, 0xd7a9, 0x0000 },
- { 0x0501, 0xd7ab, 0x0000 },
- { 0x8501, 0xd7b0, 0x3000 },
- { 0x8501, 0xd7ae, 0x2000 },
- { 0x0501, 0xd7ad, 0x0000 },
- { 0x0501, 0xd7af, 0x0000 },
- { 0x8501, 0xd7b2, 0x2000 },
- { 0x0501, 0xd7b1, 0x0000 },
- { 0x0501, 0xd7b3, 0x0000 },
- { 0x8d01, 0xd7d8, 0x6000 },
- { 0x8501, 0xd7c4, 0x5000 },
- { 0x8501, 0xd7bc, 0x4000 },
- { 0x8501, 0xd7b8, 0x3000 },
- { 0x8501, 0xd7b6, 0x2000 },
- { 0x0501, 0xd7b5, 0x0000 },
- { 0x0501, 0xd7b7, 0x0000 },
- { 0x8501, 0xd7ba, 0x2000 },
- { 0x0501, 0xd7b9, 0x0000 },
- { 0x0501, 0xd7bb, 0x0000 },
- { 0x8501, 0xd7c0, 0x3000 },
- { 0x8501, 0xd7be, 0x2000 },
- { 0x0501, 0xd7bd, 0x0000 },
- { 0x0501, 0xd7bf, 0x0000 },
- { 0x8501, 0xd7c2, 0x2000 },
- { 0x0501, 0xd7c1, 0x0000 },
- { 0x1901, 0xd7c3, 0x0000 },
- { 0x8d01, 0xd7d0, 0x4000 },
- { 0x8501, 0xd7c8, 0x3000 },
- { 0x8501, 0xd7c6, 0x2000 },
- { 0x0501, 0xd7c5, 0x0000 },
- { 0x0501, 0xd7c7, 0x0000 },
- { 0x8d01, 0xd7ce, 0x2000 },
- { 0x0501, 0xd7c9, 0x0000 },
- { 0x0d01, 0xd7cf, 0x0000 },
- { 0x8d01, 0xd7d4, 0x3000 },
- { 0x8d01, 0xd7d2, 0x2000 },
- { 0x0d01, 0xd7d1, 0x0000 },
- { 0x0d01, 0xd7d3, 0x0000 },
- { 0x8d01, 0xd7d6, 0x2000 },
- { 0x0d01, 0xd7d5, 0x0000 },
- { 0x0d01, 0xd7d7, 0x0000 },
- { 0x8d01, 0xd7e8, 0x5000 },
- { 0x8d01, 0xd7e0, 0x4000 },
- { 0x8d01, 0xd7dc, 0x3000 },
- { 0x8d01, 0xd7da, 0x2000 },
- { 0x0d01, 0xd7d9, 0x0000 },
- { 0x0d01, 0xd7db, 0x0000 },
- { 0x8d01, 0xd7de, 0x2000 },
- { 0x0d01, 0xd7dd, 0x0000 },
- { 0x0d01, 0xd7df, 0x0000 },
- { 0x8d01, 0xd7e4, 0x3000 },
- { 0x8d01, 0xd7e2, 0x2000 },
- { 0x0d01, 0xd7e1, 0x0000 },
- { 0x0d01, 0xd7e3, 0x0000 },
- { 0x8d01, 0xd7e6, 0x2000 },
- { 0x0d01, 0xd7e5, 0x0000 },
- { 0x0d01, 0xd7e7, 0x0000 },
- { 0x8d01, 0xd7f0, 0x4000 },
- { 0x8d01, 0xd7ec, 0x3000 },
- { 0x8d01, 0xd7ea, 0x2000 },
- { 0x0d01, 0xd7e9, 0x0000 },
- { 0x0d01, 0xd7eb, 0x0000 },
- { 0x8d01, 0xd7ee, 0x2000 },
- { 0x0d01, 0xd7ed, 0x0000 },
- { 0x0d01, 0xd7ef, 0x0000 },
- { 0x8d01, 0xd7f4, 0x3000 },
- { 0x8d01, 0xd7f2, 0x2000 },
- { 0x0d01, 0xd7f1, 0x0000 },
- { 0x0d01, 0xd7f3, 0x0000 },
- { 0x8d01, 0xd7f6, 0x2000 },
- { 0x0d01, 0xd7f5, 0x0000 },
- { 0x0d01, 0xd7f7, 0x0000 },
- { 0x8702, 0xf836, 0x7000 },
- { 0x8702, 0xf816, 0x6000 },
- { 0x8702, 0xf806, 0x5000 },
- { 0x8702, 0x0000, 0x4000 },
- { 0x8d01, 0xd7fc, 0x3000 },
- { 0x8d01, 0xd7fa, 0x2000 },
- { 0x0d01, 0xd7f9, 0x0000 },
- { 0x0d01, 0xd7fb, 0x0000 },
- { 0x8d01, 0xd7fe, 0x2000 },
- { 0x0d01, 0xd7fd, 0x0000 },
- { 0x0d01, 0xd7ff, 0x0000 },
- { 0x8702, 0xf802, 0x3000 },
- { 0x8702, 0xf800, 0x2000 },
- { 0x0702, 0xa6d6, 0x0000 },
- { 0x0702, 0xf801, 0x0000 },
- { 0x8702, 0xf804, 0x2000 },
- { 0x0702, 0xf803, 0x0000 },
- { 0x0702, 0xf805, 0x0000 },
- { 0x8702, 0xf80e, 0x4000 },
- { 0x8702, 0xf80a, 0x3000 },
- { 0x8702, 0xf808, 0x2000 },
- { 0x0702, 0xf807, 0x0000 },
- { 0x0702, 0xf809, 0x0000 },
- { 0x8702, 0xf80c, 0x2000 },
- { 0x0702, 0xf80b, 0x0000 },
- { 0x0702, 0xf80d, 0x0000 },
- { 0x8702, 0xf812, 0x3000 },
- { 0x8702, 0xf810, 0x2000 },
- { 0x0702, 0xf80f, 0x0000 },
- { 0x0702, 0xf811, 0x0000 },
- { 0x8702, 0xf814, 0x2000 },
- { 0x0702, 0xf813, 0x0000 },
- { 0x0702, 0xf815, 0x0000 },
- { 0x8702, 0xf826, 0x5000 },
- { 0x8702, 0xf81e, 0x4000 },
- { 0x8702, 0xf81a, 0x3000 },
- { 0x8702, 0xf818, 0x2000 },
- { 0x0702, 0xf817, 0x0000 },
- { 0x0702, 0xf819, 0x0000 },
- { 0x8702, 0xf81c, 0x2000 },
- { 0x0702, 0xf81b, 0x0000 },
- { 0x0702, 0xf81d, 0x0000 },
- { 0x8702, 0xf822, 0x3000 },
- { 0x8702, 0xf820, 0x2000 },
- { 0x0702, 0xf81f, 0x0000 },
- { 0x0702, 0xf821, 0x0000 },
- { 0x8702, 0xf824, 0x2000 },
- { 0x0702, 0xf823, 0x0000 },
- { 0x0702, 0xf825, 0x0000 },
- { 0x8702, 0xf82e, 0x4000 },
- { 0x8702, 0xf82a, 0x3000 },
- { 0x8702, 0xf828, 0x2000 },
- { 0x0702, 0xf827, 0x0000 },
- { 0x0702, 0xf829, 0x0000 },
- { 0x8702, 0xf82c, 0x2000 },
- { 0x0702, 0xf82b, 0x0000 },
- { 0x0702, 0xf82d, 0x0000 },
- { 0x8702, 0xf832, 0x3000 },
- { 0x8702, 0xf830, 0x2000 },
- { 0x0702, 0xf82f, 0x0000 },
- { 0x0702, 0xf831, 0x0000 },
- { 0x8702, 0xf834, 0x2000 },
- { 0x0702, 0xf833, 0x0000 },
- { 0x0702, 0xf835, 0x0000 },
- { 0x8702, 0xf856, 0x6000 },
- { 0x8702, 0xf846, 0x5000 },
- { 0x8702, 0xf83e, 0x4000 },
- { 0x8702, 0xf83a, 0x3000 },
- { 0x8702, 0xf838, 0x2000 },
- { 0x0702, 0xf837, 0x0000 },
- { 0x0702, 0xf839, 0x0000 },
- { 0x8702, 0xf83c, 0x2000 },
- { 0x0702, 0xf83b, 0x0000 },
- { 0x0702, 0xf83d, 0x0000 },
- { 0x8702, 0xf842, 0x3000 },
- { 0x8702, 0xf840, 0x2000 },
- { 0x0702, 0xf83f, 0x0000 },
- { 0x0702, 0xf841, 0x0000 },
- { 0x8702, 0xf844, 0x2000 },
- { 0x0702, 0xf843, 0x0000 },
- { 0x0702, 0xf845, 0x0000 },
- { 0x8702, 0xf84e, 0x4000 },
- { 0x8702, 0xf84a, 0x3000 },
- { 0x8702, 0xf848, 0x2000 },
- { 0x0702, 0xf847, 0x0000 },
- { 0x0702, 0xf849, 0x0000 },
- { 0x8702, 0xf84c, 0x2000 },
- { 0x0702, 0xf84b, 0x0000 },
- { 0x0702, 0xf84d, 0x0000 },
- { 0x8702, 0xf852, 0x3000 },
- { 0x8702, 0xf850, 0x2000 },
- { 0x0702, 0xf84f, 0x0000 },
- { 0x0702, 0xf851, 0x0000 },
- { 0x8702, 0xf854, 0x2000 },
- { 0x0702, 0xf853, 0x0000 },
- { 0x0702, 0xf855, 0x0000 },
- { 0x8702, 0xf866, 0x5000 },
- { 0x8702, 0xf85e, 0x4000 },
- { 0x8702, 0xf85a, 0x3000 },
- { 0x8702, 0xf858, 0x2000 },
- { 0x0702, 0xf857, 0x0000 },
- { 0x0702, 0xf859, 0x0000 },
- { 0x8702, 0xf85c, 0x2000 },
- { 0x0702, 0xf85b, 0x0000 },
- { 0x0702, 0xf85d, 0x0000 },
- { 0x8702, 0xf862, 0x3000 },
- { 0x8702, 0xf860, 0x2000 },
- { 0x0702, 0xf85f, 0x0000 },
- { 0x0702, 0xf861, 0x0000 },
- { 0x8702, 0xf864, 0x2000 },
- { 0x0702, 0xf863, 0x0000 },
- { 0x0702, 0xf865, 0x0000 },
- { 0x8702, 0xf86e, 0x4000 },
- { 0x8702, 0xf86a, 0x3000 },
- { 0x8702, 0xf868, 0x2000 },
- { 0x0702, 0xf867, 0x0000 },
- { 0x0702, 0xf869, 0x0000 },
- { 0x8702, 0xf86c, 0x2000 },
- { 0x0702, 0xf86b, 0x0000 },
- { 0x0702, 0xf86d, 0x0000 },
- { 0x8702, 0xf872, 0x3000 },
- { 0x8702, 0xf870, 0x2000 },
- { 0x0702, 0xf86f, 0x0000 },
- { 0x0702, 0xf871, 0x0000 },
- { 0x8702, 0xf874, 0x2000 },
- { 0x0702, 0xf873, 0x0000 },
- { 0x0702, 0xf875, 0x0000 },
- { 0x8702, 0xf976, 0x9000 },
- { 0x8702, 0xf8f6, 0x8000 },
- { 0x8702, 0xf8b6, 0x7000 },
- { 0x8702, 0xf896, 0x6000 },
- { 0x8702, 0xf886, 0x5000 },
- { 0x8702, 0xf87e, 0x4000 },
- { 0x8702, 0xf87a, 0x3000 },
- { 0x8702, 0xf878, 0x2000 },
- { 0x0702, 0xf877, 0x0000 },
- { 0x0702, 0xf879, 0x0000 },
- { 0x8702, 0xf87c, 0x2000 },
- { 0x0702, 0xf87b, 0x0000 },
- { 0x0702, 0xf87d, 0x0000 },
- { 0x8702, 0xf882, 0x3000 },
- { 0x8702, 0xf880, 0x2000 },
- { 0x0702, 0xf87f, 0x0000 },
- { 0x0702, 0xf881, 0x0000 },
- { 0x8702, 0xf884, 0x2000 },
- { 0x0702, 0xf883, 0x0000 },
- { 0x0702, 0xf885, 0x0000 },
- { 0x8702, 0xf88e, 0x4000 },
- { 0x8702, 0xf88a, 0x3000 },
- { 0x8702, 0xf888, 0x2000 },
- { 0x0702, 0xf887, 0x0000 },
- { 0x0702, 0xf889, 0x0000 },
- { 0x8702, 0xf88c, 0x2000 },
- { 0x0702, 0xf88b, 0x0000 },
- { 0x0702, 0xf88d, 0x0000 },
- { 0x8702, 0xf892, 0x3000 },
- { 0x8702, 0xf890, 0x2000 },
- { 0x0702, 0xf88f, 0x0000 },
- { 0x0702, 0xf891, 0x0000 },
- { 0x8702, 0xf894, 0x2000 },
- { 0x0702, 0xf893, 0x0000 },
- { 0x0702, 0xf895, 0x0000 },
- { 0x8702, 0xf8a6, 0x5000 },
- { 0x8702, 0xf89e, 0x4000 },
- { 0x8702, 0xf89a, 0x3000 },
- { 0x8702, 0xf898, 0x2000 },
- { 0x0702, 0xf897, 0x0000 },
- { 0x0702, 0xf899, 0x0000 },
- { 0x8702, 0xf89c, 0x2000 },
- { 0x0702, 0xf89b, 0x0000 },
- { 0x0702, 0xf89d, 0x0000 },
- { 0x8702, 0xf8a2, 0x3000 },
- { 0x8702, 0xf8a0, 0x2000 },
- { 0x0702, 0xf89f, 0x0000 },
- { 0x0702, 0xf8a1, 0x0000 },
- { 0x8702, 0xf8a4, 0x2000 },
- { 0x0702, 0xf8a3, 0x0000 },
- { 0x0702, 0xf8a5, 0x0000 },
- { 0x8702, 0xf8ae, 0x4000 },
- { 0x8702, 0xf8aa, 0x3000 },
- { 0x8702, 0xf8a8, 0x2000 },
- { 0x0702, 0xf8a7, 0x0000 },
- { 0x0702, 0xf8a9, 0x0000 },
- { 0x8702, 0xf8ac, 0x2000 },
- { 0x0702, 0xf8ab, 0x0000 },
- { 0x0702, 0xf8ad, 0x0000 },
- { 0x8702, 0xf8b2, 0x3000 },
- { 0x8702, 0xf8b0, 0x2000 },
- { 0x0702, 0xf8af, 0x0000 },
- { 0x0702, 0xf8b1, 0x0000 },
- { 0x8702, 0xf8b4, 0x2000 },
- { 0x0702, 0xf8b3, 0x0000 },
- { 0x0702, 0xf8b5, 0x0000 },
- { 0x8702, 0xf8d6, 0x6000 },
- { 0x8702, 0xf8c6, 0x5000 },
- { 0x8702, 0xf8be, 0x4000 },
- { 0x8702, 0xf8ba, 0x3000 },
- { 0x8702, 0xf8b8, 0x2000 },
- { 0x0702, 0xf8b7, 0x0000 },
- { 0x0702, 0xf8b9, 0x0000 },
- { 0x8702, 0xf8bc, 0x2000 },
- { 0x0702, 0xf8bb, 0x0000 },
- { 0x0702, 0xf8bd, 0x0000 },
- { 0x8702, 0xf8c2, 0x3000 },
- { 0x8702, 0xf8c0, 0x2000 },
- { 0x0702, 0xf8bf, 0x0000 },
- { 0x0702, 0xf8c1, 0x0000 },
- { 0x8702, 0xf8c4, 0x2000 },
- { 0x0702, 0xf8c3, 0x0000 },
- { 0x0702, 0xf8c5, 0x0000 },
- { 0x8702, 0xf8ce, 0x4000 },
- { 0x8702, 0xf8ca, 0x3000 },
- { 0x8702, 0xf8c8, 0x2000 },
- { 0x0702, 0xf8c7, 0x0000 },
- { 0x0702, 0xf8c9, 0x0000 },
- { 0x8702, 0xf8cc, 0x2000 },
- { 0x0702, 0xf8cb, 0x0000 },
- { 0x0702, 0xf8cd, 0x0000 },
- { 0x8702, 0xf8d2, 0x3000 },
- { 0x8702, 0xf8d0, 0x2000 },
- { 0x0702, 0xf8cf, 0x0000 },
- { 0x0702, 0xf8d1, 0x0000 },
- { 0x8702, 0xf8d4, 0x2000 },
- { 0x0702, 0xf8d3, 0x0000 },
- { 0x0702, 0xf8d5, 0x0000 },
- { 0x8702, 0xf8e6, 0x5000 },
- { 0x8702, 0xf8de, 0x4000 },
- { 0x8702, 0xf8da, 0x3000 },
- { 0x8702, 0xf8d8, 0x2000 },
- { 0x0702, 0xf8d7, 0x0000 },
- { 0x0702, 0xf8d9, 0x0000 },
- { 0x8702, 0xf8dc, 0x2000 },
- { 0x0702, 0xf8db, 0x0000 },
- { 0x0702, 0xf8dd, 0x0000 },
- { 0x8702, 0xf8e2, 0x3000 },
- { 0x8702, 0xf8e0, 0x2000 },
- { 0x0702, 0xf8df, 0x0000 },
- { 0x0702, 0xf8e1, 0x0000 },
- { 0x8702, 0xf8e4, 0x2000 },
- { 0x0702, 0xf8e3, 0x0000 },
- { 0x0702, 0xf8e5, 0x0000 },
- { 0x8702, 0xf8ee, 0x4000 },
- { 0x8702, 0xf8ea, 0x3000 },
- { 0x8702, 0xf8e8, 0x2000 },
- { 0x0702, 0xf8e7, 0x0000 },
- { 0x0702, 0xf8e9, 0x0000 },
- { 0x8702, 0xf8ec, 0x2000 },
- { 0x0702, 0xf8eb, 0x0000 },
- { 0x0702, 0xf8ed, 0x0000 },
- { 0x8702, 0xf8f2, 0x3000 },
- { 0x8702, 0xf8f0, 0x2000 },
- { 0x0702, 0xf8ef, 0x0000 },
- { 0x0702, 0xf8f1, 0x0000 },
- { 0x8702, 0xf8f4, 0x2000 },
- { 0x0702, 0xf8f3, 0x0000 },
- { 0x0702, 0xf8f5, 0x0000 },
- { 0x8702, 0xf936, 0x7000 },
- { 0x8702, 0xf916, 0x6000 },
- { 0x8702, 0xf906, 0x5000 },
- { 0x8702, 0xf8fe, 0x4000 },
- { 0x8702, 0xf8fa, 0x3000 },
- { 0x8702, 0xf8f8, 0x2000 },
- { 0x0702, 0xf8f7, 0x0000 },
- { 0x0702, 0xf8f9, 0x0000 },
- { 0x8702, 0xf8fc, 0x2000 },
- { 0x0702, 0xf8fb, 0x0000 },
- { 0x0702, 0xf8fd, 0x0000 },
- { 0x8702, 0xf902, 0x3000 },
- { 0x8702, 0xf900, 0x2000 },
- { 0x0702, 0xf8ff, 0x0000 },
- { 0x0702, 0xf901, 0x0000 },
- { 0x8702, 0xf904, 0x2000 },
- { 0x0702, 0xf903, 0x0000 },
- { 0x0702, 0xf905, 0x0000 },
- { 0x8702, 0xf90e, 0x4000 },
- { 0x8702, 0xf90a, 0x3000 },
- { 0x8702, 0xf908, 0x2000 },
- { 0x0702, 0xf907, 0x0000 },
- { 0x0702, 0xf909, 0x0000 },
- { 0x8702, 0xf90c, 0x2000 },
- { 0x0702, 0xf90b, 0x0000 },
- { 0x0702, 0xf90d, 0x0000 },
- { 0x8702, 0xf912, 0x3000 },
- { 0x8702, 0xf910, 0x2000 },
- { 0x0702, 0xf90f, 0x0000 },
- { 0x0702, 0xf911, 0x0000 },
- { 0x8702, 0xf914, 0x2000 },
- { 0x0702, 0xf913, 0x0000 },
- { 0x0702, 0xf915, 0x0000 },
- { 0x8702, 0xf926, 0x5000 },
- { 0x8702, 0xf91e, 0x4000 },
- { 0x8702, 0xf91a, 0x3000 },
- { 0x8702, 0xf918, 0x2000 },
- { 0x0702, 0xf917, 0x0000 },
- { 0x0702, 0xf919, 0x0000 },
- { 0x8702, 0xf91c, 0x2000 },
- { 0x0702, 0xf91b, 0x0000 },
- { 0x0702, 0xf91d, 0x0000 },
- { 0x8702, 0xf922, 0x3000 },
- { 0x8702, 0xf920, 0x2000 },
- { 0x0702, 0xf91f, 0x0000 },
- { 0x0702, 0xf921, 0x0000 },
- { 0x8702, 0xf924, 0x2000 },
- { 0x0702, 0xf923, 0x0000 },
- { 0x0702, 0xf925, 0x0000 },
- { 0x8702, 0xf92e, 0x4000 },
- { 0x8702, 0xf92a, 0x3000 },
- { 0x8702, 0xf928, 0x2000 },
- { 0x0702, 0xf927, 0x0000 },
- { 0x0702, 0xf929, 0x0000 },
- { 0x8702, 0xf92c, 0x2000 },
- { 0x0702, 0xf92b, 0x0000 },
- { 0x0702, 0xf92d, 0x0000 },
- { 0x8702, 0xf932, 0x3000 },
- { 0x8702, 0xf930, 0x2000 },
- { 0x0702, 0xf92f, 0x0000 },
- { 0x0702, 0xf931, 0x0000 },
- { 0x8702, 0xf934, 0x2000 },
- { 0x0702, 0xf933, 0x0000 },
- { 0x0702, 0xf935, 0x0000 },
- { 0x8702, 0xf956, 0x6000 },
- { 0x8702, 0xf946, 0x5000 },
- { 0x8702, 0xf93e, 0x4000 },
- { 0x8702, 0xf93a, 0x3000 },
- { 0x8702, 0xf938, 0x2000 },
- { 0x0702, 0xf937, 0x0000 },
- { 0x0702, 0xf939, 0x0000 },
- { 0x8702, 0xf93c, 0x2000 },
- { 0x0702, 0xf93b, 0x0000 },
- { 0x0702, 0xf93d, 0x0000 },
- { 0x8702, 0xf942, 0x3000 },
- { 0x8702, 0xf940, 0x2000 },
- { 0x0702, 0xf93f, 0x0000 },
- { 0x0702, 0xf941, 0x0000 },
- { 0x8702, 0xf944, 0x2000 },
- { 0x0702, 0xf943, 0x0000 },
- { 0x0702, 0xf945, 0x0000 },
- { 0x8702, 0xf94e, 0x4000 },
- { 0x8702, 0xf94a, 0x3000 },
- { 0x8702, 0xf948, 0x2000 },
- { 0x0702, 0xf947, 0x0000 },
- { 0x0702, 0xf949, 0x0000 },
- { 0x8702, 0xf94c, 0x2000 },
- { 0x0702, 0xf94b, 0x0000 },
- { 0x0702, 0xf94d, 0x0000 },
- { 0x8702, 0xf952, 0x3000 },
- { 0x8702, 0xf950, 0x2000 },
- { 0x0702, 0xf94f, 0x0000 },
- { 0x0702, 0xf951, 0x0000 },
- { 0x8702, 0xf954, 0x2000 },
- { 0x0702, 0xf953, 0x0000 },
- { 0x0702, 0xf955, 0x0000 },
- { 0x8702, 0xf966, 0x5000 },
- { 0x8702, 0xf95e, 0x4000 },
- { 0x8702, 0xf95a, 0x3000 },
- { 0x8702, 0xf958, 0x2000 },
- { 0x0702, 0xf957, 0x0000 },
- { 0x0702, 0xf959, 0x0000 },
- { 0x8702, 0xf95c, 0x2000 },
- { 0x0702, 0xf95b, 0x0000 },
- { 0x0702, 0xf95d, 0x0000 },
- { 0x8702, 0xf962, 0x3000 },
- { 0x8702, 0xf960, 0x2000 },
- { 0x0702, 0xf95f, 0x0000 },
- { 0x0702, 0xf961, 0x0000 },
- { 0x8702, 0xf964, 0x2000 },
- { 0x0702, 0xf963, 0x0000 },
- { 0x0702, 0xf965, 0x0000 },
- { 0x8702, 0xf96e, 0x4000 },
- { 0x8702, 0xf96a, 0x3000 },
- { 0x8702, 0xf968, 0x2000 },
- { 0x0702, 0xf967, 0x0000 },
- { 0x0702, 0xf969, 0x0000 },
- { 0x8702, 0xf96c, 0x2000 },
- { 0x0702, 0xf96b, 0x0000 },
- { 0x0702, 0xf96d, 0x0000 },
- { 0x8702, 0xf972, 0x3000 },
- { 0x8702, 0xf970, 0x2000 },
- { 0x0702, 0xf96f, 0x0000 },
- { 0x0702, 0xf971, 0x0000 },
- { 0x8702, 0xf974, 0x2000 },
- { 0x0702, 0xf973, 0x0000 },
- { 0x0702, 0xf975, 0x0000 },
- { 0x810e, 0x0077, 0x9000 },
- { 0x8702, 0xf9f6, 0x8000 },
- { 0x8702, 0xf9b6, 0x7000 },
- { 0x8702, 0xf996, 0x6000 },
- { 0x8702, 0xf986, 0x5000 },
- { 0x8702, 0xf97e, 0x4000 },
- { 0x8702, 0xf97a, 0x3000 },
- { 0x8702, 0xf978, 0x2000 },
- { 0x0702, 0xf977, 0x0000 },
- { 0x0702, 0xf979, 0x0000 },
- { 0x8702, 0xf97c, 0x2000 },
- { 0x0702, 0xf97b, 0x0000 },
- { 0x0702, 0xf97d, 0x0000 },
- { 0x8702, 0xf982, 0x3000 },
- { 0x8702, 0xf980, 0x2000 },
- { 0x0702, 0xf97f, 0x0000 },
- { 0x0702, 0xf981, 0x0000 },
- { 0x8702, 0xf984, 0x2000 },
- { 0x0702, 0xf983, 0x0000 },
- { 0x0702, 0xf985, 0x0000 },
- { 0x8702, 0xf98e, 0x4000 },
- { 0x8702, 0xf98a, 0x3000 },
- { 0x8702, 0xf988, 0x2000 },
- { 0x0702, 0xf987, 0x0000 },
- { 0x0702, 0xf989, 0x0000 },
- { 0x8702, 0xf98c, 0x2000 },
- { 0x0702, 0xf98b, 0x0000 },
- { 0x0702, 0xf98d, 0x0000 },
- { 0x8702, 0xf992, 0x3000 },
- { 0x8702, 0xf990, 0x2000 },
- { 0x0702, 0xf98f, 0x0000 },
- { 0x0702, 0xf991, 0x0000 },
- { 0x8702, 0xf994, 0x2000 },
- { 0x0702, 0xf993, 0x0000 },
- { 0x0702, 0xf995, 0x0000 },
- { 0x8702, 0xf9a6, 0x5000 },
- { 0x8702, 0xf99e, 0x4000 },
- { 0x8702, 0xf99a, 0x3000 },
- { 0x8702, 0xf998, 0x2000 },
- { 0x0702, 0xf997, 0x0000 },
- { 0x0702, 0xf999, 0x0000 },
- { 0x8702, 0xf99c, 0x2000 },
- { 0x0702, 0xf99b, 0x0000 },
- { 0x0702, 0xf99d, 0x0000 },
- { 0x8702, 0xf9a2, 0x3000 },
- { 0x8702, 0xf9a0, 0x2000 },
- { 0x0702, 0xf99f, 0x0000 },
- { 0x0702, 0xf9a1, 0x0000 },
- { 0x8702, 0xf9a4, 0x2000 },
- { 0x0702, 0xf9a3, 0x0000 },
- { 0x0702, 0xf9a5, 0x0000 },
- { 0x8702, 0xf9ae, 0x4000 },
- { 0x8702, 0xf9aa, 0x3000 },
- { 0x8702, 0xf9a8, 0x2000 },
- { 0x0702, 0xf9a7, 0x0000 },
- { 0x0702, 0xf9a9, 0x0000 },
- { 0x8702, 0xf9ac, 0x2000 },
- { 0x0702, 0xf9ab, 0x0000 },
- { 0x0702, 0xf9ad, 0x0000 },
- { 0x8702, 0xf9b2, 0x3000 },
- { 0x8702, 0xf9b0, 0x2000 },
- { 0x0702, 0xf9af, 0x0000 },
- { 0x0702, 0xf9b1, 0x0000 },
- { 0x8702, 0xf9b4, 0x2000 },
- { 0x0702, 0xf9b3, 0x0000 },
- { 0x0702, 0xf9b5, 0x0000 },
- { 0x8702, 0xf9d6, 0x6000 },
- { 0x8702, 0xf9c6, 0x5000 },
- { 0x8702, 0xf9be, 0x4000 },
- { 0x8702, 0xf9ba, 0x3000 },
- { 0x8702, 0xf9b8, 0x2000 },
- { 0x0702, 0xf9b7, 0x0000 },
- { 0x0702, 0xf9b9, 0x0000 },
- { 0x8702, 0xf9bc, 0x2000 },
- { 0x0702, 0xf9bb, 0x0000 },
- { 0x0702, 0xf9bd, 0x0000 },
- { 0x8702, 0xf9c2, 0x3000 },
- { 0x8702, 0xf9c0, 0x2000 },
- { 0x0702, 0xf9bf, 0x0000 },
- { 0x0702, 0xf9c1, 0x0000 },
- { 0x8702, 0xf9c4, 0x2000 },
- { 0x0702, 0xf9c3, 0x0000 },
- { 0x0702, 0xf9c5, 0x0000 },
- { 0x8702, 0xf9ce, 0x4000 },
- { 0x8702, 0xf9ca, 0x3000 },
- { 0x8702, 0xf9c8, 0x2000 },
- { 0x0702, 0xf9c7, 0x0000 },
- { 0x0702, 0xf9c9, 0x0000 },
- { 0x8702, 0xf9cc, 0x2000 },
- { 0x0702, 0xf9cb, 0x0000 },
- { 0x0702, 0xf9cd, 0x0000 },
- { 0x8702, 0xf9d2, 0x3000 },
- { 0x8702, 0xf9d0, 0x2000 },
- { 0x0702, 0xf9cf, 0x0000 },
- { 0x0702, 0xf9d1, 0x0000 },
- { 0x8702, 0xf9d4, 0x2000 },
- { 0x0702, 0xf9d3, 0x0000 },
- { 0x0702, 0xf9d5, 0x0000 },
- { 0x8702, 0xf9e6, 0x5000 },
- { 0x8702, 0xf9de, 0x4000 },
- { 0x8702, 0xf9da, 0x3000 },
- { 0x8702, 0xf9d8, 0x2000 },
- { 0x0702, 0xf9d7, 0x0000 },
- { 0x0702, 0xf9d9, 0x0000 },
- { 0x8702, 0xf9dc, 0x2000 },
- { 0x0702, 0xf9db, 0x0000 },
- { 0x0702, 0xf9dd, 0x0000 },
- { 0x8702, 0xf9e2, 0x3000 },
- { 0x8702, 0xf9e0, 0x2000 },
- { 0x0702, 0xf9df, 0x0000 },
- { 0x0702, 0xf9e1, 0x0000 },
- { 0x8702, 0xf9e4, 0x2000 },
- { 0x0702, 0xf9e3, 0x0000 },
- { 0x0702, 0xf9e5, 0x0000 },
- { 0x8702, 0xf9ee, 0x4000 },
- { 0x8702, 0xf9ea, 0x3000 },
- { 0x8702, 0xf9e8, 0x2000 },
- { 0x0702, 0xf9e7, 0x0000 },
- { 0x0702, 0xf9e9, 0x0000 },
- { 0x8702, 0xf9ec, 0x2000 },
- { 0x0702, 0xf9eb, 0x0000 },
- { 0x0702, 0xf9ed, 0x0000 },
- { 0x8702, 0xf9f2, 0x3000 },
- { 0x8702, 0xf9f0, 0x2000 },
- { 0x0702, 0xf9ef, 0x0000 },
- { 0x0702, 0xf9f1, 0x0000 },
- { 0x8702, 0xf9f4, 0x2000 },
- { 0x0702, 0xf9f3, 0x0000 },
- { 0x0702, 0xf9f5, 0x0000 },
- { 0x810e, 0x0037, 0x7000 },
- { 0x8702, 0xfa16, 0x6000 },
- { 0x8702, 0xfa06, 0x5000 },
- { 0x8702, 0xf9fe, 0x4000 },
- { 0x8702, 0xf9fa, 0x3000 },
- { 0x8702, 0xf9f8, 0x2000 },
- { 0x0702, 0xf9f7, 0x0000 },
- { 0x0702, 0xf9f9, 0x0000 },
- { 0x8702, 0xf9fc, 0x2000 },
- { 0x0702, 0xf9fb, 0x0000 },
- { 0x0702, 0xf9fd, 0x0000 },
- { 0x8702, 0xfa02, 0x3000 },
- { 0x8702, 0xfa00, 0x2000 },
- { 0x0702, 0xf9ff, 0x0000 },
- { 0x0702, 0xfa01, 0x0000 },
- { 0x8702, 0xfa04, 0x2000 },
- { 0x0702, 0xfa03, 0x0000 },
- { 0x0702, 0xfa05, 0x0000 },
- { 0x8702, 0xfa0e, 0x4000 },
- { 0x8702, 0xfa0a, 0x3000 },
- { 0x8702, 0xfa08, 0x2000 },
- { 0x0702, 0xfa07, 0x0000 },
- { 0x0702, 0xfa09, 0x0000 },
- { 0x8702, 0xfa0c, 0x2000 },
- { 0x0702, 0xfa0b, 0x0000 },
- { 0x0702, 0xfa0d, 0x0000 },
- { 0x8702, 0xfa12, 0x3000 },
- { 0x8702, 0xfa10, 0x2000 },
- { 0x0702, 0xfa0f, 0x0000 },
- { 0x0702, 0xfa11, 0x0000 },
- { 0x8702, 0xfa14, 0x2000 },
- { 0x0702, 0xfa13, 0x0000 },
- { 0x0702, 0xfa15, 0x0000 },
- { 0x810e, 0x0027, 0x5000 },
- { 0x810e, 0x0001, 0x4000 },
- { 0x8702, 0xfa1a, 0x3000 },
- { 0x8702, 0xfa18, 0x2000 },
- { 0x0702, 0xfa17, 0x0000 },
- { 0x0702, 0xfa19, 0x0000 },
- { 0x8702, 0xfa1c, 0x2000 },
- { 0x0702, 0xfa1b, 0x0000 },
- { 0x0702, 0xfa1d, 0x0000 },
- { 0x810e, 0x0023, 0x3000 },
- { 0x810e, 0x0021, 0x2000 },
- { 0x010e, 0x0020, 0x0000 },
- { 0x010e, 0x0022, 0x0000 },
- { 0x810e, 0x0025, 0x2000 },
- { 0x010e, 0x0024, 0x0000 },
- { 0x010e, 0x0026, 0x0000 },
- { 0x810e, 0x002f, 0x4000 },
- { 0x810e, 0x002b, 0x3000 },
- { 0x810e, 0x0029, 0x2000 },
- { 0x010e, 0x0028, 0x0000 },
- { 0x010e, 0x002a, 0x0000 },
- { 0x810e, 0x002d, 0x2000 },
- { 0x010e, 0x002c, 0x0000 },
- { 0x010e, 0x002e, 0x0000 },
- { 0x810e, 0x0033, 0x3000 },
- { 0x810e, 0x0031, 0x2000 },
- { 0x010e, 0x0030, 0x0000 },
- { 0x010e, 0x0032, 0x0000 },
- { 0x810e, 0x0035, 0x2000 },
- { 0x010e, 0x0034, 0x0000 },
- { 0x010e, 0x0036, 0x0000 },
- { 0x810e, 0x0057, 0x6000 },
- { 0x810e, 0x0047, 0x5000 },
- { 0x810e, 0x003f, 0x4000 },
- { 0x810e, 0x003b, 0x3000 },
- { 0x810e, 0x0039, 0x2000 },
- { 0x010e, 0x0038, 0x0000 },
- { 0x010e, 0x003a, 0x0000 },
- { 0x810e, 0x003d, 0x2000 },
- { 0x010e, 0x003c, 0x0000 },
- { 0x010e, 0x003e, 0x0000 },
- { 0x810e, 0x0043, 0x3000 },
- { 0x810e, 0x0041, 0x2000 },
- { 0x010e, 0x0040, 0x0000 },
- { 0x010e, 0x0042, 0x0000 },
- { 0x810e, 0x0045, 0x2000 },
- { 0x010e, 0x0044, 0x0000 },
- { 0x010e, 0x0046, 0x0000 },
- { 0x810e, 0x004f, 0x4000 },
- { 0x810e, 0x004b, 0x3000 },
- { 0x810e, 0x0049, 0x2000 },
- { 0x010e, 0x0048, 0x0000 },
- { 0x010e, 0x004a, 0x0000 },
- { 0x810e, 0x004d, 0x2000 },
- { 0x010e, 0x004c, 0x0000 },
- { 0x010e, 0x004e, 0x0000 },
- { 0x810e, 0x0053, 0x3000 },
- { 0x810e, 0x0051, 0x2000 },
- { 0x010e, 0x0050, 0x0000 },
- { 0x010e, 0x0052, 0x0000 },
- { 0x810e, 0x0055, 0x2000 },
- { 0x010e, 0x0054, 0x0000 },
- { 0x010e, 0x0056, 0x0000 },
- { 0x810e, 0x0067, 0x5000 },
- { 0x810e, 0x005f, 0x4000 },
- { 0x810e, 0x005b, 0x3000 },
- { 0x810e, 0x0059, 0x2000 },
- { 0x010e, 0x0058, 0x0000 },
- { 0x010e, 0x005a, 0x0000 },
- { 0x810e, 0x005d, 0x2000 },
- { 0x010e, 0x005c, 0x0000 },
- { 0x010e, 0x005e, 0x0000 },
- { 0x810e, 0x0063, 0x3000 },
- { 0x810e, 0x0061, 0x2000 },
- { 0x010e, 0x0060, 0x0000 },
- { 0x010e, 0x0062, 0x0000 },
- { 0x810e, 0x0065, 0x2000 },
- { 0x010e, 0x0064, 0x0000 },
- { 0x010e, 0x0066, 0x0000 },
- { 0x810e, 0x006f, 0x4000 },
- { 0x810e, 0x006b, 0x3000 },
- { 0x810e, 0x0069, 0x2000 },
- { 0x010e, 0x0068, 0x0000 },
- { 0x010e, 0x006a, 0x0000 },
- { 0x810e, 0x006d, 0x2000 },
- { 0x010e, 0x006c, 0x0000 },
- { 0x010e, 0x006e, 0x0000 },
- { 0x810e, 0x0073, 0x3000 },
- { 0x810e, 0x0071, 0x2000 },
- { 0x010e, 0x0070, 0x0000 },
- { 0x010e, 0x0072, 0x0000 },
- { 0x810e, 0x0075, 0x2000 },
- { 0x010e, 0x0074, 0x0000 },
- { 0x010e, 0x0076, 0x0000 },
- { 0x8c0e, 0x0177, 0x8000 },
- { 0x8c0e, 0x0137, 0x7000 },
- { 0x8c0e, 0x0117, 0x6000 },
- { 0x8c0e, 0x0107, 0x5000 },
- { 0x810e, 0x007f, 0x4000 },
- { 0x810e, 0x007b, 0x3000 },
- { 0x810e, 0x0079, 0x2000 },
- { 0x010e, 0x0078, 0x0000 },
- { 0x010e, 0x007a, 0x0000 },
- { 0x810e, 0x007d, 0x2000 },
- { 0x010e, 0x007c, 0x0000 },
- { 0x010e, 0x007e, 0x0000 },
- { 0x8c0e, 0x0103, 0x3000 },
- { 0x8c0e, 0x0101, 0x2000 },
- { 0x0c0e, 0x0100, 0x0000 },
- { 0x0c0e, 0x0102, 0x0000 },
- { 0x8c0e, 0x0105, 0x2000 },
- { 0x0c0e, 0x0104, 0x0000 },
- { 0x0c0e, 0x0106, 0x0000 },
- { 0x8c0e, 0x010f, 0x4000 },
- { 0x8c0e, 0x010b, 0x3000 },
- { 0x8c0e, 0x0109, 0x2000 },
- { 0x0c0e, 0x0108, 0x0000 },
- { 0x0c0e, 0x010a, 0x0000 },
- { 0x8c0e, 0x010d, 0x2000 },
- { 0x0c0e, 0x010c, 0x0000 },
- { 0x0c0e, 0x010e, 0x0000 },
- { 0x8c0e, 0x0113, 0x3000 },
- { 0x8c0e, 0x0111, 0x2000 },
- { 0x0c0e, 0x0110, 0x0000 },
- { 0x0c0e, 0x0112, 0x0000 },
- { 0x8c0e, 0x0115, 0x2000 },
- { 0x0c0e, 0x0114, 0x0000 },
- { 0x0c0e, 0x0116, 0x0000 },
- { 0x8c0e, 0x0127, 0x5000 },
- { 0x8c0e, 0x011f, 0x4000 },
- { 0x8c0e, 0x011b, 0x3000 },
- { 0x8c0e, 0x0119, 0x2000 },
- { 0x0c0e, 0x0118, 0x0000 },
- { 0x0c0e, 0x011a, 0x0000 },
- { 0x8c0e, 0x011d, 0x2000 },
- { 0x0c0e, 0x011c, 0x0000 },
- { 0x0c0e, 0x011e, 0x0000 },
- { 0x8c0e, 0x0123, 0x3000 },
- { 0x8c0e, 0x0121, 0x2000 },
- { 0x0c0e, 0x0120, 0x0000 },
- { 0x0c0e, 0x0122, 0x0000 },
- { 0x8c0e, 0x0125, 0x2000 },
- { 0x0c0e, 0x0124, 0x0000 },
- { 0x0c0e, 0x0126, 0x0000 },
- { 0x8c0e, 0x012f, 0x4000 },
- { 0x8c0e, 0x012b, 0x3000 },
- { 0x8c0e, 0x0129, 0x2000 },
- { 0x0c0e, 0x0128, 0x0000 },
- { 0x0c0e, 0x012a, 0x0000 },
- { 0x8c0e, 0x012d, 0x2000 },
- { 0x0c0e, 0x012c, 0x0000 },
- { 0x0c0e, 0x012e, 0x0000 },
- { 0x8c0e, 0x0133, 0x3000 },
- { 0x8c0e, 0x0131, 0x2000 },
- { 0x0c0e, 0x0130, 0x0000 },
- { 0x0c0e, 0x0132, 0x0000 },
- { 0x8c0e, 0x0135, 0x2000 },
- { 0x0c0e, 0x0134, 0x0000 },
- { 0x0c0e, 0x0136, 0x0000 },
- { 0x8c0e, 0x0157, 0x6000 },
- { 0x8c0e, 0x0147, 0x5000 },
- { 0x8c0e, 0x013f, 0x4000 },
- { 0x8c0e, 0x013b, 0x3000 },
- { 0x8c0e, 0x0139, 0x2000 },
- { 0x0c0e, 0x0138, 0x0000 },
- { 0x0c0e, 0x013a, 0x0000 },
- { 0x8c0e, 0x013d, 0x2000 },
- { 0x0c0e, 0x013c, 0x0000 },
- { 0x0c0e, 0x013e, 0x0000 },
- { 0x8c0e, 0x0143, 0x3000 },
- { 0x8c0e, 0x0141, 0x2000 },
- { 0x0c0e, 0x0140, 0x0000 },
- { 0x0c0e, 0x0142, 0x0000 },
- { 0x8c0e, 0x0145, 0x2000 },
- { 0x0c0e, 0x0144, 0x0000 },
- { 0x0c0e, 0x0146, 0x0000 },
- { 0x8c0e, 0x014f, 0x4000 },
- { 0x8c0e, 0x014b, 0x3000 },
- { 0x8c0e, 0x0149, 0x2000 },
- { 0x0c0e, 0x0148, 0x0000 },
- { 0x0c0e, 0x014a, 0x0000 },
- { 0x8c0e, 0x014d, 0x2000 },
- { 0x0c0e, 0x014c, 0x0000 },
- { 0x0c0e, 0x014e, 0x0000 },
- { 0x8c0e, 0x0153, 0x3000 },
- { 0x8c0e, 0x0151, 0x2000 },
- { 0x0c0e, 0x0150, 0x0000 },
- { 0x0c0e, 0x0152, 0x0000 },
- { 0x8c0e, 0x0155, 0x2000 },
- { 0x0c0e, 0x0154, 0x0000 },
- { 0x0c0e, 0x0156, 0x0000 },
- { 0x8c0e, 0x0167, 0x5000 },
- { 0x8c0e, 0x015f, 0x4000 },
- { 0x8c0e, 0x015b, 0x3000 },
- { 0x8c0e, 0x0159, 0x2000 },
- { 0x0c0e, 0x0158, 0x0000 },
- { 0x0c0e, 0x015a, 0x0000 },
- { 0x8c0e, 0x015d, 0x2000 },
- { 0x0c0e, 0x015c, 0x0000 },
- { 0x0c0e, 0x015e, 0x0000 },
- { 0x8c0e, 0x0163, 0x3000 },
- { 0x8c0e, 0x0161, 0x2000 },
- { 0x0c0e, 0x0160, 0x0000 },
- { 0x0c0e, 0x0162, 0x0000 },
- { 0x8c0e, 0x0165, 0x2000 },
- { 0x0c0e, 0x0164, 0x0000 },
- { 0x0c0e, 0x0166, 0x0000 },
- { 0x8c0e, 0x016f, 0x4000 },
- { 0x8c0e, 0x016b, 0x3000 },
- { 0x8c0e, 0x0169, 0x2000 },
- { 0x0c0e, 0x0168, 0x0000 },
- { 0x0c0e, 0x016a, 0x0000 },
- { 0x8c0e, 0x016d, 0x2000 },
- { 0x0c0e, 0x016c, 0x0000 },
- { 0x0c0e, 0x016e, 0x0000 },
- { 0x8c0e, 0x0173, 0x3000 },
- { 0x8c0e, 0x0171, 0x2000 },
- { 0x0c0e, 0x0170, 0x0000 },
- { 0x0c0e, 0x0172, 0x0000 },
- { 0x8c0e, 0x0175, 0x2000 },
- { 0x0c0e, 0x0174, 0x0000 },
- { 0x0c0e, 0x0176, 0x0000 },
- { 0x8c0e, 0x01b7, 0x7000 },
- { 0x8c0e, 0x0197, 0x6000 },
- { 0x8c0e, 0x0187, 0x5000 },
- { 0x8c0e, 0x017f, 0x4000 },
- { 0x8c0e, 0x017b, 0x3000 },
- { 0x8c0e, 0x0179, 0x2000 },
- { 0x0c0e, 0x0178, 0x0000 },
- { 0x0c0e, 0x017a, 0x0000 },
- { 0x8c0e, 0x017d, 0x2000 },
- { 0x0c0e, 0x017c, 0x0000 },
- { 0x0c0e, 0x017e, 0x0000 },
- { 0x8c0e, 0x0183, 0x3000 },
- { 0x8c0e, 0x0181, 0x2000 },
- { 0x0c0e, 0x0180, 0x0000 },
- { 0x0c0e, 0x0182, 0x0000 },
- { 0x8c0e, 0x0185, 0x2000 },
- { 0x0c0e, 0x0184, 0x0000 },
- { 0x0c0e, 0x0186, 0x0000 },
- { 0x8c0e, 0x018f, 0x4000 },
- { 0x8c0e, 0x018b, 0x3000 },
- { 0x8c0e, 0x0189, 0x2000 },
- { 0x0c0e, 0x0188, 0x0000 },
- { 0x0c0e, 0x018a, 0x0000 },
- { 0x8c0e, 0x018d, 0x2000 },
- { 0x0c0e, 0x018c, 0x0000 },
- { 0x0c0e, 0x018e, 0x0000 },
- { 0x8c0e, 0x0193, 0x3000 },
- { 0x8c0e, 0x0191, 0x2000 },
- { 0x0c0e, 0x0190, 0x0000 },
- { 0x0c0e, 0x0192, 0x0000 },
- { 0x8c0e, 0x0195, 0x2000 },
- { 0x0c0e, 0x0194, 0x0000 },
- { 0x0c0e, 0x0196, 0x0000 },
- { 0x8c0e, 0x01a7, 0x5000 },
- { 0x8c0e, 0x019f, 0x4000 },
- { 0x8c0e, 0x019b, 0x3000 },
- { 0x8c0e, 0x0199, 0x2000 },
- { 0x0c0e, 0x0198, 0x0000 },
- { 0x0c0e, 0x019a, 0x0000 },
- { 0x8c0e, 0x019d, 0x2000 },
- { 0x0c0e, 0x019c, 0x0000 },
- { 0x0c0e, 0x019e, 0x0000 },
- { 0x8c0e, 0x01a3, 0x3000 },
- { 0x8c0e, 0x01a1, 0x2000 },
- { 0x0c0e, 0x01a0, 0x0000 },
- { 0x0c0e, 0x01a2, 0x0000 },
- { 0x8c0e, 0x01a5, 0x2000 },
- { 0x0c0e, 0x01a4, 0x0000 },
- { 0x0c0e, 0x01a6, 0x0000 },
- { 0x8c0e, 0x01af, 0x4000 },
- { 0x8c0e, 0x01ab, 0x3000 },
- { 0x8c0e, 0x01a9, 0x2000 },
- { 0x0c0e, 0x01a8, 0x0000 },
- { 0x0c0e, 0x01aa, 0x0000 },
- { 0x8c0e, 0x01ad, 0x2000 },
- { 0x0c0e, 0x01ac, 0x0000 },
- { 0x0c0e, 0x01ae, 0x0000 },
- { 0x8c0e, 0x01b3, 0x3000 },
- { 0x8c0e, 0x01b1, 0x2000 },
- { 0x0c0e, 0x01b0, 0x0000 },
- { 0x0c0e, 0x01b2, 0x0000 },
- { 0x8c0e, 0x01b5, 0x2000 },
- { 0x0c0e, 0x01b4, 0x0000 },
- { 0x0c0e, 0x01b6, 0x0000 },
- { 0x8c0e, 0x01d7, 0x6000 },
- { 0x8c0e, 0x01c7, 0x5000 },
- { 0x8c0e, 0x01bf, 0x4000 },
- { 0x8c0e, 0x01bb, 0x3000 },
- { 0x8c0e, 0x01b9, 0x2000 },
- { 0x0c0e, 0x01b8, 0x0000 },
- { 0x0c0e, 0x01ba, 0x0000 },
- { 0x8c0e, 0x01bd, 0x2000 },
- { 0x0c0e, 0x01bc, 0x0000 },
- { 0x0c0e, 0x01be, 0x0000 },
- { 0x8c0e, 0x01c3, 0x3000 },
- { 0x8c0e, 0x01c1, 0x2000 },
- { 0x0c0e, 0x01c0, 0x0000 },
- { 0x0c0e, 0x01c2, 0x0000 },
- { 0x8c0e, 0x01c5, 0x2000 },
- { 0x0c0e, 0x01c4, 0x0000 },
- { 0x0c0e, 0x01c6, 0x0000 },
- { 0x8c0e, 0x01cf, 0x4000 },
- { 0x8c0e, 0x01cb, 0x3000 },
- { 0x8c0e, 0x01c9, 0x2000 },
- { 0x0c0e, 0x01c8, 0x0000 },
- { 0x0c0e, 0x01ca, 0x0000 },
- { 0x8c0e, 0x01cd, 0x2000 },
- { 0x0c0e, 0x01cc, 0x0000 },
- { 0x0c0e, 0x01ce, 0x0000 },
- { 0x8c0e, 0x01d3, 0x3000 },
- { 0x8c0e, 0x01d1, 0x2000 },
- { 0x0c0e, 0x01d0, 0x0000 },
- { 0x0c0e, 0x01d2, 0x0000 },
- { 0x8c0e, 0x01d5, 0x2000 },
- { 0x0c0e, 0x01d4, 0x0000 },
- { 0x0c0e, 0x01d6, 0x0000 },
- { 0x8c0e, 0x01e7, 0x5000 },
- { 0x8c0e, 0x01df, 0x4000 },
- { 0x8c0e, 0x01db, 0x3000 },
- { 0x8c0e, 0x01d9, 0x2000 },
- { 0x0c0e, 0x01d8, 0x0000 },
- { 0x0c0e, 0x01da, 0x0000 },
- { 0x8c0e, 0x01dd, 0x2000 },
- { 0x0c0e, 0x01dc, 0x0000 },
- { 0x0c0e, 0x01de, 0x0000 },
- { 0x8c0e, 0x01e3, 0x3000 },
- { 0x8c0e, 0x01e1, 0x2000 },
- { 0x0c0e, 0x01e0, 0x0000 },
- { 0x0c0e, 0x01e2, 0x0000 },
- { 0x8c0e, 0x01e5, 0x2000 },
- { 0x0c0e, 0x01e4, 0x0000 },
- { 0x0c0e, 0x01e6, 0x0000 },
- { 0x8c0e, 0x01ef, 0x4000 },
- { 0x8c0e, 0x01eb, 0x3000 },
- { 0x8c0e, 0x01e9, 0x2000 },
- { 0x0c0e, 0x01e8, 0x0000 },
- { 0x0c0e, 0x01ea, 0x0000 },
- { 0x8c0e, 0x01ed, 0x2000 },
- { 0x0c0e, 0x01ec, 0x0000 },
- { 0x0c0e, 0x01ee, 0x0000 },
- { 0x830f, 0xfffd, 0x2000 },
- { 0x030f, 0x0000, 0x0000 },
- { 0x0310, 0x0000, 0x1000 },
- { 0x0310, 0xfffd, 0x0000 },
+ { 0x09800000, 0x0000001f },
+ { 0x09000020, 0x74000000 },
+ { 0x09800021, 0x54000002 },
+ { 0x09000024, 0x5c000000 },
+ { 0x09800025, 0x54000002 },
+ { 0x09000028, 0x58000000 },
+ { 0x09000029, 0x48000000 },
+ { 0x0900002a, 0x54000000 },
+ { 0x0900002b, 0x64000000 },
+ { 0x0900002c, 0x54000000 },
+ { 0x0900002d, 0x44000000 },
+ { 0x0980002e, 0x54000001 },
+ { 0x09800030, 0x34000009 },
+ { 0x0980003a, 0x54000001 },
+ { 0x0980003c, 0x64000002 },
+ { 0x0980003f, 0x54000001 },
+ { 0x21000041, 0x24000020 },
+ { 0x21000042, 0x24000020 },
+ { 0x21000043, 0x24000020 },
+ { 0x21000044, 0x24000020 },
+ { 0x21000045, 0x24000020 },
+ { 0x21000046, 0x24000020 },
+ { 0x21000047, 0x24000020 },
+ { 0x21000048, 0x24000020 },
+ { 0x21000049, 0x24000020 },
+ { 0x2100004a, 0x24000020 },
+ { 0x2100004b, 0x24000020 },
+ { 0x2100004c, 0x24000020 },
+ { 0x2100004d, 0x24000020 },
+ { 0x2100004e, 0x24000020 },
+ { 0x2100004f, 0x24000020 },
+ { 0x21000050, 0x24000020 },
+ { 0x21000051, 0x24000020 },
+ { 0x21000052, 0x24000020 },
+ { 0x21000053, 0x24000020 },
+ { 0x21000054, 0x24000020 },
+ { 0x21000055, 0x24000020 },
+ { 0x21000056, 0x24000020 },
+ { 0x21000057, 0x24000020 },
+ { 0x21000058, 0x24000020 },
+ { 0x21000059, 0x24000020 },
+ { 0x2100005a, 0x24000020 },
+ { 0x0900005b, 0x58000000 },
+ { 0x0900005c, 0x54000000 },
+ { 0x0900005d, 0x48000000 },
+ { 0x0900005e, 0x60000000 },
+ { 0x0900005f, 0x40000000 },
+ { 0x09000060, 0x60000000 },
+ { 0x21000061, 0x1400ffe0 },
+ { 0x21000062, 0x1400ffe0 },
+ { 0x21000063, 0x1400ffe0 },
+ { 0x21000064, 0x1400ffe0 },
+ { 0x21000065, 0x1400ffe0 },
+ { 0x21000066, 0x1400ffe0 },
+ { 0x21000067, 0x1400ffe0 },
+ { 0x21000068, 0x1400ffe0 },
+ { 0x21000069, 0x1400ffe0 },
+ { 0x2100006a, 0x1400ffe0 },
+ { 0x2100006b, 0x1400ffe0 },
+ { 0x2100006c, 0x1400ffe0 },
+ { 0x2100006d, 0x1400ffe0 },
+ { 0x2100006e, 0x1400ffe0 },
+ { 0x2100006f, 0x1400ffe0 },
+ { 0x21000070, 0x1400ffe0 },
+ { 0x21000071, 0x1400ffe0 },
+ { 0x21000072, 0x1400ffe0 },
+ { 0x21000073, 0x1400ffe0 },
+ { 0x21000074, 0x1400ffe0 },
+ { 0x21000075, 0x1400ffe0 },
+ { 0x21000076, 0x1400ffe0 },
+ { 0x21000077, 0x1400ffe0 },
+ { 0x21000078, 0x1400ffe0 },
+ { 0x21000079, 0x1400ffe0 },
+ { 0x2100007a, 0x1400ffe0 },
+ { 0x0900007b, 0x58000000 },
+ { 0x0900007c, 0x64000000 },
+ { 0x0900007d, 0x48000000 },
+ { 0x0900007e, 0x64000000 },
+ { 0x0980007f, 0x00000020 },
+ { 0x090000a0, 0x74000000 },
+ { 0x090000a1, 0x54000000 },
+ { 0x098000a2, 0x5c000003 },
+ { 0x098000a6, 0x68000001 },
+ { 0x090000a8, 0x60000000 },
+ { 0x090000a9, 0x68000000 },
+ { 0x210000aa, 0x14000000 },
+ { 0x090000ab, 0x50000000 },
+ { 0x090000ac, 0x64000000 },
+ { 0x090000ad, 0x04000000 },
+ { 0x090000ae, 0x68000000 },
+ { 0x090000af, 0x60000000 },
+ { 0x090000b0, 0x68000000 },
+ { 0x090000b1, 0x64000000 },
+ { 0x098000b2, 0x3c000001 },
+ { 0x090000b4, 0x60000000 },
+ { 0x090000b5, 0x140002e7 },
+ { 0x090000b6, 0x68000000 },
+ { 0x090000b7, 0x54000000 },
+ { 0x090000b8, 0x60000000 },
+ { 0x090000b9, 0x3c000000 },
+ { 0x210000ba, 0x14000000 },
+ { 0x090000bb, 0x4c000000 },
+ { 0x098000bc, 0x3c000002 },
+ { 0x090000bf, 0x54000000 },
+ { 0x210000c0, 0x24000020 },
+ { 0x210000c1, 0x24000020 },
+ { 0x210000c2, 0x24000020 },
+ { 0x210000c3, 0x24000020 },
+ { 0x210000c4, 0x24000020 },
+ { 0x210000c5, 0x24000020 },
+ { 0x210000c6, 0x24000020 },
+ { 0x210000c7, 0x24000020 },
+ { 0x210000c8, 0x24000020 },
+ { 0x210000c9, 0x24000020 },
+ { 0x210000ca, 0x24000020 },
+ { 0x210000cb, 0x24000020 },
+ { 0x210000cc, 0x24000020 },
+ { 0x210000cd, 0x24000020 },
+ { 0x210000ce, 0x24000020 },
+ { 0x210000cf, 0x24000020 },
+ { 0x210000d0, 0x24000020 },
+ { 0x210000d1, 0x24000020 },
+ { 0x210000d2, 0x24000020 },
+ { 0x210000d3, 0x24000020 },
+ { 0x210000d4, 0x24000020 },
+ { 0x210000d5, 0x24000020 },
+ { 0x210000d6, 0x24000020 },
+ { 0x090000d7, 0x64000000 },
+ { 0x210000d8, 0x24000020 },
+ { 0x210000d9, 0x24000020 },
+ { 0x210000da, 0x24000020 },
+ { 0x210000db, 0x24000020 },
+ { 0x210000dc, 0x24000020 },
+ { 0x210000dd, 0x24000020 },
+ { 0x210000de, 0x24000020 },
+ { 0x210000df, 0x14000000 },
+ { 0x210000e0, 0x1400ffe0 },
+ { 0x210000e1, 0x1400ffe0 },
+ { 0x210000e2, 0x1400ffe0 },
+ { 0x210000e3, 0x1400ffe0 },
+ { 0x210000e4, 0x1400ffe0 },
+ { 0x210000e5, 0x1400ffe0 },
+ { 0x210000e6, 0x1400ffe0 },
+ { 0x210000e7, 0x1400ffe0 },
+ { 0x210000e8, 0x1400ffe0 },
+ { 0x210000e9, 0x1400ffe0 },
+ { 0x210000ea, 0x1400ffe0 },
+ { 0x210000eb, 0x1400ffe0 },
+ { 0x210000ec, 0x1400ffe0 },
+ { 0x210000ed, 0x1400ffe0 },
+ { 0x210000ee, 0x1400ffe0 },
+ { 0x210000ef, 0x1400ffe0 },
+ { 0x210000f0, 0x1400ffe0 },
+ { 0x210000f1, 0x1400ffe0 },
+ { 0x210000f2, 0x1400ffe0 },
+ { 0x210000f3, 0x1400ffe0 },
+ { 0x210000f4, 0x1400ffe0 },
+ { 0x210000f5, 0x1400ffe0 },
+ { 0x210000f6, 0x1400ffe0 },
+ { 0x090000f7, 0x64000000 },
+ { 0x210000f8, 0x1400ffe0 },
+ { 0x210000f9, 0x1400ffe0 },
+ { 0x210000fa, 0x1400ffe0 },
+ { 0x210000fb, 0x1400ffe0 },
+ { 0x210000fc, 0x1400ffe0 },
+ { 0x210000fd, 0x1400ffe0 },
+ { 0x210000fe, 0x1400ffe0 },
+ { 0x210000ff, 0x14000079 },
+ { 0x21000100, 0x24000001 },
+ { 0x21000101, 0x1400ffff },
+ { 0x21000102, 0x24000001 },
+ { 0x21000103, 0x1400ffff },
+ { 0x21000104, 0x24000001 },
+ { 0x21000105, 0x1400ffff },
+ { 0x21000106, 0x24000001 },
+ { 0x21000107, 0x1400ffff },
+ { 0x21000108, 0x24000001 },
+ { 0x21000109, 0x1400ffff },
+ { 0x2100010a, 0x24000001 },
+ { 0x2100010b, 0x1400ffff },
+ { 0x2100010c, 0x24000001 },
+ { 0x2100010d, 0x1400ffff },
+ { 0x2100010e, 0x24000001 },
+ { 0x2100010f, 0x1400ffff },
+ { 0x21000110, 0x24000001 },
+ { 0x21000111, 0x1400ffff },
+ { 0x21000112, 0x24000001 },
+ { 0x21000113, 0x1400ffff },
+ { 0x21000114, 0x24000001 },
+ { 0x21000115, 0x1400ffff },
+ { 0x21000116, 0x24000001 },
+ { 0x21000117, 0x1400ffff },
+ { 0x21000118, 0x24000001 },
+ { 0x21000119, 0x1400ffff },
+ { 0x2100011a, 0x24000001 },
+ { 0x2100011b, 0x1400ffff },
+ { 0x2100011c, 0x24000001 },
+ { 0x2100011d, 0x1400ffff },
+ { 0x2100011e, 0x24000001 },
+ { 0x2100011f, 0x1400ffff },
+ { 0x21000120, 0x24000001 },
+ { 0x21000121, 0x1400ffff },
+ { 0x21000122, 0x24000001 },
+ { 0x21000123, 0x1400ffff },
+ { 0x21000124, 0x24000001 },
+ { 0x21000125, 0x1400ffff },
+ { 0x21000126, 0x24000001 },
+ { 0x21000127, 0x1400ffff },
+ { 0x21000128, 0x24000001 },
+ { 0x21000129, 0x1400ffff },
+ { 0x2100012a, 0x24000001 },
+ { 0x2100012b, 0x1400ffff },
+ { 0x2100012c, 0x24000001 },
+ { 0x2100012d, 0x1400ffff },
+ { 0x2100012e, 0x24000001 },
+ { 0x2100012f, 0x1400ffff },
+ { 0x21000130, 0x2400ff39 },
+ { 0x21000131, 0x1400ff18 },
+ { 0x21000132, 0x24000001 },
+ { 0x21000133, 0x1400ffff },
+ { 0x21000134, 0x24000001 },
+ { 0x21000135, 0x1400ffff },
+ { 0x21000136, 0x24000001 },
+ { 0x21000137, 0x1400ffff },
+ { 0x21000138, 0x14000000 },
+ { 0x21000139, 0x24000001 },
+ { 0x2100013a, 0x1400ffff },
+ { 0x2100013b, 0x24000001 },
+ { 0x2100013c, 0x1400ffff },
+ { 0x2100013d, 0x24000001 },
+ { 0x2100013e, 0x1400ffff },
+ { 0x2100013f, 0x24000001 },
+ { 0x21000140, 0x1400ffff },
+ { 0x21000141, 0x24000001 },
+ { 0x21000142, 0x1400ffff },
+ { 0x21000143, 0x24000001 },
+ { 0x21000144, 0x1400ffff },
+ { 0x21000145, 0x24000001 },
+ { 0x21000146, 0x1400ffff },
+ { 0x21000147, 0x24000001 },
+ { 0x21000148, 0x1400ffff },
+ { 0x21000149, 0x14000000 },
+ { 0x2100014a, 0x24000001 },
+ { 0x2100014b, 0x1400ffff },
+ { 0x2100014c, 0x24000001 },
+ { 0x2100014d, 0x1400ffff },
+ { 0x2100014e, 0x24000001 },
+ { 0x2100014f, 0x1400ffff },
+ { 0x21000150, 0x24000001 },
+ { 0x21000151, 0x1400ffff },
+ { 0x21000152, 0x24000001 },
+ { 0x21000153, 0x1400ffff },
+ { 0x21000154, 0x24000001 },
+ { 0x21000155, 0x1400ffff },
+ { 0x21000156, 0x24000001 },
+ { 0x21000157, 0x1400ffff },
+ { 0x21000158, 0x24000001 },
+ { 0x21000159, 0x1400ffff },
+ { 0x2100015a, 0x24000001 },
+ { 0x2100015b, 0x1400ffff },
+ { 0x2100015c, 0x24000001 },
+ { 0x2100015d, 0x1400ffff },
+ { 0x2100015e, 0x24000001 },
+ { 0x2100015f, 0x1400ffff },
+ { 0x21000160, 0x24000001 },
+ { 0x21000161, 0x1400ffff },
+ { 0x21000162, 0x24000001 },
+ { 0x21000163, 0x1400ffff },
+ { 0x21000164, 0x24000001 },
+ { 0x21000165, 0x1400ffff },
+ { 0x21000166, 0x24000001 },
+ { 0x21000167, 0x1400ffff },
+ { 0x21000168, 0x24000001 },
+ { 0x21000169, 0x1400ffff },
+ { 0x2100016a, 0x24000001 },
+ { 0x2100016b, 0x1400ffff },
+ { 0x2100016c, 0x24000001 },
+ { 0x2100016d, 0x1400ffff },
+ { 0x2100016e, 0x24000001 },
+ { 0x2100016f, 0x1400ffff },
+ { 0x21000170, 0x24000001 },
+ { 0x21000171, 0x1400ffff },
+ { 0x21000172, 0x24000001 },
+ { 0x21000173, 0x1400ffff },
+ { 0x21000174, 0x24000001 },
+ { 0x21000175, 0x1400ffff },
+ { 0x21000176, 0x24000001 },
+ { 0x21000177, 0x1400ffff },
+ { 0x21000178, 0x2400ff87 },
+ { 0x21000179, 0x24000001 },
+ { 0x2100017a, 0x1400ffff },
+ { 0x2100017b, 0x24000001 },
+ { 0x2100017c, 0x1400ffff },
+ { 0x2100017d, 0x24000001 },
+ { 0x2100017e, 0x1400ffff },
+ { 0x2100017f, 0x1400fed4 },
+ { 0x21000180, 0x14000000 },
+ { 0x21000181, 0x240000d2 },
+ { 0x21000182, 0x24000001 },
+ { 0x21000183, 0x1400ffff },
+ { 0x21000184, 0x24000001 },
+ { 0x21000185, 0x1400ffff },
+ { 0x21000186, 0x240000ce },
+ { 0x21000187, 0x24000001 },
+ { 0x21000188, 0x1400ffff },
+ { 0x21000189, 0x240000cd },
+ { 0x2100018a, 0x240000cd },
+ { 0x2100018b, 0x24000001 },
+ { 0x2100018c, 0x1400ffff },
+ { 0x2100018d, 0x14000000 },
+ { 0x2100018e, 0x2400004f },
+ { 0x2100018f, 0x240000ca },
+ { 0x21000190, 0x240000cb },
+ { 0x21000191, 0x24000001 },
+ { 0x21000192, 0x1400ffff },
+ { 0x21000193, 0x240000cd },
+ { 0x21000194, 0x240000cf },
+ { 0x21000195, 0x14000061 },
+ { 0x21000196, 0x240000d3 },
+ { 0x21000197, 0x240000d1 },
+ { 0x21000198, 0x24000001 },
+ { 0x21000199, 0x1400ffff },
+ { 0x2100019a, 0x140000a3 },
+ { 0x2100019b, 0x14000000 },
+ { 0x2100019c, 0x240000d3 },
+ { 0x2100019d, 0x240000d5 },
+ { 0x2100019e, 0x14000082 },
+ { 0x2100019f, 0x240000d6 },
+ { 0x210001a0, 0x24000001 },
+ { 0x210001a1, 0x1400ffff },
+ { 0x210001a2, 0x24000001 },
+ { 0x210001a3, 0x1400ffff },
+ { 0x210001a4, 0x24000001 },
+ { 0x210001a5, 0x1400ffff },
+ { 0x210001a6, 0x240000da },
+ { 0x210001a7, 0x24000001 },
+ { 0x210001a8, 0x1400ffff },
+ { 0x210001a9, 0x240000da },
+ { 0x218001aa, 0x14000001 },
+ { 0x210001ac, 0x24000001 },
+ { 0x210001ad, 0x1400ffff },
+ { 0x210001ae, 0x240000da },
+ { 0x210001af, 0x24000001 },
+ { 0x210001b0, 0x1400ffff },
+ { 0x210001b1, 0x240000d9 },
+ { 0x210001b2, 0x240000d9 },
+ { 0x210001b3, 0x24000001 },
+ { 0x210001b4, 0x1400ffff },
+ { 0x210001b5, 0x24000001 },
+ { 0x210001b6, 0x1400ffff },
+ { 0x210001b7, 0x240000db },
+ { 0x210001b8, 0x24000001 },
+ { 0x210001b9, 0x1400ffff },
+ { 0x210001ba, 0x14000000 },
+ { 0x210001bb, 0x1c000000 },
+ { 0x210001bc, 0x24000001 },
+ { 0x210001bd, 0x1400ffff },
+ { 0x210001be, 0x14000000 },
+ { 0x210001bf, 0x14000038 },
+ { 0x218001c0, 0x1c000003 },
+ { 0x210001c4, 0x24000002 },
+ { 0x210001c5, 0x2000ffff },
+ { 0x210001c6, 0x1400fffe },
+ { 0x210001c7, 0x24000002 },
+ { 0x210001c8, 0x2000ffff },
+ { 0x210001c9, 0x1400fffe },
+ { 0x210001ca, 0x24000002 },
+ { 0x210001cb, 0x2000ffff },
+ { 0x210001cc, 0x1400fffe },
+ { 0x210001cd, 0x24000001 },
+ { 0x210001ce, 0x1400ffff },
+ { 0x210001cf, 0x24000001 },
+ { 0x210001d0, 0x1400ffff },
+ { 0x210001d1, 0x24000001 },
+ { 0x210001d2, 0x1400ffff },
+ { 0x210001d3, 0x24000001 },
+ { 0x210001d4, 0x1400ffff },
+ { 0x210001d5, 0x24000001 },
+ { 0x210001d6, 0x1400ffff },
+ { 0x210001d7, 0x24000001 },
+ { 0x210001d8, 0x1400ffff },
+ { 0x210001d9, 0x24000001 },
+ { 0x210001da, 0x1400ffff },
+ { 0x210001db, 0x24000001 },
+ { 0x210001dc, 0x1400ffff },
+ { 0x210001dd, 0x1400ffb1 },
+ { 0x210001de, 0x24000001 },
+ { 0x210001df, 0x1400ffff },
+ { 0x210001e0, 0x24000001 },
+ { 0x210001e1, 0x1400ffff },
+ { 0x210001e2, 0x24000001 },
+ { 0x210001e3, 0x1400ffff },
+ { 0x210001e4, 0x24000001 },
+ { 0x210001e5, 0x1400ffff },
+ { 0x210001e6, 0x24000001 },
+ { 0x210001e7, 0x1400ffff },
+ { 0x210001e8, 0x24000001 },
+ { 0x210001e9, 0x1400ffff },
+ { 0x210001ea, 0x24000001 },
+ { 0x210001eb, 0x1400ffff },
+ { 0x210001ec, 0x24000001 },
+ { 0x210001ed, 0x1400ffff },
+ { 0x210001ee, 0x24000001 },
+ { 0x210001ef, 0x1400ffff },
+ { 0x210001f0, 0x14000000 },
+ { 0x210001f1, 0x24000002 },
+ { 0x210001f2, 0x2000ffff },
+ { 0x210001f3, 0x1400fffe },
+ { 0x210001f4, 0x24000001 },
+ { 0x210001f5, 0x1400ffff },
+ { 0x210001f6, 0x2400ff9f },
+ { 0x210001f7, 0x2400ffc8 },
+ { 0x210001f8, 0x24000001 },
+ { 0x210001f9, 0x1400ffff },
+ { 0x210001fa, 0x24000001 },
+ { 0x210001fb, 0x1400ffff },
+ { 0x210001fc, 0x24000001 },
+ { 0x210001fd, 0x1400ffff },
+ { 0x210001fe, 0x24000001 },
+ { 0x210001ff, 0x1400ffff },
+ { 0x21000200, 0x24000001 },
+ { 0x21000201, 0x1400ffff },
+ { 0x21000202, 0x24000001 },
+ { 0x21000203, 0x1400ffff },
+ { 0x21000204, 0x24000001 },
+ { 0x21000205, 0x1400ffff },
+ { 0x21000206, 0x24000001 },
+ { 0x21000207, 0x1400ffff },
+ { 0x21000208, 0x24000001 },
+ { 0x21000209, 0x1400ffff },
+ { 0x2100020a, 0x24000001 },
+ { 0x2100020b, 0x1400ffff },
+ { 0x2100020c, 0x24000001 },
+ { 0x2100020d, 0x1400ffff },
+ { 0x2100020e, 0x24000001 },
+ { 0x2100020f, 0x1400ffff },
+ { 0x21000210, 0x24000001 },
+ { 0x21000211, 0x1400ffff },
+ { 0x21000212, 0x24000001 },
+ { 0x21000213, 0x1400ffff },
+ { 0x21000214, 0x24000001 },
+ { 0x21000215, 0x1400ffff },
+ { 0x21000216, 0x24000001 },
+ { 0x21000217, 0x1400ffff },
+ { 0x21000218, 0x24000001 },
+ { 0x21000219, 0x1400ffff },
+ { 0x2100021a, 0x24000001 },
+ { 0x2100021b, 0x1400ffff },
+ { 0x2100021c, 0x24000001 },
+ { 0x2100021d, 0x1400ffff },
+ { 0x2100021e, 0x24000001 },
+ { 0x2100021f, 0x1400ffff },
+ { 0x21000220, 0x2400ff7e },
+ { 0x21000221, 0x14000000 },
+ { 0x21000222, 0x24000001 },
+ { 0x21000223, 0x1400ffff },
+ { 0x21000224, 0x24000001 },
+ { 0x21000225, 0x1400ffff },
+ { 0x21000226, 0x24000001 },
+ { 0x21000227, 0x1400ffff },
+ { 0x21000228, 0x24000001 },
+ { 0x21000229, 0x1400ffff },
+ { 0x2100022a, 0x24000001 },
+ { 0x2100022b, 0x1400ffff },
+ { 0x2100022c, 0x24000001 },
+ { 0x2100022d, 0x1400ffff },
+ { 0x2100022e, 0x24000001 },
+ { 0x2100022f, 0x1400ffff },
+ { 0x21000230, 0x24000001 },
+ { 0x21000231, 0x1400ffff },
+ { 0x21000232, 0x24000001 },
+ { 0x21000233, 0x1400ffff },
+ { 0x21800234, 0x14000005 },
+ { 0x2100023a, 0x24000000 },
+ { 0x2100023b, 0x24000001 },
+ { 0x2100023c, 0x1400ffff },
+ { 0x2100023d, 0x2400ff5d },
+ { 0x2100023e, 0x24000000 },
+ { 0x2180023f, 0x14000001 },
+ { 0x21000241, 0x24000053 },
+ { 0x21800250, 0x14000002 },
+ { 0x21000253, 0x1400ff2e },
+ { 0x21000254, 0x1400ff32 },
+ { 0x21000255, 0x14000000 },
+ { 0x21000256, 0x1400ff33 },
+ { 0x21000257, 0x1400ff33 },
+ { 0x21000258, 0x14000000 },
+ { 0x21000259, 0x1400ff36 },
+ { 0x2100025a, 0x14000000 },
+ { 0x2100025b, 0x1400ff35 },
+ { 0x2180025c, 0x14000003 },
+ { 0x21000260, 0x1400ff33 },
+ { 0x21800261, 0x14000001 },
+ { 0x21000263, 0x1400ff31 },
+ { 0x21800264, 0x14000003 },
+ { 0x21000268, 0x1400ff2f },
+ { 0x21000269, 0x1400ff2d },
+ { 0x2180026a, 0x14000004 },
+ { 0x2100026f, 0x1400ff2d },
+ { 0x21800270, 0x14000001 },
+ { 0x21000272, 0x1400ff2b },
+ { 0x21800273, 0x14000001 },
+ { 0x21000275, 0x1400ff2a },
+ { 0x21800276, 0x14000009 },
+ { 0x21000280, 0x1400ff26 },
+ { 0x21800281, 0x14000001 },
+ { 0x21000283, 0x1400ff26 },
+ { 0x21800284, 0x14000003 },
+ { 0x21000288, 0x1400ff26 },
+ { 0x21000289, 0x14000000 },
+ { 0x2100028a, 0x1400ff27 },
+ { 0x2100028b, 0x1400ff27 },
+ { 0x2180028c, 0x14000005 },
+ { 0x21000292, 0x1400ff25 },
+ { 0x21000293, 0x14000000 },
+ { 0x21000294, 0x1400ffad },
+ { 0x21800295, 0x1400001a },
+ { 0x218002b0, 0x18000011 },
+ { 0x098002c2, 0x60000003 },
+ { 0x098002c6, 0x1800000b },
+ { 0x098002d2, 0x6000000d },
+ { 0x218002e0, 0x18000004 },
+ { 0x098002e5, 0x60000008 },
+ { 0x090002ee, 0x18000000 },
+ { 0x098002ef, 0x60000010 },
+ { 0x1b800300, 0x30000044 },
+ { 0x1b000345, 0x30000054 },
+ { 0x1b800346, 0x30000029 },
+ { 0x13800374, 0x60000001 },
+ { 0x1300037a, 0x18000000 },
+ { 0x0900037e, 0x54000000 },
+ { 0x13800384, 0x60000001 },
+ { 0x13000386, 0x24000026 },
+ { 0x09000387, 0x54000000 },
+ { 0x13000388, 0x24000025 },
+ { 0x13000389, 0x24000025 },
+ { 0x1300038a, 0x24000025 },
+ { 0x1300038c, 0x24000040 },
+ { 0x1300038e, 0x2400003f },
+ { 0x1300038f, 0x2400003f },
+ { 0x13000390, 0x14000000 },
+ { 0x13000391, 0x24000020 },
+ { 0x13000392, 0x24000020 },
+ { 0x13000393, 0x24000020 },
+ { 0x13000394, 0x24000020 },
+ { 0x13000395, 0x24000020 },
+ { 0x13000396, 0x24000020 },
+ { 0x13000397, 0x24000020 },
+ { 0x13000398, 0x24000020 },
+ { 0x13000399, 0x24000020 },
+ { 0x1300039a, 0x24000020 },
+ { 0x1300039b, 0x24000020 },
+ { 0x1300039c, 0x24000020 },
+ { 0x1300039d, 0x24000020 },
+ { 0x1300039e, 0x24000020 },
+ { 0x1300039f, 0x24000020 },
+ { 0x130003a0, 0x24000020 },
+ { 0x130003a1, 0x24000020 },
+ { 0x130003a3, 0x24000020 },
+ { 0x130003a4, 0x24000020 },
+ { 0x130003a5, 0x24000020 },
+ { 0x130003a6, 0x24000020 },
+ { 0x130003a7, 0x24000020 },
+ { 0x130003a8, 0x24000020 },
+ { 0x130003a9, 0x24000020 },
+ { 0x130003aa, 0x24000020 },
+ { 0x130003ab, 0x24000020 },
+ { 0x130003ac, 0x1400ffda },
+ { 0x130003ad, 0x1400ffdb },
+ { 0x130003ae, 0x1400ffdb },
+ { 0x130003af, 0x1400ffdb },
+ { 0x130003b0, 0x14000000 },
+ { 0x130003b1, 0x1400ffe0 },
+ { 0x130003b2, 0x1400ffe0 },
+ { 0x130003b3, 0x1400ffe0 },
+ { 0x130003b4, 0x1400ffe0 },
+ { 0x130003b5, 0x1400ffe0 },
+ { 0x130003b6, 0x1400ffe0 },
+ { 0x130003b7, 0x1400ffe0 },
+ { 0x130003b8, 0x1400ffe0 },
+ { 0x130003b9, 0x1400ffe0 },
+ { 0x130003ba, 0x1400ffe0 },
+ { 0x130003bb, 0x1400ffe0 },
+ { 0x130003bc, 0x1400ffe0 },
+ { 0x130003bd, 0x1400ffe0 },
+ { 0x130003be, 0x1400ffe0 },
+ { 0x130003bf, 0x1400ffe0 },
+ { 0x130003c0, 0x1400ffe0 },
+ { 0x130003c1, 0x1400ffe0 },
+ { 0x130003c2, 0x1400ffe1 },
+ { 0x130003c3, 0x1400ffe0 },
+ { 0x130003c4, 0x1400ffe0 },
+ { 0x130003c5, 0x1400ffe0 },
+ { 0x130003c6, 0x1400ffe0 },
+ { 0x130003c7, 0x1400ffe0 },
+ { 0x130003c8, 0x1400ffe0 },
+ { 0x130003c9, 0x1400ffe0 },
+ { 0x130003ca, 0x1400ffe0 },
+ { 0x130003cb, 0x1400ffe0 },
+ { 0x130003cc, 0x1400ffc0 },
+ { 0x130003cd, 0x1400ffc1 },
+ { 0x130003ce, 0x1400ffc1 },
+ { 0x130003d0, 0x1400ffc2 },
+ { 0x130003d1, 0x1400ffc7 },
+ { 0x138003d2, 0x24000002 },
+ { 0x130003d5, 0x1400ffd1 },
+ { 0x130003d6, 0x1400ffca },
+ { 0x130003d7, 0x14000000 },
+ { 0x130003d8, 0x24000001 },
+ { 0x130003d9, 0x1400ffff },
+ { 0x130003da, 0x24000001 },
+ { 0x130003db, 0x1400ffff },
+ { 0x130003dc, 0x24000001 },
+ { 0x130003dd, 0x1400ffff },
+ { 0x130003de, 0x24000001 },
+ { 0x130003df, 0x1400ffff },
+ { 0x130003e0, 0x24000001 },
+ { 0x130003e1, 0x1400ffff },
+ { 0x0a0003e2, 0x24000001 },
+ { 0x0a0003e3, 0x1400ffff },
+ { 0x0a0003e4, 0x24000001 },
+ { 0x0a0003e5, 0x1400ffff },
+ { 0x0a0003e6, 0x24000001 },
+ { 0x0a0003e7, 0x1400ffff },
+ { 0x0a0003e8, 0x24000001 },
+ { 0x0a0003e9, 0x1400ffff },
+ { 0x0a0003ea, 0x24000001 },
+ { 0x0a0003eb, 0x1400ffff },
+ { 0x0a0003ec, 0x24000001 },
+ { 0x0a0003ed, 0x1400ffff },
+ { 0x0a0003ee, 0x24000001 },
+ { 0x0a0003ef, 0x1400ffff },
+ { 0x130003f0, 0x1400ffaa },
+ { 0x130003f1, 0x1400ffb0 },
+ { 0x130003f2, 0x14000007 },
+ { 0x130003f3, 0x14000000 },
+ { 0x130003f4, 0x2400ffc4 },
+ { 0x130003f5, 0x1400ffa0 },
+ { 0x130003f6, 0x64000000 },
+ { 0x130003f7, 0x24000001 },
+ { 0x130003f8, 0x1400ffff },
+ { 0x130003f9, 0x2400fff9 },
+ { 0x130003fa, 0x24000001 },
+ { 0x130003fb, 0x1400ffff },
+ { 0x130003fc, 0x14000000 },
+ { 0x138003fd, 0x24000002 },
+ { 0x0c000400, 0x24000050 },
+ { 0x0c000401, 0x24000050 },
+ { 0x0c000402, 0x24000050 },
+ { 0x0c000403, 0x24000050 },
+ { 0x0c000404, 0x24000050 },
+ { 0x0c000405, 0x24000050 },
+ { 0x0c000406, 0x24000050 },
+ { 0x0c000407, 0x24000050 },
+ { 0x0c000408, 0x24000050 },
+ { 0x0c000409, 0x24000050 },
+ { 0x0c00040a, 0x24000050 },
+ { 0x0c00040b, 0x24000050 },
+ { 0x0c00040c, 0x24000050 },
+ { 0x0c00040d, 0x24000050 },
+ { 0x0c00040e, 0x24000050 },
+ { 0x0c00040f, 0x24000050 },
+ { 0x0c000410, 0x24000020 },
+ { 0x0c000411, 0x24000020 },
+ { 0x0c000412, 0x24000020 },
+ { 0x0c000413, 0x24000020 },
+ { 0x0c000414, 0x24000020 },
+ { 0x0c000415, 0x24000020 },
+ { 0x0c000416, 0x24000020 },
+ { 0x0c000417, 0x24000020 },
+ { 0x0c000418, 0x24000020 },
+ { 0x0c000419, 0x24000020 },
+ { 0x0c00041a, 0x24000020 },
+ { 0x0c00041b, 0x24000020 },
+ { 0x0c00041c, 0x24000020 },
+ { 0x0c00041d, 0x24000020 },
+ { 0x0c00041e, 0x24000020 },
+ { 0x0c00041f, 0x24000020 },
+ { 0x0c000420, 0x24000020 },
+ { 0x0c000421, 0x24000020 },
+ { 0x0c000422, 0x24000020 },
+ { 0x0c000423, 0x24000020 },
+ { 0x0c000424, 0x24000020 },
+ { 0x0c000425, 0x24000020 },
+ { 0x0c000426, 0x24000020 },
+ { 0x0c000427, 0x24000020 },
+ { 0x0c000428, 0x24000020 },
+ { 0x0c000429, 0x24000020 },
+ { 0x0c00042a, 0x24000020 },
+ { 0x0c00042b, 0x24000020 },
+ { 0x0c00042c, 0x24000020 },
+ { 0x0c00042d, 0x24000020 },
+ { 0x0c00042e, 0x24000020 },
+ { 0x0c00042f, 0x24000020 },
+ { 0x0c000430, 0x1400ffe0 },
+ { 0x0c000431, 0x1400ffe0 },
+ { 0x0c000432, 0x1400ffe0 },
+ { 0x0c000433, 0x1400ffe0 },
+ { 0x0c000434, 0x1400ffe0 },
+ { 0x0c000435, 0x1400ffe0 },
+ { 0x0c000436, 0x1400ffe0 },
+ { 0x0c000437, 0x1400ffe0 },
+ { 0x0c000438, 0x1400ffe0 },
+ { 0x0c000439, 0x1400ffe0 },
+ { 0x0c00043a, 0x1400ffe0 },
+ { 0x0c00043b, 0x1400ffe0 },
+ { 0x0c00043c, 0x1400ffe0 },
+ { 0x0c00043d, 0x1400ffe0 },
+ { 0x0c00043e, 0x1400ffe0 },
+ { 0x0c00043f, 0x1400ffe0 },
+ { 0x0c000440, 0x1400ffe0 },
+ { 0x0c000441, 0x1400ffe0 },
+ { 0x0c000442, 0x1400ffe0 },
+ { 0x0c000443, 0x1400ffe0 },
+ { 0x0c000444, 0x1400ffe0 },
+ { 0x0c000445, 0x1400ffe0 },
+ { 0x0c000446, 0x1400ffe0 },
+ { 0x0c000447, 0x1400ffe0 },
+ { 0x0c000448, 0x1400ffe0 },
+ { 0x0c000449, 0x1400ffe0 },
+ { 0x0c00044a, 0x1400ffe0 },
+ { 0x0c00044b, 0x1400ffe0 },
+ { 0x0c00044c, 0x1400ffe0 },
+ { 0x0c00044d, 0x1400ffe0 },
+ { 0x0c00044e, 0x1400ffe0 },
+ { 0x0c00044f, 0x1400ffe0 },
+ { 0x0c000450, 0x1400ffb0 },
+ { 0x0c000451, 0x1400ffb0 },
+ { 0x0c000452, 0x1400ffb0 },
+ { 0x0c000453, 0x1400ffb0 },
+ { 0x0c000454, 0x1400ffb0 },
+ { 0x0c000455, 0x1400ffb0 },
+ { 0x0c000456, 0x1400ffb0 },
+ { 0x0c000457, 0x1400ffb0 },
+ { 0x0c000458, 0x1400ffb0 },
+ { 0x0c000459, 0x1400ffb0 },
+ { 0x0c00045a, 0x1400ffb0 },
+ { 0x0c00045b, 0x1400ffb0 },
+ { 0x0c00045c, 0x1400ffb0 },
+ { 0x0c00045d, 0x1400ffb0 },
+ { 0x0c00045e, 0x1400ffb0 },
+ { 0x0c00045f, 0x1400ffb0 },
+ { 0x0c000460, 0x24000001 },
+ { 0x0c000461, 0x1400ffff },
+ { 0x0c000462, 0x24000001 },
+ { 0x0c000463, 0x1400ffff },
+ { 0x0c000464, 0x24000001 },
+ { 0x0c000465, 0x1400ffff },
+ { 0x0c000466, 0x24000001 },
+ { 0x0c000467, 0x1400ffff },
+ { 0x0c000468, 0x24000001 },
+ { 0x0c000469, 0x1400ffff },
+ { 0x0c00046a, 0x24000001 },
+ { 0x0c00046b, 0x1400ffff },
+ { 0x0c00046c, 0x24000001 },
+ { 0x0c00046d, 0x1400ffff },
+ { 0x0c00046e, 0x24000001 },
+ { 0x0c00046f, 0x1400ffff },
+ { 0x0c000470, 0x24000001 },
+ { 0x0c000471, 0x1400ffff },
+ { 0x0c000472, 0x24000001 },
+ { 0x0c000473, 0x1400ffff },
+ { 0x0c000474, 0x24000001 },
+ { 0x0c000475, 0x1400ffff },
+ { 0x0c000476, 0x24000001 },
+ { 0x0c000477, 0x1400ffff },
+ { 0x0c000478, 0x24000001 },
+ { 0x0c000479, 0x1400ffff },
+ { 0x0c00047a, 0x24000001 },
+ { 0x0c00047b, 0x1400ffff },
+ { 0x0c00047c, 0x24000001 },
+ { 0x0c00047d, 0x1400ffff },
+ { 0x0c00047e, 0x24000001 },
+ { 0x0c00047f, 0x1400ffff },
+ { 0x0c000480, 0x24000001 },
+ { 0x0c000481, 0x1400ffff },
+ { 0x0c000482, 0x68000000 },
+ { 0x0c800483, 0x30000003 },
+ { 0x0c800488, 0x2c000001 },
+ { 0x0c00048a, 0x24000001 },
+ { 0x0c00048b, 0x1400ffff },
+ { 0x0c00048c, 0x24000001 },
+ { 0x0c00048d, 0x1400ffff },
+ { 0x0c00048e, 0x24000001 },
+ { 0x0c00048f, 0x1400ffff },
+ { 0x0c000490, 0x24000001 },
+ { 0x0c000491, 0x1400ffff },
+ { 0x0c000492, 0x24000001 },
+ { 0x0c000493, 0x1400ffff },
+ { 0x0c000494, 0x24000001 },
+ { 0x0c000495, 0x1400ffff },
+ { 0x0c000496, 0x24000001 },
+ { 0x0c000497, 0x1400ffff },
+ { 0x0c000498, 0x24000001 },
+ { 0x0c000499, 0x1400ffff },
+ { 0x0c00049a, 0x24000001 },
+ { 0x0c00049b, 0x1400ffff },
+ { 0x0c00049c, 0x24000001 },
+ { 0x0c00049d, 0x1400ffff },
+ { 0x0c00049e, 0x24000001 },
+ { 0x0c00049f, 0x1400ffff },
+ { 0x0c0004a0, 0x24000001 },
+ { 0x0c0004a1, 0x1400ffff },
+ { 0x0c0004a2, 0x24000001 },
+ { 0x0c0004a3, 0x1400ffff },
+ { 0x0c0004a4, 0x24000001 },
+ { 0x0c0004a5, 0x1400ffff },
+ { 0x0c0004a6, 0x24000001 },
+ { 0x0c0004a7, 0x1400ffff },
+ { 0x0c0004a8, 0x24000001 },
+ { 0x0c0004a9, 0x1400ffff },
+ { 0x0c0004aa, 0x24000001 },
+ { 0x0c0004ab, 0x1400ffff },
+ { 0x0c0004ac, 0x24000001 },
+ { 0x0c0004ad, 0x1400ffff },
+ { 0x0c0004ae, 0x24000001 },
+ { 0x0c0004af, 0x1400ffff },
+ { 0x0c0004b0, 0x24000001 },
+ { 0x0c0004b1, 0x1400ffff },
+ { 0x0c0004b2, 0x24000001 },
+ { 0x0c0004b3, 0x1400ffff },
+ { 0x0c0004b4, 0x24000001 },
+ { 0x0c0004b5, 0x1400ffff },
+ { 0x0c0004b6, 0x24000001 },
+ { 0x0c0004b7, 0x1400ffff },
+ { 0x0c0004b8, 0x24000001 },
+ { 0x0c0004b9, 0x1400ffff },
+ { 0x0c0004ba, 0x24000001 },
+ { 0x0c0004bb, 0x1400ffff },
+ { 0x0c0004bc, 0x24000001 },
+ { 0x0c0004bd, 0x1400ffff },
+ { 0x0c0004be, 0x24000001 },
+ { 0x0c0004bf, 0x1400ffff },
+ { 0x0c0004c0, 0x24000000 },
+ { 0x0c0004c1, 0x24000001 },
+ { 0x0c0004c2, 0x1400ffff },
+ { 0x0c0004c3, 0x24000001 },
+ { 0x0c0004c4, 0x1400ffff },
+ { 0x0c0004c5, 0x24000001 },
+ { 0x0c0004c6, 0x1400ffff },
+ { 0x0c0004c7, 0x24000001 },
+ { 0x0c0004c8, 0x1400ffff },
+ { 0x0c0004c9, 0x24000001 },
+ { 0x0c0004ca, 0x1400ffff },
+ { 0x0c0004cb, 0x24000001 },
+ { 0x0c0004cc, 0x1400ffff },
+ { 0x0c0004cd, 0x24000001 },
+ { 0x0c0004ce, 0x1400ffff },
+ { 0x0c0004d0, 0x24000001 },
+ { 0x0c0004d1, 0x1400ffff },
+ { 0x0c0004d2, 0x24000001 },
+ { 0x0c0004d3, 0x1400ffff },
+ { 0x0c0004d4, 0x24000001 },
+ { 0x0c0004d5, 0x1400ffff },
+ { 0x0c0004d6, 0x24000001 },
+ { 0x0c0004d7, 0x1400ffff },
+ { 0x0c0004d8, 0x24000001 },
+ { 0x0c0004d9, 0x1400ffff },
+ { 0x0c0004da, 0x24000001 },
+ { 0x0c0004db, 0x1400ffff },
+ { 0x0c0004dc, 0x24000001 },
+ { 0x0c0004dd, 0x1400ffff },
+ { 0x0c0004de, 0x24000001 },
+ { 0x0c0004df, 0x1400ffff },
+ { 0x0c0004e0, 0x24000001 },
+ { 0x0c0004e1, 0x1400ffff },
+ { 0x0c0004e2, 0x24000001 },
+ { 0x0c0004e3, 0x1400ffff },
+ { 0x0c0004e4, 0x24000001 },
+ { 0x0c0004e5, 0x1400ffff },
+ { 0x0c0004e6, 0x24000001 },
+ { 0x0c0004e7, 0x1400ffff },
+ { 0x0c0004e8, 0x24000001 },
+ { 0x0c0004e9, 0x1400ffff },
+ { 0x0c0004ea, 0x24000001 },
+ { 0x0c0004eb, 0x1400ffff },
+ { 0x0c0004ec, 0x24000001 },
+ { 0x0c0004ed, 0x1400ffff },
+ { 0x0c0004ee, 0x24000001 },
+ { 0x0c0004ef, 0x1400ffff },
+ { 0x0c0004f0, 0x24000001 },
+ { 0x0c0004f1, 0x1400ffff },
+ { 0x0c0004f2, 0x24000001 },
+ { 0x0c0004f3, 0x1400ffff },
+ { 0x0c0004f4, 0x24000001 },
+ { 0x0c0004f5, 0x1400ffff },
+ { 0x0c0004f6, 0x24000001 },
+ { 0x0c0004f7, 0x1400ffff },
+ { 0x0c0004f8, 0x24000001 },
+ { 0x0c0004f9, 0x1400ffff },
+ { 0x0c000500, 0x24000001 },
+ { 0x0c000501, 0x1400ffff },
+ { 0x0c000502, 0x24000001 },
+ { 0x0c000503, 0x1400ffff },
+ { 0x0c000504, 0x24000001 },
+ { 0x0c000505, 0x1400ffff },
+ { 0x0c000506, 0x24000001 },
+ { 0x0c000507, 0x1400ffff },
+ { 0x0c000508, 0x24000001 },
+ { 0x0c000509, 0x1400ffff },
+ { 0x0c00050a, 0x24000001 },
+ { 0x0c00050b, 0x1400ffff },
+ { 0x0c00050c, 0x24000001 },
+ { 0x0c00050d, 0x1400ffff },
+ { 0x0c00050e, 0x24000001 },
+ { 0x0c00050f, 0x1400ffff },
+ { 0x01000531, 0x24000030 },
+ { 0x01000532, 0x24000030 },
+ { 0x01000533, 0x24000030 },
+ { 0x01000534, 0x24000030 },
+ { 0x01000535, 0x24000030 },
+ { 0x01000536, 0x24000030 },
+ { 0x01000537, 0x24000030 },
+ { 0x01000538, 0x24000030 },
+ { 0x01000539, 0x24000030 },
+ { 0x0100053a, 0x24000030 },
+ { 0x0100053b, 0x24000030 },
+ { 0x0100053c, 0x24000030 },
+ { 0x0100053d, 0x24000030 },
+ { 0x0100053e, 0x24000030 },
+ { 0x0100053f, 0x24000030 },
+ { 0x01000540, 0x24000030 },
+ { 0x01000541, 0x24000030 },
+ { 0x01000542, 0x24000030 },
+ { 0x01000543, 0x24000030 },
+ { 0x01000544, 0x24000030 },
+ { 0x01000545, 0x24000030 },
+ { 0x01000546, 0x24000030 },
+ { 0x01000547, 0x24000030 },
+ { 0x01000548, 0x24000030 },
+ { 0x01000549, 0x24000030 },
+ { 0x0100054a, 0x24000030 },
+ { 0x0100054b, 0x24000030 },
+ { 0x0100054c, 0x24000030 },
+ { 0x0100054d, 0x24000030 },
+ { 0x0100054e, 0x24000030 },
+ { 0x0100054f, 0x24000030 },
+ { 0x01000550, 0x24000030 },
+ { 0x01000551, 0x24000030 },
+ { 0x01000552, 0x24000030 },
+ { 0x01000553, 0x24000030 },
+ { 0x01000554, 0x24000030 },
+ { 0x01000555, 0x24000030 },
+ { 0x01000556, 0x24000030 },
+ { 0x01000559, 0x18000000 },
+ { 0x0180055a, 0x54000005 },
+ { 0x01000561, 0x1400ffd0 },
+ { 0x01000562, 0x1400ffd0 },
+ { 0x01000563, 0x1400ffd0 },
+ { 0x01000564, 0x1400ffd0 },
+ { 0x01000565, 0x1400ffd0 },
+ { 0x01000566, 0x1400ffd0 },
+ { 0x01000567, 0x1400ffd0 },
+ { 0x01000568, 0x1400ffd0 },
+ { 0x01000569, 0x1400ffd0 },
+ { 0x0100056a, 0x1400ffd0 },
+ { 0x0100056b, 0x1400ffd0 },
+ { 0x0100056c, 0x1400ffd0 },
+ { 0x0100056d, 0x1400ffd0 },
+ { 0x0100056e, 0x1400ffd0 },
+ { 0x0100056f, 0x1400ffd0 },
+ { 0x01000570, 0x1400ffd0 },
+ { 0x01000571, 0x1400ffd0 },
+ { 0x01000572, 0x1400ffd0 },
+ { 0x01000573, 0x1400ffd0 },
+ { 0x01000574, 0x1400ffd0 },
+ { 0x01000575, 0x1400ffd0 },
+ { 0x01000576, 0x1400ffd0 },
+ { 0x01000577, 0x1400ffd0 },
+ { 0x01000578, 0x1400ffd0 },
+ { 0x01000579, 0x1400ffd0 },
+ { 0x0100057a, 0x1400ffd0 },
+ { 0x0100057b, 0x1400ffd0 },
+ { 0x0100057c, 0x1400ffd0 },
+ { 0x0100057d, 0x1400ffd0 },
+ { 0x0100057e, 0x1400ffd0 },
+ { 0x0100057f, 0x1400ffd0 },
+ { 0x01000580, 0x1400ffd0 },
+ { 0x01000581, 0x1400ffd0 },
+ { 0x01000582, 0x1400ffd0 },
+ { 0x01000583, 0x1400ffd0 },
+ { 0x01000584, 0x1400ffd0 },
+ { 0x01000585, 0x1400ffd0 },
+ { 0x01000586, 0x1400ffd0 },
+ { 0x01000587, 0x14000000 },
+ { 0x09000589, 0x54000000 },
+ { 0x0100058a, 0x44000000 },
+ { 0x19800591, 0x30000028 },
+ { 0x198005bb, 0x30000002 },
+ { 0x190005be, 0x54000000 },
+ { 0x190005bf, 0x30000000 },
+ { 0x190005c0, 0x54000000 },
+ { 0x198005c1, 0x30000001 },
+ { 0x190005c3, 0x54000000 },
+ { 0x198005c4, 0x30000001 },
+ { 0x190005c6, 0x54000000 },
+ { 0x190005c7, 0x30000000 },
+ { 0x198005d0, 0x1c00001a },
+ { 0x198005f0, 0x1c000002 },
+ { 0x198005f3, 0x54000001 },
+ { 0x09800600, 0x04000003 },
+ { 0x0000060b, 0x5c000000 },
+ { 0x0980060c, 0x54000001 },
+ { 0x0080060e, 0x68000001 },
+ { 0x00800610, 0x30000005 },
+ { 0x0900061b, 0x54000000 },
+ { 0x0080061e, 0x54000001 },
+ { 0x00800621, 0x1c000019 },
+ { 0x09000640, 0x18000000 },
+ { 0x00800641, 0x1c000009 },
+ { 0x1b80064b, 0x30000013 },
+ { 0x09800660, 0x34000009 },
+ { 0x0080066a, 0x54000003 },
+ { 0x0080066e, 0x1c000001 },
+ { 0x1b000670, 0x30000000 },
+ { 0x00800671, 0x1c000062 },
+ { 0x000006d4, 0x54000000 },
+ { 0x000006d5, 0x1c000000 },
+ { 0x008006d6, 0x30000006 },
+ { 0x090006dd, 0x04000000 },
+ { 0x000006de, 0x2c000000 },
+ { 0x008006df, 0x30000005 },
+ { 0x008006e5, 0x18000001 },
+ { 0x008006e7, 0x30000001 },
+ { 0x000006e9, 0x68000000 },
+ { 0x008006ea, 0x30000003 },
+ { 0x008006ee, 0x1c000001 },
+ { 0x008006f0, 0x34000009 },
+ { 0x008006fa, 0x1c000002 },
+ { 0x008006fd, 0x68000001 },
+ { 0x000006ff, 0x1c000000 },
+ { 0x31800700, 0x5400000d },
+ { 0x3100070f, 0x04000000 },
+ { 0x31000710, 0x1c000000 },
+ { 0x31000711, 0x30000000 },
+ { 0x31800712, 0x1c00001d },
+ { 0x31800730, 0x3000001a },
+ { 0x3180074d, 0x1c000020 },
+ { 0x37800780, 0x1c000025 },
+ { 0x378007a6, 0x3000000a },
+ { 0x370007b1, 0x1c000000 },
+ { 0x0e800901, 0x30000001 },
+ { 0x0e000903, 0x28000000 },
+ { 0x0e800904, 0x1c000035 },
+ { 0x0e00093c, 0x30000000 },
+ { 0x0e00093d, 0x1c000000 },
+ { 0x0e80093e, 0x28000002 },
+ { 0x0e800941, 0x30000007 },
+ { 0x0e800949, 0x28000003 },
+ { 0x0e00094d, 0x30000000 },
+ { 0x0e000950, 0x1c000000 },
+ { 0x0e800951, 0x30000003 },
+ { 0x0e800958, 0x1c000009 },
+ { 0x0e800962, 0x30000001 },
+ { 0x09800964, 0x54000001 },
+ { 0x0e800966, 0x34000009 },
+ { 0x09000970, 0x54000000 },
+ { 0x0e00097d, 0x1c000000 },
+ { 0x02000981, 0x30000000 },
+ { 0x02800982, 0x28000001 },
+ { 0x02800985, 0x1c000007 },
+ { 0x0280098f, 0x1c000001 },
+ { 0x02800993, 0x1c000015 },
+ { 0x028009aa, 0x1c000006 },
+ { 0x020009b2, 0x1c000000 },
+ { 0x028009b6, 0x1c000003 },
+ { 0x020009bc, 0x30000000 },
+ { 0x020009bd, 0x1c000000 },
+ { 0x028009be, 0x28000002 },
+ { 0x028009c1, 0x30000003 },
+ { 0x028009c7, 0x28000001 },
+ { 0x028009cb, 0x28000001 },
+ { 0x020009cd, 0x30000000 },
+ { 0x020009ce, 0x1c000000 },
+ { 0x020009d7, 0x28000000 },
+ { 0x028009dc, 0x1c000001 },
+ { 0x028009df, 0x1c000002 },
+ { 0x028009e2, 0x30000001 },
+ { 0x028009e6, 0x34000009 },
+ { 0x028009f0, 0x1c000001 },
+ { 0x028009f2, 0x5c000001 },
+ { 0x028009f4, 0x3c000005 },
+ { 0x020009fa, 0x68000000 },
+ { 0x15800a01, 0x30000001 },
+ { 0x15000a03, 0x28000000 },
+ { 0x15800a05, 0x1c000005 },
+ { 0x15800a0f, 0x1c000001 },
+ { 0x15800a13, 0x1c000015 },
+ { 0x15800a2a, 0x1c000006 },
+ { 0x15800a32, 0x1c000001 },
+ { 0x15800a35, 0x1c000001 },
+ { 0x15800a38, 0x1c000001 },
+ { 0x15000a3c, 0x30000000 },
+ { 0x15800a3e, 0x28000002 },
+ { 0x15800a41, 0x30000001 },
+ { 0x15800a47, 0x30000001 },
+ { 0x15800a4b, 0x30000002 },
+ { 0x15800a59, 0x1c000003 },
+ { 0x15000a5e, 0x1c000000 },
+ { 0x15800a66, 0x34000009 },
+ { 0x15800a70, 0x30000001 },
+ { 0x15800a72, 0x1c000002 },
+ { 0x14800a81, 0x30000001 },
+ { 0x14000a83, 0x28000000 },
+ { 0x14800a85, 0x1c000008 },
+ { 0x14800a8f, 0x1c000002 },
+ { 0x14800a93, 0x1c000015 },
+ { 0x14800aaa, 0x1c000006 },
+ { 0x14800ab2, 0x1c000001 },
+ { 0x14800ab5, 0x1c000004 },
+ { 0x14000abc, 0x30000000 },
+ { 0x14000abd, 0x1c000000 },
+ { 0x14800abe, 0x28000002 },
+ { 0x14800ac1, 0x30000004 },
+ { 0x14800ac7, 0x30000001 },
+ { 0x14000ac9, 0x28000000 },
+ { 0x14800acb, 0x28000001 },
+ { 0x14000acd, 0x30000000 },
+ { 0x14000ad0, 0x1c000000 },
+ { 0x14800ae0, 0x1c000001 },
+ { 0x14800ae2, 0x30000001 },
+ { 0x14800ae6, 0x34000009 },
+ { 0x14000af1, 0x5c000000 },
+ { 0x2b000b01, 0x30000000 },
+ { 0x2b800b02, 0x28000001 },
+ { 0x2b800b05, 0x1c000007 },
+ { 0x2b800b0f, 0x1c000001 },
+ { 0x2b800b13, 0x1c000015 },
+ { 0x2b800b2a, 0x1c000006 },
+ { 0x2b800b32, 0x1c000001 },
+ { 0x2b800b35, 0x1c000004 },
+ { 0x2b000b3c, 0x30000000 },
+ { 0x2b000b3d, 0x1c000000 },
+ { 0x2b000b3e, 0x28000000 },
+ { 0x2b000b3f, 0x30000000 },
+ { 0x2b000b40, 0x28000000 },
+ { 0x2b800b41, 0x30000002 },
+ { 0x2b800b47, 0x28000001 },
+ { 0x2b800b4b, 0x28000001 },
+ { 0x2b000b4d, 0x30000000 },
+ { 0x2b000b56, 0x30000000 },
+ { 0x2b000b57, 0x28000000 },
+ { 0x2b800b5c, 0x1c000001 },
+ { 0x2b800b5f, 0x1c000002 },
+ { 0x2b800b66, 0x34000009 },
+ { 0x2b000b70, 0x68000000 },
+ { 0x2b000b71, 0x1c000000 },
+ { 0x35000b82, 0x30000000 },
+ { 0x35000b83, 0x1c000000 },
+ { 0x35800b85, 0x1c000005 },
+ { 0x35800b8e, 0x1c000002 },
+ { 0x35800b92, 0x1c000003 },
+ { 0x35800b99, 0x1c000001 },
+ { 0x35000b9c, 0x1c000000 },
+ { 0x35800b9e, 0x1c000001 },
+ { 0x35800ba3, 0x1c000001 },
+ { 0x35800ba8, 0x1c000002 },
+ { 0x35800bae, 0x1c00000b },
+ { 0x35800bbe, 0x28000001 },
+ { 0x35000bc0, 0x30000000 },
+ { 0x35800bc1, 0x28000001 },
+ { 0x35800bc6, 0x28000002 },
+ { 0x35800bca, 0x28000002 },
+ { 0x35000bcd, 0x30000000 },
+ { 0x35000bd7, 0x28000000 },
+ { 0x35800be6, 0x34000009 },
+ { 0x35800bf0, 0x3c000002 },
+ { 0x35800bf3, 0x68000005 },
+ { 0x35000bf9, 0x5c000000 },
+ { 0x35000bfa, 0x68000000 },
+ { 0x36800c01, 0x28000002 },
+ { 0x36800c05, 0x1c000007 },
+ { 0x36800c0e, 0x1c000002 },
+ { 0x36800c12, 0x1c000016 },
+ { 0x36800c2a, 0x1c000009 },
+ { 0x36800c35, 0x1c000004 },
+ { 0x36800c3e, 0x30000002 },
+ { 0x36800c41, 0x28000003 },
+ { 0x36800c46, 0x30000002 },
+ { 0x36800c4a, 0x30000003 },
+ { 0x36800c55, 0x30000001 },
+ { 0x36800c60, 0x1c000001 },
+ { 0x36800c66, 0x34000009 },
+ { 0x1c800c82, 0x28000001 },
+ { 0x1c800c85, 0x1c000007 },
+ { 0x1c800c8e, 0x1c000002 },
+ { 0x1c800c92, 0x1c000016 },
+ { 0x1c800caa, 0x1c000009 },
+ { 0x1c800cb5, 0x1c000004 },
+ { 0x1c000cbc, 0x30000000 },
+ { 0x1c000cbd, 0x1c000000 },
+ { 0x1c000cbe, 0x28000000 },
+ { 0x1c000cbf, 0x30000000 },
+ { 0x1c800cc0, 0x28000004 },
+ { 0x1c000cc6, 0x30000000 },
+ { 0x1c800cc7, 0x28000001 },
+ { 0x1c800cca, 0x28000001 },
+ { 0x1c800ccc, 0x30000001 },
+ { 0x1c800cd5, 0x28000001 },
+ { 0x1c000cde, 0x1c000000 },
+ { 0x1c800ce0, 0x1c000001 },
+ { 0x1c800ce6, 0x34000009 },
+ { 0x24800d02, 0x28000001 },
+ { 0x24800d05, 0x1c000007 },
+ { 0x24800d0e, 0x1c000002 },
+ { 0x24800d12, 0x1c000016 },
+ { 0x24800d2a, 0x1c00000f },
+ { 0x24800d3e, 0x28000002 },
+ { 0x24800d41, 0x30000002 },
+ { 0x24800d46, 0x28000002 },
+ { 0x24800d4a, 0x28000002 },
+ { 0x24000d4d, 0x30000000 },
+ { 0x24000d57, 0x28000000 },
+ { 0x24800d60, 0x1c000001 },
+ { 0x24800d66, 0x34000009 },
+ { 0x2f800d82, 0x28000001 },
+ { 0x2f800d85, 0x1c000011 },
+ { 0x2f800d9a, 0x1c000017 },
+ { 0x2f800db3, 0x1c000008 },
+ { 0x2f000dbd, 0x1c000000 },
+ { 0x2f800dc0, 0x1c000006 },
+ { 0x2f000dca, 0x30000000 },
+ { 0x2f800dcf, 0x28000002 },
+ { 0x2f800dd2, 0x30000002 },
+ { 0x2f000dd6, 0x30000000 },
+ { 0x2f800dd8, 0x28000007 },
+ { 0x2f800df2, 0x28000001 },
+ { 0x2f000df4, 0x54000000 },
+ { 0x38800e01, 0x1c00002f },
+ { 0x38000e31, 0x30000000 },
+ { 0x38800e32, 0x1c000001 },
+ { 0x38800e34, 0x30000006 },
+ { 0x09000e3f, 0x5c000000 },
+ { 0x38800e40, 0x1c000005 },
+ { 0x38000e46, 0x18000000 },
+ { 0x38800e47, 0x30000007 },
+ { 0x38000e4f, 0x54000000 },
+ { 0x38800e50, 0x34000009 },
+ { 0x38800e5a, 0x54000001 },
+ { 0x20800e81, 0x1c000001 },
+ { 0x20000e84, 0x1c000000 },
+ { 0x20800e87, 0x1c000001 },
+ { 0x20000e8a, 0x1c000000 },
+ { 0x20000e8d, 0x1c000000 },
+ { 0x20800e94, 0x1c000003 },
+ { 0x20800e99, 0x1c000006 },
+ { 0x20800ea1, 0x1c000002 },
+ { 0x20000ea5, 0x1c000000 },
+ { 0x20000ea7, 0x1c000000 },
+ { 0x20800eaa, 0x1c000001 },
+ { 0x20800ead, 0x1c000003 },
+ { 0x20000eb1, 0x30000000 },
+ { 0x20800eb2, 0x1c000001 },
+ { 0x20800eb4, 0x30000005 },
+ { 0x20800ebb, 0x30000001 },
+ { 0x20000ebd, 0x1c000000 },
+ { 0x20800ec0, 0x1c000004 },
+ { 0x20000ec6, 0x18000000 },
+ { 0x20800ec8, 0x30000005 },
+ { 0x20800ed0, 0x34000009 },
+ { 0x20800edc, 0x1c000001 },
+ { 0x39000f00, 0x1c000000 },
+ { 0x39800f01, 0x68000002 },
+ { 0x39800f04, 0x5400000e },
+ { 0x39800f13, 0x68000004 },
+ { 0x39800f18, 0x30000001 },
+ { 0x39800f1a, 0x68000005 },
+ { 0x39800f20, 0x34000009 },
+ { 0x39800f2a, 0x3c000009 },
+ { 0x39000f34, 0x68000000 },
+ { 0x39000f35, 0x30000000 },
+ { 0x39000f36, 0x68000000 },
+ { 0x39000f37, 0x30000000 },
+ { 0x39000f38, 0x68000000 },
+ { 0x39000f39, 0x30000000 },
+ { 0x39000f3a, 0x58000000 },
+ { 0x39000f3b, 0x48000000 },
+ { 0x39000f3c, 0x58000000 },
+ { 0x39000f3d, 0x48000000 },
+ { 0x39800f3e, 0x28000001 },
+ { 0x39800f40, 0x1c000007 },
+ { 0x39800f49, 0x1c000021 },
+ { 0x39800f71, 0x3000000d },
+ { 0x39000f7f, 0x28000000 },
+ { 0x39800f80, 0x30000004 },
+ { 0x39000f85, 0x54000000 },
+ { 0x39800f86, 0x30000001 },
+ { 0x39800f88, 0x1c000003 },
+ { 0x39800f90, 0x30000007 },
+ { 0x39800f99, 0x30000023 },
+ { 0x39800fbe, 0x68000007 },
+ { 0x39000fc6, 0x30000000 },
+ { 0x39800fc7, 0x68000005 },
+ { 0x39000fcf, 0x68000000 },
+ { 0x39800fd0, 0x54000001 },
+ { 0x26801000, 0x1c000021 },
+ { 0x26801023, 0x1c000004 },
+ { 0x26801029, 0x1c000001 },
+ { 0x2600102c, 0x28000000 },
+ { 0x2680102d, 0x30000003 },
+ { 0x26001031, 0x28000000 },
+ { 0x26001032, 0x30000000 },
+ { 0x26801036, 0x30000001 },
+ { 0x26001038, 0x28000000 },
+ { 0x26001039, 0x30000000 },
+ { 0x26801040, 0x34000009 },
+ { 0x2680104a, 0x54000005 },
+ { 0x26801050, 0x1c000005 },
+ { 0x26801056, 0x28000001 },
+ { 0x26801058, 0x30000001 },
+ { 0x100010a0, 0x24001c60 },
+ { 0x100010a1, 0x24001c60 },
+ { 0x100010a2, 0x24001c60 },
+ { 0x100010a3, 0x24001c60 },
+ { 0x100010a4, 0x24001c60 },
+ { 0x100010a5, 0x24001c60 },
+ { 0x100010a6, 0x24001c60 },
+ { 0x100010a7, 0x24001c60 },
+ { 0x100010a8, 0x24001c60 },
+ { 0x100010a9, 0x24001c60 },
+ { 0x100010aa, 0x24001c60 },
+ { 0x100010ab, 0x24001c60 },
+ { 0x100010ac, 0x24001c60 },
+ { 0x100010ad, 0x24001c60 },
+ { 0x100010ae, 0x24001c60 },
+ { 0x100010af, 0x24001c60 },
+ { 0x100010b0, 0x24001c60 },
+ { 0x100010b1, 0x24001c60 },
+ { 0x100010b2, 0x24001c60 },
+ { 0x100010b3, 0x24001c60 },
+ { 0x100010b4, 0x24001c60 },
+ { 0x100010b5, 0x24001c60 },
+ { 0x100010b6, 0x24001c60 },
+ { 0x100010b7, 0x24001c60 },
+ { 0x100010b8, 0x24001c60 },
+ { 0x100010b9, 0x24001c60 },
+ { 0x100010ba, 0x24001c60 },
+ { 0x100010bb, 0x24001c60 },
+ { 0x100010bc, 0x24001c60 },
+ { 0x100010bd, 0x24001c60 },
+ { 0x100010be, 0x24001c60 },
+ { 0x100010bf, 0x24001c60 },
+ { 0x100010c0, 0x24001c60 },
+ { 0x100010c1, 0x24001c60 },
+ { 0x100010c2, 0x24001c60 },
+ { 0x100010c3, 0x24001c60 },
+ { 0x100010c4, 0x24001c60 },
+ { 0x100010c5, 0x24001c60 },
+ { 0x108010d0, 0x1c00002a },
+ { 0x090010fb, 0x54000000 },
+ { 0x100010fc, 0x18000000 },
+ { 0x17801100, 0x1c000059 },
+ { 0x1780115f, 0x1c000043 },
+ { 0x178011a8, 0x1c000051 },
+ { 0x0f801200, 0x1c000048 },
+ { 0x0f80124a, 0x1c000003 },
+ { 0x0f801250, 0x1c000006 },
+ { 0x0f001258, 0x1c000000 },
+ { 0x0f80125a, 0x1c000003 },
+ { 0x0f801260, 0x1c000028 },
+ { 0x0f80128a, 0x1c000003 },
+ { 0x0f801290, 0x1c000020 },
+ { 0x0f8012b2, 0x1c000003 },
+ { 0x0f8012b8, 0x1c000006 },
+ { 0x0f0012c0, 0x1c000000 },
+ { 0x0f8012c2, 0x1c000003 },
+ { 0x0f8012c8, 0x1c00000e },
+ { 0x0f8012d8, 0x1c000038 },
+ { 0x0f801312, 0x1c000003 },
+ { 0x0f801318, 0x1c000042 },
+ { 0x0f00135f, 0x30000000 },
+ { 0x0f001360, 0x68000000 },
+ { 0x0f801361, 0x54000007 },
+ { 0x0f801369, 0x3c000013 },
+ { 0x0f801380, 0x1c00000f },
+ { 0x0f801390, 0x68000009 },
+ { 0x088013a0, 0x1c000054 },
+ { 0x07801401, 0x1c00026b },
+ { 0x0780166d, 0x54000001 },
+ { 0x0780166f, 0x1c000007 },
+ { 0x28001680, 0x74000000 },
+ { 0x28801681, 0x1c000019 },
+ { 0x2800169b, 0x58000000 },
+ { 0x2800169c, 0x48000000 },
+ { 0x2d8016a0, 0x1c00004a },
+ { 0x098016eb, 0x54000002 },
+ { 0x2d8016ee, 0x38000002 },
+ { 0x32801700, 0x1c00000c },
+ { 0x3280170e, 0x1c000003 },
+ { 0x32801712, 0x30000002 },
+ { 0x18801720, 0x1c000011 },
+ { 0x18801732, 0x30000002 },
+ { 0x09801735, 0x54000001 },
+ { 0x06801740, 0x1c000011 },
+ { 0x06801752, 0x30000001 },
+ { 0x33801760, 0x1c00000c },
+ { 0x3380176e, 0x1c000002 },
+ { 0x33801772, 0x30000001 },
+ { 0x1f801780, 0x1c000033 },
+ { 0x1f8017b4, 0x04000001 },
+ { 0x1f0017b6, 0x28000000 },
+ { 0x1f8017b7, 0x30000006 },
+ { 0x1f8017be, 0x28000007 },
+ { 0x1f0017c6, 0x30000000 },
+ { 0x1f8017c7, 0x28000001 },
+ { 0x1f8017c9, 0x3000000a },
+ { 0x1f8017d4, 0x54000002 },
+ { 0x1f0017d7, 0x18000000 },
+ { 0x1f8017d8, 0x54000002 },
+ { 0x1f0017db, 0x5c000000 },
+ { 0x1f0017dc, 0x1c000000 },
+ { 0x1f0017dd, 0x30000000 },
+ { 0x1f8017e0, 0x34000009 },
+ { 0x1f8017f0, 0x3c000009 },
+ { 0x25801800, 0x54000005 },
+ { 0x25001806, 0x44000000 },
+ { 0x25801807, 0x54000003 },
+ { 0x2580180b, 0x30000002 },
+ { 0x2500180e, 0x74000000 },
+ { 0x25801810, 0x34000009 },
+ { 0x25801820, 0x1c000022 },
+ { 0x25001843, 0x18000000 },
+ { 0x25801844, 0x1c000033 },
+ { 0x25801880, 0x1c000028 },
+ { 0x250018a9, 0x30000000 },
+ { 0x22801900, 0x1c00001c },
+ { 0x22801920, 0x30000002 },
+ { 0x22801923, 0x28000003 },
+ { 0x22801927, 0x30000001 },
+ { 0x22801929, 0x28000002 },
+ { 0x22801930, 0x28000001 },
+ { 0x22001932, 0x30000000 },
+ { 0x22801933, 0x28000005 },
+ { 0x22801939, 0x30000002 },
+ { 0x22001940, 0x68000000 },
+ { 0x22801944, 0x54000001 },
+ { 0x22801946, 0x34000009 },
+ { 0x34801950, 0x1c00001d },
+ { 0x34801970, 0x1c000004 },
+ { 0x27801980, 0x1c000029 },
+ { 0x278019b0, 0x28000010 },
+ { 0x278019c1, 0x1c000006 },
+ { 0x278019c8, 0x28000001 },
+ { 0x278019d0, 0x34000009 },
+ { 0x278019de, 0x54000001 },
+ { 0x1f8019e0, 0x6800001f },
+ { 0x05801a00, 0x1c000016 },
+ { 0x05801a17, 0x30000001 },
+ { 0x05801a19, 0x28000002 },
+ { 0x05801a1e, 0x54000001 },
+ { 0x21801d00, 0x1400002b },
+ { 0x21801d2c, 0x18000035 },
+ { 0x21801d62, 0x14000015 },
+ { 0x0c001d78, 0x18000000 },
+ { 0x21801d79, 0x14000021 },
+ { 0x21801d9b, 0x18000024 },
+ { 0x1b801dc0, 0x30000003 },
+ { 0x21001e00, 0x24000001 },
+ { 0x21001e01, 0x1400ffff },
+ { 0x21001e02, 0x24000001 },
+ { 0x21001e03, 0x1400ffff },
+ { 0x21001e04, 0x24000001 },
+ { 0x21001e05, 0x1400ffff },
+ { 0x21001e06, 0x24000001 },
+ { 0x21001e07, 0x1400ffff },
+ { 0x21001e08, 0x24000001 },
+ { 0x21001e09, 0x1400ffff },
+ { 0x21001e0a, 0x24000001 },
+ { 0x21001e0b, 0x1400ffff },
+ { 0x21001e0c, 0x24000001 },
+ { 0x21001e0d, 0x1400ffff },
+ { 0x21001e0e, 0x24000001 },
+ { 0x21001e0f, 0x1400ffff },
+ { 0x21001e10, 0x24000001 },
+ { 0x21001e11, 0x1400ffff },
+ { 0x21001e12, 0x24000001 },
+ { 0x21001e13, 0x1400ffff },
+ { 0x21001e14, 0x24000001 },
+ { 0x21001e15, 0x1400ffff },
+ { 0x21001e16, 0x24000001 },
+ { 0x21001e17, 0x1400ffff },
+ { 0x21001e18, 0x24000001 },
+ { 0x21001e19, 0x1400ffff },
+ { 0x21001e1a, 0x24000001 },
+ { 0x21001e1b, 0x1400ffff },
+ { 0x21001e1c, 0x24000001 },
+ { 0x21001e1d, 0x1400ffff },
+ { 0x21001e1e, 0x24000001 },
+ { 0x21001e1f, 0x1400ffff },
+ { 0x21001e20, 0x24000001 },
+ { 0x21001e21, 0x1400ffff },
+ { 0x21001e22, 0x24000001 },
+ { 0x21001e23, 0x1400ffff },
+ { 0x21001e24, 0x24000001 },
+ { 0x21001e25, 0x1400ffff },
+ { 0x21001e26, 0x24000001 },
+ { 0x21001e27, 0x1400ffff },
+ { 0x21001e28, 0x24000001 },
+ { 0x21001e29, 0x1400ffff },
+ { 0x21001e2a, 0x24000001 },
+ { 0x21001e2b, 0x1400ffff },
+ { 0x21001e2c, 0x24000001 },
+ { 0x21001e2d, 0x1400ffff },
+ { 0x21001e2e, 0x24000001 },
+ { 0x21001e2f, 0x1400ffff },
+ { 0x21001e30, 0x24000001 },
+ { 0x21001e31, 0x1400ffff },
+ { 0x21001e32, 0x24000001 },
+ { 0x21001e33, 0x1400ffff },
+ { 0x21001e34, 0x24000001 },
+ { 0x21001e35, 0x1400ffff },
+ { 0x21001e36, 0x24000001 },
+ { 0x21001e37, 0x1400ffff },
+ { 0x21001e38, 0x24000001 },
+ { 0x21001e39, 0x1400ffff },
+ { 0x21001e3a, 0x24000001 },
+ { 0x21001e3b, 0x1400ffff },
+ { 0x21001e3c, 0x24000001 },
+ { 0x21001e3d, 0x1400ffff },
+ { 0x21001e3e, 0x24000001 },
+ { 0x21001e3f, 0x1400ffff },
+ { 0x21001e40, 0x24000001 },
+ { 0x21001e41, 0x1400ffff },
+ { 0x21001e42, 0x24000001 },
+ { 0x21001e43, 0x1400ffff },
+ { 0x21001e44, 0x24000001 },
+ { 0x21001e45, 0x1400ffff },
+ { 0x21001e46, 0x24000001 },
+ { 0x21001e47, 0x1400ffff },
+ { 0x21001e48, 0x24000001 },
+ { 0x21001e49, 0x1400ffff },
+ { 0x21001e4a, 0x24000001 },
+ { 0x21001e4b, 0x1400ffff },
+ { 0x21001e4c, 0x24000001 },
+ { 0x21001e4d, 0x1400ffff },
+ { 0x21001e4e, 0x24000001 },
+ { 0x21001e4f, 0x1400ffff },
+ { 0x21001e50, 0x24000001 },
+ { 0x21001e51, 0x1400ffff },
+ { 0x21001e52, 0x24000001 },
+ { 0x21001e53, 0x1400ffff },
+ { 0x21001e54, 0x24000001 },
+ { 0x21001e55, 0x1400ffff },
+ { 0x21001e56, 0x24000001 },
+ { 0x21001e57, 0x1400ffff },
+ { 0x21001e58, 0x24000001 },
+ { 0x21001e59, 0x1400ffff },
+ { 0x21001e5a, 0x24000001 },
+ { 0x21001e5b, 0x1400ffff },
+ { 0x21001e5c, 0x24000001 },
+ { 0x21001e5d, 0x1400ffff },
+ { 0x21001e5e, 0x24000001 },
+ { 0x21001e5f, 0x1400ffff },
+ { 0x21001e60, 0x24000001 },
+ { 0x21001e61, 0x1400ffff },
+ { 0x21001e62, 0x24000001 },
+ { 0x21001e63, 0x1400ffff },
+ { 0x21001e64, 0x24000001 },
+ { 0x21001e65, 0x1400ffff },
+ { 0x21001e66, 0x24000001 },
+ { 0x21001e67, 0x1400ffff },
+ { 0x21001e68, 0x24000001 },
+ { 0x21001e69, 0x1400ffff },
+ { 0x21001e6a, 0x24000001 },
+ { 0x21001e6b, 0x1400ffff },
+ { 0x21001e6c, 0x24000001 },
+ { 0x21001e6d, 0x1400ffff },
+ { 0x21001e6e, 0x24000001 },
+ { 0x21001e6f, 0x1400ffff },
+ { 0x21001e70, 0x24000001 },
+ { 0x21001e71, 0x1400ffff },
+ { 0x21001e72, 0x24000001 },
+ { 0x21001e73, 0x1400ffff },
+ { 0x21001e74, 0x24000001 },
+ { 0x21001e75, 0x1400ffff },
+ { 0x21001e76, 0x24000001 },
+ { 0x21001e77, 0x1400ffff },
+ { 0x21001e78, 0x24000001 },
+ { 0x21001e79, 0x1400ffff },
+ { 0x21001e7a, 0x24000001 },
+ { 0x21001e7b, 0x1400ffff },
+ { 0x21001e7c, 0x24000001 },
+ { 0x21001e7d, 0x1400ffff },
+ { 0x21001e7e, 0x24000001 },
+ { 0x21001e7f, 0x1400ffff },
+ { 0x21001e80, 0x24000001 },
+ { 0x21001e81, 0x1400ffff },
+ { 0x21001e82, 0x24000001 },
+ { 0x21001e83, 0x1400ffff },
+ { 0x21001e84, 0x24000001 },
+ { 0x21001e85, 0x1400ffff },
+ { 0x21001e86, 0x24000001 },
+ { 0x21001e87, 0x1400ffff },
+ { 0x21001e88, 0x24000001 },
+ { 0x21001e89, 0x1400ffff },
+ { 0x21001e8a, 0x24000001 },
+ { 0x21001e8b, 0x1400ffff },
+ { 0x21001e8c, 0x24000001 },
+ { 0x21001e8d, 0x1400ffff },
+ { 0x21001e8e, 0x24000001 },
+ { 0x21001e8f, 0x1400ffff },
+ { 0x21001e90, 0x24000001 },
+ { 0x21001e91, 0x1400ffff },
+ { 0x21001e92, 0x24000001 },
+ { 0x21001e93, 0x1400ffff },
+ { 0x21001e94, 0x24000001 },
+ { 0x21001e95, 0x1400ffff },
+ { 0x21801e96, 0x14000004 },
+ { 0x21001e9b, 0x1400ffc5 },
+ { 0x21001ea0, 0x24000001 },
+ { 0x21001ea1, 0x1400ffff },
+ { 0x21001ea2, 0x24000001 },
+ { 0x21001ea3, 0x1400ffff },
+ { 0x21001ea4, 0x24000001 },
+ { 0x21001ea5, 0x1400ffff },
+ { 0x21001ea6, 0x24000001 },
+ { 0x21001ea7, 0x1400ffff },
+ { 0x21001ea8, 0x24000001 },
+ { 0x21001ea9, 0x1400ffff },
+ { 0x21001eaa, 0x24000001 },
+ { 0x21001eab, 0x1400ffff },
+ { 0x21001eac, 0x24000001 },
+ { 0x21001ead, 0x1400ffff },
+ { 0x21001eae, 0x24000001 },
+ { 0x21001eaf, 0x1400ffff },
+ { 0x21001eb0, 0x24000001 },
+ { 0x21001eb1, 0x1400ffff },
+ { 0x21001eb2, 0x24000001 },
+ { 0x21001eb3, 0x1400ffff },
+ { 0x21001eb4, 0x24000001 },
+ { 0x21001eb5, 0x1400ffff },
+ { 0x21001eb6, 0x24000001 },
+ { 0x21001eb7, 0x1400ffff },
+ { 0x21001eb8, 0x24000001 },
+ { 0x21001eb9, 0x1400ffff },
+ { 0x21001eba, 0x24000001 },
+ { 0x21001ebb, 0x1400ffff },
+ { 0x21001ebc, 0x24000001 },
+ { 0x21001ebd, 0x1400ffff },
+ { 0x21001ebe, 0x24000001 },
+ { 0x21001ebf, 0x1400ffff },
+ { 0x21001ec0, 0x24000001 },
+ { 0x21001ec1, 0x1400ffff },
+ { 0x21001ec2, 0x24000001 },
+ { 0x21001ec3, 0x1400ffff },
+ { 0x21001ec4, 0x24000001 },
+ { 0x21001ec5, 0x1400ffff },
+ { 0x21001ec6, 0x24000001 },
+ { 0x21001ec7, 0x1400ffff },
+ { 0x21001ec8, 0x24000001 },
+ { 0x21001ec9, 0x1400ffff },
+ { 0x21001eca, 0x24000001 },
+ { 0x21001ecb, 0x1400ffff },
+ { 0x21001ecc, 0x24000001 },
+ { 0x21001ecd, 0x1400ffff },
+ { 0x21001ece, 0x24000001 },
+ { 0x21001ecf, 0x1400ffff },
+ { 0x21001ed0, 0x24000001 },
+ { 0x21001ed1, 0x1400ffff },
+ { 0x21001ed2, 0x24000001 },
+ { 0x21001ed3, 0x1400ffff },
+ { 0x21001ed4, 0x24000001 },
+ { 0x21001ed5, 0x1400ffff },
+ { 0x21001ed6, 0x24000001 },
+ { 0x21001ed7, 0x1400ffff },
+ { 0x21001ed8, 0x24000001 },
+ { 0x21001ed9, 0x1400ffff },
+ { 0x21001eda, 0x24000001 },
+ { 0x21001edb, 0x1400ffff },
+ { 0x21001edc, 0x24000001 },
+ { 0x21001edd, 0x1400ffff },
+ { 0x21001ede, 0x24000001 },
+ { 0x21001edf, 0x1400ffff },
+ { 0x21001ee0, 0x24000001 },
+ { 0x21001ee1, 0x1400ffff },
+ { 0x21001ee2, 0x24000001 },
+ { 0x21001ee3, 0x1400ffff },
+ { 0x21001ee4, 0x24000001 },
+ { 0x21001ee5, 0x1400ffff },
+ { 0x21001ee6, 0x24000001 },
+ { 0x21001ee7, 0x1400ffff },
+ { 0x21001ee8, 0x24000001 },
+ { 0x21001ee9, 0x1400ffff },
+ { 0x21001eea, 0x24000001 },
+ { 0x21001eeb, 0x1400ffff },
+ { 0x21001eec, 0x24000001 },
+ { 0x21001eed, 0x1400ffff },
+ { 0x21001eee, 0x24000001 },
+ { 0x21001eef, 0x1400ffff },
+ { 0x21001ef0, 0x24000001 },
+ { 0x21001ef1, 0x1400ffff },
+ { 0x21001ef2, 0x24000001 },
+ { 0x21001ef3, 0x1400ffff },
+ { 0x21001ef4, 0x24000001 },
+ { 0x21001ef5, 0x1400ffff },
+ { 0x21001ef6, 0x24000001 },
+ { 0x21001ef7, 0x1400ffff },
+ { 0x21001ef8, 0x24000001 },
+ { 0x21001ef9, 0x1400ffff },
+ { 0x13001f00, 0x14000008 },
+ { 0x13001f01, 0x14000008 },
+ { 0x13001f02, 0x14000008 },
+ { 0x13001f03, 0x14000008 },
+ { 0x13001f04, 0x14000008 },
+ { 0x13001f05, 0x14000008 },
+ { 0x13001f06, 0x14000008 },
+ { 0x13001f07, 0x14000008 },
+ { 0x13001f08, 0x2400fff8 },
+ { 0x13001f09, 0x2400fff8 },
+ { 0x13001f0a, 0x2400fff8 },
+ { 0x13001f0b, 0x2400fff8 },
+ { 0x13001f0c, 0x2400fff8 },
+ { 0x13001f0d, 0x2400fff8 },
+ { 0x13001f0e, 0x2400fff8 },
+ { 0x13001f0f, 0x2400fff8 },
+ { 0x13001f10, 0x14000008 },
+ { 0x13001f11, 0x14000008 },
+ { 0x13001f12, 0x14000008 },
+ { 0x13001f13, 0x14000008 },
+ { 0x13001f14, 0x14000008 },
+ { 0x13001f15, 0x14000008 },
+ { 0x13001f18, 0x2400fff8 },
+ { 0x13001f19, 0x2400fff8 },
+ { 0x13001f1a, 0x2400fff8 },
+ { 0x13001f1b, 0x2400fff8 },
+ { 0x13001f1c, 0x2400fff8 },
+ { 0x13001f1d, 0x2400fff8 },
+ { 0x13001f20, 0x14000008 },
+ { 0x13001f21, 0x14000008 },
+ { 0x13001f22, 0x14000008 },
+ { 0x13001f23, 0x14000008 },
+ { 0x13001f24, 0x14000008 },
+ { 0x13001f25, 0x14000008 },
+ { 0x13001f26, 0x14000008 },
+ { 0x13001f27, 0x14000008 },
+ { 0x13001f28, 0x2400fff8 },
+ { 0x13001f29, 0x2400fff8 },
+ { 0x13001f2a, 0x2400fff8 },
+ { 0x13001f2b, 0x2400fff8 },
+ { 0x13001f2c, 0x2400fff8 },
+ { 0x13001f2d, 0x2400fff8 },
+ { 0x13001f2e, 0x2400fff8 },
+ { 0x13001f2f, 0x2400fff8 },
+ { 0x13001f30, 0x14000008 },
+ { 0x13001f31, 0x14000008 },
+ { 0x13001f32, 0x14000008 },
+ { 0x13001f33, 0x14000008 },
+ { 0x13001f34, 0x14000008 },
+ { 0x13001f35, 0x14000008 },
+ { 0x13001f36, 0x14000008 },
+ { 0x13001f37, 0x14000008 },
+ { 0x13001f38, 0x2400fff8 },
+ { 0x13001f39, 0x2400fff8 },
+ { 0x13001f3a, 0x2400fff8 },
+ { 0x13001f3b, 0x2400fff8 },
+ { 0x13001f3c, 0x2400fff8 },
+ { 0x13001f3d, 0x2400fff8 },
+ { 0x13001f3e, 0x2400fff8 },
+ { 0x13001f3f, 0x2400fff8 },
+ { 0x13001f40, 0x14000008 },
+ { 0x13001f41, 0x14000008 },
+ { 0x13001f42, 0x14000008 },
+ { 0x13001f43, 0x14000008 },
+ { 0x13001f44, 0x14000008 },
+ { 0x13001f45, 0x14000008 },
+ { 0x13001f48, 0x2400fff8 },
+ { 0x13001f49, 0x2400fff8 },
+ { 0x13001f4a, 0x2400fff8 },
+ { 0x13001f4b, 0x2400fff8 },
+ { 0x13001f4c, 0x2400fff8 },
+ { 0x13001f4d, 0x2400fff8 },
+ { 0x13001f50, 0x14000000 },
+ { 0x13001f51, 0x14000008 },
+ { 0x13001f52, 0x14000000 },
+ { 0x13001f53, 0x14000008 },
+ { 0x13001f54, 0x14000000 },
+ { 0x13001f55, 0x14000008 },
+ { 0x13001f56, 0x14000000 },
+ { 0x13001f57, 0x14000008 },
+ { 0x13001f59, 0x2400fff8 },
+ { 0x13001f5b, 0x2400fff8 },
+ { 0x13001f5d, 0x2400fff8 },
+ { 0x13001f5f, 0x2400fff8 },
+ { 0x13001f60, 0x14000008 },
+ { 0x13001f61, 0x14000008 },
+ { 0x13001f62, 0x14000008 },
+ { 0x13001f63, 0x14000008 },
+ { 0x13001f64, 0x14000008 },
+ { 0x13001f65, 0x14000008 },
+ { 0x13001f66, 0x14000008 },
+ { 0x13001f67, 0x14000008 },
+ { 0x13001f68, 0x2400fff8 },
+ { 0x13001f69, 0x2400fff8 },
+ { 0x13001f6a, 0x2400fff8 },
+ { 0x13001f6b, 0x2400fff8 },
+ { 0x13001f6c, 0x2400fff8 },
+ { 0x13001f6d, 0x2400fff8 },
+ { 0x13001f6e, 0x2400fff8 },
+ { 0x13001f6f, 0x2400fff8 },
+ { 0x13001f70, 0x1400004a },
+ { 0x13001f71, 0x1400004a },
+ { 0x13001f72, 0x14000056 },
+ { 0x13001f73, 0x14000056 },
+ { 0x13001f74, 0x14000056 },
+ { 0x13001f75, 0x14000056 },
+ { 0x13001f76, 0x14000064 },
+ { 0x13001f77, 0x14000064 },
+ { 0x13001f78, 0x14000080 },
+ { 0x13001f79, 0x14000080 },
+ { 0x13001f7a, 0x14000070 },
+ { 0x13001f7b, 0x14000070 },
+ { 0x13001f7c, 0x1400007e },
+ { 0x13001f7d, 0x1400007e },
+ { 0x13001f80, 0x14000008 },
+ { 0x13001f81, 0x14000008 },
+ { 0x13001f82, 0x14000008 },
+ { 0x13001f83, 0x14000008 },
+ { 0x13001f84, 0x14000008 },
+ { 0x13001f85, 0x14000008 },
+ { 0x13001f86, 0x14000008 },
+ { 0x13001f87, 0x14000008 },
+ { 0x13001f88, 0x2000fff8 },
+ { 0x13001f89, 0x2000fff8 },
+ { 0x13001f8a, 0x2000fff8 },
+ { 0x13001f8b, 0x2000fff8 },
+ { 0x13001f8c, 0x2000fff8 },
+ { 0x13001f8d, 0x2000fff8 },
+ { 0x13001f8e, 0x2000fff8 },
+ { 0x13001f8f, 0x2000fff8 },
+ { 0x13001f90, 0x14000008 },
+ { 0x13001f91, 0x14000008 },
+ { 0x13001f92, 0x14000008 },
+ { 0x13001f93, 0x14000008 },
+ { 0x13001f94, 0x14000008 },
+ { 0x13001f95, 0x14000008 },
+ { 0x13001f96, 0x14000008 },
+ { 0x13001f97, 0x14000008 },
+ { 0x13001f98, 0x2000fff8 },
+ { 0x13001f99, 0x2000fff8 },
+ { 0x13001f9a, 0x2000fff8 },
+ { 0x13001f9b, 0x2000fff8 },
+ { 0x13001f9c, 0x2000fff8 },
+ { 0x13001f9d, 0x2000fff8 },
+ { 0x13001f9e, 0x2000fff8 },
+ { 0x13001f9f, 0x2000fff8 },
+ { 0x13001fa0, 0x14000008 },
+ { 0x13001fa1, 0x14000008 },
+ { 0x13001fa2, 0x14000008 },
+ { 0x13001fa3, 0x14000008 },
+ { 0x13001fa4, 0x14000008 },
+ { 0x13001fa5, 0x14000008 },
+ { 0x13001fa6, 0x14000008 },
+ { 0x13001fa7, 0x14000008 },
+ { 0x13001fa8, 0x2000fff8 },
+ { 0x13001fa9, 0x2000fff8 },
+ { 0x13001faa, 0x2000fff8 },
+ { 0x13001fab, 0x2000fff8 },
+ { 0x13001fac, 0x2000fff8 },
+ { 0x13001fad, 0x2000fff8 },
+ { 0x13001fae, 0x2000fff8 },
+ { 0x13001faf, 0x2000fff8 },
+ { 0x13001fb0, 0x14000008 },
+ { 0x13001fb1, 0x14000008 },
+ { 0x13001fb2, 0x14000000 },
+ { 0x13001fb3, 0x14000009 },
+ { 0x13001fb4, 0x14000000 },
+ { 0x13801fb6, 0x14000001 },
+ { 0x13001fb8, 0x2400fff8 },
+ { 0x13001fb9, 0x2400fff8 },
+ { 0x13001fba, 0x2400ffb6 },
+ { 0x13001fbb, 0x2400ffb6 },
+ { 0x13001fbc, 0x2000fff7 },
+ { 0x13001fbd, 0x60000000 },
+ { 0x13001fbe, 0x1400e3db },
+ { 0x13801fbf, 0x60000002 },
+ { 0x13001fc2, 0x14000000 },
+ { 0x13001fc3, 0x14000009 },
+ { 0x13001fc4, 0x14000000 },
+ { 0x13801fc6, 0x14000001 },
+ { 0x13001fc8, 0x2400ffaa },
+ { 0x13001fc9, 0x2400ffaa },
+ { 0x13001fca, 0x2400ffaa },
+ { 0x13001fcb, 0x2400ffaa },
+ { 0x13001fcc, 0x2000fff7 },
+ { 0x13801fcd, 0x60000002 },
+ { 0x13001fd0, 0x14000008 },
+ { 0x13001fd1, 0x14000008 },
+ { 0x13801fd2, 0x14000001 },
+ { 0x13801fd6, 0x14000001 },
+ { 0x13001fd8, 0x2400fff8 },
+ { 0x13001fd9, 0x2400fff8 },
+ { 0x13001fda, 0x2400ff9c },
+ { 0x13001fdb, 0x2400ff9c },
+ { 0x13801fdd, 0x60000002 },
+ { 0x13001fe0, 0x14000008 },
+ { 0x13001fe1, 0x14000008 },
+ { 0x13801fe2, 0x14000002 },
+ { 0x13001fe5, 0x14000007 },
+ { 0x13801fe6, 0x14000001 },
+ { 0x13001fe8, 0x2400fff8 },
+ { 0x13001fe9, 0x2400fff8 },
+ { 0x13001fea, 0x2400ff90 },
+ { 0x13001feb, 0x2400ff90 },
+ { 0x13001fec, 0x2400fff9 },
+ { 0x13801fed, 0x60000002 },
+ { 0x13001ff2, 0x14000000 },
+ { 0x13001ff3, 0x14000009 },
+ { 0x13001ff4, 0x14000000 },
+ { 0x13801ff6, 0x14000001 },
+ { 0x13001ff8, 0x2400ff80 },
+ { 0x13001ff9, 0x2400ff80 },
+ { 0x13001ffa, 0x2400ff82 },
+ { 0x13001ffb, 0x2400ff82 },
+ { 0x13001ffc, 0x2000fff7 },
+ { 0x13801ffd, 0x60000001 },
+ { 0x09802000, 0x7400000a },
+ { 0x0980200b, 0x04000004 },
+ { 0x09802010, 0x44000005 },
+ { 0x09802016, 0x54000001 },
+ { 0x09002018, 0x50000000 },
+ { 0x09002019, 0x4c000000 },
+ { 0x0900201a, 0x58000000 },
+ { 0x0980201b, 0x50000001 },
+ { 0x0900201d, 0x4c000000 },
+ { 0x0900201e, 0x58000000 },
+ { 0x0900201f, 0x50000000 },
+ { 0x09802020, 0x54000007 },
+ { 0x09002028, 0x6c000000 },
+ { 0x09002029, 0x70000000 },
+ { 0x0980202a, 0x04000004 },
+ { 0x0900202f, 0x74000000 },
+ { 0x09802030, 0x54000008 },
+ { 0x09002039, 0x50000000 },
+ { 0x0900203a, 0x4c000000 },
+ { 0x0980203b, 0x54000003 },
+ { 0x0980203f, 0x40000001 },
+ { 0x09802041, 0x54000002 },
+ { 0x09002044, 0x64000000 },
+ { 0x09002045, 0x58000000 },
+ { 0x09002046, 0x48000000 },
+ { 0x09802047, 0x5400000a },
+ { 0x09002052, 0x64000000 },
+ { 0x09002053, 0x54000000 },
+ { 0x09002054, 0x40000000 },
+ { 0x09802055, 0x54000009 },
+ { 0x0900205f, 0x74000000 },
+ { 0x09802060, 0x04000003 },
+ { 0x0980206a, 0x04000005 },
+ { 0x09002070, 0x3c000000 },
+ { 0x21002071, 0x14000000 },
+ { 0x09802074, 0x3c000005 },
+ { 0x0980207a, 0x64000002 },
+ { 0x0900207d, 0x58000000 },
+ { 0x0900207e, 0x48000000 },
+ { 0x2100207f, 0x14000000 },
+ { 0x09802080, 0x3c000009 },
+ { 0x0980208a, 0x64000002 },
+ { 0x0900208d, 0x58000000 },
+ { 0x0900208e, 0x48000000 },
+ { 0x21802090, 0x18000004 },
+ { 0x098020a0, 0x5c000015 },
+ { 0x1b8020d0, 0x3000000c },
+ { 0x1b8020dd, 0x2c000003 },
+ { 0x1b0020e1, 0x30000000 },
+ { 0x1b8020e2, 0x2c000002 },
+ { 0x1b8020e5, 0x30000006 },
+ { 0x09802100, 0x68000001 },
+ { 0x09002102, 0x24000000 },
+ { 0x09802103, 0x68000003 },
+ { 0x09002107, 0x24000000 },
+ { 0x09802108, 0x68000001 },
+ { 0x0900210a, 0x14000000 },
+ { 0x0980210b, 0x24000002 },
+ { 0x0980210e, 0x14000001 },
+ { 0x09802110, 0x24000002 },
+ { 0x09002113, 0x14000000 },
+ { 0x09002114, 0x68000000 },
+ { 0x09002115, 0x24000000 },
+ { 0x09802116, 0x68000002 },
+ { 0x09802119, 0x24000004 },
+ { 0x0980211e, 0x68000005 },
+ { 0x09002124, 0x24000000 },
+ { 0x09002125, 0x68000000 },
+ { 0x13002126, 0x2400e2a3 },
+ { 0x09002127, 0x68000000 },
+ { 0x09002128, 0x24000000 },
+ { 0x09002129, 0x68000000 },
+ { 0x2100212a, 0x2400df41 },
+ { 0x2100212b, 0x2400dfba },
+ { 0x0980212c, 0x24000001 },
+ { 0x0900212e, 0x68000000 },
+ { 0x0900212f, 0x14000000 },
+ { 0x09802130, 0x24000001 },
+ { 0x09002132, 0x68000000 },
+ { 0x09002133, 0x24000000 },
+ { 0x09002134, 0x14000000 },
+ { 0x09802135, 0x1c000003 },
+ { 0x09002139, 0x14000000 },
+ { 0x0980213a, 0x68000001 },
+ { 0x0980213c, 0x14000001 },
+ { 0x0980213e, 0x24000001 },
+ { 0x09802140, 0x64000004 },
+ { 0x09002145, 0x24000000 },
+ { 0x09802146, 0x14000003 },
+ { 0x0900214a, 0x68000000 },
+ { 0x0900214b, 0x64000000 },
+ { 0x0900214c, 0x68000000 },
+ { 0x09802153, 0x3c00000c },
+ { 0x09002160, 0x38000010 },
+ { 0x09002161, 0x38000010 },
+ { 0x09002162, 0x38000010 },
+ { 0x09002163, 0x38000010 },
+ { 0x09002164, 0x38000010 },
+ { 0x09002165, 0x38000010 },
+ { 0x09002166, 0x38000010 },
+ { 0x09002167, 0x38000010 },
+ { 0x09002168, 0x38000010 },
+ { 0x09002169, 0x38000010 },
+ { 0x0900216a, 0x38000010 },
+ { 0x0900216b, 0x38000010 },
+ { 0x0900216c, 0x38000010 },
+ { 0x0900216d, 0x38000010 },
+ { 0x0900216e, 0x38000010 },
+ { 0x0900216f, 0x38000010 },
+ { 0x09002170, 0x3800fff0 },
+ { 0x09002171, 0x3800fff0 },
+ { 0x09002172, 0x3800fff0 },
+ { 0x09002173, 0x3800fff0 },
+ { 0x09002174, 0x3800fff0 },
+ { 0x09002175, 0x3800fff0 },
+ { 0x09002176, 0x3800fff0 },
+ { 0x09002177, 0x3800fff0 },
+ { 0x09002178, 0x3800fff0 },
+ { 0x09002179, 0x3800fff0 },
+ { 0x0900217a, 0x3800fff0 },
+ { 0x0900217b, 0x3800fff0 },
+ { 0x0900217c, 0x3800fff0 },
+ { 0x0900217d, 0x3800fff0 },
+ { 0x0900217e, 0x3800fff0 },
+ { 0x0900217f, 0x3800fff0 },
+ { 0x09802180, 0x38000003 },
+ { 0x09802190, 0x64000004 },
+ { 0x09802195, 0x68000004 },
+ { 0x0980219a, 0x64000001 },
+ { 0x0980219c, 0x68000003 },
+ { 0x090021a0, 0x64000000 },
+ { 0x098021a1, 0x68000001 },
+ { 0x090021a3, 0x64000000 },
+ { 0x098021a4, 0x68000001 },
+ { 0x090021a6, 0x64000000 },
+ { 0x098021a7, 0x68000006 },
+ { 0x090021ae, 0x64000000 },
+ { 0x098021af, 0x6800001e },
+ { 0x098021ce, 0x64000001 },
+ { 0x098021d0, 0x68000001 },
+ { 0x090021d2, 0x64000000 },
+ { 0x090021d3, 0x68000000 },
+ { 0x090021d4, 0x64000000 },
+ { 0x098021d5, 0x6800001e },
+ { 0x098021f4, 0x6400010b },
+ { 0x09802300, 0x68000007 },
+ { 0x09802308, 0x64000003 },
+ { 0x0980230c, 0x68000013 },
+ { 0x09802320, 0x64000001 },
+ { 0x09802322, 0x68000006 },
+ { 0x09002329, 0x58000000 },
+ { 0x0900232a, 0x48000000 },
+ { 0x0980232b, 0x68000050 },
+ { 0x0900237c, 0x64000000 },
+ { 0x0980237d, 0x6800001d },
+ { 0x0980239b, 0x64000018 },
+ { 0x090023b4, 0x58000000 },
+ { 0x090023b5, 0x48000000 },
+ { 0x090023b6, 0x54000000 },
+ { 0x098023b7, 0x68000024 },
+ { 0x09802400, 0x68000026 },
+ { 0x09802440, 0x6800000a },
+ { 0x09802460, 0x3c00003b },
+ { 0x0980249c, 0x68000019 },
+ { 0x090024b6, 0x6800001a },
+ { 0x090024b7, 0x6800001a },
+ { 0x090024b8, 0x6800001a },
+ { 0x090024b9, 0x6800001a },
+ { 0x090024ba, 0x6800001a },
+ { 0x090024bb, 0x6800001a },
+ { 0x090024bc, 0x6800001a },
+ { 0x090024bd, 0x6800001a },
+ { 0x090024be, 0x6800001a },
+ { 0x090024bf, 0x6800001a },
+ { 0x090024c0, 0x6800001a },
+ { 0x090024c1, 0x6800001a },
+ { 0x090024c2, 0x6800001a },
+ { 0x090024c3, 0x6800001a },
+ { 0x090024c4, 0x6800001a },
+ { 0x090024c5, 0x6800001a },
+ { 0x090024c6, 0x6800001a },
+ { 0x090024c7, 0x6800001a },
+ { 0x090024c8, 0x6800001a },
+ { 0x090024c9, 0x6800001a },
+ { 0x090024ca, 0x6800001a },
+ { 0x090024cb, 0x6800001a },
+ { 0x090024cc, 0x6800001a },
+ { 0x090024cd, 0x6800001a },
+ { 0x090024ce, 0x6800001a },
+ { 0x090024cf, 0x6800001a },
+ { 0x090024d0, 0x6800ffe6 },
+ { 0x090024d1, 0x6800ffe6 },
+ { 0x090024d2, 0x6800ffe6 },
+ { 0x090024d3, 0x6800ffe6 },
+ { 0x090024d4, 0x6800ffe6 },
+ { 0x090024d5, 0x6800ffe6 },
+ { 0x090024d6, 0x6800ffe6 },
+ { 0x090024d7, 0x6800ffe6 },
+ { 0x090024d8, 0x6800ffe6 },
+ { 0x090024d9, 0x6800ffe6 },
+ { 0x090024da, 0x6800ffe6 },
+ { 0x090024db, 0x6800ffe6 },
+ { 0x090024dc, 0x6800ffe6 },
+ { 0x090024dd, 0x6800ffe6 },
+ { 0x090024de, 0x6800ffe6 },
+ { 0x090024df, 0x6800ffe6 },
+ { 0x090024e0, 0x6800ffe6 },
+ { 0x090024e1, 0x6800ffe6 },
+ { 0x090024e2, 0x6800ffe6 },
+ { 0x090024e3, 0x6800ffe6 },
+ { 0x090024e4, 0x6800ffe6 },
+ { 0x090024e5, 0x6800ffe6 },
+ { 0x090024e6, 0x6800ffe6 },
+ { 0x090024e7, 0x6800ffe6 },
+ { 0x090024e8, 0x6800ffe6 },
+ { 0x090024e9, 0x6800ffe6 },
+ { 0x098024ea, 0x3c000015 },
+ { 0x09802500, 0x680000b6 },
+ { 0x090025b7, 0x64000000 },
+ { 0x098025b8, 0x68000008 },
+ { 0x090025c1, 0x64000000 },
+ { 0x098025c2, 0x68000035 },
+ { 0x098025f8, 0x64000007 },
+ { 0x09802600, 0x6800006e },
+ { 0x0900266f, 0x64000000 },
+ { 0x09802670, 0x6800002c },
+ { 0x098026a0, 0x68000011 },
+ { 0x09802701, 0x68000003 },
+ { 0x09802706, 0x68000003 },
+ { 0x0980270c, 0x6800001b },
+ { 0x09802729, 0x68000022 },
+ { 0x0900274d, 0x68000000 },
+ { 0x0980274f, 0x68000003 },
+ { 0x09002756, 0x68000000 },
+ { 0x09802758, 0x68000006 },
+ { 0x09802761, 0x68000006 },
+ { 0x09002768, 0x58000000 },
+ { 0x09002769, 0x48000000 },
+ { 0x0900276a, 0x58000000 },
+ { 0x0900276b, 0x48000000 },
+ { 0x0900276c, 0x58000000 },
+ { 0x0900276d, 0x48000000 },
+ { 0x0900276e, 0x58000000 },
+ { 0x0900276f, 0x48000000 },
+ { 0x09002770, 0x58000000 },
+ { 0x09002771, 0x48000000 },
+ { 0x09002772, 0x58000000 },
+ { 0x09002773, 0x48000000 },
+ { 0x09002774, 0x58000000 },
+ { 0x09002775, 0x48000000 },
+ { 0x09802776, 0x3c00001d },
+ { 0x09002794, 0x68000000 },
+ { 0x09802798, 0x68000017 },
+ { 0x098027b1, 0x6800000d },
+ { 0x098027c0, 0x64000004 },
+ { 0x090027c5, 0x58000000 },
+ { 0x090027c6, 0x48000000 },
+ { 0x098027d0, 0x64000015 },
+ { 0x090027e6, 0x58000000 },
+ { 0x090027e7, 0x48000000 },
+ { 0x090027e8, 0x58000000 },
+ { 0x090027e9, 0x48000000 },
+ { 0x090027ea, 0x58000000 },
+ { 0x090027eb, 0x48000000 },
+ { 0x098027f0, 0x6400000f },
+ { 0x04802800, 0x680000ff },
+ { 0x09802900, 0x64000082 },
+ { 0x09002983, 0x58000000 },
+ { 0x09002984, 0x48000000 },
+ { 0x09002985, 0x58000000 },
+ { 0x09002986, 0x48000000 },
+ { 0x09002987, 0x58000000 },
+ { 0x09002988, 0x48000000 },
+ { 0x09002989, 0x58000000 },
+ { 0x0900298a, 0x48000000 },
+ { 0x0900298b, 0x58000000 },
+ { 0x0900298c, 0x48000000 },
+ { 0x0900298d, 0x58000000 },
+ { 0x0900298e, 0x48000000 },
+ { 0x0900298f, 0x58000000 },
+ { 0x09002990, 0x48000000 },
+ { 0x09002991, 0x58000000 },
+ { 0x09002992, 0x48000000 },
+ { 0x09002993, 0x58000000 },
+ { 0x09002994, 0x48000000 },
+ { 0x09002995, 0x58000000 },
+ { 0x09002996, 0x48000000 },
+ { 0x09002997, 0x58000000 },
+ { 0x09002998, 0x48000000 },
+ { 0x09802999, 0x6400003e },
+ { 0x090029d8, 0x58000000 },
+ { 0x090029d9, 0x48000000 },
+ { 0x090029da, 0x58000000 },
+ { 0x090029db, 0x48000000 },
+ { 0x098029dc, 0x6400001f },
+ { 0x090029fc, 0x58000000 },
+ { 0x090029fd, 0x48000000 },
+ { 0x098029fe, 0x64000101 },
+ { 0x09802b00, 0x68000013 },
+ { 0x11002c00, 0x24000030 },
+ { 0x11002c01, 0x24000030 },
+ { 0x11002c02, 0x24000030 },
+ { 0x11002c03, 0x24000030 },
+ { 0x11002c04, 0x24000030 },
+ { 0x11002c05, 0x24000030 },
+ { 0x11002c06, 0x24000030 },
+ { 0x11002c07, 0x24000030 },
+ { 0x11002c08, 0x24000030 },
+ { 0x11002c09, 0x24000030 },
+ { 0x11002c0a, 0x24000030 },
+ { 0x11002c0b, 0x24000030 },
+ { 0x11002c0c, 0x24000030 },
+ { 0x11002c0d, 0x24000030 },
+ { 0x11002c0e, 0x24000030 },
+ { 0x11002c0f, 0x24000030 },
+ { 0x11002c10, 0x24000030 },
+ { 0x11002c11, 0x24000030 },
+ { 0x11002c12, 0x24000030 },
+ { 0x11002c13, 0x24000030 },
+ { 0x11002c14, 0x24000030 },
+ { 0x11002c15, 0x24000030 },
+ { 0x11002c16, 0x24000030 },
+ { 0x11002c17, 0x24000030 },
+ { 0x11002c18, 0x24000030 },
+ { 0x11002c19, 0x24000030 },
+ { 0x11002c1a, 0x24000030 },
+ { 0x11002c1b, 0x24000030 },
+ { 0x11002c1c, 0x24000030 },
+ { 0x11002c1d, 0x24000030 },
+ { 0x11002c1e, 0x24000030 },
+ { 0x11002c1f, 0x24000030 },
+ { 0x11002c20, 0x24000030 },
+ { 0x11002c21, 0x24000030 },
+ { 0x11002c22, 0x24000030 },
+ { 0x11002c23, 0x24000030 },
+ { 0x11002c24, 0x24000030 },
+ { 0x11002c25, 0x24000030 },
+ { 0x11002c26, 0x24000030 },
+ { 0x11002c27, 0x24000030 },
+ { 0x11002c28, 0x24000030 },
+ { 0x11002c29, 0x24000030 },
+ { 0x11002c2a, 0x24000030 },
+ { 0x11002c2b, 0x24000030 },
+ { 0x11002c2c, 0x24000030 },
+ { 0x11002c2d, 0x24000030 },
+ { 0x11002c2e, 0x24000030 },
+ { 0x11002c30, 0x1400ffd0 },
+ { 0x11002c31, 0x1400ffd0 },
+ { 0x11002c32, 0x1400ffd0 },
+ { 0x11002c33, 0x1400ffd0 },
+ { 0x11002c34, 0x1400ffd0 },
+ { 0x11002c35, 0x1400ffd0 },
+ { 0x11002c36, 0x1400ffd0 },
+ { 0x11002c37, 0x1400ffd0 },
+ { 0x11002c38, 0x1400ffd0 },
+ { 0x11002c39, 0x1400ffd0 },
+ { 0x11002c3a, 0x1400ffd0 },
+ { 0x11002c3b, 0x1400ffd0 },
+ { 0x11002c3c, 0x1400ffd0 },
+ { 0x11002c3d, 0x1400ffd0 },
+ { 0x11002c3e, 0x1400ffd0 },
+ { 0x11002c3f, 0x1400ffd0 },
+ { 0x11002c40, 0x1400ffd0 },
+ { 0x11002c41, 0x1400ffd0 },
+ { 0x11002c42, 0x1400ffd0 },
+ { 0x11002c43, 0x1400ffd0 },
+ { 0x11002c44, 0x1400ffd0 },
+ { 0x11002c45, 0x1400ffd0 },
+ { 0x11002c46, 0x1400ffd0 },
+ { 0x11002c47, 0x1400ffd0 },
+ { 0x11002c48, 0x1400ffd0 },
+ { 0x11002c49, 0x1400ffd0 },
+ { 0x11002c4a, 0x1400ffd0 },
+ { 0x11002c4b, 0x1400ffd0 },
+ { 0x11002c4c, 0x1400ffd0 },
+ { 0x11002c4d, 0x1400ffd0 },
+ { 0x11002c4e, 0x1400ffd0 },
+ { 0x11002c4f, 0x1400ffd0 },
+ { 0x11002c50, 0x1400ffd0 },
+ { 0x11002c51, 0x1400ffd0 },
+ { 0x11002c52, 0x1400ffd0 },
+ { 0x11002c53, 0x1400ffd0 },
+ { 0x11002c54, 0x1400ffd0 },
+ { 0x11002c55, 0x1400ffd0 },
+ { 0x11002c56, 0x1400ffd0 },
+ { 0x11002c57, 0x1400ffd0 },
+ { 0x11002c58, 0x1400ffd0 },
+ { 0x11002c59, 0x1400ffd0 },
+ { 0x11002c5a, 0x1400ffd0 },
+ { 0x11002c5b, 0x1400ffd0 },
+ { 0x11002c5c, 0x1400ffd0 },
+ { 0x11002c5d, 0x1400ffd0 },
+ { 0x11002c5e, 0x1400ffd0 },
+ { 0x0a002c80, 0x24000001 },
+ { 0x0a002c81, 0x1400ffff },
+ { 0x0a002c82, 0x24000001 },
+ { 0x0a002c83, 0x1400ffff },
+ { 0x0a002c84, 0x24000001 },
+ { 0x0a002c85, 0x1400ffff },
+ { 0x0a002c86, 0x24000001 },
+ { 0x0a002c87, 0x1400ffff },
+ { 0x0a002c88, 0x24000001 },
+ { 0x0a002c89, 0x1400ffff },
+ { 0x0a002c8a, 0x24000001 },
+ { 0x0a002c8b, 0x1400ffff },
+ { 0x0a002c8c, 0x24000001 },
+ { 0x0a002c8d, 0x1400ffff },
+ { 0x0a002c8e, 0x24000001 },
+ { 0x0a002c8f, 0x1400ffff },
+ { 0x0a002c90, 0x24000001 },
+ { 0x0a002c91, 0x1400ffff },
+ { 0x0a002c92, 0x24000001 },
+ { 0x0a002c93, 0x1400ffff },
+ { 0x0a002c94, 0x24000001 },
+ { 0x0a002c95, 0x1400ffff },
+ { 0x0a002c96, 0x24000001 },
+ { 0x0a002c97, 0x1400ffff },
+ { 0x0a002c98, 0x24000001 },
+ { 0x0a002c99, 0x1400ffff },
+ { 0x0a002c9a, 0x24000001 },
+ { 0x0a002c9b, 0x1400ffff },
+ { 0x0a002c9c, 0x24000001 },
+ { 0x0a002c9d, 0x1400ffff },
+ { 0x0a002c9e, 0x24000001 },
+ { 0x0a002c9f, 0x1400ffff },
+ { 0x0a002ca0, 0x24000001 },
+ { 0x0a002ca1, 0x1400ffff },
+ { 0x0a002ca2, 0x24000001 },
+ { 0x0a002ca3, 0x1400ffff },
+ { 0x0a002ca4, 0x24000001 },
+ { 0x0a002ca5, 0x1400ffff },
+ { 0x0a002ca6, 0x24000001 },
+ { 0x0a002ca7, 0x1400ffff },
+ { 0x0a002ca8, 0x24000001 },
+ { 0x0a002ca9, 0x1400ffff },
+ { 0x0a002caa, 0x24000001 },
+ { 0x0a002cab, 0x1400ffff },
+ { 0x0a002cac, 0x24000001 },
+ { 0x0a002cad, 0x1400ffff },
+ { 0x0a002cae, 0x24000001 },
+ { 0x0a002caf, 0x1400ffff },
+ { 0x0a002cb0, 0x24000001 },
+ { 0x0a002cb1, 0x1400ffff },
+ { 0x0a002cb2, 0x24000001 },
+ { 0x0a002cb3, 0x1400ffff },
+ { 0x0a002cb4, 0x24000001 },
+ { 0x0a002cb5, 0x1400ffff },
+ { 0x0a002cb6, 0x24000001 },
+ { 0x0a002cb7, 0x1400ffff },
+ { 0x0a002cb8, 0x24000001 },
+ { 0x0a002cb9, 0x1400ffff },
+ { 0x0a002cba, 0x24000001 },
+ { 0x0a002cbb, 0x1400ffff },
+ { 0x0a002cbc, 0x24000001 },
+ { 0x0a002cbd, 0x1400ffff },
+ { 0x0a002cbe, 0x24000001 },
+ { 0x0a002cbf, 0x1400ffff },
+ { 0x0a002cc0, 0x24000001 },
+ { 0x0a002cc1, 0x1400ffff },
+ { 0x0a002cc2, 0x24000001 },
+ { 0x0a002cc3, 0x1400ffff },
+ { 0x0a002cc4, 0x24000001 },
+ { 0x0a002cc5, 0x1400ffff },
+ { 0x0a002cc6, 0x24000001 },
+ { 0x0a002cc7, 0x1400ffff },
+ { 0x0a002cc8, 0x24000001 },
+ { 0x0a002cc9, 0x1400ffff },
+ { 0x0a002cca, 0x24000001 },
+ { 0x0a002ccb, 0x1400ffff },
+ { 0x0a002ccc, 0x24000001 },
+ { 0x0a002ccd, 0x1400ffff },
+ { 0x0a002cce, 0x24000001 },
+ { 0x0a002ccf, 0x1400ffff },
+ { 0x0a002cd0, 0x24000001 },
+ { 0x0a002cd1, 0x1400ffff },
+ { 0x0a002cd2, 0x24000001 },
+ { 0x0a002cd3, 0x1400ffff },
+ { 0x0a002cd4, 0x24000001 },
+ { 0x0a002cd5, 0x1400ffff },
+ { 0x0a002cd6, 0x24000001 },
+ { 0x0a002cd7, 0x1400ffff },
+ { 0x0a002cd8, 0x24000001 },
+ { 0x0a002cd9, 0x1400ffff },
+ { 0x0a002cda, 0x24000001 },
+ { 0x0a002cdb, 0x1400ffff },
+ { 0x0a002cdc, 0x24000001 },
+ { 0x0a002cdd, 0x1400ffff },
+ { 0x0a002cde, 0x24000001 },
+ { 0x0a002cdf, 0x1400ffff },
+ { 0x0a002ce0, 0x24000001 },
+ { 0x0a002ce1, 0x1400ffff },
+ { 0x0a002ce2, 0x24000001 },
+ { 0x0a002ce3, 0x1400ffff },
+ { 0x0a002ce4, 0x14000000 },
+ { 0x0a802ce5, 0x68000005 },
+ { 0x0a802cf9, 0x54000003 },
+ { 0x0a002cfd, 0x3c000000 },
+ { 0x0a802cfe, 0x54000001 },
+ { 0x10002d00, 0x1400e3a0 },
+ { 0x10002d01, 0x1400e3a0 },
+ { 0x10002d02, 0x1400e3a0 },
+ { 0x10002d03, 0x1400e3a0 },
+ { 0x10002d04, 0x1400e3a0 },
+ { 0x10002d05, 0x1400e3a0 },
+ { 0x10002d06, 0x1400e3a0 },
+ { 0x10002d07, 0x1400e3a0 },
+ { 0x10002d08, 0x1400e3a0 },
+ { 0x10002d09, 0x1400e3a0 },
+ { 0x10002d0a, 0x1400e3a0 },
+ { 0x10002d0b, 0x1400e3a0 },
+ { 0x10002d0c, 0x1400e3a0 },
+ { 0x10002d0d, 0x1400e3a0 },
+ { 0x10002d0e, 0x1400e3a0 },
+ { 0x10002d0f, 0x1400e3a0 },
+ { 0x10002d10, 0x1400e3a0 },
+ { 0x10002d11, 0x1400e3a0 },
+ { 0x10002d12, 0x1400e3a0 },
+ { 0x10002d13, 0x1400e3a0 },
+ { 0x10002d14, 0x1400e3a0 },
+ { 0x10002d15, 0x1400e3a0 },
+ { 0x10002d16, 0x1400e3a0 },
+ { 0x10002d17, 0x1400e3a0 },
+ { 0x10002d18, 0x1400e3a0 },
+ { 0x10002d19, 0x1400e3a0 },
+ { 0x10002d1a, 0x1400e3a0 },
+ { 0x10002d1b, 0x1400e3a0 },
+ { 0x10002d1c, 0x1400e3a0 },
+ { 0x10002d1d, 0x1400e3a0 },
+ { 0x10002d1e, 0x1400e3a0 },
+ { 0x10002d1f, 0x1400e3a0 },
+ { 0x10002d20, 0x1400e3a0 },
+ { 0x10002d21, 0x1400e3a0 },
+ { 0x10002d22, 0x1400e3a0 },
+ { 0x10002d23, 0x1400e3a0 },
+ { 0x10002d24, 0x1400e3a0 },
+ { 0x10002d25, 0x1400e3a0 },
+ { 0x3a802d30, 0x1c000035 },
+ { 0x3a002d6f, 0x18000000 },
+ { 0x0f802d80, 0x1c000016 },
+ { 0x0f802da0, 0x1c000006 },
+ { 0x0f802da8, 0x1c000006 },
+ { 0x0f802db0, 0x1c000006 },
+ { 0x0f802db8, 0x1c000006 },
+ { 0x0f802dc0, 0x1c000006 },
+ { 0x0f802dc8, 0x1c000006 },
+ { 0x0f802dd0, 0x1c000006 },
+ { 0x0f802dd8, 0x1c000006 },
+ { 0x09802e00, 0x54000001 },
+ { 0x09002e02, 0x50000000 },
+ { 0x09002e03, 0x4c000000 },
+ { 0x09002e04, 0x50000000 },
+ { 0x09002e05, 0x4c000000 },
+ { 0x09802e06, 0x54000002 },
+ { 0x09002e09, 0x50000000 },
+ { 0x09002e0a, 0x4c000000 },
+ { 0x09002e0b, 0x54000000 },
+ { 0x09002e0c, 0x50000000 },
+ { 0x09002e0d, 0x4c000000 },
+ { 0x09802e0e, 0x54000008 },
+ { 0x09002e17, 0x44000000 },
+ { 0x09002e1c, 0x50000000 },
+ { 0x09002e1d, 0x4c000000 },
+ { 0x16802e80, 0x68000019 },
+ { 0x16802e9b, 0x68000058 },
+ { 0x16802f00, 0x680000d5 },
+ { 0x09802ff0, 0x6800000b },
+ { 0x09003000, 0x74000000 },
+ { 0x09803001, 0x54000002 },
+ { 0x09003004, 0x68000000 },
+ { 0x16003005, 0x18000000 },
+ { 0x09003006, 0x1c000000 },
+ { 0x16003007, 0x38000000 },
+ { 0x09003008, 0x58000000 },
+ { 0x09003009, 0x48000000 },
+ { 0x0900300a, 0x58000000 },
+ { 0x0900300b, 0x48000000 },
+ { 0x0900300c, 0x58000000 },
+ { 0x0900300d, 0x48000000 },
+ { 0x0900300e, 0x58000000 },
+ { 0x0900300f, 0x48000000 },
+ { 0x09003010, 0x58000000 },
+ { 0x09003011, 0x48000000 },
+ { 0x09803012, 0x68000001 },
+ { 0x09003014, 0x58000000 },
+ { 0x09003015, 0x48000000 },
+ { 0x09003016, 0x58000000 },
+ { 0x09003017, 0x48000000 },
+ { 0x09003018, 0x58000000 },
+ { 0x09003019, 0x48000000 },
+ { 0x0900301a, 0x58000000 },
+ { 0x0900301b, 0x48000000 },
+ { 0x0900301c, 0x44000000 },
+ { 0x0900301d, 0x58000000 },
+ { 0x0980301e, 0x48000001 },
+ { 0x09003020, 0x68000000 },
+ { 0x16803021, 0x38000008 },
+ { 0x1b80302a, 0x30000005 },
+ { 0x09003030, 0x44000000 },
+ { 0x09803031, 0x18000004 },
+ { 0x09803036, 0x68000001 },
+ { 0x16803038, 0x38000002 },
+ { 0x1600303b, 0x18000000 },
+ { 0x0900303c, 0x1c000000 },
+ { 0x0900303d, 0x54000000 },
+ { 0x0980303e, 0x68000001 },
+ { 0x1a803041, 0x1c000055 },
+ { 0x1b803099, 0x30000001 },
+ { 0x0980309b, 0x60000001 },
+ { 0x1a80309d, 0x18000001 },
+ { 0x1a00309f, 0x1c000000 },
+ { 0x090030a0, 0x44000000 },
+ { 0x1d8030a1, 0x1c000059 },
+ { 0x090030fb, 0x54000000 },
+ { 0x098030fc, 0x18000002 },
+ { 0x1d0030ff, 0x1c000000 },
+ { 0x03803105, 0x1c000027 },
+ { 0x17803131, 0x1c00005d },
+ { 0x09803190, 0x68000001 },
+ { 0x09803192, 0x3c000003 },
+ { 0x09803196, 0x68000009 },
+ { 0x038031a0, 0x1c000017 },
+ { 0x098031c0, 0x6800000f },
+ { 0x1d8031f0, 0x1c00000f },
+ { 0x17803200, 0x6800001e },
+ { 0x09803220, 0x3c000009 },
+ { 0x0980322a, 0x68000019 },
+ { 0x09003250, 0x68000000 },
+ { 0x09803251, 0x3c00000e },
+ { 0x17803260, 0x6800001f },
+ { 0x09803280, 0x3c000009 },
+ { 0x0980328a, 0x68000026 },
+ { 0x098032b1, 0x3c00000e },
+ { 0x098032c0, 0x6800003e },
+ { 0x09803300, 0x680000ff },
+ { 0x16803400, 0x1c0019b5 },
+ { 0x09804dc0, 0x6800003f },
+ { 0x16804e00, 0x1c0051bb },
+ { 0x3c80a000, 0x1c000014 },
+ { 0x3c00a015, 0x18000000 },
+ { 0x3c80a016, 0x1c000476 },
+ { 0x3c80a490, 0x68000036 },
+ { 0x0980a700, 0x60000016 },
+ { 0x3080a800, 0x1c000001 },
+ { 0x3000a802, 0x28000000 },
+ { 0x3080a803, 0x1c000002 },
+ { 0x3000a806, 0x30000000 },
+ { 0x3080a807, 0x1c000003 },
+ { 0x3000a80b, 0x30000000 },
+ { 0x3080a80c, 0x1c000016 },
+ { 0x3080a823, 0x28000001 },
+ { 0x3080a825, 0x30000001 },
+ { 0x3000a827, 0x28000000 },
+ { 0x3080a828, 0x68000003 },
+ { 0x1780ac00, 0x1c002ba3 },
+ { 0x0980d800, 0x1000037f },
+ { 0x0980db80, 0x1000007f },
+ { 0x0980dc00, 0x100003ff },
+ { 0x0980e000, 0x0c0018ff },
+ { 0x1680f900, 0x1c00012d },
+ { 0x1680fa30, 0x1c00003a },
+ { 0x1680fa70, 0x1c000069 },
+ { 0x2180fb00, 0x14000006 },
+ { 0x0180fb13, 0x14000004 },
+ { 0x1900fb1d, 0x1c000000 },
+ { 0x1900fb1e, 0x30000000 },
+ { 0x1980fb1f, 0x1c000009 },
+ { 0x1900fb29, 0x64000000 },
+ { 0x1980fb2a, 0x1c00000c },
+ { 0x1980fb38, 0x1c000004 },
+ { 0x1900fb3e, 0x1c000000 },
+ { 0x1980fb40, 0x1c000001 },
+ { 0x1980fb43, 0x1c000001 },
+ { 0x1980fb46, 0x1c00006b },
+ { 0x0080fbd3, 0x1c00016a },
+ { 0x0900fd3e, 0x58000000 },
+ { 0x0900fd3f, 0x48000000 },
+ { 0x0080fd50, 0x1c00003f },
+ { 0x0080fd92, 0x1c000035 },
+ { 0x0080fdf0, 0x1c00000b },
+ { 0x0000fdfc, 0x5c000000 },
+ { 0x0900fdfd, 0x68000000 },
+ { 0x1b80fe00, 0x3000000f },
+ { 0x0980fe10, 0x54000006 },
+ { 0x0900fe17, 0x58000000 },
+ { 0x0900fe18, 0x48000000 },
+ { 0x0900fe19, 0x54000000 },
+ { 0x1b80fe20, 0x30000003 },
+ { 0x0900fe30, 0x54000000 },
+ { 0x0980fe31, 0x44000001 },
+ { 0x0980fe33, 0x40000001 },
+ { 0x0900fe35, 0x58000000 },
+ { 0x0900fe36, 0x48000000 },
+ { 0x0900fe37, 0x58000000 },
+ { 0x0900fe38, 0x48000000 },
+ { 0x0900fe39, 0x58000000 },
+ { 0x0900fe3a, 0x48000000 },
+ { 0x0900fe3b, 0x58000000 },
+ { 0x0900fe3c, 0x48000000 },
+ { 0x0900fe3d, 0x58000000 },
+ { 0x0900fe3e, 0x48000000 },
+ { 0x0900fe3f, 0x58000000 },
+ { 0x0900fe40, 0x48000000 },
+ { 0x0900fe41, 0x58000000 },
+ { 0x0900fe42, 0x48000000 },
+ { 0x0900fe43, 0x58000000 },
+ { 0x0900fe44, 0x48000000 },
+ { 0x0980fe45, 0x54000001 },
+ { 0x0900fe47, 0x58000000 },
+ { 0x0900fe48, 0x48000000 },
+ { 0x0980fe49, 0x54000003 },
+ { 0x0980fe4d, 0x40000002 },
+ { 0x0980fe50, 0x54000002 },
+ { 0x0980fe54, 0x54000003 },
+ { 0x0900fe58, 0x44000000 },
+ { 0x0900fe59, 0x58000000 },
+ { 0x0900fe5a, 0x48000000 },
+ { 0x0900fe5b, 0x58000000 },
+ { 0x0900fe5c, 0x48000000 },
+ { 0x0900fe5d, 0x58000000 },
+ { 0x0900fe5e, 0x48000000 },
+ { 0x0980fe5f, 0x54000002 },
+ { 0x0900fe62, 0x64000000 },
+ { 0x0900fe63, 0x44000000 },
+ { 0x0980fe64, 0x64000002 },
+ { 0x0900fe68, 0x54000000 },
+ { 0x0900fe69, 0x5c000000 },
+ { 0x0980fe6a, 0x54000001 },
+ { 0x0080fe70, 0x1c000004 },
+ { 0x0080fe76, 0x1c000086 },
+ { 0x0900feff, 0x04000000 },
+ { 0x0980ff01, 0x54000002 },
+ { 0x0900ff04, 0x5c000000 },
+ { 0x0980ff05, 0x54000002 },
+ { 0x0900ff08, 0x58000000 },
+ { 0x0900ff09, 0x48000000 },
+ { 0x0900ff0a, 0x54000000 },
+ { 0x0900ff0b, 0x64000000 },
+ { 0x0900ff0c, 0x54000000 },
+ { 0x0900ff0d, 0x44000000 },
+ { 0x0980ff0e, 0x54000001 },
+ { 0x0980ff10, 0x34000009 },
+ { 0x0980ff1a, 0x54000001 },
+ { 0x0980ff1c, 0x64000002 },
+ { 0x0980ff1f, 0x54000001 },
+ { 0x2100ff21, 0x24000020 },
+ { 0x2100ff22, 0x24000020 },
+ { 0x2100ff23, 0x24000020 },
+ { 0x2100ff24, 0x24000020 },
+ { 0x2100ff25, 0x24000020 },
+ { 0x2100ff26, 0x24000020 },
+ { 0x2100ff27, 0x24000020 },
+ { 0x2100ff28, 0x24000020 },
+ { 0x2100ff29, 0x24000020 },
+ { 0x2100ff2a, 0x24000020 },
+ { 0x2100ff2b, 0x24000020 },
+ { 0x2100ff2c, 0x24000020 },
+ { 0x2100ff2d, 0x24000020 },
+ { 0x2100ff2e, 0x24000020 },
+ { 0x2100ff2f, 0x24000020 },
+ { 0x2100ff30, 0x24000020 },
+ { 0x2100ff31, 0x24000020 },
+ { 0x2100ff32, 0x24000020 },
+ { 0x2100ff33, 0x24000020 },
+ { 0x2100ff34, 0x24000020 },
+ { 0x2100ff35, 0x24000020 },
+ { 0x2100ff36, 0x24000020 },
+ { 0x2100ff37, 0x24000020 },
+ { 0x2100ff38, 0x24000020 },
+ { 0x2100ff39, 0x24000020 },
+ { 0x2100ff3a, 0x24000020 },
+ { 0x0900ff3b, 0x58000000 },
+ { 0x0900ff3c, 0x54000000 },
+ { 0x0900ff3d, 0x48000000 },
+ { 0x0900ff3e, 0x60000000 },
+ { 0x0900ff3f, 0x40000000 },
+ { 0x0900ff40, 0x60000000 },
+ { 0x2100ff41, 0x1400ffe0 },
+ { 0x2100ff42, 0x1400ffe0 },
+ { 0x2100ff43, 0x1400ffe0 },
+ { 0x2100ff44, 0x1400ffe0 },
+ { 0x2100ff45, 0x1400ffe0 },
+ { 0x2100ff46, 0x1400ffe0 },
+ { 0x2100ff47, 0x1400ffe0 },
+ { 0x2100ff48, 0x1400ffe0 },
+ { 0x2100ff49, 0x1400ffe0 },
+ { 0x2100ff4a, 0x1400ffe0 },
+ { 0x2100ff4b, 0x1400ffe0 },
+ { 0x2100ff4c, 0x1400ffe0 },
+ { 0x2100ff4d, 0x1400ffe0 },
+ { 0x2100ff4e, 0x1400ffe0 },
+ { 0x2100ff4f, 0x1400ffe0 },
+ { 0x2100ff50, 0x1400ffe0 },
+ { 0x2100ff51, 0x1400ffe0 },
+ { 0x2100ff52, 0x1400ffe0 },
+ { 0x2100ff53, 0x1400ffe0 },
+ { 0x2100ff54, 0x1400ffe0 },
+ { 0x2100ff55, 0x1400ffe0 },
+ { 0x2100ff56, 0x1400ffe0 },
+ { 0x2100ff57, 0x1400ffe0 },
+ { 0x2100ff58, 0x1400ffe0 },
+ { 0x2100ff59, 0x1400ffe0 },
+ { 0x2100ff5a, 0x1400ffe0 },
+ { 0x0900ff5b, 0x58000000 },
+ { 0x0900ff5c, 0x64000000 },
+ { 0x0900ff5d, 0x48000000 },
+ { 0x0900ff5e, 0x64000000 },
+ { 0x0900ff5f, 0x58000000 },
+ { 0x0900ff60, 0x48000000 },
+ { 0x0900ff61, 0x54000000 },
+ { 0x0900ff62, 0x58000000 },
+ { 0x0900ff63, 0x48000000 },
+ { 0x0980ff64, 0x54000001 },
+ { 0x1d80ff66, 0x1c000009 },
+ { 0x0900ff70, 0x18000000 },
+ { 0x1d80ff71, 0x1c00002c },
+ { 0x0980ff9e, 0x18000001 },
+ { 0x1780ffa0, 0x1c00001e },
+ { 0x1780ffc2, 0x1c000005 },
+ { 0x1780ffca, 0x1c000005 },
+ { 0x1780ffd2, 0x1c000005 },
+ { 0x1780ffda, 0x1c000002 },
+ { 0x0980ffe0, 0x5c000001 },
+ { 0x0900ffe2, 0x64000000 },
+ { 0x0900ffe3, 0x60000000 },
+ { 0x0900ffe4, 0x68000000 },
+ { 0x0980ffe5, 0x5c000001 },
+ { 0x0900ffe8, 0x68000000 },
+ { 0x0980ffe9, 0x64000003 },
+ { 0x0980ffed, 0x68000001 },
+ { 0x0980fff9, 0x04000002 },
+ { 0x0980fffc, 0x68000001 },
+ { 0x23810000, 0x1c00000b },
+ { 0x2381000d, 0x1c000019 },
+ { 0x23810028, 0x1c000012 },
+ { 0x2381003c, 0x1c000001 },
+ { 0x2381003f, 0x1c00000e },
+ { 0x23810050, 0x1c00000d },
+ { 0x23810080, 0x1c00007a },
+ { 0x09810100, 0x54000001 },
+ { 0x09010102, 0x68000000 },
+ { 0x09810107, 0x3c00002c },
+ { 0x09810137, 0x68000008 },
+ { 0x13810140, 0x38000034 },
+ { 0x13810175, 0x3c000003 },
+ { 0x13810179, 0x68000010 },
+ { 0x1301018a, 0x3c000000 },
+ { 0x29810300, 0x1c00001e },
+ { 0x29810320, 0x3c000003 },
+ { 0x12810330, 0x1c000019 },
+ { 0x1201034a, 0x38000000 },
+ { 0x3b810380, 0x1c00001d },
+ { 0x3b01039f, 0x54000000 },
+ { 0x2a8103a0, 0x1c000023 },
+ { 0x2a8103c8, 0x1c000007 },
+ { 0x2a0103d0, 0x68000000 },
+ { 0x2a8103d1, 0x38000004 },
+ { 0x0d010400, 0x24000028 },
+ { 0x0d010401, 0x24000028 },
+ { 0x0d010402, 0x24000028 },
+ { 0x0d010403, 0x24000028 },
+ { 0x0d010404, 0x24000028 },
+ { 0x0d010405, 0x24000028 },
+ { 0x0d010406, 0x24000028 },
+ { 0x0d010407, 0x24000028 },
+ { 0x0d010408, 0x24000028 },
+ { 0x0d010409, 0x24000028 },
+ { 0x0d01040a, 0x24000028 },
+ { 0x0d01040b, 0x24000028 },
+ { 0x0d01040c, 0x24000028 },
+ { 0x0d01040d, 0x24000028 },
+ { 0x0d01040e, 0x24000028 },
+ { 0x0d01040f, 0x24000028 },
+ { 0x0d010410, 0x24000028 },
+ { 0x0d010411, 0x24000028 },
+ { 0x0d010412, 0x24000028 },
+ { 0x0d010413, 0x24000028 },
+ { 0x0d010414, 0x24000028 },
+ { 0x0d010415, 0x24000028 },
+ { 0x0d010416, 0x24000028 },
+ { 0x0d010417, 0x24000028 },
+ { 0x0d010418, 0x24000028 },
+ { 0x0d010419, 0x24000028 },
+ { 0x0d01041a, 0x24000028 },
+ { 0x0d01041b, 0x24000028 },
+ { 0x0d01041c, 0x24000028 },
+ { 0x0d01041d, 0x24000028 },
+ { 0x0d01041e, 0x24000028 },
+ { 0x0d01041f, 0x24000028 },
+ { 0x0d010420, 0x24000028 },
+ { 0x0d010421, 0x24000028 },
+ { 0x0d010422, 0x24000028 },
+ { 0x0d010423, 0x24000028 },
+ { 0x0d010424, 0x24000028 },
+ { 0x0d010425, 0x24000028 },
+ { 0x0d010426, 0x24000028 },
+ { 0x0d010427, 0x24000028 },
+ { 0x0d010428, 0x1400ffd8 },
+ { 0x0d010429, 0x1400ffd8 },
+ { 0x0d01042a, 0x1400ffd8 },
+ { 0x0d01042b, 0x1400ffd8 },
+ { 0x0d01042c, 0x1400ffd8 },
+ { 0x0d01042d, 0x1400ffd8 },
+ { 0x0d01042e, 0x1400ffd8 },
+ { 0x0d01042f, 0x1400ffd8 },
+ { 0x0d010430, 0x1400ffd8 },
+ { 0x0d010431, 0x1400ffd8 },
+ { 0x0d010432, 0x1400ffd8 },
+ { 0x0d010433, 0x1400ffd8 },
+ { 0x0d010434, 0x1400ffd8 },
+ { 0x0d010435, 0x1400ffd8 },
+ { 0x0d010436, 0x1400ffd8 },
+ { 0x0d010437, 0x1400ffd8 },
+ { 0x0d010438, 0x1400ffd8 },
+ { 0x0d010439, 0x1400ffd8 },
+ { 0x0d01043a, 0x1400ffd8 },
+ { 0x0d01043b, 0x1400ffd8 },
+ { 0x0d01043c, 0x1400ffd8 },
+ { 0x0d01043d, 0x1400ffd8 },
+ { 0x0d01043e, 0x1400ffd8 },
+ { 0x0d01043f, 0x1400ffd8 },
+ { 0x0d010440, 0x1400ffd8 },
+ { 0x0d010441, 0x1400ffd8 },
+ { 0x0d010442, 0x1400ffd8 },
+ { 0x0d010443, 0x1400ffd8 },
+ { 0x0d010444, 0x1400ffd8 },
+ { 0x0d010445, 0x1400ffd8 },
+ { 0x0d010446, 0x1400ffd8 },
+ { 0x0d010447, 0x1400ffd8 },
+ { 0x0d010448, 0x1400ffd8 },
+ { 0x0d010449, 0x1400ffd8 },
+ { 0x0d01044a, 0x1400ffd8 },
+ { 0x0d01044b, 0x1400ffd8 },
+ { 0x0d01044c, 0x1400ffd8 },
+ { 0x0d01044d, 0x1400ffd8 },
+ { 0x0d01044e, 0x1400ffd8 },
+ { 0x0d01044f, 0x1400ffd8 },
+ { 0x2e810450, 0x1c00004d },
+ { 0x2c8104a0, 0x34000009 },
+ { 0x0b810800, 0x1c000005 },
+ { 0x0b010808, 0x1c000000 },
+ { 0x0b81080a, 0x1c00002b },
+ { 0x0b810837, 0x1c000001 },
+ { 0x0b01083c, 0x1c000000 },
+ { 0x0b01083f, 0x1c000000 },
+ { 0x1e010a00, 0x1c000000 },
+ { 0x1e810a01, 0x30000002 },
+ { 0x1e810a05, 0x30000001 },
+ { 0x1e810a0c, 0x30000003 },
+ { 0x1e810a10, 0x1c000003 },
+ { 0x1e810a15, 0x1c000002 },
+ { 0x1e810a19, 0x1c00001a },
+ { 0x1e810a38, 0x30000002 },
+ { 0x1e010a3f, 0x30000000 },
+ { 0x1e810a40, 0x3c000007 },
+ { 0x1e810a50, 0x54000008 },
+ { 0x0981d000, 0x680000f5 },
+ { 0x0981d100, 0x68000026 },
+ { 0x0981d12a, 0x6800003a },
+ { 0x0981d165, 0x28000001 },
+ { 0x1b81d167, 0x30000002 },
+ { 0x0981d16a, 0x68000002 },
+ { 0x0981d16d, 0x28000005 },
+ { 0x0981d173, 0x04000007 },
+ { 0x1b81d17b, 0x30000007 },
+ { 0x0981d183, 0x68000001 },
+ { 0x1b81d185, 0x30000006 },
+ { 0x0981d18c, 0x6800001d },
+ { 0x1b81d1aa, 0x30000003 },
+ { 0x0981d1ae, 0x6800002f },
+ { 0x1381d200, 0x68000041 },
+ { 0x1381d242, 0x30000002 },
+ { 0x1301d245, 0x68000000 },
+ { 0x0981d300, 0x68000056 },
+ { 0x0981d400, 0x24000019 },
+ { 0x0981d41a, 0x14000019 },
+ { 0x0981d434, 0x24000019 },
+ { 0x0981d44e, 0x14000006 },
+ { 0x0981d456, 0x14000011 },
+ { 0x0981d468, 0x24000019 },
+ { 0x0981d482, 0x14000019 },
+ { 0x0901d49c, 0x24000000 },
+ { 0x0981d49e, 0x24000001 },
+ { 0x0901d4a2, 0x24000000 },
+ { 0x0981d4a5, 0x24000001 },
+ { 0x0981d4a9, 0x24000003 },
+ { 0x0981d4ae, 0x24000007 },
+ { 0x0981d4b6, 0x14000003 },
+ { 0x0901d4bb, 0x14000000 },
+ { 0x0981d4bd, 0x14000006 },
+ { 0x0981d4c5, 0x1400000a },
+ { 0x0981d4d0, 0x24000019 },
+ { 0x0981d4ea, 0x14000019 },
+ { 0x0981d504, 0x24000001 },
+ { 0x0981d507, 0x24000003 },
+ { 0x0981d50d, 0x24000007 },
+ { 0x0981d516, 0x24000006 },
+ { 0x0981d51e, 0x14000019 },
+ { 0x0981d538, 0x24000001 },
+ { 0x0981d53b, 0x24000003 },
+ { 0x0981d540, 0x24000004 },
+ { 0x0901d546, 0x24000000 },
+ { 0x0981d54a, 0x24000006 },
+ { 0x0981d552, 0x14000019 },
+ { 0x0981d56c, 0x24000019 },
+ { 0x0981d586, 0x14000019 },
+ { 0x0981d5a0, 0x24000019 },
+ { 0x0981d5ba, 0x14000019 },
+ { 0x0981d5d4, 0x24000019 },
+ { 0x0981d5ee, 0x14000019 },
+ { 0x0981d608, 0x24000019 },
+ { 0x0981d622, 0x14000019 },
+ { 0x0981d63c, 0x24000019 },
+ { 0x0981d656, 0x14000019 },
+ { 0x0981d670, 0x24000019 },
+ { 0x0981d68a, 0x1400001b },
+ { 0x0981d6a8, 0x24000018 },
+ { 0x0901d6c1, 0x64000000 },
+ { 0x0981d6c2, 0x14000018 },
+ { 0x0901d6db, 0x64000000 },
+ { 0x0981d6dc, 0x14000005 },
+ { 0x0981d6e2, 0x24000018 },
+ { 0x0901d6fb, 0x64000000 },
+ { 0x0981d6fc, 0x14000018 },
+ { 0x0901d715, 0x64000000 },
+ { 0x0981d716, 0x14000005 },
+ { 0x0981d71c, 0x24000018 },
+ { 0x0901d735, 0x64000000 },
+ { 0x0981d736, 0x14000018 },
+ { 0x0901d74f, 0x64000000 },
+ { 0x0981d750, 0x14000005 },
+ { 0x0981d756, 0x24000018 },
+ { 0x0901d76f, 0x64000000 },
+ { 0x0981d770, 0x14000018 },
+ { 0x0901d789, 0x64000000 },
+ { 0x0981d78a, 0x14000005 },
+ { 0x0981d790, 0x24000018 },
+ { 0x0901d7a9, 0x64000000 },
+ { 0x0981d7aa, 0x14000018 },
+ { 0x0901d7c3, 0x64000000 },
+ { 0x0981d7c4, 0x14000005 },
+ { 0x0981d7ce, 0x34000031 },
+ { 0x16820000, 0x1c00a6d6 },
+ { 0x1682f800, 0x1c00021d },
+ { 0x090e0001, 0x04000000 },
+ { 0x098e0020, 0x0400005f },
+ { 0x1b8e0100, 0x300000ef },
+ { 0x098f0000, 0x0c00fffd },
+ { 0x09900000, 0x0c00fffd },
};
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index 28d4dc5b3..d1cdc1195 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pcre.c,v 1.168.2.5 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: php_pcre.c,v 1.168.2.9 2006/04/11 21:33:46 andrei Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -453,7 +453,7 @@ static void php_pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global)
/*
* Build a mapping from subpattern numbers to their names. We will always
- * allocate the table, even though they may be no named subpatterns. This
+ * allocate the table, even though there may be no named subpatterns. This
* avoids somewhat more complicated logic in the inner loops.
*/
subpat_names = (char **)safe_emalloc(num_subpats, sizeof(char *), 0);
@@ -467,22 +467,34 @@ static void php_pcre_match(INTERNAL_FUNCTION_PARAMETERS, int global)
if (rc < 0) {
php_error(E_WARNING, "%s: internal pcre_fullinfo() error %d",
get_active_function_name(TSRMLS_C), rc);
+ efree(offsets);
+ efree(subpat_names);
RETURN_FALSE;
}
if (name_cnt > 0) {
int rc1, rc2;
+ long dummy_l;
+ double dummy_d;
rc1 = pcre_fullinfo(re, extra, PCRE_INFO_NAMETABLE, &name_table);
rc2 = pcre_fullinfo(re, extra, PCRE_INFO_NAMEENTRYSIZE, &name_size);
rc = rc2 ? rc2 : rc1;
if (rc < 0) {
php_error(E_WARNING, "%s: internal pcre_fullinfo() error %d",
get_active_function_name(TSRMLS_C), rc);
+ efree(offsets);
+ efree(subpat_names);
RETURN_FALSE;
}
while (ni++ < name_cnt) {
name_idx = 0xff * name_table[0] + name_table[1];
subpat_names[name_idx] = name_table + 2;
+ if (is_numeric_string(subpat_names[name_idx], strlen(subpat_names[name_idx]), &dummy_l, &dummy_d, 0) > 0) {
+ php_error(E_WARNING, "%s: numeric named subpatterns are not allowed", get_active_function_name(TSRMLS_C));
+ efree(offsets);
+ efree(subpat_names);
+ RETURN_FALSE;
+ }
name_table += name_size;
}
}
@@ -1455,7 +1467,7 @@ PHP_FUNCTION(preg_quote)
/* Allocate enough memory so that even if each character
is quoted, we won't run out of room */
- out_str = safe_emalloc(2, Z_STRLEN_PP(in_str_arg), 1);
+ out_str = safe_emalloc(4, Z_STRLEN_PP(in_str_arg), 1);
/* Go through the string and quote necessary characters */
for(p = in_str, q = out_str; p != in_str_end; p++) {
@@ -1487,6 +1499,8 @@ PHP_FUNCTION(preg_quote)
case '\0':
*q++ = '\\';
*q++ = '0';
+ *q++ = '0';
+ *q++ = '0';
break;
default:
@@ -1613,8 +1627,8 @@ PHP_FUNCTION(preg_grep)
zend_function_entry pcre_functions[] = {
PHP_FE(preg_match, third_arg_force_ref)
PHP_FE(preg_match_all, third_arg_force_ref)
- PHP_FE(preg_replace, NULL)
- PHP_FE(preg_replace_callback, NULL)
+ PHP_FE(preg_replace, fifth_arg_force_ref)
+ PHP_FE(preg_replace_callback, fifth_arg_force_ref)
PHP_FE(preg_split, NULL)
PHP_FE(preg_quote, NULL)
PHP_FE(preg_grep, NULL)
diff --git a/ext/pcre/tests/bug26927.phpt b/ext/pcre/tests/bug26927.phpt
index 25b6b2e57..5c64deb37 100644
--- a/ext/pcre/tests/bug26927.phpt
+++ b/ext/pcre/tests/bug26927.phpt
@@ -8,4 +8,4 @@ Bug #26927 (preg_quote() does not escape \0)
?>
--EXPECT--
int(1)
-string(4) "a\0b"
+string(6) "a\000b"
diff --git a/ext/pdo/CREDITS b/ext/pdo/CREDITS
index e65021935..5971cdb0d 100755
--- a/ext/pdo/CREDITS
+++ b/ext/pdo/CREDITS
@@ -1,2 +1,3 @@
PHP Data Objects
-Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle
+Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky
+
diff --git a/ext/pdo/package2.xml b/ext/pdo/package2.xml
index d402867df..add5a47fc 100644
--- a/ext/pdo/package2.xml
+++ b/ext/pdo/package2.xml
@@ -36,7 +36,7 @@ Read the documentation at http://www.php.net/pdo for more information.
<email>george@omniti.com</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.3</release>
<api>1.0.3</api>
@@ -46,17 +46,14 @@ Read the documentation at http://www.php.net/pdo for more information.
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP</license>
- <notes>** NOTE WELL! **
-All the PDO_XXX constants have been renamed to PDO::XXX form for future
-compatibility with PHP namespaces. Sorry for the inconvenience, especially
-after Release Candidate 1.
+ <notes>
+It is highly recommended that you update to PHP 5.1 or higher before using PDO.
+This PECL release corresponds to the PHP 5.1.3 release.
You need to install a PDO database driver to make use of PDO,
check http://pecl.php.net/package-search.php?pkg_name=PDO
for a list of available PDO drivers.
-It is highly recommended that you update to PHP 5.1 before using PDO.
-
If you are running on Windows, you can find a precompiled binary at:
http://pecl4win.php.net/ext.php/php_pdo.dll
@@ -64,6 +61,13 @@ You can find additional PDO drivers at:
http://pecl4win.php.net
** Changes **
+- Added PDO::PARAM_EVT_* family of constants. (Sara)
+- Fixed bug #37167 (PDO segfaults when throwing exception from the
+ fetch handler). (Tony)
+- Fixed memory corruption when PDO::FETCH_LAZY mode is being used. (Ilia)
+- Fixed bug #36222 (errorInfo in PDOException is always NULL). (Ilia)
+- Fixed bug #35797 (segfault on PDOStatement::execute() with
+ zend.ze1_compatibility_mode = On). (Tony, Ilia)
- Fixed bug #35543 (crash when calling non-existing method in extended class). (Tony)
- Fixed bug #35508 (improved validation of fetch modes). (Tony)
- Fixed bug #35431 (PDO crashes when using LAZY fetch with fetchAll). (Wez)
@@ -93,7 +97,6 @@ http://pecl4win.php.net
You should uninstall and re-install your individual database drivers whenever
you upgrade the base PDO package, otherwise you will see an error about PDO API
numbers when you run your PHP scripts.
-
</notes>
<contents>
diff --git a/ext/pdo/pdo_dbh.c b/ext/pdo/pdo_dbh.c
index ee72d5106..cbf443bc9 100755
--- a/ext/pdo/pdo_dbh.c
+++ b/ext/pdo/pdo_dbh.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_dbh.c,v 1.82.2.26 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: pdo_dbh.c,v 1.82.2.31 2006/05/03 21:58:38 pollita Exp $ */
/* The PDO Database Handle Class */
@@ -41,7 +41,7 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
pdo_error_type *pdo_err = &dbh->error_code;
char *message = NULL;
const char *msg;
- zval *info = NULL;
+
if (dbh->error_mode == PDO_ERRMODE_SILENT) {
#if 0
@@ -64,12 +64,6 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
msg = "<<Unknown error>>";
}
- MAKE_STD_ZVAL(info);
- array_init(info);
-
- add_next_index_string(info, *pdo_err, 1);
- add_next_index_long(info, 0);
-
if (supp) {
spprintf(&message, 0, "SQLSTATE[%s]: %s: %s", *pdo_err, msg, supp);
} else {
@@ -78,12 +72,8 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
if (dbh->error_mode != PDO_ERRMODE_EXCEPTION) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", message);
-
- if (info) {
- zval_ptr_dtor(&info);
- }
} else {
- zval *ex;
+ zval *ex, *info;
zend_class_entry *def_ex = php_pdo_get_exception_base(1 TSRMLS_CC), *pdo_ex = php_pdo_get_exception();
MAKE_STD_ZVAL(ex);
@@ -92,10 +82,14 @@ void pdo_raise_impl_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt, const char *sqlstate
zend_update_property_string(def_ex, ex, "message", sizeof("message")-1, message TSRMLS_CC);
zend_update_property_string(def_ex, ex, "code", sizeof("code")-1, *pdo_err TSRMLS_CC);
- if (info) {
- zend_update_property(pdo_ex, ex, "errorInfo", sizeof("errorInfo")-1, info TSRMLS_CC);
- zval_ptr_dtor(&info);
- }
+ MAKE_STD_ZVAL(info);
+ array_init(info);
+
+ add_next_index_string(info, *pdo_err, 1);
+ add_next_index_long(info, 0);
+
+ zend_update_property(pdo_ex, ex, "errorInfo", sizeof("errorInfo")-1, info TSRMLS_CC);
+ zval_ptr_dtor(&info);
zend_throw_exception_object(ex TSRMLS_CC);
}
@@ -129,7 +123,6 @@ void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC)
}
if (dbh->methods->fetch_err) {
-
MAKE_STD_ZVAL(info);
array_init(info);
@@ -146,9 +139,6 @@ void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC)
supp = estrndup(Z_STRVAL_PP(item), Z_STRLEN_PP(item));
}
}
-
- zval_ptr_dtor(&info);
- info = NULL;
}
if (supp) {
@@ -159,10 +149,6 @@ void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC)
if (dbh->error_mode == PDO_ERRMODE_WARNING) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", message);
-
- if (info) {
- zval_ptr_dtor(&info);
- }
} else if (EG(exception) == NULL) {
zval *ex;
zend_class_entry *def_ex = php_pdo_get_exception_base(1 TSRMLS_CC), *pdo_ex = php_pdo_get_exception();
@@ -175,12 +161,15 @@ void pdo_handle_error(pdo_dbh_t *dbh, pdo_stmt_t *stmt TSRMLS_DC)
if (info) {
zend_update_property(pdo_ex, ex, "errorInfo", sizeof("errorInfo")-1, info TSRMLS_CC);
- zval_ptr_dtor(&info);
}
zend_throw_exception_object(ex TSRMLS_CC);
}
-
+
+ if (info) {
+ zval_ptr_dtor(&info);
+ }
+
if (message) {
efree(message);
}
@@ -203,7 +192,7 @@ static char *dsn_from_uri(char *uri, char *buf, size_t buflen TSRMLS_DC)
return dsn;
}
-/* {{{ proto object PDO::__construct(string dsn, string username, string passwd [, array options])
+/* {{{ proto void PDO::__construct(string dsn, string username, string passwd [, array options])
*/
static PHP_METHOD(PDO, dbh_constructor)
{
@@ -1047,6 +1036,7 @@ static PHP_METHOD(PDO, quote)
RETURN_STRINGL(qstr, qlen, 0);
}
PDO_HANDLE_DBH_ERR();
+ RETURN_FALSE;
}
/* }}} */
@@ -1260,6 +1250,14 @@ void pdo_dbh_init(TSRMLS_D)
REGISTER_PDO_CLASS_CONST_LONG("PARAM_STMT", (long)PDO_PARAM_STMT);
REGISTER_PDO_CLASS_CONST_LONG("PARAM_INPUT_OUTPUT", (long)PDO_PARAM_INPUT_OUTPUT);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_ALLOC", (long)PDO_PARAM_EVT_ALLOC);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_FREE", (long)PDO_PARAM_EVT_FREE);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_EXEC_PRE", (long)PDO_PARAM_EVT_EXEC_PRE);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_EXEC_POST", (long)PDO_PARAM_EVT_EXEC_POST);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_FETCH_PRE", (long)PDO_PARAM_EVT_FETCH_PRE);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_FETCH_POST", (long)PDO_PARAM_EVT_FETCH_POST);
+ REGISTER_PDO_CLASS_CONST_LONG("PARAM_EVT_NORMALIZE", (long)PDO_PARAM_EVT_NORMALIZE);
+
REGISTER_PDO_CLASS_CONST_LONG("FETCH_LAZY", (long)PDO_FETCH_LAZY);
REGISTER_PDO_CLASS_CONST_LONG("FETCH_ASSOC",(long)PDO_FETCH_ASSOC);
REGISTER_PDO_CLASS_CONST_LONG("FETCH_NUM", (long)PDO_FETCH_NUM);
@@ -1297,6 +1295,7 @@ void pdo_dbh_init(TSRMLS_D)
REGISTER_PDO_CLASS_CONST_LONG("ATTR_DRIVER_NAME", (long)PDO_ATTR_DRIVER_NAME);
REGISTER_PDO_CLASS_CONST_LONG("ATTR_STRINGIFY_FETCHES",(long)PDO_ATTR_STRINGIFY_FETCHES);
REGISTER_PDO_CLASS_CONST_LONG("ATTR_MAX_COLUMN_LEN",(long)PDO_ATTR_MAX_COLUMN_LEN);
+ REGISTER_PDO_CLASS_CONST_LONG("ATTR_EMULATE_PREPARES",(long)PDO_ATTR_EMULATE_PREPARES);
REGISTER_PDO_CLASS_CONST_LONG("ERRMODE_SILENT", (long)PDO_ERRMODE_SILENT);
REGISTER_PDO_CLASS_CONST_LONG("ERRMODE_WARNING", (long)PDO_ERRMODE_WARNING);
diff --git a/ext/pdo/pdo_sql_parser.c b/ext/pdo/pdo_sql_parser.c
index a6b20adfe..e3e6541e4 100644
--- a/ext/pdo/pdo_sql_parser.c
+++ b/ext/pdo/pdo_sql_parser.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.11 on Sun Jan 1 14:38:30 2006 */
+/* Generated by re2c 0.9.11 on Wed Jan 25 11:31:13 2006 */
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_sql_parser.c,v 1.35.2.5 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6 2006/01/25 16:35:23 iliaa Exp $ */
#include "php.h"
#include "php_pdo_driver.h"
@@ -492,15 +492,25 @@ rewrite:
}
for (plc = placeholders; plc; plc = plc->next) {
- snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ int skip_map = 0;
+ char *p;
+ name = estrndup(plc->pos, plc->len);
+
+ /* check if bound parameter is already available */
+ if (!strcmp(name, "?") || zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == FAILURE) {
+ snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ } else {
+ memset(idxbuf, 0, sizeof(idxbuf));
+ memcpy(idxbuf, p, sizeof(idxbuf));
+ skip_map = 1;
+ }
+
plc->quoted = estrdup(idxbuf);
plc->qlen = strlen(plc->quoted);
plc->freeq = 1;
newbuffer_len += plc->qlen;
- name = estrndup(plc->pos, plc->len);
-
- if (stmt->named_rewrite_template) {
+ if (!skip_map && stmt->named_rewrite_template) {
/* create a mapping */
zend_hash_update(stmt->bound_param_map, name, plc->len + 1, idxbuf, plc->qlen + 1, NULL);
diff --git a/ext/pdo/pdo_sql_parser.c.orig b/ext/pdo/pdo_sql_parser.c.orig
index 453b35371..b5ca7203c 100644
--- a/ext/pdo/pdo_sql_parser.c.orig
+++ b/ext/pdo/pdo_sql_parser.c.orig
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.11 on Sun Jan 1 14:38:30 2006 */
+/* Generated by re2c 0.9.11 on Wed Jan 25 11:31:13 2006 */
#line 1 "ext/pdo/pdo_sql_parser.re"
/*
+----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_sql_parser.c,v 1.35.2.5 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: pdo_sql_parser.c,v 1.35.2.6 2006/01/25 16:35:23 iliaa Exp $ */
#include "php.h"
#include "php_pdo_driver.h"
@@ -512,15 +512,25 @@ rewrite:
}
for (plc = placeholders; plc; plc = plc->next) {
- snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ int skip_map = 0;
+ char *p;
+ name = estrndup(plc->pos, plc->len);
+
+ /* check if bound parameter is already available */
+ if (!strcmp(name, "?") || zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == FAILURE) {
+ snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ } else {
+ memset(idxbuf, 0, sizeof(idxbuf));
+ memcpy(idxbuf, p, sizeof(idxbuf));
+ skip_map = 1;
+ }
+
plc->quoted = estrdup(idxbuf);
plc->qlen = strlen(plc->quoted);
plc->freeq = 1;
newbuffer_len += plc->qlen;
- name = estrndup(plc->pos, plc->len);
-
- if (stmt->named_rewrite_template) {
+ if (!skip_map && stmt->named_rewrite_template) {
/* create a mapping */
zend_hash_update(stmt->bound_param_map, name, plc->len + 1, idxbuf, plc->qlen + 1, NULL);
diff --git a/ext/pdo/pdo_sql_parser.re b/ext/pdo/pdo_sql_parser.re
index 81b558c4e..beff5e874 100644
--- a/ext/pdo/pdo_sql_parser.re
+++ b/ext/pdo/pdo_sql_parser.re
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_sql_parser.re,v 1.28.2.3 2006/01/01 12:26:08 sniper Exp $ */
+/* $Id: pdo_sql_parser.re,v 1.28.2.4 2006/01/25 16:35:23 iliaa Exp $ */
#include "php.h"
#include "php_pdo_driver.h"
@@ -287,15 +287,25 @@ rewrite:
}
for (plc = placeholders; plc; plc = plc->next) {
- snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ int skip_map = 0;
+ char *p;
+ name = estrndup(plc->pos, plc->len);
+
+ /* check if bound parameter is already available */
+ if (!strcmp(name, "?") || zend_hash_find(stmt->bound_param_map, name, plc->len + 1, (void**) &p) == FAILURE) {
+ snprintf(idxbuf, sizeof(idxbuf), tmpl, plc->bindno + 1);
+ } else {
+ memset(idxbuf, 0, sizeof(idxbuf));
+ memcpy(idxbuf, p, sizeof(idxbuf));
+ skip_map = 1;
+ }
+
plc->quoted = estrdup(idxbuf);
plc->qlen = strlen(plc->quoted);
plc->freeq = 1;
newbuffer_len += plc->qlen;
- name = estrndup(plc->pos, plc->len);
-
- if (stmt->named_rewrite_template) {
+ if (!skip_map && stmt->named_rewrite_template) {
/* create a mapping */
zend_hash_update(stmt->bound_param_map, name, plc->len + 1, idxbuf, plc->qlen + 1, NULL);
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c
index dbc056247..a9f65e28d 100755
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_stmt.c,v 1.118.2.30 2006/01/01 20:07:41 iliaa Exp $ */
+/* $Id: pdo_stmt.c,v 1.118.2.38 2006/04/22 19:10:53 tony2001 Exp $ */
/* The PDO Statement Handle Class */
@@ -42,19 +42,19 @@
* since it is a .c file, it won't be installed for use by PECL extensions, so we include it here. */
ZEND_BEGIN_ARG_INFO(first_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(1)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(second_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(third_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref, 0)
@@ -62,10 +62,10 @@ ZEND_BEGIN_ARG_INFO(fourth_arg_force_ref, 0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO(all_args_by_ref, 1)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
/* }}} */
#endif
@@ -283,7 +283,6 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
param->stmt = stmt;
param->is_param = is_param;
- ZVAL_ADDREF(param->parameter);
if (param->driver_params) {
ZVAL_ADDREF(param->driver_params);
}
@@ -324,25 +323,52 @@ static int really_register_bound_param(struct pdo_bound_param_data *param, pdo_s
}
return 0;
}
-
- /* tell the driver we just created a parameter */
+
+ /* ask the driver to perform any normalization it needs on the
+ * parameter name. Note that it is illegal for the driver to take
+ * a reference to param, as it resides in transient storage only
+ * at this time. */
if (stmt->methods->param_hook) {
- if (!stmt->methods->param_hook(stmt, param,
- PDO_PARAM_EVT_ALLOC TSRMLS_CC)) {
+ if (!stmt->methods->param_hook(stmt, param, PDO_PARAM_EVT_NORMALIZE
+ TSRMLS_CC)) {
+ if (param->name) {
+ efree(param->name);
+ param->name = NULL;
+ }
return 0;
}
}
+ /* delete any other parameter registered with this number.
+ * If the parameter is named, it will be removed and correctly
+ * disposed of by the hash_update call that follows */
if (param->paramno >= 0) {
zend_hash_index_del(hash, param->paramno);
}
-
+
+ /* allocate storage for the parameter, keyed by its "canonical" name */
if (param->name) {
- zend_hash_update(hash, param->name, param->namelen, param, sizeof(*param), (void**)&pparam);
+ zend_hash_update(hash, param->name, param->namelen, param,
+ sizeof(*param), (void**)&pparam);
} else {
- zend_hash_index_update(hash, param->paramno, param, sizeof(*param), (void**)&pparam);
+ zend_hash_index_update(hash, param->paramno, param, sizeof(*param),
+ (void**)&pparam);
}
+ /* tell the driver we just created a parameter */
+ if (stmt->methods->param_hook) {
+ if (!stmt->methods->param_hook(stmt, pparam, PDO_PARAM_EVT_ALLOC
+ TSRMLS_CC)) {
+ /* undo storage allocation; the hash will free the parameter
+ * name if required */
+ if (pparam->name) {
+ zend_hash_del(hash, pparam->name, pparam->namelen);
+ } else {
+ zend_hash_index_del(hash, pparam->paramno);
+ }
+ return 0;
+ }
+ }
return 1;
}
/* }}} */
@@ -395,7 +421,6 @@ static PHP_METHOD(PDOStatement, execute)
zval_ptr_dtor(&param.parameter);
RETURN_FALSE;
}
- zval_ptr_dtor(&param.parameter);
zend_hash_move_forward(Z_ARRVAL_P(input_params));
}
@@ -638,6 +663,7 @@ static int do_fetch_class_prepare(pdo_stmt_t *stmt TSRMLS_DC) /* {{{ */
if (!ce) {
stmt->fetch.cls.ce = ZEND_STANDARD_CLASS_DEF_PTR;
+ ce = ZEND_STANDARD_CLASS_DEF_PTR;
}
if (ce->constructor) {
@@ -832,7 +858,13 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value,
case PDO_FETCH_BOTH:
case PDO_FETCH_NUM:
case PDO_FETCH_NAMED:
- array_init(return_value);
+ if (!return_all) {
+ ALLOC_HASHTABLE(return_value->value.ht);
+ zend_hash_init(return_value->value.ht, stmt->column_count, NULL, ZVAL_PTR_DTOR, 0);
+ Z_TYPE_P(return_value) = IS_ARRAY;
+ } else {
+ array_init(return_value);
+ }
break;
case PDO_FETCH_COLUMN:
@@ -1075,7 +1107,7 @@ static int do_fetch(pdo_stmt_t *stmt, int do_bind, zval *return_value,
if (return_all) {
zval_ptr_dtor(&return_value); /* we don't need that */
return_value = retval;
- } else {
+ } else if (retval) {
*return_value = *retval;
zval_copy_ctor(return_value);
INIT_PZVAL(return_value);
@@ -1472,6 +1504,7 @@ static int register_bound_param(INTERNAL_FUNCTION_PARAMETERS, pdo_stmt_t *stmt,
return 0;
}
+ ZVAL_ADDREF(param.parameter);
return really_register_bound_param(&param, stmt, is_param TSRMLS_CC);
} /* }}} */
@@ -1490,16 +1523,17 @@ static PHP_METHOD(PDOStatement, bindValue)
if (FAILURE == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz/|l", &param.name,
&param.namelen, &param.parameter, &param.param_type)) {
RETURN_FALSE;
- }
+ }
}
-
+
if (param.paramno > 0) {
--param.paramno; /* make it zero-based internally */
} else if (!param.name) {
pdo_raise_impl_error(stmt->dbh, stmt, "HY093", "Columns/Parameters are 1-based" TSRMLS_CC);
RETURN_FALSE;
}
-
+
+ ZVAL_ADDREF(param.parameter);
RETURN_BOOL(really_register_bound_param(&param, stmt, TRUE TSRMLS_CC));
}
/* }}} */
@@ -1599,6 +1633,17 @@ fail:
/* {{{ proto mixed PDOStatement::getAttribute(long attribute)
Get an attribute */
+
+static int generic_stmt_attr_get(pdo_stmt_t *stmt, zval *return_value, long attr)
+{
+ switch (attr) {
+ case PDO_ATTR_EMULATE_PREPARES:
+ RETVAL_BOOL(stmt->supports_placeholders == PDO_PLACEHOLDER_NONE);
+ return 1;
+ }
+ return 0;
+}
+
static PHP_METHOD(PDOStatement, getAttribute)
{
long attr;
@@ -1609,8 +1654,12 @@ static PHP_METHOD(PDOStatement, getAttribute)
}
if (!stmt->methods->get_attribute) {
- pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "This driver doesn't support getting attributes" TSRMLS_CC);
- RETURN_FALSE;
+ if (!generic_stmt_attr_get(stmt, return_value, attr)) {
+ pdo_raise_impl_error(stmt->dbh, stmt, "IM001",
+ "This driver doesn't support getting attributes" TSRMLS_CC);
+ RETURN_FALSE;
+ }
+ return;
}
PDO_STMT_CLEAR_ERR();
@@ -1620,9 +1669,13 @@ static PHP_METHOD(PDOStatement, getAttribute)
RETURN_FALSE;
case 0:
- /* XXX: should do something better here */
- pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "driver doesn't support getting that attribute" TSRMLS_CC);
- RETURN_FALSE;
+ if (!generic_stmt_attr_get(stmt, return_value, attr)) {
+ /* XXX: should do something better here */
+ pdo_raise_impl_error(stmt->dbh, stmt, "IM001",
+ "driver doesn't support getting that attribute" TSRMLS_CC);
+ RETURN_FALSE;
+ }
+ return;
default:
return;
@@ -1657,6 +1710,7 @@ static PHP_METHOD(PDOStatement, getColumnMeta)
pdo_raise_impl_error(stmt->dbh, stmt, "42P10", "column number must be non-negative" TSRMLS_CC);
RETURN_FALSE;
}
+
if (!stmt->methods->get_column_meta) {
pdo_raise_impl_error(stmt->dbh, stmt, "IM001", "driver doesn't support meta data" TSRMLS_CC);
RETURN_FALSE;
@@ -1911,6 +1965,10 @@ static PHP_METHOD(PDOStatement, debugDumpParams)
struct pdo_bound_param_data *param;
PHP_STMT_GET_OBJ;
+ if (out == NULL) {
+ RETURN_FALSE;
+ }
+
php_stream_printf(out TSRMLS_CC, "SQL: [%d] %.*s\n",
stmt->query_stringlen,
stmt->query_stringlen, stmt->query_string);
diff --git a/ext/pdo/php_pdo_driver.h b/ext/pdo/php_pdo_driver.h
index 321fdff65..451778109 100755
--- a/ext/pdo/php_pdo_driver.h
+++ b/ext/pdo/php_pdo_driver.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_driver.h,v 1.66.2.9 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: php_pdo_driver.h,v 1.66.2.11 2006/04/09 08:05:01 wez Exp $ */
#ifndef PHP_PDO_DRIVER_H
#define PHP_PDO_DRIVER_H
@@ -44,7 +44,7 @@ PDO_API char *php_pdo_int64_to_str(pdo_int64_t i64 TSRMLS_DC);
# define FALSE 0
#endif
-#define PDO_DRIVER_API 20051128
+#define PDO_DRIVER_API 20060409
enum pdo_param_type {
PDO_PARAM_NULL,
@@ -129,6 +129,7 @@ enum pdo_attribute_type {
PDO_ATTR_DRIVER_NAME, /* name of the driver (as used in the constructor) */
PDO_ATTR_STRINGIFY_FETCHES, /* converts integer/float types to strings during fetch */
PDO_ATTR_MAX_COLUMN_LEN, /* make database calculate maximum length of data found in a column */
+ PDO_ATTR_EMULATE_PREPARES, /* use query emulation rather than native */
/* this defines the start of the range for driver specific options.
* Drivers should define their own attribute constants beginning with this
@@ -338,7 +339,8 @@ enum pdo_param_event {
PDO_PARAM_EVT_EXEC_PRE,
PDO_PARAM_EVT_EXEC_POST,
PDO_PARAM_EVT_FETCH_PRE,
- PDO_PARAM_EVT_FETCH_POST
+ PDO_PARAM_EVT_FETCH_POST,
+ PDO_PARAM_EVT_NORMALIZE
};
typedef int (*pdo_stmt_param_hook_func)(pdo_stmt_t *stmt, struct pdo_bound_param_data *param, enum pdo_param_event event_type TSRMLS_DC);
diff --git a/ext/pdo/tests/bug_35671.phpt b/ext/pdo/tests/bug_35671.phpt
new file mode 100644
index 000000000..768773f90
--- /dev/null
+++ b/ext/pdo/tests/bug_35671.phpt
@@ -0,0 +1,45 @@
+--TEST--
+PDO Common: PHP Bug #35671: binding by name breakage
+--SKIPIF--
+<?php # vim:ft=php
+if (!extension_loaded('pdo')) die('skip');
+$dir = getenv('REDIR_TEST_DIR');
+if (false == $dir) die('skip no driver');
+require_once $dir . 'pdo_test.inc';
+PDOTest::skip();
+?>
+--FILE--
+<?php
+if (getenv('REDIR_TEST_DIR') === false) putenv('REDIR_TEST_DIR='.dirname(__FILE__) . '/../../pdo/tests/');
+require_once getenv('REDIR_TEST_DIR') . 'pdo_test.inc';
+$db = PDOTest::factory();
+
+$db->exec('CREATE TABLE test (field1 VARCHAR(32), field2 VARCHAR(32), field3 VARCHAR(32))');
+$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+
+$insert = $db->prepare("insert into test (field1, field2, field3) values (:value1, :value2, :value3)");
+
+$parm = array(
+ ":value1" => 15,
+ ":value2" => 20,
+ ":value3" => 25
+);
+
+$insert->execute($parm);
+$insert = null;
+
+var_dump($db->query("SELECT * from test")->fetchAll(PDO::FETCH_ASSOC));
+
+?>
+--EXPECT--
+array(1) {
+ [0]=>
+ array(3) {
+ ["field1"]=>
+ string(2) "15"
+ ["field2"]=>
+ string(2) "20"
+ ["field3"]=>
+ string(2) "25"
+ }
+}
diff --git a/ext/pdo/tests/pdo_011.phpt b/ext/pdo/tests/pdo_011.phpt
index e3eefc4af..4a240426e 100644
--- a/ext/pdo/tests/pdo_011.phpt
+++ b/ext/pdo/tests/pdo_011.phpt
@@ -28,7 +28,7 @@ class DerivedStatement extends PDOStatement
echo __METHOD__ . "($name)\n";
}
- function retrieve($id, $val) {
+ function reTrieve($id, $val) {
echo __METHOD__ . "($id,$val)\n";
return array($id=>$val);
}
@@ -77,6 +77,10 @@ var_dump($select2->fetchAll(PDO::FETCH_FUNC, array($f, 'factory')));
var_dump(get_class($derived));
$derived->execute();
var_dump($derived->fetchAll(PDO::FETCH_FUNC, array($derived, 'retrieve')));
+$derived->execute();
+var_dump($derived->fetchAll(PDO::FETCH_FUNC, array($derived, 'reTrieve')));
+$derived->execute();
+var_dump($derived->fetchAll(PDO::FETCH_FUNC, array($derived, 'RETRIEVE')));
?>
--EXPECTF--
@@ -217,10 +221,62 @@ array(4) {
}
}
string(16) "DerivedStatement"
-DerivedStatement::retrieve(1,A)
-DerivedStatement::retrieve(2,B)
-DerivedStatement::retrieve(3,C)
-DerivedStatement::retrieve(4,D)
+DerivedStatement::reTrieve(1,A)
+DerivedStatement::reTrieve(2,B)
+DerivedStatement::reTrieve(3,C)
+DerivedStatement::reTrieve(4,D)
+array(4) {
+ [0]=>
+ array(1) {
+ [1]=>
+ string(1) "A"
+ }
+ [1]=>
+ array(1) {
+ [2]=>
+ string(1) "B"
+ }
+ [2]=>
+ array(1) {
+ [3]=>
+ string(1) "C"
+ }
+ [3]=>
+ array(1) {
+ [4]=>
+ string(1) "D"
+ }
+}
+DerivedStatement::reTrieve(1,A)
+DerivedStatement::reTrieve(2,B)
+DerivedStatement::reTrieve(3,C)
+DerivedStatement::reTrieve(4,D)
+array(4) {
+ [0]=>
+ array(1) {
+ [1]=>
+ string(1) "A"
+ }
+ [1]=>
+ array(1) {
+ [2]=>
+ string(1) "B"
+ }
+ [2]=>
+ array(1) {
+ [3]=>
+ string(1) "C"
+ }
+ [3]=>
+ array(1) {
+ [4]=>
+ string(1) "D"
+ }
+}
+DerivedStatement::reTrieve(1,A)
+DerivedStatement::reTrieve(2,B)
+DerivedStatement::reTrieve(3,C)
+DerivedStatement::reTrieve(4,D)
array(4) {
[0]=>
array(1) {
diff --git a/ext/pdo/tests/pdo_014.phpt b/ext/pdo/tests/pdo_014.phpt
index b26135728..794fdae7d 100644
--- a/ext/pdo/tests/pdo_014.phpt
+++ b/ext/pdo/tests/pdo_014.phpt
@@ -3,7 +3,7 @@ PDO Common: PDOStatement SPL iterator
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo')) die('skip');
-if (!extension_loaded('SPL')) print 'skip SPL not available';
+if (!extension_loaded('SPL')) die('skip SPL not available');
if (!class_exists('IteratorIterator', false)) die('skip IteratorIterator class not present');
$dir = getenv('REDIR_TEST_DIR');
if (false == $dir) die('skip no driver');
diff --git a/ext/pdo/tests/pdo_031.phpt b/ext/pdo/tests/pdo_031.phpt
index 30a75d79b..79f6b4252 100755
--- a/ext/pdo/tests/pdo_031.phpt
+++ b/ext/pdo/tests/pdo_031.phpt
@@ -3,7 +3,7 @@ PDO Common: PDOStatement SPL iterator
--SKIPIF--
<?php # vim:ft=php
if (!extension_loaded('pdo')) die('skip');
-if (!extension_loaded('SPL')) print 'skip SPL not available';
+if (!extension_loaded('SPL')) die ('skip SPL not available');
$dir = getenv('REDIR_TEST_DIR');
if (false == $dir) die('skip no driver');
require_once $dir . 'pdo_test.inc';
diff --git a/ext/pdo_dblib/package2.xml b/ext/pdo_dblib/package2.xml
index f1fcb76d7..8b726666d 100644
--- a/ext/pdo_dblib/package2.xml
+++ b/ext/pdo_dblib/package2.xml
@@ -20,7 +20,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
<email>fmk@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
@@ -66,7 +66,7 @@ Windows platforms.
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_firebird/package2.xml b/ext/pdo_firebird/package2.xml
index 414b9e6c8..5b5984c80 100644
--- a/ext/pdo_firebird/package2.xml
+++ b/ext/pdo_firebird/package2.xml
@@ -15,7 +15,7 @@ all versions of Firebird and InterBase versions 6 and up.
<email>abies@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>0.3</release>
<api>0.3</api>
@@ -57,7 +57,7 @@ Hope it works!
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_mysql/CREDITS b/ext/pdo_mysql/CREDITS
index 0735d9a1e..0bee1ee76 100755
--- a/ext/pdo_mysql/CREDITS
+++ b/ext/pdo_mysql/CREDITS
@@ -1,2 +1,3 @@
-mySQL 3.x driver for PDO
-George Schlossnagle
+mySQL driver for PDO
+George Schlossnagle, Wez Furlong, Ilia Alshanetsky
+
diff --git a/ext/pdo_mysql/config.m4 b/ext/pdo_mysql/config.m4
index b6d9ab8bb..26172b644 100755
--- a/ext/pdo_mysql/config.m4
+++ b/ext/pdo_mysql/config.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.25.2.6 2005/12/04 18:33:26 wez Exp $
+dnl $Id: config.m4,v 1.25.2.7 2006/05/02 00:59:22 wez Exp $
dnl
if test "$PHP_PDO" != "no"; then
@@ -87,6 +87,9 @@ if test "$PHP_PDO_MYSQL" != "no"; then
AC_DEFINE_UNQUOTED(PDO_MYSQL_UNIX_ADDR, "$PDO_MYSQL_SOCKET", [ ])
+
+ _SAVE_LIBS=$LIBS
+ LIBS="$LIBS $PDO_MYSQL_LIBS"
PHP_CHECK_LIBRARY(mysqlclient, mysql_query,
[
PHP_EVAL_LIBLINE($PDO_MYSQL_LIBS, PDO_MYSQL_SHARED_LIBADD)
@@ -95,8 +98,6 @@ if test "$PHP_PDO_MYSQL" != "no"; then
],[
$PDO_MYSQL_LIBS
])
- _SAVE_LIBS=$LIBS
- LIBS="$LIBS $PDO_MYSQL_LIBS"
AC_CHECK_FUNCS([mysql_commit mysql_stmt_prepare mysql_next_result mysql_sqlstate])
LIBS=$_SAVE_LIBS
diff --git a/ext/pdo_mysql/mysql_driver.c b/ext/pdo_mysql/mysql_driver.c
index f2ce644b8..39a22f164 100755
--- a/ext/pdo_mysql/mysql_driver.c
+++ b/ext/pdo_mysql/mysql_driver.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_driver.c,v 1.59.2.8 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: mysql_driver.c,v 1.59.2.13 2006/04/09 08:11:31 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -163,17 +163,22 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
char *nsql = NULL;
int nsql_len = 0;
int ret;
+ int server_version;
#endif
S->H = H;
stmt->driver_data = S;
stmt->methods = &mysql_stmt_methods;
- /* TODO: add runtime check to determine if the server we are talking to supports
- * prepared statements; if it doesn't, we should set stmt->supports_placeholders
- * to PDO_PLACEHOLDER_NONE, and have the rest of the code look at S->stmt to
- * determine if we're using real prepared statements or the PDO emulated version */
+ if (H->emulate_prepare) {
+ goto end;
+ }
+
#if HAVE_MYSQL_STMT_PREPARE
+ server_version = mysql_get_server_version(H->server);
+ if (server_version < 40100) {
+ goto fallback;
+ }
stmt->supports_placeholders = PDO_PLACEHOLDER_POSITIONAL;
ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);
@@ -230,6 +235,7 @@ static int mysql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
fallback:
#endif
+end:
stmt->supports_placeholders = PDO_PLACEHOLDER_NONE;
return 1;
@@ -312,7 +318,10 @@ static int pdo_mysql_set_attribute(pdo_dbh_t *dbh, long attr, zval *val TSRMLS_D
case PDO_MYSQL_ATTR_USE_BUFFERED_QUERY:
((pdo_mysql_db_handle *)dbh->driver_data)->buffered = Z_BVAL_P(val);
return 1;
-
+ case PDO_MYSQL_ATTR_DIRECT_QUERY:
+ case PDO_ATTR_EMULATE_PREPARES:
+ ((pdo_mysql_db_handle *)dbh->driver_data)->emulate_prepare = Z_BVAL_P(val);
+ return 1;
default:
return 0;
}
@@ -355,6 +364,14 @@ static int pdo_mysql_get_attribute(pdo_dbh_t *dbh, long attr, zval *return_value
ZVAL_LONG(return_value, H->buffered);
return 1;
+ case PDO_MYSQL_ATTR_DIRECT_QUERY:
+ ZVAL_LONG(return_value, H->emulate_prepare);
+ return 1;
+
+ case PDO_MYSQL_ATTR_MAX_BUFFER_SIZE:
+ ZVAL_LONG(return_value, H->max_buffer_size);
+ return 1;
+
default:
return 0;
}
@@ -416,6 +433,17 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
H->einfo.errcode = 0;
H->einfo.errmsg = NULL;
+ /* at the time of writing, the mysql documentation states:
+ * http://mysql.localhost.net.ar/doc/refman/5.0/en/query-cache-how.html
+ * "A query also is not cached under these conditions:
+ * ...
+ * It was issued as a prepared statement, even if no placeholders were employed."
+ *
+ * We default to emulating prepared statements
+ * in order to take advantage of the query cache
+FIXME: H->emulate_prepare = 1; a bit risky to do this so late in the RC, so defer it.
+ */
+
/* allocate an environment */
/* handle for the server */
@@ -425,6 +453,7 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
}
dbh->driver_data = H;
+ H->max_buffer_size = 1024*1024;
/* handle MySQL options */
if (driver_options) {
@@ -434,6 +463,13 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
H->buffered = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_USE_BUFFERED_QUERY, 0 TSRMLS_CC);
+ H->emulate_prepare = pdo_attr_lval(driver_options,
+ PDO_MYSQL_ATTR_DIRECT_QUERY, H->emulate_prepare TSRMLS_CC);
+ H->emulate_prepare = pdo_attr_lval(driver_options,
+ PDO_ATTR_EMULATE_PREPARES, H->emulate_prepare TSRMLS_CC);
+
+ H->max_buffer_size = pdo_attr_lval(driver_options, PDO_MYSQL_ATTR_MAX_BUFFER_SIZE, H->max_buffer_size TSRMLS_CC);
+
if (mysql_options(H->server, MYSQL_OPT_CONNECT_TIMEOUT, (const char *)&connect_timeout)) {
pdo_mysql_error(dbh);
goto cleanup;
@@ -444,6 +480,15 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
goto cleanup;
}
+#ifdef MYSQL_OPT_RECONNECT
+ /* since 5.0.3, the default for this option is 0 if not specified.
+ * we want the old behaviour */
+ {
+ long reconnect = 1;
+ mysql_options(H->server, MYSQL_OPT_RECONNECT, (const char*)&reconnect);
+ }
+#endif
+
init_cmd = pdo_attr_strval(driver_options, PDO_MYSQL_ATTR_INIT_COMMAND, NULL TSRMLS_CC);
if (init_cmd) {
if (mysql_options(H->server, MYSQL_INIT_COMMAND, (const char *)init_cmd)) {
@@ -488,7 +533,9 @@ static int pdo_mysql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
goto cleanup;
}
- mysql_handle_autocommit(dbh TSRMLS_CC);
+ if (!dbh->auto_commit) {
+ mysql_handle_autocommit(dbh TSRMLS_CC);
+ }
H->attached = 1;
diff --git a/ext/pdo_mysql/mysql_statement.c b/ext/pdo_mysql/mysql_statement.c
index 5218e7b7f..7675e1ee7 100755
--- a/ext/pdo_mysql/mysql_statement.c
+++ b/ext/pdo_mysql/mysql_statement.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mysql_statement.c,v 1.48.2.10 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: mysql_statement.c,v 1.48.2.14 2006/04/22 16:35:18 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -67,12 +67,23 @@ static int pdo_mysql_stmt_dtor(pdo_stmt_t *stmt TSRMLS_DC)
efree(S->out_length);
}
#endif
+#if HAVE_MYSQL_NEXT_RESULT
+ while (mysql_more_results(S->H->server)) {
+ MYSQL_RES *res;
+ if (mysql_next_result(S->H->server) != 0) {
+ break;
+ }
+
+ res = mysql_store_result(S->H->server);
+ if (res) {
+ mysql_free_result(res);
+ }
+ }
+#endif
efree(S);
return 1;
}
-#define PDO_MYSQL_MAX_BUFFER 1024*1024 /* 1 megabyte */
-
static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
{
pdo_mysql_stmt *S = (pdo_mysql_stmt*)stmt->driver_data;
@@ -144,8 +155,8 @@ static int pdo_mysql_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
S->fields[i].max_length? S->fields[i].max_length:
S->fields[i].length;
/* work-around for longtext and alike */
- if (S->bound_result[i].buffer_length > PDO_MYSQL_MAX_BUFFER) {
- S->bound_result[i].buffer_length = PDO_MYSQL_MAX_BUFFER;
+ if (S->bound_result[i].buffer_length > H->max_buffer_size) {
+ S->bound_result[i].buffer_length = H->max_buffer_size;
}
}
#if 0
@@ -592,6 +603,18 @@ static int pdo_mysql_stmt_cursor_closer(pdo_stmt_t *stmt TSRMLS_DC)
mysql_free_result(S->result);
S->result = NULL;
}
+#if HAVE_MYSQL_NEXT_RESULT
+ while (mysql_more_results(S->H->server)) {
+ MYSQL_RES *res;
+ if (mysql_next_result(S->H->server) != 0) {
+ break;
+ }
+ res = mysql_store_result(S->H->server);
+ if (res) {
+ mysql_free_result(res);
+ }
+ }
+#endif
return 1;
}
diff --git a/ext/pdo_mysql/package2.xml b/ext/pdo_mysql/package2.xml
index fded1712f..cee6cc7de 100644
--- a/ext/pdo_mysql/package2.xml
+++ b/ext/pdo_mysql/package2.xml
@@ -26,7 +26,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
<email>wez@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.2</release>
<api>1.0.2</api>
@@ -37,6 +37,14 @@ http://pear.php.net/dtd/package-2.0.xsd">
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
+This PECL release corresponds to PHP 5.1.3.
+
+Added PDO::ATTR_EMULATE_PREPARES which can be used to force use of emulated or
+native prepares. This attribute should can be set on the database handle, and
+will cause subsequent prepares to use emulation.
+
+- Fixed bug #36572 (cannot use native prepared statements with internal
+ queries like "show master status") (Ilia)
- Repackage using package2.xml
- Fixed Bug #35480 and #35415, crash when using persistent connections.
- Improved error detection for OPTIMIZE queries
@@ -75,7 +83,7 @@ Windows binaries can be found at http://pecl4win.php.net/ext.php/php_pdo_mysql.d
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_mysql/pdo_mysql.c b/ext/pdo_mysql/pdo_mysql.c
index 2f8be1d52..a0491138b 100755
--- a/ext/pdo_mysql/pdo_mysql.c
+++ b/ext/pdo_mysql/pdo_mysql.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_mysql.c,v 1.8.2.12 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: pdo_mysql.c,v 1.8.2.13 2006/03/05 17:18:01 iliaa Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -80,6 +80,8 @@ PHP_MINIT_FUNCTION(pdo_mysql)
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_INIT_COMMAND", (long)PDO_MYSQL_ATTR_INIT_COMMAND);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_FILE", (long)PDO_MYSQL_ATTR_READ_DEFAULT_FILE);
REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_READ_DEFAULT_GROUP", (long)PDO_MYSQL_ATTR_READ_DEFAULT_GROUP);
+ REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_MAX_BUFFER_SIZE", (long)PDO_MYSQL_ATTR_MAX_BUFFER_SIZE);
+ REGISTER_PDO_CLASS_CONST_LONG("MYSQL_ATTR_DIRECT_QUERY", (long)PDO_MYSQL_ATTR_DIRECT_QUERY);
return php_pdo_register_driver(&pdo_mysql_driver);
}
diff --git a/ext/pdo_mysql/php_pdo_mysql_int.h b/ext/pdo_mysql/php_pdo_mysql_int.h
index 2602e04e1..2bc2f1d8a 100755
--- a/ext/pdo_mysql/php_pdo_mysql_int.h
+++ b/ext/pdo_mysql/php_pdo_mysql_int.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_mysql_int.h,v 1.16.2.2 2006/01/01 12:50:11 sniper Exp $ */
+/* $Id: php_pdo_mysql_int.h,v 1.16.2.4 2006/03/05 17:18:01 iliaa Exp $ */
#ifndef PHP_PDO_MYSQL_INT_H
#define PHP_PDO_MYSQL_INT_H
@@ -37,7 +37,9 @@ typedef struct {
unsigned attached:1;
unsigned buffered:1;
+ unsigned emulate_prepare:1;
unsigned _reserved:31;
+ unsigned long max_buffer_size;
pdo_mysql_error_info einfo;
} pdo_mysql_db_handle;
@@ -82,5 +84,7 @@ enum {
PDO_MYSQL_ATTR_INIT_COMMAND,
PDO_MYSQL_ATTR_READ_DEFAULT_FILE,
PDO_MYSQL_ATTR_READ_DEFAULT_GROUP,
+ PDO_MYSQL_ATTR_MAX_BUFFER_SIZE,
+ PDO_MYSQL_ATTR_DIRECT_QUERY,
};
#endif
diff --git a/ext/pdo_oci/config.m4 b/ext/pdo_oci/config.m4
index 084e111c1..c5a30a4f8 100755
--- a/ext/pdo_oci/config.m4
+++ b/ext/pdo_oci/config.m4
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.14.2.4 2006/01/06 11:48:19 tony2001 Exp $
+dnl $Id: config.m4,v 1.14.2.5 2006/02/16 02:03:13 pollita Exp $
if test "$PHP_PDO" != "no"; then
@@ -88,11 +88,11 @@ You need to tell me where to find your oracle SDK, or set ORACLE_HOME.
PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
AC_MSG_RESULT($PDO_OCI_IC_PREFIX/lib/oracle/$PDO_OCI_IC_VERS/client/include)
elif test -f $PDO_OCI_IC_PREFIX/sdk/include/oci.h ; then
- PHP_ADD_INCLUDE($PDO_OCI_PREFIX/sdk/include)
- AC_MSG_RESULT($PDO_OCI_PREFIX/sdk/include)
+ PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/sdk/include)
+ AC_MSG_RESULT($PDO_OCI_IC_PREFIX/sdk/include)
elif test -f $PDO_OCI_IC_PREFIX/client/include/oci.h ; then
- PHP_ADD_INCLUDE($PDO_OCI_PREFIX/client/include)
- AC_MSG_RESULT($PDO_OCI_PREFIX/client/include)
+ PHP_ADD_INCLUDE($PDO_OCI_IC_PREFIX/client/include)
+ AC_MSG_RESULT($PDO_OCI_IC_PREFIX/client/include)
else
AC_MSG_ERROR([I'm too dumb to figure out where the include dir is in your instant client install])
fi
diff --git a/ext/pdo_oci/oci_statement.c b/ext/pdo_oci/oci_statement.c
index 061729e8a..ee6077267 100755
--- a/ext/pdo_oci/oci_statement.c
+++ b/ext/pdo_oci/oci_statement.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: oci_statement.c,v 1.16.2.9 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: oci_statement.c,v 1.16.2.10 2006/03/18 22:06:30 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -545,6 +545,10 @@ static int oci_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC) /* {{{ */
) {
/* should be big enough for most date formats and numbers */
S->cols[colno].datalen = 512;
+#if defined(SQLT_IBFLOAT) && defined(SQLT_IBDOUBLE)
+ } else if (dtype == SQLT_IBFLOAT || dtype == SQLT_IBDOUBLE) {
+ S->cols[colno].datalen = 1024;
+#endif
} else {
S->cols[colno].datalen = col->maxlen;
}
diff --git a/ext/pdo_oci/package2.xml b/ext/pdo_oci/package2.xml
index f8cb18175..1f828d1f1 100644
--- a/ext/pdo_oci/package2.xml
+++ b/ext/pdo_oci/package2.xml
@@ -14,7 +14,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
<email>wez@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
@@ -25,6 +25,9 @@ http://pear.php.net/dtd/package-2.0.xsd">
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
+- Added support for BINARY_DOUBLE and BINARY_FLOAT to PDO_OCI and OCI8
+ (also fixes bug #36764). (Tony)
+- Fixed bug #35907 (PDO_OCI uses hardcoded lib path $ORACLE_HOME/lib). (Tony)
- Repackage with package2.xml
- Improved handling of long columns
- Fixed PECL Bug #5722; implemented LOB support.
@@ -59,7 +62,7 @@ http://pecl4win.php.net/ext.php/php_pdo_oci.dll
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_oci/tests/bug_33707.phpt b/ext/pdo_oci/tests/bug_33707.phpt
index 17ea37f74..6e53e3fb9 100644
--- a/ext/pdo_oci/tests/bug_33707.phpt
+++ b/ext/pdo_oci/tests/bug_33707.phpt
@@ -3,8 +3,7 @@ PDO OCI Bug #33707
--SKIPIF--
<?php
if (!extension_loaded('pdo') || !extension_loaded('pdo_oci')) die('skip not loaded');
-require 'ext/pdo_oci/tests/config.inc';
-require 'ext/pdo/tests/pdo_test.inc';
+require dirname(__FILE__).'/../../pdo/tests/pdo_test.inc';
PDOTest::skip();
?>
--FILE--
diff --git a/ext/pdo_odbc/config.m4 b/ext/pdo_odbc/config.m4
index acc350d85..94dad6e22 100755
--- a/ext/pdo_odbc/config.m4
+++ b/ext/pdo_odbc/config.m4
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.22 2005/07/27 03:22:02 wez Exp $
+dnl $Id: config.m4,v 1.22.2.1 2006/04/30 01:42:53 wez Exp $
dnl config.m4 for extension pdo_odbc
dnl vim:et:sw=2:ts=2:
@@ -160,7 +160,7 @@ functions required for PDO support.
PHP_NEW_EXTENSION(pdo_odbc, pdo_odbc.c odbc_driver.c odbc_stmt.c, $ext_shared,,-I$pdo_inc_path $PDO_ODBC_INCLUDE)
PHP_SUBST(PDO_ODBC_SHARED_LIBADD)
- ifdef([PHP_ADD_EXTENDION_DEP],
+ ifdef([PHP_ADD_EXTENSION_DEP],
[
PHP_ADD_EXTENSION_DEP(pdo_odbc, pdo)
])
diff --git a/ext/pdo_odbc/odbc_driver.c b/ext/pdo_odbc/odbc_driver.c
index 6ef1b7ff4..085ca9007 100755
--- a/ext/pdo_odbc/odbc_driver.c
+++ b/ext/pdo_odbc/odbc_driver.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: odbc_driver.c,v 1.27.2.2 2005/12/14 04:56:22 wez Exp $ */
+/* $Id: odbc_driver.c,v 1.27.2.4 2006/04/30 01:27:33 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -198,13 +198,21 @@ static int odbc_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len, p
efree(nsql);
}
+ stmt->driver_data = S;
+ stmt->methods = &odbc_stmt_methods;
+
if (rc != SQL_SUCCESS) {
pdo_odbc_stmt_error("SQLPrepare");
+ if (rc != SQL_SUCCESS_WITH_INFO) {
+ /* clone error information into the db handle */
+ strcpy(H->einfo.last_err_msg, S->einfo.last_err_msg);
+ H->einfo.file = S->einfo.file;
+ H->einfo.line = S->einfo.line;
+ H->einfo.what = S->einfo.what;
+ strcpy(dbh->error_code, stmt->error_code);
+ }
}
- stmt->driver_data = S;
- stmt->methods = &odbc_stmt_methods;
-
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
return 0;
}
@@ -226,6 +234,14 @@ static long odbc_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRML
rc = SQLExecDirect(stmt, (char *)sql, sql_len);
+ if (rc == SQL_NO_DATA) {
+ /* If SQLExecDirect executes a searched update or delete statement that
+ * does not affect any rows at the data source, the call to
+ * SQLExecDirect returns SQL_NO_DATA. */
+ row_count = 0;
+ goto out;
+ }
+
if (rc != SQL_SUCCESS && rc != SQL_SUCCESS_WITH_INFO) {
pdo_odbc_doer_error("SQLExecDirect");
goto out;
diff --git a/ext/pdo_odbc/odbc_stmt.c b/ext/pdo_odbc/odbc_stmt.c
index ea9a6980d..2711355ed 100755
--- a/ext/pdo_odbc/odbc_stmt.c
+++ b/ext/pdo_odbc/odbc_stmt.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: odbc_stmt.c,v 1.26.2.1 2005/09/30 04:19:24 wez Exp $ */
+/* $Id: odbc_stmt.c,v 1.26.2.2 2006/03/27 21:04:12 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -146,6 +146,7 @@ static int odbc_stmt_execute(pdo_stmt_t *stmt TSRMLS_DC)
stmt->column_count = (int)colcount;
S->cols = ecalloc(colcount, sizeof(pdo_odbc_column));
+ S->going_long = 0;
}
return 1;
@@ -399,8 +400,9 @@ static int odbc_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC)
col->param_type = PDO_PARAM_STR;
/* tell ODBC to put it straight into our buffer, but only if it
- * isn't "long" data */
- if (colsize < 256) {
+ * isn't "long" data, and only if we haven't already bound a long
+ * column. */
+ if (colsize < 256 && !S->going_long) {
S->cols[colno].data = emalloc(colsize+1);
rc = SQLBindCol(S->stmt, colno+1, SQL_C_CHAR, S->cols[colno].data,
@@ -414,6 +416,7 @@ static int odbc_stmt_describe(pdo_stmt_t *stmt, int colno TSRMLS_DC)
/* allocate a smaller buffer to keep around for smaller
* "long" columns */
S->cols[colno].data = emalloc(256);
+ S->going_long = 1;
}
return 1;
@@ -589,6 +592,7 @@ static int odbc_stmt_next_rowset(pdo_stmt_t *stmt TSRMLS_DC)
SQLNumResultCols(S->stmt, &colcount);
stmt->column_count = (int)colcount;
S->cols = ecalloc(colcount, sizeof(pdo_odbc_column));
+ S->going_long = 0;
return 1;
}
diff --git a/ext/pdo_odbc/package2.xml b/ext/pdo_odbc/package2.xml
index ce50b8d42..3eb99d141 100644
--- a/ext/pdo_odbc/package2.xml
+++ b/ext/pdo_odbc/package2.xml
@@ -15,7 +15,7 @@ and IBM DB2 libraries, and will support more in future releases.
<email>wez@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
@@ -26,6 +26,8 @@ and IBM DB2 libraries, and will support more in future releases.
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
+- Fixed bug #35552 (crash when pdo_odbc prepare fails). (Wez).
+- Fixed bug #36632 (bad error reporting for pdo_odbc exec UPDATE). (Wez).
- repackage with package2.xml
You require either IBM DB2 CLI libraries or unixODBC to use this package.
@@ -57,7 +59,7 @@ http://pecl4win.php.net/ext.php/php_pdo_odbc.dll
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_odbc/php_pdo_odbc_int.h b/ext/pdo_odbc/php_pdo_odbc_int.h
index caa31f3cb..5286a8b7e 100755
--- a/ext/pdo_odbc/php_pdo_odbc_int.h
+++ b/ext/pdo_odbc/php_pdo_odbc_int.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_pdo_odbc_int.h,v 1.9 2005/07/07 12:49:21 wez Exp $ */
+/* $Id: php_pdo_odbc_int.h,v 1.9.2.1 2006/03/27 21:04:12 wez Exp $ */
#ifdef PHP_WIN32
# define PDO_ODBC_TYPE "Win32"
@@ -136,7 +136,7 @@ typedef struct {
unsigned long datalen;
long fetched_len;
SWORD coltype;
- char colname[32];
+ char colname[128];
} pdo_odbc_column;
typedef struct {
@@ -144,6 +144,8 @@ typedef struct {
pdo_odbc_column *cols;
pdo_odbc_db_handle *H;
pdo_odbc_errinfo einfo;
+ unsigned going_long:1;
+ unsigned _spare:31;
} pdo_odbc_stmt;
typedef struct {
diff --git a/ext/pdo_pgsql/config.w32 b/ext/pdo_pgsql/config.w32
index 36a2ea7f2..618ff1fc6 100644
--- a/ext/pdo_pgsql/config.w32
+++ b/ext/pdo_pgsql/config.w32
@@ -1,4 +1,4 @@
-// $Id: config.w32,v 1.4 2005/05/16 17:34:44 edink Exp $
+// $Id: config.w32,v 1.4.2.1 2006/03/14 10:49:18 edink Exp $
// vim:ft=javascript
ARG_WITH("pdo-pgsql", "PostgreSQL support for PDO", "no");
@@ -7,6 +7,11 @@ if (PHP_PDO_PGSQL != "no") {
if (CHECK_LIB("libpq.lib", "pdo_pgsql", PHP_PDO_PGSQL) &&
CHECK_HEADER_ADD_INCLUDE("libpq-fe.h", "CFLAGS_PDO_PGSQL", PHP_PDO_PGSQL + ";" + PHP_PHP_BUILD + "\\include\\pgsql")) {
EXTENSION("pdo_pgsql", "pdo_pgsql.c pgsql_driver.c pgsql_statement.c");
+
+ if (CHECK_HEADER_ADD_INCLUDE("pg_config.h", "CFLAGS_PDO_PGSQL", PHP_PDO_PGSQL + ";" + PHP_PHP_BUILD + "\\include\\pgsql")) {
+ ADD_FLAG('CFLAGS_PDO_PGSQL', "/D HAVE_PG_CONFIG_H");
+ }
+
ADD_FLAG('CFLAGS_PDO_PGSQL', "/I ..\\pecl");
AC_DEFINE('HAVE_PDO_PGSQL', 1, 'Have PostgreSQL library');
ADD_FLAG('CFLAGS_PDO_PGSQL', "/D HAVE_PQPARAMETERSTATUS=1 /D HAVE_PQPROTOCOLVERSION=1 /D HAVE_PGTRANSACTIONSTATUS=1 /D HAVE_PQUNESCAPEBYTEA=1 /D HAVE_PQRESULTERRORFIELD=1");
diff --git a/ext/pdo_pgsql/package2.xml b/ext/pdo_pgsql/package2.xml
index 3508bceb8..e397958a7 100644
--- a/ext/pdo_pgsql/package2.xml
+++ b/ext/pdo_pgsql/package2.xml
@@ -26,10 +26,10 @@ http://pear.php.net/dtd/package-2.0.xsd">
<email>wez@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
- <release>1.0.1</release>
- <api>1.0.1</api>
+ <release>1.0.2</release>
+ <api>1.0.2</api>
</version>
<stability>
<release>stable</release>
@@ -37,6 +37,14 @@ http://pear.php.net/dtd/package-2.0.xsd">
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
+This PECL release corresponds to PHP 5.1.3.
+
+- Fixed bug #36727 (segfault in pdo_pgsql bindValue() when no parameters are
+ defined). (Tony)
+- Fixed bug #36382 (PDO/PgSQL's getColumnMeta() crashes). (Derick)
+- Fixed bug #36176 (PDO_PGSQL - PDO::exec() does not return number of rows
+ affected by the operation). (Ilia)
+- Fixed prepared statement name conflict handling in PDO_PGSQL. (Thies, Ilia)
- repackage with package2.xml
- Added PDO::pgsqlLOBCreate(), PDO::pgsqlLOBOpen() and PDO::pgsqlLOBUnlink().
@@ -69,7 +77,7 @@ http://pecl4win.php.net/ext.php/php_pdo_pgsql.dll
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0.2</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pdo_pgsql/pdo_pgsql.c b/ext/pdo_pgsql/pdo_pgsql.c
index 87cfb1b86..805cd2c9d 100644
--- a/ext/pdo_pgsql/pdo_pgsql.c
+++ b/ext/pdo_pgsql/pdo_pgsql.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pdo_pgsql.c,v 1.7.2.10 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: pdo_pgsql.c,v 1.7.2.11 2006/03/14 10:49:18 edink Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -30,6 +30,10 @@
#include "php_pdo_pgsql.h"
#include "php_pdo_pgsql_int.h"
+#ifdef HAVE_PG_CONFIG_H
+#include <pg_config.h>
+#endif
+
/* {{{ pdo_pgsql_functions[] */
zend_function_entry pdo_pgsql_functions[] = {
{NULL, NULL, NULL}
@@ -115,6 +119,12 @@ PHP_MINFO_FUNCTION(pdo_pgsql)
{
php_info_print_table_start();
php_info_print_table_header(2, "PDO Driver for PostgreSQL", "enabled");
+#ifdef HAVE_PG_CONFIG_H
+ php_info_print_table_row(2, "PostgreSQL(libpq) Version", PG_VERSION);
+#endif
+ php_info_print_table_row(2, "Module version", pdo_pgsql_module_entry.version);
+ php_info_print_table_row(2, "Revision", " $Id: pdo_pgsql.c,v 1.7.2.11 2006/03/14 10:49:18 edink Exp $ ");
+
php_info_print_table_end();
}
/* }}} */
diff --git a/ext/pdo_pgsql/pgsql_driver.c b/ext/pdo_pgsql/pgsql_driver.c
index 8568d3697..84fd076c6 100644
--- a/ext/pdo_pgsql/pgsql_driver.c
+++ b/ext/pdo_pgsql/pgsql_driver.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql_driver.c,v 1.53.2.10 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: pgsql_driver.c,v 1.53.2.14 2006/04/09 08:17:50 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -218,6 +218,7 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
int ret;
char *nsql = NULL;
int nsql_len = 0;
+ int emulate = 0;
#endif
S->H = H;
@@ -233,9 +234,18 @@ static int pgsql_handle_preparer(pdo_dbh_t *dbh, const char *sql, long sql_len,
}
#if HAVE_PQPREPARE
- if ((!driver_options || pdo_attr_lval(driver_options,
- PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, 0 TSRMLS_CC) == 0)
- && PQprotocolVersion(H->server) > 2) {
+
+ if (driver_options) {
+ if (pdo_attr_lval(driver_options,
+ PDO_PGSQL_ATTR_DISABLE_NATIVE_PREPARED_STATEMENT, 0 TSRMLS_CC) == 1) {
+ emulate = 1;
+ } else if (pdo_attr_lval(driver_options, PDO_ATTR_EMULATE_PREPARES,
+ 0 TSRMLS_CC) == 1) {
+ emulate = 1;
+ }
+ }
+
+ if (!emulate && PQprotocolVersion(H->server) > 2) {
stmt->supports_placeholders = PDO_PLACEHOLDER_NAMED;
stmt->named_rewrite_template = "$%d";
ret = pdo_parse_params(stmt, (char*)sql, sql_len, &nsql, &nsql_len TSRMLS_CC);
@@ -270,23 +280,27 @@ static long pgsql_handle_doer(pdo_dbh_t *dbh, const char *sql, long sql_len TSRM
{
pdo_pgsql_db_handle *H = (pdo_pgsql_db_handle *)dbh->driver_data;
PGresult *res;
+ long ret = 1;
+ ExecStatusType qs;
if (!(res = PQexec(H->server, sql))) {
/* fatal error */
pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, NULL);
return -1;
- } else {
- ExecStatusType qs = PQresultStatus(res);
- if (qs != PGRES_COMMAND_OK && qs != PGRES_TUPLES_OK) {
- pdo_pgsql_error(dbh, qs, pdo_pgsql_sqlstate(res));
- PQclear(res);
- return -1;
- }
- H->pgoid = PQoidValue(res);
+ }
+ qs = PQresultStatus(res);
+ if (qs != PGRES_COMMAND_OK && qs != PGRES_TUPLES_OK) {
+ pdo_pgsql_error(dbh, qs, pdo_pgsql_sqlstate(res));
PQclear(res);
+ return -1;
}
+ H->pgoid = PQoidValue(res);
+#if HAVE_PQCMDTUPLES
+ ret = atol(PQcmdTuples(res));
+#endif
+ PQclear(res);
- return 1;
+ return ret;
}
static int pgsql_handle_quoter(pdo_dbh_t *dbh, const char *unquoted, int unquotedlen, char **quoted, int *quotedlen, enum pdo_param_type paramtype TSRMLS_DC)
@@ -667,7 +681,7 @@ static int pdo_pgsql_handle_factory(pdo_dbh_t *dbh, zval *driver_options TSRMLS_
H->pgoid = -1;
dbh->methods = &pgsql_methods;
- dbh->alloc_own_columns = 0;
+ dbh->alloc_own_columns = 1;
dbh->max_escaped_char_length = 2;
ret = 1;
diff --git a/ext/pdo_pgsql/pgsql_statement.c b/ext/pdo_pgsql/pgsql_statement.c
index 1d28d0b71..5abdfa111 100644
--- a/ext/pdo_pgsql/pgsql_statement.c
+++ b/ext/pdo_pgsql/pgsql_statement.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql_statement.c,v 1.31.2.10 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: pgsql_statement.c,v 1.31.2.12 2006/03/27 20:51:01 wez Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -221,7 +221,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
}
break;
- case PDO_PARAM_EVT_ALLOC:
+ case PDO_PARAM_EVT_NORMALIZE:
/* decode name from $1, $2 into 0, 1 etc. */
if (param->name) {
if (param->name[0] == '$') {
@@ -229,7 +229,7 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
} else {
/* resolve parameter name to rewritten name */
char *nameptr;
- if (SUCCESS == zend_hash_find(stmt->bound_param_map,
+ if (stmt->bound_param_map && SUCCESS == zend_hash_find(stmt->bound_param_map,
param->name, param->namelen + 1, (void**)&nameptr)) {
param->paramno = atoi(nameptr + 1) - 1;
} else {
@@ -240,6 +240,10 @@ static int pgsql_stmt_param_hook(pdo_stmt_t *stmt, struct pdo_bound_param_data *
}
break;
+ case PDO_PARAM_EVT_ALLOC:
+ /* work is handled by EVT_NORMALIZE */
+ return 1;
+
case PDO_PARAM_EVT_EXEC_PRE:
if (!S->param_values) {
S->param_values = ecalloc(
diff --git a/ext/pdo_pgsql/tests/bug36727.phpt b/ext/pdo_pgsql/tests/bug36727.phpt
new file mode 100644
index 000000000..c6f7c8a80
--- /dev/null
+++ b/ext/pdo_pgsql/tests/bug36727.phpt
@@ -0,0 +1,23 @@
+--TEST--
+Bug #36727 (segfault in bindValue() when no parameters are defined)
+--SKIPIF--
+<?php
+if (!extension_loaded('pdo') || !extension_loaded('pdo_pgsql')) die('skip not loaded');
+require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+require dirname(__FILE__) . '/config.inc';
+PDOTest::skip();
+?>
+--FILE--
+<?php
+require dirname(__FILE__) . '/../../../ext/pdo/tests/pdo_test.inc';
+require dirname(__FILE__) . '/config.inc';
+$db = PDOTest::test_factory(dirname(__FILE__) . '/common.phpt');
+
+$stmt = $db->prepare('SELECT * FROM child');
+var_dump($stmt->bindValue(':test', 1, PDO::PARAM_INT));
+
+echo "Done\n";
+?>
+--EXPECT--
+bool(false)
+Done
diff --git a/ext/pdo_sqlite/config.m4 b/ext/pdo_sqlite/config.m4
index cd9db22b4..0d9f59d7f 100644
--- a/ext/pdo_sqlite/config.m4
+++ b/ext/pdo_sqlite/config.m4
@@ -1,4 +1,4 @@
-dnl $Id: config.m4,v 1.26.2.8 2005/12/31 00:56:06 sniper Exp $
+dnl $Id: config.m4,v 1.26.2.9 2006/05/03 11:12:54 pajoye Exp $
dnl config.m4 for extension pdo_sqlite
dnl vim:et:sw=2:ts=2:
@@ -7,6 +7,9 @@ if test "$PHP_PDO" != "no"; then
PHP_ARG_WITH(pdo-sqlite, for sqlite 3 driver for PDO,
[ --without-pdo-sqlite PDO: sqlite 3 support],yes)
+PHP_ARG_WITH(pdo-sqlite, for sqlite 3 support for PDO,
+[ --with-pdo-sqlite[=DIR] PDO: sqlite support. DIR is the sqlite base directory, the bundled sqlite is used by default])
+
if test "$PHP_PDO_SQLITE" != "no"; then
ifdef([PHP_CHECK_PDO_INCLUDES],
diff --git a/ext/pdo_sqlite/package2.xml b/ext/pdo_sqlite/package2.xml
index 25d6e95dd..7ccec31cb 100644
--- a/ext/pdo_sqlite/package2.xml
+++ b/ext/pdo_sqlite/package2.xml
@@ -19,7 +19,7 @@ concurrency.
<email>wez@php.net</email>
<active>yes</active>
</lead>
- <date>2005-12-04</date>
+ <date>2006-05-01</date>
<version>
<release>1.0.1</release>
<api>1.0.1</api>
@@ -30,8 +30,8 @@ concurrency.
</stability>
<license uri="http://www.php.net/license">PHP</license>
<notes>
-- Upgraded to new package2 format; no code changes in this release
-
+- Updated libsqlite in ext/pdo_sqlite to 3.2.8. (Ilia)
+- Upgraded to new package2 format
- Fixed PECL Bug #5633; build issues
- Added sqliteCreateFunction() and sqliteCreateAggregate()
- Fixed PECL Bug #3452; problem when first row of a result set contains a NULL value.
@@ -176,7 +176,7 @@ http://pecl4win.php.net/ext.php/php_pdo_sqlite.dll
<package>
<name>pdo</name>
<channel>pecl.php.net</channel>
- <min>1.0</min>
+ <min>1.0.3</min>
<providesextension>PDO</providesextension>
</package>
</required>
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 92a20ad1c..df233118e 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: pgsql.c,v 1.331.2.8 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: pgsql.c,v 1.331.2.13 2006/04/10 19:51:55 helly Exp $ */
#include <stdlib.h>
@@ -257,7 +257,7 @@ ZEND_GET_MODULE(pgsql)
static int le_link, le_plink, le_result, le_lofp, le_string;
-ZEND_DECLARE_MODULE_GLOBALS(pgsql);
+ZEND_DECLARE_MODULE_GLOBALS(pgsql)
/* {{{ _php_pgsql_trim_message */
static char * _php_pgsql_trim_message(const char *message, int *len)
@@ -1257,7 +1257,7 @@ PHP_FUNCTION(pg_query_params)
}
otype = (*tmp)->type;
- convert_to_string(*tmp);
+ convert_to_string_ex(tmp);
if (Z_TYPE_PP(tmp) != IS_STRING) {
php_error_docref(NULL TSRMLS_CC, E_WARNING,"Error converting parameter");
_php_pgsql_free_params(params, num_params);
@@ -2360,7 +2360,7 @@ PHP_FUNCTION(pg_trace)
RETURN_FALSE;
}
- if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void**)fp, REPORT_ERRORS)) {
+ if (FAILURE == php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void**)&fp, REPORT_ERRORS)) {
php_stream_close(stream);
RETURN_FALSE;
}
@@ -4531,6 +4531,7 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
zend_hash_get_current_data_ex(Z_ARRVAL_P(values), (void **)&val, &pos) == SUCCESS;
zend_hash_move_forward_ex(Z_ARRVAL_P(values), &pos)) {
skip_field = 0;
+ new_val = NULL;
if ((key_type = zend_hash_get_current_key_ex(Z_ARRVAL_P(values), &field, &field_len, &num_idx, 0, &pos)) == HASH_KEY_NON_EXISTANT) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to get array key type");
@@ -4569,7 +4570,7 @@ PHP_PGSQL_API int php_pgsql_convert(PGconn *pg_link, const char *table_name, con
if (err) {
break; /* break out for() */
}
- MAKE_STD_ZVAL(new_val);
+ ALLOC_INIT_ZVAL(new_val);
switch(php_pgsql_get_data_type(Z_STRVAL_PP(type), Z_STRLEN_PP(type)))
{
case PG_BOOL:
diff --git a/ext/pgsql/tests/80_bug36625.phpt b/ext/pgsql/tests/80_bug36625.phpt
new file mode 100755
index 000000000..a95cea711
--- /dev/null
+++ b/ext/pgsql/tests/80_bug36625.phpt
@@ -0,0 +1,49 @@
+--TEST--
+Bug #36625 (pg_trace() does not work)
+--SKIPIF--
+<?php
+require_once('skipif.inc');
+?>
+--FILE--
+<?php
+
+require_once('config.inc');
+
+$dbh = @pg_connect($conn_str);
+if (!$dbh) {
+ die ('Could not connect to the server');
+}
+
+$tracefile = dirname(__FILE__) . '/trace.tmp';
+
+@unlink($tracefile);
+var_dump(file_exists($tracefile));
+
+pg_trace($tracefile, 'w', $dbh);
+$res = pg_query($dbh, 'select 1');
+var_dump($res);
+pg_close($dbh);
+
+$found = 0;
+function search_trace_file($line)
+{
+ if (strpos($line, '"select 1"') !== false || strpos($line, "'select 1'") !== false) {
+ $GLOBALS['found']++;
+ }
+}
+
+$trace = file($tracefile);
+array_walk($trace, 'search_trace_file');
+var_dump($found > 0);
+var_dump(file_exists($tracefile));
+
+?>
+===DONE===
+--CLEAN--
+<?php unlink($tracefile); ?>
+--EXPECTF--
+bool(false)
+resource(%d) of type (pgsql result)
+bool(true)
+bool(true)
+===DONE===
diff --git a/ext/posix/CREDITS b/ext/posix/CREDITS
index c769635d9..34b1a4720 100644
--- a/ext/posix/CREDITS
+++ b/ext/posix/CREDITS
@@ -1,2 +1,2 @@
Posix
-Kristian Köhntopp
+Kristian Koehntopp
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 7ed925593..1eedbb6e3 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_reflection.c,v 1.164.2.17 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: php_reflection.c,v 1.164.2.33 2006/03/29 14:28:42 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -240,9 +240,7 @@ static void reflection_objects_clone(void *object, void **object_clone TSRMLS_DC
reflection_object **intern_clone = (reflection_object **) object_clone;
*intern_clone = emalloc(sizeof(reflection_object));
- (*intern_clone)->zo.ce = intern->zo.ce;
- (*intern_clone)->zo.guards = NULL;
- ALLOC_HASHTABLE((*intern_clone)->zo.properties);
+ zend_object_std_init(&(*intern_clone)->zo, intern->zo.ce TSRMLS_CC);
(*intern_clone)->ptr = intern->ptr;
(*intern_clone)->free_ptr = intern->free_ptr;
(*intern_clone)->obj = intern->obj;
@@ -264,8 +262,7 @@ static zend_object_value reflection_objects_new(zend_class_entry *class_type TSR
intern->obj = NULL;
intern->free_ptr = 0;
- ALLOC_HASHTABLE(intern->zo.properties);
- zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, NULL, reflection_free_objects_storage, reflection_objects_clone TSRMLS_CC);
retval.handlers = &reflection_object_handlers;
@@ -352,6 +349,7 @@ static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *in
/* Constants */
if (&ce->constants_table) {
+ zend_hash_apply_with_argument(&ce->constants_table, (apply_func_arg_t) zval_update_constant, (void*)1 TSRMLS_CC);
string_printf(str, "\n");
count = zend_hash_num_elements(&ce->constants_table);
string_printf(str, "%s - Constants [%d] {\n", indent, count);
@@ -553,7 +551,7 @@ static zend_op* _get_recv_op(zend_op_array *op_array, zend_uint offset)
++offset;
while (op < end) {
if ((op->opcode == ZEND_RECV || op->opcode == ZEND_RECV_INIT) &&
- op->op1.u.constant.value.lval == offset) {
+ op->op1.u.constant.value.lval == (long)offset) {
return op;
}
++op;
@@ -670,6 +668,9 @@ static void _function_string(string *str, zend_function *fptr, zend_class_entry
string_printf(str, fptr->common.scope ? "%sMethod [ " : "%sFunction [ ", indent);
string_printf(str, (fptr->type == ZEND_USER_FUNCTION) ? "<user" : "<internal");
+ if (fptr->common.fn_flags & ZEND_ACC_DEPRECATED) {
+ string_printf(str, ", deprecated");
+ }
#if MBO_0
if (fptr->type == ZEND_INTERNAL_FUNCTION && ((zend_internal_function*)fptr)->module) {
string_printf(str, ":%s", ((zend_internal_function*)fptr)->module->name);
@@ -867,6 +868,41 @@ static void _extension_string(string *str, zend_module_entry *module, char *inde
module->module_number, module->name,
(module->version == NO_VERSION_YET) ? "<no_version>" : module->version);
+ if (module->deps) {
+ zend_module_dep* dep = module->deps;
+
+ string_printf(str, "\n - Dependencies {\n");
+
+ while(dep->name) {
+ string_printf(str, "%s Dependency [ %s (", indent, dep->name);
+
+ switch(dep->type) {
+ case MODULE_DEP_REQUIRED:
+ string_write(str, "Required", sizeof("Required") - 1);
+ break;
+ case MODULE_DEP_CONFLICTS:
+ string_write(str, "Conflicts", sizeof("Conflicts") - 1);
+ break;
+ case MODULE_DEP_OPTIONAL:
+ string_write(str, "Optional", sizeof("Optional") - 1);
+ break;
+ default:
+ string_write(str, "Error", sizeof("Error") - 1); /* shouldn't happen */
+ break;
+ }
+
+ if (dep->rel) {
+ string_printf(str, " %s", dep->rel);
+ }
+ if (dep->version) {
+ string_printf(str, " %s", dep->version);
+ }
+ string_write(str, ") ]\n", sizeof(") ]\n") - 1);
+ dep++;
+ }
+ string_printf(str, "%s }\n", indent);
+ }
+
{
string str_ini;
string_init(&str_ini);
@@ -1070,14 +1106,10 @@ static void reflection_property_factory(zend_class_entry *ce, zend_property_info
if (!(prop->flags & ZEND_ACC_PRIVATE)) {
/* we have to seach the class hierarchy for this (implicit) public or protected property */
- zend_class_entry *tmp_ce = ce->parent;
+ zend_class_entry *tmp_ce = ce;
zend_property_info *tmp_info;
- while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, prop_name, strlen(prop_name) + 1, (void **) &tmp_info) == SUCCESS) {
- if (tmp_info->flags & ZEND_ACC_PRIVATE) {
- /* private in super class => NOT the same property */
- break;
- }
+ while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, prop_name, strlen(prop_name) + 1, (void **) &tmp_info) != SUCCESS) {
ce = tmp_ce;
prop = tmp_info;
tmp_ce = tmp_ce->parent;
@@ -1284,7 +1316,7 @@ ZEND_METHOD(reflection, getModifierNames)
}
/* }}} */
-/* {{{ proto public static mixed ReflectionFunction::export(string name [, bool return]) throws ReflectionException
+/* {{{ proto public static mixed ReflectionFunction::export(string name [, bool return])
Exports a reflection object. Returns the output if TRUE is specified for return, printing it otherwise. */
ZEND_METHOD(reflection_function, export)
{
@@ -1292,7 +1324,7 @@ ZEND_METHOD(reflection_function, export)
}
/* }}} */
-/* {{{ proto public ReflectionFunction::__construct(string name)
+/* {{{ proto public void ReflectionFunction::__construct(string name)
Constructor. Throws an Exception in case the given function does not exist */
ZEND_METHOD(reflection_function, __construct)
{
@@ -1711,7 +1743,7 @@ ZEND_METHOD(reflection_parameter, export)
}
/* }}} */
-/* {{{ proto public ReflectionParameter::__construct(mixed function, mixed parameter)
+/* {{{ proto public void ReflectionParameter::__construct(mixed function, mixed parameter)
Constructor. Throws an Exception in case the given method does not exist */
ZEND_METHOD(reflection_parameter, __construct)
{
@@ -1752,6 +1784,7 @@ ZEND_METHOD(reflection_parameter, __construct)
}
efree(lcname);
}
+ ce = fptr->common.scope;
break;
case IS_ARRAY: {
@@ -1866,9 +1899,10 @@ ZEND_METHOD(reflection_parameter, getName)
}
/* }}} */
-/* {{{ proto public ReflectionClass ReflectionParameter::getClass()
- Returns this parameters's class hint or NULL if there is none */
-ZEND_METHOD(reflection_parameter, getClass)
+#if MBO_0
+/* {{{ proto public ReflectionFunction ReflectionParameter::getDeclaringFunction()
+ Returns the ReflectionFunction for the function of this parameter */
+ZEND_METHOD(reflection_parameter, getDeclaringFunction)
{
reflection_object *intern;
parameter_reference *param;
@@ -1876,12 +1910,44 @@ ZEND_METHOD(reflection_parameter, getClass)
METHOD_NOTSTATIC_NUMPARAMS(reflection_parameter_ptr, 0);
GET_REFLECTION_OBJECT_PTR(param);
- if (!param->arg_info->class_name) {
- RETURN_NULL();
+ if (!param->fptr->common.scope) {
+ reflection_function_factory(param->fptr, return_value TSRMLS_CC);
} else {
- zend_class_entry **pce;
+ reflection_method_factory(param->fptr->common.scope, param->fptr, return_value TSRMLS_CC);
+ }
+}
+/* }}} */
+#endif
+
+/* {{{ proto public ReflectionClass|NULL ReflectionParameter::getDeclaringClass()
+ Returns in which class this parameter is defined (not the typehint of the parameter) */
+ZEND_METHOD(reflection_parameter, getDeclaringClass)
+{
+ reflection_object *intern;
+ parameter_reference *param;
+
+ METHOD_NOTSTATIC_NUMPARAMS(reflection_parameter_ptr, 0);
+ GET_REFLECTION_OBJECT_PTR(param);
+
+ if (param->fptr->common.scope) {
+ zend_reflection_class_factory(param->fptr->common.scope, return_value TSRMLS_CC);
+ }
+}
+/* }}} */
+
+/* {{{ proto public ReflectionClass|NULL ReflectionParameter::getClass()
+ Returns this parameters's class hint or NULL if there is none */
+ZEND_METHOD(reflection_parameter, getClass)
+{
+ reflection_object *intern;
+ parameter_reference *param;
+ zend_class_entry **pce;
+
+ METHOD_NOTSTATIC_NUMPARAMS(reflection_parameter_ptr, 0);
+ GET_REFLECTION_OBJECT_PTR(param);
- if (zend_lookup_class_ex(param->arg_info->class_name, param->arg_info->class_name_len, 1, &pce TSRMLS_CC) == FAILURE) {
+ if (param->arg_info->class_name) {
+ if (zend_lookup_class(param->arg_info->class_name, param->arg_info->class_name_len, &pce TSRMLS_CC) == FAILURE) {
zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC,
"Class %s does not exist", param->arg_info->class_name);
return;
@@ -1933,6 +1999,22 @@ ZEND_METHOD(reflection_parameter, isPassedByReference)
}
/* }}} */
+#if MBO_0
+/* {{{ proto public bool ReflectionParameter::getPosition()
+ Returns whether this parameter is an optional parameter */
+ZEND_METHOD(reflection_parameter, getPosition)
+{
+ reflection_object *intern;
+ parameter_reference *param;
+
+ METHOD_NOTSTATIC_NUMPARAMS(reflection_parameter_ptr, 0);
+ GET_REFLECTION_OBJECT_PTR(param);
+
+ RETVAL_LONG(param->offset);
+}
+/* }}} */
+#endif
+
/* {{{ proto public bool ReflectionParameter::isOptional()
Returns whether this parameter is an optional parameter */
ZEND_METHOD(reflection_parameter, isOptional)
@@ -2015,7 +2097,7 @@ ZEND_METHOD(reflection_method, export)
}
/* }}} */
-/* {{{ proto public ReflectionMethod::__construct(mixed class_or_method [, string name])
+/* {{{ proto public void ReflectionMethod::__construct(mixed class_or_method [, string name])
Constructor. Throws an Exception in case the given method does not exist */
ZEND_METHOD(reflection_method, __construct)
{
@@ -2369,6 +2451,14 @@ ZEND_METHOD(reflection_method, isStatic)
}
/* }}} */
+/* {{{ proto public bool ReflectionFunction::isDeprecated()
+ Returns whether this function is deprecated */
+ZEND_METHOD(reflection_function, isDeprecated)
+{
+ _function_check_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, ZEND_ACC_DEPRECATED);
+}
+/* }}} */
+
/* {{{ proto public bool ReflectionMethod::isConstructor()
Returns whether this method is the constructor */
ZEND_METHOD(reflection_method, isConstructor)
@@ -2507,7 +2597,7 @@ static void reflection_class_object_ctor(INTERNAL_FUNCTION_PARAMETERS, int is_ob
}
/* }}} */
-/* {{{ proto public ReflectionClass::__construct(mixed argument) throws ReflectionException
+/* {{{ proto public void ReflectionClass::__construct(mixed argument) throws ReflectionException
Constructor. Takes a string or an instance as an argument */
ZEND_METHOD(reflection_class, __construct)
{
@@ -3179,8 +3269,6 @@ ZEND_METHOD(reflection_class, newInstance)
METHOD_NOTSTATIC(reflection_class_ptr);
GET_REFLECTION_OBJECT_PTR(ce);
- object_init_ex(return_value, ce);
-
/* Run the constructor if there is one */
if (ce->constructor) {
zval ***params;
@@ -3198,6 +3286,77 @@ ZEND_METHOD(reflection_class, newInstance)
RETURN_FALSE;
}
+ object_init_ex(return_value, ce);
+
+ fci.size = sizeof(fci);
+ fci.function_table = EG(function_table);
+ fci.function_name = NULL;
+ fci.symbol_table = NULL;
+ fci.object_pp = &return_value;
+ fci.retval_ptr_ptr = &retval_ptr;
+ fci.param_count = argc;
+ fci.params = params;
+ fci.no_separation = 1;
+
+ fcc.initialized = 1;
+ fcc.function_handler = ce->constructor;
+ fcc.calling_scope = EG(scope);
+ fcc.object_pp = &return_value;
+
+ if (zend_call_function(&fci, &fcc TSRMLS_CC) == FAILURE) {
+ efree(params);
+ zval_ptr_dtor(&retval_ptr);
+ zend_error(E_WARNING, "Invocation of %s's constructor failed", ce->name);
+ RETURN_NULL();
+ }
+ if (retval_ptr) {
+ zval_ptr_dtor(&retval_ptr);
+ }
+ efree(params);
+ } else if (!ZEND_NUM_ARGS()) {
+ object_init_ex(return_value, ce);
+ } else {
+ zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Class %s does not have a constructor, so you cannot pass any constructor arguments", ce->name);
+ }
+}
+/* }}} */
+
+/* {{{ proto public stdclass ReflectionClass::newInstanceArgs(array args)
+ Returns an instance of this class */
+ZEND_METHOD(reflection_class, newInstanceArgs)
+{
+ zval *retval_ptr;
+ reflection_object *intern;
+ zend_class_entry *ce;
+ int argc;
+ HashTable *args;
+
+
+ METHOD_NOTSTATIC(reflection_class_ptr);
+ GET_REFLECTION_OBJECT_PTR(ce);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|h", &args) == FAILURE) {
+ return;
+ }
+ argc = args->nNumOfElements;
+
+ /* Run the constructor if there is one */
+ if (ce->constructor) {
+ zval ***params;
+ zend_fcall_info fci;
+ zend_fcall_info_cache fcc;
+
+ if (!(ce->constructor->common.fn_flags & ZEND_ACC_PUBLIC)) {
+ zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Access to non-public constructor of class %s", ce->name);
+ return;
+ }
+
+ params = safe_emalloc(sizeof(zval **), argc, 0);
+ zend_hash_apply_with_argument(args, (apply_func_arg_t)_zval_array_to_c_array, &params TSRMLS_CC);
+ params -= argc;
+
+ object_init_ex(return_value, ce);
+
fci.size = sizeof(fci);
fci.function_table = EG(function_table);
fci.function_name = NULL;
@@ -3223,6 +3382,10 @@ ZEND_METHOD(reflection_class, newInstance)
zval_ptr_dtor(&retval_ptr);
}
efree(params);
+ } else if (!ZEND_NUM_ARGS()) {
+ object_init_ex(return_value, ce);
+ } else {
+ zend_throw_exception_ex(reflection_exception_ptr, 0 TSRMLS_CC, "Class %s does not have a constructor, so you cannot pass any constructor arguments", ce->name);
}
}
/* }}} */
@@ -3247,7 +3410,7 @@ ZEND_METHOD(reflection_class, getInterfaces)
zval *interface;
ALLOC_ZVAL(interface);
zend_reflection_class_factory(ce->interfaces[i], interface TSRMLS_CC);
- add_assoc_zval_ex(return_value, ce->interfaces[i]->name, ce->interfaces[i]->name_length, interface);
+ add_assoc_zval_ex(return_value, ce->interfaces[i]->name, ce->interfaces[i]->name_length + 1, interface);
}
}
}
@@ -3423,7 +3586,7 @@ ZEND_METHOD(reflection_object, export)
}
/* }}} */
-/* {{{ proto public ReflectionObject::__construct(mixed argument) throws ReflectionException
+/* {{{ proto public void ReflectionObject::__construct(mixed argument) throws ReflectionException
Constructor. Takes an instance as an argument */
ZEND_METHOD(reflection_object, __construct)
{
@@ -3439,7 +3602,7 @@ ZEND_METHOD(reflection_property, export)
}
/* }}} */
-/* {{{ proto public ReflectionProperty::__construct(mixed class, string name)
+/* {{{ proto public void ReflectionProperty::__construct(mixed class, string name)
Constructor. Throws an Exception in case the given property does not exist */
ZEND_METHOD(reflection_property, __construct)
{
@@ -3491,14 +3654,10 @@ ZEND_METHOD(reflection_property, __construct)
if (!(property_info->flags & ZEND_ACC_PRIVATE)) {
/* we have to seach the class hierarchy for this (implicit) public or protected property */
- zend_class_entry *tmp_ce = ce->parent;
+ zend_class_entry *tmp_ce = ce;
zend_property_info *tmp_info;
- while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, name_str, name_len + 1, (void **) &tmp_info) == SUCCESS) {
- if (tmp_info->flags & ZEND_ACC_PRIVATE) {
- /* private in super class => NOT the same property */
- break;
- }
+ while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, name_str, name_len + 1, (void **) &tmp_info) != SUCCESS) {
ce = tmp_ce;
property_info = tmp_info;
tmp_ce = tmp_ce->parent;
@@ -3724,11 +3883,19 @@ ZEND_METHOD(reflection_property, getDeclaringClass)
{
reflection_object *intern;
property_reference *ref;
+ zend_class_entry *tmp_ce, *ce;
+ zend_property_info *tmp_info;
METHOD_NOTSTATIC_NUMPARAMS(reflection_property_ptr, 0);
GET_REFLECTION_OBJECT_PTR(ref);
- zend_reflection_class_factory(ref->ce, return_value TSRMLS_CC);
+ ce = tmp_ce = ref->ce;
+ while (tmp_ce && zend_hash_find(&tmp_ce->properties_info, ref->prop->name, ref->prop->name_length + 1, (void **) &tmp_info) == SUCCESS) {
+ ce = tmp_ce;
+ tmp_ce = tmp_ce->parent;
+ }
+
+ zend_reflection_class_factory(ce, return_value TSRMLS_CC);
}
/* {{{ proto public string ReflectionProperty::getDocComment()
@@ -3754,7 +3921,7 @@ ZEND_METHOD(reflection_extension, export)
}
/* }}} */
-/* {{{ proto public ReflectionExtension::__construct(string name)
+/* {{{ proto public void ReflectionExtension::__construct(string name)
Constructor. Throws an Exception in case the given extension does not exist */
ZEND_METHOD(reflection_extension, __construct)
{
@@ -3983,6 +4150,58 @@ ZEND_METHOD(reflection_extension, getClassNames)
}
/* }}} */
+/* {{{ proto public array ReflectionExtension::getDependencies()
+ Returns an array containing all names of all extensions this extension depends on */
+ZEND_METHOD(reflection_extension, getDependencies)
+{
+ reflection_object *intern;
+ zend_module_entry *module;
+ zend_module_dep *dep;
+
+ METHOD_NOTSTATIC_NUMPARAMS(reflection_extension_ptr, 0);
+ GET_REFLECTION_OBJECT_PTR(module);
+
+ array_init(return_value);
+
+ dep = module->deps;
+
+ if (!dep)
+ {
+ return;
+ }
+
+ while(dep->name) {
+ char *relation;
+ char *rel_type;
+ int len;
+
+ switch(dep->type) {
+ case MODULE_DEP_REQUIRED:
+ rel_type = "Required";
+ break;
+ case MODULE_DEP_CONFLICTS:
+ rel_type = "Conflicts";
+ break;
+ case MODULE_DEP_OPTIONAL:
+ rel_type = "Optional";
+ break;
+ default:
+ rel_type = "Error"; /* shouldn't happen */
+ break;
+ }
+
+ len = spprintf(&relation, 0, "%s%s%s%s%s",
+ rel_type,
+ dep->rel ? " " : "",
+ dep->rel ? dep->rel : "",
+ dep->version ? " " : "",
+ dep->version ? dep->version : "");
+ add_assoc_stringl(return_value, dep->name, relation, len, 0);
+ dep++;
+ }
+}
+/* }}} */
+
/* {{{ method tables */
static zend_function_entry reflection_exception_functions[] = {
{NULL, NULL, NULL}
@@ -4023,6 +4242,7 @@ static zend_function_entry reflection_function_functions[] = {
ZEND_ME(reflection_function, getExtension, NULL, 0)
ZEND_ME(reflection_function, getExtensionName, NULL, 0)
#endif
+ ZEND_ME(reflection_function, isDeprecated, NULL, 0)
{NULL, NULL, NULL}
};
@@ -4076,6 +4296,7 @@ static zend_function_entry reflection_class_functions[] = {
ZEND_ME(reflection_class, getModifiers, NULL, 0)
ZEND_ME(reflection_class, isInstance, NULL, 0)
ZEND_ME(reflection_class, newInstance, NULL, 0)
+ ZEND_ME(reflection_class, newInstanceArgs, NULL, 0)
ZEND_ME(reflection_class, getParentClass, NULL, 0)
ZEND_ME(reflection_class, isSubclassOf, NULL, 0)
ZEND_ME(reflection_class, getStaticProperties, NULL, 0)
@@ -4121,9 +4342,16 @@ static zend_function_entry reflection_parameter_functions[] = {
ZEND_ME(reflection_parameter, __toString, NULL, 0)
ZEND_ME(reflection_parameter, getName, NULL, 0)
ZEND_ME(reflection_parameter, isPassedByReference, NULL, 0)
+#if MBO_0
+ ZEND_ME(reflection_parameter, getDeclaringFunction, NULL, 0)
+#endif
+ ZEND_ME(reflection_parameter, getDeclaringClass, NULL, 0)
ZEND_ME(reflection_parameter, getClass, NULL, 0)
ZEND_ME(reflection_parameter, isArray, NULL, 0)
ZEND_ME(reflection_parameter, allowsNull, NULL, 0)
+#if MBO_0
+ ZEND_ME(reflection_parameter, getPosition, NULL, 0)
+#endif
ZEND_ME(reflection_parameter, isOptional, NULL, 0)
ZEND_ME(reflection_parameter, isDefaultValueAvailable, NULL, 0)
ZEND_ME(reflection_parameter, getDefaultValue, NULL, 0)
@@ -4142,6 +4370,7 @@ static zend_function_entry reflection_extension_functions[] = {
ZEND_ME(reflection_extension, getINIEntries, NULL, 0)
ZEND_ME(reflection_extension, getClasses, NULL, 0)
ZEND_ME(reflection_extension, getClassNames, NULL, 0)
+ ZEND_ME(reflection_extension, getDependencies, NULL, 0)
{NULL, NULL, NULL}
};
/* }}} */
@@ -4195,6 +4424,8 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
reflection_register_implement(reflection_function_ptr, reflector_ptr TSRMLS_CC);
zend_declare_property_string(reflection_function_ptr, "name", sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(function, "IS_DEPRECATED", ZEND_ACC_DEPRECATED);
+
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionParameter", reflection_parameter_functions);
_reflection_entry.create_object = reflection_objects_new;
reflection_parameter_ptr = zend_register_internal_class(&_reflection_entry TSRMLS_CC);
@@ -4207,12 +4438,12 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
zend_declare_property_string(reflection_method_ptr, "name", sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
zend_declare_property_string(reflection_method_ptr, "class", sizeof("class")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "STATIC", ZEND_ACC_STATIC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PUBLIC", ZEND_ACC_PUBLIC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PROTECTED", ZEND_ACC_PROTECTED);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "PRIVATE", ZEND_ACC_PRIVATE);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "ABSTRACT", ZEND_ACC_ABSTRACT);
- REGISTER_REFLECTION_CLASS_CONST_LONG(method, "FINAL", ZEND_ACC_FINAL);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_STATIC", ZEND_ACC_STATIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PUBLIC", ZEND_ACC_PUBLIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PROTECTED", ZEND_ACC_PROTECTED);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_PRIVATE", ZEND_ACC_PRIVATE);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_ABSTRACT", ZEND_ACC_ABSTRACT);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(method, "IS_FINAL", ZEND_ACC_FINAL);
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionClass", reflection_class_functions);
_reflection_entry.create_object = reflection_objects_new;
@@ -4220,9 +4451,9 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
reflection_register_implement(reflection_class_ptr, reflector_ptr TSRMLS_CC);
zend_declare_property_string(reflection_class_ptr, "name", sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IMPLICIT_ABSTRACT", ZEND_ACC_IMPLICIT_ABSTRACT_CLASS);
- REGISTER_REFLECTION_CLASS_CONST_LONG(class, "EXPLICIT_ABSTRACT", ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
- REGISTER_REFLECTION_CLASS_CONST_LONG(class, "FINAL", ZEND_ACC_FINAL_CLASS);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_IMPLICIT_ABSTRACT", ZEND_ACC_IMPLICIT_ABSTRACT_CLASS);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_EXPLICIT_ABSTRACT", ZEND_ACC_EXPLICIT_ABSTRACT_CLASS);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(class, "IS_FINAL", ZEND_ACC_FINAL_CLASS);
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionObject", reflection_object_functions);
_reflection_entry.create_object = reflection_objects_new;
@@ -4235,10 +4466,10 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
zend_declare_property_string(reflection_property_ptr, "name", sizeof("name")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
zend_declare_property_string(reflection_property_ptr, "class", sizeof("class")-1, "", ZEND_ACC_PUBLIC TSRMLS_CC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(property, "STATIC", ZEND_ACC_STATIC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PUBLIC", ZEND_ACC_PUBLIC);
- REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PROTECTED", ZEND_ACC_PROTECTED);
- REGISTER_REFLECTION_CLASS_CONST_LONG(property, "PRIVATE", ZEND_ACC_PRIVATE);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_STATIC", ZEND_ACC_STATIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PUBLIC", ZEND_ACC_PUBLIC);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PROTECTED", ZEND_ACC_PROTECTED);
+ REGISTER_REFLECTION_CLASS_CONST_LONG(property, "IS_PRIVATE", ZEND_ACC_PRIVATE);
INIT_CLASS_ENTRY(_reflection_entry, "ReflectionExtension", reflection_extension_functions);
_reflection_entry.create_object = reflection_objects_new;
@@ -4254,7 +4485,7 @@ PHP_MINFO_FUNCTION(reflection) /* {{{ */
php_info_print_table_start();
php_info_print_table_header(2, "Reflection", "enabled");
- php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.164.2.17 2006/01/01 12:50:12 sniper Exp $");
+ php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.164.2.33 2006/03/29 14:28:42 tony2001 Exp $");
php_info_print_table_end();
} /* }}} */
diff --git a/ext/reflection/tests/001.phpt b/ext/reflection/tests/001.phpt
index 6a9d31a30..55458885c 100755
--- a/ext/reflection/tests/001.phpt
+++ b/ext/reflection/tests/001.phpt
@@ -1,5 +1,7 @@
--TEST--
Reflection inheritance
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/002.phpt b/ext/reflection/tests/002.phpt
index bef4c8166..9b233d372 100755
--- a/ext/reflection/tests/002.phpt
+++ b/ext/reflection/tests/002.phpt
@@ -1,5 +1,7 @@
--TEST--
Reflection properties are read only
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/003.phpt b/ext/reflection/tests/003.phpt
index 660389255..af8d82d57 100755
--- a/ext/reflection/tests/003.phpt
+++ b/ext/reflection/tests/003.phpt
@@ -1,5 +1,7 @@
--TEST--
-invoke() with base class method
+ReflectionMethod::invoke() with base class method
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/004.phpt b/ext/reflection/tests/004.phpt
index f8a448e6c..912d52654 100755
--- a/ext/reflection/tests/004.phpt
+++ b/ext/reflection/tests/004.phpt
@@ -1,5 +1,7 @@
--TEST--
-invoke() with non object or null value
+ReflectionMethod::invoke() with non object or null value
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/005.phpt b/ext/reflection/tests/005.phpt
index f337e44ae..bedc7d032 100755
--- a/ext/reflection/tests/005.phpt
+++ b/ext/reflection/tests/005.phpt
@@ -1,5 +1,7 @@
--TEST--
ReflectionMethod::getDocComment() uses wrong comment block
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/006.phpt b/ext/reflection/tests/006.phpt
index 89c438765..9e97ae465 100755
--- a/ext/reflection/tests/006.phpt
+++ b/ext/reflection/tests/006.phpt
@@ -1,5 +1,7 @@
--TEST--
ReflectionClass::[gs]etStaticPropertyValue
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/007.phpt b/ext/reflection/tests/007.phpt
new file mode 100755
index 000000000..83764e551
--- /dev/null
+++ b/ext/reflection/tests/007.phpt
@@ -0,0 +1,162 @@
+--TEST--
+ReflectionClass::newInstance[Args]
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+
+function test($class)
+{
+ echo "====>$class\n";
+ try
+ {
+ $ref = new ReflectionClass($class);
+ }
+ catch (ReflectionException $e)
+ {
+ var_dump($e->getMessage());
+ return; // only here
+ }
+
+ echo "====>newInstance()\n";
+ try
+ {
+ var_dump($ref->newInstance());
+ }
+ catch (ReflectionException $e)
+ {
+ var_dump($e->getMessage());
+ }
+
+ echo "====>newInstance(25)\n";
+ try
+ {
+ var_dump($ref->newInstance(25));
+ }
+ catch (ReflectionException $e)
+ {
+ var_dump($e->getMessage());
+ }
+
+ echo "====>newInstance(25, 42)\n";
+ try
+ {
+ var_dump($ref->newInstance(25, 42));
+ }
+ catch (ReflectionException $e)
+ {
+ var_dump($e->getMessage());
+ }
+
+ echo "\n";
+}
+
+function __autoload($class)
+{
+ echo __FUNCTION__ . "($class)\n";
+}
+
+test('Class_does_not_exist');
+
+Class NoCtor
+{
+}
+
+test('NoCtor');
+
+Class WithCtor
+{
+ function __construct()
+ {
+ echo __METHOD__ . "()\n";
+ var_dump(func_get_args());
+ }
+}
+
+test('WithCtor');
+
+Class WithCtorWithArgs
+{
+ function __construct($arg)
+ {
+ echo __METHOD__ . "($arg)\n";
+ var_dump(func_get_args());
+ }
+}
+
+test('WithCtorWithArgs');
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+
+====>Class_does_not_exist
+__autoload(Class_does_not_exist)
+string(41) "Class Class_does_not_exist does not exist"
+====>NoCtor
+====>newInstance()
+object(NoCtor)#%d (0) {
+}
+====>newInstance(25)
+string(86) "Class NoCtor does not have a constructor, so you cannot pass any constructor arguments"
+====>newInstance(25, 42)
+string(86) "Class NoCtor does not have a constructor, so you cannot pass any constructor arguments"
+
+====>WithCtor
+====>newInstance()
+WithCtor::__construct()
+array(0) {
+}
+object(WithCtor)#%d (0) {
+}
+====>newInstance(25)
+WithCtor::__construct()
+array(1) {
+ [0]=>
+ int(25)
+}
+object(WithCtor)#%d (0) {
+}
+====>newInstance(25, 42)
+WithCtor::__construct()
+array(2) {
+ [0]=>
+ int(25)
+ [1]=>
+ int(42)
+}
+object(WithCtor)#%d (0) {
+}
+
+====>WithCtorWithArgs
+====>newInstance()
+
+Warning: Missing argument 1 for WithCtorWithArgs::__construct() in %s007.php on line %d
+
+Notice: Undefined variable: arg in %s007.php on line %d
+WithCtorWithArgs::__construct()
+array(0) {
+}
+object(WithCtorWithArgs)#%d (0) {
+}
+====>newInstance(25)
+WithCtorWithArgs::__construct(25)
+array(1) {
+ [0]=>
+ int(25)
+}
+object(WithCtorWithArgs)#%d (0) {
+}
+====>newInstance(25, 42)
+WithCtorWithArgs::__construct(25)
+array(2) {
+ [0]=>
+ int(25)
+ [1]=>
+ int(42)
+}
+object(WithCtorWithArgs)#%d (0) {
+}
+
+===DONE===
diff --git a/ext/reflection/tests/bug26640.phpt b/ext/reflection/tests/bug26640.phpt
index 2cbd0d23d..026e67561 100755
--- a/ext/reflection/tests/bug26640.phpt
+++ b/ext/reflection/tests/bug26640.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #26640 (__autoload() not invoked by Reflection classes)
+Reflection Bug #26640 (__autoload() not invoked by Reflection classes)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug26695.phpt b/ext/reflection/tests/bug26695.phpt
index 38e6607c3..c62395325 100755
--- a/ext/reflection/tests/bug26695.phpt
+++ b/ext/reflection/tests/bug26695.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #26695 (Reflection API does not recognize mixed-case class hints)
+Reflection Bug #26695 (Reflection API does not recognize mixed-case class hints)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug29268.phpt b/ext/reflection/tests/bug29268.phpt
index 335ee7337..9f17a5e11 100755
--- a/ext/reflection/tests/bug29268.phpt
+++ b/ext/reflection/tests/bug29268.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #29268 (__autoload() not called with reflectionProperty->getClass())
+Reflection Bug #29268 (__autoload() not called with reflectionProperty->getClass())
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
function __autoload($classname) {
@@ -14,8 +16,9 @@ class B{
$ref = new reflectionMethod('B','doit');
$parameters = $ref->getParameters();
-foreach($parameters as $parameter){
- $class = $parameter->getClass();
+foreach($parameters as $parameter)
+{
+ $class = $parameter->getClass();
echo $class->name."\n";
}
echo "ok\n";
diff --git a/ext/reflection/tests/bug29523.phpt b/ext/reflection/tests/bug29523.phpt
index 4eb357cc2..e952d0ffe 100755
--- a/ext/reflection/tests/bug29523.phpt
+++ b/ext/reflection/tests/bug29523.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #29523 (ReflectionParameter::isOptional() is incorrect)
+Reflection Bug #29523 (ReflectionParameter::isOptional() is incorrect)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug29828.phpt b/ext/reflection/tests/bug29828.phpt
index e1c9bbd36..f9052ac6b 100755
--- a/ext/reflection/tests/bug29828.phpt
+++ b/ext/reflection/tests/bug29828.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #29828 (Interfaces no longer work)
+Reflection Bug #29828 (Interfaces no longer work)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug29986.phpt b/ext/reflection/tests/bug29986.phpt
new file mode 100644
index 000000000..85bad6d6e
--- /dev/null
+++ b/ext/reflection/tests/bug29986.phpt
@@ -0,0 +1,41 @@
+--TEST--
+Reflection Bug #29986 (Class constants won't work with predefined constants when using ReflectionClass)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+class just_constants
+{
+ const BOOLEAN_CONSTANT = true;
+ const NULL_CONSTANT = null;
+ const STRING_CONSTANT = 'This is a string';
+ const INTEGER_CONSTANT = 1000;
+ const FLOAT_CONSTANT = 3.14159265;
+}
+
+Reflection::export(new ReflectionClass('just_constants'));
+?>
+--EXPECTF--
+Class [ <user> class just_constants ] {
+ @@ %s
+
+ - Constants [5] {
+ Constant [ boolean BOOLEAN_CONSTANT ] { }
+ Constant [ null NULL_CONSTANT ] { }
+ Constant [ string STRING_CONSTANT ] { }
+ Constant [ integer INTEGER_CONSTANT ] { }
+ Constant [ double FLOAT_CONSTANT ] { }
+ }
+
+ - Static properties [0] {
+ }
+
+ - Static methods [0] {
+ }
+
+ - Properties [0] {
+ }
+
+ - Methods [0] {
+ }
+}
diff --git a/ext/reflection/tests/bug30146.phpt b/ext/reflection/tests/bug30146.phpt
index 72c6d2e5f..d7dd2fc21 100755
--- a/ext/reflection/tests/bug30146.phpt
+++ b/ext/reflection/tests/bug30146.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #30146 (ReflectionProperty->getValue() requires instance for static property)
+Reflection Bug #30146 (ReflectionProperty->getValue() requires instance for static property)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
class test {
diff --git a/ext/reflection/tests/bug30148.phpt b/ext/reflection/tests/bug30148.phpt
index bc4415bfd..91bc31b65 100755
--- a/ext/reflection/tests/bug30148.phpt
+++ b/ext/reflection/tests/bug30148.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #30148 (ReflectionMethod->isConstructor() fails for inherited classes)
+Reflection Bug #30148 (ReflectionMethod->isConstructor() fails for inherited classes)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug30209.phpt b/ext/reflection/tests/bug30209.phpt
index 6705c6704..bab16ee35 100755
--- a/ext/reflection/tests/bug30209.phpt
+++ b/ext/reflection/tests/bug30209.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #30209 (ReflectionClass::getMethod() lowercases attribute)
+Reflection Bug #30209 (ReflectionClass::getMethod() lowercases attribute)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug30856.phpt b/ext/reflection/tests/bug30856.phpt
index 6c6d3171a..eaa6cf289 100755
--- a/ext/reflection/tests/bug30856.phpt
+++ b/ext/reflection/tests/bug30856.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #30856 (ReflectionClass::getStaticProperties segfaults)
+Reflection Bug #30856 (ReflectionClass::getStaticProperties segfaults)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
class bogus {
diff --git a/ext/reflection/tests/bug30961.phpt b/ext/reflection/tests/bug30961.phpt
index 67964343e..c765e7cc8 100755
--- a/ext/reflection/tests/bug30961.phpt
+++ b/ext/reflection/tests/bug30961.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #30961 (Wrong linenumber in ReflectionClass getStartLine())
+Reflection Bug #30961 (Wrong linenumber in ReflectionClass getStartLine())
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
class a
diff --git a/ext/reflection/tests/bug31651.phpt b/ext/reflection/tests/bug31651.phpt
index 60bee14e9..66a56c0f4 100755
--- a/ext/reflection/tests/bug31651.phpt
+++ b/ext/reflection/tests/bug31651.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.)
+Reflection Bug #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug32981.phpt b/ext/reflection/tests/bug32981.phpt
index 1f89ca682..53214d7aa 100755
--- a/ext/reflection/tests/bug32981.phpt
+++ b/ext/reflection/tests/bug32981.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault)
+Reflection Bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/bug33312.phpt b/ext/reflection/tests/bug33312.phpt
index 3784b56a6..2413a3dc3 100755
--- a/ext/reflection/tests/bug33312.phpt
+++ b/ext/reflection/tests/bug33312.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #33312 (ReflectionParameter methods do not work correctly)
+Reflection Bug #33312 (ReflectionParameter methods do not work correctly)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
class Foo {
diff --git a/ext/reflection/tests/bug33389.phpt b/ext/reflection/tests/bug33389.phpt
index 36f7079e2..d2a84e212 100755
--- a/ext/reflection/tests/bug33389.phpt
+++ b/ext/reflection/tests/bug33389.phpt
@@ -1,5 +1,7 @@
--TEST--
-Bug #33389 (double free() when exporting a ReflectionClass)
+Reflection Bug #33389 (double free() when exporting a ReflectionClass)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
define ('foobar', 1);
diff --git a/ext/reflection/tests/bug36308.phpt b/ext/reflection/tests/bug36308.phpt
new file mode 100755
index 000000000..52717b474
--- /dev/null
+++ b/ext/reflection/tests/bug36308.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Reflection Bug #36308 (ReflectionProperty::getDocComment() does not reflect extended class commentary)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+class Base {
+ /** Base comment block */
+ public $foo = 'bar';
+}
+
+class Extended extends Base {
+ /** Extended commentary */
+ public $foo = 'zim';
+}
+
+$reflect = new ReflectionClass('Extended');
+$props = $reflect->getProperties();
+echo $props[0]->getDocComment();
+?>
+--EXPECT--
+/** Extended commentary */ \ No newline at end of file
diff --git a/ext/reflection/tests/bug36337.phpt b/ext/reflection/tests/bug36337.phpt
new file mode 100644
index 000000000..8ec928fc8
--- /dev/null
+++ b/ext/reflection/tests/bug36337.phpt
@@ -0,0 +1,30 @@
+--TEST--
+Reflection Bug #36337 (ReflectionProperty fails to return correct visibility)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+
+abstract class enum {
+ protected $_values;
+
+ public function __construct() {
+ $property = new ReflectionProperty(get_class($this),'_values');
+ var_dump($property->isProtected());
+ }
+
+}
+
+final class myEnum extends enum {
+ public $_values = array(
+ 0 => 'No value',
+ );
+}
+
+$x = new myEnum();
+
+echo "Done\n";
+?>
+--EXPECT--
+bool(false)
+Done
diff --git a/ext/reflection/tests/bug36434.phpt b/ext/reflection/tests/bug36434.phpt
new file mode 100644
index 000000000..e305c657a
--- /dev/null
+++ b/ext/reflection/tests/bug36434.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Reflection Bug #36434 (Properties from parent class fail to indetify their true origin)
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+class ancester
+{
+public $ancester = 0;
+ function ancester()
+ {
+ return $this->ancester;
+ }
+}
+class foo extends ancester
+{
+public $bar = "1";
+ function foo()
+ {
+ return $this->bar;
+ }
+}
+
+$r = new ReflectionClass('foo');
+foreach ($r->GetProperties() as $p)
+{
+ echo $p->getName(). " ". $p->getDeclaringClass()->getName()."\n";
+}
+
+?>
+--EXPECT--
+bar foo
+ancester ancester
diff --git a/ext/reflection/tests/parameters_001.phpt b/ext/reflection/tests/parameters_001.phpt
index 0879756ea..036f11973 100755
--- a/ext/reflection/tests/parameters_001.phpt
+++ b/ext/reflection/tests/parameters_001.phpt
@@ -1,5 +1,7 @@
--TEST--
-Check for parameter being optional
+ReflectionParameter Check for parameter being optional
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/parameters_002.phpt b/ext/reflection/tests/parameters_002.phpt
new file mode 100755
index 000000000..6f911448c
--- /dev/null
+++ b/ext/reflection/tests/parameters_002.phpt
@@ -0,0 +1,209 @@
+--TEST--
+ReflectionParameter::getClass(), getDeclaringClass(), getDeclaringFunction()
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
+--FILE--
+<?php
+
+function test($nix, Array $ar, &$ref, stdClass $std, NonExistingClass $na, stdClass &$opt = NULL, $def = "FooBar")
+{
+}
+
+class test
+{
+ function test($nix, Array $ar, &$ref, stdClass $std, NonExistingClass $na, stdClass $opt = NULL, $def = "FooBar")
+ {
+ }
+}
+
+function check_params_decl_func($r, $f)
+{
+ $c = $r->$f();
+ echo $f . ': ' . ($c ? ($c instanceof ReflectionMethod ? $c->class . '::' : '') . $c->name : 'NULL') . "()\n";
+}
+
+function check_params_decl_class($r, $f)
+{
+ $c = $r->$f();
+ echo $f . ': ' . ($c ? $c->name : 'NULL') . "\n";
+}
+
+function check_params_func($r, $f)
+{
+ echo $f . ': ';
+ $v = $r->$f();
+ var_dump($v);
+}
+
+function check_params($r)
+{
+ echo "#####" . ($r instanceof ReflectionMethod ? $r->class . '::' : '') . $r->name . "()#####\n";
+ $i = 0;
+ foreach($r->getParameters() as $p)
+ {
+ echo "===" . $i . "===\n";
+ $i++;
+ check_params_func($p, 'getName');
+ check_params_func($p, 'isPassedByReference');
+ try
+ {
+ check_params_decl_class($p, 'getClass');
+ }
+ catch(ReflectionException $e)
+ {
+ echo $e->getMessage() . "\n";
+ }
+ check_params_decl_class($p, 'getDeclaringClass');
+// check_params_decl_func($p, 'getDeclaringFunction');
+ check_params_func($p, 'isArray');
+ check_params_func($p, 'allowsNull');
+ check_params_func($p, 'isOptional');
+ check_params_func($p, 'isDefaultValueAvailable');
+ if ($p->isOptional())
+ {
+ check_params_func($p, 'getDefaultValue');
+ }
+ }
+}
+
+check_params(new ReflectionFunction('test'));
+
+check_params(new ReflectionMethod('test::test'));
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+#####test()#####
+===0===
+getName: string(3) "nix"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===1===
+getName: string(2) "ar"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: NULL
+isArray: bool(true)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===2===
+getName: string(3) "ref"
+isPassedByReference: bool(true)
+getClass: NULL
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===3===
+getName: string(3) "std"
+isPassedByReference: bool(false)
+getClass: stdClass
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===4===
+getName: string(2) "na"
+isPassedByReference: bool(false)
+Class NonExistingClass does not exist
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===5===
+getName: string(3) "opt"
+isPassedByReference: bool(true)
+getClass: stdClass
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(true)
+isDefaultValueAvailable: bool(true)
+getDefaultValue: NULL
+===6===
+getName: string(3) "def"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: NULL
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(true)
+isDefaultValueAvailable: bool(true)
+getDefaultValue: string(6) "FooBar"
+#####test::test()#####
+===0===
+getName: string(3) "nix"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===1===
+getName: string(2) "ar"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: test
+isArray: bool(true)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===2===
+getName: string(3) "ref"
+isPassedByReference: bool(true)
+getClass: NULL
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===3===
+getName: string(3) "std"
+isPassedByReference: bool(false)
+getClass: stdClass
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===4===
+getName: string(2) "na"
+isPassedByReference: bool(false)
+Class NonExistingClass does not exist
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(false)
+isOptional: bool(false)
+isDefaultValueAvailable: bool(false)
+===5===
+getName: string(3) "opt"
+isPassedByReference: bool(false)
+getClass: stdClass
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(true)
+isDefaultValueAvailable: bool(true)
+getDefaultValue: NULL
+===6===
+getName: string(3) "def"
+isPassedByReference: bool(false)
+getClass: NULL
+getDeclaringClass: test
+isArray: bool(false)
+allowsNull: bool(true)
+isOptional: bool(true)
+isDefaultValueAvailable: bool(true)
+getDefaultValue: string(6) "FooBar"
+===DONE===
diff --git a/ext/reflection/tests/property_exists.phpt b/ext/reflection/tests/property_exists.phpt
index fa712dfdb..8fd45f2b8 100755
--- a/ext/reflection/tests/property_exists.phpt
+++ b/ext/reflection/tests/property_exists.phpt
@@ -1,5 +1,7 @@
--TEST--
-ZE2 property_exists()
+Reflection and property_exists()
+--SKIPIF--
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/reflection/tests/static_properties_002.phpt b/ext/reflection/tests/static_properties_002.phpt
index 29b84a8e6..051b9fb10 100755
--- a/ext/reflection/tests/static_properties_002.phpt
+++ b/ext/reflection/tests/static_properties_002.phpt
@@ -1,7 +1,7 @@
--TEST--
-ZE2 Inheriting static properties
+Reflection and inheriting static properties
--SKIPIF--
-<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
+<?php extension_loaded('reflection') or die('skip'); ?>
--FILE--
<?php
diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c
index 9943c50ad..89f072f53 100644
--- a/ext/session/mod_files.c
+++ b/ext/session/mod_files.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: mod_files.c,v 1.100.2.2 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: mod_files.c,v 1.100.2.3 2006/04/18 00:31:45 iliaa Exp $ */
#include "php.h"
@@ -397,10 +397,12 @@ PS_DESTROY_FUNC(files)
if (!ps_files_path_create(buf, sizeof(buf), data, key))
return FAILURE;
- ps_files_close(data);
+ if (data->fd != -1) {
+ ps_files_close(data);
- if (VCWD_UNLINK(buf) == -1) {
- return FAILURE;
+ if (VCWD_UNLINK(buf) == -1) {
+ return FAILURE;
+ }
}
return SUCCESS;
diff --git a/ext/session/php_session.h b/ext/session/php_session.h
index 6b6dc7bf3..6e13d5415 100644
--- a/ext/session/php_session.h
+++ b/ext/session/php_session.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_session.h,v 1.101.2.1 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: php_session.h,v 1.101.2.2 2006/01/28 06:14:49 fmk Exp $ */
#ifndef PHP_SESSION_H
#define PHP_SESSION_H
@@ -184,9 +184,9 @@ typedef struct ps_serializer_struct {
PHPAPI void session_adapt_url(const char *, size_t, char **, size_t * TSRMLS_DC);
-void php_add_session_var(char *name, size_t namelen TSRMLS_DC);
-void php_set_session_var(char *name, size_t namelen, zval *state_val, php_unserialize_data_t *var_hash TSRMLS_DC);
-int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC);
+PHPAPI void php_add_session_var(char *name, size_t namelen TSRMLS_DC);
+PHPAPI void php_set_session_var(char *name, size_t namelen, zval *state_val, php_unserialize_data_t *var_hash TSRMLS_DC);
+PHPAPI int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC);
PHPAPI int php_session_register_module(ps_module *);
diff --git a/ext/session/session.c b/ext/session/session.c
index f90f25b1a..b9c6a2201 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.417.2.5 2006/01/01 12:50:12 sniper Exp $ */
+/* $Id: session.c,v 1.417.2.8 2006/02/10 07:39:13 rasmus Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -277,7 +277,7 @@ typedef struct {
#define MAX_STR 512
-void php_add_session_var(char *name, size_t namelen TSRMLS_DC)
+PHPAPI void php_add_session_var(char *name, size_t namelen TSRMLS_DC)
{
zval **sym_track = NULL;
@@ -318,7 +318,7 @@ void php_add_session_var(char *name, size_t namelen TSRMLS_DC)
}
}
-void php_set_session_var(char *name, size_t namelen, zval *state_val, php_unserialize_data_t *var_hash TSRMLS_DC)
+PHPAPI void php_set_session_var(char *name, size_t namelen, zval *state_val, php_unserialize_data_t *var_hash TSRMLS_DC)
{
if (PG(register_globals)) {
zval **old_symbol;
@@ -358,7 +358,7 @@ void php_set_session_var(char *name, size_t namelen, zval *state_val, php_unseri
}
}
-int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC)
+PHPAPI int php_get_session_var(char *name, size_t namelen, zval ***state_var TSRMLS_DC)
{
int ret = FAILURE;
@@ -741,6 +741,12 @@ static void php_session_initialize(TSRMLS_D)
char *val;
int vallen;
+ /* check session name for invalid characters */
+ if (PS(id) && strpbrk(PS(id), "\r\n\t <>'\"\\")) {
+ efree(PS(id));
+ PS(id) = NULL;
+ }
+
if (!PS(mod)) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "No storage module chosen - failed to initialize session.");
return;
@@ -1082,8 +1088,9 @@ static void php_session_reset_id(TSRMLS_D)
{
int module_number = PS(module_number);
- if (PS(use_cookies)) {
+ if (PS(use_cookies) && PS(send_cookie)) {
php_session_send_cookie(TSRMLS_C);
+ PS(send_cookie) = 0;
}
/* if the SID constant exists, destroy it. */
@@ -1479,6 +1486,7 @@ PHP_FUNCTION(session_regenerate_id)
PS(id) = PS(mod)->s_create_sid(&PS(mod_data), NULL TSRMLS_CC);
+ PS(send_cookie) = 1;
php_session_reset_id(TSRMLS_C);
RETURN_TRUE;
diff --git a/ext/session/tests/bug36459.phpt b/ext/session/tests/bug36459.phpt
new file mode 100644
index 000000000..26ff8684f
--- /dev/null
+++ b/ext/session/tests/bug36459.phpt
@@ -0,0 +1,41 @@
+--TEST--
+bug #31454 (Incorrect adding PHPSESSID to links, which contains \r\n)
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--INI--
+session.use_trans_sid=1
+session.use_cookies=0
+session.name=sid
+--FILE--
+<?php
+error_reporting(E_ALL);
+
+session_start();
+
+# Do not remove \r from this tests, they are essential!
+?>
+<html>
+ <head>
+ <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
+ </head>
+ <body>
+ <p>See source html code</p>
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2"
+ style="font: normal 11pt Times New Roman">incorrect link</a><br />
+ <br />
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2" style="font: normal 11pt Times New Roman">correct link</a>
+ </body>
+</html>
+--EXPECTF--
+<html>
+ <head>
+ <title>Bug #36459 Incorrect adding PHPSESSID to links, which contains \r\n</title>
+ </head>
+ <body>
+ <p>See source html code</p>
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s"
+ style="font: normal 11pt Times New Roman">incorrect link</a><br />
+ <br />
+ <a href="/b2w/www/ru/adm/pages/?action=prev&rec_id=8&pid=2&sid=%s" style="font: normal 11pt Times New Roman">correct link</a>
+ </body>
+</html>
diff --git a/ext/simplexml/php_simplexml.h b/ext/simplexml/php_simplexml.h
index 167937194..400c4f5c4 100644
--- a/ext/simplexml/php_simplexml.h
+++ b/ext/simplexml/php_simplexml.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_simplexml.h,v 1.20.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_simplexml.h,v 1.20.2.2 2006/02/26 23:14:45 helly Exp $ */
#ifndef PHP_SIMPLEXML_H
#define PHP_SIMPLEXML_H
@@ -53,6 +53,13 @@ PHP_RINIT_FUNCTION(simplexml);
#endif
PHP_MINFO_FUNCTION(simplexml);
+typedef enum {
+ SXE_ITER_NONE = 0,
+ SXE_ITER_ELEMENT = 1,
+ SXE_ITER_CHILD = 2,
+ SXE_ITER_ATTRLIST = 3
+} SXE_ITER;
+
typedef struct {
zend_object zo;
php_libxml_node_ptr *node;
@@ -63,16 +70,12 @@ typedef struct {
int itertype;
char *name;
char *nsprefix;
- int type;
+ SXE_ITER type;
zval *data;
} iter;
+ zval *tmp;
} php_sxe_object;
-#define SXE_ITER_NONE 0
-#define SXE_ITER_ELEMENT 1
-#define SXE_ITER_CHILD 2
-#define SXE_ITER_ATTRLIST 3
-
#ifdef ZTS
#define SIMPLEXML_G(v) TSRMG(simplexml_globals_id, zend_simplexml_globals *, v)
#else
diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c
index e02bf13e5..a82b9b82c 100644
--- a/ext/simplexml/simplexml.c
+++ b/ext/simplexml/simplexml.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: simplexml.c,v 1.151.2.10 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: simplexml.c,v 1.151.2.22 2006/04/14 15:19:45 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -130,10 +130,10 @@ static inline int match_ns(php_sxe_object *sxe, xmlNodePtr node, xmlChar *name)
}
/* }}} */
-static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, long offset, xmlNodePtr node) /* {{{ */
+static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, long offset, xmlNodePtr node, long *cnt) /* {{{ */
{
long nodendx = 0;
-
+
if (sxe->iter.type == SXE_ITER_NONE) {
return NULL;
}
@@ -151,12 +151,15 @@ static xmlNodePtr sxe_get_element_by_offset(php_sxe_object *sxe, long offset, xm
next_iter:
node = node->next;
}
+
+ if (cnt) {
+ *cnt = nodendx;
+ }
return node;
}
/* }}} */
-#if SXE_ELEMENT_BY_NAME
static xmlNodePtr sxe_find_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char *name TSRMLS_DC) /* {{{ */
{
while (node) {
@@ -172,7 +175,7 @@ next_iter:
return NULL;
} /* }}} */
-static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, int *type TSRMLS_DC) /* {{{ */
+static xmlNodePtr sxe_get_element_by_name(php_sxe_object *sxe, xmlNodePtr node, char **name, SXE_ITER *type TSRMLS_DC) /* {{{ */
{
int orgtype;
xmlNodePtr orgnode = node;
@@ -219,7 +222,6 @@ next_iter:
return NULL;
}
/* }}} */
-#endif /* SXE_ELEMENT_BY_NAME */
/* {{{ sxe_prop_dim_read()
*/
@@ -229,10 +231,10 @@ static zval * sxe_prop_dim_read(zval *object, zval *member, zend_bool elements,
php_sxe_object *sxe;
char *name;
xmlNodePtr node;
- xmlAttrPtr attr;
+ xmlAttrPtr attr = NULL;
zval tmp_zv;
- int nodendx = 0;
- int test;
+ int nodendx = 0;
+ int test = 0;
sxe = php_sxe_fetch_object(object TSRMLS_CC);
@@ -303,7 +305,7 @@ static zval * sxe_prop_dim_read(zval *object, zval *member, zend_bool elements,
if (sxe->iter.type == SXE_ITER_CHILD) {
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
}
- node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node);
+ node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL);
if (node) {
_node_as_zval(sxe, node, return_value, SXE_ITER_NONE, NULL, sxe->iter.nsprefix TSRMLS_CC);
}
@@ -329,6 +331,10 @@ static zval * sxe_prop_dim_read(zval *object, zval *member, zend_bool elements,
if (member == &tmp_zv) {
zval_dtor(&tmp_zv);
}
+ if (Z_TYPE_P(return_value) == IS_NULL) {
+ FREE_ZVAL(return_value);
+ return_value = &EG(uninitialized_zval);
+ }
return return_value;
}
@@ -356,6 +362,11 @@ static void change_node_zval(xmlNodePtr node, zval *value TSRMLS_DC)
{
zval value_copy;
+ if (!value)
+ {
+ xmlNodeSetContentLen(node, "", 0);
+ return;
+ }
switch (Z_TYPE_P(value)) {
case IS_LONG:
case IS_BOOL:
@@ -383,19 +394,21 @@ static void change_node_zval(xmlNodePtr node, zval *value TSRMLS_DC)
/* {{{ sxe_property_write()
*/
-static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_bool elements, zend_bool attribs TSRMLS_DC)
+static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_bool elements, zend_bool attribs, xmlNodePtr *pnewnode TSRMLS_DC)
{
php_sxe_object *sxe;
char *name;
xmlNodePtr node;
xmlNodePtr newnode = NULL;
+ xmlNodePtr mynode;
xmlNodePtr tempnode;
xmlAttrPtr attr = NULL;
int counter = 0;
int is_attr = 0;
int nodendx = 0;
- int test;
- zval tmp_zv, trim_zv;
+ int test = 0;
+ long cnt;
+ zval tmp_zv, trim_zv, value_copy;
if (!member) {
/* This happens when the user did: $sxe[] = $value
@@ -444,9 +457,36 @@ static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_boo
attr = (xmlAttrPtr)node;
test = sxe->iter.name != NULL;
} else if (sxe->iter.type != SXE_ITER_CHILD) {
+ mynode = node;
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
attr = node ? node->properties : NULL;
test = 0;
+ if (attribs && !node && sxe->iter.type == SXE_ITER_ELEMENT) {
+ node = xmlNewChild(mynode, mynode->ns, sxe->iter.name, NULL);
+ attr = node->properties;
+ }
+ }
+
+ mynode = node;
+
+ if (value) {
+ switch (Z_TYPE_P(value)) {
+ case IS_LONG:
+ case IS_BOOL:
+ case IS_DOUBLE:
+ case IS_NULL:
+ if (value->refcount > 1) {
+ value_copy = *value;
+ zval_copy_ctor(&value_copy);
+ value = &value_copy;
+ }
+ convert_to_string(value);
+ break;
+ case IS_STRING:
+ break;
+ default:
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "It is not yet possible to assign complex types to %s", attribs ? "attributes" : "properties");
+ }
}
if (node) {
@@ -478,7 +518,7 @@ static void sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_boo
if (elements) {
if (Z_TYPE_P(member) == IS_LONG) {
- newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node);
+ newnode = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, &cnt);
if (newnode) {
++counter;
}
@@ -502,34 +542,38 @@ next_iter:
if (is_attr) {
newnode = (xmlNodePtr) attr;
}
- while ((tempnode = (xmlNodePtr) newnode->children)) {
- xmlUnlinkNode(tempnode);
- php_libxml_node_free_resource((xmlNodePtr) tempnode TSRMLS_CC);
+ if (value) {
+ while ((tempnode = (xmlNodePtr) newnode->children)) {
+ xmlUnlinkNode(tempnode);
+ php_libxml_node_free_resource((xmlNodePtr) tempnode TSRMLS_CC);
+ }
+ change_node_zval(newnode, value TSRMLS_CC);
}
- change_node_zval(newnode, value TSRMLS_CC);
} else if (counter > 1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot assign to an array of nodes (duplicate subnodes or attr detected)");
- } else {
- if (attribs) {
- switch (Z_TYPE_P(value)) {
- case IS_LONG:
- case IS_BOOL:
- case IS_DOUBLE:
- case IS_NULL:
- convert_to_string(value);
- case IS_STRING:
- newnode = (xmlNodePtr)xmlNewProp(node, name, Z_STRVAL_P(value));
- break;
- default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "It is not yet possible to assign complex types to attributes");
+ } else if (elements) {
+ if (!node) {
+ newnode = xmlNewTextChild(mynode, mynode->ns, name, value ? Z_STRVAL_P(value) : NULL);
+ } else if (Z_TYPE_P(member) == IS_LONG) {
+ if (cnt < Z_LVAL_P(member)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot add element %s number %ld when only %ld such elements exist", mynode->name, Z_LVAL_P(member), cnt);
}
+ newnode = xmlNewTextChild(mynode->parent, mynode->ns, mynode->name, value ? Z_STRVAL_P(value) : NULL);
}
+ } else if (attribs) {
+ newnode = (xmlNodePtr)xmlNewProp(node, name, value ? Z_STRVAL_P(value) : NULL);
}
}
if (member == &tmp_zv) {
zval_dtor(&tmp_zv);
}
+ if (pnewnode) {
+ *pnewnode = newnode;
+ }
+ if (value && value == &value_copy) {
+ zval_dtor(value);
+ }
}
/* }}} */
@@ -537,7 +581,7 @@ next_iter:
*/
static void sxe_property_write(zval *object, zval *member, zval *value TSRMLS_DC)
{
- sxe_prop_dim_write(object, member, value, 1, 0 TSRMLS_CC);
+ sxe_prop_dim_write(object, member, value, 1, 0, NULL TSRMLS_CC);
}
/* }}} */
@@ -545,7 +589,37 @@ static void sxe_property_write(zval *object, zval *member, zval *value TSRMLS_DC
*/
static void sxe_dimension_write(zval *object, zval *offset, zval *value TSRMLS_DC)
{
- sxe_prop_dim_write(object, offset, value, 0, 1 TSRMLS_CC);
+ sxe_prop_dim_write(object, offset, value, 0, 1, NULL TSRMLS_CC);
+}
+/* }}} */
+
+static zval** sxe_property_get_adr(zval *object, zval *member TSRMLS_DC) /* {{{ */
+{
+ php_sxe_object *sxe;
+ xmlNodePtr node;
+ zval *return_value;
+ char *name;
+ SXE_ITER type;
+
+ sxe = php_sxe_fetch_object(object TSRMLS_CC);
+
+ GET_NODE(sxe, node);
+ convert_to_string(member);
+ name = Z_STRVAL_P(member);
+ node = sxe_get_element_by_name(sxe, node, &name, &type TSRMLS_CC);
+ if (!node) {
+ sxe_prop_dim_write(object, member, NULL, 1, 0, &node TSRMLS_CC);
+ type = SXE_ITER_NONE;
+ name = NULL;
+ }
+ MAKE_STD_ZVAL(return_value);
+ _node_as_zval(sxe, node, return_value, type, name, sxe->iter.nsprefix TSRMLS_CC);
+
+ sxe = php_sxe_fetch_object(return_value TSRMLS_CC);
+ sxe->tmp = return_value;
+ return_value->is_ref = 1;
+
+ return &sxe->tmp;
}
/* }}} */
@@ -554,15 +628,20 @@ static void sxe_dimension_write(zval *object, zval *offset, zval *value TSRMLS_D
static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend_bool elements, zend_bool attribs TSRMLS_DC)
{
php_sxe_object *sxe;
- char *name;
xmlNodePtr node;
xmlAttrPtr attr = NULL;
int exists = 0;
- int test;
+ int test = 0;
+ zval tmp_zv;
- sxe = php_sxe_fetch_object(object TSRMLS_CC);
+ if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
+ tmp_zv = *member;
+ zval_copy_ctor(&tmp_zv);
+ member = &tmp_zv;
+ convert_to_string(member);
+ }
- name = Z_STRVAL_P(member);
+ sxe = php_sxe_fetch_object(object TSRMLS_CC);
GET_NODE(sxe, node);
@@ -590,13 +669,28 @@ static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend
if (node) {
if (attribs) {
- while (attr) {
- if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, name) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
- exists = 1;
- break;
+ if (Z_TYPE_P(member) == IS_LONG) {
+ int nodendx = 0;
+
+ while (attr && nodendx <= Z_LVAL_P(member)) {
+ if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
+ if (nodendx == Z_LVAL_P(member)) {
+ exists = 1;
+ break;
+ }
+ nodendx++;
+ }
+ attr = attr->next;
}
+ } else {
+ while (attr) {
+ if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, Z_STRVAL_P(member)) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
+ exists = 1;
+ break;
+ }
- attr = attr->next;
+ attr = attr->next;
+ }
}
}
@@ -605,17 +699,9 @@ static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend
if (sxe->iter.type == SXE_ITER_CHILD) {
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
}
- node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node);
+ node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL);
}
else {
- zval tmp_zv;
-
- if (Z_TYPE_P(member) != IS_STRING) {
- tmp_zv = *member;
- zval_copy_ctor(&tmp_zv);
- member = &tmp_zv;
- convert_to_string(member);
- }
node = node->children;
while (node) {
xmlNodePtr nnext;
@@ -625,16 +711,17 @@ static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend
}
node = nnext;
}
- if (member == &tmp_zv) {
- zval_dtor(&tmp_zv);
- }
- }
+ }
if (node) {
exists = 1;
}
}
}
+ if (member == &tmp_zv) {
+ zval_dtor(&tmp_zv);
+ }
+
return exists;
}
/* }}} */
@@ -662,12 +749,12 @@ static void sxe_prop_dim_delete(zval *object, zval *member, zend_bool elements,
php_sxe_object *sxe;
xmlNodePtr node;
xmlNodePtr nnext;
- xmlAttrPtr attr;
+ xmlAttrPtr attr = NULL;
xmlAttrPtr anext;
zval tmp_zv;
- int test;
+ int test = 0;
- if (Z_TYPE_P(member) != IS_STRING) {
+ if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
tmp_zv = *member;
zval_copy_ctor(&tmp_zv);
member = &tmp_zv;
@@ -677,13 +764,24 @@ static void sxe_prop_dim_delete(zval *object, zval *member, zend_bool elements,
sxe = php_sxe_fetch_object(object TSRMLS_CC);
GET_NODE(sxe, node);
+
+ if (Z_TYPE_P(member) == IS_LONG) {
+ if (sxe->iter.type != SXE_ITER_ATTRLIST) {
+ attribs = 0;
+ elements = 1;
+ if (sxe->iter.type == SXE_ITER_CHILD) {
+ node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
+ }
+ }
+ }
+
if (sxe->iter.type == SXE_ITER_ATTRLIST) {
attribs = 1;
elements = 0;
- node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
+ node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
attr = (xmlAttrPtr)node;
test = sxe->iter.name != NULL;
- } else {
+ } else if (sxe->iter.type != SXE_ITER_CHILD) {
node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
attr = node ? node->properties : NULL;
test = 0;
@@ -691,31 +789,58 @@ static void sxe_prop_dim_delete(zval *object, zval *member, zend_bool elements,
if (node) {
if (attribs) {
- while (attr) {
- anext = attr->next;
- if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, Z_STRVAL_P(member)) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
- xmlUnlinkNode((xmlNodePtr) attr);
- php_libxml_node_free_resource((xmlNodePtr) attr TSRMLS_CC);
- break;
+ if (Z_TYPE_P(member) == IS_LONG) {
+ int nodendx = 0;
+
+ while (attr && nodendx <= Z_LVAL_P(member)) {
+ if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
+ if (nodendx == Z_LVAL_P(member)) {
+ xmlUnlinkNode((xmlNodePtr) attr);
+ php_libxml_node_free_resource((xmlNodePtr) attr TSRMLS_CC);
+ break;
+ }
+ nodendx++;
+ }
+ attr = attr->next;
+ }
+ } else {
+ while (attr) {
+ anext = attr->next;
+ if ((!test || !xmlStrcmp(attr->name, sxe->iter.name)) && !xmlStrcmp(attr->name, Z_STRVAL_P(member)) && match_ns(sxe, (xmlNodePtr) attr, sxe->iter.nsprefix)) {
+ xmlUnlinkNode((xmlNodePtr) attr);
+ php_libxml_node_free_resource((xmlNodePtr) attr TSRMLS_CC);
+ break;
+ }
+ attr = anext;
}
- attr = anext;
}
}
if (elements) {
- node = node->children;
- while (node) {
- nnext = node->next;
-
- SKIP_TEXT(node);
-
- if (!xmlStrcmp(node->name, Z_STRVAL_P(member))) {
+ if (Z_TYPE_P(member) == IS_LONG) {
+ if (sxe->iter.type == SXE_ITER_CHILD) {
+ node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
+ }
+ node = sxe_get_element_by_offset(sxe, Z_LVAL_P(member), node, NULL);
+ if (node) {
xmlUnlinkNode(node);
php_libxml_node_free_resource(node TSRMLS_CC);
}
+ } else {
+ node = node->children;
+ while (node) {
+ nnext = node->next;
+
+ SKIP_TEXT(node);
+
+ if (!xmlStrcmp(node->name, Z_STRVAL_P(member))) {
+ xmlUnlinkNode(node);
+ php_libxml_node_free_resource(node TSRMLS_CC);
+ }
next_iter:
- node = nnext;
+ node = nnext;
+ }
}
}
}
@@ -864,7 +989,7 @@ static HashTable * sxe_properties_get(zval *object TSRMLS_DC)
ZVAL_STRING(value, sxe_xmlNodeListGetString(node->doc, node->children, 1), 0);
zend_hash_next_index_insert(rv, &value, sizeof(zval *), NULL);
node = NULL;
- } else {
+ } else if (sxe->iter.type != SXE_ITER_CHILD) {
node = node->children;
}
@@ -1000,7 +1125,7 @@ SXE_METHOD(xpath)
_node_as_zval(sxe, nodeptr->parent, value, SXE_ITER_NONE, NULL, NULL TSRMLS_CC);
} else if (nodeptr->type == XML_ATTRIBUTE_NODE) {
_node_as_zval(sxe, nodeptr->parent, value, SXE_ITER_ATTRLIST, (char*)nodeptr->name, NULL TSRMLS_CC);
- } else {
+ } else {
_node_as_zval(sxe, nodeptr, value, SXE_ITER_NONE, NULL, NULL TSRMLS_CC);
}
@@ -1215,7 +1340,7 @@ SXE_METHOD(getDocNamespaces)
}
/* }}} */
-/* {{{ proto object SimpleXMLElement::children()
+/* {{{ proto object SimpleXMLElement::children([string ns])
Finds children of given node */
SXE_METHOD(children)
{
@@ -1242,6 +1367,23 @@ SXE_METHOD(children)
}
/* }}} */
+/* {{{ proto object SimpleXMLElement::getName()
+ Finds children of given node */
+SXE_METHOD(getName)
+{
+ php_sxe_object *sxe;
+ xmlNodePtr node;
+ int namelen;
+
+ sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
+
+ GET_NODE(sxe, node);
+
+ namelen = xmlStrlen(node->name);
+ RETURN_STRINGL((char*)node->name, namelen, 1);
+}
+/* }}} */
+
/* {{{ proto array SimpleXMLElement::attributes([string ns])
Identifies an element's attributes */
SXE_METHOD(attributes)
@@ -1268,6 +1410,129 @@ SXE_METHOD(attributes)
}
/* }}} */
+/* {{{ proto void SimpleXMLElement::addChild(string qName [, string value [,string ns]])
+ Add Element with optional namespace information */
+SXE_METHOD(addChild)
+{
+ php_sxe_object *sxe;
+ char *qname, *value = NULL, *nsuri = NULL;
+ int qname_len, value_len = 0, nsuri_len = 0;
+ xmlNodePtr node, newnode;
+ xmlNsPtr nsptr = NULL;
+ xmlChar *localname, *prefix = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s!s!",
+ &qname, &qname_len, &value, &value_len, &nsuri, &nsuri_len) == FAILURE) {
+ return;
+ }
+
+ if (qname_len == 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Element name is required");
+ return;
+ }
+
+ sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
+ GET_NODE(sxe, node);
+
+ if (sxe->iter.type == SXE_ITER_ATTRLIST) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot add element to attributes");
+ return;
+ }
+
+ node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
+
+ localname = xmlSplitQName2(qname, &prefix);
+ if (localname == NULL) {
+ localname = xmlStrdup(qname);
+ }
+
+
+ newnode = xmlNewChild(node, NULL, localname, value);
+
+ if (nsuri != NULL) {
+ nsptr = xmlSearchNsByHref(node->doc, node, nsuri);
+ if (nsptr == NULL) {
+ nsptr = xmlNewNs(newnode, nsuri, prefix);
+ }
+ newnode->ns = nsptr;
+ }
+
+ _node_as_zval(sxe, newnode, return_value, SXE_ITER_NONE, localname, prefix TSRMLS_CC);
+
+ xmlFree(localname);
+ if (prefix != NULL) {
+ xmlFree(prefix);
+ }
+}
+/* }}} */
+
+/* {{{ proto void SimpleXMLElement::addAttribute(string qName, string value [,string ns])
+ Add Attribute with optional namespace information */
+SXE_METHOD(addAttribute)
+{
+ php_sxe_object *sxe;
+ char *qname, *value = NULL, *nsuri = NULL;
+ int qname_len, value_len = 0, nsuri_len = 0;
+ xmlNodePtr node;
+ xmlAttrPtr attrp = NULL;
+ xmlNsPtr nsptr = NULL;
+ xmlChar *localname, *prefix = NULL;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|s!",
+ &qname, &qname_len, &value, &value_len, &nsuri, &nsuri_len) == FAILURE) {
+ return;
+ }
+
+ if (qname_len == 0 || value_len == 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attribute name and value are required");
+ return;
+ }
+
+ sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
+ GET_NODE(sxe, node);
+
+ node = php_sxe_get_first_node(sxe, node TSRMLS_CC);
+
+ if (node->type != XML_ELEMENT_NODE) {
+ node = node->parent;
+ }
+
+ if (node == NULL) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unable to locate parent Element");
+ return;
+ }
+
+ localname = xmlSplitQName2(qname, &prefix);
+ if (localname == NULL) {
+ localname = xmlStrdup(qname);
+ }
+
+ attrp = xmlHasNsProp(node, localname, nsuri);
+ if (attrp != NULL && attrp->type != XML_ATTRIBUTE_DECL) {
+ xmlFree(localname);
+ if (prefix != NULL) {
+ xmlFree(prefix);
+ }
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Attribute already exists");
+ return;
+ }
+
+ if (nsuri != NULL) {
+ nsptr = xmlSearchNsByHref(node->doc, node, nsuri);
+ if (nsptr == NULL) {
+ nsptr = xmlNewNs(node, nsuri, prefix);
+ }
+ }
+
+ attrp = xmlNewNsProp(node, nsptr, localname, value);
+
+ xmlFree(localname);
+ if (prefix != NULL) {
+ xmlFree(prefix);
+ }
+}
+/* }}} */
+
/* {{{ cast_object()
*/
static int cast_object(zval *object, int type, char *contents TSRMLS_DC)
@@ -1358,9 +1623,14 @@ static int sxe_count_elements(zval *object, long *count TSRMLS_DC) /* {{{ */
{
php_sxe_object *sxe;
xmlNodePtr node;
+ zval *data;
*count = 0;
sxe = php_sxe_fetch_object(object TSRMLS_CC);
+
+ data = sxe->iter.data;
+ sxe->iter.data = NULL;
+
node = php_sxe_reset_iterator(sxe, 0 TSRMLS_CC);
while (node)
@@ -1370,6 +1640,11 @@ static int sxe_count_elements(zval *object, long *count TSRMLS_DC) /* {{{ */
}
+ if (sxe->iter.data) {
+ zval_ptr_dtor(&sxe->iter.data);
+ }
+ sxe->iter.data = data;
+
return SUCCESS;
}
/* }}} */
@@ -1396,7 +1671,7 @@ static zend_object_handlers sxe_object_handlers = {
sxe_property_write,
sxe_dimension_read,
sxe_dimension_write,
- NULL,
+ sxe_property_get_adr,
sxe_get_value, /* get */
NULL,
sxe_property_exists,
@@ -1420,7 +1695,7 @@ static zend_object_handlers sxe_ze1_object_handlers = {
sxe_property_write,
sxe_dimension_read,
sxe_dimension_write,
- NULL,
+ sxe_property_get_adr,
sxe_get_value, /* get */
NULL,
sxe_property_exists,
@@ -1495,6 +1770,10 @@ static void sxe_object_dtor(void *object, zend_object_handle handle TSRMLS_DC)
xmlFree(sxe->iter.nsprefix);
sxe->iter.nsprefix = NULL;
}
+ if (sxe->tmp) {
+ zval_ptr_dtor(&sxe->tmp);
+ sxe->tmp = NULL;
+ }
}
/* }}} */
@@ -1506,8 +1785,19 @@ static void sxe_object_free_storage(void *object TSRMLS_DC)
sxe = (php_sxe_object *) object;
- zend_hash_destroy(sxe->zo.properties);
- FREE_HASHTABLE(sxe->zo.properties);
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_dtor(&sxe->zo TSRMLS_CC);
+#else
+ if (sxe->zo.guards) {
+ zend_hash_destroy(sxe->zo.guards);
+ FREE_HASHTABLE(sxe->zo.guards);
+ }
+
+ if (sxe->zo.properties) {
+ zend_hash_destroy(sxe->zo.properties);
+ FREE_HASHTABLE(sxe->zo.properties);
+ }
+#endif
php_libxml_node_decrement_resource((php_libxml_node_object *)sxe TSRMLS_CC);
@@ -1531,15 +1821,21 @@ static php_sxe_object* php_sxe_object_new(zend_class_entry *ce TSRMLS_DC)
php_sxe_object *intern;
intern = ecalloc(1, sizeof(php_sxe_object));
- intern->zo.ce = ce;
intern->iter.type = SXE_ITER_NONE;
intern->iter.nsprefix = NULL;
intern->iter.name = NULL;
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_init(&intern->zo, ce TSRMLS_CC);
+#else
ALLOC_HASHTABLE(intern->zo.properties);
zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ intern->zo.ce = ce;
+ intern->zo.guards = NULL;
+#endif
+
return intern;
}
/* }}} */
@@ -1591,11 +1887,7 @@ PHP_FUNCTION(simplexml_load_file)
return;
}
-#if LIBXML_VERSION >= 20600
docp = xmlReadFile(filename, NULL, options);
-#else
- docp = xmlParseFile(filename);
-#endif
if (! docp) {
RETURN_FALSE;
@@ -1635,11 +1927,7 @@ PHP_FUNCTION(simplexml_load_string)
return;
}
-#if LIBXML_VERSION >= 20600
docp = xmlReadMemory(data, data_len, NULL, NULL, options);
-#else
- docp = xmlParseMemory(data, data_len);
-#endif
if (! docp) {
RETURN_FALSE;
@@ -1681,11 +1969,9 @@ SXE_METHOD(__construct)
}
php_std_error_handling();
-#if LIBXML_VERSION >= 20600
+
docp = is_url ? xmlReadFile(data, NULL, options) : xmlReadMemory(data, data_len, NULL, NULL, options);
-#else
- docp = is_url ? xmlParseFile(data) : xmlParseMemory(data, data_len);
-#endif
+
if (!docp) {
((php_libxml_node_object *)sxe)->document = NULL;
zend_throw_exception(zend_exception_get_default(), "String could not be parsed as XML", 0 TSRMLS_CC);
@@ -1821,6 +2107,9 @@ static int php_sxe_iterator_current_key(zend_object_iterator *iter, char **str_k
if (intern != NULL && intern->node != NULL) {
curnode = (xmlNodePtr)((php_libxml_node_ptr *)intern->node)->node;
}
+ if (!curnode) {
+ return HASH_KEY_NON_EXISTANT;
+ }
namelen = xmlStrlen(curnode->name);
*str_key = estrndup(curnode->name, namelen);
@@ -1961,11 +2250,14 @@ static zend_function_entry sxe_functions[] = {
SXE_ME(__construct, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_FINAL) /* must be called */
SXE_ME(asXML, NULL, ZEND_ACC_PUBLIC)
SXE_ME(xpath, NULL, ZEND_ACC_PUBLIC)
- SXE_ME(registerXPathNamespace, NULL, ZEND_ACC_PUBLIC)
+ SXE_ME(registerXPathNamespace, NULL, ZEND_ACC_PUBLIC)
SXE_ME(attributes, NULL, ZEND_ACC_PUBLIC)
- SXE_ME(children, NULL, ZEND_ACC_PUBLIC)
+ SXE_ME(children, NULL, ZEND_ACC_PUBLIC)
SXE_ME(getNamespaces, NULL, ZEND_ACC_PUBLIC)
SXE_ME(getDocNamespaces, NULL, ZEND_ACC_PUBLIC)
+ SXE_ME(getName, NULL, ZEND_ACC_PUBLIC)
+ SXE_ME(addChild, NULL, ZEND_ACC_PUBLIC)
+ SXE_ME(addAttribute, NULL, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
@@ -2018,7 +2310,7 @@ PHP_MINFO_FUNCTION(simplexml)
{
php_info_print_table_start();
php_info_print_table_header(2, "Simplexml support", "enabled");
- php_info_print_table_row(2, "Revision", "$Revision: 1.151.2.10 $");
+ php_info_print_table_row(2, "Revision", "$Revision: 1.151.2.22 $");
php_info_print_table_row(2, "Schema support",
#ifdef LIBXML_SCHEMAS_ENABLED
"enabled");
diff --git a/ext/simplexml/tests/009b.phpt b/ext/simplexml/tests/009b.phpt
new file mode 100755
index 000000000..dba300c72
--- /dev/null
+++ b/ext/simplexml/tests/009b.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SimpleXML: foreach
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$sxe = simplexml_load_string(<<<EOF
+<?xml version='1.0'?>
+<!DOCTYPE sxe SYSTEM "notfound.dtd">
+<sxe id="elem1">
+ Plain text.
+ <elem1 attr1='first'>Bla bla 1.<!-- comment --><elem2>
+ Here we have some text data.
+ </elem2></elem1>
+ <elem11 attr2='second'>Bla bla 2.</elem11>
+</sxe>
+EOF
+);
+var_dump($sxe->children());
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+object(SimpleXMLElement)#%d (3) {
+ ["@attributes"]=>
+ array(1) {
+ ["id"]=>
+ string(5) "elem1"
+ }
+ ["elem1"]=>
+ string(10) "Bla bla 1."
+ ["elem11"]=>
+ string(10) "Bla bla 2."
+}
+===DONE===
diff --git a/ext/simplexml/tests/026.phpt b/ext/simplexml/tests/026.phpt
new file mode 100755
index 000000000..d6de94be3
--- /dev/null
+++ b/ext/simplexml/tests/026.phpt
@@ -0,0 +1,40 @@
+--TEST--
+SimpleXML: getName()
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<people>
+ <person>Jane</person>
+</people>
+EOF;
+
+function traverse_xml($xml, $pad = '')
+{
+ $name = $xml->getName();
+ echo "$pad<$name";
+ foreach($xml->attributes() as $attr => $value)
+ {
+ echo " $attr=\"$value\"";
+ }
+ echo ">" . trim($xml) . "\n";
+ foreach($xml->children() as $node)
+ {
+ traverse_xml($node, $pad.' ');
+ }
+ echo $pad."</$name>\n";
+}
+
+
+$people = simplexml_load_string($xml);
+traverse_xml($people);
+
+?>
+===DONE===
+--EXPECTF--
+<people>
+ <person>Jane
+ </person>
+</people>
+===DONE===
diff --git a/ext/simplexml/tests/027.phpt b/ext/simplexml/tests/027.phpt
new file mode 100755
index 000000000..f32786c7c
--- /dev/null
+++ b/ext/simplexml/tests/027.phpt
@@ -0,0 +1,74 @@
+--TEST--
+SimpleXML: Adding an elements
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<people></people>
+EOF;
+
+function traverse_xml($xml, $pad = '')
+{
+ $name = $xml->getName();
+ echo "$pad<$name";
+ foreach($xml->attributes() as $attr => $value)
+ {
+ echo " $attr=\"$value\"";
+ }
+ echo ">" . trim($xml) . "\n";
+ foreach($xml->children() as $node)
+ {
+ traverse_xml($node, $pad.' ');
+ }
+ echo $pad."</$name>\n";
+}
+
+
+$people = simplexml_load_string($xml);
+traverse_xml($people);
+$people->person = 'Joe';
+$people->person['gender'] = 'male';
+traverse_xml($people);
+$people->person = 'Jane';
+traverse_xml($people);
+$people->person['gender'] = 'female';
+$people->person[1] = 'Joe';
+$people->person[1]['gender'] = 'male';
+traverse_xml($people);
+$people->person[3] = 'Minni-me';
+$people->person[2]['gender'] = 'male';
+traverse_xml($people);
+$people->person[3]['gender'] = 'error';
+
+?>
+===DONE===
+--EXPECTF--
+<people>
+</people>
+<people>
+ <person gender="male">Joe
+ </person>
+</people>
+<people>
+ <person gender="male">Jane
+ </person>
+</people>
+<people>
+ <person gender="female">Jane
+ </person>
+ <person gender="male">Joe
+ </person>
+</people>
+
+Warning: main(): Cannot add element person number 3 when only 2 such elements exist in %s027.php on line %d
+<people>
+ <person gender="female">Jane
+ </person>
+ <person gender="male">Joe
+ </person>
+ <person gender="male">Minni-me
+ </person>
+</people>
+
+Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %s027.php on line %d
diff --git a/ext/simplexml/tests/028.phpt b/ext/simplexml/tests/028.phpt
new file mode 100755
index 000000000..753056b9a
--- /dev/null
+++ b/ext/simplexml/tests/028.phpt
@@ -0,0 +1,42 @@
+--TEST--
+SimpleXML: Adding an elements without text
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<people></people>
+EOF;
+
+function traverse_xml($xml, $pad = '')
+{
+ $name = $xml->getName();
+ echo "$pad<$name";
+ foreach($xml->attributes() as $attr => $value)
+ {
+ echo " $attr=\"$value\"";
+ }
+ echo ">" . trim($xml) . "\n";
+ foreach($xml->children() as $node)
+ {
+ traverse_xml($node, $pad.' ');
+ }
+ echo $pad."</$name>\n";
+}
+
+
+$people = simplexml_load_string($xml);
+traverse_xml($people);
+$people->person['name'] = 'John';
+traverse_xml($people);
+
+?>
+===DONE===
+--EXPECTF--
+<people>
+</people>
+<people>
+ <person name="John">
+ </person>
+</people>
+===DONE===
diff --git a/ext/simplexml/tests/029.phpt b/ext/simplexml/tests/029.phpt
new file mode 100755
index 000000000..86a4f308e
--- /dev/null
+++ b/ext/simplexml/tests/029.phpt
@@ -0,0 +1,40 @@
+--TEST--
+SimpleXML: foreach and count
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<people>
+ <person name="Joe"/>
+ <person name="John">
+ <children>
+ <person name="Joe"/>
+ </children>
+ </person>
+ <person name="Jane"/>
+</people>
+EOF;
+
+$people = simplexml_load_string($xml);
+
+foreach($people as $person)
+{
+ var_dump((string)$person['name']);
+ var_dump(count($people));
+ var_dump(count($person));
+}
+
+?>
+===DONE===
+--EXPECTF--
+string(3) "Joe"
+int(3)
+int(0)
+string(4) "John"
+int(3)
+int(1)
+string(4) "Jane"
+int(3)
+int(0)
+===DONE===
diff --git a/ext/simplexml/tests/030.phpt b/ext/simplexml/tests/030.phpt
new file mode 100644
index 000000000..774a5f145
--- /dev/null
+++ b/ext/simplexml/tests/030.phpt
@@ -0,0 +1,44 @@
+--TEST--
+SimpleXML: isset and unset by offset
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<root s:att1="b" att1="a"
+ xmlns:s="urn::test" xmlns:t="urn::test-t">
+ <child1>test</child1>
+ <child1>test 2</child1>
+ <s:child3 />
+</root>
+EOF;
+
+$sxe = simplexml_load_string($xml);
+
+echo $sxe->child1[0]."\n";
+echo $sxe->child1[1]."\n\n";
+
+var_dump(isset($sxe->child1[1]));
+unset($sxe->child1[1]);
+var_dump(isset($sxe->child1[1]));
+echo "\n";
+
+$atts = $sxe->attributes("urn::test");
+var_dump(isset($atts[0]));
+unset($atts[0]);
+var_dump(isset($atts[0]));
+var_dump(isset($atts[TRUE]));
+
+?>
+===DONE===
+--EXPECT--
+test
+test 2
+
+bool(true)
+bool(false)
+
+bool(true)
+bool(false)
+bool(false)
+===DONE===
diff --git a/ext/simplexml/tests/031.phpt b/ext/simplexml/tests/031.phpt
new file mode 100644
index 000000000..cd2d266ba
--- /dev/null
+++ b/ext/simplexml/tests/031.phpt
@@ -0,0 +1,57 @@
+--TEST--
+SimpleXML: addChild and addAttribute
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<root s:att1="b" att1="a"
+ xmlns:s="urn::test" xmlns:t="urn::test-t">
+ <child1>test</child1>
+ <child1>test 2</child1>
+ <s:child3 />
+</root>
+EOF;
+
+$sxe = simplexml_load_string($xml);
+
+/* Add new attribute in a new namespace */
+$sxe->addAttribute('v:att11', 'xxx', 'urn::test-v');
+
+/* Try to add attribute again -> display warning as method is for new Attr only */
+$sxe->addAttribute('v:att11', 'xxx', 'urn::test-v');
+
+/* Add new attribute w/o namespace */
+$sxe->addAttribute('att2', 'no-ns');
+
+$d = $sxe->attributes();
+/* Try to add element to attribute -> display warning and do not add */
+$d->addChild('m:test', 'myval', 'urn::test');
+
+
+/* Test adding elements in various configurations */
+$sxe->addChild('m:test1', 'myval', 'urn::test');
+
+/* New namespace test */
+$n = $sxe->addChild('m:test2', 'myval', 'urn::testnew');
+
+$sxe->addChild('test3', 'myval', 'urn::testnew');
+$sxe->addChild('test4', 'myval');
+
+/* Does not add prefix here although name is valid (but discouraged) - change behavior? */
+$sxe->addChild('s:test5', 'myval');
+
+echo $sxe->asXML();
+?>
+===DONE===
+--EXPECTF--
+Warning: SimpleXMLElement::addAttribute(): Attribute already exists in %s031.php on line %d
+
+Warning: SimpleXMLElement::addChild(): Cannot add element to attributes in %s031.php on line %d
+<?xml version="1.0"?>
+<root xmlns:s="urn::test" xmlns:t="urn::test-t" xmlns:v="urn::test-v" s:att1="b" att1="a" v:att11="xxx" att2="no-ns">
+ <child1>test</child1>
+ <child1>test 2</child1>
+ <s:child3/>
+<s:test1>myval</s:test1><m:test2 xmlns:m="urn::testnew">myval</m:test2><test3 xmlns="urn::testnew">myval</test3><test4>myval</test4><test5>myval</test5></root>
+===DONE===
diff --git a/ext/simplexml/tests/032.phpt b/ext/simplexml/tests/032.phpt
new file mode 100755
index 000000000..5c2225146
--- /dev/null
+++ b/ext/simplexml/tests/032.phpt
@@ -0,0 +1,45 @@
+--TEST--
+SimpleXML: comparing instances
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+$xml =<<<EOF
+<people>
+ <person name="Joe"/>
+ <person name="John">
+ <children>
+ <person name="Joe"/>
+ </children>
+ </person>
+ <person name="Jane"/>
+</people>
+EOF;
+
+$xml1 =<<<EOF
+<people>
+ <person name="John">
+ <children>
+ <person name="Joe"/>
+ </children>
+ </person>
+ <person name="Jane"/>
+</people>
+EOF;
+
+
+$people = simplexml_load_string($xml);
+$people1 = simplexml_load_string($xml);
+$people2 = simplexml_load_string($xml1);
+
+var_dump($people1 == $people);
+var_dump($people2 == $people);
+var_dump($people2 == $people1);
+
+?>
+===DONE===
+--EXPECTF--
+bool(true)
+bool(false)
+bool(false)
+===DONE===
diff --git a/ext/simplexml/tests/033.phpt b/ext/simplexml/tests/033.phpt
new file mode 100755
index 000000000..ba01b2155
--- /dev/null
+++ b/ext/simplexml/tests/033.phpt
@@ -0,0 +1,137 @@
+--TEST--
+SimpleXML: casting instances
+--SKIPIF--
+<?php if (!extension_loaded("simplexml")) print "skip"; ?>
+--FILE--
+<?php
+
+$xml =<<<EOF
+<people>
+test
+ <person name="Joe"/>
+ <person name="John">
+ <children>
+ <person name="Joe"/>
+ </children>
+ </person>
+ <person name="Jane"/>
+</people>
+EOF;
+
+$foo = simplexml_load_string( "<foo />" );
+$people = simplexml_load_string($xml);
+
+var_dump((bool)$foo);
+var_dump((bool)$people);
+var_dump((int)$foo);
+var_dump((int)$people);
+var_dump((double)$foo);
+var_dump((double)$people);
+var_dump((string)$foo);
+var_dump((string)$people);
+var_dump((array)$foo);
+var_dump((array)$people);
+var_dump((object)$foo);
+var_dump((object)$people);
+
+?>
+===DONE===
+--EXPECTF--
+bool(false)
+bool(true)
+int(0)
+int(0)
+float(0)
+float(0)
+string(0) ""
+string(15) "
+test
+
+
+
+"
+array(0) {
+}
+array(1) {
+ ["person"]=>
+ array(3) {
+ [0]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(3) "Joe"
+ }
+ }
+ [1]=>
+ object(SimpleXMLElement)#%d (2) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(4) "John"
+ }
+ ["children"]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["person"]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(3) "Joe"
+ }
+ }
+ }
+ }
+ [2]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(4) "Jane"
+ }
+ }
+ }
+}
+object(SimpleXMLElement)#%d (0) {
+}
+object(SimpleXMLElement)#%d (1) {
+ ["person"]=>
+ array(3) {
+ [0]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(3) "Joe"
+ }
+ }
+ [1]=>
+ object(SimpleXMLElement)#%d (2) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(4) "John"
+ }
+ ["children"]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["person"]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(3) "Joe"
+ }
+ }
+ }
+ }
+ [2]=>
+ object(SimpleXMLElement)#%d (1) {
+ ["@attributes"]=>
+ array(1) {
+ ["name"]=>
+ string(4) "Jane"
+ }
+ }
+ }
+}
+===DONE===
diff --git a/ext/simplexml/tests/bug35785.phpt b/ext/simplexml/tests/bug35785.phpt
index 34489c5b1..de65a1956 100755
--- a/ext/simplexml/tests/bug35785.phpt
+++ b/ext/simplexml/tests/bug35785.phpt
@@ -3,21 +3,24 @@ Bug #35785 (SimpleXML memory read error)
--FILE--
<?php
-$options["database"] = "xmldatabase";
$xml = simplexml_load_string("<root></root>");
-$count = count($xml->posts) + 1;
-$xml->bla->posts[$count]->name = $_POST["name"];
+$xml->bla->posts->name = "FooBar";
+echo $xml->asXML();
+
+echo "===FAIL===\n";
+
+$xml = simplexml_load_string("<root></root>");
+$count = count($xml->bla->posts);
+var_dump($count);
+$xml->bla->posts[++$count]->name = "FooBar";
echo $xml->asXML();
?>
===DONE===
<?php exit(0); __halt_compiler(); ?>
--EXPECTF--
-
-Notice: Undefined index: name in %sbug35785.php on line %d
-
-Strict Standards: Creating default object from empty value in %sbug35785.php on line %d
-
-Warning: Attempt to assign property of non-object in %sbug35785.php on line %d
<?xml version="1.0"?>
-<root/>
-===DONE===
+<root><bla><posts><name>FooBar</name></posts></bla></root>
+===FAIL===
+int(0)
+
+Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %sbug35785.php on line %d
diff --git a/ext/simplexml/tests/bug36611.phpt b/ext/simplexml/tests/bug36611.phpt
new file mode 100644
index 000000000..fdfed0d01
--- /dev/null
+++ b/ext/simplexml/tests/bug36611.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Bug #36611 (assignment to SimpleXML object attribute changes argument type to string)
+--FILE--
+<?php
+
+$xml_str = <<<EOD
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<c_fpobel >
+ <pos >
+ <pos/>
+ </pos>
+</c_fpobel>
+EOD;
+
+$xml = simplexml_load_string ($xml_str) ;
+
+$val = 1;
+
+var_dump($val);
+$obj->pos["act_idx"] = $val;
+var_dump($val) ;
+
+echo "Done\n";
+?>
+--EXPECT--
+int(1)
+int(1)
+Done
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index a9d5467f5..a86a11acf 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.c,v 1.103.2.13 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_encoding.c,v 1.103.2.21 2006/04/17 16:08:08 andrei Exp $ */
#include <time.h>
@@ -211,6 +211,9 @@ encode defaultEncoding[] = {
{{END_KNOWN_TYPES, NULL, NULL, NULL}, guess_zval_convert, guess_xml_convert}
};
+int numDefaultEncodings = sizeof(defaultEncoding)/sizeof(encode);
+
+
void whiteSpace_replace(char* str)
{
while (*str != '\0') {
@@ -246,6 +249,23 @@ void whiteSpace_collapse(char* str)
*pos = '\0';
}
+static encodePtr find_encoder_by_type_name(sdlPtr sdl, const char *type)
+{
+ if (sdl && sdl->encoders) {
+ HashPosition pos;
+ encodePtr *enc;
+
+ for (zend_hash_internal_pointer_reset_ex(sdl->encoders, &pos);
+ zend_hash_get_current_data_ex(sdl->encoders, (void **) &enc, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(sdl->encoders, &pos)) {
+ if (strcmp((*enc)->details.type_str, type) == 0) {
+ return *enc;
+ }
+ }
+ }
+ return NULL;
+}
+
xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr parent)
{
xmlNodePtr node = NULL;
@@ -306,6 +326,39 @@ xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr par
xmlSetNs(node, nsp);
}
} else {
+ if (SOAP_GLOBAL(class_map) && data &&
+ Z_TYPE_P(data) == IS_OBJECT &&
+ !Z_OBJPROP_P(data)->nApplyCount) {
+ zend_class_entry *ce = Z_OBJCE_P(data);
+ HashPosition pos;
+ zval **tmp;
+ char *type_name = NULL;
+ uint type_len;
+ ulong idx;
+
+ for (zend_hash_internal_pointer_reset_ex(SOAP_GLOBAL(class_map), &pos);
+ zend_hash_get_current_data_ex(SOAP_GLOBAL(class_map), (void **) &tmp, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(SOAP_GLOBAL(class_map), &pos)) {
+ if (Z_TYPE_PP(tmp) == IS_STRING &&
+ ce->name_length == Z_STRLEN_PP(tmp) &&
+ zend_binary_strncasecmp(ce->name, ce->name_length, Z_STRVAL_PP(tmp), ce->name_length, ce->name_length) == 0 &&
+ zend_hash_get_current_key_ex(SOAP_GLOBAL(class_map), &type_name, &type_len, &idx, 0, &pos) == HASH_KEY_IS_STRING) {
+
+ /* TODO: namespace isn't stored */
+ encodePtr enc = get_encoder(SOAP_GLOBAL(sdl), SOAP_GLOBAL(sdl)->target_ns, type_name);
+ if (enc) {
+ encode = enc;
+ } else if (SOAP_GLOBAL(sdl)) {
+ enc = find_encoder_by_type_name(SOAP_GLOBAL(sdl), type_name);
+ if (enc) {
+ encode = enc;
+ }
+ }
+ break;
+ }
+ }
+ }
+
if (encode == NULL) {
encode = get_conversion(UNKNOWN_TYPE);
}
@@ -689,7 +742,7 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNo
zval_copy_ctor(&tmp);
convert_to_string(&tmp);
- str = php_escape_html_entities(Z_STRVAL(tmp), Z_STRLEN(tmp), &new_len, 0, 0, NULL TSRMLS_CC);
+ str = php_escape_html_entities(Z_STRVAL(tmp), Z_STRLEN(tmp), &new_len, 0, 0, NULL TSRMLS_CC);
zval_dtor(&tmp);
}
@@ -730,7 +783,7 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNo
xmlAddChild(parent, ret);
FIND_ZVAL_NULL(data, ret, style);
- if (Z_TYPE_P(data) == IS_STRING) {
+ if (Z_TYPE_P(data) == IS_STRING) {
str = php_base64_encode((unsigned char*)Z_STRVAL_P(data), Z_STRLEN_P(data), &str_len);
xmlNodeSetContentLen(ret, str, str_len);
efree(str);
@@ -763,14 +816,14 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNo
xmlAddChild(parent, ret);
FIND_ZVAL_NULL(data, ret, style);
- if (Z_TYPE_P(data) != IS_STRING) {
+ if (Z_TYPE_P(data) != IS_STRING) {
tmp = *data;
zval_copy_ctor(&tmp);
convert_to_string(&tmp);
data = &tmp;
}
str = (unsigned char *) safe_emalloc(Z_STRLEN_P(data) * 2, sizeof(char), 1);
-
+
for (i = j = 0; i < Z_STRLEN_P(data); i++) {
str[j++] = hexconvtab[((unsigned char)Z_STRVAL_P(data)[i]) >> 4];
str[j++] = hexconvtab[((unsigned char)Z_STRVAL_P(data)[i]) & 15];
@@ -1078,11 +1131,13 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
{
switch (model->kind) {
case XSD_CONTENT_ELEMENT:
- if (model->u.element->name) {
- xmlNodePtr node = get_node(data->children, model->u.element->name);
- if (node) {
- zval *val;
+ if (model->u.element->name) {
+ xmlNodePtr node = get_node(data->children, model->u.element->name);
+
+ if (node) {
+ zval *val;
+ node = check_and_resolve_href(node);
if (node && node->children && node->children->content) {
if (model->u.element->fixed && strcmp(model->u.element->fixed,node->children->content) != 0) {
soap_error3(E_ERROR, "Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", model->u.element->name, model->u.element->fixed, node->children->content);
@@ -1129,6 +1184,14 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
add_next_index_zval(array, val);
} while ((node = get_node(node->next, model->u.element->name)) != NULL);
val = array;
+ } else if ((SOAP_GLOBAL(features) & SOAP_SINGLE_ELEMENT_ARRAYS) &&
+ (model->max_occurs == -1 || model->max_occurs > 1)) {
+ zval *array;
+
+ MAKE_STD_ZVAL(array);
+ array_init(array);
+ add_next_index_zval(array, val);
+ val = array;
}
set_zval_property(ret, model->u.element->name, val TSRMLS_CC);
}
@@ -1164,7 +1227,7 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
}
/* Struct encode/decode */
-static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
+static zval *to_zval_object_ex(encodeTypePtr type, xmlNodePtr data, zend_class_entry *pce)
{
zval *ret;
xmlNodePtr trav;
@@ -1174,7 +1237,9 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
zend_bool redo_any = 0;
TSRMLS_FETCH();
- if (SOAP_GLOBAL(class_map) && type->type_str) {
+ if (pce) {
+ ce = pce;
+ } else if (SOAP_GLOBAL(class_map) && type->type_str) {
zval **classname;
zend_class_entry *tmp;
@@ -1217,12 +1282,25 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
- ret = master_to_zval_int(sdlType->encode, data);
+
+ if (ce != ZEND_STANDARD_CLASS_DEF_PTR &&
+ sdlType->encode->to_zval == sdl_guess_convert_zval &&
+ sdlType->encode->details.sdl_type != NULL &&
+ (sdlType->encode->details.sdl_type->kind == XSD_TYPEKIND_COMPLEX ||
+ sdlType->encode->details.sdl_type->kind == XSD_TYPEKIND_RESTRICTION ||
+ sdlType->encode->details.sdl_type->kind == XSD_TYPEKIND_EXTENSION) &&
+ (sdlType->encode->details.sdl_type->encode == NULL ||
+ (sdlType->encode->details.sdl_type->encode->details.type != IS_ARRAY &&
+ sdlType->encode->details.sdl_type->encode->details.type != SOAP_ENC_ARRAY))) {
+ ret = to_zval_object_ex(&sdlType->encode->details, data, ce);
+ } else {
+ ret = master_to_zval_int(sdlType->encode, data);
+ }
FIND_XML_NULL(data, ret);
if (get_zval_property(ret, "any" TSRMLS_CC) != NULL) {
- unset_zval_property(ret, "any" TSRMLS_CC);
+ unset_zval_property(ret, "any" TSRMLS_CC);
redo_any = 1;
- }
+ }
if (Z_TYPE_P(ret) == IS_OBJECT && ce != ZEND_STANDARD_CLASS_DEF_PTR) {
zend_object *zobj = zend_objects_get_address(ret TSRMLS_CC);
zobj->ce = ce;
@@ -1244,7 +1322,7 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
if (sdlType->model) {
model_to_zval_object(ret, sdlType->model, data, sdl TSRMLS_CC);
if (redo_any && get_zval_property(ret, "any" TSRMLS_CC) == NULL) {
- model_to_zval_any(ret, data->children TSRMLS_CC);
+ model_to_zval_any(ret, data->children TSRMLS_CC);
}
}
if (sdlType->attributes) {
@@ -1322,6 +1400,12 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
return ret;
}
+static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data)
+{
+ return to_zval_object_ex(type, data, NULL);
+}
+
+
static int model_to_xml_object(xmlNodePtr node, sdlContentModelPtr model, zval *object, int style, int strict TSRMLS_DC)
{
switch (model->kind) {
@@ -1526,7 +1610,7 @@ static sdlTypePtr model_array_element(sdlContentModelPtr model)
static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent)
{
xmlNodePtr xmlParam;
- HashTable *prop;
+ HashTable *prop = NULL;
int i;
sdlTypePtr sdlType = type->sdl_type;
TSRMLS_FETCH();
@@ -1534,19 +1618,19 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
if (!data || Z_TYPE_P(data) == IS_NULL) {
xmlParam = xmlNewNode(NULL,"BOGUS");
xmlAddChild(parent, xmlParam);
- if (style == SOAP_ENCODED) {
+ if (style == SOAP_ENCODED) {
xmlSetProp(xmlParam, "xsi:nil", "true");
}
return xmlParam;
}
+ if (Z_TYPE_P(data) == IS_OBJECT) {
+ prop = Z_OBJPROP_P(data);
+ } else if (Z_TYPE_P(data) == IS_ARRAY) {
+ prop = Z_ARRVAL_P(data);
+ }
+
if (sdlType) {
- prop = NULL;
- if (Z_TYPE_P(data) == IS_OBJECT) {
- prop = Z_OBJPROP_P(data);
- } else if (Z_TYPE_P(data) == IS_ARRAY) {
- prop = Z_ARRVAL_P(data);
- }
if (sdlType->kind == XSD_TYPEKIND_RESTRICTION &&
sdlType->encode && type != &sdlType->encode->details) {
encodePtr enc;
@@ -1578,7 +1662,10 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE &&
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST &&
sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) {
+
+ if (prop) prop->nApplyCount++;
xmlParam = master_to_xml(sdlType->encode, data, style, parent);
+ if (prop) prop->nApplyCount--;
} else {
zval *tmp = get_zval_property(data, "_" TSRMLS_CC);
@@ -1595,7 +1682,6 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
xmlParam = xmlNewNode(NULL,"BOGUS");
xmlAddChild(parent, xmlParam);
}
- FIND_ZVAL_NULL(data, xmlParam, style);
if (prop != NULL) {
sdlTypePtr array_el;
@@ -1655,7 +1741,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
an implicit schema. Otherwise, use form.
*/
if ((*attr)->namens &&
- (!strncmp((*attr)->namens, XML_NAMESPACE, sizeof(XML_NAMESPACE)) ||
+ (!strncmp((*attr)->namens, XML_NAMESPACE, sizeof(XML_NAMESPACE)) ||
(*attr)->form == XSD_FORM_QUALIFIED)) {
xmlNsPtr nsp = encode_add_ns(xmlParam, (*attr)->namens);
@@ -1678,14 +1764,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo
} else {
xmlParam = xmlNewNode(NULL,"BOGUS");
xmlAddChild(parent, xmlParam);
- FIND_ZVAL_NULL(data, xmlParam, style);
- prop = NULL;
- if (Z_TYPE_P(data) == IS_OBJECT) {
- prop = Z_OBJPROP_P(data);
- } else if (Z_TYPE_P(data) == IS_ARRAY) {
- prop = Z_ARRVAL_P(data);
- }
if (prop != NULL) {
i = zend_hash_num_elements(prop);
zend_hash_internal_pointer_reset(prop);
@@ -2759,7 +2838,7 @@ static zval *to_zval_any(encodeTypePtr type, xmlNodePtr data)
}
static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodePtr parent)
-{
+{
xmlNodePtr ret;
if (Z_TYPE_P(data) == IS_STRING) {
@@ -2804,11 +2883,11 @@ zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data)
}
if (type->restrictions->minLength &&
strlen(data->children->content) < type->restrictions->minLength->value) {
- soap_error0(E_WARNING, "Encoding: Restriction: length less then 'minLength'");
+ soap_error0(E_WARNING, "Encoding: Restriction: length less than 'minLength'");
}
if (type->restrictions->maxLength &&
strlen(data->children->content) > type->restrictions->maxLength->value) {
- soap_error0(E_WARNING, "Encoding: Restriction: length greater then 'maxLength'");
+ soap_error0(E_WARNING, "Encoding: Restriction: length greater than 'maxLength'");
}
if (type->restrictions->length &&
strlen(data->children->content) != type->restrictions->length->value) {
@@ -2867,11 +2946,11 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNo
}
if (type->restrictions->minLength &&
Z_STRLEN_P(data) < type->restrictions->minLength->value) {
- soap_error0(E_WARNING, "Encoding: Restriction: length less then 'minLength'");
+ soap_error0(E_WARNING, "Encoding: Restriction: length less than 'minLength'");
}
if (type->restrictions->maxLength &&
Z_STRLEN_P(data) > type->restrictions->maxLength->value) {
- soap_error0(E_WARNING, "Encoding: Restriction: length greater then 'maxLength'");
+ soap_error0(E_WARNING, "Encoding: Restriction: length greater than 'maxLength'");
}
if (type->restrictions->length &&
Z_STRLEN_P(data) != type->restrictions->length->value) {
@@ -3126,7 +3205,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *type TS
if (different || count == 0) {
smart_str_appendl(type, "xsd:anyType", 11);
- return get_conversion(XSD_ANYTYPE);
+ return get_conversion(XSD_ANYTYPE);
} else {
encodePtr enc;
@@ -3226,3 +3305,17 @@ void delete_encoder(void *encode)
}
efree(t);
}
+
+void delete_encoder_persistent(void *encode)
+{
+ encodePtr t = *((encodePtr*)encode);
+ if (t->details.ns) {
+ free(t->details.ns);
+ }
+ if (t->details.type_str) {
+ free(t->details.type_str);
+ }
+ /* we should never have mapping in persistent encoder */
+ assert(t->details.map == NULL);
+ free(t);
+}
diff --git a/ext/soap/php_encoding.h b/ext/soap/php_encoding.h
index c46c700b9..8c339133e 100644
--- a/ext/soap/php_encoding.h
+++ b/ext/soap/php_encoding.h
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_encoding.h,v 1.38.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_encoding.h,v 1.38.2.3 2006/04/17 16:08:08 andrei Exp $ */
#ifndef PHP_ENCODING_H
#define PHP_ENCODING_H
@@ -219,7 +219,9 @@ xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns);
encodePtr get_conversion(int encode);
void delete_encoder(void *handle);
+void delete_encoder_persistent(void *handle);
extern encode defaultEncoding[];
+extern int numDefaultEncodings;
#endif
diff --git a/ext/soap/php_http.c b/ext/soap/php_http.c
index 41aaa309f..ab953c7cb 100644
--- a/ext/soap/php_http.c
+++ b/ext/soap/php_http.c
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_http.c,v 1.77.2.6 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_http.c,v 1.77.2.11 2006/04/13 08:18:36 dmitry Exp $ */
#include "php_soap.h"
#include "ext/standard/base64.h"
@@ -223,6 +223,7 @@ int make_http_soap_request(zval *this_ptr,
{
char *request;
smart_str soap_headers = {0};
+ smart_str soap_headers_z = {0};
int request_size, err;
php_url *phpurl = NULL;
php_stream *stream;
@@ -249,8 +250,10 @@ int make_http_soap_request(zval *this_ptr,
int level = Z_LVAL_PP(tmp) & 0x0f;
int kind = Z_LVAL_PP(tmp) & SOAP_COMPRESSION_DEFLATE;
+ if (level > 9) {level = 9;}
+
if ((Z_LVAL_PP(tmp) & SOAP_COMPRESSION_ACCEPT) != 0) {
- smart_str_append_const(&soap_headers,"Accept-Encoding: gzip, deflate\r\n");
+ smart_str_append_const(&soap_headers_z,"Accept-Encoding: gzip, deflate\r\n");
}
if (level > 0) {
zval func;
@@ -270,11 +273,11 @@ int make_http_soap_request(zval *this_ptr,
if (kind == SOAP_COMPRESSION_DEFLATE) {
n = 2;
ZVAL_STRING(&func, "gzcompress", 0);
- smart_str_append_const(&soap_headers,"Content-Encoding: deflate\r\n");
+ smart_str_append_const(&soap_headers_z,"Content-Encoding: deflate\r\n");
} else {
n = 3;
ZVAL_STRING(&func, "gzencode", 0);
- smart_str_append_const(&soap_headers,"Content-Encoding: gzip\r\n");
+ smart_str_append_const(&soap_headers_z,"Content-Encoding: gzip\r\n");
ZVAL_LONG(params[2], 1);
}
if (call_user_function(CG(function_table), (zval**)NULL, &func, &retval, n, params TSRMLS_CC) == SUCCESS &&
@@ -414,12 +417,25 @@ try_again:
smart_str_append_unsigned(&soap_headers, phpurl->port);
}
smart_str_append_const(&soap_headers, "\r\n"
- "Connection: Keep-Alive\r\n"
+ "Connection: Keep-Alive\r\n");
/*
"Connection: close\r\n"
"Accept: text/html; text/xml; text/plain\r\n"
*/
- "User-Agent: PHP SOAP 0.1\r\n");
+ if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_user_agent", sizeof("_user_agent"), (void **)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_STRING) {
+ if (Z_STRLEN_PP(tmp) > 0) {
+ smart_str_append_const(&soap_headers, "User-Agent: ");
+ smart_str_appendl(&soap_headers, Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp));
+ smart_str_append_const(&soap_headers, "\r\n");
+ }
+ } else{
+ smart_str_append_const(&soap_headers, "User-Agent: PHP-SOAP/"PHP_VERSION"\r\n");
+ }
+
+ smart_str_append(&soap_headers, &soap_headers_z);
+ smart_str_free(&soap_headers_z);
+
if (soap_version == SOAP_1_2) {
smart_str_append_const(&soap_headers,"Content-Type: application/soap+xml; charset=utf-8");
if (soapaction) {
@@ -674,6 +690,13 @@ try_again:
return FALSE;
}
+ if (!buffer) {
+ php_stream_close(stream);
+ zend_hash_del(Z_OBJPROP_P(this_ptr), "httpsocket", sizeof("httpsocket"));
+ zend_hash_del(Z_OBJPROP_P(this_ptr), "_use_proxy", sizeof("_use_proxy"));
+ return TRUE;
+ }
+
do {
if (!get_http_headers(stream, &http_headers, &http_header_size TSRMLS_CC)) {
if (http_headers) {efree(http_headers);}
@@ -797,7 +820,22 @@ try_again:
efree(cookie);
}
- if (!get_http_body(stream, !http_1_1, http_headers, &http_body, &http_body_size TSRMLS_CC)) {
+ if (http_1_1) {
+ http_close = FALSE;
+ if (use_proxy && !use_ssl) {
+ connection = get_http_header_value(http_headers,"Proxy-Connection: ");
+ if (connection) {
+ if (strncasecmp(connection, "close", sizeof("close")-1) == 0) {
+ http_close = TRUE;
+ }
+ efree(connection);
+ }
+ }
+ } else {
+ http_close = TRUE;
+ }
+
+ if (!get_http_body(stream, http_close, http_headers, &http_body, &http_body_size TSRMLS_CC)) {
if (request != buf) {efree(request);}
php_stream_close(stream);
efree(http_headers);
diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c
index 4e8787d1c..903c2cf3d 100644
--- a/ext/soap/php_schema.c
+++ b/ext/soap/php_schema.c
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_schema.c,v 1.58.2.4 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_schema.c,v 1.58.2.6 2006/04/09 23:35:51 andrei Exp $ */
#include "php_soap.h"
#include "libxml/uri.h"
@@ -2117,7 +2117,7 @@ static void schema_attribute_fixup(sdlCtx *ctx, sdlAttributePtr attr)
}
if (attr->name == NULL && attr->ref != NULL) {
char *name = strrchr(attr->ref, ':');
- if (*name) {
+ if (name) {
attr->name = estrdup(name+1);
} else{
attr->name = estrdup(attr->ref);
@@ -2358,6 +2358,28 @@ void delete_model(void *handle)
efree(tmp);
}
+void delete_model_persistent(void *handle)
+{
+ sdlContentModelPtr tmp = *((sdlContentModelPtr*)handle);
+ switch (tmp->kind) {
+ case XSD_CONTENT_ELEMENT:
+ case XSD_CONTENT_GROUP:
+ break;
+ case XSD_CONTENT_SEQUENCE:
+ case XSD_CONTENT_ALL:
+ case XSD_CONTENT_CHOICE:
+ zend_hash_destroy(tmp->u.content);
+ free(tmp->u.content);
+ break;
+ case XSD_CONTENT_GROUP_REF:
+ free(tmp->u.group_ref);
+ break;
+ default:
+ break;
+ }
+ free(tmp);
+}
+
void delete_type(void *data)
{
sdlTypePtr type = *((sdlTypePtr*)data);
@@ -2405,6 +2427,53 @@ void delete_type(void *data)
efree(type);
}
+void delete_type_persistent(void *data)
+{
+ sdlTypePtr type = *((sdlTypePtr*)data);
+ if (type->name) {
+ free(type->name);
+ }
+ if (type->namens) {
+ free(type->namens);
+ }
+ if (type->def) {
+ free(type->def);
+ }
+ if (type->fixed) {
+ free(type->fixed);
+ }
+ if (type->elements) {
+ zend_hash_destroy(type->elements);
+ free(type->elements);
+ }
+ if (type->attributes) {
+ zend_hash_destroy(type->attributes);
+ free(type->attributes);
+ }
+ if (type->model) {
+ delete_model_persistent((void**)&type->model);
+ }
+ if (type->restrictions) {
+ delete_restriction_var_int_persistent(&type->restrictions->minExclusive);
+ delete_restriction_var_int_persistent(&type->restrictions->minInclusive);
+ delete_restriction_var_int_persistent(&type->restrictions->maxExclusive);
+ delete_restriction_var_int_persistent(&type->restrictions->maxInclusive);
+ delete_restriction_var_int_persistent(&type->restrictions->totalDigits);
+ delete_restriction_var_int_persistent(&type->restrictions->fractionDigits);
+ delete_restriction_var_int_persistent(&type->restrictions->length);
+ delete_restriction_var_int_persistent(&type->restrictions->minLength);
+ delete_restriction_var_int_persistent(&type->restrictions->maxLength);
+ delete_restriction_var_char_persistent(&type->restrictions->whiteSpace);
+ delete_restriction_var_char_persistent(&type->restrictions->pattern);
+ if (type->restrictions->enumeration) {
+ zend_hash_destroy(type->restrictions->enumeration);
+ free(type->restrictions->enumeration);
+ }
+ free(type->restrictions);
+ }
+ free(type);
+}
+
void delete_extra_attribute(void *attribute)
{
sdlExtraAttributePtr attr = *((sdlExtraAttributePtr*)attribute);
@@ -2418,6 +2487,19 @@ void delete_extra_attribute(void *attribute)
efree(attr);
}
+void delete_extra_attribute_persistent(void *attribute)
+{
+ sdlExtraAttributePtr attr = *((sdlExtraAttributePtr*)attribute);
+
+ if (attr->ns) {
+ free(attr->ns);
+ }
+ if (attr->val) {
+ free(attr->val);
+ }
+ free(attr);
+}
+
void delete_attribute(void *attribute)
{
sdlAttributePtr attr = *((sdlAttributePtr*)attribute);
@@ -2444,6 +2526,32 @@ void delete_attribute(void *attribute)
efree(attr);
}
+void delete_attribute_persistent(void *attribute)
+{
+ sdlAttributePtr attr = *((sdlAttributePtr*)attribute);
+
+ if (attr->def) {
+ free(attr->def);
+ }
+ if (attr->fixed) {
+ free(attr->fixed);
+ }
+ if (attr->name) {
+ free(attr->name);
+ }
+ if (attr->namens) {
+ free(attr->namens);
+ }
+ if (attr->ref) {
+ free(attr->ref);
+ }
+ if (attr->extraAttributes) {
+ zend_hash_destroy(attr->extraAttributes);
+ free(attr->extraAttributes);
+ }
+ free(attr);
+}
+
void delete_restriction_var_int(void *rvi)
{
sdlRestrictionIntPtr ptr = *((sdlRestrictionIntPtr*)rvi);
@@ -2452,6 +2560,14 @@ void delete_restriction_var_int(void *rvi)
}
}
+void delete_restriction_var_int_persistent(void *rvi)
+{
+ sdlRestrictionIntPtr ptr = *((sdlRestrictionIntPtr*)rvi);
+ if (ptr) {
+ free(ptr);
+ }
+}
+
void delete_restriction_var_char(void *srvc)
{
sdlRestrictionCharPtr ptr = *((sdlRestrictionCharPtr*)srvc);
@@ -2462,3 +2578,14 @@ void delete_restriction_var_char(void *srvc)
efree(ptr);
}
}
+
+void delete_restriction_var_char_persistent(void *srvc)
+{
+ sdlRestrictionCharPtr ptr = *((sdlRestrictionCharPtr*)srvc);
+ if (ptr) {
+ if (ptr->value) {
+ free(ptr->value);
+ }
+ free(ptr);
+ }
+}
diff --git a/ext/soap/php_schema.h b/ext/soap/php_schema.h
index e18391b58..58b8f32cb 100644
--- a/ext/soap/php_schema.h
+++ b/ext/soap/php_schema.h
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_schema.h,v 1.13.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_schema.h,v 1.13.2.2 2006/04/09 23:35:51 andrei Exp $ */
#ifndef PHP_SCHEMA_H
#define PHP_SCHEMA_H
@@ -26,9 +26,15 @@ int load_schema(sdlCtx *ctx, xmlNodePtr schema TSRMLS_DC);
void schema_pass2(sdlCtx *ctx);
void delete_model(void *handle);
+void delete_model_persistent(void *handle);
void delete_type(void *data);
+void delete_type_persistent(void *data);
void delete_extra_attribute(void *attribute);
+void delete_extra_attribute_persistent(void *attribute);
void delete_attribute(void *attribute);
+void delete_attribute_persistent(void *attribute);
void delete_restriction_var_int(void *rvi);
+void delete_restriction_var_int_persistent(void *rvi);
void delete_restriction_var_char(void *srvc);
+void delete_restriction_var_char_persistent(void *srvc);
#endif
diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c
index 7f24a5081..b0185c890 100644
--- a/ext/soap/php_sdl.c
+++ b/ext/soap/php_sdl.c
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_sdl.c,v 1.88.2.5 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_sdl.c,v 1.88.2.12 2006/04/19 10:48:54 dmitry Exp $ */
#include "php_soap.h"
#include "ext/libxml/php_libxml.h"
@@ -35,10 +35,15 @@
#endif
static void delete_fault(void *fault);
+static void delete_fault_persistent(void *fault);
static void delete_binding(void *binding);
+static void delete_binding_persistent(void *binding);
static void delete_function(void *function);
+static void delete_function_persistent(void *function);
static void delete_parameter(void *paramater);
+static void delete_parameter_persistent(void *paramater);
static void delete_header(void *header);
+static void delete_header_persistent(void *header);
static void delete_document(void *doc_ptr);
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr node, const char *type)
@@ -138,13 +143,18 @@ encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type)
enc = get_encoder_ex(NULL, enc_nscat, enc_len);
efree(enc_nscat);
if (enc && sdl) {
- encodePtr new_enc = emalloc(sizeof(encode));
+ encodePtr new_enc = pemalloc(sizeof(encode), sdl->is_persistent);
memcpy(new_enc, enc, sizeof(encode));
- new_enc->details.ns = estrndup(ns, ns_len);
- new_enc->details.type_str = estrdup(new_enc->details.type_str);
+ if (sdl->is_persistent) {
+ new_enc->details.ns = zend_strndup(ns, ns_len);
+ new_enc->details.type_str = strdup(new_enc->details.type_str);
+ } else {
+ new_enc->details.ns = estrndup(ns, ns_len);
+ new_enc->details.type_str = estrdup(new_enc->details.type_str);
+ }
if (sdl->encoders == NULL) {
- sdl->encoders = emalloc(sizeof(HashTable));
- zend_hash_init(sdl->encoders, 0, NULL, delete_encoder, 0);
+ sdl->encoders = pemalloc(sizeof(HashTable), sdl->is_persistent);
+ zend_hash_init(sdl->encoders, 0, NULL, delete_encoder, sdl->is_persistent);
}
zend_hash_update(sdl->encoders, nscat, len + 1, &new_enc, sizeof(encodePtr), NULL);
enc = new_enc;
@@ -1407,7 +1417,7 @@ static HashTable* sdl_deserialize_parameters(encodePtr *encoders, sdlTypePtr *ty
return ht;
}
-static sdlPtr get_sdl_from_cache(const char *fn, const char *uri, time_t t)
+static sdlPtr get_sdl_from_cache(const char *fn, const char *uri, time_t t, time_t *cached TSRMLS_DC)
{
sdlPtr sdl;
time_t old_t;
@@ -1451,6 +1461,7 @@ static sdlPtr get_sdl_from_cache(const char *fn, const char *uri, time_t t)
efree(buf);
return NULL;
}
+ *cached = old_t;
WSDL_CACHE_GET_INT(i, &in);
if (i == 0 && strncmp(in, uri, i) != 0) {
@@ -1983,7 +1994,7 @@ static void sdl_serialize_soap_body(sdlSoapBindingFunctionBodyPtr body, HashTabl
}
}
-static void add_sdl_to_cache(const char *fn, const char *uri, time_t t, sdlPtr sdl)
+static void add_sdl_to_cache(const char *fn, const char *uri, time_t t, sdlPtr sdl TSRMLS_DC)
{
smart_str buf = {0};
smart_str *out = &buf;
@@ -2258,14 +2269,867 @@ static void add_sdl_to_cache(const char *fn, const char *uri, time_t t, sdlPtr s
zend_hash_destroy(&tmp_types);
}
-sdlPtr get_sdl(zval *this_ptr, char *uri TSRMLS_DC)
+
+static void make_persistent_restriction_int(void *data)
+{
+ sdlRestrictionIntPtr *rest = (sdlRestrictionIntPtr *)data;
+ sdlRestrictionIntPtr prest = NULL;
+
+ prest = malloc(sizeof(sdlRestrictionInt));
+ *prest = **rest;
+ *rest = prest;
+}
+
+
+static void make_persistent_restriction_char(void *data)
+{
+ sdlRestrictionCharPtr *rest = (sdlRestrictionCharPtr *)data;
+ sdlRestrictionCharPtr prest = NULL;
+
+ prest = malloc(sizeof(sdlRestrictionChar));
+ memset(prest, 0, sizeof(sdlRestrictionChar));
+ prest->value = strdup((*rest)->value);
+ prest->fixed = (*rest)->fixed;
+ *rest = prest;
+}
+
+
+static void make_persistent_sdl_type_ref(sdlTypePtr *type, HashTable *ptr_map, HashTable *bp_types)
+{
+ sdlTypePtr *tmp;
+
+ if (zend_hash_find(ptr_map, (char *)type, sizeof(sdlTypePtr), (void**)&tmp) == SUCCESS) {
+ *type = *tmp;
+ } else {
+ zend_hash_next_index_insert(bp_types, (void*)&type, sizeof(sdlTypePtr*), NULL);
+ }
+}
+
+
+static void make_persistent_sdl_encoder_ref(encodePtr *enc, HashTable *ptr_map, HashTable *bp_encoders)
+{
+ encodePtr *tmp;
+
+ /* do not process defaultEncoding's here */
+ if ((*enc) >= defaultEncoding && (*enc) < defaultEncoding + numDefaultEncodings) {
+ return;
+ }
+
+ if (zend_hash_find(ptr_map, (char *)enc, sizeof(encodePtr), (void**)&tmp) == SUCCESS) {
+ *enc = *tmp;
+ } else {
+ zend_hash_next_index_insert(bp_encoders, (void*)&enc, sizeof(encodePtr*), NULL);
+ }
+}
+
+
+static HashTable* make_persistent_sdl_function_headers(HashTable *headers, HashTable *ptr_map)
+{
+ HashTable *pheaders;
+ sdlSoapBindingFunctionHeaderPtr *tmp, pheader;
+ encodePtr *penc;
+ sdlTypePtr *ptype;
+ ulong index;
+ char *key;
+ uint key_len;
+
+ pheaders = malloc(sizeof(HashTable));
+ zend_hash_init(pheaders, zend_hash_num_elements(headers), NULL, delete_header_persistent, 1);
+
+ zend_hash_internal_pointer_reset(headers);
+ while (zend_hash_get_current_data(headers, (void**)&tmp) == SUCCESS) {
+ pheader = malloc(sizeof(sdlSoapBindingFunctionHeader));
+ memset(pheader, 0, sizeof(sdlSoapBindingFunctionHeader));
+ *pheader = **tmp;
+
+ if (pheader->name) {
+ pheader->name = strdup(pheader->name);
+ }
+ if (pheader->ns) {
+ pheader->ns = strdup(pheader->ns);
+ }
+
+ if (pheader->encode->details.sdl_type) {
+ if (zend_hash_find(ptr_map, (char*)&pheader->encode, sizeof(encodePtr), (void**)&penc) == FAILURE) {
+ assert(0);
+ }
+ pheader->encode = *penc;
+ }
+ if (pheader->element) {
+ if (zend_hash_find(ptr_map, (char*)&pheader->element, sizeof(sdlTypePtr), (void**)&ptype) == FAILURE) {
+ assert(0);
+ }
+ pheader->element = *ptype;
+ }
+
+ if (pheader->headerfaults) {
+ pheader->headerfaults = make_persistent_sdl_function_headers(pheader->headerfaults, ptr_map);
+ }
+
+ if (zend_hash_get_current_key_ex(headers, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(pheaders, key, key_len, (void*)&pheader, sizeof(sdlSoapBindingFunctionHeaderPtr), NULL);
+ } else {
+ zend_hash_next_index_insert(pheaders, (void*)&pheader, sizeof(sdlSoapBindingFunctionHeaderPtr), NULL);
+ }
+
+ zend_hash_move_forward(headers);
+ }
+
+ return pheaders;
+}
+
+
+static void make_persistent_sdl_soap_body(sdlSoapBindingFunctionBodyPtr body, HashTable *ptr_map)
+{
+ if (body->ns) {
+ body->ns = strdup(body->ns);
+ }
+
+ if (body->headers) {
+ body->headers = make_persistent_sdl_function_headers(body->headers, ptr_map);
+ }
+}
+
+
+static HashTable* make_persistent_sdl_parameters(HashTable *params, HashTable *ptr_map)
+{
+ HashTable *pparams;
+ sdlParamPtr *tmp, pparam;
+ sdlTypePtr *ptype;
+ encodePtr *penc;
+ ulong index;
+ char *key;
+ uint key_len;
+
+ pparams = malloc(sizeof(HashTable));
+ zend_hash_init(pparams, zend_hash_num_elements(params), NULL, delete_parameter_persistent, 1);
+
+ zend_hash_internal_pointer_reset(params);
+ while (zend_hash_get_current_data(params, (void**)&tmp) == SUCCESS) {
+ pparam = malloc(sizeof(sdlParam));
+ memset(pparam, 0, sizeof(sdlParam));
+ *pparam = **tmp;
+
+ if (pparam->paramName) {
+ pparam->paramName = strdup(pparam->paramName);
+ }
+
+ if (pparam->encode && pparam->encode->details.sdl_type) {
+ if (zend_hash_find(ptr_map, (char*)&pparam->encode, sizeof(encodePtr), (void**)&penc) == FAILURE) {
+ assert(0);
+ }
+ pparam->encode = *penc;
+ }
+ if (pparam->element) {
+ if (zend_hash_find(ptr_map, (char*)&pparam->element, sizeof(sdlTypePtr), (void**)&ptype) == FAILURE) {
+ assert(0);
+ }
+ pparam->element = *ptype;
+ }
+
+ if (zend_hash_get_current_key_ex(params, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(pparams, key, key_len, (void*)&pparam, sizeof(sdlParamPtr), NULL);
+ } else {
+ zend_hash_next_index_insert(pparams, (void*)&pparam, sizeof(sdlParamPtr), NULL);
+ }
+
+ zend_hash_move_forward(params);
+ }
+
+
+ return pparams;
+}
+
+static HashTable* make_persistent_sdl_function_faults(sdlFunctionPtr func, HashTable *faults, HashTable *ptr_map)
+{
+ HashTable *pfaults;
+ sdlFaultPtr *tmp, pfault;
+ ulong index;
+ char *key;
+ uint key_len;
+
+ pfaults = malloc(sizeof(HashTable));
+ zend_hash_init(pfaults, zend_hash_num_elements(faults), NULL, delete_fault_persistent, 1);
+
+ zend_hash_internal_pointer_reset(faults);
+ while (zend_hash_get_current_data(faults, (void**)&tmp) == SUCCESS) {
+ pfault = malloc(sizeof(sdlFault));
+ memset(pfault, 0, sizeof(sdlFault));
+ *pfault = **tmp;
+
+ if (pfault->name) {
+ pfault->name = strdup(pfault->name);
+ }
+ if (pfault->details) {
+ pfault->details = make_persistent_sdl_parameters(pfault->details, ptr_map);
+ }
+
+ if (func->binding->bindingType == BINDING_SOAP && pfault->bindingAttributes) {
+ sdlSoapBindingFunctionFaultPtr soap_binding;
+
+ soap_binding = malloc(sizeof(sdlSoapBindingFunctionFault));
+ memset(soap_binding, 0, sizeof(sdlSoapBindingFunctionFault));
+ *soap_binding = *(sdlSoapBindingFunctionFaultPtr)pfault->bindingAttributes;
+ if (soap_binding->ns) {
+ soap_binding->ns = strdup(soap_binding->ns);
+ }
+ pfault->bindingAttributes = soap_binding;
+ }
+
+ if (zend_hash_get_current_key_ex(faults, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(pfaults, key, key_len, (void*)&pfault, sizeof(sdlParamPtr), NULL);
+ } else {
+ zend_hash_next_index_insert(pfaults, (void*)&pfault, sizeof(sdlParamPtr), NULL);
+ }
+
+ zend_hash_move_forward(faults);
+ }
+
+
+ return pfaults;
+}
+
+
+static sdlAttributePtr make_persistent_sdl_attribute(sdlAttributePtr attr, HashTable *ptr_map, HashTable *bp_types, HashTable *bp_encoders)
+{
+ sdlAttributePtr pattr;
+ ulong index;
+ char *key;
+ uint key_len;
+
+ pattr = malloc(sizeof(sdlAttribute));
+ memset(pattr, 0, sizeof(sdlAttribute));
+
+ *pattr = *attr;
+
+ if (pattr->name) {
+ pattr->name = strdup(pattr->name);
+ }
+ if (pattr->namens) {
+ pattr->namens = strdup(pattr->namens);
+ }
+ if (pattr->ref) {
+ pattr->ref = strdup(pattr->ref);
+ }
+ if (pattr->def) {
+ pattr->def = strdup(pattr->def);
+ }
+ if (pattr->fixed) {
+ pattr->fixed = strdup(pattr->fixed);
+ }
+
+ /* we do not want to process defaultEncoding's here */
+ if (pattr->encode) {
+ make_persistent_sdl_encoder_ref(&pattr->encode, ptr_map, bp_encoders);
+ }
+
+ if (pattr->extraAttributes) {
+ sdlExtraAttributePtr *tmp, pextra;
+
+ pattr->extraAttributes = malloc(sizeof(HashTable));
+ zend_hash_init(pattr->extraAttributes, zend_hash_num_elements(attr->extraAttributes), NULL, delete_extra_attribute_persistent, 1);
+
+ zend_hash_internal_pointer_reset(pattr->extraAttributes);
+ while (zend_hash_get_current_data(attr->extraAttributes, (void**)&tmp) == SUCCESS) {
+ pextra = malloc(sizeof(sdlExtraAttribute));
+ memset(pextra, 0, sizeof(sdlExtraAttribute));
+ if ((*tmp)->ns) {
+ pextra->ns = strdup((*tmp)->ns);
+ }
+ if ((*tmp)->val) {
+ pextra->val = strdup((*tmp)->val);
+ }
+
+ if (zend_hash_get_current_key_ex(attr->extraAttributes, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(pattr->extraAttributes, key, key_len, (void*)&pextra, sizeof(sdlExtraAttributePtr), NULL);
+ }
+
+ zend_hash_move_forward(attr->extraAttributes);
+ }
+ }
+
+ return pattr;
+}
+
+
+static sdlContentModelPtr make_persistent_sdl_model(sdlContentModelPtr model, HashTable *ptr_map, HashTable *bp_types, HashTable *bp_encoders)
+{
+ sdlContentModelPtr pmodel;
+ sdlContentModelPtr *tmp, pcontent;
+
+ pmodel = malloc(sizeof(sdlContentModel));
+ memset(pmodel, 0, sizeof(sdlContentModel));
+ *pmodel = *model;
+
+ switch (pmodel->kind) {
+ case XSD_CONTENT_ELEMENT:
+ if (pmodel->u.element) {
+ make_persistent_sdl_type_ref(&pmodel->u.element, ptr_map, bp_types);
+ }
+ break;
+
+ case XSD_CONTENT_SEQUENCE:
+ case XSD_CONTENT_ALL:
+ case XSD_CONTENT_CHOICE:
+ pmodel->u.content = malloc(sizeof(HashTable));
+ zend_hash_init(pmodel->u.content, zend_hash_num_elements(model->u.content), NULL, delete_model_persistent, 1);
+
+ zend_hash_internal_pointer_reset(model->u.content);
+ while (zend_hash_get_current_data(model->u.content, (void**)&tmp) == SUCCESS) {
+ pcontent = make_persistent_sdl_model(*tmp, ptr_map, bp_types, bp_encoders);
+ zend_hash_next_index_insert(pmodel->u.content, (void*)&pcontent, sizeof(sdlContentModelPtr), NULL);
+ zend_hash_move_forward(model->u.content);
+ }
+ break;
+
+ case XSD_CONTENT_GROUP_REF:
+ if (pmodel->u.group_ref) {
+ pmodel->u.group_ref = strdup(pmodel->u.group_ref);
+ }
+ break;
+
+ case XSD_CONTENT_GROUP:
+ if (pmodel->u.group) {
+ make_persistent_sdl_type_ref(&pmodel->u.group, ptr_map, bp_types);
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ return pmodel;
+}
+
+
+static sdlTypePtr make_persistent_sdl_type(sdlTypePtr type, HashTable *ptr_map, HashTable *bp_types, HashTable *bp_encoders)
{
+ ulong index;
+ char *key;
+ uint key_len;
+ sdlTypePtr ptype = NULL;
+
+ ptype = malloc(sizeof(sdlType));
+ memset(ptype, 0, sizeof(sdlType));
+
+ *ptype = *type;
+
+ if (ptype->name) {
+ ptype->name = strdup(ptype->name);
+ }
+ if (ptype->namens) {
+ ptype->namens = strdup(ptype->namens);
+ }
+ if (ptype->def) {
+ ptype->def = strdup(ptype->def);
+ }
+ if (ptype->fixed) {
+ ptype->fixed = strdup(ptype->fixed);
+ }
+ if (ptype->ref) {
+ ptype->ref = strdup(ptype->ref);
+ }
+
+ /* we do not want to process defaultEncoding's here */
+ if (ptype->encode) {
+ make_persistent_sdl_encoder_ref(&ptype->encode, ptr_map, bp_encoders);
+ }
+
+ if (ptype->restrictions) {
+ ptype->restrictions = malloc(sizeof(sdlRestrictions));
+ memset(ptype->restrictions, 0, sizeof(sdlRestrictions));
+ *ptype->restrictions = *type->restrictions;
+
+ if (ptype->restrictions->minExclusive) {
+ make_persistent_restriction_int(&ptype->restrictions->minExclusive);
+ }
+ if (ptype->restrictions->maxExclusive) {
+ make_persistent_restriction_int(&ptype->restrictions->maxExclusive);
+ }
+ if (ptype->restrictions->minInclusive) {
+ make_persistent_restriction_int(&ptype->restrictions->minInclusive);
+ }
+ if (ptype->restrictions->maxInclusive) {
+ make_persistent_restriction_int(&ptype->restrictions->maxInclusive);
+ }
+ if (ptype->restrictions->totalDigits) {
+ make_persistent_restriction_int(&ptype->restrictions->totalDigits);
+ }
+ if (ptype->restrictions->fractionDigits) {
+ make_persistent_restriction_int(&ptype->restrictions->fractionDigits);
+ }
+ if (ptype->restrictions->length) {
+ make_persistent_restriction_int(&ptype->restrictions->length);
+ }
+ if (ptype->restrictions->minLength) {
+ make_persistent_restriction_int(&ptype->restrictions->minLength);
+ }
+ if (ptype->restrictions->maxLength) {
+ make_persistent_restriction_int(&ptype->restrictions->maxLength);
+ }
+ if (ptype->restrictions->whiteSpace) {
+ make_persistent_restriction_char(&ptype->restrictions->whiteSpace);
+ }
+ if (ptype->restrictions->pattern) {
+ make_persistent_restriction_char(&ptype->restrictions->pattern);
+ }
+
+ if (type->restrictions->enumeration) {
+ sdlRestrictionCharPtr tmp;
+
+ ptype->restrictions->enumeration = malloc(sizeof(HashTable));
+ zend_hash_init(ptype->restrictions->enumeration, zend_hash_num_elements(type->restrictions->enumeration), NULL, delete_restriction_var_char_persistent, 1);
+ zend_hash_copy(ptype->restrictions->enumeration, type->restrictions->enumeration, make_persistent_restriction_char, (void*)&tmp, sizeof(sdlRestrictionCharPtr));
+ }
+ }
+
+ if (ptype->elements) {
+ sdlTypePtr *tmp, pelem;
+
+ ptype->elements = malloc(sizeof(HashTable));
+ zend_hash_init(ptype->elements, zend_hash_num_elements(type->elements), NULL, delete_type_persistent, 1);
+
+ zend_hash_internal_pointer_reset(type->elements);
+ while (zend_hash_get_current_data(type->elements, (void **)&tmp) == SUCCESS) {
+ pelem = make_persistent_sdl_type(*tmp, ptr_map, bp_types, bp_encoders);
+ if (zend_hash_get_current_key_ex(type->elements, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(ptype->elements, key, key_len, (void*)&pelem, sizeof(sdlTypePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(ptype->elements, (void*)&pelem, sizeof(sdlTypePtr), NULL);
+ }
+ zend_hash_add(ptr_map, (char*)tmp, sizeof(*tmp), (void*)&pelem, sizeof(sdlTypePtr), NULL);
+ zend_hash_move_forward(type->elements);
+ }
+ }
+
+ if (ptype->attributes) {
+ sdlAttributePtr *tmp, pattr;
+
+ ptype->attributes = malloc(sizeof(HashTable));
+ zend_hash_init(ptype->attributes, zend_hash_num_elements(type->attributes), NULL, delete_attribute_persistent, 1);
+
+ zend_hash_internal_pointer_reset(type->attributes);
+ while (zend_hash_get_current_data(type->attributes, (void **)&tmp) == SUCCESS) {
+ pattr = make_persistent_sdl_attribute(*tmp, ptr_map, bp_types, bp_encoders);
+ if (zend_hash_get_current_key_ex(type->attributes, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(ptype->attributes, key, key_len, (void*)&pattr, sizeof(sdlAttributePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(ptype->attributes, (void*)&pattr, sizeof(sdlAttributePtr), NULL);
+ }
+ zend_hash_move_forward(type->attributes);
+ }
+ }
+
+ if (type->model) {
+ ptype->model = make_persistent_sdl_model(ptype->model, ptr_map, bp_types, bp_encoders);
+ }
+
+ return ptype;
+}
+
+static encodePtr make_persistent_sdl_encoder(encodePtr enc, HashTable *ptr_map, HashTable *bp_types, HashTable *bp_encoders)
+{
+ encodePtr penc = NULL;
+
+ penc = malloc(sizeof(encode));
+ memset(penc, 0, sizeof(encode));
+
+ *penc = *enc;
+
+ if (penc->details.type_str) {
+ penc->details.type_str = strdup(penc->details.type_str);
+ }
+ if (penc->details.ns) {
+ penc->details.ns = strdup(penc->details.ns);
+ }
+
+ if (penc->details.sdl_type) {
+ make_persistent_sdl_type_ref(&penc->details.sdl_type, ptr_map, bp_types);
+ }
+
+ return penc;
+}
+
+static sdlBindingPtr make_persistent_sdl_binding(sdlBindingPtr bind, HashTable *ptr_map)
+{
+ sdlBindingPtr pbind = NULL;
+
+ pbind = malloc(sizeof(sdlBinding));
+ memset(pbind, 0, sizeof(sdlBinding));
+
+ *pbind = *bind;
+
+ if (pbind->name) {
+ pbind->name = strdup(pbind->name);
+ }
+ if (pbind->location) {
+ pbind->location = strdup(pbind->location);
+ }
+
+ if (pbind->bindingType == BINDING_SOAP && pbind->bindingAttributes) {
+ sdlSoapBindingPtr soap_binding;
+
+ soap_binding = malloc(sizeof(sdlSoapBinding));
+ memset(soap_binding, 0, sizeof(sdlSoapBinding));
+ *soap_binding = *(sdlSoapBindingPtr)pbind->bindingAttributes;
+ pbind->bindingAttributes = soap_binding;
+ }
+
+ return pbind;
+}
+
+static sdlFunctionPtr make_persistent_sdl_function(sdlFunctionPtr func, HashTable *ptr_map)
+{
+ sdlFunctionPtr pfunc = NULL;
+
+ pfunc = malloc(sizeof(sdlFunction));
+ memset(pfunc, 0, sizeof(sdlFunction));
+
+ *pfunc = *func;
+
+ if (pfunc->functionName) {
+ pfunc->functionName = strdup(pfunc->functionName);
+ }
+ if (pfunc->requestName) {
+ pfunc->requestName = strdup(pfunc->requestName);
+ }
+ if (pfunc->responseName) {
+ pfunc->responseName = strdup(pfunc->responseName);
+ }
+
+ if (pfunc->binding) {
+ sdlBindingPtr *tmp;
+
+ if (zend_hash_find(ptr_map, (char*)&pfunc->binding, sizeof(pfunc->binding), (void**)&tmp) == FAILURE) {
+ assert(0);
+ }
+ pfunc->binding = *tmp;
+
+ if (pfunc->binding->bindingType == BINDING_SOAP && pfunc->bindingAttributes) {
+ sdlSoapBindingFunctionPtr soap_binding;
+
+ soap_binding = malloc(sizeof(sdlSoapBindingFunction));
+ memset(soap_binding, 0, sizeof(sdlSoapBindingFunction));
+ *soap_binding = *(sdlSoapBindingFunctionPtr)pfunc->bindingAttributes;
+ if (soap_binding->soapAction) {
+ soap_binding->soapAction = strdup(soap_binding->soapAction);
+ }
+ make_persistent_sdl_soap_body(&soap_binding->input, ptr_map);
+ make_persistent_sdl_soap_body(&soap_binding->output, ptr_map);
+ pfunc->bindingAttributes = soap_binding;
+ }
+
+ if (pfunc->requestParameters) {
+ pfunc->requestParameters = make_persistent_sdl_parameters(pfunc->requestParameters, ptr_map);
+ }
+ if (pfunc->responseParameters) {
+ pfunc->responseParameters = make_persistent_sdl_parameters(pfunc->responseParameters, ptr_map);
+ }
+ if (pfunc->faults) {
+ pfunc->faults = make_persistent_sdl_function_faults(pfunc, pfunc->faults, ptr_map);
+ }
+ }
+
+ return pfunc;
+}
+
+static sdlPtr make_persistent_sdl(sdlPtr sdl TSRMLS_DC)
+{
+ sdlPtr psdl = NULL;
+ HashTable ptr_map;
+ HashTable bp_types, bp_encoders;
+ ulong index;
+ char *key;
+ uint key_len;
+
+ zend_hash_init(&bp_types, 0, NULL, NULL, 0);
+ zend_hash_init(&bp_encoders, 0, NULL, NULL, 0);
+ zend_hash_init(&ptr_map, 0, NULL, NULL, 0);
+
+ psdl = malloc(sizeof(*sdl));
+ memset(psdl, 0, sizeof(*sdl));
+
+ if (sdl->source) {
+ psdl->source = strdup(sdl->source);
+ }
+ if (sdl->target_ns) {
+ psdl->target_ns = strdup(sdl->target_ns);
+ }
+
+ if (sdl->groups) {
+ sdlTypePtr *tmp;
+ sdlTypePtr ptype;
+
+ psdl->groups = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->groups, zend_hash_num_elements(sdl->groups), NULL, delete_type_persistent, 1);
+
+ zend_hash_internal_pointer_reset(sdl->groups);
+ while (zend_hash_get_current_data(sdl->groups, (void **)&tmp) == SUCCESS) {
+ ptype = make_persistent_sdl_type(*tmp, &ptr_map, &bp_types, &bp_encoders);
+ if (zend_hash_get_current_key_ex(sdl->groups, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->groups, key, key_len, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(psdl->groups, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ zend_hash_move_forward(sdl->groups);
+ }
+ }
+
+ if (sdl->types) {
+ sdlTypePtr *tmp;
+ sdlTypePtr ptype;
+
+ psdl->types = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->types, zend_hash_num_elements(sdl->types), NULL, delete_type_persistent, 1);
+
+ zend_hash_internal_pointer_reset(sdl->types);
+ while (zend_hash_get_current_data(sdl->types, (void **)&tmp) == SUCCESS) {
+ ptype = make_persistent_sdl_type(*tmp, &ptr_map, &bp_types, &bp_encoders);
+ if (zend_hash_get_current_key_ex(sdl->types, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->types, key, key_len, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(psdl->types, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ zend_hash_move_forward(sdl->types);
+ }
+ }
+
+ if (sdl->elements) {
+ sdlTypePtr *tmp;
+ sdlTypePtr ptype;
+
+ psdl->elements = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->elements, zend_hash_num_elements(sdl->elements), NULL, delete_type_persistent, 1);
+
+ zend_hash_internal_pointer_reset(sdl->elements);
+ while (zend_hash_get_current_data(sdl->elements, (void **)&tmp) == SUCCESS) {
+ ptype = make_persistent_sdl_type(*tmp, &ptr_map, &bp_types, &bp_encoders);
+ if (zend_hash_get_current_key_ex(sdl->elements, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->elements, key, key_len, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(psdl->elements, (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&ptype, sizeof(sdlTypePtr), NULL);
+ zend_hash_move_forward(sdl->elements);
+ }
+ }
+
+ if (sdl->encoders) {
+ encodePtr *tmp;
+ encodePtr penc;
+
+ psdl->encoders = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->encoders, zend_hash_num_elements(sdl->encoders), NULL, delete_encoder_persistent, 1);
+
+ zend_hash_internal_pointer_reset(sdl->encoders);
+ while (zend_hash_get_current_data(sdl->encoders, (void **)&tmp) == SUCCESS) {
+ penc = make_persistent_sdl_encoder(*tmp, &ptr_map, &bp_types, &bp_encoders);
+ if (zend_hash_get_current_key_ex(sdl->encoders, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->encoders, key, key_len, (void*)&penc, sizeof(encodePtr), NULL);
+ } else {
+ zend_hash_next_index_insert(psdl->encoders, (void*)&penc, sizeof(encodePtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&penc, sizeof(encodePtr), NULL);
+ zend_hash_move_forward(sdl->encoders);
+ }
+ }
+
+ /* do backpatching here */
+ if (zend_hash_num_elements(&bp_types)) {
+ sdlTypePtr **tmp, *ptype = NULL;
+
+ zend_hash_internal_pointer_reset(&bp_types);
+ while (zend_hash_get_current_data(&bp_types, (void**)&tmp) == SUCCESS) {
+ if (zend_hash_find(&ptr_map, (char*)(*tmp), sizeof(**tmp), (void**)&ptype) == FAILURE) {
+ assert(0);
+ }
+ **tmp = *ptype;
+ zend_hash_move_forward(&bp_types);
+ }
+ }
+ if (zend_hash_num_elements(&bp_encoders)) {
+ encodePtr **tmp, *penc = NULL;
+
+ zend_hash_internal_pointer_reset(&bp_encoders);
+ while (zend_hash_get_current_data(&bp_encoders, (void**)&tmp) == SUCCESS) {
+ if (zend_hash_find(&ptr_map, (char*)(*tmp), sizeof(**tmp), (void**)&penc) == FAILURE) {
+ assert(0);
+ }
+ **tmp = *penc;
+ zend_hash_move_forward(&bp_encoders);
+ }
+ }
+
+
+ if (sdl->bindings) {
+ sdlBindingPtr *tmp;
+ sdlBindingPtr pbind;
+
+ psdl->bindings = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->bindings, zend_hash_num_elements(sdl->bindings), NULL, delete_binding_persistent, 1);
+
+ zend_hash_internal_pointer_reset(sdl->bindings);
+ while (zend_hash_get_current_data(sdl->bindings, (void **)&tmp) == SUCCESS) {
+ pbind = make_persistent_sdl_binding(*tmp, &ptr_map);
+ if (zend_hash_get_current_key_ex(sdl->bindings, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->bindings, key, key_len, (void*)&pbind, sizeof(sdlBindingPtr), NULL);
+ } else {
+ zend_hash_next_index_insert(psdl->bindings, (void*)&pbind, sizeof(sdlBindingPtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&pbind, sizeof(sdlBindingPtr), NULL);
+ zend_hash_move_forward(sdl->bindings);
+ }
+ }
+
+ zend_hash_init(&psdl->functions, zend_hash_num_elements(&sdl->functions), NULL, delete_function_persistent, 1);
+ if (zend_hash_num_elements(&sdl->functions)) {
+ sdlFunctionPtr *tmp;
+ sdlFunctionPtr pfunc;
+
+ zend_hash_internal_pointer_reset(&sdl->functions);
+ while (zend_hash_get_current_data(&sdl->functions, (void **)&tmp) == SUCCESS) {
+ pfunc = make_persistent_sdl_function(*tmp, &ptr_map);
+ if (zend_hash_get_current_key_ex(&sdl->functions, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(&psdl->functions, key, key_len, (void*)&pfunc, sizeof(sdlFunctionPtr), NULL);
+ } else {
+ zend_hash_next_index_insert(&psdl->functions, (void*)&pfunc, sizeof(sdlFunctionPtr), NULL);
+ }
+ zend_hash_add(&ptr_map, (char*)tmp, sizeof(*tmp), (void*)&pfunc, sizeof(sdlFunctionPtr), NULL);
+ zend_hash_move_forward(&sdl->functions);
+ }
+ }
+
+ if (sdl->requests) {
+ sdlFunctionPtr *tmp;
+ sdlFunctionPtr *preq;
+
+ psdl->requests = malloc(sizeof(HashTable));
+ zend_hash_init(psdl->requests, zend_hash_num_elements(sdl->requests), NULL, NULL, 1);
+
+ zend_hash_internal_pointer_reset(sdl->requests);
+ while (zend_hash_get_current_data(sdl->requests, (void **)&tmp) == SUCCESS) {
+ if (zend_hash_find(&ptr_map, (char*)tmp, sizeof(*tmp), (void**)&preq) == FAILURE) {
+ assert(0);
+ }
+ *tmp = *preq;
+ if (zend_hash_get_current_key_ex(sdl->requests, &key, &key_len, &index, 0, NULL) == HASH_KEY_IS_STRING) {
+ zend_hash_add(psdl->requests, key, key_len, (void*)&preq, sizeof(sdlFunctionPtr), NULL);
+ }
+ zend_hash_move_forward(sdl->requests);
+ }
+ }
+
+ zend_hash_destroy(&ptr_map);
+ zend_hash_destroy(&bp_encoders);
+ zend_hash_destroy(&bp_types);
+
+ return psdl;
+}
+
+typedef struct _sdl_cache_bucket {
+ sdlPtr sdl;
+ time_t time;
+} sdl_cache_bucket;
+
+static void delete_psdl(void *data)
+{
+ sdl_cache_bucket *p = (sdl_cache_bucket*)data;
+ sdlPtr tmp = p->sdl;
+
+ zend_hash_destroy(&tmp->functions);
+ if (tmp->source) {
+ free(tmp->source);
+ }
+ if (tmp->target_ns) {
+ free(tmp->target_ns);
+ }
+ if (tmp->elements) {
+ zend_hash_destroy(tmp->elements);
+ free(tmp->elements);
+ }
+ if (tmp->encoders) {
+ zend_hash_destroy(tmp->encoders);
+ free(tmp->encoders);
+ }
+ if (tmp->types) {
+ zend_hash_destroy(tmp->types);
+ free(tmp->types);
+ }
+ if (tmp->groups) {
+ zend_hash_destroy(tmp->groups);
+ free(tmp->groups);
+ }
+ if (tmp->bindings) {
+ zend_hash_destroy(tmp->bindings);
+ free(tmp->bindings);
+ }
+ if (tmp->requests) {
+ zend_hash_destroy(tmp->requests);
+ free(tmp->requests);
+ }
+ free(tmp);
+}
+
+sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC)
+{
+ char fn[MAXPATHLEN];
sdlPtr sdl = NULL;
char* old_error_code = SOAP_GLOBAL(error_code);
- int uri_len;
+ int uri_len = 0;
php_stream_context *context=NULL;
- zval **tmp, **proxy_host, **proxy_port, *orig_context, *new_context;
+ zval **tmp, **proxy_host, **proxy_port, *orig_context = NULL, *new_context = NULL;
smart_str headers = {0};
+ char* key = NULL;
+ time_t t = time(0);
+
+ if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri, uri_len)) {
+ uri_len = strlen(uri);
+ } else if (VCWD_REALPATH(uri, fn) == NULL) {
+ cache_wsdl = WSDL_CACHE_NONE;
+ } else {
+ uri = fn;
+ uri_len = strlen(uri);
+ }
+
+ if ((cache_wsdl & WSDL_CACHE_MEMORY) && SOAP_GLOBAL(mem_cache)) {
+ sdl_cache_bucket *p;
+
+ if (SUCCESS == zend_hash_find(SOAP_GLOBAL(mem_cache), uri, uri_len+1, (void*)&p)) {
+ if (p->time < t - SOAP_GLOBAL(cache_ttl)) {
+ /* in-memory cache entry is expired */
+ zend_hash_del(&EG(persistent_list), uri, uri_len+1);
+ } else {
+ return p->sdl;
+ }
+ }
+ }
+
+ if ((cache_wsdl & WSDL_CACHE_DISK) && (uri_len < MAXPATHLEN)) {
+ time_t t = time(0);
+ char md5str[33];
+ PHP_MD5_CTX context;
+ unsigned char digest[16];
+ int len = strlen(SOAP_GLOBAL(cache_dir));
+ time_t cached;
+
+ md5str[0] = '\0';
+ PHP_MD5Init(&context);
+ PHP_MD5Update(&context, uri, uri_len);
+ PHP_MD5Final(digest, &context);
+ make_digest(md5str, digest);
+ key = emalloc(len+sizeof("/wsdl-")-1+sizeof(md5str));
+ memcpy(key,SOAP_GLOBAL(cache_dir),len);
+ memcpy(key+len,"/wsdl-",sizeof("/wsdl-")-1);
+ memcpy(key+len+sizeof("/wsdl-")-1,md5str,sizeof(md5str));
+
+ if ((sdl = get_sdl_from_cache(key, uri, t-SOAP_GLOBAL(cache_ttl), &cached TSRMLS_CC)) != NULL) {
+ t = cached;
+ efree(key);
+ goto cache_in_memory;
+ }
+ }
if (SUCCESS == zend_hash_find(Z_OBJPROP_P(this_ptr),
"_stream_context", sizeof("_stream_context"), (void**)&tmp)) {
@@ -2330,42 +3194,9 @@ sdlPtr get_sdl(zval *this_ptr, char *uri TSRMLS_DC)
SOAP_GLOBAL(error_code) = "WSDL";
- if (SOAP_GLOBAL(cache_enabled) && ((uri_len = strlen(uri)) < MAXPATHLEN)) {
- char fn[MAXPATHLEN];
-
- if (strchr(uri,':') != NULL || IS_ABSOLUTE_PATH(uri, uri_len)) {
- strcpy(fn, uri);
- } else if (VCWD_REALPATH(uri, fn) == NULL) {
- sdl = load_wsdl(this_ptr, uri TSRMLS_CC);
- }
- if (sdl == NULL) {
- char* key;
- time_t t = time(0);
- char md5str[33];
- PHP_MD5_CTX context;
- unsigned char digest[16];
- int len = strlen(SOAP_GLOBAL(cache_dir));
-
- md5str[0] = '\0';
- PHP_MD5Init(&context);
- PHP_MD5Update(&context, fn, strlen(fn));
- PHP_MD5Final(digest, &context);
- make_digest(md5str, digest);
- key = emalloc(len+sizeof("/wsdl-")-1+sizeof(md5str));
- memcpy(key,SOAP_GLOBAL(cache_dir),len);
- memcpy(key+len,"/wsdl-",sizeof("/wsdl-")-1);
- memcpy(key+len+sizeof("/wsdl-")-1,md5str,sizeof(md5str));
-
- if ((sdl = get_sdl_from_cache(key, fn, t-SOAP_GLOBAL(cache_ttl))) == NULL) {
- sdl = load_wsdl(this_ptr, fn TSRMLS_CC);
- if (sdl != NULL) {
- add_sdl_to_cache(key, fn, t, sdl);
- }
- }
- efree(key);
- }
- } else {
- sdl = load_wsdl(this_ptr, uri TSRMLS_CC);
+ sdl = load_wsdl(this_ptr, uri TSRMLS_CC);
+ if (sdl) {
+ sdl->is_persistent = 0;
}
SOAP_GLOBAL(error_code) = old_error_code;
@@ -2375,11 +3206,72 @@ sdlPtr get_sdl(zval *this_ptr, char *uri TSRMLS_DC)
zval_ptr_dtor(&new_context);
}
+ if ((cache_wsdl & WSDL_CACHE_DISK) && key) {
+ if (sdl) {
+ add_sdl_to_cache(key, uri, t, sdl TSRMLS_CC);
+ }
+ efree(key);
+ }
+
+cache_in_memory:
+ if (cache_wsdl & WSDL_CACHE_MEMORY) {
+ if (sdl) {
+ sdlPtr psdl;
+ sdl_cache_bucket p;
+
+ if (SOAP_GLOBAL(mem_cache) == NULL) {
+ SOAP_GLOBAL(mem_cache) = malloc(sizeof(HashTable));
+ zend_hash_init(SOAP_GLOBAL(mem_cache), 0, NULL, delete_psdl, 1);
+ } else if (SOAP_GLOBAL(cache_limit) > 0 &&
+ SOAP_GLOBAL(cache_limit) <= zend_hash_num_elements(SOAP_GLOBAL(mem_cache))) {
+ /* in-memory cache overflow */
+ sdl_cache_bucket *q;
+ HashPosition pos;
+ time_t latest = t;
+ char *key = NULL;
+ uint key_len;
+ ulong idx;
+
+ for (zend_hash_internal_pointer_reset_ex(SOAP_GLOBAL(mem_cache), &pos);
+ zend_hash_get_current_data_ex(SOAP_GLOBAL(mem_cache), (void **) &q, &pos) == SUCCESS;
+ zend_hash_move_forward_ex(SOAP_GLOBAL(mem_cache), &pos)) {
+ if (q->time < latest) {
+ latest = q->time;
+ zend_hash_get_current_key_ex(SOAP_GLOBAL(mem_cache), &key, &key_len, &idx, 0, &pos);
+ }
+ }
+ if (key) {
+ zend_hash_del(SOAP_GLOBAL(mem_cache), key, key_len);
+ } else {
+ return sdl;
+ }
+ }
+
+ psdl = make_persistent_sdl(sdl TSRMLS_CC);
+ psdl->is_persistent = 1;
+ p.time = t;
+ p.sdl = psdl;
+
+ if (SUCCESS == zend_hash_update(SOAP_GLOBAL(mem_cache), uri,
+ uri_len+1, (void*)&p, sizeof(sdl_cache_bucket), NULL)) {
+ /* remove non-persitent sdl structure */
+ delete_sdl_impl(sdl);
+ /* and replace it with persistent one */
+ sdl = psdl;
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to register persistent entry");
+ /* clean up persistent sdl */
+ delete_psdl(&p);
+ /* keep non-persistent sdl and return it */
+ }
+ }
+ }
+
return sdl;
}
/* Deletes */
-void delete_sdl(void *handle)
+void delete_sdl_impl(void *handle)
{
sdlPtr tmp = (sdlPtr)handle;
@@ -2417,6 +3309,15 @@ void delete_sdl(void *handle)
efree(tmp);
}
+void delete_sdl(void *handle)
+{
+ sdlPtr tmp = (sdlPtr)handle;
+
+ if (!tmp->is_persistent) {
+ delete_sdl_impl(tmp);
+ }
+}
+
static void delete_binding(void *data)
{
sdlBindingPtr binding = *((sdlBindingPtr*)data);
@@ -2437,6 +3338,26 @@ static void delete_binding(void *data)
efree(binding);
}
+static void delete_binding_persistent(void *data)
+{
+ sdlBindingPtr binding = *((sdlBindingPtr*)data);
+
+ if (binding->location) {
+ free(binding->location);
+ }
+ if (binding->name) {
+ free(binding->name);
+ }
+
+ if (binding->bindingType == BINDING_SOAP) {
+ sdlSoapBindingPtr soapBind = binding->bindingAttributes;
+ if (soapBind) {
+ free(soapBind);
+ }
+ }
+ free(binding);
+}
+
static void delete_sdl_soap_binding_function_body(sdlSoapBindingFunctionBody body)
{
if (body.ns) {
@@ -2448,6 +3369,17 @@ static void delete_sdl_soap_binding_function_body(sdlSoapBindingFunctionBody bod
}
}
+static void delete_sdl_soap_binding_function_body_persistent(sdlSoapBindingFunctionBody body)
+{
+ if (body.ns) {
+ free(body.ns);
+ }
+ if (body.headers) {
+ zend_hash_destroy(body.headers);
+ free(body.headers);
+ }
+}
+
static void delete_function(void *data)
{
sdlFunctionPtr function = *((sdlFunctionPtr*)data);
@@ -2487,6 +3419,45 @@ static void delete_function(void *data)
efree(function);
}
+static void delete_function_persistent(void *data)
+{
+ sdlFunctionPtr function = *((sdlFunctionPtr*)data);
+
+ if (function->functionName) {
+ free(function->functionName);
+ }
+ if (function->requestName) {
+ free(function->requestName);
+ }
+ if (function->responseName) {
+ free(function->responseName);
+ }
+ if (function->requestParameters) {
+ zend_hash_destroy(function->requestParameters);
+ free(function->requestParameters);
+ }
+ if (function->responseParameters) {
+ zend_hash_destroy(function->responseParameters);
+ free(function->responseParameters);
+ }
+ if (function->faults) {
+ zend_hash_destroy(function->faults);
+ free(function->faults);
+ }
+
+ if (function->bindingAttributes &&
+ function->binding && function->binding->bindingType == BINDING_SOAP) {
+ sdlSoapBindingFunctionPtr soapFunction = function->bindingAttributes;
+ if (soapFunction->soapAction) {
+ free(soapFunction->soapAction);
+ }
+ delete_sdl_soap_binding_function_body_persistent(soapFunction->input);
+ delete_sdl_soap_binding_function_body_persistent(soapFunction->output);
+ free(soapFunction);
+ }
+ free(function);
+}
+
static void delete_parameter(void *data)
{
sdlParamPtr param = *((sdlParamPtr*)data);
@@ -2496,6 +3467,15 @@ static void delete_parameter(void *data)
efree(param);
}
+static void delete_parameter_persistent(void *data)
+{
+ sdlParamPtr param = *((sdlParamPtr*)data);
+ if (param->paramName) {
+ free(param->paramName);
+ }
+ free(param);
+}
+
static void delete_header(void *data)
{
sdlSoapBindingFunctionHeaderPtr hdr = *((sdlSoapBindingFunctionHeaderPtr*)data);
@@ -2512,6 +3492,22 @@ static void delete_header(void *data)
efree(hdr);
}
+static void delete_header_persistent(void *data)
+{
+ sdlSoapBindingFunctionHeaderPtr hdr = *((sdlSoapBindingFunctionHeaderPtr*)data);
+ if (hdr->name) {
+ free(hdr->name);
+ }
+ if (hdr->ns) {
+ free(hdr->ns);
+ }
+ if (hdr->headerfaults) {
+ zend_hash_destroy(hdr->headerfaults);
+ free(hdr->headerfaults);
+ }
+ free(hdr);
+}
+
static void delete_fault(void *data)
{
sdlFaultPtr fault = *((sdlFaultPtr*)data);
@@ -2533,8 +3529,30 @@ static void delete_fault(void *data)
efree(fault);
}
+static void delete_fault_persistent(void *data)
+{
+ sdlFaultPtr fault = *((sdlFaultPtr*)data);
+ if (fault->name) {
+ free(fault->name);
+ }
+ if (fault->details) {
+ zend_hash_destroy(fault->details);
+ free(fault->details);
+ }
+ if (fault->bindingAttributes) {
+ sdlSoapBindingFunctionFaultPtr binding = (sdlSoapBindingFunctionFaultPtr)fault->bindingAttributes;
+
+ if (binding->ns) {
+ free(binding->ns);
+ }
+ free(fault->bindingAttributes);
+ }
+ free(fault);
+}
+
static void delete_document(void *doc_ptr)
{
xmlDocPtr doc = *((xmlDocPtr*)doc_ptr);
xmlFreeDoc(doc);
}
+
diff --git a/ext/soap/php_sdl.h b/ext/soap/php_sdl.h
index 155f819d6..2d615e7cf 100644
--- a/ext/soap/php_sdl.h
+++ b/ext/soap/php_sdl.h
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_sdl.h,v 1.37.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_sdl.h,v 1.37.2.3 2006/04/19 10:48:54 dmitry Exp $ */
#ifndef PHP_SDL_H
#define PHP_SDL_H
@@ -61,6 +61,7 @@ struct _sdl {
HashTable *groups; /* array of sdlTypesPtr */
char *target_ns;
char *source;
+ zend_bool is_persistent;
};
typedef struct sdlCtx {
@@ -250,7 +251,8 @@ struct _sdlAttribute {
encodePtr encode;
};
-sdlPtr get_sdl(zval *this_ptr, char *uri TSRMLS_DC);
+
+sdlPtr get_sdl(zval *this_ptr, char *uri, long cache_wsdl TSRMLS_DC);
encodePtr get_encoder_from_prefix(sdlPtr sdl, xmlNodePtr data, const char *type);
encodePtr get_encoder(sdlPtr sdl, const char *ns, const char *type);
@@ -260,5 +262,6 @@ sdlBindingPtr get_binding_from_type(sdlPtr sdl, int type);
sdlBindingPtr get_binding_from_name(sdlPtr sdl, char *name, char *ns);
void delete_sdl(void *handle);
+void delete_sdl_impl(void *handle);
#endif
diff --git a/ext/soap/php_soap.h b/ext/soap/php_soap.h
index 4a521569f..f652ef094 100644
--- a/ext/soap/php_soap.h
+++ b/ext/soap/php_soap.h
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_soap.h,v 1.38.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_soap.h,v 1.38.2.6 2006/04/19 10:48:54 dmitry Exp $ */
#ifndef PHP_SOAP_H
#define PHP_SOAP_H
@@ -97,6 +97,8 @@ struct _soapMapping {
} map_class;
};
+struct _soapHeader;
+
struct _soapService {
sdlPtr sdl;
@@ -119,6 +121,8 @@ struct _soapService {
char *uri;
xmlCharEncodingHandlerPtr encoding;
HashTable *class_map;
+ int features;
+ struct _soapHeader **soap_headers_ptr;
};
#define SOAP_CLASS 1
@@ -151,6 +155,14 @@ struct _soapService {
#define SOAP_AUTHENTICATION_BASIC 0
#define SOAP_AUTHENTICATION_DIGEST 1
+#define SOAP_SINGLE_ELEMENT_ARRAYS (1<<0)
+#define SOAP_WAIT_ONE_WAY_CALLS (2<<0)
+
+#define WSDL_CACHE_NONE 0x0
+#define WSDL_CACHE_DISK 0x1
+#define WSDL_CACHE_MEMORY 0x2
+#define WSDL_CACHE_BOTH 0x3
+
ZEND_BEGIN_MODULE_GLOBALS(soap)
HashTable defEncNs; /* mapping of default namespaces to prefixes */
HashTable defEnc;
@@ -162,11 +174,15 @@ ZEND_BEGIN_MODULE_GLOBALS(soap)
zend_bool use_soap_error_handler;
char* error_code;
zval* error_object;
- zend_bool cache_enabled;
+ long cache;
char* cache_dir;
long cache_ttl;
+ long cache_limit;
+ HashTable *mem_cache;
xmlCharEncodingHandlerPtr encoding;
HashTable *class_map;
+ int features;
+ HashTable wsdl_cache;
ZEND_END_MODULE_GLOBALS(soap)
#ifdef PHP_WIN32
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index b812c14e1..1cae27a54 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -17,7 +17,7 @@
| Dmitry Stogov <dmitry@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: soap.c,v 1.156.2.11 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: soap.c,v 1.156.2.29 2006/05/25 08:14:50 dmitry Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -244,6 +244,7 @@ PHP_METHOD(SoapServer, getFunctions);
PHP_METHOD(SoapServer, handle);
PHP_METHOD(SoapServer, setPersistence);
PHP_METHOD(SoapServer, fault);
+PHP_METHOD(SoapServer, addSoapHeader);
#ifdef HAVE_PHP_DOMXML
PHP_METHOD(PHP_SOAP_SERVER_CLASS, map);
#endif
@@ -309,6 +310,7 @@ static zend_function_entry soap_server_functions[] = {
PHP_ME(SoapServer, getFunctions, NULL, 0)
PHP_ME(SoapServer, handle, NULL, 0)
PHP_ME(SoapServer, fault, NULL, 0)
+ PHP_ME(SoapServer, addSoapHeader, NULL, 0)
#ifdef HAVE_PHP_DOMXML
PHP_ME(SoapServer, map, NULL, 0)
#endif
@@ -389,18 +391,49 @@ zend_module_entry soap_module_entry = {
ZEND_GET_MODULE(soap)
#endif
+#ifndef ZEND_ENGINE_2
+# define OnUpdateLong OnUpdateInt
+#endif
+
+ZEND_INI_MH(OnUpdateCacheEnabled)
+{
+ long *p;
+#ifndef ZTS
+ char *base = (char *) mh_arg2;
+#else
+ char *base;
+
+ base = (char *) ts_resource(*((int *) mh_arg2));
+#endif
+
+ p = (long*) (base+(size_t) mh_arg1);
+
+ if (new_value_length==2 && strcasecmp("on", new_value)==0) {
+ *p = 1;
+ }
+ else if (new_value_length==3 && strcasecmp("yes", new_value)==0) {
+ *p = 1;
+ }
+ else if (new_value_length==4 && strcasecmp("true", new_value)==0) {
+ *p = 1;
+ }
+ else {
+ *p = (long) (atoi(new_value) != 0);
+ }
+ return SUCCESS;
+}
+
PHP_INI_BEGIN()
-STD_PHP_INI_ENTRY("soap.wsdl_cache_enabled", "1", PHP_INI_ALL, OnUpdateBool,
- cache_enabled, zend_soap_globals, soap_globals)
+STD_PHP_INI_ENTRY("soap.wsdl_cache_enabled", "1", PHP_INI_ALL, OnUpdateCacheEnabled,
+ cache, zend_soap_globals, soap_globals)
STD_PHP_INI_ENTRY("soap.wsdl_cache_dir", "/tmp", PHP_INI_ALL, OnUpdateString,
cache_dir, zend_soap_globals, soap_globals)
-#ifdef ZEND_ENGINE_2
STD_PHP_INI_ENTRY("soap.wsdl_cache_ttl", "86400", PHP_INI_ALL, OnUpdateLong,
cache_ttl, zend_soap_globals, soap_globals)
-#else
-STD_PHP_INI_ENTRY("soap.wsdl_cache_ttl", "86400", PHP_INI_ALL, OnUpdateInt,
- cache_ttl, zend_soap_globals, soap_globals)
-#endif
+STD_PHP_INI_ENTRY("soap.wsdl_cache", "1", PHP_INI_ALL, OnUpdateLong,
+ cache, zend_soap_globals, soap_globals)
+STD_PHP_INI_ENTRY("soap.wsdl_cache_limit", "5", PHP_INI_ALL, OnUpdateLong,
+ cache_limit, zend_soap_globals, soap_globals)
PHP_INI_END()
static HashTable defEnc, defEncIndex, defEncNs;
@@ -457,6 +490,7 @@ static void php_soap_init_globals(zend_soap_globals *soap_globals TSRMLS_DC)
soap_globals->error_object = NULL;
soap_globals->sdl = NULL;
soap_globals->soap_version = SOAP_1_1;
+ soap_globals->mem_cache = NULL;
}
PHP_MSHUTDOWN_FUNCTION(soap)
@@ -465,6 +499,10 @@ PHP_MSHUTDOWN_FUNCTION(soap)
zend_hash_destroy(&SOAP_GLOBAL(defEnc));
zend_hash_destroy(&SOAP_GLOBAL(defEncIndex));
zend_hash_destroy(&SOAP_GLOBAL(defEncNs));
+ if (SOAP_GLOBAL(mem_cache)) {
+ zend_hash_destroy(SOAP_GLOBAL(mem_cache));
+ free(SOAP_GLOBAL(mem_cache));
+ }
UNREGISTER_INI_ENTRIES();
return SUCCESS;
}
@@ -479,6 +517,7 @@ PHP_RINIT_FUNCTION(soap)
SOAP_GLOBAL(soap_version) = SOAP_1_1;
SOAP_GLOBAL(encoding) = NULL;
SOAP_GLOBAL(class_map) = NULL;
+ SOAP_GLOBAL(features) = 0;
return SUCCESS;
}
@@ -489,7 +528,7 @@ PHP_MINIT_FUNCTION(soap)
/* TODO: add ini entry for always use soap errors */
php_soap_prepare_globals();
ZEND_INIT_MODULE_GLOBALS(soap, php_soap_init_globals, NULL);
- REGISTER_INI_ENTRIES();
+ REGISTER_INI_ENTRIES();
#ifndef ZEND_ENGINE_2
/* Enable php stream/wrapper support for libxml */
@@ -633,6 +672,14 @@ PHP_MINIT_FUNCTION(soap)
REGISTER_STRING_CONSTANT("XSD_NAMESPACE", XSD_NAMESPACE, CONST_CS | CONST_PERSISTENT);
REGISTER_STRING_CONSTANT("XSD_1999_NAMESPACE", XSD_1999_NAMESPACE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SOAP_SINGLE_ELEMENT_ARRAYS", SOAP_SINGLE_ELEMENT_ARRAYS, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("SOAP_WAIT_ONE_WAY_CALLS", SOAP_WAIT_ONE_WAY_CALLS, CONST_CS | CONST_PERSISTENT);
+
+ REGISTER_LONG_CONSTANT("WSDL_CACHE_NONE", WSDL_CACHE_NONE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("WSDL_CACHE_DISK", WSDL_CACHE_DISK, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("WSDL_CACHE_MEMORY", WSDL_CACHE_MEMORY, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("WSDL_CACHE_BOTH", WSDL_CACHE_BOTH, CONST_CS | CONST_PERSISTENT);
+
old_error_handler = zend_error_cb;
zend_error_cb = soap_error_handler;
@@ -755,7 +802,7 @@ PHP_METHOD(SoapHeader, SoapHeader)
PHP_METHOD(SoapFault, SoapFault)
{
char *fault_string = NULL, *fault_code = NULL, *fault_actor = NULL, *name = NULL, *fault_code_ns = NULL;
- int fault_string_len, fault_code_len, fault_actor_len, name_len;
+ int fault_string_len, fault_actor_len, name_len, fault_code_len = 0;
zval *code = NULL, *details = NULL, *headerfault = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs|s!z!s!z",
@@ -812,6 +859,10 @@ PHP_METHOD(SoapFault, __toString)
zend_fcall_info fci;
zval fname;
+ if (ZEND_NUM_ARGS() > 0) {
+ ZEND_WRONG_PARAM_COUNT();
+ }
+
faultcode = zend_read_property(soap_fault_class_entry, this_ptr, "faultcode", sizeof("faultcode")-1, 1 TSRMLS_CC);
faultstring = zend_read_property(soap_fault_class_entry, this_ptr, "faultstring", sizeof("faultstring")-1, 1 TSRMLS_CC);
file = zend_read_property(soap_fault_class_entry, this_ptr, "file", sizeof("file")-1, 1 TSRMLS_CC);
@@ -895,6 +946,7 @@ PHP_METHOD(SoapServer, SoapServer)
zval *wsdl, *options = NULL;
int ret;
int version = SOAP_1_1;
+ long cache_wsdl;
SOAP_SERVER_BEGIN_CODE();
@@ -912,6 +964,8 @@ PHP_METHOD(SoapServer, SoapServer)
service = emalloc(sizeof(soapService));
memset(service, 0, sizeof(soapService));
+ cache_wsdl = SOAP_GLOBAL(cache);
+
if (options != NULL) {
HashTable *ht = Z_ARRVAL_P(options);
zval **tmp;
@@ -957,6 +1011,16 @@ PHP_METHOD(SoapServer, SoapServer)
zend_hash_copy(service->class_map, (*tmp)->value.ht, (copy_ctor_func_t) zval_add_ref, (void *) &ztmp, sizeof(zval *));
}
+ if (zend_hash_find(ht, "features", sizeof("features"), (void**)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_LONG) {
+ service->features = Z_LVAL_PP(tmp);
+ }
+
+ if (zend_hash_find(ht, "cache_wsdl", sizeof("cache_wsdl"), (void**)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_LONG) {
+ cache_wsdl = Z_LVAL_PP(tmp);
+ }
+
} else if (wsdl == NULL) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid arguments. 'uri' option is required in nonWSDL mode.");
}
@@ -968,7 +1032,7 @@ PHP_METHOD(SoapServer, SoapServer)
zend_hash_init(service->soap_functions.ft, 0, NULL, ZVAL_PTR_DTOR, 0);
if (wsdl) {
- service->sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl) TSRMLS_CC);
+ service->sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl), cache_wsdl TSRMLS_CC);
if (service->uri == NULL) {
if (service->sdl->target_ns) {
service->uri = estrdup(service->sdl->target_ns);
@@ -1347,17 +1411,18 @@ PHP_METHOD(SoapServer, handle)
sdlPtr old_sdl = NULL;
soapServicePtr service;
xmlDocPtr doc_request=NULL, doc_return;
- zval function_name, **params, **raw_post, *soap_obj, retval, **server_vars;
+ zval function_name, **params, **raw_post, *soap_obj, retval;
char *fn_name, cont_len[30];
int num_params = 0, size, i, call_status = 0;
xmlChar *buf;
HashTable *function_table;
- soapHeader *soap_headers;
+ soapHeader *soap_headers = NULL;
sdlFunctionPtr function;
char *arg = NULL;
int arg_len;
xmlCharEncodingHandlerPtr old_encoding;
HashTable *old_class_map;
+ int old_features;
SOAP_SERVER_BEGIN_CODE();
@@ -1368,54 +1433,51 @@ PHP_METHOD(SoapServer, handle)
}
INIT_ZVAL(retval);
- if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **)&server_vars) == SUCCESS) {
- zval **req_method, **query_string;
- if (zend_hash_find(Z_ARRVAL_PP(server_vars), "REQUEST_METHOD", sizeof("REQUEST_METHOD"), (void **)&req_method) == SUCCESS) {
- if (!strcmp(Z_STRVAL_PP(req_method), "GET") && zend_hash_find(Z_ARRVAL_PP(server_vars), "QUERY_STRING", sizeof("QUERY_STRING"), (void **)&query_string) == SUCCESS) {
- if (stricmp(Z_STRVAL_PP(query_string), "wsdl") == 0) {
- if (service->sdl) {
+ if (SG(request_info).request_method &&
+ strcmp(SG(request_info).request_method, "GET") == 0 &&
+ SG(request_info).query_string &&
+ stricmp(SG(request_info).query_string, "wsdl") == 0) {
+
+ if (service->sdl) {
/*
- char *hdr = emalloc(sizeof("Location: ")+strlen(service->sdl->source));
- strcpy(hdr,"Location: ");
- strcat(hdr,service->sdl->source);
- sapi_add_header(hdr, sizeof("Location: ")+strlen(service->sdl->source)-1, 1);
- efree(hdr);
+ char *hdr = emalloc(sizeof("Location: ")+strlen(service->sdl->source));
+ strcpy(hdr,"Location: ");
+ strcat(hdr,service->sdl->source);
+ sapi_add_header(hdr, sizeof("Location: ")+strlen(service->sdl->source)-1, 1);
+ efree(hdr);
*/
- zval readfile, readfile_ret, *param;
+ zval readfile, readfile_ret, *param;
- INIT_ZVAL(readfile);
- INIT_ZVAL(readfile_ret);
- MAKE_STD_ZVAL(param);
+ INIT_ZVAL(readfile);
+ INIT_ZVAL(readfile_ret);
+ MAKE_STD_ZVAL(param);
- sapi_add_header("Content-Type: text/xml; charset=utf-8", sizeof("Content-Type: text/xml; charset=utf-8")-1, 1);
- ZVAL_STRING(param, service->sdl->source, 1);
- ZVAL_STRING(&readfile, "readfile", 1);
- if (call_user_function(EG(function_table), NULL, &readfile, &readfile_ret, 1, &param TSRMLS_CC) == FAILURE) {
- soap_server_fault("Server", "Couldn't find WSDL", NULL, NULL, NULL TSRMLS_CC);
- }
+ sapi_add_header("Content-Type: text/xml; charset=utf-8", sizeof("Content-Type: text/xml; charset=utf-8")-1, 1);
+ ZVAL_STRING(param, service->sdl->source, 1);
+ ZVAL_STRING(&readfile, "readfile", 1);
+ if (call_user_function(EG(function_table), NULL, &readfile, &readfile_ret, 1, &param TSRMLS_CC) == FAILURE) {
+ soap_server_fault("Server", "Couldn't find WSDL", NULL, NULL, NULL TSRMLS_CC);
+ }
- zval_ptr_dtor(&param);
- zval_dtor(&readfile);
- zval_dtor(&readfile_ret);
+ zval_ptr_dtor(&param);
+ zval_dtor(&readfile);
+ zval_dtor(&readfile_ret);
- SOAP_SERVER_END_CODE();
- return;
- } else {
- soap_server_fault("Server", "WSDL generation is not supported yet", NULL, NULL, NULL TSRMLS_CC);
+ SOAP_SERVER_END_CODE();
+ return;
+ } else {
+ soap_server_fault("Server", "WSDL generation is not supported yet", NULL, NULL, NULL TSRMLS_CC);
/*
- sapi_add_header("Content-Type: text/xml; charset=utf-8", sizeof("Content-Type: text/xml; charset=utf-8"), 1);
- PUTS("<?xml version=\"1.0\" ?>\n<definitions\n");
- PUTS(" xmlns=\"http://schemas.xmlsoap.org/wsdl/\"\n");
- PUTS(" targetNamespace=\"");
- PUTS(service->uri);
- PUTS("\">\n");
- PUTS("</definitions>");
+ sapi_add_header("Content-Type: text/xml; charset=utf-8", sizeof("Content-Type: text/xml; charset=utf-8"), 1);
+ PUTS("<?xml version=\"1.0\" ?>\n<definitions\n");
+ PUTS(" xmlns=\"http://schemas.xmlsoap.org/wsdl/\"\n");
+ PUTS(" targetNamespace=\"");
+ PUTS(service->uri);
+ PUTS("\">\n");
+ PUTS("</definitions>");
*/
- SOAP_SERVER_END_CODE();
- return;
- }
- }
- }
+ SOAP_SERVER_END_CODE();
+ return;
}
}
@@ -1428,6 +1490,7 @@ PHP_METHOD(SoapServer, handle)
&& ((*raw_post)->type==IS_STRING)) {
zval **server_vars, **encoding;
+ zend_is_auto_global("_SERVER", sizeof("_SERVER")-1 TSRMLS_CC);
if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **) &server_vars) == SUCCESS &&
Z_TYPE_PP(server_vars) == IS_ARRAY &&
zend_hash_find(Z_ARRVAL_PP(server_vars), "HTTP_CONTENT_ENCODING", sizeof("HTTP_CONTENT_ENCODING"), (void **) &encoding)==SUCCESS &&
@@ -1464,14 +1527,10 @@ PHP_METHOD(SoapServer, handle)
doc_request = soap_xmlParseMemory(Z_STRVAL_PP(raw_post),Z_STRLEN_PP(raw_post));
}
} else {
- if (zend_hash_find(&EG(symbol_table), "_SERVER", sizeof("_SERVER"), (void **)&server_vars) == SUCCESS) {
- zval **req_method;
- if (zend_hash_find(Z_ARRVAL_PP(server_vars), "REQUEST_METHOD", sizeof("REQUEST_METHOD"), (void **)&req_method) == SUCCESS) {
- if (!strcmp(Z_STRVAL_PP(req_method), "POST")) {
- if (!zend_ini_long("always_populate_raw_post_data", sizeof("always_populate_raw_post_data"), 0)) {
- php_error_docref(NULL TSRMLS_CC, E_ERROR, "PHP-SOAP requires 'always_populate_raw_post_data' to be on please check your php.ini file");
- }
- }
+ if (SG(request_info).request_method &&
+ strcmp(SG(request_info).request_method, "POST") == 0) {
+ if (!zend_ini_long("always_populate_raw_post_data", sizeof("always_populate_raw_post_data"), 0)) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "PHP-SOAP requires 'always_populate_raw_post_data' to be on please check your php.ini file");
}
}
soap_server_fault("Server", "Bad Request. Can't find HTTP_RAW_POST_DATA", NULL, NULL, NULL TSRMLS_CC);
@@ -1503,12 +1562,16 @@ PHP_METHOD(SoapServer, handle)
SOAP_GLOBAL(encoding) = service->encoding;
old_class_map = SOAP_GLOBAL(class_map);
SOAP_GLOBAL(class_map) = service->class_map;
+ old_features = SOAP_GLOBAL(features);
+ SOAP_GLOBAL(features) = service->features;
old_soap_version = SOAP_GLOBAL(soap_version);
function = deserialize_function_call(service->sdl, doc_request, service->actor, &function_name, &num_params, &params, &soap_version, &soap_headers TSRMLS_CC);
xmlFreeDoc(doc_request);
+
+ service->soap_headers_ptr = &soap_headers;
+ soap_obj = NULL;
if (service->type == SOAP_CLASS) {
- soap_obj = NULL;
#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
/* If persistent then set soap_obj from from the previous created session (if available) */
if (service->soap_class.persistance == SOAP_PERSISTENCE_SESSION) {
@@ -1547,16 +1610,15 @@ PHP_METHOD(SoapServer, handle)
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Error calling constructor");
}
if (EG(exception)) {
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
if (Z_TYPE_P(EG(exception)) == IS_OBJECT &&
instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) {
- soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC);
- } else {
- zval_dtor(&constructor);
- zval_dtor(&c_ret);
- zval_ptr_dtor(&tmp_soap);
- php_end_ob_buffer(0, 0 TSRMLS_CC);
- goto fail;
+ soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC);
}
+ zval_dtor(&constructor);
+ zval_dtor(&c_ret);
+ zval_ptr_dtor(&tmp_soap);
+ goto fail;
}
zval_dtor(&constructor);
zval_dtor(&c_ret);
@@ -1580,17 +1642,16 @@ PHP_METHOD(SoapServer, handle)
}
#ifdef ZEND_ENGINE_2
if (EG(exception)) {
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
if (Z_TYPE_P(EG(exception)) == IS_OBJECT &&
instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) {
soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC);
- } else {
- zval_dtor(&constructor);
- zval_dtor(&c_ret);
- efree(class_name);
- zval_ptr_dtor(&tmp_soap);
- php_end_ob_buffer(0, 0 TSRMLS_CC);
- goto fail;
}
+ zval_dtor(&constructor);
+ zval_dtor(&c_ret);
+ efree(class_name);
+ zval_ptr_dtor(&tmp_soap);
+ goto fail;
}
#endif
zval_dtor(&constructor);
@@ -1641,7 +1702,9 @@ PHP_METHOD(SoapServer, handle)
}
fn_name = estrndup(Z_STRVAL(h->function_name),Z_STRLEN(h->function_name));
- if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1)) {
+ if (zend_hash_exists(function_table, php_strtolower(fn_name, Z_STRLEN(h->function_name)), Z_STRLEN(h->function_name) + 1) ||
+ (service->type == SOAP_CLASS &&
+ zend_hash_exists(function_table, ZEND_CALL_FUNC_NAME, sizeof(ZEND_CALL_FUNC_NAME)))) {
if (service->type == SOAP_CLASS) {
call_status = call_user_function(NULL, &soap_obj, &h->function_name, &h->retval, h->num_params, h->parameters TSRMLS_CC);
} else {
@@ -1652,30 +1715,33 @@ PHP_METHOD(SoapServer, handle)
}
if (Z_TYPE(h->retval) == IS_OBJECT &&
instanceof_function(Z_OBJCE(h->retval), soap_fault_class_entry TSRMLS_CC)) {
- zval *headerfault = NULL, **tmp;
+ zval *headerfault = NULL, **tmp;
if (zend_hash_find(Z_OBJPROP(h->retval), "headerfault", sizeof("headerfault"), (void**)&tmp) == SUCCESS &&
Z_TYPE_PP(tmp) != IS_NULL) {
headerfault = *tmp;
}
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
soap_server_fault_ex(function, &h->retval, h TSRMLS_CC);
+ efree(fn_name);
+ if (soap_obj) {zval_ptr_dtor(&soap_obj);}
+ goto fail;
#ifdef ZEND_ENGINE_2
} else if (EG(exception)) {
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
if (Z_TYPE_P(EG(exception)) == IS_OBJECT &&
instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) {
- zval *headerfault = NULL, **tmp;
+ zval *headerfault = NULL, **tmp;
if (zend_hash_find(Z_OBJPROP_P(EG(exception)), "headerfault", sizeof("headerfault"), (void**)&tmp) == SUCCESS &&
Z_TYPE_PP(tmp) != IS_NULL) {
headerfault = *tmp;
}
soap_server_fault_ex(function, EG(exception), h TSRMLS_CC);
- } else {
+ }
efree(fn_name);
if (soap_obj) {zval_ptr_dtor(&soap_obj);}
- php_end_ob_buffer(0, 0 TSRMLS_CC);
goto fail;
- }
#endif
}
} else if (h->mustUnderstand) {
@@ -1708,14 +1774,19 @@ PHP_METHOD(SoapServer, handle)
#ifdef ZEND_ENGINE_2
if (EG(exception)) {
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
if (Z_TYPE_P(EG(exception)) == IS_OBJECT &&
instanceof_function(Z_OBJCE_P(EG(exception)), soap_fault_class_entry TSRMLS_CC)) {
soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC);
- } else {
- if (soap_obj) {zval_ptr_dtor(&soap_obj);}
- php_end_ob_buffer(0, 0 TSRMLS_CC);
- goto fail;
}
+#if HAVE_PHP_SESSION && !defined(COMPILE_DL_SESSION)
+ if (soap_obj && service->soap_class.persistance != SOAP_PERSISTENCE_SESSION) {
+#else
+ if (soap_obj) {
+#endif
+ zval_ptr_dtor(&soap_obj);
+ }
+ goto fail;
}
#endif
if (call_status == SUCCESS) {
@@ -1723,7 +1794,9 @@ PHP_METHOD(SoapServer, handle)
if (Z_TYPE(retval) == IS_OBJECT &&
instanceof_function(Z_OBJCE(retval), soap_fault_class_entry TSRMLS_CC)) {
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
soap_server_fault_ex(function, &retval, NULL TSRMLS_CC);
+ goto fail;
}
if (function && function->responseName) {
@@ -1773,6 +1846,7 @@ fail:
SOAP_GLOBAL(encoding) = old_encoding;
SOAP_GLOBAL(sdl) = old_sdl;
SOAP_GLOBAL(class_map) = old_class_map;
+ SOAP_GLOBAL(features) = old_features;
/* Free soap headers */
zval_dtor(&retval);
@@ -1781,15 +1855,18 @@ fail:
int i;
soap_headers = soap_headers->next;
- i = h->num_params;
- while (i > 0) {
- zval_ptr_dtor(&h->parameters[--i]);
+ if (h->parameters) {
+ i = h->num_params;
+ while (i > 0) {
+ zval_ptr_dtor(&h->parameters[--i]);
+ }
+ efree(h->parameters);
}
- efree(h->parameters);
zval_dtor(&h->function_name);
zval_dtor(&h->retval);
efree(h);
}
+ service->soap_headers_ptr = NULL;
/* Free Memory */
if (num_params > 0) {
@@ -1826,6 +1903,37 @@ PHP_METHOD(SoapServer, fault)
}
/* }}} */
+PHP_METHOD(SoapServer, addSoapHeader)
+{
+ soapServicePtr service;
+ zval *fault;
+ soapHeader **p;
+
+ SOAP_SERVER_BEGIN_CODE();
+
+ FETCH_THIS_SERVICE(service);
+
+ if (!service || !service->soap_headers_ptr) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "The SoapServer::addSoapHeader function may be called only during SOAP request processing");
+ }
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &fault, soap_header_class_entry) == FAILURE) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid parameters");
+ }
+
+ p = service->soap_headers_ptr;
+ while (*p != NULL) {
+ p = &(*p)->next;
+ }
+ *p = emalloc(sizeof(soapHeader));
+ memset(*p, 0, sizeof(soapHeader));
+ ZVAL_NULL(&(*p)->function_name);
+ (*p)->retval = *fault;
+ zval_copy_ctor(&(*p)->retval);
+
+ SOAP_SERVER_END_CODE();
+}
+
static void soap_server_fault_ex(sdlFunctionPtr function, zval* fault, soapHeader *hdr TSRMLS_DC)
{
int soap_version;
@@ -1856,7 +1964,6 @@ static void soap_server_fault_ex(sdlFunctionPtr function, zval* fault, soapHeade
xmlFreeDoc(doc_return);
xmlFree(buf);
zend_clear_exception(TSRMLS_C);
- zend_bailout();
}
static void soap_server_fault(char* code, char* string, char *actor, zval* details, char* name TSRMLS_DC)
@@ -1868,6 +1975,7 @@ static void soap_server_fault(char* code, char* string, char *actor, zval* detai
set_soap_fault(&ret, NULL, code, string, actor, details, name TSRMLS_CC);
/* TODO: Which function */
soap_server_fault_ex(NULL, &ret, NULL TSRMLS_CC);
+ zend_bailout();
}
static void soap_error_handler(int error_num, const char *error_filename, const uint error_lineno, const char *format, va_list args)
@@ -2005,6 +2113,7 @@ static void soap_error_handler(int error_num, const char *error_filename, const
if (fault) {
soap_server_fault_ex(NULL, &fault_obj, NULL TSRMLS_CC);
+ zend_bailout();
}
}
}
@@ -2042,6 +2151,7 @@ PHP_METHOD(SoapClient, SoapClient)
zval *options = NULL;
int soap_version = SOAP_1_1;
php_stream_context *context = NULL;
+ long cache_wsdl;
SOAP_CLIENT_BEGIN_CODE();
@@ -2057,6 +2167,9 @@ PHP_METHOD(SoapClient, SoapClient)
} else {
wsdl = NULL;
}
+
+ cache_wsdl = SOAP_GLOBAL(cache);
+
if (options != NULL) {
HashTable *ht = Z_ARRVAL_P(options);
zval **tmp;
@@ -2182,6 +2295,7 @@ PHP_METHOD(SoapClient, SoapClient)
MAKE_STD_ZVAL(class_map);
*class_map = **tmp;
+ INIT_PZVAL(class_map);
zval_copy_ctor(class_map);
#ifdef ZEND_ENGINE_2
class_map->refcount--;
@@ -2189,6 +2303,11 @@ PHP_METHOD(SoapClient, SoapClient)
add_property_zval(this_ptr, "_classmap", class_map);
}
+ if (zend_hash_find(ht, "features", sizeof("features"), (void**)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_LONG) {
+ add_property_long(this_ptr, "_features", Z_LVAL_PP(tmp));
+ }
+
if (zend_hash_find(ht, "connection_timeout", sizeof("connection_timeout"), (void**)&tmp) == SUCCESS &&
Z_TYPE_PP(tmp) == IS_LONG && Z_LVAL_PP(tmp) > 0) {
add_property_long(this_ptr, "_connection_timeout", Z_LVAL_PP(tmp));
@@ -2198,6 +2317,16 @@ PHP_METHOD(SoapClient, SoapClient)
add_property_resource(this_ptr, "_stream_context", context->rsrc_id);
}
+ if (zend_hash_find(ht, "cache_wsdl", sizeof("cache_wsdl"), (void**)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_LONG) {
+ cache_wsdl = Z_LVAL_PP(tmp);
+ }
+
+ if (zend_hash_find(ht, "user_agent", sizeof("user_agent"), (void**)&tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_STRING) {
+ add_property_stringl(this_ptr, "_user_agent", Z_STRVAL_PP(tmp), Z_STRLEN_PP(tmp), 1);
+ }
+
} else if (wsdl == NULL) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "'location' and 'uri' options are requred in nonWSDL mode");
return;
@@ -2212,7 +2341,7 @@ PHP_METHOD(SoapClient, SoapClient)
old_soap_version = SOAP_GLOBAL(soap_version);
SOAP_GLOBAL(soap_version) = soap_version;
- sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl) TSRMLS_CC);
+ sdl = get_sdl(this_ptr, Z_STRVAL_P(wsdl), cache_wsdl TSRMLS_CC);
ret = zend_list_insert(sdl, le_sdl);
add_property_resource(this_ptr, "sdl", ret);
@@ -2224,13 +2353,13 @@ PHP_METHOD(SoapClient, SoapClient)
}
/* }}} */
-static int do_request(zval *this_ptr, xmlDoc *request, char *location, char *action, int version, zval *response TSRMLS_DC)
+static int do_request(zval *this_ptr, xmlDoc *request, char *location, char *action, int version, int one_way, zval *response TSRMLS_DC)
{
int ret = TRUE;
char *buf;
int buf_size;
- zval func, param0, param1, param2, param3;
- zval *params[4];
+ zval func, param0, param1, param2, param3, param4;
+ zval *params[5];
zval **trace;
zval **fault;
@@ -2270,7 +2399,11 @@ static int do_request(zval *this_ptr, xmlDoc *request, char *location, char *act
params[3] = &param3;
ZVAL_LONG(params[3], version);
- if (call_user_function(NULL, &this_ptr, &func, response, 4, params TSRMLS_CC) != SUCCESS) {
+ INIT_ZVAL(param4);
+ params[4] = &param4;
+ ZVAL_LONG(params[4], one_way);
+
+ if (call_user_function(NULL, &this_ptr, &func, response, 5, params TSRMLS_CC) != SUCCESS) {
add_soap_fault(this_ptr, "Client", "SoapSlient::__doRequest() failed", NULL, NULL TSRMLS_CC);
ret = FALSE;
} else if (Z_TYPE_P(response) != IS_STRING) {
@@ -2313,6 +2446,7 @@ static void do_soap_call(zval* this_ptr,
zval response;
xmlCharEncodingHandlerPtr old_encoding;
HashTable *old_class_map;
+ int old_features;
SOAP_CLIENT_BEGIN_CODE();
@@ -2358,21 +2492,36 @@ static void do_soap_call(zval* this_ptr,
} else {
SOAP_GLOBAL(class_map) = NULL;
}
+ old_features = SOAP_GLOBAL(features);
+ if (zend_hash_find(Z_OBJPROP_P(this_ptr), "_features", sizeof("_features"), (void **) &tmp) == SUCCESS &&
+ Z_TYPE_PP(tmp) == IS_LONG) {
+ SOAP_GLOBAL(features) = Z_LVAL_PP(tmp);
+ } else {
+ SOAP_GLOBAL(features) = 0;
+ }
if (sdl != NULL) {
fn = get_function(sdl, function);
if (fn != NULL) {
sdlBindingPtr binding = fn->binding;
+ int one_way = 0;
+
+ if (fn->responseName == NULL &&
+ fn->responseParameters == NULL &&
+ soap_headers == NULL) {
+ one_way = 1;
+ }
+
if (location == NULL) {
location = binding->location;
}
if (binding->bindingType == BINDING_SOAP) {
sdlSoapBindingFunctionPtr fnb = (sdlSoapBindingFunctionPtr)fn->bindingAttributes;
request = serialize_function_call(this_ptr, fn, NULL, fnb->input.ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
- ret = do_request(this_ptr, request, location, fnb->soapAction, soap_version, &response TSRMLS_CC);
+ ret = do_request(this_ptr, request, location, fnb->soapAction, soap_version, one_way, &response TSRMLS_CC);
} else {
request = serialize_function_call(this_ptr, fn, NULL, sdl->target_ns, real_args, arg_count, soap_version, soap_headers TSRMLS_CC);
- ret = do_request(this_ptr, request, location, NULL, soap_version, &response TSRMLS_CC);
+ ret = do_request(this_ptr, request, location, NULL, soap_version, one_way, &response TSRMLS_CC);
}
xmlFreeDoc(request);
@@ -2415,7 +2564,7 @@ static void do_soap_call(zval* this_ptr,
}
smart_str_0(&action);
- ret = do_request(this_ptr, request, location, action.c, soap_version, &response TSRMLS_CC);
+ ret = do_request(this_ptr, request, location, action.c, soap_version, 0, &response TSRMLS_CC);
smart_str_free(&action);
xmlFreeDoc(request);
@@ -2458,10 +2607,11 @@ static void do_soap_call(zval* this_ptr,
zend_throw_exception_object(exception TSRMLS_CC);
}
#endif
- if (SOAP_GLOBAL(encoding) != NULL) {
+ if (SOAP_GLOBAL(encoding) != NULL) {
xmlCharEncCloseFunc(SOAP_GLOBAL(encoding));
- }
- SOAP_GLOBAL(class_map) = old_class_map;
+ }
+ SOAP_GLOBAL(features) = old_features;
+ SOAP_GLOBAL(class_map) = old_class_map;
SOAP_GLOBAL(encoding) = old_encoding;
SOAP_GLOBAL(sdl) = old_sdl;
SOAP_CLIENT_END_CODE();
@@ -2474,7 +2624,7 @@ static void verify_soap_headers_array(HashTable *ht TSRMLS_DC)
zend_hash_internal_pointer_reset(ht);
while (zend_hash_get_current_data(ht, (void**)&tmp) == SUCCESS) {
if (Z_TYPE_PP(tmp) != IS_OBJECT ||
- Z_OBJCE_PP(tmp) != soap_header_class_entry) {
+ !instanceof_function(Z_OBJCE_PP(tmp), soap_header_class_entry TSRMLS_CC)) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid SOAP header");
}
zend_hash_move_forward(ht);
@@ -2497,7 +2647,7 @@ PHP_METHOD(SoapClient, __call)
zval **param;
int arg_count;
zval **tmp;
- zend_bool free_soap_headers;
+ zend_bool free_soap_headers = 0;
HashPosition pos;
@@ -2521,7 +2671,7 @@ PHP_METHOD(SoapClient, __call)
if (zend_hash_find(ht, "uri", sizeof("uri"), (void**)&tmp) == SUCCESS &&
Z_TYPE_PP(tmp) == IS_STRING) {
- soap_action = Z_STRVAL_PP(tmp);
+ uri = Z_STRVAL_PP(tmp);
}
} else if (Z_TYPE_P(options) != IS_NULL) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "first parameter must be string or null");
@@ -2534,7 +2684,7 @@ PHP_METHOD(SoapClient, __call)
verify_soap_headers_array(soap_headers TSRMLS_CC);
free_soap_headers = 0;
} else if (Z_TYPE_P(headers) == IS_OBJECT &&
- Z_OBJCE_P(headers) == soap_header_class_entry) {
+ instanceof_function(Z_OBJCE_P(headers), soap_header_class_entry TSRMLS_CC)) {
soap_headers = emalloc(sizeof(HashTable));
zend_hash_init(soap_headers, 0, NULL, ZVAL_PTR_DTOR, 0);
zend_hash_next_index_insert(soap_headers, &headers, sizeof(zval*), NULL);
@@ -2711,15 +2861,21 @@ PHP_METHOD(SoapClient, __doRequest)
char *buf, *location, *action;
int buf_size, location_size, action_size;
long version;
+ long one_way = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssl",
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sssl|l",
&buf, &buf_size,
&location, &location_size,
&action, &action_size,
- &version) == FAILURE) {
+ &version, &one_way) == FAILURE) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Invalid parameters");
}
- if (make_http_soap_request(this_ptr, buf, buf_size, location, action, version,
+ if (SOAP_GLOBAL(features) & SOAP_WAIT_ONE_WAY_CALLS) {
+ one_way = 0;
+ }
+ if (one_way && make_http_soap_request(this_ptr, buf, buf_size, location, action, version, NULL, NULL TSRMLS_CC)) {
+ RETURN_EMPTY_STRING();
+ } else if (make_http_soap_request(this_ptr, buf, buf_size, location, action, version,
&Z_STRVAL_P(return_value), &Z_STRLEN_P(return_value) TSRMLS_CC)) {
return_value->type = IS_STRING;
return;
@@ -2791,7 +2947,7 @@ PHP_METHOD(SoapClient, __setSoapHeaders)
add_property_zval(this_ptr, "__default_headers", headers);
}
} else if (Z_TYPE_P(headers) == IS_OBJECT &&
- Z_OBJCE_P(headers) == soap_header_class_entry) {
+ instanceof_function(Z_OBJCE_P(headers), soap_header_class_entry TSRMLS_CC)) {
zval *default_headers;
ALLOC_INIT_ZVAL(default_headers);
array_init(default_headers);
@@ -2898,6 +3054,9 @@ static void set_soap_fault(zval *obj, char *fault_code_ns, char *fault_code, cha
}
if (fault_string != NULL) {
add_property_string(obj, "faultstring", fault_string, 1);
+#ifdef ZEND_ENGINE_2
+ zend_update_property_string(zend_exception_get_default(), obj, "message", sizeof("message")-1, fault_string TSRMLS_CC);
+#endif
}
if (fault_code != NULL) {
int soap_version = SOAP_GLOBAL(soap_version);
@@ -3463,7 +3622,7 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
head = xmlNewChild(envelope, ns, "Header", NULL);
if (Z_TYPE_P(hdr_ret) == IS_OBJECT &&
- Z_OBJCE_P(hdr_ret) == soap_header_class_entry) {
+ instanceof_function(Z_OBJCE_P(hdr_ret), soap_header_class_entry TSRMLS_CC)) {
HashTable* ht = Z_OBJPROP_P(hdr_ret);
zval **tmp;
sdlSoapBindingFunctionHeaderPtr *hdr;
@@ -3690,7 +3849,7 @@ static xmlDocPtr serialize_response_call(sdlFunctionPtr function, char *function
if (Z_TYPE(h->retval) == IS_OBJECT &&
- Z_OBJCE(h->retval) == soap_header_class_entry) {
+ instanceof_function(Z_OBJCE(h->retval), soap_header_class_entry TSRMLS_CC)) {
HashTable* ht = Z_OBJPROP(h->retval);
zval **tmp;
sdlSoapBindingFunctionHeaderPtr *hdr;
diff --git a/ext/soap/tests/bugs/bug30045.phpt b/ext/soap/tests/bugs/bug30045.phpt
index 14de8e366..e51921e99 100644
--- a/ext/soap/tests/bugs/bug30045.phpt
+++ b/ext/soap/tests/bugs/bug30045.phpt
@@ -42,7 +42,7 @@ function test($type, $num) {
try {
printf(" %0.0f\n ", $num);
$ret = $soap->foo($type, new SoapVar($num, $type));
- printf(" %0.0f\n", $num, $ret);
+ printf(" %0.0f\n", $ret);
} catch (SoapFault $ex) {
var_dump($ex);
}
diff --git a/ext/soap/tests/bugs/bug35142.phpt b/ext/soap/tests/bugs/bug35142.phpt
index f787c5964..7ab49430c 100755
--- a/ext/soap/tests/bugs/bug35142.phpt
+++ b/ext/soap/tests/bugs/bug35142.phpt
@@ -49,7 +49,7 @@ class LogOffEvent {
public $audienceMemberId;
public $timestamp;
public $smokeStatus;
- public $callInititator;
+ public $callInitiator;
function __construct($audienceMemberId, $timestamp, $smokeStatus) {
$this->audienceMemberId = $audienceMemberId;
@@ -98,6 +98,15 @@ object(IVREvents)#%d (6) {
int(101)
["messageId"]=>
int(12345)
+ ["source"]=>
+ string(3) "IVR"
+ ["logOnEvent"]=>
+ object(LogOnEvent)#%d (2) {
+ ["audienceMemberId"]=>
+ int(34567)
+ ["timestamp"]=>
+ string(25) "2005-11-08T11:22:07+03:00"
+ }
["logOffEvent"]=>
array(2) {
[0]=>
@@ -123,13 +132,4 @@ object(IVREvents)#%d (6) {
string(3) "IVR"
}
}
- ["logOnEvent"]=>
- object(LogOnEvent)#%d (2) {
- ["audienceMemberId"]=>
- int(34567)
- ["timestamp"]=>
- string(25) "2005-11-08T11:22:07+03:00"
- }
- ["source"]=>
- string(3) "IVR"
}
diff --git a/ext/soap/tests/bugs/bug36226.phpt b/ext/soap/tests/bugs/bug36226.phpt
new file mode 100755
index 000000000..2d3461d61
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36226.phpt
@@ -0,0 +1,139 @@
+--TEST--
+Bug #36226 SOAP Inconsistent handling when passing potential arrays.
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+ini_set("soap.wsdl_cache_enabled",0);
+$timestamp = "2005-11-08T11:22:07+03:00";
+$wsdl = dirname(__FILE__)."/bug35142.wsdl";
+
+function PostEvents($x) {
+ var_dump($x);
+ exit();
+ return $x;
+}
+
+class TestSoapClient extends SoapClient {
+
+ function __construct($wsdl, $options) {
+ parent::__construct($wsdl, $options);
+ $this->server = new SoapServer($wsdl, $options);
+ $this->server->addFunction('PostEvents');
+ }
+
+ function __doRequest($request, $location, $action, $version) {
+ echo "$request\n";
+ $this->server->handle($request);
+ return $response;
+ }
+
+}
+
+$soapClient = new TestSoapClient($wsdl,
+ array('trace' => 1, 'exceptions' => 0,
+ 'classmap' => array('logOnEvent' => 'LogOnEvent',
+ 'logOffEvent' => 'LogOffEvent',
+ 'events' => 'IVREvents'),
+ 'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
+
+$logOnEvent = new LogOnEvent(34567, $timestamp);
+$logOffEvents[] = new LogOffEvent(34567, $timestamp, "Smoked");
+$logOffEvents[] = new LogOffEvent(34568, $timestamp, "SmokeFree");
+$ivrEvents = new IVREvents("1.0", 101, 12345, 'IVR', $logOnEvent, $logOffEvents);
+
+$result = $soapClient->PostEvents($ivrEvents);
+
+class LogOffEvent {
+ public $audienceMemberId;
+ public $timestamp;
+ public $smokeStatus;
+ public $callInitiator;
+
+ function __construct($audienceMemberId, $timestamp, $smokeStatus) {
+ $this->audienceMemberId = $audienceMemberId;
+ $this->timestamp = $timestamp;
+ $this->smokeStatus = $smokeStatus;
+ $this->callInitiator = "IVR";
+ }
+}
+
+class LogOnEvent {
+ public $audienceMemberId;
+ public $timestamp;
+
+ function __construct($audienceMemberId, $timestamp) {
+ $this->audienceMemberId = $audienceMemberId;
+ $this->timestamp = $timestamp;
+ }
+}
+
+class IVREvents {
+ public $version;
+ public $activityId;
+ public $messageId;
+ public $source;
+ public $logOnEvent;
+ public $logOffEvent;
+
+ function __construct($version, $activityId, $messageId, $source, $logOnEvent=NULL, $logOffEvent=NULL) {
+ $this->version = $version;
+ $this->activityId = $activityId;
+ $this->messageId = $messageId;
+ $this->source = $source;
+ $this->logOnEvent = $logOnEvent;
+ $this->logOffEvent = $logOffEvent;
+ }
+}
+?>
+--EXPECTF--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testurl/Message"><SOAP-ENV:Body><ns1:ivrEvents version="1.0" activityId="101" messageId="12345" source="IVR"><ns1:logOffEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="Smoked" callInitiator="IVR"/><ns1:logOffEvent audienceMemberId="34568" timestamp="2005-11-08T11:22:07+03:00" smokeStatus="SmokeFree" callInitiator="IVR"/><ns1:logOnEvent audienceMemberId="34567" timestamp="2005-11-08T11:22:07+03:00"/></ns1:ivrEvents></SOAP-ENV:Body></SOAP-ENV:Envelope>
+
+object(IVREvents)#%d (6) {
+ ["version"]=>
+ string(3) "1.0"
+ ["activityId"]=>
+ int(101)
+ ["messageId"]=>
+ int(12345)
+ ["source"]=>
+ string(3) "IVR"
+ ["logOnEvent"]=>
+ array(1) {
+ [0]=>
+ object(LogOnEvent)#10 (2) {
+ ["audienceMemberId"]=>
+ int(34567)
+ ["timestamp"]=>
+ string(25) "2005-11-08T11:22:07+03:00"
+ }
+ }
+ ["logOffEvent"]=>
+ array(2) {
+ [0]=>
+ object(LogOffEvent)#%d (4) {
+ ["audienceMemberId"]=>
+ int(34567)
+ ["timestamp"]=>
+ string(25) "2005-11-08T11:22:07+03:00"
+ ["smokeStatus"]=>
+ string(6) "Smoked"
+ ["callInitiator"]=>
+ string(3) "IVR"
+ }
+ [1]=>
+ object(LogOffEvent)#%d (4) {
+ ["audienceMemberId"]=>
+ int(34568)
+ ["timestamp"]=>
+ string(25) "2005-11-08T11:22:07+03:00"
+ ["smokeStatus"]=>
+ string(9) "SmokeFree"
+ ["callInitiator"]=>
+ string(3) "IVR"
+ }
+ }
+}
diff --git a/ext/soap/tests/bugs/bug36575.phpt b/ext/soap/tests/bugs/bug36575.phpt
new file mode 100755
index 000000000..d205f8805
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36575.phpt
@@ -0,0 +1,52 @@
+--TEST--
+Bug #36575 (Incorrect complex type instantiation with hierarchies)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+abstract class CT_A1 {
+ public $var1;
+}
+
+class CT_A2 extends CT_A1 {
+ public $var2;
+}
+
+class CT_A3 extends CT_A2 {
+ public $var3;
+}
+
+// returns A2 in WSDL
+function test( $a1 ) {
+ $a3 = new CT_A3();
+ $a3->var1 = $a1->var1;
+ $a3->var2 = "var two";
+ $a3->var3 = "var three";
+ return $a3;
+}
+
+$classMap = array("A1" => "CT_A1", "A2" => "CT_A2", "A3" => "CT_A3");
+
+$client = new SoapClient(dirname(__FILE__)."/bug36575.wsdl", array("trace" => 1, "exceptions" => 0, "classmap" => $classMap));
+$a2 = new CT_A2();
+$a2->var1 = "one";
+$a2->var2 = "two";
+$client->test($a2);
+
+$soapRequest = $client->__getLastRequest();
+
+echo $soapRequest;
+
+$server = new SoapServer(dirname(__FILE__)."/bug36575.wsdl", array("classmap" => $classMap));
+$server->addFunction("test");
+$server->handle($soapRequest);
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:test.soap#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="urn:test.soap.types#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><a1 xsi:type="ns2:A2"><var1 xsi:type="xsd:string">one</var1><var2 xsi:type="xsd:string">two</var2></a1></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:test.soap#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="urn:test.soap.types#" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:testResponse><result xsi:type="ns2:A3"><var1 xsi:type="xsd:string">one</var1><var2 xsi:type="xsd:string">var two</var2><var3 xsi:type="xsd:string">var three</var3></result></ns1:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/bugs/bug36575.wsdl b/ext/soap/tests/bugs/bug36575.wsdl
new file mode 100755
index 000000000..0f1899bcd
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36575.wsdl
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<definitions name="shoppingcart"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="urn:test.soap#" targetNamespace="urn:test.soap#"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:types="urn:test.soap.types#">
+ <!-- all datatypes will be imported to namespace types: -->
+ <types>
+ <xs:schema
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap = "http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:tns="urn:test.soap.types#"
+ targetNamespace="urn:test.soap.types#">
+
+ <xs:complexType name="A1">
+ <xs:all>
+ <xs:element name="var1" type="xs:string" nillable="true"/>
+ </xs:all>
+ </xs:complexType>
+
+ <xs:complexType name="A2">
+ <xs:complexContent>
+ <xs:extension base="tns:A1">
+ <xs:all>
+ <xs:element name="var2" type="xs:string" nillable="true"/>
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="A3">
+ <xs:complexContent>
+ <xs:extension base="tns:A2">
+ <xs:all>
+ <xs:element name="var3" type="xs:string" nillable="true"/>
+ </xs:all>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+ </xs:schema>
+ </types>
+
+ <message name="test-request">
+ <part name="a1" type="types:A1"/>
+ </message>
+ <message name="test-response">
+ <part name="result" type="types:A2"/>
+ </message>
+
+ <portType name="catalog-porttype">
+ <operation name="test" parameterOrder="a1">
+ <input name="test-request" message="tns:test-request"/>
+ <output name="test-response" message="tns:test-response"/>
+ </operation>
+ </portType>
+
+ <!-- @type doesn't like tns: -->
+ <binding name="catalog-binding" type="tns:catalog-porttype">
+ <soap:binding style="rpc"
+ transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <operation name="test">
+ <soap:operation soapAction="urn:test.soap#test"/>
+ <input>
+ <soap:body use="encoded" namespace="urn:test.soap#"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body use="encoded" namespace="urn:test.soap#"
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="catalog">
+ <!-- @binding doesn't like to be tns: -->
+ <port name="catalog-port" binding="tns:catalog-binding">
+ <soap:address location="xxxxxxxx"/>
+ </port>
+ </service>
+
+</definitions>
diff --git a/ext/soap/tests/bugs/bug36614.phpt b/ext/soap/tests/bugs/bug36614.phpt
new file mode 100755
index 000000000..ba6734812
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36614.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Bug #36614 (Segfault when using Soap)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+$lo_soap = new SoapClient(dirname(__FILE__)."/bug36614.wsdl");
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/ext/soap/tests/bugs/bug36614.wsdl b/ext/soap/tests/bugs/bug36614.wsdl
new file mode 100755
index 000000000..ecf1b1b2f
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36614.wsdl
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<definitions name="SonicMobile Web-Services"
+ targetNamespace="http://soap.sonicmobile.com/sonicmobile.wsdl"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:sonic="http://soap.sonicmobile.com/sonicmobile.wsdl"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2000/10/XMLSchema">
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="TransportCount">
+ <all>
+ <element name="transport" type="string" />
+ <element name="count" type="integer" />
+ <element name="rate" type="integer" />
+ <element name="last_message" type="integer" />
+ </all>
+ </complexType>
+ <complexType name="ArrayOfTransportCount">
+ <complexContent>
+ <restriction base="soapenc:Array">
+ <attribute ref="soapenc:arrayType" arrayType="TransportCount[]" />
+ </restriction>
+ </complexContent>
+ </complexType>
+ </xsd:schema>
+ </types>
+
+ <message name="userSendMessageRequest">
+ <part name="sourceUser" type="xsd:int"/>
+ <part name="password" type="xsd:string"/>
+ <part name="destinationUser" type="xsd:int"/>
+ <part name="content" type="xsd:string"/>
+ <part name="sendRepliesTo" type="xsd:string"/>
+ <part name="reference" type="xsd:string"/>
+ </message>
+
+ <message name="sendMessageRequest">
+ <part name="application" type="xsd:string"/>
+ <part name="password" type="xsd:string"/>
+ <part name="destination" type="xsd:string"/>
+ <part name="content" type="xsd:string"/>
+ <part name="reference" type="xsd:string"/>
+ <part name="requestSource" type="xsd:string"/>
+ <part name="customer" type="xsd:string"/>
+ <part name="class" type="xsd:string"/>
+ </message>
+
+ <message name="MessageResponse">
+ <part name="messageid" type="xsd:int"/>
+ <part name="response" type="xsd:string"/>
+ </message>
+
+ <message name="messageCountRequest">
+ <part name="password" type="xsd:string"/>
+ </message>
+
+ <message name="messageCountResponse">
+ <part name="transports" type="tns:ArrayOfTransportCount"/>
+ </message>
+
+ <message name="serverStatusRequest">
+ <part name="password" type="xsd:string"/>
+ </message>
+ <message name="serverStatusResponse">
+ <part name="status_string" type="xsd:string"/>
+ </message>
+
+ <message name="flushGatewayRequest">
+ <part name="password" type="xsd:string"/>
+ </message>
+ <message name="flushGatewayResponse">
+ <part name="status_string" type="xsd:string"/>
+ </message>
+
+ <portType name="SonicMobilePortType">
+ <operation name="userSendMessage">
+ <input message="sonic:userSendMessageRequest"/>
+ <output message="sonic:MessageResponse"/>
+ </operation>
+
+ <operation name="sendMessage">
+ <input message="sonic:sendMessageRequest"/>
+ <output message="sonic:MessageResponse"/>
+ </operation>
+
+ <operation name="messageCount">
+ <input message="sonic:messageCountRequest"/>
+ <output message="sonic:messageCountResponse"/>
+ </operation>
+
+ <operation name="serverStatus">
+ <input message="sonic:serverStatusRequest"/>
+ <output message="sonic:serverStatusResponse"/>
+ </operation>
+
+ <operation name="flushGateway">
+ <input message="sonic:flushGatewayRequest"/>
+ <output message="sonic:flushGatewayResponse"/>
+ </operation>
+ </portType>
+
+ <binding name="SonicMobileBinding" type="sonic:SonicMobilePortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
+
+ <operation name="userSendMessage">
+ <soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#userSendMessage"/>
+
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </input>
+
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </output>
+ </operation>
+
+ <operation name="sendMessage">
+ <soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#sendMessage"/>
+
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </input>
+
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </output>
+ </operation>
+
+ <operation name="messageCount">
+ <soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#messageCount"/>
+
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </input>
+
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </output>
+ </operation>
+
+ <operation name="serverStatus">
+ <soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#serverStatus"/>
+
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </input>
+
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </output>
+ </operation>
+
+ <operation name="flushGateway">
+ <soap:operation soapAction="http://soap.sonicmobile.com/SonicMobile/SOAP#flushGateway"/>
+
+ <input>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </input>
+ <output>
+ <soap:body
+ encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ namespace="http://soap.sonicmobile.com/SonicMobile/SOAP"
+ use="encoded" />
+ </output>
+ </operation>
+
+ </binding>
+
+ <service name="SonicMobile">
+ <port name="SonicMobilePort" binding="sonic:SonicMobileBinding">
+ <soap:address location="http://soap.sonicmobile.com/"/>
+ </port>
+ </service>
+
+</definitions>
diff --git a/ext/soap/tests/bugs/bug36629.phpt b/ext/soap/tests/bugs/bug36629.phpt
new file mode 100755
index 000000000..7982cfa6b
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36629.phpt
@@ -0,0 +1,53 @@
+--TEST--
+Bug #36629 (SoapServer::handle() exits on SOAP faults)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+function test1() {
+ throw new SoapFault("Server", "test1");
+}
+function test2() {
+ return new SoapFault("Server", "test2");
+}
+
+$server = new soapserver(null,array('uri'=>"http://testuri.org"));
+$server->addfunction(array("test1","test2"));
+
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<SOAP-ENV:Envelope
+ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:si="http://soapinterop.org/xsd">
+ <SOAP-ENV:Body>
+ <ns1:test1 xmlns:ns1="http://testuri.org" />
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+EOF;
+$server->handle();
+
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<SOAP-ENV:Envelope
+ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:si="http://soapinterop.org/xsd">
+ <SOAP-ENV:Body>
+ <ns1:test2 xmlns:ns1="http://testuri.org" />
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+EOF;
+$server->handle();
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>test1</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>test2</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/bugs/bug36908.phpt b/ext/soap/tests/bugs/bug36908.phpt
new file mode 100755
index 000000000..588c559a0
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36908.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #36908 (wsdl default value overrides value in soap request)
+--SKIPIF--
+<?php
+ if (!extension_loaded('soap')) die('skip soap extension not available');
+?>
+--INI--
+soap.wsdl_cache_enabled=0
+--FILE--
+<?php
+class PublisherService {
+ function add($publisher) {
+ return $publisher->region_id;
+ }
+}
+$input =
+'<?xml version="1.0" encoding="UTF-8"?>
+<soapenv:Envelope
+xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <soapenv:Body>
+ <ns1:add xmlns:ns1="urn:PublisherService" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
+ <publisher href="#id0"/>
+ </ns1:add>
+ <multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:ns3="http://soap.dev/soap/types" id="id0" soapenc:root="0"
+soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+xsi:type="ns3:publisher">
+ <region_id href="#id5"/>
+ </multiRef>
+ <multiRef xmlns:ns5="http://soap.dev/soap/types"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" id="id5"
+soapenc:root="0"
+soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+xsi:type="xsd:long">9</multiRef>
+ </soapenv:Body>
+</soapenv:Envelope>';
+ini_set('soap.wsdl_cache_enabled', false);
+$server = new SoapServer(dirname(__FILE__)."/bug36908.wsdl");
+$server->setClass("PublisherService");
+$server->handle($input);
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:PublisherService" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:addResponse><out xsi:type="xsd:string">9</out></ns1:addResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/soap/tests/bugs/bug36908.wsdl b/ext/soap/tests/bugs/bug36908.wsdl
new file mode 100755
index 000000000..f3be3f630
--- /dev/null
+++ b/ext/soap/tests/bugs/bug36908.wsdl
@@ -0,0 +1,51 @@
+<?xml version="1.0"?>
+<wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns:api="http://soap.dev/soap/PublisherService"
+xmlns:types="http://soap.dev/soap/types"
+targetNamespace="http://soap.dev/soap/PublisherService">
+ <wsdl:types>
+ <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
+xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+xmlns:types="http://soap.dev/soap/types"
+targetNamespace="http://soap.dev/soap/types">
+ <xsd:complexType name="publisher">
+ <xsd:all>
+ <xsd:element name="region_id" type="xsd:long" default="52"/>
+ </xsd:all>
+ </xsd:complexType>
+ </xsd:schema>
+ </wsdl:types>
+ <wsdl:message name="addInput">
+ <wsdl:part name="publisher" type="types:publisher"/>
+ </wsdl:message>
+ <wsdl:message name="addOutput">
+ <wsdl:part name="out" type="xsd:string"/>
+ </wsdl:message>
+ <wsdl:portType name="PublisherServicePortType">
+ <wsdl:operation name="add">
+ <wsdl:input message="api:addInput"/>
+ <wsdl:output message="api:addOutput"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="PublisherServiceBinding" type="api:PublisherServicePortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="add">
+ <soap:operation soapAction="urn:PublisherService#add" style="rpc"/>
+ <wsdl:input>
+ <soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="encoded" namespace="urn:PublisherService" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="PublisherService">
+ <wsdl:port name="PublisherServicePort" binding="api:PublisherServiceBinding">
+ <soap:address location="http://soap.dev/soap//publisher_test.php"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ext/soap/tests/bugs/bug37083.phpt b/ext/soap/tests/bugs/bug37083.phpt
new file mode 100755
index 000000000..471b5e49a
--- /dev/null
+++ b/ext/soap/tests/bugs/bug37083.phpt
@@ -0,0 +1,58 @@
+--TEST--
+Bug #37083 (Frequent crashs in SOAP extension with new WSDL caching code in multithread WS)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--INI--
+soap.wsdl_cache_enabled=3
+--FILE--
+<?php
+class TestSoapClient extends SoapClient {
+ function __doRequest($request, $location, $action, $version) {
+ return <<<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<soapenv:Body>
+<ns1:searchResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:java:de.pangaea.metadataportal.search.SearchService">
+<searchReturn href="#id0"/>
+</ns1:searchResponse>
+<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:SearchResponse" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2="urn:java:de.pangaea.metadataportal.search.SearchService"><offset xsi:type="xsd:int">0</offset><queryTime xsi:type="xsd:long">34</queryTime><results soapenc:arrayType="ns2:SearchResponseItem[10]" xsi:type="soapenc:Array"><results href="#id1"/><results href="#id2"/><results href="#id3"/><results href="#id4"/><results href="#id5"/><results href="#id6"/><results href="#id7"/><results href="#id8"/><results href="#id9"/><results href="#id10"/></results><totalCount xsi:type="xsd:int">3501</totalCount></multiRef>
+<multiRef id="id9" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns3:SearchResponseItem" xmlns:ns3="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id11"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900168</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml1</xml></multiRef>
+<multiRef id="id7" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns4:SearchResponseItem" xmlns:ns4="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id12"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900039</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml2</xml></multiRef>
+<multiRef id="id6" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns5:SearchResponseItem" xmlns:ns5="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id13"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900040</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml3</xml></multiRef>
+<multiRef id="id10" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns6:SearchResponseItem" xmlns:ns6="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id14"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:41534</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml4</xml></multiRef>
+<multiRef id="id8" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns7:SearchResponseItem" xmlns:ns7="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id15"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900038</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml5</xml></multiRef>
+<multiRef id="id4" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns8:SearchResponseItem" xmlns:ns8="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id16"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900229</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml6</xml></multiRef>
+<multiRef id="id5" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns9:SearchResponseItem" xmlns:ns9="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id17"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900228</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml7</xml></multiRef>
+<multiRef id="id3" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns10:SearchResponseItem" xmlns:ns10="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id18"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900230</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml8</xml></multiRef>
+<multiRef id="id2" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns11:SearchResponseItem" xmlns:ns11="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id19"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:2900235</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml9</xml></multiRef>
+<multiRef id="id1" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns12:SearchResponseItem" xmlns:ns12="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><fields href="#id20"/><identifier xsi:type="xsd:string">oai:dlmd.ifremer.fr:5900196</identifier><score xsi:type="xsd:float">0.13684115</score><xml xsi:type="xsd:string">xml10</xml></multiRef>
+<multiRef id="id15" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns13:Map" xmlns:ns13="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-12-01T04:58:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">105.539</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">112.283</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-30.024</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-34.788</value></value></item></multiRef>
+<multiRef id="id20" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns14:Map" xmlns:ns14="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-06-07T17:41:44.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">129.882</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">133.635</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">39.529</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">36.419</value></value></item></multiRef>
+<multiRef id="id18" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns15:Map" xmlns:ns15="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-03-10T01:40:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">63.121</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">80.92</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">0.158</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-3.675</value></value></item></multiRef>
+<multiRef id="id14" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns16:Map" xmlns:ns16="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2003-01-12T05:15:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-42.88</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-20.85</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">61.41</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">43.2</value></value></item></multiRef>
+<multiRef id="id13" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns17:Map" xmlns:ns17="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-12-01T16:50:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">108.962</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">114.713</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-35.262</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-42.756</value></value></item></multiRef>
+<multiRef id="id17" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns18:Map" xmlns:ns18="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2003-10-10T11:52:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">68.14</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">95.987</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">3.97</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-1.242</value></value></item></multiRef>
+<multiRef id="id16" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns19:Map" xmlns:ns19="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-01-10T10:35:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">67.71</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">77.743</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">3.546</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-1.965</value></value></item></multiRef>
+<multiRef id="id19" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns20:Map" xmlns:ns20="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-04-09T23:00:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">59.116</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">69.206</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-2.274</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-4.093</value></value></item></multiRef>
+<multiRef id="id11" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns21:Map" xmlns:ns21="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2002-11-09T23:10:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">156.013</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">160.042</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">5.648</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">4.773</value></value></item></multiRef>
+<multiRef id="id12" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns22:Map" xmlns:ns22="http://xml.apache.org/xml-soap" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"><item><key xsi:type="soapenc:string">maxDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2038-12-31T22:59:59.000Z</value></value></item><item><key xsi:type="soapenc:string">minDateTime</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="xsd:dateTime">2004-11-01T16:58:00.000Z</value></value></item><item><key xsi:type="soapenc:string">minLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">108.11</value></value></item><item><key xsi:type="soapenc:string">maxLongitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">113.383</value></value></item><item><key xsi:type="soapenc:string">maxLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-31.666</value></value></item><item><key xsi:type="soapenc:string">minLatitude</key><value soapenc:arrayType="xsd:anyType[1]" xsi:type="soapenc:Array"><value xsi:type="soapenc:double">-35.075</value></value></item></multiRef>
+</soapenv:Body></soapenv:Envelope>
+EOF;
+ }
+}
+for ($i = 0; $i < 10; $i++) {
+ $ws=new TestSoapClient(dirname(__FILE__).'/bug37083.wsdl',
+ array('encoding'=>'ISO-8859-1',
+ 'cache_wsdl'=>WSDL_CACHE_BOTH));
+ $search=new stdClass();
+ $search->queryString='argo';
+ $search->ranges[]=$r=new stdClass();
+ $r->field='maxDateTime';
+ $r->min='2003-04-01';
+ $search->index='all';
+ $res=$ws->search($search,0,10);
+}
+echo "ok\n";
+?>
+--EXPECT--
+ok
diff --git a/ext/soap/tests/bugs/bug37083.wsdl b/ext/soap/tests/bugs/bug37083.wsdl
new file mode 100755
index 000000000..2a3b37980
--- /dev/null
+++ b/ext/soap/tests/bugs/bug37083.wsdl
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsdl:definitions targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:intf="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema targetNamespace="urn:java:de.pangaea.metadataportal.search.SearchService" xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="http://xml.apache.org/xml-soap"/>
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="SearchRequestRange">
+ <sequence>
+ <element name="field" nillable="true" type="xsd:string"/>
+ <element name="max" nillable="true" type="xsd:anyType"/>
+ <element name="min" nillable="true" type="xsd:anyType"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfSearchRequestRange">
+ <complexContent>
+ <restriction base="soapenc:Array">
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:SearchRequestRange[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SearchRequest">
+ <sequence>
+ <element name="index" nillable="true" type="xsd:string"/>
+ <element name="queryString" nillable="true" type="xsd:string"/>
+ <element name="ranges" nillable="true" type="impl:ArrayOfSearchRequestRange"/>
+ </sequence>
+ </complexType>
+ <complexType name="SearchResponseItem">
+ <sequence>
+ <element name="fields" nillable="true" type="apachesoap:Map"/>
+ <element name="identifier" nillable="true" type="xsd:string"/>
+ <element name="score" type="xsd:float"/>
+ <element name="xml" nillable="true" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ <complexType name="ArrayOfSearchResponseItem">
+ <complexContent>
+ <restriction base="soapenc:Array">
+ <attribute ref="soapenc:arrayType" wsdl:arrayType="impl:SearchResponseItem[]"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+ <complexType name="SearchResponse">
+ <sequence>
+ <element name="offset" type="xsd:int"/>
+ <element name="queryTime" type="xsd:long"/>
+ <element name="results" nillable="true" type="impl:ArrayOfSearchResponseItem"/>
+ <element name="totalCount" type="xsd:int"/>
+ </sequence>
+ </complexType>
+ </schema>
+ <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
+ <import namespace="urn:java:de.pangaea.metadataportal.search.SearchService"/>
+ <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
+ <complexType name="mapItem">
+ <sequence>
+ <element name="key" nillable="true" type="xsd:anyType"/>
+ <element name="value" nillable="true" type="xsd:anyType"/>
+ </sequence>
+ </complexType>
+ <complexType name="Map">
+ <sequence>
+ <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem"/>
+ </sequence>
+ </complexType>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="searchRequest">
+ <wsdl:part name="in0" type="impl:SearchRequest"/>
+ <wsdl:part name="in1" type="xsd:int"/>
+ <wsdl:part name="in2" type="xsd:int"/>
+ </wsdl:message>
+ <wsdl:message name="searchResponse">
+ <wsdl:part name="searchReturn" type="impl:SearchResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="SearchServiceAxisImpl">
+ <wsdl:operation name="search" parameterOrder="in0 in1 in2">
+ <wsdl:input message="impl:searchRequest" name="searchRequest"/>
+ <wsdl:output message="impl:searchResponse" name="searchResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="SearchSoapBinding" type="impl:SearchServiceAxisImpl">
+ <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="search">
+ <wsdlsoap:operation soapAction=""/>
+ <wsdl:input name="searchRequest">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:java:de.pangaea.metadataportal.search.SearchService" use="encoded"/>
+ </wsdl:input>
+ <wsdl:output name="searchResponse">
+ <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:java:de.pangaea.metadataportal.search.SearchService" use="encoded"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="SearchServiceAxisImplService">
+ <wsdl:port binding="impl:SearchSoapBinding" name="Search">
+ <wsdlsoap:address location="test://"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
diff --git a/ext/soap/tests/bugs/bug37278.phpt b/ext/soap/tests/bugs/bug37278.phpt
new file mode 100755
index 000000000..eb96f2f3a
--- /dev/null
+++ b/ext/soap/tests/bugs/bug37278.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Bug #37278 (SOAP not respecting uri in __soapCall)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+$options = array(
+ "location" => "test://",
+ "uri" => "http://bricolage.sourceforge.net/Bric/SOAP/Auth",
+ "trace" => 1);
+
+$client = new SoapClient(null, $options);
+
+$newNS = "http://bricolage.sourceforge.net/Bric/SOAP/Story";
+
+try {
+ $client->__soapCall("list_ids", array(), array("uri" => $newNS));
+} catch (Exception $e) {
+ print $client->__getLastRequest();
+}
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://bricolage.sourceforge.net/Bric/SOAP/Story" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:list_ids/></SOAP-ENV:Body></SOAP-ENV:Envelope> \ No newline at end of file
diff --git a/ext/soap/tests/classmap003.phpt b/ext/soap/tests/classmap003.phpt
new file mode 100755
index 000000000..30d86c4a8
--- /dev/null
+++ b/ext/soap/tests/classmap003.phpt
@@ -0,0 +1,54 @@
+--TEST--
+SOAP Classmap 3: encoding of inherited objects
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+ini_set("soap.wsdl_cache_enabled",0);
+
+class A {
+ public $x;
+ function __construct($a){
+ $this->x = $a;
+ }
+}
+
+class B extends A {
+ public $y;
+ function __construct($a){
+ parent::__construct($a);
+ $this->y = $a + 1;
+ }
+}
+
+function f(){
+ return new B(5);
+}
+
+class LocalSoapClient extends SoapClient {
+
+ function __construct($wsdl, $options) {
+ parent::__construct($wsdl, $options);
+ $this->server = new SoapServer($wsdl, $options);
+ $this->server->addFunction("f");
+ }
+
+ function __doRequest($request, $location, $action, $version) {
+ ob_start();
+ $this->server->handle($request);
+ $response = ob_get_contents();
+ ob_end_clean();
+ return $response;
+ }
+}
+
+$client = new LocalSoapClient(dirname(__FILE__)."/classmap003.wsdl",
+ array('classmap'=>array('A'=>'A','B'=>'B')));
+print_r($client->f());
+?>
+--EXPECT--
+B Object
+(
+ [y] => 6
+ [x] => 5
+)
diff --git a/ext/soap/tests/classmap003.wsdl b/ext/soap/tests/classmap003.wsdl
new file mode 100755
index 000000000..494c41864
--- /dev/null
+++ b/ext/soap/tests/classmap003.wsdl
@@ -0,0 +1,51 @@
+<?xml version='1.0' encoding='UTF-8'?>
+
+<!-- WSDL file generated by Zend Studio. -->
+
+<definitions name="ab" targetNamespace="urn:ab" xmlns:typens="urn:ab" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/">
+ <types>
+ <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ab">
+ <xsd:complexType name="A">
+ <xsd:sequence>
+ <xsd:element name="x" type="xsd:anyType"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ <xsd:complexType name="B">
+ <xsd:complexContent>
+ <xsd:extension base="typens:A">
+ <xsd:sequence>
+ <xsd:element name="y" type="xsd:anyType"/>
+ </xsd:sequence>
+ </xsd:extension>
+ </xsd:complexContent>
+ </xsd:complexType>
+ </xsd:schema>
+ </types>
+ <message name="f"/>
+ <message name="fResponse">
+ <part name="fReturn" type="typens:A"/>
+ </message>
+ <portType name="abServerPortType">
+ <operation name="f">
+ <input message="typens:f"/>
+ <output message="typens:fResponse"/>
+ </operation>
+ </portType>
+ <binding name="abServerBinding" type="typens:abServerPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="f">
+ <soap:operation soapAction="urn:abServerAction"/>
+ <input>
+ <soap:body namespace="urn:ab" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </input>
+ <output>
+ <soap:body namespace="urn:ab" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="abService">
+ <port name="abServerPort" binding="typens:abServerBinding">
+ <soap:address location="http://localhost/abServer.php"/>
+ </port>
+ </service>
+</definitions>
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt
index 15a6c0983..fd898a1e2 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_001w.phpt
@@ -24,3 +24,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoSOAPStructFaultRequest><ns1:varString>arg</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns2:echoSOAPStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoSOAPStructFault'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt
index 1778d38ba..22275ac4f 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_002w.phpt
@@ -30,3 +30,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoBaseStructFaultRequest><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>11</ns1:shortMessage></ns2:echoBaseStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoBaseStructFault'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>11</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt
index cd7cc499d..3fb4e1154 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_003w.phpt
@@ -38,3 +38,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoExtendedStructFaultRequest><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:echoExtendedStructFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoExtendedStructFault'.</faultstring><detail><ns2:ExtendedStructPart><ns1:structMessage><ns1:varString>a1</ns1:varString><ns1:varInt>11</ns1:varInt><ns1:varFloat>12.345</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:ExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt
index 421878bb8..42ea0eef2 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_004w.phpt
@@ -33,3 +33,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>1</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg1</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt
index 9b3b0be5e..34e9baf7d 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_005w.phpt
@@ -33,3 +33,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>2</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>arg2</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:structMessage><ns1:shortMessage>12</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt
index e6566888f..db21c2e51 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_006w.phpt
@@ -33,3 +33,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>3</ns1:whichFault><ns1:param1><ns2:varString>arg1</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>arg2</ns2:varString><ns2:varInt>34</ns2:varInt><ns2:varFloat>325.325</ns2:varFloat></ns2:structMessage><ns2:shortMessage>12</ns2:shortMessage></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:SOAPStructFaultPart><ns1:soapStruct><ns1:varString>arg1</ns1:varString><ns1:varInt>34</ns1:varInt><ns1:varFloat>325.325</ns1:varFloat></ns1:soapStruct></ns2:SOAPStructFaultPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
index 54db2ebe4..73da00e8e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_007w.phpt
@@ -49,3 +49,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>1</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>true</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>s1</ns1:varString><ns1:varInt>1</ns1:varInt><ns1:varFloat>1.1</ns1:varFloat></ns1:structMessage><ns1:shortMessage>1</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
index bbb39de71..3fa3e6d77 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_008w.phpt
@@ -49,3 +49,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>2</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>true</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:ExtendedStructPart><ns1:structMessage><ns1:varString>s2</ns1:varString><ns1:varInt>2</ns1:varInt><ns1:varFloat>2.2</ns1:varFloat></ns1:structMessage><ns1:shortMessage>2</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage></ns2:ExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
index 28e9208c0..340c25a8c 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_009w.phpt
@@ -49,3 +49,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>3</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>true</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:MoreExtendedStructPart><ns1:structMessage><ns1:varString>s3</ns1:varString><ns1:varInt>3</ns1:varInt><ns1:varFloat>3.3</ns1:varFloat></ns1:structMessage><ns1:shortMessage>3</ns1:shortMessage><ns1:stringMessage>arg</ns1:stringMessage><ns1:intMessage>-3</ns1:intMessage><ns1:anotherIntMessage>5</ns1:anotherIntMessage><ns1:booleanMessage>true</ns1:booleanMessage></ns2:MoreExtendedStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
index 7c047e885..c89ac264d 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_doclit_010w.phpt
@@ -49,3 +49,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>4</ns1:whichFault><ns1:param1><ns2:structMessage><ns2:varString>s1</ns2:varString><ns2:varInt>1</ns2:varInt><ns2:varFloat>1.1</ns2:varFloat></ns2:structMessage><ns2:shortMessage>1</ns2:shortMessage></ns1:param1><ns1:param2><ns2:structMessage><ns2:varString>s2</ns2:varString><ns2:varInt>2</ns2:varInt><ns2:varFloat>2.2</ns2:varFloat></ns2:structMessage><ns2:shortMessage>2</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage></ns1:param2><ns1:param3><ns2:structMessage><ns2:varString>s3</ns2:varString><ns2:varInt>3</ns2:varInt><ns2:varFloat>3.3</ns2:varFloat></ns2:structMessage><ns2:shortMessage>3</ns2:shortMessage><ns2:stringMessage>arg</ns2:stringMessage><ns2:intMessage>-3</ns2:intMessage><ns2:anotherIntMessage>5</ns2:anotherIntMessage><ns2:booleanMessage>true</ns2:booleanMessage></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:BaseStructPart><ns1:structMessage><ns1:varString>s1</ns1:varString><ns1:varInt>1</ns1:varInt><ns1:varFloat>1.1</ns1:varFloat></ns1:structMessage><ns1:shortMessage>1</ns1:shortMessage></ns2:BaseStructPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt
index 3c77e08f0..a0601aaac 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_001w.phpt
@@ -24,3 +24,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoSOAPStructFault><param xsi:type="ns2:SOAPStructFault"><soapStruct xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></param></ns1:echoSOAPStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoSOAPStructFault'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt
index 9b1a2b2bf..9d80f80e1 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_002w.phpt
@@ -23,3 +23,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoBaseStructFault><param xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param></ns1:echoBaseStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoBaseStructFault'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt
index db2890c8e..ff787f9a7 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_003w.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoExtendedStructFault><param xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param></ns1:echoExtendedStructFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoExtendedStructFault'.</faultstring><detail><ns2:part3 xsi:type="ns1:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></ns2:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt
index 0846a04ba..b68e464ac 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_004w.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt
index 03db1a245..eef797fa5 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_005w.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt
index e5fa8540a..adf675701 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_006w.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="ns2:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></param1><param2 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">12</shortMessage></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:type="ns1:SOAPStructFault"><soapStruct xsi:type="ns1:SOAPStruct"><varString xsi:type="xsd:string">arg</varString><varInt xsi:type="xsd:int">34</varInt><varFloat xsi:type="xsd:float">325.325</varFloat></soapStruct></ns2:part1></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
index 8df5e9a94..a1a345d5e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_007w.phpt
@@ -39,3 +39,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">true</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
index ed1a38cb1..fc7d74709 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_008w.phpt
@@ -39,3 +39,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">true</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part3 xsi:type="ns1:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></ns2:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
index 1c206ff81..7f4bde62d 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_009w.phpt
@@ -39,3 +39,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">true</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part4 xsi:type="ns1:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">true</booleanMessage></ns2:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
index 8d7597655..5adca12d9 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_complex_rpcenc_010w.phpt
@@ -39,3 +39,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="ns2:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></param1><param2 xsi:type="ns2:ExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">2</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage></param2><param3 xsi:type="ns2:MoreExtendedStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">3</shortMessage><stringMessage xsi:type="xsd:string">arg</stringMessage><intMessage xsi:type="xsd:int">-3</intMessage><anotherIntMessage xsi:type="xsd:int">5</anotherIntMessage><booleanMessage xsi:type="xsd:boolean">true</booleanMessage></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part2 xsi:type="ns1:BaseStruct"><floatMessage xsi:type="xsd:float">12.345</floatMessage><shortMessage xsi:type="xsd:short">1</shortMessage></ns2:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt
index 576b664db..ee719f17c 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_001w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoEmptyFaultRequest/></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoEmptyFault'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt
index 5484df49c..7ea0f6f13 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_002w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoStringFaultRequest>Hello World</ns1:echoStringFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoStringFault'.</faultstring><detail><ns1:StringPart>Hello World</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt
index c6f519d13..937e49f3a 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_003w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns2:echoIntArrayFaultRequest><ns1:value>34</ns1:value><ns1:value>12</ns1:value></ns2:echoIntArrayFaultRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoIntArrayFault'.</faultstring><detail><ns2:ArrayOfIntPart><ns1:value>34</ns1:value><ns1:value>12</ns1:value></ns2:ArrayOfIntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt
index 61c1e59be..00530b56c 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_004w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt
index dd65751c4..ac77defb8 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_005w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:StringPart>Hello world</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt
index a8ba99206..5246dad51 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_006w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:ArrayOfFloatPart><ns1:value>12.345</ns1:value><ns1:value>45</ns1:value><ns1:value>678</ns1:value></ns2:ArrayOfFloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt
index 5cc2c2062..acf66959c 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_007w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults1Request><ns1:whichFault>4</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2><ns2:value>12.345</ns2:value><ns2:value>45</ns2:value><ns2:value>678</ns2:value></ns1:param2></ns1:echoMultipleFaults1Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:EmptyPart/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt
index 3125a4c0c..27c9623db 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_008w.phpt
@@ -19,3 +19,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:FloatPart>12.345</ns1:FloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt
index 460af7915..783e52047 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_009w.phpt
@@ -19,3 +19,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:StringPart>Hello world</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt
index c5c7ba738..8d05a088d 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_010w.phpt
@@ -19,3 +19,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:ArrayOfStringPart><ns1:value>one</ns1:value><ns1:value>two</ns1:value><ns1:value>three</ns1:value></ns2:ArrayOfStringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt
index 9753e9854..0af808b48 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_011w.phpt
@@ -19,3 +19,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse" xmlns:ns2="http://soapinterop.org/types"><SOAP-ENV:Body><ns1:echoMultipleFaults2Request><ns1:whichFault>4</ns1:whichFault><ns1:param1>Hello world</ns1:param1><ns1:param2>12.345</ns1:param2><ns1:param3><ns2:value>one</ns2:value><ns2:value>two</ns2:value><ns2:value>three</ns2:value></ns1:param3></ns1:echoMultipleFaults2Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:FloatPart>12.345</ns1:FloatPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt
index 7bf2ae3a7..86a86f4d9 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_012w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:StringPart>arg1</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt
index 058e16eb2..7718a4722 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_013w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:String2Part>arg2</ns1:String2Part></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt
index ab1028bbe..d35a075f5 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_014w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults3Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>arg1</ns1:param1><ns1:param2>arg2</ns1:param2></ns1:echoMultipleFaults3Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:StringPart>arg1</ns1:StringPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt
index d3949c91a..2a652e719 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_015w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>1</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:IntPart>162</ns1:IntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt
index b16cc2375..81eb3e98e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_016w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>2</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:EnumPart>1</ns1:EnumPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt
index 442f45261..08ca44adc 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_doclit_017w.phpt
@@ -18,3 +18,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/requestresponse"><SOAP-ENV:Body><ns1:echoMultipleFaults4Request><ns1:whichFault>3</ns1:whichFault><ns1:param1>162</ns1:param1><ns1:param2>1</ns1:param2></ns1:echoMultipleFaults4Request></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types/part"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:IntPart>162</ns1:IntPart></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt
index 8582257d2..d5421dcde 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_001w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoEmptyFault/></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoEmptyFault'.</faultstring><detail><ns2:part1 xsi:nil="true" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt
index f86355121..80957682f 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_002w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoStringFault><param xsi:type="xsd:string">Hello World</param></ns1:echoStringFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoStringFault'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello World</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt
index 0cddcdc94..19a00e47f 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_003w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoIntArrayFault><param SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns2:ArrayOfInt"><item xsi:type="xsd:int">34</item><item xsi:type="xsd:int">12</item></param></ns1:echoIntArrayFault></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoIntArrayFault'.</faultstring><detail><ns2:part5 SOAP-ENC:arrayType="xsd:int[2]" xsi:type="ns1:ArrayOfInt"><item xsi:type="xsd:int">34</item><item xsi:type="xsd:int">12</item></ns2:part5></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt
index dbf1d63f1..7a237647e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_004w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:nil="true" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt
index 25b4d0145..de07294de 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_005w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello world</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt
index b25d7c0e0..8a95c9a46 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_006w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part7 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns1:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></ns2:part7></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt
index f4484b690..153ba5050 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_007w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults1><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="xsd:string">Hello world</param1><param2 SOAP-ENC:arrayType="xsd:float[3]" xsi:type="ns2:ArrayOfFloat"><item xsi:type="xsd:float">12.345</item><item xsi:type="xsd:float">45</item><item xsi:type="xsd:float">678</item></param2></ns1:echoMultipleFaults1></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults1'.</faultstring><detail><ns2:part1 xsi:nil="true" xsi:type="ns1:EmptyFault"/></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt
index c7cbd26b9..e5a95d18f 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_008w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part4 xsi:type="xsd:float">12.345</ns1:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt
index 28d4819b8..c3cb033ac 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_009w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">Hello World</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt
index 0030daebb..dce4032f4 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_010w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns2:part6 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns1:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></ns2:part6></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt
index bccad3665..c1fa3000b 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_011w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults2><whichFault xsi:type="xsd:int">4</whichFault><param1 xsi:type="xsd:string">Hello World</param1><param2 xsi:type="xsd:float">12.345</param2><param3 SOAP-ENC:arrayType="xsd:string[3]" xsi:type="ns2:ArrayOfString"><item xsi:type="xsd:string">one</item><item xsi:type="xsd:string">two</item><item xsi:type="xsd:string">three</item></param3></ns1:echoMultipleFaults2></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults2'.</faultstring><detail><ns1:part4 xsi:type="xsd:float">12.345</ns1:part4></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt
index 2dccfc397..965bb816e 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_012w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg1</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt
index 0a557cc72..c4eb6c1dc 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_013w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg2</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt
index d082e5c8d..733f5ca48 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_014w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults3><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:string">arg1</param1><param2 xsi:type="xsd:string">arg2</param2></ns1:echoMultipleFaults3></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl/fault1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults3'.</faultstring><detail><ns1:part2 xsi:type="xsd:string">arg1</ns1:part2></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt
index d3139de6f..46b3ff065 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_015w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">1</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:part3 xsi:type="xsd:int">162</ns1:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt
index 43f71b2cc..40c3db6fb 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_016w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">2</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/types" xmlns:ns2="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns2:part9 xsi:type="ns1:Enum">1</ns2:part9></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt
index e0e31d90b..622d17d6a 100644
--- a/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupH/r4_groupH_simple_rpcenc_017w.phpt
@@ -16,3 +16,4 @@ echo "ok\n";
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns2="http://soapinterop.org/types" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:echoMultipleFaults4><whichFault xsi:type="xsd:int">3</whichFault><param1 xsi:type="xsd:int">162</param1><param2 xsi:type="ns2:Enum">1</param2></ns1:echoMultipleFaults4></SOAP-ENV:Body></SOAP-ENV:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://soapinterop.org/wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Server</faultcode><faultstring>Fault in response to 'echoMultipleFaults4'.</faultstring><detail><ns1:part3 xsi:type="xsd:int">162</ns1:part3></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt
index 32308ba2b..566461451 100644
--- a/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt
+++ b/ext/soap/tests/interop/Round4/GroupI/r4_groupI_xsd_006w.phpt
Binary files differ
diff --git a/ext/soap/tests/schema/schema075.phpt b/ext/soap/tests/schema/schema075.phpt
index 2a84be9ce..0f430f59d 100644
--- a/ext/soap/tests/schema/schema075.phpt
+++ b/ext/soap/tests/schema/schema075.phpt
@@ -19,7 +19,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><testParam ns1:int1="1" ns1:int2="2" int3="3" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/schema/schema076.phpt b/ext/soap/tests/schema/schema076.phpt
index dfa7791fe..6e6444a5d 100644
--- a/ext/soap/tests/schema/schema076.phpt
+++ b/ext/soap/tests/schema/schema076.phpt
@@ -19,7 +19,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><testParam int1="1" ns1:int2="2" int3="3" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/schema/schema077.phpt b/ext/soap/tests/schema/schema077.phpt
index baf10449d..779503cb4 100644
--- a/ext/soap/tests/schema/schema077.phpt
+++ b/ext/soap/tests/schema/schema077.phpt
@@ -19,7 +19,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:test><testParam int1="1" ns1:int2="2" int3="3" xsi:type="ns1:testType"/></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/schema/schema078.phpt b/ext/soap/tests/schema/schema078.phpt
index a674270df..7636a78f9 100644
--- a/ext/soap/tests/schema/schema078.phpt
+++ b/ext/soap/tests/schema/schema078.phpt
@@ -21,7 +21,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/"><SOAP-ENV:Body><ns1:test><testParam><ns1:int1>1</ns1:int1><ns1:int2>2</ns1:int2><int3>3</int3></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/schema/schema079.phpt b/ext/soap/tests/schema/schema079.phpt
index d7f2ab97c..34dcd9bee 100644
--- a/ext/soap/tests/schema/schema079.phpt
+++ b/ext/soap/tests/schema/schema079.phpt
@@ -21,7 +21,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/"><SOAP-ENV:Body><ns1:test><testParam><int1>1</int1><ns1:int2>2</ns1:int2><int3>3</int3></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/schema/schema080.phpt b/ext/soap/tests/schema/schema080.phpt
index 4accf551f..7519d6a30 100644
--- a/ext/soap/tests/schema/schema080.phpt
+++ b/ext/soap/tests/schema/schema080.phpt
@@ -21,7 +21,7 @@ echo "ok";
--EXPECTF--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://test-uri/"><SOAP-ENV:Body><ns1:test><testParam><int1>1</int1><ns1:int2>2</ns1:int2><int3>3</int3></testParam></ns1:test></SOAP-ENV:Body></SOAP-ENV:Envelope>
-object(stdClass)#5 (3) {
+object(stdClass)#%d (3) {
["int1"]=>
int(1)
["int2"]=>
diff --git a/ext/soap/tests/server017.phpt b/ext/soap/tests/server017.phpt
index 2f5dd6b6e..cc4af5e70 100644
--- a/ext/soap/tests/server017.phpt
+++ b/ext/soap/tests/server017.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>MyFault</faultcode><faultstring>My fault string</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server018.phpt b/ext/soap/tests/server018.phpt
index 724f0d884..22c37a09b 100644
--- a/ext/soap/tests/server018.phpt
+++ b/ext/soap/tests/server018.phpt
@@ -31,3 +31,4 @@ echo "ok\n";
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>MyFault</faultcode><faultstring>My fault string</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server022.phpt b/ext/soap/tests/server022.phpt
index 7b74d8923..90b06d5a1 100755
--- a/ext/soap/tests/server022.phpt
+++ b/ext/soap/tests/server022.phpt
@@ -38,3 +38,4 @@ echo "ok\n";
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>MyFault</faultcode><faultstring>My fault string</faultstring></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server023.phpt b/ext/soap/tests/server023.phpt
new file mode 100755
index 000000000..c227204d3
--- /dev/null
+++ b/ext/soap/tests/server023.phpt
@@ -0,0 +1,37 @@
+--TEST--
+SOAP Server 23: Send SOAP headers those were not received
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+function test() {
+ global $server;
+ $server->addSoapHeader(new SoapHeader("http://testuri.org", "Test1", "Hello Header!"));
+ $server->addSoapHeader(new SoapHeader("http://testuri.org", "Test2", "Hello Header!"));
+ return "Hello Body!";
+}
+
+$server = new soapserver(null,array('uri'=>"http://testuri.org"));
+$server->addfunction("test");
+
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<SOAP-ENV:Envelope
+ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:si="http://soapinterop.org/xsd">
+ <SOAP-ENV:Body>
+ <ns1:test xmlns:ns1="http://testuri.org"/>
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+EOF;
+
+$server->handle();
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testuri.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns1:Test1>Hello Header!</ns1:Test1><ns1:Test2>Hello Header!</ns1:Test2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:testResponse><return xsi:type="xsd:string">Hello Body!</return></ns1:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server024.phpt b/ext/soap/tests/server024.phpt
new file mode 100755
index 000000000..0ddd9cec3
--- /dev/null
+++ b/ext/soap/tests/server024.phpt
@@ -0,0 +1,49 @@
+--TEST--
+SOAP Server 24: Send SOAP headers those were not received
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class TestHeader1 extends SoapHeader {
+ function __construct($data) {
+ parent::__construct("http://testuri.org", "Test1", $data);
+ }
+}
+
+class TestHeader2 extends SoapHeader {
+ function __construct($data) {
+ parent::__construct("http://testuri.org", "Test2", $data);
+ }
+}
+
+function test() {
+ global $server;
+ $server->addSoapHeader(new TestHeader1("Hello Header!"));
+ $server->addSoapHeader(new TestHeader2("Hello Header!"));
+ return "Hello Body!";
+}
+
+$server = new soapserver(null,array('uri'=>"http://testuri.org"));
+$server->addfunction("test");
+
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<SOAP-ENV:Envelope
+ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:si="http://soapinterop.org/xsd">
+ <SOAP-ENV:Body>
+ <ns1:test xmlns:ns1="http://testuri.org"/>
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+EOF;
+
+$server->handle();
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://testuri.org" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns1:Test1>Hello Header!</ns1:Test1><ns1:Test2>Hello Header!</ns1:Test2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:testResponse><return xsi:type="xsd:string">Hello Body!</return></ns1:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server025.phpt b/ext/soap/tests/server025.phpt
new file mode 100755
index 000000000..0a98b4108
--- /dev/null
+++ b/ext/soap/tests/server025.phpt
@@ -0,0 +1,46 @@
+--TEST--
+SOAP Server 25: One-way SOAP headers encoding using WSDL
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+class TestHeader1 extends SoapHeader {
+ function __construct($data) {
+ parent::__construct("http://testuri.org", "Test1", $data);
+ }
+}
+
+class TestHeader2 extends SoapHeader {
+ function __construct($data) {
+ parent::__construct("http://testuri.org", "Test2", $data);
+ }
+}
+
+function test() {
+ global $server;
+ $server->addSoapHeader(new TestHeader1("Hello Header!"));
+ $server->addSoapHeader(new TestHeader2("Hello Header!"));
+ return "Hello Body!";
+}
+
+$server = new soapserver(dirname(__FILE__)."/server025.wsdl");
+$server->addfunction("test");
+
+$HTTP_RAW_POST_DATA = <<<EOF
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<SOAP-ENV:Envelope
+ SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
+ <SOAP-ENV:Body>
+ <ns1:test xmlns:ns1="http://testuri.org"/>
+ </SOAP-ENV:Body>
+</SOAP-ENV:Envelope>
+EOF;
+
+$server->handle();
+echo "ok\n";
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://testuri.org"><SOAP-ENV:Header><ns1:Test1 xsi:type="xsd:string">Hello Header!</ns1:Test1><ns1:Test2 xsi:type="xsd:string">Hello Header!</ns1:Test2></SOAP-ENV:Header><SOAP-ENV:Body><ns1:testResponse><result>Hello Body!</result></ns1:testResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>
+ok
diff --git a/ext/soap/tests/server025.wsdl b/ext/soap/tests/server025.wsdl
new file mode 100755
index 000000000..2870f4e70
--- /dev/null
+++ b/ext/soap/tests/server025.wsdl
@@ -0,0 +1,55 @@
+<?xml version="1.0" ?>
+<definitions
+ xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:si="http://soapinterop.org/xsd"
+ xmlns:tns="http://linuxsrv.home/~dmitry/soap/test.wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ targetNamespace="http://testuri.org">
+
+ <message name="TestHeader1">
+ <part name="Test1" type="xsd:string" />
+ </message>
+ <message name="TestHeader2">
+ <part name="Test2" type="xsd:string" />
+ </message>
+
+ <message name="TestRequest">
+ </message>
+ <message name="TestResponse">
+ <part name="result" type="xsd:string" />
+ </message>
+
+ <portType name="TestServicePortType">
+ <operation name="test">
+ <input message="tns:TestRequest" />
+ <output message="tns:TestResponse" />
+ </operation>
+ </portType>
+
+ <binding name="TestServiceBinding" type="tns:TestServicePortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="test">
+ <soap:operation soapAction="Test" style="rpc" />
+ <input>
+ <soap:body namespace="http://testuri.org" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </input>
+ <output>
+ <soap:body namespace="http://testuri.org" use="literal" />
+ <soap:header namespace="http://testuri.org" message="tns:TestHeader1" part="Test1" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ <soap:header namespace="http://testuri.org" message="tns:TestHeader2" part="Test2" use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
+ </output>
+ </operation>
+ </binding>
+
+ <service name="TestService">
+ <port name="TestServicePort" binding="tns:TestServiceBinding">
+ <soap:address location="http://linuxsrv.home/~dmitry/soap/soap_server.php" />
+ </port>
+ </service>
+
+</definitions>
diff --git a/ext/soap/tests/soap12/T63.phpt b/ext/soap/tests/soap12/T63.phpt
index 262f657b9..9b5f90c4f 100644
--- a/ext/soap/tests/soap12/T63.phpt
+++ b/ext/soap/tests/soap12/T63.phpt
@@ -22,3 +22,4 @@ include "soap12-test.inc";
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://example.org/ts-tests"><env:Header><ns1:validateCountryCodeFault>Country code must be 2 letters.</ns1:validateCountryCodeFault></env:Header><env:Body><env:Fault><env:Code><env:Value>env:Sender</env:Value></env:Code><env:Reason><env:Text>Not a valid country code</env:Text></env:Reason></env:Fault></env:Body></env:Envelope>
+ok
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index b601efbd1..691c176f3 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sockets.c,v 1.171.2.7 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: sockets.c,v 1.171.2.9 2006/04/07 14:04:36 pajoye Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
diff --git a/ext/spl/doxygen.cfg b/ext/spl/doxygen.cfg
index 1d79e4046..d58017a6a 100755
--- a/ext/spl/doxygen.cfg
+++ b/ext/spl/doxygen.cfg
@@ -87,8 +87,8 @@ FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
-SOURCE_BROWSER = NO
-INLINE_SOURCES = NO
+SOURCE_BROWSER = YES
+INLINE_SOURCES = YES
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = YES
REFERENCES_RELATION = YES
diff --git a/ext/spl/examples/directorygraphiterator.inc b/ext/spl/examples/directorygraphiterator.inc
index 89f3de66b..61d6709e1 100644
--- a/ext/spl/examples/directorygraphiterator.inc
+++ b/ext/spl/examples/directorygraphiterator.inc
@@ -18,7 +18,16 @@ class DirectoryGraphIterator extends DirectoryTreeIterator
{
function __construct($path)
{
- RecursiveIteratorIterator::__construct(new RecursiveCachingIterator(new ParentIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME)), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1);
+ RecursiveIteratorIterator::__construct(
+ new RecursiveCachingIterator(
+ new ParentIterator(
+ new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME
+ )
+ ),
+ CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD
+ ),
+ parent::SELF_FIRST
+ );
}
}
diff --git a/ext/spl/examples/directorytreeiterator.inc b/ext/spl/examples/directorytreeiterator.inc
index 3036a23a4..4a741c318 100644
--- a/ext/spl/examples/directorytreeiterator.inc
+++ b/ext/spl/examples/directorytreeiterator.inc
@@ -21,7 +21,14 @@ class DirectoryTreeIterator extends RecursiveIteratorIterator
*/
function __construct($path)
{
- parent::__construct(new RecursiveCachingIterator(new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME), CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD), 1);
+ parent::__construct(
+ new RecursiveCachingIterator(
+ new RecursiveDirectoryIterator($path, RecursiveDirectoryIterator::KEY_AS_FILENAME
+ ),
+ CachingIterator::CALL_TOSTRING|CachingIterator::CATCH_GET_CHILD
+ ),
+ parent::SELF_FIRST
+ );
}
/** @return the current element prefixed with ASCII graphics
diff --git a/ext/spl/internal/iteratoriterator.inc b/ext/spl/internal/iteratoriterator.inc
index 60786927b..13c717523 100755
--- a/ext/spl/internal/iteratoriterator.inc
+++ b/ext/spl/internal/iteratoriterator.inc
@@ -109,7 +109,7 @@ class IteratorIterator implements OuterIterator
*/
function __call($func, $params)
{
- return call_user_func_array(array($this->it, $func), $params);
+ return call_user_func_array(array($this->iterator, $func), $params);
}
/** The inner iterator must be private because when this class will be
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index ca59dba27..2ac1cef67 100755
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_spl.c,v 1.52.2.25 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: php_spl.c,v 1.52.2.28 2006/03/23 19:55:16 helly Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -340,7 +340,7 @@ static void autoload_func_info_dtor(autoload_func_info *alfi)
Try all registerd autoload function to load the requested class */
PHP_FUNCTION(spl_autoload_call)
{
- zval **class_name, *retval = NULL;
+ zval *class_name, *retval = NULL;
int class_name_len;
char *func_name, *lc_name;
uint func_name_len;
@@ -348,18 +348,18 @@ PHP_FUNCTION(spl_autoload_call)
HashPosition function_pos;
autoload_func_info *alfi;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &class_name) == FAILURE || Z_TYPE_PP(class_name) != IS_STRING) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &class_name) == FAILURE || Z_TYPE_P(class_name) != IS_STRING) {
return;
}
if (SPL_G(autoload_functions)) {
- class_name_len = Z_STRLEN_PP(class_name);
- lc_name = zend_str_tolower_dup(Z_STRVAL_PP(class_name), class_name_len);
+ class_name_len = Z_STRLEN_P(class_name);
+ lc_name = zend_str_tolower_dup(Z_STRVAL_P(class_name), class_name_len);
zend_hash_internal_pointer_reset_ex(SPL_G(autoload_functions), &function_pos);
while(zend_hash_has_more_elements_ex(SPL_G(autoload_functions), &function_pos) == SUCCESS && !EG(exception)) {
zend_hash_get_current_key_ex(SPL_G(autoload_functions), &func_name, &func_name_len, &dummy, 0, &function_pos);
zend_hash_get_current_data_ex(SPL_G(autoload_functions), (void **) &alfi, &function_pos);
- zend_call_method(alfi->obj ? &alfi->obj : NULL, alfi->ce, &alfi->func_ptr, func_name, func_name_len, &retval, 1, *class_name, NULL TSRMLS_CC);
+ zend_call_method(alfi->obj ? &alfi->obj : NULL, alfi->ce, &alfi->func_ptr, func_name, func_name_len, &retval, 1, class_name, NULL TSRMLS_CC);
if (retval) {
zval_ptr_dtor(&retval);
}
@@ -371,11 +371,11 @@ PHP_FUNCTION(spl_autoload_call)
efree(lc_name);
} else {
/* do not use or overwrite &EG(autoload_func) here */
- zend_call_method_with_1_params(NULL, NULL, NULL, "spl_autoload", NULL, *class_name);
+ zend_call_method_with_1_params(NULL, NULL, NULL, "spl_autoload", NULL, class_name);
}
} /* }}} */
-/* {{{ proto void spl_autoload_register([string autoload_function = "spl_autoload" [, throw = true]])
+/* {{{ proto bool spl_autoload_register([mixed autoload_function = "spl_autoload" [, throw = true]])
Register given function as __autoload() implementation */
PHP_FUNCTION(spl_autoload_register)
{
@@ -399,7 +399,7 @@ PHP_FUNCTION(spl_autoload_register)
if (do_throw) {
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Function spl_autoload_call() cannot be registered");
}
- return;
+ RETURN_FALSE;
}
}
}
@@ -411,25 +411,25 @@ PHP_FUNCTION(spl_autoload_register)
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Passed array specifies a non static method but no object");
}
efree(func_name);
- return;
+ RETURN_FALSE;
}
else if (do_throw) {
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Passed array does not specify %s %smethod", alfi.func_ptr ? "a callable" : "an existing", !obj_ptr ? "static " : "");
}
efree(func_name);
- return;
+ RETURN_FALSE;
} else if (Z_TYPE_P(zcallable) == IS_STRING) {
if (do_throw) {
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Function '%s' not %s", func_name, alfi.func_ptr ? "callable" : "found");
}
efree(func_name);
- return;
+ RETURN_FALSE;
} else {
if (do_throw) {
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Illegal value passed");
}
efree(func_name);
- return;
+ RETURN_FALSE;
}
}
@@ -442,7 +442,7 @@ PHP_FUNCTION(spl_autoload_register)
} else {
alfi.obj = NULL;
}
-
+
if (!SPL_G(autoload_functions)) {
ALLOC_HASHTABLE(SPL_G(autoload_functions));
zend_hash_init(SPL_G(autoload_functions), 1, NULL, (dtor_func_t) autoload_func_info_dtor, 0);
@@ -469,25 +469,34 @@ PHP_FUNCTION(spl_autoload_register)
} else {
zend_hash_find(EG(function_table), "spl_autoload", sizeof("spl_autoload"), (void **) &EG(autoload_func));
}
+ RETURN_TRUE;
} /* }}} */
-/* {{{ proto bool spl_autoload_unregister(string autoload_function)
+/* {{{ proto bool spl_autoload_unregister(mixed autoload_function)
Unregister given function as __autoload() implementation */
PHP_FUNCTION(spl_autoload_unregister)
{
- char *func_name, *lc_name;
- int func_name_len, success = FAILURE;
+ char *func_name;
+ int func_name_len;
+ zval *zcallable;
+ int success = FAILURE;
zend_function *spl_func_ptr;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &func_name, &func_name_len) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zcallable) == FAILURE) {
return;
}
- lc_name = do_alloca(func_name_len + 1);
- zend_str_tolower_copy(lc_name, func_name, func_name_len);
+ if (!zend_is_callable_ex(zcallable, IS_CALLABLE_CHECK_SYNTAX_ONLY, &func_name, &func_name_len, NULL, NULL, NULL TSRMLS_CC)) {
+ if (func_name) {
+ efree(func_name);
+ }
+ RETURN_FALSE;
+ }
+
+ zend_str_tolower(func_name, func_name_len);
if (SPL_G(autoload_functions)) {
- if (func_name_len == sizeof("spl_autoload_call")-1 && !strcmp(lc_name, "spl_autoload_call")) {
+ if (func_name_len == sizeof("spl_autoload_call")-1 && !strcmp(func_name, "spl_autoload_call")) {
/* remove all */
zend_hash_destroy(SPL_G(autoload_functions));
FREE_HASHTABLE(SPL_G(autoload_functions));
@@ -496,9 +505,9 @@ PHP_FUNCTION(spl_autoload_unregister)
success = SUCCESS;
} else {
/* remove specific */
- success = zend_hash_del(SPL_G(autoload_functions), lc_name, func_name_len+1);
+ success = zend_hash_del(SPL_G(autoload_functions), func_name, func_name_len+1);
}
- } else if (func_name_len == sizeof("spl_autoload")-1 && !strcmp(lc_name, "spl_autoload")) {
+ } else if (func_name_len == sizeof("spl_autoload")-1 && !strcmp(func_name, "spl_autoload")) {
/* register single spl_autoload() */
zend_hash_find(EG(function_table), "spl_autoload", sizeof("spl_autoload"), (void **) &spl_func_ptr);
@@ -508,8 +517,7 @@ PHP_FUNCTION(spl_autoload_unregister)
}
}
- free_alloca(lc_name);
-
+ efree(func_name);
RETURN_BOOL(success == SUCCESS);
} /* }}} */
@@ -598,6 +606,11 @@ PHP_MINFO_FUNCTION(spl)
}
/* }}} */
+static
+ZEND_BEGIN_ARG_INFO(arginfo_iterator, 0)
+ ZEND_ARG_INFO(0, iterator)
+ZEND_END_ARG_INFO();
+
/* {{{ spl_functions
*/
zend_function_entry spl_functions[] = {
@@ -611,8 +624,8 @@ zend_function_entry spl_functions[] = {
PHP_FE(class_parents, NULL)
PHP_FE(class_implements, NULL)
#ifdef SPL_ITERATORS_H
- PHP_FE(iterator_to_array, NULL)
- PHP_FE(iterator_count, NULL)
+ PHP_FE(iterator_to_array, arginfo_iterator)
+ PHP_FE(iterator_count, arginfo_iterator)
#endif /* SPL_ITERATORS_H */
{NULL, NULL, NULL}
};
diff --git a/ext/spl/spl.php b/ext/spl/spl.php
index a3a867761..f704e044b 100755
--- a/ext/spl/spl.php
+++ b/ext/spl/spl.php
@@ -51,9 +51,10 @@
*
* SPL offers two advanced directory and file handling classes:
*
- * - class DirectoryIterator implements Iterator
+ * - class SplFileInfo
+ * - class DirectoryIterator extends SplFileInfo implements Iterator
* - class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveIterator
- * - class SplFileObject implements RecursiveIterator, SeekableIterator
+ * - class SplFileObject extends SplFileInfo implements RecursiveIterator, SeekableIterator
*
* 3) XML
*
@@ -101,8 +102,14 @@
* - interface SplObserver
* - interface SplSubject
* - class SplObjectStorage
+ *
+ * 8) @ref Examples
+ *
+ * The classes and interfaces in this group are contained as PHP code in the
+ * examples subdirectory of ext/SPL. Sooner or later they will be moved to
+ * c-code.
*
- * Some articles about SPL:
+ * 9) Some articles about SPL:
* - <a href="http://www.sitepoint.com/article/php5-standard-library/1">Introducing PHP 5's Standard Library</a>
* - <a href="http://www.ramikayyali.com/archives/2005/02/25/iterators">Iterators in PHP5</a>
* - <a href="http://www.phpriot.com/d/articles/php/oop/oop-with-spl-php-5-1/index.html">Advanced OOP with SPL in PHP 5</a>
@@ -111,7 +118,7 @@
* - <a href="http://www.wiki.cc/php/SPL">SPL on PHP Wiki</a>
* - <a href="http://www.professionelle-softwareentwicklung-mit-php5.de/erste_auflage/oop.iterators.spl.html">Die Standard PHP Library (SPL) [german]</a>
*
- * Talks on SPL:
+ * 10) Talks on SPL:
* - SPL for the masses <a href="http://somabo.de/talks/200504_php_quebec_spl_for_the_masses.pps">[pps]</a>, <a href="http://somabo.de/talks/200504_php_quebec_spl_for_the_masses.pdf">[pdf]</a>
* - From engine overloading to SPL <a href="http://somabo.de/talks/200505_cancun_from_engine_overloading_to_spl.pps">[pps]</a>, <a href="http://somabo.de/talks/200505_cancun_from_engine_overloading_to_spl.pdf">[pdf]</a>
* - Happy SPLing <a href="http://somabo.de/talks/200509_toronto_happy_spling.pps">[pps]</a>, <a href="http://somabo.de/talks/200509_toronto_happy_spling.pdf">[pdf]</a>
@@ -582,7 +589,7 @@ interface Serializable
/** @ingroup SPL
* @brief An Array wrapper
* @since PHP 5.0
- * @version 1.1
+ * @version 1.2
*
* This array wrapper allows to recursively iterate over Arrays and public
* Object properties.
@@ -712,7 +719,7 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
* 1 set: array indices can be accessed as properties in read/write
*/
function setFlags($flags);
-
+
/**
* @ return current flags
*/
@@ -761,29 +768,41 @@ class ArrayIterator implements SeekableIterator, ArrayAccess, Countable
}
/** @ingroup SPL
- * @brief Directory iterator
- * @since PHP 5.0
+ * @brief File info class
+ * @since PHP 5.1.3
*/
-class DirectoryIterator implements Iterator
+class SplFileInfo
{
- /** Construct a directory iterator from a path-string.
+ /** Construct a file info object
*
- * @param $path directory to iterate.
+ * @param $file_name path or file name
*/
- function __construct($path);
+ function __construct($file_name);
- /** @return The opened path.
+ /** @return the path part only.
*/
function getPath();
- /** @return The current file name.
+ /** @return the filename only.
*/
function getFilename();
+ /** @return SplFileInfo created for the file
+ * @param class_name name of class to instantiate
+ * @see SplFileInfo::setInfoClass()
+ */
+ function getFileInfo(string class_name = NULL);
+
/** @return The current entries path and file name.
*/
function getPathname();
+ /** @return SplFileInfo created for the path
+ * @param class_name name of class to instantiate
+ * @see SplFileInfo::setInfoClass()
+ */
+ function getPathInfo(string class_name = NULL);
+
/** @return The current entry's permissions.
*/
function getPerms();
@@ -840,15 +859,11 @@ class DirectoryIterator implements Iterator
*/
function isDir();
- /** @return Whether the current entry is either '.' or '..'.
- */
- function isDot();
-
/** @return whether the current entry is a link.
*/
function isLink();
- /** @return getFilename()
+ /** @return getPathname()
*/
function __toString();
@@ -862,17 +877,85 @@ class DirectoryIterator implements Iterator
* @return The opened file as a SplFileObject instance
*
* @see SplFileObject
+ * @see SplFileInfo::setFileClass()
* @see file()
*/
- function DirectoryIterator::openFile($mode = 'r', $use_include_path = false, $context = NULL);
+ function openFile($mode = 'r', $use_include_path = false, $context = NULL);
+
+ /** @param class_name name of class used with openFile(). Must be derived
+ * from SPLFileObject.
+ */
+ function setFileClass(string class_name = "SplFileObject");
+
+ /** @param class_name name of class used with getFileInfo(), getPathInfo().
+ * Must be derived from SplFileInfo.
+ */
+ function setInfoClass(string class_name = "SplFileInfo");
+}
+
+/** @ingroup SPL
+ * @brief Directory iterator
+ * @version 1.1
+ * @since PHP 5.0
+ */
+class DirectoryIterator extends SplFileInfo implements Iterator
+{
+ /** Construct a directory iterator from a path-string.
+ *
+ * @param $path directory to iterate.
+ */
+ function __construct($path);
+
+ /** @return index of entry
+ */
+ function key();
+
+ /** @return $this
+ */
+ function current();
+
+ /** @return Whether the current entry is either '.' or '..'.
+ */
+ function isDot();
+
+ /** @return whether the current entry is a link.
+ */
+ function isLink();
+
+ /** @return getFilename()
+ */
+ function __toString();
}
/** @ingroup SPL
* @brief recursive directory iterator
+ * @version 1.1
* @since PHP 5.0
*/
class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveIterator
{
+ const CURRENT_AS_FILEINFO 0x00000010; /* make RecursiveDirectoryTree::current() return SplFileInfo */
+ const KEY_AS_FILENAME 0x00000020; /* make RecursiveDirectoryTree::key() return getFilename() */
+ const NEW_CURRENT_AND_KEY 0x00000030; /* CURRENT_AS_FILEINFO + KEY_AS_FILENAME */
+
+ /** Construct a directory iterator from a path-string.
+ *
+ * @param $path directory to iterate.
+ * @param $flags open flags
+ * - CURRENT_AS_FILEINFO
+ * - KEY_AS_FILENAME
+ * - NEW_CURRENT_AND_KEY
+ */
+ function __construct($path, $flags = 0);
+
+ /** @return getPathname() or getFilename() depending on flags
+ */
+ function key();
+
+ /** @return getFilename() or getFileInfo() depending on flags
+ */
+ function current();
+
/** @return whether the current is a directory (not '.' or '..').
*/
function hasChildren();
@@ -880,6 +963,14 @@ class RecursiveDirectoryIterator extends DirectoryIterator implements RecursiveI
/** @return a RecursiveDirectoryIterator for the current entry.
*/
function getChildren();
+
+ /** @return sub path only (without main path)
+ */
+ function getSubPath();
+
+ /** @return the current sub path
+ */
+ function getSubPathname();
}
/** @ingroup SPL
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index 8becf1a1e..34804315a 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_array.c,v 1.71.2.7 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: spl_array.c,v 1.71.2.17 2006/04/07 22:53:23 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -67,7 +67,9 @@ typedef struct _spl_array_object {
} spl_array_object;
static inline HashTable *spl_array_get_hash_table(spl_array_object* intern, int check_std_props TSRMLS_DC) {
- if ((intern->ar_flags & SPL_ARRAY_USE_OTHER) && (check_std_props == 0 || (intern->ar_flags & SPL_ARRAY_STD_PROP_LIST) == 0)) {
+ if ((intern->ar_flags & SPL_ARRAY_IS_SELF) != 0) {
+ return intern->std.properties;
+ } else if ((intern->ar_flags & SPL_ARRAY_USE_OTHER) && (check_std_props == 0 || (intern->ar_flags & SPL_ARRAY_STD_PROP_LIST) == 0)) {
spl_array_object *other = (spl_array_object*)zend_object_store_get_object(intern->array TSRMLS_CC);
return spl_array_get_hash_table(other, check_std_props TSRMLS_CC);
} else if ((intern->ar_flags & ((check_std_props ? SPL_ARRAY_STD_PROP_LIST : 0) | SPL_ARRAY_IS_SELF)) != 0) {
@@ -103,8 +105,7 @@ static void spl_array_object_free_storage(void *object TSRMLS_DC)
{
spl_array_object *intern = (spl_array_object *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
zval_ptr_dtor(&intern->array);
zval_ptr_dtor(&intern->retval);
@@ -113,8 +114,10 @@ static void spl_array_object_free_storage(void *object TSRMLS_DC)
}
/* }}} */
+zend_object_iterator *spl_array_get_iterator(zend_class_entry *ce, zval *object TSRMLS_DC);
+
/* {{{ spl_array_object_new */
-static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, spl_array_object **obj, zval *orig TSRMLS_DC)
+static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, spl_array_object **obj, zval *orig, int clone_orig TSRMLS_DC)
{
zend_object_value retval;
spl_array_object *intern;
@@ -124,22 +127,35 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s
intern = emalloc(sizeof(spl_array_object));
memset(intern, 0, sizeof(spl_array_object));
- intern->std.ce = class_type;
*obj = intern;
ALLOC_INIT_ZVAL(intern->retval);
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
intern->ar_flags = 0;
+ intern->ce_get_iterator = spl_ce_ArrayIterator;
if (orig) {
spl_array_object *other = (spl_array_object*)zend_object_store_get_object(orig TSRMLS_CC);
- intern->array = orig;
- ZVAL_ADDREF(intern->array);
intern->ar_flags &= ~ SPL_ARRAY_CLONE_MASK;
- intern->ar_flags |= (other->ar_flags & SPL_ARRAY_CLONE_MASK) | SPL_ARRAY_IS_REF | SPL_ARRAY_USE_OTHER;
+ intern->ar_flags |= (other->ar_flags & SPL_ARRAY_CLONE_MASK);
+ intern->ce_get_iterator = other->ce_get_iterator;
+ if (clone_orig) {
+ intern->array = other->array;
+ if (Z_OBJ_HT_P(orig) == &spl_handler_ArrayObject) {
+ MAKE_STD_ZVAL(intern->array);
+ array_init(intern->array);
+ zend_hash_copy(HASH_OF(intern->array), HASH_OF(other->array), (copy_ctor_func_t) zval_add_ref, &tmp, sizeof(zval*));
+ }
+ if (Z_OBJ_HT_P(orig) == &spl_handler_ArrayIterator) {
+ ZVAL_ADDREF(other->array);
+ }
+ } else {
+ intern->array = orig;
+ ZVAL_ADDREF(intern->array);
+ intern->ar_flags |= SPL_ARRAY_IS_REF | SPL_ARRAY_USE_OTHER;
+ }
} else {
MAKE_STD_ZVAL(intern->array);
array_init(intern->array);
@@ -148,7 +164,7 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_array_object_free_storage, NULL TSRMLS_CC);
while (parent) {
- if (parent == spl_ce_ArrayIterator) {
+ if (parent == spl_ce_ArrayIterator || parent == spl_ce_RecursiveArrayIterator) {
retval.handlers = &spl_handler_ArrayIterator;
break;
} else if (parent == spl_ce_ArrayObject) {
@@ -159,7 +175,7 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s
inherited = 1;
}
if (!parent) { /* this must never happen */
- php_error_docref(NULL TSRMLS_CC, E_COMPILE_ERROR, "Internal compiler error, Class is not child of ArrayObject or arrayIterator");
+ php_error_docref(NULL TSRMLS_CC, E_COMPILE_ERROR, "Internal compiler error, Class is not child of ArrayObject or ArrayIterator");
}
if (inherited) {
zend_hash_find(&class_type->function_table, "offsetget", sizeof("offsetget"), (void **) &intern->fptr_offset_get);
@@ -189,7 +205,7 @@ static zend_object_value spl_array_object_new_ex(zend_class_entry *class_type, s
static zend_object_value spl_array_object_new(zend_class_entry *class_type TSRMLS_DC)
{
spl_array_object *tmp;
- return spl_array_object_new_ex(class_type, &tmp, NULL TSRMLS_CC);
+ return spl_array_object_new_ex(class_type, &tmp, NULL, 0 TSRMLS_CC);
}
/* }}} */
@@ -203,7 +219,7 @@ static zend_object_value spl_array_object_clone(zval *zobject TSRMLS_DC)
spl_array_object *intern;
old_object = zend_objects_get_address(zobject TSRMLS_CC);
- new_obj_val = spl_array_object_new_ex(old_object->ce, &intern, zobject TSRMLS_CC);
+ new_obj_val = spl_array_object_new_ex(old_object->ce, &intern, zobject, 1 TSRMLS_CC);
new_object = &intern->std;
zend_objects_clone_members(new_object, new_obj_val, old_object, handle TSRMLS_CC);
@@ -222,6 +238,10 @@ static zval **spl_array_get_dimension_ptr_ptr(int check_inherited, zval *object,
if (check_inherited && intern->fptr_offset_get) {
return zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_get, "offsetGet", NULL, offset);
}*/
+
+ if (!offset) {
+ return &EG(uninitialized_zval_ptr);
+ }
switch(Z_TYPE_P(offset)) {
case IS_STRING:
@@ -259,11 +279,16 @@ static zval *spl_array_read_dimension_ex(int check_inherited, zval *object, zval
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
if (intern->fptr_offset_get) {
zval *rv;
+ SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_get, "offsetGet", &rv, offset);
- zval_ptr_dtor(&intern->retval);
- MAKE_STD_ZVAL(intern->retval);
- ZVAL_ZVAL(intern->retval, rv, 1, 1);
- return intern->retval;
+ zval_ptr_dtor(&offset);
+ if (rv) {
+ zval_ptr_dtor(&intern->retval);
+ MAKE_STD_ZVAL(intern->retval);
+ ZVAL_ZVAL(intern->retval, rv, 1, 1);
+ return intern->retval;
+ }
+ return EG(uninitialized_zval_ptr);
}
}
return *spl_array_get_dimension_ptr_ptr(check_inherited, object, offset, type TSRMLS_CC);
@@ -278,19 +303,15 @@ static void spl_array_write_dimension_ex(int check_inherited, zval *object, zval
{
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
long index;
- int free_offset;
if (check_inherited && intern->fptr_offset_set) {
if (!offset) {
ALLOC_INIT_ZVAL(offset);
- free_offset = 1;
} else {
- free_offset = 0;
+ SEPARATE_ARG_IF_REF(offset);
}
zend_call_method_with_2_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_set, "offsetSet", NULL, offset, value);
- if (free_offset) {
- zval_ptr_dtor(&offset);
- }
+ zval_ptr_dtor(&offset);
return;
}
@@ -341,7 +362,9 @@ static void spl_array_unset_dimension_ex(int check_inherited, zval *object, zval
long index;
if (check_inherited && intern->fptr_offset_del) {
+ SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_del, "offsetUnset", NULL, offset);
+ zval_ptr_dtor(&offset);
return;
}
@@ -389,12 +412,16 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o
zval *rv;
if (check_inherited && intern->fptr_offset_has) {
+ SEPARATE_ARG_IF_REF(offset);
zend_call_method_with_1_params(&object, Z_OBJCE_P(object), &intern->fptr_offset_has, "offsetExists", &rv, offset);
- if (zend_is_true(rv)) {
+ zval_ptr_dtor(&offset);
+ if (rv && zend_is_true(rv)) {
zval_ptr_dtor(&rv);
return 1;
}
- zval_ptr_dtor(&rv);
+ if (rv) {
+ zval_ptr_dtor(&rv);
+ }
return 0;
}
@@ -472,6 +499,7 @@ void spl_array_iterator_append(zval *object, zval *append_value TSRMLS_DC) /* {{
if (Z_TYPE_P(intern->array) == IS_OBJECT) {
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot append properties to objects, use %s::offsetSet() instead", Z_OBJCE_P(object)->name);
+ return;
}
spl_array_write_dimension(object, NULL, append_value TSRMLS_CC);
@@ -701,7 +729,6 @@ static void spl_array_it_move_forward(zend_object_iterator *iter TSRMLS_DC) /* {
{
spl_array_it *iterator = (spl_array_it *)iter;
spl_array_object *object = iterator->object;
-
HashTable *aht = spl_array_get_hash_table(object, 0 TSRMLS_CC);
if (!aht) {
@@ -820,6 +847,7 @@ SPL_METHOD(Array, __construct)
}
if (object == array) {
intern->ar_flags |= SPL_ARRAY_IS_SELF;
+ intern->ar_flags &= ~SPL_ARRAY_USE_OTHER;
} else {
intern->ar_flags &= ~SPL_ARRAY_IS_SELF;
}
@@ -909,15 +937,14 @@ SPL_METHOD(Array, exchangeArray)
{
zval *object = getThis(), *tmp, **array;
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
-
- array_init(return_value);
+
+ array_init(return_value);
zend_hash_copy(HASH_OF(return_value), spl_array_get_hash_table(intern, 0 TSRMLS_CC), (copy_ctor_func_t) zval_add_ref, &tmp, sizeof(zval*));
- if (ZEND_NUM_ARGS() > 1 || zend_get_parameters_ex(1, &array) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &array) == FAILURE) {
WRONG_PARAM_COUNT;
}
- if (Z_TYPE_PP(array) == IS_OBJECT && intern == (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC))
- {
+ if (Z_TYPE_PP(array) == IS_OBJECT && intern == (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC)) {
zval_ptr_dtor(&intern->array);
array = &object;
intern->array = object;
@@ -959,7 +986,7 @@ SPL_METHOD(Array, getIterator)
}
return_value->type = IS_OBJECT;
- return_value->value.obj = spl_array_object_new_ex(intern->ce_get_iterator, &iterator, object TSRMLS_CC);
+ return_value->value.obj = spl_array_object_new_ex(intern->ce_get_iterator, &iterator, object, 0 TSRMLS_CC);
return_value->refcount = 1;
return_value->is_ref = 1;
}
@@ -999,15 +1026,12 @@ SPL_METHOD(Array, seek)
if (position >= 0) { /* negative values are not supported */
zend_hash_internal_pointer_reset_ex(aht, &intern->pos);
+ result = SUCCESS;
while (position-- > 0 && (result = spl_array_next(intern TSRMLS_CC)) == SUCCESS);
- if (intern->pos && (intern->ar_flags & SPL_ARRAY_IS_REF) && spl_hash_verify_pos(intern TSRMLS_CC) == FAILURE) {
- /* fail */
- } else {
- if (zend_hash_has_more_elements_ex(aht, &intern->pos) == SUCCESS) {
- return; /* ok */
- }
+ if (result == SUCCESS && zend_hash_has_more_elements_ex(aht, &intern->pos) == SUCCESS) {
+ return; /* ok */
}
}
zend_throw_exception_ex(spl_ce_OutOfBoundsException, 0 TSRMLS_CC, "Seek position %ld is out of range", opos);
@@ -1199,7 +1223,7 @@ SPL_METHOD(Array, getChildren)
if (zend_hash_get_current_data_ex(aht, (void **) &entry, &intern->pos) == FAILURE) {
return;
}
-
+
if (Z_TYPE_PP(entry) == IS_OBJECT && instanceof_function(Z_OBJCE_PP(entry), Z_OBJCE_P(getThis()) TSRMLS_CC)) {
RETURN_ZVAL(*entry, 0, 0);
}
@@ -1211,43 +1235,43 @@ SPL_METHOD(Array, getChildren)
static
ZEND_BEGIN_ARG_INFO(arginfo_array___construct, 0)
ZEND_ARG_INFO(0, array)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetGet, 0, 0, 1)
ZEND_ARG_INFO(0, index)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_array_offsetSet, 0, 0, 2)
ZEND_ARG_INFO(0, index)
ZEND_ARG_INFO(0, newval)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_array_append, 0)
ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_array_seek, 0)
ZEND_ARG_INFO(0, position)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_array_exchangeArray, 0)
ZEND_ARG_INFO(0, array)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_array_setFlags, 0)
ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_array_setIteratorClass, 0)
ZEND_ARG_INFO(0, iteratorClass)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static zend_function_entry spl_funcs_ArrayObject[] = {
SPL_ME(Array, __construct, arginfo_array___construct, ZEND_ACC_PUBLIC)
@@ -1307,6 +1331,7 @@ PHP_MINIT_FUNCTION(spl_array)
REGISTER_SPL_IMPLEMENTS(ArrayObject, Aggregate);
REGISTER_SPL_IMPLEMENTS(ArrayObject, ArrayAccess);
memcpy(&spl_handler_ArrayObject, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+
spl_handler_ArrayObject.clone_obj = spl_array_object_clone;
spl_handler_ArrayObject.read_dimension = spl_array_read_dimension;
spl_handler_ArrayObject.write_dimension = spl_array_write_dimension;
diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c
index 25396603f..1f949eaf3 100755
--- a/ext/spl/spl_directory.c
+++ b/ext/spl/spl_directory.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.c,v 1.45.2.10 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: spl_directory.c,v 1.45.2.27 2006/04/06 19:01:56 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -70,9 +70,12 @@ static void spl_filesystem_object_free_storage(void *object TSRMLS_DC) /* {{{ */
{
spl_filesystem_object *intern = (spl_filesystem_object*)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
-
+ if (intern->oth_handler && intern->oth_handler->dtor) {
+ intern->oth_handler->dtor(intern TSRMLS_CC);
+ }
+
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
+
if (intern->path) {
efree(intern->path);
}
@@ -129,14 +132,12 @@ static zend_object_value spl_filesystem_object_new_ex(zend_class_entry *class_ty
intern = emalloc(sizeof(spl_filesystem_object));
memset(intern, 0, sizeof(spl_filesystem_object));
- intern->std.ce = class_type;
- /* intern->type = SPL_FS_INFO; done by set o */
+ /* intern->type = SPL_FS_INFO; done by set 0 */
intern->file_class = spl_ce_SplFileObject;
intern->info_class = spl_ce_SplFileInfo;
if (obj) *obj = intern;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t) zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_filesystem_object_free_storage, NULL TSRMLS_CC);
@@ -162,7 +163,7 @@ static inline void spl_filesystem_object_get_file_name(spl_filesystem_object *in
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Object not initialized");
break;
case SPL_FS_DIR:
- intern->file_name_len = spprintf(&intern->file_name, 0, "%s/%s", intern->path, intern->u.dir.entry.d_name);
+ intern->file_name_len = spprintf(&intern->file_name, 0, "%s%c%s", intern->path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
break;
}
}
@@ -176,7 +177,11 @@ static void spl_filesystem_dir_open(spl_filesystem_object* intern, char *path TS
intern->path_len = strlen(path);
intern->u.dir.dirp = php_stream_opendir(path, ENFORCE_SAFE_MODE|REPORT_ERRORS, NULL);
- if (intern->path_len && (path[intern->path_len-1] == '/' || path[intern->path_len-1] == '\\')) {
+ if (intern->path_len && (path[intern->path_len-1] == '/'
+#if defined(PHP_WIN32) || defined(NETWARE)
+ || path[intern->path_len-1] == '\\'
+#endif
+ )) {
intern->path = estrndup(path, --intern->path_len);
} else {
intern->path = estrndup(path, intern->path_len);
@@ -264,9 +269,16 @@ static zend_object_value spl_filesystem_object_clone(zval *zobject TSRMLS_DC)
intern->file_class = source->file_class;
intern->info_class = source->info_class;
+ intern->flags = source->flags;
+ intern->oth = source->oth;
+ intern->oth_handler = source->oth_handler;
zend_objects_clone_members(new_object, new_obj_val, old_object, handle TSRMLS_CC);
+ if (intern->oth_handler && intern->oth_handler->clone) {
+ intern->oth_handler->clone(source, intern TSRMLS_CC);
+ }
+
return new_obj_val;
}
/* }}} */
@@ -279,7 +291,11 @@ void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path,
intern->file_name_len = len;
p1 = strrchr(path, '/');
+#if defined(PHP_WIN32) || defined(NETWARE)
p2 = strrchr(path, '\\');
+#else
+ p2 = 0;
+#endif
if (p1 || p2) {
intern->path_len = (p1 > p2 ? p1 : p2) - path;
} else {
@@ -291,6 +307,7 @@ void spl_filesystem_info_set_filename(spl_filesystem_object *intern, char *path,
static spl_filesystem_object * spl_filesystem_object_create_info(spl_filesystem_object *source, char *file_path, int file_path_len, int use_copy, zend_class_entry *ce, zval *return_value TSRMLS_DC) /* {{{ */
{
spl_filesystem_object *intern;
+ zval *arg1;
if (!file_path || !file_path_len) {
zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Cannot create SplFileInfo for empty path");
@@ -303,10 +320,18 @@ static spl_filesystem_object * spl_filesystem_object_create_info(spl_filesystem_
php_set_error_handling(EH_THROW, spl_ce_RuntimeException TSRMLS_CC);
- return_value->value.obj = spl_filesystem_object_new_ex(ce ? ce : source->info_class, &intern TSRMLS_CC);
+ ce = ce ? ce : source->info_class;
+ return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC);
Z_TYPE_P(return_value) = IS_OBJECT;
- spl_filesystem_info_set_filename(intern, file_path, file_path_len, use_copy TSRMLS_CC);
+ if (ce->constructor->common.scope != spl_ce_SplFileInfo) {
+ MAKE_STD_ZVAL(arg1);
+ ZVAL_STRINGL(arg1, file_path, file_path_len, use_copy);
+ zend_call_method_with_1_params(&return_value, ce, &ce->constructor, "__construct", NULL, arg1);
+ zval_ptr_dtor(&arg1);
+ } else {
+ spl_filesystem_info_set_filename(intern, file_path, file_path_len, use_copy TSRMLS_CC);
+ }
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
@@ -317,6 +342,7 @@ static spl_filesystem_object * spl_filesystem_object_create_type(int ht, spl_fil
{
spl_filesystem_object *intern;
zend_bool use_include_path = 0;
+ zval *arg1, *arg2;
php_set_error_handling(EH_THROW, spl_ce_RuntimeException TSRMLS_CC);
@@ -334,40 +360,63 @@ static spl_filesystem_object * spl_filesystem_object_create_type(int ht, spl_fil
switch (type) {
case SPL_FS_INFO:
- return_value->value.obj = spl_filesystem_object_new_ex(ce ? ce : source->info_class, &intern TSRMLS_CC);
+ ce = ce ? ce : source->info_class;
+ return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC);
Z_TYPE_P(return_value) = IS_OBJECT;
-
+
spl_filesystem_object_get_file_name(source TSRMLS_CC);
- intern->file_name = estrndup(source->file_name, source->file_name_len);
- intern->file_name_len = source->file_name_len;
+ if (ce->constructor->common.scope != spl_ce_SplFileInfo) {
+ MAKE_STD_ZVAL(arg1);
+ ZVAL_STRINGL(arg1, source->file_name, source->file_name_len, 1);
+ zend_call_method_with_1_params(&return_value, ce, &ce->constructor, "__construct", NULL, arg1);
+ zval_ptr_dtor(&arg1);
+ } else {
+ intern->file_name = estrndup(source->file_name, source->file_name_len);
+ intern->file_name_len = source->file_name_len;
+ intern->path = estrndup(source->path, source->path_len);
+ intern->path_len = source->path_len;
+ }
break;
case SPL_FS_FILE:
- return_value->value.obj = spl_filesystem_object_new_ex(ce ? ce : source->file_class, &intern TSRMLS_CC);
+ ce = ce ? ce : source->file_class;
+ return_value->value.obj = spl_filesystem_object_new_ex(ce, &intern TSRMLS_CC);
Z_TYPE_P(return_value) = IS_OBJECT;
spl_filesystem_object_get_file_name(source TSRMLS_CC);
- intern->file_name = source->file_name;
- intern->file_name_len = source->file_name_len;
-
- intern->u.file.open_mode = "r";
- intern->u.file.open_mode_len = 1;
-
- if (ht && zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sbr",
- &intern->u.file.open_mode, &intern->u.file.open_mode_len,
- &use_include_path, &intern->u.file.zcontext) == FAILURE) {
- php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
- intern->u.file.open_mode = NULL;
- zval_dtor(return_value);
- Z_TYPE_P(return_value) = IS_NULL;
- return NULL;
- }
-
- if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) == FAILURE) {
- php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
- zval_dtor(return_value);
- Z_TYPE_P(return_value) = IS_NULL;
- return NULL;
+
+ if (ce->constructor->common.scope != spl_ce_SplFileObject) {
+ MAKE_STD_ZVAL(arg1);
+ MAKE_STD_ZVAL(arg2);
+ ZVAL_STRINGL(arg1, source->file_name, source->file_name_len, 1);
+ ZVAL_STRINGL(arg2, "r", 1, 1);
+ zend_call_method_with_2_params(&return_value, ce, &ce->constructor, "__construct", NULL, arg1, arg2);
+ zval_ptr_dtor(&arg1);
+ zval_ptr_dtor(&arg2);
+ } else {
+ intern->file_name = source->file_name;
+ intern->file_name_len = source->file_name_len;
+
+ intern->u.file.open_mode = "r";
+ intern->u.file.open_mode_len = 1;
+
+ if (ht && zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sbr",
+ &intern->u.file.open_mode, &intern->u.file.open_mode_len,
+ &use_include_path, &intern->u.file.zcontext) == FAILURE) {
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
+ intern->u.file.open_mode = NULL;
+ zval_dtor(return_value);
+ Z_TYPE_P(return_value) = IS_NULL;
+ return NULL;
+ }
+
+ if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) == FAILURE) {
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
+ zval_dtor(return_value);
+ Z_TYPE_P(return_value) = IS_NULL;
+ return NULL;
+ }
}
+ break;
case SPL_FS_DIR:
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Operation not supported");
@@ -392,6 +441,12 @@ SPL_METHOD(DirectoryIterator, __construct)
return;
}
+ if (!len) {
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
+ zend_throw_exception_ex(spl_ce_RuntimeException, 0 TSRMLS_CC, "Directory name must not be empty.");
+ return;
+ }
+
intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
spl_filesystem_dir_open(intern, path TSRMLS_CC);
intern->u.dir.is_recursive = instanceof_function(intern->std.ce, spl_ce_RecursiveDirectoryIterator TSRMLS_CC) ? 1 : 0;
@@ -690,34 +745,41 @@ SPL_METHOD(SplFileInfo, openFile)
spl_filesystem_object_create_type(ht, intern, SPL_FS_FILE, NULL, return_value TSRMLS_CC);
}
+/* }}} */
-/* {{{ proto SplFileObject SplFileInfo::setFileClass([string class_name])
+/* {{{ proto void SplFileInfo::setFileClass([string class_name])
Class to use in openFile() */
SPL_METHOD(SplFileInfo, setFileClass)
{
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = spl_ce_SplFileObject;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
- return;
+ php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == SUCCESS) {
+ intern->file_class = ce;
}
- intern->file_class = ce;
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
}
+/* }}} */
-/* {{{ proto SplFileObject SplFileInfo::setInfoClass([string class_name])
- Class to use in getFileInfo(), getPathInfo(), getSubPathInfo() */
+/* {{{ proto void SplFileInfo::setInfoClass([string class_name])
+ Class to use in getFileInfo(), getPathInfo() */
SPL_METHOD(SplFileInfo, setInfoClass)
{
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = spl_ce_SplFileInfo;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
- return;
+ php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == SUCCESS) {
+ intern->info_class = ce;
}
- intern->file_class = ce;
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
}
+/* }}} */
/* {{{ proto SplFileInfo SplFileInfo::getFileInfo([string $class_name])
Get/copy file info */
@@ -726,12 +788,15 @@ SPL_METHOD(SplFileInfo, getFileInfo)
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = intern->info_class;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
- return;
+ php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == SUCCESS) {
+ spl_filesystem_object_create_type(ht, intern, SPL_FS_INFO, ce, return_value TSRMLS_CC);
}
- spl_filesystem_object_create_type(ht, intern, SPL_FS_INFO, ce, return_value TSRMLS_CC);
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
}
+/* }}} */
/* {{{ proto SplFileInfo SplFileInfo::getPathInfo([string $class_name])
Get/copy file info */
@@ -740,12 +805,15 @@ SPL_METHOD(SplFileInfo, getPathInfo)
spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_class_entry *ce = intern->info_class;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
- return;
+ php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC);
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == SUCCESS) {
+ spl_filesystem_object_create_info(intern, intern->path, intern->path_len, 1, ce, return_value TSRMLS_CC);
}
- spl_filesystem_object_create_info(intern, intern->path, intern->path_len, 1, ce, return_value TSRMLS_CC);
+ php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
}
+/* }}} */
/* {{{ proto void RecursiveDirectoryIterator::__construct(string path [, int flags])
Cronstructs a new dir iterator from a path. */
@@ -756,7 +824,7 @@ SPL_METHOD(RecursiveDirectoryIterator, __construct)
int len;
long flags = SPL_FILE_DIR_CURRENT_AS_FILEINFO;
- php_set_error_handling(EH_THROW, spl_ce_RuntimeException TSRMLS_CC);
+ php_set_error_handling(EH_THROW, spl_ce_UnexpectedValueException TSRMLS_CC);
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &path, &len, &flags) == FAILURE) {
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
@@ -852,12 +920,15 @@ SPL_METHOD(RecursiveDirectoryIterator, getChildren)
subdir = (spl_filesystem_object*)zend_object_store_get_object(return_value TSRMLS_CC);
if (subdir) {
if (intern->u.dir.sub_path && intern->u.dir.sub_path[0]) {
- subdir->u.dir.sub_path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s/%s", intern->u.dir.sub_path, intern->u.dir.entry.d_name);
+ subdir->u.dir.sub_path_len = spprintf(&subdir->u.dir.sub_path, 0, "%s%c%s", intern->u.dir.sub_path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
} else {
subdir->u.dir.sub_path_len = strlen(intern->u.dir.entry.d_name);
subdir->u.dir.sub_path = estrndup(intern->u.dir.entry.d_name, subdir->u.dir.sub_path_len);
}
+ subdir->info_class = intern->info_class;
+ subdir->file_class = intern->file_class;
subdir->flags = intern->flags;
+ subdir->oth = intern->oth;
}
}
/* }}} */
@@ -885,7 +956,7 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
int len;
if (intern->u.dir.sub_path) {
- len = spprintf(&sub_name, 0, "%s/%s", intern->u.dir.sub_path, intern->u.dir.entry.d_name);
+ len = spprintf(&sub_name, 0, "%s%c%s", intern->u.dir.sub_path, DEFAULT_SLASH, intern->u.dir.entry.d_name);
RETURN_STRINGL(sub_name, len, 0);
} else {
RETURN_STRING(intern->u.dir.entry.d_name, 1);
@@ -893,28 +964,6 @@ SPL_METHOD(RecursiveDirectoryIterator, getSubPathname)
}
/* }}} */
-/* {{{ proto SplFileInfo RecursiveDirectoryIterator::getSubPathInfo([string $class_info])
- Create SplFileInfo for sub path */
-SPL_METHOD(RecursiveDirectoryIterator, getSubPathInfo)
-{
- spl_filesystem_object *intern = (spl_filesystem_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
- char *sub_name;
- int len;
- zend_class_entry *ce = intern->info_class;
-
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|C", &ce) == FAILURE) {
- return;
- }
-
- if (intern->u.dir.sub_path) {
- len = spprintf(&sub_name, 0, "%s/%s", intern->u.dir.sub_path, intern->u.dir.entry.d_name);
- spl_filesystem_object_create_info(intern, sub_name, len, 0, ce, return_value TSRMLS_CC);
- } else {
- spl_filesystem_object_create_info(intern, intern->path, intern->path_len, 1, ce, return_value TSRMLS_CC);
- }
-}
-/* }}} */
-
/* define an overloaded iterator structure */
typedef struct {
zend_object_iterator intern;
@@ -1181,6 +1230,7 @@ static int spl_filesystem_object_cast(zval *readobj, zval *writeobj, int type, i
return SUCCESS;
}
}
+ ZVAL_NULL(writeobj);
return FAILURE;
}
/* }}} */
@@ -1190,19 +1240,19 @@ static int spl_filesystem_object_cast(zval *readobj, zval *writeobj, int type, i
static
ZEND_BEGIN_ARG_INFO(arginfo_info___construct, 0)
ZEND_ARG_INFO(0, file_name)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_info_openFile, 0, 0, 0)
ZEND_ARG_INFO(0, open_mode)
ZEND_ARG_INFO(0, use_include_path)
ZEND_ARG_INFO(0, context)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_info_optinalFileClass, 0, 0, 0)
ZEND_ARG_INFO(0, class_name)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
/* the method table */
/* each method can have its own parameters and visibility */
@@ -1238,7 +1288,7 @@ static zend_function_entry spl_SplFileInfo_functions[] = {
static
ZEND_BEGIN_ARG_INFO(arginfo_dir___construct, 0)
ZEND_ARG_INFO(0, path)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
/* the method table */
/* each method can have its own parameters and visibility */
@@ -1259,7 +1309,7 @@ static
ZEND_BEGIN_ARG_INFO(arginfo_r_dir___construct, 0)
ZEND_ARG_INFO(0, path)
ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static zend_function_entry spl_RecursiveDirectoryIterator_functions[] = {
SPL_ME(RecursiveDirectoryIterator, __construct, arginfo_r_dir___construct, ZEND_ACC_PUBLIC)
@@ -1271,14 +1321,13 @@ static zend_function_entry spl_RecursiveDirectoryIterator_functions[] = {
SPL_ME(RecursiveDirectoryIterator, getChildren, NULL, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveDirectoryIterator, getSubPath, NULL, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveDirectoryIterator, getSubPathname,NULL, ZEND_ACC_PUBLIC)
- SPL_ME(RecursiveDirectoryIterator, getSubPathInfo,arginfo_info_optinalFileClass, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent TSRMLS_DC) /* {{{ */
{
char *buf;
- size_t line_len;
+ size_t line_len = 0;
int len;
long line_add = (intern->u.file.current_line || intern->u.file.current_zval) ? 1 : 0;
@@ -1291,7 +1340,17 @@ static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent TS
return FAILURE;
}
- buf = php_stream_get_line(intern->u.file.stream, NULL, intern->u.file.max_line_len, &line_len);
+ if (intern->u.file.max_line_len > 0) {
+ buf = emalloc((intern->u.file.max_line_len + 1) * sizeof(char));
+ if (php_stream_get_line(intern->u.file.stream, buf, intern->u.file.max_line_len, &line_len) == NULL) {
+ efree(buf);
+ buf = NULL;
+ } else {
+ buf[line_len] = '\0';
+ }
+ } else {
+ buf = php_stream_get_line(intern->u.file.stream, NULL, 0, &line_len);
+ }
if (!buf) {
intern->u.file.current_line = estrdup("");
@@ -1317,7 +1376,7 @@ static int spl_filesystem_file_read(spl_filesystem_object *intern, int silent TS
static int spl_filesystem_file_read_line(zval * this_ptr, spl_filesystem_object *intern, int silent TSRMLS_DC) /* {{{ */
{
- zval *retval;
+ zval *retval = NULL;
/* if overloaded call the function, otherwise do it directly */
if (intern->u.file.func_getCurr->common.scope != spl_ce_SplFileObject) {
@@ -1383,7 +1442,11 @@ SPL_METHOD(SplFileObject, __construct)
if (spl_filesystem_file_open(intern, use_include_path, 0 TSRMLS_CC) == SUCCESS) {
p1 = strrchr(intern->file_name, '/');
+#if defined(PHP_WIN32) || defined(NETWARE)
p2 = strrchr(intern->file_name, '\\');
+#else
+ p2 = 0;
+#endif
if (p1 || p2) {
intern->path_len = (p1 > p2 ? p1 : p2) - intern->file_name;
} else {
@@ -1774,13 +1837,13 @@ SPL_METHOD(SplFileObject, fwrite)
char *str;
int str_len;
int ret;
- long length;
+ long length = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &str, &str_len, &length) == FAILURE) {
return;
}
- if (ZEND_NUM_ARGS() < 2) {
+ if (ZEND_NUM_ARGS() > 1) {
str_len = MAX(0, MIN(length, str_len));
}
if (!str_len) {
@@ -1851,61 +1914,61 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object___construct, 0, 0, 1)
ZEND_ARG_INFO(0, open_mode)
ZEND_ARG_INFO(0, use_include_path)
ZEND_ARG_INFO(0, context)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_file_object_setFlags, 0)
ZEND_ARG_INFO(0, flags)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO(arginfo_file_object_setMaxLineLen, 0)
ZEND_ARG_INFO(0, max_len)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetcsv, 0, 0, 0)
ZEND_ARG_INFO(0, delimiter)
ZEND_ARG_INFO(0, enclosure)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_flock, 0, 0, 1)
ZEND_ARG_INFO(0, operation)
- ZEND_ARG_INFO(1, wouldblock])
-ZEND_END_ARG_INFO();
+ ZEND_ARG_INFO(1, wouldblock)
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fseek, 0, 0, 1)
ZEND_ARG_INFO(0, pos)
ZEND_ARG_INFO(0, whence)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fgetss, 0, 0, 0)
ZEND_ARG_INFO(0, allowable_tags)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fscanf, 0, 0, 1)
ZEND_ARG_INFO(0, format)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_fwrite, 0, 0, 1)
ZEND_ARG_INFO(0, str)
ZEND_ARG_INFO(0, length)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_ftruncate, 0, 0, 1)
ZEND_ARG_INFO(0, size)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object_seek, 0, 0, 1)
ZEND_ARG_INFO(0, line_pos)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static zend_function_entry spl_SplFileObject_functions[] = {
SPL_ME(SplFileObject, __construct, arginfo_file_object___construct, ZEND_ACC_PUBLIC)
@@ -1945,7 +2008,7 @@ static zend_function_entry spl_SplFileObject_functions[] = {
static
ZEND_BEGIN_ARG_INFO_EX(arginfo_temp_file_object___construct, 0, 0, 1)
ZEND_ARG_INFO(0, max_memory)
-ZEND_END_ARG_INFO();
+ZEND_END_ARG_INFO()
static zend_function_entry spl_SplTempFileObject_functions[] = {
SPL_ME(SplTempFileObject, __construct, arginfo_temp_file_object___construct, ZEND_ACC_PUBLIC)
diff --git a/ext/spl/spl_directory.h b/ext/spl/spl_directory.h
index a2bc9c4c0..513fa7eb8 100755
--- a/ext/spl/spl_directory.h
+++ b/ext/spl/spl_directory.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_directory.h,v 1.12.2.3 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: spl_directory.h,v 1.12.2.5 2006/03/08 21:54:48 helly Exp $ */
#ifndef SPL_DIRECTORY_H
#define SPL_DIRECTORY_H
@@ -33,13 +33,25 @@ extern PHPAPI zend_class_entry *spl_ce_SplTempFileObject;
PHP_MINIT_FUNCTION(spl_directory);
typedef enum {
- SPL_FS_INFO,
+ SPL_FS_INFO, /* must be 0 */
SPL_FS_DIR,
SPL_FS_FILE,
} SPL_FS_OBJ_TYPE;
-typedef struct _spl_filesystem_object {
+typedef struct _spl_filesystem_object spl_filesystem_object;
+
+typedef void (*spl_foreign_dtor_t)(spl_filesystem_object *object TSRMLS_DC);
+typedef void (*spl_foreign_clone_t)(spl_filesystem_object *src, spl_filesystem_object *dst TSRMLS_DC);
+
+typedef struct _spl_other_handler {
+ spl_foreign_dtor_t dtor;
+ spl_foreign_clone_t clone;
+} spl_other_handler;
+
+struct _spl_filesystem_object {
zend_object std;
+ void *oth;
+ spl_other_handler *oth_handler;
char *path;
int path_len;
char *file_name;
@@ -72,7 +84,7 @@ typedef struct _spl_filesystem_object {
zend_function *func_getCurr;
} file;
} u;
-} spl_filesystem_object;
+};
#define SPL_FILE_OBJECT_DROP_NEW_LINE 0x00000001 /* drop new lines */
diff --git a/ext/spl/spl_engine.c b/ext/spl/spl_engine.c
index 2da47f7d3..dcc9af3c6 100755
--- a/ext/spl/spl_engine.c
+++ b/ext/spl/spl_engine.c
@@ -32,7 +32,7 @@
#include "spl_array.h"
/* {{{ spl_instantiate */
-void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC)
+PHPAPI void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC)
{
if (alloc) {
ALLOC_ZVAL(*object);
@@ -43,20 +43,6 @@ void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC)
}
/* }}} */
-/* {{{ spl_is_instance_of */
-int spl_is_instance_of(zval **obj, zend_class_entry *ce TSRMLS_DC)
-{
- /* Ensure everything needed is available before checking for the type.
- */
- zend_class_entry *instance_ce;
-
- if (obj && (instance_ce = spl_get_class_entry(*obj TSRMLS_CC)) != NULL) {
- return instanceof_function(instance_ce, ce TSRMLS_CC);
- }
- return 0;
-}
-/* }}} */
-
/*
* Local variables:
* tab-width: 4
diff --git a/ext/spl/spl_engine.h b/ext/spl/spl_engine.h
index 0e953bbf1..06a77942f 100755
--- a/ext/spl/spl_engine.h
+++ b/ext/spl/spl_engine.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_engine.h,v 1.19.2.1 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: spl_engine.h,v 1.19.2.3 2006/03/14 18:07:51 fmk Exp $ */
#ifndef SPL_ENGINE_H
#define SPL_ENGINE_H
@@ -36,7 +36,7 @@ static inline zend_class_entry *spl_get_class_entry(zval *obj TSRMLS_DC)
}
/* }}} */
-void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC);
+PHPAPI void spl_instantiate(zend_class_entry *pce, zval **object, int alloc TSRMLS_DC);
/* {{{ spl_instantiate_arg_ex1 */
static inline int spl_instantiate_arg_ex1(zend_class_entry *pce, zval **retval, int alloc, zval *arg1 TSRMLS_DC)
@@ -58,8 +58,6 @@ static inline int spl_instantiate_arg_ex2(zend_class_entry *pce, zval **retval,
}
/* }}} */
-int spl_is_instance_of(zval **obj, zend_class_entry *ce TSRMLS_DC);
-
#endif /* SPL_ENGINE_H */
/*
diff --git a/ext/spl/spl_functions.c b/ext/spl/spl_functions.c
index b257982d1..52f92f692 100755
--- a/ext/spl/spl_functions.c
+++ b/ext/spl/spl_functions.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_functions.c,v 1.28.2.2 2006/01/01 12:50:13 sniper Exp $ */
+/* $Id: spl_functions.c,v 1.28.2.3 2006/03/09 11:43:45 sebastian Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -50,7 +50,7 @@ void spl_register_interface(zend_class_entry ** ppce, char * class_name, zend_fu
/* }}} */
/* {{{ spl_register_std_class */
-void spl_register_std_class(zend_class_entry ** ppce, char * class_name, void * obj_ctor, zend_function_entry * function_list TSRMLS_DC)
+PHPAPI void spl_register_std_class(zend_class_entry ** ppce, char * class_name, void * obj_ctor, zend_function_entry * function_list TSRMLS_DC)
{
zend_class_entry ce;
@@ -66,7 +66,7 @@ void spl_register_std_class(zend_class_entry ** ppce, char * class_name, void *
/* }}} */
/* {{{ spl_register_sub_class */
-void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry * parent_ce, char * class_name, void *obj_ctor, zend_function_entry * function_list TSRMLS_DC)
+PHPAPI void spl_register_sub_class(zend_class_entry ** ppce, zend_class_entry * parent_ce, char * class_name, void *obj_ctor, zend_function_entry * function_list TSRMLS_DC)
{
zend_class_entry ce;
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c
index df065545f..0ba01180b 100755
--- a/ext/spl/spl_iterators.c
+++ b/ext/spl/spl_iterators.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.c,v 1.73.2.20 2006/01/01 19:55:27 helly Exp $ */
+/* $Id: spl_iterators.c,v 1.73.2.33 2006/07/17 21:13:32 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -36,6 +36,10 @@
#include "spl_array.h"
#include "spl_exceptions.h"
+#ifdef accept
+#undef accept
+#endif
+
PHPAPI zend_class_entry *spl_ce_RecursiveIterator;
PHPAPI zend_class_entry *spl_ce_RecursiveIteratorIterator;
PHPAPI zend_class_entry *spl_ce_FilterIterator;
@@ -359,7 +363,7 @@ zend_object_iterator_funcs spl_recursive_it_iterator_funcs = {
spl_recursive_it_rewind
};
-/* {{{ proto RecursiveIteratorIterator::__construct(RecursiveIterator|IteratorAggregate it [, int mode = RIT_LEAVES_ONLY [, int flags = 0]]) throws InvalidArgumentException
+/* {{{ proto void RecursiveIteratorIterator::__construct(RecursiveIterator|IteratorAggregate it [, int mode = RIT_LEAVES_ONLY [, int flags = 0]]) throws InvalidArgumentException
Creates a RecursiveIteratorIterator from a RecursiveIterator. */
SPL_METHOD(RecursiveIteratorIterator, __construct)
{
@@ -448,7 +452,7 @@ SPL_METHOD(RecursiveIteratorIterator, rewind)
spl_recursive_it_rewind_ex(object, getThis() TSRMLS_CC);
} /* }}} */
-/* {{{ proto bolean RecursiveIteratorIterator::valid()
+/* {{{ proto bool RecursiveIteratorIterator::valid()
Check whether the current position is valid */
SPL_METHOD(RecursiveIteratorIterator, valid)
{
@@ -584,28 +588,28 @@ SPL_METHOD(RecursiveIteratorIterator, callGetChildren)
}
} /* }}} */
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::beginChildren()
+/* {{{ proto void RecursiveIteratorIterator::beginChildren()
Called when recursing one level down */
SPL_METHOD(RecursiveIteratorIterator, beginChildren)
{
/* nothing to do */
} /* }}} */
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::endChildren()
+/* {{{ proto void RecursiveIteratorIterator::endChildren()
Called when end recursing one level */
SPL_METHOD(RecursiveIteratorIterator, endChildren)
{
/* nothing to do */
} /* }}} */
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::nextElement()
+/* {{{ proto void RecursiveIteratorIterator::nextElement()
Called when the next element is available */
SPL_METHOD(RecursiveIteratorIterator, nextElement)
{
/* nothing to do */
} /* }}} */
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::setMaxDepth([$max_depth = -1])
+/* {{{ proto void RecursiveIteratorIterator::setMaxDepth([$max_depth = -1])
Set the maximum allowed depth (or any depth if pmax_depth = -1] */
SPL_METHOD(RecursiveIteratorIterator, setMaxDepth)
{
@@ -622,7 +626,7 @@ SPL_METHOD(RecursiveIteratorIterator, setMaxDepth)
object->max_depth = max_depth;
} /* }}} */
-/* {{{ proto RecursiveIterator RecursiveIteratorIterator::getMaxDepth()
+/* {{{ proto int|false RecursiveIteratorIterator::getMaxDepth()
Return the maximum accepted depth or false if any depth is allowed */
SPL_METHOD(RecursiveIteratorIterator, getMaxDepth)
{
@@ -670,8 +674,7 @@ static void spl_RecursiveIteratorIterator_free_storage(void *_object TSRMLS_DC)
object->iterators = NULL;
}
- zend_hash_destroy(object->std.properties);
- FREE_HASHTABLE(object->std.properties);
+ zend_object_std_dtor(&object->std TSRMLS_CC);
efree(object);
}
@@ -686,10 +689,8 @@ static zend_object_value spl_RecursiveIteratorIterator_new(zend_class_entry *cla
intern = emalloc(sizeof(spl_recursive_it_object));
memset(intern, 0, sizeof(spl_recursive_it_object));
- intern->std.ce = class_type;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_RecursiveIteratorIterator_free_storage, NULL TSRMLS_CC);
@@ -815,18 +816,32 @@ int spl_dual_it_call_method(char *method, INTERNAL_FUNCTION_PARAMETERS)
}
#endif
+#define SPL_CHECK_CTOR(intern, classname) \
+ if (intern->dit_type == DIT_Unknown) { \
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, "Classes derived from %s must call %s::__construct()", \
+ (spl_ce_##classname)->name, (spl_ce_##classname)->name); \
+ return; \
+ }
+
+#define APPENDIT_CHECK_CTOR(intern) SPL_CHECK_CTOR(intern, AppendIterator)
+
static inline int spl_dual_it_fetch(spl_dual_it_object *intern, int check_more TSRMLS_DC);
-static inline spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAMETERS, zend_class_entry *ce_inner, dual_it_type dit_type)
+static spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAMETERS, zend_class_entry *ce_base, zend_class_entry *ce_inner, dual_it_type dit_type)
{
zval *zobject, *retval;
spl_dual_it_object *intern;
- zend_class_entry *ce;
+ zend_class_entry *ce = NULL;
int inc_refcount = 1;
- php_set_error_handling(EH_THROW, spl_ce_InvalidArgumentException TSRMLS_CC);
-
intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (intern->dit_type != DIT_Unknown) {
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0 TSRMLS_CC, "%s::getIterator() must be called exactly once per instance", ce_base->name);
+ return NULL;
+ }
+
+ php_set_error_handling(EH_THROW, spl_ce_InvalidArgumentException TSRMLS_CC);
intern->dit_type = dit_type;
switch (dit_type) {
@@ -859,7 +874,7 @@ static inline spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAME
if (((flags & CIT_CALL_TOSTRING) && (flags & (CIT_TOSTRING_USE_KEY|CIT_TOSTRING_USE_CURRENT)))
|| ((flags & (CIT_TOSTRING_USE_KEY|CIT_TOSTRING_USE_CURRENT)) == (CIT_TOSTRING_USE_KEY|CIT_TOSTRING_USE_CURRENT))) {
php_set_error_handling(EH_NORMAL, NULL TSRMLS_CC);
- zend_throw_exception(spl_ce_InvalidArgumentException, "Flags must contain only one of CIT_CALL_TOSTRING, CIT_TOSTRING_USE_KEY, CIT_TOSTRING_USE_CURRENT", 0 TSRMLS_CC);
+ zend_throw_exception(spl_ce_InvalidArgumentException, "Flags must contain only one of CATCH_GET_CHILD, CALL_TOSTRING, TOSTRING_USE_KEY, TOSTRING_USE_CURRENT", 0 TSRMLS_CC);
return NULL;
}
intern->u.caching.flags |= flags & CIT_PUBLIC;
@@ -929,11 +944,11 @@ static inline spl_dual_it_object* spl_dual_it_construct(INTERNAL_FUNCTION_PARAME
return intern;
}
-/* {{{ proto FilterIterator::__construct(Iterator it)
+/* {{{ proto void FilterIterator::__construct(Iterator it)
Create an Iterator from another iterator */
-SPL_METHOD(dual_it, __construct)
+SPL_METHOD(FilterIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_Default);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_FilterIterator, zend_ce_iterator, DIT_FilterIterator);
} /* }}} */
/* {{{ proto Iterator FilterIterator::getInnerIterator()
@@ -1045,10 +1060,10 @@ SPL_METHOD(dual_it, rewind)
spl_dual_it_fetch(intern, 1 TSRMLS_CC);
} /* }}} */
-/* {{{ proto boolean FilterIterator::valid()
- proto boolean ParentIterator::valid()
- proto boolean IteratorIterator::valid()
- proto boolean NoRewindIterator::valid()
+/* {{{ proto bool FilterIterator::valid()
+ proto bool ParentIterator::valid()
+ proto bool IteratorIterator::valid()
+ proto bool NoRewindIterator::valid()
Check whether the current element is valid */
SPL_METHOD(dual_it, valid)
{
@@ -1169,14 +1184,14 @@ SPL_METHOD(FilterIterator, next)
spl_filter_it_next(getThis(), intern TSRMLS_CC);
} /* }}} */
-/* {{{ proto RecursiveFilterIterator::__construct(RecursiveIterator it)
+/* {{{ proto void RecursiveFilterIterator::__construct(RecursiveIterator it)
Create a RecursiveFilterIterator from a RecursiveIterator */
SPL_METHOD(RecursiveFilterIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveIterator, DIT_Default);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveFilterIterator, spl_ce_RecursiveIterator, DIT_RecursiveFilterIterator);
} /* }}} */
-/* {{{ proto boolean RecursiveFilterIterator::hasChildren()
+/* {{{ proto bool RecursiveFilterIterator::hasChildren()
Check whether the inner iterator's current element has children */
SPL_METHOD(RecursiveFilterIterator, hasChildren)
{
@@ -1199,18 +1214,18 @@ SPL_METHOD(RecursiveFilterIterator, getChildren)
intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "getchildren", &retval);
- spl_instantiate_arg_ex1(spl_ce_RecursiveFilterIterator, &return_value, 0, retval TSRMLS_CC);
+ spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, retval TSRMLS_CC);
zval_ptr_dtor(&retval);
} /* }}} */
-/* {{{ proto ParentIterator::__construct(RecursiveIterator it)
+/* {{{ proto void ParentIterator::__construct(RecursiveIterator it)
Create a ParentIterator from a RecursiveIterator */
SPL_METHOD(ParentIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveIterator, DIT_Default);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_ParentIterator, spl_ce_RecursiveIterator, DIT_ParentIterator);
} /* }}} */
-/* {{{ proto boolean ParentIterator::hasChildren()
+/* {{{ proto bool ParentIterator::hasChildren()
Check whether the inner iterator's current element has children */
SPL_METHOD(ParentIterator, hasChildren)
{
@@ -1233,12 +1248,12 @@ SPL_METHOD(ParentIterator, getChildren)
intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
zend_call_method_with_0_params(&intern->inner.zobject, intern->inner.ce, NULL, "getchildren", &retval);
- spl_instantiate_arg_ex1(spl_ce_ParentIterator, &return_value, 0, retval TSRMLS_CC);
+ spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, retval TSRMLS_CC);
zval_ptr_dtor(&retval);
} /* }}} */
/* {{{ spl_dual_it_free_storage */
-static inline void spl_dual_it_free_storage(void *_object TSRMLS_DC)
+static void spl_dual_it_free_storage(void *_object TSRMLS_DC)
{
spl_dual_it_object *object = (spl_dual_it_object *)_object;
@@ -1257,8 +1272,7 @@ static inline void spl_dual_it_free_storage(void *_object TSRMLS_DC)
zval_ptr_dtor(&object->u.append.zarrayit);
}
- zend_hash_destroy(object->std.properties);
- FREE_HASHTABLE(object->std.properties);
+ zend_object_std_dtor(&object->std TSRMLS_CC);
efree(object);
}
@@ -1273,10 +1287,9 @@ static zend_object_value spl_dual_it_new(zend_class_entry *class_type TSRMLS_DC)
intern = emalloc(sizeof(spl_dual_it_object));
memset(intern, 0, sizeof(spl_dual_it_object));
- intern->std.ce = class_type;
+ intern->dit_type = DIT_Unknown;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) spl_dual_it_free_storage, NULL TSRMLS_CC);
@@ -1291,7 +1304,7 @@ ZEND_BEGIN_ARG_INFO(arginfo_filter_it___construct, 0)
ZEND_END_ARG_INFO();
static zend_function_entry spl_funcs_FilterIterator[] = {
- SPL_ME(dual_it, __construct, arginfo_filter_it___construct, ZEND_ACC_PUBLIC)
+ SPL_ME(FilterIterator, __construct, arginfo_filter_it___construct, ZEND_ACC_PUBLIC)
SPL_ME(FilterIterator, rewind, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC)
@@ -1343,7 +1356,7 @@ static inline void spl_limit_it_seek(spl_dual_it_object *intern, long pos TSRMLS
zend_throw_exception_ex(spl_ce_OutOfBoundsException, 0 TSRMLS_CC, "Cannot seek to %ld which is below the offset %ld", pos, intern->u.limit.offset);
return;
}
- if (pos > intern->u.limit.offset + intern->u.limit.count && intern->u.limit.count != -1) {
+ if (pos >= intern->u.limit.offset + intern->u.limit.count && intern->u.limit.count != -1) {
zend_throw_exception_ex(spl_ce_OutOfBoundsException, 0 TSRMLS_CC, "Cannot seek to %ld which is behind offest %ld plus count %ld", pos, intern->u.limit.offset, intern->u.limit.count);
return;
}
@@ -1376,7 +1389,7 @@ static inline void spl_limit_it_seek(spl_dual_it_object *intern, long pos TSRMLS
Construct a LimitIterator from an Iterator with a given starting offset and optionally a maximum count */
SPL_METHOD(LimitIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_LimitIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_LimitIterator, zend_ce_iterator, DIT_LimitIterator);
} /* }}} */
/* {{{ proto void LimitIterator::rewind()
@@ -1390,7 +1403,7 @@ SPL_METHOD(LimitIterator, rewind)
spl_limit_it_seek(intern, intern->u.limit.offset TSRMLS_CC);
} /* }}} */
-/* {{{ proto boolean LimitIterator::valid()
+/* {{{ proto bool LimitIterator::valid()
Check whether the current element is valid */
SPL_METHOD(LimitIterator, valid)
{
@@ -1564,11 +1577,11 @@ static inline void spl_caching_it_rewind(spl_dual_it_object *intern TSRMLS_DC)
spl_caching_it_next(intern TSRMLS_CC);
}
-/* {{{ proto CachingIterator::__construct(Iterator it [, flags = CIT_CALL_TOSTRING])
+/* {{{ proto void CachingIterator::__construct(Iterator it [, flags = CIT_CALL_TOSTRING])
Construct a CachingIterator from an Iterator */
SPL_METHOD(CachingIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_CachingIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_CachingIterator, zend_ce_iterator, DIT_CachingIterator);
} /* }}} */
/* {{{ proto void CachingIterator::rewind()
@@ -1582,7 +1595,7 @@ SPL_METHOD(CachingIterator, rewind)
spl_caching_it_rewind(intern TSRMLS_CC);
} /* }}} */
-/* {{{ proto boolean CachingIterator::valid()
+/* {{{ proto bool CachingIterator::valid()
Check whether the current element is valid */
SPL_METHOD(CachingIterator, valid)
{
@@ -1604,7 +1617,7 @@ SPL_METHOD(CachingIterator, next)
spl_caching_it_next(intern TSRMLS_CC);
} /* }}} */
-/* {{{ proto boolean CachingIterator::hasNext()
+/* {{{ proto bool CachingIterator::hasNext()
Check whether the inner iterator has a valid next element */
SPL_METHOD(CachingIterator, hasNext)
{
@@ -1628,7 +1641,7 @@ SPL_METHOD(CachingIterator, __toString)
}
if (intern->u.caching.flags & CIT_TOSTRING_USE_KEY) {
if (intern->current.key_type == HASH_KEY_IS_STRING) {
- RETURN_STRINGL(intern->current.str_key, intern->current.str_key_len, 1);
+ RETURN_STRINGL(intern->current.str_key, intern->current.str_key_len-1, 1);
} else {
RETVAL_LONG(intern->current.int_key);
convert_to_string(return_value);
@@ -1665,14 +1678,14 @@ static zend_function_entry spl_funcs_CachingIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ proto RecursiveCachingIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING])
+/* {{{ proto void RecursiveCachingIterator::__construct(RecursiveIterator it [, flags = CIT_CALL_TOSTRING])
Create an iterator from a RecursiveIterator */
SPL_METHOD(RecursiveCachingIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveIterator, DIT_RecursiveCachingIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_RecursiveCachingIterator, spl_ce_RecursiveIterator, DIT_RecursiveCachingIterator);
} /* }}} */
-/* {{{ proto bolean RecursiveCachingIterator::hasChildren()
+/* {{{ proto bool RecursiveCachingIterator::hasChildren()
Check whether the current element of the inner iterator has children */
SPL_METHOD(RecursiveCachingIterator, hasChildren)
{
@@ -1711,11 +1724,11 @@ static zend_function_entry spl_funcs_RecursiveCachingIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ proto IteratorIterator::__construct(Traversable it)
+/* {{{ proto void IteratorIterator::__construct(Traversable it)
Create an iterator from anything that is traversable */
SPL_METHOD(IteratorIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_traversable, DIT_IteratorIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_IteratorIterator, zend_ce_traversable, DIT_IteratorIterator);
} /* }}} */
static
@@ -1734,11 +1747,11 @@ static zend_function_entry spl_funcs_IteratorIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ proto NoRewindIterator::__construct(Iterator it)
+/* {{{ proto void NoRewindIterator::__construct(Iterator it)
Create an iterator from another iterator */
SPL_METHOD(NoRewindIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_NoRewindIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_NoRewindIterator, zend_ce_iterator, DIT_NoRewindIterator);
} /* }}} */
/* {{{ proto void NoRewindIterator::rewind()
@@ -1748,7 +1761,7 @@ SPL_METHOD(NoRewindIterator, rewind)
/* nothing to do */
} /* }}} */
-/* {{{ proto void NoRewindIterator::valid()
+/* {{{ proto bool NoRewindIterator::valid()
Return inner iterators valid() */
SPL_METHOD(NoRewindIterator, valid)
{
@@ -1818,14 +1831,14 @@ static zend_function_entry spl_funcs_NoRewindIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ proto InfiniteIterator::__construct(Iterator it)
+/* {{{ proto void InfiniteIterator::__construct(Iterator it)
Create an iterator from another iterator */
SPL_METHOD(InfiniteIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_InfiniteIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_InfiniteIterator, zend_ce_iterator, DIT_InfiniteIterator);
} /* }}} */
-/* {{{ proto InfiniteIterator::next()
+/* {{{ proto void InfiniteIterator::next()
Prevent a call to inner iterators rewind() (internally the current data will be fetched if valid()) */
SPL_METHOD(InfiniteIterator, next)
{
@@ -1850,34 +1863,34 @@ static zend_function_entry spl_funcs_InfiniteIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ proto EmptyIterator::rewind()
+/* {{{ proto void EmptyIterator::rewind()
Does nothing */
SPL_METHOD(EmptyIterator, rewind)
{
} /* }}} */
-/* {{{ proto EmptyIterator::valid()
+/* {{{ proto false EmptyIterator::valid()
Return false */
SPL_METHOD(EmptyIterator, valid)
{
RETURN_FALSE;
} /* }}} */
-/* {{{ proto EmptyIterator::key()
- Throws exception */
+/* {{{ proto void EmptyIterator::key()
+ Throws exception BadMethodCallException */
SPL_METHOD(EmptyIterator, key)
{
zend_throw_exception(spl_ce_BadMethodCallException, "Accessing the key of an EmptyIterator", 0 TSRMLS_CC);
} /* }}} */
-/* {{{ proto EmptyIterator::current()
- Throws exception */
+/* {{{ proto void EmptyIterator::current()
+ Throws exception BadMethodCallException */
SPL_METHOD(EmptyIterator, current)
{
zend_throw_exception(spl_ce_BadMethodCallException, "Accessing the value of an EmptyIterator", 0 TSRMLS_CC);
} /* }}} */
-/* {{{ proto EmptyIterator::next()
+/* {{{ proto void EmptyIterator::next()
Does nothing */
SPL_METHOD(EmptyIterator, next)
{
@@ -1916,7 +1929,6 @@ int spl_append_it_next_iterator(spl_dual_it_object *intern TSRMLS_DC) /* {{{*/
intern->inner.object = zend_object_store_get_object(*it TSRMLS_CC);
intern->inner.iterator = intern->inner.ce->get_iterator(intern->inner.ce, *it TSRMLS_CC);
spl_dual_it_rewind(intern TSRMLS_CC);
- intern->u.append.iterator->funcs->move_forward(intern->u.append.iterator TSRMLS_CC);
return SUCCESS;
} else {
return FAILURE;
@@ -1926,6 +1938,7 @@ int spl_append_it_next_iterator(spl_dual_it_object *intern TSRMLS_DC) /* {{{*/
void spl_append_it_fetch(spl_dual_it_object *intern TSRMLS_DC) /* {{{*/
{
while (spl_dual_it_valid(intern TSRMLS_CC) != SUCCESS) {
+ intern->u.append.iterator->funcs->move_forward(intern->u.append.iterator TSRMLS_CC);
if (spl_append_it_next_iterator(intern TSRMLS_CC) != SUCCESS) {
return;
}
@@ -1941,11 +1954,11 @@ void spl_append_it_next(spl_dual_it_object *intern TSRMLS_DC) /* {{{ */
spl_append_it_fetch(intern TSRMLS_CC);
} /* }}} */
-/* {{{ proto AppendIterator::__construct()
+/* {{{ proto void AppendIterator::__construct()
Create an AppendIterator */
SPL_METHOD(AppendIterator, __construct)
{
- spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, zend_ce_iterator, DIT_AppendIterator);
+ spl_dual_it_construct(INTERNAL_FUNCTION_PARAM_PASSTHRU, spl_ce_AppendIterator, zend_ce_iterator, DIT_AppendIterator);
} /* }}} */
/* {{{ proto void AppendIterator::append(Iterator it)
@@ -1956,8 +1969,10 @@ SPL_METHOD(AppendIterator, append)
zval *it;
intern = (spl_dual_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ APPENDIT_CHECK_CTOR(intern);
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o", &it, zend_ce_iterator) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O", &it, zend_ce_iterator) == FAILURE) {
return;
}
spl_array_iterator_append(intern->u.append.zarrayit, it TSRMLS_CC);
@@ -1987,7 +2002,7 @@ SPL_METHOD(AppendIterator, rewind)
}
} /* }}} */
-/* {{{ proto boolean AppendIterator::valid()
+/* {{{ proto bool AppendIterator::valid()
Check if the current state is valid */
SPL_METHOD(AppendIterator, valid)
{
@@ -1998,7 +2013,7 @@ SPL_METHOD(AppendIterator, valid)
RETURN_BOOL(intern->current.data);
} /* }}} */
-/* {{{ proto AppendIterator::next()
+/* {{{ proto void AppendIterator::next()
Forward to next element */
SPL_METHOD(AppendIterator, next)
{
@@ -2026,7 +2041,7 @@ static zend_function_entry spl_funcs_AppendIterator[] = {
{NULL, NULL, NULL}
};
-/* {{{ array iterator_to_array(Traversable it)
+/* {{{ proto array iterator_to_array(Traversable it)
Copy the iterator into an array */
PHP_FUNCTION(iterator_to_array)
{
@@ -2048,11 +2063,20 @@ PHP_FUNCTION(iterator_to_array)
if (iter->funcs->rewind) {
iter->funcs->rewind(iter TSRMLS_CC);
}
+ if (EG(exception)) {
+ return;
+ }
while (iter->funcs->valid(iter TSRMLS_CC) == SUCCESS) {
iter->funcs->get_current_data(iter, &data TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
(*data)->refcount++;
if (iter->funcs->get_current_key) {
key_type = iter->funcs->get_current_key(iter, &str_key, &str_key_len, &int_key TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
switch(key_type) {
case HASH_KEY_IS_STRING:
add_assoc_zval_ex(return_value, str_key, str_key_len, *data);
@@ -2066,12 +2090,18 @@ PHP_FUNCTION(iterator_to_array)
add_next_index_zval(return_value, *data);
}
iter->funcs->move_forward(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
iter->funcs->dtor(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
/* }}} */
-/* {{{ int iterator_count(Travesable it)
+/* {{{ proto int iterator_count(Traversable it)
Count the elements in an iterator */
PHP_FUNCTION(iterator_count)
{
@@ -2088,11 +2118,23 @@ PHP_FUNCTION(iterator_count)
if (iter->funcs->rewind) {
iter->funcs->rewind(iter TSRMLS_CC);
}
+ if (EG(exception)) {
+ return;
+ }
while (iter->funcs->valid(iter TSRMLS_CC) == SUCCESS) {
+ if (EG(exception)) {
+ return;
+ }
count++;
iter->funcs->move_forward(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
}
iter->funcs->dtor(iter TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
RETURN_LONG(count);
}
@@ -2130,8 +2172,13 @@ PHP_MINIT_FUNCTION(spl_iterators)
REGISTER_SPL_CLASS_CONST_LONG(RecursiveIteratorIterator, "CHILD_FIRST", RIT_CHILD_FIRST);
REGISTER_SPL_CLASS_CONST_LONG(RecursiveIteratorIterator, "CATCH_GET_CHILD", RIT_CATCH_GET_CHILD);
- REGISTER_SPL_STD_CLASS_EX(FilterIterator, spl_dual_it_new, spl_funcs_FilterIterator);
- REGISTER_SPL_ITERATOR(FilterIterator);
+ REGISTER_SPL_INTERFACE(OuterIterator);
+ REGISTER_SPL_ITERATOR(OuterIterator);
+
+ REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, spl_funcs_IteratorIterator);
+ REGISTER_SPL_ITERATOR(IteratorIterator);
+
+ REGISTER_SPL_SUB_CLASS_EX(FilterIterator, IteratorIterator, spl_dual_it_new, spl_funcs_FilterIterator);
spl_ce_FilterIterator->ce_flags |= ZEND_ACC_EXPLICIT_ABSTRACT_CLASS;
REGISTER_SPL_SUB_CLASS_EX(RecursiveFilterIterator, FilterIterator, spl_dual_it_new, spl_funcs_RecursiveFilterIterator);
@@ -2142,11 +2189,9 @@ PHP_MINIT_FUNCTION(spl_iterators)
REGISTER_SPL_INTERFACE(SeekableIterator);
REGISTER_SPL_ITERATOR(SeekableIterator);
- REGISTER_SPL_STD_CLASS_EX(LimitIterator, spl_dual_it_new, spl_funcs_LimitIterator);
- REGISTER_SPL_ITERATOR(LimitIterator);
+ REGISTER_SPL_SUB_CLASS_EX(LimitIterator, IteratorIterator, spl_dual_it_new, spl_funcs_LimitIterator);
- REGISTER_SPL_STD_CLASS_EX(CachingIterator, spl_dual_it_new, spl_funcs_CachingIterator);
- REGISTER_SPL_ITERATOR(CachingIterator);
+ REGISTER_SPL_SUB_CLASS_EX(CachingIterator, IteratorIterator, spl_dual_it_new, spl_funcs_CachingIterator);
REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CALL_TOSTRING", CIT_CALL_TOSTRING);
REGISTER_SPL_CLASS_CONST_LONG(CachingIterator, "CATCH_GET_CHILD", CIT_CATCH_GET_CHILD);
@@ -2156,25 +2201,11 @@ PHP_MINIT_FUNCTION(spl_iterators)
REGISTER_SPL_SUB_CLASS_EX(RecursiveCachingIterator, CachingIterator, spl_dual_it_new, spl_funcs_RecursiveCachingIterator);
REGISTER_SPL_IMPLEMENTS(RecursiveCachingIterator, RecursiveIterator);
- REGISTER_SPL_STD_CLASS_EX(IteratorIterator, spl_dual_it_new, spl_funcs_IteratorIterator);
- REGISTER_SPL_ITERATOR(IteratorIterator);
+ REGISTER_SPL_SUB_CLASS_EX(NoRewindIterator, IteratorIterator, spl_dual_it_new, spl_funcs_NoRewindIterator);
- REGISTER_SPL_STD_CLASS_EX(NoRewindIterator, spl_dual_it_new, spl_funcs_NoRewindIterator);
- REGISTER_SPL_ITERATOR(NoRewindIterator);
-
- REGISTER_SPL_INTERFACE(OuterIterator);
- REGISTER_SPL_ITERATOR(OuterIterator);
-
- REGISTER_SPL_STD_CLASS_EX(AppendIterator, spl_dual_it_new, spl_funcs_AppendIterator);
+ REGISTER_SPL_SUB_CLASS_EX(AppendIterator, IteratorIterator, spl_dual_it_new, spl_funcs_AppendIterator);
REGISTER_SPL_IMPLEMENTS(RecursiveIteratorIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(CachingIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(FilterIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(LimitIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(IteratorIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(NoRewindIterator, OuterIterator);
- REGISTER_SPL_IMPLEMENTS(AppendIterator, OuterIterator);
-
REGISTER_SPL_SUB_CLASS_EX(InfiniteIterator, IteratorIterator, spl_dual_it_new, spl_funcs_InfiniteIterator);
REGISTER_SPL_STD_CLASS_EX(EmptyIterator, NULL, spl_funcs_EmptyIterator);
diff --git a/ext/spl/spl_iterators.h b/ext/spl/spl_iterators.h
index faad41da9..3b39b03cd 100755
--- a/ext/spl/spl_iterators.h
+++ b/ext/spl/spl_iterators.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_iterators.h,v 1.18.2.6 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: spl_iterators.h,v 1.18.2.7 2006/03/05 17:39:49 helly Exp $ */
#ifndef SPL_ITERATORS_H
#define SPL_ITERATORS_H
@@ -53,6 +53,9 @@ PHP_FUNCTION(iterator_count);
typedef enum {
DIT_Default = 0,
+ DIT_FilterIterator = DIT_Default,
+ DIT_RecursiveFilterIterator = DIT_Default,
+ DIT_ParentIterator = DIT_Default,
DIT_LimitIterator,
DIT_CachingIterator,
DIT_RecursiveCachingIterator,
@@ -60,6 +63,7 @@ typedef enum {
DIT_NoRewindIterator,
DIT_InfiniteIterator,
DIT_AppendIterator,
+ DIT_Unknown = ~0
} dual_it_type;
enum {
diff --git a/ext/spl/spl_observer.c b/ext/spl/spl_observer.c
index 5f3d271cf..fc7259e1e 100755
--- a/ext/spl/spl_observer.c
+++ b/ext/spl/spl_observer.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_observer.c,v 1.2.2.5 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: spl_observer.c,v 1.2.2.6 2006/03/29 14:28:42 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -85,9 +85,8 @@ void spl_SplOjectStorage_free_storage(void *object TSRMLS_DC) /* {{{ */
{
spl_SplObjectStorage *intern = (spl_SplObjectStorage *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
-
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
+
zend_hash_destroy(&intern->storage);
efree(object);
@@ -101,11 +100,9 @@ static zend_object_value spl_object_storage_new_ex(zend_class_entry *class_type,
intern = emalloc(sizeof(spl_SplObjectStorage));
memset(intern, 0, sizeof(spl_SplObjectStorage));
- intern->std.ce = class_type;
*obj = intern;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
zend_hash_init(&intern->storage, 0, NULL, ZVAL_PTR_DTOR, 0);
diff --git a/ext/spl/spl_sxe.c b/ext/spl/spl_sxe.c
index f2568371c..5f9a98ee5 100755
--- a/ext/spl/spl_sxe.c
+++ b/ext/spl/spl_sxe.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spl_sxe.c,v 1.8.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: spl_sxe.c,v 1.8.2.5 2006/03/06 09:50:44 helly Exp $ */
#ifdef HAVE_CONFIG_H
# include "config.h"
@@ -32,6 +32,7 @@
#include "spl_engine.h"
#include "spl_iterators.h"
#include "spl_sxe.h"
+#include "spl_array.h"
zend_class_entry *spl_ce_SimpleXMLIterator = NULL;
zend_class_entry *spl_ce_SimpleXMLElement;
@@ -40,7 +41,9 @@ zend_class_entry *spl_ce_SimpleXMLElement;
#include "ext/simplexml/php_simplexml_exports.h"
-SPL_METHOD(SimpleXMLIterator, rewind) /* {{{ */
+/* {{{ proto void SimpleXMLIterator::rewind()
+ Rewind to first element */
+SPL_METHOD(SimpleXMLIterator, rewind)
{
php_sxe_iterator iter;
@@ -49,7 +52,9 @@ SPL_METHOD(SimpleXMLIterator, rewind) /* {{{ */
}
/* }}} */
-SPL_METHOD(SimpleXMLIterator, valid) /* {{{ */
+/* {{{ proto bool SimpleXMLIterator::valid()
+ Check whether iteration is valid */
+SPL_METHOD(SimpleXMLIterator, valid)
{
php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
@@ -57,7 +62,9 @@ SPL_METHOD(SimpleXMLIterator, valid) /* {{{ */
}
/* }}} */
-SPL_METHOD(SimpleXMLIterator, current) /* {{{ */
+/* {{{ proto SimpleXMLIterator SimpleXMLIterator::current()
+ Get current element */
+SPL_METHOD(SimpleXMLIterator, current)
{
php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
@@ -69,7 +76,9 @@ SPL_METHOD(SimpleXMLIterator, current) /* {{{ */
}
/* }}} */
-SPL_METHOD(SimpleXMLIterator, key) /* {{{ */
+/* {{{ proto string SimpleXMLIterator::key()
+ Get name of current child element */
+SPL_METHOD(SimpleXMLIterator, key)
{
xmlNodePtr curnode;
php_sxe_object *intern;
@@ -85,11 +94,13 @@ SPL_METHOD(SimpleXMLIterator, key) /* {{{ */
RETURN_STRINGL((char*)curnode->name, xmlStrlen(curnode->name), 1);
}
- RETURN_FALSE;
+ RETURN_FALSE;
}
/* }}} */
-SPL_METHOD(SimpleXMLIterator, next) /* {{{ */
+/* {{{ proto void SimpleXMLIterator::next()
+ Move to next element */
+SPL_METHOD(SimpleXMLIterator, next)
{
php_sxe_iterator iter;
@@ -98,15 +109,15 @@ SPL_METHOD(SimpleXMLIterator, next) /* {{{ */
}
/* }}} */
-/* {{{ hasChildren()
- */
+/* {{{ proto bool SimpleXMLIterator::hasChildren()
+ Check whether element has children (elements) */
SPL_METHOD(SimpleXMLIterator, hasChildren)
{
php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
php_sxe_object *child;
xmlNodePtr node;
- if (!sxe->iter.data) {
+ if (!sxe->iter.data || sxe->iter.type == SXE_ITER_ATTRLIST) {
RETURN_FALSE;
}
child = php_sxe_fetch_object(sxe->iter.data TSRMLS_CC);
@@ -122,19 +133,30 @@ SPL_METHOD(SimpleXMLIterator, hasChildren)
}
/* }}} */
-/* {{{ getChildren()
- */
+/* {{{ proto SimpleXMLIterator SimpleXMLIterator::getChildren()
+ Get child element iterator */
SPL_METHOD(SimpleXMLIterator, getChildren)
{
php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
- if (!sxe->iter.data) {
+ if (!sxe->iter.data || sxe->iter.type == SXE_ITER_ATTRLIST) {
return; /* return NULL */
}
return_value->type = IS_OBJECT;
return_value->value.obj = zend_objects_store_clone_obj(sxe->iter.data TSRMLS_CC);
}
+/* {{{ proto int SimpleXMLIterator::count()
+ Get number of child elements */
+SPL_METHOD(SimpleXMLIterator, count)
+{
+ long count = 0;
+
+ Z_OBJ_HANDLER_P(getThis(), count_elements)(getThis(), &count TSRMLS_CC);
+
+ RETURN_LONG(count);
+}
+
static zend_function_entry spl_funcs_SimpleXMLIterator[] = {
SPL_ME(SimpleXMLIterator, rewind, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, valid, NULL, ZEND_ACC_PUBLIC)
@@ -143,6 +165,7 @@ static zend_function_entry spl_funcs_SimpleXMLIterator[] = {
SPL_ME(SimpleXMLIterator, next, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, hasChildren, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, getChildren, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SimpleXMLIterator, count, NULL, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
/* }}} */
@@ -150,17 +173,18 @@ static zend_function_entry spl_funcs_SimpleXMLIterator[] = {
SPL_API PHP_MINIT_FUNCTION(spl_sxe) /* {{{ */
{
zend_class_entry **pce;
-
+
if (zend_hash_find(CG(class_table), "simplexmlelement", sizeof("SimpleXMLElement"), (void **) &pce) == FAILURE) {
spl_ce_SimpleXMLElement = NULL;
spl_ce_SimpleXMLIterator = NULL;
return SUCCESS; /* SimpleXML must be initialized before */
}
-
+
spl_ce_SimpleXMLElement = *pce;
REGISTER_SPL_SUB_CLASS_EX(SimpleXMLIterator, SimpleXMLElement, spl_ce_SimpleXMLElement->create_object, spl_funcs_SimpleXMLIterator);
REGISTER_SPL_IMPLEMENTS(SimpleXMLIterator, RecursiveIterator);
+ REGISTER_SPL_IMPLEMENTS(SimpleXMLIterator, Countable);
return SUCCESS;
}
diff --git a/ext/spl/tests/array_017.phpt b/ext/spl/tests/array_017.phpt
index f028a1203..72bf63998 100755
--- a/ext/spl/tests/array_017.phpt
+++ b/ext/spl/tests/array_017.phpt
@@ -29,7 +29,7 @@ class ArrayIteratorEx extends ArrayIterator
function setFlags($flags)
{
echo __METHOD__ . "($flags)\n";
- ArrayObject::setFlags($flags);
+ ArrayIterator::setFlags($flags);
}
}
diff --git a/ext/spl/tests/array_019.phpt b/ext/spl/tests/array_019.phpt
new file mode 100755
index 000000000..1416d8407
--- /dev/null
+++ b/ext/spl/tests/array_019.phpt
@@ -0,0 +1,32 @@
+--TEST--
+SPL: ArrayIterator and foreach by reference
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$ar = new ArrayObject(array(1)); foreach($ar as &$v) var_dump($v);
+$ar = new ArrayIterator(array(2)); foreach($ar as &$v) var_dump($v);
+$ar = new RecursiveArrayIterator(array(3)); foreach($ar as &$v) var_dump($v);
+
+class ArrayIteratorEx extends ArrayIterator
+{
+ function current()
+ {
+ return ArrayIterator::current();
+ }
+}
+
+$ar = new ArrayIteratorEx(array(4)); foreach($ar as $v) var_dump($v);
+$ar = new ArrayIteratorEx(array(5)); foreach($ar as &$v) var_dump($v);
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+int(1)
+int(2)
+int(3)
+int(4)
+int(5)
+===DONE===
diff --git a/ext/spl/tests/array_020.phpt b/ext/spl/tests/array_020.phpt
new file mode 100755
index 000000000..cdeb4a216
--- /dev/null
+++ b/ext/spl/tests/array_020.phpt
@@ -0,0 +1,66 @@
+--TEST--
+SPL: ArrayIterator overloading
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+class ArrayIteratorEx extends ArrayIterator
+{
+ function rewind()
+ {
+ echo __METHOD__ . "\n";
+ ArrayIterator::rewind();
+ }
+
+ function valid()
+ {
+ echo __METHOD__ . "\n";
+ return ArrayIterator::valid();
+ }
+
+ function key()
+ {
+ echo __METHOD__ . "\n";
+ return ArrayIterator::key();
+ }
+
+ function current()
+ {
+ echo __METHOD__ . "\n";
+ return ArrayIterator::current();
+ }
+
+ function next()
+ {
+ echo __METHOD__ . "\n";
+ return ArrayIterator::next();
+ }
+}
+
+$ar = new ArrayIteratorEx(array(1,2));
+foreach($ar as $k => $v)
+{
+ var_dump($k);
+ var_dump($v);
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+ArrayIteratorEx::rewind
+ArrayIteratorEx::valid
+ArrayIteratorEx::current
+ArrayIteratorEx::key
+int(0)
+int(1)
+ArrayIteratorEx::next
+ArrayIteratorEx::valid
+ArrayIteratorEx::current
+ArrayIteratorEx::key
+int(1)
+int(2)
+ArrayIteratorEx::next
+ArrayIteratorEx::valid
+===DONE===
diff --git a/ext/spl/tests/array_021.phpt b/ext/spl/tests/array_021.phpt
new file mode 100755
index 000000000..f2ae0c87e
--- /dev/null
+++ b/ext/spl/tests/array_021.phpt
@@ -0,0 +1,31 @@
+--TEST--
+SPL: ArrayObject::seek() and exceptions
+--FILE--
+<?php
+
+class foo extends ArrayObject
+{
+ public function seek($key)
+ {
+ echo __METHOD__ . "($key)\n";
+ throw new Exception("hi");
+ }
+}
+
+$test = new foo(array(1,2,3));
+
+try
+{
+ $test->seek('bar');
+}
+catch (Exception $e)
+{
+ echo "got exception\n";
+}
+
+?>
+===DONE===
+--EXPECT--
+foo::seek(bar)
+got exception
+===DONE===
diff --git a/ext/spl/tests/array_022.phpt b/ext/spl/tests/array_022.phpt
new file mode 100755
index 000000000..d1eafd677
--- /dev/null
+++ b/ext/spl/tests/array_022.phpt
@@ -0,0 +1,94 @@
+--TEST--
+SPL: ArrayObject/Iterator and reference to self
+--FILE--
+==ArrayObject===
+<?php
+
+class MyArrayObject extends ArrayObject
+{
+ public function __construct()
+ {
+ parent::__construct($this);
+ $this['bar'] = 'baz';
+ }
+}
+
+$a = new MyArrayObject;
+
+$b = clone $a;
+$b['baz'] = 'Foo';
+
+var_dump($a);
+var_dump($b);
+
+?>
+==ArrayIterator===
+<?php
+
+class MyArrayIterator extends ArrayIterator
+{
+ public function __construct()
+ {
+ parent::__construct($this);
+ $this['bar'] = 'baz';
+ }
+}
+
+$a = new MyArrayIterator;
+
+$b = clone $a;
+$b['baz'] = 'Foo';
+
+var_dump($a);
+var_dump($b);
+
+?>
+===DONE===
+--EXPECTF--
+==ArrayObject===
+object(MyArrayObject)#%d (1) {
+ ["bar"]=>
+ string(3) "baz"
+}
+object(MyArrayObject)#%d (2) {
+ ["bar"]=>
+ string(3) "baz"
+ ["baz"]=>
+ string(3) "Foo"
+}
+==ArrayIterator===
+object(MyArrayIterator)#%d (1) {
+ ["bar"]=>
+ string(3) "baz"
+}
+object(MyArrayIterator)#%d (2) {
+ ["bar"]=>
+ string(3) "baz"
+ ["baz"]=>
+ string(3) "Foo"
+}
+===DONE===
+--UEXPECTF--
+==ArrayObject===
+object(MyArrayObject)#%d (1) {
+ [u"bar"]=>
+ unicode(3) "baz"
+}
+object(MyArrayObject)#%d (2) {
+ [u"bar"]=>
+ unicode(3) "baz"
+ [u"baz"]=>
+ unicode(3) "Foo"
+}
+==ArrayIterator===
+object(MyArrayIterator)#%d (1) {
+ [u"bar"]=>
+ unicode(3) "baz"
+}
+object(MyArrayIterator)#%d (2) {
+ [u"bar"]=>
+ unicode(3) "baz"
+ [u"baz"]=>
+ unicode(3) "Foo"
+}
+===DONE===
diff --git a/ext/spl/tests/bug34548.phpt b/ext/spl/tests/bug34548.phpt
index 90f2e8f6e..73262a806 100644
--- a/ext/spl/tests/bug34548.phpt
+++ b/ext/spl/tests/bug34548.phpt
@@ -1,5 +1,5 @@
--TEST--
-bug #34548 (Method append() in class extended from ArrayObject crashes PHP)
+Bug #34548 (Method append() in class extended from ArrayObject crashes PHP)
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
diff --git a/ext/spl/tests/bug36258.phpt b/ext/spl/tests/bug36258.phpt
new file mode 100644
index 000000000..297c7f597
--- /dev/null
+++ b/ext/spl/tests/bug36258.phpt
@@ -0,0 +1,21 @@
+--TEST--
+Bug #36258 (SplFileObject::getPath() may lead to segfault)
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$diriter = new RecursiveIteratorIterator( new RecursiveDirectoryIterator('.') );
+
+foreach ($diriter as $key => $file) {
+ var_dump($file->getFilename());
+ var_dump($file->getPath());
+ break;
+}
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(%d) "%s"
+string(%d) "%s"
+Done
diff --git a/ext/spl/tests/bug36287.phpt b/ext/spl/tests/bug36287.phpt
new file mode 100755
index 000000000..29ae0e2c9
--- /dev/null
+++ b/ext/spl/tests/bug36287.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Bug #36287
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("."), true);
+
+$idx = 0;
+foreach($it as $file)
+{
+ echo "First\n";
+ if("." != $file && ".." != $file)
+ {
+ var_Dump($file->getFilename());
+ }
+ echo "Second\n";
+ if($file != "." && $file != "..")
+ {
+ var_dump($file->getFilename());
+ }
+ if (++$idx > 1)
+ {
+ break;
+ }
+}
+
+?>
+===DONE===
+--EXPECTF--
+First
+string(%d) "%s"
+Second
+string(%d) "%s"
+First
+string(%d) "%s"
+Second
+string(%d) "%s"
+===DONE===
diff --git a/ext/spl/tests/bug36825.phpt b/ext/spl/tests/bug36825.phpt
new file mode 100644
index 000000000..503ec43a4
--- /dev/null
+++ b/ext/spl/tests/bug36825.phpt
@@ -0,0 +1,33 @@
+--TEST--
+Bug #36825 (Exceptions thrown in ArrayObject::offsetGet cause segfault)
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+class foo extends ArrayObject
+{
+ public function offsetGet($key)
+ {
+ echo __METHOD__ . "($key)\n";
+ throw new Exception("hi");
+ }
+}
+
+$test = new foo();
+
+try
+{
+ var_dump($test['bar']);
+}
+catch (Exception $e)
+{
+ echo "got exception\n";
+}
+
+?>
+===DONE===
+--EXPECT--
+foo::offsetGet(bar)
+got exception
+===DONE===
diff --git a/ext/spl/tests/bug36941.phpt b/ext/spl/tests/bug36941.phpt
new file mode 100755
index 000000000..528ba4a46
--- /dev/null
+++ b/ext/spl/tests/bug36941.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #36941 (ArrayIterator does not clone itself)
+--FILE--
+===ArrayObject===
+<?php
+$a = new ArrayObject();
+$a[] = 1;
+
+$b = clone $a;
+
+var_dump($a[0], $b[0]);
+$b[0] = $b[0] + 1;
+var_dump($a[0], $b[0]);
+$b[0] = 3;
+var_dump($a[0], $b[0]);
+?>
+===ArrayIterator===
+<?php
+$a = new ArrayIterator();
+$a[] = 1;
+
+$b = clone $a;
+
+var_dump($a[0], $b[0]);
+$b[0] = $b[0] + 1;
+var_dump($a[0], $b[0]);
+$b[0] = 3;
+var_dump($a[0], $b[0]);
+?>
+===DONE===
+--EXPECT--
+===ArrayObject===
+int(1)
+int(1)
+int(1)
+int(2)
+int(1)
+int(3)
+===ArrayIterator===
+int(1)
+int(1)
+int(2)
+int(2)
+int(3)
+int(3)
+===DONE===
diff --git a/ext/spl/tests/iterator_012.phpt b/ext/spl/tests/iterator_012.phpt
index 8195072b5..c6eb86eef 100755
--- a/ext/spl/tests/iterator_012.phpt
+++ b/ext/spl/tests/iterator_012.phpt
@@ -1,5 +1,5 @@
--TEST--
-SPL: NoRweindIterator
+SPL: NoRewindIterator
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
diff --git a/ext/spl/tests/iterator_019.phpt b/ext/spl/tests/iterator_019.phpt
index 8195072b5..c6eb86eef 100755
--- a/ext/spl/tests/iterator_019.phpt
+++ b/ext/spl/tests/iterator_019.phpt
@@ -1,5 +1,5 @@
--TEST--
-SPL: NoRweindIterator
+SPL: NoRewindIterator
--SKIPIF--
<?php if (!extension_loaded("spl")) print "skip"; ?>
--FILE--
diff --git a/ext/spl/tests/iterator_030.phpt b/ext/spl/tests/iterator_030.phpt
new file mode 100755
index 000000000..6ed8035ac
--- /dev/null
+++ b/ext/spl/tests/iterator_030.phpt
@@ -0,0 +1,46 @@
+--TEST--
+SPL: EmptyIterator access
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$it = new EmptyIterator;
+
+var_dump($it->valid());
+$it->rewind();
+var_dump($it->valid());
+$it->next();
+var_dump($it->valid());
+
+try
+{
+ var_dump($it->key());
+}
+catch(BadMethodCallException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+try
+{
+ var_dump($it->current());
+}
+catch(BadMethodCallException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+var_dump($it->valid());
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+bool(false)
+bool(false)
+bool(false)
+Accessing the key of an EmptyIterator
+Accessing the value of an EmptyIterator
+bool(false)
+===DONE===
diff --git a/ext/spl/tests/iterator_031.phpt b/ext/spl/tests/iterator_031.phpt
new file mode 100755
index 000000000..00afa6185
--- /dev/null
+++ b/ext/spl/tests/iterator_031.phpt
@@ -0,0 +1,118 @@
+--TEST--
+SPL: AppendIterator::append() rewinds when neccessary
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+class MyArrayIterator extends ArrayIterator
+{
+ function rewind()
+ {
+ echo __METHOD__ . "\n";
+ parent::rewind();
+ }
+}
+
+$it = new MyArrayIterator(array(1,2));
+
+foreach($it as $k=>$v)
+{
+ echo "$k=>$v\n";
+}
+
+class MyAppendIterator extends AppendIterator
+{
+ function __construct()
+ {
+ echo __METHOD__ . "\n";
+ }
+
+ function rewind()
+ {
+ echo __METHOD__ . "\n";
+ parent::rewind();
+ }
+
+ function valid()
+ {
+ echo __METHOD__ . "\n";
+ return parent::valid();
+ }
+
+ function append(Iterator $what)
+ {
+ echo __METHOD__ . "\n";
+ parent::append($what);
+ }
+
+ function parent__construct()
+ {
+ parent::__construct();
+ }
+}
+
+$ap = new MyAppendIterator;
+
+try
+{
+ $ap->append($it);
+}
+catch(BadMethodCallException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+$ap->parent__construct();
+
+try
+{
+ $ap->parent__construct($it);
+}
+catch(BadMethodCallException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+$ap->append($it);
+$ap->append($it);
+$ap->append($it);
+
+foreach($ap as $k=>$v)
+{
+ echo "$k=>$v\n";
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+MyArrayIterator::rewind
+0=>1
+1=>2
+MyAppendIterator::__construct
+MyAppendIterator::append
+Classes derived from AppendIterator must call AppendIterator::__construct()
+AppendIterator::getIterator() must be called exactly once per instance
+MyAppendIterator::append
+MyArrayIterator::rewind
+MyAppendIterator::append
+MyAppendIterator::append
+MyAppendIterator::rewind
+MyArrayIterator::rewind
+MyAppendIterator::valid
+0=>1
+MyAppendIterator::valid
+1=>2
+MyArrayIterator::rewind
+MyAppendIterator::valid
+0=>1
+MyAppendIterator::valid
+1=>2
+MyArrayIterator::rewind
+MyAppendIterator::valid
+0=>1
+MyAppendIterator::valid
+1=>2
+MyAppendIterator::valid
+===DONE===
diff --git a/ext/spl/tests/iterator_032.phpt b/ext/spl/tests/iterator_032.phpt
new file mode 100755
index 000000000..86695d4af
--- /dev/null
+++ b/ext/spl/tests/iterator_032.phpt
@@ -0,0 +1,52 @@
+--TEST--
+SPL: LimitIterator::getPosition()
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$it = new LimitIterator(new ArrayIterator(array(1,2,3,4)), 1, 2);
+
+foreach($it as $k=>$v)
+{
+ echo "$k=>$v\n";
+ var_dump($it->getPosition());
+}
+
+try
+{
+ $it->seek(0);
+}
+catch(OutOfBoundsException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+$it->seek(2);
+var_dump($it->current());
+
+try
+{
+ $it->seek(3);
+}
+catch(OutOfBoundsException $e)
+{
+ echo $e->getMessage() . "\n";
+}
+
+$it->next();
+var_dump($it->valid());
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+1=>2
+int(1)
+2=>3
+int(2)
+Cannot seek to 0 which is below the offset 1
+int(3)
+Cannot seek to 3 which is behind offest 1 plus count 2
+bool(false)
+===DONE===
diff --git a/ext/spl/tests/iterator_033.phpt b/ext/spl/tests/iterator_033.phpt
new file mode 100755
index 000000000..c1880cb2f
--- /dev/null
+++ b/ext/spl/tests/iterator_033.phpt
@@ -0,0 +1,46 @@
+--TEST--
+SPL: ParentIterator
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$it = new ParentIterator(new RecursiveArrayIterator(array(1,array(21,22, array(231)),3)));
+
+foreach(new RecursiveIteratorIterator($it) as $k=>$v)
+{
+ var_dump($k);
+ var_dump($v);
+}
+
+echo "==SECOND==\n";
+
+foreach(new RecursiveIteratorIterator($it, 1) as $k=>$v)
+{
+ var_dump($k);
+ var_dump($v);
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+==SECOND==
+int(1)
+array(3) {
+ [0]=>
+ int(21)
+ [1]=>
+ int(22)
+ [2]=>
+ array(1) {
+ [0]=>
+ int(231)
+ }
+}
+int(2)
+array(1) {
+ [0]=>
+ int(231)
+}
+===DONE===
diff --git a/ext/spl/tests/iterator_034.phpt b/ext/spl/tests/iterator_034.phpt
new file mode 100755
index 000000000..b81c6d970
--- /dev/null
+++ b/ext/spl/tests/iterator_034.phpt
@@ -0,0 +1,190 @@
+--TEST--
+SPL: RecursiveIteratorIterator and break deep
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+class MyRecursiveArrayIterator extends RecursiveArrayIterator
+{
+ function valid()
+ {
+ if (!parent::valid())
+ {
+ echo __METHOD__ . "() = false\n";
+ return false;
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ function getChildren()
+ {
+ echo __METHOD__ . "()\n";
+ return parent::getChildren();
+ }
+
+ function rewind()
+ {
+ echo __METHOD__ . "()\n";
+ parent::rewind();
+ }
+}
+
+class RecursiveArrayIteratorIterator extends RecursiveIteratorIterator
+{
+ private $max_depth;
+ private $over = 0;
+
+ function __construct($it, $max_depth)
+ {
+ $this->max_depth = $max_depth;
+ parent::__construct($it);
+ }
+
+ function rewind()
+ {
+ echo __METHOD__ . "() - BEGIN\n";
+ parent::rewind();
+ echo __METHOD__ . "() - DONE\n";
+ }
+
+ function valid()
+ {
+ echo __METHOD__ . "()\n";
+ return parent::valid();
+ }
+
+ function current()
+ {
+ echo __METHOD__ . "()\n";
+ return parent::current();
+ }
+
+ function key()
+ {
+ echo __METHOD__ . "()\n";
+ return parent::key();
+ }
+
+ function next()
+ {
+ echo __METHOD__ . "()\n";
+ parent::next();
+ }
+
+ function callHasChildren()
+ {
+ $has = parent::callHasChildren();
+ $res = $this->getDepth() < $this->max_depth && $has;
+ echo __METHOD__ . "(".$this->getDepth().") = ".($res?"yes":"no")."/".($has?"yes":"no")."\n";
+ return $res;
+ }
+
+ function beginChildren()
+ {
+ echo __METHOD__ . "(".$this->getDepth().")\n";
+ parent::beginChildren();
+ }
+
+ function endChildren()
+ {
+ echo __METHOD__ . "(".$this->getDepth().")\n";
+ parent::endChildren();
+ }
+}
+
+$p = 0;
+$it = new RecursiveArrayIteratorIterator(new MyRecursiveArrayIterator(array("a", array("ba", array("bba", "bbb"), array(array("bcaa"), array("bcba"))), array("ca"), "d")), 2);
+foreach($it as $k=>$v)
+{
+ if (is_array($v)) $v = join('',$v);
+ echo "$k=>$v\n";
+ if ($p++ == 5)
+ {
+ echo "===BREAK===\n";
+ break;
+ }
+}
+
+echo "===FOREND===\n";
+
+$it->rewind();
+
+echo "===CHECK===\n";
+
+var_dump($it->valid());
+var_dump($it->current() == "a");
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECT--
+RecursiveArrayIteratorIterator::rewind() - BEGIN
+MyRecursiveArrayIterator::rewind()
+RecursiveArrayIteratorIterator::callHasChildren(0) = no/no
+RecursiveArrayIteratorIterator::rewind() - DONE
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+0=>a
+RecursiveArrayIteratorIterator::next()
+RecursiveArrayIteratorIterator::callHasChildren(0) = yes/yes
+MyRecursiveArrayIterator::getChildren()
+MyRecursiveArrayIterator::rewind()
+RecursiveArrayIteratorIterator::beginChildren(1)
+RecursiveArrayIteratorIterator::callHasChildren(1) = no/no
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+0=>ba
+RecursiveArrayIteratorIterator::next()
+RecursiveArrayIteratorIterator::callHasChildren(1) = yes/yes
+MyRecursiveArrayIterator::getChildren()
+MyRecursiveArrayIterator::rewind()
+RecursiveArrayIteratorIterator::beginChildren(2)
+RecursiveArrayIteratorIterator::callHasChildren(2) = no/no
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+0=>bba
+RecursiveArrayIteratorIterator::next()
+RecursiveArrayIteratorIterator::callHasChildren(2) = no/no
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+1=>bbb
+RecursiveArrayIteratorIterator::next()
+MyRecursiveArrayIterator::valid() = false
+RecursiveArrayIteratorIterator::endChildren(2)
+RecursiveArrayIteratorIterator::callHasChildren(1) = yes/yes
+MyRecursiveArrayIterator::getChildren()
+MyRecursiveArrayIterator::rewind()
+RecursiveArrayIteratorIterator::beginChildren(2)
+RecursiveArrayIteratorIterator::callHasChildren(2) = no/yes
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+0=>bcaa
+RecursiveArrayIteratorIterator::next()
+RecursiveArrayIteratorIterator::callHasChildren(2) = no/yes
+RecursiveArrayIteratorIterator::valid()
+RecursiveArrayIteratorIterator::current()
+RecursiveArrayIteratorIterator::key()
+1=>bcba
+===BREAK===
+===FOREND===
+RecursiveArrayIteratorIterator::rewind() - BEGIN
+RecursiveArrayIteratorIterator::endChildren(1)
+RecursiveArrayIteratorIterator::endChildren(0)
+MyRecursiveArrayIterator::rewind()
+RecursiveArrayIteratorIterator::callHasChildren(0) = no/no
+RecursiveArrayIteratorIterator::rewind() - DONE
+===CHECK===
+RecursiveArrayIteratorIterator::valid()
+bool(true)
+RecursiveArrayIteratorIterator::current()
+bool(true)
+===DONE===
diff --git a/ext/spl/tests/iterator_035.phpt b/ext/spl/tests/iterator_035.phpt
new file mode 100644
index 000000000..eebc7f22a
--- /dev/null
+++ b/ext/spl/tests/iterator_035.phpt
@@ -0,0 +1,17 @@
+--TEST--
+SPL: ArrayIterator and values assigned by reference
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--FILE--
+<?php
+
+$tmp = 1;
+
+$a = new ArrayIterator();
+$a[] = $tmp;
+$a[] = &$tmp;
+
+echo "Done\n";
+?>
+--EXPECTF--
+Fatal error: Objects used as arrays in post/pre increment/decrement must return values by reference in %s on line %d
diff --git a/ext/spl/tests/spl_autoload_008.phpt b/ext/spl/tests/spl_autoload_008.phpt
new file mode 100755
index 000000000..a3f24d96c
--- /dev/null
+++ b/ext/spl/tests/spl_autoload_008.phpt
@@ -0,0 +1,131 @@
+--TEST--
+SPL: spl_autoload() with exceptions
+--SKIPIF--
+<?php if (!extension_loaded("spl")) print "skip"; ?>
+--INI--
+include_path=.
+--FILE--
+<?php
+
+function MyAutoLoad($className)
+{
+ echo __METHOD__ . "($className)\n";
+ throw new Exception('Bla');
+}
+
+class MyAutoLoader
+{
+ static function autoLoad($className)
+ {
+ echo __METHOD__ . "($className)\n";
+ throw new Exception('Bla');
+ }
+
+ function dynaLoad($className)
+ {
+ echo __METHOD__ . "($className)\n";
+ throw new Exception('Bla');
+ }
+}
+
+$obj = new MyAutoLoader;
+
+$funcs = array(
+ 'MyAutoLoad',
+ 'MyAutoLoader::autoLoad',
+ 'MyAutoLoader::dynaLoad',
+ array('MyAutoLoader', 'autoLoad'),
+ array('MyAutoLoader', 'dynaLoad'),
+ array($obj, 'autoLoad'),
+ array($obj, 'dynaLoad'),
+);
+
+foreach($funcs as $idx => $func)
+{
+ echo "====$idx====\n";
+
+ try
+ {
+ var_dump($func);
+ spl_autoload_register($func);
+ if (count(spl_autoload_functions()))
+ {
+ echo "registered\n";
+
+ var_dump(class_exists("NoExistingTestClass", true));
+ }
+ }
+ catch (Exception $e)
+ {
+ echo get_class($e) . ": " . $e->getMessage() . "\n";
+ }
+
+ spl_autoload_unregister($func);
+ var_dump(count(spl_autoload_functions()));
+}
+
+?>
+===DONE===
+<?php exit(0); ?>
+--EXPECTF--
+====0====
+string(10) "MyAutoLoad"
+registered
+MyAutoLoad(NoExistingTestClass)
+Exception: Bla
+int(0)
+====1====
+string(22) "MyAutoLoader::autoLoad"
+registered
+MyAutoLoader::autoLoad(NoExistingTestClass)
+Exception: Bla
+int(0)
+====2====
+string(22) "MyAutoLoader::dynaLoad"
+LogicException: Function 'MyAutoLoader::dynaLoad' not callable
+int(0)
+====3====
+array(2) {
+ [0]=>
+ string(12) "MyAutoLoader"
+ [1]=>
+ string(8) "autoLoad"
+}
+registered
+MyAutoLoader::autoLoad(NoExistingTestClass)
+Exception: Bla
+int(0)
+====4====
+array(2) {
+ [0]=>
+ string(12) "MyAutoLoader"
+ [1]=>
+ string(8) "dynaLoad"
+}
+LogicException: Passed array specifies a non static method but no object
+int(0)
+====5====
+array(2) {
+ [0]=>
+ object(MyAutoLoader)#%d (0) {
+ }
+ [1]=>
+ string(8) "autoLoad"
+}
+registered
+MyAutoLoader::autoLoad(NoExistingTestClass)
+Exception: Bla
+int(0)
+====6====
+array(2) {
+ [0]=>
+ object(MyAutoLoader)#%d (0) {
+ }
+ [1]=>
+ string(8) "dynaLoad"
+}
+registered
+MyAutoLoader::dynaLoad(NoExistingTestClass)
+Exception: Bla
+int(0)
+===DONE===
diff --git a/ext/spl/tests/sxe_005.phpt b/ext/spl/tests/sxe_005.phpt
new file mode 100755
index 000000000..2efd0a6be
--- /dev/null
+++ b/ext/spl/tests/sxe_005.phpt
@@ -0,0 +1,46 @@
+--TEST--
+SPL: SimpleXMLIterator and getChildren()
+--SKIPIF--
+<?php
+if (!extension_loaded("spl")) print "skip";
+if (!extension_loaded('simplexml')) print 'skip';
+if (!extension_loaded("libxml")) print "skip LibXML not present";
+if (!class_exists('RecursiveIteratorIterator')) print 'skip RecursiveIteratorIterator not available';
+?>
+--FILE--
+<?php
+
+$xml =<<<EOF
+<?xml version='1.0'?>
+<sxe>
+ <elem1/>
+ <elem2/>
+ <elem2/>
+</sxe>
+EOF;
+
+class SXETest extends SimpleXMLIterator
+{
+ function count()
+ {
+ echo __METHOD__ . "\n";
+ return parent::count();
+ }
+}
+
+$sxe = new SXETest($xml);
+
+var_dump(count($sxe));
+var_dump(count($sxe->elem1));
+var_dump(count($sxe->elem2));
+
+?>
+===DONE===
+--EXPECT--
+SXETest::count
+int(3)
+SXETest::count
+int(1)
+SXETest::count
+int(2)
+===DONE===
diff --git a/ext/sqlite/sqlite.c b/ext/sqlite/sqlite.c
index 3c0f3bdc4..0686199ae 100644
--- a/ext/sqlite/sqlite.c
+++ b/ext/sqlite/sqlite.c
@@ -17,7 +17,7 @@
| Marcus Boerger <helly@php.net> |
+----------------------------------------------------------------------+
- $Id: sqlite.c,v 1.166.2.11 2006/01/01 12:50:14 sniper Exp $
+ $Id: sqlite.c,v 1.166.2.13 2006/04/18 14:30:15 iliaa Exp $
*/
#ifdef HAVE_CONFIG_H
@@ -802,8 +802,7 @@ static void sqlite_object_free_storage(void *object TSRMLS_DC)
{
sqlite_object *intern = (sqlite_object *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
if (intern->u.ptr) {
if (intern->type == is_db) {
@@ -826,10 +825,8 @@ static void sqlite_object_new(zend_class_entry *class_type, zend_object_handlers
intern = emalloc(sizeof(sqlite_object));
memset(intern, 0, sizeof(sqlite_object));
- intern->std.ce = class_type;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval->handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) sqlite_object_free_storage, NULL TSRMLS_CC);
@@ -1127,7 +1124,7 @@ PHP_MINFO_FUNCTION(sqlite)
{
php_info_print_table_start();
php_info_print_table_header(2, "SQLite support", "enabled");
- php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.11 2006/01/01 12:50:14 sniper Exp $");
+ php_info_print_table_row(2, "PECL Module version", PHP_SQLITE_MODULE_VERSION " $Id: sqlite.c,v 1.166.2.13 2006/04/18 14:30:15 iliaa Exp $");
php_info_print_table_row(2, "SQLite Library", sqlite_libversion());
php_info_print_table_row(2, "SQLite Encoding", sqlite_libencoding());
php_info_print_table_end();
@@ -1708,7 +1705,9 @@ PHP_FUNCTION(sqlite_fetch_column_types)
add_index_string(return_value, i, colnames[ncols + i] ? (char *)colnames[ncols + i] : "", 1);
}
}
-
+ if (res.vm) {
+ sqlite_finalize(res.vm, NULL);
+ }
done:
sqlite_exec(db->db, "PRAGMA show_datatypes = OFF", NULL, NULL, NULL);
}
diff --git a/ext/standard/array.c b/ext/standard/array.c
index 426af5dc6..fc698fd2d 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: array.c,v 1.308.2.16 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: array.c,v 1.308.2.22 2006/06/03 18:59:55 andrei Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -92,20 +92,9 @@
#define DOUBLE_DRIFT_FIX 0.000000000000001
-ZEND_BEGIN_MODULE_GLOBALS(array)
- int *multisort_flags[2];
- int (*compare_func)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
-ZEND_END_MODULE_GLOBALS(array)
-
ZEND_DECLARE_MODULE_GLOBALS(array)
-#ifdef ZTS
-#define ARRAYG(v) TSRMG(array_globals_id, zend_array_globals *, v)
-#else
-#define ARRAYG(v) (array_globals.v)
-#endif
-
-/* {{{ php_extname_init_globals
+/* {{{ php_array_init_globals
*/
static void php_array_init_globals(zend_array_globals *array_globals)
{
@@ -325,8 +314,11 @@ PHP_FUNCTION(count)
if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
- RETVAL_LONG(Z_LVAL_P(retval));
- zval_ptr_dtor(&retval);
+ if (retval) {
+ convert_to_long(retval);
+ RETVAL_LONG(Z_LVAL_P(retval));
+ zval_ptr_dtor(&retval);
+ }
return;
}
#endif
@@ -1823,14 +1815,14 @@ HashTable* php_splice(HashTable *in_hash, int offset, int length,
/* Clamp the offset.. */
if (offset > num_in)
offset = num_in;
- else if (offset < 0 && (offset=num_in+offset) < 0)
+ else if (offset < 0 && (offset = (num_in + offset)) < 0)
offset = 0;
/* ..and the length */
if (length < 0) {
- length = num_in-offset+length;
- } else if (((unsigned) offset + (unsigned) length) > num_in) {
- length = num_in-offset;
+ length = num_in - offset + length;
+ } else if (((unsigned)offset + (unsigned)length) > (unsigned)num_in) {
+ length = num_in - offset;
}
/* Create and initialize output hash */
@@ -2217,14 +2209,14 @@ PHP_FUNCTION(array_slice)
/* Clamp the offset.. */
if (offset_val > num_in)
return;
- else if (offset_val < 0 && (offset_val=num_in+offset_val) < 0)
+ else if (offset_val < 0 && (offset_val = (num_in + offset_val)) < 0)
offset_val = 0;
/* ..and the length */
if (length_val < 0) {
- length_val = num_in-offset_val+length_val;
- } else if (((unsigned) offset_val + (unsigned) length_val) > num_in) {
- length_val = num_in-offset_val;
+ length_val = num_in - offset_val + length_val;
+ } else if (((unsigned)offset_val + (unsigned)length_val) > (unsigned)num_in) {
+ length_val = num_in - offset_val;
}
if (length_val == 0)
@@ -4146,12 +4138,10 @@ PHP_FUNCTION(array_filter)
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The first argument should be an array");
return;
}
- if (callback) {
- func = *callback;
- }
array = *input;
if (ZEND_NUM_ARGS() > 1) {
+ func = *callback;
if (!zend_is_callable(func, 0, &callback_name)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "The second argument, '%s', should be a valid callback", callback_name);
efree(callback_name);
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index ed718ae7a..79adf1ca2 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.725.2.17 2006/01/04 21:31:29 derick Exp $ */
+/* $Id: basic_functions.c,v 1.725.2.32 2006/06/28 22:08:59 iliaa Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -99,9 +99,9 @@ typedef struct yy_buffer_state *YY_BUFFER_STATE;
#ifdef ZTS
-int basic_globals_id;
+PHPAPI int basic_globals_id;
#else
-php_basic_globals basic_globals;
+PHPAPI php_basic_globals basic_globals;
#endif
#include "php_fopen_wrappers.h"
@@ -382,7 +382,9 @@ zend_function_entry basic_functions[] = {
#endif
#if !defined(PHP_WIN32) && !defined(NETWARE)
PHP_FE(expm1, NULL)
+# ifdef HAVE_LOG1P
PHP_FE(log1p, NULL)
+# endif
#endif
PHP_FE(pi, NULL)
@@ -423,7 +425,9 @@ zend_function_entry basic_functions[] = {
#ifdef HAVE_GETOPT
PHP_FE(getopt, NULL)
#endif
-
+#ifdef HAVE_GETLOADAVG
+ PHP_FE(sys_getloadavg, NULL)
+#endif
#ifdef HAVE_GETTIMEOFDAY
PHP_FE(microtime, NULL)
PHP_FE(gettimeofday, NULL)
@@ -694,8 +698,6 @@ zend_function_entry basic_functions[] = {
#endif
#if HAVE_LCHOWN
PHP_FE(lchown, NULL)
-#endif
-#if HAVE_LCHOWN
PHP_FE(lchgrp, NULL)
#endif
PHP_FE(chmod, NULL)
@@ -1124,6 +1126,9 @@ PHP_MINIT_FUNCTION(basic)
PHP_MSHUTDOWN_FUNCTION(basic)
{
+#ifdef HAVE_SYSLOG_H
+ PHP_MSHUTDOWN(syslog)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
+#endif
#ifdef ZTS
ts_free_id(basic_globals_id);
#ifdef PHP_WIN32
@@ -1663,7 +1668,7 @@ PHP_FUNCTION(getopt)
opterr = 0;
/* Force reinitialization of getopt() (via optind reset) on every call. */
- optind = 0;
+ optind = 1;
/* Invoke getopt(3) on the argument array. */
#ifdef HARTMUT_0
@@ -1743,17 +1748,19 @@ PHP_FUNCTION(flush)
Delay for a given number of seconds */
PHP_FUNCTION(sleep)
{
- zval **num;
+ long num;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num) == FAILURE) {
+ RETURN_FALSE;
+ }
+ if (num < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of seconds must be greater than or equal to 0");
+ RETURN_FALSE;
}
-
- convert_to_long_ex(num);
#ifdef PHP_SLEEP_NON_VOID
- RETURN_LONG(php_sleep(Z_LVAL_PP(num)));
+ RETURN_LONG(php_sleep(num));
#else
- php_sleep(Z_LVAL_PP(num));
+ php_sleep(num);
#endif
}
@@ -1764,13 +1771,16 @@ PHP_FUNCTION(sleep)
PHP_FUNCTION(usleep)
{
#if HAVE_USLEEP
- zval **num;
+ long num;
- if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &num) == FAILURE) {
- WRONG_PARAM_COUNT;
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num) == FAILURE) {
+ return;
+ }
+ if (num < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Number of microseconds must be greater than or equal to 0");
+ RETURN_FALSE;
}
- convert_to_long_ex(num);
- usleep(Z_LVAL_PP(num));
+ usleep(num);
#endif
}
/* }}} */
@@ -1822,7 +1832,7 @@ PHP_FUNCTION(time_sleep_until)
c_ts = (double)(d_ts - tm.tv_sec - tm.tv_usec / 1000000.00);
if (c_ts < 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sleep until to time is less then current time.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Sleep until to time is less than current time.");
RETURN_FALSE;
}
@@ -2024,7 +2034,7 @@ PHPAPI int _php_error_log(int opt_err, char *message, char *opt, char *headers T
break;
case 3: /*save to a file */
- stream = php_stream_open_wrapper(opt, "a", IGNORE_URL | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
+ stream = php_stream_open_wrapper(opt, "a", IGNORE_URL_WIN | ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
if (!stream)
return FAILURE;
php_stream_write(stream, message, strlen(message));
@@ -2387,6 +2397,7 @@ PHP_FUNCTION(register_shutdown_function)
shutdown_function_entry.arguments = (zval **) safe_emalloc(sizeof(zval *), shutdown_function_entry.arg_count, 0);
if (zend_get_parameters_array(ht, shutdown_function_entry.arg_count, shutdown_function_entry.arguments) == FAILURE) {
+ efree(shutdown_function_entry.arguments);
RETURN_FALSE;
}
@@ -2970,6 +2981,7 @@ PHP_FUNCTION(register_tick_function)
tick_fe.arguments = (zval **) safe_emalloc(sizeof(zval *), tick_fe.arg_count, 0);
if (zend_get_parameters_array(ht, tick_fe.arg_count, tick_fe.arguments) == FAILURE) {
+ efree(tick_fe.arguments);
RETURN_FALSE;
}
@@ -3339,6 +3351,23 @@ PHP_FUNCTION(import_request_variables)
}
/* }}} */
+#ifdef HAVE_GETLOADAVG
+PHP_FUNCTION(sys_getloadavg)
+{
+ double load[3];
+
+ if (getloadavg(load, 3) == -1) {
+ RETURN_FALSE;
+ } else {
+ array_init(return_value);
+ add_index_double(return_value, 0, load[0]);
+ add_index_double(return_value, 1, load[1]);
+ add_index_double(return_value, 2, load[2]);
+ }
+}
+#endif
+
+
/*
* Local variables:
* tab-width: 4
diff --git a/ext/standard/basic_functions.h b/ext/standard/basic_functions.h
index d47fe01c1..9f0bf7c93 100644
--- a/ext/standard/basic_functions.h
+++ b/ext/standard/basic_functions.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.h,v 1.139.2.1 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: basic_functions.h,v 1.139.2.4 2006/02/18 05:41:59 rasmus Exp $ */
#ifndef BASIC_FUNCTIONS_H
#define BASIC_FUNCTIONS_H
@@ -116,6 +116,9 @@ PHP_NAMED_FUNCTION(php_if_crc32);
PHP_FUNCTION(register_tick_function);
PHP_FUNCTION(unregister_tick_function);
+#ifdef HAVE_GETLOADAVG
+PHP_FUNCTION(sys_getloadavg);
+#endif
PHP_FUNCTION(is_uploaded_file);
PHP_FUNCTION(move_uploaded_file);
@@ -216,10 +219,10 @@ typedef struct _php_basic_globals {
#ifdef ZTS
#define BG(v) TSRMG(basic_globals_id, php_basic_globals *, v)
-extern int basic_globals_id;
+PHPAPI extern int basic_globals_id;
#else
#define BG(v) (basic_globals.v)
-extern php_basic_globals basic_globals;
+PHPAPI extern php_basic_globals basic_globals;
#endif
#if HAVE_PUTENV
diff --git a/ext/standard/crc32.c b/ext/standard/crc32.c
index 96419a705..af517f726 100644
--- a/ext/standard/crc32.c
+++ b/ext/standard/crc32.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: crc32.c,v 1.16.2.1 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: crc32.c,v 1.16.2.4 2006/02/09 15:48:46 pajoye Exp $ */
#include "php.h"
#include "basic_functions.h"
@@ -26,19 +26,20 @@
Calculate the crc32 polynomial of a string */
PHP_NAMED_FUNCTION(php_if_crc32)
{
- unsigned int crc = ~0;
char *p;
int len, nr;
-
+ php_uint32 crcinit = 0;
+ register php_uint32 crc;
+
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &p, &nr) == FAILURE) {
return;
}
+ crc = crcinit^0xFFFFFFFF;
- len = 0 ;
- for (len += nr; nr--; ++p) {
- CRC32(crc, *p);
+ for (len =+nr; nr--; ++p) {
+ crc = ((crc >> 8) & 0x00FFFFFF) ^ crc32tab[(crc ^ (*p)) & 0xFF ];
}
- RETVAL_LONG(~crc);
+ RETVAL_LONG(crc^0xFFFFFFFF);
}
/* }}} */
diff --git a/ext/standard/credits.c b/ext/standard/credits.c
index f64e5049e..2cf356ea9 100644
--- a/ext/standard/credits.c
+++ b/ext/standard/credits.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: credits.c,v 1.36.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: credits.c,v 1.36.2.4 2006/03/23 18:36:46 iliaa Exp $ */
#include "php.h"
#include "info.h"
@@ -69,7 +69,7 @@ PHPAPI void php_print_credits(int flag TSRMLS_DC)
CREDIT_LINE("Win32 Port", "Shane Caraveo, Zeev Suraski, Wez Furlong");
CREDIT_LINE("Server API (SAPI) Abstraction Layer", "Andi Gutmans, Shane Caraveo, Zeev Suraski");
CREDIT_LINE("Streams Abstraction Layer", "Wez Furlong, Sara Golemon");
- CREDIT_LINE("PHP Data Objects Layer", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle");
+ CREDIT_LINE("PHP Data Objects Layer", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky");
php_info_print_table_end();
}
@@ -106,7 +106,7 @@ PHPAPI void php_print_credits(int flag TSRMLS_DC)
if (flag & PHP_CREDITS_QA) {
php_info_print_table_start();
php_info_print_table_header(1, "PHP 5.1 Quality Assurance Team");
- php_info_print_table_row(1, "Ilia Alshanetsky, Joerg Behrens, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen");
+ php_info_print_table_row(1, "Ilia Alshanetsky, Joerg Behrens, Antony Dovgal, Stefan Esser, Moriyoshi Koizumi, Magnus Maatta, Sebastian Nohn, Derick Rethans, Melvyn Sopacua, Jani Taskinen");
php_info_print_table_end();
}
diff --git a/ext/standard/credits_ext.h b/ext/standard/credits_ext.h
index 5b8bface0..6b3f53648 100644
--- a/ext/standard/credits_ext.h
+++ b/ext/standard/credits_ext.h
@@ -43,10 +43,9 @@ CREDIT_LINE("mhash", "Sascha Schumann");
CREDIT_LINE("mime_magic", "Hartmut Holzgraefe");
CREDIT_LINE("MING", "Dave Hayden, Frank M. Kromann");
CREDIT_LINE("MS SQL", "Frank M. Kromann");
-CREDIT_LINE("msession", "Mark L. Woodward");
CREDIT_LINE("mSQL", "Zeev Suraski");
CREDIT_LINE("Multibyte String Functions", "Tsukada Takuya, Rui Hirokawa");
-CREDIT_LINE("mySQL 3.x driver for PDO", "George Schlossnagle");
+CREDIT_LINE("mySQL driver for PDO", "George Schlossnagle, Wez Furlong, Ilia Alshanetsky");
CREDIT_LINE("MySQL", "Zeev Suraski, Zak Greant, Georg Richter");
CREDIT_LINE("MySQLi", "Zak Greant, Georg Richter");
CREDIT_LINE("ncurses", "Ilia Alshanetsky, Wez Furlong, Hartmut Holzgraefe, Georg Richter");
@@ -57,9 +56,9 @@ CREDIT_LINE("OpenSSL", "Stig Venaas, Wez Furlong, Sascha Kettler");
CREDIT_LINE("Oracle (OCI) driver for PDO", "Wez Furlong");
CREDIT_LINE("pcntl", "Jason Greene");
CREDIT_LINE("Perl Compatible Regexps", "Andrei Zmievski");
-CREDIT_LINE("PHP Data Objects", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle");
+CREDIT_LINE("PHP Data Objects", "Wez Furlong, Marcus Boerger, Sterling Hughes, George Schlossnagle, Ilia Alshanetsky");
CREDIT_LINE("PHP hash", "Sara Golemon, Rasmus Lerdorf, Stefan Esser, Michael Wallner");
-CREDIT_LINE("Posix", "Kristian Köhntopp");
+CREDIT_LINE("Posix", "Kristian Koehntopp");
CREDIT_LINE("PostgreSQL driver for PDO", "Edin Kadribasic, Ilia Alshanetsky");
CREDIT_LINE("PostgreSQL", "Jouni Ahto, Zeev Suraski, Yasuo Ohgaki, Chris Kings-Lynne");
CREDIT_LINE("Pspell", "Vlad Krupin");
@@ -86,6 +85,6 @@ CREDIT_LINE("WDDX", "Andrei Zmievski");
CREDIT_LINE("XML", "Stig Bakken, Thies C. Arntzen, Sterling Hughes");
CREDIT_LINE("XMLReader", "Rob Richards");
CREDIT_LINE("xmlrpc", "Dan Libby");
-CREDIT_LINE("XMLWriter", "Rob Richards");
+CREDIT_LINE("XMLWriter", "Rob Richards, Pierre-Alain Joye");
CREDIT_LINE("XSL", "Christian Stocker, Rob Richards");
CREDIT_LINE("Zlib", "Rasmus Lerdorf, Stefan Roehrich, Zeev Suraski, Jade Nicoletti");
diff --git a/ext/standard/cyr_convert.c b/ext/standard/cyr_convert.c
index d48aa5715..501f9a61a 100644
--- a/ext/standard/cyr_convert.c
+++ b/ext/standard/cyr_convert.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cyr_convert.c,v 1.27.2.2 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: cyr_convert.c,v 1.27.2.3 2006/01/18 23:55:47 tony2001 Exp $ */
#include <stdlib.h>
@@ -47,9 +47,9 @@
typedef unsigned char _cyr_charset_table[512];
-/* {{{ const static _cyr_charset_table _cyr_win1251
+/* {{{ static const _cyr_charset_table _cyr_win1251
*/
-const static _cyr_charset_table _cyr_win1251 = {
+static const _cyr_charset_table _cyr_win1251 = {
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,
16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,
32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,
diff --git a/ext/standard/dir.c b/ext/standard/dir.c
index cc3e727f2..dbdde4507 100644
--- a/ext/standard/dir.c
+++ b/ext/standard/dir.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: dir.c,v 1.147.2.2 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: dir.c,v 1.147.2.3 2006/02/26 10:49:50 helly Exp $ */
/* {{{ includes/startup/misc */
@@ -370,7 +370,7 @@ PHP_FUNCTION(glob)
int pattern_len;
long flags = 0;
glob_t globbuf;
- unsigned int n;
+ int n;
int ret;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &pattern, &pattern_len, &flags) == FAILURE)
diff --git a/ext/standard/exec.c b/ext/standard/exec.c
index 451026ba9..6ff23cc12 100644
--- a/ext/standard/exec.c
+++ b/ext/standard/exec.c
@@ -16,7 +16,7 @@
| Ilia Alshanetsky <iliaa@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: exec.c,v 1.113.2.2 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: exec.c,v 1.113.2.3 2006/02/26 10:49:50 helly Exp $ */
#include <stdio.h>
#include "php.h"
@@ -135,7 +135,7 @@ int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_DC)
/* strip trailing whitespaces */
l = bufl;
while (l-- && isspace(((unsigned char *)buf)[l]));
- if (l != (bufl - 1)) {
+ if (l != (int)(bufl - 1)) {
bufl = l + 1;
buf[bufl] = '\0';
}
@@ -148,7 +148,7 @@ int php_exec(int type, char *cmd, zval *array, zval *return_value TSRMLS_DC)
if (type != 2) {
l = bufl;
while (l-- && isspace(((unsigned char *)buf)[l]));
- if (l != (bufl - 1)) {
+ if (l != (int)(bufl - 1)) {
bufl = l + 1;
buf[bufl] = '\0';
}
diff --git a/ext/standard/file.c b/ext/standard/file.c
index ed4d1a72b..6e09bac53 100644
--- a/ext/standard/file.c
+++ b/ext/standard/file.c
@@ -21,7 +21,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: file.c,v 1.409.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: file.c,v 1.409.2.6 2006/04/06 02:39:55 iliaa Exp $ */
/* Synced with php 3.0 revision 1.218 1999-06-16 [ssb] */
@@ -773,8 +773,9 @@ PHP_FUNCTION(tempnam)
zval **arg1, **arg2;
char *d;
char *opened_path;
- char p[64];
+ char *p;
int fd;
+ size_t p_len;
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &arg1, &arg2) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -787,7 +788,11 @@ PHP_FUNCTION(tempnam)
}
d = estrndup(Z_STRVAL_PP(arg1), Z_STRLEN_PP(arg1));
- strlcpy(p, Z_STRVAL_PP(arg2), sizeof(p));
+
+ php_basename(Z_STRVAL_PP(arg2), Z_STRLEN_PP(arg2), NULL, 0, &p, &p_len TSRMLS_CC);
+ if (p_len > 64) {
+ p[63] = '\0';
+ }
if ((fd = php_open_temporary_fd(d, p, &opened_path TSRMLS_CC)) >= 0) {
close(fd);
@@ -795,6 +800,7 @@ PHP_FUNCTION(tempnam)
} else {
RETVAL_FALSE;
}
+ efree(p);
efree(d);
}
/* }}} */
@@ -1355,10 +1361,10 @@ PHPAPI PHP_FUNCTION(fseek)
/* {{{ proto int mkdir(char *dir int mode)
*/
-PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC)
+PHPAPI int php_mkdir_ex(char *dir, long mode, int options TSRMLS_DC)
{
int ret;
-
+
if (PG(safe_mode) && (!php_checkuid(dir, NULL, CHECKUID_CHECK_FILE_AND_DIR))) {
return -1;
}
@@ -1367,11 +1373,16 @@ PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC)
return -1;
}
- if ((ret = VCWD_MKDIR(dir, (mode_t)mode)) < 0) {
+ if ((ret = VCWD_MKDIR(dir, (mode_t)mode)) < 0 && (options & REPORT_ERRORS)) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
}
- return ret;
+ return ret;
+}
+
+PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC)
+{
+ return php_mkdir_ex(dir, mode, REPORT_ERRORS TSRMLS_CC);
}
/* }}} */
@@ -1756,7 +1767,7 @@ no_stat:
}
safe_to_copy:
- srcstream = php_stream_open_wrapper(src, "rb", STREAM_DISABLE_OPEN_BASEDIR | REPORT_ERRORS, NULL);
+ srcstream = php_stream_open_wrapper(src, "rb", ENFORCE_SAFE_MODE | REPORT_ERRORS, NULL);
if (!srcstream) {
return ret;
diff --git a/ext/standard/file.h b/ext/standard/file.h
index 9cbb1166f..c7a1406fb 100644
--- a/ext/standard/file.h
+++ b/ext/standard/file.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: file.h,v 1.94.2.1 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: file.h,v 1.94.2.2 2006/01/13 04:05:59 pajoye Exp $ */
/* Synced with php 3.0 revision 1.30 1999-06-16 [ssb] */
@@ -72,6 +72,7 @@ PHP_MINIT_FUNCTION(user_streams);
PHPAPI int php_le_stream_context(void);
PHPAPI int php_set_sock_blocking(int socketd, int block TSRMLS_DC);
PHPAPI int php_copy_file(char *src, char *dest TSRMLS_DC);
+PHPAPI int php_mkdir_ex(char *dir, long mode, int options TSRMLS_DC);
PHPAPI int php_mkdir(char *dir, long mode TSRMLS_DC);
#define META_DEF_BUFSIZE 8192
diff --git a/ext/standard/filestat.c b/ext/standard/filestat.c
index f0746be46..3b81dbb07 100644
--- a/ext/standard/filestat.c
+++ b/ext/standard/filestat.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: filestat.c,v 1.136.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: filestat.c,v 1.136.2.9 2006/08/10 21:30:23 iliaa Exp $ */
#include "php.h"
#include "safe_mode.h"
@@ -323,12 +323,9 @@ PHP_FUNCTION(disk_free_space)
}
/* }}} */
-/* {{{ proto bool chgrp(string filename, mixed group)
- Change file group */
-#ifndef NETWARE
-PHP_FUNCTION(chgrp)
-{
#if !defined(WINDOWS)
+static void php_do_chgrp(INTERNAL_FUNCTION_PARAMETERS, int do_lchgrp)
+{
zval **filename, **group;
gid_t gid;
struct group *gr=NULL;
@@ -360,25 +357,51 @@ PHP_FUNCTION(chgrp)
RETURN_FALSE;
}
- ret = VCWD_CHOWN(Z_STRVAL_PP(filename), -1, gid);
+ if (do_lchgrp) {
+#if HAVE_LCHOWN
+ ret = VCWD_LCHOWN(Z_STRVAL_PP(filename), -1, gid);
+#endif
+ } else {
+ ret = VCWD_CHOWN(Z_STRVAL_PP(filename), -1, gid);
+ }
if (ret == -1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
RETURN_FALSE;
}
RETURN_TRUE;
+}
+#endif
+
+#ifndef NETWARE
+/* {{{ proto bool chgrp(string filename, mixed group)
+ Change file group */
+PHP_FUNCTION(chgrp)
+{
+#if !defined(WINDOWS)
+ php_do_chgrp(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
#else
RETURN_FALSE;
#endif
}
+/* }}} */
+
+/* {{{ proto bool lchgrp(string filename, mixed group)
+ Change symlink group */
+#if HAVE_LCHOWN
+PHP_FUNCTION(lchgrp)
+{
+# if !defined(WINDOWS)
+ php_do_chgrp(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
+# else
+ RETURN_FALSE;
+# endif
+}
#endif
/* }}} */
+#endif
-/* {{{ proto bool chown (string filename, mixed user)
- Change file owner */
-#ifndef NETWARE
-PHP_FUNCTION(chown)
+static void php_do_chown(INTERNAL_FUNCTION_PARAMETERS, int do_lchown)
{
-#if !defined(WINDOWS)
zval **filename, **user;
int ret;
uid_t uid;
@@ -410,16 +433,48 @@ PHP_FUNCTION(chown)
RETURN_FALSE;
}
- ret = VCWD_CHOWN(Z_STRVAL_PP(filename), uid, -1);
+ if (do_lchown) {
+#if HAVE_LCHOWN
+ ret = VCWD_LCHOWN(Z_STRVAL_PP(filename), uid, -1);
+#endif
+ } else {
+ ret = VCWD_CHOWN(Z_STRVAL_PP(filename), uid, -1);
+ }
if (ret == -1) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
RETURN_FALSE;
}
+}
+
+#ifndef NETWARE
+/* {{{ proto bool chown (string filename, mixed user)
+ Change file owner */
+PHP_FUNCTION(chown)
+{
+#if !defined(WINDOWS)
+ RETVAL_TRUE;
+ php_do_chown(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+#else
+ RETURN_FALSE;
#endif
- RETURN_TRUE;
+}
+/* }}} */
+
+/* {{{ proto bool chown (string filename, mixed user)
+ Change file owner */
+#if HAVE_LCHOWN
+PHP_FUNCTION(lchown)
+{
+# if !defined(WINDOWS)
+ RETVAL_TRUE;
+ php_do_chown(INTERNAL_FUNCTION_PARAM_PASSTHRU, 1);
+# else
+ RETURN_FALSE;
+# endif
}
#endif
/* }}} */
+#endif
/* {{{ proto bool chmod(string filename, int mode)
Change file mode */
@@ -449,8 +504,23 @@ PHP_FUNCTION(chmod)
Setuiding files could allow users to gain privileges
that safe mode doesn't give them.
*/
- if(PG(safe_mode))
- imode &= 0777;
+
+ if(PG(safe_mode)) {
+ php_stream_statbuf ssb;
+ if (php_stream_stat_path_ex(Z_STRVAL_PP(filename), 0, &ssb, NULL)) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "stat failed for %s", Z_STRVAL_PP(filename));
+ RETURN_FALSE;
+ }
+ if ((imode & 04000) != 0 && (ssb.sb.st_mode & 04000) == 0) {
+ imode ^= 04000;
+ }
+ if ((imode & 02000) != 0 && (ssb.sb.st_mode & 02000) == 0) {
+ imode ^= 02000;
+ }
+ if ((imode & 01000) != 0 && (ssb.sb.st_mode & 01000) == 0) {
+ imode ^= 01000;
+ }
+ }
ret = VCWD_CHMOD(Z_STRVAL_PP(filename), imode);
if (ret == -1) {
@@ -556,15 +626,22 @@ PHPAPI void php_stat(const char *filename, php_stat_len filename_length, int typ
int flags = 0, rmask=S_IROTH, wmask=S_IWOTH, xmask=S_IXOTH; /* access rights defaults to other */
char *stat_sb_names[13]={"dev", "ino", "mode", "nlink", "uid", "gid", "rdev",
"size", "atime", "mtime", "ctime", "blksize", "blocks"};
+ char *local;
+ php_stream_wrapper *wrapper;
if (!filename_length) {
RETURN_FALSE;
}
+ if ((wrapper = php_stream_locate_url_wrapper(filename, &local, 0 TSRMLS_CC)) == &php_plain_files_wrapper) {
+ if (php_check_open_basedir(local TSRMLS_CC) || (PG(safe_mode) && !php_checkuid_ex(filename, NULL, CHECKUID_ALLOW_FILE_NOT_EXISTS, CHECKUID_NO_ERRORS))) {
+ RETURN_FALSE;
+ }
+ }
+
if (IS_ACCESS_CHECK(type)) {
- char *local;
+ if (wrapper == &php_plain_files_wrapper) {
- if (php_stream_locate_url_wrapper(filename, &local, 0 TSRMLS_CC) == &php_plain_files_wrapper) {
switch (type) {
#ifdef F_OK
case FS_EXISTS:
@@ -644,9 +721,6 @@ PHPAPI void php_stat(const char *filename, php_stat_len filename_length, int typ
if (IS_ABLE_CHECK(type) && getuid() == 0) {
/* root has special perms on plain_wrapper
But we don't know about root under Netware */
- php_stream_wrapper *wrapper;
-
- wrapper = php_stream_locate_url_wrapper(filename, NULL, 0 TSRMLS_CC);
if (wrapper == &php_plain_files_wrapper) {
if (type == FS_IS_X) {
xmask = S_IXROOT;
diff --git a/ext/standard/filters.c b/ext/standard/filters.c
index 930663236..12aeabecd 100644
--- a/ext/standard/filters.c
+++ b/ext/standard/filters.c
@@ -14,10 +14,13 @@
+----------------------------------------------------------------------+
| Authors: |
| Wez Furlong (wez@thebrainroom.com) |
+ | Sara Golemon (pollita@php.net) |
+ | Moriyoshi Koizumi (moriyoshi@php.net) |
+ | Marcus Boerger (helly@php.net) |
+----------------------------------------------------------------------+
*/
-/* $Id: filters.c,v 1.44.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: filters.c,v 1.44.2.6 2006/04/17 19:26:04 pollita Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -102,7 +105,7 @@ static php_stream_filter_status_t strfilter_toupper_filter(
if (bytes_consumed) {
*bytes_consumed = consumed;
}
-
+
return PSFS_PASS_ON;
}
@@ -130,7 +133,7 @@ static php_stream_filter_status_t strfilter_tolower_filter(
if (bytes_consumed) {
*bytes_consumed = consumed;
}
-
+
return PSFS_PASS_ON;
}
@@ -638,7 +641,7 @@ static php_conv_err_t php_conv_base64_decode_convert(php_conv_base64_decode *ins
size_t icnt, ocnt;
unsigned int ustat;
- const static unsigned int nbitsof_pack = 8;
+ static const unsigned int nbitsof_pack = 8;
if (in_pp == NULL || in_left_p == NULL) {
if (inst->eos || inst->urem_nbits == 0) {
@@ -1028,6 +1031,18 @@ static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *ins
scan_stat = 4;
ps++, icnt--;
break;
+ } else if (!inst->lbchars && lb_cnt == 0 && *ps == '\r') {
+ /* auto-detect line endings, looks like network line ending \r\n (could be mac \r) */
+ lb_cnt++;
+ scan_stat = 5;
+ ps++, icnt--;
+ break;
+ } else if (!inst->lbchars && lb_cnt == 0 && *ps == '\n') {
+ /* auto-detect line endings, looks like unix-lineendings, not to spec, but it is seem in the wild, a lot */
+ lb_cnt = lb_ptr = 0;
+ scan_stat = 0;
+ ps++, icnt--;
+ break;
} else if (lb_cnt < inst->lbchars_len &&
*ps == (unsigned char)inst->lbchars[lb_cnt]) {
lb_cnt++;
@@ -1085,7 +1100,16 @@ static php_conv_err_t php_conv_qprint_decode_convert(php_conv_qprint_decode *ins
} break;
case 5: {
- if (lb_cnt >= inst->lbchars_len) {
+ if (!inst->lbchars && lb_cnt == 1 && *ps == '\n') {
+ /* auto-detect soft line breaks, found network line break */
+ lb_cnt = lb_ptr = 0;
+ scan_stat = 0;
+ ps++, icnt--; /* consume \n */
+ } else if (!inst->lbchars && lb_cnt > 0) {
+ /* auto-detect soft line breaks, found mac line break */
+ lb_cnt = lb_ptr = 0;
+ scan_stat = 0;
+ } else if (lb_cnt >= inst->lbchars_len) {
/* soft line break */
lb_cnt = lb_ptr = 0;
scan_stat = 0;
@@ -1405,12 +1429,10 @@ static php_conv *php_conv_open(int conv_mode, const HashTable *options, int pers
size_t lbchars_len;
if (options != NULL) {
+ /* If line-break-chars are not specified, filter will attempt to detect line endings (\r, \n, or \r\n) */
GET_STR_PROP(options, lbchars, lbchars_len, "line-break-chars", 0);
- if (lbchars == NULL) {
- lbchars = pestrdup("\r\n", 0);
- lbchars_len = 2;
- }
}
+
retval = pemalloc(sizeof(php_conv_qprint_decode), persistent);
if (lbchars != NULL) {
if (php_conv_qprint_decode_ctor((php_conv_qprint_decode *)retval, lbchars, lbchars_len, 1, persistent)) {
@@ -1795,6 +1817,88 @@ static php_stream_filter_factory strfilter_convert_factory = {
};
/* }}} */
+/* {{{ consumed filter implementation */
+typedef struct _php_consumed_filter_data {
+ int persistent;
+ size_t consumed;
+ off_t offset;
+} php_consumed_filter_data;
+
+static php_stream_filter_status_t consumed_filter_filter(
+ php_stream *stream,
+ php_stream_filter *thisfilter,
+ php_stream_bucket_brigade *buckets_in,
+ php_stream_bucket_brigade *buckets_out,
+ size_t *bytes_consumed,
+ int flags
+ TSRMLS_DC)
+{
+ php_consumed_filter_data *data = (php_consumed_filter_data *)(thisfilter->abstract);
+ php_stream_bucket *bucket;
+ size_t consumed = 0;
+
+ if (data->offset == ~0) {
+ data->offset = php_stream_tell(stream);
+ }
+ while ((bucket = buckets_in->head) != NULL) {
+ php_stream_bucket_unlink(bucket TSRMLS_CC);
+ consumed += bucket->buflen;
+ php_stream_bucket_append(buckets_out, bucket TSRMLS_CC);
+ }
+ if (bytes_consumed) {
+ *bytes_consumed = consumed;
+ }
+ if (flags & PSFS_FLAG_FLUSH_CLOSE) {
+ php_stream_seek(stream, data->offset + data->consumed, SEEK_SET);
+ }
+ data->consumed += consumed;
+
+ return PSFS_PASS_ON;
+}
+
+static void consumed_filter_dtor(php_stream_filter *thisfilter TSRMLS_DC)
+{
+ if (thisfilter && thisfilter->abstract) {
+ php_consumed_filter_data *data = (php_consumed_filter_data*)thisfilter->abstract;
+ pefree(data, data->persistent);
+ }
+}
+
+static php_stream_filter_ops consumed_filter_ops = {
+ consumed_filter_filter,
+ consumed_filter_dtor,
+ "consumed"
+};
+
+static php_stream_filter *consumed_filter_create(const char *filtername, zval *filterparams, int persistent TSRMLS_DC)
+{
+ php_stream_filter_ops *fops = NULL;
+ php_consumed_filter_data *data;
+
+ if (strcasecmp(filtername, "consumed")) {
+ return NULL;
+ }
+
+ /* Create this filter */
+ data = pecalloc(1, sizeof(php_consumed_filter_data), persistent);
+ if (!data) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed allocating %d bytes.", sizeof(php_consumed_filter_data));
+ return NULL;
+ }
+ data->persistent = persistent;
+ data->consumed = 0;
+ data->offset = ~0;
+ fops = &consumed_filter_ops;
+
+ return php_stream_filter_alloc(fops, data, persistent);
+}
+
+php_stream_filter_factory consumed_filter_factory = {
+ consumed_filter_create
+};
+
+/* }}} */
+
static const struct {
php_stream_filter_ops *ops;
php_stream_filter_factory *factory;
@@ -1804,6 +1908,7 @@ static const struct {
{ &strfilter_tolower_ops, &strfilter_tolower_factory },
{ &strfilter_strip_tags_ops, &strfilter_strip_tags_factory },
{ &strfilter_convert_ops, &strfilter_convert_factory },
+ { &consumed_filter_ops, &consumed_filter_factory },
/* additional filters to go here */
{ NULL, NULL }
};
diff --git a/ext/standard/ftp_fopen_wrapper.c b/ext/standard/ftp_fopen_wrapper.c
index 926cdaaaa..b6237d008 100644
--- a/ext/standard/ftp_fopen_wrapper.c
+++ b/ext/standard/ftp_fopen_wrapper.c
@@ -18,7 +18,7 @@
| Sara Golemon <pollita@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: ftp_fopen_wrapper.c,v 1.85.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: ftp_fopen_wrapper.c,v 1.85.2.4 2006/03/20 14:10:35 tony2001 Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -611,7 +611,7 @@ static size_t php_ftp_dirstream_read(php_stream *stream, char *buf, size_t count
tmp_len = MIN(sizeof(ent->d_name), basename_len - 1);
memcpy(ent->d_name, basename, tmp_len);
- ent->d_name[tmp_len] = '\0';
+ ent->d_name[tmp_len - 1] = '\0';
efree(basename);
/* Trim off trailing whitespace characters */
diff --git a/ext/standard/html.c b/ext/standard/html.c
index 31962c7d3..08e791192 100644
--- a/ext/standard/html.c
+++ b/ext/standard/html.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: html.c,v 1.111.2.1 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: html.c,v 1.111.2.2 2006/02/25 21:32:11 rasmus Exp $ */
/*
* HTML entity resources:
@@ -884,7 +884,7 @@ PHPAPI char *php_unescape_html_entities(unsigned char *old, int oldlen, int *new
unsigned char replacement[15];
int replacement_len;
- ret = estrdup(old);
+ ret = estrndup(old, oldlen);
retlen = oldlen;
if (!retlen) {
goto empty_source;
diff --git a/ext/standard/http.c b/ext/standard/http.c
index c4bef796e..af6ec8292 100644
--- a/ext/standard/http.c
+++ b/ext/standard/http.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: http.c,v 1.14.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: http.c,v 1.14.2.4 2006/03/08 22:00:21 mike Exp $ */
#include "php_http.h"
#include "php_ini.h"
@@ -82,7 +82,7 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
if (Z_TYPE_PP(zdata) == IS_ARRAY || Z_TYPE_PP(zdata) == IS_OBJECT) {
if (key_type == HASH_KEY_IS_STRING) {
ekey = php_url_encode(key, key_len, &ekey_len);
- newprefix_len = key_suffix_len + ekey_len + key_prefix_len + 1;
+ newprefix_len = key_suffix_len + ekey_len + key_prefix_len + 3 /* %5B */;
newprefix = emalloc(newprefix_len + 1);
p = newprefix;
@@ -99,13 +99,14 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
memcpy(p, key_suffix, key_suffix_len);
p += key_suffix_len;
}
-
- *(p++) = '[';
+ *(p++) = '%';
+ *(p++) = '5';
+ *(p++) = 'B';
*p = '\0';
} else {
/* Is an integer key */
ekey_len = spprintf(&ekey, 12, "%ld", idx);
- newprefix_len = key_prefix_len + num_prefix_len + ekey_len + key_suffix_len + 1;
+ newprefix_len = key_prefix_len + num_prefix_len + ekey_len + key_suffix_len + 3 /* %5B */;
newprefix = emalloc(newprefix_len + 1);
p = newprefix;
@@ -125,11 +126,13 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr,
memcpy(p, key_suffix, key_suffix_len);
p += key_suffix_len;
}
- *(p++) = '[';
+ *(p++) = '%';
+ *(p++) = '5';
+ *(p++) = 'B';
*p = '\0';
}
ht->nApplyCount++;
- php_url_encode_hash_ex(HASH_OF(*zdata), formstr, NULL, 0, newprefix, newprefix_len, "]", 1, (Z_TYPE_PP(zdata) == IS_OBJECT ? *zdata : NULL), arg_sep TSRMLS_CC);
+ php_url_encode_hash_ex(HASH_OF(*zdata), formstr, NULL, 0, newprefix, newprefix_len, "%5D", 3, (Z_TYPE_PP(zdata) == IS_OBJECT ? *zdata : NULL), arg_sep TSRMLS_CC);
ht->nApplyCount--;
efree(newprefix);
} else if (Z_TYPE_PP(zdata) == IS_NULL || Z_TYPE_PP(zdata) == IS_RESOURCE) {
diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c
index 1254afcf3..ba39b714a 100644
--- a/ext/standard/http_fopen_wrapper.c
+++ b/ext/standard/http_fopen_wrapper.c
@@ -19,7 +19,7 @@
| Sara Golemon <pollita@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: http_fopen_wrapper.c,v 1.99.2.8 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: http_fopen_wrapper.c,v 1.99.2.12 2006/04/16 17:40:33 iliaa Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -487,8 +487,13 @@ php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, char *path,
} else {
response_code = 0;
}
+ /* when we request only the header, don't fail even on error codes */
+ if (options & STREAM_ONLY_GET_HEADERS) {
+ reqok = 1;
+ }
switch(response_code) {
case 200:
+ case 206: /* partial content */
case 302:
case 303:
case 301:
@@ -634,10 +639,11 @@ php_stream *php_stream_url_wrap_http_ex(php_stream_wrapper *wrapper, char *path,
} \
} \
/* check for control characters in login, password & path */
- CHECK_FOR_CNTRL_CHARS(resource->user)
- CHECK_FOR_CNTRL_CHARS(resource->pass)
- CHECK_FOR_CNTRL_CHARS(resource->path)
-
+ if (strncasecmp(new_path, "http://", sizeof("http://") - 1) || strncasecmp(new_path, "https://", sizeof("https://") - 1)) {
+ CHECK_FOR_CNTRL_CHARS(resource->user)
+ CHECK_FOR_CNTRL_CHARS(resource->pass)
+ CHECK_FOR_CNTRL_CHARS(resource->path)
+ }
stream = php_stream_url_wrap_http_ex(wrapper, new_path, mode, options, opened_path, context, --redirect_max, 0 STREAMS_CC TSRMLS_CC);
} else {
php_stream_wrapper_log_error(wrapper, options TSRMLS_CC, "HTTP request failed! %s", tmp_line);
diff --git a/ext/standard/incomplete_class.c b/ext/standard/incomplete_class.c
index c55b05c67..50511c01f 100644
--- a/ext/standard/incomplete_class.c
+++ b/ext/standard/incomplete_class.c
@@ -17,7 +17,7 @@
*/
-/* $Id: incomplete_class.c,v 1.28.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: incomplete_class.c,v 1.28.2.2 2006/01/28 06:14:34 fmk Exp $ */
#include "php.h"
#include "basic_functions.h"
@@ -122,7 +122,7 @@ zend_class_entry *php_create_incomplete_class(TSRMLS_D)
/* {{{ php_lookup_class_name
*/
-char *php_lookup_class_name(zval *object, zend_uint *nlen)
+PHPAPI char *php_lookup_class_name(zval *object, zend_uint *nlen)
{
zval **val;
char *retval = NULL;
@@ -144,7 +144,7 @@ char *php_lookup_class_name(zval *object, zend_uint *nlen)
/* {{{ php_store_class_name
*/
-void php_store_class_name(zval *object, const char *name, zend_uint len)
+PHPAPI void php_store_class_name(zval *object, const char *name, zend_uint len)
{
zval *val;
TSRMLS_FETCH();
diff --git a/ext/standard/info.c b/ext/standard/info.c
index b3c5fc415..fa2afe07d 100644
--- a/ext/standard/info.c
+++ b/ext/standard/info.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: info.c,v 1.249.2.7 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: info.c,v 1.249.2.10 2006/03/31 11:11:12 tony2001 Exp $ */
#include "php.h"
#include "php_ini.h"
@@ -58,6 +58,23 @@ ZEND_EXTERN_MODULE_GLOBALS(iconv)
PHPAPI extern char *php_ini_opened_path;
PHPAPI extern char *php_ini_scanned_files;
+
+static int php_info_write_wrapper(const char *str, uint str_length)
+{
+ int new_len, written;
+ char *elem_esc;
+
+ TSRMLS_FETCH();
+
+ elem_esc = php_escape_html_entities((char *)str, str_length, &new_len, 0, ENT_QUOTES, NULL TSRMLS_CC);
+
+ written = php_body_write(elem_esc, new_len TSRMLS_CC);
+
+ efree(elem_esc);
+
+ return written;
+}
+
/* {{{ _display_module_info
*/
@@ -135,30 +152,13 @@ static void php_print_gpcse_array(char *name, uint name_length TSRMLS_DC)
PUTS(" => ");
}
if (Z_TYPE_PP(tmp) == IS_ARRAY) {
- zval *tmp3;
-
- MAKE_STD_ZVAL(tmp3);
-
if (!sapi_module.phpinfo_as_text) {
PUTS("<pre>");
- }
- php_start_ob_buffer(NULL, 4096, 1 TSRMLS_CC);
-
- zend_print_zval_r(*tmp, 0 TSRMLS_CC);
-
- php_ob_get_buffer(tmp3 TSRMLS_CC);
- php_end_ob_buffer(0, 0 TSRMLS_CC);
-
- if (!sapi_module.phpinfo_as_text) {
- elem_esc = php_info_html_esc(Z_STRVAL_P(tmp3) TSRMLS_CC);
- PUTS(elem_esc);
- efree(elem_esc);
+ zend_print_zval_ex((zend_write_func_t) php_info_write_wrapper, *tmp, 0);
PUTS("</pre>");
} else {
- PUTS(Z_STRVAL_P(tmp3));
+ zend_print_zval_r(*tmp, 0 TSRMLS_CC);
}
- zval_ptr_dtor(&tmp3);
-
} else if (Z_TYPE_PP(tmp) != IS_STRING) {
tmp2 = **tmp;
zval_copy_ctor(&tmp2);
diff --git a/ext/standard/math.c b/ext/standard/math.c
index 0aad86c06..2f5ee7ba0 100644
--- a/ext/standard/math.c
+++ b/ext/standard/math.c
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: math.c,v 1.131.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: math.c,v 1.131.2.2 2006/02/06 11:28:41 tony2001 Exp $ */
#include "php.h"
#include "php_math.h"
@@ -448,7 +448,7 @@ PHP_FUNCTION(pow)
/* calculate pow(long,long) in O(log exp) operations, bail if overflow */
while (i >= 1) {
int overflow;
- double dval;
+ double dval = 0.0;
if (i % 2) {
--i;
diff --git a/ext/standard/pack.c b/ext/standard/pack.c
index 1badfaed5..e9757f647 100644
--- a/ext/standard/pack.c
+++ b/ext/standard/pack.c
@@ -15,7 +15,7 @@
| Author: Chris Schneider <cschneid@relog.ch> |
+----------------------------------------------------------------------+
*/
-/* $Id: pack.c,v 1.57.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: pack.c,v 1.57.2.5 2006/02/26 10:49:50 helly Exp $ */
#include "php.h"
@@ -55,7 +55,7 @@
#endif
#define INC_OUTPUTPOS(a,b) \
- if ((a) < 0 || ((INT_MAX - outputpos)/(b)) < (a)) { \
+ if ((a) < 0 || ((INT_MAX - outputpos)/((int)b)) < (a)) { \
php_error_docref(NULL TSRMLS_CC, E_WARNING, "Type %c: integer overflow in format string", code); \
RETURN_FALSE; \
} \
@@ -692,7 +692,9 @@ PHP_FUNCTION(unpack)
len = size * 2;
}
- len -= argb % 2;
+ if (argb > 0) {
+ len -= argb % 2;
+ }
buf = emalloc(len + 1);
diff --git a/ext/standard/php_array.h b/ext/standard/php_array.h
index 1ed616a38..b4e6923b4 100644
--- a/ext/standard/php_array.h
+++ b/ext/standard/php_array.h
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_array.h,v 1.50.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_array.h,v 1.50.2.3 2006/06/03 18:59:55 andrei Exp $ */
#ifndef PHP_ARRAY_H
#define PHP_ARRAY_H
@@ -103,4 +103,15 @@ HashTable* php_splice(HashTable *, int, int, zval ***, int, HashTable **);
PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS_DC);
int multisort_compare(const void *a, const void *b TSRMLS_DC);
+ZEND_BEGIN_MODULE_GLOBALS(array)
+ int *multisort_flags[2];
+ int (*compare_func)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
+ZEND_END_MODULE_GLOBALS(array)
+
+#ifdef ZTS
+#define ARRAYG(v) TSRMG(array_globals_id, zend_array_globals *, v)
+#else
+#define ARRAYG(v) (array_globals.v)
+#endif
+
#endif /* PHP_ARRAY_H */
diff --git a/ext/standard/php_ext_syslog.h b/ext/standard/php_ext_syslog.h
index 8652fc88c..d26b63269 100644
--- a/ext/standard/php_ext_syslog.h
+++ b/ext/standard/php_ext_syslog.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_ext_syslog.h,v 1.12.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_ext_syslog.h,v 1.12.2.2 2006/03/20 23:03:11 tony2001 Exp $ */
#ifndef PHP_EXT_SYSLOG_H
#define PHP_EXT_SYSLOG_H
@@ -28,6 +28,7 @@
PHP_MINIT_FUNCTION(syslog);
PHP_RINIT_FUNCTION(syslog);
PHP_RSHUTDOWN_FUNCTION(syslog);
+PHP_MSHUTDOWN_FUNCTION(syslog);
PHP_FUNCTION(openlog);
PHP_FUNCTION(syslog);
diff --git a/ext/standard/php_filestat.h b/ext/standard/php_filestat.h
index c29a81747..f029f1f5a 100644
--- a/ext/standard/php_filestat.h
+++ b/ext/standard/php_filestat.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_filestat.h,v 1.24.2.2 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_filestat.h,v 1.24.2.4 2006/03/05 19:01:37 derick Exp $ */
#ifndef PHP_FILESTAT_H
#define PHP_FILESTAT_H
@@ -47,6 +47,12 @@ PHP_FUNCTION(disk_total_space);
PHP_FUNCTION(disk_free_space);
PHP_FUNCTION(chown);
PHP_FUNCTION(chgrp);
+#if HAVE_LCHOWN
+PHP_FUNCTION(lchown);
+#endif
+#if HAVE_LCHOWN
+PHP_FUNCTION(lchgrp);
+#endif
PHP_FUNCTION(chmod);
#if HAVE_UTIME
PHP_FUNCTION(touch);
diff --git a/ext/standard/php_fopen_wrapper.c b/ext/standard/php_fopen_wrapper.c
index f440c75fe..db2157396 100644
--- a/ext/standard/php_fopen_wrapper.c
+++ b/ext/standard/php_fopen_wrapper.c
@@ -17,7 +17,7 @@
| Hartmut Holzgraefe <hholzgra@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_fopen_wrapper.c,v 1.45.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_fopen_wrapper.c,v 1.45.2.4 2006/05/01 16:02:07 helly Exp $ */
#include <stdio.h>
#include <stdlib.h>
@@ -158,9 +158,29 @@ php_stream * php_stream_url_wrap_php(php_stream_wrapper *wrapper, char *path, ch
int mode_rw = 0;
php_stream * stream = NULL;
char *p, *token, *pathdup;
+ long max_memory;
- if (!strncasecmp(path, "php://", 6))
+ if (!strncasecmp(path, "php://", 6)) {
path += 6;
+ }
+
+ if (!strncasecmp(path, "temp", 4)) {
+ path += 4;
+ max_memory = PHP_STREAM_MAX_MEM;
+ if (!strncasecmp(path, "/maxmemory:", 11)) {
+ path += 11;
+ max_memory = strtol(path, NULL, 10);
+ if (max_memory < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_ERROR, "Max memory must be >= 0");
+ return NULL;
+ }
+ }
+ return php_stream_temp_create(TEMP_STREAM_DEFAULT, max_memory);
+ }
+
+ if (!strcasecmp(path, "memory")) {
+ return php_stream_memory_create(TEMP_STREAM_DEFAULT);
+ }
if (!strcasecmp(path, "output")) {
return php_stream_alloc(&php_stream_output_ops, NULL, 0, "wb");
diff --git a/ext/standard/php_incomplete_class.h b/ext/standard/php_incomplete_class.h
index be6aba1a1..b0f9f1a3a 100644
--- a/ext/standard/php_incomplete_class.h
+++ b/ext/standard/php_incomplete_class.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_incomplete_class.h,v 1.17.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_incomplete_class.h,v 1.17.2.2 2006/01/28 06:14:34 fmk Exp $ */
#ifndef PHP_INCOMPLETE_CLASS_H
#define PHP_INCOMPLETE_CLASS_H
@@ -55,8 +55,8 @@ extern "C" {
zend_class_entry *php_create_incomplete_class(TSRMLS_D);
-char *php_lookup_class_name(zval *object, zend_uint *nlen);
-void php_store_class_name(zval *object, const char *name, zend_uint len);
+PHPAPI char *php_lookup_class_name(zval *object, zend_uint *nlen);
+PHPAPI void php_store_class_name(zval *object, const char *name, zend_uint len);
#ifdef __cplusplus
};
diff --git a/ext/standard/php_math.h b/ext/standard/php_math.h
index 805114f9c..19fa2518b 100644
--- a/ext/standard/php_math.h
+++ b/ext/standard/php_math.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_math.h,v 1.28.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_math.h,v 1.28.2.2 2006/01/13 13:04:27 tony2001 Exp $ */
#ifndef PHP_MATH_H
#define PHP_MATH_H
@@ -68,8 +68,9 @@ PHP_FUNCTION(rad2deg);
*/
PHP_FUNCTION(hypot);
PHP_FUNCTION(expm1);
+#ifdef HAVE_LOG1P
PHP_FUNCTION(log1p);
-
+#endif
PHP_FUNCTION(sinh);
PHP_FUNCTION(cosh);
diff --git a/ext/standard/php_smart_str.h b/ext/standard/php_smart_str.h
index 6d28cb4d7..e38ee8d23 100644
--- a/ext/standard/php_smart_str.h
+++ b/ext/standard/php_smart_str.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_smart_str.h,v 1.30.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: php_smart_str.h,v 1.30.2.3 2006/05/03 13:32:10 iliaa Exp $ */
#ifndef PHP_SMART_STR_H
#define PHP_SMART_STR_H
diff --git a/ext/standard/reg.c b/ext/standard/reg.c
index a50733672..f72476f69 100644
--- a/ext/standard/reg.c
+++ b/ext/standard/reg.c
@@ -17,7 +17,7 @@
| Jaakko Hyvätti <jaakko@hyvatti.iki.fi> |
+----------------------------------------------------------------------+
*/
-/* $Id: reg.c,v 1.82.2.2 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: reg.c,v 1.82.2.3 2006/02/26 10:49:50 helly Exp $ */
#include <stdio.h>
#include <ctype.h>
@@ -355,7 +355,7 @@ PHPAPI char *php_reg_replace(const char *pattern, const char *replace, const cha
new_l = strlen(buf) + subs[0].rm_so; /* part before the match */
walk = replace;
while (*walk) {
- if ('\\' == *walk && isdigit((unsigned char)walk[1]) && ((unsigned char)walk[1]) - '0' <= re.re_nsub) {
+ if ('\\' == *walk && isdigit((unsigned char)walk[1]) && ((unsigned char)walk[1]) - '0' <= (int)re.re_nsub) {
if (subs[walk[1] - '0'].rm_so > -1 && subs[walk[1] - '0'].rm_eo > -1) {
new_l += subs[walk[1] - '0'].rm_eo - subs[walk[1] - '0'].rm_so;
}
diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c
index ed0ef42eb..c40a29a63 100644
--- a/ext/standard/scanf.c
+++ b/ext/standard/scanf.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: scanf.c,v 1.31.2.2 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: scanf.c,v 1.31.2.3 2006/08/04 20:34:31 tony2001 Exp $ */
/*
scanf.c --
@@ -732,7 +732,7 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
if (*end == '$') {
format = end+1;
ch = format++;
- objIndex = varStart + value;
+ objIndex = varStart + value - 1;
}
}
@@ -762,7 +762,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
switch (*ch) {
case 'n':
if (!(flags & SCAN_SUPPRESS)) {
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
zend_uint refcount;
current = args[objIndex++];
@@ -888,7 +890,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
}
}
if (!(flags & SCAN_SUPPRESS)) {
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
zend_uint refcount;
current = args[objIndex++];
@@ -932,7 +936,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
goto done;
}
if (!(flags & SCAN_SUPPRESS)) {
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
current = args[objIndex++];
zval_dtor( *current );
ZVAL_STRINGL( *current, string, end-string, 1);
@@ -1089,7 +1095,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
value = (int) (*fn)(buf, NULL, base);
if ((flags & SCAN_UNSIGNED) && (value < 0)) {
sprintf(buf, "%u", value); /* INTL: ISO digit */
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
/* change passed value type to string */
current = args[objIndex++];
convert_to_string( *current );
@@ -1098,7 +1106,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
add_index_string(*return_value, objIndex++, buf, 1);
}
} else {
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
current = args[objIndex++];
convert_to_long( *current );
Z_LVAL(**current) = value;
@@ -1206,7 +1216,9 @@ PHPAPI int php_sscanf_internal( char *string, char *format,
double dvalue;
*end = '\0';
dvalue = zend_strtod(buf, NULL);
- if (numVars) {
+ if (numVars && objIndex >= argCount) {
+ break;
+ } else if (numVars) {
current = args[objIndex++];
convert_to_double( *current );
Z_DVAL_PP( current ) = dvalue;
diff --git a/ext/standard/streamsfuncs.c b/ext/standard/streamsfuncs.c
index fe57f511d..05d1efdcd 100644
--- a/ext/standard/streamsfuncs.c
+++ b/ext/standard/streamsfuncs.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streamsfuncs.c,v 1.58.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: streamsfuncs.c,v 1.58.2.6 2006/04/19 08:43:29 tony2001 Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -207,6 +207,8 @@ PHP_FUNCTION(stream_socket_server)
/* no need to dup; we need to efree buf anyway */
zval_dtor(zerrstr);
ZVAL_STRING(zerrstr, errstr, 0);
+ } else if (errstr) {
+ efree(errstr);
}
RETURN_FALSE;
}
@@ -750,7 +752,15 @@ PHP_FUNCTION(stream_select)
/* If seconds is not set to null, build the timeval, else we wait indefinitely */
if (sec != NULL) {
- convert_to_long_ex(&sec);
+ convert_to_long(sec);
+
+ if (Z_LVAL_P(sec) < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The seconds parameter must be greater than 0.");
+ RETURN_FALSE;
+ } else if (usec < 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The microseconds parameter must be greater than 0.");
+ RETURN_FALSE;
+ }
/* Solaris + BSD do not like microsecond values which are >= 1 sec */
if (usec > 999999) {
@@ -1173,7 +1183,7 @@ PHP_FUNCTION(stream_get_line)
}
if (max_length < 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "The maximum allowed length must be greater then or equal to zero.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The maximum allowed length must be greater than or equal to zero.");
RETURN_FALSE;
}
if (!max_length) {
diff --git a/ext/standard/string.c b/ext/standard/string.c
index a830a6d87..67d6b1cf4 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: string.c,v 1.445.2.6 2006/01/05 20:49:37 tony2001 Exp $ */
+/* $Id: string.c,v 1.445.2.16 2006/08/10 17:46:43 iliaa Exp $ */
/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
@@ -237,7 +237,7 @@ static void php_spn_common_handler(INTERNAL_FUNCTION_PARAMETERS, int behavior)
}
}
- if (((unsigned) start + (unsigned) len) > len1) {
+ if ((start + len) > len1) {
len = len1 - start;
}
@@ -632,7 +632,8 @@ PHP_FUNCTION(wordwrap)
{
const char *text, *breakchar = "\n";
char *newtext;
- int textlen, breakcharlen = 1, newtextlen, alloced, chk;
+ int textlen, breakcharlen = 1, newtextlen, chk;
+ size_t alloced;
long current = 0, laststart = 0, lastspace = 0;
long linelength = 75;
zend_bool docut = 0;
@@ -676,12 +677,13 @@ PHP_FUNCTION(wordwrap)
/* Multiple character line break or forced cut */
if (linelength > 0) {
chk = (int)(textlen/linelength + 1);
+ newtext = safe_emalloc(chk, breakcharlen, textlen + 1);
alloced = textlen + chk * breakcharlen + 1;
} else {
chk = textlen;
alloced = textlen * (breakcharlen + 1) + 1;
+ newtext = safe_emalloc(textlen, (breakcharlen + 1), 1);
}
- newtext = emalloc(alloced);
/* now keep track of the actual new text length */
newtextlen = 0;
@@ -1166,7 +1168,7 @@ quit_loop:
if (state == 1) {
cend = c;
}
- if (suffix != NULL && sufflen < (cend - comp) &&
+ if (suffix != NULL && sufflen < (uint)(cend - comp) &&
memcmp(cend - sufflen, suffix, sufflen) == 0) {
cend -= sufflen;
}
@@ -1611,10 +1613,18 @@ PHP_FUNCTION(stripos)
RETURN_FALSE;
}
+ if (haystack_len == 0) {
+ RETURN_FALSE;
+ }
+
haystack_dup = estrndup(haystack, haystack_len);
php_strtolower(haystack_dup, haystack_len);
if (Z_TYPE_P(needle) == IS_STRING) {
+ if (Z_STRLEN_P(needle) == 0 || Z_STRLEN_P(needle) > haystack_len) {
+ efree(haystack_dup);
+ RETURN_FALSE;
+ }
needle_dup = estrndup(Z_STRVAL_P(needle), Z_STRLEN_P(needle));
php_strtolower(needle_dup, Z_STRLEN_P(needle));
found = php_memnstr(haystack_dup + offset, needle_dup, Z_STRLEN_P(needle), haystack_dup + haystack_len);
@@ -1983,7 +1993,7 @@ PHP_FUNCTION(substr)
RETURN_FALSE;
}
- if (((unsigned) f + (unsigned) l) > Z_STRLEN_PP(str)) {
+ if ((f + l) > Z_STRLEN_PP(str)) {
l = Z_STRLEN_PP(str) - f;
}
@@ -2080,7 +2090,7 @@ PHP_FUNCTION(substr_replace)
}
}
- if (((unsigned) f + (unsigned) l) > Z_STRLEN_PP(str)) {
+ if ((f + l) > Z_STRLEN_PP(str)) {
l = Z_STRLEN_PP(str) - f;
}
if (Z_TYPE_PP(repl) == IS_ARRAY) {
@@ -2176,7 +2186,7 @@ PHP_FUNCTION(substr_replace)
}
}
- if (((unsigned) f + (unsigned) l) > Z_STRLEN_PP(tmp_str)) {
+ if ((f + l) > Z_STRLEN_PP(tmp_str)) {
l = Z_STRLEN_PP(tmp_str) - f;
}
@@ -4193,7 +4203,7 @@ PHP_FUNCTION(str_repeat)
zval **input_str; /* Input string */
zval **mult; /* Multiplier */
char *result; /* Resulting string */
- int result_len; /* Length of the resulting string */
+ size_t result_len; /* Length of the resulting string */
if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, &input_str, &mult) == FAILURE) {
WRONG_PARAM_COUNT;
@@ -4218,11 +4228,7 @@ PHP_FUNCTION(str_repeat)
/* Initialize the result string */
result_len = Z_STRLEN_PP(input_str) * Z_LVAL_PP(mult);
- if (result_len < 1 || result_len > 2147483647) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "You may not create strings longer than 2147483647 bytes");
- RETURN_FALSE;
- }
- result = (char *)emalloc(result_len + 1);
+ result = (char *)safe_emalloc(Z_STRLEN_PP(input_str), Z_LVAL_PP(mult), 1);
/* Heavy optimization for situations where input string is 1 byte long */
if (Z_STRLEN_PP(input_str) == 1) {
@@ -4473,7 +4479,7 @@ PHP_FUNCTION(substr_count)
if (ac > 2) {
convert_to_long_ex(offset);
if (Z_LVAL_PP(offset) < 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset should be greater then or equal to 0.");
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "Offset should be greater than or equal to 0.");
RETURN_FALSE;
}
p += Z_LVAL_PP(offset);
@@ -4653,6 +4659,8 @@ PHP_FUNCTION(str_rot13)
if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, &arg)) {
WRONG_PARAM_COUNT;
}
+
+ convert_to_string_ex(arg);
RETVAL_ZVAL(*arg, 1, 0);
php_strtr(Z_STRVAL_P(return_value), Z_STRLEN_P(return_value), rot13_from, rot13_to, 52);
@@ -4881,13 +4889,19 @@ PHP_FUNCTION(substr_compare)
RETURN_FALSE;
}
- if (len && offset >= s1_len) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "The start position cannot exceed initial string length.");
+ if (ZEND_NUM_ARGS() >= 4 && len <= 0) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The length must be greater than zero");
RETURN_FALSE;
}
if (offset < 0) {
offset = s1_len + offset;
+ offset = (offset < 0) ? 0 : offset;
+ }
+
+ if ((offset + len) > s1_len) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "The start position cannot exceed initial string length");
+ RETURN_FALSE;
}
cmp_len = (uint) (len ? len : MAX(s2_len, (s1_len - offset)));
diff --git a/ext/standard/syslog.c b/ext/standard/syslog.c
index da310ee81..2407fb56a 100644
--- a/ext/standard/syslog.c
+++ b/ext/standard/syslog.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: syslog.c,v 1.49.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: syslog.c,v 1.49.2.3 2006/03/21 00:59:08 iliaa Exp $ */
#include "php.h"
@@ -97,6 +97,7 @@ PHP_MINIT_FUNCTION(syslog)
/* AIX doesn't have LOG_PERROR */
REGISTER_LONG_CONSTANT("LOG_PERROR", LOG_PERROR, CONST_CS | CONST_PERSISTENT); /*log to stderr*/
#endif
+ BG(syslog_device)=NULL;
return SUCCESS;
}
@@ -109,22 +110,26 @@ PHP_RINIT_FUNCTION(syslog)
} else {
BG(syslog_started)=0;
}
- BG(syslog_device)=NULL;
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(syslog)
{
- if (BG(syslog_device)) {
- efree(BG(syslog_device));
- }
#ifdef PHP_WIN32
closelog();
#endif
return SUCCESS;
}
+PHP_MSHUTDOWN_FUNCTION(syslog)
+{
+ if (BG(syslog_device)) {
+ free(BG(syslog_device));
+ }
+ return SUCCESS;
+}
+
/* {{{ start_syslog
*/
static void start_syslog(TSRMLS_D)
@@ -224,9 +229,9 @@ PHP_FUNCTION(openlog)
return;
}
if (BG(syslog_device)) {
- efree(BG(syslog_device));
+ free(BG(syslog_device));
}
- BG(syslog_device) = estrndup(ident, ident_len);
+ BG(syslog_device) = zend_strndup(ident, ident_len);
openlog(BG(syslog_device), option, facility);
RETURN_TRUE;
}
@@ -242,7 +247,7 @@ PHP_FUNCTION(closelog)
closelog();
if (BG(syslog_device)) {
- efree(BG(syslog_device));
+ free(BG(syslog_device));
BG(syslog_device)=NULL;
}
RETURN_TRUE;
@@ -262,12 +267,7 @@ PHP_FUNCTION(syslog)
return;
}
- /*
- * CAVEAT: if the message contains patterns such as "%s",
- * this will cause problems.
- */
-
- php_syslog(priority, "%.500s", message);
+ php_syslog(priority, "%s", message);
RETURN_TRUE;
}
/* }}} */
diff --git a/ext/standard/tests/array/array_chunk2.phpt b/ext/standard/tests/array/array_chunk2.phpt
new file mode 100644
index 000000000..09d148ed0
--- /dev/null
+++ b/ext/standard/tests/array/array_chunk2.phpt
@@ -0,0 +1,146 @@
+--TEST--
+basic array_chunk test
+--FILE--
+<?php
+$input_array = array('a', 'b', 'c', 'd', 'e');
+var_dump(array_chunk($input_array, 0));
+var_dump(array_chunk($input_array, 0, true));
+var_dump(array_chunk($input_array, 1));
+var_dump(array_chunk($input_array, 1, true));
+var_dump(array_chunk($input_array, 2));
+var_dump(array_chunk($input_array, 2, true));
+var_dump(array_chunk($input_array, 10));
+var_dump(array_chunk($input_array, 10, true));
+?>
+--EXPECTF--
+Warning: array_chunk(): Size parameter expected to be greater than 0 in %s on line %d
+NULL
+
+Warning: array_chunk(): Size parameter expected to be greater than 0 in %s on line %d
+NULL
+array(5) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(1) "a"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(1) "b"
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ string(1) "c"
+ }
+ [3]=>
+ array(1) {
+ [0]=>
+ string(1) "d"
+ }
+ [4]=>
+ array(1) {
+ [0]=>
+ string(1) "e"
+ }
+}
+array(5) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(1) "a"
+ }
+ [1]=>
+ array(1) {
+ [1]=>
+ string(1) "b"
+ }
+ [2]=>
+ array(1) {
+ [2]=>
+ string(1) "c"
+ }
+ [3]=>
+ array(1) {
+ [3]=>
+ string(1) "d"
+ }
+ [4]=>
+ array(1) {
+ [4]=>
+ string(1) "e"
+ }
+}
+array(3) {
+ [0]=>
+ array(2) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+ }
+ [1]=>
+ array(2) {
+ [0]=>
+ string(1) "c"
+ [1]=>
+ string(1) "d"
+ }
+ [2]=>
+ array(1) {
+ [0]=>
+ string(1) "e"
+ }
+}
+array(3) {
+ [0]=>
+ array(2) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+ }
+ [1]=>
+ array(2) {
+ [2]=>
+ string(1) "c"
+ [3]=>
+ string(1) "d"
+ }
+ [2]=>
+ array(1) {
+ [4]=>
+ string(1) "e"
+ }
+}
+array(1) {
+ [0]=>
+ array(5) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+ [2]=>
+ string(1) "c"
+ [3]=>
+ string(1) "d"
+ [4]=>
+ string(1) "e"
+ }
+}
+array(1) {
+ [0]=>
+ array(5) {
+ [0]=>
+ string(1) "a"
+ [1]=>
+ string(1) "b"
+ [2]=>
+ string(1) "c"
+ [3]=>
+ string(1) "d"
+ [4]=>
+ string(1) "e"
+ }
+}
diff --git a/ext/standard/tests/array/array_combine.phpt b/ext/standard/tests/array/array_combine.phpt
new file mode 100755
index 000000000..6952b66fb
--- /dev/null
+++ b/ext/standard/tests/array/array_combine.phpt
@@ -0,0 +1,122 @@
+--TEST--
+basic array_combine test
+--FILE--
+<?php
+ $array1 = array('green', 'red', 'yellow');
+ $array2 = array('1', '2', '3');
+ $array3 = array(0, 1, 2);
+ $array4 = array(TRUE, FALSE, NULL);
+ $a = array_combine($array1, $array1);
+ $b = array_combine($array1, $array2);
+ $c = array_combine($array1, $array3);
+ $d = array_combine($array1, $array4);
+ $e = array_combine($array2, $array1);
+ $f = array_combine($array2, $array2);
+ $g = array_combine($array2, $array3);
+ $h = array_combine($array2, $array4);
+ $i = array_combine($array3, $array1);
+ $j = array_combine($array3, $array2);
+ $k = array_combine($array3, $array3);
+ $l = array_combine($array3, $array4);
+ $m = array_combine($array4, $array1);
+ $n = array_combine($array4, $array2);
+ $o = array_combine($array4, $array3);
+ $p = array_combine($array4, $array4);
+ for($letter = "a"; $letter <= "p"; $letter++)
+ {
+ print_r($$letter);
+ }
+?>
+--EXPECT--
+Array
+(
+ [green] => green
+ [red] => red
+ [yellow] => yellow
+)
+Array
+(
+ [green] => 1
+ [red] => 2
+ [yellow] => 3
+)
+Array
+(
+ [green] => 0
+ [red] => 1
+ [yellow] => 2
+)
+Array
+(
+ [green] => 1
+ [red] =>
+ [yellow] =>
+)
+Array
+(
+ [1] => green
+ [2] => red
+ [3] => yellow
+)
+Array
+(
+ [1] => 1
+ [2] => 2
+ [3] => 3
+)
+Array
+(
+ [1] => 0
+ [2] => 1
+ [3] => 2
+)
+Array
+(
+ [1] => 1
+ [2] =>
+ [3] =>
+)
+Array
+(
+ [0] => green
+ [1] => red
+ [2] => yellow
+)
+Array
+(
+ [0] => 1
+ [1] => 2
+ [2] => 3
+)
+Array
+(
+ [0] => 0
+ [1] => 1
+ [2] => 2
+)
+Array
+(
+ [0] => 1
+ [1] =>
+ [2] =>
+)
+Array
+(
+ [1] => green
+ [] => yellow
+)
+Array
+(
+ [1] => 1
+ [] => 3
+)
+Array
+(
+ [1] => 0
+ [] => 2
+)
+Array
+(
+ [1] => 1
+ [] =>
+) \ No newline at end of file
diff --git a/ext/standard/tests/array/array_count_values2.phpt b/ext/standard/tests/array/array_count_values2.phpt
new file mode 100644
index 000000000..50472179f
--- /dev/null
+++ b/ext/standard/tests/array/array_count_values2.phpt
@@ -0,0 +1,43 @@
+--TEST--
+basic array_count_values test
+--FILE--
+<?php
+$array1 = array(1,
+ "hello",
+ 1,
+ "world",
+ "hello",
+ "",
+ "rabbit",
+ "foo",
+ "Foo",
+ TRUE,
+ FALSE,
+ NULL,
+ 0);
+var_dump(array_count_values($array1));
+?>
+--EXPECTF--
+Warning: array_count_values(): Can only count STRING and INTEGER values! in %s on line %s
+
+Warning: array_count_values(): Can only count STRING and INTEGER values! in %s on line %s
+
+Warning: array_count_values(): Can only count STRING and INTEGER values! in %s on line %s
+array(8) {
+ [1]=>
+ int(2)
+ ["hello"]=>
+ int(2)
+ ["world"]=>
+ int(1)
+ [""]=>
+ int(1)
+ ["rabbit"]=>
+ int(1)
+ ["foo"]=>
+ int(1)
+ ["Foo"]=>
+ int(1)
+ [0]=>
+ int(1)
+}
diff --git a/ext/standard/tests/array/array_diff_assoc.phpt b/ext/standard/tests/array/array_diff_assoc.phpt
new file mode 100755
index 000000000..32d4758dd
--- /dev/null
+++ b/ext/standard/tests/array/array_diff_assoc.phpt
@@ -0,0 +1,49 @@
+--TEST--
+basic array_diff_assoc test
+--FILE--
+<?php
+$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red", "");
+$array2 = array("a" => "green", "yellow", "red", TRUE);
+$array3 = array("red", "a"=>"brown", "");
+$result[] = array_diff_assoc($array1, $array2);
+$result[] = array_diff_assoc($array1, $array3);
+$result[] = array_diff_assoc($array2, $array3);
+$result[] = array_diff_assoc($array1, $array2, $array3);
+print_r($result)
+?>
+--EXPECT--
+Array
+(
+ [0] => Array
+ (
+ [b] => brown
+ [c] => blue
+ [0] => red
+ [1] =>
+ )
+
+ [1] => Array
+ (
+ [a] => green
+ [b] => brown
+ [c] => blue
+ )
+
+ [2] => Array
+ (
+ [a] => green
+ [0] => yellow
+ [1] => red
+ [2] => 1
+ )
+
+ [3] => Array
+ (
+ [b] => brown
+ [c] => blue
+ )
+
+)
+
+
+
diff --git a/ext/standard/tests/array/array_diff_key2.phpt b/ext/standard/tests/array/array_diff_key2.phpt
new file mode 100644
index 000000000..ba32b984f
--- /dev/null
+++ b/ext/standard/tests/array/array_diff_key2.phpt
@@ -0,0 +1,44 @@
+--TEST--
+basic array_diff_key test
+--FILE--
+<?php
+$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red", "");
+$array2 = array("a" => "green", "yellow", "red", TRUE);
+$array3 = array("red", "a"=>"brown", "");
+$result[] = array_diff_key($array1, $array2);
+$result[] = array_diff_key($array1, $array3);
+$result[] = array_diff_key($array2, $array3);
+$result[] = array_diff_key($array1, $array2, $array3);
+
+var_dump($result);
+
+?>
+--EXPECT--
+array(4) {
+ [0]=>
+ array(2) {
+ ["b"]=>
+ string(5) "brown"
+ ["c"]=>
+ string(4) "blue"
+ }
+ [1]=>
+ array(2) {
+ ["b"]=>
+ string(5) "brown"
+ ["c"]=>
+ string(4) "blue"
+ }
+ [2]=>
+ array(1) {
+ [2]=>
+ bool(true)
+ }
+ [3]=>
+ array(2) {
+ ["b"]=>
+ string(5) "brown"
+ ["c"]=>
+ string(4) "blue"
+ }
+}
diff --git a/ext/standard/tests/file/bug24313.phpt b/ext/standard/tests/file/bug24313.phpt
index dcea58ffe..4b84bcac4 100644
--- a/ext/standard/tests/file/bug24313.phpt
+++ b/ext/standard/tests/file/bug24313.phpt
@@ -4,7 +4,7 @@ Bug #24313 (file_exists() warning on non-existant files when is open_basedir ena
open_basedir=/tmp
--FILE--
<?php
- var_dump(file_exists("./foobar"));
+ var_dump(file_exists("/tmp/bogus_file_no_such_thing"));
?>
--EXPECT--
bool(false)
diff --git a/ext/standard/tests/file/bug37158.phpt b/ext/standard/tests/file/bug37158.phpt
new file mode 100644
index 000000000..48df46cc6
--- /dev/null
+++ b/ext/standard/tests/file/bug37158.phpt
@@ -0,0 +1,39 @@
+--TEST--
+Bug #37158 (if userspace stream is present, fread() reads in 8192 max, otherwise it works)
+--FILE--
+<?php
+
+class VariableStream {
+
+ function stream_open($path, $mode, $options, &$opened_path)
+ {
+ return true;
+ }
+}
+
+stream_wrapper_register("var", "VariableStream");
+
+error_reporting(E_ALL | E_STRICT);
+$file = dirname(__FILE__) . '/footest.txt';
+$x = str_repeat(1, 8192);
+$fp = fopen($file, 'w');
+for ($i = 0; $i < 5; $i++) {
+ fwrite($fp, $x);
+}
+fclose($fp);
+
+$fp = fopen($file, 'r');
+$outsidecontents = fread($fp, 20000);
+fclose($fp);
+var_dump('size of contents 1 = ' . strlen($outsidecontents));
+$outsidecontents = file_get_contents($file);
+var_dump('size of contents 2 = ' . strlen($outsidecontents));
+
+unlink($file);
+
+echo "Done\n";
+?>
+--EXPECT--
+string(26) "size of contents 1 = 20000"
+string(26) "size of contents 2 = 40960"
+Done
diff --git a/ext/standard/tests/file/userstreams.phpt b/ext/standard/tests/file/userstreams.phpt
index 124825f24..9b80508b3 100644
--- a/ext/standard/tests/file/userstreams.phpt
+++ b/ext/standard/tests/file/userstreams.phpt
@@ -211,15 +211,15 @@ for ($i = 0; $i < 256; $i++) {
$whence = $whence_map[array_rand($whence_map, 1)];
switch($whence) {
case SEEK_SET:
- $offset = rand(0, $DATALEN);
+ $offset = rand(0, $DATALEN - 1);
$position = $offset;
break;
case SEEK_END:
- $offset = -rand(0, $DATALEN);
+ $offset = -rand(0, $DATALEN - 1);
$position = $DATALEN + $offset;
break;
case SEEK_CUR:
- $offset = rand(0, $DATALEN);
+ $offset = rand(0, $DATALEN - 1);
$offset -= $position;
$position += $offset;
break;
diff --git a/ext/standard/tests/filters/read.phpt b/ext/standard/tests/filters/read.phpt
new file mode 100644
index 000000000..a2372cf8f
--- /dev/null
+++ b/ext/standard/tests/filters/read.phpt
@@ -0,0 +1,72 @@
+--TEST--
+stream filter - reading
+--FILE--
+<?php
+echo "-TEST\n";
+class filter extends php_user_filter {
+ function filter($in, $out, &$consumed, $closing)
+ {
+ $output = 0;
+ while ($bucket = stream_bucket_make_writeable($in)) {
+ $bucket->data = strtoupper($bucket->data);
+ $consumed += $bucket->datalen;
+ stream_bucket_append($out, $bucket);
+ $output = 1;
+ }
+ if ($closing) {
+ $bucket = stream_bucket_new($this->stream, "\n===close===\n");
+ stream_bucket_append($out, $bucket);
+ $output = 1;
+ }
+ return $output ? PSFS_PASS_ON : PSFS_FEED_ME;
+ }
+}
+stream_filter_register("strtoupper", "filter")
+ or die("Failed to register filter");
+
+if ($f = fopen(__FILE__, "rb")) {
+ stream_filter_append($f, "strtoupper");
+ while (!feof($f)) {
+ echo fread($f, 8192);
+ }
+ fclose($f);
+}
+echo "Done\n";
+?>
+--EXPECTF--
+%sTEST
+<?PHP
+ECHO "-TEST\N";
+CLASS FILTER EXTENDS PHP_USER_FILTER {
+ FUNCTION FILTER($IN, $OUT, &$CONSUMED, $CLOSING)
+ {
+ $OUTPUT = 0;
+ WHILE ($BUCKET = STREAM_BUCKET_MAKE_WRITEABLE($IN)) {
+ $BUCKET->DATA = STRTOUPPER($BUCKET->DATA);
+ $CONSUMED += $BUCKET->DATALEN;
+ STREAM_BUCKET_APPEND($OUT, $BUCKET);
+ $OUTPUT = 1;
+ }
+ IF ($CLOSING) {
+ $BUCKET = STREAM_BUCKET_NEW($THIS->STREAM, "\N===CLOSE===\N");
+ STREAM_BUCKET_APPEND($OUT, $BUCKET);
+ $OUTPUT = 1;
+ }
+ RETURN $OUTPUT ? PSFS_PASS_ON : PSFS_FEED_ME;
+ }
+}
+STREAM_FILTER_REGISTER("STRTOUPPER", "FILTER")
+ OR DIE("FAILED TO REGISTER FILTER");
+
+IF ($F = FOPEN(__FILE__, "RB")) {
+ STREAM_FILTER_APPEND($F, "STRTOUPPER");
+ WHILE (!FEOF($F)) {
+ ECHO FREAD($F, 8192);
+ }
+ FCLOSE($F);
+}
+ECHO "DONE\N";
+?>
+
+===close===
+Done
diff --git a/ext/standard/tests/general_functions/bug35229.phpt b/ext/standard/tests/general_functions/bug35229.phpt
index bcd0ef548..e5a294598 100755
--- a/ext/standard/tests/general_functions/bug35229.phpt
+++ b/ext/standard/tests/general_functions/bug35229.phpt
@@ -1,5 +1,5 @@
--TEST--
-Bug #35229 (call_user_func() crashes when arguement_stack is nearly full)
+Bug #35229 (call_user_func() crashes when argument stack is nearly full)
--FILE--
<?php
class test2 {
diff --git a/ext/standard/tests/general_functions/bug36011.phpt b/ext/standard/tests/general_functions/bug36011.phpt
new file mode 100755
index 000000000..08a45014f
--- /dev/null
+++ b/ext/standard/tests/general_functions/bug36011.phpt
@@ -0,0 +1,46 @@
+--TEST--
+Bug #36011 (Strict errormsg wrong for call_user_func() and the likes)
+--FILE--
+<?php
+
+class TestClass
+{
+ static function test()
+ {
+ echo __METHOD__ . "()\n";
+ }
+
+ function whee()
+ {
+ array_map(array('TestClass', 'test'), array('array_value'));
+ }
+
+ function whee4()
+ {
+ call_user_func(array('TestClass', 'test'));
+ }
+
+ static function whee5()
+ {
+ call_user_func(array('TestClass', 'test'));
+ }
+}
+
+TestClass::test();
+
+$a = new TestClass();
+$a->whee();
+$a->whee4();
+$a->whee5();
+
+TestClass::whee5();
+
+?>
+===DONE===
+--EXPECTF--
+TestClass::test()
+TestClass::test()
+TestClass::test()
+TestClass::test()
+TestClass::test()
+===DONE===
diff --git a/ext/standard/tests/math/bug21523.phpt b/ext/standard/tests/math/bug21523.phpt
index 23d4df7dd..3ca82b632 100644
--- a/ext/standard/tests/math/bug21523.phpt
+++ b/ext/standard/tests/math/bug21523.phpt
@@ -1,7 +1,8 @@
--TEST--
Bug #21523 (number_format tries to allocate negative amount of memory)
--FILE--
-<?php // $Id: bug21523.phpt,v 1.2 2003/01/23 19:07:25 moriyoshi Exp $ vim600:syn=php
+<?php // $Id: bug21523.phpt,v 1.2.4.1 2006/03/22 19:27:47 tony2001 Exp $ vim600:syn=php
+set_time_limit(5);
var_dump(number_format(-2000, 2768));
echo "OK";
diff --git a/ext/standard/tests/strings/bug33605.phpt b/ext/standard/tests/strings/bug33605.phpt
new file mode 100644
index 000000000..f0c49eb18
--- /dev/null
+++ b/ext/standard/tests/strings/bug33605.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #33605 (substr_compare crashes)
+--FILE--
+<?php
+$res = substr_compare("aa", "a", -99999999, 0, 0);
+var_dump($res);
+
+?>
+--EXPECTF--
+Warning: substr_compare(): The length must be greater than zero in %s on line %d
+bool(false)
diff --git a/ext/standard/tests/strings/bug36148.phpt b/ext/standard/tests/strings/bug36148.phpt
new file mode 100644
index 000000000..06caac333
--- /dev/null
+++ b/ext/standard/tests/strings/bug36148.phpt
@@ -0,0 +1,29 @@
+--TEST--
+Bug #36148 (unpack("H*hex", $data) is adding an extra character to the end of the string)
+--FILE--
+<?php
+$values = array("a", "aa", "aaa", "aaaa");
+foreach ($values as $value) {
+ $a = pack("H*", $value);
+ $b = unpack("H*", $a);
+ echo $value.": ";
+ var_dump($b);
+}
+?>
+--EXPECT--
+a: array(1) {
+ [1]=>
+ string(2) "a0"
+}
+aa: array(1) {
+ [1]=>
+ string(2) "aa"
+}
+aaa: array(1) {
+ [1]=>
+ string(4) "aaa0"
+}
+aaaa: array(1) {
+ [1]=>
+ string(4) "aaaa"
+}
diff --git a/ext/standard/tests/strings/bug36306.phpt b/ext/standard/tests/strings/bug36306.phpt
new file mode 100644
index 000000000..ff6279a2d
--- /dev/null
+++ b/ext/standard/tests/strings/bug36306.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #36306 crc32() 64bit
+--FILE--
+<?php
+
+/* as an example how to write crc32 tests
+ PHP does not have uint values, you cannot
+ display crc32 like a signed integer.
+ Have to find some small strings to truely reproduce
+ the problem, this example being not a problem
+*/
+echo dechex(crc32("platform independant")) . "\n";
+?>
+--EXPECT--
+ccd9fe66
diff --git a/ext/standard/tests/strings/bug36944.phpt b/ext/standard/tests/strings/bug36944.phpt
new file mode 100644
index 000000000..2a43d060e
--- /dev/null
+++ b/ext/standard/tests/strings/bug36944.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #36944 (strncmp & strncasecmp do not return false on negative string length)
+--FILE--
+<?php
+
+var_dump(strncmp("test ", "e", -1));
+var_dump(strncmp("test ", "e", 10));
+var_dump(strncmp("test ", "e", 0));
+
+var_dump(strncasecmp("test ", "E", -1));
+var_dump(strncasecmp("test ", "E", 10));
+var_dump(strncasecmp("test ", "E", 0));
+
+echo "Done\n";
+?>
+--EXPECTF--
+Warning: Length must be greater than or equal to 0 in %s on line %d
+bool(false)
+int(%d)
+int(0)
+
+Warning: Length must be greater than or equal to 0 in %s on line %d
+bool(false)
+int(%d)
+int(0)
+Done
diff --git a/ext/standard/tests/strings/substr_compare.phpt b/ext/standard/tests/strings/substr_compare.phpt
new file mode 100644
index 000000000..594aed173
--- /dev/null
+++ b/ext/standard/tests/strings/substr_compare.phpt
@@ -0,0 +1,39 @@
+--TEST--
+substr_compare()
+--FILE--
+<?php
+
+var_dump(substr_compare("abcde", "bc", 1, 2));
+var_dump(substr_compare("abcde", "bcg", 1, 2));
+var_dump(substr_compare("abcde", "BC", 1, 2, true));
+var_dump(substr_compare("abcde", "bc", 1, 3));
+var_dump(substr_compare("abcde", "cd", 1, 2));
+var_dump(substr_compare("abcde", "abc", 5, 1));
+
+var_dump(substr_compare("abcde", -1, 0, NULL, new stdClass));
+echo "Test\n";
+var_dump(substr_compare("abcde", "abc", -1, NULL, -5));
+var_dump(substr_compare("abcde", -1, 0, "str", new stdClass));
+
+echo "Done\n";
+?>
+--EXPECTF--
+int(0)
+int(0)
+int(0)
+int(1)
+int(-1)
+
+Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d
+bool(false)
+
+Warning: substr_compare() expects parameter 5 to be boolean, object given in %s on line %d
+bool(false)
+Test
+
+Warning: substr_compare(): The length must be greater than zero in %s on line %d
+bool(false)
+
+Warning: substr_compare() expects parameter 4 to be long, string given in %s on line %d
+bool(false)
+Done
diff --git a/ext/standard/tests/strings/url_t.phpt b/ext/standard/tests/strings/url_t.phpt
index be95e0294..2d18fa5c0 100644
--- a/ext/standard/tests/strings/url_t.phpt
+++ b/ext/standard/tests/strings/url_t.phpt
@@ -70,6 +70,7 @@ $sample_urls = array (
'http://foo.com#bar',
'scheme:',
'foo+bar://baz@bang/bla',
+'gg:9130731',
);
foreach ($sample_urls as $url) {
@@ -678,6 +679,12 @@ array(4) {
["path"]=>
string(4) "/bla"
}
+array(2) {
+ ["scheme"]=>
+ string(2) "gg"
+ ["path"]=>
+ string(7) "9130731"
+}
string(4) "http"
string(11) "www.php.net"
int(80)
diff --git a/ext/standard/url.c b/ext/standard/url.c
index 6231f28a4..09da50aef 100644
--- a/ext/standard/url.c
+++ b/ext/standard/url.c
@@ -15,7 +15,7 @@
| Author: Jim Winstead <jimw@php.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: url.c,v 1.86.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: url.c,v 1.86.2.5 2006/02/12 16:39:44 iliaa Exp $ */
#include <stdlib.h>
#include <string.h>
@@ -25,6 +25,7 @@
#include "php.h"
#include "url.h"
+#include "file.h"
#ifdef _OSD_POSIX
#ifndef APACHE
#error On this EBCDIC platform, PHP is only supported as an Apache module.
@@ -137,7 +138,7 @@ PHPAPI php_url *php_url_parse_ex(char const *str, int length)
p++;
}
- if ((*p) == '\0' || *p == '/') {
+ if ((*p == '\0' || *p == '/') && (p - e) < 7) {
goto parse_port;
}
@@ -658,7 +659,7 @@ PHP_FUNCTION(get_headers)
{
char *url;
int url_len;
- php_stream_context *context = NULL;
+ php_stream_context *context;
php_stream *stream;
zval **prev_val, **hdr = NULL;
HashPosition pos;
@@ -667,6 +668,7 @@ PHP_FUNCTION(get_headers)
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|l", &url, &url_len, &format) == FAILURE) {
return;
}
+ context = FG(default_context) ? FG(default_context) : (FG(default_context) = php_stream_context_alloc());
if (!(stream = php_stream_open_wrapper_ex(url, "r", REPORT_ERRORS | STREAM_USE_URL | STREAM_ONLY_GET_HEADERS, NULL, context))) {
RETURN_FALSE;
diff --git a/ext/standard/url_scanner_ex.c b/ext/standard/url_scanner_ex.c
index 5a9116b53..fdfcc6ee4 100644
--- a/ext/standard/url_scanner_ex.c
+++ b/ext/standard/url_scanner_ex.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.11 on Sun Jan 1 14:39:52 2006 */
+/* Generated by re2c 0.9.11 on Tue Feb 28 09:38:22 2006 */
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: url_scanner_ex.c,v 1.95.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: url_scanner_ex.c,v 1.95.2.4 2006/02/28 14:45:18 iliaa Exp $ */
#include "php.h"
@@ -107,41 +107,6 @@ static inline void append_modified_url(smart_str *url, smart_str *dest, smart_st
q = (p = url->c) + url->len;
scan:
-{
- static unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 0, 128, 128, 128, 128, 0,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
{
YYCTYPE yych;
@@ -150,12 +115,12 @@ scan:
yy0:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy8;
+ switch(yych){
+ case '#': goto yy6;
+ case ':': goto yy2;
+ case '?': goto yy4;
+ default: goto yy8;
}
- if(yych <= '9') goto yy6;
- if(yych >= ';') goto yy4;
- goto yy2;
yy2: ++YYCURSOR;
goto yy3;
yy3:
@@ -172,14 +137,13 @@ yy8: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy9;
-yy9: if(yybm[0+yych] & 128) {
- goto yy8;
+yy9: switch(yych){
+ case '#': case ':': case '?': goto yy10;
+ default: goto yy8;
}
- goto yy10;
yy10:
{ goto scan; }
}
-}
done:
@@ -347,41 +311,6 @@ state_plain_begin:
state_plain:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 0, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
{
YYCTYPE yych;
@@ -390,10 +319,10 @@ state_plain:
yy11:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy15;
+ switch(yych){
+ case '<': goto yy13;
+ default: goto yy15;
}
- goto yy13;
yy13: ++YYCURSOR;
goto yy14;
yy14:
@@ -402,53 +331,17 @@ yy15: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy16;
-yy16: if(yybm[0+yych] & 128) {
- goto yy15;
+yy16: switch(yych){
+ case '<': goto yy17;
+ default: goto yy15;
}
- goto yy17;
yy17:
{ passthru(STD_ARGS); goto state_plain; }
}
-}
state_tag:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
{
YYCTYPE yych;
@@ -457,11 +350,60 @@ state_tag:
yy18:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '@') goto yy22;
- if(yych <= 'Z') goto yy20;
- if(yych <= '`') goto yy22;
- if(yych >= '{') goto yy22;
- goto yy20;
+ switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy20;
+ default: goto yy22;
+ }
yy20: ++YYCURSOR;
yych = *YYCURSOR;
goto yy25;
@@ -475,11 +417,60 @@ yy24: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy25;
-yy25: if(yybm[0+yych] & 128) {
- goto yy24;
+yy25: switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy24;
+ default: goto yy21;
}
- goto yy21;
-}
}
@@ -488,41 +479,6 @@ state_next_arg_begin:
state_next_arg:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
{
YYCTYPE yych;
@@ -531,24 +487,63 @@ state_next_arg:
yy26:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '='){
- if(yych <= 0x0B){
- if(yych <= 0x08) goto yy34;
- goto yy30;
- } else {
- if(yych == ' ') goto yy30;
- goto yy34;
- }
- } else {
- if(yych <= 'Z'){
- if(yych <= '>') goto yy28;
- if(yych <= '@') goto yy34;
- goto yy32;
- } else {
- if(yych <= '`') goto yy34;
- if(yych <= 'z') goto yy32;
- goto yy34;
- }
+ switch(yych){
+ case 0x09:
+ case 0x0A:
+ case 0x0B: case 0x0D: case ' ': goto yy30;
+ case '>': goto yy28;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy32;
+ default: goto yy34;
}
yy28: ++YYCURSOR;
goto yy29;
@@ -571,51 +566,17 @@ yy36: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy37;
-yy37: if(yybm[0+yych] & 128) {
- goto yy36;
+yy37: switch(yych){
+ case 0x09:
+ case 0x0A:
+ case 0x0B: case 0x0D: case ' ': goto yy36;
+ default: goto yy31;
}
- goto yy31;
-}
}
state_arg:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 128, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
{
YYCTYPE yych;
@@ -624,11 +585,60 @@ state_arg:
yy38:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '@') goto yy42;
- if(yych <= 'Z') goto yy40;
- if(yych <= '`') goto yy42;
- if(yych >= '{') goto yy42;
- goto yy40;
+ switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy40;
+ default: goto yy42;
+ }
yy40: ++YYCURSOR;
yych = *YYCURSOR;
goto yy45;
@@ -642,51 +652,65 @@ yy44: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy45;
-yy45: if(yybm[0+yych] & 128) {
- goto yy44;
+yy45: switch(yych){
+ case '-': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy44;
+ default: goto yy41;
}
- goto yy41;
-}
}
state_before_val:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
{
YYCTYPE yych;
@@ -696,14 +720,18 @@ state_before_val:
yy46:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych == ' ') goto yy48;
- if(yych == '=') goto yy50;
- goto yy52;
+ switch(yych){
+ case ' ': goto yy48;
+ case '=': goto yy50;
+ default: goto yy52;
+ }
yy48: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy49;
+ switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy49;
+ }
yy49:
{ --YYCURSOR; goto state_next_arg_begin; }
yy50: ++YYCURSOR;
@@ -717,63 +745,29 @@ yy53: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy54;
-yy54: if(yybm[0+yych] & 128) {
- goto yy53;
+yy54: switch(yych){
+ case ' ': goto yy53;
+ default: goto yy51;
}
- goto yy51;
yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy56;
-yy56: if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy57;
+yy56: switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy57;
+ }
yy57: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy49;
}
}
-}
state_val:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 160, 160, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 160, 248, 56, 248, 248, 248, 248, 200,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 0, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- };
{
YYCTYPE yych;
@@ -783,29 +777,18 @@ state_val:
yy58:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '!'){
- if(yych <= 0x0A){
- if(yych <= 0x08) goto yy63;
- goto yy64;
- } else {
- if(yych == ' ') goto yy64;
- goto yy63;
- }
- } else {
- if(yych <= '\''){
- if(yych <= '"') goto yy60;
- if(yych <= '&') goto yy63;
- goto yy62;
- } else {
- if(yych == '>') goto yy64;
- goto yy63;
- }
+ switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy64;
+ case '"': goto yy60;
+ case '\'': goto yy62;
+ default: goto yy63;
}
yy60: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy77;
yy61:
-{ handle_val(STD_ARGS, 0, '\0'); goto state_next_arg_begin; }
+{ handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
yy62: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy69;
@@ -819,38 +802,40 @@ yy66: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy67;
-yy67: if(yybm[0+yych] & 8) {
- goto yy66;
+yy67: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy61;
+ default: goto yy66;
}
- goto yy61;
yy68: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy69;
-yy69: if(yybm[0+yych] & 16) {
- goto yy68;
+yy69: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy72;
+ case '\'': goto yy70;
+ case '>': goto yy61;
+ default: goto yy68;
}
- if(yych <= '&') goto yy72;
- if(yych >= '(') goto yy61;
- goto yy70;
yy70: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy71;
+ default: goto yy66;
}
- goto yy71;
yy71:
{ handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
yy72: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy73;
-yy73: if(yybm[0+yych] & 32) {
- goto yy72;
+yy73: switch(yych){
+ case '\'': goto yy75;
+ case '>': goto yy74;
+ default: goto yy72;
}
- if(yych <= '=') goto yy75;
- goto yy74;
yy74: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy61;
@@ -862,34 +847,34 @@ yy76: yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy77;
-yy77: if(yybm[0+yych] & 64) {
- goto yy76;
+yy77: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy80;
+ case '"': goto yy78;
+ case '>': goto yy61;
+ default: goto yy76;
}
- if(yych <= '!') goto yy80;
- if(yych >= '#') goto yy61;
- goto yy78;
yy78: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy79;
+ default: goto yy66;
}
- goto yy79;
yy79:
{ handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
yy80: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy81;
-yy81: if(yybm[0+yych] & 128) {
- goto yy80;
+yy81: switch(yych){
+ case '"': goto yy82;
+ case '>': goto yy74;
+ default: goto yy80;
}
- if(yych >= '>') goto yy74;
- goto yy82;
yy82: ++YYCURSOR;
yych = *YYCURSOR;
goto yy79;
}
-}
stop:
diff --git a/ext/standard/url_scanner_ex.c.orig b/ext/standard/url_scanner_ex.c.orig
index 2e7e3fed6..083340973 100644
--- a/ext/standard/url_scanner_ex.c.orig
+++ b/ext/standard/url_scanner_ex.c.orig
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.9.11 on Sun Jan 1 14:39:52 2006 */
+/* Generated by re2c 0.9.11 on Tue Feb 28 09:38:22 2006 */
#line 1 "ext/standard/url_scanner_ex.re"
/*
+----------------------------------------------------------------------+
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: url_scanner_ex.c,v 1.95.2.3 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: url_scanner_ex.c,v 1.95.2.4 2006/02/28 14:45:18 iliaa Exp $ */
#include "php.h"
@@ -109,43 +109,8 @@ static inline void append_modified_url(smart_str *url, smart_str *dest, smart_st
q = (p = url->c) + url->len;
scan:
-{
- static unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 0, 128, 128, 128, 128, 0,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
-
-#line 149 "ext/standard/url_scanner_ex.c"
+
+#line 114 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy0;
@@ -153,43 +118,42 @@ scan:
yy0:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy8;
+ switch(yych){
+ case '#': goto yy6;
+ case ':': goto yy2;
+ case '?': goto yy4;
+ default: goto yy8;
}
- if(yych <= '9') goto yy6;
- if(yych >= ';') goto yy4;
- goto yy2;
yy2: ++YYCURSOR;
goto yy3;
yy3:
#line 115 "ext/standard/url_scanner_ex.re"
{ smart_str_append(dest, url); return; }
-#line 168 "ext/standard/url_scanner_ex.c"
+#line 133 "ext/standard/url_scanner_ex.c"
yy4: ++YYCURSOR;
goto yy5;
yy5:
#line 116 "ext/standard/url_scanner_ex.re"
{ sep = separator; goto scan; }
-#line 174 "ext/standard/url_scanner_ex.c"
+#line 139 "ext/standard/url_scanner_ex.c"
yy6: ++YYCURSOR;
goto yy7;
yy7:
#line 117 "ext/standard/url_scanner_ex.re"
{ bash = p - 1; goto done; }
-#line 180 "ext/standard/url_scanner_ex.c"
+#line 145 "ext/standard/url_scanner_ex.c"
yy8: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy9;
-yy9: if(yybm[0+yych] & 128) {
- goto yy8;
+yy9: switch(yych){
+ case '#': case ':': case '?': goto yy10;
+ default: goto yy8;
}
- goto yy10;
yy10:
#line 118 "ext/standard/url_scanner_ex.re"
{ goto scan; }
-#line 192 "ext/standard/url_scanner_ex.c"
-}
+#line 157 "ext/standard/url_scanner_ex.c"
}
#line 119 "ext/standard/url_scanner_ex.re"
@@ -359,43 +323,8 @@ state_plain_begin:
state_plain:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 0, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- };
-
-#line 399 "ext/standard/url_scanner_ex.c"
+
+#line 328 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy11;
@@ -403,72 +332,36 @@ state_plain:
yy11:
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
- if(yybm[0+yych] & 128) {
- goto yy15;
+ switch(yych){
+ case '<': goto yy13;
+ default: goto yy15;
}
- goto yy13;
yy13: ++YYCURSOR;
goto yy14;
yy14:
#line 287 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
-#line 416 "ext/standard/url_scanner_ex.c"
+#line 345 "ext/standard/url_scanner_ex.c"
yy15: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy16;
-yy16: if(yybm[0+yych] & 128) {
- goto yy15;
+yy16: switch(yych){
+ case '<': goto yy17;
+ default: goto yy15;
}
- goto yy17;
yy17:
#line 288 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain; }
-#line 428 "ext/standard/url_scanner_ex.c"
-}
+#line 357 "ext/standard/url_scanner_ex.c"
}
#line 289 "ext/standard/url_scanner_ex.re"
state_tag:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 472 "ext/standard/url_scanner_ex.c"
+
+#line 365 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy18;
@@ -476,33 +369,131 @@ state_tag:
yy18:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '@') goto yy22;
- if(yych <= 'Z') goto yy20;
- if(yych <= '`') goto yy22;
- if(yych >= '{') goto yy22;
- goto yy20;
+ switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy20;
+ default: goto yy22;
+ }
yy20: ++YYCURSOR;
yych = *YYCURSOR;
goto yy25;
yy21:
#line 294 "ext/standard/url_scanner_ex.re"
{ handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
-#line 491 "ext/standard/url_scanner_ex.c"
+#line 433 "ext/standard/url_scanner_ex.c"
yy22: ++YYCURSOR;
goto yy23;
yy23:
#line 295 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain_begin; }
-#line 497 "ext/standard/url_scanner_ex.c"
+#line 439 "ext/standard/url_scanner_ex.c"
yy24: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy25;
-yy25: if(yybm[0+yych] & 128) {
- goto yy24;
+yy25: switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy24;
+ default: goto yy21;
}
- goto yy21;
-}
}
#line 296 "ext/standard/url_scanner_ex.re"
@@ -512,43 +503,8 @@ state_next_arg_begin:
state_next_arg:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 552 "ext/standard/url_scanner_ex.c"
+
+#line 508 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy26;
@@ -556,102 +512,107 @@ state_next_arg:
yy26:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '='){
- if(yych <= 0x0B){
- if(yych <= 0x08) goto yy34;
- goto yy30;
- } else {
- if(yych == ' ') goto yy30;
- goto yy34;
- }
- } else {
- if(yych <= 'Z'){
- if(yych <= '>') goto yy28;
- if(yych <= '@') goto yy34;
- goto yy32;
- } else {
- if(yych <= '`') goto yy34;
- if(yych <= 'z') goto yy32;
- goto yy34;
- }
+ switch(yych){
+ case 0x09:
+ case 0x0A:
+ case 0x0B: case 0x0D: case ' ': goto yy30;
+ case '>': goto yy28;
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy32;
+ default: goto yy34;
}
yy28: ++YYCURSOR;
goto yy29;
yy29:
#line 304 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
-#line 584 "ext/standard/url_scanner_ex.c"
+#line 579 "ext/standard/url_scanner_ex.c"
yy30: ++YYCURSOR;
yych = *YYCURSOR;
goto yy37;
yy31:
#line 305 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_next_arg; }
-#line 591 "ext/standard/url_scanner_ex.c"
+#line 586 "ext/standard/url_scanner_ex.c"
yy32: ++YYCURSOR;
goto yy33;
yy33:
#line 306 "ext/standard/url_scanner_ex.re"
{ --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
-#line 597 "ext/standard/url_scanner_ex.c"
+#line 592 "ext/standard/url_scanner_ex.c"
yy34: ++YYCURSOR;
goto yy35;
yy35:
#line 307 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_plain_begin; }
-#line 603 "ext/standard/url_scanner_ex.c"
+#line 598 "ext/standard/url_scanner_ex.c"
yy36: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy37;
-yy37: if(yybm[0+yych] & 128) {
- goto yy36;
+yy37: switch(yych){
+ case 0x09:
+ case 0x0A:
+ case 0x0B: case 0x0D: case ' ': goto yy36;
+ default: goto yy31;
}
- goto yy31;
-}
}
#line 308 "ext/standard/url_scanner_ex.re"
state_arg:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 128, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 128, 128, 128, 128, 128,
- 128, 128, 128, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 655 "ext/standard/url_scanner_ex.c"
+
+#line 616 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
goto yy38;
@@ -659,76 +620,139 @@ state_arg:
yy38:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych <= '@') goto yy42;
- if(yych <= 'Z') goto yy40;
- if(yych <= '`') goto yy42;
- if(yych >= '{') goto yy42;
- goto yy40;
+ switch(yych){
+ case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy40;
+ default: goto yy42;
+ }
yy40: ++YYCURSOR;
yych = *YYCURSOR;
goto yy45;
yy41:
#line 313 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
-#line 674 "ext/standard/url_scanner_ex.c"
+#line 684 "ext/standard/url_scanner_ex.c"
yy42: ++YYCURSOR;
goto yy43;
yy43:
#line 314 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; }
-#line 680 "ext/standard/url_scanner_ex.c"
+#line 690 "ext/standard/url_scanner_ex.c"
yy44: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy45;
-yy45: if(yybm[0+yych] & 128) {
- goto yy44;
+yy45: switch(yych){
+ case '-': case 'A':
+ case 'B':
+ case 'C':
+ case 'D':
+ case 'E':
+ case 'F':
+ case 'G':
+ case 'H':
+ case 'I':
+ case 'J':
+ case 'K':
+ case 'L':
+ case 'M':
+ case 'N':
+ case 'O':
+ case 'P':
+ case 'Q':
+ case 'R':
+ case 'S':
+ case 'T':
+ case 'U':
+ case 'V':
+ case 'W':
+ case 'X':
+ case 'Y':
+ case 'Z': case 'a':
+ case 'b':
+ case 'c':
+ case 'd':
+ case 'e':
+ case 'f':
+ case 'g':
+ case 'h':
+ case 'i':
+ case 'j':
+ case 'k':
+ case 'l':
+ case 'm':
+ case 'n':
+ case 'o':
+ case 'p':
+ case 'q':
+ case 'r':
+ case 's':
+ case 't':
+ case 'u':
+ case 'v':
+ case 'w':
+ case 'x':
+ case 'y':
+ case 'z': goto yy44;
+ default: goto yy41;
}
- goto yy41;
-}
}
#line 315 "ext/standard/url_scanner_ex.re"
state_before_val:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 128, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- };
-
-#line 732 "ext/standard/url_scanner_ex.c"
+
+#line 756 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -737,91 +761,61 @@ state_before_val:
yy46:
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
- if(yych == ' ') goto yy48;
- if(yych == '=') goto yy50;
- goto yy52;
+ switch(yych){
+ case ' ': goto yy48;
+ case '=': goto yy50;
+ default: goto yy52;
+ }
yy48: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy49;
+ switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy49;
+ }
yy49:
#line 321 "ext/standard/url_scanner_ex.re"
{ --YYCURSOR; goto state_next_arg_begin; }
-#line 752 "ext/standard/url_scanner_ex.c"
+#line 780 "ext/standard/url_scanner_ex.c"
yy50: ++YYCURSOR;
yych = *YYCURSOR;
goto yy54;
yy51:
#line 320 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
-#line 759 "ext/standard/url_scanner_ex.c"
+#line 787 "ext/standard/url_scanner_ex.c"
yy52: yych = *++YYCURSOR;
goto yy49;
yy53: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy54;
-yy54: if(yybm[0+yych] & 128) {
- goto yy53;
+yy54: switch(yych){
+ case ' ': goto yy53;
+ default: goto yy51;
}
- goto yy51;
yy55: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy56;
-yy56: if(yych == ' ') goto yy55;
- if(yych == '=') goto yy53;
- goto yy57;
+yy56: switch(yych){
+ case ' ': goto yy55;
+ case '=': goto yy53;
+ default: goto yy57;
+ }
yy57: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy49;
}
}
-}
#line 322 "ext/standard/url_scanner_ex.re"
state_val:
start = YYCURSOR;
-{
- static unsigned char yybm[] = {
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 160, 160, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 160, 248, 56, 248, 248, 248, 248, 200,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 0, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- 248, 248, 248, 248, 248, 248, 248, 248,
- };
-
-#line 825 "ext/standard/url_scanner_ex.c"
+
+#line 819 "ext/standard/url_scanner_ex.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -830,31 +824,20 @@ state_val:
yy58:
if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
yych = *YYCURSOR;
- if(yych <= '!'){
- if(yych <= 0x0A){
- if(yych <= 0x08) goto yy63;
- goto yy64;
- } else {
- if(yych == ' ') goto yy64;
- goto yy63;
- }
- } else {
- if(yych <= '\''){
- if(yych <= '"') goto yy60;
- if(yych <= '&') goto yy63;
- goto yy62;
- } else {
- if(yych == '>') goto yy64;
- goto yy63;
- }
+ switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy64;
+ case '"': goto yy60;
+ case '\'': goto yy62;
+ default: goto yy63;
}
yy60: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy77;
yy61:
#line 330 "ext/standard/url_scanner_ex.re"
-{ handle_val(STD_ARGS, 0, '\0'); goto state_next_arg_begin; }
-#line 858 "ext/standard/url_scanner_ex.c"
+{ handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
+#line 841 "ext/standard/url_scanner_ex.c"
yy62: yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
goto yy69;
@@ -865,45 +848,47 @@ yy64: ++YYCURSOR;
yy65:
#line 331 "ext/standard/url_scanner_ex.re"
{ passthru(STD_ARGS); goto state_next_arg_begin; }
-#line 869 "ext/standard/url_scanner_ex.c"
+#line 852 "ext/standard/url_scanner_ex.c"
yy66: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy67;
-yy67: if(yybm[0+yych] & 8) {
- goto yy66;
+yy67: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy61;
+ default: goto yy66;
}
- goto yy61;
yy68: yyaccept = 0;
YYMARKER = ++YYCURSOR;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy69;
-yy69: if(yybm[0+yych] & 16) {
- goto yy68;
+yy69: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy72;
+ case '\'': goto yy70;
+ case '>': goto yy61;
+ default: goto yy68;
}
- if(yych <= '&') goto yy72;
- if(yych >= '(') goto yy61;
- goto yy70;
yy70: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy71;
+ default: goto yy66;
}
- goto yy71;
yy71:
#line 329 "ext/standard/url_scanner_ex.re"
{ handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
-#line 898 "ext/standard/url_scanner_ex.c"
+#line 883 "ext/standard/url_scanner_ex.c"
yy72: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy73;
-yy73: if(yybm[0+yych] & 32) {
- goto yy72;
+yy73: switch(yych){
+ case '\'': goto yy75;
+ case '>': goto yy74;
+ default: goto yy72;
}
- if(yych <= '=') goto yy75;
- goto yy74;
yy74: YYCURSOR = YYMARKER;
switch(yyaccept){
case 0: goto yy61;
@@ -915,36 +900,36 @@ yy76: yyaccept = 0;
if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
yych = *YYCURSOR;
goto yy77;
-yy77: if(yybm[0+yych] & 64) {
- goto yy76;
+yy77: switch(yych){
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': goto yy80;
+ case '"': goto yy78;
+ case '>': goto yy61;
+ default: goto yy76;
}
- if(yych <= '!') goto yy80;
- if(yych >= '#') goto yy61;
- goto yy78;
yy78: ++YYCURSOR;
- if(yybm[0+(yych = *YYCURSOR)] & 8) {
- yych = *YYCURSOR;
- goto yy66;
+ switch((yych = *YYCURSOR)) {
+ case 0x09:
+ case 0x0A: case 0x0D: case ' ': case '>': goto yy79;
+ default: goto yy66;
}
- goto yy79;
yy79:
#line 328 "ext/standard/url_scanner_ex.re"
{ handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
-#line 934 "ext/standard/url_scanner_ex.c"
+#line 920 "ext/standard/url_scanner_ex.c"
yy80: ++YYCURSOR;
if(YYLIMIT == YYCURSOR) YYFILL(1);
yych = *YYCURSOR;
goto yy81;
-yy81: if(yybm[0+yych] & 128) {
- goto yy80;
+yy81: switch(yych){
+ case '"': goto yy82;
+ case '>': goto yy74;
+ default: goto yy80;
}
- if(yych >= '>') goto yy74;
- goto yy82;
yy82: ++YYCURSOR;
yych = *YYCURSOR;
goto yy79;
}
-}
#line 332 "ext/standard/url_scanner_ex.re"
diff --git a/ext/standard/url_scanner_ex.re b/ext/standard/url_scanner_ex.re
index c5d60a888..1108af54a 100644
--- a/ext/standard/url_scanner_ex.re
+++ b/ext/standard/url_scanner_ex.re
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: url_scanner_ex.re,v 1.76.2.1 2006/01/01 12:26:08 sniper Exp $ */
+/* $Id: url_scanner_ex.re,v 1.76.2.2 2006/02/28 14:45:18 iliaa Exp $ */
#include "php.h"
@@ -302,7 +302,7 @@ state_next_arg:
start = YYCURSOR;
/*!re2c
">" { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
- [ \v\t\n]+ { passthru(STD_ARGS); goto state_next_arg; }
+ [ \v\r\t\n]+ { passthru(STD_ARGS); goto state_next_arg; }
alpha { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
any { passthru(STD_ARGS); goto state_plain_begin; }
*/
@@ -327,7 +327,7 @@ state_val:
/*!re2c
["] (any\[">])* ["] { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
['] (any\['>])* ['] { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
- (any\[ \t\n>])+ { handle_val(STD_ARGS, 0, '\0'); goto state_next_arg_begin; }
+ (any\[ \r\t\n>])+ { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
any { passthru(STD_ARGS); goto state_next_arg_begin; }
*/
diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c
index d275f55e4..cffc28dda 100644
--- a/ext/standard/user_filters.c
+++ b/ext/standard/user_filters.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: user_filters.c,v 1.31.2.1 2006/01/01 12:50:15 sniper Exp $ */
+/* $Id: user_filters.c,v 1.31.2.4 2006/03/30 21:10:23 tony2001 Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -64,6 +64,15 @@ static zend_function_entry user_filter_class_funcs[] = {
static zend_class_entry user_filter_class_entry;
+static ZEND_RSRC_DTOR_FUNC(php_bucket_dtor)
+{
+ php_stream_bucket *bucket = (php_stream_bucket *)rsrc->ptr;
+ if (bucket) {
+ php_stream_bucket_delref(bucket TSRMLS_CC);
+ bucket = NULL;
+ }
+}
+
PHP_MINIT_FUNCTION(user_filters)
{
/* init the filter class ancestor */
@@ -83,7 +92,7 @@ PHP_MINIT_FUNCTION(user_filters)
/* Filters will dispose of their brigades */
le_bucket_brigade = zend_register_list_destructors_ex(NULL, NULL, PHP_STREAM_BRIGADE_RES_NAME, module_number);
/* Brigades will dispose of their buckets */
- le_bucket = zend_register_list_destructors_ex(NULL, NULL, PHP_STREAM_BUCKET_RES_NAME, module_number);
+ le_bucket = zend_register_list_destructors_ex(php_bucket_dtor, NULL, PHP_STREAM_BUCKET_RES_NAME, module_number);
if (le_bucket_brigade == FAILURE) {
return FAILURE;
@@ -406,7 +415,7 @@ static void php_stream_bucket_attach(int append, INTERNAL_FUNCTION_PARAMETERS)
if (!bucket->own_buf) {
bucket = php_stream_bucket_make_writeable(bucket TSRMLS_CC);
}
- if (bucket->buflen != Z_STRLEN_PP(pzdata)) {
+ if ((int)bucket->buflen != Z_STRLEN_PP(pzdata)) {
bucket->buf = perealloc(bucket->buf, Z_STRLEN_PP(pzdata), bucket->is_persistent);
bucket->buflen = Z_STRLEN_PP(pzdata);
}
@@ -418,6 +427,12 @@ static void php_stream_bucket_attach(int append, INTERNAL_FUNCTION_PARAMETERS)
} else {
php_stream_bucket_prepend(brigade, bucket TSRMLS_CC);
}
+ /* This is a hack necessary to accomodate situations where bucket is appended to the stream
+ * multiple times. See bug35916.phpt for reference.
+ */
+ if (bucket->refcount == 1) {
+ bucket->refcount++;
+ }
}
/* }}} */
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 233f318c1..a1311a198 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: var.c,v 1.203.2.5 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: var.c,v 1.203.2.7 2006/04/05 02:28:06 iliaa Exp $ */
@@ -221,12 +221,44 @@ static int zval_array_element_dump(zval **zv, int num_args, va_list args, zend_h
return 0;
}
+static int zval_object_property_dump(zval **zv, int num_args, va_list args, zend_hash_key *hash_key)
+{
+ int level;
+ char *prop_name, *class_name;
+ TSRMLS_FETCH();
+
+ level = va_arg(args, int);
+
+ if (hash_key->nKeyLength ==0 ) { /* numeric key */
+ php_printf("%*c[%ld]=>\n", level + 1, ' ', hash_key->h);
+ } else { /* string key */
+ zend_unmangle_property_name_ex(hash_key->arKey, hash_key->nKeyLength, &class_name, &prop_name);
+ if (class_name) {
+ php_printf("%*c[\"%s", level + 1, ' ', prop_name);
+ if (class_name[0]=='*') {
+ ZEND_PUTS(":protected");
+ } else {
+ ZEND_PUTS(":private");
+ }
+ } else {
+ php_printf("%*c[\"%s", level + 1, ' ', hash_key->arKey);
+#ifdef ANDREY_0
+ ZEND_PUTS(":public");
+#endif
+ }
+ ZEND_PUTS("\"]=>\n");
+ }
+ php_debug_zval_dump(zv, level + 2 TSRMLS_CC);
+ return 0;
+}
+
PHPAPI void php_debug_zval_dump(zval **struc, int level TSRMLS_DC)
{
HashTable *myht = NULL;
char *class_name;
zend_uint class_name_len;
zend_class_entry *ce;
+ int (*zval_element_dump_func)(zval**, int, va_list, zend_hash_key*);
if (level > 1) {
php_printf("%*c", level - 1, ' ');
@@ -257,6 +289,7 @@ PHPAPI void php_debug_zval_dump(zval **struc, int level TSRMLS_DC)
return;
}
php_printf("%sarray(%d) refcount(%u){\n", COMMON, zend_hash_num_elements(myht), Z_REFCOUNT_PP(struc));
+ zval_element_dump_func = zval_array_element_dump;
goto head_done;
case IS_OBJECT:
myht = Z_OBJPROP_PP(struc);
@@ -268,9 +301,10 @@ PHPAPI void php_debug_zval_dump(zval **struc, int level TSRMLS_DC)
Z_OBJ_HANDLER(**struc, get_class_name)(*struc, &class_name, &class_name_len, 0 TSRMLS_CC);
php_printf("%sobject(%s)#%d (%d) refcount(%u){\n", COMMON, class_name, Z_OBJ_HANDLE_PP(struc), myht ? zend_hash_num_elements(myht) : 0, Z_REFCOUNT_PP(struc));
efree(class_name);
+ zval_element_dump_func = zval_object_property_dump;
head_done:
if (myht) {
- zend_hash_apply_with_arguments(myht, (apply_func_args_t) zval_array_element_dump, 1, level, (Z_TYPE_PP(struc) == IS_ARRAY ? 0 : 1));
+ zend_hash_apply_with_arguments(myht, (apply_func_args_t) zval_element_dump_func, 1, level, (Z_TYPE_PP(struc) == IS_ARRAY ? 0 : 1));
}
if (level > 1) {
php_printf("%*c", level-1, ' ');
@@ -781,10 +815,18 @@ static void php_var_serialize_intern(smart_str *buf, zval **struc, HashTable *va
if (zend_hash_get_current_data_ex(myht,
(void **) &data, &pos) != SUCCESS
|| !data
- || data == struc) {
+ || data == struc
+ || (Z_TYPE_PP(data) == IS_ARRAY && Z_ARRVAL_PP(data)->nApplyCount > 1)
+ ) {
smart_str_appendl(buf, "N;", 2);
} else {
+ if (Z_TYPE_PP(data) == IS_ARRAY) {
+ Z_ARRVAL_PP(data)->nApplyCount++;
+ }
php_var_serialize_intern(buf, data, var_hash TSRMLS_CC);
+ if (Z_TYPE_PP(data) == IS_ARRAY) {
+ Z_ARRVAL_PP(data)->nApplyCount--;
+ }
}
}
}
diff --git a/ext/tidy/php_tidy.def b/ext/tidy/php_tidy.def
index 0caabc01f..1c17276de 100644
--- a/ext/tidy/php_tidy.def
+++ b/ext/tidy/php_tidy.def
@@ -45,7 +45,6 @@ tidyOptGetCategory
tidyOptGetDefault
tidyOptGetDefaultInt
tidyOptGetDefaultBool
-tidyOptGetDoc
tidyOptGetPickList
tidyOptGetNextPick
tidyOptGetValue
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index 1545688a2..2e0cdbffa 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: tidy.c,v 1.66.2.5 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: tidy.c,v 1.66.2.8 2006/04/19 21:47:20 nlopess Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -37,6 +37,11 @@
#include "tidy.h"
#include "buffio.h"
+/* compatibility with older versions of libtidy */
+#ifndef TIDY_CALL
+#define TIDY_CALL
+#endif
+
#define PHP_TIDY_MODULE_VERSION "2.0"
/* {{{ ext/tidy macros
@@ -333,22 +338,22 @@ zend_module_entry tidy_module_entry = {
ZEND_GET_MODULE(tidy)
#endif
-void *php_tidy_malloc(size_t len)
+void* TIDY_CALL php_tidy_malloc(size_t len)
{
return emalloc(len);
}
-void *php_tidy_realloc(void *buf, size_t len)
+void* TIDY_CALL php_tidy_realloc(void *buf, size_t len)
{
return erealloc(buf, len);
}
-void php_tidy_free(void *buf)
+void TIDY_CALL php_tidy_free(void *buf)
{
efree(buf);
}
-void php_tidy_panic(ctmbstr msg)
+void TIDY_CALL php_tidy_panic(ctmbstr msg)
{
TSRMLS_FETCH();
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Could not allocate memory for tidy! (Reason: %s)", (char *)msg);
@@ -530,8 +535,19 @@ static void tidy_object_free_storage(void *object TSRMLS_DC)
{
PHPTidyObj *intern = (PHPTidyObj *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
+#else
+ if (intern->std.guards) {
+ zend_hash_destroy(intern->std.guards);
+ FREE_HASHTABLE(intern->std.guards);
+ }
+
+ if (intern->std.properties) {
+ zend_hash_destroy(intern->std.properties);
+ FREE_HASHTABLE(intern->std.properties);
+ }
+#endif
if (intern->ptdoc) {
intern->ptdoc->ref_count--;
@@ -555,10 +571,16 @@ static void tidy_object_new(zend_class_entry *class_type, zend_object_handlers *
intern = emalloc(sizeof(PHPTidyObj));
memset(intern, 0, sizeof(PHPTidyObj));
- intern->std.ce = class_type;
-
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
+#else
ALLOC_HASHTABLE(intern->std.properties);
zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+
+ intern->std.ce = class_type;
+ intern->std.guards = NULL;
+#endif
+
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
switch(objtype) {
@@ -983,7 +1005,7 @@ PHP_MINFO_FUNCTION(tidy)
php_info_print_table_start();
php_info_print_table_header(2, "Tidy support", "enabled");
php_info_print_table_row(2, "libTidy Release", (char *)tidyReleaseDate());
- php_info_print_table_row(2, "Extension Version", PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.66.2.5 2006/01/01 12:50:16 sniper Exp $)");
+ php_info_print_table_row(2, "Extension Version", PHP_TIDY_MODULE_VERSION " ($Id: tidy.c,v 1.66.2.8 2006/04/19 21:47:20 nlopess Exp $)");
php_info_print_table_end();
DISPLAY_INI_ENTRIES();
diff --git a/ext/tokenizer/tests/002.phpt b/ext/tokenizer/tests/002.phpt
index c9a822b74..fad8f2ae7 100644
--- a/ext/tokenizer/tests/002.phpt
+++ b/ext/tokenizer/tests/002.phpt
@@ -21,40 +21,40 @@ foreach ($strings as $s) {
echo "Done\n";
?>
---EXPECT--
+--EXPECTF--
array(49) {
[0]=>
array(2) {
[0]=>
- int(367)
+ int(%d)
[1]=>
string(2) "<?"
}
[1]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[2]=>
array(2) {
[0]=>
- int(316)
+ int(%d)
[1]=>
string(4) "echo"
}
[3]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[4]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "1"
}
@@ -63,21 +63,21 @@ array(49) {
[6]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[7]=>
array(2) {
[0]=>
- int(301)
+ int(%d)
[1]=>
string(2) "if"
}
[8]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -86,7 +86,7 @@ array(49) {
[10]=>
array(2) {
[0]=>
- int(349)
+ int(%d)
[1]=>
string(5) "isset"
}
@@ -95,7 +95,7 @@ array(49) {
[12]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
@@ -106,28 +106,28 @@ array(49) {
[15]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[16]=>
array(2) {
[0]=>
- int(266)
+ int(%d)
[1]=>
string(5) "print"
}
[17]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[18]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
@@ -136,7 +136,7 @@ array(49) {
[20]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "1"
}
@@ -145,21 +145,21 @@ array(49) {
[22]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[23]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
[24]=>
array(2) {
[0]=>
- int(297)
+ int(%d)
[1]=>
string(2) "++"
}
@@ -168,21 +168,21 @@ array(49) {
[26]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[27]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
[28]=>
array(2) {
[0]=>
- int(296)
+ int(%d)
[1]=>
string(2) "--"
}
@@ -191,42 +191,42 @@ array(49) {
[30]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[31]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
[32]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[33]=>
array(2) {
[0]=>
- int(283)
+ int(%d)
[1]=>
string(2) "=="
}
[34]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[35]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
@@ -235,42 +235,42 @@ array(49) {
[37]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[38]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
[39]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[40]=>
array(2) {
[0]=>
- int(281)
+ int(%d)
[1]=>
string(3) "==="
}
[41]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[42]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
@@ -279,14 +279,14 @@ array(49) {
[44]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[45]=>
array(2) {
[0]=>
- int(304)
+ int(%d)
[1]=>
string(5) "endif"
}
@@ -295,14 +295,14 @@ array(49) {
[47]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[48]=>
array(2) {
[0]=>
- int(369)
+ int(%d)
[1]=>
string(2) "?>"
}
@@ -311,14 +311,14 @@ array(37) {
[0]=>
array(2) {
[0]=>
- int(367)
+ int(%d)
[1]=>
string(6) "<?php "
}
[1]=>
array(2) {
[0]=>
- int(327)
+ int(%d)
[1]=>
string(6) "switch"
}
@@ -327,7 +327,7 @@ array(37) {
[3]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
@@ -336,7 +336,7 @@ array(37) {
[5]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -345,28 +345,28 @@ array(37) {
[7]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[8]=>
array(2) {
[0]=>
- int(329)
+ int(%d)
[1]=>
string(4) "case"
}
[9]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[10]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "1"
}
@@ -375,14 +375,14 @@ array(37) {
[12]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[13]=>
array(2) {
[0]=>
- int(331)
+ int(%d)
[1]=>
string(5) "break"
}
@@ -391,14 +391,14 @@ array(37) {
[15]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[16]=>
array(2) {
[0]=>
- int(330)
+ int(%d)
[1]=>
string(7) "default"
}
@@ -407,14 +407,14 @@ array(37) {
[18]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[19]=>
array(2) {
[0]=>
- int(331)
+ int(%d)
[1]=>
string(5) "break"
}
@@ -423,7 +423,7 @@ array(37) {
[21]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -432,14 +432,14 @@ array(37) {
[23]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[24]=>
array(2) {
[0]=>
- int(318)
+ int(%d)
[1]=>
string(5) "while"
}
@@ -448,7 +448,7 @@ array(37) {
[26]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
@@ -457,7 +457,7 @@ array(37) {
[28]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -466,14 +466,14 @@ array(37) {
[30]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[31]=>
array(2) {
[0]=>
- int(300)
+ int(%d)
[1]=>
string(4) "exit"
}
@@ -482,7 +482,7 @@ array(37) {
[33]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -491,14 +491,14 @@ array(37) {
[35]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[36]=>
array(2) {
[0]=>
- int(369)
+ int(%d)
[1]=>
string(2) "?>"
}
@@ -507,42 +507,42 @@ array(48) {
[0]=>
array(2) {
[0]=>
- int(367)
+ int(%d)
[1]=>
string(2) "<?"
}
[1]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[2]=>
array(2) {
[0]=>
- int(365)
+ int(%d)
[1]=>
string(13) "/* comment */"
}
[3]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[4]=>
array(2) {
[0]=>
- int(301)
+ int(%d)
[1]=>
string(2) "if"
}
[5]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -551,35 +551,35 @@ array(48) {
[7]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "1"
}
[8]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[9]=>
array(2) {
[0]=>
- int(278)
+ int(%d)
[1]=>
string(2) "||"
}
[10]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[11]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
@@ -588,7 +588,7 @@ array(48) {
[13]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -597,7 +597,7 @@ array(48) {
[15]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -606,21 +606,21 @@ array(48) {
[17]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[18]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
[19]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -629,21 +629,21 @@ array(48) {
[21]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[22]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
[23]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -652,14 +652,14 @@ array(48) {
[25]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[26]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "1"
}
@@ -668,21 +668,21 @@ array(48) {
[28]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[29]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$b"
}
[30]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -691,14 +691,14 @@ array(48) {
[32]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[33]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "3"
}
@@ -707,7 +707,7 @@ array(48) {
[35]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
@@ -716,21 +716,21 @@ array(48) {
[37]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[38]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$c"
}
[39]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
@@ -739,14 +739,14 @@ array(48) {
[41]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[42]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "4"
}
@@ -755,7 +755,7 @@ array(48) {
[44]=>
array(2) {
[0]=>
- int(305)
+ int(%d)
[1]=>
string(1) "2"
}
@@ -764,14 +764,14 @@ array(48) {
[46]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) " "
}
[47]=>
array(2) {
[0]=>
- int(369)
+ int(%d)
[1]=>
string(2) "?>"
}
@@ -780,7 +780,7 @@ array(1) {
[0]=>
array(2) {
[0]=>
- int(311)
+ int(%d)
[1]=>
string(17) "wrong syntax here"
}
diff --git a/ext/tokenizer/tests/003.phpt b/ext/tokenizer/tests/003.phpt
index 802728b97..66d088eec 100644
--- a/ext/tokenizer/tests/003.phpt
+++ b/ext/tokenizer/tests/003.phpt
@@ -25,7 +25,7 @@ array(1) {
[0]=>
array(2) {
[0]=>
- int(311)
+ int(%d)
[1]=>
string(1) "0"
}
@@ -34,7 +34,7 @@ array(1) {
[0]=>
array(2) {
[0]=>
- int(311)
+ int(%d)
[1]=>
string(2) "-1"
}
diff --git a/ext/tokenizer/tests/bug26463.phpt b/ext/tokenizer/tests/bug26463.phpt
index 8739c2a2b..c5d2148ea 100644
--- a/ext/tokenizer/tests/bug26463.phpt
+++ b/ext/tokenizer/tests/bug26463.phpt
@@ -20,7 +20,7 @@ array(19) {
[0]=>
array(2) {
[0]=>
- int(367)
+ int(%d)
[1]=>
string(6) "<?php
"
@@ -28,7 +28,7 @@ array(19) {
[1]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$x"
}
@@ -37,7 +37,7 @@ array(19) {
[3]=>
array(2) {
[0]=>
- int(371)
+ int(%d)
[1]=>
string(6) "<<<DD
"
@@ -45,7 +45,7 @@ array(19) {
[4]=>
array(2) {
[0]=>
- int(307)
+ int(%d)
[1]=>
string(13) "jhdsjkfhjdsh
"
@@ -53,14 +53,14 @@ array(19) {
[5]=>
array(2) {
[0]=>
- int(372)
+ int(%d)
[1]=>
string(2) "DD"
}
[6]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) "
"
@@ -70,7 +70,7 @@ array(19) {
[8]=>
array(2) {
[0]=>
- int(315)
+ int(%d)
[1]=>
string(2) """"
}
@@ -79,7 +79,7 @@ array(19) {
[10]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) "
"
@@ -87,7 +87,7 @@ array(19) {
[11]=>
array(2) {
[0]=>
- int(309)
+ int(%d)
[1]=>
string(2) "$a"
}
@@ -96,7 +96,7 @@ array(19) {
[13]=>
array(2) {
[0]=>
- int(371)
+ int(%d)
[1]=>
string(8) "<<<DDDD
"
@@ -104,7 +104,7 @@ array(19) {
[14]=>
array(2) {
[0]=>
- int(307)
+ int(%d)
[1]=>
string(13) "jhdsjkfhjdsh
"
@@ -112,7 +112,7 @@ array(19) {
[15]=>
array(2) {
[0]=>
- int(372)
+ int(%d)
[1]=>
string(4) "DDDD"
}
@@ -121,7 +121,7 @@ array(19) {
[17]=>
array(2) {
[0]=>
- int(370)
+ int(%d)
[1]=>
string(1) "
"
@@ -129,7 +129,7 @@ array(19) {
[18]=>
array(2) {
[0]=>
- int(369)
+ int(%d)
[1]=>
string(2) "?>"
}
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
index d274f8519..ebc13866d 100644
--- a/ext/wddx/wddx.c
+++ b/ext/wddx/wddx.c
@@ -16,7 +16,11 @@
+----------------------------------------------------------------------+
*/
-/* $Id: wddx.c,v 1.119.2.8 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: wddx.c,v 1.119.2.11 2006/05/25 10:01:30 helly Exp $ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
#include "php.h"
@@ -35,6 +39,7 @@
#include "ext/standard/html.h"
#include "ext/standard/php_string.h"
#include "ext/date/php_date.h"
+#include "zend_globals.h"
#define WDDX_BUF_LEN 256
#define PHP_CLASS_NAME_VAR "php_class_name"
@@ -746,7 +751,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X
} else if (!strcmp(name, EL_CHAR)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_CHAR_CODE) && atts[++i] && atts[i][0]) {
char tmp_buf[2];
@@ -766,7 +771,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X
} else if (!strcmp(name, EL_BOOLEAN)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_VALUE) && atts[++i] && atts[i][0]) {
ent.type = ST_BOOLEAN;
SET_STACK_VARNAME;
@@ -807,7 +812,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X
} else if (!strcmp(name, EL_VAR)) {
int i;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_NAME) && atts[++i] && atts[i][0]) {
char *decoded;
int decoded_len;
@@ -824,7 +829,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X
MAKE_STD_ZVAL(ent.data);
array_init(ent.data);
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], "fieldNames") && atts[++i] && atts[i][0]) {
zval *tmp;
char *key;
@@ -864,7 +869,7 @@ static void php_wddx_push_element(void *user_data, const XML_Char *name, const X
ent.varname = NULL;
ent.data = NULL;
- for (i = 0; atts[i]; i++) {
+ if (atts) for (i = 0; atts[i]; i++) {
if (!strcmp(atts[i], EL_NAME) && atts[++i] && atts[i][0]) {
char *decoded;
int decoded_len;
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index e96daf640..d62052bb7 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xml.c,v 1.157.2.3 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: xml.c,v 1.157.2.4 2006/02/02 21:43:09 tony2001 Exp $ */
#define IS_EXT_MODULE
@@ -1358,9 +1358,8 @@ PHP_FUNCTION(xml_parse_into_struct)
{
xml_parser *parser;
zval **pind, **data, **xdata, **info = 0;
- int argc, ret;
+ int ret;
- argc = ZEND_NUM_ARGS();
if (zend_get_parameters_ex(4, &pind, &data, &xdata,&info) == SUCCESS) {
zval_dtor(*info);
array_init(*info);
diff --git a/ext/xmlreader/php_xmlreader.c b/ext/xmlreader/php_xmlreader.c
index d70fb9d93..1f764b49d 100644
--- a/ext/xmlreader/php_xmlreader.c
+++ b/ext/xmlreader/php_xmlreader.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_xmlreader.c,v 1.13.2.8 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: php_xmlreader.c,v 1.13.2.14 2006/04/03 14:59:30 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -110,6 +110,40 @@ static int xmlreader_property_reader(xmlreader_object *obj, xmlreader_prop_handl
}
/* }}} */
+/* {{{ xmlreader_get_property_ptr_ptr */
+zval **xmlreader_get_property_ptr_ptr(zval *object, zval *member TSRMLS_DC)
+{
+ xmlreader_object *obj;
+ zval tmp_member;
+ zval **retval = NULL;
+ xmlreader_prop_handler *hnd;
+ zend_object_handlers *std_hnd;
+ int ret = FAILURE;
+
+ if (member->type != IS_STRING) {
+ tmp_member = *member;
+ zval_copy_ctor(&tmp_member);
+ convert_to_string(&tmp_member);
+ member = &tmp_member;
+ }
+
+ obj = (xmlreader_object *)zend_objects_get_address(object TSRMLS_CC);
+
+ if (obj->prop_handler != NULL) {
+ ret = zend_hash_find(obj->prop_handler, Z_STRVAL_P(member), Z_STRLEN_P(member)+1, (void **) &hnd);
+ }
+ if (ret == FAILURE) {
+ std_hnd = zend_get_std_object_handlers();
+ retval = std_hnd->get_property_ptr_ptr(object, member TSRMLS_CC);
+ }
+
+ if (member == &tmp_member) {
+ zval_dtor(member);
+ }
+ return retval;
+}
+/* }}} */
+
/* {{{ xmlreader_read_property */
zval *xmlreader_read_property(zval *object, zval *member, int type TSRMLS_DC)
{
@@ -343,9 +377,20 @@ void xmlreader_objects_free_storage(void *object TSRMLS_DC)
{
xmlreader_object *intern = (xmlreader_object *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
-
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
+#else
+ if (intern->std.guards) {
+ zend_hash_destroy(intern->std.guards);
+ FREE_HASHTABLE(intern->std.guards);
+ }
+
+ if (intern->std.properties) {
+ zend_hash_destroy(intern->std.properties);
+ FREE_HASHTABLE(intern->std.properties);
+ }
+#endif
+
xmlreader_free_resources(intern);
efree(object);
@@ -360,15 +405,21 @@ zend_object_value xmlreader_objects_new(zend_class_entry *class_type TSRMLS_DC)
zval *tmp;
intern = emalloc(sizeof(xmlreader_object));
- intern->std.ce = class_type;
- intern->std.guards = NULL;
intern->ptr = NULL;
intern->input = NULL;
intern->schema = NULL;
intern->prop_handler = &xmlreader_prop_handlers;
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
+#else
ALLOC_HASHTABLE(intern->std.properties);
zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+
+ intern->std.ce = class_type;
+ intern->std.guards = NULL;
+#endif
+
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
retval.handle = zend_objects_store_put(intern, (zend_objects_store_dtor_t)zend_objects_destroy_object, (zend_objects_free_object_storage_t) xmlreader_objects_free_storage, xmlreader_objects_clone TSRMLS_CC);
intern->handle = retval.handle;
@@ -405,7 +456,7 @@ static void php_xmlreader_string_arg(INTERNAL_FUNCTION_PARAMETERS, xmlreader_rea
xmlFree(retchar);
return;
} else {
- RETVAL_EMPTY_STRING();
+ RETVAL_NULL();
}
}
/* }}} */
@@ -537,7 +588,7 @@ Get value of an attribute at index from current element */
PHP_METHOD(xmlreader, getAttributeNo)
{
zval *id;
- int attr_pos;
+ long attr_pos;
char *retchar = NULL;
xmlreader_object *intern;
@@ -600,7 +651,8 @@ Indicates whether given property (one of the parser option constants) is set or
PHP_METHOD(xmlreader, getParserProperty)
{
zval *id;
- int property, retval = -1;
+ long property;
+ int retval = -1;
xmlreader_object *intern;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &property) == FAILURE) {
@@ -678,7 +730,8 @@ Returns TRUE on success and FALSE on failure */
PHP_METHOD(xmlreader, moveToAttributeNo)
{
zval *id;
- int attr_pos, retval;
+ long attr_pos;
+ int retval;
xmlreader_object *intern;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &attr_pos) == FAILURE) {
@@ -829,7 +882,7 @@ PHP_METHOD(xmlreader, open)
{
zval *id;
int source_len = 0;
- xmlreader_object *intern;
+ xmlreader_object *intern = NULL;
char *source, *valid_file = NULL;
char resolved_path[MAXPATHLEN + 1];
xmlTextReaderPtr reader = NULL;
@@ -951,7 +1004,7 @@ PHP_METHOD(xmlreader, XML)
{
zval *id;
int source_len = 0;
- xmlreader_object *intern;
+ xmlreader_object *intern = NULL;
char *source, *uri = NULL;
int resolved_path_len;
char *directory=NULL, resolved_path[MAXPATHLEN];
@@ -1096,7 +1149,7 @@ PHP_MINIT_FUNCTION(xmlreader)
memcpy(&xmlreader_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
xmlreader_object_handlers.read_property = xmlreader_read_property;
xmlreader_object_handlers.write_property = xmlreader_write_property;
- xmlreader_object_handlers.get_property_ptr_ptr = NULL;
+ xmlreader_object_handlers.get_property_ptr_ptr = xmlreader_get_property_ptr_ptr;
INIT_CLASS_ENTRY(ce, "XMLReader", xmlreader_functions);
ce.create_object = xmlreader_objects_new;
diff --git a/ext/xmlreader/tests/011.phpt b/ext/xmlreader/tests/011.phpt
new file mode 100644
index 000000000..be31bbe47
--- /dev/null
+++ b/ext/xmlreader/tests/011.phpt
@@ -0,0 +1,34 @@
+--TEST--
+XMLReader: libxml2 XML Reader, string data
+--SKIPIF--
+<?php if (!extension_loaded("xmlreader")) print "skip";
+$reader = new XMLReader();
+if (!method_exists($reader, 'readInnerXml')) print "skip";
+?>
+--FILE--
+<?php
+/* $Id: 011.phpt,v 1.2.2.2 2006/03/30 21:47:21 helly Exp $ */
+
+$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
+<books><book>test</book></books>';
+
+$reader = new XMLReader();
+$reader->XML($xmlstring);
+$reader->read();
+echo $reader->readInnerXml();
+echo "\n";
+$reader->close();
+
+
+$reader = new XMLReader();
+$reader->XML($xmlstring);
+$reader->read();
+echo $reader->readOuterXml();
+echo "\n";
+$reader->close();
+?>
+===DONE===
+--EXPECT--
+<book>test</book>
+<books><book>test</book></books>
+===DONE===
diff --git a/ext/xmlreader/tests/012.dtd b/ext/xmlreader/tests/012.dtd
new file mode 100755
index 000000000..b65412af0
--- /dev/null
+++ b/ext/xmlreader/tests/012.dtd
@@ -0,0 +1,2 @@
+<!ELEMENT foo EMPTY>
+<!ATTLIST foo bar CDATA '' baz CDATA ''>
diff --git a/ext/xmlreader/tests/012.phpt b/ext/xmlreader/tests/012.phpt
new file mode 100755
index 000000000..ccd9d3b0b
--- /dev/null
+++ b/ext/xmlreader/tests/012.phpt
@@ -0,0 +1,69 @@
+--TEST--
+XMLReader: accessing empty and non existing attributes
+--SKIPIF--
+<?php if (!extension_loaded("xmlreader")) print "skip"; ?>
+--FILE--
+<?php
+/* $Id: 012.phpt,v 1.1.2.2 2006/03/30 21:47:21 helly Exp $ */
+
+$xmlstring =<<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<foo bar=""/>
+EOF;
+
+$reader = new XMLReader();
+$reader->XML($xmlstring);
+$reader->read();
+var_dump($reader->getAttribute('bar'));
+var_dump($reader->getAttribute('baz'));
+$reader->close();
+
+$xmlstring =<<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE foo SYSTEM "012.dtd">
+<foo bar=""/>
+EOF;
+
+$xmlstring = str_replace('012.dtd', dirname(__FILE__).'/012.dtd', $xmlstring);
+
+$reader = new XMLReader();
+$reader->XML($xmlstring);
+$reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
+while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
+var_dump($reader->getAttribute('bar'));
+var_dump($reader->getAttribute('baz'));
+$reader->close();
+
+?>
+===FILE===
+<?php
+
+$reader = new XMLReader();
+$reader->open(dirname(__FILE__) . '/012.xml');
+//$reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
+while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
+var_dump($reader->getAttribute('bar'));
+var_dump($reader->getAttribute('baz'));
+$reader->close();
+
+$reader = new XMLReader();
+$reader->open(dirname(__FILE__) . '/012.xml');
+$reader->setParserProperty(XMLReader::DEFAULTATTRS, true);
+while($reader->read() && $reader->nodeType != XMLReader::ELEMENT);
+var_dump($reader->getAttribute('bar'));
+var_dump($reader->getAttribute('baz'));
+$reader->close();
+
+?>
+===DONE===
+--EXPECT--
+string(0) ""
+NULL
+string(0) ""
+string(0) ""
+===FILE===
+string(0) ""
+NULL
+string(0) ""
+string(0) ""
+===DONE===
diff --git a/ext/xmlreader/tests/012.xml b/ext/xmlreader/tests/012.xml
new file mode 100755
index 000000000..5012bd5ef
--- /dev/null
+++ b/ext/xmlreader/tests/012.xml
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE foo SYSTEM "012.dtd">
+<foo bar=""/>
diff --git a/ext/xmlreader/tests/bug36743.phpt b/ext/xmlreader/tests/bug36743.phpt
new file mode 100644
index 000000000..45747d49f
--- /dev/null
+++ b/ext/xmlreader/tests/bug36743.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #36743 (In a class extending XMLReader array properties are not writable)
+--FILE--
+<?php
+
+class Test extends XMLReader
+{
+ private $testArr = array();
+ public function __construct()
+ {
+ $this->testArr[] = 1;
+ var_dump($this->testArr);
+ }
+}
+
+$t = new test;
+
+echo "Done\n";
+?>
+--EXPECT--
+array(1) {
+ [0]=>
+ int(1)
+}
+Done
diff --git a/ext/xmlrpc/tests/bug37057.phpt b/ext/xmlrpc/tests/bug37057.phpt
new file mode 100644
index 000000000..0764d8af6
--- /dev/null
+++ b/ext/xmlrpc/tests/bug37057.phpt
@@ -0,0 +1,62 @@
+--TEST--
+Bug #37057 (xmlrpc_decode() may produce arrays with numeric string keys which are unaccessible)
+--FILE--
+<?php
+$response='<?xml version="1.0"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>50</name>
+ <value><string>0.29</string></value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse>';
+
+$retval=xmlrpc_decode($response);
+var_dump($retval);
+var_dump($retval["50"]);
+var_dump($retval[50]);
+
+$response='<?xml version="1.0"?>
+<methodResponse>
+ <params>
+ <param>
+ <value>
+ <struct>
+ <member>
+ <name>0</name>
+ <value><string>0.29</string></value>
+ </member>
+ </struct>
+ </value>
+ </param>
+ </params>
+</methodResponse>';
+
+$retval=xmlrpc_decode($response);
+var_dump($retval);
+var_dump($retval["0"]);
+var_dump($retval[0]);
+
+echo "Done\n";
+?>
+--EXPECT--
+array(1) {
+ [50]=>
+ string(4) "0.29"
+}
+string(4) "0.29"
+string(4) "0.29"
+array(1) {
+ [0]=>
+ string(4) "0.29"
+}
+string(4) "0.29"
+string(4) "0.29"
+Done
diff --git a/ext/xmlrpc/tests/bug38431.phpt b/ext/xmlrpc/tests/bug38431.phpt
new file mode 100644
index 000000000..288fe1041
--- /dev/null
+++ b/ext/xmlrpc/tests/bug38431.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #38431 (xmlrpc_get_type() crashes PHP on objects)
+--SKIPIF--
+<?php if (!extension_loaded("xmlrpc")) print "skip"; ?>
+--FILE--
+<?php
+
+var_dump(xmlrpc_get_type(new stdclass));
+var_dump(xmlrpc_get_type(array()));
+$var = array(1,2,3);
+var_dump(xmlrpc_get_type($var));
+$var = array("test"=>1,2,3);
+var_dump(xmlrpc_get_type($var));
+$var = array("test"=>1,"test2"=>2);
+var_dump(xmlrpc_get_type($var));
+
+echo "Done\n";
+?>
+--EXPECTF--
+string(5) "array"
+string(5) "array"
+string(5) "array"
+string(5) "mixed"
+string(6) "struct"
+Done
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c
index 6af8009de..9a043e59e 100644
--- a/ext/xmlrpc/xmlrpc-epi-php.c
+++ b/ext/xmlrpc/xmlrpc-epi-php.c
@@ -51,7 +51,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xmlrpc-epi-php.c,v 1.39.2.4 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: xmlrpc-epi-php.c,v 1.39.2.7 2006/08/11 19:16:29 tony2001 Exp $ */
/**********************************************************************
* BUGS: *
@@ -300,7 +300,13 @@ static int add_zval(zval* list, const char* id, zval** val)
{
if (list && val) {
if (id) {
- return zend_hash_update(Z_ARRVAL_P(list), (char*) id, strlen(id) + 1, (void *) val, sizeof(zval **), NULL);
+ int id_len = strlen(id);
+ if (!(id_len > 1 && id[0] == '0') && is_numeric_string((char *)id, id_len, NULL, NULL, 0) == IS_LONG) {
+ long index = strtol(id, NULL, 0);
+ return zend_hash_index_update(Z_ARRVAL_P(list), index, (void *) val, sizeof(zval **), NULL);
+ } else {
+ return zend_hash_update(Z_ARRVAL_P(list), (char*) id, strlen(id) + 1, (void *) val, sizeof(zval **), NULL);
+ }
} else {
return zend_hash_next_index_insert(Z_ARRVAL_P(list), (void *) val, sizeof(zval **), NULL);
}
diff --git a/ext/xmlwriter/CREDITS b/ext/xmlwriter/CREDITS
index d3a9ebe1b..e40bc651a 100644
--- a/ext/xmlwriter/CREDITS
+++ b/ext/xmlwriter/CREDITS
@@ -1,3 +1,2 @@
XMLWriter
-Rob Richards
-Pierre-Alain Joye
+Rob Richards, Pierre-Alain Joye
diff --git a/ext/xmlwriter/php_xmlwriter.c b/ext/xmlwriter/php_xmlwriter.c
index d80afa148..72c035bd9 100644
--- a/ext/xmlwriter/php_xmlwriter.c
+++ b/ext/xmlwriter/php_xmlwriter.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_xmlwriter.c,v 1.20.2.9 2006/01/01 12:50:16 sniper Exp $ */
+/* $Id: php_xmlwriter.c,v 1.20.2.12 2006/04/03 14:59:30 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -77,10 +77,20 @@ static void xmlwriter_object_free_storage(void *object TSRMLS_DC)
xmlwriter_free_resource_ptr(intern->xmlwriter_ptr TSRMLS_CC);
}
intern->xmlwriter_ptr = NULL;
+
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_dtor(&intern->zo TSRMLS_CC);
+#else
+ if (intern->zo.guards) {
+ zend_hash_destroy(intern->zo.guards);
+ FREE_HASHTABLE(intern->zo.guards);
+ }
+
if (intern->zo.properties) {
zend_hash_destroy(intern->zo.properties);
FREE_HASHTABLE(intern->zo.properties);
}
+#endif
efree(intern);
}
@@ -96,11 +106,18 @@ PHP_XMLWRITER_API zend_object_value xmlwriter_object_new(zend_class_entry *class
intern = emalloc(sizeof(ze_xmlwriter_object));
memset(&intern->zo, 0, sizeof(zend_object));
- intern->zo.ce = class_type;
intern->xmlwriter_ptr = NULL;
-
+
+#if (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION == 1 && PHP_RELEASE_VERSION > 2) || (PHP_MAJOR_VERSION == 5 && PHP_MINOR_VERSION > 1) || (PHP_MAJOR_VERSION > 5)
+ zend_object_std_init(&intern->zo, class_type TSRMLS_CC);
+#else
ALLOC_HASHTABLE(intern->zo.properties);
zend_hash_init(intern->zo.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+
+ intern->zo.ce = class_type;
+ intern->zo.guards = NULL;
+#endif
+
zend_hash_copy(intern->zo.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref,
(void *) &tmp, sizeof(zval *));
@@ -1615,7 +1632,7 @@ PHP_FUNCTION(xmlwriter_open_uri)
#ifdef ZEND_ENGINE_2
zval *this = getThis();
- ze_xmlwriter_object *ze_obj;
+ ze_xmlwriter_object *ze_obj = NULL;
#endif
#ifndef ZEND_ENGINE_2
@@ -1694,7 +1711,7 @@ PHP_FUNCTION(xmlwriter_open_memory)
#ifdef ZEND_ENGINE_2
zval *this = getThis();
- ze_xmlwriter_object *ze_obj;
+ ze_xmlwriter_object *ze_obj = NULL;
#endif
#ifdef ZEND_ENGINE_2
diff --git a/ext/xsl/php_xsl.c b/ext/xsl/php_xsl.c
index 91e392844..b176c2e97 100644
--- a/ext/xsl/php_xsl.c
+++ b/ext/xsl/php_xsl.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_xsl.c,v 1.32.2.5 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_xsl.c,v 1.32.2.6 2006/03/29 14:28:43 tony2001 Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -80,8 +80,7 @@ void xsl_objects_free_storage(void *object TSRMLS_DC)
{
xsl_object *intern = (xsl_object *)object;
- zend_hash_destroy(intern->std.properties);
- FREE_HASHTABLE(intern->std.properties);
+ zend_object_std_dtor(&intern->std TSRMLS_CC);
zend_hash_destroy(intern->parameter);
FREE_HASHTABLE(intern->parameter);
@@ -119,8 +118,6 @@ zend_object_value xsl_objects_new(zend_class_entry *class_type TSRMLS_DC)
zval *tmp;
intern = emalloc(sizeof(xsl_object));
- intern->std.ce = class_type;
- intern->std.guards = NULL;
intern->ptr = NULL;
intern->prop_handler = NULL;
intern->parameter = NULL;
@@ -130,8 +127,7 @@ zend_object_value xsl_objects_new(zend_class_entry *class_type TSRMLS_DC)
intern->node_list = NULL;
intern->doc = NULL;
- ALLOC_HASHTABLE(intern->std.properties);
- zend_hash_init(intern->std.properties, 0, NULL, ZVAL_PTR_DTOR, 0);
+ zend_object_std_init(&intern->std, class_type TSRMLS_CC);
zend_hash_copy(intern->std.properties, &class_type->default_properties, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *));
ALLOC_HASHTABLE(intern->parameter);
zend_hash_init(intern->parameter, 0, NULL, ZVAL_PTR_DTOR, 0);
diff --git a/ext/xsl/xsltprocessor.c b/ext/xsl/xsltprocessor.c
index 7fad460d9..58a903868 100644
--- a/ext/xsl/xsltprocessor.c
+++ b/ext/xsl/xsltprocessor.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xsltprocessor.c,v 1.39.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: xsltprocessor.c,v 1.39.2.3 2006/06/14 09:43:22 chregu Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -231,8 +231,7 @@ static void xsl_ext_function_php(xmlXPathParserContextPtr ctxt, int nargs, int t
}
break;
default:
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "php:function object type %d is not supported yet", obj->type);
- ZVAL_STRING(args[i], "", 0);
+ ZVAL_STRING(args[i], xmlXPathCastToString(obj), 1);
}
xmlXPathFreeObject(obj);
fci.params[i] = &args[i];
diff --git a/generated_lists b/generated_lists
index a31652043..f3d34ffc9 100644
--- a/generated_lists
+++ b/generated_lists
@@ -1,3 +1,3 @@
makefile_am_files = Zend/Makefile.am TSRM/Makefile.am
config_h_files = Zend/acconfig.h TSRM/acconfig.h
-config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 TSRM/threads.m4 Zend/acinclude.m4 ext/bcmath/config.m4 ext/bz2/config.m4 ext/calendar/config.m4 ext/ctype/config.m4 ext/curl/config.m4 ext/date/config.m4 ext/dba/config.m4 ext/dbase/config.m4 ext/dom/config.m4 ext/exif/config.m4 ext/fbsql/config.m4 ext/fdf/config.m4 ext/filepro/config.m4 ext/ftp/config.m4 ext/gd/config.m4 ext/gettext/config.m4 ext/gmp/config.m4 ext/hash/config.m4 ext/hwapi/config.m4 ext/iconv/config.m4 ext/imap/config.m4 ext/informix/config.m4 ext/interbase/config.m4 ext/ldap/config.m4 ext/libxml/config0.m4 ext/mbstring/config.m4 ext/mcrypt/config.m4 ext/mhash/config.m4 ext/mime_magic/config.m4 ext/ming/config.m4 ext/msession/config.m4 ext/msql/config.m4 ext/mssql/config.m4 ext/mysql/config.m4 ext/mysqli/config.m4 ext/ncurses/config.m4 ext/oci8/config.m4 ext/odbc/config.m4 ext/openssl/config0.m4 ext/pcntl/config.m4 ext/pcre/config0.m4 ext/pdo/config.m4 ext/pdo_dblib/config.m4 ext/pdo_firebird/config.m4 ext/pdo_mysql/config.m4 ext/pdo_oci/config.m4 ext/pdo_odbc/config.m4 ext/pdo_pgsql/config.m4 ext/pdo_sqlite/config.m4 ext/pgsql/config.m4 ext/posix/config.m4 ext/pspell/config.m4 ext/readline/config.m4 ext/recode/config.m4 ext/recode/config9.m4 ext/reflection/config.m4 ext/session/config.m4 ext/shmop/config.m4 ext/simplexml/config.m4 ext/snmp/config.m4 ext/soap/config.m4 ext/sockets/config.m4 ext/spl/config.m4 ext/sqlite/config.m4 ext/standard/config.m4 ext/sybase/config.m4 ext/sybase_ct/config.m4 ext/sysvmsg/config.m4 ext/sysvsem/config.m4 ext/sysvshm/config.m4 ext/tidy/config.m4 ext/tokenizer/config.m4 ext/wddx/config.m4 ext/xml/config.m4 ext/xmlreader/config.m4 ext/xmlrpc/config.m4 ext/xmlwriter/config.m4 ext/xsl/config.m4 ext/zlib/config0.m4 sapi/aolserver/config.m4 sapi/apache/config.m4 sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 sapi/apache_hooks/config.m4 sapi/caudium/config.m4 sapi/cli/config.m4 sapi/continuity/config.m4 sapi/embed/config.m4 sapi/isapi/config.m4 sapi/milter/config.m4 sapi/nsapi/config.m4 sapi/phttpd/config.m4 sapi/pi3web/config.m4 sapi/roxen/config.m4 sapi/thttpd/config.m4 sapi/tux/config.m4 sapi/webjames/config.m4
+config_m4_files = Zend/Zend.m4 TSRM/tsrm.m4 TSRM/threads.m4 Zend/acinclude.m4 ext/bcmath/config.m4 ext/bz2/config.m4 ext/calendar/config.m4 ext/ctype/config.m4 ext/curl/config.m4 ext/date/config.m4 ext/dba/config.m4 ext/dbase/config.m4 ext/dom/config.m4 ext/exif/config.m4 ext/fbsql/config.m4 ext/fdf/config.m4 ext/filepro/config.m4 ext/ftp/config.m4 ext/gd/config.m4 ext/gettext/config.m4 ext/gmp/config.m4 ext/hash/config.m4 ext/hwapi/config.m4 ext/iconv/config.m4 ext/imap/config.m4 ext/informix/config.m4 ext/interbase/config.m4 ext/ldap/config.m4 ext/libxml/config0.m4 ext/mbstring/config.m4 ext/mcrypt/config.m4 ext/mhash/config.m4 ext/mime_magic/config.m4 ext/ming/config.m4 ext/msql/config.m4 ext/mssql/config.m4 ext/mysql/config.m4 ext/mysqli/config.m4 ext/ncurses/config.m4 ext/oci8/config.m4 ext/odbc/config.m4 ext/openssl/config0.m4 ext/pcntl/config.m4 ext/pcre/config0.m4 ext/pdo/config.m4 ext/pdo_dblib/config.m4 ext/pdo_firebird/config.m4 ext/pdo_mysql/config.m4 ext/pdo_oci/config.m4 ext/pdo_odbc/config.m4 ext/pdo_pgsql/config.m4 ext/pdo_sqlite/config.m4 ext/pgsql/config.m4 ext/posix/config.m4 ext/pspell/config.m4 ext/readline/config.m4 ext/recode/config.m4 ext/recode/config9.m4 ext/reflection/config.m4 ext/session/config.m4 ext/shmop/config.m4 ext/simplexml/config.m4 ext/snmp/config.m4 ext/soap/config.m4 ext/sockets/config.m4 ext/spl/config.m4 ext/sqlite/config.m4 ext/standard/config.m4 ext/sybase/config.m4 ext/sybase_ct/config.m4 ext/sysvmsg/config.m4 ext/sysvsem/config.m4 ext/sysvshm/config.m4 ext/tidy/config.m4 ext/tokenizer/config.m4 ext/wddx/config.m4 ext/xml/config.m4 ext/xmlreader/config.m4 ext/xmlrpc/config.m4 ext/xmlwriter/config.m4 ext/xsl/config.m4 ext/zlib/config0.m4 sapi/aolserver/config.m4 sapi/apache/config.m4 sapi/apache2filter/config.m4 sapi/apache2handler/config.m4 sapi/apache_hooks/config.m4 sapi/caudium/config.m4 sapi/cli/config.m4 sapi/continuity/config.m4 sapi/embed/config.m4 sapi/isapi/config.m4 sapi/milter/config.m4 sapi/nsapi/config.m4 sapi/phttpd/config.m4 sapi/pi3web/config.m4 sapi/roxen/config.m4 sapi/thttpd/config.m4 sapi/tux/config.m4 sapi/webjames/config.m4
diff --git a/main/build-defs.h.in b/main/build-defs.h.in
index fe5b2e781..240d2a578 100644
--- a/main/build-defs.h.in
+++ b/main/build-defs.h.in
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: build-defs.h.in,v 1.15.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: build-defs.h.in,v 1.15.2.2 2006/04/08 17:53:11 andrei Exp $ */
#define CONFIGURE_COMMAND "@CONFIGURE_COMMAND@"
#define PHP_ADA_INCLUDE ""
@@ -88,4 +88,4 @@
#define PHP_LOCALSTATEDIR "@EXPANDED_LOCALSTATEDIR@"
#define PHP_CONFIG_FILE_PATH "@EXPANDED_PHP_CONFIG_FILE_PATH@"
#define PHP_CONFIG_FILE_SCAN_DIR "@EXPANDED_PHP_CONFIG_FILE_SCAN_DIR@"
-#define PHP_SHLIB_SUFFIX "@SHLIB_SUFFIX_NAME@"
+#define PHP_SHLIB_SUFFIX "@SHLIB_DL_SUFFIX_NAME@"
diff --git a/main/config.w32.h b/main/config.w32.h
index 36a924544..f9e6d1f75 100644
--- a/main/config.w32.h
+++ b/main/config.w32.h
@@ -2,7 +2,7 @@
Build Configuration for Win32.
This has only been tested with MS VisualC++ 6 (and later).
- $Id: config.w32.h,v 1.85.4.1 2005/09/15 19:11:15 derick Exp $
+ $Id: config.w32.h,v 1.85.4.2 2006/06/05 08:30:54 stas Exp $
*/
/* Default PHP / PEAR directories */
@@ -72,9 +72,13 @@
#define HAVE_DOM 1
#define HAVE_SIMPLEXML 1
#define HAVE_XML 1
+#define HAVE_XMLREADER 1
+#define HAVE_XMLWRITER 1
+#define HAVE_LIBXML_PARSER_H 1
/* Enable / Disable ZLIB extension (default: enabled) */
#define HAVE_ZLIB 1
+#define HAVE_ZLIB_H 1
/* Enable / Disable SQLite extension (default: enabled) */
#define HAVE_SQLITE 1
@@ -190,7 +194,6 @@
#define HAVE_SQLDATASOURCES
#define POSIX_MALLOC_THRESHOLD 10
-
/*
* defining HAVE_SOCKLEN_T prevents PHP from building with the latest platform SDK...
* #define HAVE_SOCKLEN_T
@@ -203,3 +206,44 @@
#define PHP_CAN_SUPPORT_PROC_OPEN 1
#define HAVE_MBLEN
+
+#undef HAVE_ATOF_ACCEPTS_NAN
+#undef HAVE_ATOF_ACCEPTS_INF
+#define HAVE_HUGE_VAL_NAN 1
+
+/* vs.net 2005 has a 64-bit time_t. This will likely break
+ * 3rdParty libs that were built with older compilers; switch
+ * back to 32-bit */
+#define _USE_32BIT_TIME_T 1
+#define HAVE_STDLIB_H 1
+/* have the arpa\nameser.h header file */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* undefined */
+#define PHP_FASTCGI 1
+
+/* Have COM_DOTNET support */
+#define HAVE_COM_DOTNET 1
+
+/* Have date/time support */
+#define HAVE_DATE 1
+
+/* GD support */
+#define HAVE_LIBGD 1
+/* undefined */
+#define HAVE_HASH_EXT 1
+
+/* Define if iconv extension is enabled */
+#define HAVE_ICONV 1
+
+/* Define if libiconv is available */
+#define HAVE_LIBICONV 1
+
+/* Which iconv implementation to use */
+#define PHP_ICONV_IMPL "\"libiconv\""
+
+/* Whether iconv supports errno or not */
+#define ICONV_SUPPORTS_ERRNO 1
+
+/* SPL support */
+#define HAVE_SPL 1
diff --git a/main/fopen_wrappers.c b/main/fopen_wrappers.c
index c75454103..e248fa1c7 100644
--- a/main/fopen_wrappers.c
+++ b/main/fopen_wrappers.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: fopen_wrappers.c,v 1.175.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: fopen_wrappers.c,v 1.175.2.3 2006/03/17 10:42:31 dmitry Exp $ */
/* {{{ includes
*/
@@ -518,9 +518,13 @@ PHPAPI char *expand_filepath(const char *filepath, char *real_path TSRMLS_DC)
char cwd[MAXPATHLEN];
char *result;
- result = VCWD_GETCWD(cwd, MAXPATHLEN);
- if (!result) {
+ if (IS_ABSOLUTE_PATH(filepath, strlen(filepath))) {
cwd[0] = '\0';
+ } else{
+ result = VCWD_GETCWD(cwd, MAXPATHLEN);
+ if (!result) {
+ cwd[0] = '\0';
+ }
}
new_state.cwd = strdup(cwd);
diff --git a/main/internal_functions_win32.c b/main/internal_functions_win32.c
index 14ac20521..496fe288e 100644
--- a/main/internal_functions_win32.c
+++ b/main/internal_functions_win32.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: internal_functions_win32.c,v 1.87.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: internal_functions_win32.c,v 1.87.2.3 2006/06/05 08:45:50 stas Exp $ */
/* {{{ includes
*/
@@ -48,6 +48,7 @@
#include "ext/standard/php_lcg.h"
#include "ext/standard/php_array.h"
#include "ext/standard/php_assert.h"
+#include "ext/reflection/php_reflection.h"
#if HAVE_BCMATH
#include "ext/bcmath/php_bcmath.h"
#endif
@@ -57,9 +58,15 @@
#if HAVE_CTYPE
#include "ext/ctype/php_ctype.h"
#endif
+#if HAVE_DATE
+#include "ext/date/php_date.h"
+#endif
#if HAVE_FTP
#include "ext/ftp/php_ftp.h"
#endif
+#if HAVE_ICONV
+#include "ext/iconv/php_iconv.h"
+#endif
#include "ext/standard/reg.h"
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
#include "ext/pcre/php_pcre.h"
@@ -98,6 +105,15 @@
#include "ext/sqlite/php_sqlite.h"
#endif
#include "ext/com_dotnet/php_com_dotnet.h"
+#ifdef HAVE_SPL
+#include "ext/spl/php_spl.h"
+#endif
+#if HAVE_XML && HAVE_XMLREADER
+#include "ext/xmlreader/php_xmlreader.h"
+#endif
+#if HAVE_XML && HAVE_XMLWRITER
+#include "ext/xmlwriter/php_xmlwriter.h"
+#endif
/* }}} */
/* {{{ php_builtin_extensions[]
@@ -114,9 +130,18 @@ zend_module_entry *php_builtin_extensions[] = {
#if HAVE_CTYPE
,phpext_ctype_ptr
#endif
+#if HAVE_DATE
+ ,phpext_date_ptr
+#endif
#if HAVE_FTP
,phpext_ftp_ptr
#endif
+#if HAVE_HASH
+ ,phpext_hash_ptr
+#endif
+#if HAVE_ICONV
+ ,phpext_iconv_ptr
+#endif
#if HAVE_MBSTRING
,phpext_mbstring_ptr
#endif
@@ -126,6 +151,7 @@ zend_module_entry *php_builtin_extensions[] = {
#if HAVE_PCRE || HAVE_BUNDLED_PCRE
,phpext_pcre_ptr
#endif
+ ,phpext_reflection_ptr
#if HAVE_PHP_SESSION
,phpext_session_ptr
#endif
@@ -153,6 +179,15 @@ zend_module_entry *php_builtin_extensions[] = {
#if HAVE_SQLITE
,phpext_sqlite_ptr
#endif
+#if HAVE_SPL
+ ,phpext_spl_ptr
+#endif
+#if HAVE_XML && HAVE_XMLREADER
+ ,phpext_xmlreader_ptr
+#endif
+#if HAVE_XML && HAVE_XMLWRITER
+ ,phpext_xmlwriter_ptr
+#endif
};
/* }}} */
diff --git a/main/logos.h b/main/logos.h
index 9fa4073f5..782f9cb1a 100644
--- a/main/logos.h
+++ b/main/logos.h
@@ -16,9 +16,9 @@
+----------------------------------------------------------------------+
*/
-/* $Id: logos.h,v 1.14.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: logos.h,v 1.14.2.3 2006/04/02 17:58:17 iliaa Exp $ */
-#define CONTEXT_TYPE_IMAGE_GIF "Content-Type: image/gif"
+#define CONTEXT_TYPE_IMAGE_GIF "Content-Type: image/gif"
unsigned char zend_logo[] = {
71, 73, 70, 56, 57, 97, 113, 0, 72, 0,
@@ -239,1114 +239,638 @@ unsigned char zend_logo[] = {
unsigned char php_logo[] = {
71, 73, 70, 56, 57, 97, 120, 0, 67, 0,
- 247, 255, 0, 0, 0, 0, 73, 72, 73, 233,
- 231, 234, 228, 224, 232, 65, 64, 67, 228, 227,
- 230, 80, 78, 86, 61, 60, 64, 215, 213, 223,
- 201, 199, 213, 99, 97, 116, 84, 83, 92, 192,
- 190, 208, 105, 103, 127, 102, 100, 123, 183, 181,
- 203, 216, 215, 225, 143, 141, 174, 89, 88, 104,
- 160, 158, 186, 95, 94, 109, 106, 105, 133, 98,
- 97, 121, 165, 164, 189, 175, 174, 199, 151, 150,
- 196, 145, 144, 178, 161, 160, 194, 152, 151, 183,
- 7, 7, 10, 28, 28, 38, 14, 14, 19, 138,
- 138, 185, 129, 129, 173, 102, 102, 137, 151, 151,
- 202, 146, 146, 195, 145, 145, 194, 130, 130, 174,
- 116, 116, 155, 97, 97, 130, 152, 152, 202, 151,
- 151, 201, 149, 149, 198, 148, 148, 197, 147, 147,
- 196, 145, 145, 193, 142, 142, 189, 140, 140, 186,
- 137, 137, 182, 136, 136, 181, 133, 133, 177, 128,
- 128, 170, 113, 113, 150, 106, 106, 141, 101, 101,
- 134, 90, 90, 120, 3, 3, 4, 127, 127, 168,
- 99, 99, 131, 40, 40, 53, 146, 146, 192, 133,
- 133, 174, 120, 120, 157, 96, 96, 126, 48, 48,
- 63, 131, 131, 171, 101, 101, 130, 100, 100, 127,
- 135, 135, 170, 155, 155, 194, 138, 138, 172, 101,
- 101, 126, 113, 113, 140, 100, 100, 124, 170, 170,
- 199, 222, 222, 239, 217, 217, 234, 206, 206, 220,
- 58, 58, 61, 211, 211, 220, 231, 231, 238, 220,
- 220, 227, 215, 215, 220, 196, 196, 199, 209, 209,
- 211, 183, 183, 185, 253, 253, 254, 102, 103, 143,
- 138, 139, 188, 98, 99, 134, 124, 125, 168, 108,
- 109, 147, 133, 134, 180, 103, 104, 139, 99, 100,
- 134, 122, 123, 163, 144, 145, 188, 149, 150, 193,
- 127, 128, 165, 131, 132, 169, 157, 158, 199, 111,
- 115, 176, 113, 117, 178, 93, 96, 144, 116, 119,
- 178, 127, 131, 192, 118, 121, 178, 107, 110, 162,
- 120, 123, 180, 118, 121, 176, 115, 118, 171, 126,
- 129, 186, 120, 123, 177, 117, 120, 173, 106, 109,
- 155, 75, 77, 109, 113, 115, 163, 127, 130, 182,
- 110, 112, 157, 99, 101, 140, 98, 100, 137, 148,
- 151, 203, 119, 121, 163, 145, 148, 198, 139, 142,
- 189, 148, 151, 199, 55, 56, 74, 152, 155, 203,
- 153, 156, 203, 150, 153, 200, 154, 157, 204, 102,
- 104, 135, 76, 77, 100, 71, 72, 90, 194, 196,
- 227, 211, 212, 236, 207, 208, 231, 217, 218, 239,
- 223, 224, 242, 215, 216, 234, 212, 213, 229, 89,
- 93, 142, 112, 116, 176, 114, 118, 178, 113, 117,
- 177, 114, 118, 177, 116, 120, 179, 115, 120, 178,
- 115, 119, 178, 109, 113, 169, 117, 121, 180, 119,
- 123, 182, 118, 122, 180, 117, 122, 179, 124, 128,
- 188, 123, 127, 187, 122, 126, 185, 120, 124, 182,
- 119, 124, 181, 118, 122, 179, 102, 106, 155, 126,
- 130, 190, 124, 128, 187, 123, 127, 186, 121, 125,
- 183, 120, 124, 181, 119, 123, 180, 81, 84, 122,
- 118, 122, 177, 117, 121, 176, 125, 129, 185, 124,
- 128, 184, 123, 127, 183, 120, 124, 178, 123, 127,
- 181, 127, 131, 186, 96, 99, 141, 127, 131, 185,
- 102, 105, 149, 33, 34, 48, 132, 136, 190, 130,
- 134, 188, 63, 65, 91, 96, 99, 137, 136, 140,
- 192, 141, 145, 196, 146, 150, 200, 149, 153, 202,
- 146, 149, 193, 160, 163, 207, 167, 170, 212, 174,
- 177, 216, 186, 189, 224, 181, 184, 218, 200, 202,
- 231, 192, 194, 222, 203, 205, 233, 199, 201, 227,
- 203, 205, 228, 220, 221, 236, 231, 232, 247, 219,
- 220, 234, 220, 221, 234, 223, 224, 235, 97, 102,
- 150, 222, 223, 233, 226, 227, 237, 20, 21, 28,
- 216, 217, 224, 235, 236, 239, 217, 218, 219, 192,
- 192, 192, 4, 4, 2, 2, 2, 1, 3, 3,
- 2, 7, 7, 6, 21, 21, 19, 13, 13, 12,
- 28, 28, 26, 34, 34, 32, 16, 16, 15, 58,
- 58, 55, 93, 93, 89, 66, 66, 63, 23, 23,
- 22, 85, 85, 82, 88, 88, 85, 60, 60, 58,
- 58, 58, 56, 109, 109, 106, 104, 104, 101, 99,
- 99, 96, 80, 80, 78, 49, 49, 48, 46, 46,
- 45, 52, 52, 51, 152, 152, 150, 144, 144, 142,
- 169, 169, 168, 160, 160, 159, 122, 121, 119, 115,
- 114, 112, 137, 136, 134, 129, 128, 126, 55, 54,
- 53, 31, 30, 30, 62, 61, 61, 176, 176, 176,
- 39, 39, 39, 10, 10, 10, 8, 8, 8, 5,
- 5, 5, 1, 1, 1, 255, 255, 255, 0, 0,
- 0, 33, 249, 4, 1, 0, 0, 212, 0, 44,
- 0, 0, 0, 0, 120, 0, 67, 0, 64, 8,
- 255, 0, 169, 9, 28, 72, 176, 160, 193, 131,
- 8, 19, 42, 92, 200, 176, 161, 195, 135, 16,
- 9, 142, 88, 209, 194, 8, 134, 4, 80, 162,
- 33, 72, 240, 192, 8, 43, 72, 145, 42, 93,
- 202, 116, 170, 164, 201, 147, 39, 51, 93, 90,
- 201, 114, 36, 202, 151, 48, 79, 98, 50, 229,
- 201, 211, 169, 58, 92, 42, 40, 160, 192, 211,
- 193, 15, 24, 44, 84, 164, 136, 152, 48, 5,
- 11, 24, 71, 52, 112, 128, 97, 234, 82, 204,
- 83, 160, 162, 74, 157, 74, 245, 41, 168, 82,
- 78, 212, 1, 216, 186, 181, 27, 20, 88, 105,
- 166, 146, 124, 10, 149, 170, 89, 169, 100, 79,
- 117, 242, 132, 67, 29, 183, 117, 92, 90, 140,
- 64, 168, 226, 197, 157, 59, 117, 210, 158, 188,
- 100, 43, 10, 55, 174, 91, 243, 77, 153, 2,
- 165, 112, 2, 43, 237, 196, 237, 3, 220, 181,
- 10, 162, 119, 140, 1, 152, 171, 66, 165, 50,
- 21, 43, 240, 208, 233, 139, 156, 46, 81, 173,
- 4, 155, 1, 171, 155, 70, 216, 176, 21, 119,
- 1, 172, 69, 222, 54, 37, 215, 164, 152, 152,
- 68, 253, 1, 240, 97, 207, 10, 106, 38, 208,
- 56, 98, 83, 74, 175, 201, 71, 136, 230, 69,
- 182, 242, 43, 210, 75, 51, 193, 220, 69, 86,
- 39, 45, 31, 227, 122, 199, 60, 129, 58, 25,
- 9, 88, 187, 200, 237, 134, 17, 251, 198, 248,
- 154, 149, 93, 105, 142, 27, 255, 19, 206, 56,
- 0, 179, 82, 211, 201, 114, 66, 147, 163, 131,
- 137, 21, 49, 106, 228, 137, 197, 198, 38, 217,
- 74, 130, 160, 132, 142, 204, 31, 64, 191, 124,
- 243, 84, 81, 76, 45, 102, 152, 145, 136, 114,
- 140, 225, 3, 72, 37, 123, 193, 2, 69, 54,
- 140, 173, 195, 204, 47, 248, 244, 103, 225, 53,
- 234, 184, 35, 197, 48, 176, 24, 231, 219, 41,
- 106, 160, 178, 21, 29, 51, 176, 80, 144, 10,
- 46, 152, 80, 131, 22, 121, 224, 130, 197, 27,
- 165, 152, 2, 74, 38, 140, 140, 195, 152, 54,
- 211, 240, 193, 224, 135, 60, 146, 5, 74, 43,
- 77, 120, 195, 88, 54, 209, 212, 226, 84, 143,
- 40, 121, 162, 6, 27, 180, 108, 197, 131, 23,
- 52, 188, 112, 27, 81, 212, 164, 176, 130, 11,
- 49, 208, 112, 130, 13, 59, 160, 240, 133, 22,
- 90, 224, 49, 203, 29, 114, 96, 82, 147, 41,
- 72, 166, 201, 163, 39, 157, 108, 210, 73, 29,
- 56, 24, 194, 14, 55, 219, 108, 195, 195, 45,
- 64, 212, 176, 133, 12, 82, 206, 69, 229, 159,
- 12, 165, 160, 130, 10, 43, 176, 64, 130, 11,
- 47, 192, 0, 66, 12, 50, 204, 224, 168, 9,
- 144, 70, 42, 233, 164, 144, 58, 42, 131, 12,
- 32, 192, 240, 130, 11, 36, 176, 176, 194, 10,
- 42, 248, 9, 232, 168, 163, 166, 48, 2, 161,
- 44, 148, 177, 196, 3, 12, 64, 1, 1, 2,
- 176, 66, 255, 145, 64, 2, 12, 60, 128, 193,
- 18, 27, 24, 193, 65, 24, 97, 192, 192, 104,
- 23, 93, 204, 96, 66, 8, 91, 20, 187, 71,
- 29, 117, 204, 17, 74, 51, 186, 57, 226, 72,
- 44, 177, 228, 33, 2, 23, 39, 108, 49, 195,
- 11, 65, 141, 48, 20, 169, 68, 9, 74, 66,
- 24, 19, 96, 240, 192, 18, 98, 180, 2, 201,
- 145, 106, 162, 148, 70, 46, 2, 108, 195, 88,
- 58, 140, 200, 152, 174, 111, 152, 116, 114, 10,
- 23, 18, 4, 160, 111, 5, 82, 110, 219, 144,
- 81, 50, 128, 49, 6, 13, 109, 140, 245, 84,
- 26, 124, 88, 81, 141, 133, 253, 113, 227, 206,
- 51, 197, 101, 98, 198, 33, 241, 48, 220, 223,
- 58, 239, 32, 147, 75, 37, 146, 248, 98, 133,
- 197, 252, 229, 3, 207, 51, 190, 68, 98, 240,
- 73, 157, 128, 242, 71, 53, 252, 0, 33, 215,
- 64, 46, 212, 129, 70, 40, 233, 249, 150, 73,
- 38, 199, 128, 195, 216, 62, 9, 232, 18, 30,
- 74, 102, 12, 115, 29, 99, 227, 84, 177, 24,
- 96, 241, 32, 226, 161, 73, 102, 32, 130, 32,
- 96, 237, 252, 146, 72, 61, 140, 217, 35, 77,
- 45, 175, 1, 109, 140, 57, 145, 153, 51, 140,
- 25, 100, 153, 82, 74, 147, 127, 188, 32, 3,
- 22, 104, 52, 195, 227, 35, 192, 60, 205, 85,
- 58, 86, 224, 35, 55, 62, 240, 208, 35, 14,
- 132, 145, 137, 131, 12, 35, 1, 84, 255, 125,
- 245, 207, 37, 85, 226, 199, 20, 218, 188, 75,
- 140, 48, 228, 1, 38, 15, 21, 114, 199, 221,
- 78, 60, 233, 20, 222, 117, 50, 112, 100, 29,
- 118, 39, 65, 0, 192, 195, 12, 2, 173, 0,
- 3, 24, 55, 180, 88, 31, 76, 151, 56, 136,
- 55, 87, 219, 64, 49, 202, 36, 55, 183, 174,
- 87, 235, 176, 147, 5, 251, 205, 147, 216, 146,
- 64, 55, 140, 129, 243, 76, 43, 172, 199, 158,
- 174, 41, 33, 246, 163, 249, 15, 49, 176, 224,
- 239, 65, 35, 176, 240, 130, 9, 39, 220, 128,
- 66, 139, 120, 204, 161, 10, 38, 152, 160, 53,
- 239, 245, 37, 157, 149, 102, 41, 155, 168, 66,
- 135, 7, 91, 65, 99, 72, 13, 58, 128, 240,
- 50, 183, 7, 9, 186, 2, 9, 102, 135, 0,
- 198, 150, 206, 3, 129, 194, 16, 244, 15, 65,
- 4, 253, 132, 120, 97, 3, 23, 92, 220, 133,
- 236, 27, 114, 144, 131, 27, 82, 65, 64, 2,
- 186, 193, 13, 114, 120, 3, 178, 238, 192, 5,
- 27, 16, 130, 8, 22, 160, 128, 4, 22, 96,
- 128, 116, 232, 235, 130, 134, 144, 0, 14, 108,
- 80, 131, 61, 208, 160, 11, 48, 40, 1, 168,
- 142, 135, 190, 18, 166, 239, 84, 159, 42, 148,
- 24, 140, 192, 194, 13, 108, 96, 2, 48, 156,
- 0, 7, 102, 168, 129, 8, 28, 161, 8, 100,
- 208, 193, 22, 192, 176, 135, 30, 110, 33, 4,
- 93, 200, 130, 11, 255, 90, 224, 169, 65, 145,
- 208, 132, 72, 28, 136, 169, 40, 98, 145, 4,
- 72, 97, 0, 2, 16, 192, 0, 164, 64, 140,
- 37, 244, 66, 22, 166, 200, 68, 26, 206, 0,
- 137, 73, 204, 232, 102, 243, 50, 133, 216, 74,
- 17, 163, 76, 172, 65, 129, 92, 240, 194, 13,
- 144, 160, 4, 37, 56, 160, 1, 53, 240, 129,
- 8, 133, 146, 196, 133, 36, 175, 7, 27, 96,
- 21, 173, 48, 208, 135, 83, 72, 34, 13, 39,
- 67, 146, 36, 132, 33, 141, 66, 26, 82, 26,
- 141, 144, 23, 246, 76, 98, 166, 82, 120, 226,
- 13, 54, 160, 192, 2, 40, 168, 0, 33, 4,
- 165, 132, 42, 32, 129, 82, 38, 112, 1, 14,
- 188, 130, 117, 139, 60, 78, 48, 134, 6, 152,
- 119, 4, 3, 108, 161, 212, 139, 41, 236, 133,
- 2, 2, 212, 131, 29, 18, 120, 1, 29, 27,
- 50, 130, 22, 116, 129, 12, 71, 56, 194, 43,
- 2, 153, 146, 52, 8, 227, 25, 203, 8, 166,
- 48, 135, 25, 76, 100, 52, 33, 17, 198, 248,
- 133, 45, 206, 64, 9, 147, 84, 98, 16, 86,
- 16, 30, 96, 204, 113, 5, 101, 12, 115, 111,
- 137, 56, 132, 47, 86, 241, 136, 35, 101, 2,
- 20, 196, 96, 6, 49, 199, 185, 12, 99, 34,
- 243, 23, 29, 106, 38, 76, 56, 33, 135, 63,
- 100, 35, 27, 116, 32, 129, 10, 14, 130, 162,
- 61, 156, 96, 15, 113, 192, 132, 111, 30, 49,
- 255, 12, 174, 129, 172, 63, 249, 200, 81, 39,
- 30, 244, 207, 254, 224, 195, 23, 102, 32, 134,
- 141, 10, 26, 153, 117, 20, 192, 15, 146, 136,
- 9, 41, 222, 0, 13, 0, 120, 64, 6, 243,
- 164, 134, 10, 96, 16, 138, 89, 176, 65, 159,
- 31, 98, 27, 60, 176, 83, 12, 51, 180, 36,
- 13, 102, 192, 196, 34, 184, 195, 152, 115, 248,
- 99, 161, 92, 9, 7, 4, 224, 240, 199, 52,
- 216, 212, 12, 20, 138, 204, 55, 140, 113, 8,
- 82, 114, 5, 30, 192, 48, 41, 75, 80, 10,
- 139, 40, 220, 35, 50, 241, 248, 26, 89, 68,
- 113, 11, 218, 188, 71, 6, 186, 25, 221, 135,
- 42, 1, 8, 42, 240, 131, 49, 226, 48, 6,
- 36, 94, 2, 10, 76, 52, 65, 28, 145, 169,
- 27, 99, 172, 97, 5, 95, 68, 212, 36, 151,
- 88, 133, 50, 254, 2, 152, 117, 52, 194, 23,
- 35, 101, 140, 57, 142, 241, 136, 151, 164, 245,
- 25, 84, 99, 12, 80, 151, 22, 19, 81, 208,
- 129, 54, 93, 48, 65, 44, 118, 211, 27, 223,
- 92, 2, 14, 82, 176, 71, 132, 158, 193, 138,
- 154, 74, 194, 12, 144, 216, 69, 50, 228, 17,
- 153, 110, 20, 224, 99, 140, 105, 135, 48, 234,
- 106, 146, 174, 50, 34, 29, 59, 163, 130, 47,
- 10, 112, 186, 173, 4, 128, 17, 151, 168, 132,
- 77, 35, 97, 6, 170, 74, 3, 29, 171, 145,
- 130, 46, 118, 68, 150, 77, 255, 136, 72, 27,
- 38, 120, 1, 24, 160, 37, 85, 31, 97, 226,
- 179, 12, 141, 76, 0, 164, 225, 139, 92, 36,
- 224, 104, 92, 57, 71, 34, 182, 122, 146, 137,
- 209, 35, 50, 248, 0, 6, 49, 156, 19, 92,
- 192, 140, 131, 184, 168, 212, 139, 40, 68, 132,
- 13, 47, 192, 128, 26, 240, 57, 1, 46, 112,
- 49, 139, 83, 128, 20, 38, 19, 171, 24, 99,
- 222, 145, 140, 99, 36, 226, 189, 239, 61, 198,
- 33, 132, 193, 139, 85, 68, 130, 185, 167, 168,
- 68, 25, 224, 11, 223, 70, 0, 195, 37, 157,
- 53, 133, 48, 248, 11, 95, 93, 20, 131, 178,
- 128, 225, 7, 21, 22, 225, 94, 254, 202, 87,
- 24, 187, 96, 69, 72, 122, 228, 9, 81, 100,
- 142, 31, 56, 152, 65, 11, 252, 53, 2, 18,
- 204, 224, 4, 44, 194, 5, 27, 196, 120, 146,
- 71, 8, 163, 66, 140, 137, 199, 33, 178, 155,
- 74, 189, 152, 248, 185, 140, 153, 199, 138, 67,
- 89, 138, 237, 94, 21, 26, 55, 48, 129, 11,
- 50, 74, 151, 18, 116, 225, 7, 34, 8, 241,
- 44, 222, 128, 137, 112, 18, 243, 25, 194, 0,
- 100, 139, 125, 115, 21, 99, 136, 115, 152, 81,
- 0, 6, 109, 145, 84, 99, 75, 100, 14, 0,
- 250, 48, 196, 9, 174, 197, 99, 136, 36, 239,
- 5, 51, 248, 129, 13, 80, 192, 162, 60, 68,
- 175, 76, 158, 64, 211, 146, 215, 140, 18, 76,
- 112, 175, 255, 20, 108, 40, 68, 62, 186, 161,
- 13, 125, 240, 0, 8, 39, 8, 1, 12, 90,
- 208, 101, 19, 78, 132, 4, 48, 152, 193, 22,
- 182, 212, 165, 29, 124, 97, 7, 134, 158, 214,
- 29, 222, 144, 138, 83, 212, 164, 38, 212, 59,
- 239, 245, 168, 247, 9, 154, 116, 162, 19, 189,
- 113, 195, 29, 242, 144, 175, 3, 212, 67, 29,
- 160, 126, 66, 33, 110, 80, 3, 48, 152, 0,
- 6, 46, 0, 85, 29, 187, 133, 42, 68, 129,
- 96, 6, 52, 120, 95, 13, 210, 248, 5, 20,
- 0, 225, 214, 22, 200, 181, 174, 21, 192, 235,
- 94, 243, 228, 215, 18, 148, 128, 176, 135, 45,
- 108, 28, 0, 65, 4, 28, 188, 167, 14, 102,
- 16, 131, 77, 181, 96, 132, 171, 142, 182, 180,
- 167, 77, 237, 36, 166, 192, 84, 131, 74, 33,
- 11, 182, 189, 237, 22, 120, 155, 136, 220, 246,
- 212, 167, 6, 165, 173, 35, 86, 251, 220, 216,
- 46, 84, 6, 54, 176, 4, 113, 177, 138, 1,
- 240, 174, 149, 173, 110, 117, 129, 11, 200, 144,
- 3, 53, 188, 225, 24, 120, 120, 130, 59, 204,
- 97, 22, 205, 96, 86, 51, 102, 49, 135, 59,
- 236, 33, 183, 69, 212, 214, 185, 185, 181, 196,
- 21, 168, 170, 85, 79, 44, 64, 1, 164, 176,
- 17, 6, 96, 96, 3, 98, 200, 130, 29, 94,
- 97, 138, 130, 177, 100, 18, 147, 104, 73, 235,
- 34, 125, 94, 80, 172, 65, 18, 150, 255, 96,
- 67, 40, 58, 138, 135, 60, 104, 97, 7, 55,
- 24, 66, 5, 74, 61, 131, 84, 207, 114, 225,
- 69, 81, 1, 11, 50, 128, 1, 136, 15, 96,
- 0, 16, 16, 134, 47, 92, 96, 7, 77, 132,
- 68, 19, 51, 98, 115, 155, 103, 226, 72, 80,
- 200, 161, 14, 53, 168, 128, 3, 122, 237, 128,
- 36, 8, 225, 217, 162, 58, 119, 242, 196, 144,
- 199, 4, 56, 193, 9, 12, 88, 66, 31, 76,
- 1, 9, 73, 160, 139, 71, 55, 179, 69, 45,
- 214, 206, 246, 82, 240, 82, 77, 141, 196, 132,
- 28, 184, 48, 132, 96, 75, 160, 2, 150, 188,
- 57, 18, 173, 212, 3, 139, 176, 170, 35, 178,
- 152, 132, 146, 175, 167, 137, 86, 48, 35, 29,
- 217, 168, 211, 54, 194, 81, 15, 41, 192, 226,
- 236, 169, 108, 228, 220, 41, 80, 65, 3, 40,
- 160, 68, 89, 7, 84, 242, 194, 192, 129, 11,
- 44, 225, 2, 97, 48, 69, 200, 151, 220, 49,
- 42, 228, 128, 49, 244, 64, 4, 103, 149, 110,
- 146, 85, 154, 130, 11, 11, 32, 192, 61, 2,
- 80, 131, 243, 69, 196, 74, 47, 136, 0, 7,
- 100, 216, 5, 0, 179, 249, 17, 135, 128, 45,
- 96, 170, 65, 133, 65, 76, 153, 245, 39, 241,
- 4, 41, 234, 80, 136, 117, 172, 227, 0, 96,
- 48, 158, 67, 146, 23, 131, 35, 68, 64, 3,
- 118, 240, 61, 74, 84, 194, 138, 238, 123, 255,
- 251, 223, 47, 197, 255, 37, 204, 96, 118, 148,
- 92, 162, 22, 85, 144, 28, 87, 200, 145, 136,
- 81, 180, 194, 251, 173, 240, 68, 37, 200, 95,
- 179, 146, 104, 17, 252, 248, 247, 126, 41, 38,
- 65, 126, 200, 155, 196, 19, 155, 16, 10, 127,
- 176, 13, 246, 128, 3, 242, 164, 16, 70, 49,
- 3, 99, 64, 6, 62, 144, 69, 100, 113, 88,
- 82, 16, 0, 245, 80, 14, 20, 88, 129, 22,
- 88, 14, 228, 0, 14, 227, 32, 15, 240, 32,
- 5, 136, 144, 11, 156, 85, 29, 62, 181, 21,
- 219, 64, 14, 23, 8, 14, 1, 240, 13, 241,
- 128, 15, 204, 80, 12, 112, 96, 28, 235, 82,
- 0, 224, 48, 129, 23, 104, 129, 222, 48, 123,
- 227, 16, 15, 239, 240, 12, 137, 144, 11, 44,
- 134, 50, 167, 240, 7, 117, 22, 79, 153, 215,
- 57, 48, 176, 7, 96, 176, 5, 174, 32, 105,
- 49, 97, 98, 110, 19, 92, 235, 80, 5, 193,
- 208, 77, 57, 83, 93, 92, 17, 15, 76, 128,
- 9, 200, 145, 56, 213, 117, 15, 5, 0, 12,
- 171, 135, 18, 157, 160, 10, 60, 64, 27, 39,
- 32, 125, 2, 145, 2, 45, 64, 3, 119, 112,
- 2, 101, 194, 100, 165, 160, 12, 125, 3, 24,
- 253, 160, 15, 218, 112, 135, 117, 118, 13, 22,
- 242, 13, 77, 192, 11, 86, 53, 86, 252, 16,
- 136, 129, 168, 135, 253, 97, 14, 198, 112, 9,
- 78, 192, 86, 128, 129, 135, 119, 168, 15, 132,
- 255, 200, 31, 244, 160, 8, 131, 247, 18, 155,
- 224, 8, 167, 87, 8, 37, 48, 23, 41, 64,
- 2, 123, 64, 112, 111, 232, 27, 149, 16, 8,
- 70, 211, 82, 76, 160, 118, 108, 199, 7, 194,
- 176, 8, 240, 112, 122, 140, 225, 14, 254, 192,
- 133, 0, 64, 86, 191, 160, 11, 124, 80, 139,
- 187, 240, 11, 201, 0, 139, 0, 208, 25, 57,
- 197, 24, 242, 48, 12, 112, 192, 118, 181, 224,
- 7, 193, 176, 8, 79, 184, 21, 64, 21, 134,
- 40, 65, 10, 108, 80, 56, 127, 224, 2, 201,
- 19, 2, 1, 247, 6, 106, 230, 27, 19, 131,
- 96, 128, 17, 93, 202, 120, 10, 102, 80, 12,
- 199, 152, 14, 87, 160, 136, 166, 213, 4, 232,
- 209, 92, 194, 0, 25, 41, 22, 12, 199, 112,
- 14, 59, 83, 5, 129, 112, 86, 37, 54, 12,
- 236, 40, 87, 195, 176, 141, 40, 195, 6, 29,
- 0, 0, 6, 8, 3, 204, 18, 10, 61, 194,
- 23, 80, 128, 59, 128, 97, 15, 141, 192, 10,
- 245, 87, 18, 192, 1, 99, 72, 19, 87, 128,
- 1, 15, 196, 192, 98, 51, 210, 4, 48, 181,
- 21, 250, 64, 5, 122, 144, 0, 234, 103, 90,
- 202, 80, 142, 41, 49, 9, 137, 48, 145, 91,
- 65, 15, 51, 182, 84, 179, 225, 1, 175, 22,
- 85, 133, 101, 141, 193, 128, 142, 128, 49, 15,
- 15, 105, 87, 181, 0, 5, 225, 192, 24, 216,
- 80, 5, 96, 181, 136, 80, 255, 96, 36, 39,
- 145, 6, 186, 64, 5, 216, 192, 24, 232, 144,
- 8, 194, 160, 94, 128, 225, 14, 155, 245, 18,
- 146, 224, 7, 211, 32, 144, 92, 161, 15, 85,
- 224, 51, 105, 49, 10, 142, 0, 0, 29, 32,
- 44, 40, 249, 33, 93, 245, 85, 140, 209, 13,
- 82, 64, 2, 199, 247, 8, 186, 16, 5, 121,
- 165, 56, 2, 176, 31, 91, 113, 14, 135, 160,
- 140, 215, 8, 93, 194, 208, 8, 99, 185, 21,
- 50, 245, 120, 64, 3, 8, 83, 224, 46, 122,
- 85, 12, 246, 136, 18, 82, 217, 15, 238, 49,
- 3, 177, 48, 51, 213, 152, 22, 60, 249, 135,
- 128, 33, 14, 139, 176, 11, 136, 201, 11, 191,
- 64, 12, 136, 0, 5, 194, 215, 138, 254, 64,
- 148, 91, 161, 96, 102, 213, 32, 81, 64, 93,
- 168, 227, 4, 191, 96, 5, 170, 1, 24, 244,
- 176, 8, 186, 128, 152, 128, 240, 11, 135, 192,
- 8, 85, 0, 90, 145, 241, 14, 105, 233, 27,
- 106, 208, 84, 208, 48, 3, 32, 80, 3, 127,
- 41, 7, 129, 249, 20, 143, 96, 12, 216, 200,
- 21, 253, 176, 155, 188, 201, 48, 247, 32, 0,
- 190, 224, 4, 118, 201, 21, 224, 192, 12, 173,
- 80, 127, 213, 193, 146, 92, 65, 15, 193, 32,
- 12, 44, 69, 135, 254, 209, 155, 22, 34, 14,
- 81, 64, 2, 124, 245, 20, 165, 32, 7, 21,
- 117, 11, 50, 64, 2, 38, 128, 5, 208, 162,
- 10, 181, 255, 105, 87, 125, 129, 153, 193, 213,
- 13, 243, 192, 12, 190, 96, 9, 192, 128, 98,
- 45, 121, 74, 40, 49, 9, 198, 48, 135, 92,
- 129, 35, 190, 128, 145, 86, 8, 0, 217, 208,
- 14, 201, 32, 8, 63, 248, 20, 210, 1, 62,
- 30, 160, 3, 208, 232, 2, 58, 32, 2, 208,
- 242, 6, 246, 17, 19, 201, 185, 28, 223, 48,
- 14, 16, 26, 161, 231, 32, 15, 243, 96, 5,
- 206, 128, 8, 131, 240, 8, 225, 81, 9, 136,
- 0, 15, 233, 16, 161, 226, 128, 14, 209, 32,
- 151, 38, 177, 46, 82, 240, 13, 226, 16, 161,
- 233, 48, 15, 199, 48, 74, 145, 81, 15, 15,
- 26, 161, 16, 122, 14, 241, 224, 14, 84, 192,
- 12, 136, 224, 7, 143, 96, 57, 122, 209, 9,
- 150, 80, 81, 180, 0, 6, 178, 68, 13, 35,
- 144, 34, 54, 48, 94, 115, 96, 10, 76, 104,
- 127, 151, 48, 159, 52, 73, 5, 124, 176, 163,
- 32, 7, 114, 103, 96, 6, 143, 32, 18, 47,
- 81, 9, 149, 48, 165, 83, 10, 143, 41, 33,
- 9, 92, 10, 114, 146, 144, 9, 141, 64, 14,
- 140, 177, 13, 210, 144, 11, 145, 16, 166, 85,
- 170, 161, 7, 169, 23, 152, 176, 9, 127, 5,
- 0, 183, 176, 5, 67, 154, 134, 44, 32, 3,
- 63, 240, 5, 162, 179, 160, 206, 180, 11, 62,
- 89, 30, 198, 0, 74, 200, 247, 18, 148, 192,
- 11, 202, 121, 150, 136, 80, 9, 111, 255, 151,
- 38, 166, 176, 93, 249, 232, 1, 92, 48, 3,
- 36, 80, 132, 40, 162, 34, 33, 54, 7, 160,
- 176, 160, 6, 114, 140, 239, 0, 12, 215, 89,
- 168, 37, 17, 9, 198, 240, 152, 92, 113, 80,
- 94, 154, 46, 164, 80, 10, 183, 32, 60, 56,
- 22, 37, 125, 118, 34, 46, 240, 97, 124, 106,
- 102, 121, 145, 9, 172, 224, 12, 223, 192, 14,
- 21, 200, 14, 227, 16, 5, 36, 42, 170, 38,
- 49, 9, 181, 32, 13, 233, 64, 131, 229, 192,
- 14, 231, 176, 145, 111, 202, 35, 164, 208, 9,
- 168, 240, 1, 0, 144, 3, 65, 192, 5, 185,
- 181, 2, 230, 102, 16, 29, 22, 3, 96, 192,
- 5, 207, 131, 11, 209, 163, 10, 112, 0, 126,
- 173, 160, 125, 194, 154, 61, 151, 128, 127, 229,
- 170, 38, 220, 163, 10, 183, 32, 173, 0, 64,
- 11, 64, 240, 3, 50, 80, 2, 177, 26, 40,
- 40, 18, 48, 92, 176, 3, 101, 134, 5, 119,
- 160, 10, 53, 113, 174, 172, 87, 47, 155, 96,
- 9, 168, 64, 11, 216, 80, 135, 65, 112, 3,
- 123, 112, 45, 216, 74, 42, 222, 2, 3, 33,
- 112, 2, 94, 64, 102, 46, 39, 38, 117, 48,
- 61, 1, 43, 176, 105, 226, 102, 156, 80, 10,
- 111, 128, 3, 127, 144, 15, 225, 144, 13, 225,
- 16, 4, 56, 64, 62, 49, 144, 106, 217, 58,
- 42, 19, 225, 2, 32, 96, 2, 63, 192, 5,
- 181, 102, 104, 96, 255, 146, 7, 99, 242, 6,
- 170, 240, 9, 142, 180, 164, 133, 74, 61, 98,
- 243, 177, 111, 48, 7, 40, 80, 8, 79, 176,
- 14, 249, 144, 180, 65, 80, 8, 54, 240, 3,
- 52, 208, 108, 151, 132, 110, 42, 208, 2, 47,
- 16, 3, 38, 0, 6, 53, 224, 5, 93, 130,
- 2, 48, 135, 104, 55, 160, 63, 253, 83, 7,
- 140, 86, 18, 102, 242, 104, 143, 246, 9, 36,
- 151, 182, 143, 86, 10, 151, 182, 22, 213, 163,
- 10, 56, 113, 3, 22, 32, 1, 6, 16, 0,
- 4, 112, 0, 7, 240, 4, 7, 96, 8, 133,
- 0, 4, 92, 224, 180, 124, 66, 2, 43, 80,
- 132, 56, 151, 134, 132, 194, 62, 175, 166, 3,
- 246, 196, 5, 34, 96, 107, 183, 70, 4, 68,
- 128, 4, 146, 219, 70, 148, 91, 185, 14, 224,
- 0, 72, 112, 185, 83, 199, 107, 191, 54, 108,
- 147, 52, 73, 6, 16, 186, 161, 91, 8, 18,
- 0, 4, 28, 244, 3, 91, 96, 2, 205, 86,
- 2, 65, 209, 178, 133, 171, 16, 40, 196, 2,
- 37, 144, 40, 141, 98, 2, 58, 0, 6, 63,
- 112, 2, 179, 214, 64, 94, 224, 5, 34, 240,
- 187, 192, 27, 188, 193, 219, 187, 54, 176, 63,
- 53, 80, 3, 63, 176, 7, 58, 96, 2, 51,
- 128, 41, 155, 146, 112, 174, 251, 186, 16, 43,
- 40, 132, 242, 41, 225, 246, 109, 216, 155, 189,
- 222, 22, 110, 41, 68, 110, 209, 187, 106, 1,
- 1, 1, 0, 59 };
+ 230, 106, 0, 127, 130, 184, 57, 55, 71, 40,
+ 37, 42, 204, 205, 226, 161, 164, 203, 211, 213,
+ 231, 178, 180, 212, 67, 66, 88, 131, 134, 185,
+ 130, 131, 179, 82, 82, 114, 144, 146, 194, 194,
+ 196, 222, 170, 172, 208, 76, 75, 99, 91, 92,
+ 131, 221, 222, 236, 59, 56, 60, 110, 113, 165,
+ 106, 109, 157, 97, 99, 141, 117, 121, 177, 123,
+ 126, 181, 229, 230, 240, 153, 156, 198, 140, 141,
+ 193, 185, 186, 217, 107, 107, 146, 78, 78, 107,
+ 113, 116, 169, 122, 122, 163, 136, 139, 189, 114,
+ 116, 163, 116, 115, 152, 142, 144, 193, 90, 91,
+ 126, 226, 227, 239, 123, 125, 173, 164, 165, 208,
+ 109, 112, 162, 114, 118, 172, 149, 150, 200, 187,
+ 189, 217, 116, 120, 174, 133, 136, 187, 146, 149,
+ 195, 216, 217, 234, 146, 146, 196, 100, 102, 146,
+ 107, 110, 159, 165, 168, 206, 148, 150, 197, 46,
+ 43, 47, 83, 81, 104, 179, 180, 215, 108, 106,
+ 140, 92, 91, 118, 138, 141, 191, 102, 104, 150,
+ 104, 106, 154, 156, 159, 200, 49, 46, 57, 174,
+ 176, 211, 156, 156, 205, 85, 86, 120, 158, 161,
+ 202, 150, 153, 197, 129, 130, 175, 103, 105, 151,
+ 63, 61, 80, 188, 190, 218, 94, 96, 137, 152,
+ 153, 200, 140, 142, 191, 137, 138, 186, 87, 88,
+ 124, 182, 183, 215, 213, 215, 232, 34, 30, 32,
+ 108, 111, 158, 206, 208, 228, 191, 192, 220, 119,
+ 123, 180, 118, 120, 167, 95, 94, 125, 153, 153,
+ 204, 110, 111, 152, 115, 119, 174, 34, 30, 31,
+ 255, 255, 255, 144, 142, 143, 89, 86, 87, 199,
+ 198, 199, 238, 238, 245, 213, 212, 213, 246, 246,
+ 250, 130, 128, 129, 172, 170, 171, 116, 114, 115,
+ 241, 240, 241, 158, 156, 157, 227, 226, 227, 75,
+ 72, 73, 185, 184, 185, 103, 100, 101, 137, 137,
+ 182, 0, 255, 0, 71, 70, 95, 223, 224, 237,
+ 155, 156, 204, 105, 107, 156, 111, 115, 167, 140,
+ 140, 186, 184, 185, 217, 184, 186, 215, 154, 155,
+ 204, 167, 170, 207, 219, 220, 235, 154, 156, 201,
+ 102, 100, 132, 104, 103, 137, 167, 168, 210, 110,
+ 112, 160, 139, 139, 185, 198, 199, 224, 199, 201,
+ 225, 105, 108, 156, 151, 152, 203, 33, 249, 4,
+ 1, 0, 0, 106, 0, 44, 0, 0, 0, 0,
+ 120, 0, 67, 0, 0, 7, 255, 128, 106, 130,
+ 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
+ 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
+ 151, 150, 109, 63, 109, 115, 152, 158, 159, 160,
+ 63, 121, 121, 54, 62, 26, 113, 76, 26, 26,
+ 76, 6, 62, 62, 13, 50, 4, 65, 60, 24,
+ 66, 45, 11, 73, 34, 57, 31, 25, 57, 34,
+ 47, 41, 160, 194, 161, 13, 26, 12, 125, 77,
+ 5, 80, 80, 3, 125, 124, 12, 81, 81, 42,
+ 114, 172, 175, 116, 177, 179, 66, 51, 45, 186,
+ 31, 8, 0, 22, 22, 21, 87, 40, 37, 22,
+ 9, 25, 193, 195, 235, 140, 38, 113, 124, 46,
+ 108, 108, 16, 16, 117, 46, 201, 3, 212, 50,
+ 179, 34, 31, 254, 44, 0, 17, 8, 4, 64,
+ 176, 224, 55, 130, 225, 164, 172, 64, 241, 70,
+ 194, 9, 63, 59, 158, 76, 25, 146, 132, 157,
+ 69, 53, 65, 108, 12, 96, 67, 226, 130, 71,
+ 18, 36, 242, 53, 16, 178, 64, 138, 201, 147,
+ 40, 83, 170, 92, 121, 114, 92, 7, 9, 19,
+ 118, 232, 128, 65, 225, 8, 5, 43, 67, 68,
+ 92, 196, 20, 132, 9, 20, 142, 30, 47, 184,
+ 48, 66, 167, 5, 203, 163, 72, 147, 162, 188,
+ 242, 38, 6, 140, 35, 71, 30, 140, 88, 114,
+ 196, 131, 206, 157, 144, 126, 104, 116, 1, 129,
+ 35, 4, 35, 4, 88, 40, 29, 75, 54, 233,
+ 149, 19, 58, 30, 44, 1, 162, 64, 193, 136,
+ 41, 51, 255, 176, 46, 50, 161, 161, 64, 19,
+ 23, 117, 10, 24, 72, 82, 182, 175, 95, 164,
+ 29, 96, 44, 81, 192, 129, 131, 3, 60, 9,
+ 228, 26, 202, 19, 101, 0, 148, 2, 3, 124,
+ 228, 248, 187, 114, 1, 134, 203, 152, 49, 124,
+ 160, 156, 244, 13, 5, 5, 14, 214, 172, 81,
+ 224, 65, 177, 154, 60, 70, 248, 244, 25, 192,
+ 100, 6, 231, 149, 31, 178, 112, 153, 77, 155,
+ 75, 151, 215, 74, 221, 44, 89, 115, 224, 128,
+ 131, 16, 59, 221, 69, 97, 192, 160, 1, 2,
+ 220, 43, 49, 112, 193, 194, 188, 185, 153, 219,
+ 200, 147, 118, 216, 93, 164, 200, 154, 210, 195,
+ 126, 248, 144, 99, 68, 5, 15, 11, 209, 87,
+ 170, 32, 211, 188, 185, 152, 2, 225, 149, 94,
+ 121, 112, 32, 64, 0, 14, 112, 64, 153, 48,
+ 192, 68, 14, 1, 0, 233, 87, 22, 16, 83,
+ 158, 57, 25, 21, 249, 41, 245, 134, 2, 238,
+ 245, 112, 7, 38, 115, 208, 225, 131, 1, 50,
+ 28, 23, 160, 74, 93, 152, 209, 31, 22, 92,
+ 16, 240, 160, 82, 49, 172, 209, 67, 15, 7,
+ 236, 81, 201, 15, 50, 52, 208, 64, 73, 23,
+ 166, 4, 64, 22, 19, 98, 145, 197, 102, 37,
+ 38, 245, 64, 0, 27, 2, 39, 73, 27, 4,
+ 236, 227, 96, 139, 39, 41, 55, 161, 25, 95,
+ 224, 168, 148, 31, 69, 208, 64, 3, 21, 145,
+ 216, 17, 4, 1, 51, 128, 135, 212, 255, 7,
+ 153, 53, 217, 36, 139, 71, 169, 16, 198, 132,
+ 98, 92, 208, 36, 137, 44, 49, 233, 228, 150,
+ 248, 141, 133, 130, 3, 52, 8, 80, 195, 35,
+ 72, 96, 16, 4, 148, 71, 125, 240, 69, 22,
+ 108, 182, 233, 230, 155, 89, 116, 81, 64, 3,
+ 93, 162, 84, 0, 24, 19, 146, 1, 103, 155,
+ 23, 12, 96, 225, 73, 11, 236, 41, 40, 155,
+ 93, 12, 208, 128, 82, 64, 8, 32, 128, 3,
+ 141, 204, 32, 4, 6, 98, 41, 69, 192, 114,
+ 41, 86, 106, 6, 24, 92, 124, 1, 32, 74,
+ 93, 108, 81, 105, 138, 52, 108, 161, 69, 25,
+ 93, 144, 104, 192, 148, 159, 78, 184, 5, 24,
+ 94, 116, 113, 40, 82, 35, 8, 224, 4, 163,
+ 138, 108, 35, 196, 141, 73, 141, 151, 234, 167,
+ 91, 120, 1, 65, 151, 39, 238, 250, 41, 24,
+ 99, 96, 32, 197, 0, 120, 10, 171, 106, 25,
+ 3, 36, 53, 130, 19, 78, 224, 144, 72, 10,
+ 34, 180, 128, 102, 82, 16, 240, 167, 108, 138,
+ 97, 64, 96, 18, 6, 94, 108, 155, 34, 26,
+ 183, 93, 224, 169, 184, 229, 209, 224, 69, 179,
+ 72, 173, 1, 45, 118, 133, 252, 225, 203, 100,
+ 101, 125, 33, 33, 186, 253, 121, 1, 160, 148,
+ 248, 230, 219, 0, 138, 253, 54, 71, 67, 25,
+ 127, 30, 21, 128, 19, 2, 44, 96, 72, 63,
+ 244, 146, 21, 91, 192, 229, 109, 209, 227, 157,
+ 16, 51, 167, 197, 255, 5, 225, 86, 140, 133,
+ 24, 208, 29, 213, 129, 172, 99, 18, 146, 2,
+ 2, 31, 212, 57, 214, 164, 59, 194, 57, 198,
+ 25, 218, 78, 232, 5, 1, 157, 78, 200, 197,
+ 155, 99, 112, 129, 70, 138, 90, 100, 129, 106,
+ 196, 112, 150, 113, 198, 185, 19, 150, 129, 37,
+ 75, 10, 64, 155, 6, 33, 222, 224, 58, 150,
+ 174, 253, 137, 225, 45, 74, 11, 52, 208, 5,
+ 121, 19, 106, 193, 0, 192, 253, 173, 136, 18,
+ 6, 13, 124, 17, 65, 213, 89, 104, 81, 53,
+ 187, 128, 26, 240, 69, 178, 253, 133, 97, 128,
+ 82, 52, 204, 58, 200, 31, 0, 32, 160, 100,
+ 89, 217, 230, 185, 169, 137, 89, 124, 221, 116,
+ 22, 25, 151, 199, 227, 74, 16, 0, 221, 92,
+ 206, 130, 51, 119, 198, 218, 42, 125, 48, 6,
+ 206, 119, 31, 181, 4, 180, 10, 171, 33, 130,
+ 5, 38, 147, 101, 175, 204, 5, 167, 20, 184,
+ 170, 58, 83, 249, 116, 74, 49, 247, 119, 70,
+ 22, 52, 4, 109, 236, 74, 161, 151, 167, 69,
+ 227, 44, 117, 0, 237, 13, 130, 176, 144, 80,
+ 95, 15, 79, 56, 198, 181, 39, 109, 222, 31,
+ 26, 89, 160, 221, 220, 127, 42, 5, 27, 116,
+ 25, 19, 210, 144, 197, 81, 169, 15, 206, 58,
+ 75, 69, 184, 173, 70, 56, 115, 147, 133, 114,
+ 127, 17, 244, 200, 210, 229, 253, 17, 142, 185,
+ 74, 224, 22, 159, 197, 25, 170, 94, 112, 20,
+ 255, 214, 229, 1, 175, 20, 7, 78, 244, 32,
+ 72, 5, 148, 49, 93, 30, 26, 159, 167, 84,
+ 123, 218, 228, 55, 119, 187, 74, 252, 246, 183,
+ 69, 216, 99, 179, 132, 1, 241, 219, 83, 10,
+ 5, 160, 37, 136, 21, 80, 166, 110, 217, 91,
+ 158, 73, 12, 0, 190, 160, 245, 173, 57, 213,
+ 211, 143, 239, 152, 3, 134, 44, 20, 14, 11,
+ 135, 99, 9, 3, 168, 214, 159, 251, 9, 144,
+ 128, 41, 184, 2, 251, 252, 130, 189, 242, 84,
+ 136, 37, 201, 99, 78, 4, 58, 183, 187, 248,
+ 157, 36, 133, 88, 8, 3, 233, 76, 183, 18,
+ 0, 120, 109, 66, 228, 34, 203, 0, 157, 32,
+ 8, 20, 24, 176, 47, 194, 235, 32, 238, 142,
+ 69, 169, 236, 245, 174, 106, 203, 11, 98, 121,
+ 188, 0, 192, 116, 29, 79, 63, 28, 44, 79,
+ 24, 20, 184, 146, 29, 10, 162, 3, 40, 24,
+ 33, 89, 116, 68, 189, 39, 162, 228, 3, 5,
+ 240, 66, 233, 250, 67, 131, 49, 124, 225, 130,
+ 39, 76, 73, 247, 38, 244, 189, 240, 113, 15,
+ 2, 98, 156, 80, 245, 42, 119, 20, 43, 170,
+ 97, 33, 90, 92, 90, 20, 153, 67, 46, 21,
+ 248, 81, 5, 16, 232, 194, 24, 180, 48, 70,
+ 209, 13, 160, 126, 204, 241, 32, 74, 242, 199,
+ 51, 177, 101, 175, 11, 127, 4, 100, 23, 202,
+ 224, 72, 153, 81, 113, 37, 232, 83, 223, 243,
+ 58, 112, 133, 190, 236, 71, 255, 85, 90, 8,
+ 101, 40, 197, 112, 175, 20, 137, 225, 11, 4,
+ 120, 160, 10, 189, 104, 167, 9, 98, 161, 130,
+ 23, 20, 149, 40, 181, 64, 202, 97, 137, 175,
+ 44, 205, 163, 213, 7, 222, 208, 129, 190, 68,
+ 72, 99, 104, 248, 194, 2, 78, 133, 67, 23,
+ 154, 196, 92, 19, 146, 97, 33, 3, 118, 202,
+ 161, 73, 231, 117, 130, 72, 129, 4, 222, 240,
+ 67, 165, 40, 177, 95, 205, 60, 150, 43, 173,
+ 182, 18, 68, 98, 129, 137, 26, 3, 131, 48,
+ 251, 242, 56, 39, 68, 238, 121, 18, 232, 229,
+ 88, 214, 216, 47, 26, 156, 97, 156, 82, 64,
+ 102, 127, 184, 240, 170, 173, 169, 146, 57, 109,
+ 12, 88, 4, 206, 112, 1, 103, 178, 205, 121,
+ 130, 120, 193, 9, 36, 208, 73, 165, 48, 82,
+ 92, 102, 32, 195, 24, 6, 80, 167, 25, 118,
+ 208, 159, 196, 212, 31, 255, 240, 101, 6, 25,
+ 50, 128, 142, 73, 41, 154, 19, 142, 70, 136,
+ 33, 156, 224, 13, 99, 161, 152, 254, 102, 57,
+ 75, 50, 112, 97, 12, 133, 66, 83, 160, 72,
+ 26, 74, 86, 158, 68, 5, 92, 96, 233, 232,
+ 46, 40, 6, 150, 134, 210, 164, 40, 101, 192,
+ 16, 165, 3, 50, 67, 164, 224, 4, 39, 80,
+ 39, 82, 96, 200, 133, 11, 208, 131, 30, 5,
+ 248, 35, 1, 252, 105, 18, 64, 30, 245, 168,
+ 153, 3, 212, 0, 158, 74, 143, 67, 46, 147,
+ 57, 94, 255, 48, 234, 81, 147, 234, 71, 2,
+ 236, 116, 44, 7, 75, 216, 33, 146, 16, 131,
+ 19, 160, 0, 41, 215, 76, 36, 83, 125, 36,
+ 133, 5, 52, 177, 60, 89, 192, 40, 114, 220,
+ 229, 4, 120, 25, 34, 1, 101, 45, 104, 114,
+ 238, 185, 66, 182, 178, 164, 1, 13, 140, 88,
+ 199, 242, 83, 78, 105, 41, 162, 4, 121, 101,
+ 201, 65, 249, 104, 76, 191, 74, 129, 1, 149,
+ 108, 14, 24, 208, 19, 160, 114, 210, 106, 17,
+ 136, 53, 171, 4, 171, 198, 0, 199, 170, 68,
+ 119, 82, 188, 36, 101, 52, 122, 89, 70, 148,
+ 96, 2, 49, 232, 64, 30, 165, 64, 212, 122,
+ 122, 214, 36, 121, 115, 217, 233, 162, 211, 129,
+ 3, 64, 171, 180, 141, 72, 0, 106, 37, 160,
+ 197, 180, 98, 97, 12, 107, 245, 209, 2, 22,
+ 199, 70, 185, 250, 133, 8, 61, 128, 150, 97,
+ 35, 161, 132, 39, 76, 64, 179, 82, 248, 223,
+ 22, 166, 75, 93, 222, 189, 214, 158, 212, 165,
+ 46, 24, 6, 251, 26, 5, 200, 74, 0, 50,
+ 154, 196, 11, 64, 224, 135, 24, 240, 22, 0,
+ 5, 160, 42, 61, 16, 119, 93, 41, 160, 87,
+ 189, 16, 112, 45, 101, 136, 112, 48, 39, 68,
+ 128, 163, 150, 72, 128, 27, 80, 251, 134, 213,
+ 182, 215, 175, 39, 176, 173, 114, 65, 241, 130,
+ 41, 248, 1, 181, 170, 253, 175, 95, 81, 192,
+ 1, 89, 57, 161, 8, 248, 5, 133, 255, 18,
+ 244, 224, 134, 3, 247, 87, 193, 37, 58, 193,
+ 26, 28, 220, 131, 240, 178, 131, 5, 20, 62,
+ 176, 4, 206, 138, 225, 240, 28, 225, 0, 138,
+ 18, 64, 15, 96, 167, 24, 22, 128, 96, 7,
+ 110, 112, 67, 12, 168, 89, 98, 202, 248, 129,
+ 3, 1, 8, 147, 0, 2, 192, 98, 211, 8,
+ 34, 9, 37, 32, 194, 14, 96, 60, 1, 26,
+ 215, 56, 41, 19, 32, 80, 15, 132, 36, 38,
+ 187, 250, 120, 16, 41, 72, 128, 30, 116, 64,
+ 4, 33, 187, 33, 168, 254, 197, 240, 27, 142,
+ 128, 227, 13, 45, 185, 8, 120, 120, 193, 147,
+ 23, 241, 2, 41, 235, 224, 204, 103, 222, 193,
+ 71, 73, 124, 221, 29, 28, 65, 1, 237, 129,
+ 209, 134, 14, 112, 3, 15, 141, 249, 17, 47,
+ 64, 192, 20, 136, 0, 131, 62, 251, 153, 8,
+ 126, 248, 168, 80, 243, 51, 1, 34, 60, 0,
+ 52, 213, 113, 143, 162, 113, 16, 2, 59, 223,
+ 153, 18, 34, 24, 194, 158, 41, 64, 233, 74,
+ 83, 250, 8, 125, 174, 112, 160, 223, 192, 105,
+ 78, 75, 224, 211, 159, 6, 42, 80, 137, 112,
+ 105, 182, 136, 166, 55, 7, 168, 78, 17, 2,
+ 112, 0, 28, 108, 32, 49, 143, 22, 70, 10,
+ 62, 80, 2, 16, 88, 1, 42, 80, 121, 128,
+ 174, 119, 61, 149, 37, 172, 5, 8, 108, 105,
+ 11, 97, 10, 99, 152, 208, 156, 186, 55, 69,
+ 80, 0, 21, 110, 56, 48, 4, 49, 199, 90,
+ 49, 41, 80, 2, 2, 60, 224, 129, 13, 108,
+ 32, 45, 190, 6, 118, 176, 219, 66, 108, 195,
+ 112, 128, 10, 35, 24, 129, 21, 172, 80, 130,
+ 102, 63, 251, 220, 139, 16, 65, 26, 16, 112,
+ 21, 116, 187, 251, 221, 240, 142, 119, 188, 3,
+ 1, 0, 59, 0 };
unsigned char php_egg_logo[] = {
71, 73, 70, 56, 57, 97, 120, 0, 67, 0,
- 247, 0, 0, 0, 0, 0, 255, 255, 255, 153,
- 153, 205, 135, 111, 114, 110, 103, 104, 185, 161,
- 165, 182, 176, 177, 178, 169, 171, 22, 18, 19,
- 43, 39, 40, 217, 151, 172, 233, 184, 199, 196,
- 168, 177, 253, 219, 230, 207, 179, 188, 252, 202,
- 219, 216, 178, 191, 254, 231, 239, 123, 120, 121,
- 240, 190, 209, 144, 141, 143, 99, 92, 97, 91,
- 87, 90, 6, 5, 6, 189, 187, 189, 93, 92,
- 93, 170, 162, 172, 5, 3, 6, 103, 101, 104,
- 33, 29, 36, 3, 2, 4, 203, 199, 209, 215,
- 211, 222, 9, 8, 11, 107, 106, 109, 116, 115,
- 118, 221, 219, 228, 206, 203, 218, 174, 171, 194,
- 191, 188, 210, 195, 193, 215, 191, 190, 202, 159,
- 158, 168, 168, 167, 182, 185, 184, 211, 172, 171,
- 207, 1, 1, 2, 11, 11, 16, 14, 14, 20,
- 7, 7, 10, 34, 34, 48, 28, 28, 39, 22,
- 22, 30, 153, 153, 203, 156, 156, 205, 160, 160,
- 205, 133, 133, 163, 148, 148, 178, 178, 178, 208,
- 182, 182, 194, 79, 79, 82, 66, 66, 68, 33,
- 33, 34, 111, 111, 114, 46, 46, 47, 76, 76,
- 77, 84, 85, 121, 142, 144, 194, 149, 150, 202,
- 153, 154, 205, 154, 155, 205, 150, 151, 199, 157,
- 158, 202, 161, 162, 200, 165, 166, 203, 75, 77,
- 111, 115, 118, 170, 97, 99, 143, 91, 93, 134,
- 105, 107, 154, 41, 42, 60, 51, 52, 74, 129,
- 132, 182, 136, 139, 191, 146, 148, 196, 153, 155,
- 199, 155, 157, 200, 65, 67, 96, 174, 175, 184,
- 16, 17, 24, 147, 149, 161, 68, 69, 73, 53,
- 54, 57, 132, 133, 136, 139, 143, 153, 93, 96,
- 102, 97, 100, 106, 71, 73, 77, 98, 99, 101,
- 82, 85, 90, 86, 89, 94, 90, 93, 98, 131,
- 137, 146, 104, 109, 116, 109, 114, 121, 119, 124,
- 131, 101, 105, 110, 123, 129, 136, 74, 78, 82,
- 61, 64, 67, 115, 120, 125, 80, 83, 86, 56,
- 58, 60, 35, 36, 37, 48, 49, 50, 50, 51,
- 52, 60, 61, 62, 41, 42, 42, 39, 40, 40,
- 37, 38, 38, 136, 164, 159, 4, 5, 3, 176,
- 173, 166, 192, 189, 183, 180, 174, 163, 194, 187,
- 177, 181, 175, 166, 178, 172, 163, 176, 170, 161,
- 182, 166, 144, 179, 164, 143, 179, 168, 153, 121,
- 116, 109, 186, 180, 172, 184, 178, 170, 191, 185,
- 177, 201, 195, 187, 198, 193, 186, 138, 117, 91,
- 154, 135, 111, 181, 163, 140, 160, 144, 124, 187,
- 170, 149, 184, 168, 148, 189, 178, 164, 186, 175,
- 162, 203, 198, 192, 203, 199, 194, 202, 198, 193,
- 200, 196, 191, 133, 108, 79, 144, 126, 105, 195,
- 180, 163, 176, 163, 148, 201, 187, 171, 202, 190,
- 177, 179, 169, 158, 205, 194, 182, 197, 188, 178,
- 200, 192, 183, 180, 173, 165, 178, 171, 163, 177,
- 170, 162, 175, 168, 160, 189, 182, 174, 197, 190,
- 182, 206, 199, 191, 203, 197, 190, 3, 2, 1,
- 111, 96, 81, 173, 157, 140, 164, 151, 138, 181,
- 171, 161, 178, 170, 162, 173, 166, 159, 195, 188,
- 181, 214, 207, 200, 211, 204, 197, 200, 194, 188,
- 197, 191, 185, 192, 186, 180, 207, 201, 195, 205,
- 199, 193, 202, 197, 192, 196, 192, 188, 197, 194,
- 191, 64, 63, 62, 84, 83, 82, 122, 83, 48,
- 193, 175, 158, 188, 171, 155, 198, 182, 167, 194,
- 183, 173, 88, 55, 28, 210, 198, 188, 201, 193,
- 186, 204, 196, 189, 204, 197, 191, 115, 103, 94,
- 204, 194, 186, 204, 195, 188, 205, 200, 196, 100,
- 89, 81, 105, 98, 93, 175, 168, 163, 202, 195,
- 190, 196, 193, 191, 95, 82, 74, 123, 109, 100,
- 165, 157, 152, 177, 170, 166, 199, 192, 188, 202,
- 197, 194, 201, 196, 193, 199, 194, 191, 13, 11,
- 10, 61, 55, 52, 130, 126, 124, 69, 67, 66,
- 81, 79, 78, 200, 196, 194, 193, 189, 187, 82,
- 67, 60, 149, 136, 130, 79, 74, 72, 198, 193,
- 191, 40, 29, 25, 62, 48, 43, 74, 58, 52,
- 87, 73, 68, 138, 130, 127, 10, 7, 6, 201,
- 195, 193, 195, 192, 191, 199, 189, 186, 19, 15,
- 14, 88, 84, 83, 196, 188, 186, 201, 197, 196,
- 185, 181, 180, 31, 22, 20, 198, 193, 192, 51,
- 39, 37, 47, 34, 33, 183, 156, 154, 168, 162,
- 162, 157, 151, 151, 196, 190, 190, 189, 184, 184,
- 57, 56, 56, 193, 190, 190, 72, 71, 71, 53,
- 53, 53, 44, 44, 44, 29, 29, 29, 255, 255,
- 255, 33, 249, 4, 1, 0, 0, 255, 0, 44,
+ 247, 0, 0, 0, 255, 0, 107, 114, 178, 0,
+ 0, 0, 31, 31, 31, 255, 255, 255, 106, 113,
+ 176, 63, 63, 63, 127, 127, 127, 106, 112, 174,
+ 191, 191, 191, 105, 111, 171, 223, 223, 223, 239,
+ 239, 239, 144, 149, 197, 106, 111, 173, 245, 246,
+ 250, 105, 110, 170, 218, 219, 235, 47, 47, 47,
+ 162, 166, 206, 35, 36, 40, 153, 158, 202, 95,
+ 95, 95, 175, 175, 175, 88, 93, 141, 159, 159,
+ 159, 116, 122, 182, 125, 131, 187, 143, 143, 143,
+ 38, 38, 41, 104, 108, 167, 171, 175, 211, 105,
+ 109, 168, 102, 102, 153, 104, 108, 165, 45, 46,
+ 58, 181, 184, 216, 111, 111, 111, 134, 140, 192,
+ 102, 108, 168, 79, 79, 79, 199, 202, 226, 40,
+ 41, 49, 92, 98, 150, 53, 53, 63, 236, 237,
+ 245, 130, 130, 171, 122, 122, 160, 104, 107, 163,
+ 50, 51, 67, 45, 45, 52, 207, 207, 207, 69,
+ 72, 104, 15, 15, 15, 61, 61, 74, 227, 228,
+ 240, 59, 62, 86, 103, 106, 162, 107, 107, 139,
+ 73, 77, 113, 102, 103, 156, 54, 56, 76, 97,
+ 103, 159, 137, 137, 182, 35, 35, 38, 190, 193,
+ 221, 145, 145, 193, 103, 105, 159, 78, 82, 122,
+ 76, 76, 95, 147, 148, 200, 92, 92, 117, 105,
+ 105, 156, 103, 105, 160, 150, 150, 202, 64, 67,
+ 95, 114, 114, 149, 108, 108, 159, 143, 143, 194,
+ 84, 84, 106, 140, 140, 191, 102, 104, 157, 48,
+ 48, 61, 27, 29, 42, 114, 114, 165, 83, 88,
+ 132, 153, 153, 204, 121, 126, 186, 127, 127, 178,
+ 208, 210, 230, 149, 149, 200, 146, 146, 197, 141,
+ 143, 197, 55, 55, 67, 144, 145, 199, 133, 133,
+ 184, 124, 124, 175, 110, 115, 171, 130, 133, 191,
+ 88, 91, 137, 86, 92, 144, 154, 156, 172, 87,
+ 92, 139, 85, 86, 125, 118, 123, 184, 121, 122,
+ 172, 124, 128, 187, 82, 86, 130, 39, 39, 46,
+ 99, 99, 128, 69, 69, 85, 97, 101, 153, 75,
+ 75, 107, 115, 121, 182, 135, 138, 194, 101, 107,
+ 165, 82, 84, 101, 102, 102, 140, 53, 57, 89,
+ 69, 71, 101, 137, 137, 188, 109, 116, 179, 130,
+ 130, 182, 57, 57, 76, 93, 99, 155, 117, 117,
+ 168, 62, 63, 86, 84, 84, 122, 79, 79, 114,
+ 112, 117, 177, 58, 58, 71, 127, 131, 189, 106,
+ 106, 150, 76, 76, 101, 134, 135, 187, 20, 20,
+ 31, 66, 71, 111, 125, 129, 182, 172, 173, 180,
+ 86, 88, 131, 229, 230, 234, 108, 112, 171, 100,
+ 105, 161, 161, 165, 203, 53, 53, 70, 95, 97,
+ 146, 58, 60, 81, 217, 219, 234, 195, 196, 208,
+ 82, 85, 125, 112, 118, 181, 82, 82, 106, 114,
+ 117, 175, 154, 157, 195, 134, 134, 179, 111, 111,
+ 162, 6, 7, 11, 110, 111, 146, 93, 93, 138,
+ 77, 79, 116, 115, 119, 179, 103, 108, 161, 60,
+ 64, 100, 98, 98, 145, 40, 40, 47, 51, 51,
+ 63, 69, 69, 95, 73, 78, 122, 197, 198, 202,
+ 54, 54, 58, 13, 14, 22, 108, 114, 174, 149,
+ 152, 184, 101, 108, 167, 88, 88, 130, 106, 108,
+ 162, 86, 91, 141, 84, 84, 116, 86, 86, 90,
+ 129, 131, 186, 132, 135, 181, 160, 163, 183, 211,
+ 212, 224, 91, 91, 123, 109, 109, 117, 104, 104,
+ 135, 86, 86, 115, 90, 92, 108, 81, 83, 122,
+ 103, 106, 130, 70, 70, 99, 121, 126, 170, 139,
+ 139, 186, 73, 74, 94, 109, 109, 148, 139, 140,
+ 189, 135, 138, 162, 176, 179, 199, 115, 115, 115,
+ 106, 106, 144, 59, 63, 98, 67, 69, 96, 241,
+ 241, 241, 102, 105, 149, 120, 120, 162, 68, 68,
+ 90, 89, 89, 115, 51, 52, 79, 113, 113, 152,
+ 33, 35, 55, 189, 190, 215, 79, 79, 104, 213,
+ 214, 218, 94, 95, 142, 163, 164, 176, 86, 89,
+ 133, 112, 112, 156, 80, 81, 118, 63, 65, 90,
+ 102, 103, 124, 126, 129, 157, 72, 72, 98, 150,
+ 150, 154, 72, 74, 100, 112, 112, 151, 138, 139,
+ 192, 122, 125, 180, 49, 50, 64, 78, 78, 110,
+ 119, 119, 157, 125, 126, 174, 77, 81, 119, 125,
+ 126, 180, 56, 56, 72, 118, 120, 173, 46, 49,
+ 77, 92, 96, 132, 188, 189, 197, 65, 65, 81,
+ 165, 168, 200, 49, 51, 66, 143, 147, 194, 80,
+ 82, 111, 192, 195, 215, 235, 235, 242, 105, 111,
+ 170, 74, 77, 107, 183, 186, 210, 109, 111, 165,
+ 117, 120, 152, 65, 66, 90, 182, 182, 186, 104,
+ 104, 137, 123, 127, 163, 170, 171, 187, 110, 113,
+ 163, 33, 249, 4, 1, 0, 0, 0, 0, 44,
0, 0, 0, 0, 120, 0, 67, 0, 0, 8,
- 255, 0, 255, 9, 28, 72, 176, 160, 193, 131,
+ 255, 0, 1, 8, 28, 72, 176, 160, 193, 131,
8, 19, 42, 92, 200, 176, 161, 195, 135, 16,
- 35, 50, 20, 64, 177, 162, 197, 139, 24, 51,
- 82, 148, 200, 177, 163, 71, 131, 24, 167, 48,
- 97, 242, 164, 137, 19, 33, 66, 150, 92, 89,
- 201, 242, 202, 146, 37, 40, 133, 56, 105, 242,
- 100, 36, 19, 41, 83, 168, 96, 252, 200, 179,
- 39, 65, 139, 53, 164, 48, 57, 121, 37, 10,
- 20, 40, 81, 146, 70, 105, 233, 82, 229, 203,
- 167, 49, 99, 58, 153, 58, 245, 73, 77, 41,
- 82, 134, 92, 244, 201, 181, 161, 197, 41, 79,
- 132, 20, 149, 65, 246, 40, 82, 165, 75, 139,
- 22, 21, 242, 229, 41, 212, 168, 84, 103, 54,
- 153, 75, 215, 234, 72, 156, 68, 44, 118, 221,
- 43, 176, 34, 21, 38, 98, 101, 208, 152, 49,
- 131, 172, 12, 179, 103, 147, 170, 101, 218, 20,
- 102, 84, 153, 84, 233, 206, 181, 74, 153, 178,
- 205, 41, 67, 242, 110, 228, 235, 177, 226, 148,
- 38, 87, 160, 100, 201, 66, 99, 112, 225, 178,
- 102, 149, 126, 35, 180, 139, 14, 144, 126, 236,
- 216, 205, 153, 211, 134, 13, 155, 47, 101, 198,
- 168, 1, 83, 65, 12, 135, 223, 40, 229, 86,
- 182, 59, 178, 166, 205, 155, 83, 52, 11, 224,
- 12, 145, 34, 149, 39, 87, 100, 188, 128, 49,
- 186, 52, 97, 195, 71, 201, 105, 127, 246, 108,
- 117, 107, 57, 64, 98, 207, 255, 145, 211, 38,
- 204, 237, 47, 186, 213, 140, 9, 3, 6, 76,
- 25, 17, 35, 8, 88, 200, 80, 161, 130, 132,
- 17, 147, 139, 235, 191, 123, 119, 72, 141, 205,
- 204, 37, 68, 17, 96, 80, 196, 16, 194, 116,
- 212, 89, 87, 216, 60, 227, 52, 24, 140, 55,
- 170, 168, 146, 137, 119, 116, 128, 39, 30, 121,
- 182, 125, 129, 158, 26, 90, 156, 209, 198, 22,
- 106, 156, 129, 134, 27, 101, 180, 55, 70, 27,
- 186, 100, 19, 141, 57, 44, 154, 99, 15, 77,
- 54, 9, 117, 19, 86, 200, 233, 4, 96, 128,
- 125, 9, 0, 29, 13, 23, 24, 248, 194, 116,
- 164, 209, 48, 15, 131, 229, 4, 99, 164, 145,
- 150, 68, 168, 202, 55, 95, 108, 177, 5, 25,
- 235, 181, 1, 7, 16, 92, 144, 241, 5, 24,
- 95, 168, 129, 134, 25, 104, 108, 193, 198, 110,
- 96, 208, 209, 70, 25, 101, 192, 177, 204, 62,
- 111, 184, 193, 204, 48, 179, 36, 82, 136, 31,
- 209, 216, 131, 3, 127, 119, 9, 133, 85, 78,
- 21, 225, 72, 209, 19, 81, 132, 224, 130, 7,
- 61, 30, 8, 3, 13, 226, 48, 72, 206, 34,
- 150, 88, 194, 203, 145, 193, 240, 34, 161, 42,
- 25, 124, 24, 198, 24, 99, 176, 241, 6, 148,
- 147, 150, 33, 226, 150, 107, 168, 23, 70, 27,
- 149, 126, 9, 6, 15, 109, 136, 73, 199, 54,
- 230, 28, 51, 12, 50, 136, 52, 51, 205, 30,
- 134, 184, 255, 34, 231, 156, 118, 98, 101, 43,
- 158, 203, 241, 53, 224, 21, 33, 0, 224, 129,
- 7, 27, 24, 136, 0, 60, 227, 120, 83, 142,
- 42, 171, 52, 114, 137, 37, 138, 44, 106, 36,
- 47, 188, 52, 162, 10, 33, 83, 250, 16, 135,
- 28, 112, 212, 70, 134, 26, 106, 144, 177, 173,
- 23, 94, 152, 97, 198, 25, 99, 244, 192, 197,
- 22, 116, 176, 49, 6, 25, 111, 176, 177, 69,
- 16, 97, 108, 67, 72, 41, 195, 16, 211, 106,
- 51, 178, 200, 162, 78, 59, 6, 212, 163, 133,
- 25, 56, 224, 96, 235, 192, 184, 114, 69, 145,
- 20, 87, 100, 1, 0, 0, 127, 110, 16, 2,
- 2, 243, 144, 83, 142, 50, 153, 60, 178, 138,
- 34, 137, 42, 234, 236, 179, 141, 52, 2, 206,
- 28, 253, 204, 177, 30, 27, 97, 96, 59, 198,
- 166, 106, 164, 225, 133, 22, 94, 172, 81, 198,
- 22, 61, 192, 60, 198, 23, 103, 188, 241, 198,
- 23, 111, 240, 16, 68, 6, 246, 116, 66, 204,
- 207, 196, 156, 114, 203, 41, 167, 52, 163, 206,
- 43, 253, 134, 27, 240, 192, 88, 101, 118, 35,
- 71, 20, 57, 33, 195, 194, 11, 187, 240, 112,
- 177, 207, 168, 50, 72, 47, 190, 168, 114, 9,
- 180, 96, 55, 122, 164, 37, 171, 64, 211, 67,
- 27, 92, 176, 65, 134, 166, 109, 248, 0, 68,
- 109, 103, 184, 33, 174, 25, 43, 123, 193, 174,
- 26, 91, 132, 113, 70, 167, 106, 88, 255, 138,
- 222, 22, 207, 92, 146, 136, 41, 63, 23, 125,
- 138, 36, 69, 87, 98, 205, 52, 179, 28, 114,
- 128, 61, 94, 44, 61, 5, 78, 56, 105, 149,
- 43, 212, 8, 95, 64, 53, 0, 27, 32, 0,
- 68, 57, 169, 100, 2, 9, 38, 144, 244, 226,
- 72, 35, 205, 130, 29, 118, 163, 151, 52, 146,
- 1, 29, 159, 182, 177, 173, 148, 113, 68, 65,
- 105, 26, 107, 164, 161, 197, 191, 102, 116, 161,
- 134, 25, 120, 168, 193, 195, 109, 96, 168, 81,
- 6, 15, 233, 110, 147, 202, 34, 145, 152, 226,
- 124, 49, 167, 152, 98, 75, 49, 136, 227, 91,
- 73, 46, 221, 224, 211, 175, 22, 146, 79, 225,
- 189, 211, 151, 59, 180, 39, 20, 155, 187, 176,
- 142, 56, 222, 164, 178, 10, 36, 165, 251, 226,
- 203, 35, 140, 52, 178, 8, 198, 204, 50, 171,
- 8, 198, 173, 55, 18, 4, 28, 108, 144, 138,
- 30, 28, 117, 32, 3, 151, 246, 230, 5, 52,
- 212, 205, 13, 106, 248, 129, 27, 220, 112, 6,
- 247, 80, 170, 12, 95, 8, 3, 29, 246, 17,
- 134, 103, 40, 98, 17, 144, 112, 158, 243, 108,
- 193, 65, 91, 220, 2, 29, 205, 104, 70, 53,
- 20, 135, 11, 237, 249, 75, 96, 222, 75, 161,
- 141, 28, 130, 143, 168, 205, 96, 115, 231, 32,
- 150, 50, 26, 49, 8, 247, 57, 194, 17, 129,
- 16, 4, 35, 118, 200, 195, 27, 114, 173, 23,
- 64, 52, 221, 8, 255, 96, 134, 37, 32, 128,
- 97, 12, 65, 168, 67, 25, 208, 128, 134, 53,
- 152, 97, 13, 77, 252, 215, 8, 212, 32, 130,
- 31, 212, 204, 102, 37, 226, 86, 25, 216, 144,
- 174, 32, 88, 98, 17, 140, 16, 70, 45, 198,
- 72, 198, 49, 74, 130, 24, 183, 184, 5, 37,
- 170, 49, 194, 87, 109, 15, 133, 42, 124, 26,
- 66, 40, 34, 4, 24, 80, 205, 5, 16, 75,
- 223, 42, 4, 241, 136, 62, 62, 226, 134, 238,
- 115, 95, 16, 7, 57, 72, 115, 144, 33, 8,
- 109, 56, 3, 27, 228, 144, 155, 125, 140, 1,
- 75, 96, 24, 209, 2, 113, 103, 134, 31, 136,
- 33, 68, 25, 88, 215, 25, 202, 144, 38, 55,
- 160, 161, 12, 251, 232, 193, 62, 150, 183, 136,
- 94, 192, 34, 22, 168, 76, 165, 25, 37, 97,
- 139, 73, 76, 130, 26, 149, 184, 94, 9, 15,
- 176, 59, 156, 196, 49, 124, 7, 161, 99, 12,
- 168, 118, 1, 98, 61, 99, 0, 170, 8, 68,
- 32, 252, 24, 200, 98, 6, 242, 134, 200, 116,
- 196, 35, 84, 177, 12, 54, 100, 203, 13, 176,
- 171, 84, 27, 218, 67, 179, 6, 58, 49, 13,
- 104, 56, 131, 111, 212, 192, 1, 68, 206, 33,
- 31, 61, 160, 131, 39, 63, 121, 196, 125, 40,
- 195, 18, 151, 232, 133, 48, 80, 9, 139, 118,
- 158, 50, 22, 101, 108, 229, 244, 110, 97, 13,
- 117, 224, 227, 113, 56, 200, 1, 102, 188, 183,
- 255, 194, 57, 10, 64, 8, 187, 92, 216, 57,
- 196, 65, 14, 101, 44, 66, 21, 124, 244, 99,
- 31, 135, 41, 204, 133, 10, 243, 161, 60, 100,
- 132, 42, 36, 224, 36, 77, 177, 225, 120, 164,
- 138, 100, 184, 184, 37, 183, 113, 37, 48, 13,
- 105, 56, 67, 24, 182, 240, 154, 48, 4, 193,
- 55, 71, 156, 212, 27, 44, 216, 136, 94, 252,
- 226, 23, 154, 208, 196, 38, 58, 209, 9, 97,
- 208, 180, 22, 206, 195, 169, 45, 78, 81, 9,
- 124, 169, 195, 113, 42, 200, 39, 102, 134, 48,
- 132, 126, 22, 36, 106, 118, 92, 216, 53, 208,
- 7, 141, 70, 100, 66, 16, 57, 124, 104, 14,
- 117, 40, 8, 29, 70, 244, 170, 59, 84, 133,
- 57, 44, 21, 6, 44, 178, 161, 7, 108, 56,
- 3, 238, 200, 244, 5, 38, 186, 225, 7, 85,
- 212, 210, 168, 182, 193, 3, 53, 160, 135, 82,
- 60, 0, 3, 27, 62, 4, 14, 75, 52, 2,
- 24, 49, 141, 233, 75, 49, 129, 137, 94, 240,
- 245, 165, 50, 221, 132, 96, 61, 81, 138, 82,
- 120, 130, 20, 173, 240, 151, 62, 137, 10, 62,
- 144, 48, 225, 133, 74, 157, 71, 57, 46, 177,
- 199, 170, 78, 181, 170, 85, 101, 132, 85, 119,
- 40, 204, 171, 6, 34, 171, 223, 120, 3, 23,
- 122, 240, 6, 80, 189, 11, 12, 32, 93, 15,
- 25, 80, 139, 6, 14, 72, 64, 4, 22, 216,
- 214, 110, 200, 144, 129, 53, 255, 144, 136, 102,
- 111, 200, 77, 169, 118, 97, 140, 69, 24, 2,
- 25, 166, 16, 6, 49, 108, 218, 9, 193, 106,
- 226, 23, 124, 37, 221, 95, 127, 1, 140, 230,
- 2, 163, 16, 204, 80, 129, 22, 114, 192, 216,
- 198, 14, 68, 0, 84, 136, 2, 213, 6, 90,
- 14, 115, 84, 22, 179, 152, 213, 44, 84, 165,
- 10, 81, 172, 74, 244, 27, 187, 128, 3, 88,
- 185, 128, 188, 39, 173, 237, 74, 213, 156, 228,
- 8, 68, 32, 55, 52, 100, 64, 12, 95, 24,
- 193, 26, 206, 64, 6, 49, 240, 23, 93, 186,
- 80, 94, 83, 61, 97, 138, 90, 116, 240, 20,
- 197, 0, 154, 170, 62, 177, 9, 77, 56, 215,
- 185, 164, 32, 133, 33, 162, 59, 221, 162, 82,
- 193, 168, 116, 164, 154, 7, 224, 209, 93, 173,
- 101, 226, 169, 224, 37, 175, 84, 253, 56, 204,
- 62, 226, 240, 161, 230, 104, 82, 222, 232, 96,
- 129, 225, 245, 224, 12, 102, 192, 102, 3, 197,
- 218, 187, 46, 184, 161, 120, 98, 200, 89, 2,
- 71, 128, 192, 117, 125, 193, 93, 219, 120, 70,
- 42, 190, 24, 9, 98, 216, 34, 25, 173, 164,
- 158, 208, 208, 193, 228, 91, 224, 107, 24, 137,
- 152, 69, 97, 95, 241, 138, 67, 144, 194, 0,
- 209, 205, 65, 14, 46, 108, 93, 1, 72, 97,
- 106, 11, 67, 128, 55, 160, 17, 141, 65, 152,
- 249, 204, 103, 102, 133, 47, 34, 193, 230, 210,
- 141, 14, 255, 19, 47, 141, 243, 94, 251, 58,
- 136, 111, 228, 56, 102, 104, 250, 129, 134, 246,
- 91, 60, 8, 186, 33, 13, 189, 203, 198, 89,
- 221, 106, 179, 148, 217, 118, 4, 95, 232, 47,
- 24, 50, 64, 0, 99, 48, 107, 17, 131, 248,
- 196, 145, 57, 56, 9, 73, 72, 34, 141, 78,
- 70, 135, 53, 172, 17, 142, 105, 224, 194, 211,
- 184, 232, 70, 55, 246, 64, 139, 119, 28, 64,
- 5, 91, 190, 48, 21, 254, 243, 143, 12, 11,
- 84, 30, 202, 88, 197, 40, 56, 65, 235, 90,
- 115, 130, 21, 184, 230, 131, 31, 12, 97, 136,
- 8, 247, 225, 21, 165, 248, 132, 176, 59, 113,
- 140, 78, 48, 216, 19, 192, 136, 4, 5, 56,
- 96, 129, 30, 140, 129, 7, 91, 16, 3, 160,
- 113, 22, 210, 109, 121, 50, 13, 223, 144, 192,
- 56, 23, 216, 5, 52, 224, 238, 172, 173, 253,
- 194, 125, 151, 225, 232, 11, 102, 226, 21, 182,
- 24, 35, 7, 45, 125, 233, 52, 50, 89, 22,
- 211, 136, 55, 46, 230, 61, 111, 125, 140, 250,
- 29, 89, 62, 194, 133, 143, 80, 145, 35, 128,
- 25, 0, 28, 254, 134, 43, 254, 208, 138, 130,
- 135, 34, 20, 173, 8, 197, 31, 254, 0, 10,
- 80, 236, 186, 16, 133, 32, 197, 33, 104, 65,
- 139, 82, 168, 67, 29, 195, 56, 6, 49, 144,
- 81, 92, 79, 176, 194, 28, 34, 24, 195, 22,
- 74, 155, 129, 50, 136, 193, 137, 33, 255, 2,
- 147, 136, 70, 144, 13, 180, 146, 43, 146, 182,
- 245, 141, 8, 50, 16, 132, 55, 176, 99, 27,
- 224, 88, 6, 179, 46, 177, 136, 76, 0, 163,
- 24, 181, 72, 6, 146, 43, 109, 105, 76, 107,
- 90, 22, 156, 166, 55, 46, 238, 145, 14, 123,
- 155, 112, 203, 71, 136, 122, 69, 158, 192, 75,
- 121, 24, 35, 26, 204, 144, 6, 40, 14, 126,
- 112, 81, 36, 92, 225, 14, 55, 4, 196, 37,
- 78, 11, 96, 207, 98, 26, 33, 68, 134, 218,
- 135, 81, 10, 87, 100, 163, 111, 147, 154, 230,
- 241, 190, 208, 133, 150, 161, 65, 75, 55, 230,
- 64, 54, 152, 205, 95, 53, 184, 161, 11, 93,
- 144, 128, 4, 44, 185, 139, 32, 20, 158, 29,
- 67, 86, 68, 235, 124, 126, 138, 160, 7, 125,
- 18, 182, 104, 247, 45, 70, 168, 56, 78, 59,
- 35, 23, 244, 102, 122, 58, 178, 119, 234, 28,
- 84, 33, 234, 255, 17, 192, 18, 168, 182, 142,
- 114, 124, 35, 235, 210, 232, 186, 40, 86, 15,
- 8, 174, 135, 125, 236, 135, 48, 251, 217, 67,
- 120, 138, 159, 33, 227, 21, 209, 24, 129, 24,
- 186, 186, 158, 16, 173, 171, 12, 245, 253, 115,
- 26, 52, 244, 131, 76, 122, 178, 12, 63, 208,
- 130, 61, 150, 111, 14, 193, 103, 96, 23, 187,
- 8, 242, 163, 27, 33, 8, 96, 32, 98, 140,
- 66, 95, 183, 36, 170, 145, 198, 17, 110, 58,
- 28, 224, 119, 134, 255, 248, 197, 223, 116, 12,
- 188, 67, 3, 42, 168, 194, 231, 67, 175, 221,
- 133, 193, 227, 234, 122, 72, 189, 52, 68, 17,
- 138, 213, 219, 255, 224, 127, 216, 181, 216, 201,
- 94, 138, 89, 204, 66, 22, 205, 128, 96, 197,
- 64, 56, 133, 96, 15, 63, 80, 46, 149, 66,
- 90, 8, 20, 55, 221, 52, 60, 75, 148, 1,
- 28, 240, 3, 189, 177, 64, 35, 192, 1, 35,
- 64, 1, 20, 96, 14, 217, 64, 0, 203, 192,
- 14, 1, 54, 100, 211, 55, 8, 192, 128, 12,
- 100, 116, 100, 149, 70, 9, 148, 208, 125, 149,
- 199, 105, 185, 208, 130, 226, 167, 121, 250, 112,
- 79, 42, 96, 5, 234, 87, 5, 20, 1, 89,
- 0, 32, 15, 208, 80, 15, 241, 215, 117, 204,
- 0, 8, 64, 120, 127, 12, 247, 112, 100, 247,
- 10, 109, 2, 128, 205, 80, 12, 182, 96, 10,
- 211, 0, 10, 223, 32, 2, 35, 181, 30, 97,
- 240, 5, 43, 163, 5, 35, 192, 14, 86, 82,
- 46, 219, 176, 11, 247, 101, 1, 236, 80, 1,
- 14, 48, 1, 5, 0, 120, 18, 64, 8, 26,
- 104, 12, 236, 96, 1, 28, 96, 12, 208, 240,
- 104, 170, 192, 10, 125, 208, 12, 216, 151, 125,
- 236, 182, 70, 105, 100, 13, 185, 176, 105, 226,
- 23, 15, 241, 240, 130, 250, 160, 15, 24, 96,
- 0, 42, 128, 4, 86, 64, 131, 20, 241, 2,
- 84, 35, 15, 230, 224, 10, 210, 208, 136, 162,
- 255, 240, 131, 65, 184, 122, 173, 32, 10, 127,
- 160, 107, 251, 55, 113, 192, 150, 8, 0, 136,
- 96, 75, 88, 10, 163, 64, 1, 145, 50, 41,
- 100, 128, 6, 42, 176, 2, 90, 112, 31, 85,
- 232, 6, 186, 192, 14, 102, 96, 138, 4, 240,
- 12, 244, 208, 0, 15, 208, 0, 12, 144, 13,
- 128, 135, 129, 18, 0, 13, 131, 103, 12, 247,
- 195, 115, 170, 16, 9, 165, 208, 120, 115, 120,
- 130, 147, 151, 130, 43, 24, 14, 185, 112, 121,
- 201, 248, 130, 24, 96, 126, 42, 144, 4, 72,
- 64, 136, 2, 48, 4, 46, 192, 48, 215, 224,
- 13, 246, 192, 136, 243, 7, 132, 220, 200, 141,
- 244, 23, 10, 175, 87, 132, 254, 55, 12, 33,
- 68, 61, 166, 240, 10, 204, 32, 1, 224, 0,
- 7, 91, 80, 86, 110, 112, 104, 93, 80, 138,
- 43, 96, 6, 106, 176, 15, 96, 176, 2, 41,
- 128, 2, 102, 96, 15, 17, 240, 0, 179, 216,
- 0, 244, 144, 13, 18, 96, 139, 230, 192, 134,
- 26, 72, 8, 138, 39, 45, 145, 32, 105, 216,
- 23, 116, 145, 103, 105, 41, 88, 13, 32, 100,
- 13, 124, 136, 140, 125, 72, 126, 127, 232, 140,
- 73, 0, 141, 72, 48, 141, 189, 2, 0, 165,
- 151, 141, 210, 192, 12, 144, 216, 141, 222, 8,
- 142, 68, 136, 137, 254, 151, 8, 205, 64, 12,
- 212, 99, 11, 123, 16, 13, 98, 0, 7, 92,
- 16, 6, 119, 119, 37, 63, 255, 64, 1, 42,
- 32, 93, 120, 144, 6, 100, 160, 13, 216, 2,
- 86, 22, 0, 2, 253, 232, 143, 17, 0, 1,
- 223, 64, 1, 246, 160, 2, 107, 32, 6, 25,
- 48, 2, 130, 71, 8, 173, 163, 10, 144, 48,
- 13, 233, 22, 116, 66, 231, 74, 69, 199, 70,
- 232, 176, 130, 185, 16, 15, 203, 152, 14, 98,
- 233, 116, 207, 184, 145, 73, 48, 141, 52, 0,
- 0, 168, 176, 14, 216, 72, 146, 36, 9, 8,
- 111, 217, 141, 171, 87, 137, 41, 89, 118, 254,
- 39, 11, 136, 32, 128, 167, 96, 8, 230, 176,
- 13, 252, 64, 7, 200, 151, 1, 106, 48, 144,
- 20, 192, 50, 42, 16, 82, 104, 192, 5, 64,
- 0, 78, 216, 64, 0, 13, 16, 1, 13, 208,
- 0, 19, 208, 0, 11, 112, 129, 209, 176, 2,
- 88, 64, 1, 63, 128, 86, 203, 112, 9, 139,
- 7, 12, 199, 80, 70, 201, 160, 149, 146, 128,
- 130, 108, 52, 66, 95, 9, 150, 96, 233, 12,
- 98, 217, 116, 128, 248, 14, 245, 160, 4, 74,
- 0, 141, 211, 72, 62, 107, 233, 13, 217, 224,
- 10, 110, 9, 8, 163, 208, 155, 114, 169, 112,
- 150, 8, 113, 152, 216, 127, 154, 88, 123, 197,
- 32, 11, 210, 64, 8, 251, 144, 15, 209, 86,
- 69, 93, 96, 15, 24, 88, 119, 94, 192, 6,
- 110, 160, 2, 110, 64, 82, 116, 0, 14, 236,
- 48, 1, 17, 0, 153, 11, 240, 0, 16, 32,
- 1, 93, 255, 160, 148, 24, 128, 5, 35, 192,
- 3, 187, 144, 10, 208, 176, 120, 125, 0, 116,
- 100, 148, 149, 39, 104, 154, 222, 247, 149, 200,
- 152, 140, 99, 105, 111, 129, 168, 1, 178, 169,
- 4, 29, 73, 5, 87, 192, 48, 235, 32, 7,
- 100, 182, 155, 188, 233, 155, 220, 8, 156, 250,
- 23, 113, 177, 183, 146, 155, 40, 9, 137, 224,
- 10, 34, 160, 13, 116, 192, 3, 98, 144, 147,
- 20, 48, 158, 20, 32, 1, 91, 196, 5, 123,
- 163, 5, 62, 57, 6, 101, 80, 1, 32, 16,
- 153, 15, 160, 0, 223, 80, 1, 63, 208, 5,
- 34, 96, 14, 94, 128, 5, 6, 88, 31, 235,
- 233, 84, 158, 64, 12, 115, 248, 120, 174, 180,
- 70, 167, 121, 61, 120, 232, 130, 172, 57, 150,
- 205, 104, 0, 43, 176, 159, 253, 233, 4, 12,
- 51, 80, 202, 176, 136, 36, 57, 10, 5, 106,
- 146, 8, 202, 107, 10, 106, 132, 184, 144, 8,
- 61, 117, 56, 165, 16, 13, 28, 160, 13, 61,
- 192, 3, 28, 176, 6, 94, 208, 5, 217, 96,
- 15, 18, 144, 1, 100, 128, 54, 108, 144, 6,
- 101, 224, 3, 65, 176, 3, 37, 192, 0, 178,
- 248, 0, 19, 48, 0, 240, 192, 15, 99, 192,
- 1, 236, 64, 0, 24, 170 ,
- 162, 25, 144, 10, 139, 231, 9, 238, 41, 116,
- 240, 57, 9, 56, 74, 13, 222, 7, 150, 95,
- 105, 159, 62, 138, 15, 26, 96, 2, 45, 208,
- 2, 74, 255, 96, 3, 2, 112, 4, 82, 240,
- 66, 121, 128, 0, 216, 0, 13, 217, 152, 164,
- 189, 169, 164, 65, 8, 118, 9, 42, 113, 70,
- 152, 8, 44, 25, 128, 167, 240, 10, 246, 176,
- 12, 65, 176, 5, 109, 213, 5, 226, 130, 129,
- 22, 16, 4, 65, 0, 50, 239, 50, 90, 100,
- 224, 0, 1, 16, 0, 17, 176, 0, 11, 240,
- 13, 243, 224, 15, 218, 0, 125, 219, 144, 1,
- 18, 144, 6, 227, 153, 1, 219, 160, 12, 230,
- 214, 158, 239, 57, 154, 55, 74, 13, 130, 202,
- 70, 215, 211, 130, 203, 216, 163, 127, 168, 61,
- 43, 176, 168, 140, 90, 17, 67, 112, 5, 46,
- 128, 10, 3, 197, 14, 3, 16, 13, 174, 144,
- 169, 6, 90, 127, 156, 234, 164, 164, 80, 118,
- 165, 0, 170, 178, 112, 56, 163, 106, 15, 4,
- 176, 13, 251, 160, 165, 194, 58, 158, 3, 0,
- 14, 218, 192, 15, 117, 112, 7, 116, 48, 7,
- 91, 128, 6, 99, 96, 1, 26, 224, 0, 223,
- 48, 0, 21, 144, 0, 29, 0, 7, 59, 83,
- 1, 224, 176, 15, 217, 144, 6, 226, 153, 1,
- 227, 48, 100, 148, 69, 10, 146, 224, 167, 240,
- 137, 130, 204, 138, 163, 207, 250, 149, 228, 119,
- 159, 6, 144, 168, 214, 122, 3, 253, 198, 4,
- 29, 224, 2, 121, 112, 13, 242, 176, 12, 171,
- 16, 174, 153, 202, 155, 173, 167, 112, 67, 88,
- 151, 159, 186, 174, 67, 179, 7, 246, 255, 192,
- 26, 241, 154, 95, 105, 48, 2, 230, 64, 0,
- 186, 48, 7, 252, 144, 15, 117, 192, 5, 114,
- 224, 108, 194, 138, 6, 21, 208, 142, 95, 64,
- 7, 116, 0, 7, 60, 176, 13, 98, 176, 11,
- 218, 112, 31, 131, 183, 5, 17, 203, 44, 141,
- 80, 8, 149, 128, 149, 89, 137, 130, 242, 201,
- 149, 60, 218, 177, 25, 89, 15, 43, 96, 2,
- 58, 192, 168, 142, 106, 17, 66, 80, 141, 39,
- 75, 14, 100, 214, 178, 7, 10, 179, 97, 119,
- 137, 118, 169, 137, 162, 186, 7, 174, 32, 1,
- 236, 32, 74, 178, 5, 6, 35, 176, 12, 252,
- 32, 7, 116, 0, 78, 251, 48, 27, 101, 154,
- 153, 90, 178, 6, 96, 0, 7, 180, 65, 115,
- 63, 96, 1, 251, 48, 120, 217, 80, 1, 62,
- 32, 14, 188, 128, 78, 141, 96, 8, 149, 224,
- 167, 174, 244, 74, 24, 43, 168, 76, 70, 145,
- 227, 215, 154, 127, 24, 131, 137, 170, 3, 168,
- 43, 178, 27, 225, 28, 81, 176, 173, 121, 176,
- 14, 110, 11, 174, 65, 8, 8, 223, 184, 112,
- 150, 184, 127, 180, 176, 160, 118, 123, 105, 137,
- 160, 7, 217, 208, 26, 89, 218, 95, 100, 176,
- 12, 202, 144, 15, 115, 16, 4, 251, 32, 161,
- 112, 144, 15, 187, 32, 2, 176, 101, 1, 190,
- 193, 14, 21, 242, 46, 187, 32, 1, 21, 192,
- 14, 34, 32, 158, 186, 128, 0, 98, 102, 12,
- 148, 101, 8, 214, 255, 48, 154, 202, 250, 74,
- 205, 202, 149, 207, 218, 177, 247, 105, 126, 88,
- 128, 186, 44, 208, 2, 122, 81, 17, 143, 181,
- 48, 30, 32, 102, 111, 203, 141, 173, 64, 187,
- 149, 248, 122, 10, 74, 11, 123, 112, 132, 205,
- 112, 11, 146, 144, 11, 134, 144, 13, 224, 192,
- 15, 234, 21, 6, 153, 100, 1, 219, 240, 33,
- 52, 71, 7, 61, 160, 11, 249, 176, 15, 18,
- 188, 133, 203, 192, 133, 251, 128, 45, 20, 42,
- 2, 191, 145, 189, 98, 128, 0, 235, 224, 15,
- 228, 160, 167, 171, 96, 8, 179, 80, 13, 238,
- 48, 154, 146, 240, 74, 92, 137, 14, 213, 192,
- 13, 220, 16, 182, 98, 137, 11, 128, 136, 1,
- 59, 176, 3, 58, 208, 190, 170, 123, 57, 21,
- 225, 4, 73, 181, 1, 240, 48, 102, 43, 27,
- 174, 38, 153, 127, 98, 23, 113, 252, 59, 179,
- 105, 36, 9, 149, 96, 8, 18, 160, 13, 64,
- 32, 7, 92, 160, 11, 72, 196, 3, 218, 160,
- 11, 101, 64, 6, 61, 64, 37, 249, 160, 11,
- 92, 188, 133, 65, 112, 115, 82, 59, 27, 99,
- 48, 95, 28, 64, 0, 4, 176, 11, 254, 112,
- 13, 48, 224, 15, 216, 32, 194, 210, 176, 7,
- 185, 64, 13, 238, 0, 168, 107, 212, 149, 76,
- 198, 13, 59, 58, 186, 165, 11, 136, 53, 204,
- 2, 44, 160, 3, 74, 160, 23, 57, 66, 71,
- 189, 226, 2, 62, 172, 13, 198, 240, 13, 224,
- 255, 170, 169, 64, 72, 151, 151, 104, 118, 154,
- 88, 9, 0, 92, 9, 122, 32, 2, 66, 91,
- 7, 79, 252, 46, 76, 203, 5, 110, 181, 5,
- 179, 193, 5, 116, 192, 197, 251, 32, 181, 219,
- 16, 27, 247, 218, 15, 111, 144, 6, 101, 108,
- 1, 218, 128, 0, 215, 128, 0, 254, 208, 15,
- 216, 240, 12, 132, 240, 13, 163, 240, 14, 179,
- 192, 13, 238, 64, 13, 107, 84, 9, 161, 11,
- 173, 201, 40, 195, 174, 217, 13, 205, 184, 3,
- 39, 112, 2, 126, 28, 200, 121, 242, 19, 21,
- 33, 4, 126, 2, 44, 240, 32, 15, 207, 144,
- 200, 209, 192, 200, 161, 160, 7, 157, 170, 146,
- 145, 140, 14, 178, 160, 7, 25, 208, 15, 113,
- 112, 7, 117, 96, 7, 113, 192, 5, 179, 113,
- 7, 99, 178, 5, 92, 0, 7, 116, 192, 15,
- 218, 240, 206, 91, 176, 13, 242, 220, 26, 115,
- 0, 4, 25, 32, 2, 21, 160, 13, 249, 224,
- 15, 89, 224, 15, 117, 0, 180, 186, 240, 12,
- 208, 160, 200, 134, 64, 11, 225, 224, 14, 220,
- 64, 13, 31, 180, 105, 208, 10, 150, 245, 38,
- 106, 196, 140, 1, 41, 112, 2, 40, 128, 204,
- 238, 187, 204, 71, 213, 204, 48, 176, 1, 23,
- 16, 2, 89, 16, 49, 71, 90, 205, 65, 168,
- 107, 50, 155, 174, 249, 130, 47, 209, 160, 13,
- 113, 224, 3, 44, 125, 7, 62, 224, 15, 52,
- 224, 15, 118, 32, 7, 114, 255, 224, 76, 179,
- 81, 180, 251, 96, 175, 251, 176, 133, 219, 160,
- 11, 225, 12, 6, 63, 208, 3, 129, 91, 207,
- 92, 80, 212, 85, 92, 14, 203, 64, 8, 171,
- 0, 8, 239, 208, 14, 232, 224, 194, 215, 19,
- 15, 245, 233, 130, 246, 38, 106, 123, 128, 15,
- 18, 141, 2, 90, 141, 2, 23, 45, 71, 215,
- 181, 195, 51, 112, 14, 49, 48, 29, 29, 48,
- 14, 229, 0, 13, 43, 203, 9, 128, 0, 10,
- 193, 73, 118, 125, 16, 108, 120, 137, 8, 179,
- 32, 1, 64, 224, 210, 254, 112, 7, 114, 112,
- 7, 118, 125, 215, 119, 0, 7, 97, 48, 30,
- 64, 48, 82, 116, 160, 13, 134, 151, 134, 115,
- 224, 15, 114, 160, 6, 35, 16, 4, 251, 42,
- 38, 112, 208, 15, 67, 171, 11, 224, 160, 12,
- 181, 28, 13, 6, 176, 7, 211, 192, 13, 108,
- 84, 168, 47, 56, 111, 163, 70, 113, 248, 144,
- 2, 31, 80, 2, 37, 160, 213, 93, 141, 75,
- 32, 49, 117, 81, 240, 35, 212, 225, 15, 242,
- 16, 194, 223, 48, 8, 173, 112, 187, 10, 250,
- 107, 193, 150, 8, 136, 128, 8, 135, 176, 13,
- 253, 144, 0, 118, 224, 54, 117, 224, 15, 62,
- 224, 210, 119, 16, 7, 194, 205, 15, 115, 64,
- 147, 92, 176, 63, 89, 58, 31, 235, 1, 59,
- 143, 11, 4, 236, 200, 15, 53, 7, 4, 117,
- 240, 151, 189, 106, 12, 95, 58, 10, 123, 16,
- 14, 220, 255, 16, 75, 22, 233, 12, 184, 224,
- 12, 247, 48, 106, 123, 176, 7, 24, 48, 218,
- 164, 93, 2, 44, 160, 204, 24, 45, 32, 21,
- 129, 48, 89, 144, 32, 52, 80, 214, 2, 189,
- 10, 173, 16, 9, 69, 124, 8, 135, 96, 219,
- 159, 144, 8, 108, 103, 14, 186, 112, 221, 43,
- 13, 30, 113, 96, 7, 118, 48, 180, 98, 178,
- 210, 253, 32, 206, 236, 117, 54, 60, 160, 134,
- 33, 199, 3, 20, 78, 7, 254, 176, 5, 112,
- 32, 7, 204, 235, 196, 236, 172, 13, 57, 87,
- 203, 174, 112, 8, 184, 80, 121, 60, 42, 195,
- 184, 112, 222, 7, 240, 1, 32, 176, 226, 164,
- 205, 2, 57, 140, 218, 240, 93, 17, 77, 16,
- 5, 213, 49, 3, 29, 0, 4, 176, 157, 9,
- 172, 176, 127, 125, 208, 7, 132, 21, 108, 85,
- 186, 11, 186, 208, 15, 224, 65, 147, 175, 81,
- 7, 227, 252, 207, 83, 2, 4, 32, 243, 207,
- 253, 229, 170, 206, 43, 60, 18, 52, 7, 62,
- 80, 7, 174, 17, 180, 131, 157, 15, 40, 34,
- 217, 202, 48, 208, 245, 240, 14, 137, 240, 212,
- 132, 202, 154, 161, 214, 13, 6, 80, 2, 36,
- 64, 2, 43, 14, 2, 92, 189, 21, 205, 97,
- 17, 82, 32, 4, 130, 225, 15, 167, 49, 7,
- 233, 67, 89, 131, 80, 8, 61, 254, 227, 137,
- 80, 10, 202, 57, 184, 176, 83, 42, 68, 123,
- 7, 64, 144, 224, 175, 65, 206, 118, 255, 208,
- 224, 114, 16, 109, 98, 224, 170, 95, 88, 6,
- 252, 208, 15, 253, 144, 15, 249, 48, 184, 219,
- 160, 207, 92, 220, 3, 15, 188, 15, 236, 96,
- 12, 139, 88, 8, 184, 240, 212, 20, 137, 121,
- 206, 240, 14, 103, 158, 230, 168, 14, 2, 46,
- 238, 230, 17, 129, 17, 76, 16, 29, 215, 113,
- 20, 163, 53, 205, 151, 192, 9, 164, 224, 227,
- 192, 86, 8, 132, 64, 7, 65, 48, 6, 111,
- 192, 184, 52, 253, 26, 64, 80, 232, 76, 254,
- 196, 80, 140, 45, 14, 252, 58, 76, 206, 216,
- 114, 96, 7, 9, 80, 42, 140, 189, 13, 61,
- 144, 15, 200, 27, 4, 85, 172, 13, 211, 172,
- 34, 160, 46, 145, 241, 224, 194, 6, 160, 14,
- 168, 158, 234, 109, 206, 234, 80, 115, 17, 175,
- 142, 29, 80, 192, 5, 73, 1, 14, 137, 236,
- 10, 164, 224, 7, 230, 96, 1, 116, 0, 202,
- 174, 1, 4, 61, 32, 65, 116, 144, 175, 253,
- 224, 54, 197, 125, 236, 115, 160, 11, 235, 28,
- 6, 92, 224, 236, 138, 9, 148, 225, 140, 176,
- 217, 210, 15, 109, 112, 115, 100, 176, 156, 216,
- 238, 233, 209, 32, 226, 186, 124, 15, 248, 176,
- 226, 225, 158, 230, 227, 46, 200, 60, 145, 17,
- 128, 97, 20, 137, 145, 22, 79, 75, 8, 98,
- 128, 46, 104, 19, 202, 111, 112, 170, 53, 217,
- 15, 9, 126, 224, 9, 222, 15, 195, 78, 233,
- 66, 139, 45, 224, 255, 28, 7, 9, 80, 33,
- 197, 125, 46, 167, 154, 15, 45, 166, 11, 91,
- 224, 240, 236, 224, 229, 248, 112, 15, 241, 160,
- 222, 32, 16, 238, 108, 126, 218, 239, 221, 19,
- 25, 33, 5, 160, 129, 22, 87, 176, 5, 45,
- 145, 189, 246, 224, 6, 218, 144, 55, 22, 176,
- 5, 68, 46, 7, 117, 32, 233, 146, 158, 232,
- 65, 59, 7, 43, 77, 3, 117, 192, 184, 117,
- 224, 54, 243, 62, 236, 254, 160, 11, 28, 176,
- 11, 111, 48, 2, 25, 128, 13, 252, 208, 3,
- 216, 174, 12, 217, 80, 15, 59, 32, 218, 31,
- 160, 226, 22, 79, 2, 236, 237, 222, 26, 175,
- 43, 24, 113, 4, 67, 193, 24, 111, 161, 5,
- 187, 0, 6, 18, 112, 34, 215, 157, 15, 118,
- 192, 206, 114, 80, 207, 253, 192, 197, 90, 255,
- 219, 137, 94, 7, 90, 111, 30, 98, 18, 6,
- 64, 16, 7, 97, 64, 15, 171, 176, 10, 246,
- 16, 39, 246, 144, 168, 88, 80, 195, 39, 80,
- 2, 68, 15, 2, 165, 221, 2, 105, 75, 238,
- 1, 162, 17, 67, 48, 20, 42, 177, 18, 47,
- 17, 19, 102, 176, 147, 108, 240, 239, 234, 220,
- 15, 234, 149, 15, 252, 128, 220, 132, 205, 15,
- 9, 176, 10, 170, 64, 15, 244, 224, 11, 198,
- 95, 0, 5, 112, 0, 7, 160, 1, 26, 176,
- 2, 208, 175, 4, 45, 128, 186, 55, 236, 199,
- 199, 124, 204, 235, 141, 2, 56, 172, 17, 56,
- 251, 146, 75, 176, 47, 5, 79, 112, 18, 142,
- 33, 4, 77, 144, 3, 249, 212, 148, 25, 16,
- 78, 131, 45, 207, 21, 40, 2, 236, 128, 13,
- 41, 68, 84, 170, 118, 4, 85, 96, 5, 72,
- 176, 145, 178, 105, 173, 236, 91, 253, 44, 0,
- 16, 40, 4, 178, 208, 209, 194, 134, 0, 132,
- 9, 19, 254, 99, 216, 208, 225, 67, 136, 17,
- 37, 74, 84, 88, 17, 225, 16, 41, 76, 158,
- 52, 113, 210, 177, 9, 14, 51, 88, 204, 124,
- 25, 243, 35, 199, 59, 21, 43, 188, 4, 81,
- 49, 197, 229, 16, 152, 84, 142, 28, 169, 98,
- 5, 73, 146, 36, 74, 148, 180, 224, 217, 66,
- 135, 14, 22, 65, 11, 42, 57, 104, 81, 225,
- 68, 164, 73, 149, 70, 52, 106, 17, 35, 19,
- 168, 94, 64, 164, 88, 99, 70, 138, 148, 41,
- 34, 119, 96, 208, 225, 242, 229, 16, 42, 50,
- 107, 90, 193, 153, 115, 103, 79, 37, 55, 138,
- 54, 93, 184, 212, 237, 91, 165, 108, 43, 86,
- 81, 130, 132, 10, 154, 21, 87, 175, 106, 65,
- 241, 211, 235, 148, 152, 51, 171, 212, 68, 82,
- 24, 137, 141, 181, 114, 219, 194, 101, 220, 120,
- 162, 226, 34, 70, 146, 236, 184, 33, 128, 200,
- 229, 200, 69, 20, 111, 102, 235, 216, 243, 231,
- 199, 156, 69, 143, 94, 12, 218, 244, 105, 166,
- 164, 85, 35, 68, 221, 218, 245, 107, 216, 174,
- 3, 2, 0, 59 };
-
+ 35, 74, 156, 72, 177, 162, 197, 139, 24, 51,
+ 106, 220, 200, 209, 162, 145, 43, 104, 188, 116,
+ 28, 73, 210, 160, 23, 145, 8, 141, 24, 84,
+ 50, 40, 128, 75, 17, 122, 228, 112, 65, 200,
+ 69, 140, 146, 146, 56, 83, 170, 9, 144, 6,
+ 192, 11, 38, 69, 190, 209, 88, 82, 196, 134,
+ 141, 1, 44, 6, 40, 29, 64, 65, 30, 19,
+ 29, 71, 138, 250, 137, 129, 163, 202, 157, 107,
+ 99, 48, 96, 128, 246, 67, 200, 139, 23, 66,
+ 62, 186, 212, 224, 36, 103, 206, 31, 58, 92,
+ 56, 75, 214, 35, 198, 210, 183, 112, 153, 142,
+ 88, 58, 231, 207, 11, 67, 113, 86, 172, 56,
+ 65, 68, 91, 219, 185, 61, 226, 142, 160, 65,
+ 163, 199, 167, 81, 102, 71, 2, 69, 26, 119,
+ 169, 10, 28, 59, 180, 210, 216, 17, 137, 138,
+ 152, 60, 1, 180, 250, 72, 194, 3, 148, 75,
+ 151, 5, 16, 124, 254, 188, 98, 7, 156, 127,
+ 24, 118, 196, 24, 209, 67, 138, 10, 32, 54,
+ 92, 0, 224, 162, 50, 241, 68, 175, 79, 58,
+ 188, 165, 16, 99, 201, 142, 49, 145, 68, 143,
+ 254, 12, 1, 134, 112, 151, 30, 120, 136, 24,
+ 206, 252, 115, 1, 15, 10, 70, 43, 200, 17,
+ 125, 133, 190, 14, 29, 112, 84, 194, 99, 251,
+ 161, 144, 35, 50, 88, 232, 255, 30, 32, 136,
+ 70, 21, 31, 159, 65, 68, 111, 94, 64, 196,
+ 122, 151, 8, 134, 228, 56, 222, 124, 180, 3,
+ 8, 163, 219, 131, 24, 45, 26, 3, 133, 1,
+ 108, 0, 211, 29, 67, 58, 188, 213, 193, 17,
+ 226, 96, 246, 25, 2, 248, 213, 167, 64, 131,
+ 38, 144, 16, 128, 7, 73, 68, 247, 203, 61,
+ 100, 212, 7, 154, 2, 5, 72, 231, 65, 135,
+ 205, 33, 176, 199, 0, 50, 44, 51, 224, 65,
+ 46, 28, 17, 204, 82, 29, 20, 1, 134, 37,
+ 195, 21, 0, 34, 115, 5, 56, 0, 98, 5,
+ 4, 16, 176, 205, 51, 235, 76, 33, 64, 2,
+ 11, 112, 163, 161, 141, 252, 121, 64, 223, 112,
+ 34, 240, 160, 128, 15, 49, 168, 224, 206, 15,
+ 39, 10, 132, 214, 120, 20, 220, 81, 135, 17,
+ 104, 104, 200, 222, 140, 1, 68, 144, 163, 4,
+ 40, 24, 80, 2, 7, 12, 92, 96, 71, 125,
+ 92, 6, 160, 128, 3, 67, 14, 225, 193, 104,
+ 107, 12, 208, 129, 14, 39, 230, 166, 20, 5,
+ 75, 180, 194, 67, 35, 90, 246, 233, 146, 3,
+ 4, 160, 34, 64, 6, 18, 28, 48, 64, 13,
+ 7, 28, 128, 136, 159, 8, 176, 137, 38, 12,
+ 57, 164, 169, 192, 24, 50, 12, 96, 195, 11,
+ 98, 92, 129, 210, 72, 66, 60, 241, 22, 14,
+ 39, 40, 32, 66, 154, 126, 50, 7, 65, 38,
+ 4, 36, 32, 192, 170, 172, 94, 96, 64, 134,
+ 26, 202, 255, 72, 234, 103, 211, 57, 202, 220,
+ 42, 216, 28, 161, 212, 8, 24, 4, 242, 197,
+ 108, 55, 105, 228, 66, 82, 187, 98, 160, 230,
+ 145, 165, 14, 135, 64, 116, 94, 30, 192, 42,
+ 171, 51, 164, 146, 44, 123, 48, 52, 88, 159,
+ 8, 81, 160, 225, 131, 106, 20, 0, 81, 138,
+ 61, 43, 88, 178, 5, 70, 46, 216, 57, 0,
+ 17, 206, 185, 52, 65, 5, 13, 76, 240, 129,
+ 75, 13, 108, 80, 170, 140, 1, 108, 240, 229,
+ 179, 171, 18, 48, 197, 180, 46, 201, 27, 64,
+ 60, 31, 126, 166, 193, 6, 241, 194, 151, 196,
+ 126, 11, 230, 64, 68, 96, 3, 224, 64, 142,
+ 38, 22, 233, 48, 94, 195, 39, 12, 23, 68,
+ 142, 24, 63, 144, 241, 3, 17, 100, 65, 194,
+ 186, 239, 54, 215, 64, 170, 248, 10, 32, 193,
+ 12, 103, 38, 107, 130, 151, 26, 19, 112, 67,
+ 203, 45, 231, 248, 64, 11, 244, 68, 160, 193,
+ 103, 30, 32, 28, 128, 15, 107, 248, 81, 41,
+ 11, 109, 12, 163, 6, 26, 181, 49, 36, 68,
+ 17, 75, 45, 81, 49, 115, 24, 99, 60, 131,
+ 53, 138, 36, 144, 128, 151, 77, 19, 208, 194,
+ 4, 19, 220, 252, 153, 151, 18, 148, 92, 194,
+ 12, 167, 36, 187, 65, 204, 78, 75, 157, 192,
+ 62, 101, 164, 173, 8, 3, 26, 183, 240, 64,
+ 10, 180, 164, 25, 5, 18, 122, 180, 161, 27,
+ 5, 59, 4, 16, 70, 89, 11, 13, 255, 187,
+ 20, 186, 245, 229, 24, 230, 0, 37, 11, 112,
+ 200, 20, 116, 224, 114, 0, 153, 24, 167, 208,
+ 64, 0, 56, 102, 80, 248, 0, 12, 80, 18,
+ 1, 49, 249, 188, 67, 66, 10, 17, 180, 144,
+ 227, 13, 89, 76, 0, 57, 1, 12, 36, 144,
+ 193, 1, 6, 212, 80, 248, 179, 6, 44, 128,
+ 113, 11, 143, 127, 38, 2, 22, 86, 200, 81,
+ 15, 13, 74, 173, 17, 69, 31, 125, 143, 183,
+ 3, 224, 34, 19, 176, 192, 234, 171, 215, 144,
+ 193, 2, 174, 63, 80, 193, 4, 4, 200, 178,
+ 186, 1, 82, 51, 48, 67, 244, 57, 74, 125,
+ 64, 2, 86, 147, 64, 128, 179, 196, 175, 110,
+ 193, 1, 12, 48, 208, 130, 115, 81, 224, 19,
+ 199, 103, 59, 12, 160, 130, 35, 220, 37, 36,
+ 68, 165, 20, 24, 171, 37, 243, 220, 119, 63,
+ 57, 10, 4, 4, 113, 177, 5, 246, 219, 127,
+ 64, 142, 11, 80, 93, 255, 188, 71, 0, 151,
+ 64, 32, 10, 58, 251, 12, 96, 54, 161, 16,
+ 55, 168, 111, 105, 90, 202, 130, 170, 6, 184,
+ 186, 11, 20, 227, 3, 4, 48, 0, 5, 137,
+ 231, 58, 13, 110, 176, 100, 23, 56, 0, 44,
+ 146, 48, 170, 230, 156, 64, 5, 3, 0, 68,
+ 66, 152, 160, 148, 188, 245, 201, 94, 245, 251,
+ 224, 170, 36, 80, 2, 1, 148, 129, 0, 116,
+ 144, 33, 190, 106, 224, 58, 29, 226, 235, 0,
+ 22, 56, 4, 178, 255, 136, 195, 11, 10, 140,
+ 32, 33, 149, 194, 65, 169, 82, 176, 189, 146,
+ 89, 32, 71, 28, 176, 31, 13, 19, 69, 128,
+ 93, 248, 144, 85, 6, 200, 209, 234, 74, 144,
+ 168, 68, 89, 64, 2, 252, 43, 220, 12, 4,
+ 176, 40, 230, 32, 0, 58, 39, 8, 204, 49,
+ 14, 210, 137, 7, 150, 170, 2, 15, 136, 161,
+ 0, 6, 208, 180, 4, 132, 201, 2, 9, 224,
+ 64, 6, 8, 199, 42, 227, 93, 0, 135, 221,
+ 59, 64, 6, 164, 70, 168, 194, 145, 169, 112,
+ 25, 168, 26, 198, 22, 144, 0, 62, 178, 202,
+ 2, 6, 80, 133, 169, 172, 181, 130, 1, 72,
+ 161, 32, 74, 80, 131, 91, 98, 0, 154, 62,
+ 153, 32, 142, 37, 91, 64, 4, 194, 64, 53,
+ 140, 205, 131, 17, 12, 112, 164, 0, 178, 168,
+ 175, 213, 161, 192, 117, 110, 187, 1, 1, 46,
+ 80, 50, 202, 209, 50, 148, 4, 200, 68, 5,
+ 150, 87, 129, 15, 76, 128, 21, 11, 136, 226,
+ 179, 6, 160, 42, 62, 56, 135, 67, 206, 201,
+ 193, 0, 186, 64, 16, 35, 196, 161, 10, 74,
+ 89, 129, 3, 134, 56, 28, 38, 170, 50, 95,
+ 65, 8, 128, 6, 76, 128, 181, 130, 137, 130,
+ 3, 194, 100, 85, 15, 87, 103, 181, 10, 184,
+ 4, 71, 97, 124, 22, 7, 8, 208, 181, 80,
+ 222, 160, 57, 124, 64, 193, 45, 159, 149, 1,
+ 3, 172, 225, 79, 244, 81, 64, 8, 66, 208,
+ 255, 133, 1, 64, 73, 32, 87, 8, 64, 96,
+ 128, 0, 130, 89, 13, 7, 71, 99, 220, 33,
+ 1, 98, 215, 28, 78, 44, 64, 149, 210, 91,
+ 157, 4, 8, 16, 178, 0, 92, 236, 154, 2,
+ 32, 29, 57, 179, 201, 28, 100, 160, 32, 156,
+ 172, 170, 167, 29, 232, 21, 163, 38, 64, 193,
+ 5, 3, 160, 147, 64, 90, 178, 201, 100, 121,
+ 169, 134, 248, 202, 162, 9, 234, 195, 135, 31,
+ 61, 11, 127, 146, 43, 92, 9, 22, 250, 153,
+ 27, 48, 160, 112, 36, 171, 37, 1, 180, 198,
+ 31, 81, 212, 96, 158, 226, 148, 0, 172, 154,
+ 19, 130, 45, 164, 161, 20, 69, 32, 136, 58,
+ 148, 178, 4, 246, 12, 199, 94, 236, 44, 89,
+ 13, 120, 122, 213, 6, 244, 194, 0, 72, 237,
+ 96, 5, 9, 48, 83, 151, 4, 149, 117, 194,
+ 43, 92, 22, 253, 37, 176, 10, 212, 194, 2,
+ 72, 21, 128, 5, 102, 16, 141, 250, 196, 103,
+ 8, 129, 56, 129, 250, 248, 6, 0, 77, 40,
+ 165, 10, 195, 153, 38, 115, 48, 56, 188, 146,
+ 101, 81, 66, 7, 157, 101, 9, 60, 40, 0,
+ 252, 77, 176, 112, 12, 40, 224, 103, 64, 25,
+ 83, 45, 150, 108, 162, 12, 29, 139, 240, 12,
+ 208, 206, 86, 149, 96, 169, 163, 241, 0, 2,
+ 93, 162, 215, 1, 80, 97, 32, 47, 80, 138,
+ 25, 62, 115, 159, 52, 117, 72, 150, 32, 197,
+ 34, 1, 204, 57, 154, 13, 255, 120, 41, 174,
+ 255, 235, 172, 66, 37, 235, 146, 7, 164, 83,
+ 182, 4, 80, 235, 108, 135, 35, 203, 194, 226,
+ 139, 1, 251, 82, 22, 9, 103, 84, 0, 165,
+ 212, 1, 181, 74, 169, 134, 140, 220, 147, 31,
+ 71, 105, 224, 94, 134, 165, 104, 53, 9, 224,
+ 141, 146, 97, 143, 120, 89, 140, 192, 104, 50,
+ 232, 53, 203, 86, 150, 182, 218, 212, 94, 59,
+ 10, 247, 63, 118, 12, 199, 3, 243, 25, 13,
+ 4, 66, 160, 20, 38, 64, 119, 0, 80, 248,
+ 2, 12, 152, 171, 128, 227, 140, 236, 167, 133,
+ 123, 98, 10, 76, 240, 1, 13, 84, 64, 150,
+ 182, 224, 4, 190, 240, 23, 220, 45, 18, 64,
+ 188, 240, 106, 48, 190, 254, 104, 220, 103, 253,
+ 239, 3, 38, 104, 64, 3, 60, 247, 0, 31,
+ 225, 139, 114, 148, 200, 15, 117, 237, 51, 132,
+ 38, 116, 129, 5, 4, 73, 237, 0, 172, 32,
+ 6, 249, 38, 48, 0, 218, 203, 169, 119, 101,
+ 214, 52, 70, 232, 118, 85, 137, 148, 240, 140,
+ 57, 26, 128, 145, 1, 117, 150, 144, 205, 145,
+ 231, 114, 196, 0, 198, 222, 148, 1, 161, 160,
+ 149, 181, 98, 244, 5, 22, 216, 128, 32, 186,
+ 90, 113, 64, 213, 100, 28, 230, 104, 79, 142,
+ 143, 44, 93, 6, 46, 144, 72, 6, 220, 120,
+ 85, 216, 211, 49, 190, 114, 84, 81, 31, 87,
+ 182, 137, 184, 4, 18, 7, 92, 247, 91, 122,
+ 166, 0, 255, 52, 68, 178, 171, 47, 6, 240,
+ 4, 40, 15, 192, 13, 86, 80, 66, 24, 96,
+ 240, 166, 230, 104, 175, 205, 196, 147, 128, 0,
+ 241, 181, 211, 28, 97, 116, 149, 57, 42, 107,
+ 0, 152, 87, 178, 117, 146, 183, 150, 95, 22,
+ 174, 232, 72, 234, 32, 30, 176, 97, 0, 71,
+ 32, 72, 27, 148, 226, 2, 43, 204, 194, 160,
+ 48, 126, 244, 21, 89, 41, 56, 246, 90, 109,
+ 52, 102, 126, 150, 235, 196, 172, 67, 215, 17,
+ 245, 81, 33, 128, 131, 82, 84, 42, 16, 21,
+ 243, 99, 202, 26, 194, 145, 145, 101, 72, 185,
+ 252, 229, 8, 203, 63, 34, 0, 98, 63, 35,
+ 102, 58, 158, 213, 135, 59, 125, 179, 150, 20,
+ 192, 131, 16, 128, 33, 23, 36, 42, 200, 15,
+ 148, 2, 60, 13, 141, 108, 215, 3, 52, 192,
+ 245, 8, 240, 128, 172, 253, 250, 199, 108, 53,
+ 235, 153, 129, 77, 193, 137, 62, 32, 220, 102,
+ 228, 1, 18, 78, 90, 41, 55, 96, 82, 41,
+ 52, 232, 100, 125, 236, 133, 109, 11, 112, 160,
+ 139, 248, 30, 228, 235, 10, 108, 86, 2, 0,
+ 58, 139, 239, 28, 141, 9, 26, 60, 0, 49,
+ 133, 25, 5, 37, 67, 193, 1, 34, 221, 199,
+ 255, 221, 224, 213, 14, 130, 130, 21, 142, 50,
+ 0, 217, 16, 36, 20, 74, 193, 1, 2, 168,
+ 169, 174, 172, 170, 83, 145, 85, 123, 155, 162,
+ 251, 205, 129, 107, 174, 179, 162, 17, 255, 6,
+ 185, 199, 89, 85, 104, 225, 113, 96, 112, 171,
+ 50, 128, 5, 50, 16, 89, 101, 251, 9, 2,
+ 77, 120, 129, 110, 80, 92, 144, 60, 40, 133,
+ 20, 160, 118, 137, 151, 74, 150, 163, 126, 132,
+ 97, 166, 19, 120, 68, 34, 208, 61, 156, 166,
+ 205, 224, 229, 6, 104, 29, 111, 71, 67, 130,
+ 8, 164, 128, 4, 13, 208, 192, 134, 1, 252,
+ 172, 200, 222, 192, 31, 212, 80, 57, 183, 179,
+ 86, 42, 16, 132, 160, 9, 72, 43, 130, 16,
+ 12, 194, 5, 72, 68, 179, 79, 17, 120, 236,
+ 170, 182, 202, 85, 6, 5, 221, 37, 4, 214,
+ 192, 7, 200, 38, 236, 100, 61, 64, 238, 249,
+ 226, 170, 134, 179, 16, 129, 32, 124, 128, 4,
+ 31, 168, 0, 196, 53, 4, 131, 16, 108, 2,
+ 28, 74, 249, 167, 65, 152, 145, 241, 252, 28,
+ 105, 18, 128, 103, 165, 9, 10, 160, 30, 126,
+ 225, 253, 6, 17, 32, 48, 122, 251, 52, 50,
+ 152, 62, 43, 71, 139, 247, 188, 75, 134, 224,
+ 108, 38, 36, 229, 201, 9, 241, 212, 185, 2,
+ 80, 35, 46, 41, 0, 6, 152, 175, 108, 11,
+ 64, 208, 103, 213, 251, 62, 0, 214, 36, 122,
+ 22, 126, 207, 28, 71, 196, 130, 88, 44, 88,
+ 123, 66, 92, 80, 169, 1, 220, 97, 14, 252,
+ 201, 1, 126, 254, 94, 89, 105, 216, 138, 248,
+ 252, 178, 151, 140, 79, 111, 115, 236, 175, 96,
+ 46, 74, 177, 129, 255, 242, 21, 242, 131, 241,
+ 196, 96, 7, 39, 40, 0, 12, 246, 171, 77,
+ 32, 163, 85, 116, 67, 194, 126, 125, 152, 136,
+ 237, 140, 14, 219, 247, 39, 160, 1, 5, 254,
+ 35, 167, 54, 60, 228, 12, 252, 199, 20, 158,
+ 176, 28, 17, 102, 122, 49, 71, 0, 76, 247,
+ 39, 215, 39, 127, 163, 17, 1, 92, 119, 83,
+ 4, 0, 127, 190, 167, 127, 75, 193, 2, 76,
+ 32, 121, 12, 225, 5, 59, 3, 126, 74, 161,
+ 2, 61, 96, 44, 21, 144, 74, 171, 50, 0,
+ 112, 21, 89, 35, 7, 31, 16, 192, 37, 148,
+ 38, 127, 204, 179, 0, 23, 176, 0, 211, 115,
+ 58, 216, 147, 128, 125, 178, 2, 40, 180, 20,
+ 50, 64, 107, 16, 161, 6, 10, 240, 6, 128,
+ 32, 5, 112, 161, 2, 15, 48, 3, 139, 51,
+ 3, 220, 22, 1, 133, 23, 35, 157, 231, 28,
+ 113, 22, 34, 170, 215, 46, 136, 87, 1, 143,
+ 192, 57, 17, 32, 129, 201, 98, 131, 75, 1,
+ 4, 133, 208, 9, 22, 65, 5, 72, 128, 5,
+ 90, 240, 2, 196, 162, 20, 198, 160, 12, 4,
+ 16, 58, 52, 232, 1, 189, 231, 18, 107, 162,
+ 33, 141, 130, 125, 10, 240, 30, 158, 151, 127,
+ 55, 8, 4, 166, 96, 14, 35, 225, 2, 151,
+ 64, 10, 111, 49, 24, 85, 96, 6, 24, 176,
+ 2, 180, 82, 101, 74, 230, 134, 200, 244, 123,
+ 8, 32, 2, 11, 56, 45, 62, 0, 126, 64,
+ 255, 0, 8, 96, 160, 5, 56, 145, 6, 127,
+ 80, 8, 19, 3, 23, 49, 240, 9, 139, 160,
+ 21, 198, 114, 70, 139, 8, 26, 75, 104, 87,
+ 28, 215, 30, 107, 56, 47, 13, 178, 2, 252,
+ 183, 7, 132, 48, 46, 182, 225, 2, 20, 215,
+ 24, 187, 225, 7, 130, 216, 28, 188, 167, 37,
+ 111, 168, 33, 32, 144, 4, 159, 168, 37, 32,
+ 192, 3, 67, 112, 2, 56, 192, 127, 205, 0,
+ 5, 81, 2, 0, 104, 81, 4, 93, 32, 5,
+ 50, 176, 7, 240, 0, 139, 31, 40, 29, 57,
+ 176, 139, 180, 215, 134, 14, 50, 4, 4, 56,
+ 45, 10, 192, 122, 174, 0, 9, 252, 151, 14,
+ 194, 80, 140, 5, 177, 5, 84, 208, 7, 80,
+ 32, 7, 1, 240, 6, 103, 144, 13, 56, 192,
+ 129, 3, 48, 2, 68, 48, 7, 124, 166, 37,
+ 16, 240, 98, 249, 145, 3, 81, 112, 125, 43,
+ 48, 6, 39, 128, 30, 39, 96, 6, 128, 40,
+ 63, 5, 144, 3, 163, 0, 7, 151, 166, 20,
+ 82, 64, 8, 146, 8, 142, 9, 129, 5, 33,
+ 128, 4, 232, 64, 90, 68, 192, 129, 64, 32,
+ 9, 26, 114, 123, 28, 39, 2, 33, 144, 4,
+ 46, 65, 4, 85, 16, 140, 76, 225, 22, 176,
+ 40, 3, 64, 240, 22, 130, 112, 9, 124, 165,
+ 144, 9, 193, 138, 225, 160, 51, 139, 80, 144,
+ 187, 178, 4, 242, 227, 3, 8, 80, 45, 204,
+ 33, 63, 16, 208, 108, 103, 190, 48, 14, 20,
+ 160, 2, 32, 9, 139, 62, 249, 4, 24, 136,
+ 146, 14, 97, 8, 129, 0, 1, 67, 192, 3,
+ 5, 128, 59, 65, 200, 20, 75, 176, 4, 52,
+ 192, 142, 112, 1, 4, 205, 23, 132, 43, 80,
+ 9, 158, 16, 2, 124, 114, 142, 103, 240, 7,
+ 221, 160, 3, 58, 192, 4, 47, 32, 148, 21,
+ 225, 4, 72, 128, 4, 152, 224, 18, 62, 32,
+ 9, 1, 232, 147, 62, 217, 1, 70, 49, 13,
+ 186, 80, 14, 137, 160, 0, 73, 112, 118, 95,
+ 160, 4, 152, 144, 3, 13, 137, 5, 98, 201,
+ 17, 70, 0, 10, 55, 25, 2, 8, 224, 3,
+ 231, 32, 5, 82, 208, 5, 50, 208, 1, 196,
+ 2, 4, 130, 96, 3, 71, 224, 6, 183, 80,
+ 7, 47, 96, 113, 7, 1, 6, 84, 0, 134,
+ 2, 225, 4, 125, 144, 6, 9, 217, 151, 27,
+ 225, 4, 77, 208, 4, 119, 249, 10, 13, 169,
+ 7, 4, 129, 5, 84, 208, 62, 158, 185, 154,
+ 8, 177, 5, 80, 208, 153, 172, 25, 155, 178,
+ 57, 155, 180, 41, 148, 1, 1, 0, 59, 0 };
diff --git a/main/main.c b/main/main.c
index 64a96fd67..df64e5d88 100644
--- a/main/main.c
+++ b/main/main.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: main.c,v 1.640.2.13 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: main.c,v 1.640.2.25 2006/08/10 21:49:56 iliaa Exp $ */
/* {{{ includes
*/
@@ -322,10 +322,8 @@ PHP_INI_BEGIN()
STD_PHP_INI_BOOLEAN("allow_url_fopen", "1", PHP_INI_SYSTEM, OnUpdateBool, allow_url_fopen, php_core_globals, core_globals)
STD_PHP_INI_BOOLEAN("always_populate_raw_post_data", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateBool, always_populate_raw_post_data, php_core_globals, core_globals)
-#ifdef REALPATH_CACHE
STD_PHP_INI_ENTRY("realpath_cache_size", "16K", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_size_limit, virtual_cwd_globals, cwd_globals)
STD_PHP_INI_ENTRY("realpath_cache_ttl", "120", PHP_INI_SYSTEM, OnUpdateLong, realpath_cache_ttl, virtual_cwd_globals, cwd_globals)
-#endif
PHP_INI_END()
/* }}} */
@@ -511,7 +509,11 @@ PHPAPI void php_verror(const char *docref, const char *params, int type, const c
/* no docref given but function is known (the default) */
if (!docref && is_function) {
- spprintf(&docref_buf, 0, "function.%s", function);
+ if (space[0] == '\0') {
+ spprintf(&docref_buf, 0, "function.%s", function);
+ } else {
+ spprintf(&docref_buf, 0, "function.%s-%s", class_name, function);
+ }
while((p = strchr(docref_buf, '_')) != NULL) {
*p = '-';
}
@@ -661,7 +663,7 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
* be NULL if PG(last_error_message) is not NULL */
if (strcmp(PG(last_error_message), buffer)
|| (!PG(ignore_repeated_source)
- && ((PG(last_error_lineno) != error_lineno)
+ && ((PG(last_error_lineno) != (int)error_lineno)
|| strcmp(PG(last_error_file), error_filename)))) {
display = 1;
} else {
@@ -822,6 +824,7 @@ static void php_error_cb(int type, const char *error_filename, const uint error_
AG(memory_limit) = PG(memory_limit);
#endif
efree(buffer);
+ zend_objects_store_mark_destructed(&EG(objects_store) TSRMLS_CC);
zend_bailout();
return;
}
@@ -1088,6 +1091,11 @@ int php_request_startup(TSRMLS_D)
zend_set_timeout(PG(max_input_time));
}
+ /* Disable realpath cache if safe_mode or open_basedir are set */
+ if (PG(safe_mode) || (PG(open_basedir) && *PG(open_basedir))) {
+ CWDG(realpath_cache_size_limit) = 0;
+ }
+
if (PG(expose_php)) {
sapi_add_header(SAPI_PHP_VERSION_HEADER, sizeof(SAPI_PHP_VERSION_HEADER)-1, 1);
}
@@ -1595,6 +1603,10 @@ void php_module_shutdown(TSRMLS_D)
return;
}
+#ifdef ZTS
+ ts_free_worker_threads();
+#endif
+
#if defined(PHP_WIN32) || (defined(NETWARE) && defined(USE_WINSOCK))
/*close winsock */
WSACleanup();
@@ -1648,7 +1660,6 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
#else
char *old_cwd;
#endif
- char *old_primary_file_path = NULL;
int retval = 0;
EG(exit_status) = 0;
@@ -1663,6 +1674,8 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
#endif
zend_try {
+ char realfile[MAXPATHLEN];
+
#ifdef PHP_WIN32
UpdateIniFromRegistry(primary_file->filename TSRMLS_CC);
#endif
@@ -1680,17 +1693,19 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
VCWD_CHDIR_FILE(primary_file->filename);
}
- if (primary_file->filename) {
- char realfile[MAXPATHLEN];
+ /* Only lookup the real file path and add it to the included_files list if already opened
+ * otherwise it will get opened and added to the included_files list in zend_execute_scripts
+ */
+ if (primary_file->filename &&
+ primary_file->opened_path == NULL &&
+ primary_file->type != ZEND_HANDLE_FILENAME) {
int realfile_len;
int dummy = 1;
- if (VCWD_REALPATH(primary_file->filename, realfile)) {
+
+ if (expand_filepath(primary_file->filename, realfile TSRMLS_CC)) {
realfile_len = strlen(realfile);
zend_hash_add(&EG(included_files), realfile, realfile_len+1, (void *)&dummy, sizeof(int), NULL);
- if (strncmp(realfile, primary_file->filename, realfile_len)) {
- old_primary_file_path = primary_file->filename;
- primary_file->filename = realfile;
- }
+ primary_file->opened_path = estrndup(realfile, realfile_len);
}
}
@@ -1713,15 +1728,13 @@ PHPAPI int php_execute_script(zend_file_handle *primary_file TSRMLS_DC)
} else {
append_file_p = NULL;
}
+ if (PG(max_input_time) != -1) {
#ifdef PHP_WIN32
- zend_unset_timeout(TSRMLS_C);
+ zend_unset_timeout(TSRMLS_C);
#endif
- zend_set_timeout(INI_INT("max_execution_time"));
- retval = (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 3, prepend_file_p, primary_file, append_file_p) == SUCCESS);
-
- if (old_primary_file_path) {
- primary_file->filename = old_primary_file_path;
+ zend_set_timeout(INI_INT("max_execution_time"));
}
+ retval = (zend_execute_scripts(ZEND_REQUIRE TSRMLS_CC, NULL, 3, prepend_file_p, primary_file, append_file_p) == SUCCESS);
} zend_end_try();
diff --git a/main/network.c b/main/network.c
index ba495c3e5..d29342b9e 100644
--- a/main/network.c
+++ b/main/network.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: network.c,v 1.118.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: network.c,v 1.118.2.2 2006/03/19 22:33:10 tony2001 Exp $ */
/*#define DEBUG_MAIN_NETWORK 1*/
@@ -988,10 +988,12 @@ PHPAPI php_stream *_php_stream_sock_open_from_socket(php_socket_t socket, const
sock->socket = socket;
stream = php_stream_alloc_rel(&php_stream_generic_socket_ops, sock, persistent_id, "r+");
- stream->flags |= PHP_STREAM_FLAG_AVOID_BLOCKING;
- if (stream == NULL)
+ if (stream == NULL) {
pefree(sock, persistent_id ? 1 : 0);
+ } else {
+ stream->flags |= PHP_STREAM_FLAG_AVOID_BLOCKING;
+ }
return stream;
}
diff --git a/main/output.c b/main/output.c
index b38305cf9..4a1ee4052 100644
--- a/main/output.c
+++ b/main/output.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: output.c,v 1.167.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: output.c,v 1.167.2.3 2006/03/27 08:26:10 tony2001 Exp $ */
#include "php.h"
#include "ext/standard/head.h"
@@ -606,11 +606,7 @@ static inline void php_ob_append(const char *text, uint text_length TSRMLS_DC)
/* If implicit_flush is On or chunked buffering, send contents to next buffer and return. */
if (OG(active_ob_buffer).chunk_size
&& OG(active_ob_buffer).text_length >= OG(active_ob_buffer).chunk_size) {
- zval *output_handler = OG(active_ob_buffer).output_handler;
- if (output_handler) {
- output_handler->refcount++;
- }
php_end_ob_buffer(1, 1 TSRMLS_CC);
return;
}
diff --git a/main/php.h b/main/php.h
index 370cb7ba2..edfa6e073 100644
--- a/main/php.h
+++ b/main/php.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php.h,v 1.221.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php.h,v 1.221.2.4 2006/03/07 22:37:53 alexwaugh Exp $ */
#ifndef PHP_H
#define PHP_H
@@ -340,7 +340,9 @@ END_EXTERN_C()
#define PHP_NAMED_FE ZEND_NAMED_FE
#define PHP_FE ZEND_FE
+#define PHP_DEP_FE ZEND_DEP_FE
#define PHP_FALIAS ZEND_FALIAS
+#define PHP_DEP_FALIAS ZEND_DEP_FALIAS
#define PHP_ME ZEND_ME
#define PHP_MALIAS ZEND_MALIAS
#define PHP_ABSTRACT_ME ZEND_ABSTRACT_ME
@@ -415,7 +417,7 @@ END_EXTERN_C()
*/
#ifndef XtOffset
-#if defined(CRAY) || (defined(__arm) && !defined(LINUX))
+#if defined(CRAY) || (defined(__arm) && !(defined(LINUX) || defined(__riscos__)))
#ifdef __STDC__
#define XtOffset(p_type, field) _Offsetof(p_type, field)
#else
diff --git a/main/php_compat.h b/main/php_compat.h
index 58963276c..403ef82d0 100644
--- a/main/php_compat.h
+++ b/main/php_compat.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_compat.h,v 1.25.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_compat.h,v 1.25.2.3 2006/04/10 11:55:14 sniper Exp $ */
#ifndef PHP_COMPAT_H
#define PHP_COMPAT_H
@@ -38,6 +38,8 @@
#define pcre_study php_pcre_study
#define pcre_version php_pcre_version
#define pcre_fullinfo php_pcre_fullinfo
+#define pcre_free php_pcre_free
+#define pcre_malloc php_pcre_malloc
#endif
#define lookup php_lookup
@@ -319,6 +321,12 @@
#define term_source php_gd_term_source
#define writewbmp php_gd_writewbmp
#define ZeroDataBlock php_gd_ZeroDataBlock
+#define gdCacheCreate php_gd_gdCacheCreate
+#define gdCacheDelete php_gd_gdCacheDelete
+#define gdCacheGet php_gd_gdCacheGet
+#define gdFontCacheSetup php_gd_gdFontCacheSetup
+#define gdFontCacheShutdown php_gd_gdFontCacheShutdown
+#define gdFreeFontCache php_gd_gdFreeFontCache
#endif /* HAVE_GD_BUNDLED */
/* Define to specify how much context to retain around the current parse
diff --git a/main/php_config.h.in b/main/php_config.h.in
index d624146f1..0fbd6af3a 100644
--- a/main/php_config.h.in
+++ b/main/php_config.h.in
@@ -227,6 +227,9 @@
/* Define if you have the getgroups function. */
#undef HAVE_GETGROUPS
+/* Define if you have the getloadavg function. */
+#undef HAVE_GETLOADAVG
+
/* Define if you have the getlogin function. */
#undef HAVE_GETLOGIN
@@ -308,6 +311,9 @@
/* Define if you have the kill function. */
#undef HAVE_KILL
+/* Define if you have the lchown function. */
+#undef HAVE_LCHOWN
+
/* Define if you have the ldap_parse_reference function. */
#undef HAVE_LDAP_PARSE_REFERENCE
@@ -1638,6 +1644,9 @@
/* Have HASH Extension */
#undef HAVE_HASH_EXT
+/* Define if processor uses big-endian word */
+#undef WORDS_BIGENDIAN
+
/* Whether to build hash as dynamic module */
#undef COMPILE_DL_HASH
@@ -1843,12 +1852,6 @@
#undef COMPILE_DL_MING
/* */
-#undef HAVE_MSESSION
-
-/* Whether to build msession as dynamic module */
-#undef COMPILE_DL_MSESSION
-
-/* */
#undef HAVE_MSQL
/* Whether to build msql as dynamic module */
@@ -1945,6 +1948,9 @@
#undef HAVE_OCI_STMT_PREPARE2
/* */
+#undef HAVE_OCI_LOB_READ2
+
+/* */
#undef HAVE_OCI8_ATTR_STATEMENT
/* */
@@ -1957,6 +1963,9 @@
#undef HAVE_OCI_STMT_PREPARE2
/* */
+#undef HAVE_OCI_LOB_READ2
+
+/* */
#undef HAVE_OCI8_TEMP_LOB
/* */
@@ -1996,6 +2005,9 @@
#undef HAVE_OCI_STMT_PREPARE2
/* */
+#undef HAVE_OCI_LOB_READ2
+
+/* */
#undef HAVE_OCI8_TEMP_LOB
/* */
diff --git a/main/php_open_temporary_file.c b/main/php_open_temporary_file.c
index 3515a3eff..17fdae7de 100644
--- a/main/php_open_temporary_file.c
+++ b/main/php_open_temporary_file.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_open_temporary_file.c,v 1.34.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_open_temporary_file.c,v 1.34.2.2 2006/05/23 23:22:26 iliaa Exp $ */
#include "php.h"
@@ -114,17 +114,16 @@ static int php_do_open_temporary_file(const char *path, const char *pfx, char **
path_len = strlen(path);
- if (!(opened_path = emalloc(MAXPATHLEN))) {
- return -1;
- }
-
if (!path_len || IS_SLASH(path[path_len - 1])) {
trailing_slash = "";
} else {
trailing_slash = "/";
}
- (void)snprintf(opened_path, MAXPATHLEN, "%s%s%sXXXXXX", path, trailing_slash, pfx);
+ if (spprintf(&opened_path, 0, "%s%s%sXXXXXX", path, trailing_slash, pfx) >= MAXPATHLEN) {
+ efree(opened_path);
+ return -1;
+ }
#ifdef PHP_WIN32
if (GetTempFileName(path, pfx, 0, opened_path)) {
diff --git a/main/php_variables.c b/main/php_variables.c
index 5ad402be3..bf08d05d4 100644
--- a/main/php_variables.c
+++ b/main/php_variables.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_variables.c,v 1.104.2.4 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_variables.c,v 1.104.2.10 2006/05/03 11:24:29 dmitry Exp $ */
#include <stdio.h>
#include "php.h"
@@ -64,7 +64,7 @@ PHPAPI void php_register_variable_ex(char *var, zval *val, zval *track_vars_arra
char *index, *escaped_index = NULL;
int var_len, index_len;
zval *gpc_element, **gpc_element_p;
- zend_bool is_array;
+ zend_bool is_array = 0;
HashTable *symtable1 = NULL;
assert(var != NULL);
@@ -83,44 +83,43 @@ PHPAPI void php_register_variable_ex(char *var, zval *val, zval *track_vars_arra
/*
* Prepare variable name
*/
- ip = strchr(var, '[');
- if (ip) {
- is_array = 1;
- *ip = 0;
- } else {
- is_array = 0;
- }
+
/* ignore leading spaces in the variable name */
while (*var && *var==' ') {
var++;
}
- var_len = strlen(var);
+
+ /* ensure that we don't have spaces or dots in the variable name (not binary safe) */
+ for (p = var; *p; p++) {
+ if (*p == ' ' || *p == '.') {
+ *p='_';
+ } else if (*p == '[') {
+ is_array = 1;
+ ip = p;
+ *p = 0;
+ break;
+ }
+ }
+ var_len = p - var;
+
if (var_len==0) { /* empty variable name, or variable name with a space in it */
zval_dtor(val);
return;
}
/* GLOBALS hijack attempt, reject parameter */
- if (symtable1 == EG(active_symbol_table) && !strcmp("GLOBALS", var)) {
+ if (symtable1 == EG(active_symbol_table) &&
+ var_len == sizeof("GLOBALS")-1 &&
+ !memcmp(var, "GLOBALS", sizeof("GLOBALS")-1)) {
zval_dtor(val);
return;
}
- /* ensure that we don't have spaces or dots in the variable name (not binary safe) */
- for (p=var; *p; p++) {
- switch (*p) {
- case ' ':
- case '.':
- *p='_';
- break;
- }
- }
-
index = var;
index_len = var_len;
- while (1) {
- if (is_array) {
+ if (is_array) {
+ while (1) {
char *index_s;
int new_idx_len = 0;
@@ -179,42 +178,38 @@ PHPAPI void php_register_variable_ex(char *var, zval *val, zval *track_vars_arra
is_array = 1;
*ip = 0;
} else {
- is_array = 0;
+ goto plain_var;
}
- } else {
+ }
+ } else {
plain_var:
- MAKE_STD_ZVAL(gpc_element);
- gpc_element->value = val->value;
- Z_TYPE_P(gpc_element) = Z_TYPE_P(val);
- if (!index) {
- zend_hash_next_index_insert(symtable1, &gpc_element, sizeof(zval *), (void **) &gpc_element_p);
+ MAKE_STD_ZVAL(gpc_element);
+ gpc_element->value = val->value;
+ Z_TYPE_P(gpc_element) = Z_TYPE_P(val);
+ if (!index) {
+ zend_hash_next_index_insert(symtable1, &gpc_element, sizeof(zval *), (void **) &gpc_element_p);
+ } else {
+ if (PG(magic_quotes_gpc)) {
+ escaped_index = php_addslashes(index, index_len, &index_len, 0 TSRMLS_CC);
+ } else {
+ escaped_index = index;
+ }
+ /*
+ * According to rfc2965, more specific paths are listed above the less specific ones.
+ * If we encounter a duplicate cookie name, we should skip it, since it is not possible
+ * to have the same (plain text) cookie name for the same path and we should not overwrite
+ * more specific cookies with the less specific ones.
+ */
+ if (PG(http_globals)[TRACK_VARS_COOKIE] &&
+ symtable1 == Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_COOKIE]) &&
+ zend_symtable_exists(symtable1, escaped_index, index_len + 1)) {
+ zval_ptr_dtor(&gpc_element);
} else {
- zval **tmp;
-
- if (PG(magic_quotes_gpc)) {
- escaped_index = php_addslashes(index, index_len, &index_len, 0 TSRMLS_CC);
- } else {
- escaped_index = index;
- }
- /*
- * According to rfc2965, more specific paths are listed above the less specific ones.
- * If we encounter a duplicate cookie name, we should skip it, since it is not possible
- * to have the same (plain text) cookie name for the same path and we should not overwrite
- * more specific cookies with the less specific ones.
- */
- if (PG(http_globals)[TRACK_VARS_COOKIE] && symtable1 == Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_COOKIE]) &&
- zend_symtable_find(symtable1, escaped_index, index_len+1, (void **) &tmp) != FAILURE) {
- if (index != escaped_index) {
- efree(escaped_index);
- }
- break;
- }
zend_symtable_update(symtable1, escaped_index, index_len + 1, &gpc_element, sizeof(zval *), (void **) &gpc_element_p);
- if (index != escaped_index) {
- efree(escaped_index);
- }
}
- break;
+ if (escaped_index != index) {
+ efree(escaped_index);
+ }
}
}
}
@@ -422,15 +417,12 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
int count = 0;
char *ss, *space;
- if (! (PG(register_globals) || SG(request_info).argc ||
- PG(http_globals)[TRACK_VARS_SERVER]) ) {
+ if (!(PG(register_globals) || SG(request_info).argc || track_vars_array)) {
return;
}
- ALLOC_ZVAL(arr);
+ ALLOC_INIT_ZVAL(arr);
array_init(arr);
- arr->is_ref = 0;
- arr->refcount = 0;
/* Prepare argv */
if (SG(request_info).argc) { /* are we in cli sapi? */
@@ -476,15 +468,13 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
}
/* prepare argc */
- ALLOC_ZVAL(argc);
+ ALLOC_INIT_ZVAL(argc);
if (SG(request_info).argc) {
Z_LVAL_P(argc) = SG(request_info).argc;
} else {
Z_LVAL_P(argc) = count;
}
Z_TYPE_P(argc) = IS_LONG;
- argc->is_ref = 0;
- argc->refcount = 0;
if (PG(register_globals) || SG(request_info).argc) {
arr->refcount++;
@@ -498,6 +488,8 @@ static void php_build_argv(char *s, zval *track_vars_array TSRMLS_DC)
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argv", sizeof("argv"), &arr, sizeof(zval *), NULL);
zend_hash_update(Z_ARRVAL_P(track_vars_array), "argc", sizeof("argc"), &argc, sizeof(zval *), NULL);
}
+ zval_ptr_dtor(&arr);
+ zval_ptr_dtor(&argc);
}
/* }}} */
@@ -613,7 +605,7 @@ int php_hash_environment(TSRMLS_D)
unsigned char _gpc_flags[5] = {0, 0, 0, 0, 0};
zval *dummy_track_vars_array = NULL;
zend_bool initialized_dummy_track_vars_array=0;
- zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays) && !PG(register_argc_argv));
+ zend_bool jit_initialization = (PG(auto_globals_jit) && !PG(register_globals) && !PG(register_long_arrays));
struct auto_global_record {
char *name;
uint name_len;
@@ -736,6 +728,23 @@ static zend_bool php_auto_globals_create_server(char *name, uint name_len TSRMLS
{
if (PG(variables_order) && (strchr(PG(variables_order),'S') || strchr(PG(variables_order),'s'))) {
php_register_server_variables(TSRMLS_C);
+
+ if (PG(register_argc_argv)) {
+ if (SG(request_info).argc) {
+ zval **argc, **argv;
+
+ if (zend_hash_find(&EG(symbol_table), "argc", sizeof("argc"), (void**)&argc) == SUCCESS &&
+ zend_hash_find(&EG(symbol_table), "argv", sizeof("argv"), (void**)&argv) == SUCCESS) {
+ (*argc)->refcount++;
+ (*argv)->refcount++;
+ zend_hash_update(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]), "argv", sizeof("argv"), argv, sizeof(zval *), NULL);
+ zend_hash_update(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER]), "argc", sizeof("argc"), argc, sizeof(zval *), NULL);
+ }
+ } else {
+ php_build_argv(SG(request_info).query_string, PG(http_globals)[TRACK_VARS_SERVER] TSRMLS_CC);
+ }
+ }
+
} else {
zval *server_vars=NULL;
ALLOC_ZVAL(server_vars);
@@ -754,7 +763,7 @@ static zend_bool php_auto_globals_create_server(char *name, uint name_len TSRMLS
zend_hash_update(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), &PG(http_globals)[TRACK_VARS_SERVER], sizeof(zval *), NULL);
PG(http_globals)[TRACK_VARS_SERVER]->refcount++;
}
-
+
return 0; /* don't rearm */
}
diff --git a/main/php_variables.h b/main/php_variables.h
index cbda00105..0d5e5ea78 100644
--- a/main/php_variables.h
+++ b/main/php_variables.h
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_variables.h,v 1.22.2.2 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: php_variables.h,v 1.22.2.3 2006/03/08 08:43:25 mike Exp $ */
#ifndef PHP_VARIABLES_H
#define PHP_VARIABLES_H
@@ -31,7 +31,6 @@
#define PARSE_STRING 3
BEGIN_EXTERN_C()
-void php_treat_data(int arg, char *str, zval* destArray TSRMLS_DC);
void php_startup_auto_globals(TSRMLS_D);
extern PHPAPI void (*php_import_environment_variables)(zval *array_ptr TSRMLS_DC);
PHPAPI void php_register_variable(char *var, char *val, zval *track_vars_array TSRMLS_DC);
diff --git a/main/php_version.h b/main/php_version.h
index 604bd85f4..d51fdb707 100644
--- a/main/php_version.h
+++ b/main/php_version.h
@@ -2,6 +2,6 @@
/* edit configure.in to change version number */
#define PHP_MAJOR_VERSION 5
#define PHP_MINOR_VERSION 1
-#define PHP_RELEASE_VERSION 2
+#define PHP_RELEASE_VERSION 5
#define PHP_EXTRA_VERSION ""
-#define PHP_VERSION "5.1.2"
+#define PHP_VERSION "5.1.5"
diff --git a/main/snprintf.c b/main/snprintf.c
index 9623a993b..41dce94f7 100644
--- a/main/snprintf.c
+++ b/main/snprintf.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: snprintf.c,v 1.37.2.3 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: snprintf.c,v 1.37.2.4 2006/01/24 20:59:46 helly Exp $ */
/* ====================================================================
* Copyright (c) 1995-1998 The Apache Group. All rights reserved.
@@ -1015,7 +1015,7 @@ static int format_converter(register buffy * odp, const char *fmt,
case 'n':
*(va_arg(ap, int *)) = cc;
- break;
+ goto skip_output;
/*
* Always extract the argument as a "char *" pointer. We
@@ -1096,6 +1096,7 @@ fmt_error:
if (adjust_width && adjust == LEFT && min_width > s_len)
PAD(min_width, s_len, pad_char);
}
+skip_output:
fmt++;
}
odp->nextb = sp;
diff --git a/main/spprintf.c b/main/spprintf.c
index 343cd89ca..240da1789 100644
--- a/main/spprintf.c
+++ b/main/spprintf.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: spprintf.c,v 1.25.2.1 2006/01/01 12:50:17 sniper Exp $ */
+/* $Id: spprintf.c,v 1.25.2.2 2006/01/24 20:59:46 helly Exp $ */
/* This is the spprintf implementation.
* It has emerged from apache snprintf. See original header:
@@ -631,7 +631,7 @@ static void xbuf_format_converter(smart_str *xbuf, const char *fmt, va_list ap)
case 'n':
*(va_arg(ap, int *)) = xbuf->len;
- break;
+ goto skip_output;
/*
* Always extract the argument as a "char *" pointer. We
@@ -709,6 +709,7 @@ fmt_error:
if (adjust_width && adjust == LEFT && min_width > s_len)
PAD(xbuf, min_width - s_len, pad_char);
}
+skip_output:
fmt++;
}
return;
diff --git a/main/streams/filter.c b/main/streams/filter.c
index 1e9fc334e..f601fa8c5 100644
--- a/main/streams/filter.c
+++ b/main/streams/filter.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: filter.c,v 1.17.2.2 2006/01/10 16:14:16 iliaa Exp $ */
+/* $Id: filter.c,v 1.17.2.4 2006/05/19 10:24:19 tony2001 Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -251,7 +251,7 @@ PHPAPI void php_stream_bucket_unlink(php_stream_bucket *bucket TSRMLS_DC)
PHPAPI php_stream_filter *php_stream_filter_create(const char *filtername, zval *filterparams, int persistent TSRMLS_DC)
{
HashTable *filter_hash = (FG(stream_filters) ? FG(stream_filters) : &stream_filters_hash);
- php_stream_filter_factory *factory;
+ php_stream_filter_factory *factory = NULL;
php_stream_filter *filter = NULL;
int n;
char *period;
@@ -351,7 +351,7 @@ PHPAPI void _php_stream_filter_append(php_stream_filter_chain *chain, php_stream
php_stream_bucket_append(brig_inp, bucket TSRMLS_CC);
status = filter->fops->filter(stream, filter, brig_inp, brig_outp, &consumed, PSFS_FLAG_NORMAL TSRMLS_CC);
- if (stream->readpos + consumed > stream->writepos || consumed < 0) {
+ if (stream->readpos + consumed > (uint)stream->writepos || consumed < 0) {
/* No behaving filter should cause this. */
status = PSFS_ERR_FATAL;
}
diff --git a/main/streams/memory.c b/main/streams/memory.c
index c15d8205c..30b1caad6 100644
--- a/main/streams/memory.c
+++ b/main/streams/memory.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: memory.c,v 1.8.2.5 2006/01/05 22:03:07 helly Exp $ */
+/* $Id: memory.c,v 1.8.2.6 2006/03/18 19:57:00 helly Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -159,7 +159,7 @@ static int php_stream_memory_seek(php_stream *stream, off_t offset, int whence,
return 0;
}
} else {
- if (ms->fpos < (size_t)(offset)) {
+ if (ms->fpos + (size_t)(offset) > ms->fsize) {
ms->fpos = ms->fsize;
*newoffs = -1;
return -1;
diff --git a/main/streams/php_streams_int.h b/main/streams/php_streams_int.h
index 30567d1a4..4091235a3 100644
--- a/main/streams/php_streams_int.h
+++ b/main/streams/php_streams_int.h
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_streams_int.h,v 1.7.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: php_streams_int.h,v 1.7.2.2 2006/04/22 17:17:40 wez Exp $ */
#if ZEND_DEBUG
@@ -46,7 +46,6 @@
#define STREAM_DEBUG 0
#define STREAM_WRAPPER_PLAIN_FILES ((php_stream_wrapper*)-1)
-extern php_stream_wrapper php_plain_files_wrapper;
#ifndef MAP_FAILED
#define MAP_FAILED ((void *) -1)
diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c
index 1fc2e982f..1af042752 100644
--- a/main/streams/plain_wrapper.c
+++ b/main/streams/plain_wrapper.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: plain_wrapper.c,v 1.52.2.4 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: plain_wrapper.c,v 1.52.2.6 2006/01/17 02:32:09 iliaa Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -1095,12 +1095,17 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, char *dir, int mod
offset = p - buf + 1;
}
- /* find a top level directory we need to create */
- while ((p = strrchr(buf + offset, DEFAULT_SLASH))) {
- *p = '\0';
- if (VCWD_STAT(buf, &sb) == 0) {
- *p = DEFAULT_SLASH;
- break;
+ if (p && dir_len == 1) {
+ /* buf == "DEFAULT_SLASH" */
+ }
+ else {
+ /* find a top level directory we need to create */
+ while ( (p = strrchr(buf + offset, DEFAULT_SLASH)) || (p = strrchr(buf, DEFAULT_SLASH)) ) {
+ *p = '\0';
+ if (VCWD_STAT(buf, &sb) == 0) {
+ *p = DEFAULT_SLASH;
+ break;
+ }
}
}
@@ -1115,7 +1120,9 @@ static int php_plain_files_mkdir(php_stream_wrapper *wrapper, char *dir, int mod
if (*p == '\0' && *(p + 1) != '\0') {
*p = DEFAULT_SLASH;
if ((ret = VCWD_MKDIR(buf, (mode_t)mode)) < 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
+ if (options & REPORT_ERRORS) {
+ php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", strerror(errno));
+ }
break;
}
}
diff --git a/main/streams/streams.c b/main/streams/streams.c
index b50bc70fc..745b4c0aa 100755
--- a/main/streams/streams.c
+++ b/main/streams/streams.c
@@ -19,7 +19,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: streams.c,v 1.82.2.4 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: streams.c,v 1.82.2.6 2006/04/22 17:17:40 wez Exp $ */
#define _GNU_SOURCE
#include "php.h"
@@ -433,7 +433,7 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D
/* allocate a buffer for reading chunks */
chunk_buf = emalloc(stream->chunk_size);
- while (!err_flag && (stream->writepos - stream->readpos < (off_t)size)) {
+ while (!stream->eof && !err_flag && (stream->writepos - stream->readpos < (off_t)size)) {
size_t justread = 0;
int flags;
php_stream_bucket *bucket;
@@ -442,7 +442,7 @@ static void php_stream_fill_read_buffer(php_stream *stream, size_t size TSRMLS_D
/* read a chunk into a bucket */
justread = stream->ops->read(stream, chunk_buf, stream->chunk_size TSRMLS_CC);
- if (justread != (size_t)-1) {
+ if (justread && justread != (size_t)-1) {
bucket = php_stream_bucket_new(stream, chunk_buf, justread, 0, 0 TSRMLS_CC);
/* after this call, bucket is owned by the brigade */
@@ -1457,7 +1457,7 @@ PHPAPI int php_register_url_stream_wrapper(char *protocol, php_stream_wrapper *w
return FAILURE;
}
- return zend_hash_add(&url_stream_wrappers_hash, protocol, protocol_len, wrapper, sizeof(*wrapper), NULL);
+ return zend_hash_add(&url_stream_wrappers_hash, protocol, protocol_len, &wrapper, sizeof(wrapper), NULL);
}
PHPAPI int php_unregister_url_stream_wrapper(char *protocol TSRMLS_DC)
@@ -1465,6 +1465,15 @@ PHPAPI int php_unregister_url_stream_wrapper(char *protocol TSRMLS_DC)
return zend_hash_del(&url_stream_wrappers_hash, protocol, strlen(protocol));
}
+static void clone_wrapper_hash(TSRMLS_D)
+{
+ php_stream_wrapper *tmp;
+
+ ALLOC_HASHTABLE(FG(stream_wrappers));
+ zend_hash_init(FG(stream_wrappers), 0, NULL, NULL, 1);
+ zend_hash_copy(FG(stream_wrappers), &url_stream_wrappers_hash, NULL, &tmp, sizeof(tmp));
+}
+
/* API for registering VOLATILE wrappers */
PHPAPI int php_register_url_stream_wrapper_volatile(char *protocol, php_stream_wrapper *wrapper TSRMLS_DC)
{
@@ -1475,24 +1484,16 @@ PHPAPI int php_register_url_stream_wrapper_volatile(char *protocol, php_stream_w
}
if (!FG(stream_wrappers)) {
- php_stream_wrapper tmpwrapper;
-
- ALLOC_HASHTABLE(FG(stream_wrappers));
- zend_hash_init(FG(stream_wrappers), 0, NULL, NULL, 1);
- zend_hash_copy(FG(stream_wrappers), &url_stream_wrappers_hash, NULL, &tmpwrapper, sizeof(php_stream_wrapper));
+ clone_wrapper_hash(TSRMLS_C);
}
- return zend_hash_add(FG(stream_wrappers), protocol, protocol_len, wrapper, sizeof(*wrapper), NULL);
+ return zend_hash_add(FG(stream_wrappers), protocol, protocol_len, &wrapper, sizeof(wrapper), NULL);
}
PHPAPI int php_unregister_url_stream_wrapper_volatile(char *protocol TSRMLS_DC)
{
if (!FG(stream_wrappers)) {
- php_stream_wrapper tmpwrapper;
-
- ALLOC_HASHTABLE(FG(stream_wrappers));
- zend_hash_init(FG(stream_wrappers), 0, NULL, NULL, 1);
- zend_hash_copy(FG(stream_wrappers), &url_stream_wrappers_hash, NULL, &tmpwrapper, sizeof(php_stream_wrapper));
+ clone_wrapper_hash(TSRMLS_C);
}
return zend_hash_del(FG(stream_wrappers), protocol, strlen(protocol));
@@ -1503,7 +1504,7 @@ PHPAPI int php_unregister_url_stream_wrapper_volatile(char *protocol TSRMLS_DC)
PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char **path_for_open, int options TSRMLS_DC)
{
HashTable *wrapper_hash = (FG(stream_wrappers) ? FG(stream_wrappers) : &url_stream_wrappers_hash);
- php_stream_wrapper *wrapper = NULL;
+ php_stream_wrapper **wrapperpp = NULL;
const char *p, *protocol = NULL;
int n = 0;
@@ -1529,7 +1530,7 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char
}
if (protocol) {
- if (FAILURE == zend_hash_find(wrapper_hash, (char*)protocol, n, (void**)&wrapper)) {
+ if (FAILURE == zend_hash_find(wrapper_hash, (char*)protocol, n, (void**)&wrapperpp)) {
char wrapper_name[32];
if (n >= sizeof(wrapper_name))
@@ -1539,7 +1540,7 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Unable to find the wrapper \"%s\" - did you forget to enable it when you configured PHP?",
wrapper_name);
- wrapper = NULL;
+ wrapperpp = NULL;
protocol = NULL;
}
}
@@ -1584,14 +1585,14 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char
if (FG(stream_wrappers)) {
/* The file:// wrapper may have been disabled/overridden */
- if (wrapper) {
+ if (wrapperpp) {
/* It was found so go ahead and provide it */
- return wrapper;
+ return *wrapperpp;
}
/* Check again, the original check might have not known the protocol name */
- if (zend_hash_find(wrapper_hash, "file", sizeof("file")-1, (void**)&wrapper) == SUCCESS) {
- return wrapper;
+ if (zend_hash_find(wrapper_hash, "file", sizeof("file")-1, (void**)&wrapperpp) == SUCCESS) {
+ return *wrapperpp;
}
if (options & REPORT_ERRORS) {
@@ -1604,14 +1605,14 @@ PHPAPI php_stream_wrapper *php_stream_locate_url_wrapper(const char *path, char
return &php_plain_files_wrapper;
}
- if (wrapper && wrapper->is_url && !PG(allow_url_fopen)) {
+ if (wrapperpp && (*wrapperpp)->is_url && !PG(allow_url_fopen)) {
if (options & REPORT_ERRORS) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "URL file-access is disabled in the server configuration");
}
return NULL;
}
- return wrapper;
+ return *wrapperpp;
}
/* }}} */
diff --git a/main/streams/userspace.c b/main/streams/userspace.c
index d1e3edc1b..e9447a05a 100644
--- a/main/streams/userspace.c
+++ b/main/streams/userspace.c
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: userspace.c,v 1.31.2.2 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: userspace.c,v 1.31.2.3 2006/04/22 17:17:40 wez Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -464,7 +464,7 @@ PHP_FUNCTION(stream_wrapper_restore)
{
char *protocol;
int protocol_len;
- php_stream_wrapper *wrapper = NULL;
+ php_stream_wrapper **wrapperpp = NULL, *wrapper;
HashTable *global_wrapper_hash;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &protocol, &protocol_len) == FAILURE) {
@@ -477,11 +477,14 @@ PHP_FUNCTION(stream_wrapper_restore)
RETURN_TRUE;
}
- if ((zend_hash_find(global_wrapper_hash, protocol, protocol_len, (void**)&wrapper) == FAILURE) || !wrapper) {
+ if ((zend_hash_find(global_wrapper_hash, protocol, protocol_len, (void**)&wrapperpp) == FAILURE) || !wrapperpp) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s:// never existed, nothing to restore", protocol);
RETURN_FALSE;
}
+ /* next line might delete the pointer that wrapperpp points at, so deref it now */
+ wrapper = *wrapperpp;
+
/* A failure here could be okay given that the protocol might have been merely unregistered */
php_unregister_url_stream_wrapper_volatile(protocol TSRMLS_CC);
diff --git a/main/streams/xp_socket.c b/main/streams/xp_socket.c
index f3aa94913..5b7e32917 100644
--- a/main/streams/xp_socket.c
+++ b/main/streams/xp_socket.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: xp_socket.c,v 1.33.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: xp_socket.c,v 1.33.2.2 2006/02/02 18:16:43 pollita Exp $ */
#include "php.h"
#include "ext/standard/file.h"
@@ -578,7 +578,7 @@ static inline int php_tcp_sockop_connect(php_stream *stream, php_netstream_data_
php_stream_xport_param *xparam TSRMLS_DC)
{
char *host = NULL, *bindto = NULL;
- int portno, bindport;
+ int portno, bindport = 0;
int err;
int ret;
zval **tmpzval = NULL;
diff --git a/makedist b/makedist
index a00be0529..3ab92f129 100755
--- a/makedist
+++ b/makedist
@@ -24,7 +24,7 @@
#
# Written by Stig Bakken <ssb@guardian.no> 1997-05-28.
#
-# $Id: makedist,v 1.31 2003/06/28 23:32:04 sterling Exp $
+# $Id: makedist,v 1.31.4.1 2006/05/12 14:53:58 iliaa Exp $
#
if test "$#" != "2"; then
@@ -122,6 +122,15 @@ for i in $LT_TARGETS; do
test -f "$i" && mv $i.bak $i
done
+# download pear
+$ECHO_N "makedist: Attempting to download PEAR's phar archive"
+if test ! -x wget; then
+ wget http://pear.php.net/install-pear-nozlib.phar -nd -P pear/
+else
+ $ECHO_N "Missing wget binary needed for pear download";
+ exit 0;
+fi
+
cd $MY_OLDPWD
$ECHO_N "makedist: making gzipped tar archive...$ECHO_C"
rm -f $ARCHIVE.gz
diff --git a/pear/Makefile.frag b/pear/Makefile.frag
index c86d062ef..7c63801ca 100644
--- a/pear/Makefile.frag
+++ b/pear/Makefile.frag
@@ -3,7 +3,7 @@
peardir=$(PEAR_INSTALLDIR)
# Skip all php.ini files altogether
-PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dsafe_mode=0 -derror_reporting=E_ALL -ddetect_unicode=0
+PEAR_INSTALL_FLAGS = -n -dshort_open_tag=0 -dsafe_mode=0 -derror_reporting=E_ALL -dmemory_limit=-1 -ddetect_unicode=0
install-pear-installer: $(SAPI_CLI_PATH)
@$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)"
diff --git a/pear/install-pear-nozlib.phar b/pear/install-pear-nozlib.phar
index b827744f7..c30900dc9 100644
--- a/pear/install-pear-nozlib.phar
+++ b/pear/install-pear-nozlib.phar
@@ -1,18 +1,19 @@
-<?php #PHP_ARCHIVE_HEADER-0.7.1
+<?php #PHP_ARCHIVE_HEADER-0.8.0
error_reporting(E_ALL);
if (function_exists('mb_internal_encoding')) {
mb_internal_encoding('ASCII');
}
-if (!class_exists('PHP_Archive')) {
-if (class_exists('Phar')) {
-class PHP_Archive extends Phar {}
-} else {/**
+if (!class_exists('PHP_Archive')) {/**
* PHP_Archive Class (implements .phar)
*
* @package PHP_Archive
* @category PHP
*/
/**
+ * Flag for GZ compression
+ */
+define('PHP_ARCHIVE_COMPRESSED', 1);
+/**
* PHP_Archive Class (implements .phar)
*
* PHAR files a singular archive from which an entire application can run.
@@ -22,11 +23,11 @@ class PHP_Archive extends Phar {}
*
* Gz code borrowed from the excellent File_Archive package by Vincent Lascaux.
*
- * @copyright Copyright © David Shafik and Synaptic Media 2004. All rights reserved.
+ * @copyright Copyright David Shafik and Synaptic Media 2004. All rights reserved.
* @author Davey Shafik <davey@synapticmedia.net>
* @author Greg Beaver <cellog@php.net>
* @link http://www.synapticmedia.net Synaptic Media
- * @version Id: Archive.php,v 1.23 2005/12/19 22:18:04 cellog Exp $
+ * @version Id: Archive.php,v 1.28 2006/03/03 21:35:29 cellog Exp $
* @package PHP_Archive
* @category PHP
*/
@@ -125,14 +126,9 @@ class PHP_Archive
* on accessing internal files
* @param int $dataoffset the value of __COMPILER_HALT_OFFSET__
*/
- public static final function mapPhar($alias, $compressed, $file, $dataoffset)
+ public static final function mapPhar($file, $dataoffset)
{
- if ($compressed) {
- if (!function_exists('gzinflate')) {
- die('Error: zlib extension is not enabled - gzinflate() function needed' .
- ' for compressed .phars');
- }
- }
+ $file = realpath($file);
// this ensures that this is safe
if (!in_array($file, get_included_files())) {
die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' .
@@ -141,6 +137,27 @@ class PHP_Archive
if (!is_array(self::$_pharMapping)) {
self::$_pharMapping = array();
}
+ if (!isset(self::$_manifest[$file])) {
+ $fp = fopen($file, 'rb');
+ // seek to __HALT_COMPILER_OFFSET__
+ fseek($fp, $dataoffset);
+ $manifest_length = unpack('Vlen', fread($fp, 4));
+ $info = self::_unserializeManifest(fread($fp, $manifest_length['len']));
+ if (!$info) {
+ die; // error declared in unserializeManifest
+ }
+ $alias = $info['alias'];
+ self::$_manifest[$file] = $info['manifest'];
+ $compressed = $info['compressed'];
+ self::$_fileStart[$file] = ftell($fp);
+ fclose($fp);
+ }
+ if ($compressed) {
+ if (!function_exists('gzinflate')) {
+ die('Error: zlib extension is not enabled - gzinflate() function needed' .
+ ' for compressed .phars');
+ }
+ }
if (isset(self::$_pharMapping[$alias])) {
die('ERROR: PHP_Archive::mapPhar has already been called for alias "' .
$alias . '" cannot re-alias to "' . $file . '"');
@@ -204,11 +221,10 @@ class PHP_Archive
9 => self::$_manifest[$this->_archiveName][$path][1], // creation time
);
$this->currentFilename = $path;
- // actual file length in file includes 8-byte header
- $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][3] - 8;
+ $this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2];
// seek to offset of file header within the .phar
if (is_resource(@$this->fp)) {
- fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][2]);
+ fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][5]);
}
}
@@ -221,12 +237,10 @@ class PHP_Archive
public function extractFile($path)
{
$this->fp = @fopen($this->_archiveName, "rb");
- $stat = fstat($this->fp);
if (!$this->fp) {
return array('Error: cannot open phar "' . $this->_archiveName . '"');
}
if (($e = $this->selectFile($path, false)) === true) {
- $temp = unpack("Vcrc32/Visize", fread($this->fp, 8));
$data = '';
$count = $this->internalFileLength;
while ($count) {
@@ -239,15 +253,15 @@ class PHP_Archive
}
}
@fclose($this->fp);
- if ($this->_compressed) {
+ if (self::$_manifest[$this->_archiveName][$path][4] & PHP_ARCHIVE_COMPRESSED) {
$data = gzinflate($data);
}
if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) {
- if ($temp['isize'] != $this->currentStat[7]) {
+ if (strlen($data) != $this->currentStat[7]) {
return array("Not valid internal .phar file (size error {$size} != " .
$this->currentStat[7] . ")");
}
- if ($temp['crc32'] != crc32($data)) {
+ if (self::$_manifest[$this->_archiveName][$path][3] != crc32($data)) {
return array("Not valid internal .phar file (checksum error)");
}
self::$_manifest[$this->_archiveName][$path]['ok'] = true;
@@ -295,45 +309,60 @@ class PHP_Archive
$this->_archiveName = $pharinfo[0];
$this->_compressed = $pharinfo[1];
}
- if (!isset(self::$_manifest[$this->_archiveName])) {
- $fp = fopen($this->_archiveName, 'rb');
- // seek to __HALT_COMPILER_OFFSET__
- fseek($fp, self::$_pharMapping[$this->_basename][2]);
- $manifest_length = unpack('Vlen', fread($fp, 4));
- self::$_manifest[$this->_archiveName] =
- $this->_unserializeManifest(fread($fp, $manifest_length['len']));
- self::$_fileStart[$this->_archiveName] = ftell($fp);
- fclose($fp);
- }
$file = $info['path'];
return $file;
}
/**
- * Enter description here...
+ * extract the manifest into an internal array
*
- * @param unknown_type $manifest
- * @return unknown
+ * @param string $manifest
+ * @return false|array
*/
- private function _unserializeManifest($manifest)
+ private static function _unserializeManifest($manifest)
{
// retrieve the number of files in the manifest
$info = unpack('V', substr($manifest, 0, 4));
- $manifest = substr($manifest, 4);
- $ret = array();
+ $apiver = substr($manifest, 4, 2);
+ $apiver = bin2hex($apiver);
+ $apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]);
+ $majorcompat = hexdec($apiver[0]);
+ $calcapi = explode('.', '0.8.0');
+ if ($calcapi[0] != $majorcompat) {
+ trigger_error('Phar is incompatible API version ' . $apiver_dots . ', but ' .
+ 'PHP_Archive is API version 0.8.0');
+ return false;
+ }
+ if ($calcapi[0] === '0') {
+ if ('0.8.0' != $apiver_dots) {
+ trigger_error('Phar is API version ' . $apiver_dots .
+ ', but PHP_Archive is API version 0.8.0', E_USER_ERROR);
+ return false;
+ }
+ }
+ $ret = array('compressed' => $apiver[3]);
+ $aliaslen = unpack('V', substr($manifest, 6, 4));
+ $ret['alias'] = substr($manifest, 10, $aliaslen[1]);
+ $manifest = substr($manifest, 10 + $aliaslen[1]);
+ $offset = 0;
+ $start = 0;
for ($i = 0; $i < $info[1]; $i++) {
// length of the file name
- $len = unpack('V', substr($manifest, 0, 4));
+ $len = unpack('V', substr($manifest, $start, 4));
+ $start += 4;
// file name
- $savepath = substr($manifest, 4, $len[1]);
- $manifest = substr($manifest, $len[1] + 4);
+ $savepath = substr($manifest, $start, $len[1]);
+ $start += $len[1];
// retrieve manifest data:
// 0 = uncompressed file size
// 1 = timestamp of when file was added to phar
- // 2 = offset of file within phar relative to internal file's start
- // 3 = compressed file size (actual size in the phar)
- $ret[$savepath] = array_values(unpack('Va/Vb/Vc/Vd', substr($manifest, 0, 16)));
- $manifest = substr($manifest, 16);
+ // 2 = compressed filesize
+ // 3 = crc32
+ // 4 = flags
+ $ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ce', substr($manifest, $start, 17)));
+ $ret['manifest'][$savepath][5] = $offset;
+ $offset += $ret['manifest'][$savepath][2];
+ $start += 17;
}
return $ret;
}
@@ -591,1803 +620,1792 @@ class PHP_Archive
*/
public final function APIVersion()
{
- return '0.7.1';
+ return '0.8.0';
}
-}}if (!function_exists('stream_get_wrappers')) {function stream_get_wrappers(){return array();}
}}
-if (!in_array('phar', stream_get_wrappers())) {
- stream_wrapper_register('phar', 'PHP_Archive');
+if (!class_exists('Phar')) {
+ if (!in_array('phar', stream_get_wrappers())) {
+ stream_wrapper_register('phar', 'PHP_Archive');
+ }
+ PHP_Archive::mapPhar(__FILE__, __COMPILER_HALT_OFFSET__);
+} else {
+ Phar::mapPhar();
}
-if (PHP_Archive::APIVersion() != '0.7.1') {
-die('Error: PHP_Archive must be API version 0.7.1');
+if (class_exists('PHP_Archive') && !in_array('phar', stream_get_wrappers())) {
+ stream_wrapper_register('phar', 'PHP_Archive');
}
-@ini_set('memory_limit', -1);PHP_Archive::mapPhar("install-pear-nozlib.phar", false, __FILE__, __COMPILER_HALT_OFFSET__);
+@ini_set('memory_limit', -1);
require_once 'phar://install-pear-nozlib.phar/index.php';
-__HALT_COMPILER();D
-
-l(
-
-
-
-
-
-/* vim: set ts=4 sw=4: */
-// +----------------------------------------------------------------------+
-// | PHP Version 5 |
-// +----------------------------------------------------------------------+
-// | Copyright (c) 1997-2004 The PHP Group |
-// +----------------------------------------------------------------------+
-// | This source file is subject to version 3.0 of the PHP license, |
-// | that is bundled with this package in the file LICENSE, and is |
-// | available through the world-wide-web at the following url: |
-// | http://www.php.net/license/3_0.txt. |
-// | If you did not receive a copy of the PHP license and are unable to |
-// | obtain it through the world-wide-web, please send a note to |
-// | license@php.net so we can mail you a copy immediately. |
-// +----------------------------------------------------------------------+
-// | Author: Vincent Blavet <vincent@phpconcept.net> |
-// +----------------------------------------------------------------------+
-//
-// +----------------------------------------------------------------------+
-// | WARNING : |
-// | This file is a copy of pear/Archive_Tar/Archive/Tar.php |
-// | NEVER MODIFY THIS FILE DIRECTLY WITHOUT MODIFYING THE REFERENCE FILE |
-// | If you modify this file without synchronizing with |
-// | pear/Archive_Tar/Archive/Tar.php, when the package will be upgraded |
-// | with "pear upgrade Archive_Tar", it may result in software/bug |
-// | regression. |
-// +----------------------------------------------------------------------+
-//
-// $Id: Tar.php,v 1.22 2005/11/20 14:11:10 vblavet Exp $
-
-require_once 'phar://install-pear-nozlib.phar/PEAR.php';
-
-
-define ('ARCHIVE_TAR_ATT_SEPARATOR', 90001);
-
-/**
-* Creates a (compressed) Tar archive
-*
-* @author Vincent Blavet <vincent@phpconcept.net>
-* @version $Revision: 1.22 $
-* @package Archive
-*/
-class Archive_Tar extends PEAR
-{
- /**
- * @var string Name of the Tar
- */
- var $_tarname='';
-
- /**
- * @var boolean if true, the Tar file will be gzipped
- */
- var $_compress=false;
-
- /**
- * @var string Type of compression : 'none', 'gz' or 'bz2'
- */
- var $_compress_type='none';
-
- /**
- * @var string Explode separator
- */
- var $_separator=' ';
-
- /**
- * @var file descriptor
- */
- var $_file=0;
-
- /**
- * @var string Local Tar name of a remote Tar (http:// or ftp://)
- */
- var $_temp_tarname='';
-
- // {{{ constructor
- /**
- * Archive_Tar Class constructor. This flavour of the constructor only
- * declare a new Archive_Tar object, identifying it by the name of the
- * tar file.
- * If the compress argument is set the tar will be read or created as a
- * gzip or bz2 compressed TAR file.
- *
- * @param string $p_tarname The name of the tar archive to create
- * @param string $p_compress can be null, 'gz' or 'bz2'. This
- * parameter indicates if gzip or bz2 compression
- * is required. For compatibility reason the
- * boolean value 'true' means 'gz'.
- * @access public
- */
- function Archive_Tar($p_tarname, $p_compress = null)
- {
- $this->PEAR();
- $this->_compress = false;
- $this->_compress_type = 'none';
- if (($p_compress === null) || ($p_compress == '')) {
- if (@file_exists($p_tarname)) {
- if ($fp = @fopen($p_tarname, "rb")) {
- // look for gzip magic cookie
- $data = fread($fp, 2);
- fclose($fp);
- if ($data == "\37\213") {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- // No sure it's enought for a magic code ....
- } elseif ($data == "BZ") {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- }
- }
- } else {
- // probably a remote file or some file accessible
- // through a stream interface
- if (substr($p_tarname, -2) == 'gz') {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- } elseif ((substr($p_tarname, -3) == 'bz2') ||
- (substr($p_tarname, -2) == 'bz')) {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- }
- }
- } else {
- if (($p_compress === true) || ($p_compress == 'gz')) {
- $this->_compress = true;
- $this->_compress_type = 'gz';
- } else if ($p_compress == 'bz2') {
- $this->_compress = true;
- $this->_compress_type = 'bz2';
- } else {
- die("Unsupported compression type '$p_compress'\n".
- "Supported types are 'gz' and 'bz2'.\n");
- return false;
- }
- }
- $this->_tarname = $p_tarname;
- if ($this->_compress) { // assert zlib or bz2 extension support
- if ($this->_compress_type == 'gz')
- $extname = 'zlib';
- else if ($this->_compress_type == 'bz2')
- $extname = 'bz2';
-
- if (!extension_loaded($extname)) {
- PEAR::loadExtension($extname);
- }
- if (!extension_loaded($extname)) {
- die("The extension '$extname' couldn't be found.\n".
- "Please make sure your version of PHP was built ".
- "with '$extname' support.\n");
- return false;
- }
- }
- }
- // }}}
-
- // {{{ destructor
- function _Archive_Tar()
- {
- $this->_close();
- // ----- Look for a local copy to delete
- if ($this->_temp_tarname != '')
- @unlink($this->_temp_tarname);
- $this->_PEAR();
- }
- // }}}
-
- // {{{ create()
- /**
- * This method creates the archive file and add the files / directories
- * that are listed in $p_filelist.
- * If a file with the same name exist and is writable, it is replaced
- * by the new tar.
- * The method return false and a PEAR error text.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * For each directory added in the archive, the files and
- * sub-directories are also added.
- * See also createModify() method for more details.
- *
- * @param array $p_filelist An array of filenames and directory names, or a
- * single string with names separated by a single
- * blank space.
- * @return true on success, false on error.
- * @see createModify()
- * @access public
- */
- function create($p_filelist)
- {
- return $this->createModify($p_filelist, '', '');
- }
- // }}}
-
- // {{{ add()
- /**
- * This method add the files / directories that are listed in $p_filelist in
- * the archive. If the archive does not exist it is created.
- * The method return false and a PEAR error text.
- * The files and directories listed are only added at the end of the archive,
- * even if a file with the same name is already archived.
- * See also createModify() method for more details.
- *
- * @param array $p_filelist An array of filenames and directory names, or a
- * single string with names separated by a single
- * blank space.
- * @return true on success, false on error.
- * @see createModify()
- * @access public
- */
- function add($p_filelist)
- {
- return $this->addModify($p_filelist, '', '');
- }
- // }}}
-
- // {{{ extract()
- function extract($p_path='')
- {
- return $this->extractModify($p_path, '');
- }
- // }}}
-
- // {{{ listContent()
- function listContent()
- {
- $v_list_detail = array();
-
- if ($this->_openRead()) {
- if (!$this->_extractList('', $v_list_detail, "list", '', '')) {
- unset($v_list_detail);
- $v_list_detail = 0;
- }
- $this->_close();
- }
-
- return $v_list_detail;
- }
- // }}}
-
- // {{{ createModify()
- /**
- * This method creates the archive file and add the files / directories
- * that are listed in $p_filelist.
- * If the file already exists and is writable, it is replaced by the
- * new tar. It is a create and not an add. If the file exists and is
- * read-only or is a directory it is not replaced. The method return
- * false and a PEAR error text.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * The path indicated in $p_remove_dir will be removed from the
- * memorized path of each file / directory listed when this path
- * exists. By default nothing is removed (empty path '')
- * The path indicated in $p_add_dir will be added at the beginning of
- * the memorized path of each file / directory listed. However it can
- * be set to empty ''. The adding of a path is done after the removing
- * of path.
- * The path add/remove ability enables the user to prepare an archive
- * for extraction in a different path than the origin files are.
- * See also addModify() method for file adding properties.
- *
- * @param array $p_filelist An array of filenames and directory names,
- * or a single string with names separated by
- * a single blank space.
- * @param string $p_add_dir A string which contains a path to be added
- * to the memorized path of each element in
- * the list.
- * @param string $p_remove_dir A string which contains a path to be
- * removed from the memorized path of each
- * element in the list, when relevant.
- * @return boolean true on success, false on error.
- * @access public
- * @see addModify()
- */
- function createModify($p_filelist, $p_add_dir, $p_remove_dir='')
- {
- $v_result = true;
-
- if (!$this->_openWrite())
- return false;
-
- if ($p_filelist != '') {
- if (is_array($p_filelist))
- $v_list = $p_filelist;
- elseif (is_string($p_filelist))
- $v_list = explode($this->_separator, $p_filelist);
- else {
- $this->_cleanFile();
- $this->_error('Invalid file list');
- return false;
- }
-
- $v_result = $this->_addList($v_list, $p_add_dir, $p_remove_dir);
- }
-
- if ($v_result) {
- $this->_writeFooter();
- $this->_close();
- } else
- $this->_cleanFile();
-
- return $v_result;
- }
- // }}}
-
- // {{{ addModify()
- /**
- * This method add the files / directories listed in $p_filelist at the
- * end of the existing archive. If the archive does not yet exists it
- * is created.
- * The $p_filelist parameter can be an array of string, each string
- * representing a filename or a directory name with their path if
- * needed. It can also be a single string with names separated by a
- * single blank.
- * The path indicated in $p_remove_dir will be removed from the
- * memorized path of each file / directory listed when this path
- * exists. By default nothing is removed (empty path '')
- * The path indicated in $p_add_dir will be added at the beginning of
- * the memorized path of each file / directory listed. However it can
- * be set to empty ''. The adding of a path is done after the removing
- * of path.
- * The path add/remove ability enables the user to prepare an archive
- * for extraction in a different path than the origin files are.
- * If a file/dir is already in the archive it will only be added at the
- * end of the archive. There is no update of the existing archived
- * file/dir. However while extracting the archive, the last file will
- * replace the first one. This results in a none optimization of the
- * archive size.
- * If a file/dir does not exist the file/dir is ignored. However an
- * error text is send to PEAR error.
- * If a file/dir is not readable the file/dir is ignored. However an
- * error text is send to PEAR error.
- *
- * @param array $p_filelist An array of filenames and directory
- * names, or a single string with names
- * separated by a single blank space.
- * @param string $p_add_dir A string which contains a path to be
- * added to the memorized path of each
- * element in the list.
- * @param string $p_remove_dir A string which contains a path to be
- * removed from the memorized path of
- * each element in the list, when
- * relevant.
- * @return true on success, false on error.
- * @access public
- */
- function addModify($p_filelist, $p_add_dir, $p_remove_dir='')
- {
- $v_result = true;
-
- if (!$this->_isArchive())
- $v_result = $this->createModify($p_filelist, $p_add_dir,
- $p_remove_dir);
- else {
- if (is_array($p_filelist))
- $v_list = $p_filelist;
- elseif (is_string($p_filelist))
- $v_list = explode($this->_separator, $p_filelist);
- else {
- $this->_error('Invalid file list');
- return false;
- }
-
- $v_result = $this->_append($v_list, $p_add_dir, $p_remove_dir);
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ addString()
- /**
- * This method add a single string as a file at the
- * end of the existing archive. If the archive does not yet exists it
- * is created.
- *
- * @param string $p_filename A string which contains the full
- * filename path that will be associated
- * with the string.
- * @param string $p_string The content of the file added in
- * the archive.
- * @return true on success, false on error.
- * @access public
- */
- function addString($p_filename, $p_string)
- {
- $v_result = true;
-
- if (!$this->_isArchive()) {
- if (!$this->_openWrite()) {
- return false;
- }
- $this->_close();
- }
-
- if (!$this->_openAppend())
- return false;
-
- // Need to check the get back to the temporary file ? ....
- $v_result = $this->_addString($p_filename, $p_string);
-
- $this->_writeFooter();
-
- $this->_close();
-
- return $v_result;
- }
- // }}}
-
- // {{{ extractModify()
- /**
- * This method extract all the content of the archive in the directory
- * indicated by $p_path. When relevant the memorized path of the
- * files/dir can be modified by removing the $p_remove_path path at the
- * beginning of the file/dir path.
- * While extracting a file, if the directory path does not exists it is
- * created.
- * While extracting a file, if the file already exists it is replaced
- * without looking for last modification date.
- * While extracting a file, if the file already exists and is write
- * protected, the extraction is aborted.
- * While extracting a file, if a directory with the same name already
- * exists, the extraction is aborted.
- * While extracting a directory, if a file with the same name already
- * exists, the extraction is aborted.
- * While extracting a file/directory if the destination directory exist
- * and is write protected, or does not exist but can not be created,
- * the extraction is aborted.
- * If after extraction an extracted file does not show the correct
- * stored file size, the extraction is aborted.
- * When the extraction is aborted, a PEAR error text is set and false
- * is returned. However the result can be a partial extraction that may
- * need to be manually cleaned.
- *
- * @param string $p_path The path of the directory where the
- * files/dir need to by extracted.
- * @param string $p_remove_path Part of the memorized path that can be
- * removed if present at the beginning of
- * the file/dir path.
- * @return boolean true on success, false on error.
- * @access public
- * @see extractList()
- */
- function extractModify($p_path, $p_remove_path)
- {
- $v_result = true;
- $v_list_detail = array();
-
- if ($v_result = $this->_openRead()) {
- $v_result = $this->_extractList($p_path, $v_list_detail,
- "complete", 0, $p_remove_path);
- $this->_close();
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ extractInString()
- /**
- * This method extract from the archive one file identified by $p_filename.
- * The return value is a string with the file content, or NULL on error.
- * @param string $p_filename The path of the file to extract in a string.
- * @return a string with the file content or NULL.
- * @access public
- */
- function extractInString($p_filename)
- {
- if ($this->_openRead()) {
- $v_result = $this->_extractInString($p_filename);
- $this->_close();
- } else {
- $v_result = NULL;
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ extractList()
- /**
- * This method extract from the archive only the files indicated in the
- * $p_filelist. These files are extracted in the current directory or
- * in the directory indicated by the optional $p_path parameter.
- * If indicated the $p_remove_path can be used in the same way as it is
- * used in extractModify() method.
- * @param array $p_filelist An array of filenames and directory names,
- * or a single string with names separated
- * by a single blank space.
- * @param string $p_path The path of the directory where the
- * files/dir need to by extracted.
- * @param string $p_remove_path Part of the memorized path that can be
- * removed if present at the beginning of
- * the file/dir path.
- * @return true on success, false on error.
- * @access public
- * @see extractModify()
- */
- function extractList($p_filelist, $p_path='', $p_remove_path='')
- {
- $v_result = true;
- $v_list_detail = array();
-
- if (is_array($p_filelist))
- $v_list = $p_filelist;
- elseif (is_string($p_filelist))
- $v_list = explode($this->_separator, $p_filelist);
- else {
- $this->_error('Invalid string list');
- return false;
- }
-
- if ($v_result = $this->_openRead()) {
- $v_result = $this->_extractList($p_path, $v_list_detail, "partial",
- $v_list, $p_remove_path);
- $this->_close();
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ setAttribute()
- /**
- * This method set specific attributes of the archive. It uses a variable
- * list of parameters, in the format attribute code + attribute values :
- * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ',');
- * @param mixed $argv variable list of attributes and values
- * @return true on success, false on error.
- * @access public
- */
- function setAttribute()
- {
- $v_result = true;
-
- // ----- Get the number of variable list of arguments
- if (($v_size = func_num_args()) == 0) {
- return true;
- }
-
- // ----- Get the arguments
- $v_att_list = &func_get_args();
-
- // ----- Read the attributes
- $i=0;
- while ($i<$v_size) {
-
- // ----- Look for next option
- switch ($v_att_list[$i]) {
- // ----- Look for options that request a string value
- case ARCHIVE_TAR_ATT_SEPARATOR :
- // ----- Check the number of parameters
- if (($i+1) >= $v_size) {
- $this->_error('Invalid number of parameters for '
- .'attribute ARCHIVE_TAR_ATT_SEPARATOR');
- return false;
- }
-
- // ----- Get the value
- $this->_separator = $v_att_list[$i+1];
- $i++;
- break;
-
- default :
- $this->_error('Unknow attribute code '.$v_att_list[$i].'');
- return false;
- }
-
- // ----- Next attribute
- $i++;
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ _error()
- function _error($p_message)
- {
- // ----- To be completed
- $this->raiseError($p_message);
- }
- // }}}
-
- // {{{ _warning()
- function _warning($p_message)
- {
- // ----- To be completed
- $this->raiseError($p_message);
- }
- // }}}
-
- // {{{ _isArchive()
- function _isArchive($p_filename=NULL)
- {
- if ($p_filename == NULL) {
- $p_filename = $this->_tarname;
- }
- clearstatcache();
- return @is_file($p_filename);
- }
- // }}}
-
- // {{{ _openWrite()
- function _openWrite()
- {
- if ($this->_compress_type == 'gz')
- $this->_file = @gzopen($this->_tarname, "wb9");
- else if ($this->_compress_type == 'bz2')
- $this->_file = @bzopen($this->_tarname, "wb");
- else if ($this->_compress_type == 'none')
- $this->_file = @fopen($this->_tarname, "wb");
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- if ($this->_file == 0) {
- $this->_error('Unable to open in write mode \''
- .$this->_tarname.'\'');
- return false;
- }
-
- return true;
- }
- // }}}
-
- // {{{ _openRead()
- function _openRead()
- {
- if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') {
-
- // ----- Look if a local copy need to be done
- if ($this->_temp_tarname == '') {
- $this->_temp_tarname = uniqid('tar').'.tmp';
- if (!$v_file_from = @fopen($this->_tarname, 'rb')) {
- $this->_error('Unable to open in read mode \''
- .$this->_tarname.'\'');
- $this->_temp_tarname = '';
- return false;
- }
- if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) {
- $this->_error('Unable to open in write mode \''
- .$this->_temp_tarname.'\'');
- $this->_temp_tarname = '';
- return false;
- }
- while ($v_data = @fread($v_file_from, 1024))
- @fwrite($v_file_to, $v_data);
- @fclose($v_file_from);
- @fclose($v_file_to);
- }
-
- // ----- File to open if the local copy
- $v_filename = $this->_temp_tarname;
-
- } else
- // ----- File to open if the normal Tar file
- $v_filename = $this->_tarname;
-
- if ($this->_compress_type == 'gz')
- $this->_file = @gzopen($v_filename, "rb");
- else if ($this->_compress_type == 'bz2')
- $this->_file = @bzopen($v_filename, "rb");
- else if ($this->_compress_type == 'none')
- $this->_file = @fopen($v_filename, "rb");
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- if ($this->_file == 0) {
- $this->_error('Unable to open in read mode \''.$v_filename.'\'');
- return false;
- }
-
- return true;
- }
- // }}}
-
- // {{{ _openReadWrite()
- function _openReadWrite()
- {
- if ($this->_compress_type == 'gz')
- $this->_file = @gzopen($this->_tarname, "r+b");
- else if ($this->_compress_type == 'bz2')
- $this->_file = @bzopen($this->_tarname, "r+b");
- else if ($this->_compress_type == 'none')
- $this->_file = @fopen($this->_tarname, "r+b");
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- if ($this->_file == 0) {
- $this->_error('Unable to open in read/write mode \''
- .$this->_tarname.'\'');
- return false;
- }
-
- return true;
- }
- // }}}
-
- // {{{ _close()
- function _close()
- {
- //if (isset($this->_file)) {
- if (is_resource($this->_file)) {
- if ($this->_compress_type == 'gz')
- @gzclose($this->_file);
- else if ($this->_compress_type == 'bz2')
- @bzclose($this->_file);
- else if ($this->_compress_type == 'none')
- @fclose($this->_file);
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- $this->_file = 0;
- }
-
- // ----- Look if a local copy need to be erase
- // Note that it might be interesting to keep the url for a time : ToDo
- if ($this->_temp_tarname != '') {
- @unlink($this->_temp_tarname);
- $this->_temp_tarname = '';
- }
-
- return true;
- }
- // }}}
-
- // {{{ _cleanFile()
- function _cleanFile()
- {
- $this->_close();
-
- // ----- Look for a local copy
- if ($this->_temp_tarname != '') {
- // ----- Remove the local copy but not the remote tarname
- @unlink($this->_temp_tarname);
- $this->_temp_tarname = '';
- } else {
- // ----- Remove the local tarname file
- @unlink($this->_tarname);
- }
- $this->_tarname = '';
-
- return true;
- }
- // }}}
-
- // {{{ _writeBlock()
- function _writeBlock($p_binary_data, $p_len=null)
- {
- if (is_resource($this->_file)) {
- if ($p_len === null) {
- if ($this->_compress_type == 'gz')
- @gzputs($this->_file, $p_binary_data);
- else if ($this->_compress_type == 'bz2')
- @bzwrite($this->_file, $p_binary_data);
- else if ($this->_compress_type == 'none')
- @fputs($this->_file, $p_binary_data);
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
- } else {
- if ($this->_compress_type == 'gz')
- @gzputs($this->_file, $p_binary_data, $p_len);
- else if ($this->_compress_type == 'bz2')
- @bzwrite($this->_file, $p_binary_data, $p_len);
- else if ($this->_compress_type == 'none')
- @fputs($this->_file, $p_binary_data, $p_len);
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- }
- }
- return true;
- }
- // }}}
-
- // {{{ _readBlock()
- function _readBlock()
- {
- $v_block = null;
- if (is_resource($this->_file)) {
- if ($this->_compress_type == 'gz')
- $v_block = @gzread($this->_file, 512);
- else if ($this->_compress_type == 'bz2')
- $v_block = @bzread($this->_file, 512);
- else if ($this->_compress_type == 'none')
- $v_block = @fread($this->_file, 512);
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
- }
- return $v_block;
- }
- // }}}
-
- // {{{ _jumpBlock()
- function _jumpBlock($p_len=null)
- {
- if (is_resource($this->_file)) {
- if ($p_len === null)
- $p_len = 1;
-
- if ($this->_compress_type == 'gz') {
- @gzseek($this->_file, gztell($this->_file)+($p_len*512));
- }
- else if ($this->_compress_type == 'bz2') {
- // ----- Replace missing bztell() and bzseek()
- for ($i=0; $i<$p_len; $i++)
- $this->_readBlock();
- } else if ($this->_compress_type == 'none')
- @fseek($this->_file, ftell($this->_file)+($p_len*512));
- else
- $this->_error('Unknown or missing compression type ('
- .$this->_compress_type.')');
-
- }
- return true;
- }
- // }}}
-
- // {{{ _writeFooter()
- function _writeFooter()
- {
- if (is_resource($this->_file)) {
- // ----- Write the last 0 filled block for end of archive
- $v_binary_data = pack("a512", '');
- $this->_writeBlock($v_binary_data);
- $this->_writeBlock($v_binary_data);
- }
- return true;
- }
- // }}}
-
- // {{{ _addList()
- function _addList($p_list, $p_add_dir, $p_remove_dir)
- {
- $v_result=true;
- $v_header = array();
-
- // ----- Remove potential windows directory separator
- $p_add_dir = $this->_translateWinPath($p_add_dir);
- $p_remove_dir = $this->_translateWinPath($p_remove_dir, false);
-
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if (sizeof($p_list) == 0)
- return true;
-
- foreach ($p_list as $v_filename) {
- if (!$v_result) {
- break;
- }
-
- // ----- Skip the current tar name
- if ($v_filename == $this->_tarname)
- continue;
-
- if ($v_filename == '')
- continue;
-
- if (!file_exists($v_filename)) {
- $this->_warning("File '$v_filename' does not exist");
- continue;
- }
-
- // ----- Add the file or directory header
- if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir))
- return false;
-
- if (@is_dir($v_filename)) {
- if (!($p_hdir = opendir($v_filename))) {
- $this->_warning("Directory '$v_filename' can not be read");
- continue;
- }
- while (false !== ($p_hitem = readdir($p_hdir))) {
- if (($p_hitem != '.') && ($p_hitem != '..')) {
- if ($v_filename != ".")
- $p_temp_list[0] = $v_filename.'/'.$p_hitem;
- else
- $p_temp_list[0] = $p_hitem;
-
- $v_result = $this->_addList($p_temp_list,
- $p_add_dir,
- $p_remove_dir);
- }
- }
-
- unset($p_temp_list);
- unset($p_hdir);
- unset($p_hitem);
- }
- }
-
- return $v_result;
- }
- // }}}
-
- // {{{ _addFile()
- function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir)
- {
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if ($p_filename == '') {
- $this->_error('Invalid file name');
- return false;
- }
-
- // ----- Calculate the stored filename
- $p_filename = $this->_translateWinPath($p_filename, false);;
- $v_stored_filename = $p_filename;
- if (strcmp($p_filename, $p_remove_dir) == 0) {
- return true;
- }
- if ($p_remove_dir != '') {
- if (substr($p_remove_dir, -1) != '/')
- $p_remove_dir .= '/';
-
- if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
- $v_stored_filename = substr($p_filename, strlen($p_remove_dir));
- }
- $v_stored_filename = $this->_translateWinPath($v_stored_filename);
- if ($p_add_dir != '') {
- if (substr($p_add_dir, -1) == '/')
- $v_stored_filename = $p_add_dir.$v_stored_filename;
- else
- $v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
- }
-
- $v_stored_filename = $this->_pathReduction($v_stored_filename);
-
- if ($this->_isArchive($p_filename)) {
- if (($v_file = @fopen($p_filename, "rb")) == 0) {
- $this->_warning("Unable to open file '".$p_filename
- ."' in binary read mode");
- return true;
- }
-
- if (!$this->_writeHeader($p_filename, $v_stored_filename))
- return false;
-
- while (($v_buffer = fread($v_file, 512)) != '') {
- $v_binary_data = pack("a512", "$v_buffer");
- $this->_writeBlock($v_binary_data);
- }
-
- fclose($v_file);
-
- } else {
- // ----- Only header for dir
- if (!$this->_writeHeader($p_filename, $v_stored_filename))
- return false;
- }
-
- return true;
- }
- // }}}
-
- // {{{ _addString()
- function _addString($p_filename, $p_string)
- {
- if (!$this->_file) {
- $this->_error('Invalid file descriptor');
- return false;
- }
-
- if ($p_filename == '') {
- $this->_error('Invalid file name');
- return false;
- }
-
- // ----- Calculate the stored filename
- $p_filename = $this->_translateWinPath($p_filename, false);;
-
- if (!$this->_writeHeaderBlock($p_filename, strlen($p_string),
- time(), 384, "", 0, 0))
- return false;
-
- $i=0;
- while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') {
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- }
-
- return true;
- }
- // }}}
-
- // {{{ _writeHeader()
- function _writeHeader($p_filename, $p_stored_filename)
- {
- if ($p_stored_filename == '')
- $p_stored_filename = $p_filename;
- $v_reduce_filename = $this->_pathReduction($p_stored_filename);
-
- if (strlen($v_reduce_filename) > 99) {
- if (!$this->_writeLongHeader($v_reduce_filename))
- return false;
- }
-
- $v_info = stat($p_filename);
- $v_uid = sprintf("%6s ", DecOct($v_info[4]));
- $v_gid = sprintf("%6s ", DecOct($v_info[5]));
- $v_perms = sprintf("%6s ", DecOct(fileperms($p_filename)));
-
- $v_mtime = sprintf("%11s", DecOct(filemtime($p_filename)));
-
- if (@is_dir($p_filename)) {
- $v_typeflag = "5";
- $v_size = sprintf("%11s ", DecOct(0));
- } else {
- $v_typeflag = '';
- clearstatcache();
- $v_size = sprintf("%11s ", DecOct(filesize($p_filename)));
- }
-
- $v_linkname = '';
-
- $v_magic = '';
-
- $v_version = '';
-
- $v_uname = '';
-
- $v_gname = '';
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack("a100a8a8a8a12A12",
- $v_reduce_filename, $v_perms, $v_uid,
- $v_gid, $v_size, $v_mtime);
- $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
- $v_typeflag, $v_linkname, $v_magic,
- $v_version, $v_uname, $v_gname,
- $v_devmajor, $v_devminor, $v_prefix, '');
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i=0; $i<148; $i++)
- $v_checksum += ord(substr($v_binary_data_first,$i,1));
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i=148; $i<156; $i++)
- $v_checksum += ord(' ');
- // ..... Last part of the header
- for ($i=156, $j=0; $i<512; $i++, $j++)
- $v_checksum += ord(substr($v_binary_data_last,$j,1));
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%6s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- return true;
- }
- // }}}
-
- // {{{ _writeHeaderBlock()
- function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0,
- $p_type='', $p_uid=0, $p_gid=0)
- {
- $p_filename = $this->_pathReduction($p_filename);
-
- if (strlen($p_filename) > 99) {
- if (!$this->_writeLongHeader($p_filename))
- return false;
- }
-
- if ($p_type == "5") {
- $v_size = sprintf("%11s ", DecOct(0));
- } else {
- $v_size = sprintf("%11s ", DecOct($p_size));
- }
-
- $v_uid = sprintf("%6s ", DecOct($p_uid));
- $v_gid = sprintf("%6s ", DecOct($p_gid));
- $v_perms = sprintf("%6s ", DecOct($p_perms));
-
- $v_mtime = sprintf("%11s", DecOct($p_mtime));
-
- $v_linkname = '';
-
- $v_magic = '';
-
- $v_version = '';
-
- $v_uname = '';
-
- $v_gname = '';
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack("a100a8a8a8a12A12",
- $p_filename, $v_perms, $v_uid, $v_gid,
- $v_size, $v_mtime);
- $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
- $p_type, $v_linkname, $v_magic,
- $v_version, $v_uname, $v_gname,
- $v_devmajor, $v_devminor, $v_prefix, '');
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i=0; $i<148; $i++)
- $v_checksum += ord(substr($v_binary_data_first,$i,1));
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i=148; $i<156; $i++)
- $v_checksum += ord(' ');
- // ..... Last part of the header
- for ($i=156, $j=0; $i<512; $i++, $j++)
- $v_checksum += ord(substr($v_binary_data_last,$j,1));
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%6s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- return true;
- }
- // }}}
-
- // {{{ _writeLongHeader()
- function _writeLongHeader($p_filename)
- {
- $v_size = sprintf("%11s ", DecOct(strlen($p_filename)));
-
- $v_typeflag = 'L';
-
- $v_linkname = '';
-
- $v_magic = '';
-
- $v_version = '';
-
- $v_uname = '';
-
- $v_gname = '';
-
- $v_devmajor = '';
-
- $v_devminor = '';
-
- $v_prefix = '';
-
- $v_binary_data_first = pack("a100a8a8a8a12A12",
- '././@LongLink', 0, 0, 0, $v_size, 0);
- $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
- $v_typeflag, $v_linkname, $v_magic,
- $v_version, $v_uname, $v_gname,
- $v_devmajor, $v_devminor, $v_prefix, '');
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i=0; $i<148; $i++)
- $v_checksum += ord(substr($v_binary_data_first,$i,1));
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i=148; $i<156; $i++)
- $v_checksum += ord(' ');
- // ..... Last part of the header
- for ($i=156, $j=0; $i<512; $i++, $j++)
- $v_checksum += ord(substr($v_binary_data_last,$j,1));
-
- // ----- Write the first 148 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_first, 148);
-
- // ----- Write the calculated checksum
- $v_checksum = sprintf("%6s ", DecOct($v_checksum));
- $v_binary_data = pack("a8", $v_checksum);
- $this->_writeBlock($v_binary_data, 8);
-
- // ----- Write the last 356 bytes of the header in the archive
- $this->_writeBlock($v_binary_data_last, 356);
-
- // ----- Write the filename as content of the block
- $i=0;
- while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') {
- $v_binary_data = pack("a512", "$v_buffer");
- $this->_writeBlock($v_binary_data);
- }
-
- return true;
- }
- // }}}
-
- // {{{ _readHeader()
- function _readHeader($v_binary_data, &$v_header)
- {
- if (strlen($v_binary_data)==0) {
- $v_header['filename'] = '';
- return true;
- }
-
- if (strlen($v_binary_data) != 512) {
- $v_header['filename'] = '';
- $this->_error('Invalid block size : '.strlen($v_binary_data));
- return false;
- }
-
- // ----- Calculate the checksum
- $v_checksum = 0;
- // ..... First part of the header
- for ($i=0; $i<148; $i++)
- $v_checksum+=ord(substr($v_binary_data,$i,1));
- // ..... Ignore the checksum value and replace it by ' ' (space)
- for ($i=148; $i<156; $i++)
- $v_checksum += ord(' ');
- // ..... Last part of the header
- for ($i=156; $i<512; $i++)
- $v_checksum+=ord(substr($v_binary_data,$i,1));
-
- $v_data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/"
- ."a8checksum/a1typeflag/a100link/a6magic/a2version/"
- ."a32uname/a32gname/a8devmajor/a8devminor",
- $v_binary_data);
-
- // ----- Extract the checksum
- $v_header['checksum'] = OctDec(trim($v_data['checksum']));
- if ($v_header['checksum'] != $v_checksum) {
- $v_header['filename'] = '';
-
- // ----- Look for last block (empty block)
- if (($v_checksum == 256) && ($v_header['checksum'] == 0))
- return true;
-
- $this->_error('Invalid checksum for file "'.$v_data['filename']
- .'" : '.$v_checksum.' calculated, '
- .$v_header['checksum'].' expected');
- return false;
- }
-
- // ----- Extract the properties
- $v_header['filename'] = trim($v_data['filename']);
- $v_header['mode'] = OctDec(trim($v_data['mode']));
- $v_header['uid'] = OctDec(trim($v_data['uid']));
- $v_header['gid'] = OctDec(trim($v_data['gid']));
- $v_header['size'] = OctDec(trim($v_data['size']));
- $v_header['mtime'] = OctDec(trim($v_data['mtime']));
- if (($v_header['typeflag'] = $v_data['typeflag']) == "5") {
- $v_header['size'] = 0;
- }
- /* ----- All these fields are removed form the header because
- they do not carry interesting info
- $v_header[link] = trim($v_data[link]);
- $v_header[magic] = trim($v_data[magic]);
- $v_header[version] = trim($v_data[version]);
- $v_header[uname] = trim($v_data[uname]);
- $v_header[gname] = trim($v_data[gname]);
- $v_header[devmajor] = trim($v_data[devmajor]);
- $v_header[devminor] = trim($v_data[devminor]);
- */
-
- return true;
- }
- // }}}
-
- // {{{ _readLongHeader()
- function _readLongHeader(&$v_header)
- {
- $v_filename = '';
- $n = floor($v_header['size']/512);
- for ($i=0; $i<$n; $i++) {
- $v_content = $this->_readBlock();
- $v_filename .= $v_content;
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- $v_filename .= $v_content;
- }
-
- // ----- Read the next header
- $v_binary_data = $this->_readBlock();
-
- if (!$this->_readHeader($v_binary_data, $v_header))
- return false;
-
- $v_header['filename'] = $v_filename;
-
- return true;
- }
- // }}}
-
- // {{{ _extractInString()
- /**
- * This method extract from the archive one file identified by $p_filename.
- * The return value is a string with the file content, or NULL on error.
- * @param string $p_filename The path of the file to extract in a string.
- * @return a string with the file content or NULL.
- * @access private
- */
- function _extractInString($p_filename)
- {
- $v_result_str = "";
-
- While (strlen($v_binary_data = $this->_readBlock()) != 0)
- {
- if (!$this->_readHeader($v_binary_data, $v_header))
- return NULL;
-
- if ($v_header['filename'] == '')
- continue;
-
- // ----- Look for long filename
- if ($v_header['typeflag'] == 'L') {
- if (!$this->_readLongHeader($v_header))
- return NULL;
- }
-
- if ($v_header['filename'] == $p_filename) {
- if ($v_header['typeflag'] == "5") {
- $this->_error('Unable to extract in string a directory '
- .'entry {'.$v_header['filename'].'}');
- return NULL;
- } else {
- $n = floor($v_header['size']/512);
- for ($i=0; $i<$n; $i++) {
- $v_result_str .= $this->_readBlock();
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- $v_result_str .= substr($v_content, 0,
- ($v_header['size'] % 512));
- }
- return $v_result_str;
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size']/512)));
- }
- }
-
- return NULL;
- }
- // }}}
-
- // {{{ _extractList()
- function _extractList($p_path, &$p_list_detail, $p_mode,
- $p_file_list, $p_remove_path)
- {
- $v_result=true;
- $v_nb = 0;
- $v_extract_all = true;
- $v_listing = false;
-
- $p_path = $this->_translateWinPath($p_path, false);
- if ($p_path == '' || (substr($p_path, 0, 1) != '/'
- && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) {
- $p_path = "./".$p_path;
- }
- $p_remove_path = $this->_translateWinPath($p_remove_path);
-
- // ----- Look for path to remove format (should end by /)
- if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/'))
- $p_remove_path .= '/';
- $p_remove_path_size = strlen($p_remove_path);
-
- switch ($p_mode) {
- case "complete" :
- $v_extract_all = TRUE;
- $v_listing = FALSE;
- break;
- case "partial" :
- $v_extract_all = FALSE;
- $v_listing = FALSE;
- break;
- case "list" :
- $v_extract_all = FALSE;
- $v_listing = TRUE;
- break;
- default :
- $this->_error('Invalid extract mode ('.$p_mode.')');
- return false;
- }
-
- clearstatcache();
-
- while (strlen($v_binary_data = $this->_readBlock()) != 0)
- {
- $v_extract_file = FALSE;
- $v_extraction_stopped = 0;
-
- if (!$this->_readHeader($v_binary_data, $v_header))
- return false;
-
- if ($v_header['filename'] == '') {
- continue;
- }
-
- // ----- Look for long filename
- if ($v_header['typeflag'] == 'L') {
- if (!$this->_readLongHeader($v_header))
- return false;
- }
-
- if ((!$v_extract_all) && (is_array($p_file_list))) {
- // ----- By default no unzip if the file is not found
- $v_extract_file = false;
-
- for ($i=0; $i<sizeof($p_file_list); $i++) {
- // ----- Look if it is a directory
- if (substr($p_file_list[$i], -1) == '/') {
- // ----- Look if the directory is in the filename path
- if ((strlen($v_header['filename']) > strlen($p_file_list[$i]))
- && (substr($v_header['filename'], 0, strlen($p_file_list[$i]))
- == $p_file_list[$i])) {
- $v_extract_file = TRUE;
- break;
- }
- }
-
- // ----- It is a file, so compare the file names
- elseif ($p_file_list[$i] == $v_header['filename']) {
- $v_extract_file = TRUE;
- break;
- }
- }
- } else {
- $v_extract_file = TRUE;
- }
-
- // ----- Look if this file need to be extracted
- if (($v_extract_file) && (!$v_listing))
- {
- if (($p_remove_path != '')
- && (substr($v_header['filename'], 0, $p_remove_path_size)
- == $p_remove_path))
- $v_header['filename'] = substr($v_header['filename'],
- $p_remove_path_size);
- if (($p_path != './') && ($p_path != '/')) {
- while (substr($p_path, -1) == '/')
- $p_path = substr($p_path, 0, strlen($p_path)-1);
-
- if (substr($v_header['filename'], 0, 1) == '/')
- $v_header['filename'] = $p_path.$v_header['filename'];
- else
- $v_header['filename'] = $p_path.'/'.$v_header['filename'];
- }
- if (file_exists($v_header['filename'])) {
- if ( (@is_dir($v_header['filename']))
- && ($v_header['typeflag'] == '')) {
- $this->_error('File '.$v_header['filename']
- .' already exists as a directory');
- return false;
- }
- if ( ($this->_isArchive($v_header['filename']))
- && ($v_header['typeflag'] == "5")) {
- $this->_error('Directory '.$v_header['filename']
- .' already exists as a file');
- return false;
- }
- if (!is_writeable($v_header['filename'])) {
- $this->_error('File '.$v_header['filename']
- .' already exists and is write protected');
- return false;
- }
- if (filemtime($v_header['filename']) > $v_header['mtime']) {
- // To be completed : An error or silent no replace ?
- }
- }
-
- // ----- Check the directory availability and create it if necessary
- elseif (($v_result
- = $this->_dirCheck(($v_header['typeflag'] == "5"
- ?$v_header['filename']
- :dirname($v_header['filename'])))) != 1) {
- $this->_error('Unable to create path for '.$v_header['filename']);
- return false;
- }
-
- if ($v_extract_file) {
- if ($v_header['typeflag'] == "5") {
- if (!@file_exists($v_header['filename'])) {
- if (!@mkdir($v_header['filename'], 0777)) {
- $this->_error('Unable to create directory {'
- .$v_header['filename'].'}');
- return false;
- }
- }
- } else {
- if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) {
- $this->_error('Error while opening {'.$v_header['filename']
- .'} in write binary mode');
- return false;
- } else {
- $n = floor($v_header['size']/512);
- for ($i=0; $i<$n; $i++) {
- $v_content = $this->_readBlock();
- fwrite($v_dest_file, $v_content, 512);
- }
- if (($v_header['size'] % 512) != 0) {
- $v_content = $this->_readBlock();
- fwrite($v_dest_file, $v_content, ($v_header['size'] % 512));
- }
-
- @fclose($v_dest_file);
-
- // ----- Change the file mode, mtime
- @touch($v_header['filename'], $v_header['mtime']);
- if ($v_header['mode'] & 0111) {
- // make file executable, obey umask
- $mode = fileperms($v_header['filename']) | (~umask() & 0111);
- @chmod($v_header['filename'], $mode);
- }
- }
-
- // ----- Check the file size
- clearstatcache();
- if (filesize($v_header['filename']) != $v_header['size']) {
- $this->_error('Extracted file '.$v_header['filename']
- .' does not have the correct file size \''
- .filesize($v_header['filename'])
- .'\' ('.$v_header['size']
- .' expected). Archive may be corrupted.');
- return false;
- }
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size']/512)));
- }
- } else {
- $this->_jumpBlock(ceil(($v_header['size']/512)));
- }
-
- /* TBC : Seems to be unused ...
- if ($this->_compress)
- $v_end_of_file = @gzeof($this->_file);
- else
- $v_end_of_file = @feof($this->_file);
- */
-
- if ($v_listing || $v_extract_file || $v_extraction_stopped) {
- // ----- Log extracted files
- if (($v_file_dir = dirname($v_header['filename']))
- == $v_header['filename'])
- $v_file_dir = '';
- if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == ''))
- $v_file_dir = '/';
-
- $p_list_detail[$v_nb++] = $v_header;
- }
- }
-
- return true;
- }
- // }}}
-
- // {{{ _openAppend()
- function _openAppend()
- {
- if (filesize($this->_tarname) == 0)
- return $this->_openWrite();
-
- if ($this->_compress) {
- $this->_close();
-
- if (!@rename($this->_tarname, $this->_tarname.".tmp")) {
- $this->_error('Error while renaming \''.$this->_tarname
- .'\' to temporary file \''.$this->_tarname
- .'.tmp\'');
- return false;
- }
-
- if ($this->_compress_type == 'gz')
- $v_temp_tar = @gzopen($this->_tarname.".tmp", "rb");
- elseif ($this->_compress_type == 'bz2')
- $v_temp_tar = @bzopen($this->_tarname.".tmp", "rb");
-
- if ($v_temp_tar == 0) {
- $this->_error('Unable to open file \''.$this->_tarname
- .'.tmp\' in binary read mode');
- @rename($this->_tarname.".tmp", $this->_tarname);
- return false;
- }
-
- if (!$this->_openWrite()) {
- @rename($this->_tarname.".tmp", $this->_tarname);
- return false;
- }
-
- if ($this->_compress_type == 'gz') {
- $v_buffer = @gzread($v_temp_tar, 512);
-
- // ----- Read the following blocks but not the last one
- if (!@gzeof($v_temp_tar)) {
- do{
- $v_binary_data = pack("a512", $v_buffer);
- $this->_writeBlock($v_binary_data);
- $v_buffer = @gzread($v_temp_tar, 512);
-
- } while (!@gzeof($v_temp_tar));
- }
-
- @gzclose($v_temp_tar);
- }
- elseif ($this->_compress_type == 'bz2') {
- $v_buffered_lines = array();
- $v_buffered_lines[] = @bzread($v_temp_tar, 512);
-
- // ----- Read the following blocks but not the last one
- while (strlen($v_buffered_lines[]
- = @bzread($v_temp_tar, 512)) > 0) {
- $v_binary_data = pack("a512",
- array_shift($v_buffered_lines));
- $this->_writeBlock($v_binary_data);
- }
-
- @bzclose($v_temp_tar);
- }
-
- if (!@unlink($this->_tarname.".tmp")) {
- $this->_error('Error while deleting temporary file \''
- .$this->_tarname.'.tmp\'');
- }
-
- } else {
- // ----- For not compressed tar, just add files before the last
- // 512 bytes block
- if (!$this->_openReadWrite())
- return false;
-
- clearstatcache();
- $v_size = filesize($this->_tarname);
- fseek($this->_file, $v_size-512);
- }
-
- return true;
- }
- // }}}
-
- // {{{ _append()
- function _append($p_filelist, $p_add_dir='', $p_remove_dir='')
- {
- if (!$this->_openAppend())
- return false;
-
- if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir))
- $this->_writeFooter();
-
- $this->_close();
-
- return true;
- }
- // }}}
-
- // {{{ _dirCheck()
-
- /**
- * Check if a directory exists and create it (including parent
- * dirs) if not.
- *
- * @param string $p_dir directory to check
- *
- * @return bool TRUE if the directory exists or was created
- */
- function _dirCheck($p_dir)
- {
- if ((@is_dir($p_dir)) || ($p_dir == ''))
- return true;
-
- $p_parent_dir = dirname($p_dir);
-
- if (($p_parent_dir != $p_dir) &&
- ($p_parent_dir != '') &&
- (!$this->_dirCheck($p_parent_dir)))
- return false;
-
- if (!@mkdir($p_dir, 0777)) {
- $this->_error("Unable to create directory '$p_dir'");
- return false;
- }
-
- return true;
- }
-
- // }}}
-
- // {{{ _pathReduction()
-
- /**
- * Compress path by changing for example "/dir/foo/../bar" to "/dir/bar",
- * rand emove double slashes.
- *
- * @param string $p_dir path to reduce
- *
- * @return string reduced path
- *
- * @access private
- *
- */
- function _pathReduction($p_dir)
- {
- $v_result = '';
-
- // ----- Look for not empty path
- if ($p_dir != '') {
- // ----- Explode path by directory names
- $v_list = explode('/', $p_dir);
-
- // ----- Study directories from last to first
- for ($i=sizeof($v_list)-1; $i>=0; $i--) {
- // ----- Look for current path
- if ($v_list[$i] == ".") {
- // ----- Ignore this directory
- // Should be the first $i=0, but no check is done
- }
- else if ($v_list[$i] == "..") {
- // ----- Ignore it and ignore the $i-1
- $i--;
- }
- else if ( ($v_list[$i] == '')
- && ($i!=(sizeof($v_list)-1))
- && ($i!=0)) {
- // ----- Ignore only the double '//' in path,
- // but not the first and last /
- } else {
- $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/'
- .$v_result:'');
- }
- }
- }
- $v_result = strtr($v_result, '\\', '/');
- return $v_result;
- }
-
- // }}}
-
- // {{{ _translateWinPath()
- function _translateWinPath($p_path, $p_remove_disk_letter=true)
- {
- if (defined('OS_WINDOWS') && OS_WINDOWS) {
- // ----- Look for potential disk letter
- if ( ($p_remove_disk_letter)
- && (($v_position = strpos($p_path, ':')) != false)) {
- $p_path = substr($p_path, $v_position+1);
- }
- // ----- Change potential windows directory separator
- if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) {
- $p_path = strtr($p_path, '\\', '/');
- }
- }
- return $p_path;
- }
- // }}}
-
-}
-?>
-ipÌ+
+__HALT_COMPILER(); 
+
+
+
+
+
+
+/* vim: set ts=4 sw=4: */
+// +----------------------------------------------------------------------+
+// | PHP Version 4 |
+// +----------------------------------------------------------------------+
+// | Copyright (c) 1997-2003 The PHP Group |
+// +----------------------------------------------------------------------+
+// | This source file is subject to version 3.0 of the PHP license, |
+// | that is bundled with this package in the file LICENSE, and is |
+// | available through the world-wide-web at the following url: |
+// | http://www.php.net/license/3_0.txt. |
+// | If you did not receive a copy of the PHP license and are unable to |
+// | obtain it through the world-wide-web, please send a note to |
+// | license@php.net so we can mail you a copy immediately. |
+// +----------------------------------------------------------------------+
+// | Author: Vincent Blavet <vincent@phpconcept.net> |
+// +----------------------------------------------------------------------+
+//
+// $Id: Tar.php,v 1.29 2005/03/17 21:02:31 vblavet Exp $
+
+require_once 'phar://install-pear-nozlib.phar/PEAR.php';
+
+
+define ('ARCHIVE_TAR_ATT_SEPARATOR', 90001);
+
+/**
+* Creates a (compressed) Tar archive
+*
+* @author Vincent Blavet <vincent@phpconcept.net>
+* @version $Revision: 1.29 $
+* @package Archive
+*/
+class Archive_Tar extends PEAR
+{
+ /**
+ * @var string Name of the Tar
+ */
+ var $_tarname='';
+
+ /**
+ * @var boolean if true, the Tar file will be gzipped
+ */
+ var $_compress=false;
+
+ /**
+ * @var string Type of compression : 'none', 'gz' or 'bz2'
+ */
+ var $_compress_type='none';
+
+ /**
+ * @var string Explode separator
+ */
+ var $_separator=' ';
+
+ /**
+ * @var file descriptor
+ */
+ var $_file=0;
+
+ /**
+ * @var string Local Tar name of a remote Tar (http:// or ftp://)
+ */
+ var $_temp_tarname='';
+
+ // {{{ constructor
+ /**
+ * Archive_Tar Class constructor. This flavour of the constructor only
+ * declare a new Archive_Tar object, identifying it by the name of the
+ * tar file.
+ * If the compress argument is set the tar will be read or created as a
+ * gzip or bz2 compressed TAR file.
+ *
+ * @param string $p_tarname The name of the tar archive to create
+ * @param string $p_compress can be null, 'gz' or 'bz2'. This
+ * parameter indicates if gzip or bz2 compression
+ * is required. For compatibility reason the
+ * boolean value 'true' means 'gz'.
+ * @access public
+ */
+ function Archive_Tar($p_tarname, $p_compress = null)
+ {
+ $this->PEAR();
+ $this->_compress = false;
+ $this->_compress_type = 'none';
+ if (($p_compress === null) || ($p_compress == '')) {
+ if (@file_exists($p_tarname)) {
+ if ($fp = @fopen($p_tarname, "rb")) {
+ // look for gzip magic cookie
+ $data = fread($fp, 2);
+ fclose($fp);
+ if ($data == "\37\213") {
+ $this->_compress = true;
+ $this->_compress_type = 'gz';
+ // No sure it's enought for a magic code ....
+ } elseif ($data == "BZ") {
+ $this->_compress = true;
+ $this->_compress_type = 'bz2';
+ }
+ }
+ } else {
+ // probably a remote file or some file accessible
+ // through a stream interface
+ if (substr($p_tarname, -2) == 'gz') {
+ $this->_compress = true;
+ $this->_compress_type = 'gz';
+ } elseif ((substr($p_tarname, -3) == 'bz2') ||
+ (substr($p_tarname, -2) == 'bz')) {
+ $this->_compress = true;
+ $this->_compress_type = 'bz2';
+ }
+ }
+ } else {
+ if (($p_compress === true) || ($p_compress == 'gz')) {
+ $this->_compress = true;
+ $this->_compress_type = 'gz';
+ } else if ($p_compress == 'bz2') {
+ $this->_compress = true;
+ $this->_compress_type = 'bz2';
+ } else {
+ die("Unsupported compression type '$p_compress'\n".
+ "Supported types are 'gz' and 'bz2'.\n");
+ return false;
+ }
+ }
+ $this->_tarname = $p_tarname;
+ if ($this->_compress) { // assert zlib or bz2 extension support
+ if ($this->_compress_type == 'gz')
+ $extname = 'zlib';
+ else if ($this->_compress_type == 'bz2')
+ $extname = 'bz2';
+
+ if (!extension_loaded($extname)) {
+ PEAR::loadExtension($extname);
+ }
+ if (!extension_loaded($extname)) {
+ die("The extension '$extname' couldn't be found.\n".
+ "Please make sure your version of PHP was built ".
+ "with '$extname' support.\n");
+ return false;
+ }
+ }
+ }
+ // }}}
+
+ // {{{ destructor
+ function _Archive_Tar()
+ {
+ $this->_close();
+ // ----- Look for a local copy to delete
+ if ($this->_temp_tarname != '')
+ @unlink($this->_temp_tarname);
+ $this->_PEAR();
+ }
+ // }}}
+
+ // {{{ create()
+ /**
+ * This method creates the archive file and add the files / directories
+ * that are listed in $p_filelist.
+ * If a file with the same name exist and is writable, it is replaced
+ * by the new tar.
+ * The method return false and a PEAR error text.
+ * The $p_filelist parameter can be an array of string, each string
+ * representing a filename or a directory name with their path if
+ * needed. It can also be a single string with names separated by a
+ * single blank.
+ * For each directory added in the archive, the files and
+ * sub-directories are also added.
+ * See also createModify() method for more details.
+ *
+ * @param array $p_filelist An array of filenames and directory names, or a
+ * single string with names separated by a single
+ * blank space.
+ * @return true on success, false on error.
+ * @see createModify()
+ * @access public
+ */
+ function create($p_filelist)
+ {
+ return $this->createModify($p_filelist, '', '');
+ }
+ // }}}
+
+ // {{{ add()
+ /**
+ * This method add the files / directories that are listed in $p_filelist in
+ * the archive. If the archive does not exist it is created.
+ * The method return false and a PEAR error text.
+ * The files and directories listed are only added at the end of the archive,
+ * even if a file with the same name is already archived.
+ * See also createModify() method for more details.
+ *
+ * @param array $p_filelist An array of filenames and directory names, or a
+ * single string with names separated by a single
+ * blank space.
+ * @return true on success, false on error.
+ * @see createModify()
+ * @access public
+ */
+ function add($p_filelist)
+ {
+ return $this->addModify($p_filelist, '', '');
+ }
+ // }}}
+
+ // {{{ extract()
+ function extract($p_path='')
+ {
+ return $this->extractModify($p_path, '');
+ }
+ // }}}
+
+ // {{{ listContent()
+ function listContent()
+ {
+ $v_list_detail = array();
+
+ if ($this->_openRead()) {
+ if (!$this->_extractList('', $v_list_detail, "list", '', '')) {
+ unset($v_list_detail);
+ $v_list_detail = 0;
+ }
+ $this->_close();
+ }
+
+ return $v_list_detail;
+ }
+ // }}}
+
+ // {{{ createModify()
+ /**
+ * This method creates the archive file and add the files / directories
+ * that are listed in $p_filelist.
+ * If the file already exists and is writable, it is replaced by the
+ * new tar. It is a create and not an add. If the file exists and is
+ * read-only or is a directory it is not replaced. The method return
+ * false and a PEAR error text.
+ * The $p_filelist parameter can be an array of string, each string
+ * representing a filename or a directory name with their path if
+ * needed. It can also be a single string with names separated by a
+ * single blank.
+ * The path indicated in $p_remove_dir will be removed from the
+ * memorized path of each file / directory listed when this path
+ * exists. By default nothing is removed (empty path '')
+ * The path indicated in $p_add_dir will be added at the beginning of
+ * the memorized path of each file / directory listed. However it can
+ * be set to empty ''. The adding of a path is done after the removing
+ * of path.
+ * The path add/remove ability enables the user to prepare an archive
+ * for extraction in a different path than the origin files are.
+ * See also addModify() method for file adding properties.
+ *
+ * @param array $p_filelist An array of filenames and directory names,
+ * or a single string with names separated by
+ * a single blank space.
+ * @param string $p_add_dir A string which contains a path to be added
+ * to the memorized path of each element in
+ * the list.
+ * @param string $p_remove_dir A string which contains a path to be
+ * removed from the memorized path of each
+ * element in the list, when relevant.
+ * @return boolean true on success, false on error.
+ * @access public
+ * @see addModify()
+ */
+ function createModify($p_filelist, $p_add_dir, $p_remove_dir='')
+ {
+ $v_result = true;
+
+ if (!$this->_openWrite())
+ return false;
+
+ if ($p_filelist != '') {
+ if (is_array($p_filelist))
+ $v_list = $p_filelist;
+ elseif (is_string($p_filelist))
+ $v_list = explode($this->_separator, $p_filelist);
+ else {
+ $this->_cleanFile();
+ $this->_error('Invalid file list');
+ return false;
+ }
+
+ $v_result = $this->_addList($v_list, $p_add_dir, $p_remove_dir);
+ }
+
+ if ($v_result) {
+ $this->_writeFooter();
+ $this->_close();
+ } else
+ $this->_cleanFile();
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ addModify()
+ /**
+ * This method add the files / directories listed in $p_filelist at the
+ * end of the existing archive. If the archive does not yet exists it
+ * is created.
+ * The $p_filelist parameter can be an array of string, each string
+ * representing a filename or a directory name with their path if
+ * needed. It can also be a single string with names separated by a
+ * single blank.
+ * The path indicated in $p_remove_dir will be removed from the
+ * memorized path of each file / directory listed when this path
+ * exists. By default nothing is removed (empty path '')
+ * The path indicated in $p_add_dir will be added at the beginning of
+ * the memorized path of each file / directory listed. However it can
+ * be set to empty ''. The adding of a path is done after the removing
+ * of path.
+ * The path add/remove ability enables the user to prepare an archive
+ * for extraction in a different path than the origin files are.
+ * If a file/dir is already in the archive it will only be added at the
+ * end of the archive. There is no update of the existing archived
+ * file/dir. However while extracting the archive, the last file will
+ * replace the first one. This results in a none optimization of the
+ * archive size.
+ * If a file/dir does not exist the file/dir is ignored. However an
+ * error text is send to PEAR error.
+ * If a file/dir is not readable the file/dir is ignored. However an
+ * error text is send to PEAR error.
+ *
+ * @param array $p_filelist An array of filenames and directory
+ * names, or a single string with names
+ * separated by a single blank space.
+ * @param string $p_add_dir A string which contains a path to be
+ * added to the memorized path of each
+ * element in the list.
+ * @param string $p_remove_dir A string which contains a path to be
+ * removed from the memorized path of
+ * each element in the list, when
+ * relevant.
+ * @return true on success, false on error.
+ * @access public
+ */
+ function addModify($p_filelist, $p_add_dir, $p_remove_dir='')
+ {
+ $v_result = true;
+
+ if (!$this->_isArchive())
+ $v_result = $this->createModify($p_filelist, $p_add_dir,
+ $p_remove_dir);
+ else {
+ if (is_array($p_filelist))
+ $v_list = $p_filelist;
+ elseif (is_string($p_filelist))
+ $v_list = explode($this->_separator, $p_filelist);
+ else {
+ $this->_error('Invalid file list');
+ return false;
+ }
+
+ $v_result = $this->_append($v_list, $p_add_dir, $p_remove_dir);
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ addString()
+ /**
+ * This method add a single string as a file at the
+ * end of the existing archive. If the archive does not yet exists it
+ * is created.
+ *
+ * @param string $p_filename A string which contains the full
+ * filename path that will be associated
+ * with the string.
+ * @param string $p_string The content of the file added in
+ * the archive.
+ * @return true on success, false on error.
+ * @access public
+ */
+ function addString($p_filename, $p_string)
+ {
+ $v_result = true;
+
+ if (!$this->_isArchive()) {
+ if (!$this->_openWrite()) {
+ return false;
+ }
+ $this->_close();
+ }
+
+ if (!$this->_openAppend())
+ return false;
+
+ // Need to check the get back to the temporary file ? ....
+ $v_result = $this->_addString($p_filename, $p_string);
+
+ $this->_writeFooter();
+
+ $this->_close();
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ extractModify()
+ /**
+ * This method extract all the content of the archive in the directory
+ * indicated by $p_path. When relevant the memorized path of the
+ * files/dir can be modified by removing the $p_remove_path path at the
+ * beginning of the file/dir path.
+ * While extracting a file, if the directory path does not exists it is
+ * created.
+ * While extracting a file, if the file already exists it is replaced
+ * without looking for last modification date.
+ * While extracting a file, if the file already exists and is write
+ * protected, the extraction is aborted.
+ * While extracting a file, if a directory with the same name already
+ * exists, the extraction is aborted.
+ * While extracting a directory, if a file with the same name already
+ * exists, the extraction is aborted.
+ * While extracting a file/directory if the destination directory exist
+ * and is write protected, or does not exist but can not be created,
+ * the extraction is aborted.
+ * If after extraction an extracted file does not show the correct
+ * stored file size, the extraction is aborted.
+ * When the extraction is aborted, a PEAR error text is set and false
+ * is returned. However the result can be a partial extraction that may
+ * need to be manually cleaned.
+ *
+ * @param string $p_path The path of the directory where the
+ * files/dir need to by extracted.
+ * @param string $p_remove_path Part of the memorized path that can be
+ * removed if present at the beginning of
+ * the file/dir path.
+ * @return boolean true on success, false on error.
+ * @access public
+ * @see extractList()
+ */
+ function extractModify($p_path, $p_remove_path)
+ {
+ $v_result = true;
+ $v_list_detail = array();
+
+ if ($v_result = $this->_openRead()) {
+ $v_result = $this->_extractList($p_path, $v_list_detail,
+ "complete", 0, $p_remove_path);
+ $this->_close();
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ extractInString()
+ /**
+ * This method extract from the archive one file identified by $p_filename.
+ * The return value is a string with the file content, or NULL on error.
+ * @param string $p_filename The path of the file to extract in a string.
+ * @return a string with the file content or NULL.
+ * @access public
+ */
+ function extractInString($p_filename)
+ {
+ if ($this->_openRead()) {
+ $v_result = $this->_extractInString($p_filename);
+ $this->_close();
+ } else {
+ $v_result = NULL;
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ extractList()
+ /**
+ * This method extract from the archive only the files indicated in the
+ * $p_filelist. These files are extracted in the current directory or
+ * in the directory indicated by the optional $p_path parameter.
+ * If indicated the $p_remove_path can be used in the same way as it is
+ * used in extractModify() method.
+ * @param array $p_filelist An array of filenames and directory names,
+ * or a single string with names separated
+ * by a single blank space.
+ * @param string $p_path The path of the directory where the
+ * files/dir need to by extracted.
+ * @param string $p_remove_path Part of the memorized path that can be
+ * removed if present at the beginning of
+ * the file/dir path.
+ * @return true on success, false on error.
+ * @access public
+ * @see extractModify()
+ */
+ function extractList($p_filelist, $p_path='', $p_remove_path='')
+ {
+ $v_result = true;
+ $v_list_detail = array();
+
+ if (is_array($p_filelist))
+ $v_list = $p_filelist;
+ elseif (is_string($p_filelist))
+ $v_list = explode($this->_separator, $p_filelist);
+ else {
+ $this->_error('Invalid string list');
+ return false;
+ }
+
+ if ($v_result = $this->_openRead()) {
+ $v_result = $this->_extractList($p_path, $v_list_detail, "partial",
+ $v_list, $p_remove_path);
+ $this->_close();
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ setAttribute()
+ /**
+ * This method set specific attributes of the archive. It uses a variable
+ * list of parameters, in the format attribute code + attribute values :
+ * $arch->setAttribute(ARCHIVE_TAR_ATT_SEPARATOR, ',');
+ * @param mixed $argv variable list of attributes and values
+ * @return true on success, false on error.
+ * @access public
+ */
+ function setAttribute()
+ {
+ $v_result = true;
+
+ // ----- Get the number of variable list of arguments
+ if (($v_size = func_num_args()) == 0) {
+ return true;
+ }
+
+ // ----- Get the arguments
+ $v_att_list = &func_get_args();
+
+ // ----- Read the attributes
+ $i=0;
+ while ($i<$v_size) {
+
+ // ----- Look for next option
+ switch ($v_att_list[$i]) {
+ // ----- Look for options that request a string value
+ case ARCHIVE_TAR_ATT_SEPARATOR :
+ // ----- Check the number of parameters
+ if (($i+1) >= $v_size) {
+ $this->_error('Invalid number of parameters for '
+ .'attribute ARCHIVE_TAR_ATT_SEPARATOR');
+ return false;
+ }
+
+ // ----- Get the value
+ $this->_separator = $v_att_list[$i+1];
+ $i++;
+ break;
+
+ default :
+ $this->_error('Unknow attribute code '.$v_att_list[$i].'');
+ return false;
+ }
+
+ // ----- Next attribute
+ $i++;
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ _error()
+ function _error($p_message)
+ {
+ // ----- To be completed
+ $this->raiseError($p_message);
+ }
+ // }}}
+
+ // {{{ _warning()
+ function _warning($p_message)
+ {
+ // ----- To be completed
+ $this->raiseError($p_message);
+ }
+ // }}}
+
+ // {{{ _isArchive()
+ function _isArchive($p_filename=NULL)
+ {
+ if ($p_filename == NULL) {
+ $p_filename = $this->_tarname;
+ }
+ clearstatcache();
+ return @is_file($p_filename);
+ }
+ // }}}
+
+ // {{{ _openWrite()
+ function _openWrite()
+ {
+ if ($this->_compress_type == 'gz')
+ $this->_file = @gzopen($this->_tarname, "wb9");
+ else if ($this->_compress_type == 'bz2')
+ $this->_file = @bzopen($this->_tarname, "wb");
+ else if ($this->_compress_type == 'none')
+ $this->_file = @fopen($this->_tarname, "wb");
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ if ($this->_file == 0) {
+ $this->_error('Unable to open in write mode \''
+ .$this->_tarname.'\'');
+ return false;
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _openRead()
+ function _openRead()
+ {
+ if (strtolower(substr($this->_tarname, 0, 7)) == 'http://') {
+
+ // ----- Look if a local copy need to be done
+ if ($this->_temp_tarname == '') {
+ $this->_temp_tarname = uniqid('tar').'.tmp';
+ if (!$v_file_from = @fopen($this->_tarname, 'rb')) {
+ $this->_error('Unable to open in read mode \''
+ .$this->_tarname.'\'');
+ $this->_temp_tarname = '';
+ return false;
+ }
+ if (!$v_file_to = @fopen($this->_temp_tarname, 'wb')) {
+ $this->_error('Unable to open in write mode \''
+ .$this->_temp_tarname.'\'');
+ $this->_temp_tarname = '';
+ return false;
+ }
+ while ($v_data = @fread($v_file_from, 1024))
+ @fwrite($v_file_to, $v_data);
+ @fclose($v_file_from);
+ @fclose($v_file_to);
+ }
+
+ // ----- File to open if the local copy
+ $v_filename = $this->_temp_tarname;
+
+ } else
+ // ----- File to open if the normal Tar file
+ $v_filename = $this->_tarname;
+
+ if ($this->_compress_type == 'gz')
+ $this->_file = @gzopen($v_filename, "rb");
+ else if ($this->_compress_type == 'bz2')
+ $this->_file = @bzopen($v_filename, "rb");
+ else if ($this->_compress_type == 'none')
+ $this->_file = @fopen($v_filename, "rb");
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ if ($this->_file == 0) {
+ $this->_error('Unable to open in read mode \''.$v_filename.'\'');
+ return false;
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _openReadWrite()
+ function _openReadWrite()
+ {
+ if ($this->_compress_type == 'gz')
+ $this->_file = @gzopen($this->_tarname, "r+b");
+ else if ($this->_compress_type == 'bz2')
+ $this->_file = @bzopen($this->_tarname, "r+b");
+ else if ($this->_compress_type == 'none')
+ $this->_file = @fopen($this->_tarname, "r+b");
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ if ($this->_file == 0) {
+ $this->_error('Unable to open in read/write mode \''
+ .$this->_tarname.'\'');
+ return false;
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _close()
+ function _close()
+ {
+ //if (isset($this->_file)) {
+ if (is_resource($this->_file)) {
+ if ($this->_compress_type == 'gz')
+ @gzclose($this->_file);
+ else if ($this->_compress_type == 'bz2')
+ @bzclose($this->_file);
+ else if ($this->_compress_type == 'none')
+ @fclose($this->_file);
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ $this->_file = 0;
+ }
+
+ // ----- Look if a local copy need to be erase
+ // Note that it might be interesting to keep the url for a time : ToDo
+ if ($this->_temp_tarname != '') {
+ @unlink($this->_temp_tarname);
+ $this->_temp_tarname = '';
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _cleanFile()
+ function _cleanFile()
+ {
+ $this->_close();
+
+ // ----- Look for a local copy
+ if ($this->_temp_tarname != '') {
+ // ----- Remove the local copy but not the remote tarname
+ @unlink($this->_temp_tarname);
+ $this->_temp_tarname = '';
+ } else {
+ // ----- Remove the local tarname file
+ @unlink($this->_tarname);
+ }
+ $this->_tarname = '';
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _writeBlock()
+ function _writeBlock($p_binary_data, $p_len=null)
+ {
+ if (is_resource($this->_file)) {
+ if ($p_len === null) {
+ if ($this->_compress_type == 'gz')
+ @gzputs($this->_file, $p_binary_data);
+ else if ($this->_compress_type == 'bz2')
+ @bzwrite($this->_file, $p_binary_data);
+ else if ($this->_compress_type == 'none')
+ @fputs($this->_file, $p_binary_data);
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+ } else {
+ if ($this->_compress_type == 'gz')
+ @gzputs($this->_file, $p_binary_data, $p_len);
+ else if ($this->_compress_type == 'bz2')
+ @bzwrite($this->_file, $p_binary_data, $p_len);
+ else if ($this->_compress_type == 'none')
+ @fputs($this->_file, $p_binary_data, $p_len);
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ }
+ }
+ return true;
+ }
+ // }}}
+
+ // {{{ _readBlock()
+ function _readBlock()
+ {
+ $v_block = null;
+ if (is_resource($this->_file)) {
+ if ($this->_compress_type == 'gz')
+ $v_block = @gzread($this->_file, 512);
+ else if ($this->_compress_type == 'bz2')
+ $v_block = @bzread($this->_file, 512);
+ else if ($this->_compress_type == 'none')
+ $v_block = @fread($this->_file, 512);
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+ }
+ return $v_block;
+ }
+ // }}}
+
+ // {{{ _jumpBlock()
+ function _jumpBlock($p_len=null)
+ {
+ if (is_resource($this->_file)) {
+ if ($p_len === null)
+ $p_len = 1;
+
+ if ($this->_compress_type == 'gz') {
+ @gzseek($this->_file, @gztell($this->_file)+($p_len*512));
+ }
+ else if ($this->_compress_type == 'bz2') {
+ // ----- Replace missing bztell() and bzseek()
+ for ($i=0; $i<$p_len; $i++)
+ $this->_readBlock();
+ } else if ($this->_compress_type == 'none')
+ @fseek($this->_file, @ftell($this->_file)+($p_len*512));
+ else
+ $this->_error('Unknown or missing compression type ('
+ .$this->_compress_type.')');
+
+ }
+ return true;
+ }
+ // }}}
+
+ // {{{ _writeFooter()
+ function _writeFooter()
+ {
+ if (is_resource($this->_file)) {
+ // ----- Write the last 0 filled block for end of archive
+ $v_binary_data = pack("a512", '');
+ $this->_writeBlock($v_binary_data);
+ }
+ return true;
+ }
+ // }}}
+
+ // {{{ _addList()
+ function _addList($p_list, $p_add_dir, $p_remove_dir)
+ {
+ $v_result=true;
+ $v_header = array();
+
+ // ----- Remove potential windows directory separator
+ $p_add_dir = $this->_translateWinPath($p_add_dir);
+ $p_remove_dir = $this->_translateWinPath($p_remove_dir, false);
+
+ if (!$this->_file) {
+ $this->_error('Invalid file descriptor');
+ return false;
+ }
+
+ if (sizeof($p_list) == 0)
+ return true;
+
+ foreach ($p_list as $v_filename) {
+ if (!$v_result) {
+ break;
+ }
+
+ // ----- Skip the current tar name
+ if ($v_filename == $this->_tarname)
+ continue;
+
+ if ($v_filename == '')
+ continue;
+
+ if (!file_exists($v_filename)) {
+ $this->_warning("File '$v_filename' does not exist");
+ continue;
+ }
+
+ // ----- Add the file or directory header
+ if (!$this->_addFile($v_filename, $v_header, $p_add_dir, $p_remove_dir))
+ return false;
+
+ if (@is_dir($v_filename)) {
+ if (!($p_hdir = opendir($v_filename))) {
+ $this->_warning("Directory '$v_filename' can not be read");
+ continue;
+ }
+ while (false !== ($p_hitem = readdir($p_hdir))) {
+ if (($p_hitem != '.') && ($p_hitem != '..')) {
+ if ($v_filename != ".")
+ $p_temp_list[0] = $v_filename.'/'.$p_hitem;
+ else
+ $p_temp_list[0] = $p_hitem;
+
+ $v_result = $this->_addList($p_temp_list,
+ $p_add_dir,
+ $p_remove_dir);
+ }
+ }
+
+ unset($p_temp_list);
+ unset($p_hdir);
+ unset($p_hitem);
+ }
+ }
+
+ return $v_result;
+ }
+ // }}}
+
+ // {{{ _addFile()
+ function _addFile($p_filename, &$p_header, $p_add_dir, $p_remove_dir)
+ {
+ if (!$this->_file) {
+ $this->_error('Invalid file descriptor');
+ return false;
+ }
+
+ if ($p_filename == '') {
+ $this->_error('Invalid file name');
+ return false;
+ }
+
+ // ----- Calculate the stored filename
+ $p_filename = $this->_translateWinPath($p_filename, false);;
+ $v_stored_filename = $p_filename;
+ if (strcmp($p_filename, $p_remove_dir) == 0) {
+ return true;
+ }
+ if ($p_remove_dir != '') {
+ if (substr($p_remove_dir, -1) != '/')
+ $p_remove_dir .= '/';
+
+ if (substr($p_filename, 0, strlen($p_remove_dir)) == $p_remove_dir)
+ $v_stored_filename = substr($p_filename, strlen($p_remove_dir));
+ }
+ $v_stored_filename = $this->_translateWinPath($v_stored_filename);
+ if ($p_add_dir != '') {
+ if (substr($p_add_dir, -1) == '/')
+ $v_stored_filename = $p_add_dir.$v_stored_filename;
+ else
+ $v_stored_filename = $p_add_dir.'/'.$v_stored_filename;
+ }
+
+ $v_stored_filename = $this->_pathReduction($v_stored_filename);
+
+ if ($this->_isArchive($p_filename)) {
+ if (($v_file = @fopen($p_filename, "rb")) == 0) {
+ $this->_warning("Unable to open file '".$p_filename
+ ."' in binary read mode");
+ return true;
+ }
+
+ if (!$this->_writeHeader($p_filename, $v_stored_filename))
+ return false;
+
+ while (($v_buffer = fread($v_file, 512)) != '') {
+ $v_binary_data = pack("a512", "$v_buffer");
+ $this->_writeBlock($v_binary_data);
+ }
+
+ fclose($v_file);
+
+ } else {
+ // ----- Only header for dir
+ if (!$this->_writeHeader($p_filename, $v_stored_filename))
+ return false;
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _addString()
+ function _addString($p_filename, $p_string)
+ {
+ if (!$this->_file) {
+ $this->_error('Invalid file descriptor');
+ return false;
+ }
+
+ if ($p_filename == '') {
+ $this->_error('Invalid file name');
+ return false;
+ }
+
+ // ----- Calculate the stored filename
+ $p_filename = $this->_translateWinPath($p_filename, false);;
+
+ if (!$this->_writeHeaderBlock($p_filename, strlen($p_string),
+ 0, 0, "", 0, 0))
+ return false;
+
+ $i=0;
+ while (($v_buffer = substr($p_string, (($i++)*512), 512)) != '') {
+ $v_binary_data = pack("a512", $v_buffer);
+ $this->_writeBlock($v_binary_data);
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _writeHeader()
+ function _writeHeader($p_filename, $p_stored_filename)
+ {
+ if ($p_stored_filename == '')
+ $p_stored_filename = $p_filename;
+ $v_reduce_filename = $this->_pathReduction($p_stored_filename);
+
+ if (strlen($v_reduce_filename) > 99) {
+ if (!$this->_writeLongHeader($v_reduce_filename))
+ return false;
+ }
+
+ $v_info = stat($p_filename);
+ $v_uid = sprintf("%6s ", DecOct($v_info[4]));
+ $v_gid = sprintf("%6s ", DecOct($v_info[5]));
+ $v_perms = sprintf("%6s ", DecOct(fileperms($p_filename)));
+
+ $v_mtime = sprintf("%11s", DecOct(filemtime($p_filename)));
+
+ if (@is_dir($p_filename)) {
+ $v_typeflag = "5";
+ $v_size = sprintf("%11s ", DecOct(0));
+ } else {
+ $v_typeflag = '';
+ clearstatcache();
+ $v_size = sprintf("%11s ", DecOct(filesize($p_filename)));
+ }
+
+ $v_linkname = '';
+
+ $v_magic = '';
+
+ $v_version = '';
+
+ $v_uname = '';
+
+ $v_gname = '';
+
+ $v_devmajor = '';
+
+ $v_devminor = '';
+
+ $v_prefix = '';
+
+ $v_binary_data_first = pack("a100a8a8a8a12A12",
+ $v_reduce_filename, $v_perms, $v_uid,
+ $v_gid, $v_size, $v_mtime);
+ $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
+ $v_typeflag, $v_linkname, $v_magic,
+ $v_version, $v_uname, $v_gname,
+ $v_devmajor, $v_devminor, $v_prefix, '');
+
+ // ----- Calculate the checksum
+ $v_checksum = 0;
+ // ..... First part of the header
+ for ($i=0; $i<148; $i++)
+ $v_checksum += ord(substr($v_binary_data_first,$i,1));
+ // ..... Ignore the checksum value and replace it by ' ' (space)
+ for ($i=148; $i<156; $i++)
+ $v_checksum += ord(' ');
+ // ..... Last part of the header
+ for ($i=156, $j=0; $i<512; $i++, $j++)
+ $v_checksum += ord(substr($v_binary_data_last,$j,1));
+
+ // ----- Write the first 148 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_first, 148);
+
+ // ----- Write the calculated checksum
+ $v_checksum = sprintf("%6s ", DecOct($v_checksum));
+ $v_binary_data = pack("a8", $v_checksum);
+ $this->_writeBlock($v_binary_data, 8);
+
+ // ----- Write the last 356 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_last, 356);
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _writeHeaderBlock()
+ function _writeHeaderBlock($p_filename, $p_size, $p_mtime=0, $p_perms=0,
+ $p_type='', $p_uid=0, $p_gid=0)
+ {
+ $p_filename = $this->_pathReduction($p_filename);
+
+ if (strlen($p_filename) > 99) {
+ if (!$this->_writeLongHeader($p_filename))
+ return false;
+ }
+
+ if ($p_type == "5") {
+ $v_size = sprintf("%11s ", DecOct(0));
+ } else {
+ $v_size = sprintf("%11s ", DecOct($p_size));
+ }
+
+ $v_uid = sprintf("%6s ", DecOct($p_uid));
+ $v_gid = sprintf("%6s ", DecOct($p_gid));
+ $v_perms = sprintf("%6s ", DecOct($p_perms));
+
+ $v_mtime = sprintf("%11s", DecOct($p_mtime));
+
+ $v_linkname = '';
+
+ $v_magic = '';
+
+ $v_version = '';
+
+ $v_uname = '';
+
+ $v_gname = '';
+
+ $v_devmajor = '';
+
+ $v_devminor = '';
+
+ $v_prefix = '';
+
+ $v_binary_data_first = pack("a100a8a8a8a12A12",
+ $p_filename, $v_perms, $v_uid, $v_gid,
+ $v_size, $v_mtime);
+ $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
+ $p_type, $v_linkname, $v_magic,
+ $v_version, $v_uname, $v_gname,
+ $v_devmajor, $v_devminor, $v_prefix, '');
+
+ // ----- Calculate the checksum
+ $v_checksum = 0;
+ // ..... First part of the header
+ for ($i=0; $i<148; $i++)
+ $v_checksum += ord(substr($v_binary_data_first,$i,1));
+ // ..... Ignore the checksum value and replace it by ' ' (space)
+ for ($i=148; $i<156; $i++)
+ $v_checksum += ord(' ');
+ // ..... Last part of the header
+ for ($i=156, $j=0; $i<512; $i++, $j++)
+ $v_checksum += ord(substr($v_binary_data_last,$j,1));
+
+ // ----- Write the first 148 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_first, 148);
+
+ // ----- Write the calculated checksum
+ $v_checksum = sprintf("%6s ", DecOct($v_checksum));
+ $v_binary_data = pack("a8", $v_checksum);
+ $this->_writeBlock($v_binary_data, 8);
+
+ // ----- Write the last 356 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_last, 356);
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _writeLongHeader()
+ function _writeLongHeader($p_filename)
+ {
+ $v_size = sprintf("%11s ", DecOct(strlen($p_filename)));
+
+ $v_typeflag = 'L';
+
+ $v_linkname = '';
+
+ $v_magic = '';
+
+ $v_version = '';
+
+ $v_uname = '';
+
+ $v_gname = '';
+
+ $v_devmajor = '';
+
+ $v_devminor = '';
+
+ $v_prefix = '';
+
+ $v_binary_data_first = pack("a100a8a8a8a12A12",
+ '././@LongLink', 0, 0, 0, $v_size, 0);
+ $v_binary_data_last = pack("a1a100a6a2a32a32a8a8a155a12",
+ $v_typeflag, $v_linkname, $v_magic,
+ $v_version, $v_uname, $v_gname,
+ $v_devmajor, $v_devminor, $v_prefix, '');
+
+ // ----- Calculate the checksum
+ $v_checksum = 0;
+ // ..... First part of the header
+ for ($i=0; $i<148; $i++)
+ $v_checksum += ord(substr($v_binary_data_first,$i,1));
+ // ..... Ignore the checksum value and replace it by ' ' (space)
+ for ($i=148; $i<156; $i++)
+ $v_checksum += ord(' ');
+ // ..... Last part of the header
+ for ($i=156, $j=0; $i<512; $i++, $j++)
+ $v_checksum += ord(substr($v_binary_data_last,$j,1));
+
+ // ----- Write the first 148 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_first, 148);
+
+ // ----- Write the calculated checksum
+ $v_checksum = sprintf("%6s ", DecOct($v_checksum));
+ $v_binary_data = pack("a8", $v_checksum);
+ $this->_writeBlock($v_binary_data, 8);
+
+ // ----- Write the last 356 bytes of the header in the archive
+ $this->_writeBlock($v_binary_data_last, 356);
+
+ // ----- Write the filename as content of the block
+ $i=0;
+ while (($v_buffer = substr($p_filename, (($i++)*512), 512)) != '') {
+ $v_binary_data = pack("a512", "$v_buffer");
+ $this->_writeBlock($v_binary_data);
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _readHeader()
+ function _readHeader($v_binary_data, &$v_header)
+ {
+ if (strlen($v_binary_data)==0) {
+ $v_header['filename'] = '';
+ return true;
+ }
+
+ if (strlen($v_binary_data) != 512) {
+ $v_header['filename'] = '';
+ $this->_error('Invalid block size : '.strlen($v_binary_data));
+ return false;
+ }
+
+ // ----- Calculate the checksum
+ $v_checksum = 0;
+ // ..... First part of the header
+ for ($i=0; $i<148; $i++)
+ $v_checksum+=ord(substr($v_binary_data,$i,1));
+ // ..... Ignore the checksum value and replace it by ' ' (space)
+ for ($i=148; $i<156; $i++)
+ $v_checksum += ord(' ');
+ // ..... Last part of the header
+ for ($i=156; $i<512; $i++)
+ $v_checksum+=ord(substr($v_binary_data,$i,1));
+
+ $v_data = unpack("a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/"
+ ."a8checksum/a1typeflag/a100link/a6magic/a2version/"
+ ."a32uname/a32gname/a8devmajor/a8devminor",
+ $v_binary_data);
+
+ // ----- Extract the checksum
+ $v_header['checksum'] = OctDec(trim($v_data['checksum']));
+ if ($v_header['checksum'] != $v_checksum) {
+ $v_header['filename'] = '';
+
+ // ----- Look for last block (empty block)
+ if (($v_checksum == 256) && ($v_header['checksum'] == 0))
+ return true;
+
+ $this->_error('Invalid checksum for file "'.$v_data['filename']
+ .'" : '.$v_checksum.' calculated, '
+ .$v_header['checksum'].' expected');
+ return false;
+ }
+
+ // ----- Extract the properties
+ $v_header['filename'] = trim($v_data['filename']);
+ $v_header['mode'] = OctDec(trim($v_data['mode']));
+ $v_header['uid'] = OctDec(trim($v_data['uid']));
+ $v_header['gid'] = OctDec(trim($v_data['gid']));
+ $v_header['size'] = OctDec(trim($v_data['size']));
+ $v_header['mtime'] = OctDec(trim($v_data['mtime']));
+ if (($v_header['typeflag'] = $v_data['typeflag']) == "5") {
+ $v_header['size'] = 0;
+ }
+ /* ----- All these fields are removed form the header because
+ they do not carry interesting info
+ $v_header[link] = trim($v_data[link]);
+ $v_header[magic] = trim($v_data[magic]);
+ $v_header[version] = trim($v_data[version]);
+ $v_header[uname] = trim($v_data[uname]);
+ $v_header[gname] = trim($v_data[gname]);
+ $v_header[devmajor] = trim($v_data[devmajor]);
+ $v_header[devminor] = trim($v_data[devminor]);
+ */
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _readLongHeader()
+ function _readLongHeader(&$v_header)
+ {
+ $v_filename = '';
+ $n = floor($v_header['size']/512);
+ for ($i=0; $i<$n; $i++) {
+ $v_content = $this->_readBlock();
+ $v_filename .= $v_content;
+ }
+ if (($v_header['size'] % 512) != 0) {
+ $v_content = $this->_readBlock();
+ $v_filename .= $v_content;
+ }
+
+ // ----- Read the next header
+ $v_binary_data = $this->_readBlock();
+
+ if (!$this->_readHeader($v_binary_data, $v_header))
+ return false;
+
+ $v_header['filename'] = $v_filename;
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _extractInString()
+ /**
+ * This method extract from the archive one file identified by $p_filename.
+ * The return value is a string with the file content, or NULL on error.
+ * @param string $p_filename The path of the file to extract in a string.
+ * @return a string with the file content or NULL.
+ * @access private
+ */
+ function _extractInString($p_filename)
+ {
+ $v_result_str = "";
+
+ While (strlen($v_binary_data = $this->_readBlock()) != 0)
+ {
+ if (!$this->_readHeader($v_binary_data, $v_header))
+ return NULL;
+
+ if ($v_header['filename'] == '')
+ continue;
+
+ // ----- Look for long filename
+ if ($v_header['typeflag'] == 'L') {
+ if (!$this->_readLongHeader($v_header))
+ return NULL;
+ }
+
+ if ($v_header['filename'] == $p_filename) {
+ if ($v_header['typeflag'] == "5") {
+ $this->_error('Unable to extract in string a directory '
+ .'entry {'.$v_header['filename'].'}');
+ return NULL;
+ } else {
+ $n = floor($v_header['size']/512);
+ for ($i=0; $i<$n; $i++) {
+ $v_result_str .= $this->_readBlock();
+ }
+ if (($v_header['size'] % 512) != 0) {
+ $v_content = $this->_readBlock();
+ $v_result_str .= substr($v_content, 0,
+ ($v_header['size'] % 512));
+ }
+ return $v_result_str;
+ }
+ } else {
+ $this->_jumpBlock(ceil(($v_header['size']/512)));
+ }
+ }
+
+ return NULL;
+ }
+ // }}}
+
+ // {{{ _extractList()
+ function _extractList($p_path, &$p_list_detail, $p_mode,
+ $p_file_list, $p_remove_path)
+ {
+ $v_result=true;
+ $v_nb = 0;
+ $v_extract_all = true;
+ $v_listing = false;
+
+ $p_path = $this->_translateWinPath($p_path, false);
+ if ($p_path == '' || (substr($p_path, 0, 1) != '/'
+ && substr($p_path, 0, 3) != "../" && !strpos($p_path, ':'))) {
+ $p_path = "./".$p_path;
+ }
+ $p_remove_path = $this->_translateWinPath($p_remove_path);
+
+ // ----- Look for path to remove format (should end by /)
+ if (($p_remove_path != '') && (substr($p_remove_path, -1) != '/'))
+ $p_remove_path .= '/';
+ $p_remove_path_size = strlen($p_remove_path);
+
+ switch ($p_mode) {
+ case "complete" :
+ $v_extract_all = TRUE;
+ $v_listing = FALSE;
+ break;
+ case "partial" :
+ $v_extract_all = FALSE;
+ $v_listing = FALSE;
+ break;
+ case "list" :
+ $v_extract_all = FALSE;
+ $v_listing = TRUE;
+ break;
+ default :
+ $this->_error('Invalid extract mode ('.$p_mode.')');
+ return false;
+ }
+
+ clearstatcache();
+
+ while (strlen($v_binary_data = $this->_readBlock()) != 0)
+ {
+ $v_extract_file = FALSE;
+ $v_extraction_stopped = 0;
+
+ if (!$this->_readHeader($v_binary_data, $v_header))
+ return false;
+
+ if ($v_header['filename'] == '') {
+ continue;
+ }
+
+ // ----- Look for long filename
+ if ($v_header['typeflag'] == 'L') {
+ if (!$this->_readLongHeader($v_header))
+ return false;
+ }
+
+ if ((!$v_extract_all) && (is_array($p_file_list))) {
+ // ----- By default no unzip if the file is not found
+ $v_extract_file = false;
+
+ for ($i=0; $i<sizeof($p_file_list); $i++) {
+ // ----- Look if it is a directory
+ if (substr($p_file_list[$i], -1) == '/') {
+ // ----- Look if the directory is in the filename path
+ if ((strlen($v_header['filename']) > strlen($p_file_list[$i]))
+ && (substr($v_header['filename'], 0, strlen($p_file_list[$i]))
+ == $p_file_list[$i])) {
+ $v_extract_file = TRUE;
+ break;
+ }
+ }
+
+ // ----- It is a file, so compare the file names
+ elseif ($p_file_list[$i] == $v_header['filename']) {
+ $v_extract_file = TRUE;
+ break;
+ }
+ }
+ } else {
+ $v_extract_file = TRUE;
+ }
+
+ // ----- Look if this file need to be extracted
+ if (($v_extract_file) && (!$v_listing))
+ {
+ if (($p_remove_path != '')
+ && (substr($v_header['filename'], 0, $p_remove_path_size)
+ == $p_remove_path))
+ $v_header['filename'] = substr($v_header['filename'],
+ $p_remove_path_size);
+ if (($p_path != './') && ($p_path != '/')) {
+ while (substr($p_path, -1) == '/')
+ $p_path = substr($p_path, 0, strlen($p_path)-1);
+
+ if (substr($v_header['filename'], 0, 1) == '/')
+ $v_header['filename'] = $p_path.$v_header['filename'];
+ else
+ $v_header['filename'] = $p_path.'/'.$v_header['filename'];
+ }
+ if (file_exists($v_header['filename'])) {
+ if ( (@is_dir($v_header['filename']))
+ && ($v_header['typeflag'] == '')) {
+ $this->_error('File '.$v_header['filename']
+ .' already exists as a directory');
+ return false;
+ }
+ if ( ($this->_isArchive($v_header['filename']))
+ && ($v_header['typeflag'] == "5")) {
+ $this->_error('Directory '.$v_header['filename']
+ .' already exists as a file');
+ return false;
+ }
+ if (!is_writeable($v_header['filename'])) {
+ $this->_error('File '.$v_header['filename']
+ .' already exists and is write protected');
+ return false;
+ }
+ if (filemtime($v_header['filename']) > $v_header['mtime']) {
+ // To be completed : An error or silent no replace ?
+ }
+ }
+
+ // ----- Check the directory availability and create it if necessary
+ elseif (($v_result
+ = $this->_dirCheck(($v_header['typeflag'] == "5"
+ ?$v_header['filename']
+ :dirname($v_header['filename'])))) != 1) {
+ $this->_error('Unable to create path for '.$v_header['filename']);
+ return false;
+ }
+
+ if ($v_extract_file) {
+ if ($v_header['typeflag'] == "5") {
+ if (!@file_exists($v_header['filename'])) {
+ if (!@mkdir($v_header['filename'], 0777)) {
+ $this->_error('Unable to create directory {'
+ .$v_header['filename'].'}');
+ return false;
+ }
+ }
+ } else {
+ if (($v_dest_file = @fopen($v_header['filename'], "wb")) == 0) {
+ $this->_error('Error while opening {'.$v_header['filename']
+ .'} in write binary mode');
+ return false;
+ } else {
+ $n = floor($v_header['size']/512);
+ for ($i=0; $i<$n; $i++) {
+ $v_content = $this->_readBlock();
+ fwrite($v_dest_file, $v_content, 512);
+ }
+ if (($v_header['size'] % 512) != 0) {
+ $v_content = $this->_readBlock();
+ fwrite($v_dest_file, $v_content, ($v_header['size'] % 512));
+ }
+
+ @fclose($v_dest_file);
+
+ // ----- Change the file mode, mtime
+ @touch($v_header['filename'], $v_header['mtime']);
+ // To be completed
+ //chmod($v_header[filename], DecOct($v_header[mode]));
+ }
+
+ // ----- Check the file size
+ clearstatcache();
+ if (filesize($v_header['filename']) != $v_header['size']) {
+ $this->_error('Extracted file '.$v_header['filename']
+ .' does not have the correct file size \''
+ .filesize($v_header['filename'])
+ .'\' ('.$v_header['size']
+ .' expected). Archive may be corrupted.');
+ return false;
+ }
+ }
+ } else {
+ $this->_jumpBlock(ceil(($v_header['size']/512)));
+ }
+ } else {
+ $this->_jumpBlock(ceil(($v_header['size']/512)));
+ }
+
+ /* TBC : Seems to be unused ...
+ if ($this->_compress)
+ $v_end_of_file = @gzeof($this->_file);
+ else
+ $v_end_of_file = @feof($this->_file);
+ */
+
+ if ($v_listing || $v_extract_file || $v_extraction_stopped) {
+ // ----- Log extracted files
+ if (($v_file_dir = dirname($v_header['filename']))
+ == $v_header['filename'])
+ $v_file_dir = '';
+ if ((substr($v_header['filename'], 0, 1) == '/') && ($v_file_dir == ''))
+ $v_file_dir = '/';
+
+ $p_list_detail[$v_nb++] = $v_header;
+ }
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _openAppend()
+ function _openAppend()
+ {
+ if (filesize($this->_tarname) == 0)
+ return $this->_openWrite();
+
+ if ($this->_compress) {
+ $this->_close();
+
+ if (!@rename($this->_tarname, $this->_tarname.".tmp")) {
+ $this->_error('Error while renaming \''.$this->_tarname
+ .'\' to temporary file \''.$this->_tarname
+ .'.tmp\'');
+ return false;
+ }
+
+ if ($this->_compress_type == 'gz')
+ $v_temp_tar = @gzopen($this->_tarname.".tmp", "rb");
+ elseif ($this->_compress_type == 'bz2')
+ $v_temp_tar = @bzopen($this->_tarname.".tmp", "rb");
+
+ if ($v_temp_tar == 0) {
+ $this->_error('Unable to open file \''.$this->_tarname
+ .'.tmp\' in binary read mode');
+ @rename($this->_tarname.".tmp", $this->_tarname);
+ return false;
+ }
+
+ if (!$this->_openWrite()) {
+ @rename($this->_tarname.".tmp", $this->_tarname);
+ return false;
+ }
+
+ if ($this->_compress_type == 'gz') {
+ $v_buffer = @gzread($v_temp_tar, 512);
+
+ // ----- Read the following blocks but not the last one
+ if (!@gzeof($v_temp_tar)) {
+ do{
+ $v_binary_data = pack("a512", $v_buffer);
+ $this->_writeBlock($v_binary_data);
+ $v_buffer = @gzread($v_temp_tar, 512);
+
+ } while (!@gzeof($v_temp_tar));
+ }
+
+ @gzclose($v_temp_tar);
+ }
+ elseif ($this->_compress_type == 'bz2') {
+ $v_buffered_lines = array();
+ $v_buffered_lines[] = @bzread($v_temp_tar, 512);
+
+ // ----- Read the following blocks but not the last one
+ while (strlen($v_buffered_lines[]
+ = @bzread($v_temp_tar, 512)) > 0) {
+ $v_binary_data = pack("a512",
+ array_shift($v_buffered_lines));
+ $this->_writeBlock($v_binary_data);
+ }
+
+ @bzclose($v_temp_tar);
+ }
+
+ if (!@unlink($this->_tarname.".tmp")) {
+ $this->_error('Error while deleting temporary file \''
+ .$this->_tarname.'.tmp\'');
+ }
+
+ } else {
+ // ----- For not compressed tar, just add files before the last
+ // 512 bytes block
+ if (!$this->_openReadWrite())
+ return false;
+
+ clearstatcache();
+ $v_size = filesize($this->_tarname);
+ fseek($this->_file, $v_size-512);
+ }
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _append()
+ function _append($p_filelist, $p_add_dir='', $p_remove_dir='')
+ {
+ if (!$this->_openAppend())
+ return false;
+
+ if ($this->_addList($p_filelist, $p_add_dir, $p_remove_dir))
+ $this->_writeFooter();
+
+ $this->_close();
+
+ return true;
+ }
+ // }}}
+
+ // {{{ _dirCheck()
+
+ /**
+ * Check if a directory exists and create it (including parent
+ * dirs) if not.
+ *
+ * @param string $p_dir directory to check
+ *
+ * @return bool TRUE if the directory exists or was created
+ */
+ function _dirCheck($p_dir)
+ {
+ if ((@is_dir($p_dir)) || ($p_dir == ''))
+ return true;
+
+ $p_parent_dir = dirname($p_dir);
+
+ if (($p_parent_dir != $p_dir) &&
+ ($p_parent_dir != '') &&
+ (!$this->_dirCheck($p_parent_dir)))
+ return false;
+
+ if (!@mkdir($p_dir, 0777)) {
+ $this->_error("Unable to create directory '$p_dir'");
+ return false;
+ }
+
+ return true;
+ }
+
+ // }}}
+
+ // {{{ _pathReduction()
+
+ /**
+ * Compress path by changing for example "/dir/foo/../bar" to "/dir/bar",
+ * rand emove double slashes.
+ *
+ * @param string $p_dir path to reduce
+ *
+ * @return string reduced path
+ *
+ * @access private
+ *
+ */
+ function _pathReduction($p_dir)
+ {
+ $v_result = '';
+
+ // ----- Look for not empty path
+ if ($p_dir != '') {
+ // ----- Explode path by directory names
+ $v_list = explode('/', $p_dir);
+
+ // ----- Study directories from last to first
+ for ($i=sizeof($v_list)-1; $i>=0; $i--) {
+ // ----- Look for current path
+ if ($v_list[$i] == ".") {
+ // ----- Ignore this directory
+ // Should be the first $i=0, but no check is done
+ }
+ else if ($v_list[$i] == "..") {
+ // ----- Ignore it and ignore the $i-1
+ $i--;
+ }
+ else if ( ($v_list[$i] == '')
+ && ($i!=(sizeof($v_list)-1))
+ && ($i!=0)) {
+ // ----- Ignore only the double '//' in path,
+ // but not the first and last /
+ } else {
+ $v_result = $v_list[$i].($i!=(sizeof($v_list)-1)?'/'
+ .$v_result:'');
+ }
+ }
+ }
+ $v_result = strtr($v_result, '\\', '/');
+ return $v_result;
+ }
+
+ // }}}
+
+ // {{{ _translateWinPath()
+ function _translateWinPath($p_path, $p_remove_disk_letter=true)
+ {
+ if (OS_WINDOWS) {
+ // ----- Look for potential disk letter
+ if ( ($p_remove_disk_letter)
+ && (($v_position = strpos($p_path, ':')) != false)) {
+ $p_path = substr($p_path, $v_position+1);
+ }
+ // ----- Change potential windows directory separator
+ if ((strpos($p_path, '\\') > 0) || (substr($p_path, 0,1) == '\\')) {
+ $p_path = strtr($p_path, '\\', '/');
+ }
+ }
+ return $p_path;
+ }
+ // }}}
+
+}
+?>
+package.xml
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
<package version="1.0">
<name>Archive_Tar</name>
@@ -4732,7 +4750,7 @@ How it works :
Go through the archive and extract only the files present in the
list.
-
+
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -4983,7 +5001,7 @@ class Console_Getopt {
}
?>
-¦êhG
+package.xml
<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
<package version="1.0">
<name>Console_Getopt</name>
@@ -5303,7 +5321,7 @@ class Console_Getopt {
}
?>
-
+
/* $Id: install-pear.php,v 1.26 2006/01/02 15:29:03 cellog Exp $ */
@@ -5336,7 +5354,7 @@ if (!$a) {
$force = false;
$install_files = array('Archive_Tar' => 'phar://install-pear-nozlib.phar/Archive_Tar-1.3.1.tar',
'Console_Getopt' => 'phar://install-pear-nozlib.phar/Console_Getopt-1.2.tar',
-'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.4.6.tar',
+'PEAR' => 'phar://install-pear-nozlib.phar/PEAR-1.4.9.tar',
);
array_shift($argv);
$debug = false;
@@ -5507,7 +5525,7 @@ foreach ($install_files as $package => $instfile) {
}
}
?>
-õz ¸*
+<?php
/**
* The OS_Guess class
*
@@ -5602,7 +5620,7 @@ foreach ($install_files as $package => $instfile) {
* @author Gregory Beaver <cellog@php.net>
* @copyright 1997-2005 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -5850,8 +5868,8 @@ class OS_Guess
* End:
*/
?>
-ð©^Þ
-<package packagerversion="1.4.6" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
+package.xml
+<package packagerversion="1.4.9" version="2.0" xmlns="http://pear.php.net/dtd/package-2.0" xmlns:tasks="http://pear.php.net/dtd/tasks-1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://pear.php.net/dtd/tasks-1.0 http://pear.php.net/dtd/tasks-1.0.xsd http://pear.php.net/dtd/package-2.0 http://pear.php.net/dtd/package-2.0.xsd">
<name>PEAR</name>
<channel>pear.php.net</channel>
<summary>PEAR Base System</summary>
@@ -5908,264 +5926,267 @@ class OS_Guess
<active>yes</active>
</lead>
<helper>
+ <name>Tim Jackson</name>
+ <user>timj</user>
+ <email>timj@php.net</email>
+ <active>yes</active>
+ </helper>
+ <helper>
+ <name>Bertrand Gugger</name>
+ <user>toggg</user>
+ <email>toggg@php.net</email>
+ <active>yes</active>
+ </helper>
+ <helper>
<name>Martin Jansen</name>
<user>mj</user>
<email>mj@php.net</email>
<active>no</active>
</helper>
- <date>2006-01-06</date>
- <time>09:25:22</time>
+ <date>2006-03-22</date>
+ <time>23:52:54</time>
<version>
- <release>1.4.6</release>
- <api>1.4.1</api>
+ <release>1.4.9</release>
+ <api>1.4.2</api>
</version>
<stability>
<release>stable</release>
<api>stable</api>
</stability>
<license uri="http://www.php.net/license">PHP License</license>
- <notes>Minor bugfix release
-* fix problem with -options when using CGI version of PHP
-* fix Critical Bug #5999: support for baseinstalldir broken in package2.xml format
-* fix Bug #6034: date format bug
-* fix Bug #6040: PEAR_Frontend#setFrontendClass has no docblock;
- PEAR_Frontend not documented
-* fix Bug #6044: PEAR_REST::retrieveCacheFirst doesn&apos;t return error codes
-* fix Bug #6047: pear makerpm fails to handle docs in root directory
-* fix Bug #6048: PEAR_Frontend::log parameters are wrong
-* fix Bug #6106: Notices by list-upgrades (caused by time-outs ?)
-* fix Bug #6145: Can&apos;t install PEAR with INSTALL_ROOT environment
-* fix Bug #6218: the &quot;pear&quot; command does nothing
-* fix Bug #6269: System::which() returns silliness if passed null
-* fix Bug #6322: Installer fails to follow redirects [patch by Bertrand Gugger]
-* fix Request #6119: Add PEAR_Frontend_Gtk2 support to PEAR</notes>
+ <notes>CRITICAL BUGFIX RELEASE
+users upgrading from PEAR 1.3.x cannot upgrade to 1.4.8
+users who use --packagingroot may find that installation fails
+* fix Bug #7093: if pear channel does not exist, it cannot be retrieved
+* fix Bug #7165: warnings in pear
+* fix Bug #7075: PEAR_PackageFile_v2 :: setLogger failed on autodetection</notes>
<contents>
<dir name="/">
- <file md5sum="ce5d7a276c7f74ef60b7b0e9d9e02b41" name="OS/Guess.php" role="php">
+ <file md5sum="64153f3054d39f0f1d0102fa3f5b35a3" name="OS/Guess.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="2432945c49a94cf50e17bd99acd1ac03" name="PEAR/ChannelFile/Parser.php" role="php">
+ <file md5sum="8c7e266a63d74cf96f9acb88d8f3383b" name="PEAR/ChannelFile/Parser.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="4a11a3c4bc2c2f338c183b332def156b" name="PEAR/Command/Auth.xml" role="php" />
- <file md5sum="d32c42746844fbbc9ad927a2f459a5eb" name="PEAR/Command/Auth.php" role="php">
+ <file md5sum="369704305c09c243ec79e44fedee642a" name="PEAR/Command/Auth.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="73602fd7f051eaf8d37452d0e3063bdb" name="PEAR/Command/Build.xml" role="php" />
- <file md5sum="5fb01368f7161633e834f3fee681924e" name="PEAR/Command/Build.php" role="php">
+ <file md5sum="fc8dfcbf203a0ffcfdb99b810bc9f830" name="PEAR/Command/Build.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="14ed4bd2028f26ac984a0db8c91fd5fd" name="PEAR/Command/Channels.xml" role="php" />
- <file md5sum="2ce05560e886a60727c158ea967b9fe2" name="PEAR/Command/Channels.php" role="php">
+ <file md5sum="7f4c5dad5c5e65f8a540cb35914c7b2e" name="PEAR/Command/Channels.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="099185351a8edb7bb92025a149bbad65" name="PEAR/Command/Common.php" role="php">
+ <file md5sum="75159b905c8db019cec524cdcea28c33" name="PEAR/Command/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="91f189cb9423b5e87ee0abc5ea1a2be3" name="PEAR/Command/Config.xml" role="php" />
- <file md5sum="89adc8aef5edb59a3da47ab0d93f92e0" name="PEAR/Command/Config.php" role="php">
+ <file md5sum="429bfebc20e70ddf7a7ab5a8ee7b2de8" name="PEAR/Command/Config.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="516da3eb7ebbecfbfb4188408a1983b2" name="PEAR/Command/Install.xml" role="php" />
- <file md5sum="defb222cc05262ef9a041ab02dc0a781" name="PEAR/Command/Install.php" role="php">
+ <file md5sum="bbd5b352db1cb8e348ae3d8606adb33a" name="PEAR/Command/Install.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="5cb62a04c0a268f4edd64a49a3895c92" name="PEAR/Command/Mirror.xml" role="php" />
- <file md5sum="adca6ac2740f86f7c3d9b171e94e790c" name="PEAR/Command/Mirror.php" role="php">
+ <file md5sum="acbfc57a7ed9d3167f7491e3e8853cb4" name="PEAR/Command/Mirror.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="23250b3cd9fae3475b1af03350cc05dc" name="PEAR/Command/Package.xml" role="php" />
- <file md5sum="4cd0265222b11e39c31015e1f3285d52" name="PEAR/Command/Package.php" role="php">
+ <file md5sum="69d812c4c7dddf1cbfcd527c783a0db2" name="PEAR/Command/Package.php" role="php">
<tasks:replace from="@DATA-DIR@" to="data_dir" type="pear-config" />
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="35817866283227237796b32d32dac44d" name="PEAR/Command/Pickle.xml" role="php" />
- <file md5sum="dcbb1be7095582bd860aefc9c3c2c556" name="PEAR/Command/Pickle.php" role="php">
+ <file md5sum="4fd62cc0bbc33d3e5f5d0b07fbdfa950" name="PEAR/Command/Pickle.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="e7fc652e4b5266bbac1c23140de01598" name="PEAR/Command/Registry.xml" role="php" />
- <file md5sum="3ced7b5fa100733065c85f5a65ae22bc" name="PEAR/Command/Registry.php" role="php">
+ <file md5sum="37125dee4259ccaac350730ee90bd943" name="PEAR/Command/Registry.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="d57b54857aba5b6ff2fe528cbf522b00" name="PEAR/Command/Remote.xml" role="php" />
- <file md5sum="1f1b190a176c125aa4409b13d61ea276" name="PEAR/Command/Remote.php" role="php">
+ <file md5sum="7a0814e3158cd4212145a69417b658dd" name="PEAR/Command/Remote.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="4b893f3dbf006d4137de46f163c484d3" name="PEAR/Command/Test.xml" role="php" />
- <file md5sum="596555c5b0f13c91ee7d8188a16f06e7" name="PEAR/Command/Test.php" role="php">
+ <file md5sum="f5072ed4032dc28fac20f526f03520f8" name="PEAR/Command/Test.xml" role="php" />
+ <file md5sum="2736a481b20b6e656cbfa1fc8e8a1744" name="PEAR/Command/Test.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="71a8e0a914fb7779aa4ead8d1cd7da4c" name="PEAR/Downloader/Package.php" role="php">
+ <file md5sum="841f797b04fb0ae96fc12f9a308ed2b6" name="PEAR/Downloader/Package.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
- <file md5sum="e2308bfecfb220ff5dd69610e4facc97" name="PEAR/Frontend/CLI.php" role="php">
+ <file md5sum="af599522077f71d4be9a1163c659d5cf" name="PEAR/Frontend/CLI.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="90efba87ef02bd1be235dcf2817a92b5" name="PEAR/Installer/Role/Common.php" role="php">
+ <file md5sum="cd5807103ede23734e60356cd8bdd0f5" name="PEAR/Installer/Role/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="a102cceaf8e9348965a856e2b5ae4e35" name="PEAR/Installer/Role/Data.xml" role="php" />
- <file md5sum="3d8fab212582d66f55acc8423a90526a" name="PEAR/Installer/Role/Data.php" role="php">
+ <file md5sum="d83cab75511a3cf4c428f9d83f88f537" name="PEAR/Installer/Role/Data.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="5755c03e061dd14ab04a8662a860af13" name="PEAR/Installer/Role/Doc.xml" role="php" />
- <file md5sum="ebbdf735f943910a6eae7e6626be30aa" name="PEAR/Installer/Role/Doc.php" role="php">
+ <file md5sum="ab0fd8ccf2ea680e196f7dd82358b00b" name="PEAR/Installer/Role/Doc.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="2752669b1ccf927c4c71db68ac046095" name="PEAR/Installer/Role/Ext.xml" role="php" />
- <file md5sum="8d592d3f295fb66cb53fba303425b97c" name="PEAR/Installer/Role/Ext.php" role="php">
+ <file md5sum="a56ffbb2031fb7effa9ecdbe43d79dc0" name="PEAR/Installer/Role/Ext.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="8997db19129f121be2d5fffb92f4075a" name="PEAR/Installer/Role/Php.xml" role="php" />
- <file md5sum="2e26145d63318b8f7d76fd2914f1d684" name="PEAR/Installer/Role/Php.php" role="php">
+ <file md5sum="e52b84b0a716084dd41e9d8ba3a97cc2" name="PEAR/Installer/Role/Php.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="a146c5985d669938c633bfef60692db4" name="PEAR/Installer/Role/Script.xml" role="php" />
- <file md5sum="313c77d424cf42fdda5e5a0fefb20d7f" name="PEAR/Installer/Role/Script.php" role="php">
+ <file md5sum="2a5220d3d9e77a4bbeeaa593ed287581" name="PEAR/Installer/Role/Script.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="ad0f719669cb90e76048394896c51136" name="PEAR/Installer/Role/Src.xml" role="php" />
- <file md5sum="ab612fb39f3e2fa12b52454ad94dc832" name="PEAR/Installer/Role/Src.php" role="php">
+ <file md5sum="e8c64f25150d20614524d82589d29111" name="PEAR/Installer/Role/Src.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="dc2f729ae9356540c91131b3b94caddf" name="PEAR/Installer/Role/Test.xml" role="php" />
- <file md5sum="a6c907a818eb94cdf392fc061fa01b3a" name="PEAR/Installer/Role/Test.php" role="php">
+ <file md5sum="7ae6b8336e4732ffa594b804acc5f0de" name="PEAR/Installer/Role/Test.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="f5117ee88e9103972d1f23b8e753221a" name="PEAR/Installer/Role.php" role="php">
+ <file md5sum="6c51d65895cf5b71a8385b247dbd0189" name="PEAR/Installer/Role.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="5bac32f61d375e9125b7e7c9a68f3d24" name="PEAR/PackageFile/Generator/v1.php" role="php">
+ <file md5sum="db40e2b0c033f3565af6c135e28a512b" name="PEAR/PackageFile/Generator/v1.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
- <file md5sum="66ccd83fdb237a10b8d88db1a69f98f8" name="PEAR/PackageFile/Generator/v2.php" role="php">
+ <file md5sum="b79890e413dfa78cf37cd626fe0774b1" name="PEAR/PackageFile/Generator/v2.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
<file md5sum="ea3c85eac9d81f6ac0d445219b882c8b" name="PEAR/PackageFile/Parser/v1.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="f7b6f691a0e4af989359d8c844f291ef" name="PEAR/PackageFile/Parser/v2.php" role="php">
+ <file md5sum="a173a2ff92d2a93d7153b101da34cf18" name="PEAR/PackageFile/Parser/v2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="9d645c7db4d78564b453961f49a11d72" name="PEAR/PackageFile/v2/rw.php" role="php">
+ <file md5sum="13129c54d393a8e3018571106572b521" name="PEAR/PackageFile/v2/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="9c4d1419908c5b40d2979005df8a162f" name="PEAR/PackageFile/v2/Validator.php" role="php">
+ <file md5sum="9953c60c0861398ccfe958dfc8b4f7cd" name="PEAR/PackageFile/v2/Validator.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="139862009565ec519efe2d1c903cda2c" name="PEAR/PackageFile/v1.php" role="php">
+ <file md5sum="33f622302e817fa6ed2ce4285df45012" name="PEAR/PackageFile/v1.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="93c56a0a13b4d4881493484a1940461c" name="PEAR/PackageFile/v2.php" role="php">
+ <file md5sum="6cc1e92726f8e6bca9760fc406404bcc" name="PEAR/PackageFile/v2.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="74d4f6510872450f90926f24f0d35687" name="PEAR/REST/10.php" role="php">
+ <file md5sum="d8f321b01d6bfe1e039aeee0e8c4eb55" name="PEAR/REST/10.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="8896c262665fdb82702cfd65e3221d0e" name="PEAR/REST/11.php" role="php">
+ <file md5sum="ee95643e89c0a755daaba7c450b9053c" name="PEAR/REST/11.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="5a0b9557ec30aec73dd19c9a5517e72b" name="PEAR/Task/Postinstallscript/rw.php" role="php">
+ <file md5sum="e4ec4c2e865fe0d863ec537117a83529" name="PEAR/Task/Postinstallscript/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="710cd9c8a2e6289005ba4e527d61e240" name="PEAR/Task/Replace/rw.php" role="php">
+ <file md5sum="4de8267715f6a5d137af80e2f813d62b" name="PEAR/Task/Replace/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="70cc1dcb1639ae534b03b81f43e4648a" name="PEAR/Task/Unixeol/rw.php" role="php">
+ <file md5sum="78f2b48aaf9aa4fafe7a4810b8c97d74" name="PEAR/Task/Unixeol/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="50bbac9505bfcddbed527d91f04086ef" name="PEAR/Task/Windowseol/rw.php" role="php">
+ <file md5sum="a11f251093545db4cd8c5f0684a7b3a3" name="PEAR/Task/Windowseol/rw.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="ab06e73a8935bd9c18a368298db15856" name="PEAR/Task/Common.php" role="php">
+ <file md5sum="a56c5f9161b46b299cef23f16491dc8b" name="PEAR/Task/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="bc19f5db1eb7bac8f51163b46ad820b4" name="PEAR/Task/Postinstallscript.php" role="php">
+ <file md5sum="0a1629801eeecedaf1c6d07ac8cdcdf3" name="PEAR/Task/Postinstallscript.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="679270d12555378e139d6d8113fc97ce" name="PEAR/Task/Replace.php" role="php">
+ <file md5sum="bf45b4b62b86b854a07552d9ebf32091" name="PEAR/Task/Replace.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="df3599cdab66e15e6b1f98a586f56bc8" name="PEAR/Task/Unixeol.php" role="php">
+ <file md5sum="6641fe2f91c4f102b0af4182f6180ce5" name="PEAR/Task/Unixeol.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="39aa147619c00bd1d01b2d6677de202d" name="PEAR/Task/Windowseol.php" role="php">
+ <file md5sum="943192d2194c5c1187d336fe0245019b" name="PEAR/Task/Windowseol.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="278855f2151cffe7c444dc8fe29a24d4" name="PEAR/Validator/PECL.php" role="php">
+ <file md5sum="eb608fe901b0d752aea41ee221351c47" name="PEAR/Validator/PECL.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="e2527e347003031c29ae8369d6d4ef13" name="PEAR/Autoloader.php" role="php">
+ <file md5sum="61be98ca654ca4e19bba431fa4dc1bc1" name="PEAR/Autoloader.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="bbf487a703acd2ca4ea33b31e220201b" name="PEAR/Builder.php" role="php">
+ <file md5sum="29369a600bc560a4bac1c2a441b76eca" name="PEAR/Builder.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
- <file md5sum="bd46e28a9323f069b80c9db0eea2dc38" name="PEAR/ChannelFile.php" role="php">
+ <file md5sum="b50c43adb5045b4016730dd4d4839a02" name="PEAR/ChannelFile.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="42db18b33572904c042cffdd2837fd57" name="PEAR/Command.php" role="php">
+ <file md5sum="4e79a801b34389864e77232ce37ba548" name="PEAR/Command.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="50afad6e9e960c396a13a244bf12633f" name="PEAR/Common.php" role="php">
+ <file md5sum="63325bcbd4b3c11478a75d120f123c33" name="PEAR/Common.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="fc6ec416c15023bef97dde6488c41f57" name="PEAR/Config.php" role="php">
+ <file md5sum="fc42ca3c5e2c1d647ce59f23e9ff90b1" name="PEAR/Config.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="f42d5ae2639dd67b90b890ac2b0e6e56" name="PEAR/Dependency.php" role="php" />
- <file md5sum="0972bdec44702b1013aecb23e2bf6dd1" name="PEAR/DependencyDB.php" role="php">
+ <file md5sum="32a0bc84ac0cd679a2cd4a85de1c0239" name="PEAR/DependencyDB.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="9672d783c75729efd9110281cf57a9f8" name="PEAR/Dependency2.php" role="php">
+ <file md5sum="9038786e6a01295351662fb6c19b518b" name="PEAR/Dependency2.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
- <file md5sum="452fb2083351e6834bdb7d768ff5cbbd" name="PEAR/Downloader.php" role="php">
+ <file md5sum="7c9489f7f7b7b6c77902bcb913a14794" name="PEAR/Downloader.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="ca41ae5242ece532e68ea94dff581ae6" name="PEAR/ErrorStack.php" role="php">
+ <file md5sum="40e4900bf7437e8a3f4659d8816cb967" name="PEAR/ErrorStack.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="d2e679698b9d368e7eac2abf4c1e14a6" name="PEAR/Exception.php" role="php">
+ <file md5sum="cdc1bdbb9b624a971844f2cdd03215d0" name="PEAR/Exception.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="fbf5efe1ac14128b93507c28e4b127f5" name="PEAR/Frontend.php" role="php">
+ <file md5sum="42f26287b2e3a78e3def7d2079117a87" name="PEAR/Frontend.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="ea1f0c533fd9e33688bff41a0feff0e8" name="PEAR/Installer.php" role="php">
+ <file md5sum="49fc3714f093cbd5fcd1130dbf5349e5" name="PEAR/Installer.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="ea75cbbf1ea0274c4c3710ae54477eba" name="PEAR/PackageFile.php" role="php">
+ <file md5sum="cddbfc6594e973b223a027bfff9d7529" name="PEAR/PackageFile.php" role="php">
<tasks:replace from="@PEAR-VER@" to="version" type="package-info" />
</file>
- <file md5sum="04dc75d6071134e954e95baf3cee7c1d" name="PEAR/Packager.php" role="php">
+ <file md5sum="a3c6c802ce887f63c1494d010a5020f8" name="PEAR/Packager.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="dc1fe787f136dc52261a3a8c734343ec" name="PEAR/Registry.php" role="php">
+ <file md5sum="8ee992a2e56afed8bed5d0832434ea21" name="PEAR/Registry.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="7116f47b586ca86d2d7ca67df7f93e43" name="PEAR/Remote.php" role="php">
+ <file md5sum="73269d1eb0735ae699cf1825ec3445fc" name="PEAR/Remote.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="103a91f465c39ff39314270808971a9c" name="PEAR/REST.php" role="php">
+ <file md5sum="268906e90d4661aaff2445106303ad31" name="PEAR/REST.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="453d33f2c7b0aec8b7736079a89a56de" name="PEAR/RunTest.php" role="php">
+ <file md5sum="fa5a6b0916fb819dae2400f7b8685859" name="PEAR/RunTest.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="d5896be62f796a89c4c7bdd97de3b3a6" name="PEAR/Validate.php" role="php">
+ <file md5sum="0703200ee14f5ae595f419963f1acb49" name="PEAR/Validate.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="a34851b7749411623191992c3482c802" name="PEAR/XMLParser.php" role="php">
+ <file md5sum="740304a1ee87a803cc2eea78c7da726d" name="PEAR/XMLParser.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file baseinstalldir="/" md5sum="68d2c6a4337347499ec1fd9a1b20689b" name="scripts/pear.bat" role="script">
+ <file baseinstalldir="/" md5sum="000e0141cccb734d87df52d4c5cb110b" name="scripts/pear.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
<tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
<tasks:windowseol />
</file>
- <file baseinstalldir="/" md5sum="a8197caabeb23f233761ff9f2ea8d862" name="scripts/peardev.bat" role="script">
+ <file baseinstalldir="/" md5sum="481c8b236e565dd41c7746a37b40e3d6" name="scripts/peardev.bat" role="script">
<tasks:replace from="@bin_dir@" to="bin_dir" type="pear-config" />
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
<tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
@@ -6177,14 +6198,14 @@ class OS_Guess
<tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
<tasks:windowseol />
</file>
- <file baseinstalldir="/" md5sum="a3bc543b3f7174ab74108449496cad8b" name="scripts/pear.sh" role="script">
+ <file baseinstalldir="/" md5sum="98cc2576a216aaffc63d2137c792d8a2" name="scripts/pear.sh" role="script">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
<tasks:replace from="@pear_version@" to="version" type="package-info" />
<tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
<tasks:unixeol />
</file>
- <file baseinstalldir="/" md5sum="ad285cd6543509b81de6ebe7e19e2d13" name="scripts/peardev.sh" role="script">
+ <file baseinstalldir="/" md5sum="0ee5f6671cbe9d4345257458c2d9afeb" name="scripts/peardev.sh" role="script">
<tasks:replace from="@php_bin@" to="php_bin" type="pear-config" />
<tasks:replace from="@php_dir@" to="php_dir" type="pear-config" />
<tasks:replace from="@pear_version@" to="version" type="package-info" />
@@ -6211,10 +6232,10 @@ class OS_Guess
<tasks:replace from="@include_path@" to="php_dir" type="pear-config" />
</file>
<file md5sum="ca444da9174e05f8a0dc71d8ee47900f" name="package.dtd" role="data" />
- <file md5sum="cce37dd5c8bbb97db0a95830c2806e4a" name="PEAR.php" role="php">
+ <file md5sum="06b49e789f39426ba4498a578e6a370c" name="PEAR.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
- <file md5sum="946ff608525d600fbdb6195ebbcf20c2" name="System.php" role="php">
+ <file md5sum="947f419a1bba9a6a8bd3d5a0f967c6b8" name="System.php" role="php">
<tasks:replace from="@package_version@" to="version" type="package-info" />
</file>
<file md5sum="acd010e3bc43c0f72df584acde7b9158" name="template.spec" role="data" />
@@ -6283,6 +6304,12 @@ class OS_Guess
<min>0.4.0</min>
</package>
</group>
+ <group hint="PEAR&apos;s PHP-GTK2-based installer" name="gtk2installer">
+ <package>
+ <name>PEAR_Frontend_Gtk2</name>
+ <channel>pear.php.net</channel>
+ </package>
+ </group>
</dependencies>
<phprelease>
<installconditions>
@@ -6490,9 +6517,97 @@ faster list-all/remote-list!!
* fix Bug #5958: strange error on mistyping
* fix Bug #5959: patch: pear makerpm produces RPMs that do not uninstall/upgrade cleanly</notes>
</release>
+ <release>
+ <version>
+ <release>1.4.6</release>
+ <api>1.4.1</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <date>2006-01-06</date>
+ <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
+ <notes>Minor bugfix release
+* fix problem with -options when using CGI version of PHP
+* fix Critical Bug #5999: support for baseinstalldir broken in package2.xml format
+* fix Bug #6034: date format bug
+* fix Bug #6040: PEAR_Frontend#setFrontendClass has no docblock;
+ PEAR_Frontend not documented
+* fix Bug #6044: PEAR_REST::retrieveCacheFirst doesn&apos;t return error codes
+* fix Bug #6047: pear makerpm fails to handle docs in root directory
+* fix Bug #6048: PEAR_Frontend::log parameters are wrong
+* fix Bug #6106: Notices by list-upgrades (caused by time-outs ?)
+* fix Bug #6145: Can&apos;t install PEAR with INSTALL_ROOT environment
+* fix Bug #6218: the &quot;pear&quot; command does nothing
+* fix Bug #6269: System::which() returns silliness if passed null
+* fix Bug #6322: Installer fails to follow redirects [patch by Bertrand Gugger]
+* fix Request #6119: Add PEAR_Frontend_Gtk2 support to PEAR</notes>
+ </release>
+ <release>
+ <version>
+ <release>1.4.7</release>
+ <api>1.4.1</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <date>2006-02-27</date>
+ <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
+ <notes>Minor bugfix release
+* Prevent packaging of release candidate releases with versions like 1.0.0rc1
+ version_compare() only understands upper-case 1.0.0RC1
+* implement CLEAN section in .phpt tests
+* implement run-tests command for phpunit-based tests
+* implement Request #6039: setFrontendObject needed to allow objects passed
+* fix Bug #6075: unnecessary validation of maintainers can break PEAR_PFM
+* fix Bug #6076: optional is not set for conversion of package2.xml to &quot;has&quot; rel
+* fix Bug #6077: PEAR_PackageFile_Parser_v2 should return by reference
+* fix Bug #6273: pear download-all fails
+* fix Bug #6383: incomplete PEAR::Error message on addReplacement()
+* fix Bug #6445: PEAR::registerShutdownFunc doesn&apos;t work in static calls
+* fix Bug #6480: pear install --installroot option fails for pecl packages [timj]
+* fix Bug #6510: status active of a maintainer cannot be change
+* fix Bug #6537: wrong export compatible v1 dependencies list with exclude limit
+* fix Bug #6559: pear should ignore safemode/open_basedir
+* fix Bug #6576: PFM2 run in trouble with sessions
+* fix Bug #6579: PFM2 changelog and license with uri
+* fix Bug #6673: pear install --offline --packagingroot=/blah does not work
+* fix Bug #6674: --packagingroot always uses channel pear.php.net configuration
+* fix Bug #6675: postinstallscript validation fails
+* fix Bug #6690: channel with / will not allow upgrade
+* fix Bug #6692: Optional feature install message needs channel name
+* fix Bug #6716: &quot;pear install -r&quot; errors after install when
+ attempting &quot;pear list &lt;pkgname&gt;&quot;
+* fix Bug #6735: PEAR_PackageFile::fromTgzFile doesn&apos;t work with package.xml
+ not in root dir</notes>
+ </release>
+ <release>
+ <version>
+ <release>1.4.8</release>
+ <api>1.4.2</api>
+ </version>
+ <stability>
+ <release>stable</release>
+ <api>stable</api>
+ </stability>
+ <date>2006-03-05</date>
+ <license uri="http://www.php.net/license/3_0.txt">PHP License</license>
+ <notes>CRITICAL BUGFIX RELEASE
+
+Channels with &quot;-&quot; in their name were suddenly invalid, and
+caused crashes in many places due to improper error handling
+* fix Bug #6960: channels are not allowed to have &quot;-&quot; in their name
+* fix critical Bug #6969: PEAR list-upgrades crashes
+* fix Bug #6991: Class &apos;PEAR_PackageFile_v1&apos; not found in Registry.php at line 1657
+* fix Bug #7008: PEAR_Frontend::setFrontendObject doesn&apos;t set the object
+* fix Bug #7015: install a package.tgz with unknown channel, fatal error in PEAR/Registry.php
+* fix Bug #7020: tests/PEAR_Registry/api1_1/test_getChannelValidator.phpt crashes PEAR</notes>
+ </release>
</changelog>
</package>
-
+
/**
* The OS_Guess class
*
@@ -6587,7 +6702,7 @@ faster list-all/remote-list!!
* @author Gregory Beaver <cellog@php.net>
* @copyright 1997-2005 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -6835,7 +6950,7 @@ class OS_Guess
* End:
*/
?>
-
+
/**
* PEAR_ChannelFile_Parser for parsing channel.xml
*
@@ -6869,7 +6984,7 @@ require_once 'PEAR/ChannelFile.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -6907,7 +7022,7 @@ class PEAR_ChannelFile_Parser extends PEAR_XMLParser
return $ret;
}
}
-?>
+?>
<login>
<summary>Connects and authenticates to remote server</summary>
<shortcut>li</shortcut>
@@ -6931,7 +7046,7 @@ Logs out from the remote server. This command does not actually
connect to the remote server, it only deletes the stored username and
password from your user configuration.</doc>
</logout>
-</commands>
+</commands>
/**
* PEAR_Command_Auth (login, logout commands)
*
@@ -6949,7 +7064,7 @@ password from your user configuration.</doc>
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Auth.php,v 1.22 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Auth.php,v 1.23 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -6969,7 +7084,7 @@ require_once 'PEAR/Config.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -7041,6 +7156,9 @@ password from your user configuration.',
$reg = &$this->config->getRegistry();
$channel = $this->config->get('default_channel');
$chan = $reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$server = $this->config->get('preferred_mirror');
$remote = &$this->config->getRemote();
$username = $this->config->get('username');
@@ -7099,6 +7217,9 @@ password from your user configuration.',
$reg = &$this->config->getRegistry();
$channel = $this->config->get('default_channel');
$chan = $reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$server = $this->config->get('preferred_mirror');
$this->ui->outputData("Logging out from $server.", $command);
$this->config->remove('username');
@@ -7110,7 +7231,7 @@ password from your user configuration.',
// }}}
}
-?>
+?>
<build>
<summary>Build an Extension From C Source</summary>
<function>doBuild</function>
@@ -7119,7 +7240,7 @@ password from your user configuration.',
<doc>[package.xml]
Builds one or more extensions contained in a package.</doc>
</build>
-</commands>
+</commands>
/**
* PEAR_Command_Auth (build command)
*
@@ -7158,7 +7279,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -7223,7 +7344,7 @@ Builds one or more extensions contained in a package.'
// }}}
}
-
+
<list-channels>
<summary>List Available Channels</summary>
<function>doList</function>
@@ -7315,7 +7436,7 @@ alias.
List the files in an installed package.
</doc>
</channel-discover>
-</commands>
+</commands>
// /* vim: set expandtab tabstop=4 shiftwidth=4: */
/**
* PEAR_Command_Channels (list-channels, update-channels, channel-delete, channel-add,
@@ -7335,7 +7456,7 @@ List the files in an installed package.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Channels.php,v 1.43 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Channels.php,v 1.44 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -7353,7 +7474,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -7535,7 +7656,7 @@ List the files in an installed package.
if ($reg->channelExists($channel, true)) {
$this->ui->outputData("Updating channel \"$channel\"", $command);
$test = $reg->getChannel($channel, true);
- if (!$test) {
+ if (PEAR::isError($test)) {
$this->ui->outputData("Channel '$channel' is corrupt in registry!", $command);
$lastmodified = false;
} else {
@@ -7583,6 +7704,9 @@ List the files in an installed package.
} else {
if ($reg->isAlias($channel)) {
$temp = &$reg->getChannel($channel);
+ if (PEAR::isError($temp)) {
+ return $this->raiseError($temp);
+ }
$temp->setAlias($temp->getName(), true); // set the alias to the channel name
if ($reg->channelExists($temp->getName())) {
$this->ui->outputData('ERROR: existing channel "' . $temp->getName() .
@@ -7640,6 +7764,9 @@ List the files in an installed package.
$channel = strtolower($params[0]);
if ($reg->channelExists($channel)) {
$chan = $reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
} else {
if (strpos($channel, '://')) {
$downloader = &$this->getDownloader();
@@ -7917,6 +8044,9 @@ List the files in an installed package.
if ((!file_exists($params[0]) || is_dir($params[0]))
&& $reg->channelExists(strtolower($params[0]))) {
$c = $reg->getChannel(strtolower($params[0]));
+ if (PEAR::isError($c)) {
+ return $this->raiseError($c);
+ }
$this->ui->outputData('Retrieving channel.xml from remote server');
$dl = &$this->getDownloader(array());
// if force is specified, use a timestamp of "1" to force retrieval
@@ -8046,9 +8176,9 @@ List the files in an installed package.
'already aliased to "' . strtolower($params[1]) . '", cannot re-alias');
}
$chan = &$reg->getChannel($params[0]);
- if (!$chan) {
+ if (PEAR::isError($chan)) {
return $this->raiseError('Corrupt registry? Error retrieving channel "' . $params[0] .
- '" information');
+ '" information (' . $chan->getMessage() . ')');
}
// make it a local alias
if (!$chan->setAlias(strtolower($params[1]), true)) {
@@ -8079,13 +8209,14 @@ List the files in an installed package.
$err = $this->doAdd($command, $options, array('http://' . $params[0] . '/channel.xml'));
$this->popErrorHandling();
if (PEAR::isError($err)) {
- return $this->raiseError("Discovery of channel \"$params[0]\" failed");
+ return $this->raiseError("Discovery of channel \"$params[0]\" failed (" .
+ $err->getMessage() . ')');
}
$this->ui->outputData("Discovery of channel \"$params[0]\" succeeded", $command);
}
}
?>
-
+
/**
* PEAR_Command_Common base class
*
@@ -8103,7 +8234,7 @@ List the files in an installed package.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Common.php,v 1.30 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Common.php,v 1.32 2006/03/02 16:39:14 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -8122,7 +8253,7 @@ require_once 'PEAR.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -8341,19 +8472,21 @@ class PEAR_Command_Common extends PEAR
function run($command, $options, $params)
{
- $func = @$this->commands[$command]['function'];
- if (empty($func)) {
+ if (empty($this->commands[$command]['function'])) {
// look for shortcuts
foreach (array_keys($this->commands) as $cmd) {
- if (@$this->commands[$cmd]['shortcut'] == $command) {
- $command = $cmd;
- $func = @$this->commands[$command]['function'];
- if (empty($func)) {
+ if (isset($this->commands[$cmd]['shortcut']) && $this->commands[$cmd]['shortcut'] == $command) {
+ if (empty($this->commands[$cmd]['function'])) {
return $this->raiseError("unknown command `$command'");
+ } else {
+ $func = $this->commands[$cmd]['function'];
}
+ $command = $cmd;
break;
}
}
+ } else {
+ $func = $this->commands[$command]['function'];
}
return $this->$func($command, $options, $params);
}
@@ -8361,7 +8494,8 @@ class PEAR_Command_Common extends PEAR
// }}}
}
-?>
+?>
+
<config-show>
<summary>Show All Settings</summary>
<function>doConfigShow</function>
@@ -8452,7 +8586,7 @@ PEAR installation (using the --remoteconfig option of install, upgrade,
and uninstall).
</doc>
</config-create>
-</commands>
+</commands>
/**
* PEAR_Command_Config (config-show, config-get, config-set, config-help, config-create commands)
*
@@ -8470,7 +8604,7 @@ and uninstall).
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Config.php,v 1.49 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Config.php,v 1.51 2006/03/02 13:32:38 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -8489,7 +8623,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -8609,8 +8743,14 @@ and uninstall).
function doConfigShow($command, $options, $params)
{
+ if (is_array($params)) {
+ $layer = isset($params[0]) ? $params[0] : NULL;
+ } else {
+ $layer = NULL;
+ }
+
// $params[0] -> the layer
- if ($error = $this->_checkLayer(@$params[0])) {
+ if ($error = $this->_checkLayer($layer)) {
return $this->raiseError("config-show:$error");
}
$keys = $this->config->getKeys();
@@ -8624,7 +8764,7 @@ and uninstall).
$data = array('caption' => 'Configuration (channel ' . $channel . '):');
foreach ($keys as $key) {
$type = $this->config->getType($key);
- $value = $this->config->get($key, @$params[0], $channel);
+ $value = $this->config->get($key, $layer, $channel);
if ($type == 'password' && $value) {
$value = '********';
}
@@ -8638,7 +8778,7 @@ and uninstall).
foreach ($this->config->getLayers() as $layer) {
$data['data']['Config Files'][] = array(ucfirst($layer) . ' Configuration File', 'Filename' , $this->config->getConfFile($layer));
}
-
+
$this->ui->outputData($data, $command);
return true;
}
@@ -8648,27 +8788,38 @@ and uninstall).
function doConfigGet($command, $options, $params)
{
- // $params[0] -> the parameter
- // $params[1] -> the layer
- if ($error = $this->_checkLayer(@$params[1])) {
- return $this->raiseError("config-get:$error");
+ if (!is_array($params)) {
+ $args_cnt = 0;
+ } else {
+ $args_cnt = count($params);
}
- $channel = isset($options['channel']) ? $options['channel'] :
- $this->config->get('default_channel');
+
+ switch ($args_cnt) {
+ case 1:
+ $config_key = $params[0];
+ $layer = NULL;
+ break;
+ case 2:
+ $config_key = $params[0];
+ $layer = $params[1];
+ if ($error = $this->_checkLayer($layer)) {
+ return $this->raiseError("config-get:$error");
+ }
+ break;
+ case 0:
+ default:
+ return $this->raiseError("config-get expects 1 or 2 parameters");
+ }
+
+ $channel = isset($options['channel']) ? $options['channel'] : $this->config->get('default_channel');
$reg = &$this->config->getRegistry();
+
if (!$reg->channelExists($channel)) {
return $this->raiseError('Channel "' . $channel . '" does not exist');
}
- if (sizeof($params) < 1 || sizeof($params) > 2) {
- return $this->raiseError("config-get expects 1 or 2 parameters");
- } else {
- if (count($params) == 1) {
- $layer = null;
- } else {
- $layer = $params[1];
- }
- $this->ui->outputData($this->config->get($params[0], $layer, $channel), $command);
- }
+
+ $this->ui->outputData($this->config->get($config_key, $layer, $channel), $command);
+
return true;
}
@@ -8826,7 +8977,7 @@ and uninstall).
array(ucfirst($layer) . ' Configuration File', 'Filename' ,
$config->getConfFile($layer));
}
-
+
$this->ui->outputData($data, 'config-show');
return true;
}
@@ -8853,7 +9004,7 @@ and uninstall).
}
?>
-
+
<install>
<summary>Install Package</summary>
<function>doInstall</function>
@@ -9106,7 +9257,7 @@ package if needed.
Run post-installation scripts in package &lt;package&gt;, if any exist.
</doc>
</run-scripts>
-</commands>
+</commands>
/**
* PEAR_Command_Install (install, upgrade, upgrade-all, uninstall, bundle, run-scripts commands)
*
@@ -9124,7 +9275,7 @@ Run post-installation scripts in package &lt;package&gt;, if any exist.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Install.php,v 1.112 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Install.php,v 1.115 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -9144,7 +9295,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -9479,6 +9630,9 @@ Run post-installation scripts in package <package>, if any exist.
}
$this->config->set('default_channel', $channel);
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$dorest = true;
@@ -9644,23 +9798,29 @@ Run post-installation scripts in package <package>, if any exist.
$group['attribs']['hint'] . ')');
}
$extrainfo[] = 'To install use "pear install ' .
- $param->getPackage() . '#featurename"';
+ $reg->parsedPackageNameToString(
+ array('package' => $param->getPackage(),
+ 'channel' => $param->getChannel()), true) .
+ '#featurename"';
}
}
if (isset($options['installroot'])) {
$reg = &$this->config->getRegistry();
}
$pkg = &$reg->getPackage($param->getPackage(), $param->getChannel());
- $pkg->setConfig($this->config);
- if ($list = $pkg->listPostinstallScripts()) {
- $pn = $reg->parsedPackageNameToString(array('channel' =>
- $param->getChannel(), 'package' => $param->getPackage()), true);
- $extrainfo[] = $pn . ' has post-install scripts:';
- foreach ($list as $file) {
- $extrainfo[] = $file;
+ // $pkg may be NULL if install is a 'fake' install via --packagingroot
+ if (is_object($pkg)) {
+ $pkg->setConfig($this->config);
+ if ($list = $pkg->listPostinstallScripts()) {
+ $pn = $reg->parsedPackageNameToString(array('channel' =>
+ $param->getChannel(), 'package' => $param->getPackage()), true);
+ $extrainfo[] = $pn . ' has post-install scripts:';
+ foreach ($list as $file) {
+ $extrainfo[] = $file;
+ }
+ $extrainfo[] = 'Use "pear run-scripts ' . $pn . '" to run';
+ $extrainfo[] = 'DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES';
}
- $extrainfo[] = 'Use "pear run-scripts ' . $pn . '" to run';
- $extrainfo[] = 'DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES';
}
} else {
return $this->raiseError("$command failed");
@@ -9870,7 +10030,7 @@ Run post-installation scripts in package <package>, if any exist.
}
}
?>
-
+
<download-all>
<summary>Downloads each available package from the default channel</summary>
<function>doDownloadAll</function>
@@ -9887,7 +10047,7 @@ Requests a list of available packages from the default channel ({config default_
and downloads them to current working directory. Note: only
packages within preferred_state ({config preferred_state}) will be downloaded</doc>
</download-all>
-</commands>
+</commands>
/**
* PEAR_Command_Mirror (download-all command)
*
@@ -9904,7 +10064,7 @@ packages within preferred_state ({config preferred_state}) will be downloaded</d
* @author Alexander Merz <alexmerz@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Mirror.php,v 1.16 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Mirror.php,v 1.18 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.2.0
*/
@@ -9922,7 +10082,7 @@ require_once 'PEAR/Command/Common.php';
* @author Alexander Merz <alexmerz@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.2.0
*/
@@ -10002,6 +10162,9 @@ packages within preferred_state ({config preferred_state}) will be downloaded'
$this->config->set('default_channel', $channel);
$this->ui->outputData('Using Channel ' . $this->config->get('default_channel'));
$chan = $reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$rest = &$this->config->getREST('1.0', array());
@@ -10018,6 +10181,9 @@ packages within preferred_state ({config preferred_state}) will be downloaded'
if (PEAR::isError($cmd)) {
return $cmd;
}
+ $this->ui->outputData('Using Preferred State of ' .
+ $this->config->get('preferred_state'));
+ $this->ui->outputData('Gathering release information, please wait...');
/**
* Error handling not necessary, because already done by
* the download command
@@ -10034,7 +10200,7 @@ packages within preferred_state ({config preferred_state}) will be downloaded'
// }}}
}
-
+
<package>
<summary>Build Package</summary>
<function>doPackage</function>
@@ -10227,7 +10393,7 @@ This is not the most intelligent conversion, and should only be
used for automated conversion or learning the format.
</doc>
</convert>
-</commands>
+</commands>
/**
* PEAR_Command_Package (package, package-validate, cvsdiff, cvstag, package-dependencies,
* sign, makerpm, convert commands)
@@ -10247,7 +10413,7 @@ used for automated conversion or learning the format.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Package.php,v 1.115 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Package.php,v 1.119 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -10959,27 +11125,46 @@ used for automated conversion or learning the format.
$a = &new PEAR_Installer($ui);
return $a;
}
+
+ /**
+ * For unit testing purposes
+ */
+ function &getCommandPackaging(&$ui, &$config)
+ {
+ if (!class_exists('PEAR_Command_Packaging')) {
+ @include_once 'PEAR/Command/Packaging.php';
+ }
+
+ if (class_exists('PEAR_Command_Packaging')) {
+ $a = &new PEAR_Command_Packaging($ui, $config);
+ } else {
+ $a = null;
+ }
+ return $a;
+ }
// {{{ doMakeRPM()
- /*
-
- (cox)
-
- TODO:
- - Fill the rpm dependencies in the template file.
-
- IDEAS:
- - Instead of mapping the role to rpm vars, perhaps it's better
- to use directly the pear cmd to install the files by itself
- in %postrun so:
- pear -d php_dir=%{_libdir}/php/pear -d test_dir=.. <package>
- */
-
function doMakeRPM($command, $options, $params)
{
require_once 'System.php';
require_once 'Archive/Tar.php';
+
+ // Check to see if PEAR_Command_Packaging is installed, and
+ // transparently switch to use the "make-rpm-spec" command from it
+ // instead, if it does. Otherwise, continue to use the old version
+ // of "makerpm" supplied with this package (PEAR).
+ $packaging_cmd = $this->getCommandPackaging($this->ui, $this->config);
+ if ($packaging_cmd !== null) {
+ $this->ui->outputData('PEAR_Command_Packaging is installed; using '.
+ 'newer "make-rpm-spec" command instead');
+ return $packaging_cmd->run('make-rpm-spec', $options, $params);
+ } else {
+ $this->ui->outputData('WARNING: "pear makerpm" is now deprecated; an '.
+ 'improved version is available via "pear make-rpm-spec", which '.
+ 'is available by installing PEAR_Command_Packaging');
+ }
+
if (sizeof($params) != 1) {
return $this->raiseError("bad parameter(s), try \"help $command\"");
}
@@ -11033,6 +11218,9 @@ used for automated conversion or learning the format.
$alias = 'PEAR';
} else {
$chan = &$reg->getChannel($pf->getChannel());
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$alias = $chan->getAlias();
$alias = strtoupper($alias);
$info['possible_channel'] = $pf->getChannel() . '/';
@@ -11102,6 +11290,9 @@ used for automated conversion or learning the format.
foreach ($cfg as $k) {
if ($k == 'master_server') {
$chan = $reg->getChannel($pf->getChannel());
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$info[$k] = $chan->getServer();
continue;
}
@@ -11128,6 +11319,9 @@ used for automated conversion or learning the format.
if (isset($dep['channel']) && $dep['channel'] != 'pear.php.net' &&
$dep['channel'] != 'pecl.php.net') {
$chan = &$reg->getChannel($dep['channel']);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$package = strtoupper($chan->getAlias()) . '::' . $dep['name'];
} else {
$package = 'PEAR::' . $dep['name'];
@@ -11171,6 +11365,9 @@ used for automated conversion or learning the format.
foreach ($deps['required']['package'] as $dep) {
if ($dep['channel'] != 'pear.php.net' && $dep['channel'] != 'pecl.php.net') {
$chan = &$reg->getChannel($dep['channel']);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
$package = strtoupper($chan->getAlias()) . '::' . $dep['name'];
} else {
$package = 'PEAR::' . $dep['name'];
@@ -11360,7 +11557,7 @@ used for automated conversion or learning the format.
}
?>
-
+
<pickle>
<summary>Build PECL Package</summary>
<function>doPackage</function>
@@ -11399,7 +11596,7 @@ will cause pickle to fail, and output an error message. If your package2.xml
uses any of these features, you are best off using PEAR_PackageFileManager to
generate both package.xml.</doc>
</pickle>
-</commands>
+</commands>
/**
* PEAR_Command_Pickle (pickle command)
*
@@ -11434,7 +11631,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 2005-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.1
*/
@@ -11775,7 +11972,7 @@ generate both package.xml.
}
?>
-
+
<list>
<summary>List Installed Packages In The Default Channel</summary>
<function>doList</function>
@@ -11828,7 +12025,7 @@ Displays information about a package. The package argument may be a
local package file, an URL to a package file, or the name of an
installed package.</doc>
</info>
-</commands>
+</commands>
/**
* PEAR_Command_Registry (list, list-files, shell-test, info commands)
*
@@ -11865,7 +12062,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -12825,7 +13022,7 @@ installed package.'
}
?>
-
+
<remote-info>
<summary>Information About Remote Packages</summary>
<function>doRemoteInfo</function>
@@ -12916,7 +13113,7 @@ Clear the XML-RPC/REST cache. See also the cache_ttl configuration
parameter.
</doc>
</clear-cache>
-</commands>
+</commands>
/**
* PEAR_Command_Remote (remote-info, list-upgrades, remote-list, search, list-all, download,
* clear-cache commands)
@@ -12935,7 +13132,7 @@ parameter.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Remote.php,v 1.87 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Remote.php,v 1.90.2.2 2006/03/23 05:45:17 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -12955,7 +13152,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -13076,6 +13273,13 @@ parameter.
function _checkChannelForStatus($channel, $chan)
{
+ if (PEAR::isError($chan)) {
+ $this->raiseError($chan);
+ }
+ if (!is_a($chan, 'PEAR_ChannelFile')) {
+ return $this->raiseError('Internal corruption error: invalid channel "' .
+ $channel . '"');
+ }
$rest = new PEAR_REST($this->config);
PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
$a = $rest->downloadHttp('http://' . $channel .
@@ -13106,7 +13310,9 @@ parameter.
$channel = $parsed['channel'];
$this->config->set('default_channel', $channel);
$chan = $reg->getChannel($channel);
- $this->_checkChannelForStatus($channel, $chan);
+ if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) {
+ return $e;
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$rest = &$this->config->getREST('1.0', array());
@@ -13151,7 +13357,9 @@ parameter.
}
}
$chan = $reg->getChannel($channel);
- $this->_checkChannelForStatus($channel, $chan);
+ if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) {
+ return $e;
+ }
$list_options = false;
if ($this->config->get('preferred_state') == 'stable') {
$list_options = true;
@@ -13217,7 +13425,9 @@ parameter.
$list_options = true;
}
$chan = $reg->getChannel($channel);
- $this->_checkChannelForStatus($channel, $chan);
+ if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) {
+ return $e;
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.1', $this->config->get('preferred_mirror'))) {
// use faster list-all if available
@@ -13333,7 +13543,9 @@ parameter.
}
}
$chan = $reg->getChannel($channel);
- $this->_checkChannelForStatus($channel, $chan);
+ if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) {
+ return $e;
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$rest = &$this->config->getREST('1.0', array());
@@ -13398,6 +13610,8 @@ parameter.
{
// make certain that dependencies are ignored
$options['downloadonly'] = 1;
+ // eliminate error messages for preferred_state-related errors
+ $options['ignorepreferred_state'] = 1;
$downloader = &$this->getDownloader($options);
$downloader->setDownloadDir(getcwd());
$errors = array();
@@ -13408,10 +13622,9 @@ parameter.
}
$errors = $downloader->getErrorMsgs();
if (count($errors)) {
- $errinfo = array();
- $errinfo['data'] = array($errors);
- $errinfo['headline'] = 'Download Errors';
- $this->ui->outputData($errinfo);
+ foreach ($errors as $error) {
+ $this->ui->outputData($error);
+ }
return $this->raiseError("$command failed");
}
$downloaded = $downloader->getDownloadedPackages();
@@ -13434,6 +13647,9 @@ parameter.
function doListUpgrades($command, $options, $params)
{
require_once 'PEAR/Common.php';
+ if (isset($params[0]) && !PEAR_Common::betterStates($params[0])) {
+ return $this->raiseError($params[0] . ' is not a valid state (stable/beta/alpha/devel/etc.) try "pear help list-upgrades"');
+ }
$savechannel = $channel = $this->config->get('default_channel');
$reg = &$this->config->getRegistry();
foreach ($reg->listChannels() as $channel) {
@@ -13452,7 +13668,9 @@ parameter.
}
$caption = $channel . ' Available Upgrades';
$chan = $reg->getChannel($channel);
- $this->_checkChannelForStatus($channel, $chan);
+ if (PEAR::isError($e = $this->_checkChannelForStatus($channel, $chan))) {
+ return $e;
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$rest = &$this->config->getREST('1.0', array());
@@ -13565,7 +13783,7 @@ parameter.
}
?>
-
+
<run-tests>
<summary>Run Regression Tests</summary>
<function>doRunTests</function>
@@ -13596,11 +13814,15 @@ parameter.
<shortopt>p</shortopt>
<doc>Treat parameters as installed packages from which to run tests</doc>
</package>
+ <phpunit>
+ <shortopt>u</shortopt>
+ <doc>Search parameters for AllTests.php, and use that to run phpunit-based tests</doc>
+ </phpunit>
</options>
<doc>[testfile|dir ...]
Run regression tests with PHP&apos;s regression testing script (run-tests.php).</doc>
</run-tests>
-</commands>
+</commands>
/**
* PEAR_Command_Test (run-tests)
*
@@ -13619,7 +13841,7 @@ Run regression tests with PHP&apos;s regression testing script (run-tests.php).<
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Test.php,v 1.6 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Test.php,v 1.9 2006/02/03 22:28:08 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -13639,7 +13861,7 @@ require_once 'PEAR/Command/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -13679,6 +13901,10 @@ class PEAR_Command_Test extends PEAR_Command_Common
'shortopt' => 'p',
'doc' => 'Treat parameters as installed packages from which to run tests',
),
+ 'phpunit' => array(
+ 'shortopt' => 'u',
+ 'doc' => 'Search parameters for AllTests.php, and use that to run phpunit-based tests',
+ ),
),
'doc' => '[testfile|dir ...]
Run regression tests with PHP\'s regression testing script (run-tests.php).',
@@ -13739,8 +13965,14 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
if (isset($atts['role']) && $atts['role'] != 'test') {
continue;
}
- if (!preg_match('/\.phpt$/', $name)) {
- continue;
+ if (isset($options['phpunit'])) {
+ if (!preg_match('/AllTests\.php$/i', $name)) {
+ continue;
+ }
+ } else {
+ if (!preg_match('/\.phpt$/', $name)) {
+ continue;
+ }
}
$params[] = $atts['installed_as'];
}
@@ -13748,21 +13980,34 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
}
foreach ($params as $p) {
if (is_dir($p)) {
- $dir = System::find(array($p, '-type', 'f',
- '-maxdepth', $depth,
- '-name', '*.phpt'));
+ if (isset($options['phpunit'])) {
+ $dir = System::find(array($p, '-type', 'f',
+ '-maxdepth', $depth,
+ '-name', 'AllTests.php'));
+ } else {
+ $dir = System::find(array($p, '-type', 'f',
+ '-maxdepth', $depth,
+ '-name', '*.phpt'));
+ }
$tests = array_merge($tests, $dir);
} else {
- if (!@file_exists($p)) {
- if (!preg_match('/\.phpt$/', $p)) {
- $p .= '.phpt';
+ if (isset($options['phpunit'])) {
+ if (!preg_match('/AllTests\.php$/i', $p)) {
+ continue;
}
- $dir = System::find(array(dirname($p), '-type', 'f',
- '-maxdepth', $depth,
- '-name', $p));
- $tests = array_merge($tests, $dir);
- } else {
$tests[] = $p;
+ } else {
+ if (!@file_exists($p)) {
+ if (!preg_match('/\.phpt$/', $p)) {
+ $p .= '.phpt';
+ }
+ $dir = System::find(array(dirname($p), '-type', 'f',
+ '-maxdepth', $depth,
+ '-name', $p));
+ $tests = array_merge($tests, $dir);
+ } else {
+ $tests[] = $p;
+ }
}
}
}
@@ -13797,11 +14042,6 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
$this->ui->log(0, $result->getMessage());
continue;
}
- if (OS_WINDOWS) {
- for($i=0;$i<2000;$i++) {
- $i = $i; // delay - race conditions on windows
- }
- }
if (isset($options['realtimelog'])) {
$fp = @fopen('run-tests.log', 'a');
if ($fp) {
@@ -13857,7 +14097,7 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
}
?>
-
+
/**
* PEAR_Downloader_Package
*
@@ -13874,11 +14114,16 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Package.php,v 1.90 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Package.php,v 1.91 2006/01/23 19:05:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
/**
+ * Error code when parameter initialization fails because no releases
+ * exist within preferred_state, but releases do exist
+ */
+define('PEAR_DOWNLOADER_PACKAGE_STATE', -1003);
+/**
* Coordinates download parameters and manages their dependencies
* prior to downloading them.
*
@@ -13903,7 +14148,7 @@ Run regression tests with PHP\'s regression testing script (run-tests.php).',
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -14006,7 +14251,7 @@ class PEAR_Downloader_Package
* This is the heart of the PEAR_Downloader_Package(), and is used in
* {@link PEAR_Downloader::download()}
* @param string
- * @return void|PEAR_Error
+ * @return bool|PEAR_Error
*/
function initialize($param)
{
@@ -14033,6 +14278,10 @@ class PEAR_Downloader_Package
}
$err = $this->_fromString($param);
if (PEAR::isError($err) || !$this->_valid) {
+ if (PEAR::isError($err) &&
+ $err->getCode() == PEAR_DOWNLOADER_PACKAGE_STATE) {
+ return false; // instruct the downloader to silently skip
+ }
if (isset($this->_type) && $this->_type == 'local' &&
PEAR::isError($origErr)) {
if (is_array($origErr->getUserInfo())) {
@@ -14068,6 +14317,7 @@ class PEAR_Downloader_Package
}
}
}
+ return true;
}
/**
@@ -15381,7 +15631,11 @@ class PEAR_Downloader_Package
$this->_registry->parsedPackageNameToString($pname, true) .
' can be installed with "pecl install ' . $pname['package'] .
'"');
+ } else {
+ $pname['channel'] = 'pear.php.net';
}
+ } else {
+ $pname['channel'] = 'pear.php.net';
}
}
return $info;
@@ -15531,6 +15785,22 @@ class PEAR_Downloader_Package
$vs = ' within preferred state "' . $this->_downloader->config->get(
'preferred_state') . '"';
}
+ $options = $this->_downloader->getOptions();
+ // this is only set by the "download-all" command
+ if (isset($options['ignorepreferred_state'])) {
+ $err = PEAR::raiseError(
+ 'Failed to download ' . $this->_registry->parsedPackageNameToString(
+ array('channel' => $pname['channel'], 'package' => $pname['package']),
+ true)
+ . $vs .
+ ', latest release is version ' . $info['version'] .
+ ', stability "' . $info['info']->getState() . '", use "' .
+ $this->_registry->parsedPackageNameToString(
+ array('channel' => $pname['channel'], 'package' => $pname['package'],
+ 'version' => $info['version'])) . '" to install',
+ PEAR_DOWNLOADER_PACKAGE_STATE);
+ return $err;
+ }
$err = PEAR::raiseError(
'Failed to download ' . $this->_registry->parsedPackageNameToString(
array('channel' => $pname['channel'], 'package' => $pname['package']),
@@ -15548,7 +15818,7 @@ class PEAR_Downloader_Package
}
}
?>
-
+
/**
* PEAR_Frontend_CLI
*
@@ -15566,7 +15836,7 @@ class PEAR_Downloader_Package
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: CLI.php,v 1.57 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: CLI.php,v 1.59 2006/03/02 13:16:19 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -15583,7 +15853,7 @@ require_once 'PEAR/Frontend.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -16005,12 +16275,17 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
} else {
$w = strlen($col);
}
- if ($w > @$this->params['widest'][$i]) {
+
+ if (isset($this->params['widest'][$i])) {
+ if ($w > $this->params['widest'][$i]) {
+ $this->params['widest'][$i] = $w;
+ }
+ } else {
$this->params['widest'][$i] = $w;
}
$tmp = count_chars($columns[$i], 1);
// handle unix, mac and windows formats
- $lines = (isset($tmp[10]) ? $tmp[10] : @$tmp[13]) + 1;
+ $lines = (isset($tmp[10]) ? $tmp[10] : (isset($tmp[13]) ? $tmp[13] : 0)) + 1;
if ($lines > $highest) {
$highest = $lines;
}
@@ -16285,7 +16560,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
}
?>
-
+
/**
* Base class for all installation roles.
*
@@ -16317,7 +16592,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -16464,7 +16739,7 @@ class PEAR_Installer_Role_Common
return $roleInfo['phpextension'];
}
}
-?>
+?>
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -16476,7 +16751,7 @@ class PEAR_Installer_Role_Common
<executable />
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Data
*
@@ -16504,12 +16779,12 @@ class PEAR_Installer_Role_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
-?>
+?>
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -16521,7 +16796,7 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Doc
*
@@ -16549,12 +16824,12 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
-?>
+?>
<releasetypes>extbin</releasetypes>
<installable>1</installable>
<locationconfig>ext_dir</locationconfig>
@@ -16564,7 +16839,7 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
<executable />
<phpextension>1</phpextension>
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Ext
*
@@ -16592,12 +16867,12 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {}
-?>
+?>
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -16609,7 +16884,7 @@ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Php
*
@@ -16637,12 +16912,12 @@ class PEAR_Installer_Role_Ext extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
-?>
+?>
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -16654,7 +16929,7 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
<executable>1</executable>
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Script
*
@@ -16682,12 +16957,12 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
-?>
+?>
<releasetypes>extsrc</releasetypes>
<installable />
<locationconfig />
@@ -16697,7 +16972,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Src
*
@@ -16725,7 +17000,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -16736,7 +17011,7 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common
$installer->source_files++;
}
}
-?>
+?>
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -16748,7 +17023,7 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common
<executable />
<phpextension />
<config_vars />
-</role>
+</role>
/**
* PEAR_Installer_Role_Test
*
@@ -16776,12 +17051,12 @@ class PEAR_Installer_Role_Src extends PEAR_Installer_Role_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {}
-?>
+?>
/**
* PEAR_Installer_Role
*
@@ -16815,7 +17090,7 @@ require_once 'PEAR/XMLParser.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -17029,7 +17304,7 @@ class PEAR_Installer_Role
}
}
?>
-
+
/**
* package.xml generation class, package.xml version 1.0
*
@@ -17066,7 +17341,7 @@ require_once 'PEAR/PackageFile/v2.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -17083,7 +17358,7 @@ class PEAR_PackageFile_Generator_v1
function getPackagerVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
/**
@@ -17237,7 +17512,7 @@ class PEAR_PackageFile_Generator_v1
);
$ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n";
- $ret .= "<package version=\"1.0\" packagerversion=\"1.4.6\">\n" .
+ $ret .= "<package version=\"1.0\" packagerversion=\"1.4.9\">\n" .
" <name>$pkginfo[package]</name>";
if (isset($pkginfo['extends'])) {
$ret .= "\n<extends>$pkginfo[extends]</extends>";
@@ -18295,7 +18570,7 @@ class PEAR_PackageFile_Generator_v1
return $ret;
}
}
-?>
+?>
/**
* package.xml generation class, package.xml version 2.0
*
@@ -18313,7 +18588,7 @@ class PEAR_PackageFile_Generator_v1
* @author Stephan Schmidt (original XML_Serializer code)
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.33 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.34 2006/03/02 20:50:59 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -18332,7 +18607,7 @@ require_once 'System.php';
* @author Stephan Schmidt (original XML_Serializer code)
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -18358,7 +18633,7 @@ class PEAR_PackageFile_Generator_v2
'indentAttributes' => false, // indent the attributes, if set to '_auto', it will indent attributes so they all start at the same column
'mode' => 'simplexml', // use 'simplexml' to use parent name as tagname if transforming an indexed array
'addDoctype' => false, // add a doctype declaration
- 'doctype' => null, // supply a string or an array with id and uri ({@see XML_Util::getDoctypeDeclaration()}
+ 'doctype' => null, // supply a string or an array with id and uri ({@see PEAR_PackageFile_Generator_v2_PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration()}
'rootName' => 'package', // name of the root tag
'rootAttributes' => array(
'version' => '2.0',
@@ -18411,7 +18686,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
*/
function getPackagerVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
/**
@@ -18655,7 +18930,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
}
$this->options['beautifyFilelist'] = true;
}
- $arr['attribs']['packagerversion'] = '1.4.6';
+ $arr['attribs']['packagerversion'] = '1.4.9';
if ($this->serialize($arr, $options)) {
return $this->_serializedData . "\n";
}
@@ -18834,7 +19109,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
// add doctype declaration
if ($this->options['addDoctype'] === true) {
- $this->_serializedData = XML_Util::getDoctypeDeclaration($tagName, $this->options['doctype'])
+ $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration($tagName, $this->options['doctype'])
. $this->options['linebreak']
. $this->_serializedData;
}
@@ -18847,7 +19122,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
} else {
$encoding = null;
}
- $this->_serializedData = XML_Util::getXMLDeclaration('1.0', $encoding)
+ $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration('1.0', $encoding)
. $this->options['linebreak']
. $this->_serializedData;
}
@@ -18910,7 +19185,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
* @param string $tagName name of the root tag
* @param array $attributes attributes for the root tag
* @return string $string serialized data
- * @uses XML_Util::isValidName() to check, whether key has to be substituted
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::isValidName() to check, whether key has to be substituted
*/
function _serializeArray(&$array, $tagName = null, $attributes = array())
{
@@ -18992,7 +19267,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
if ($this->options['scalarAsAttributes'] === true) {
foreach ($array as $key => $value) {
- if (is_scalar($value) && (XML_Util::isValidName($key) === true)) {
+ if (is_scalar($value) && (PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key) === true)) {
unset($array[$key]);
$attributes[$this->options['prependAttributes'].$key] = $value;
}
@@ -19019,7 +19294,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
// copy key
$origKey = $key;
// key cannot be used as tagname => use default tag
- $valid = XML_Util::isValidName($key);
+ $valid = PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key);
if (PEAR::isError($valid)) {
if ($this->options['classAsTagName'] && is_object($value)) {
$key = get_class($value);
@@ -19139,31 +19414,23 @@ http://pear.php.net/dtd/package-2.0.xsd',
if (is_scalar($tag['content']) || is_null($tag['content'])) {
if ($this->options['encoding'] == 'UTF-8' &&
version_compare(phpversion(), '5.0.0', 'lt')) {
- $encoding = XML_UTIL_ENTITIES_UTF8_XML;
+ $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML;
} else {
- $encoding = XML_UTIL_ENTITIES_XML;
+ $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML;
}
- $tag = XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $this->options['linebreak'], $encoding);
+ $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $this->options['linebreak'], $encoding);
} elseif (is_array($tag['content'])) {
$tag = $this->_serializeArray($tag['content'], $tag['qname'], $tag['attributes']);
} elseif (is_object($tag['content'])) {
$tag = $this->_serializeObject($tag['content'], $tag['qname'], $tag['attributes']);
} elseif (is_resource($tag['content'])) {
settype($tag['content'], 'string');
- $tag = XML_Util::createTagFromArray($tag, $replaceEntities);
+ $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities);
}
return $tag;
}
}
-//foreach (explode(PATH_SEPARATOR, ini_get('include_path')) as $path) {
-// $t = $path . DIRECTORY_SEPARATOR . 'XML' . DIRECTORY_SEPARATOR .
-// 'Util';
-// if (file_exists($t) && is_readable($t)) {
-// include_once 'XML/Util';
-// }
-//}
-//if (!class_exists('XML_Util')) {
// well, it's one way to do things without extra deps ...
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
@@ -19182,76 +19449,79 @@ http://pear.php.net/dtd/package-2.0.xsd',
// | Authors: Stephan Schmidt <schst@php-tools.net> |
// +----------------------------------------------------------------------+
//
-// $Id: v2.php,v 1.33 2006/01/06 04:47:37 cellog Exp $
+// $Id: v2.php,v 1.34 2006/03/02 20:50:59 cellog Exp $
/**
* error code for invalid chars in XML name
*/
-define("XML_UTIL_ERROR_INVALID_CHARS", 51);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS", 51);
/**
* error code for invalid chars in XML name
*/
-define("XML_UTIL_ERROR_INVALID_START", 52);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START", 52);
/**
* error code for non-scalar tag content
*/
-define("XML_UTIL_ERROR_NON_SCALAR_CONTENT", 60);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT", 60);
/**
* error code for missing tag name
*/
-define("XML_UTIL_ERROR_NO_TAG_NAME", 61);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME", 61);
/**
* replace XML entities
*/
-define("XML_UTIL_REPLACE_ENTITIES", 1);
+define("PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES", 1);
/**
* embedd content in a CData Section
*/
-define("XML_UTIL_CDATA_SECTION", 2);
+define("PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION", 2);
/**
* do not replace entitites
*/
-define("XML_UTIL_ENTITIES_NONE", 0);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE", 0);
/**
* replace all XML entitites
* This setting will replace <, >, ", ' and &
*/
-define("XML_UTIL_ENTITIES_XML", 1);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML", 1);
/**
* replace only required XML entitites
* This setting will replace <, " and &
*/
-define("XML_UTIL_ENTITIES_XML_REQUIRED", 2);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED", 2);
/**
* replace HTML entitites
* @link http://www.php.net/htmlentities
*/
-define("XML_UTIL_ENTITIES_HTML", 3);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML", 3);
/**
* replace all XML entitites, and encode from ISO-8859-1 to UTF-8
* This setting will replace <, >, ", ' and &
*/
-define("XML_UTIL_ENTITIES_UTF8_XML", 4);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML", 4);
/**
* utility class for working with XML documents
+ *
+ * customized version of XML_Util 0.6.0
*
* @category XML
- * @package XML_Util
+ * @package PEAR
* @version 0.6.0
* @author Stephan Schmidt <schst@php.net>
+ * @author Gregory Beaver <cellog@php.net>
*/
-class XML_Util {
+class PEAR_PackageFile_Generator_v2_XML_Util {
/**
* return API version
@@ -19275,19 +19545,19 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // replace XML entites:
- * $string = XML_Util::replaceEntities("This string contains < & >.");
+ * $string = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities("This string contains < & >.");
* </code>
*
* @access public
* @static
* @param string string where XML special chars should be replaced
- * @param integer setting for entities in attribute values (one of XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
+ * @param integer setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML)
* @return string string with replaced chars
*/
- function replaceEntities($string, $replaceEntities = XML_UTIL_ENTITIES_XML)
+ function replaceEntities($string, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
switch ($replaceEntities) {
- case XML_UTIL_ENTITIES_UTF8_XML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML:
return strtr(utf8_encode($string),array(
'&' => '&amp;',
'>' => '&gt;',
@@ -19295,7 +19565,7 @@ class XML_Util {
'"' => '&quot;',
'\'' => '&apos;' ));
break;
- case XML_UTIL_ENTITIES_XML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML:
return strtr($string,array(
'&' => '&amp;',
'>' => '&gt;',
@@ -19303,13 +19573,13 @@ class XML_Util {
'"' => '&quot;',
'\'' => '&apos;' ));
break;
- case XML_UTIL_ENTITIES_XML_REQUIRED:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED:
return strtr($string,array(
'&' => '&amp;',
'<' => '&lt;',
'"' => '&quot;' ));
break;
- case XML_UTIL_ENTITIES_HTML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML:
return htmlspecialchars($string);
break;
}
@@ -19323,7 +19593,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // get an XML declaration:
- * $xmlDecl = XML_Util::getXMLDeclaration("1.0", "UTF-8", true);
+ * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration("1.0", "UTF-8", true);
* </code>
*
* @access public
@@ -19332,7 +19602,7 @@ class XML_Util {
* @param string $encoding character encoding
* @param boolean $standAlone document is standalone (or not)
* @return string $decl xml declaration
- * @uses XML_Util::attributesToString() to serialize the attributes of the XML declaration
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the XML declaration
*/
function getXMLDeclaration($version = "1.0", $encoding = null, $standalone = null)
{
@@ -19348,7 +19618,7 @@ class XML_Util {
$attributes["standalone"] = $standalone ? "yes" : "no";
}
- return sprintf("<?xml%s?>", XML_Util::attributesToString($attributes, false));
+ return sprintf("<?xml%s?>", PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, false));
}
/**
@@ -19358,7 +19628,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // get a doctype declaration:
- * $xmlDecl = XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd");
+ * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd");
* </code>
*
* @access public
@@ -19398,7 +19668,7 @@ class XML_Util {
* "argh" => "tomato"
* );
*
- * $attList = XML_Util::attributesToString($att);
+ * $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($att);
* </code>
*
* @access public
@@ -19408,12 +19678,12 @@ class XML_Util {
* @param boolean $multiline use linebreaks, if more than one attribute is given
* @param string $indent string used for indentation of multiline attributes
* @param string $linebreak string used for linebreaks of multiline attributes
- * @param integer $entities setting for entities in attribute values (one of XML_UTIL_ENTITIES_NONE, XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
+ * @param integer $entities setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML)
* @return string string representation of the attributes
- * @uses XML_Util::replaceEntities() to replace XML entities in attribute values
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities() to replace XML entities in attribute values
* @todo allow sort also to be an options array
*/
- function attributesToString($attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = XML_UTIL_ENTITIES_XML)
+ function attributesToString($attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
/**
* second parameter may be an array
@@ -19444,16 +19714,16 @@ class XML_Util {
}
if( !$multiline || count($attributes) == 1) {
foreach ($attributes as $key => $value) {
- if ($entities != XML_UTIL_ENTITIES_NONE) {
- $value = XML_Util::replaceEntities($value, $entities);
+ if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) {
+ $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities);
}
$string .= ' '.$key.'="'.$value.'"';
}
} else {
$first = true;
foreach ($attributes as $key => $value) {
- if ($entities != XML_UTIL_ENTITIES_NONE) {
- $value = XML_Util::replaceEntities($value, $entities);
+ if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) {
+ $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities);
}
if ($first) {
$string .= " ".$key.'="'.$value.'"';
@@ -19470,14 +19740,14 @@ class XML_Util {
/**
* create a tag
*
- * This method will call XML_Util::createTagFromArray(), which
+ * This method will call PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray(), which
* is more flexible.
*
* <code>
* require_once 'XML/Util.php';
*
* // create an XML tag:
- * $tag = XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#");
* </code>
*
* @access public
@@ -19492,10 +19762,10 @@ class XML_Util {
* @param string $linebreak string used for linebreaks
* @param string $encoding encoding that should be used to translate content
* @return string $string XML tag
- * @see XML_Util::createTagFromArray()
- * @uses XML_Util::createTagFromArray() to create the tag
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray()
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray() to create the tag
*/
- function createTag($qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = XML_UTIL_ENTITIES_XML)
+ function createTag($qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
$tag = array(
"qname" => $qname,
@@ -19512,7 +19782,7 @@ class XML_Util {
$tag["namespaceUri"] = $namespaceUri;
}
- return XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $linebreak, $encoding);
+ return PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $linebreak, $encoding);
}
/**
@@ -19539,7 +19809,7 @@ class XML_Util {
* "content" => "I'm inside the tag",
* );
* // creating a tag with qualified name and namespaceUri
- * $string = XML_Util::createTagFromArray($tag);
+ * $string = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag);
* </code>
*
* @access public
@@ -19550,18 +19820,18 @@ class XML_Util {
* @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column)
* @param string $linebreak string used for linebreaks
* @return string $string XML tag
- * @see XML_Util::createTag()
- * @uses XML_Util::attributesToString() to serialize the attributes of the tag
- * @uses XML_Util::splitQualifiedName() to get local part and namespace of a qualified name
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createTag()
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the tag
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName() to get local part and namespace of a qualified name
*/
- function createTagFromArray($tag, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = XML_UTIL_ENTITIES_XML)
+ function createTagFromArray($tag, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
if (isset($tag["content"]) && !is_scalar($tag["content"])) {
- return XML_Util::raiseError( "Supplied non-scalar value as tag content", XML_UTIL_ERROR_NON_SCALAR_CONTENT );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "Supplied non-scalar value as tag content", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT );
}
if (!isset($tag['qname']) && !isset($tag['localPart'])) {
- return XML_Util::raiseError( 'You must either supply a qualified name (qname) or local tag name (localPart).', XML_UTIL_ERROR_NO_TAG_NAME );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( 'You must either supply a qualified name (qname) or local tag name (localPart).', PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME );
}
// if no attributes hav been set, use empty attributes
@@ -19579,7 +19849,7 @@ class XML_Util {
}
// namespace URI is set, but no namespace
} elseif (isset($tag["namespaceUri"]) && !isset($tag["namespace"])) {
- $parts = XML_Util::splitQualifiedName($tag["qname"]);
+ $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($tag["qname"]);
$tag["localPart"] = $parts["localPart"];
if (isset($parts["namespace"])) {
$tag["namespace"] = $parts["namespace"];
@@ -19604,14 +19874,14 @@ class XML_Util {
}
// create attribute list
- $attList = XML_Util::attributesToString($tag["attributes"], true, $multiline, $indent, $linebreak );
+ $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($tag["attributes"], true, $multiline, $indent, $linebreak );
if (!isset($tag["content"]) || (string)$tag["content"] == '') {
$tag = sprintf("<%s%s />", $tag["qname"], $attList);
} else {
- if ($replaceEntities == XML_UTIL_REPLACE_ENTITIES) {
- $tag["content"] = XML_Util::replaceEntities($tag["content"], $encoding);
- } elseif ($replaceEntities == XML_UTIL_CDATA_SECTION) {
- $tag["content"] = XML_Util::createCDataSection($tag["content"]);
+ if ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES) {
+ $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($tag["content"], $encoding);
+ } elseif ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION) {
+ $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection($tag["content"]);
}
$tag = sprintf("<%s%s>%s</%s>", $tag["qname"], $attList, $tag["content"], $tag["qname"] );
}
@@ -19625,7 +19895,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#");
* </code>
*
* @access public
@@ -19637,7 +19907,7 @@ class XML_Util {
* @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column)
* @param string $linebreak string used for linebreaks
* @return string $string XML start element
- * @see XML_Util::createEndElement(), XML_Util::createTag()
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createEndElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag()
*/
function createStartElement($qname, $attributes = array(), $namespaceUri = null, $multiline = false, $indent = '_auto', $linebreak = "\n")
{
@@ -19647,7 +19917,7 @@ class XML_Util {
}
if ($namespaceUri != null) {
- $parts = XML_Util::splitQualifiedName($qname);
+ $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($qname);
}
// check for multiline attributes
@@ -19668,7 +19938,7 @@ class XML_Util {
}
// create attribute list
- $attList = XML_Util::attributesToString($attributes, true, $multiline, $indent, $linebreak);
+ $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, true, $multiline, $indent, $linebreak);
$element = sprintf("<%s%s>", $qname, $attList);
return $element;
}
@@ -19680,14 +19950,14 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createEndElement("myNs:myTag");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createEndElement("myNs:myTag");
* </code>
*
* @access public
* @static
* @param string $qname qualified tagname (including namespace)
* @return string $string XML end element
- * @see XML_Util::createStartElement(), XML_Util::createTag()
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createStartElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag()
*/
function createEndElement($qname)
{
@@ -19702,7 +19972,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createComment("I am a comment");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createComment("I am a comment");
* </code>
*
* @access public
@@ -19723,7 +19993,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // create a CData section
- * $tag = XML_Util::createCDataSection("I am content.");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection("I am content.");
* </code>
*
* @access public
@@ -19743,7 +20013,7 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // split qualified tag
- * $parts = XML_Util::splitQualifiedName("xslt:stylesheet");
+ * $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName("xslt:stylesheet");
* </code>
* the returned array will contain two elements:
* <pre>
@@ -19788,8 +20058,8 @@ class XML_Util {
* require_once 'XML/Util.php';
*
* // verify tag name
- * $result = XML_Util::isValidName("invalidTag?");
- * if (XML_Util::isError($result)) {
+ * $result = PEAR_PackageFile_Generator_v2_XML_Util::isValidName("invalidTag?");
+ * if (PEAR_PackageFile_Generator_v2_XML_Util::isError($result)) {
* print "Invalid XML name: " . $result->getMessage();
* }
* </code>
@@ -19804,19 +20074,19 @@ class XML_Util {
{
// check for invalid chars
if (!preg_match("/^[[:alnum:]_\-.]$/", $string{0})) {
- return XML_Util::raiseError( "XML names may only start with letter or underscore", XML_UTIL_ERROR_INVALID_START );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only start with letter or underscore", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START );
}
// check for invalid chars
if (!preg_match("/^([a-zA-Z_]([a-zA-Z0-9_\-\.]*)?:)?[a-zA-Z_]([a-zA-Z0-9_\-\.]+)?$/", $string)) {
- return XML_Util::raiseError( "XML names may only contain alphanumeric chars, period, hyphen, colon and underscores", XML_UTIL_ERROR_INVALID_CHARS );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only contain alphanumeric chars, period, hyphen, colon and underscores", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS );
}
// XML name is valid
return true;
}
/**
- * replacement for XML_Util::raiseError
+ * replacement for PEAR_PackageFile_Generator_v2_XML_Util::raiseError
*
* Avoids the necessity to always require
* PEAR.php
@@ -19832,8 +20102,7 @@ class XML_Util {
return PEAR::raiseError($msg, $code);
}
}
-//} // if (!class_exists('XML_Util'))
-?>
+?>
/**
* package.xml parsing class, package.xml version 1.0
*
@@ -20293,7 +20562,7 @@ class PEAR_PackageFile_Parser_v1
// }}}
}
-?>
+?>
/**
* package.xml parsing class, package.xml version 2.0
*
@@ -20310,7 +20579,7 @@ class PEAR_PackageFile_Parser_v1
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.18 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.19 2006/01/23 17:39:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -20392,7 +20661,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
* a subclass
* @return PEAR_PackageFile_v2
*/
- function parse($data, $file, $archive = false, $class = 'PEAR_PackageFile_v2')
+ function &parse($data, $file, $archive = false, $class = 'PEAR_PackageFile_v2')
{
if (PEAR::isError($err = parent::parse($data, $file))) {
return $err;
@@ -20407,7 +20676,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
return $ret;
}
}
-?>
+?>
/**
* PEAR_PackageFile_v2, package.xml version 2.0, read/write version
*
@@ -20424,7 +20693,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: rw.php,v 1.13 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: rw.php,v 1.15 2006/01/28 17:35:11 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a8
*/
@@ -20438,7 +20707,7 @@ require_once 'PEAR/PackageFile/v2.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a8
*/
@@ -20649,7 +20918,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
$this->_packageInfo[$role] = array_values($this->_packageInfo[$role]);
}
}
- $this->addMaintainer($newrole, $handle, $name, $email);
+ $this->addMaintainer($newrole, $handle, $name, $email, $active);
$this->_isValid = 0;
}
@@ -21917,7 +22186,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
'stability' =>
$this->getStability(),
'date' => $this->getDate(),
- 'license' => $this->getLicense(),
+ 'license' => $this->getLicense(true),
'notes' => $notes ? $notes : $this->getNotes()
);
}
@@ -21963,7 +22232,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
unset($this->_packageInfo['changelog']);
}
}
-?>
+?>
//
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -21982,7 +22251,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
// | |
// +----------------------------------------------------------------------+
//
-// $Id: Validator.php,v 1.83 2006/01/06 04:47:37 cellog Exp $
+// $Id: Validator.php,v 1.86 2006/03/02 18:14:13 cellog Exp $
/**
* Private validation class used by PEAR_PackageFile_v2 - do not use directly, its
* sole purpose is to split up the PEAR/PackageFile/v2.php file to make it smaller
@@ -22010,6 +22279,10 @@ class PEAR_PackageFile_v2_Validator
/**
* @var int
*/
+ var $_filesValid = 0;
+ /**
+ * @var int
+ */
var $_curState = 0;
/**
* @param PEAR_PackageFile_v2
@@ -22187,7 +22460,7 @@ class PEAR_PackageFile_v2_Validator
$this->_validateRelease();
if (!$this->_stack->hasErrors()) {
$chan = $this->_pf->_registry->getChannel($this->_pf->getChannel(), true);
- if (!$chan) {
+ if (PEAR::isError($chan)) {
$this->_unknownChannel($this->_pf->getChannel());
} else {
$valpack = $chan->getValidationPackage();
@@ -23674,6 +23947,8 @@ class PEAR_PackageFile_v2_Validator
function analyzeSourceCode($file, $string = false)
{
if (!function_exists("token_get_all")) {
+ $this->_stack->push(__FUNCTION__, 'error', array('file' => $file),
+ 'Parser error: token_get_all() function must exist to analyze source code');
return false;
}
if (!defined('T_DOC_COMMENT')) {
@@ -23938,7 +24213,7 @@ class PEAR_PackageFile_v2_Validator
return $providesret;
}
}
-?>
+?>
/**
* PEAR_PackageFile_v1, package.xml version 1.0
*
@@ -23955,7 +24230,7 @@ class PEAR_PackageFile_v2_Validator
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v1.php,v 1.68 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v1.php,v 1.69 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -24221,7 +24496,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_FILENAME', 52);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -25140,6 +25415,10 @@ class PEAR_PackageFile_v1
}
if (isset($this->_registry) && $this->_isValid) {
$chan = $this->_registry->getChannel('pear.php.net');
+ if (PEAR::isError($chan)) {
+ $this->_validateError(PEAR_PACKAGEFILE_ERROR_CHANNELVAL, $chan->getMessage());
+ return $this->_isValid = 0;
+ }
$validator = $chan->getValidationObject();
$validator->setPackageFile($this);
$validator->validate($state);
@@ -25534,7 +25813,7 @@ class PEAR_PackageFile_v1
// }}}
}
?>
-
+
/**
* PEAR_PackageFile_v2, package.xml version 2.0
*
@@ -25551,7 +25830,7 @@ class PEAR_PackageFile_v1
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.122 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.129.2.1 2006/03/23 04:07:51 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -25565,7 +25844,7 @@ require_once 'PEAR/ErrorStack.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -25664,6 +25943,11 @@ class PEAR_PackageFile_v2
var $_incomplete = true;
/**
+ * @var PEAR_PackageFile_v2_Validator
+ */
+ var $_v2Validator;
+
+ /**
* The constructor merely sets up the private error stack
*/
function PEAR_PackageFile_v2()
@@ -26266,7 +26550,7 @@ class PEAR_PackageFile_v2
function setLogger(&$logger)
{
- if ($logger && (!is_object($logger) || !method_exists($logger, 'log'))) {
+ if (!is_object($logger) || !method_exists($logger, 'log')) {
return PEAR::raiseError('Logger must be compatible with PEAR_Common::log');
}
$this->_logger = &$logger;
@@ -26450,7 +26734,7 @@ class PEAR_PackageFile_v2
function getMaintainers($raw = false)
{
- if (!$this->_isValid && !$this->validate()) {
+ if (!isset($this->_packageInfo['lead'])) {
return false;
}
if ($raw) {
@@ -27189,6 +27473,7 @@ class PEAR_PackageFile_v2
if (!isset($dep['min']) &&
!isset($dep['max'])) {
$s['rel'] = 'has';
+ $s['optional'] = $optional;
} elseif (isset($dep['min']) &&
isset($dep['max'])) {
$s['rel'] = 'ge';
@@ -27207,14 +27492,24 @@ class PEAR_PackageFile_v2
$s1['optional'] = $optional;
$ret[] = $s1;
} elseif (isset($dep['min'])) {
- $s['rel'] = 'ge';
+ if (isset($dep['exclude']) &&
+ $dep['exclude'] == $dep['min']) {
+ $s['rel'] = 'gt';
+ } else {
+ $s['rel'] = 'ge';
+ }
$s['version'] = $dep['min'];
$s['optional'] = $optional;
if ($dtype != 'php') {
$s['name'] = $dep['name'];
}
} elseif (isset($dep['max'])) {
- $s['rel'] = 'le';
+ if (isset($dep['exclude']) &&
+ $dep['exclude'] == $dep['max']) {
+ $s['rel'] = 'lt';
+ } else {
+ $s['rel'] = 'le';
+ }
$s['version'] = $dep['max'];
$s['optional'] = $optional;
if ($dtype != 'php') {
@@ -27378,7 +27673,8 @@ class PEAR_PackageFile_v2
function analyzeSourceCode($file, $string = false)
{
- if (!isset($this->_v2Validator)) {
+ if (!isset($this->_v2Validator) ||
+ !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) {
if (!class_exists('PEAR_PackageFile_v2_Validator')) {
require_once 'PEAR/PackageFile/v2/Validator.php';
}
@@ -27392,7 +27688,8 @@ class PEAR_PackageFile_v2
if (!isset($this->_packageInfo) || !is_array($this->_packageInfo)) {
return false;
}
- if (!isset($this->_v2Validator)) {
+ if (!isset($this->_v2Validator) ||
+ !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) {
if (!class_exists('PEAR_PackageFile_v2_Validator')) {
require_once 'PEAR/PackageFile/v2/Validator.php';
}
@@ -27524,7 +27821,7 @@ class PEAR_PackageFile_v2
}
}
?>
-
+
/**
* PEAR_REST_10
*
@@ -27559,7 +27856,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a12
*/
@@ -28147,7 +28444,7 @@ class PEAR_REST_10
return array_slice($states, $i + 1);
}
}
-?>
+?>
/**
* PEAR_REST_11 - implement faster list-all/remote-list command
*
@@ -28182,7 +28479,7 @@ require_once 'PEAR/REST.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.3
*/
@@ -28353,7 +28650,7 @@ class PEAR_REST_11
return array_slice($states, $i + 1);
}
}
-?>
+?>
/**
* <tasks:postinstallscript> - read/write version
*
@@ -28385,7 +28682,7 @@ require_once 'PEAR/Task/Postinstallscript.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
@@ -28528,7 +28825,7 @@ class PEAR_Task_Postinstallscript_rw extends PEAR_Task_Postinstallscript
);
}
}
-?>
+?>
/**
* <tasks:replace> - read/write version
*
@@ -28560,7 +28857,7 @@ require_once 'PEAR/Task/Replace.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
@@ -28594,7 +28891,7 @@ class PEAR_Task_Replace_rw extends PEAR_Task_Replace
return $this->_params;
}
}
-?>
+?>
/**
* <tasks:unixeol> - read/write version
*
@@ -28626,7 +28923,7 @@ require_once 'PEAR/Task/Unixeol.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
@@ -28655,7 +28952,7 @@ class PEAR_Task_Unixeol_rw extends PEAR_Task_Unixeol
return '';
}
}
-?>
+?>
/**
* <tasks:windowseol> - read/write version
*
@@ -28687,7 +28984,7 @@ require_once 'PEAR/Task/Windowseol.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a10
*/
@@ -28716,7 +29013,7 @@ class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol
return '';
}
}
-?>
+?>
/**
* PEAR_Task_Common, base class for installer tasks
*
@@ -28771,7 +29068,7 @@ define('PEAR_TASK_PACKAGEANDINSTALL', 3);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
* @abstract
@@ -28923,7 +29220,7 @@ class PEAR_Task_Common
return PEAR::raiseError($msg, $code);
}
}
-?>
+?>
/**
* <tasks:postinstallscript>
*
@@ -28940,7 +29237,7 @@ class PEAR_Task_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Postinstallscript.php,v 1.17 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: Postinstallscript.php,v 1.18 2006/02/08 01:21:47 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -28958,7 +29255,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -29005,10 +29302,14 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common
$fileXml['name'] . '" could not be retrieved for processing!');
} else {
$analysis = $pkg->analyzeSourceCode($file, true);
- if (PEAR::isError($analysis)) {
+ if (!$analysis) {
PEAR::popErrorHandling();
+ $warnings = '';
+ foreach ($pkg->getValidationWarnings() as $warn) {
+ $warnings .= $warn['message'] . "\n";
+ }
return array(PEAR_TASK_ERROR_INVALID, 'Analysis of post-install script "' .
- $fileXml['name'] . '" failed');
+ $fileXml['name'] . '" failed: ' . $warnings);
}
if (count($analysis['declared_classes']) != 1) {
PEAR::popErrorHandling();
@@ -29247,7 +29548,7 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common
{
}
}
-?>
+?>
/**
* <tasks:replace>
*
@@ -29264,7 +29565,7 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Replace.php,v 1.13 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: Replace.php,v 1.15 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -29279,7 +29580,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -29338,7 +29639,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
}
} else {
return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'type', $xml['attribs']['type'],
- array('pear-config', 'package-info'));
+ array('pear-config', 'package-info', 'php-const'));
}
return true;
}
@@ -29375,7 +29676,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
}
if ($a['to'] == 'master_server') {
$chan = $this->registry->getChannel($pkg->getChannel());
- if ($chan) {
+ if (!PEAR::isError($chan)) {
$to = $chan->getServer();
} else {
$this->logger->log(0, "$dest: invalid pear-config replacement: $a[to]");
@@ -29428,7 +29729,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
return $contents;
}
}
-?>
+?>
/**
* <tasks:unixeol>
*
@@ -29460,7 +29761,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -29510,7 +29811,7 @@ class PEAR_Task_Unixeol extends PEAR_Task_Common
return preg_replace("/\r\n|\n\r|\r|\n/", "\n", $contents);
}
}
-?>
+?>
/**
* <tasks:windowseol>
*
@@ -29542,7 +29843,7 @@ require_once 'PEAR/Task/Common.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -29592,7 +29893,7 @@ class PEAR_Task_Windowseol extends PEAR_Task_Common
return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents);
}
}
-?>
+?>
/**
* Channel Validator for the pecl.php.net channel
*
@@ -29603,7 +29904,7 @@ class PEAR_Task_Windowseol extends PEAR_Task_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PECL.php,v 1.5 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: PECL.php,v 1.7 2006/02/03 02:02:22 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a5
*/
@@ -29618,7 +29919,7 @@ require_once 'PEAR/Validate.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a5
*/
@@ -29626,6 +29927,16 @@ class PEAR_Validator_PECL extends PEAR_Validate
{
function validateVersion()
{
+ if ($this->_state == PEAR_VALIDATE_PACKAGING) {
+ $version = $this->_packagexml->getVersion();
+ $versioncomponents = explode('.', $version);
+ $last = array_pop($versioncomponents);
+ if (substr($last, 1, 2) == 'rc') {
+ $this->_addFailure('version', 'Release Candidate versions must have ' .
+ 'upper-case RC, not lower-case rc');
+ return false;
+ }
+ }
return true;
}
@@ -29643,7 +29954,7 @@ class PEAR_Validator_PECL extends PEAR_Validate
return $ret;
}
}
-?>
+?>
/**
* Class auto-loader
*
@@ -29695,7 +30006,7 @@ require_once "PEAR.php";
* @author Stig Bakken <ssb@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/manual/en/core.ppm.php#core.ppm.pear-autoloader
* @since File available since Release 0.1
* @deprecated File deprecated in Release 1.4.0a1
@@ -29866,7 +30177,7 @@ class PEAR_Autoloader extends PEAR
overload("PEAR_Autoloader");
?>
-
+
/**
* PEAR_Builder for building PHP extensions (PECL packages)
*
@@ -29903,7 +30214,7 @@ require_once 'PEAR/PackageFile.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since PHP 4.0.2
* @see http://pear.php.net/manual/en/core.ppm.pear-builder.php
@@ -30199,7 +30510,7 @@ class PEAR_Builder extends PEAR_Common
if (!@chdir($build_dir)) {
return $this->raiseError("could not chdir to $build_dir");
}
- putenv('PHP_PEAR_VERSION=1.4.6');
+ putenv('PHP_PEAR_VERSION=1.4.9');
foreach ($to_run as $cmd) {
$err = $this->_runCommand($cmd, $callback);
if (PEAR::isError($err)) {
@@ -30321,7 +30632,7 @@ class PEAR_Builder extends PEAR_Common
}
?>
-
+
/**
* PEAR_ChannelFile, the channel handling class
*
@@ -30338,7 +30649,7 @@ class PEAR_Builder extends PEAR_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: ChannelFile.php,v 1.74 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: ChannelFile.php,v 1.75 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -30475,7 +30786,7 @@ $GLOBALS['_PEAR_CHANNELS_MIRROR_TYPES'] = array('server');
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -30647,6 +30958,20 @@ class PEAR_ChannelFile {
}
return $a;
}
+
+ /**
+ * Unlike {@link fromArray()} this does not do any validation
+ * @param array
+ * @static
+ * @return PEAR_ChannelFile
+ */
+ function &fromArrayWithErrors($data, $compatibility = false,
+ $stackClass = 'PEAR_ErrorStack')
+ {
+ $a = new PEAR_ChannelFile($compatibility, $stackClass);
+ $a->_fromArray($data);
+ return $a;
+ }
/**
* @param array
@@ -31922,7 +32247,7 @@ class PEAR_ChannelFile {
}
}
?>
-
+
/**
* PEAR_Command, command pattern class
*
@@ -32018,7 +32343,7 @@ $GLOBALS['_PEAR_Command_objects'] = array();
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -32329,7 +32654,7 @@ class PEAR_Command
}
?>
-
+
/**
* PEAR_Common, the base class for the PEAR Installer
*
@@ -32348,7 +32673,7 @@ class PEAR_Command
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Common.php,v 1.153 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Common.php,v 1.155 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1.0
* @deprecated File deprecated since Release 1.4.0a1
@@ -32378,11 +32703,11 @@ define('_PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '(' . _PEAR_COMMON_PACKAGE_NAME_PRE
define('PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_PACKAGE_DOWNLOAD_PREG .
'$/');
-define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9_\.]+');
+define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9\.]+');
define('PEAR_CHANNELS_NAME_PREG', '/^' . _PEAR_CHANNELS_NAME_PREG . '$/');
// this should allow any dns or IP address, plus a path - NO UNDERSCORES ALLOWED
-define('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(\/[a-zA-Z0-9-]+)*');
+define('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(\/[a-zA-Z0-9\-]+)*');
define('PEAR_CHANNELS_SERVER_PREG', '/^' . _PEAR_CHANNELS_SERVER_PREG . '$/i');
define('_PEAR_CHANNELS_PACKAGE_PREG', '(' ._PEAR_CHANNELS_SERVER_PREG . ')\/('
@@ -32459,7 +32784,7 @@ $GLOBALS['_PEAR_Common_script_phases'] = array('pre-install', 'post-install', 'p
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
* @deprecated This class will disappear, and its components will be spread
@@ -33457,7 +33782,7 @@ class PEAR_Common extends PEAR
}
require_once 'PEAR/Config.php';
require_once 'PEAR/PackageFile.php';
-?>
+?>
/**
* PEAR_Config, customized configuration handling for the PEAR Installer
*
@@ -33475,7 +33800,7 @@ require_once 'PEAR/PackageFile.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Config.php,v 1.123 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Config.php,v 1.124 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -33675,7 +34000,7 @@ if (getenv('PHP_PEAR_SIG_KEYDIR')) {
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -34724,6 +35049,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry();
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($test) && $chan->getName() != $test) {
return $channel; // mirror does not exist
}
@@ -34745,6 +35073,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry();
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($test) && $chan->getName() != $test) {
return $channel; // mirror does not exist
}
@@ -34788,6 +35119,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry($layer);
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($ret) && $chan->getName() != $ret) {
return $channel; // mirror does not exist
}
@@ -34842,6 +35176,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry($layer);
if (is_object($reg)) {
$chan = &$reg->getChannel($channel ? $channel : 'pear.php.net');
+ if (PEAR::isError($chan)) {
+ return false;
+ }
if (!$chan->getMirror($value) && $chan->getName() != $value) {
return false; // mirror does not exist
}
@@ -35511,7 +35848,7 @@ class PEAR_Config extends PEAR
}
?>
-
+
//
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -36006,7 +36343,7 @@ class PEAR_Dependency
// }}}
}
?>
-
+
/**
* PEAR_DependencyDB, advanced installed packages dependency database
*
@@ -36043,7 +36380,7 @@ require_once 'PEAR/Config.php';
* @author Tomas V.V.Cox <cox@idec.net.com>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -36660,7 +36997,7 @@ class PEAR_DependencyDB
}
}
}
-?>
+?>
/**
* PEAR_Dependency2, advanced dependency validation
*
@@ -36699,7 +37036,7 @@ require_once 'PEAR/Validate.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -37187,7 +37524,7 @@ class PEAR_Dependency2
*/
function getPEARVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
function validatePearinstallerDependency($dep)
@@ -37861,7 +38198,7 @@ class PEAR_Dependency2
$this->_currentPackage, true)));
}
}
-?>
+?>
/**
* PEAR_Downloader, the PEAR Installer's download utility class
*
@@ -37881,7 +38218,7 @@ class PEAR_Dependency2
* @author Martin Jansen <mj@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Downloader.php,v 1.96 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Downloader.php,v 1.99 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.3.0
*/
@@ -37908,7 +38245,7 @@ define('PEAR_INSTALLER_ERROR_NO_PREF_STATE', 2);
* @author Martin Jansen <mj@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.0
*/
@@ -38141,6 +38478,10 @@ class PEAR_Downloader extends PEAR_Common
PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
$err = $params[$i]->initialize($param);
PEAR::staticPopErrorHandling();
+ if (!$err) {
+ // skip parameters that were missed by preferred_state
+ continue;
+ }
if (PEAR::isError($err)) {
if (!isset($this->_options['soft'])) {
$this->log(0, $err->getMessage());
@@ -38160,6 +38501,10 @@ class PEAR_Downloader extends PEAR_Common
require_once 'System.php';
}
$curchannel = &$this->_registry->getChannel($params[$i]->getChannel());
+ if (PEAR::isError($curchannel)) {
+ PEAR::staticPopErrorHandling();
+ return $this->raiseError($curchannel);
+ }
$a = $this->downloadHttp('http://' . $params[$i]->getChannel() .
'/channel.xml', $this->ui,
System::mktemp(array('-d')), null, $curchannel->lastModified());
@@ -38172,7 +38517,14 @@ class PEAR_Downloader extends PEAR_Common
'" to update');
}
if ($params[$i] && !isset($this->_options['downloadonly'])) {
- $checkdir = $this->config->get('php_dir', null, $params[$i]->getChannel());
+ if (isset($this->_options['packagingroot'])) {
+ $checkdir = $this->_prependPath(
+ $this->config->get('php_dir', null, $params[$i]->getChannel()),
+ $this->_options['packagingroot']);
+ } else {
+ $checkdir = $this->config->get('php_dir',
+ null, $params[$i]->getChannel());
+ }
while ($checkdir && $checkdir != '/' && !file_exists($checkdir)) {
$checkdir = dirname($checkdir);
}
@@ -38566,10 +38918,14 @@ class PEAR_Downloader extends PEAR_Common
break;
}
}
+ $this->configSet('default_channel', $curchannel);
return PEAR::raiseError('Unknown remote channel: ' . $remotechannel);
} while (false);
}
$chan = &$this->_registry->getChannel($parr['channel']);
+ if (PEAR::isError($chan)) {
+ return $chan;
+ }
$version = $this->_registry->packageInfo($parr['package'], 'version',
$parr['channel']);
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
@@ -38582,6 +38938,7 @@ class PEAR_Downloader extends PEAR_Common
$url = $rest->getDownloadURL($base, $parr, $state, false);
}
if (PEAR::isError($url)) {
+ $this->configSet('default_channel', $curchannel);
return $url;
}
if ($parr['channel'] != $curchannel) {
@@ -38707,6 +39064,9 @@ class PEAR_Downloader extends PEAR_Common
unset($parr['state']);
}
$chan = &$this->_registry->getChannel($remotechannel);
+ if (PEAR::isError($chan)) {
+ return $chan;
+ }
$version = $this->_registry->packageInfo($dep['name'], 'version',
$remotechannel);
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
@@ -38814,6 +39174,9 @@ class PEAR_Downloader extends PEAR_Common
$package = "http://pear.php.net/get/$package";
} else {
$chan = $this->_registry->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return '';
+ }
$package = "http://" . $chan->getServer() . "/get/$package";
}
if (!extension_loaded("zlib")) {
@@ -39232,7 +39595,7 @@ class PEAR_Downloader extends PEAR_Common
$ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : '');
}
$request .= "Host: $host:$port\r\n" . $ifmodifiedsince .
- "User-Agent: PEAR/1.4.6/PHP/" . PHP_VERSION . "\r\n";
+ "User-Agent: PEAR/1.4.9/PHP/" . PHP_VERSION . "\r\n";
if (isset($this)) { // only pass in authentication for non-static calls
$username = $config->get('username');
$password = $config->get('password');
@@ -39345,7 +39708,7 @@ class PEAR_Downloader extends PEAR_Common
// }}}
?>
-
+
/**
* Error Stack Implementation
*
@@ -39479,7 +39842,7 @@ define('PEAR_ERRORSTACK_ERR_OBJTOSTRING', 2);
* $local_stack = new PEAR_ErrorStack('MyPackage');
* </code>
* @author Greg Beaver <cellog@php.net>
- * @version 1.4.6
+ * @version 1.4.9
* @package PEAR_ErrorStack
* @category Debugging
* @copyright 2004-2006 Greg Beaver
@@ -40315,7 +40678,7 @@ class PEAR_ErrorStack {
$stack = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
$stack->pushCallback(array('PEAR_ErrorStack', '_handleError'));
?>
-
+
/* vim: set expandtab tabstop=4 shiftwidth=4 foldmethod=marker: */
/**
* PEAR_Exception
@@ -40412,7 +40775,7 @@ $stack->pushCallback(array('PEAR_ErrorStack', '_handleError'));
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.3
*
@@ -40690,7 +41053,7 @@ class PEAR_Exception extends Exception
}
}
-?>
+?>
/**
* PEAR_Frontend, the singleton-based frontend for user input/output
*
@@ -40707,7 +41070,7 @@ class PEAR_Exception extends Exception
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Frontend.php,v 1.7 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Frontend.php,v 1.9 2006/03/03 13:13:07 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -40726,7 +41089,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null;
/**
* Singleton-based frontend for PEAR user input/output
- *
+ *
* Note that frontend classes must implement userConfirm(), and shoul implement
* displayFatalError() and outputData()
* @category pear
@@ -40734,7 +41097,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null;
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -40798,6 +41161,38 @@ class PEAR_Frontend extends PEAR
}
/**
+ * Set the frontend class that will be used by calls to {@link singleton()}
+ *
+ * Frontends are expected to be a descendant of PEAR_Frontend
+ * @param PEAR_Frontend
+ * @return PEAR_Frontend
+ * @static
+ */
+ function &setFrontendObject($uiobject)
+ {
+ if (is_object($GLOBALS['_PEAR_FRONTEND_SINGLETON']) &&
+ is_a($GLOBALS['_PEAR_FRONTEND_SINGLETON'], get_class($uiobject))) {
+ return $GLOBALS['_PEAR_FRONTEND_SINGLETON'];
+ }
+ if (!is_a($uiobject, 'PEAR_Frontend')) {
+ $err = PEAR::raiseError('not a valid frontend class: (' .
+ get_class($uiobject) . ')');
+ return $err;
+ }
+ // quick test to see if this class implements a few of the most
+ // important frontend methods
+ if (method_exists($uiobject, 'userConfirm')) {
+ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = &$uiobject;
+ $GLOBALS['_PEAR_FRONTEND_CLASS'] = get_class($uiobject);
+ return $uiobject;
+ } else {
+ $err = PEAR::raiseError("not a value frontend class: (" . get_class($uiobject)
+ . ')');
+ return $err;
+ }
+ }
+
+ /**
* @param string $path relative or absolute include path
* @return boolean
* @static
@@ -40843,7 +41238,7 @@ class PEAR_Frontend extends PEAR
{
}
}
-?>
+?>
/**
* PEAR_Installer
*
@@ -40863,7 +41258,7 @@ class PEAR_Frontend extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Installer.php,v 1.224 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Installer.php,v 1.228.2.1 2006/03/05 20:07:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -40887,7 +41282,7 @@ define('PEAR_INSTALLER_NOBINARY', -240);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -41140,147 +41535,150 @@ class PEAR_Installer extends PEAR_Downloader
$dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file);
// }}}
- if (!@is_dir($dest_dir)) {
+ if (empty($this->_options['register-only']) && !@is_dir($dest_dir)) {
if (!$this->mkDirHier($dest_dir)) {
return $this->raiseError("failed to mkdir $dest_dir",
PEAR_INSTALLER_FAILED);
}
$this->log(3, "+ mkdir $dest_dir");
}
- if (empty($atts['replacements'])) {
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (!@copy($orig_file, $dest_file)) {
- return $this->raiseError("failed to write $dest_file",
- PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $orig_file $dest_file");
- if (isset($atts['md5sum'])) {
- $md5sum = md5_file($dest_file);
- }
- } else {
- // {{{ file with replacements
- if (!file_exists($orig_file)) {
- return $this->raiseError("file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (function_exists('file_get_contents')) {
- $contents = file_get_contents($orig_file);
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (empty($atts['replacements'])) {
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (!@copy($orig_file, $dest_file)) {
+ return $this->raiseError("failed to write $dest_file",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ cp $orig_file $dest_file");
+ if (isset($atts['md5sum'])) {
+ $md5sum = md5_file($dest_file);
+ }
} else {
- $fp = fopen($orig_file, "r");
- $contents = @fread($fp, filesize($orig_file));
- fclose($fp);
- }
- if ($contents === false) {
- $contents = '';
- }
- if (isset($atts['md5sum'])) {
- $md5sum = md5($contents);
- }
- $subst_from = $subst_to = array();
- foreach ($atts['replacements'] as $a) {
- $to = '';
- if ($a['type'] == 'php-const') {
- if (preg_match('/^[a-z0-9_]+$/i', $a['to'])) {
- eval("\$to = $a[to];");
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid php-const replacement: $a[to]");
+ // {{{ file with replacements
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file does not exist",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (function_exists('file_get_contents')) {
+ $contents = file_get_contents($orig_file);
+ } else {
+ $fp = fopen($orig_file, "r");
+ $contents = @fread($fp, filesize($orig_file));
+ fclose($fp);
+ }
+ if ($contents === false) {
+ $contents = '';
+ }
+ if (isset($atts['md5sum'])) {
+ $md5sum = md5($contents);
+ }
+ $subst_from = $subst_to = array();
+ foreach ($atts['replacements'] as $a) {
+ $to = '';
+ if ($a['type'] == 'php-const') {
+ if (preg_match('/^[a-z0-9_]+$/i', $a['to'])) {
+ eval("\$to = $a[to];");
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid php-const replacement: $a[to]");
+ }
+ continue;
}
- continue;
- }
- } elseif ($a['type'] == 'pear-config') {
- if ($a['to'] == 'master_server') {
- $chan = $this->_registry->getChannel($channel);
- if ($chan) {
- $to = $chan->getServer();
+ } elseif ($a['type'] == 'pear-config') {
+ if ($a['to'] == 'master_server') {
+ $chan = $this->_registry->getChannel($channel);
+ if (!PEAR::isError($chan)) {
+ $to = $chan->getServer();
+ } else {
+ $to = $this->config->get($a['to'], null, $channel);
+ }
} else {
$to = $this->config->get($a['to'], null, $channel);
}
- } else {
- $to = $this->config->get($a['to'], null, $channel);
- }
- if (is_null($to)) {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid pear-config replacement: $a[to]");
+ if (is_null($to)) {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid pear-config replacement: $a[to]");
+ }
+ continue;
}
- continue;
- }
- } elseif ($a['type'] == 'package-info') {
- if ($t = $this->pkginfo->packageInfo($a['to'])) {
- $to = $t;
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid package-info replacement: $a[to]");
+ } elseif ($a['type'] == 'package-info') {
+ if ($t = $this->pkginfo->packageInfo($a['to'])) {
+ $to = $t;
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid package-info replacement: $a[to]");
+ }
+ continue;
}
- continue;
+ }
+ if (!is_null($to)) {
+ $subst_from[] = $a['from'];
+ $subst_to[] = $to;
}
}
- if (!is_null($to)) {
- $subst_from[] = $a['from'];
- $subst_to[] = $to;
+ $this->log(3, "doing ".sizeof($subst_from)." substitution(s) for $final_dest_file");
+ if (sizeof($subst_from)) {
+ $contents = str_replace($subst_from, $subst_to, $contents);
}
- }
- $this->log(3, "doing ".sizeof($subst_from)." substitution(s) for $final_dest_file");
- if (sizeof($subst_from)) {
- $contents = str_replace($subst_from, $subst_to, $contents);
- }
- $wp = @fopen($dest_file, "wb");
- if (!is_resource($wp)) {
- return $this->raiseError("failed to create $dest_file: $php_errormsg",
- PEAR_INSTALLER_FAILED);
- }
- if (fwrite($wp, $contents) === false) {
- return $this->raiseError("failed writing to $dest_file: $php_errormsg",
- PEAR_INSTALLER_FAILED);
- }
- fclose($wp);
- // }}}
- }
- // {{{ check the md5
- if (isset($md5sum)) {
- if (strtolower($md5sum) == strtolower($atts['md5sum'])) {
- $this->log(2, "md5sum ok: $final_dest_file");
- } else {
- if (empty($options['force'])) {
- // delete the file
- @unlink($dest_file);
- if (!isset($options['ignore-errors'])) {
- return $this->raiseError("bad md5sum for file $final_dest_file",
+ $wp = @fopen($dest_file, "wb");
+ if (!is_resource($wp)) {
+ return $this->raiseError("failed to create $dest_file: $php_errormsg",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (fwrite($wp, $contents) === false) {
+ return $this->raiseError("failed writing to $dest_file: $php_errormsg",
PEAR_INSTALLER_FAILED);
+ }
+ fclose($wp);
+ // }}}
+ }
+ // {{{ check the md5
+ if (isset($md5sum)) {
+ if (strtolower($md5sum) == strtolower($atts['md5sum'])) {
+ $this->log(2, "md5sum ok: $final_dest_file");
+ } else {
+ if (empty($options['force'])) {
+ // delete the file
+ @unlink($dest_file);
+ if (!isset($options['ignore-errors'])) {
+ return $this->raiseError("bad md5sum for file $final_dest_file",
+ PEAR_INSTALLER_FAILED);
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ }
+ }
} else {
if (!isset($options['soft'])) {
$this->log(0, "warning : bad md5sum for file $final_dest_file");
}
}
+ }
+ }
+ // }}}
+ // {{{ set file permissions
+ if (!OS_WINDOWS) {
+ if ($atts['role'] == 'script') {
+ $mode = 0777 & ~(int)octdec($this->config->get('umask'));
+ $this->log(3, "+ chmod +x $dest_file");
} else {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ }
+ $this->addFileOperation("chmod", array($mode, $dest_file));
+ if (!@chmod($dest_file, $mode)) {
if (!isset($options['soft'])) {
- $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ $this->log(0, "failed to change mode of $dest_file");
}
}
}
+ // }}}
+ $this->addFileOperation("rename", array($dest_file, $final_dest_file,
+ $atts['role'] == 'ext'));
}
- // }}}
- // {{{ set file permissions
- if (!OS_WINDOWS) {
- if ($atts['role'] == 'script') {
- $mode = 0777 & ~(int)octdec($this->config->get('umask'));
- $this->log(3, "+ chmod +x $dest_file");
- } else {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- }
- $this->addFileOperation("chmod", array($mode, $dest_file));
- if (!@chmod($dest_file, $mode)) {
- if (!isset($options['soft'])) {
- $this->log(0, "failed to change mode of $dest_file");
- }
- }
- }
- // }}}
- $this->addFileOperation("rename", array($dest_file, $final_dest_file,
- $atts['role'] == 'ext'));
// Store the full path where the file was installed for easy unistall
$this->addFileOperation("installed_as", array($file, $installed_as,
$save_destdir, dirname(substr($installedas_dest_file, strlen($save_destdir)))));
@@ -41336,114 +41734,119 @@ class PEAR_Installer extends PEAR_Downloader
$dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file);
// }}}
- if (!@is_dir($dest_dir)) {
- if (!$this->mkDirHier($dest_dir)) {
- return $this->raiseError("failed to mkdir $dest_dir",
- PEAR_INSTALLER_FAILED);
+ if (empty($this->_options['register-only'])) {
+ if (!@is_dir($dest_dir)) {
+ if (!$this->mkDirHier($dest_dir)) {
+ return $this->raiseError("failed to mkdir $dest_dir",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ mkdir $dest_dir");
}
- $this->log(3, "+ mkdir $dest_dir");
}
$attribs = $atts['attribs'];
unset($atts['attribs']);
- if (!count($atts)) { // no tasks
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (!@copy($orig_file, $dest_file)) {
- return $this->raiseError("failed to write $dest_file",
- PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $orig_file $dest_file");
- if (isset($attribs['md5sum'])) {
- $md5sum = md5_file($dest_file);
- }
- } else { // file with tasks
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (function_exists('file_get_contents')) {
- $contents = file_get_contents($orig_file);
- } else {
- $fp = fopen($orig_file, "r");
- $contents = @fread($fp, filesize($orig_file)); // filesize can be 0
- fclose($fp);
- }
- if ($contents === false) {
- $contents = '';
- }
- if (isset($attribs['md5sum'])) {
- $md5sum = md5($contents);
- }
- foreach ($atts as $tag => $raw) {
- $tag = str_replace($pkg->getTasksNs() . ':', '', $tag);
- $task = "PEAR_Task_$tag";
- $task = &new $task($this->config, $this, PEAR_TASK_INSTALL);
- if (!$task->isScript()) { // scripts are only handled after installation
- $task->init($raw, $attribs, $pkg->getLastInstalledVersion());
- $res = $task->startSession($pkg, $contents, $final_dest_file);
- if ($res === false) {
- continue; // skip this file
- }
- if (PEAR::isError($res)) {
- return $res;
- }
- $contents = $res; // save changes
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (!count($atts)) { // no tasks
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
+ PEAR_INSTALLER_FAILED);
}
- $wp = @fopen($dest_file, "wb");
- if (!is_resource($wp)) {
- return $this->raiseError("failed to create $dest_file: $php_errormsg",
+ if (!@copy($orig_file, $dest_file)) {
+ return $this->raiseError("failed to write $dest_file",
PEAR_INSTALLER_FAILED);
}
- if (fwrite($wp, $contents) === false) {
- return $this->raiseError("failed writing to $dest_file: $php_errormsg",
+ $this->log(3, "+ cp $orig_file $dest_file");
+ if (isset($attribs['md5sum'])) {
+ $md5sum = md5_file($dest_file);
+ }
+ } else { // file with tasks
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
PEAR_INSTALLER_FAILED);
}
- fclose($wp);
- }
- }
- // {{{ check the md5
- if (isset($md5sum)) {
- if (strtolower($md5sum) == strtolower($attribs['md5sum'])) {
- $this->log(2, "md5sum ok: $final_dest_file");
- } else {
- if (empty($options['force'])) {
- // delete the file
- @unlink($dest_file);
- if (!isset($options['ignore-errors'])) {
- return $this->raiseError("bad md5sum for file $final_dest_file",
+ if (function_exists('file_get_contents')) {
+ $contents = file_get_contents($orig_file);
+ } else {
+ $fp = fopen($orig_file, "r");
+ $contents = @fread($fp, filesize($orig_file)); // filesize can be 0
+ fclose($fp);
+ }
+ if ($contents === false) {
+ $contents = '';
+ }
+ if (isset($attribs['md5sum'])) {
+ $md5sum = md5($contents);
+ }
+ foreach ($atts as $tag => $raw) {
+ $tag = str_replace($pkg->getTasksNs() . ':', '', $tag);
+ $task = "PEAR_Task_$tag";
+ $task = &new $task($this->config, $this, PEAR_TASK_INSTALL);
+ if (!$task->isScript()) { // scripts are only handled after installation
+ $task->init($raw, $attribs, $pkg->getLastInstalledVersion());
+ $res = $task->startSession($pkg, $contents, $final_dest_file);
+ if ($res === false) {
+ continue; // skip this file
+ }
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ $contents = $res; // save changes
+ }
+ $wp = @fopen($dest_file, "wb");
+ if (!is_resource($wp)) {
+ return $this->raiseError("failed to create $dest_file: $php_errormsg",
PEAR_INSTALLER_FAILED);
+ }
+ if (fwrite($wp, $contents) === false) {
+ return $this->raiseError("failed writing to $dest_file: $php_errormsg",
+ PEAR_INSTALLER_FAILED);
+ }
+ fclose($wp);
+ }
+ }
+ // {{{ check the md5
+ if (isset($md5sum)) {
+ if (strtolower($md5sum) == strtolower($attribs['md5sum'])) {
+ $this->log(2, "md5sum ok: $final_dest_file");
+ } else {
+ if (empty($options['force'])) {
+ // delete the file
+ @unlink($dest_file);
+ if (!isset($options['ignore-errors'])) {
+ return $this->raiseError("bad md5sum for file $final_dest_file",
+ PEAR_INSTALLER_FAILED);
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ }
+ }
} else {
if (!isset($options['soft'])) {
$this->log(0, "warning : bad md5sum for file $final_dest_file");
}
}
+ }
+ }
+ // }}}
+ // {{{ set file permissions
+ if (!OS_WINDOWS) {
+ if ($role->isExecutable()) {
+ $mode = 0777 & ~(int)octdec($this->config->get('umask'));
+ $this->log(3, "+ chmod +x $dest_file");
} else {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ }
+ $this->addFileOperation("chmod", array($mode, $dest_file));
+ if (!@chmod($dest_file, $mode)) {
if (!isset($options['soft'])) {
- $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ $this->log(0, "failed to change mode of $dest_file");
}
}
}
+ // }}}
+ $this->addFileOperation("rename", array($dest_file, $final_dest_file, $role->isExtension()));
}
- // }}}
- // {{{ set file permissions
- if (!OS_WINDOWS) {
- if ($role->isExecutable()) {
- $mode = 0777 & ~(int)octdec($this->config->get('umask'));
- $this->log(3, "+ chmod +x $dest_file");
- } else {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- }
- $this->addFileOperation("chmod", array($mode, $dest_file));
- if (!@chmod($dest_file, $mode)) {
- if (!isset($options['soft'])) {
- $this->log(0, "failed to change mode of $dest_file");
- }
- }
- }
- // }}}
- $this->addFileOperation("rename", array($dest_file, $final_dest_file, $role->isExtension()));
// Store the full path where the file was installed for easy uninstall
$this->addFileOperation("installed_as", array($file, $installed_as,
$save_destdir, dirname(substr($dest_file, strlen($save_destdir)))));
@@ -41840,7 +42243,7 @@ class PEAR_Installer extends PEAR_Downloader
$channel = $pkg->getChannel();
if (isset($this->_options['packagingroot'])) {
$packrootphp_dir = $this->_prependPath(
- $this->config->get('php_dir', null, 'pear.php.net'),
+ $this->config->get('php_dir', null, $channel),
$this->_options['packagingroot']);
}
@@ -41849,6 +42252,7 @@ class PEAR_Installer extends PEAR_Downloader
$this->_registry = &$this->config->getRegistry();
$installregistry = &$this->_registry;
$this->installroot = ''; // all done automagically now
+ $php_dir = $this->config->get('php_dir', null, $channel);
} else {
$this->config->setInstallRoot(false);
$this->_registry = &$this->config->getRegistry();
@@ -42001,74 +42405,69 @@ class PEAR_Installer extends PEAR_Downloader
$this->source_files = 0;
$savechannel = $this->config->get('default_channel');
- if (empty($options['register-only'])) {
- if (!is_dir($php_dir)) {
- if (PEAR::isError(System::mkdir(array('-p'), $php_dir))) {
- return $this->raiseError("no installation destination directory '$php_dir'\n");
- }
+ if (empty($options['register-only']) && !is_dir($php_dir)) {
+ if (PEAR::isError(System::mkdir(array('-p'), $php_dir))) {
+ return $this->raiseError("no installation destination directory '$php_dir'\n");
}
+ }
- $tmp_path = dirname($descfile);
- if (substr($pkgfile, -4) != '.xml') {
- $tmp_path .= DIRECTORY_SEPARATOR . $pkgname . '-' . $pkg->getVersion();
- }
+ $tmp_path = dirname($descfile);
+ if (substr($pkgfile, -4) != '.xml') {
+ $tmp_path .= DIRECTORY_SEPARATOR . $pkgname . '-' . $pkg->getVersion();
+ }
- $this->configSet('default_channel', $channel);
- // {{{ install files
-
- if ($pkg->getPackagexmlVersion() == '2.0') {
- $filelist = $pkg->getInstallationFilelist();
- if (PEAR::isError($filelist)) {
- return $filelist;
- }
+ $this->configSet('default_channel', $channel);
+ // {{{ install files
+
+ if ($pkg->getPackagexmlVersion() == '2.0') {
+ $filelist = $pkg->getInstallationFilelist();
+ } else {
+ $filelist = $pkg->getFileList();
+ }
+ if (PEAR::isError($filelist)) {
+ return $filelist;
+ }
+ $pkg->resetFilelist();
+ $pkg->setLastInstalledVersion($installregistry->packageInfo($pkg->getPackage(),
+ 'version', $pkg->getChannel()));
+ foreach ($filelist as $file => $atts) {
+ if ($pkg->getPackagexmlVersion() == '1.0') {
+ $this->expectError(PEAR_INSTALLER_FAILED);
+ $res = $this->_installFile($file, $atts, $tmp_path, $options);
+ $this->popExpect();
} else {
- $filelist = $pkg->getFileList();
- }
- if (PEAR::isError($filelist)) {
- return $filelist;
- }
- $pkg->resetFilelist();
- $pkg->setLastInstalledVersion($installregistry->packageInfo($pkg->getPackage(),
- 'version', $pkg->getChannel()));
- foreach ($filelist as $file => $atts) {
- if ($pkg->getPackagexmlVersion() == '1.0') {
- $this->expectError(PEAR_INSTALLER_FAILED);
- $res = $this->_installFile($file, $atts, $tmp_path, $options);
- $this->popExpect();
+ $this->expectError(PEAR_INSTALLER_FAILED);
+ $res = $this->_installFile2($pkg, $file, $atts, $tmp_path, $options);
+ $this->popExpect();
+ }
+ if (PEAR::isError($res)) {
+ if (empty($options['ignore-errors'])) {
+ $this->rollbackFileTransaction();
+ if ($res->getMessage() == "file does not exist") {
+ $this->raiseError("file $file in package.xml does not exist");
+ }
+ return $this->raiseError($res);
} else {
- $this->expectError(PEAR_INSTALLER_FAILED);
- $res = $this->_installFile2($pkg, $file, $atts, $tmp_path, $options);
- $this->popExpect();
- }
- if (PEAR::isError($res)) {
- if (empty($options['ignore-errors'])) {
- $this->rollbackFileTransaction();
- if ($res->getMessage() == "file does not exist") {
- $this->raiseError("file $file in package.xml does not exist");
- }
- return $this->raiseError($res);
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "Warning: " . $res->getMessage());
- }
+ if (!isset($options['soft'])) {
+ $this->log(0, "Warning: " . $res->getMessage());
}
}
- if ($res == PEAR_INSTALLER_OK) {
- // Register files that were installed
- $pkg->installedFile($file, $atts);
- }
}
- // }}}
+ if ($res == PEAR_INSTALLER_OK) {
+ // Register files that were installed
+ $pkg->installedFile($file, $atts);
+ }
+ }
+ // }}}
- // {{{ compile and install source files
- if ($this->source_files > 0 && empty($options['nobuild'])) {
- if (PEAR::isError($err =
- $this->_compileSourceFiles($savechannel, $pkg))) {
- return $err;
- }
+ // {{{ compile and install source files
+ if ($this->source_files > 0 && empty($options['nobuild'])) {
+ if (PEAR::isError($err =
+ $this->_compileSourceFiles($savechannel, $pkg))) {
+ return $err;
}
- // }}}
}
+ // }}}
if (isset($backedup)) {
$this->_removeBackups($backedup);
@@ -42174,27 +42573,34 @@ class PEAR_Installer extends PEAR_Downloader
}
$dest = $ext['dest'];
$this->log(1, "Installing '$ext[file]'");
- $copyto = $this->_prependPath($dest, $this->installroot);
+ $packagingroot = '';
+ if (isset($this->_options['packagingroot'])) {
+ $packagingroot = $this->_options['packagingroot'];
+ }
+ $copyto = $this->_prependPath($dest, $packagingroot);
$copydir = dirname($copyto);
- if (!@is_dir($copydir)) {
- if (!$this->mkDirHier($copydir)) {
- return $this->raiseError("failed to mkdir $copydir",
- PEAR_INSTALLER_FAILED);
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (!@is_dir($copydir)) {
+ if (!$this->mkDirHier($copydir)) {
+ return $this->raiseError("failed to mkdir $copydir",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ mkdir $copydir");
}
- $this->log(3, "+ mkdir $copydir");
- }
- if (!@copy($ext['file'], $copyto)) {
- return $this->raiseError("failed to write $copyto", PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $ext[file] $copyto");
- if (!OS_WINDOWS) {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- $this->addFileOperation('chmod', array($mode, $copyto));
- if (!@chmod($copyto, $mode)) {
- $this->log(0, "failed to change mode of $copyto");
+ if (!@copy($ext['file'], $copyto)) {
+ return $this->raiseError("failed to write $copyto", PEAR_INSTALLER_FAILED);
}
+ $this->log(3, "+ cp $ext[file] $copyto");
+ if (!OS_WINDOWS) {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ $this->addFileOperation('chmod', array($mode, $copyto));
+ if (!@chmod($copyto, $mode)) {
+ $this->log(0, "failed to change mode of $copyto");
+ }
+ }
+ $this->addFileOperation('rename', array($ext['file'], $copyto));
}
- $this->addFileOperation('rename', array($ext['file'], $copyto));
if ($filelist->getPackageXmlVersion() == '1.0') {
$filelist->installedFile($bn, array(
@@ -42423,7 +42829,7 @@ if (!function_exists("md5_file")) {
}
// }}}
-?>
+?>
/**
* PEAR_PackageFile, package.xml parsing utility class
*
@@ -42440,7 +42846,7 @@ if (!function_exists("md5_file")) {
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PackageFile.php,v 1.32 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: PackageFile.php,v 1.33 2006/02/09 22:39:32 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -42466,7 +42872,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -42757,7 +43163,7 @@ class PEAR_PackageFile
$xml = $name;
break;
} elseif (ereg('package.xml$', $name, $match)) {
- $xml = $match[0];
+ $xml = $name;
break;
}
}
@@ -42858,7 +43264,7 @@ class PEAR_PackageFile
}
}
-?>
+?>
/**
* PEAR_Packager for generating releases
*
@@ -42897,7 +43303,7 @@ require_once 'System.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -43060,7 +43466,7 @@ if (!function_exists('md5_file')) {
// }}}
?>
-
+
/**
* PEAR_Registry
*
@@ -43079,7 +43485,7 @@ if (!function_exists('md5_file')) {
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Registry.php,v 1.145 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Registry.php,v 1.150.2.2 2006/03/11 04:16:48 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -43105,7 +43511,7 @@ define('PEAR_REGISTRY_ERROR_CHANNEL_FILE', -6);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -43598,6 +44004,9 @@ class PEAR_Registry extends PEAR
return false;
}
$channel = $this->_getChannel($channel);
+ if (PEAR::isError($channel)) {
+ return $channel;
+ }
return $channel->getAlias();
}
// }}}
@@ -43898,6 +44307,9 @@ class PEAR_Registry extends PEAR
return false;
}
$checker = $this->_getChannel($channel->getName());
+ if (PEAR::isError($checker)) {
+ return $checker;
+ }
if ($channel->getAlias() != $checker->getAlias()) {
@unlink($this->_getChannelAliasFileName($checker->getAlias()));
}
@@ -44125,7 +44537,11 @@ class PEAR_Registry extends PEAR
if ($ent{0} == '.' || substr($ent, -4) != '.reg') {
continue;
}
- $channellist[] = substr($ent, 0, -4);
+ if ($ent == '__uri.reg') {
+ $channellist[] = '__uri';
+ continue;
+ }
+ $channellist[] = str_replace('_', '/', substr($ent, 0, -4));
}
closedir($dp);
if (!in_array('pear.php.net', $channellist)) {
@@ -44346,19 +44762,29 @@ class PEAR_Registry extends PEAR
/**
* @param string channel name
* @param bool whether to strictly retrieve channel names
- * @return PEAR_ChannelFile|false
+ * @return PEAR_ChannelFile|PEAR_Error
* @access private
*/
function &_getChannel($channel, $noaliases = false)
{
$ch = false;
if ($this->_channelExists($channel, $noaliases)) {
- if (!class_exists('PEAR_ChannelFile')) {
- require_once 'PEAR/ChannelFile.php';
+ $chinfo = $this->_channelInfo($channel, $noaliases);
+ if ($chinfo) {
+ if (!class_exists('PEAR_ChannelFile')) {
+ require_once 'PEAR/ChannelFile.php';
+ }
+ $ch = &PEAR_ChannelFile::fromArrayWithErrors($chinfo);
}
- $ch = &PEAR_ChannelFile::fromArray($this->_channelInfo($channel, $noaliases));
}
if ($ch) {
+ if ($ch->validate()) {
+ return $ch;
+ }
+ foreach ($ch->getErrors(true) as $err) {
+ $message = $err['message'] . "\n";
+ }
+ $ch = PEAR::raiseError($message);
return $ch;
}
if ($this->_getChannelFromAlias($channel) == 'pear.php.net') {
@@ -44712,6 +45138,9 @@ class PEAR_Registry extends PEAR
$ret = $this->_updatePackage($package, $info, $merge);
$this->_unlock();
if ($ret) {
+ if (!class_exists('PEAR_PackageFile_v1')) {
+ require_once 'PEAR/PackageFile/v1.php';
+ }
$pf = new PEAR_PackageFile_v1;
$pf->setConfig($this->_config);
$pf->fromArray($this->packageInfo($package));
@@ -44749,7 +45178,7 @@ class PEAR_Registry extends PEAR
/**
* @param string channel name
* @param bool whether to strictly return raw channels (no aliases)
- * @return PEAR_ChannelFile|false
+ * @return PEAR_ChannelFile|PEAR_Error
*/
function &getChannel($channel, $noaliases = false)
{
@@ -44757,6 +45186,9 @@ class PEAR_Registry extends PEAR
return $e;
}
$ret = &$this->_getChannel($channel, $noaliases);
+ if (!$ret) {
+ return PEAR::raiseError('Unknown channel: ' . $channel);
+ }
$this->_unlock();
return $ret;
}
@@ -44831,7 +45263,7 @@ class PEAR_Registry extends PEAR
function &getChannelValidator($channel)
{
$chan = $this->getChannel($channel);
- if (!$chan) {
+ if (PEAR::isError($chan)) {
return $chan;
}
$val = $chan->getValidationObject();
@@ -44850,7 +45282,11 @@ class PEAR_Registry extends PEAR
return $e;
}
foreach ($this->_listChannels() as $channel) {
- $ret[] = &$this->_getChannel($channel);
+ $e = &$this->_getChannel($channel);
+ if (!$e || PEAR::isError($e)) {
+ continue;
+ }
+ $ret[] = $e;
}
$this->_unlock();
return $ret;
@@ -45191,7 +45627,7 @@ class PEAR_Registry extends PEAR
}
?>
-
+
/**
* PEAR_Remote
*
@@ -45209,7 +45645,7 @@ class PEAR_Registry extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Remote.php,v 1.75 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Remote.php,v 1.76 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -45233,7 +45669,7 @@ require_once 'PEAR/Config.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -45344,7 +45780,7 @@ class PEAR_Remote extends PEAR
$server_channel = $this->config->get('default_channel');
$channel = $this->_registry->getChannel($server_channel);
- if ($channel) {
+ if (!PEAR::isError($channel)) {
$mirror = $this->config->get('preferred_mirror');
if ($channel->getMirror($mirror)) {
if ($channel->supports('xmlrpc', $method, $mirror)) {
@@ -45470,7 +45906,7 @@ class PEAR_Remote extends PEAR
} while (false);
$server_channel = $this->config->get('default_channel');
$channel = $this->_registry->getChannel($server_channel);
- if ($channel) {
+ if (!PEAR::isError($channel)) {
$mirror = $this->config->get('preferred_mirror');
if ($channel->getMirror($mirror)) {
if ($channel->supports('xmlrpc', $method, $mirror)) {
@@ -45710,7 +46146,7 @@ class PEAR_Remote extends PEAR
}
?>
-
+
/**
* PEAR_REST
*
@@ -45727,7 +46163,7 @@ class PEAR_Remote extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: REST.php,v 1.19 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: REST.php,v 1.20 2006/03/02 03:09:31 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -45746,7 +46182,7 @@ require_once 'PEAR/XMLParser.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -45916,10 +46352,21 @@ class PEAR_REST
if ($cacheid === null && $nochange) {
$cacheid = unserialize(implode('', file($cacheidfile)));
}
+
$fp = @fopen($cacheidfile, 'wb');
if (!$fp) {
- return false;
+ $cache_dir = $this->config->get('cache_dir');
+ if (!is_dir($cache_dir)) {
+ System::mkdir(array('-p', $cache_dir));
+ $fp = @fopen($cacheidfile, 'wb');
+ if (!$fp) {
+ return false;
+ }
+ } else {
+ return false;
+ }
}
+
if ($nochange) {
fwrite($fp, serialize(array(
'age' => time(),
@@ -46024,7 +46471,7 @@ class PEAR_REST
$ifmodifiedsince = ($lastmodified ? "If-Modified-Since: $lastmodified\r\n" : '');
}
$request .= "Host: $host:$port\r\n" . $ifmodifiedsince .
- "User-Agent: PEAR/1.4.6/PHP/" . PHP_VERSION . "\r\n";
+ "User-Agent: PEAR/1.4.9/PHP/" . PHP_VERSION . "\r\n";
$username = $this->config->get('username');
$password = $this->config->get('password');
if ($username && $password) {
@@ -46095,7 +46542,8 @@ class PEAR_REST
return $data;
}
}
-?>
+?>
+
/**
* PEAR_RunTest
*
@@ -46113,7 +46561,7 @@ class PEAR_REST
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: RunTest.php,v 1.16 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: RunTest.php,v 1.20 2006/02/03 02:08:11 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.3.3
*/
@@ -46141,7 +46589,7 @@ putenv("PHP_PEAR_RUNTESTS=1");
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.3.3
*/
@@ -46173,6 +46621,18 @@ class PEAR_RunTest
$cwd = getcwd();
$conf = &PEAR_Config::singleton();
$php = $conf->get('php_bin');
+ if (isset($this->_options['phpunit'])) {
+ $cmd = "$php$ini_settings -f $file";
+ if (isset($this->_logger)) {
+ $this->_logger->log(2, 'Running command "' . $cmd . '"');
+ }
+
+ $savedir = getcwd(); // in case the test moves us around
+ chdir(dirname($file));
+ echo `$cmd`;
+ chdir($savedir);
+ return 'PASSED'; // we have no way of knowing this information so assume passing
+ }
//var_dump($php);exit;
global $log_format, $info_params, $ini_overwrites;
@@ -46185,6 +46645,7 @@ class PEAR_RunTest
'SKIPIF' => '',
'GET' => '',
'ARGS' => '',
+ 'CLEAN' => '',
);
$file = realpath($file);
@@ -46299,6 +46760,13 @@ class PEAR_RunTest
$returnfail = false;
}
chdir($savedir);
+
+ if ($section_text['CLEAN']) {
+ // perform test cleanup
+ $this->save_text($clean = $tmp . uniqid('/phpt.'), $section_text['CLEAN']);
+ `$php $clean`;
+ @unlink($clean);
+ }
// Does the output match what is expected?
$output = trim($out);
$output = preg_replace('/\r\n/', "\n", $output);
@@ -46484,7 +46952,7 @@ $text
}
?>
-
+
/**
* PEAR_Validate
*
@@ -46501,7 +46969,7 @@ $text
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Validate.php,v 1.45 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Validate.php,v 1.46 2006/01/23 17:16:35 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -46524,7 +46992,7 @@ require_once 'PEAR/Validator/PECL.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -46772,6 +47240,13 @@ class PEAR_Validate
case 'beta' :
// check for a package that extends a package,
// like Foo and Foo2
+ if ($this->_state == PEAR_VALIDATE_PACKAGING) {
+ if (substr($versioncomponents[2], 1, 2) == 'rc') {
+ $this->_addFailure('version', 'Release Candidate versions ' .
+ 'must have capital RC, not lower-case rc');
+ return false;
+ }
+ }
if (!$this->_packagexml->getExtends()) {
if ($versioncomponents[0] == '1') {
if ($versioncomponents[2]{0} == '0') {
@@ -47107,7 +47582,7 @@ class PEAR_Validate
return true;
}
}
-?>
+?>
/**
* PEAR_FTP
*
@@ -47138,7 +47613,7 @@ class PEAR_Validate
* @author Stephan Schmidt (original XML_Unserializer code)
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -47367,7 +47842,7 @@ class PEAR_XMLParser
$this->_dataStack[$this->_depth] .= $cdata;
}
}
-?>
+?>
REM ----------------------------------------------------------------------
REM PHP version 5
@@ -47479,9 +47954,9 @@ ECHO The current value is:
ECHO %PHP_PEAR_PHP_BIN%
GOTO END
:RUN
-"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
+"%PHP_PEAR_PHP_BIN%" -C -d output_buffering=1 -d safe_mode=0 -d open_basedir="" -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON
+@ECHO ON
REM ----------------------------------------------------------------------
REM PHP version 5
@@ -47499,7 +47974,7 @@ REM ----------------------------------------------------------------------
REM Authors: Alexander Merz (alexmerz@php.net)
REM ----------------------------------------------------------------------
REM
-REM $Id: peardev.bat,v 1.2 2005/03/21 15:23:43 cellog Exp $
+REM $Id: peardev.bat,v 1.3 2006/01/23 16:30:14 cellog Exp $
REM change this lines to match the paths of your system
REM -------------------
@@ -47593,9 +48068,9 @@ ECHO The current value is:
ECHO %PHP_PEAR_PHP_BIN%
GOTO END
:RUN
-"%PHP_PEAR_PHP_BIN%" -C -d memory_limit="-1" -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
+"%PHP_PEAR_PHP_BIN%" -C -d memory_limit="-1" -d safe_mode=0 -d open_basedir="" -d output_buffering=1 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\pearcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON
+@ECHO ON
REM ----------------------------------------------------------------------
REM PHP version 5
@@ -47709,7 +48184,7 @@ GOTO END
:RUN
"%PHP_PEAR_PHP_BIN%" -C -n -d output_buffering=1 -d safe_mode=0 -d include_path="%PHP_PEAR_INSTALL_DIR%" -f "%PHP_PEAR_INSTALL_DIR%\peclcmd.php" -- %1 %2 %3 %4 %5 %6 %7 %8 %9
:END
-@ECHO ON
+@ECHO ON
# first find which PHP binary to use
if test "x$PHP_PEAR_PHP_BIN" != "x"; then
@@ -47736,8 +48211,8 @@ else
fi
fi
-exec $PHP -C -q $INCARG -d output_buffering=1 $INCDIR/pearcmd.php "$@"
-
+exec $PHP -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 $INCDIR/pearcmd.php "$@"
+
# first find which PHP binary to use
if test "x$PHP_PEAR_PHP_BIN" != "x"; then
@@ -47764,8 +48239,8 @@ else
fi
fi
-exec $PHP -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 $INCDIR/pearcmd.php "$@"
-
+exec $PHP -d memory_limit="-1" -C -q $INCARG -d output_buffering=1 -d open_basedir="" -d safe_mode=0 $INCDIR/pearcmd.php "$@"
+
# first find which PHP binary to use
if test "x$PHP_PEAR_PHP_BIN" != "x"; then
@@ -47793,7 +48268,7 @@ else
fi
exec $PHP -C -n -q $INCARG -d output_buffering=1 -d safe_mode=0 $INCDIR/peclcmd.php "$@"
-
+
//
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -48230,7 +48705,7 @@ function error_handler($errno, $errmsg, $file, $line, $vars) {
// vim600:syn=php
?>
-
+
//
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -48275,7 +48750,7 @@ require_once 'pearcmd.php';
// vim600:syn=php
?>
-
+
$Id: package.dtd,v 1.38 2005/11/12 02:23:07 cellog Exp $
This is the PEAR package description, version 1.0.
@@ -48378,7 +48853,7 @@ require_once 'pearcmd.php';
to CDATA #REQUIRED>
-
+
/**
* PEAR, the PHP Extension and Application Repository
*
@@ -48400,7 +48875,7 @@ require_once 'pearcmd.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PEAR.php,v 1.97 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: PEAR.php,v 1.98 2006/01/23 05:38:05 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -48473,7 +48948,7 @@ $GLOBALS['_PEAR_error_handler_stack'] = array();
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @see PEAR_Error
* @since Class available since PHP 4.0.2
@@ -48627,6 +49102,12 @@ class PEAR
*/
function registerShutdownFunc($func, $args = array())
{
+ // if we are called statically, there is a potential
+ // that no shutdown func is registered. Bug #6445
+ if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
+ register_shutdown_function("_PEAR_call_destructors");
+ $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
+ }
$GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args);
}
@@ -49182,7 +49663,7 @@ function _PEAR_call_destructors()
* @author Gregory Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/manual/en/core.pear.pear-error.php
* @see PEAR::raiseError(), PEAR::throwError()
* @since Class available since PHP 4.0.2
@@ -49473,7 +49954,7 @@ class PEAR_Error
* End:
*/
?>
-
+
/**
* File/Directory manipulation
*
@@ -49530,7 +50011,7 @@ $GLOBALS['_System_temp_files'] = array();
* @author Tomas V.V. Cox <cox@idecnet.com>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
-* @version Release: 1.4.6
+* @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 0.1
*/
@@ -50060,7 +50541,7 @@ class System
}
}
?>
-
+
Name: @rpm_package@
Version: @version@
Release: 1
@@ -50132,531 +50613,7 @@ cp -p package@package2xml@.xml %{buildroot}@rpm_xml_dir@/@package@.xml
%defattr(-,root,root)
%doc @doc_files@
/
-
-<!DOCTYPE package SYSTEM "http://pear.php.net/dtd/package-1.0">
-<package version="1.0" packagerversion="1.4.6">
- <name>PEAR</name>
- <summary>PEAR Base System</summary>
- <description>The PEAR package contains:
- * the PEAR installer, for creating, distributing
- and installing packages
- * the beta-quality PEAR_Exception PHP5 error handling mechanism
- * the beta-quality PEAR_ErrorStack advanced error handling mechanism
- * the PEAR_Error error handling mechanism
- * the OS_Guess class for retrieving info about the OS
- where PHP is running on
- * the System class for quick handling of common operations
- with files and directories
- * the PEAR base class
-
- New features in a nutshell:
- * full support for channels
- * pre-download dependency validation
- * new package.xml 2.0 format allows tremendous flexibility while maintaining BC
- * support for optional dependency groups and limited support for sub-packaging
- * robust dependency support
- * full dependency validation on uninstall
- * remote install for hosts with only ftp access - no more problems with
- restricted host installation
- * full support for mirroring
- * support for bundling several packages into a single tarball
- * support for static dependencies on a url-based package
- * support for custom file roles and installation tasks
-
- NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations
- to the latest version, or PEAR will not upgrade properly
- </description>
- <maintainers>
- <maintainer>
- <user>cellog</user>
- <name>Greg Beaver</name>
- <email>cellog@php.net</email>
- <role>lead</role>
- </maintainer>
- <maintainer>
- <user>ssb</user>
- <name>Stig Bakken</name>
- <email>stig@php.net</email>
- <role>lead</role>
- </maintainer>
- <maintainer>
- <user>cox</user>
- <name>Tomas V.V.Cox</name>
- <email>cox@idecnet.com</email>
- <role>lead</role>
- </maintainer>
- <maintainer>
- <user>pajoye</user>
- <name>Pierre-Alain Joye</name>
- <email>pajoye@pearfr.org</email>
- <role>lead</role>
- </maintainer>
- <maintainer>
- <user>mj</user>
- <name>Martin Jansen</name>
- <email>mj@php.net</email>
- <role>helper</role>
- </maintainer>
- </maintainers>
- <release>
- <version>1.4.6</version>
- <date>2006-01-06</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>Minor bugfix release
-* fix problem with -options when using CGI version of PHP
-* fix Critical Bug #5999: support for baseinstalldir broken in package2.xml format
-* fix Bug #6034: date format bug
-* fix Bug #6040: PEAR_Frontend#setFrontendClass has no docblock;
- PEAR_Frontend not documented
-* fix Bug #6044: PEAR_REST::retrieveCacheFirst doesn&apos;t return error codes
-* fix Bug #6047: pear makerpm fails to handle docs in root directory
-* fix Bug #6048: PEAR_Frontend::log parameters are wrong
-* fix Bug #6106: Notices by list-upgrades (caused by time-outs ?)
-* fix Bug #6145: Can&apos;t install PEAR with INSTALL_ROOT environment
-* fix Bug #6218: the &quot;pear&quot; command does nothing
-* fix Bug #6269: System::which() returns silliness if passed null
-* fix Bug #6322: Installer fails to follow redirects [patch by Bertrand Gugger]
-* fix Request #6119: Add PEAR_Frontend_Gtk2 support to PEAR
- </notes>
- <deps>
- <dep type="php" rel="ge" version="4.2"/>
- <dep type="pkg" rel="ge" version="1.3.3">PEAR</dep>
- <dep type="pkg" rel="ge" version="1.3.1">Archive_Tar</dep>
- <dep type="pkg" rel="ge" version="1.2">Console_Getopt</dep>
- <dep type="pkg" rel="ge" version="1.4.0" optional="yes">XML_RPC</dep>
- <dep type="pkg" rel="ge" version="0.5.0" optional="yes">PEAR_Frontend_Web</dep>
- <dep type="pkg" rel="ge" version="0.4.0" optional="yes">PEAR_Frontend_Gtk</dep>
- <dep type="ext" rel="has">xml</dep>
- <dep type="ext" rel="has">pcre</dep>
- </deps>
- <provides type="class" name="OS_Guess" />
- <provides type="class" name="System" />
- <provides type="function" name="md5_file" />
- <filelist>
- <file role="php" name="OS/Guess.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/ChannelFile/Parser.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Auth.xml"/>
- <file role="php" name="PEAR/Command/Auth.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Build.xml"/>
- <file role="php" name="PEAR/Command/Build.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Channels.xml"/>
- <file role="php" name="PEAR/Command/Channels.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Common.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Config.xml"/>
- <file role="php" name="PEAR/Command/Config.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Install.xml"/>
- <file role="php" name="PEAR/Command/Install.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Package.xml"/>
- <file role="php" name="PEAR/Command/Package.php">
- <replace from="@DATA-DIR@" to="data_dir" type="pear-config"/>
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Pickle.xml"/>
- <file role="php" name="PEAR/Command/Pickle.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Registry.xml"/>
- <file role="php" name="PEAR/Command/Registry.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Remote.xml"/>
- <file role="php" name="PEAR/Command/Remote.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Mirror.xml"/>
- <file role="php" name="PEAR/Command/Mirror.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command/Test.xml"/>
- <file role="php" name="PEAR/Command/Test.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Downloader/Package.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Frontend/CLI.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Common.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Data.xml"/>
- <file role="php" name="PEAR/Installer/Role/Data.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Doc.xml"/>
- <file role="php" name="PEAR/Installer/Role/Doc.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Ext.xml"/>
- <file role="php" name="PEAR/Installer/Role/Ext.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Php.xml"/>
- <file role="php" name="PEAR/Installer/Role/Php.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Script.xml"/>
- <file role="php" name="PEAR/Installer/Role/Script.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Src.xml"/>
- <file role="php" name="PEAR/Installer/Role/Src.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role/Test.xml"/>
- <file role="php" name="PEAR/Installer/Role/Test.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer/Role.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/Generator/v1.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/Generator/v2.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/Parser/v1.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/Parser/v2.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/v2/rw.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/v2/Validator.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/v1.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile/v2.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/REST/10.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/REST/11.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Postinstallscript/rw.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Replace/rw.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Unixeol/rw.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Windowseol/rw.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Common.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Postinstallscript.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Replace.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Unixeol.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Task/Windowseol.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Validator/PECL.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Autoloader.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Builder.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/ChannelFile.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Command.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Common.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Config.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Dependency.php"/>
- <file role="php" name="PEAR/DependencyDB.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Dependency2.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Downloader.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/ErrorStack.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Exception.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Frontend.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Installer.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Packager.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/PackageFile.php">
- <replace from="@PEAR-VER@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Registry.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Remote.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/REST.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/RunTest.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/Validate.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" name="PEAR/XMLParser.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="script" baseinstalldir="/" platform="!windows" install-as="pear" name="scripts/pear.sh">
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@php_dir@" to="php_dir" type="pear-config"/>
- <replace from="@pear_version@" to="version" type="package-info"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="script" baseinstalldir="/" platform="!windows" install-as="peardev" name="scripts/peardev.sh">
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@php_dir@" to="php_dir" type="pear-config"/>
- <replace from="@pear_version@" to="version" type="package-info"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="script" baseinstalldir="/" platform="!windows" install-as="pecl" name="scripts/pecl.sh">
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@php_dir@" to="php_dir" type="pear-config"/>
- <replace from="@pear_version@" to="version" type="package-info"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="script" baseinstalldir="/" platform="windows" install-as="peardev.bat" name="scripts/peardev.bat">
- <replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="script" baseinstalldir="/" platform="windows" install-as="pear.bat" name="scripts/pear.bat">
- <replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="script" baseinstalldir="/" platform="windows" install-as="pecl.bat" name="scripts/pecl.bat">
- <replace from="@bin_dir@" to="bin_dir" type="pear-config"/>
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="php" baseinstalldir="/" install-as="pearcmd.php" name="scripts/pearcmd.php">
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@php_dir@" to="php_dir" type="pear-config"/>
- <replace from="@pear_version@" to="version" type="package-info"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="php" baseinstalldir="/" install-as="peclcmd.php" name="scripts/peclcmd.php">
- <replace from="@php_bin@" to="php_bin" type="pear-config"/>
- <replace from="@php_dir@" to="php_dir" type="pear-config"/>
- <replace from="@pear_version@" to="version" type="package-info"/>
- <replace from="@include_path@" to="php_dir" type="pear-config"/>
- </file>
- <file role="data" baseinstalldir="/" name="package.dtd"/>
- <file role="data" baseinstalldir="/" name="template.spec"/>
- <file role="php" baseinstalldir="/" name="PEAR.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- <file role="php" baseinstalldir="/" name="System.php">
- <replace from="@package_version@" to="version" type="package-info"/>
- </file>
- </filelist>
- </release>
- <changelog>
- <release>
- <version>1.4.0</version>
- <date>2005-09-18</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>This is a major milestone release for PEAR. In addition to several killer features,
-every single element of PEAR has a regression test, and so stability is much higher
-than any previous PEAR release.
-New features in a nutshell:
-* full support for channels
-* pre-download dependency validation
-* new package.xml 2.0 format allows tremendous flexibility while maintaining BC
-* support for optional dependency groups and limited support for sub-packaging
-* robust dependency support
-* full dependency validation on uninstall
-* remote install for hosts with only ftp access - no more problems with
- restricted host installation
-* full support for mirroring
-* support for bundling several packages into a single tarball
-* support for static dependencies on a url-based package
-* support for custom file roles and installation tasks
-NOTE: users of PEAR_Frontend_Web/PEAR_Frontend_Gtk must upgrade their installations
-to the latest version, or PEAR will not upgrade properly
- </notes>
- </release>
- <release>
- <version>1.4.1</version>
- <date>2005-09-25</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>Major bugfix release. This is a recommended download for ALL PEAR users
-
-UPGRADING FROM 1.4.0 WILL CAUSE A SERIES OF NOTICES. IGNORE THEM.
-THIS IS CAUSED BY A BUG IN 1.4.0 THAT IS FIXED IN 1.4.1
-* fix prompt processing in post-install scripts
-* make dual package.xml equivalency stricter when using package.xml/package2.xml
-* fix critical error in validating bogus php dependencies of package.xml 1.0
- This error has existed for every PEAR version, and allows dependencies like:
- &lt;dep type=&quot;php&quot; rel=&quot;has&quot;&gt;4.3.0&lt;/dep&gt; to
- slip through unnoticed
-* re-enable php-const replacements
-* PEAR_PackageFile_v2::getConfigureOptions() was missing!!
-* fix cvsdiff command
-* fix xml encoding issues finally
-* clean up package.xml 1.0 dir/file parsing
-* fix invalid PEAR_Config generation
-* change the user agent from PHP/phpversion to PEAR/pearversion/PHP/phpversion
-* don&apos;t use a bogus uri for licenses on running convert command
-* add &quot;pickle&quot; command for PECL packaging
-* add validation warning if the release date in package.xml is not today when packaging
-* implement progress bar for list-all/remote-list
-* fix Bug #5323: pear search returns odd version numbers
-* fix Bug #5428: pear cvstag package2.xml does not include the package.xml
-* fix Bug #5449: pear makerpm completely broken for package.xml 2.0
-* fix Bug #5462: raiseError method does not return by ref anymore
-* fix Bug #5465: pear install --offline fails to display error
-* fix Bug #5477: Bug in Downloader.php and Dependency2.php
-* fix Bug #5481: &quot;pear install PECLextension&quot; should display warning to use pecl command
-* fix Bug #5482: installation of PECL packages should say add extensions to php.ini
-* fix Bug #5483: pecl uninstall crack fatal error
-* fix Bug #5487: PECL: compiled files are not uninstalled via the uninstall command
-* fix Bug #5488: pecl uninstall package fails if package has a package.xml 1.0
-* fix Bug #5501: the commands list mentions XML-RPC
-* fix Bug #5509: addDependecyGroup does not validate group name
-* fix Bug #5513: PEAR 1.4 does not install non-pear.php.net packages
- </notes>
- </release>
- <release>
- <version>1.4.2</version>
- <date>2005-10-08</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>Minor bugfix release
-* fix issues with API for adding tasks to package2.xml
-* fix Bug #5520: pecl pickle fails on pecl pickle fails on extension/package deps
-* fix Bug #5523: pecl pickle misses to put configureoptions into package.xml v1
-* fix Bug #5527: No need for cpp
-* fix Bug #5529: configure options in package.xml 2.0 will be ignored
-* fix Bug #5530: PEAR_PackageFile_v2-&gt;getConfigureOptions() API incompatible with v1
-* fix Bug #5531: adding of installconditions/binarypackage/configure options
- to extsrc may fail
-* fix Bug #5550: PHP notices/warnings/errors are 1 file off in trace
-* fix Bug #5580: pear makerpm XML_sql2xml-0.3.2.tgz error
-* fix Bug #5619: pear makerpm produces invalid .spec dependancy code
-* fix Bug #5629: pear install http_download dies with bad error message
- </notes>
- </release>
- <release>
- <version>1.4.3</version>
- <date>2005-11-03</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>MINOR SECURITY FIX release
-A security vulnerability has been discovered in all
-PEAR versions (1.0 to 1.4.2). This vulnerability has been fixed,
-and this is a recommended upgrade for all users.
-Run &quot;pear channel-update&quot; after upgrading for exponentially
-faster list-all/remote-list!!
-* fix installation of files named like &quot;.test&quot;
-* fix base class for writeable unixeol/windowseol classes
-* fix running of post-install scripts with empty or no paramgroup
- in CLI frontend
-* fix validation of &lt;postinstallscript&gt;
-* fix writeable PEAR_Task_Postinstallscript_rw class
-* fix error in REST-based search command if searching through description
- as well
-* silence warning on list-upgrades/upgrade-all if no releases exist at a channel
-* add checks for updated channel.xml in all remote commands
-* fix pecl script if safe_mode is enabled by default
-* implement SERIOUS improvement in list-all/remote-list speed. From 6 minutes
- down to about 16-30 seconds
-* implement --loose option to avoid recommended version validation
-* implement Request #5527: alternative approach to determining glibc version
-* fix Bug #5717: analyzeSourceCode() fails to process certain
- quote situations properly
-* fix Bug #5736: if registry can&apos;t lock registry or open filemap,
- checkFileMap(), no error
-* fix Bug #5676: pear config-create broken
-* fix Bug #5683: Deadlock with (almost) circular dependency
-* fix Bug #5725: PHP5 warnings need improvement
-* fix Bug #5789: small typo
-* fix Bug #5810: internet should not be contacted on install if dependencies are installed
- </notes>
- </release>
- <release>
- <version>1.4.4</version>
- <date>2005-11-04</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>* fix Bug #5865: doesn&apos;t work with PHP4.2.x
- </notes>
- </release>
- <release>
- <version>1.4.5</version>
- <date>2005-11-21</date>
- <license>PHP License</license>
- <state>stable</state>
- <notes>* REALLY fix Bug #5865: doesn&apos;t work with PHP4.2.x
-* fix Bug #5854: if no installconditions match, no error is raised
-* fix Bug #5945: installer should auto-skip to the next channel on timeout
-* fix Bug #5947: Some package-info not handled by PEAR_PackageFile_v2
-* fix Bug #5948: Minor typo in PEAR_Validate
-* fix Bug #5958: strange error on mistyping
-* fix Bug #5959: patch: pear makerpm produces RPMs that do not uninstall/upgrade cleanly
- </notes>
- </release>
- </changelog>
-</package>
-
+
/**
* PEAR, the PHP Extension and Application Repository
*
@@ -50678,7 +50635,7 @@ faster list-all/remote-list!!
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PEAR.php,v 1.97 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: PEAR.php,v 1.98 2006/01/23 05:38:05 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -50905,6 +50862,12 @@ class PEAR
*/
function registerShutdownFunc($func, $args = array())
{
+ // if we are called statically, there is a potential
+ // that no shutdown func is registered. Bug #6445
+ if (!isset($GLOBALS['_PEAR_SHUTDOWN_REGISTERED'])) {
+ register_shutdown_function("_PEAR_call_destructors");
+ $GLOBALS['_PEAR_SHUTDOWN_REGISTERED'] = true;
+ }
$GLOBALS['_PEAR_shutdown_funcs'][] = array($func, $args);
}
@@ -51751,7 +51714,7 @@ class PEAR_Error
* End:
*/
?>
-óÎõáàÜ
+<?php
/**
* PEAR_ChannelFile, the channel handling class
*
@@ -51768,7 +51731,7 @@ class PEAR_Error
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: ChannelFile.php,v 1.74 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: ChannelFile.php,v 1.75 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -52077,6 +52040,20 @@ class PEAR_ChannelFile {
}
return $a;
}
+
+ /**
+ * Unlike {@link fromArray()} this does not do any validation
+ * @param array
+ * @static
+ * @return PEAR_ChannelFile
+ */
+ function &fromArrayWithErrors($data, $compatibility = false,
+ $stackClass = 'PEAR_ErrorStack')
+ {
+ $a = new PEAR_ChannelFile($compatibility, $stackClass);
+ $a->_fromArray($data);
+ return $a;
+ }
/**
* @param array
@@ -53352,7 +53329,7 @@ class PEAR_ChannelFile {
}
}
?>
-YÈyœ
+<?php
/**
* PEAR_ChannelFile_Parser for parsing channel.xml
*
@@ -53424,7 +53401,7 @@ class PEAR_ChannelFile_Parser extends PEAR_XMLParser
return $ret;
}
}
-?>.ˆçn2
+?><?php
/**
* PEAR_Command, command pattern class
*
@@ -53831,7 +53808,7 @@ class PEAR_Command
}
?>
-& âÖ¸
+<?php
/**
* PEAR_Command_Common base class
*
@@ -53849,7 +53826,7 @@ class PEAR_Command
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Common.php,v 1.30 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Common.php,v 1.32 2006/03/02 16:39:14 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -54087,19 +54064,21 @@ class PEAR_Command_Common extends PEAR
function run($command, $options, $params)
{
- $func = @$this->commands[$command]['function'];
- if (empty($func)) {
+ if (empty($this->commands[$command]['function'])) {
// look for shortcuts
foreach (array_keys($this->commands) as $cmd) {
- if (@$this->commands[$cmd]['shortcut'] == $command) {
- $command = $cmd;
- $func = @$this->commands[$command]['function'];
- if (empty($func)) {
+ if (isset($this->commands[$cmd]['shortcut']) && $this->commands[$cmd]['shortcut'] == $command) {
+ if (empty($this->commands[$cmd]['function'])) {
return $this->raiseError("unknown command `$command'");
+ } else {
+ $func = $this->commands[$cmd]['function'];
}
+ $command = $cmd;
break;
}
}
+ } else {
+ $func = $this->commands[$command]['function'];
}
return $this->$func($command, $options, $params);
}
@@ -54107,7 +54086,8 @@ class PEAR_Command_Common extends PEAR
// }}}
}
-?>ߧ'Y×}
+?>
+<?php
/**
* PEAR_Command_Install (install, upgrade, upgrade-all, uninstall, bundle, run-scripts commands)
*
@@ -54125,7 +54105,7 @@ class PEAR_Command_Common extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Install.php,v 1.112 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Install.php,v 1.115 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -54480,6 +54460,9 @@ Run post-installation scripts in package <package>, if any exist.
}
$this->config->set('default_channel', $channel);
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $this->raiseError($chan);
+ }
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
$base = $chan->getBaseURL('REST1.0', $this->config->get('preferred_mirror'))) {
$dorest = true;
@@ -54645,23 +54628,29 @@ Run post-installation scripts in package <package>, if any exist.
$group['attribs']['hint'] . ')');
}
$extrainfo[] = 'To install use "pear install ' .
- $param->getPackage() . '#featurename"';
+ $reg->parsedPackageNameToString(
+ array('package' => $param->getPackage(),
+ 'channel' => $param->getChannel()), true) .
+ '#featurename"';
}
}
if (isset($options['installroot'])) {
$reg = &$this->config->getRegistry();
}
$pkg = &$reg->getPackage($param->getPackage(), $param->getChannel());
- $pkg->setConfig($this->config);
- if ($list = $pkg->listPostinstallScripts()) {
- $pn = $reg->parsedPackageNameToString(array('channel' =>
- $param->getChannel(), 'package' => $param->getPackage()), true);
- $extrainfo[] = $pn . ' has post-install scripts:';
- foreach ($list as $file) {
- $extrainfo[] = $file;
+ // $pkg may be NULL if install is a 'fake' install via --packagingroot
+ if (is_object($pkg)) {
+ $pkg->setConfig($this->config);
+ if ($list = $pkg->listPostinstallScripts()) {
+ $pn = $reg->parsedPackageNameToString(array('channel' =>
+ $param->getChannel(), 'package' => $param->getPackage()), true);
+ $extrainfo[] = $pn . ' has post-install scripts:';
+ foreach ($list as $file) {
+ $extrainfo[] = $file;
+ }
+ $extrainfo[] = 'Use "pear run-scripts ' . $pn . '" to run';
+ $extrainfo[] = 'DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES';
}
- $extrainfo[] = 'Use "pear run-scripts ' . $pn . '" to run';
- $extrainfo[] = 'DO NOT RUN SCRIPTS FROM UNTRUSTED SOURCES';
}
} else {
return $this->raiseError("$command failed");
@@ -54871,7 +54860,7 @@ Run post-installation scripts in package <package>, if any exist.
}
}
?>
-× ö‡
+<commands version="1.0">
<install>
<summary>Install Package</summary>
<function>doInstall</function>
@@ -55124,7 +55113,7 @@ package if needed.
Run post-installation scripts in package &lt;package&gt;, if any exist.
</doc>
</run-scripts>
-</commands>Ð"…žŒ
+</commands><?php
/**
* PEAR_Common, the base class for the PEAR Installer
*
@@ -55143,7 +55132,7 @@ Run post-installation scripts in package &lt;package&gt;, if any exist.
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Common.php,v 1.153 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Common.php,v 1.155 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1.0
* @deprecated File deprecated since Release 1.4.0a1
@@ -55173,11 +55162,11 @@ define('_PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '(' . _PEAR_COMMON_PACKAGE_NAME_PRE
define('PEAR_COMMON_PACKAGE_DOWNLOAD_PREG', '/^' . _PEAR_COMMON_PACKAGE_DOWNLOAD_PREG .
'$/');
-define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9_\.]+');
+define('_PEAR_CHANNELS_NAME_PREG', '[A-Za-z][a-zA-Z0-9\.]+');
define('PEAR_CHANNELS_NAME_PREG', '/^' . _PEAR_CHANNELS_NAME_PREG . '$/');
// this should allow any dns or IP address, plus a path - NO UNDERSCORES ALLOWED
-define('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*(\/[a-zA-Z0-9-]+)*');
+define('_PEAR_CHANNELS_SERVER_PREG', '[a-zA-Z0-9\-]+(?:\.[a-zA-Z0-9\-]+)*(\/[a-zA-Z0-9\-]+)*');
define('PEAR_CHANNELS_SERVER_PREG', '/^' . _PEAR_CHANNELS_SERVER_PREG . '$/i');
define('_PEAR_CHANNELS_PACKAGE_PREG', '(' ._PEAR_CHANNELS_SERVER_PREG . ')\/('
@@ -56252,7 +56241,7 @@ class PEAR_Common extends PEAR
}
require_once 'phar://install-pear-nozlib.phar/PEAR/Config.php';
require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile.php';
-?>\&bP
+?><?php
/**
* PEAR_Config, customized configuration handling for the PEAR Installer
*
@@ -56270,7 +56259,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Config.php,v 1.123 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Config.php,v 1.124 2006/03/02 18:14:12 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -57519,6 +57508,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry();
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($test) && $chan->getName() != $test) {
return $channel; // mirror does not exist
}
@@ -57540,6 +57532,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry();
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($test) && $chan->getName() != $test) {
return $channel; // mirror does not exist
}
@@ -57583,6 +57578,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry($layer);
if (is_object($reg)) {
$chan = &$reg->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return $channel;
+ }
if (!$chan->getMirror($ret) && $chan->getName() != $ret) {
return $channel; // mirror does not exist
}
@@ -57637,6 +57635,9 @@ class PEAR_Config extends PEAR
$reg = &$this->getRegistry($layer);
if (is_object($reg)) {
$chan = &$reg->getChannel($channel ? $channel : 'pear.php.net');
+ if (PEAR::isError($chan)) {
+ return false;
+ }
if (!$chan->getMirror($value) && $chan->getName() != $value) {
return false; // mirror does not exist
}
@@ -58306,7 +58307,7 @@ class PEAR_Config extends PEAR
}
?>
-Ã,|‘ ¾
+<?php
/**
* PEAR_Dependency2, advanced dependency validation
*
@@ -58345,7 +58346,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/Validate.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -58833,7 +58834,7 @@ class PEAR_Dependency2
*/
function getPEARVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
function validatePearinstallerDependency($dep)
@@ -59507,7 +59508,7 @@ class PEAR_Dependency2
$this->_currentPackage, true)));
}
}
-?>tî®0Z
+?><?php
/**
* PEAR_DependencyDB, advanced installed packages dependency database
*
@@ -60161,7 +60162,7 @@ class PEAR_DependencyDB
}
}
}
-?>ÂÀc£ä
+?><?php
/**
* PEAR_Downloader, the PEAR Installer's download utility class
*
@@ -60181,7 +60182,7 @@ class PEAR_DependencyDB
* @author Martin Jansen <mj@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Downloader.php,v 1.96 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Downloader.php,v 1.99 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.3.0
*/
@@ -60441,6 +60442,10 @@ class PEAR_Downloader extends PEAR_Common
PEAR::staticPushErrorHandling(PEAR_ERROR_RETURN);
$err = $params[$i]->initialize($param);
PEAR::staticPopErrorHandling();
+ if (!$err) {
+ // skip parameters that were missed by preferred_state
+ continue;
+ }
if (PEAR::isError($err)) {
if (!isset($this->_options['soft'])) {
$this->log(0, $err->getMessage());
@@ -60460,6 +60465,10 @@ class PEAR_Downloader extends PEAR_Common
require_once 'phar://install-pear-nozlib.phar/System.php';
}
$curchannel = &$this->_registry->getChannel($params[$i]->getChannel());
+ if (PEAR::isError($curchannel)) {
+ PEAR::staticPopErrorHandling();
+ return $this->raiseError($curchannel);
+ }
$a = $this->downloadHttp('http://' . $params[$i]->getChannel() .
'/channel.xml', $this->ui,
System::mktemp(array('-d')), null, $curchannel->lastModified());
@@ -60472,7 +60481,14 @@ class PEAR_Downloader extends PEAR_Common
'" to update');
}
if ($params[$i] && !isset($this->_options['downloadonly'])) {
- $checkdir = $this->config->get('php_dir', null, $params[$i]->getChannel());
+ if (isset($this->_options['packagingroot'])) {
+ $checkdir = $this->_prependPath(
+ $this->config->get('php_dir', null, $params[$i]->getChannel()),
+ $this->_options['packagingroot']);
+ } else {
+ $checkdir = $this->config->get('php_dir',
+ null, $params[$i]->getChannel());
+ }
while ($checkdir && $checkdir != '/' && !file_exists($checkdir)) {
$checkdir = dirname($checkdir);
}
@@ -60866,10 +60882,14 @@ class PEAR_Downloader extends PEAR_Common
break;
}
}
+ $this->configSet('default_channel', $curchannel);
return PEAR::raiseError('Unknown remote channel: ' . $remotechannel);
} while (false);
}
$chan = &$this->_registry->getChannel($parr['channel']);
+ if (PEAR::isError($chan)) {
+ return $chan;
+ }
$version = $this->_registry->packageInfo($parr['package'], 'version',
$parr['channel']);
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
@@ -60882,6 +60902,7 @@ class PEAR_Downloader extends PEAR_Common
$url = $rest->getDownloadURL($base, $parr, $state, false);
}
if (PEAR::isError($url)) {
+ $this->configSet('default_channel', $curchannel);
return $url;
}
if ($parr['channel'] != $curchannel) {
@@ -61007,6 +61028,9 @@ class PEAR_Downloader extends PEAR_Common
unset($parr['state']);
}
$chan = &$this->_registry->getChannel($remotechannel);
+ if (PEAR::isError($chan)) {
+ return $chan;
+ }
$version = $this->_registry->packageInfo($dep['name'], 'version',
$remotechannel);
if ($chan->supportsREST($this->config->get('preferred_mirror')) &&
@@ -61114,6 +61138,9 @@ class PEAR_Downloader extends PEAR_Common
$package = "http://pear.php.net/get/$package";
} else {
$chan = $this->_registry->getChannel($channel);
+ if (PEAR::isError($chan)) {
+ return '';
+ }
$package = "http://" . $chan->getServer() . "/get/$package";
}
if (!extension_loaded("zlib")) {
@@ -61645,7 +61672,7 @@ class PEAR_Downloader extends PEAR_Common
// }}}
?>
-¡">‡M 
+<?php
/**
* PEAR_Downloader_Package
*
@@ -61662,11 +61689,16 @@ class PEAR_Downloader extends PEAR_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Package.php,v 1.90 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Package.php,v 1.91 2006/01/23 19:05:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
/**
+ * Error code when parameter initialization fails because no releases
+ * exist within preferred_state, but releases do exist
+ */
+define('PEAR_DOWNLOADER_PACKAGE_STATE', -1003);
+/**
* Coordinates download parameters and manages their dependencies
* prior to downloading them.
*
@@ -61691,7 +61723,7 @@ class PEAR_Downloader extends PEAR_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -61794,7 +61826,7 @@ class PEAR_Downloader_Package
* This is the heart of the PEAR_Downloader_Package(), and is used in
* {@link PEAR_Downloader::download()}
* @param string
- * @return void|PEAR_Error
+ * @return bool|PEAR_Error
*/
function initialize($param)
{
@@ -61821,6 +61853,10 @@ class PEAR_Downloader_Package
}
$err = $this->_fromString($param);
if (PEAR::isError($err) || !$this->_valid) {
+ if (PEAR::isError($err) &&
+ $err->getCode() == PEAR_DOWNLOADER_PACKAGE_STATE) {
+ return false; // instruct the downloader to silently skip
+ }
if (isset($this->_type) && $this->_type == 'local' &&
PEAR::isError($origErr)) {
if (is_array($origErr->getUserInfo())) {
@@ -61856,6 +61892,7 @@ class PEAR_Downloader_Package
}
}
}
+ return true;
}
/**
@@ -63169,7 +63206,11 @@ class PEAR_Downloader_Package
$this->_registry->parsedPackageNameToString($pname, true) .
' can be installed with "pecl install ' . $pname['package'] .
'"');
+ } else {
+ $pname['channel'] = 'pear.php.net';
}
+ } else {
+ $pname['channel'] = 'pear.php.net';
}
}
return $info;
@@ -63319,6 +63360,22 @@ class PEAR_Downloader_Package
$vs = ' within preferred state "' . $this->_downloader->config->get(
'preferred_state') . '"';
}
+ $options = $this->_downloader->getOptions();
+ // this is only set by the "download-all" command
+ if (isset($options['ignorepreferred_state'])) {
+ $err = PEAR::raiseError(
+ 'Failed to download ' . $this->_registry->parsedPackageNameToString(
+ array('channel' => $pname['channel'], 'package' => $pname['package']),
+ true)
+ . $vs .
+ ', latest release is version ' . $info['version'] .
+ ', stability "' . $info['info']->getState() . '", use "' .
+ $this->_registry->parsedPackageNameToString(
+ array('channel' => $pname['channel'], 'package' => $pname['package'],
+ 'version' => $info['version'])) . '" to install',
+ PEAR_DOWNLOADER_PACKAGE_STATE);
+ return $err;
+ }
$err = PEAR::raiseError(
'Failed to download ' . $this->_registry->parsedPackageNameToString(
array('channel' => $pname['channel'], 'package' => $pname['package']),
@@ -63336,7 +63393,7 @@ class PEAR_Downloader_Package
}
}
?>
-Õ/kíƒ
+<?php
/**
* Error Stack Implementation
*
@@ -64306,7 +64363,7 @@ class PEAR_ErrorStack {
$stack = &PEAR_ErrorStack::singleton('PEAR_ErrorStack');
$stack->pushCallback(array('PEAR_ErrorStack', '_handleError'));
?>
-ÌT¿Ë$
+<?php
/**
* PEAR_Frontend, the singleton-based frontend for user input/output
*
@@ -64323,7 +64380,7 @@ $stack->pushCallback(array('PEAR_ErrorStack', '_handleError'));
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Frontend.php,v 1.7 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Frontend.php,v 1.9 2006/03/03 13:13:07 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -64342,7 +64399,7 @@ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = null;
/**
* Singleton-based frontend for PEAR user input/output
- *
+ *
* Note that frontend classes must implement userConfirm(), and shoul implement
* displayFatalError() and outputData()
* @category pear
@@ -64414,6 +64471,38 @@ class PEAR_Frontend extends PEAR
}
/**
+ * Set the frontend class that will be used by calls to {@link singleton()}
+ *
+ * Frontends are expected to be a descendant of PEAR_Frontend
+ * @param PEAR_Frontend
+ * @return PEAR_Frontend
+ * @static
+ */
+ function &setFrontendObject($uiobject)
+ {
+ if (is_object($GLOBALS['_PEAR_FRONTEND_SINGLETON']) &&
+ is_a($GLOBALS['_PEAR_FRONTEND_SINGLETON'], get_class($uiobject))) {
+ return $GLOBALS['_PEAR_FRONTEND_SINGLETON'];
+ }
+ if (!is_a($uiobject, 'PEAR_Frontend')) {
+ $err = PEAR::raiseError('not a valid frontend class: (' .
+ get_class($uiobject) . ')');
+ return $err;
+ }
+ // quick test to see if this class implements a few of the most
+ // important frontend methods
+ if (method_exists($uiobject, 'userConfirm')) {
+ $GLOBALS['_PEAR_FRONTEND_SINGLETON'] = &$uiobject;
+ $GLOBALS['_PEAR_FRONTEND_CLASS'] = get_class($uiobject);
+ return $uiobject;
+ } else {
+ $err = PEAR::raiseError("not a value frontend class: (" . get_class($uiobject)
+ . ')');
+ return $err;
+ }
+ }
+
+ /**
* @param string $path relative or absolute include path
* @return boolean
* @static
@@ -64459,7 +64548,7 @@ class PEAR_Frontend extends PEAR
{
}
}
-?>¶ °­e
+?><?php
/**
* PEAR_Frontend_CLI
*
@@ -64477,7 +64566,7 @@ class PEAR_Frontend extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: CLI.php,v 1.57 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: CLI.php,v 1.59 2006/03/02 13:16:19 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -64916,12 +65005,17 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
} else {
$w = strlen($col);
}
- if ($w > @$this->params['widest'][$i]) {
+
+ if (isset($this->params['widest'][$i])) {
+ if ($w > $this->params['widest'][$i]) {
+ $this->params['widest'][$i] = $w;
+ }
+ } else {
$this->params['widest'][$i] = $w;
}
$tmp = count_chars($columns[$i], 1);
// handle unix, mac and windows formats
- $lines = (isset($tmp[10]) ? $tmp[10] : @$tmp[13]) + 1;
+ $lines = (isset($tmp[10]) ? $tmp[10] : (isset($tmp[13]) ? $tmp[13] : 0)) + 1;
if ($lines > $highest) {
$highest = $lines;
}
@@ -65196,7 +65290,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
}
?>
-6вìþñ
+<?php
/**
* PEAR_Installer
*
@@ -65216,7 +65310,7 @@ class PEAR_Frontend_CLI extends PEAR_Frontend
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Installer.php,v 1.224 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Installer.php,v 1.228.2.1 2006/03/05 20:07:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -65493,147 +65587,150 @@ class PEAR_Installer extends PEAR_Downloader
$dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file);
// }}}
- if (!@is_dir($dest_dir)) {
+ if (empty($this->_options['register-only']) && !@is_dir($dest_dir)) {
if (!$this->mkDirHier($dest_dir)) {
return $this->raiseError("failed to mkdir $dest_dir",
PEAR_INSTALLER_FAILED);
}
$this->log(3, "+ mkdir $dest_dir");
}
- if (empty($atts['replacements'])) {
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (!@copy($orig_file, $dest_file)) {
- return $this->raiseError("failed to write $dest_file",
- PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $orig_file $dest_file");
- if (isset($atts['md5sum'])) {
- $md5sum = md5_file($dest_file);
- }
- } else {
- // {{{ file with replacements
- if (!file_exists($orig_file)) {
- return $this->raiseError("file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (function_exists('file_get_contents')) {
- $contents = file_get_contents($orig_file);
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (empty($atts['replacements'])) {
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (!@copy($orig_file, $dest_file)) {
+ return $this->raiseError("failed to write $dest_file",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ cp $orig_file $dest_file");
+ if (isset($atts['md5sum'])) {
+ $md5sum = md5_file($dest_file);
+ }
} else {
- $fp = fopen($orig_file, "r");
- $contents = @fread($fp, filesize($orig_file));
- fclose($fp);
- }
- if ($contents === false) {
- $contents = '';
- }
- if (isset($atts['md5sum'])) {
- $md5sum = md5($contents);
- }
- $subst_from = $subst_to = array();
- foreach ($atts['replacements'] as $a) {
- $to = '';
- if ($a['type'] == 'php-const') {
- if (preg_match('/^[a-z0-9_]+$/i', $a['to'])) {
- eval("\$to = $a[to];");
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid php-const replacement: $a[to]");
+ // {{{ file with replacements
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file does not exist",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (function_exists('file_get_contents')) {
+ $contents = file_get_contents($orig_file);
+ } else {
+ $fp = fopen($orig_file, "r");
+ $contents = @fread($fp, filesize($orig_file));
+ fclose($fp);
+ }
+ if ($contents === false) {
+ $contents = '';
+ }
+ if (isset($atts['md5sum'])) {
+ $md5sum = md5($contents);
+ }
+ $subst_from = $subst_to = array();
+ foreach ($atts['replacements'] as $a) {
+ $to = '';
+ if ($a['type'] == 'php-const') {
+ if (preg_match('/^[a-z0-9_]+$/i', $a['to'])) {
+ eval("\$to = $a[to];");
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid php-const replacement: $a[to]");
+ }
+ continue;
}
- continue;
- }
- } elseif ($a['type'] == 'pear-config') {
- if ($a['to'] == 'master_server') {
- $chan = $this->_registry->getChannel($channel);
- if ($chan) {
- $to = $chan->getServer();
+ } elseif ($a['type'] == 'pear-config') {
+ if ($a['to'] == 'master_server') {
+ $chan = $this->_registry->getChannel($channel);
+ if (!PEAR::isError($chan)) {
+ $to = $chan->getServer();
+ } else {
+ $to = $this->config->get($a['to'], null, $channel);
+ }
} else {
$to = $this->config->get($a['to'], null, $channel);
}
- } else {
- $to = $this->config->get($a['to'], null, $channel);
- }
- if (is_null($to)) {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid pear-config replacement: $a[to]");
+ if (is_null($to)) {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid pear-config replacement: $a[to]");
+ }
+ continue;
}
- continue;
- }
- } elseif ($a['type'] == 'package-info') {
- if ($t = $this->pkginfo->packageInfo($a['to'])) {
- $to = $t;
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "invalid package-info replacement: $a[to]");
+ } elseif ($a['type'] == 'package-info') {
+ if ($t = $this->pkginfo->packageInfo($a['to'])) {
+ $to = $t;
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "invalid package-info replacement: $a[to]");
+ }
+ continue;
}
- continue;
+ }
+ if (!is_null($to)) {
+ $subst_from[] = $a['from'];
+ $subst_to[] = $to;
}
}
- if (!is_null($to)) {
- $subst_from[] = $a['from'];
- $subst_to[] = $to;
+ $this->log(3, "doing ".sizeof($subst_from)." substitution(s) for $final_dest_file");
+ if (sizeof($subst_from)) {
+ $contents = str_replace($subst_from, $subst_to, $contents);
}
- }
- $this->log(3, "doing ".sizeof($subst_from)." substitution(s) for $final_dest_file");
- if (sizeof($subst_from)) {
- $contents = str_replace($subst_from, $subst_to, $contents);
- }
- $wp = @fopen($dest_file, "wb");
- if (!is_resource($wp)) {
- return $this->raiseError("failed to create $dest_file: $php_errormsg",
- PEAR_INSTALLER_FAILED);
- }
- if (fwrite($wp, $contents) === false) {
- return $this->raiseError("failed writing to $dest_file: $php_errormsg",
- PEAR_INSTALLER_FAILED);
- }
- fclose($wp);
- // }}}
- }
- // {{{ check the md5
- if (isset($md5sum)) {
- if (strtolower($md5sum) == strtolower($atts['md5sum'])) {
- $this->log(2, "md5sum ok: $final_dest_file");
- } else {
- if (empty($options['force'])) {
- // delete the file
- @unlink($dest_file);
- if (!isset($options['ignore-errors'])) {
- return $this->raiseError("bad md5sum for file $final_dest_file",
+ $wp = @fopen($dest_file, "wb");
+ if (!is_resource($wp)) {
+ return $this->raiseError("failed to create $dest_file: $php_errormsg",
PEAR_INSTALLER_FAILED);
+ }
+ if (fwrite($wp, $contents) === false) {
+ return $this->raiseError("failed writing to $dest_file: $php_errormsg",
+ PEAR_INSTALLER_FAILED);
+ }
+ fclose($wp);
+ // }}}
+ }
+ // {{{ check the md5
+ if (isset($md5sum)) {
+ if (strtolower($md5sum) == strtolower($atts['md5sum'])) {
+ $this->log(2, "md5sum ok: $final_dest_file");
+ } else {
+ if (empty($options['force'])) {
+ // delete the file
+ @unlink($dest_file);
+ if (!isset($options['ignore-errors'])) {
+ return $this->raiseError("bad md5sum for file $final_dest_file",
+ PEAR_INSTALLER_FAILED);
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ }
+ }
} else {
if (!isset($options['soft'])) {
$this->log(0, "warning : bad md5sum for file $final_dest_file");
}
}
+ }
+ }
+ // }}}
+ // {{{ set file permissions
+ if (!OS_WINDOWS) {
+ if ($atts['role'] == 'script') {
+ $mode = 0777 & ~(int)octdec($this->config->get('umask'));
+ $this->log(3, "+ chmod +x $dest_file");
} else {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ }
+ $this->addFileOperation("chmod", array($mode, $dest_file));
+ if (!@chmod($dest_file, $mode)) {
if (!isset($options['soft'])) {
- $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ $this->log(0, "failed to change mode of $dest_file");
}
}
}
+ // }}}
+ $this->addFileOperation("rename", array($dest_file, $final_dest_file,
+ $atts['role'] == 'ext'));
}
- // }}}
- // {{{ set file permissions
- if (!OS_WINDOWS) {
- if ($atts['role'] == 'script') {
- $mode = 0777 & ~(int)octdec($this->config->get('umask'));
- $this->log(3, "+ chmod +x $dest_file");
- } else {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- }
- $this->addFileOperation("chmod", array($mode, $dest_file));
- if (!@chmod($dest_file, $mode)) {
- if (!isset($options['soft'])) {
- $this->log(0, "failed to change mode of $dest_file");
- }
- }
- }
- // }}}
- $this->addFileOperation("rename", array($dest_file, $final_dest_file,
- $atts['role'] == 'ext'));
// Store the full path where the file was installed for easy unistall
$this->addFileOperation("installed_as", array($file, $installed_as,
$save_destdir, dirname(substr($installedas_dest_file, strlen($save_destdir)))));
@@ -65689,114 +65786,119 @@ class PEAR_Installer extends PEAR_Downloader
$dest_file = $dest_dir . DIRECTORY_SEPARATOR . '.tmp' . basename($final_dest_file);
// }}}
- if (!@is_dir($dest_dir)) {
- if (!$this->mkDirHier($dest_dir)) {
- return $this->raiseError("failed to mkdir $dest_dir",
- PEAR_INSTALLER_FAILED);
+ if (empty($this->_options['register-only'])) {
+ if (!@is_dir($dest_dir)) {
+ if (!$this->mkDirHier($dest_dir)) {
+ return $this->raiseError("failed to mkdir $dest_dir",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ mkdir $dest_dir");
}
- $this->log(3, "+ mkdir $dest_dir");
}
$attribs = $atts['attribs'];
unset($atts['attribs']);
- if (!count($atts)) { // no tasks
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (!@copy($orig_file, $dest_file)) {
- return $this->raiseError("failed to write $dest_file",
- PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $orig_file $dest_file");
- if (isset($attribs['md5sum'])) {
- $md5sum = md5_file($dest_file);
- }
- } else { // file with tasks
- if (!file_exists($orig_file)) {
- return $this->raiseError("file $orig_file does not exist",
- PEAR_INSTALLER_FAILED);
- }
- if (function_exists('file_get_contents')) {
- $contents = file_get_contents($orig_file);
- } else {
- $fp = fopen($orig_file, "r");
- $contents = @fread($fp, filesize($orig_file)); // filesize can be 0
- fclose($fp);
- }
- if ($contents === false) {
- $contents = '';
- }
- if (isset($attribs['md5sum'])) {
- $md5sum = md5($contents);
- }
- foreach ($atts as $tag => $raw) {
- $tag = str_replace($pkg->getTasksNs() . ':', '', $tag);
- $task = "PEAR_Task_$tag";
- $task = &new $task($this->config, $this, PEAR_TASK_INSTALL);
- if (!$task->isScript()) { // scripts are only handled after installation
- $task->init($raw, $attribs, $pkg->getLastInstalledVersion());
- $res = $task->startSession($pkg, $contents, $final_dest_file);
- if ($res === false) {
- continue; // skip this file
- }
- if (PEAR::isError($res)) {
- return $res;
- }
- $contents = $res; // save changes
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (!count($atts)) { // no tasks
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
+ PEAR_INSTALLER_FAILED);
}
- $wp = @fopen($dest_file, "wb");
- if (!is_resource($wp)) {
- return $this->raiseError("failed to create $dest_file: $php_errormsg",
+ if (!@copy($orig_file, $dest_file)) {
+ return $this->raiseError("failed to write $dest_file",
PEAR_INSTALLER_FAILED);
}
- if (fwrite($wp, $contents) === false) {
- return $this->raiseError("failed writing to $dest_file: $php_errormsg",
+ $this->log(3, "+ cp $orig_file $dest_file");
+ if (isset($attribs['md5sum'])) {
+ $md5sum = md5_file($dest_file);
+ }
+ } else { // file with tasks
+ if (!file_exists($orig_file)) {
+ return $this->raiseError("file $orig_file does not exist",
PEAR_INSTALLER_FAILED);
}
- fclose($wp);
- }
- }
- // {{{ check the md5
- if (isset($md5sum)) {
- if (strtolower($md5sum) == strtolower($attribs['md5sum'])) {
- $this->log(2, "md5sum ok: $final_dest_file");
- } else {
- if (empty($options['force'])) {
- // delete the file
- @unlink($dest_file);
- if (!isset($options['ignore-errors'])) {
- return $this->raiseError("bad md5sum for file $final_dest_file",
+ if (function_exists('file_get_contents')) {
+ $contents = file_get_contents($orig_file);
+ } else {
+ $fp = fopen($orig_file, "r");
+ $contents = @fread($fp, filesize($orig_file)); // filesize can be 0
+ fclose($fp);
+ }
+ if ($contents === false) {
+ $contents = '';
+ }
+ if (isset($attribs['md5sum'])) {
+ $md5sum = md5($contents);
+ }
+ foreach ($atts as $tag => $raw) {
+ $tag = str_replace($pkg->getTasksNs() . ':', '', $tag);
+ $task = "PEAR_Task_$tag";
+ $task = &new $task($this->config, $this, PEAR_TASK_INSTALL);
+ if (!$task->isScript()) { // scripts are only handled after installation
+ $task->init($raw, $attribs, $pkg->getLastInstalledVersion());
+ $res = $task->startSession($pkg, $contents, $final_dest_file);
+ if ($res === false) {
+ continue; // skip this file
+ }
+ if (PEAR::isError($res)) {
+ return $res;
+ }
+ $contents = $res; // save changes
+ }
+ $wp = @fopen($dest_file, "wb");
+ if (!is_resource($wp)) {
+ return $this->raiseError("failed to create $dest_file: $php_errormsg",
+ PEAR_INSTALLER_FAILED);
+ }
+ if (fwrite($wp, $contents) === false) {
+ return $this->raiseError("failed writing to $dest_file: $php_errormsg",
PEAR_INSTALLER_FAILED);
+ }
+ fclose($wp);
+ }
+ }
+ // {{{ check the md5
+ if (isset($md5sum)) {
+ if (strtolower($md5sum) == strtolower($attribs['md5sum'])) {
+ $this->log(2, "md5sum ok: $final_dest_file");
+ } else {
+ if (empty($options['force'])) {
+ // delete the file
+ @unlink($dest_file);
+ if (!isset($options['ignore-errors'])) {
+ return $this->raiseError("bad md5sum for file $final_dest_file",
+ PEAR_INSTALLER_FAILED);
+ } else {
+ if (!isset($options['soft'])) {
+ $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ }
+ }
} else {
if (!isset($options['soft'])) {
$this->log(0, "warning : bad md5sum for file $final_dest_file");
}
}
+ }
+ }
+ // }}}
+ // {{{ set file permissions
+ if (!OS_WINDOWS) {
+ if ($role->isExecutable()) {
+ $mode = 0777 & ~(int)octdec($this->config->get('umask'));
+ $this->log(3, "+ chmod +x $dest_file");
} else {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ }
+ $this->addFileOperation("chmod", array($mode, $dest_file));
+ if (!@chmod($dest_file, $mode)) {
if (!isset($options['soft'])) {
- $this->log(0, "warning : bad md5sum for file $final_dest_file");
+ $this->log(0, "failed to change mode of $dest_file");
}
}
}
+ // }}}
+ $this->addFileOperation("rename", array($dest_file, $final_dest_file, $role->isExtension()));
}
- // }}}
- // {{{ set file permissions
- if (!OS_WINDOWS) {
- if ($role->isExecutable()) {
- $mode = 0777 & ~(int)octdec($this->config->get('umask'));
- $this->log(3, "+ chmod +x $dest_file");
- } else {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- }
- $this->addFileOperation("chmod", array($mode, $dest_file));
- if (!@chmod($dest_file, $mode)) {
- if (!isset($options['soft'])) {
- $this->log(0, "failed to change mode of $dest_file");
- }
- }
- }
- // }}}
- $this->addFileOperation("rename", array($dest_file, $final_dest_file, $role->isExtension()));
// Store the full path where the file was installed for easy uninstall
$this->addFileOperation("installed_as", array($file, $installed_as,
$save_destdir, dirname(substr($dest_file, strlen($save_destdir)))));
@@ -66193,7 +66295,7 @@ class PEAR_Installer extends PEAR_Downloader
$channel = $pkg->getChannel();
if (isset($this->_options['packagingroot'])) {
$packrootphp_dir = $this->_prependPath(
- $this->config->get('php_dir', null, 'pear.php.net'),
+ $this->config->get('php_dir', null, $channel),
$this->_options['packagingroot']);
}
@@ -66202,6 +66304,7 @@ class PEAR_Installer extends PEAR_Downloader
$this->_registry = &$this->config->getRegistry();
$installregistry = &$this->_registry;
$this->installroot = ''; // all done automagically now
+ $php_dir = $this->config->get('php_dir', null, $channel);
} else {
$this->config->setInstallRoot(false);
$this->_registry = &$this->config->getRegistry();
@@ -66354,74 +66457,69 @@ class PEAR_Installer extends PEAR_Downloader
$this->source_files = 0;
$savechannel = $this->config->get('default_channel');
- if (empty($options['register-only'])) {
- if (!is_dir($php_dir)) {
- if (PEAR::isError(System::mkdir(array('-p'), $php_dir))) {
- return $this->raiseError("no installation destination directory '$php_dir'\n");
- }
+ if (empty($options['register-only']) && !is_dir($php_dir)) {
+ if (PEAR::isError(System::mkdir(array('-p'), $php_dir))) {
+ return $this->raiseError("no installation destination directory '$php_dir'\n");
}
+ }
- $tmp_path = dirname($descfile);
- if (substr($pkgfile, -4) != '.xml') {
- $tmp_path .= DIRECTORY_SEPARATOR . $pkgname . '-' . $pkg->getVersion();
- }
+ $tmp_path = dirname($descfile);
+ if (substr($pkgfile, -4) != '.xml') {
+ $tmp_path .= DIRECTORY_SEPARATOR . $pkgname . '-' . $pkg->getVersion();
+ }
- $this->configSet('default_channel', $channel);
- // {{{ install files
-
- if ($pkg->getPackagexmlVersion() == '2.0') {
- $filelist = $pkg->getInstallationFilelist();
- if (PEAR::isError($filelist)) {
- return $filelist;
- }
+ $this->configSet('default_channel', $channel);
+ // {{{ install files
+
+ if ($pkg->getPackagexmlVersion() == '2.0') {
+ $filelist = $pkg->getInstallationFilelist();
+ } else {
+ $filelist = $pkg->getFileList();
+ }
+ if (PEAR::isError($filelist)) {
+ return $filelist;
+ }
+ $pkg->resetFilelist();
+ $pkg->setLastInstalledVersion($installregistry->packageInfo($pkg->getPackage(),
+ 'version', $pkg->getChannel()));
+ foreach ($filelist as $file => $atts) {
+ if ($pkg->getPackagexmlVersion() == '1.0') {
+ $this->expectError(PEAR_INSTALLER_FAILED);
+ $res = $this->_installFile($file, $atts, $tmp_path, $options);
+ $this->popExpect();
} else {
- $filelist = $pkg->getFileList();
- }
- if (PEAR::isError($filelist)) {
- return $filelist;
- }
- $pkg->resetFilelist();
- $pkg->setLastInstalledVersion($installregistry->packageInfo($pkg->getPackage(),
- 'version', $pkg->getChannel()));
- foreach ($filelist as $file => $atts) {
- if ($pkg->getPackagexmlVersion() == '1.0') {
- $this->expectError(PEAR_INSTALLER_FAILED);
- $res = $this->_installFile($file, $atts, $tmp_path, $options);
- $this->popExpect();
+ $this->expectError(PEAR_INSTALLER_FAILED);
+ $res = $this->_installFile2($pkg, $file, $atts, $tmp_path, $options);
+ $this->popExpect();
+ }
+ if (PEAR::isError($res)) {
+ if (empty($options['ignore-errors'])) {
+ $this->rollbackFileTransaction();
+ if ($res->getMessage() == "file does not exist") {
+ $this->raiseError("file $file in package.xml does not exist");
+ }
+ return $this->raiseError($res);
} else {
- $this->expectError(PEAR_INSTALLER_FAILED);
- $res = $this->_installFile2($pkg, $file, $atts, $tmp_path, $options);
- $this->popExpect();
- }
- if (PEAR::isError($res)) {
- if (empty($options['ignore-errors'])) {
- $this->rollbackFileTransaction();
- if ($res->getMessage() == "file does not exist") {
- $this->raiseError("file $file in package.xml does not exist");
- }
- return $this->raiseError($res);
- } else {
- if (!isset($options['soft'])) {
- $this->log(0, "Warning: " . $res->getMessage());
- }
+ if (!isset($options['soft'])) {
+ $this->log(0, "Warning: " . $res->getMessage());
}
}
- if ($res == PEAR_INSTALLER_OK) {
- // Register files that were installed
- $pkg->installedFile($file, $atts);
- }
}
- // }}}
+ if ($res == PEAR_INSTALLER_OK) {
+ // Register files that were installed
+ $pkg->installedFile($file, $atts);
+ }
+ }
+ // }}}
- // {{{ compile and install source files
- if ($this->source_files > 0 && empty($options['nobuild'])) {
- if (PEAR::isError($err =
- $this->_compileSourceFiles($savechannel, $pkg))) {
- return $err;
- }
+ // {{{ compile and install source files
+ if ($this->source_files > 0 && empty($options['nobuild'])) {
+ if (PEAR::isError($err =
+ $this->_compileSourceFiles($savechannel, $pkg))) {
+ return $err;
}
- // }}}
}
+ // }}}
if (isset($backedup)) {
$this->_removeBackups($backedup);
@@ -66527,27 +66625,34 @@ class PEAR_Installer extends PEAR_Downloader
}
$dest = $ext['dest'];
$this->log(1, "Installing '$ext[file]'");
- $copyto = $this->_prependPath($dest, $this->installroot);
+ $packagingroot = '';
+ if (isset($this->_options['packagingroot'])) {
+ $packagingroot = $this->_options['packagingroot'];
+ }
+ $copyto = $this->_prependPath($dest, $packagingroot);
$copydir = dirname($copyto);
- if (!@is_dir($copydir)) {
- if (!$this->mkDirHier($copydir)) {
- return $this->raiseError("failed to mkdir $copydir",
- PEAR_INSTALLER_FAILED);
+ // pretty much nothing happens if we are only registering the install
+ if (empty($this->_options['register-only'])) {
+ if (!@is_dir($copydir)) {
+ if (!$this->mkDirHier($copydir)) {
+ return $this->raiseError("failed to mkdir $copydir",
+ PEAR_INSTALLER_FAILED);
+ }
+ $this->log(3, "+ mkdir $copydir");
}
- $this->log(3, "+ mkdir $copydir");
- }
- if (!@copy($ext['file'], $copyto)) {
- return $this->raiseError("failed to write $copyto", PEAR_INSTALLER_FAILED);
- }
- $this->log(3, "+ cp $ext[file] $copyto");
- if (!OS_WINDOWS) {
- $mode = 0666 & ~(int)octdec($this->config->get('umask'));
- $this->addFileOperation('chmod', array($mode, $copyto));
- if (!@chmod($copyto, $mode)) {
- $this->log(0, "failed to change mode of $copyto");
+ if (!@copy($ext['file'], $copyto)) {
+ return $this->raiseError("failed to write $copyto", PEAR_INSTALLER_FAILED);
}
+ $this->log(3, "+ cp $ext[file] $copyto");
+ if (!OS_WINDOWS) {
+ $mode = 0666 & ~(int)octdec($this->config->get('umask'));
+ $this->addFileOperation('chmod', array($mode, $copyto));
+ if (!@chmod($copyto, $mode)) {
+ $this->log(0, "failed to change mode of $copyto");
+ }
+ }
+ $this->addFileOperation('rename', array($ext['file'], $copyto));
}
- $this->addFileOperation('rename', array($ext['file'], $copyto));
if ($filelist->getPackageXmlVersion() == '1.0') {
$filelist->installedFile($bn, array(
@@ -66776,7 +66881,7 @@ if (!function_exists("md5_file")) {
}
// }}}
-?>Ü f­
+?><?php
/**
* PEAR_Installer_Role
*
@@ -67024,7 +67129,7 @@ class PEAR_Installer_Role
}
}
?>
-ì.~°ý
+<?php
/**
* Base class for all installation roles.
*
@@ -67203,7 +67308,7 @@ class PEAR_Installer_Role_Common
return $roleInfo['phpextension'];
}
}
-?>d|4ì¼
+?><?php
/**
* PEAR_Installer_Role_Data
*
@@ -67236,7 +67341,7 @@ class PEAR_Installer_Role_Common
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
-?>o@
+?><role version="1.0">
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -67248,7 +67353,7 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>Åëýã¹
+</role><?php
/**
* PEAR_Installer_Role_Doc
*
@@ -67281,7 +67386,7 @@ class PEAR_Installer_Role_Data extends PEAR_Installer_Role_Common {}
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
-?> ]?
+?><role version="1.0">
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -67293,7 +67398,7 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>ìÓ²ý¹
+</role><?php
/**
* PEAR_Installer_Role_Php
*
@@ -67326,7 +67431,7 @@ class PEAR_Installer_Role_Doc extends PEAR_Installer_Role_Common {}
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
-?>àÕ[
+?><role version="1.0">
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -67338,7 +67443,7 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>ŸNã@Â
+</role><?php
/**
* PEAR_Installer_Role_Script
*
@@ -67371,7 +67476,7 @@ class PEAR_Installer_Role_Php extends PEAR_Installer_Role_Common {}
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
-?>c¬V*^
+?><role version="1.0">
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -67383,7 +67488,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
<executable>1</executable>
<phpextension />
<config_vars />
-</role>X2J‚¼
+</role><?php
/**
* PEAR_Installer_Role_Test
*
@@ -67416,7 +67521,7 @@ class PEAR_Installer_Role_Script extends PEAR_Installer_Role_Common {}
* @since Class available since Release 1.4.0a1
*/
class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {}
-?>vÖ-X@
+?><role version="1.0">
<releasetypes>php</releasetypes>
<releasetypes>extsrc</releasetypes>
<releasetypes>extbin</releasetypes>
@@ -67428,7 +67533,7 @@ class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {}
<executable />
<phpextension />
<config_vars />
-</role>­þ}ÿj<
+</role><?php
/**
* PEAR_PackageFile, package.xml parsing utility class
*
@@ -67445,7 +67550,7 @@ class PEAR_Installer_Role_Test extends PEAR_Installer_Role_Common {}
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PackageFile.php,v 1.32 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: PackageFile.php,v 1.33 2006/02/09 22:39:32 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -67471,7 +67576,7 @@ define('PEAR_PACKAGEFILE_ERROR_INVALID_PACKAGEVERSION', 2);
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -67762,7 +67867,7 @@ class PEAR_PackageFile
$xml = $name;
break;
} elseif (ereg('package.xml$', $name, $match)) {
- $xml = $match[0];
+ $xml = $name;
break;
}
}
@@ -67863,7 +67968,7 @@ class PEAR_PackageFile
}
}
-?>ê¡ÞæÅ
+?><?php
/**
* package.xml generation class, package.xml version 1.0
*
@@ -67900,7 +68005,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -67917,7 +68022,7 @@ class PEAR_PackageFile_Generator_v1
function getPackagerVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
/**
@@ -68071,7 +68176,7 @@ class PEAR_PackageFile_Generator_v1
);
$ret = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n";
$ret .= "<!DOCTYPE package SYSTEM \"http://pear.php.net/dtd/package-1.0\">\n";
- $ret .= "<package version=\"1.0\" packagerversion=\"1.4.6\">\n" .
+ $ret .= "<package version=\"1.0\" packagerversion=\"1.4.9\">\n" .
" <name>$pkginfo[package]</name>";
if (isset($pkginfo['extends'])) {
$ret .= "\n<extends>$pkginfo[extends]</extends>";
@@ -69129,7 +69234,7 @@ class PEAR_PackageFile_Generator_v1
return $ret;
}
}
-?>u^õªæ
+?><?php
/**
* package.xml generation class, package.xml version 2.0
*
@@ -69147,7 +69252,7 @@ class PEAR_PackageFile_Generator_v1
* @author Stephan Schmidt (original XML_Serializer code)
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.33 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.34 2006/03/02 20:50:59 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -69166,7 +69271,7 @@ require_once 'phar://install-pear-nozlib.phar/System.php';
* @author Stephan Schmidt (original XML_Serializer code)
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a1
*/
@@ -69192,7 +69297,7 @@ class PEAR_PackageFile_Generator_v2
'indentAttributes' => false, // indent the attributes, if set to '_auto', it will indent attributes so they all start at the same column
'mode' => 'simplexml', // use 'simplexml' to use parent name as tagname if transforming an indexed array
'addDoctype' => false, // add a doctype declaration
- 'doctype' => null, // supply a string or an array with id and uri ({@see XML_Util::getDoctypeDeclaration()}
+ 'doctype' => null, // supply a string or an array with id and uri ({@see PEAR_PackageFile_Generator_v2_PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration()}
'rootName' => 'package', // name of the root tag
'rootAttributes' => array(
'version' => '2.0',
@@ -69245,7 +69350,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
*/
function getPackagerVersion()
{
- return '1.4.6';
+ return '1.4.9';
}
/**
@@ -69489,7 +69594,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
}
$this->options['beautifyFilelist'] = true;
}
- $arr['attribs']['packagerversion'] = '1.4.6';
+ $arr['attribs']['packagerversion'] = '1.4.9';
if ($this->serialize($arr, $options)) {
return $this->_serializedData . "\n";
}
@@ -69668,7 +69773,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
// add doctype declaration
if ($this->options['addDoctype'] === true) {
- $this->_serializedData = XML_Util::getDoctypeDeclaration($tagName, $this->options['doctype'])
+ $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getDoctypeDeclaration($tagName, $this->options['doctype'])
. $this->options['linebreak']
. $this->_serializedData;
}
@@ -69681,7 +69786,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
} else {
$encoding = null;
}
- $this->_serializedData = XML_Util::getXMLDeclaration('1.0', $encoding)
+ $this->_serializedData = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration('1.0', $encoding)
. $this->options['linebreak']
. $this->_serializedData;
}
@@ -69744,7 +69849,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
* @param string $tagName name of the root tag
* @param array $attributes attributes for the root tag
* @return string $string serialized data
- * @uses XML_Util::isValidName() to check, whether key has to be substituted
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::isValidName() to check, whether key has to be substituted
*/
function _serializeArray(&$array, $tagName = null, $attributes = array())
{
@@ -69826,7 +69931,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
if ($this->options['scalarAsAttributes'] === true) {
foreach ($array as $key => $value) {
- if (is_scalar($value) && (XML_Util::isValidName($key) === true)) {
+ if (is_scalar($value) && (PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key) === true)) {
unset($array[$key]);
$attributes[$this->options['prependAttributes'].$key] = $value;
}
@@ -69853,7 +69958,7 @@ http://pear.php.net/dtd/package-2.0.xsd',
// copy key
$origKey = $key;
// key cannot be used as tagname => use default tag
- $valid = XML_Util::isValidName($key);
+ $valid = PEAR_PackageFile_Generator_v2_XML_Util::isValidName($key);
if (PEAR::isError($valid)) {
if ($this->options['classAsTagName'] && is_object($value)) {
$key = get_class($value);
@@ -69973,31 +70078,23 @@ http://pear.php.net/dtd/package-2.0.xsd',
if (is_scalar($tag['content']) || is_null($tag['content'])) {
if ($this->options['encoding'] == 'UTF-8' &&
version_compare(phpversion(), '5.0.0', 'lt')) {
- $encoding = XML_UTIL_ENTITIES_UTF8_XML;
+ $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML;
} else {
- $encoding = XML_UTIL_ENTITIES_XML;
+ $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML;
}
- $tag = XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $this->options['linebreak'], $encoding);
+ $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $this->options['linebreak'], $encoding);
} elseif (is_array($tag['content'])) {
$tag = $this->_serializeArray($tag['content'], $tag['qname'], $tag['attributes']);
} elseif (is_object($tag['content'])) {
$tag = $this->_serializeObject($tag['content'], $tag['qname'], $tag['attributes']);
} elseif (is_resource($tag['content'])) {
settype($tag['content'], 'string');
- $tag = XML_Util::createTagFromArray($tag, $replaceEntities);
+ $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities);
}
return $tag;
}
}
-//foreach (explode(PATH_SEPARATOR, ini_get('include_path')) as $path) {
-// $t = $path . DIRECTORY_SEPARATOR . 'XML' . DIRECTORY_SEPARATOR .
-// 'Util';
-// if (file_exists($t) && is_readable($t)) {
-// include_once 'phar://install-pear-nozlib.phar/XML/Util';
-// }
-//}
-//if (!class_exists('XML_Util')) {
// well, it's one way to do things without extra deps ...
/* vim: set expandtab tabstop=4 shiftwidth=4: */
// +----------------------------------------------------------------------+
@@ -70016,76 +70113,79 @@ http://pear.php.net/dtd/package-2.0.xsd',
// | Authors: Stephan Schmidt <schst@php-tools.net> |
// +----------------------------------------------------------------------+
//
-// $Id: v2.php,v 1.33 2006/01/06 04:47:37 cellog Exp $
+// $Id: v2.php,v 1.34 2006/03/02 20:50:59 cellog Exp $
/**
* error code for invalid chars in XML name
*/
-define("XML_UTIL_ERROR_INVALID_CHARS", 51);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS", 51);
/**
* error code for invalid chars in XML name
*/
-define("XML_UTIL_ERROR_INVALID_START", 52);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START", 52);
/**
* error code for non-scalar tag content
*/
-define("XML_UTIL_ERROR_NON_SCALAR_CONTENT", 60);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT", 60);
/**
* error code for missing tag name
*/
-define("XML_UTIL_ERROR_NO_TAG_NAME", 61);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME", 61);
/**
* replace XML entities
*/
-define("XML_UTIL_REPLACE_ENTITIES", 1);
+define("PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES", 1);
/**
* embedd content in a CData Section
*/
-define("XML_UTIL_CDATA_SECTION", 2);
+define("PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION", 2);
/**
* do not replace entitites
*/
-define("XML_UTIL_ENTITIES_NONE", 0);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE", 0);
/**
* replace all XML entitites
* This setting will replace <, >, ", ' and &
*/
-define("XML_UTIL_ENTITIES_XML", 1);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML", 1);
/**
* replace only required XML entitites
* This setting will replace <, " and &
*/
-define("XML_UTIL_ENTITIES_XML_REQUIRED", 2);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED", 2);
/**
* replace HTML entitites
* @link http://www.php.net/htmlentities
*/
-define("XML_UTIL_ENTITIES_HTML", 3);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML", 3);
/**
* replace all XML entitites, and encode from ISO-8859-1 to UTF-8
* This setting will replace <, >, ", ' and &
*/
-define("XML_UTIL_ENTITIES_UTF8_XML", 4);
+define("PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML", 4);
/**
* utility class for working with XML documents
+ *
+ * customized version of XML_Util 0.6.0
*
* @category XML
- * @package XML_Util
+ * @package PEAR
* @version 0.6.0
* @author Stephan Schmidt <schst@php.net>
+ * @author Gregory Beaver <cellog@php.net>
*/
-class XML_Util {
+class PEAR_PackageFile_Generator_v2_XML_Util {
/**
* return API version
@@ -70109,19 +70209,19 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // replace XML entites:
- * $string = XML_Util::replaceEntities("This string contains < & >.");
+ * $string = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities("This string contains < & >.");
* </code>
*
* @access public
* @static
* @param string string where XML special chars should be replaced
- * @param integer setting for entities in attribute values (one of XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
+ * @param integer setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML)
* @return string string with replaced chars
*/
- function replaceEntities($string, $replaceEntities = XML_UTIL_ENTITIES_XML)
+ function replaceEntities($string, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
switch ($replaceEntities) {
- case XML_UTIL_ENTITIES_UTF8_XML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_UTF8_XML:
return strtr(utf8_encode($string),array(
'&' => '&amp;',
'>' => '&gt;',
@@ -70129,7 +70229,7 @@ class XML_Util {
'"' => '&quot;',
'\'' => '&apos;' ));
break;
- case XML_UTIL_ENTITIES_XML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML:
return strtr($string,array(
'&' => '&amp;',
'>' => '&gt;',
@@ -70137,13 +70237,13 @@ class XML_Util {
'"' => '&quot;',
'\'' => '&apos;' ));
break;
- case XML_UTIL_ENTITIES_XML_REQUIRED:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED:
return strtr($string,array(
'&' => '&amp;',
'<' => '&lt;',
'"' => '&quot;' ));
break;
- case XML_UTIL_ENTITIES_HTML:
+ case PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML:
return htmlspecialchars($string);
break;
}
@@ -70157,7 +70257,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // get an XML declaration:
- * $xmlDecl = XML_Util::getXMLDeclaration("1.0", "UTF-8", true);
+ * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getXMLDeclaration("1.0", "UTF-8", true);
* </code>
*
* @access public
@@ -70166,7 +70266,7 @@ class XML_Util {
* @param string $encoding character encoding
* @param boolean $standAlone document is standalone (or not)
* @return string $decl xml declaration
- * @uses XML_Util::attributesToString() to serialize the attributes of the XML declaration
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the XML declaration
*/
function getXMLDeclaration($version = "1.0", $encoding = null, $standalone = null)
{
@@ -70182,7 +70282,7 @@ class XML_Util {
$attributes["standalone"] = $standalone ? "yes" : "no";
}
- return sprintf("<?xml%s?>", XML_Util::attributesToString($attributes, false));
+ return sprintf("<?xml%s?>", PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, false));
}
/**
@@ -70192,7 +70292,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // get a doctype declaration:
- * $xmlDecl = XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd");
+ * $xmlDecl = PEAR_PackageFile_Generator_v2_XML_Util::getDocTypeDeclaration("rootTag","myDocType.dtd");
* </code>
*
* @access public
@@ -70232,7 +70332,7 @@ class XML_Util {
* "argh" => "tomato"
* );
*
- * $attList = XML_Util::attributesToString($att);
+ * $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($att);
* </code>
*
* @access public
@@ -70242,12 +70342,12 @@ class XML_Util {
* @param boolean $multiline use linebreaks, if more than one attribute is given
* @param string $indent string used for indentation of multiline attributes
* @param string $linebreak string used for linebreaks of multiline attributes
- * @param integer $entities setting for entities in attribute values (one of XML_UTIL_ENTITIES_NONE, XML_UTIL_ENTITIES_XML, XML_UTIL_ENTITIES_XML_REQUIRED, XML_UTIL_ENTITIES_HTML)
+ * @param integer $entities setting for entities in attribute values (one of PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML_REQUIRED, PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_HTML)
* @return string string representation of the attributes
- * @uses XML_Util::replaceEntities() to replace XML entities in attribute values
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities() to replace XML entities in attribute values
* @todo allow sort also to be an options array
*/
- function attributesToString($attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = XML_UTIL_ENTITIES_XML)
+ function attributesToString($attributes, $sort = true, $multiline = false, $indent = ' ', $linebreak = "\n", $entities = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
/**
* second parameter may be an array
@@ -70278,16 +70378,16 @@ class XML_Util {
}
if( !$multiline || count($attributes) == 1) {
foreach ($attributes as $key => $value) {
- if ($entities != XML_UTIL_ENTITIES_NONE) {
- $value = XML_Util::replaceEntities($value, $entities);
+ if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) {
+ $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities);
}
$string .= ' '.$key.'="'.$value.'"';
}
} else {
$first = true;
foreach ($attributes as $key => $value) {
- if ($entities != XML_UTIL_ENTITIES_NONE) {
- $value = XML_Util::replaceEntities($value, $entities);
+ if ($entities != PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_NONE) {
+ $value = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($value, $entities);
}
if ($first) {
$string .= " ".$key.'="'.$value.'"';
@@ -70304,14 +70404,14 @@ class XML_Util {
/**
* create a tag
*
- * This method will call XML_Util::createTagFromArray(), which
+ * This method will call PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray(), which
* is more flexible.
*
* <code>
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // create an XML tag:
- * $tag = XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createTag("myNs:myTag", array("foo" => "bar"), "This is inside the tag", "http://www.w3c.org/myNs#");
* </code>
*
* @access public
@@ -70326,10 +70426,10 @@ class XML_Util {
* @param string $linebreak string used for linebreaks
* @param string $encoding encoding that should be used to translate content
* @return string $string XML tag
- * @see XML_Util::createTagFromArray()
- * @uses XML_Util::createTagFromArray() to create the tag
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray()
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray() to create the tag
*/
- function createTag($qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = XML_UTIL_ENTITIES_XML)
+ function createTag($qname, $attributes = array(), $content = null, $namespaceUri = null, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
$tag = array(
"qname" => $qname,
@@ -70346,7 +70446,7 @@ class XML_Util {
$tag["namespaceUri"] = $namespaceUri;
}
- return XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $linebreak, $encoding);
+ return PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag, $replaceEntities, $multiline, $indent, $linebreak, $encoding);
}
/**
@@ -70373,7 +70473,7 @@ class XML_Util {
* "content" => "I'm inside the tag",
* );
* // creating a tag with qualified name and namespaceUri
- * $string = XML_Util::createTagFromArray($tag);
+ * $string = PEAR_PackageFile_Generator_v2_XML_Util::createTagFromArray($tag);
* </code>
*
* @access public
@@ -70384,18 +70484,18 @@ class XML_Util {
* @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column)
* @param string $linebreak string used for linebreaks
* @return string $string XML tag
- * @see XML_Util::createTag()
- * @uses XML_Util::attributesToString() to serialize the attributes of the tag
- * @uses XML_Util::splitQualifiedName() to get local part and namespace of a qualified name
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createTag()
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::attributesToString() to serialize the attributes of the tag
+ * @uses PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName() to get local part and namespace of a qualified name
*/
- function createTagFromArray($tag, $replaceEntities = XML_UTIL_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = XML_UTIL_ENTITIES_XML)
+ function createTagFromArray($tag, $replaceEntities = PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES, $multiline = false, $indent = "_auto", $linebreak = "\n", $encoding = PEAR_PackageFile_Generator_v2_XML_Util_ENTITIES_XML)
{
if (isset($tag["content"]) && !is_scalar($tag["content"])) {
- return XML_Util::raiseError( "Supplied non-scalar value as tag content", XML_UTIL_ERROR_NON_SCALAR_CONTENT );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "Supplied non-scalar value as tag content", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NON_SCALAR_CONTENT );
}
if (!isset($tag['qname']) && !isset($tag['localPart'])) {
- return XML_Util::raiseError( 'You must either supply a qualified name (qname) or local tag name (localPart).', XML_UTIL_ERROR_NO_TAG_NAME );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( 'You must either supply a qualified name (qname) or local tag name (localPart).', PEAR_PackageFile_Generator_v2_XML_Util_ERROR_NO_TAG_NAME );
}
// if no attributes hav been set, use empty attributes
@@ -70413,7 +70513,7 @@ class XML_Util {
}
// namespace URI is set, but no namespace
} elseif (isset($tag["namespaceUri"]) && !isset($tag["namespace"])) {
- $parts = XML_Util::splitQualifiedName($tag["qname"]);
+ $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($tag["qname"]);
$tag["localPart"] = $parts["localPart"];
if (isset($parts["namespace"])) {
$tag["namespace"] = $parts["namespace"];
@@ -70438,14 +70538,14 @@ class XML_Util {
}
// create attribute list
- $attList = XML_Util::attributesToString($tag["attributes"], true, $multiline, $indent, $linebreak );
+ $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($tag["attributes"], true, $multiline, $indent, $linebreak );
if (!isset($tag["content"]) || (string)$tag["content"] == '') {
$tag = sprintf("<%s%s />", $tag["qname"], $attList);
} else {
- if ($replaceEntities == XML_UTIL_REPLACE_ENTITIES) {
- $tag["content"] = XML_Util::replaceEntities($tag["content"], $encoding);
- } elseif ($replaceEntities == XML_UTIL_CDATA_SECTION) {
- $tag["content"] = XML_Util::createCDataSection($tag["content"]);
+ if ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_REPLACE_ENTITIES) {
+ $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::replaceEntities($tag["content"], $encoding);
+ } elseif ($replaceEntities == PEAR_PackageFile_Generator_v2_XML_Util_CDATA_SECTION) {
+ $tag["content"] = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection($tag["content"]);
}
$tag = sprintf("<%s%s>%s</%s>", $tag["qname"], $attList, $tag["content"], $tag["qname"] );
}
@@ -70459,7 +70559,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createStartElement("myNs:myTag", array("foo" => "bar") ,"http://www.w3c.org/myNs#");
* </code>
*
* @access public
@@ -70471,7 +70571,7 @@ class XML_Util {
* @param string $indent string used to indent attributes (_auto indents attributes so they start at the same column)
* @param string $linebreak string used for linebreaks
* @return string $string XML start element
- * @see XML_Util::createEndElement(), XML_Util::createTag()
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createEndElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag()
*/
function createStartElement($qname, $attributes = array(), $namespaceUri = null, $multiline = false, $indent = '_auto', $linebreak = "\n")
{
@@ -70481,7 +70581,7 @@ class XML_Util {
}
if ($namespaceUri != null) {
- $parts = XML_Util::splitQualifiedName($qname);
+ $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName($qname);
}
// check for multiline attributes
@@ -70502,7 +70602,7 @@ class XML_Util {
}
// create attribute list
- $attList = XML_Util::attributesToString($attributes, true, $multiline, $indent, $linebreak);
+ $attList = PEAR_PackageFile_Generator_v2_XML_Util::attributesToString($attributes, true, $multiline, $indent, $linebreak);
$element = sprintf("<%s%s>", $qname, $attList);
return $element;
}
@@ -70514,14 +70614,14 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createEndElement("myNs:myTag");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createEndElement("myNs:myTag");
* </code>
*
* @access public
* @static
* @param string $qname qualified tagname (including namespace)
* @return string $string XML end element
- * @see XML_Util::createStartElement(), XML_Util::createTag()
+ * @see PEAR_PackageFile_Generator_v2_XML_Util::createStartElement(), PEAR_PackageFile_Generator_v2_XML_Util::createTag()
*/
function createEndElement($qname)
{
@@ -70536,7 +70636,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // create an XML start element:
- * $tag = XML_Util::createComment("I am a comment");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createComment("I am a comment");
* </code>
*
* @access public
@@ -70557,7 +70657,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // create a CData section
- * $tag = XML_Util::createCDataSection("I am content.");
+ * $tag = PEAR_PackageFile_Generator_v2_XML_Util::createCDataSection("I am content.");
* </code>
*
* @access public
@@ -70577,7 +70677,7 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // split qualified tag
- * $parts = XML_Util::splitQualifiedName("xslt:stylesheet");
+ * $parts = PEAR_PackageFile_Generator_v2_XML_Util::splitQualifiedName("xslt:stylesheet");
* </code>
* the returned array will contain two elements:
* <pre>
@@ -70622,8 +70722,8 @@ class XML_Util {
* require_once 'phar://install-pear-nozlib.phar/XML/Util.php';
*
* // verify tag name
- * $result = XML_Util::isValidName("invalidTag?");
- * if (XML_Util::isError($result)) {
+ * $result = PEAR_PackageFile_Generator_v2_XML_Util::isValidName("invalidTag?");
+ * if (PEAR_PackageFile_Generator_v2_XML_Util::isError($result)) {
* print "Invalid XML name: " . $result->getMessage();
* }
* </code>
@@ -70638,19 +70738,19 @@ class XML_Util {
{
// check for invalid chars
if (!preg_match("/^[[:alnum:]_\-.]$/", $string{0})) {
- return XML_Util::raiseError( "XML names may only start with letter or underscore", XML_UTIL_ERROR_INVALID_START );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only start with letter or underscore", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_START );
}
// check for invalid chars
if (!preg_match("/^([a-zA-Z_]([a-zA-Z0-9_\-\.]*)?:)?[a-zA-Z_]([a-zA-Z0-9_\-\.]+)?$/", $string)) {
- return XML_Util::raiseError( "XML names may only contain alphanumeric chars, period, hyphen, colon and underscores", XML_UTIL_ERROR_INVALID_CHARS );
+ return PEAR_PackageFile_Generator_v2_XML_Util::raiseError( "XML names may only contain alphanumeric chars, period, hyphen, colon and underscores", PEAR_PackageFile_Generator_v2_XML_Util_ERROR_INVALID_CHARS );
}
// XML name is valid
return true;
}
/**
- * replacement for XML_Util::raiseError
+ * replacement for PEAR_PackageFile_Generator_v2_XML_Util::raiseError
*
* Avoids the necessity to always require
* PEAR.php
@@ -70666,8 +70766,7 @@ class XML_Util {
return PEAR::raiseError($msg, $code);
}
}
-//} // if (!class_exists('XML_Util'))
-?>Ò^îÌA
+?><?php
/**
* package.xml parsing class, package.xml version 1.0
*
@@ -71127,7 +71226,7 @@ class PEAR_PackageFile_Parser_v1
// }}}
}
-?>k¿†Å
+?><?php
/**
* package.xml parsing class, package.xml version 2.0
*
@@ -71144,7 +71243,7 @@ class PEAR_PackageFile_Parser_v1
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.18 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.19 2006/01/23 17:39:52 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -71226,7 +71325,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
* a subclass
* @return PEAR_PackageFile_v2
*/
- function parse($data, $file, $archive = false, $class = 'PEAR_PackageFile_v2')
+ function &parse($data, $file, $archive = false, $class = 'PEAR_PackageFile_v2')
{
if (PEAR::isError($err = parent::parse($data, $file))) {
return $err;
@@ -71241,7 +71340,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
return $ret;
}
}
-?>…ÖáÄ
+?><?php
/**
* PEAR_PackageFile_v1, package.xml version 1.0
*
@@ -71258,7 +71357,7 @@ class PEAR_PackageFile_Parser_v2 extends PEAR_XMLParser
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v1.php,v 1.68 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v1.php,v 1.69 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -72443,6 +72542,10 @@ class PEAR_PackageFile_v1
}
if (isset($this->_registry) && $this->_isValid) {
$chan = $this->_registry->getChannel('pear.php.net');
+ if (PEAR::isError($chan)) {
+ $this->_validateError(PEAR_PACKAGEFILE_ERROR_CHANNELVAL, $chan->getMessage());
+ return $this->_isValid = 0;
+ }
$validator = $chan->getValidationObject();
$validator->setPackageFile($this);
$validator->validate($state);
@@ -72837,7 +72940,7 @@ class PEAR_PackageFile_v1
// }}}
}
?>
-BÀ)¨
+<?php
/**
* PEAR_PackageFile_v2, package.xml version 2.0
*
@@ -72854,7 +72957,7 @@ BÀ)¨
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: v2.php,v 1.122 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: v2.php,v 1.129.2.1 2006/03/23 04:07:51 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -72967,6 +73070,11 @@ class PEAR_PackageFile_v2
var $_incomplete = true;
/**
+ * @var PEAR_PackageFile_v2_Validator
+ */
+ var $_v2Validator;
+
+ /**
* The constructor merely sets up the private error stack
*/
function PEAR_PackageFile_v2()
@@ -73569,7 +73677,7 @@ class PEAR_PackageFile_v2
function setLogger(&$logger)
{
- if ($logger && (!is_object($logger) || !method_exists($logger, 'log'))) {
+ if (!is_object($logger) || !method_exists($logger, 'log')) {
return PEAR::raiseError('Logger must be compatible with PEAR_Common::log');
}
$this->_logger = &$logger;
@@ -73753,7 +73861,7 @@ class PEAR_PackageFile_v2
function getMaintainers($raw = false)
{
- if (!$this->_isValid && !$this->validate()) {
+ if (!isset($this->_packageInfo['lead'])) {
return false;
}
if ($raw) {
@@ -74492,6 +74600,7 @@ class PEAR_PackageFile_v2
if (!isset($dep['min']) &&
!isset($dep['max'])) {
$s['rel'] = 'has';
+ $s['optional'] = $optional;
} elseif (isset($dep['min']) &&
isset($dep['max'])) {
$s['rel'] = 'ge';
@@ -74510,14 +74619,24 @@ class PEAR_PackageFile_v2
$s1['optional'] = $optional;
$ret[] = $s1;
} elseif (isset($dep['min'])) {
- $s['rel'] = 'ge';
+ if (isset($dep['exclude']) &&
+ $dep['exclude'] == $dep['min']) {
+ $s['rel'] = 'gt';
+ } else {
+ $s['rel'] = 'ge';
+ }
$s['version'] = $dep['min'];
$s['optional'] = $optional;
if ($dtype != 'php') {
$s['name'] = $dep['name'];
}
} elseif (isset($dep['max'])) {
- $s['rel'] = 'le';
+ if (isset($dep['exclude']) &&
+ $dep['exclude'] == $dep['max']) {
+ $s['rel'] = 'lt';
+ } else {
+ $s['rel'] = 'le';
+ }
$s['version'] = $dep['max'];
$s['optional'] = $optional;
if ($dtype != 'php') {
@@ -74681,7 +74800,8 @@ class PEAR_PackageFile_v2
function analyzeSourceCode($file, $string = false)
{
- if (!isset($this->_v2Validator)) {
+ if (!isset($this->_v2Validator) ||
+ !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) {
if (!class_exists('PEAR_PackageFile_v2_Validator')) {
require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2/Validator.php';
}
@@ -74695,7 +74815,8 @@ class PEAR_PackageFile_v2
if (!isset($this->_packageInfo) || !is_array($this->_packageInfo)) {
return false;
}
- if (!isset($this->_v2Validator)) {
+ if (!isset($this->_v2Validator) ||
+ !is_a($this->_v2Validator, 'PEAR_PackageFile_v2_Validator')) {
if (!class_exists('PEAR_PackageFile_v2_Validator')) {
require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2/Validator.php';
}
@@ -74827,7 +74948,7 @@ class PEAR_PackageFile_v2
}
}
?>
-õÎ"X é
+<?php
/**
* PEAR_PackageFile_v2, package.xml version 2.0, read/write version
*
@@ -74844,7 +74965,7 @@ class PEAR_PackageFile_v2
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: rw.php,v 1.13 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: rw.php,v 1.15 2006/01/28 17:35:11 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a8
*/
@@ -74858,7 +74979,7 @@ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v2.php';
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version Release: 1.4.6
+ * @version Release: 1.4.9
* @link http://pear.php.net/package/PEAR
* @since Class available since Release 1.4.0a8
*/
@@ -75069,7 +75190,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
$this->_packageInfo[$role] = array_values($this->_packageInfo[$role]);
}
}
- $this->addMaintainer($newrole, $handle, $name, $email);
+ $this->addMaintainer($newrole, $handle, $name, $email, $active);
$this->_isValid = 0;
}
@@ -76337,7 +76458,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
'stability' =>
$this->getStability(),
'date' => $this->getDate(),
- 'license' => $this->getLicense(),
+ 'license' => $this->getLicense(true),
'notes' => $notes ? $notes : $this->getNotes()
);
}
@@ -76383,7 +76504,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
unset($this->_packageInfo['changelog']);
}
}
-?>J|ÌÆ4
+?><?php
//
// +----------------------------------------------------------------------+
// | PHP Version 5 |
@@ -76402,7 +76523,7 @@ class PEAR_PackageFile_v2_rw extends PEAR_PackageFile_v2
// | |
// +----------------------------------------------------------------------+
//
-// $Id: Validator.php,v 1.83 2006/01/06 04:47:37 cellog Exp $
+// $Id: Validator.php,v 1.86 2006/03/02 18:14:13 cellog Exp $
/**
* Private validation class used by PEAR_PackageFile_v2 - do not use directly, its
* sole purpose is to split up the PEAR/PackageFile/v2.php file to make it smaller
@@ -76430,6 +76551,10 @@ class PEAR_PackageFile_v2_Validator
/**
* @var int
*/
+ var $_filesValid = 0;
+ /**
+ * @var int
+ */
var $_curState = 0;
/**
* @param PEAR_PackageFile_v2
@@ -76607,7 +76732,7 @@ class PEAR_PackageFile_v2_Validator
$this->_validateRelease();
if (!$this->_stack->hasErrors()) {
$chan = $this->_pf->_registry->getChannel($this->_pf->getChannel(), true);
- if (!$chan) {
+ if (PEAR::isError($chan)) {
$this->_unknownChannel($this->_pf->getChannel());
} else {
$valpack = $chan->getValidationPackage();
@@ -78094,6 +78219,8 @@ class PEAR_PackageFile_v2_Validator
function analyzeSourceCode($file, $string = false)
{
if (!function_exists("token_get_all")) {
+ $this->_stack->push(__FUNCTION__, 'error', array('file' => $file),
+ 'Parser error: token_get_all() function must exist to analyze source code');
return false;
}
if (!defined('T_DOC_COMMENT')) {
@@ -78358,7 +78485,7 @@ class PEAR_PackageFile_v2_Validator
return $providesret;
}
}
-?>ÈÖY
+?><?php
/**
* PEAR_Registry
*
@@ -78377,7 +78504,7 @@ class PEAR_PackageFile_v2_Validator
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Registry.php,v 1.145 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Registry.php,v 1.150.2.2 2006/03/11 04:16:48 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -78896,6 +79023,9 @@ class PEAR_Registry extends PEAR
return false;
}
$channel = $this->_getChannel($channel);
+ if (PEAR::isError($channel)) {
+ return $channel;
+ }
return $channel->getAlias();
}
// }}}
@@ -79196,6 +79326,9 @@ class PEAR_Registry extends PEAR
return false;
}
$checker = $this->_getChannel($channel->getName());
+ if (PEAR::isError($checker)) {
+ return $checker;
+ }
if ($channel->getAlias() != $checker->getAlias()) {
@unlink($this->_getChannelAliasFileName($checker->getAlias()));
}
@@ -79423,7 +79556,11 @@ class PEAR_Registry extends PEAR
if ($ent{0} == '.' || substr($ent, -4) != '.reg') {
continue;
}
- $channellist[] = substr($ent, 0, -4);
+ if ($ent == '__uri.reg') {
+ $channellist[] = '__uri';
+ continue;
+ }
+ $channellist[] = str_replace('_', '/', substr($ent, 0, -4));
}
closedir($dp);
if (!in_array('pear.php.net', $channellist)) {
@@ -79644,19 +79781,29 @@ class PEAR_Registry extends PEAR
/**
* @param string channel name
* @param bool whether to strictly retrieve channel names
- * @return PEAR_ChannelFile|false
+ * @return PEAR_ChannelFile|PEAR_Error
* @access private
*/
function &_getChannel($channel, $noaliases = false)
{
$ch = false;
if ($this->_channelExists($channel, $noaliases)) {
- if (!class_exists('PEAR_ChannelFile')) {
- require_once 'phar://install-pear-nozlib.phar/PEAR/ChannelFile.php';
+ $chinfo = $this->_channelInfo($channel, $noaliases);
+ if ($chinfo) {
+ if (!class_exists('PEAR_ChannelFile')) {
+ require_once 'phar://install-pear-nozlib.phar/PEAR/ChannelFile.php';
+ }
+ $ch = &PEAR_ChannelFile::fromArrayWithErrors($chinfo);
}
- $ch = &PEAR_ChannelFile::fromArray($this->_channelInfo($channel, $noaliases));
}
if ($ch) {
+ if ($ch->validate()) {
+ return $ch;
+ }
+ foreach ($ch->getErrors(true) as $err) {
+ $message = $err['message'] . "\n";
+ }
+ $ch = PEAR::raiseError($message);
return $ch;
}
if ($this->_getChannelFromAlias($channel) == 'pear.php.net') {
@@ -80010,6 +80157,9 @@ class PEAR_Registry extends PEAR
$ret = $this->_updatePackage($package, $info, $merge);
$this->_unlock();
if ($ret) {
+ if (!class_exists('PEAR_PackageFile_v1')) {
+ require_once 'phar://install-pear-nozlib.phar/PEAR/PackageFile/v1.php';
+ }
$pf = new PEAR_PackageFile_v1;
$pf->setConfig($this->_config);
$pf->fromArray($this->packageInfo($package));
@@ -80047,7 +80197,7 @@ class PEAR_Registry extends PEAR
/**
* @param string channel name
* @param bool whether to strictly return raw channels (no aliases)
- * @return PEAR_ChannelFile|false
+ * @return PEAR_ChannelFile|PEAR_Error
*/
function &getChannel($channel, $noaliases = false)
{
@@ -80055,6 +80205,9 @@ class PEAR_Registry extends PEAR
return $e;
}
$ret = &$this->_getChannel($channel, $noaliases);
+ if (!$ret) {
+ return PEAR::raiseError('Unknown channel: ' . $channel);
+ }
$this->_unlock();
return $ret;
}
@@ -80129,7 +80282,7 @@ class PEAR_Registry extends PEAR
function &getChannelValidator($channel)
{
$chan = $this->getChannel($channel);
- if (!$chan) {
+ if (PEAR::isError($chan)) {
return $chan;
}
$val = $chan->getValidationObject();
@@ -80148,7 +80301,11 @@ class PEAR_Registry extends PEAR
return $e;
}
foreach ($this->_listChannels() as $channel) {
- $ret[] = &$this->_getChannel($channel);
+ $e = &$this->_getChannel($channel);
+ if (!$e || PEAR::isError($e)) {
+ continue;
+ }
+ $ret[] = $e;
}
$this->_unlock();
return $ret;
@@ -80489,7 +80646,7 @@ class PEAR_Registry extends PEAR
}
?>
-寧“8I
+<?php
/**
* PEAR_Remote
*
@@ -80507,7 +80664,7 @@ class PEAR_Registry extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Remote.php,v 1.75 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Remote.php,v 1.76 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 0.1
*/
@@ -80642,7 +80799,7 @@ class PEAR_Remote extends PEAR
$server_channel = $this->config->get('default_channel');
$channel = $this->_registry->getChannel($server_channel);
- if ($channel) {
+ if (!PEAR::isError($channel)) {
$mirror = $this->config->get('preferred_mirror');
if ($channel->getMirror($mirror)) {
if ($channel->supports('xmlrpc', $method, $mirror)) {
@@ -80768,7 +80925,7 @@ class PEAR_Remote extends PEAR
} while (false);
$server_channel = $this->config->get('default_channel');
$channel = $this->_registry->getChannel($server_channel);
- if ($channel) {
+ if (!PEAR::isError($channel)) {
$mirror = $this->config->get('preferred_mirror');
if ($channel->getMirror($mirror)) {
if ($channel->supports('xmlrpc', $method, $mirror)) {
@@ -81008,7 +81165,7 @@ class PEAR_Remote extends PEAR
}
?>
-ï“Ä·8
+<?php
/**
* PEAR_REST
*
@@ -81025,7 +81182,7 @@ class PEAR_Remote extends PEAR
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: REST.php,v 1.19 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: REST.php,v 1.20 2006/03/02 03:09:31 pajoye Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -81214,10 +81371,21 @@ class PEAR_REST
if ($cacheid === null && $nochange) {
$cacheid = unserialize(implode('', file($cacheidfile)));
}
+
$fp = @fopen($cacheidfile, 'wb');
if (!$fp) {
- return false;
+ $cache_dir = $this->config->get('cache_dir');
+ if (!is_dir($cache_dir)) {
+ System::mkdir(array('-p', $cache_dir));
+ $fp = @fopen($cacheidfile, 'wb');
+ if (!$fp) {
+ return false;
+ }
+ } else {
+ return false;
+ }
}
+
if ($nochange) {
fwrite($fp, serialize(array(
'age' => time(),
@@ -81393,7 +81561,8 @@ class PEAR_REST
return $data;
}
}
-?>Û4=¿`
+?>
+<?php
/**
* PEAR_REST_10
*
@@ -82016,7 +82185,7 @@ class PEAR_REST_10
return array_slice($states, $i + 1);
}
}
-?><I-xf
+?><?php
/**
* PEAR_Task_Common, base class for installer tasks
*
@@ -82223,7 +82392,7 @@ class PEAR_Task_Common
return PEAR::raiseError($msg, $code);
}
}
-?>åB<Ü/9
+?><?php
/**
* <tasks:postinstallscript>
*
@@ -82240,7 +82409,7 @@ class PEAR_Task_Common
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Postinstallscript.php,v 1.17 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: Postinstallscript.php,v 1.18 2006/02/08 01:21:47 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -82305,10 +82474,14 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common
$fileXml['name'] . '" could not be retrieved for processing!');
} else {
$analysis = $pkg->analyzeSourceCode($file, true);
- if (PEAR::isError($analysis)) {
+ if (!$analysis) {
PEAR::popErrorHandling();
+ $warnings = '';
+ foreach ($pkg->getValidationWarnings() as $warn) {
+ $warnings .= $warn['message'] . "\n";
+ }
return array(PEAR_TASK_ERROR_INVALID, 'Analysis of post-install script "' .
- $fileXml['name'] . '" failed');
+ $fileXml['name'] . '" failed: ' . $warnings);
}
if (count($analysis['declared_classes']) != 1) {
PEAR::popErrorHandling();
@@ -82547,7 +82720,7 @@ class PEAR_Task_Postinstallscript extends PEAR_Task_Common
{
}
}
-?>ŠöÁj
+?><?php
/**
* <tasks:postinstallscript> - read/write version
*
@@ -82722,7 +82895,7 @@ class PEAR_Task_Postinstallscript_rw extends PEAR_Task_Postinstallscript
);
}
}
-?>¢ß 5
+?><?php
/**
* <tasks:replace>
*
@@ -82739,7 +82912,7 @@ class PEAR_Task_Postinstallscript_rw extends PEAR_Task_Postinstallscript
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Replace.php,v 1.13 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: Replace.php,v 1.15 2006/03/02 18:14:13 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -82813,7 +82986,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
}
} else {
return array(PEAR_TASK_ERROR_WRONG_ATTRIB_VALUE, 'type', $xml['attribs']['type'],
- array('pear-config', 'package-info'));
+ array('pear-config', 'package-info', 'php-const'));
}
return true;
}
@@ -82850,7 +83023,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
}
if ($a['to'] == 'master_server') {
$chan = $this->registry->getChannel($pkg->getChannel());
- if ($chan) {
+ if (!PEAR::isError($chan)) {
$to = $chan->getServer();
} else {
$this->logger->log(0, "$dest: invalid pear-config replacement: $a[to]");
@@ -82903,7 +83076,7 @@ class PEAR_Task_Replace extends PEAR_Task_Common
return $contents;
}
}
-?>§úî*Ö
+?><?php
/**
* <tasks:replace> - read/write version
*
@@ -82969,8 +83142,7 @@ class PEAR_Task_Replace_rw extends PEAR_Task_Replace
return $this->_params;
}
}
-?>rKTxk
-
+?><?php
/**
* <tasks:unixeol>
*
@@ -83052,7 +83224,7 @@ class PEAR_Task_Unixeol extends PEAR_Task_Common
return preg_replace("/\r\n|\n\r|\r|\n/", "\n", $contents);
}
}
-?>m5ÝBæ
+?><?php
/**
* <tasks:unixeol> - read/write version
*
@@ -83113,8 +83285,7 @@ class PEAR_Task_Unixeol_rw extends PEAR_Task_Unixeol
return '';
}
}
-?>ìÿ#×g
-
+?><?php
/**
* <tasks:windowseol>
*
@@ -83196,7 +83367,7 @@ class PEAR_Task_Windowseol extends PEAR_Task_Common
return preg_replace("/\r\n|\n\r|\r|\n/", "\r\n", $contents);
}
}
-?>À6’û
+?><?php
/**
* <tasks:windowseol> - read/write version
*
@@ -83257,7 +83428,7 @@ class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol
return '';
}
}
-?>oSëU
+?><?php
/**
* PEAR_Validate
*
@@ -83274,7 +83445,7 @@ class PEAR_Task_Windowseol_rw extends PEAR_Task_Windowseol
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: Validate.php,v 1.45 2006/01/06 04:47:36 cellog Exp $
+ * @version CVS: $Id: Validate.php,v 1.46 2006/01/23 17:16:35 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a1
*/
@@ -83545,6 +83716,13 @@ class PEAR_Validate
case 'beta' :
// check for a package that extends a package,
// like Foo and Foo2
+ if ($this->_state == PEAR_VALIDATE_PACKAGING) {
+ if (substr($versioncomponents[2], 1, 2) == 'rc') {
+ $this->_addFailure('version', 'Release Candidate versions ' .
+ 'must have capital RC, not lower-case rc');
+ return false;
+ }
+ }
if (!$this->_packagexml->getExtends()) {
if ($versioncomponents[0] == '1') {
if ($versioncomponents[2]{0} == '0') {
@@ -83880,7 +84058,7 @@ class PEAR_Validate
return true;
}
}
-?>éƒ
+?><?php
/**
* Channel Validator for the pecl.php.net channel
*
@@ -83891,7 +84069,7 @@ class PEAR_Validate
* @author Greg Beaver <cellog@php.net>
* @copyright 1997-2006 The PHP Group
* @license http://www.php.net/license/3_0.txt PHP License 3.0
- * @version CVS: $Id: PECL.php,v 1.5 2006/01/06 04:47:37 cellog Exp $
+ * @version CVS: $Id: PECL.php,v 1.7 2006/02/03 02:02:22 cellog Exp $
* @link http://pear.php.net/package/PEAR
* @since File available since Release 1.4.0a5
*/
@@ -83914,6 +84092,16 @@ class PEAR_Validator_PECL extends PEAR_Validate
{
function validateVersion()
{
+ if ($this->_state == PEAR_VALIDATE_PACKAGING) {
+ $version = $this->_packagexml->getVersion();
+ $versioncomponents = explode('.', $version);
+ $last = array_pop($versioncomponents);
+ if (substr($last, 1, 2) == 'rc') {
+ $this->_addFailure('version', 'Release Candidate versions must have ' .
+ 'upper-case RC, not lower-case rc');
+ return false;
+ }
+ }
return true;
}
@@ -83931,7 +84119,7 @@ class PEAR_Validator_PECL extends PEAR_Validate
return $ret;
}
}
-?>ƒ]¯þ
+?><?php
/**
* PEAR_FTP
*
@@ -84191,7 +84379,7 @@ class PEAR_XMLParser
$this->_dataStack[$this->_depth] .= $cdata;
}
}
-?>×c»êõK
+?><?php
/**
* File/Directory manipulation
*
diff --git a/php.gif b/php.gif
index 7beda43fd..f352c7308 100644
--- a/php.gif
+++ b/php.gif
Binary files differ
diff --git a/php.ini-dist b/php.ini-dist
index e1405ada5..c98cb65b2 100644
--- a/php.ini-dist
+++ b/php.ini-dist
@@ -227,6 +227,16 @@ disable_classes =
; being interrupted by the user or a browser timing out.
; ignore_user_abort = On
+; Determines the size of the realpath cache to be used by PHP. This value should
+; be increased on systems where PHP opens many files to reflect the quantity of
+; the file operations performed.
+; realpath_cache_size=16k
+
+; Duration of time, in seconds for which to cache realpath information for a given
+; file or directory. For systems with rarely changing files, consider increasing this
+; value.
+; realpath_cache_ttl=120
+
;
; Misc
;
@@ -1132,9 +1142,13 @@ pfpro.defaulttimeout = 30
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
+; enable strict encoding detection.
+;mbstring.strict_encoding = Off
+
[FrontBase]
;fbsql.allow_persistent = On
;fbsql.autocommit = On
+;fbsql.show_timestamp_decimals = Off
;fbsql.default_database =
;fbsql.default_database_password =
;fbsql.default_host =
@@ -1147,6 +1161,12 @@ pfpro.defaulttimeout = 30
;fbsql.max_results = 128
;fbsql.batchSize = 1000
+[gd]
+; Tell the jpeg decode to libjpeg warnings and try to create
+; a gd image. The warning will then be displayed as notices
+; disabled by default
+;gd.jpeg_ignore_warning = 0
+
[exif]
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
; With mbstring support this will automatically be converted into the encoding
diff --git a/php.ini-recommended b/php.ini-recommended
index 9eba2c20a..54a31b1b6 100644
--- a/php.ini-recommended
+++ b/php.ini-recommended
@@ -285,6 +285,16 @@ disable_classes =
; being interrupted by the user or a browser timing out.
; ignore_user_abort = On
+; Determines the size of the realpath cache to be used by PHP. This value should
+; be increased on systems where PHP opens many files to reflect the quantity of
+; the file operations performed.
+; realpath_cache_size=16k
+
+; Duration of time, in seconds for which to cache realpath information for a given
+; file or directory. For systems with rarely changing files, consider increasing this
+; value.
+; realpath_cache_ttl=120
+
;
; Misc
;
@@ -1190,9 +1200,13 @@ pfpro.defaulttimeout = 30
; 4: Overload ereg*() functions
;mbstring.func_overload = 0
+; enable strict encoding detection.
+;mbstring.strict_encoding = Off
+
[FrontBase]
;fbsql.allow_persistent = On
;fbsql.autocommit = On
+;fbsql.show_timestamp_decimals = Off
;fbsql.default_database =
;fbsql.default_database_password =
;fbsql.default_host =
@@ -1205,6 +1219,12 @@ pfpro.defaulttimeout = 30
;fbsql.max_results = 128
;fbsql.batchSize = 1000
+[gd]
+; Tell the jpeg decode to libjpeg warnings and try to create
+; a gd image. The warning will then be displayed as notices
+; disabled by default
+;gd.jpeg_ignore_warning = 0
+
[exif]
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
; With mbstring support this will automatically be converted into the encoding
diff --git a/run-tests.php b/run-tests.php
index 25ceef348..18af1dfea 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -23,7 +23,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: run-tests.php,v 1.226.2.27 2006/01/04 15:17:41 helly Exp $ */
+/* $Id: run-tests.php,v 1.226.2.37 2006/05/03 21:37:16 pajoye Exp $ */
/* Sanity check to ensure that pcre extension needed by this script is available.
* In the event it is not, print a nice error message indicating that this script will
@@ -112,6 +112,15 @@ if (getenv('TEST_PHP_EXECUTABLE')) {
$environment['TEST_PHP_EXECUTABLE'] = $php;
}
+if (getenv('TEST_PHP_CGI_EXECUTABLE')) {
+ $php_cgi = getenv('TEST_PHP_CGI_EXECUTABLE');
+ if ($php_cgi=='auto') {
+ $php_cgi = $cwd.'/sapi/cgi/php';
+ putenv("TEST_PHP_CGI_EXECUTABLE=$php_cgi");
+ }
+ $environment['TEST_PHP_CGI_EXECUTABLE'] = $php_cgi;
+}
+
if ($argc !=2 || ($argv[1] != '-h' && $argv[1] != '-help' && $argv != '--help'))
{
if (empty($php) || !file_exists($php)) {
@@ -142,6 +151,7 @@ if (getenv('TEST_PHP_USER')) {
$user_tests = array();
}
+$exts_to_test = array();
$ini_overwrites = array(
'output_handler=',
'open_basedir=',
@@ -166,7 +176,7 @@ $ini_overwrites = array(
function write_information($show_html)
{
- global $cwd, $php, $php_info, $user_tests, $ini_overwrites, $pass_options;
+ global $cwd, $php, $php_info, $user_tests, $ini_overwrites, $pass_options, $exts_to_test;
// Get info from php
$info_file = realpath(dirname(__FILE__)) . '/run-test-info.php';
@@ -186,17 +196,17 @@ More .INIs : " . (function_exists(\'php_ini_scanned_files\') ? str_replace("\n"
@unlink($info_file);
define('TESTED_PHP_VERSION', `$php -r 'echo PHP_VERSION;'`);
+ // load list of enabled extensions
+ save_text($info_file, '<?php echo join(",",get_loaded_extensions()); ?>');
+ $exts_to_test = explode(',',`$php $pass_options $info_params $info_file`);
// check for extensions that need special handling and regenerate
- $php_extensions = '<?php echo join(",",get_loaded_extensions()); ?>';
- save_text($info_file, $php_extensions);
- $php_extensions = explode(',',`$php $pass_options $info_params $info_file`);
$info_params_ex = array(
'session' => array('session.auto_start=0'),
'zlib' => array('zlib.output_compression=Off'),
'xdebug' => array('xdebug.default_enable=0'),
);
foreach($info_params_ex as $ext => $ini_overwrites_ex) {
- if (in_array($ext, $php_extensions)) {
+ if (in_array($ext, $exts_to_test)) {
$ini_overwrites = array_merge($ini_overwrites, $ini_overwrites_ex);
}
}
@@ -330,6 +340,9 @@ if (isset($argc) && $argc > 1) {
}
$pass_option_n = true;
break;
+ case 'N':
+ // this is always native
+ break;
case '--no-clean':
$no_clean = true;
break;
@@ -384,7 +397,7 @@ if (isset($argc) && $argc > 1) {
$html_output = is_resource($html_file);
break;
case '--version':
- echo '$Revision: 1.226.2.27 $'."\n";
+ echo '$Revision: 1.226.2.37 $'."\n";
exit(1);
default:
echo "Illegal switch '$switch' specified!\n";
@@ -420,9 +433,11 @@ Options:
-m Test for memory leaks with Valgrind.
+ -N Always set (Test with unicode_semantics set off in PHP 6).
+
-s <file> Write output to <file>.
- -q Quite, no user interaction (same as environment NO_INTERACTION).
+ -q Quiet, no user interaction (same as environment NO_INTERACTION).
--verbose
-v Verbose mode.
@@ -513,13 +528,12 @@ write_information($html_output);
// Compile a list of all test files (*.phpt).
$test_files = array();
-$exts_to_test = get_loaded_extensions();
$exts_tested = count($exts_to_test);
$exts_skipped = 0;
$ignored_by_ext = 0;
sort($exts_to_test);
-$test_dirs = array('tests', 'ext');
-$optionals = array('Zend', 'ZendEngine2');
+$test_dirs = array();
+$optionals = array('tests', 'ext', 'Zend', 'ZendEngine2');
foreach($optionals as $dir) {
if (@filetype($dir) == 'dir') {
$test_dirs[] = $dir;
@@ -714,7 +728,7 @@ if ($just_save_results || !getenv('NO_INTERACTION')) {
$failed_tests_data .= "Bundled Libtool:\n$libtool\n";
$failed_tests_data .= "System Libtool:\n$sys_libtool\n";
$failed_tests_data .= "Compiler:\n$compiler\n";
- $failed_tests_data .= "Bison:\n". @shell_exec('bison --version'). "\n";
+ $failed_tests_data .= "Bison:\n". @shell_exec('bison --version 2>/dev/null'). "\n";
$failed_tests_data .= "Libraries:\n$ldd\n";
$failed_tests_data .= "\n";
@@ -871,9 +885,24 @@ function run_all_tests($test_files, $env, $redir_tested = NULL)
{
global $test_results, $failed_tests_file, $php, $test_cnt, $test_idx;
- foreach($test_files AS $name)
+ foreach($test_files as $name)
{
- $index = is_array($name) ? $name[0] : $name;
+ if (is_array($name))
+ {
+ $index = "# $name[1]: $name[0]";
+ if ($redir_tested)
+ {
+ $name = $name[0];
+ }
+ }
+ else if ($redir_tested)
+ {
+ $index = "# $redir_tested: $name";
+ }
+ else
+ {
+ $index = $name;
+ }
$test_idx++;
$result = run_test($php, $name, $env);
if (!is_array($name) && $result != 'REDIR')
@@ -881,12 +910,7 @@ function run_all_tests($test_files, $env, $redir_tested = NULL)
$test_results[$index] = $result;
if ($failed_tests_file && ($result == 'FAILED' || $result == 'WARNED' || $result == 'LEAKED'))
{
- if ($redir_tested)
- {
- fwrite($failed_tests_file, "# $redir_tested: $name\n");
- } else {
- fwrite($failed_tests_file, "$name\n");
- }
+ fwrite($failed_tests_file, "$index\n");
}
}
}
@@ -904,7 +928,11 @@ function run_test($php, $file, $env)
$temp_filenames = null;
$org_file = $file;
-
+
+ if (isset($env['TEST_PHP_CGI_EXECUTABLE'])) {
+ $php_cgi = $env['TEST_PHP_CGI_EXECUTABLE'];
+ }
+
if (is_array($file)) $file = $file[0];
if ($DETAILED) echo "
@@ -917,7 +945,9 @@ TEST $file
'TEST' => '',
'SKIPIF' => '',
'GET' => '',
+ 'POST_RAW' => '',
'POST' => '',
+ 'UPLOAD' => '',
'ARGS' => '',
);
@@ -942,7 +972,7 @@ TEST $file
$line = fgets($fp);
// Match the beginning of a section.
- if (preg_match('/^--([A-Z]+)--/', $line, $r)) {
+ if (preg_match('/^--([A-Z_]+)--/', $line, $r)) {
$section = $r[1];
$section_text[$section] = '';
$secfile = $section == 'FILE' || $section == 'FILEEOF';
@@ -1004,8 +1034,14 @@ TEST $file
$tested = trim($section_text['TEST']);
/* For GET/POST tests, check if cgi sapi is available and if it is, use it. */
- if ((!empty($section_text['GET']) || !empty($section_text['POST']))) {
- if (file_exists("./sapi/cgi/php")) {
+ if (!empty($section_text['GET']) || !empty($section_text['POST']) || !empty($section_text['POST_RAW'])) {
+ if (isset($php_cgi)) {
+ $old_php = $php;
+ $php = $php_cgi .' -C ';
+ } elseif (!strncasecmp(PHP_OS, "win", 3) && file_exists(dirname($php) ."/php-cgi.exe")) {
+ $old_php = $php;
+ $php = realpath(dirname($php) ."/php-cgi.exe") .' -C ';
+ } elseif (file_exists("./sapi/cgi/php")) {
$old_php = $php;
$php = realpath("./sapi/cgi/php") . ' -C ';
} else {
@@ -1025,17 +1061,19 @@ TEST $file
$temp_dir = str_replace($temp_source, $temp_target, $temp_dir);
}
- $diff_filename = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'diff';
- $log_filename = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'log';
- $exp_filename = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'exp';
- $output_filename = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'out';
- $memcheck_filename = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'mem';
- $temp_file = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'php';
- $test_file = $test_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'php';
- $temp_skipif = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'skip.php';
- $test_skipif = $test_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'skip.php';
- $temp_clean = $temp_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'clean.php';
- $test_clean = $test_dir . DIRECTORY_SEPARATOR . basename($file,'phpt').'clean.php';
+ $main_file_name = basename($file,'phpt');
+
+ $diff_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'diff';
+ $log_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'log';
+ $exp_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'exp';
+ $output_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'out';
+ $memcheck_filename = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'mem';
+ $temp_file = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'php';
+ $test_file = $test_dir . DIRECTORY_SEPARATOR . $main_file_name.'php';
+ $temp_skipif = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'skip.php';
+ $test_skipif = $test_dir . DIRECTORY_SEPARATOR . $main_file_name.'skip.php';
+ $temp_clean = $temp_dir . DIRECTORY_SEPARATOR . $main_file_name.'clean.php';
+ $test_clean = $test_dir . DIRECTORY_SEPARATOR . $main_file_name.'clean.php';
$tmp_post = $temp_dir . DIRECTORY_SEPARATOR . uniqid('/phpt.');
$tmp_relative_file = str_replace(dirname(__FILE__).DIRECTORY_SEPARATOR, '', $test_file) . 't';
@@ -1099,15 +1137,27 @@ TEST $file
}
}
+ // Default ini settings
+ $ini_settings = array();
+ // additional ini overwrites
+ //$ini_overwrites[] = 'setting=value';
+ settings2array($ini_overwrites, $ini_settings);
+
+ // Any special ini settings
+ // these may overwrite the test defaults...
+ if (array_key_exists('INI', $section_text)) {
+ if (strpos($section_text['INI'], '{PWD}') !== false) {
+ $section_text['INI'] = str_replace('{PWD}', dirname($file), $section_text['INI']);
+ }
+ settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), $ini_settings);
+ }
+ settings2params($ini_settings);
+
// Check if test should be skipped.
$info = '';
$warn = false;
if (array_key_exists('SKIPIF', $section_text)) {
if (trim($section_text['SKIPIF'])) {
- $skipif_params = array();
- settings2array($ini_overwrites,$skipif_params);
- settings2params($skipif_params);
-
if ($cfg['show']['skip']) {
echo "\n========SKIP========\n";
echo $section_text['SKIPIF'];
@@ -1116,7 +1166,7 @@ TEST $file
save_text($test_skipif, $section_text['SKIPIF'], $temp_skipif);
$extra = substr(PHP_OS, 0, 3) !== "WIN" ?
"unset REQUEST_METHOD; unset QUERY_STRING; unset PATH_TRANSLATED; unset SCRIPT_FILENAME; unset REQUEST_METHOD;": "";
- $output = system_with_timeout("$extra $php -q $skipif_params $test_skipif", $env);
+ $output = system_with_timeout("$extra $php -q $ini_settings $test_skipif", $env);
if (!$cfg['keep']['skip']) {
@unlink($test_skipif);
}
@@ -1165,7 +1215,9 @@ TEST $file
} else {
$GLOBALS['test_files'] = $test_files;
find_files($IN_REDIRECT['TESTS']);
- $test_files = $GLOBALS['test_files'];
+ foreach($GLOBALS['test_files'] as $f) {
+ $test_files[] = array($f, $file);
+ }
}
$test_cnt += count($test_files) - 1;
$test_idx--;
@@ -1202,23 +1254,6 @@ TEST $file
return 'BORKED';
}
-
- // Default ini settings
- $ini_settings = array();
- // additional ini overwrites
- //$ini_overwrites[] = 'setting=value';
- settings2array($ini_overwrites, $ini_settings);
-
- // Any special ini settings
- // these may overwrite the test defaults...
- if (array_key_exists('INI', $section_text)) {
- if (strpos($section_text['INI'], '{PWD}') !== false) {
- $section_text['INI'] = str_replace('{PWD}', dirname($file), $section_text['INI']);
- }
- settings2array(preg_split( "/[\n\r]+/", $section_text['INI']), $ini_settings);
- }
- settings2params($ini_settings);
-
// We've satisfied the preconditions - run the test!
if ($cfg['show']['php']) {
echo "\n========TEST========\n";
@@ -1239,18 +1274,38 @@ TEST $file
$args = $section_text['ARGS'] ? ' -- '.$section_text['ARGS'] : '';
- if (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) {
+ if (array_key_exists('POST_RAW', $section_text) && !empty($section_text['POST_RAW'])) {
+ $post = trim($section_text['POST_RAW']);
+ $raw_lines = explode("\n", $post);
+
+ $request = '';
+ foreach ($raw_lines as $line) {
+ if (empty($env['CONTENT_TYPE']) && eregi('^(Content-Type:)(.*)', $line, $res)) {
+ $env['CONTENT_TYPE'] = trim(str_replace("\r", '', $res[2]));
+ continue;
+ }
+ $request .= $line . "\n";
+ }
+
+ $env['CONTENT_LENGTH'] = strlen($request);
+ $env['REQUEST_METHOD'] = 'POST';
+
+ if (empty($request)) {
+ return 'BORKED';
+ }
+ save_text($tmp_post, $request);
+ $cmd = "$php$pass_options$ini_settings -f \"$test_file\" 2>&1 < $tmp_post";
+ } elseif (array_key_exists('POST', $section_text) && !empty($section_text['POST'])) {
$post = trim($section_text['POST']);
save_text($tmp_post, $post);
- $content_length = strlen($post);
+ $content_length = strlen($post);
$env['REQUEST_METHOD'] = 'POST';
$env['CONTENT_TYPE'] = 'application/x-www-form-urlencoded';
$env['CONTENT_LENGTH'] = $content_length;
$cmd = "$php$pass_options$ini_settings -f \"$test_file\" 2>&1 < $tmp_post";
-
} else {
$env['REQUEST_METHOD'] = 'GET';
diff --git a/sapi/apache/mod_php5.c b/sapi/apache/mod_php5.c
index 8643e9ee2..52c069b5e 100644
--- a/sapi/apache/mod_php5.c
+++ b/sapi/apache/mod_php5.c
@@ -17,7 +17,7 @@
| PHP 4.0 patches by Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
-/* $Id: mod_php5.c,v 1.19.2.5 2006/01/06 18:06:38 rasmus Exp $ */
+/* $Id: mod_php5.c,v 1.19.2.9 2006/05/13 22:03:51 rasmus Exp $ */
#include "php_apache_http.h"
#include "http_conf_globals.h"
@@ -67,6 +67,7 @@ static CONST_PREFIX char *php_apache_admin_flag_handler(cmd_parms *cmd, HashTabl
/* ### these should be defined in mod_php5.h or somewhere else */
#define USE_PATH 1
#define IGNORE_URL 2
+#define MAX_STATUS_LENGTH sizeof("xxxx LONGEST POSSIBLE STATUS DESCRIPTION")
module MODULE_VAR_EXPORT php5_module;
@@ -126,7 +127,7 @@ static void sapi_apache_flush(void *server_context)
*/
static int sapi_apache_read_post(char *buffer, uint count_bytes TSRMLS_DC)
{
- uint total_read_bytes=0, read_bytes;
+ int total_read_bytes=0, read_bytes;
request_rec *r = (request_rec *) SG(server_context);
void (*handler)(int);
@@ -208,17 +209,35 @@ static int sapi_apache_header_handler(sapi_header_struct *sapi_header, sapi_head
static int sapi_apache_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
{
request_rec *r = SG(server_context);
+ char *status_buf = NULL;
+ const char *sline = SG(sapi_headers).http_status_line;
+ int sline_len;
if(r == NULL) { /* server_context is not here anymore */
return SAPI_HEADER_SEND_FAILED;
}
r->status = SG(sapi_headers).http_response_code;
+
+ /* httpd requires that r->status_line is set to the first digit of
+ * the status-code: */
+ if (sline && ((sline_len = strlen(sline)) > 12) && strncmp(sline, "HTTP/1.", 7) == 0 && sline[8] == ' ' && sline[12] == ' ') {
+ if ((sline_len - 9) > MAX_STATUS_LENGTH) {
+ status_buf = estrndup(sline + 9, MAX_STATUS_LENGTH);
+ } else {
+ status_buf = estrndup(sline + 9, sline_len - 9);
+ }
+ r->status_line = status_buf;
+ }
+
if(r->status==304) {
send_error_response(r,0);
} else {
send_http_header(r);
- }
+ }
+ if (status_buf) {
+ efree(status_buf);
+ }
return SAPI_HEADER_SENT_SUCCESSFULLY;
}
/* }}} */
@@ -288,8 +307,7 @@ static void php_apache_log_message(char *message)
log_error(message, ((request_rec *) SG(server_context))->server);
#endif
} else {
- fprintf(stderr, "%s", message);
- fprintf(stderr, "\n");
+ fprintf(stderr, "%s\n", message);
}
}
/* }}} */
diff --git a/sapi/apache/php_apache.c b/sapi/apache/php_apache.c
index 159a4d940..07fe6bb8b 100644
--- a/sapi/apache/php_apache.c
+++ b/sapi/apache/php_apache.c
@@ -17,7 +17,7 @@
| David Sklar <sklar@student.net> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_apache.c,v 1.89.2.3 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: php_apache.c,v 1.89.2.4 2006/04/26 09:31:23 edink Exp $ */
#include "php_apache_http.h"
@@ -34,8 +34,13 @@ php_apache_info_struct php_apache_info;
#define SECTION(name) PUTS("<h2>" name "</h2>\n")
+#ifndef PHP_WIN32
extern module *top_module;
extern module **ap_loaded_modules;
+#else
+extern __declspec(dllimport) module *top_module;
+extern __declspec(dllimport) module **ap_loaded_modules;
+#endif
PHP_FUNCTION(virtual);
PHP_FUNCTION(apache_request_headers);
diff --git a/sapi/apache2filter/apache_config.c b/sapi/apache2filter/apache_config.c
index 7dfe79c7f..384ab7b39 100644
--- a/sapi/apache2filter/apache_config.c
+++ b/sapi/apache2filter/apache_config.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: apache_config.c,v 1.34.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: apache_config.c,v 1.34.2.2 2006/06/09 16:29:45 mike Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -128,28 +128,31 @@ static const char *php_apache_phpini_set(cmd_parms *cmd, void *mconfig,
void *merge_php_config(apr_pool_t *p, void *base_conf, void *new_conf)
{
- php_conf_rec *d = base_conf, *e = new_conf;
+ php_conf_rec *d = base_conf, *e = new_conf, *n = NULL;
php_dir_entry *pe;
php_dir_entry *data;
char *str;
uint str_len;
ulong num_index;
- phpapdebug((stderr, "Merge dir (%p) (%p)\n", base_conf, new_conf));
+ n = create_php_config(p, "merge_php_config");
+ zend_hash_copy(&n->config, &e->config, NULL, NULL, sizeof(php_dir_entry));
+
+ phpapdebug((stderr, "Merge dir (%p)+(%p)=(%p)\n", base_conf, new_conf, n));
for (zend_hash_internal_pointer_reset(&d->config);
zend_hash_get_current_key_ex(&d->config, &str, &str_len,
&num_index, 0, NULL) == HASH_KEY_IS_STRING;
zend_hash_move_forward(&d->config)) {
pe = NULL;
zend_hash_get_current_data(&d->config, (void **) &data);
- if (zend_hash_find(&e->config, str, str_len, (void **) &pe) == SUCCESS) {
+ if (zend_hash_find(&n->config, str, str_len, (void **) &pe) == SUCCESS) {
if (pe->status >= data->status) continue;
}
- zend_hash_update(&e->config, str, str_len, data, sizeof(*data), NULL);
- phpapdebug((stderr, "ADDING/OVERWRITING %s (%d vs. %d)\n", str,
- data->status, pe?pe->status:-1));
+ zend_hash_update(&n->config, str, str_len, data, sizeof(*data), NULL);
+ phpapdebug((stderr, "ADDING/OVERWRITING %s (%d vs. %d)\n", str, data->status, pe?pe->status:-1));
}
- return new_conf;
+
+ return n;
}
char *get_php_config(void *conf, char *name, size_t name_len)
diff --git a/sapi/apache2filter/sapi_apache2.c b/sapi/apache2filter/sapi_apache2.c
index 4df3267ce..22212dfbb 100644
--- a/sapi/apache2filter/sapi_apache2.c
+++ b/sapi/apache2filter/sapi_apache2.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sapi_apache2.c,v 1.136.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: sapi_apache2.c,v 1.136.2.2 2006/03/19 14:54:53 mike Exp $ */
#include <fcntl.h>
@@ -103,7 +103,7 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_headers_str
{
php_struct *ctx;
ap_filter_t *f;
- char *val;
+ char *val, *ptr;
ctx = SG(server_context);
f = ctx->r->output_filters;
@@ -114,6 +114,7 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_headers_str
sapi_free_header(sapi_header);
return 0;
}
+ ptr = val;
*val = '\0';
@@ -128,6 +129,7 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header, sapi_headers_str
else
apr_table_add(ctx->r->headers_out, sapi_header->header, val);
+ *ptr = ':';
return SAPI_HEADER_ADD;
}
diff --git a/sapi/apache2handler/apache_config.c b/sapi/apache2handler/apache_config.c
index 4490e0953..13f447db3 100644
--- a/sapi/apache2handler/apache_config.c
+++ b/sapi/apache2handler/apache_config.c
@@ -16,7 +16,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: apache_config.c,v 1.7.2.1 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: apache_config.c,v 1.7.2.2 2006/06/09 15:13:58 mike Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -118,27 +118,31 @@ static const char *php_apache_phpini_set(cmd_parms *cmd, void *mconfig, const ch
void *merge_php_config(apr_pool_t *p, void *base_conf, void *new_conf)
{
- php_conf_rec *d = base_conf, *e = new_conf;
+ php_conf_rec *d = base_conf, *e = new_conf, *n = NULL;
php_dir_entry *pe;
php_dir_entry *data;
char *str;
uint str_len;
ulong num_index;
- phpapdebug((stderr, "Merge dir (%p) (%p)\n", base_conf, new_conf));
+ n = create_php_config(p, "merge_php_config");
+ zend_hash_copy(&n->config, &e->config, NULL, NULL, sizeof(php_dir_entry));
+
+ phpapdebug((stderr, "Merge dir (%p)+(%p)=(%p)\n", base_conf, new_conf, n));
for (zend_hash_internal_pointer_reset(&d->config);
zend_hash_get_current_key_ex(&d->config, &str, &str_len,
&num_index, 0, NULL) == HASH_KEY_IS_STRING;
zend_hash_move_forward(&d->config)) {
pe = NULL;
zend_hash_get_current_data(&d->config, (void **) &data);
- if (zend_hash_find(&e->config, str, str_len, (void **) &pe) == SUCCESS) {
+ if (zend_hash_find(&n->config, str, str_len, (void **) &pe) == SUCCESS) {
if (pe->status >= data->status) continue;
}
- zend_hash_update(&e->config, str, str_len, data, sizeof(*data), NULL);
+ zend_hash_update(&n->config, str, str_len, data, sizeof(*data), NULL);
phpapdebug((stderr, "ADDING/OVERWRITING %s (%d vs. %d)\n", str, data->status, pe?pe->status:-1));
}
- return new_conf;
+
+ return n;
}
char *get_php_config(void *conf, char *name, size_t name_len)
diff --git a/sapi/apache2handler/sapi_apache2.c b/sapi/apache2handler/sapi_apache2.c
index ff44c789f..50e2550c1 100644
--- a/sapi/apache2handler/sapi_apache2.c
+++ b/sapi/apache2handler/sapi_apache2.c
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: sapi_apache2.c,v 1.57.2.9 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: sapi_apache2.c,v 1.57.2.11 2006/08/08 13:11:39 stas Exp $ */
#define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
@@ -86,7 +86,7 @@ static int
php_apache_sapi_header_handler(sapi_header_struct *sapi_header,sapi_headers_struct *sapi_headers TSRMLS_DC)
{
php_struct *ctx;
- char *val;
+ char *val, *ptr;
ctx = SG(server_context);
@@ -96,6 +96,7 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header,sapi_headers_stru
sapi_free_header(sapi_header);
return 0;
}
+ ptr = val;
*val = '\0';
@@ -111,6 +112,7 @@ php_apache_sapi_header_handler(sapi_header_struct *sapi_header,sapi_headers_stru
} else {
apr_table_add(ctx->r->headers_out, sapi_header->header, val);
}
+ *ptr = ':';
return SAPI_HEADER_ADD;
}
@@ -457,12 +459,12 @@ static void php_apache_ini_dtor(request_rec *r, request_rec *p TSRMLS_DC)
static int php_handler(request_rec *r)
{
- php_struct *ctx;
+ php_struct * volatile ctx;
void *conf;
- apr_bucket_brigade *brigade;
+ apr_bucket_brigade * volatile brigade;
apr_bucket *bucket;
apr_status_t rv;
- request_rec *parent_req = NULL;
+ request_rec * volatile parent_req = NULL;
TSRMLS_FETCH();
#define PHPAP_INI_OFF php_apache_ini_dtor(r, parent_req TSRMLS_CC);
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index 9d26ae6a5..317c823f4 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: cgi_main.c,v 1.267.2.5 2006/01/01 12:50:18 sniper Exp $ */
+/* $Id: cgi_main.c,v 1.267.2.16 2006/05/24 07:55:38 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -69,6 +69,7 @@
#ifdef __riscos__
#include <unixlib/local.h>
+int __riscosify_control = __RISCOSIFY_STRICT_UNIX_SPECS;
#endif
#include "zend_compile.h"
@@ -79,9 +80,7 @@
#include "php_getopt.h"
#if PHP_FASTCGI
-#include "fcgi_config.h"
-#include "fcgiapp.h"
-/* don't want to include fcgios.h, causes conflicts */
+#include "fastcgi.h"
#ifdef PHP_WIN32
extern int OS_SetImpersonate(void);
#else
@@ -152,6 +151,13 @@ static const opt_struct OPTIONS[] = {
long fix_pathinfo = 1;
#endif
+#if PHP_FASTCGI
+long fcgi_logging = 1;
+#endif
+
+static long rfc2616_headers = 0;
+static long cgi_nph = 0;
+
#ifdef PHP_WIN32
#define TRANSLATE_SLASHES(path) \
{ \
@@ -276,7 +282,7 @@ static void sapi_cgibin_flush(void *server_context)
#ifndef PHP_WIN32
!parent &&
#endif
- (!request || FCGX_FFlush(request->out) == -1)) {
+ request && FCGX_FFlush(request->out) == -1) {
php_handle_aborted_connection();
}
return;
@@ -294,25 +300,12 @@ static int sapi_cgi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
char buf[SAPI_CGI_MAX_HEADER_LENGTH];
sapi_header_struct *h;
zend_llist_position pos;
- long rfc2616_headers = 0, nph = 0;
if (SG(request_info).no_headers == 1) {
return SAPI_HEADER_SENT_SUCCESSFULLY;
}
- /* Check wheater to send RFC2616 style headers compatible with
- * PHP versions 4.2.3 and earlier compatible with web servers
- * such as IIS. Default is informal CGI RFC header compatible
- * with Apache.
- */
- if (cfg_get_long("cgi.rfc2616_headers", &rfc2616_headers) == FAILURE) {
- rfc2616_headers = 0;
- }
- if (cfg_get_long("cgi.nph", &nph) == FAILURE) {
- nph = 0;
- }
-
- if (nph || SG(sapi_headers).http_response_code != 200)
+ if (cgi_nph || SG(sapi_headers).http_response_code != 200)
{
int len;
@@ -438,9 +431,28 @@ static char *sapi_cgi_read_cookies(TSRMLS_D)
#if PHP_FASTCGI
void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
{
+ if (PG(http_globals)[TRACK_VARS_ENV] &&
+ array_ptr != PG(http_globals)[TRACK_VARS_ENV] &&
+ Z_TYPE_P(PG(http_globals)[TRACK_VARS_ENV]) == IS_ARRAY &&
+ zend_hash_num_elements(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_ENV])) > 0) {
+ zval_dtor(array_ptr);
+ *array_ptr = *PG(http_globals)[TRACK_VARS_ENV];
+ INIT_PZVAL(array_ptr);
+ zval_copy_ctor(array_ptr);
+ return;
+ } else if (PG(http_globals)[TRACK_VARS_SERVER] &&
+ array_ptr != PG(http_globals)[TRACK_VARS_SERVER] &&
+ Z_TYPE_P(PG(http_globals)[TRACK_VARS_SERVER]) == IS_ARRAY &&
+ zend_hash_num_elements(Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER])) > 0) {
+ zval_dtor(array_ptr);
+ *array_ptr = *PG(http_globals)[TRACK_VARS_SERVER];
+ INIT_PZVAL(array_ptr);
+ zval_copy_ctor(array_ptr);
+ return;
+ }
if (!FCGX_IsCGI()) {
FCGX_Request *request = (FCGX_Request *) SG(server_context);
- char **env, *p, *t;
+ char **env, *p;
int magic_quotes_gpc = PG(magic_quotes_gpc);
/* turn off magic_quotes while importing environment variables */
@@ -450,9 +462,9 @@ void cgi_php_import_environment_variables(zval *array_ptr TSRMLS_DC)
if (!p) { /* malformed entry? */
continue;
}
- t = estrndup(*env, p - *env);
- php_register_variable(t, p + 1, array_ptr TSRMLS_CC);
- efree(t);
+ *p = 0;
+ php_register_variable(*env, p + 1, array_ptr TSRMLS_CC);
+ *p = '=';
}
PG(magic_quotes_gpc) = magic_quotes_gpc;
}
@@ -474,15 +486,11 @@ static void sapi_cgi_register_variables(zval *track_vars_array TSRMLS_DC)
static void sapi_cgi_log_message(char *message)
{
#if PHP_FASTCGI
- long logging = 1;
- TSRMLS_FETCH();
-
- if (cfg_get_long("fastcgi.logging", &logging) == FAILURE) {
- logging = 1;
- }
-
- if (!FCGX_IsCGI() && logging) {
- FCGX_Request *request = (FCGX_Request *) SG(server_context);
+ if (!FCGX_IsCGI() && fcgi_logging) {
+ FCGX_Request *request;
+ TSRMLS_FETCH();
+
+ request = (FCGX_Request *) SG(server_context);
if (request) {
FCGX_FPrintF(request->err, "%s\n", message);
}
@@ -932,6 +940,21 @@ void fastcgi_cleanup(int signal)
}
#endif
+#if PHP_FASTCGI
+#ifndef PHP_WIN32
+static int is_port_number(const char *bindpath)
+{
+ while (*bindpath) {
+ if (*bindpath < '0' || *bindpath > '9') {
+ return 0;
+ }
+ bindpath++;
+ }
+ return 1;
+}
+#endif
+#endif
+
/* {{{ main
*/
int main(int argc, char *argv[])
@@ -1127,6 +1150,25 @@ consult the installation file that came with this distribution, or visit \n\
#endif
#if PHP_FASTCGI
+ if (cfg_get_long("fastcgi.logging", &fcgi_logging) == FAILURE) {
+ fcgi_logging = 1;
+ }
+#endif
+
+ /* Check wheater to send RFC2616 style headers compatible with
+ * PHP versions 4.2.3 and earlier compatible with web servers
+ * such as IIS. Default is informal CGI RFC header compatible
+ * with Apache.
+ */
+ if (cfg_get_long("cgi.rfc2616_headers", &rfc2616_headers) == FAILURE) {
+ rfc2616_headers = 0;
+ }
+
+ if (cfg_get_long("cgi.nph", &cgi_nph) == FAILURE) {
+ cgi_nph = 0;
+ }
+
+#if PHP_FASTCGI
#ifndef PHP_WIN32
/* for windows, socket listening is broken in the fastcgi library itself
so dissabling this feature on windows till time is available to fix it */
@@ -1139,7 +1181,7 @@ consult the installation file that came with this distribution, or visit \n\
* path (it's what the fastcgi library expects)
*/
- if (strchr(bindpath, ':') == NULL) {
+ if (strchr(bindpath, ':') == NULL && is_port_number(bindpath)) {
char *tmp;
tmp = malloc(strlen(bindpath) + 2);
@@ -1244,7 +1286,8 @@ consult the installation file that came with this distribution, or visit \n\
#ifdef DEBUG_FASTCGI
fprintf(stderr, "Wait for kids, pid %d\n", getpid());
#endif
- wait(&status);
+ while (wait(&status) < 0) {
+ }
running--;
}
}
@@ -1429,6 +1472,7 @@ consult the installation file that came with this distribution, or visit \n\
if (script_file) {
/* override path_translated if -f on command line */
+ STR_FREE(SG(request_info).path_translated);
SG(request_info).path_translated = script_file;
}
@@ -1658,6 +1702,7 @@ fastcgi_request_done:
exit_status = 255;
} zend_end_try();
+ SG(server_context) = NULL;
php_module_shutdown(TSRMLS_C);
sapi_shutdown();
diff --git a/sapi/cgi/config.w32 b/sapi/cgi/config.w32
index f4a11a792..f9805a636 100644
--- a/sapi/cgi/config.w32
+++ b/sapi/cgi/config.w32
@@ -1,5 +1,5 @@
// vim:ft=javascript
-// $Id: config.w32,v 1.2 2004/01/08 10:56:39 wez Exp $
+// $Id: config.w32,v 1.2.4.1 2006/02/02 08:17:23 dmitry Exp $
ARG_ENABLE('cgi', 'Build CGI version of PHP', 'yes');
ARG_ENABLE('fastcgi', 'Build FastCGI support into CGI binary', 'yes');
@@ -16,8 +16,7 @@ AC_DEFINE("ENABLE_PATHINFO_CHECK", PHP_PATH_INFO_CHECK == "yes" ? 1 : 0, "Pathin
if (PHP_CGI == "yes") {
AC_DEFINE('PHP_FASTCGI', PHP_FASTCGI == "yes" ? 1 : 0);
if (PHP_FASTCGI == "yes") {
- SAPI('cgi', 'cgi_main.c getopt.c', 'php-cgi.exe', '/I sapi/cgi/libfcgi/include /D FCGI_STATIC');
- ADD_SOURCES('sapi/cgi/libfcgi', 'fcgi_stdio.c fcgiapp.c os_win32.c', 'cgi');
+ SAPI('cgi', 'cgi_main.c getopt.c fastcgi.c', 'php-cgi.exe', '/I sapi/cgi/libfcgi/include /D FCGI_STATIC');
ADD_FLAG('LIBS_CGI', 'ws2_32.lib kernel32.lib advapi32.lib');
} else {
SAPI('cgi', 'cgi_main.c getopt.c', 'php-cgi.exe');
diff --git a/sapi/cgi/config9.m4 b/sapi/cgi/config9.m4
index a3c4522c9..c521beb2d 100644
--- a/sapi/cgi/config9.m4
+++ b/sapi/cgi/config9.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config9.m4,v 1.17 2005/07/07 05:54:43 dmitry Exp $
+dnl $Id: config9.m4,v 1.17.2.2 2006/02/02 09:59:23 dmitry Exp $
dnl
AC_ARG_ENABLE(cgi,
@@ -133,15 +133,12 @@ if test "$PHP_SAPI" = "default"; then
exit 1
fi
if test "$PHP_ENABLE_FASTCGI" = "yes"; then
- PHP_ADD_BUILD_DIR($abs_builddir/sapi/cgi/libfcgi)
PHP_FASTCGI=1
- PHP_FCGI_FILES="libfcgi/fcgi_stdio.c libfcgi/fcgiapp.c libfcgi/os_unix.c"
- PHP_FCGI_INCLUDE="-I$PHP_LIBFCGI_DIR/include"
+ PHP_FCGI_FILES="fastcgi.c"
PHP_FCGI_STATIC=1
else
PHP_FASTCGI=0
PHP_FCGI_FILES=""
- PHP_FCGI_INCLUDE=""
PHP_FCGI_STATIC=0
fi
AC_DEFINE_UNQUOTED(PHP_FASTCGI, $PHP_FASTCGI, [ ])
@@ -149,11 +146,11 @@ if test "$PHP_SAPI" = "default"; then
AC_MSG_RESULT($PHP_ENABLE_FASTCGI)
INSTALL_IT="@echo \"Installing PHP CGI into: \$(INSTALL_ROOT)\$(bindir)/\"; \$(INSTALL) -m 0755 \$(SAPI_CGI_PATH) \$(INSTALL_ROOT)\$(bindir)/\$(program_prefix)php\$(program_suffix)\$(EXEEXT)"
- PHP_SELECT_SAPI(cgi, program, $PHP_FCGI_FILES cgi_main.c getopt.c, $PHP_FCGI_INCLUDE, '$(SAPI_CGI_PATH)')
+ PHP_SELECT_SAPI(cgi, program, $PHP_FCGI_FILES cgi_main.c getopt.c, , '$(SAPI_CGI_PATH)')
case $host_alias in
*aix*)
- BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
+ BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
;;
*darwin*)
BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)"
diff --git a/sapi/cgi/fastcgi.c b/sapi/cgi/fastcgi.c
new file mode 100644
index 000000000..1e0a0d344
--- /dev/null
+++ b/sapi/cgi/fastcgi.c
@@ -0,0 +1,955 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2006 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Dmitry Stogov <dmitry@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id: fastcgi.c,v 1.4.2.17 2006/06/07 14:28:26 stas Exp $ */
+
+#include "fastcgi.h"
+#include "php.h"
+
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <errno.h>
+
+#ifdef _WIN32
+
+#include <windows.h>
+
+ typedef unsigned int size_t;
+
+ struct sockaddr_un {
+ short sun_family;
+ char sun_path[MAXPATHLEN];
+ };
+
+ static HANDLE fcgi_accept_mutex = INVALID_HANDLE_VALUE;
+ static int is_impersonate = 0;
+
+#define FCGI_LOCK(fd) \
+ if (fcgi_accept_mutex != INVALID_HANDLE_VALUE) { \
+ DWORD ret; \
+ while ((ret = WaitForSingleObject(fcgi_accept_mutex, 1000)) == WAIT_TIMEOUT) { \
+ if (in_shutdown) return -1; \
+ } \
+ if (ret == WAIT_FAILED) { \
+ fprintf(stderr, "WaitForSingleObject() failed\n"); \
+ return -1; \
+ } \
+ }
+
+#define FCGI_UNLOCK(fd) \
+ if (fcgi_accept_mutex != INVALID_HANDLE_VALUE) { \
+ ReleaseMutex(fcgi_accept_mutex); \
+ }
+
+#else
+
+# include <sys/types.h>
+# include <sys/stat.h>
+# include <unistd.h>
+# include <fcntl.h>
+# include <sys/socket.h>
+# include <sys/un.h>
+# include <netinet/in.h>
+# include <arpa/inet.h>
+# include <netdb.h>
+# include <signal.h>
+
+#ifndef INADDR_NONE
+#define INADDR_NONE ((unsigned long) -1)
+#endif
+
+# ifndef HAVE_SOCKLEN_T
+ typedef unsigned int socklen_t;
+# endif
+
+# ifdef USE_LOCKING
+# define FCGI_LOCK(fd) \
+ do { \
+ struct flock lock; \
+ lock.l_type = F_WRLCK; \
+ lock.l_start = 0; \
+ lock.l_whence = SEEK_SET; \
+ lock.l_len = 0; \
+ if (fcntl(fd, F_SETLKW, &lock) != -1) { \
+ break; \
+ } else if (errno != EINTR || in_shutdown) { \
+ return -1; \
+ } \
+ } while (1)
+
+# define FCGI_UNLOCK(fd) \
+ do { \
+ int orig_errno = errno; \
+ while (1) { \
+ struct flock lock; \
+ lock.l_type = F_UNLCK; \
+ lock.l_start = 0; \
+ lock.l_whence = SEEK_SET; \
+ lock.l_len = 0; \
+ if (fcntl(fd, F_SETLK, &lock) != -1) { \
+ break; \
+ } else if (errno != EINTR) { \
+ return -1; \
+ } \
+ } \
+ errno = orig_errno; \
+ } while (0)
+# else
+# define FCGI_LOCK(fd)
+# define FCGI_UNLOCK(fd)
+# endif
+
+#endif
+
+typedef union _sa_t {
+ struct sockaddr sa;
+ struct sockaddr_un sa_unix;
+ struct sockaddr_in sa_inet;
+} sa_t;
+
+typedef struct _fcgi_mgmt_rec {
+ char* name;
+ char val;
+} fcgi_mgmt_rec;
+
+static const fcgi_mgmt_rec fcgi_mgmt_vars[] = {
+ {"FCGI_MAX_CONNS", 1},
+ {"FCGI_MAX_REQS", 1},
+ {"FCGI_MPXS_CONNS", 0}
+};
+
+
+static int is_initialized = 0;
+static int is_fastcgi = 0;
+static int in_shutdown = 0;
+
+static inline char* fcgi_strndup(const char *str, int len)
+{
+ char *s = malloc(len+1);
+ memcpy(s, str, len+1);
+ return s;
+}
+
+#ifdef _WIN32
+
+static DWORD WINAPI fcgi_shutdown_thread(LPVOID arg)
+{
+ HANDLE shutdown_event = (HANDLE) arg;
+ WaitForSingleObject(shutdown_event, INFINITE);
+ in_shutdown = 1;
+ return 0;
+}
+
+#else
+
+static void fcgi_signal_handler(int signo)
+{
+ if (signo == SIGUSR1 || signo == SIGTERM) {
+ in_shutdown = 1;
+ }
+}
+
+#endif
+
+int fcgi_init(void)
+{
+ if (!is_initialized) {
+#ifdef _WIN32
+# if 0
+ /* TODO: Support for TCP sockets */
+ WSADATA wsaData;
+
+ if (WSAStartup(MAKEWORD(2,0), &wsaData)) {
+ fprintf(stderr, "Error starting Windows Sockets. Error: %d", WSAGetLastError());
+ return 0;
+ }
+# endif
+ is_initialized = 1;
+
+ if ((GetStdHandle(STD_OUTPUT_HANDLE) == INVALID_HANDLE_VALUE) &&
+ (GetStdHandle(STD_ERROR_HANDLE) == INVALID_HANDLE_VALUE) &&
+ (GetStdHandle(STD_INPUT_HANDLE) != INVALID_HANDLE_VALUE)) {
+ char *str;
+ DWORD pipe_mode = PIPE_READMODE_BYTE | PIPE_WAIT;
+ HANDLE pipe = GetStdHandle(STD_INPUT_HANDLE);
+
+ SetNamedPipeHandleState(pipe, &pipe_mode, NULL, NULL);
+
+ str = getenv("_FCGI_SHUTDOWN_EVENT_");
+ if (str != NULL) {
+ HANDLE shutdown_event = (HANDLE) atoi(str);
+ if (!CreateThread(NULL, 0, fcgi_shutdown_thread,
+ shutdown_event, 0, NULL)) {
+ return -1;
+ }
+ }
+ str = getenv("_FCGI_MUTEX_");
+ if (str != NULL) {
+ fcgi_accept_mutex = (HANDLE) atoi(str);
+ }
+ return is_fastcgi = 1;
+ } else {
+ return is_fastcgi = 0;
+ }
+#else
+ sa_t sa;
+ socklen_t len = sizeof(sa);
+
+ is_initialized = 1;
+ errno = 0;
+ if (getpeername(0, (struct sockaddr *)&sa, &len) != 0 && errno == ENOTCONN) {
+ struct sigaction new_sa, old_sa;
+
+ sigemptyset(&new_sa.sa_mask);
+ new_sa.sa_flags = 0;
+ new_sa.sa_handler = fcgi_signal_handler;
+ sigaction(SIGUSR1, &new_sa, NULL);
+ sigaction(SIGTERM, &new_sa, NULL);
+ sigaction(SIGPIPE, NULL, &old_sa);
+ if (old_sa.sa_handler == SIG_DFL) {
+ sigaction(SIGPIPE, &new_sa, NULL);
+ }
+
+ return is_fastcgi = 1;
+ } else {
+ return is_fastcgi = 0;
+ }
+#endif
+ }
+ return is_fastcgi;
+}
+
+
+int fcgi_is_fastcgi(void)
+{
+ if (!is_initialized) {
+ return fcgi_init();
+ } else {
+ return is_fastcgi;
+ }
+}
+
+int fcgi_listen(const char *path, int backlog)
+{
+#ifdef _WIN32
+ /* TODO: Support for manual binding on TCP sockets (php -b <port>) */
+ return -1;
+#else
+ char *s;
+ int tcp = 0;
+ char host[MAXPATHLEN];
+ short port = 0;
+ int listen_socket;
+ sa_t sa;
+ socklen_t sa_len;
+
+ if ((s = strchr(path, ':'))) {
+ port = atoi(s+1);
+ if (port != 0 && (s-path) < MAXPATHLEN) {
+ strncpy(host, path, s-path);
+ host[s-path] = '\0';
+ tcp = 1;
+ }
+ }
+
+ /* Prepare socket address */
+ if (tcp) {
+ memset(&sa.sa_inet, 0, sizeof(sa.sa_inet));
+ sa.sa_inet.sin_family = AF_INET;
+ sa.sa_inet.sin_port = htons(port);
+ sa_len = sizeof(sa.sa_inet);
+
+ if (!*host || !strncmp(host, "*", sizeof("*")-1)) {
+ sa.sa_inet.sin_addr.s_addr = htonl(INADDR_ANY);
+ } else {
+ sa.sa_inet.sin_addr.s_addr = inet_addr(host);
+ if (sa.sa_inet.sin_addr.s_addr == INADDR_NONE) {
+ struct hostent *hep;
+
+ hep = gethostbyname(host);
+ if (!hep || hep->h_addrtype != AF_INET || !hep->h_addr_list[0]) {
+ fprintf(stderr, "Cannot resolve host name '%s'!\n", host);
+ return -1;
+ } else if (hep->h_addr_list[1]) {
+ fprintf(stderr, "Host '%s' has multiple addresses. You must choose one explicitly!\n", host);
+ return -1;
+ }
+ sa.sa_inet.sin_addr.s_addr = ((struct in_addr*)hep->h_addr_list[0])->s_addr;
+ }
+ }
+ } else {
+ int path_len = strlen(path);
+
+ if (path_len >= sizeof(sa.sa_unix.sun_path)) {
+ fprintf(stderr, "Listening socket's path name is too long.\n");
+ return -1;
+ }
+
+ memset(&sa.sa_unix, 0, sizeof(sa.sa_unix));
+ sa.sa_unix.sun_family = AF_UNIX;
+ memcpy(sa.sa_unix.sun_path, path, path_len + 1);
+ sa_len = (size_t)(((struct sockaddr_un *)0)->sun_path) + path_len;
+#ifdef HAVE_SOCKADDR_UN_SUN_LEN
+ sa.sa_unix.sun_len = sa_len;
+#endif
+ unlink(path);
+ }
+
+ /* Create, bind socket and start listen on it */
+ if ((listen_socket = socket(sa.sa.sa_family, SOCK_STREAM, 0)) < 0 ||
+ bind(listen_socket, (struct sockaddr *) &sa, sa_len) < 0 ||
+ listen(listen_socket, backlog) < 0) {
+
+ fprintf(stderr, "Cannot bind/listen socket - [%d] %s.\n",errno, strerror(errno));
+ return -1;
+ }
+
+ if (!tcp) {
+ chmod(path, 0777);
+ }
+
+ if (!is_initialized) {
+ fcgi_init();
+ }
+ is_fastcgi = 1;
+ return listen_socket;
+#endif
+}
+
+void fcgi_init_request(fcgi_request *req, int listen_socket)
+{
+ memset(req, 0, sizeof(fcgi_request));
+ req->listen_socket = listen_socket;
+ req->fd = -1;
+ req->id = -1;
+
+ req->in_len = 0;
+ req->in_pad = 0;
+
+ req->out_hdr = NULL;
+ req->out_pos = req->out_buf;
+}
+
+static inline ssize_t safe_write(fcgi_request *req, const void *buf, size_t count)
+{
+ int ret;
+ size_t n = 0;
+
+ do {
+ ret = write(req->fd, ((char*)buf)+n, count-n);
+ if (ret > 0) {
+ n += ret;
+ } else if (ret <= 0 && errno != 0 && errno != EINTR) {
+ return ret;
+ }
+ } while (n != count);
+ return n;
+}
+
+static inline ssize_t safe_read(fcgi_request *req, const void *buf, size_t count)
+{
+ int ret;
+ size_t n = 0;
+
+ do {
+ ret = read(req->fd, ((char*)buf)+n, count-n);
+ if (ret > 0) {
+ n += ret;
+ } else if (ret == 0 && errno == 0) {
+ return n;
+ } else if (ret <= 0 && errno != 0 && errno != EINTR) {
+ return ret;
+ }
+ } while (n != count);
+ return n;
+}
+
+static inline int fcgi_make_header(fcgi_header *hdr, fcgi_request_type type, int req_id, int len)
+{
+ int pad = ((len + 7) & ~7) - len;
+
+ hdr->contentLengthB0 = (unsigned char)(len & 0xff);
+ hdr->contentLengthB1 = (unsigned char)((len >> 8) & 0xff);
+ hdr->paddingLength = (unsigned char)pad;
+ hdr->requestIdB0 = (unsigned char)(req_id & 0xff);
+ hdr->requestIdB1 = (unsigned char)((req_id >> 8) & 0xff);
+ hdr->reserved = 0;
+ hdr->type = type;
+ hdr->version = FCGI_VERSION_1;
+ return pad;
+}
+
+static int fcgi_get_params(fcgi_request *req, unsigned char *p, unsigned char *end, int n)
+{
+ int name_len, val_len;
+ char *s;
+
+ while (p < end && n < FCGI_MAX_ENV_VARS - 1) {
+ name_len = *p++;
+ if (name_len >= 128) {
+ name_len = ((name_len & 0x7f) << 24);
+ name_len |= (*p++ << 16);
+ name_len |= (*p++ << 8);
+ name_len |= *p++;
+ }
+ val_len = *p++;
+ if (val_len >= 128) {
+ val_len = ((val_len & 0x7f) << 24);
+ val_len |= (*p++ << 16);
+ val_len |= (*p++ << 8);
+ val_len |= *p++;
+ }
+ req->env[n] = s = malloc(name_len + val_len + 2);
+ memcpy(s, p, name_len);
+ p += name_len;
+ s[name_len] = '=';
+ memcpy(s+name_len+1, p, val_len);
+ p += val_len;
+ s[name_len+1+val_len] = '\0';
+ n++;
+ }
+ return n;
+}
+
+static int fcgi_read_request(fcgi_request *req)
+{
+ fcgi_header hdr;
+ int len, padding;
+ int n = 1;
+ char *s;
+ unsigned char buf[FCGI_MAX_LENGTH+8];
+
+ req->keep = 0;
+ req->in_len = 0;
+ req->out_hdr = NULL;
+ req->out_pos = req->out_buf;
+ memset(req->env, 0, sizeof(req->env));
+
+ if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
+ hdr.version < FCGI_VERSION_1) {
+ return 0;
+ }
+
+ len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
+ padding = hdr.paddingLength;
+
+ while (hdr.type == FCGI_STDIN && len == 0) {
+ if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
+ hdr.version < FCGI_VERSION_1) {
+ return 0;
+ }
+
+ len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
+ padding = hdr.paddingLength;
+ }
+
+ req->id = (hdr.requestIdB1 << 8) + hdr.requestIdB0;
+
+ if (hdr.type == FCGI_BEGIN_REQUEST && len == sizeof(fcgi_begin_request)) {
+ if (safe_read(req, buf, len+padding) != len+padding) {
+ return 0;
+ }
+
+ req->keep = (((fcgi_begin_request*)buf)->flags & FCGI_KEEP_CONN);
+ switch ((((fcgi_begin_request*)buf)->roleB1 << 8) + ((fcgi_begin_request*)buf)->roleB0) {
+ case FCGI_RESPONDER:
+ req->env[0] = fcgi_strndup("FCGI_ROLE=RESPONDER", sizeof("FCGI_ROLE=RESPONDER")-1);
+ break;
+ case FCGI_AUTHORIZER:
+ req->env[0] = fcgi_strndup("FCGI_ROLE=AUTHORIZER", sizeof("FCGI_ROLE=AUTHORIZER")-1);
+ break;
+ case FCGI_FILTER:
+ req->env[0] = fcgi_strndup("FCGI_ROLE=FILTER", sizeof("FCGI_ROLE=FILTER")-1);
+ break;
+ default:
+ return 0;
+ }
+
+ if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
+ hdr.version < FCGI_VERSION_1) {
+ return 0;
+ }
+
+ len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
+ padding = hdr.paddingLength;
+
+ while (hdr.type == FCGI_PARAMS && len > 0) {
+ if (safe_read(req, buf, len+padding) != len+padding) {
+ req->keep = 0;
+ return 0;
+ }
+ n = fcgi_get_params(req, buf, buf+len, n);
+
+ if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
+ hdr.version < FCGI_VERSION_1) {
+ req->keep = 0;
+ return 0;
+ }
+ len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
+ padding = hdr.paddingLength;
+ }
+ } else if (hdr.type == FCGI_GET_VALUES) {
+ int i, j;
+ int name_len;
+ unsigned char *p = buf + sizeof(fcgi_header);
+
+ if (safe_read(req, buf, len+padding) != len+padding) {
+ return 0;
+ }
+ n = fcgi_get_params(req, buf, buf+len, 0);
+ for (i = 0; i < n; i++) {
+ if ((s = strchr(req->env[i], '=')) != NULL) {
+ *s = '\0';
+ name_len = s - req->env[i];
+ } else {
+ name_len = strlen(req->env[i]);
+ }
+ for (j = 0; j < sizeof(fcgi_mgmt_vars)/sizeof(fcgi_mgmt_vars[0]); j++) {
+ if (strncmp(req->env[i], fcgi_mgmt_vars[j].name, name_len) == 0) {
+ sprintf((char*)p, "%c%c%s%c", name_len, 1, fcgi_mgmt_vars[j].name, fcgi_mgmt_vars[j].val);
+ p += name_len+3;
+ }
+ }
+ }
+ len = p - buf - sizeof(fcgi_header);
+ len += fcgi_make_header((fcgi_header*)buf, FCGI_GET_VALUES_RESULT, 0, len);
+ if (safe_write(req, buf, sizeof(fcgi_header)+len) != (int)sizeof(fcgi_header)+len) {
+ return 0;
+ }
+ return 0;
+ } else {
+ return 0;
+ }
+
+ return 1;
+}
+
+int fcgi_read(fcgi_request *req, char *str, int len)
+{
+ int ret, n, rest;
+ fcgi_header hdr;
+ unsigned char buf[8];
+
+ n = 0;
+ rest = len;
+ while (rest > 0) {
+ if (req->in_len == 0) {
+ if (safe_read(req, &hdr, sizeof(fcgi_header)) != sizeof(fcgi_header) ||
+ hdr.version < FCGI_VERSION_1 ||
+ hdr.type != FCGI_STDIN) {
+ req->keep = 0;
+ return 0;
+ }
+ req->in_len = (hdr.contentLengthB1 << 8) | hdr.contentLengthB0;
+ req->in_pad = hdr.paddingLength;
+ if (req->in_len == 0) {
+ return n;
+ }
+ }
+
+ if (req->in_len >= rest) {
+ ret = safe_read(req, str, rest);
+ } else {
+ ret = safe_read(req, str, req->in_len);
+ }
+ if (ret < 0) {
+ req->keep = 0;
+ return ret;
+ } else if (ret > 0) {
+ req->in_len -= ret;
+ rest -= ret;
+ n += ret;
+ str += ret;
+ if (req->in_len == 0) {
+ if (req->in_pad) {
+ if (safe_read(req, buf, req->in_pad) != req->in_pad) {
+ req->keep = 0;
+ return ret;
+ }
+ }
+ } else {
+ return n;
+ }
+ } else {
+ return n;
+ }
+ }
+ return n;
+}
+
+static inline void fcgi_close(fcgi_request *req, int force, int destroy)
+{
+ if (destroy) {
+ char **env = req->env;
+ while (*env) {
+ free(*env++);
+ }
+ }
+ if ((force || !req->keep) && req->fd >= 0) {
+#ifdef _WIN32
+ HANDLE pipe = (HANDLE)_get_osfhandle(req->fd);
+
+ if (!force) {
+ FlushFileBuffers(pipe);
+ }
+ DisconnectNamedPipe(pipe);
+ if (is_impersonate) {
+ RevertToSelf();
+ }
+#else
+ char buf[8];
+
+ shutdown(req->fd, 1);
+ while (recv(req->fd, buf, sizeof(buf), 0) > 0) {}
+ close(req->fd);
+#endif
+ req->fd = -1;
+ }
+}
+
+int fcgi_accept_request(fcgi_request *req)
+{
+#ifdef _WIN32
+ HANDLE pipe;
+ OVERLAPPED ov;
+#endif
+ fcgi_finish_request(req);
+
+ while (1) {
+ if (req->fd < 0) {
+ while (1) {
+ if (in_shutdown) {
+ return -1;
+ }
+#ifdef _WIN32
+ pipe = (HANDLE)_get_osfhandle(req->listen_socket);
+
+ FCGI_LOCK(req->listen_socket);
+ ov.hEvent = CreateEvent(NULL, TRUE, FALSE, NULL);
+ if (!ConnectNamedPipe(pipe, &ov)) {
+ errno = GetLastError();
+ if (errno == ERROR_IO_PENDING) {
+ while (WaitForSingleObject(ov.hEvent, 1000) == WAIT_TIMEOUT) {
+ if (in_shutdown) {
+ CloseHandle(ov.hEvent);
+ FCGI_UNLOCK(req->listen_socket);
+ return -1;
+ }
+ }
+ } else if (errno != ERROR_PIPE_CONNECTED) {
+ }
+ }
+ CloseHandle(ov.hEvent);
+ if (is_impersonate && !ImpersonateNamedPipeClient(pipe)) {
+ DisconnectNamedPipe(pipe);
+ req->fd = -1;
+ } else {
+ req->fd = req->listen_socket;
+ }
+ FCGI_UNLOCK(req->listen_socket);
+#else
+ {
+ sa_t sa;
+ socklen_t len = sizeof(sa);
+
+ FCGI_LOCK(req->listen_socket);
+ req->fd = accept(req->listen_socket, (struct sockaddr *)&sa, &len);
+ FCGI_UNLOCK(req->listen_socket);
+ }
+#endif
+
+ if (req->fd < 0 && (in_shutdown || errno != EINTR)) {
+ return -1;
+ }
+
+#ifdef _WIN32
+ break;
+#else
+ if (req->fd >= 0) {
+ struct timeval tv = {1,0};
+ fd_set set;
+
+ FD_ZERO(&set);
+ FD_SET(req->fd, &set);
+try_again:
+ errno = 0;
+ if (select(req->fd + 1, &set, NULL, NULL, &tv) >= 0 && FD_ISSET(req->fd, &set)) {
+ break;
+ }
+ if (errno == EINTR) goto try_again;
+ fcgi_close(req, 1, 0);
+ }
+#endif
+ }
+ } else if (in_shutdown) {
+ return -1;
+ }
+ if (fcgi_read_request(req)) {
+ return req->fd;
+ } else {
+ fcgi_close(req, 1, 1);
+ }
+ }
+}
+
+static inline fcgi_header* open_packet(fcgi_request *req, fcgi_request_type type)
+{
+ req->out_hdr = (fcgi_header*) req->out_pos;
+ req->out_hdr->type = type;
+ req->out_pos += sizeof(fcgi_header);
+ return req->out_hdr;
+}
+
+static inline void close_packet(fcgi_request *req)
+{
+ if (req->out_hdr) {
+ int len = req->out_pos - ((unsigned char*)req->out_hdr + sizeof(fcgi_header));
+
+ req->out_pos += fcgi_make_header(req->out_hdr, req->out_hdr->type, req->id, len);
+ req->out_hdr = NULL;
+ }
+}
+
+int fcgi_flush(fcgi_request *req, int close)
+{
+ int len;
+
+ close_packet(req);
+
+ len = req->out_pos - req->out_buf;
+
+ if (close) {
+ fcgi_end_request_rec *rec = (fcgi_end_request_rec*)(req->out_pos);
+
+ fcgi_make_header(&rec->hdr, FCGI_END_REQUEST, req->id, sizeof(fcgi_end_request));
+ rec->body.appStatusB3 = 0;
+ rec->body.appStatusB2 = 0;
+ rec->body.appStatusB1 = 0;
+ rec->body.appStatusB0 = 0;
+ rec->body.protocolStatus = FCGI_REQUEST_COMPLETE;
+ len += sizeof(fcgi_end_request_rec);
+ }
+
+ if (safe_write(req, req->out_buf, len) != len) {
+ req->keep = 0;
+ return 0;
+ }
+
+ req->out_pos = req->out_buf;
+ return 1;
+}
+
+int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len)
+{
+ int limit, rest;
+
+ if (len <= 0) {
+ return 0;
+ }
+
+ if (req->out_hdr && req->out_hdr->type != type) {
+ close_packet(req);
+ }
+#if 0
+ /* Unoptimized, but clear version */
+ rest = len;
+ while (rest > 0) {
+ limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
+
+ if (!req->out_hdr) {
+ if (limit < sizeof(fcgi_header)) {
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ }
+ open_packet(req, type);
+ }
+ limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
+ if (rest < limit) {
+ memcpy(req->out_pos, str, rest);
+ req->out_pos += rest;
+ return len;
+ } else {
+ memcpy(req->out_pos, str, limit);
+ req->out_pos += limit;
+ rest -= limit;
+ str += limit;
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ }
+ }
+#else
+ /* Optimized version */
+ limit = sizeof(req->out_buf) - (req->out_pos - req->out_buf);
+ if (!req->out_hdr) {
+ limit -= sizeof(fcgi_header);
+ if (limit < 0) limit = 0;
+ }
+
+ if (len < limit) {
+ if (!req->out_hdr) {
+ open_packet(req, type);
+ }
+ memcpy(req->out_pos, str, len);
+ req->out_pos += len;
+ } else if (len - limit < sizeof(req->out_buf) - sizeof(fcgi_header)) {
+ if (!req->out_hdr) {
+ open_packet(req, type);
+ }
+ if (limit > 0) {
+ memcpy(req->out_pos, str, limit);
+ req->out_pos += limit;
+ }
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ if (len > limit) {
+ open_packet(req, type);
+ memcpy(req->out_pos, str + limit, len - limit);
+ req->out_pos += len - limit;
+ }
+ } else {
+ int pos = 0;
+ int pad;
+
+ close_packet(req);
+ while ((len - pos) > 0xffff) {
+ open_packet(req, type);
+ fcgi_make_header(req->out_hdr, type, req->id, 0xfff8);
+ req->out_hdr = NULL;
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ if (safe_write(req, str + pos, 0xfff8) != 0xfff8) {
+ req->keep = 0;
+ return -1;
+ }
+ pos += 0xfff8;
+ }
+
+ pad = (((len - pos) + 7) & ~7) - (len - pos);
+ rest = pad ? 8 - pad : 0;
+
+ open_packet(req, type);
+ fcgi_make_header(req->out_hdr, type, req->id, (len - pos) - rest);
+ req->out_hdr = NULL;
+ if (!fcgi_flush(req, 0)) {
+ return -1;
+ }
+ if (safe_write(req, str + pos, (len - pos) - rest) != (len - pos) - rest) {
+ req->keep = 0;
+ return -1;
+ }
+ if (pad) {
+ open_packet(req, type);
+ memcpy(req->out_pos, str + len - rest, rest);
+ req->out_pos += rest;
+ }
+ }
+#endif
+ return len;
+}
+
+int fcgi_finish_request(fcgi_request *req)
+{
+ if (req->fd >= 0) {
+ fcgi_flush(req, 1);
+ fcgi_close(req, 0, 1);
+ }
+ return 1;
+}
+
+char* fcgi_getenv_helper(char** env, const char *name, int len)
+{
+ if (name && env) {
+ while (*env) {
+ if ((strncmp(name, *env, len) == 0) && ((*env)[len] == '=')) {
+ return *env+len+1;
+ }
+ env++;
+ }
+ }
+ return NULL;
+}
+
+char* fcgi_getenv(fcgi_request *req, const char* var, int var_len)
+{
+ if (!req) return NULL;
+ return fcgi_getenv_helper(req->env, var, var_len);
+}
+
+void fcgi_putenv(fcgi_request *req, char* var, int var_len)
+{
+ if (var && req) {
+ char **env = req->env;
+ char *s = strchr(var, '=');
+ int len;
+
+ if (!s) return ;
+ len = s - var + 1;
+ while (*env) {
+ if ((strncmp(var, *env, len) == 0)) {
+ free(*env);
+ *env = fcgi_strndup(var, var_len);
+ return;
+ }
+ env++;
+ }
+ if (env != &req->env[FCGI_MAX_ENV_VARS - 1]) {
+ *env = fcgi_strndup(var, var_len);
+ }
+ }
+}
+
+int FCGX_FPrintF(FCGX_Stream stream, const char *format, ...)
+{
+ int result;
+ va_list args;
+ char buf[4096];
+
+ va_start(args, format);
+ result = vsnprintf(buf, sizeof(buf), format, args);
+ va_end(args);
+
+ fcgi_write(stream.req, stream.type, buf, result);
+ return result;
+}
+
+#ifdef _WIN32
+void OS_SetImpersonate(void)
+{
+ char *os_name;
+
+ os_name = getenv("OS");
+ if (os_name && stricmp(os_name, "Windows_NT") == 0) {
+ is_impersonate = 1;
+ }
+}
+#endif
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: sw=4 ts=4 fdm=marker
+ * vim<600: sw=4 ts=4
+ */
diff --git a/sapi/cgi/fastcgi.h b/sapi/cgi/fastcgi.h
new file mode 100644
index 000000000..2b9265b3a
--- /dev/null
+++ b/sapi/cgi/fastcgi.h
@@ -0,0 +1,185 @@
+/*
+ +----------------------------------------------------------------------+
+ | PHP Version 5 |
+ +----------------------------------------------------------------------+
+ | Copyright (c) 1997-2006 The PHP Group |
+ +----------------------------------------------------------------------+
+ | This source file is subject to version 3.01 of the PHP license, |
+ | that is bundled with this package in the file LICENSE, and is |
+ | available through the world-wide-web at the following url: |
+ | http://www.php.net/license/3_01.txt |
+ | If you did not receive a copy of the PHP license and are unable to |
+ | obtain it through the world-wide-web, please send a note to |
+ | license@php.net so we can mail you a copy immediately. |
+ +----------------------------------------------------------------------+
+ | Authors: Dmitry Stogov <dmitry@zend.com> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $Id: fastcgi.h,v 1.2.2.6 2006/05/25 07:06:04 dmitry Exp $ */
+
+/* FastCGI protocol */
+
+#define FCGI_VERSION_1 1
+
+#define FCGI_MAX_LENGTH 0xffff
+
+#define FCGI_KEEP_CONN 1
+
+#define FCGI_MAX_ENV_VARS 256
+
+typedef enum _fcgi_role {
+ FCGI_RESPONDER = 1,
+ FCGI_AUTHORIZER = 2,
+ FCGI_FILTER = 3
+} fcgi_role;
+
+typedef enum _fcgi_request_type {
+ FCGI_BEGIN_REQUEST = 1, /* [in] */
+ FCGI_ABORT_REQUEST = 2, /* [in] (not supported) */
+ FCGI_END_REQUEST = 3, /* [out] */
+ FCGI_PARAMS = 4, /* [in] environment variables */
+ FCGI_STDIN = 5, /* [in] post data */
+ FCGI_STDOUT = 6, /* [out] response */
+ FCGI_STDERR = 7, /* [out] errors */
+ FCGI_DATA = 8, /* [in] filter data (not supported) */
+ FCGI_GET_VALUES = 9, /* [in] */
+ FCGI_GET_VALUES_RESULT = 10 /* [out] */
+} fcgi_request_type;
+
+typedef enum _fcgi_protocol_status {
+ FCGI_REQUEST_COMPLETE = 0,
+ FCGI_CANT_MPX_CONN = 1,
+ FCGI_OVERLOADED = 2,
+ FCGI_UNKNOWN_ROLE = 3
+} dcgi_protocol_status;
+
+typedef struct _fcgi_header {
+ unsigned char version;
+ unsigned char type;
+ unsigned char requestIdB1;
+ unsigned char requestIdB0;
+ unsigned char contentLengthB1;
+ unsigned char contentLengthB0;
+ unsigned char paddingLength;
+ unsigned char reserved;
+} fcgi_header;
+
+typedef struct _fcgi_begin_request {
+ unsigned char roleB1;
+ unsigned char roleB0;
+ unsigned char flags;
+ unsigned char reserved[5];
+} fcgi_begin_request;
+
+typedef struct _fcgi_begin_request_rec {
+ fcgi_header hdr;
+ fcgi_begin_request body;
+} fcgi_begin_request_rec;
+
+typedef struct _fcgi_end_request {
+ unsigned char appStatusB3;
+ unsigned char appStatusB2;
+ unsigned char appStatusB1;
+ unsigned char appStatusB0;
+ unsigned char protocolStatus;
+ unsigned char reserved[3];
+} fcgi_end_request;
+
+typedef struct _fcgi_end_request_rec {
+ fcgi_header hdr;
+ fcgi_end_request body;
+} fcgi_end_request_rec;
+
+/* FastCGI client API */
+
+typedef struct _fcgi_request {
+ int listen_socket;
+ int fd;
+ int id;
+ int keep;
+
+ int in_len;
+ int in_pad;
+
+ fcgi_header *out_hdr;
+ unsigned char *out_pos;
+ unsigned char out_buf[1024*8];
+ unsigned char reserved[sizeof(fcgi_end_request_rec)];
+
+ char *env[FCGI_MAX_ENV_VARS];
+} fcgi_request;
+
+int fcgi_init(void);
+int fcgi_is_fastcgi(void);
+int fcgi_listen(const char *path, int backlog);
+void fcgi_init_request(fcgi_request *req, int listen_socket);
+int fcgi_accept_request(fcgi_request *req);
+int fcgi_finish_request(fcgi_request *req);
+
+char* fcgi_getenv(fcgi_request *req, const char* var, int var_len);
+void fcgi_putenv(fcgi_request *req, char* var, int var_len);
+
+int fcgi_read(fcgi_request *req, char *str, int len);
+
+int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len);
+int fcgi_flush(fcgi_request *req, int close);
+
+/* Some defines for limited libfcgi comatibility */
+
+typedef struct _FCGX_Stream {
+ fcgi_request *req;
+ fcgi_request_type type;
+} FCGX_Stream;
+
+typedef struct _FCGX_Request {
+ fcgi_request req;
+ FCGX_Stream in;
+ FCGX_Stream out;
+ FCGX_Stream err;
+ char **envp;
+} FCGX_Request;
+
+#define FCGX_Init()
+#define FCGX_IsCGI() (!fcgi_is_fastcgi())
+#define FCGX_OpenSocket(path, backlog) fcgi_listen(path, backlog)
+
+#define FCGX_InitRequest(r, sock, flags) \
+ do { \
+ fcgi_init_request(&(r)->req, sock); \
+ (r)->in.req = &(r)->req; \
+ (r)->out.req = &(r)->req; \
+ (r)->err.req = &(r)->req; \
+ (r)->in.type = FCGI_STDIN; \
+ (r)->out.type = FCGI_STDOUT; \
+ (r)->err.type = FCGI_STDERR; \
+ (r)->envp = (r)->req.env; \
+ } while (0);
+
+
+#define FCGX_Accept_r(r) fcgi_accept_request(&(r)->req)
+#define FCGX_Finish_r(r) fcgi_finish_request(&(r)->req)
+
+#define FCGX_PutStr(str, len, stream) fcgi_write((stream).req, (stream).type, str, len)
+#define FCGX_PutS(str, len, stream) fcgi_write((stream).req, (stream).type, str, len)
+#define FCGX_FFlush(stream) (fcgi_flush((stream).req, 0)?0:-1)
+#define FCGX_GetStr(str, len, stream) fcgi_read((stream).req, str, len)
+
+#define FCGX_GetParam(var, envp) fcgi_getenv_helper(envp, var, strlen(var));
+
+#define FCGX_PutEnv(r, var) fcgi_putenv(&(r)->req, var, strlen(var));
+
+int FCGX_FPrintF(FCGX_Stream stream, const char *format, ...);
+
+/* Internal helper functions. They shouldn't be used directly. */
+
+char* fcgi_getenv_helper(char** env, const char *name, int len);
+
+/*
+ * Local variables:
+ * tab-width: 4
+ * c-basic-offset: 4
+ * End:
+ * vim600: sw=4 ts=4 fdm=marker
+ * vim<600: sw=4 ts=4
+ */
diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
index bf23060b9..c38db2fcc 100644
--- a/sapi/cli/config.m4
+++ b/sapi/cli/config.m4
@@ -1,5 +1,5 @@
dnl
-dnl $Id: config.m4,v 1.22 2005/07/07 05:54:43 dmitry Exp $
+dnl $Id: config.m4,v 1.22.2.1 2006/02/02 09:59:23 dmitry Exp $
dnl
AC_MSG_CHECKING(for CLI build)
@@ -20,7 +20,7 @@ if test "$PHP_SAPI_CLI" != "no"; then
case $host_alias in
*aix*)
- BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/.libs\/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
+ BUILD_CLI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_CLI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
;;
*darwin*)
BUILD_CLI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_CLI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CLI_PATH)"
diff --git a/sapi/cli/php.1.in b/sapi/cli/php.1.in
index dd959e7e4..4c86dec40 100644
--- a/sapi/cli/php.1.in
+++ b/sapi/cli/php.1.in
@@ -46,7 +46,7 @@ php \- PHP Command Line Interface 'CLI'
.SH DESCRIPTION
\fBPHP\fP is a widely\-used general\-purpose scripting language that is especially suited for
Web development and can be embedded into HTML. This is the command line interface
-that enables you to the following:
+that enables you to do the following:
.P
You can parse and execute files by using parameter \-f followed by the name of the
.IR file
diff --git a/sapi/cli/php_cli.c b/sapi/cli/php_cli.c
index e105bd70e..262d1d6ab 100644
--- a/sapi/cli/php_cli.c
+++ b/sapi/cli/php_cli.c
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_cli.c,v 1.129.2.10 2006/01/01 12:50:19 sniper Exp $ */
+/* $Id: php_cli.c,v 1.129.2.14 2006/05/11 22:11:17 dmitry Exp $ */
#include "php.h"
#include "php_globals.h"
@@ -434,10 +434,12 @@ static void php_cli_usage(char *argv0)
" args... Arguments passed to script. Use -- args when first argument\n"
" starts with - or script is read from stdin\n"
"\n"
+#if (HAVE_REFLECTION)
" --rf <name> Show information about function <name>.\n"
" --rc <name> Show information about class <name>.\n"
" --re <name> Show information about extension <name>.\n"
"\n"
+#endif
, prog, prog, prog, prog, prog, prog);
}
/* }}} */
@@ -706,6 +708,7 @@ int main(int argc, char *argv[])
INI_HARDCODED("implicit_flush", "1");
INI_HARDCODED("output_buffering", "0");
INI_HARDCODED("max_execution_time", "0");
+ INI_HARDCODED("max_input_time", "-1");
while ((c = php_getopt(argc, argv, OPTIONS, &php_optarg, &php_optind, 0)) != -1) {
switch (c) {
@@ -747,14 +750,23 @@ int main(int argc, char *argv[])
goto out;
case 'v': /* show php version & quit */
- if (php_request_startup(TSRMLS_C)==FAILURE) {
+ if (php_request_startup(TSRMLS_C) == FAILURE) {
goto err;
}
-#if ZEND_DEBUG
- php_printf("PHP %s (%s) (built: %s %s) (DEBUG)\nCopyright (c) 1997-2006 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+
+ php_printf("PHP %s (%s) (built: %s %s) %s\nCopyright (c) 1997-2006 The PHP Group\n%s",
+ PHP_VERSION, sapi_module.name, __DATE__, __TIME__,
+#if ZEND_DEBUG && defined(HAVE_GCOV)
+ "(DEBUG GCOV)",
+#elif ZEND_DEBUG
+ "(DEBUG)",
+#elif defined(HAVE_GCOV)
+ "(GCOV)",
#else
- php_printf("PHP %s (%s) (built: %s %s)\nCopyright (c) 1997-2006 The PHP Group\n%s", PHP_VERSION, sapi_module.name, __DATE__, __TIME__, get_zend_version());
+ "",
#endif
+ get_zend_version()
+ );
php_end_ob_buffers(1 TSRMLS_CC);
exit_status=0;
goto out;
@@ -774,7 +786,11 @@ int main(int argc, char *argv[])
case 'a': /* interactive mode */
if (!interactive) {
+#if (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
+ printf("Interactive shell\n\n");
+#else
printf("Interactive mode enabled\n\n");
+#endif
fflush(stdout);
interactive=1;
}
diff --git a/sapi/isapi/php5isapi.c b/sapi/isapi/php5isapi.c
index 23c644325..da3615359 100644
--- a/sapi/isapi/php5isapi.c
+++ b/sapi/isapi/php5isapi.c
@@ -16,7 +16,7 @@
| Ben Mansell <ben@zeus.com> (Zeus Support) |
+----------------------------------------------------------------------+
*/
-/* $Id: php5isapi.c,v 1.8.2.1 2006/01/01 12:50:19 sniper Exp $ */
+/* $Id: php5isapi.c,v 1.8.2.2 2006/02/15 11:15:32 tony2001 Exp $ */
#include "php.h"
#include <httpext.h>
@@ -279,14 +279,18 @@ static int sapi_isapi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
break;
default: {
const char *sline = SG(sapi_headers).http_status_line;
-
- status_buf = emalloc(MAX_STATUS_LENGTH + 1);
+ int sline_len;
/* httpd requires that r->status_line is set to the first digit of
* the status-code: */
- if (sline && strlen(sline) > 12 && strncmp(sline, "HTTP/1.", 7) == 0 && sline[8] == ' ') {
- status_buf = estrndup(sline + 9, MAX_STATUS_LENGTH);
+ if (sline && ((sline_len = strlen(sline)) > 12) && strncmp(sline, "HTTP/1.", 7) == 0 && sline[8] == ' ') {
+ if ((sline_len - 9) > MAX_STATUS_LENGTH) {
+ status_buf = estrndup(sline + 9, MAX_STATUS_LENGTH);
+ } else {
+ status_buf = estrndup(sline + 9, sline_len - 9);
+ }
} else {
+ status_buf = emalloc(MAX_STATUS_LENGTH + 1);
snprintf(status_buf, MAX_STATUS_LENGTH, "%d Undescribed", SG(sapi_headers).http_response_code);
}
header_info.pszStatus = status_buf;
@@ -302,9 +306,9 @@ static int sapi_isapi_send_headers(sapi_headers_struct *sapi_headers TSRMLS_DC)
lpECB->ServerSupportFunction(lpECB->ConnID, HSE_REQ_SEND_RESPONSE_HEADER_EX, &header_info, NULL, NULL);
efree(combined_headers);
- if (status_buf) {
+ if (status_buf) {
efree(status_buf);
- }
+ }
return SAPI_HEADER_SENT_SUCCESSFULLY;
}
diff --git a/sapi/webjames/webjames.c b/sapi/webjames/webjames.c
index a9e82ab98..3068d8fcc 100644
--- a/sapi/webjames/webjames.c
+++ b/sapi/webjames/webjames.c
@@ -27,7 +27,7 @@
#include <unixlib/local.h>
-#define WEBJAMES_SAPI_VERSION "1.0.0"
+#define WEBJAMES_SAPI_VERSION "1.0.1"
typedef struct {
struct connection *conn; /*structure holding all the details of the current request*/
@@ -96,6 +96,7 @@ static char *sapi_webjames_read_cookies(TSRMLS_D)
static void sapi_webjames_register_variables(zval *track_vars_array TSRMLS_DC)
{
char buf[BUF_SIZE + 1];
+ char *docroot;
buf[BUF_SIZE] = '\0';
@@ -105,7 +106,9 @@ static void sapi_webjames_register_variables(zval *track_vars_array TSRMLS_DC)
ADD_NUM("SERVER_PORT", port);
ADD_STRING("SERVER_ADMIN",configuration.webmaster);
ADD_STRING("GATEWAY_INTERFACE", "CGI/1.1");
- ADD_STRING("DOCUMENT_ROOT", configuration.site);
+
+ docroot = __unixify(WG(conn)->homedir,0,NULL,1024,0);
+ if (docroot) ADD_STRING("DOCUMENT_ROOT", docroot);
ADD_FIELD("REQUEST_METHOD", methodstr);
ADD_FIELD("REQUEST_URI", requesturi);
@@ -147,7 +150,7 @@ static void webjames_module_main(TSRMLS_D)
char *path;
/* Convert filename to Unix format*/
- __riscosify_control|=__RISCOSIFY_DONT_CHECK_DIR;
+ __riscosify_control|=__RISCOSIFY_STRICT_UNIX_SPECS;
path = __unixify(WG(conn)->filename,0,NULL,1024,0);
if (path) SG(request_info).path_translated = estrdup(path);
diff --git a/scripts/phpize.m4 b/scripts/phpize.m4
index 62618f7ee..384d44cd9 100644
--- a/scripts/phpize.m4
+++ b/scripts/phpize.m4
@@ -59,7 +59,7 @@ AC_ARG_WITH(libdir,
[PHP_LIBDIR=$withval], [PHP_LIBDIR=lib])
PHP_RUNPATH_SWITCH
-PHP_SHLIB_SUFFIX_NAME
+PHP_SHLIB_SUFFIX_NAMES
PHP_WITH_PHP_CONFIG
PHP_BUILD_SHARED
diff --git a/server-tests.php b/server-tests.php
index 7adc433d5..d8ae377dc 100755
--- a/server-tests.php
+++ b/server-tests.php
@@ -98,14 +98,6 @@ define('PHP_INI_SETTINGS_SCRIPT','<?php echo serialize(ini_get_all()); ?>');
* various utility functions
*/
-function save_to_file($filename,$text)
-{
- $fp = @fopen($filename,'w')
- or die("Cannot open file '" . $filename . "' (save_to_file)");
- fwrite($fp,$text);
- fclose($fp);
-}
-
function settings2array($settings, &$ini_settings)
{
foreach($settings as $setting) {
@@ -578,7 +570,7 @@ class testHarness {
$tmp_file = "$cwd$pi";
$pi = substr($cwd,strlen($this->conf['TEST_BASE_PATH'])) . $pi;
$url = $this->conf['TEST_WEB_BASE_URL'] . $pi;
- save_to_file($tmp_file,$script);
+ file_put_contents($tmp_file,$script);
$fd = fopen($url, "rb");
$out = '';
if ($fd) {
@@ -1285,7 +1277,7 @@ class testHarness {
}
// We've satisfied the preconditions - run the test!
- save_to_file($tmp_file,$section_text['FILE']);
+ file_put_contents($tmp_file,$section_text['FILE']);
$post = NULL;
$args = "";
@@ -1507,25 +1499,25 @@ class testHarness {
// write .exp
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'E') !== FALSE) {
$logname = ereg_replace('\.phpt$','.exp',$file);
- save_to_file($logname,$wanted);
+ file_put_contents($logname,$wanted);
}
// write .out
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'O') !== FALSE) {
$logname = ereg_replace('\.phpt$','.out',$file);
- save_to_file($logname,$output);
+ file_put_contents($logname,$output);
}
// write .diff
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'D') !== FALSE) {
$logname = ereg_replace('\.phpt$','.diff',$file);
- save_to_file($logname,generate_diff($wanted,$output));
+ file_put_contents($logname,generate_diff($wanted,$output));
}
// write .log
if (strpos($this->conf['TEST_PHP_LOG_FORMAT'],'L') !== FALSE) {
$logname = ereg_replace('\.phpt$','.log',$file);
- save_to_file($logname,
+ file_put_contents($logname,
"\n---- EXPECTED OUTPUT\n$wanted\n".
"---- ACTUAL OUTPUT\n$output\n".
"---- FAILED\n");
diff --git a/tests/basic/013.phpt b/tests/basic/013.phpt
new file mode 100644
index 000000000..a4155dcf6
--- /dev/null
+++ b/tests/basic/013.phpt
@@ -0,0 +1,15 @@
+--TEST--
+POST Method test and arrays
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[]=1
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(1) {
+ [0]=>
+ string(1) "1"
+}
diff --git a/tests/basic/014.phpt b/tests/basic/014.phpt
new file mode 100644
index 000000000..9b7e59f98
--- /dev/null
+++ b/tests/basic/014.phpt
@@ -0,0 +1,17 @@
+--TEST--
+POST Method test and arrays - 2
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[]=1&a[]=1
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ string(1) "1"
+ [1]=>
+ string(1) "1"
+}
diff --git a/tests/basic/015.phpt b/tests/basic/015.phpt
new file mode 100644
index 000000000..b297265bb
--- /dev/null
+++ b/tests/basic/015.phpt
@@ -0,0 +1,15 @@
+--TEST--
+POST Method test and arrays - 3
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[]=1&a[0]=5
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(1) {
+ [0]=>
+ string(1) "5"
+}
diff --git a/tests/basic/016.phpt b/tests/basic/016.phpt
new file mode 100644
index 000000000..277253168
--- /dev/null
+++ b/tests/basic/016.phpt
@@ -0,0 +1,17 @@
+--TEST--
+POST Method test and arrays - 4
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[a]=1&a[b]=3
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(2) {
+ ["a"]=>
+ string(1) "1"
+ ["b"]=>
+ string(1) "3"
+}
diff --git a/tests/basic/017.phpt b/tests/basic/017.phpt
new file mode 100644
index 000000000..69424caa6
--- /dev/null
+++ b/tests/basic/017.phpt
@@ -0,0 +1,19 @@
+--TEST--
+POST Method test and arrays - 5
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[]=1&a[a]=1&a[b]=3
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ string(1) "1"
+ ["a"]=>
+ string(1) "1"
+ ["b"]=>
+ string(1) "3"
+}
diff --git a/tests/basic/018.phpt b/tests/basic/018.phpt
new file mode 100644
index 000000000..5cae5e8a6
--- /dev/null
+++ b/tests/basic/018.phpt
@@ -0,0 +1,36 @@
+--TEST--
+POST Method test and arrays - 6
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[][]=1&a[][]=3&b[a][b][c]=1&b[a][b][d]=1
+--FILE--
+<?php
+var_dump($_POST['a']);
+var_dump($_POST['b']);
+?>
+--EXPECT--
+array(2) {
+ [0]=>
+ array(1) {
+ [0]=>
+ string(1) "1"
+ }
+ [1]=>
+ array(1) {
+ [0]=>
+ string(1) "3"
+ }
+}
+array(1) {
+ ["a"]=>
+ array(1) {
+ ["b"]=>
+ array(2) {
+ ["c"]=>
+ string(1) "1"
+ ["d"]=>
+ string(1) "1"
+ }
+ }
+}
diff --git a/tests/basic/019.phpt b/tests/basic/019.phpt
new file mode 100644
index 000000000..467d4e6bf
--- /dev/null
+++ b/tests/basic/019.phpt
@@ -0,0 +1,19 @@
+--TEST--
+POST Method test and arrays - 7
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[]=1&a[]]=3&a[[]=4
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(3) {
+ [0]=>
+ string(1) "1"
+ [1]=>
+ string(1) "3"
+ ["["]=>
+ string(1) "4"
+}
diff --git a/tests/basic/020.phpt b/tests/basic/020.phpt
new file mode 100644
index 000000000..0d4704e7f
--- /dev/null
+++ b/tests/basic/020.phpt
@@ -0,0 +1,17 @@
+--TEST--
+POST Method test and arrays - 8
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') echo 'skip'; ?>
+--POST--
+a[a[]]=1&a[b[]]=3
+--FILE--
+<?php
+var_dump($_POST['a']);
+?>
+--EXPECT--
+array(2) {
+ ["a["]=>
+ string(1) "1"
+ ["b["]=>
+ string(1) "3"
+}
diff --git a/tests/basic/021.phpt b/tests/basic/021.phpt
new file mode 100644
index 000000000..d8f7c1c0e
--- /dev/null
+++ b/tests/basic/021.phpt
@@ -0,0 +1,42 @@
+--TEST--
+Bug #37276 (problems witch $_POST array)
+--SKIPIF--
+<?php if (php_sapi_name()=='cli') die('skip'); ?>
+--POST_RAW--
+Content-Type: multipart/form-data; boundary=---------------------------20896060251896012921717172737
+-----------------------------20896060251896012921717172737
+Content-Disposition: form-data; name="submitter"
+
+testname
+-----------------------------20896060251896012921717172737
+Content-Disposition: form-data; name="pics"; filename="bug37276.txt"
+Content-Type: text/plain
+
+bug37276
+
+-----------------------------20896060251896012921717172737--
+--FILE--
+<?php
+var_dump($_FILES);
+var_dump($_POST);
+?>
+--EXPECTF--
+array(1) {
+ ["pics"]=>
+ array(5) {
+ ["name"]=>
+ string(12) "bug37276.txt"
+ ["type"]=>
+ string(10) "text/plain"
+ ["tmp_name"]=>
+ string(%d) "%s"
+ ["error"]=>
+ int(0)
+ ["size"]=>
+ int(9)
+ }
+}
+array(1) {
+ ["submitter"]=>
+ string(8) "testname"
+}
diff --git a/win32/build/config.w32 b/win32/build/config.w32
index 8b8bdb449..bc865cbce 100644
--- a/win32/build/config.w32
+++ b/win32/build/config.w32
@@ -1,5 +1,5 @@
// vim:ft=javascript
-// $Id: config.w32,v 1.40.2.6 2005/12/14 02:01:13 wez Exp $
+// $Id: config.w32,v 1.40.2.8 2006/04/29 14:33:46 fmk Exp $
// "Master" config file; think of it as a configure.in
// equivalent.
diff --git a/win32/build/config.w32.h.in b/win32/build/config.w32.h.in
index 23cd5eb62..e7d2218f2 100644
--- a/win32/build/config.w32.h.in
+++ b/win32/build/config.w32.h.in
@@ -1,6 +1,6 @@
/*
Build Configuration Template for Win32.
- $Id: config.w32.h.in,v 1.7.2.2 2005/12/14 02:01:13 wez Exp $
+ $Id: config.w32.h.in,v 1.7.2.4 2006/03/14 14:19:00 dmitry Exp $
*/
/* Default PHP / PEAR directories */
@@ -107,11 +107,16 @@
#undef HAVE_SYS_WAIT_H
#define HAVE_SYSLOG_H 1
#undef HAVE_UNISTD_H
-#define HAVE_LIBDL 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_STDARG_H 1
+#undef HAVE_ALLOCA_H
+#undef HAVE_KILL
+#define HAVE_GETPID 1
#define HAVE_LIBM 1
#define HAVE_CUSERID 0
#undef HAVE_RINT
#define HAVE_STRFTIME 1
+#define SIZEOF_SHORT 2
/* int and long are stll 32bit in 64bit compiles */
#define SIZEOF_INT 4
#define SIZEOF_LONG 4
diff --git a/win32/build/template.rc b/win32/build/template.rc
index f03575448..b97af82d9 100644
--- a/win32/build/template.rc
+++ b/win32/build/template.rc
@@ -1,5 +1,5 @@
/* This is a template RC file.
- * $Id: template.rc,v 1.7 2005/08/03 14:08:58 sniper Exp $
+ * $Id: template.rc,v 1.7.2.2 2006/02/08 21:09:18 johannes Exp $
* Do not edit with MSVC */
#ifdef APSTUDIO_INVOKED
# error dont edit with MSVC
@@ -47,7 +47,7 @@ BEGIN
VALUE "FileDescription", FILE_DESCRIPTION "\0"
VALUE "FileVersion", STRVER4(PHP_MAJOR_VERSION, PHP_MINOR_VERSION, PHP_RELEASE_VERSION, PHP_RELEASE_VERSION)
VALUE "InternalName", FILE_NAME "\0"
- VALUE "LegalCopyright", "Copyright © 1997-2005 The PHP Group\0"
+ VALUE "LegalCopyright", "Copyright © 1997-2006 The PHP Group\0"
VALUE "LegalTrademarks", "PHP\0"
VALUE "OriginalFilename", FILE_NAME "\0"
VALUE "PrivateBuild", "\0"
diff --git a/win32/php5dllts.dsp b/win32/php5dllts.dsp
index 745d800f4..ccb8def8e 100644
--- a/win32/php5dllts.dsp
+++ b/win32/php5dllts.dsp
@@ -213,6 +213,10 @@ SOURCE=..\main\php_scandir.c
# End Source File
# Begin Source File
+SOURCE=..\main\php_sprintf.c
+# End Source File
+# Begin Source File
+
SOURCE=..\main\php_ticks.c
# End Source File
# Begin Source File
@@ -388,28 +392,83 @@ SOURCE=..\main\win95nt.h
# PROP Default_Filter ".c"
# Begin Source File
-SOURCE=..\ext\pcre\pcrelib\chartables.c
-# ADD CPP /D "STATIC" /D "SUPPORT_UTF8"
+SOURCE=..\ext\pcre\pcrelib\pcre_chartables.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_compile.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_exec.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_fullinfo.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_get.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_globals.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_info.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
# End Source File
# Begin Source File
-SOURCE=..\ext\pcre\pcrelib\get.c
-# ADD CPP /D "STATIC" /D "SUPPORT_UTF8" /D LINK_SIZE=2
+SOURCE=..\ext\pcre\pcrelib\pcre_maketables.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
# End Source File
# Begin Source File
-SOURCE=..\ext\pcre\pcrelib\maketables.c
-# ADD CPP /D "STATIC" /D "SUPPORT_UTF8" /D LINK_SIZE=2
+SOURCE=..\ext\pcre\pcrelib\pcre_ord2utf8.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
# End Source File
# Begin Source File
-SOURCE=..\ext\pcre\pcrelib\pcre.c
-# ADD CPP /D "STATIC" /D "SUPPORT_UTF8" /D LINK_SIZE=2
+SOURCE=..\ext\pcre\pcrelib\pcre_study.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
# End Source File
# Begin Source File
-SOURCE=..\ext\pcre\pcrelib\study.c
-# ADD CPP /D "STATIC" /D "SUPPORT_UTF8" /D LINK_SIZE=2
+SOURCE=..\ext\pcre\pcrelib\pcre_tables.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_try_flipped.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_ucp_searchfuncs.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_valid_utf8.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_version.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\pcre\pcrelib\pcre_xclass.c
+# ADD CPP /D "SUPPORT_UTF8" /D LINK_SIZE=2 /D MATCH_LIMIT=10000000 /D MATCH_LIMIT_RECURSION=10000000 /D NEWLINE=10 /D "SUPPORT_UCP"
# End Source File
# End Group
# Begin Group "Header Files No. 3"
@@ -705,58 +764,6 @@ SOURCE=..\ext\ftp\php_ftp.h
# End Source File
# End Group
# End Group
-# Begin Group "Calendar"
-
-# PROP Default_Filter ""
-# Begin Group "Source Files No. 7"
-
-# PROP Default_Filter ".c"
-# Begin Source File
-
-SOURCE=..\ext\calendar\cal_unix.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\calendar.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\dow.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\easter.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\french.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\gregor.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\jewish.c
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\julian.c
-# End Source File
-# End Group
-# Begin Group "Header Files No. 7"
-
-# PROP Default_Filter ".h"
-# Begin Source File
-
-SOURCE=..\ext\calendar\php_calendar.h
-# End Source File
-# Begin Source File
-
-SOURCE=..\ext\calendar\sdncal.h
-# End Source File
-# End Group
-# End Group
# Begin Group "bcmath"
# PROP Default_Filter ""
@@ -1753,10 +1760,6 @@ SOURCE=..\ext\standard\strnatcmp.c
# End Source File
# Begin Source File
-SOURCE=..\ext\standard\sunfuncs.c
-# End Source File
-# Begin Source File
-
SOURCE=..\ext\standard\syslog.c
# End Source File
# Begin Source File
@@ -2023,6 +2026,302 @@ SOURCE=..\ext\libxml\libxml.c
# End Source File
# End Group
# End Group
+# Begin Group "Date"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 10"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\date\lib\astro.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\dow.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\parse_date.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\parse_tz.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\php_date.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\timelib.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\tm2unixtime.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\unixtime2tm.c
+# End Source File
+# End Group
+# Begin Group "Header Files No. 7"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\date\lib\astro.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\fallbackmap.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\php_date.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\timelib_config.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\timelib_structs.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\timezonedb.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\date\lib\timezonemap.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "Calendar"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 7"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\calendar\cal_unix.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\calendar.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\dow.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\easter.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\french.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\gregor.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\jewish.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\julian.c
+# PROP Intermediate_Dir "calendar"
+# End Source File
+# End Group
+# Begin Group "Header Files No. 11"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\calendar\php_calendar.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\calendar\sdncal.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "SPL"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 11"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\spl\php_spl.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_array.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_directory.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_engine.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_exceptions.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_functions.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_iterators.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_observer.c
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_sxe.c
+# End Source File
+# End Group
+# Begin Group "Header Files No. 12"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\spl\php_spl.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_array.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_directory.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_engine.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_exceptions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_functions.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_iterators.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_observer.h
+# End Source File
+# Begin Source File
+
+SOURCE=..\ext\spl\spl_sxe.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "Reflection"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 12"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\reflection\php_reflection.c
+# End Source File
+# End Group
+# Begin Group "Header Files No. 13"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\reflection\php_reflection.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "XMLReader"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 13"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\xmlreader\php_xmlreader.c
+# End Source File
+# End Group
+# Begin Group "Header Files No. 14"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\xmlreader\php_xmlreader.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "XMLwriter"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 14"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\xmlwriter\php_xmlwriter.c
+# End Source File
+# End Group
+# Begin Group "Header Files No. 15"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\xmlwriter\php_xmlwriter.h
+# End Source File
+# End Group
+# End Group
+# Begin Group "IConv"
+
+# PROP Default_Filter ""
+# Begin Group "Source Files No. 15"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\iconv\iconv.c
+# ADD CPP /D "PHP_ICONV_EXPORTS"
+# End Source File
+# End Group
+# Begin Group "Header Files No. 16"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE=..\ext\iconv\php_iconv.h
+# End Source File
+# End Group
+# End Group
# End Group
# Begin Group "Win32"
@@ -2082,6 +2381,21 @@ SOURCE=..\win32\winutil.c
SOURCE=..\win32\wsyslog.c
# End Source File
+# Begin Source File
+
+SOURCE=.\build\wsyslog.mc
+
+# Begin Custom Build
+InputDir=.\build
+IntDir=.\Release_TSDbg
+InputPath=.\build\wsyslog.mc
+
+"wsyslog.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ mc -h $(InputDir)/.. -r $(InputDir) -x $(IntDir) $(InputPath)
+
+# End Custom Build
+
+# End Source File
# End Group
# Begin Group "Header Files No. 2"
diff --git a/win32/select.c b/win32/select.c
index 69e45096c..39c0d96fd 100644
--- a/win32/select.c
+++ b/win32/select.c
@@ -21,7 +21,7 @@
#ifdef PHP_WIN32
-/* $Id: select.c,v 1.10.2.1 2006/01/01 12:50:20 sniper Exp $ */
+/* $Id: select.c,v 1.10.2.2 2006/02/26 10:49:50 helly Exp $ */
/* Win32 select() will only work with sockets, so we roll our own implementation here.
* - If you supply only sockets, this simply passes through to winsock select().
@@ -67,13 +67,13 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru
if ((DWORD)handles[n_handles] == 0xffffffff) {
/* socket */
if (SAFE_FD_ISSET(i, rfds)) {
- FD_SET(i, &sock_read);
+ FD_SET((uint)i, &sock_read);
}
if (SAFE_FD_ISSET(i, wfds)) {
- FD_SET(i, &sock_write);
+ FD_SET((uint)i, &sock_write);
}
if (SAFE_FD_ISSET(i, efds)) {
- FD_SET(i, &sock_except);
+ FD_SET((uint)i, &sock_except);
}
if (i > sock_max_fd) {
sock_max_fd = i;
@@ -136,13 +136,13 @@ PHPAPI int php_select(int max_fd, fd_set *rfds, fd_set *wfds, fd_set *efds, stru
for (i = 0; i < n_handles; i++) {
if (WAIT_OBJECT_0 == WaitForSingleObject(handles[i], 0)) {
if (SAFE_FD_ISSET(handle_slot_to_fd[i], rfds)) {
- FD_SET(handle_slot_to_fd[i], &aread);
+ FD_SET((uint)handle_slot_to_fd[i], &aread);
}
if (SAFE_FD_ISSET(handle_slot_to_fd[i], wfds)) {
- FD_SET(handle_slot_to_fd[i], &awrite);
+ FD_SET((uint)handle_slot_to_fd[i], &awrite);
}
if (SAFE_FD_ISSET(handle_slot_to_fd[i], efds)) {
- FD_SET(handle_slot_to_fd[i], &aexcept);
+ FD_SET((uint)handle_slot_to_fd[i], &aexcept);
}
retcode++;
}
diff --git a/win32/sendmail.c b/win32/sendmail.c
index c487facea..23c33725e 100644
--- a/win32/sendmail.c
+++ b/win32/sendmail.c
@@ -17,7 +17,7 @@
*
*/
-/* $Id: sendmail.c,v 1.65.2.1 2006/01/06 02:04:33 sniper Exp $ */
+/* $Id: sendmail.c,v 1.65.2.2 2006/02/08 21:03:36 johannes Exp $ */
#include "php.h" /*php specific */
#include <stdio.h>
@@ -85,9 +85,9 @@ char LocalHost[HOST_NAME_LEN];
#endif
char seps[] = " ,\t\n";
#ifndef NETWARE
-char *php_mailer = "PHP 4 WIN32";
+char *php_mailer = "PHP 5 WIN32";
#else
-char *php_mailer = "PHP 4 NetWare";
+char *php_mailer = "PHP 5 NetWare";
#endif /* NETWARE */
/* Error messages */
diff --git a/win32/wsyslog.c b/win32/wsyslog.c
index 294b3976c..4266079e1 100644
--- a/win32/wsyslog.c
+++ b/win32/wsyslog.c
@@ -62,9 +62,14 @@
void closelog(void)
{
TSRMLS_FETCH();
- DeregisterEventSource(PW32G(log_source));
- STR_FREE(PW32G(log_header));
- PW32G(log_header) = NULL;
+ if (PW32G(log_source)) {
+ DeregisterEventSource(PW32G(log_source));
+ PW32G(log_source) = NULL;
+ }
+ if (PW32G(log_header)) {
+ STR_FREE(PW32G(log_header));
+ PW32G(log_header) = NULL;
+ }
}
/* Emulator for BSD syslog() routine