summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavey Shafik <me@daveyshafik.com>2016-11-30 15:05:54 -0800
committerDavey Shafik <me@daveyshafik.com>2016-11-30 15:05:54 -0800
commitbe556555cc4f41798a880fde52920f0b29518fd7 (patch)
tree03a75f73c5ea6da5989f4aeca3078fc64ade1020
parent9efea0c23eb0bd8f92c97cc39954fd3cdb366e8b (diff)
parente89a0535a3d8f2a09e3b28c3e70d7181819d6ec5 (diff)
downloadphp-git-be556555cc4f41798a880fde52920f0b29518fd7.tar.gz
Merge branch 'PHP-7.1' into PHP-7.1.0
* PHP-7.1: (64 commits) Update NEWS for the build Fixed bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on). Fixed calling generators through magic __call() add NEWS Fix #73549: Use after free when stream is passed to imagepng Update UPGRADING with info about AEAD changes in openssl_(en|de)crypt Do not add extra timeval entropy when OpenSSL 1.1 used Clean up and fix php_openssl_dh_pub_from_priv Fix occasionaly failing test Added missing array key to $JUNIT acinclude.m4: fix krb5-config detection and usage in PHP_SETUP_KERBEROS. Add more mbfl string size checks (bug #73505) Add more mbfl string size checks (bug #73505) Fix #73612: preg_*() may leak memory Fix more size_t/int implicit conversions Fix int/size_t confusion in isValidPharFilename (bug #73580) Fix more size_t/int implicit conversions Fix #73582: Failing ext/gd/tests/imagettftext_charmap_order.phpt Fix int/size_t confusion in isValidPharFilename (bug #73580) add test for bug #57547 ...
-rw-r--r--UPGRADING2
-rw-r--r--Zend/tests/generators/generator_trampoline.phpt24
-rw-r--r--Zend/zend_compile.c6
-rw-r--r--Zend/zend_execute.c18
-rw-r--r--Zend/zend_hash.h10
-rw-r--r--Zend/zend_ini_parser.y2
-rw-r--r--Zend/zend_ini_scanner.c3852
-rw-r--r--Zend/zend_ini_scanner_defs.h2
-rw-r--r--Zend/zend_object_handlers.c2
-rw-r--r--Zend/zend_portability.h2
-rw-r--r--Zend/zend_vm_def.h22
-rw-r--r--Zend/zend_vm_execute.h84
-rw-r--r--acinclude.m42
-rw-r--r--ext/date/lib/timezonedb.h1015
-rw-r--r--ext/fileinfo/tests/bug57547.phpt27
-rw-r--r--ext/gd/gd.c6
-rw-r--r--ext/gd/gd_ctx.c18
-rw-r--r--ext/gd/tests/bug73549.phpt22
-rw-r--r--ext/gd/tests/imagettftext_charmap_order.phpt1
-rw-r--r--ext/intl/grapheme/grapheme_string.c78
-rw-r--r--ext/intl/locale/locale_methods.c2
-rw-r--r--ext/intl/tests/bug68447.phpt28
-rw-r--r--ext/json/json.c6
-rw-r--r--ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c28
-rw-r--r--ext/mbstring/mbstring.c4
-rw-r--r--ext/mcrypt/mcrypt.c4
-rw-r--r--ext/opcache/Optimizer/compact_literals.c2
-rw-r--r--ext/opcache/ZendAccelerator.c4
-rw-r--r--ext/opcache/tests/bug73583.phpt19
-rw-r--r--ext/openssl/openssl.c50
-rw-r--r--ext/openssl/tests/bug73478.phpt25
-rw-r--r--ext/openssl/tests/openssl_pkey_new_basic.phpt8
-rw-r--r--ext/pcre/php_pcre.c10
-rw-r--r--ext/pcre/tests/bug73612.phpt27
-rw-r--r--ext/pdo/pdo_stmt.c2
-rw-r--r--ext/pgsql/pgsql.c4
-rw-r--r--ext/pgsql/tests/01createdb.phpt3
-rw-r--r--ext/pgsql/tests/06_bug73498.phpt20
-rw-r--r--ext/pgsql/tests/9999dropdb.phpt1
-rw-r--r--ext/pgsql/tests/config.inc4
-rw-r--r--ext/phar/phar_object.c219
-rw-r--r--ext/session/mod_files.c4
-rw-r--r--ext/snmp/snmp.c4
-rw-r--r--ext/soap/soap.c6
-rw-r--r--ext/soap/tests/bug73452.phpt17
-rw-r--r--ext/soap/tests/bugs/bug73538.phpt35
-rw-r--r--ext/sockets/sockets.c2
-rw-r--r--ext/spl/tests/observer_010.phpt15
-rw-r--r--ext/standard/string.c2
-rw-r--r--ext/standard/tests/filters/bug73586.phpt45
-rw-r--r--ext/standard/url.c133
-rw-r--r--ext/standard/user_filters.c2
-rw-r--r--ext/xml/xml.c2
-rw-r--r--php.ini-development6
-rw-r--r--php.ini-production6
-rwxr-xr-xrun-tests.php1
-rw-r--r--sapi/fpm/fpm/fpm_log.c2
-rw-r--r--sapi/fpm/fpm/fpm_main.c4
-rw-r--r--sapi/fpm/fpm/fpm_signals.c2
-rw-r--r--sapi/fpm/fpm/zlog.c5
-rw-r--r--sapi/phpdbg/phpdbg.c3
-rw-r--r--sapi/phpdbg/phpdbg.h2
-rw-r--r--sapi/phpdbg/phpdbg_io.c10
-rw-r--r--sapi/phpdbg/phpdbg_sigsafe.c4
-rw-r--r--tests/lang/operators/overloaded_property_ref.phpt20
-rw-r--r--win32/build/libs_version.txt4
66 files changed, 3294 insertions, 2707 deletions
diff --git a/UPGRADING b/UPGRADING
index 56c5bdc236..5d9864e5b0 100644
--- a/UPGRADING
+++ b/UPGRADING
@@ -206,6 +206,8 @@ PHP 7.1 UPGRADE NOTES
disables escaping of U+2028 and U+2029 characters when
JSON_UNESCAPED_UNICODE is supplied.
- long2ip() accepts integer as parameter now
+- openssl_encrypt and openssl_decrypt have extra parameters for handling
+ authenticated encryption (tag, aad, tag_length) and decryption (tag, aad).
- pg_last_notice() accepts optional long parameter to specify operation.
PGSQL_NOTICE_LAST - Get last notice (Default)
PGSQL_NOTICE_ALL - Get all stored notices
diff --git a/Zend/tests/generators/generator_trampoline.phpt b/Zend/tests/generators/generator_trampoline.phpt
new file mode 100644
index 0000000000..a98dc9ee49
--- /dev/null
+++ b/Zend/tests/generators/generator_trampoline.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Calling generator through magic __call()
+--FILE--
+<?php
+class A {
+ public function __call($name, $args) {
+ for ($i = 0; $i < 5; $i++) {
+ yield $i;
+ }
+ }
+}
+
+$a = new A();
+foreach ($a->gen() as $n) {
+ var_dump($n);
+}
+$a->gen();
+?>
+--EXPECT--
+int(0)
+int(1)
+int(2)
+int(3)
+int(4)
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 47cc6c649c..63359dfa39 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1108,10 +1108,8 @@ ZEND_API zend_class_entry *do_bind_class(const zend_op_array* op_array, const ze
lcname = RT_CONSTANT(op_array, opline->op1);
rtd_key = lcname + 1;
}
- if ((ce = zend_hash_find_ptr(class_table, Z_STR_P(rtd_key))) == NULL) {
- zend_error_noreturn(E_COMPILE_ERROR, "Internal Zend error - Missing class information for %s", Z_STRVAL_P(rtd_key));
- return NULL;
- }
+ ce = zend_hash_find_ptr(class_table, Z_STR_P(rtd_key));
+ ZEND_ASSERT(ce);
ce->refcount++;
if (zend_hash_add_ptr(class_table, Z_STR_P(lcname), ce) == NULL) {
ce->refcount--;
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index bbd64f2ea7..647428f959 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -1407,11 +1407,11 @@ static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object,
zval rv;
if (Z_OBJ_HT_P(object)->read_property && Z_OBJ_HT_P(object)->write_property) {
- zval *z, obj;
+ zval *z, *zptr, obj;
ZVAL_OBJ(&obj, Z_OBJ_P(object));
Z_ADDREF(obj);
- z = Z_OBJ_HT(obj)->read_property(&obj, property, BP_VAR_R, cache_slot, &rv);
+ zptr = z = Z_OBJ_HT(obj)->read_property(&obj, property, BP_VAR_R, cache_slot, &rv);
if (UNEXPECTED(EG(exception))) {
OBJ_RELEASE(Z_OBJ(obj));
return;
@@ -1438,7 +1438,7 @@ static zend_never_inline void zend_pre_incdec_overloaded_property(zval *object,
}
Z_OBJ_HT(obj)->write_property(&obj, property, z, cache_slot);
OBJ_RELEASE(Z_OBJ(obj));
- zval_ptr_dtor(z);
+ zval_ptr_dtor(zptr);
} else {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
if (UNEXPECTED(result)) {
@@ -2937,13 +2937,13 @@ static zend_never_inline int zend_do_fcall_overloaded(zend_function *fbc, zend_e
#define ZEND_VM_SET_RELATIVE_OPCODE(opline, offset) \
ZEND_VM_SET_OPCODE(ZEND_OFFSET_TO_OPLINE(opline, offset))
-#define ZEND_VM_JMP(new_op) \
- if (EXPECTED(!EG(exception))) { \
+#define ZEND_VM_JMP(new_op) do { \
+ if (UNEXPECTED(EG(exception))) { \
+ HANDLE_EXCEPTION(); \
+ } \
ZEND_VM_SET_OPCODE(new_op); \
- } else { \
- LOAD_OPLINE(); \
- } \
- ZEND_VM_CONTINUE()
+ ZEND_VM_CONTINUE(); \
+ } while (0)
#define ZEND_VM_INC_OPCODE() \
OPLINE++
diff --git a/Zend/zend_hash.h b/Zend/zend_hash.h
index 190551d3f1..e4f8fd8a91 100644
--- a/Zend/zend_hash.h
+++ b/Zend/zend_hash.h
@@ -328,6 +328,16 @@ static zend_always_inline zval *zend_hash_str_find_ind(const HashTable *ht, cons
}
+static zend_always_inline int zend_hash_str_exists_ind(const HashTable *ht, const char *str, size_t len)
+{
+ zval *zv;
+
+ zv = zend_hash_str_find(ht, str, len);
+ return zv && (Z_TYPE_P(zv) != IS_INDIRECT ||
+ Z_TYPE_P(Z_INDIRECT_P(zv)) != IS_UNDEF);
+}
+
+
static zend_always_inline zval *zend_symtable_update(HashTable *ht, zend_string *key, zval *pData)
{
zend_ulong idx;
diff --git a/Zend/zend_ini_parser.y b/Zend/zend_ini_parser.y
index 8caa2931f4..4edbbfaa37 100644
--- a/Zend/zend_ini_parser.y
+++ b/Zend/zend_ini_parser.y
@@ -115,10 +115,10 @@ static void zend_ini_add_string(zval *result, zval *op1, zval *op2)
/* ZEND_ASSERT(!Z_REFCOUNTED_P(op1)); */
if (ZEND_SYSTEM_INI) {
ZVAL_PSTRINGL(op1, ZSTR_VAL(str), ZSTR_LEN(str));
+ zend_string_release(str);
} else {
ZVAL_STR(op1, str);
}
- zend_string_release(str);
}
op1_len = (int)Z_STRLEN_P(op1);
diff --git a/Zend/zend_ini_scanner.c b/Zend/zend_ini_scanner.c
index c0a9eefc24..08749751eb 100644
--- a/Zend/zend_ini_scanner.c
+++ b/Zend/zend_ini_scanner.c
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.14.3 */
#line 1 "Zend/zend_ini_scanner.l"
/*
+----------------------------------------------------------------------+
@@ -112,6 +112,8 @@ ZEND_API ts_rsrc_id ini_scanner_globals_id;
ZEND_API zend_ini_scanner_globals ini_scanner_globals;
#endif
+#define ZEND_SYSTEM_INI CG(ini_parser_unbuffered_errors)
+
/* Eat leading whitespace */
#define EAT_LEADING_WHITESPACE() \
while (yyleng) { \
@@ -139,7 +141,7 @@ ZEND_API zend_ini_scanner_globals ini_scanner_globals;
#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
#define zend_ini_copy_value(retval, str, len) \
- ZVAL_NEW_STR(retval, zend_string_init(str, len, 1))
+ ZVAL_NEW_STR(retval, zend_string_init(str, len, ZEND_SYSTEM_INI))
#define RETURN_TOKEN(type, str, len) { \
@@ -381,7 +383,7 @@ restart:
}
}
-#line 385 "Zend/zend_ini_scanner.c"
+#line 387 "Zend/zend_ini_scanner.c"
{
YYCTYPE yych;
unsigned int yyaccept = 0;
@@ -451,16 +453,15 @@ yyc_INITIAL:
144, 144, 144, 144, 144, 144, 144, 144,
144, 144, 144, 144, 144, 144, 144, 144,
};
-
- YYDEBUG(0, *YYCURSOR);
+ YYDEBUG(1, *YYCURSOR);
YYFILL(5);
yych = *YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
- case '\t': goto yy4;
- case '\n': goto yy6;
- case '\r': goto yy8;
- case ' ': goto yy9;
+ case '\t': goto yy5;
+ case '\n': goto yy7;
+ case '\r': goto yy9;
+ case ' ': goto yy10;
case '!':
case '"':
case '$':
@@ -471,7 +472,7 @@ yyc_INITIAL:
case '{':
case '|':
case '}':
- case '~': goto yy10;
+ case '~': goto yy11;
case '%':
case '\'':
case '*':
@@ -485,31 +486,31 @@ yyc_INITIAL:
case '>':
case '?':
case '@':
- case ']': goto yy12;
- case ';': goto yy13;
- case '=': goto yy15;
+ case ']': goto yy13;
+ case ';': goto yy14;
+ case '=': goto yy16;
case 'F':
- case 'f': goto yy17;
+ case 'f': goto yy18;
case 'N':
- case 'n': goto yy18;
+ case 'n': goto yy19;
case 'O':
- case 'o': goto yy19;
+ case 'o': goto yy20;
case 'T':
- case 't': goto yy20;
+ case 't': goto yy21;
case 'Y':
- case 'y': goto yy21;
- case '[': goto yy22;
- default: goto yy2;
+ case 'y': goto yy22;
+ case '[': goto yy23;
+ default: goto yy3;
}
-yy2:
- YYDEBUG(2, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy25;
yy3:
YYDEBUG(3, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy26;
+yy4:
+ YYDEBUG(4, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 481 "Zend/zend_ini_scanner.l"
+#line 483 "Zend/zend_ini_scanner.l"
{ /* Get option name */
/* Eat leading whitespace */
EAT_LEADING_WHITESPACE();
@@ -519,96 +520,96 @@ yy3:
RETURN_TOKEN(TC_LABEL, yytext, yyleng);
}
-#line 523 "Zend/zend_ini_scanner.c"
-yy4:
- YYDEBUG(4, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy63;
+#line 524 "Zend/zend_ini_scanner.c"
yy5:
YYDEBUG(5, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy64;
+yy6:
+ YYDEBUG(6, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 627 "Zend/zend_ini_scanner.l"
+#line 629 "Zend/zend_ini_scanner.l"
{
/* eat whitespace */
goto restart;
}
-#line 537 "Zend/zend_ini_scanner.c"
-yy6:
- YYDEBUG(6, *YYCURSOR);
- ++YYCURSOR;
+#line 538 "Zend/zend_ini_scanner.c"
yy7:
YYDEBUG(7, *YYCURSOR);
+ ++YYCURSOR;
+yy8:
+ YYDEBUG(8, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 632 "Zend/zend_ini_scanner.l"
+#line 634 "Zend/zend_ini_scanner.l"
{
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 549 "Zend/zend_ini_scanner.c"
-yy8:
- YYDEBUG(8, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy66;
- goto yy7;
+#line 550 "Zend/zend_ini_scanner.c"
yy9:
YYDEBUG(9, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy67;
+ goto yy8;
+yy10:
+ YYDEBUG(10, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\t') goto yy62;
- goto yy66;
+ if (yych <= 0x08) goto yy26;
+ if (yych <= '\t') goto yy63;
+ goto yy67;
} else {
- if (yych == '\r') goto yy67;
- goto yy25;
+ if (yych == '\r') goto yy68;
+ goto yy26;
}
} else {
if (yych <= ';') {
- if (yych <= ' ') goto yy64;
- if (yych <= ':') goto yy25;
- goto yy57;
+ if (yych <= ' ') goto yy65;
+ if (yych <= ':') goto yy26;
+ goto yy58;
} else {
- if (yych == '=') goto yy55;
- goto yy25;
+ if (yych == '=') goto yy56;
+ goto yy26;
}
}
-yy10:
- YYDEBUG(10, *YYCURSOR);
- ++YYCURSOR;
+yy11:
YYDEBUG(11, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(12, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 555 "Zend/zend_ini_scanner.l"
+#line 557 "Zend/zend_ini_scanner.l"
{ /* Disallow these chars outside option values */
return yytext[0];
}
-#line 587 "Zend/zend_ini_scanner.c"
-yy12:
- YYDEBUG(12, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy25;
+#line 588 "Zend/zend_ini_scanner.c"
yy13:
YYDEBUG(13, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy26;
+yy14:
+ YYDEBUG(14, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
- goto yy58;
- YYDEBUG(14, *YYCURSOR);
+ goto yy59;
+ YYDEBUG(15, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 648 "Zend/zend_ini_scanner.l"
+#line 650 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 603 "Zend/zend_ini_scanner.c"
-yy15:
- YYDEBUG(15, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy56;
+#line 604 "Zend/zend_ini_scanner.c"
yy16:
YYDEBUG(16, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy57;
+yy17:
+ YYDEBUG(17, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 491 "Zend/zend_ini_scanner.l"
+#line 493 "Zend/zend_ini_scanner.l"
{ /* Start option value */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
yy_push_state(ST_RAW);
@@ -617,63 +618,63 @@ yy16:
}
return '=';
}
-#line 621 "Zend/zend_ini_scanner.c"
-yy17:
- YYDEBUG(17, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'A') goto yy52;
- if (yych == 'a') goto yy52;
- goto yy25;
+#line 622 "Zend/zend_ini_scanner.c"
yy18:
YYDEBUG(18, *YYCURSOR);
yych = *++YYCURSOR;
+ if (yych == 'A') goto yy53;
+ if (yych == 'a') goto yy53;
+ goto yy26;
+yy19:
+ YYDEBUG(19, *YYCURSOR);
+ yych = *++YYCURSOR;
if (yych <= 'U') {
- if (yych == 'O') goto yy43;
- if (yych <= 'T') goto yy25;
- goto yy44;
+ if (yych == 'O') goto yy44;
+ if (yych <= 'T') goto yy26;
+ goto yy45;
} else {
if (yych <= 'o') {
- if (yych <= 'n') goto yy25;
- goto yy43;
+ if (yych <= 'n') goto yy26;
+ goto yy44;
} else {
- if (yych == 'u') goto yy44;
- goto yy25;
+ if (yych == 'u') goto yy45;
+ goto yy26;
}
}
-yy19:
- YYDEBUG(19, *YYCURSOR);
+yy20:
+ YYDEBUG(20, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= 'N') {
- if (yych == 'F') goto yy37;
- if (yych <= 'M') goto yy25;
- goto yy30;
+ if (yych == 'F') goto yy38;
+ if (yych <= 'M') goto yy26;
+ goto yy31;
} else {
if (yych <= 'f') {
- if (yych <= 'e') goto yy25;
- goto yy37;
+ if (yych <= 'e') goto yy26;
+ goto yy38;
} else {
- if (yych == 'n') goto yy30;
- goto yy25;
+ if (yych == 'n') goto yy31;
+ goto yy26;
}
}
-yy20:
- YYDEBUG(20, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'R') goto yy35;
- if (yych == 'r') goto yy35;
- goto yy25;
yy21:
YYDEBUG(21, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy26;
- if (yych == 'e') goto yy26;
- goto yy25;
+ if (yych == 'R') goto yy36;
+ if (yych == 'r') goto yy36;
+ goto yy26;
yy22:
YYDEBUG(22, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy27;
+ if (yych == 'e') goto yy27;
+ goto yy26;
+yy23:
YYDEBUG(23, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(24, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 406 "Zend/zend_ini_scanner.l"
+#line 408 "Zend/zend_ini_scanner.l"
{ /* Section start */
/* Enter section data lookup state */
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
@@ -683,37 +684,38 @@ yy22:
}
return TC_SECTION;
}
-#line 687 "Zend/zend_ini_scanner.c"
-yy24:
- YYDEBUG(24, *YYCURSOR);
+#line 688 "Zend/zend_ini_scanner.c"
+yy25:
+ YYDEBUG(25, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy25:
- YYDEBUG(25, *YYCURSOR);
- if (yybm[0+yych] & 16) {
- goto yy24;
- }
- if (yych == '[') goto yy27;
- goto yy3;
yy26:
YYDEBUG(26, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'S') goto yy30;
- if (yych == 's') goto yy30;
- goto yy25;
+ if (yybm[0+yych] & 16) {
+ goto yy25;
+ }
+ if (yych <= '=') goto yy4;
+ if (yych <= '[') goto yy28;
+ goto yy4;
yy27:
YYDEBUG(27, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'S') goto yy31;
+ if (yych == 's') goto yy31;
+ goto yy26;
+yy28:
+ YYDEBUG(28, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(28, *YYCURSOR);
+ YYDEBUG(29, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy27;
+ goto yy28;
}
- YYDEBUG(29, *YYCURSOR);
+ YYDEBUG(30, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 431 "Zend/zend_ini_scanner.l"
+#line 433 "Zend/zend_ini_scanner.l"
{ /* Start of option with offset */
/* Eat leading whitespace */
EAT_LEADING_WHITESPACE();
@@ -726,401 +728,401 @@ yy27:
RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
}
-#line 730 "Zend/zend_ini_scanner.c"
-yy30:
- YYDEBUG(30, *YYCURSOR);
+#line 732 "Zend/zend_ini_scanner.c"
+yy31:
+ YYDEBUG(31, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(31, *YYCURSOR);
+ YYDEBUG(32, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy30;
+ goto yy31;
}
if (yych <= '\'') {
- if (yych <= ' ') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy24;
- if (yych <= '\t') goto yy33;
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy34;
} else {
- if (yych != '\r') goto yy24;
+ if (yych != '\r') goto yy25;
}
} else {
if (yych <= '$') {
- if (yych == '#') goto yy24;
+ if (yych == '#') goto yy25;
} else {
- if (yych != '&') goto yy24;
+ if (yych != '&') goto yy25;
}
}
} else {
if (yych <= 'Z') {
if (yych <= ';') {
- if (yych <= ')') goto yy32;
- if (yych <= ':') goto yy24;
+ if (yych <= ')') goto yy33;
+ if (yych <= ':') goto yy25;
} else {
- if (yych != '=') goto yy24;
+ if (yych != '=') goto yy25;
}
} else {
if (yych <= '^') {
- if (yych <= '[') goto yy27;
- if (yych <= ']') goto yy24;
+ if (yych <= '[') goto yy28;
+ if (yych <= ']') goto yy25;
} else {
- if (yych <= 'z') goto yy24;
- if (yych >= 0x7F) goto yy24;
+ if (yych <= 'z') goto yy25;
+ if (yych >= 0x7F) goto yy25;
}
}
}
-yy32:
- YYDEBUG(32, *YYCURSOR);
+yy33:
+ YYDEBUG(33, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 469 "Zend/zend_ini_scanner.l"
+#line 471 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
-#line 780 "Zend/zend_ini_scanner.c"
-yy33:
- YYDEBUG(33, *YYCURSOR);
+#line 782 "Zend/zend_ini_scanner.c"
+yy34:
+ YYDEBUG(34, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(34, *YYCURSOR);
- if (yych == '\t') goto yy33;
- if (yych == ' ') goto yy33;
- goto yy32;
-yy35:
YYDEBUG(35, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'U') goto yy36;
- if (yych != 'u') goto yy25;
+ if (yych == '\t') goto yy34;
+ if (yych == ' ') goto yy34;
+ goto yy33;
yy36:
YYDEBUG(36, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy30;
- if (yych == 'e') goto yy30;
- goto yy25;
+ if (yych == 'U') goto yy37;
+ if (yych != 'u') goto yy26;
yy37:
YYDEBUG(37, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'F') goto yy38;
- if (yych != 'f') goto yy25;
+ if (yych == 'E') goto yy31;
+ if (yych == 'e') goto yy31;
+ goto yy26;
yy38:
YYDEBUG(38, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'F') goto yy39;
+ if (yych != 'f') goto yy26;
+yy39:
+ YYDEBUG(39, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(39, *YYCURSOR);
+ YYDEBUG(40, *YYCURSOR);
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy24;
- if (yych <= '\t') goto yy41;
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy42;
} else {
- if (yych != '\r') goto yy24;
+ if (yych != '\r') goto yy25;
}
} else {
if (yych <= '#') {
- if (yych <= ' ') goto yy38;
- if (yych >= '#') goto yy24;
+ if (yych <= ' ') goto yy39;
+ if (yych >= '#') goto yy25;
} else {
- if (yych == '%') goto yy24;
+ if (yych == '%') goto yy25;
}
}
} else {
if (yych <= '=') {
if (yych <= ':') {
- if (yych <= '\'') goto yy24;
- if (yych >= '*') goto yy24;
+ if (yych <= '\'') goto yy25;
+ if (yych >= '*') goto yy25;
} else {
- if (yych == '<') goto yy24;
+ if (yych == '<') goto yy25;
}
} else {
if (yych <= ']') {
- if (yych == '[') goto yy27;
- goto yy24;
+ if (yych == '[') goto yy28;
+ goto yy25;
} else {
- if (yych <= '^') goto yy40;
- if (yych <= 'z') goto yy24;
- if (yych >= 0x7F) goto yy24;
+ if (yych <= '^') goto yy41;
+ if (yych <= 'z') goto yy25;
+ if (yych >= 0x7F) goto yy25;
}
}
}
-yy40:
- YYDEBUG(40, *YYCURSOR);
+yy41:
+ YYDEBUG(41, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 473 "Zend/zend_ini_scanner.l"
+#line 475 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
-#line 854 "Zend/zend_ini_scanner.c"
-yy41:
- YYDEBUG(41, *YYCURSOR);
+#line 856 "Zend/zend_ini_scanner.c"
+yy42:
+ YYDEBUG(42, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(42, *YYCURSOR);
- if (yych == '\t') goto yy41;
- if (yych == ' ') goto yy41;
- goto yy40;
-yy43:
YYDEBUG(43, *YYCURSOR);
+ if (yych == '\t') goto yy42;
+ if (yych == ' ') goto yy42;
+ goto yy41;
+yy44:
+ YYDEBUG(44, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '\'') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy25;
- if (yych <= '\t') goto yy41;
- goto yy40;
+ if (yych <= 0x08) goto yy26;
+ if (yych <= '\t') goto yy42;
+ goto yy41;
} else {
- if (yych == '\r') goto yy40;
- goto yy25;
+ if (yych == '\r') goto yy41;
+ goto yy26;
}
} else {
if (yych <= '#') {
- if (yych <= ' ') goto yy38;
- if (yych <= '"') goto yy40;
- goto yy25;
+ if (yych <= ' ') goto yy39;
+ if (yych <= '"') goto yy41;
+ goto yy26;
} else {
- if (yych == '%') goto yy25;
- if (yych <= '&') goto yy40;
- goto yy25;
+ if (yych == '%') goto yy26;
+ if (yych <= '&') goto yy41;
+ goto yy26;
}
}
} else {
if (yych <= 'N') {
if (yych <= ';') {
- if (yych <= ')') goto yy40;
- if (yych <= ':') goto yy25;
- goto yy40;
+ if (yych <= ')') goto yy41;
+ if (yych <= ':') goto yy26;
+ goto yy41;
} else {
- if (yych == '=') goto yy40;
- if (yych <= 'M') goto yy25;
- goto yy51;
+ if (yych == '=') goto yy41;
+ if (yych <= 'M') goto yy26;
+ goto yy52;
}
} else {
if (yych <= 'm') {
- if (yych == '^') goto yy40;
- goto yy25;
+ if (yych == '^') goto yy41;
+ goto yy26;
} else {
- if (yych <= 'n') goto yy51;
- if (yych <= 'z') goto yy25;
- if (yych <= '~') goto yy40;
- goto yy25;
+ if (yych <= 'n') goto yy52;
+ if (yych <= 'z') goto yy26;
+ if (yych <= '~') goto yy41;
+ goto yy26;
}
}
}
-yy44:
- YYDEBUG(44, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'L') goto yy45;
- if (yych != 'l') goto yy25;
yy45:
YYDEBUG(45, *YYCURSOR);
yych = *++YYCURSOR;
if (yych == 'L') goto yy46;
- if (yych != 'l') goto yy25;
+ if (yych != 'l') goto yy26;
yy46:
YYDEBUG(46, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'L') goto yy47;
+ if (yych != 'l') goto yy26;
+yy47:
+ YYDEBUG(47, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(47, *YYCURSOR);
+ YYDEBUG(48, *YYCURSOR);
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy24;
- if (yych <= '\t') goto yy49;
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy50;
} else {
- if (yych != '\r') goto yy24;
+ if (yych != '\r') goto yy25;
}
} else {
if (yych <= '#') {
- if (yych <= ' ') goto yy46;
- if (yych >= '#') goto yy24;
+ if (yych <= ' ') goto yy47;
+ if (yych >= '#') goto yy25;
} else {
- if (yych == '%') goto yy24;
+ if (yych == '%') goto yy25;
}
}
} else {
if (yych <= '=') {
if (yych <= ':') {
- if (yych <= '\'') goto yy24;
- if (yych >= '*') goto yy24;
+ if (yych <= '\'') goto yy25;
+ if (yych >= '*') goto yy25;
} else {
- if (yych == '<') goto yy24;
+ if (yych == '<') goto yy25;
}
} else {
if (yych <= ']') {
- if (yych == '[') goto yy27;
- goto yy24;
+ if (yych == '[') goto yy28;
+ goto yy25;
} else {
- if (yych <= '^') goto yy48;
- if (yych <= 'z') goto yy24;
- if (yych >= 0x7F) goto yy24;
+ if (yych <= '^') goto yy49;
+ if (yych <= 'z') goto yy25;
+ if (yych >= 0x7F) goto yy25;
}
}
}
-yy48:
- YYDEBUG(48, *YYCURSOR);
+yy49:
+ YYDEBUG(49, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
+#line 479 "Zend/zend_ini_scanner.l"
{
RETURN_TOKEN(NULL_NULL, "", 0);
}
-#line 969 "Zend/zend_ini_scanner.c"
-yy49:
- YYDEBUG(49, *YYCURSOR);
+#line 971 "Zend/zend_ini_scanner.c"
+yy50:
+ YYDEBUG(50, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(50, *YYCURSOR);
- if (yych == '\t') goto yy49;
- if (yych == ' ') goto yy49;
- goto yy48;
-yy51:
YYDEBUG(51, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == 'E') goto yy38;
- if (yych == 'e') goto yy38;
- goto yy25;
+ if (yych == '\t') goto yy50;
+ if (yych == ' ') goto yy50;
+ goto yy49;
yy52:
YYDEBUG(52, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'L') goto yy53;
- if (yych != 'l') goto yy25;
+ if (yych == 'E') goto yy39;
+ if (yych == 'e') goto yy39;
+ goto yy26;
yy53:
YYDEBUG(53, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'S') goto yy54;
- if (yych != 's') goto yy25;
+ if (yych == 'L') goto yy54;
+ if (yych != 'l') goto yy26;
yy54:
YYDEBUG(54, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == 'E') goto yy38;
- if (yych == 'e') goto yy38;
- goto yy25;
+ if (yych == 'S') goto yy55;
+ if (yych != 's') goto yy26;
yy55:
YYDEBUG(55, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == 'E') goto yy39;
+ if (yych == 'e') goto yy39;
+ goto yy26;
+yy56:
+ YYDEBUG(56, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy56:
- YYDEBUG(56, *YYCURSOR);
- if (yych == '\t') goto yy55;
- if (yych == ' ') goto yy55;
- goto yy16;
yy57:
YYDEBUG(57, *YYCURSOR);
+ if (yych == '\t') goto yy56;
+ if (yych == ' ') goto yy56;
+ goto yy17;
+yy58:
+ YYDEBUG(58, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy58:
- YYDEBUG(58, *YYCURSOR);
- if (yybm[0+yych] & 128) {
- goto yy57;
- }
- if (yych >= '\r') goto yy61;
yy59:
YYDEBUG(59, *YYCURSOR);
- ++YYCURSOR;
+ if (yybm[0+yych] & 128) {
+ goto yy58;
+ }
+ if (yych >= '\v') goto yy62;
yy60:
YYDEBUG(60, *YYCURSOR);
+ ++YYCURSOR;
+yy61:
+ YYDEBUG(61, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 637 "Zend/zend_ini_scanner.l"
+#line 639 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1034 "Zend/zend_ini_scanner.c"
-yy61:
- YYDEBUG(61, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy59;
- goto yy60;
+#line 1036 "Zend/zend_ini_scanner.c"
yy62:
YYDEBUG(62, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy60;
+ goto yy61;
+yy63:
+ YYDEBUG(63, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy63:
- YYDEBUG(63, *YYCURSOR);
+yy64:
+ YYDEBUG(64, *YYCURSOR);
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy5;
- if (yych <= '\t') goto yy62;
- goto yy66;
+ if (yych <= 0x08) goto yy6;
+ if (yych <= '\t') goto yy63;
+ goto yy67;
} else {
- if (yych == '\r') goto yy67;
- goto yy5;
+ if (yych == '\r') goto yy68;
+ goto yy6;
}
} else {
if (yych <= ';') {
- if (yych <= ' ') goto yy62;
- if (yych <= ':') goto yy5;
- goto yy57;
+ if (yych <= ' ') goto yy63;
+ if (yych <= ':') goto yy6;
+ goto yy58;
} else {
- if (yych == '=') goto yy55;
- goto yy5;
+ if (yych == '=') goto yy56;
+ goto yy6;
}
}
-yy64:
- YYDEBUG(64, *YYCURSOR);
+yy65:
+ YYDEBUG(65, *YYCURSOR);
yyaccept = 1;
YYMARKER = ++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
- YYDEBUG(65, *YYCURSOR);
+ YYDEBUG(66, *YYCURSOR);
if (yych <= '&') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy24;
- if (yych <= '\t') goto yy62;
+ if (yych <= 0x08) goto yy25;
+ if (yych <= '\t') goto yy63;
} else {
- if (yych == '\r') goto yy67;
- goto yy24;
+ if (yych == '\r') goto yy68;
+ goto yy25;
}
} else {
if (yych <= '#') {
- if (yych <= ' ') goto yy64;
- if (yych <= '"') goto yy3;
- goto yy24;
+ if (yych <= ' ') goto yy65;
+ if (yych <= '"') goto yy4;
+ goto yy25;
} else {
- if (yych == '%') goto yy24;
- goto yy3;
+ if (yych == '%') goto yy25;
+ goto yy4;
}
}
} else {
if (yych <= '=') {
if (yych <= ':') {
- if (yych <= '\'') goto yy24;
- if (yych <= ')') goto yy3;
- goto yy24;
+ if (yych <= '\'') goto yy25;
+ if (yych <= ')') goto yy4;
+ goto yy25;
} else {
- if (yych <= ';') goto yy57;
- if (yych <= '<') goto yy24;
- goto yy55;
+ if (yych <= ';') goto yy58;
+ if (yych <= '<') goto yy25;
+ goto yy56;
}
} else {
if (yych <= ']') {
- if (yych == '[') goto yy27;
- goto yy24;
+ if (yych == '[') goto yy28;
+ goto yy25;
} else {
- if (yych <= '^') goto yy3;
- if (yych <= 'z') goto yy24;
- if (yych <= '~') goto yy3;
- goto yy24;
+ if (yych <= '^') goto yy4;
+ if (yych <= 'z') goto yy25;
+ if (yych <= '~') goto yy4;
+ goto yy25;
}
}
}
-yy66:
- YYDEBUG(66, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy7;
yy67:
YYDEBUG(67, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy8;
+yy68:
+ YYDEBUG(68, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy66;
- goto yy7;
+ if ((yych = *YYCURSOR) == '\n') goto yy67;
+ goto yy8;
}
/* *********************************** */
yyc_ST_DOUBLE_QUOTES:
@@ -1159,17 +1161,17 @@ yyc_ST_DOUBLE_QUOTES:
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
};
- YYDEBUG(68, *YYCURSOR);
+ YYDEBUG(69, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
- if (yych == '"') goto yy72;
- if (yych == '$') goto yy74;
- YYDEBUG(70, *YYCURSOR);
- ++YYCURSOR;
-yy71:
+ if (yych == '"') goto yy73;
+ if (yych == '$') goto yy75;
YYDEBUG(71, *YYCURSOR);
+ ++YYCURSOR;
+yy72:
+ YYDEBUG(72, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 587 "Zend/zend_ini_scanner.l"
+#line 589 "Zend/zend_ini_scanner.l"
{ /* Escape double quoted string contents */
if (YYCURSOR > YYLIMIT) {
return 0;
@@ -1205,46 +1207,46 @@ yy71:
zend_ini_escape_string(ini_lval, yytext, yyleng, '"');
return TC_QUOTED_STRING;
}
-#line 1209 "Zend/zend_ini_scanner.c"
-yy72:
- YYDEBUG(72, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy78;
+#line 1211 "Zend/zend_ini_scanner.c"
yy73:
YYDEBUG(73, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy79;
+yy74:
+ YYDEBUG(74, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 582 "Zend/zend_ini_scanner.l"
+#line 584 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string ends */
yy_pop_state();
return '"';
}
-#line 1223 "Zend/zend_ini_scanner.c"
-yy74:
- YYDEBUG(74, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych != '{') goto yy71;
+#line 1225 "Zend/zend_ini_scanner.c"
+yy75:
YYDEBUG(75, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ if (yych != '{') goto yy72;
YYDEBUG(76, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(77, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME);
return TC_DOLLAR_CURLY;
}
-#line 1237 "Zend/zend_ini_scanner.c"
-yy77:
- YYDEBUG(77, *YYCURSOR);
+#line 1239 "Zend/zend_ini_scanner.c"
+yy78:
+ YYDEBUG(78, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy78:
- YYDEBUG(78, *YYCURSOR);
+yy79:
+ YYDEBUG(79, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy77;
+ goto yy78;
}
- goto yy73;
+ goto yy74;
}
/* *********************************** */
yyc_ST_OFFSET:
@@ -1283,496 +1285,498 @@ yyc_ST_OFFSET:
66, 66, 66, 66, 66, 66, 66, 66,
66, 66, 66, 66, 66, 66, 66, 66,
};
- YYDEBUG(79, *YYCURSOR);
+ YYDEBUG(80, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= ' ') {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy81;
- if (yych <= '\t') goto yy83;
- goto yy84;
+ if (yych <= 0x08) goto yy82;
+ if (yych <= '\t') goto yy84;
+ goto yy85;
} else {
- if (yych == '\r') goto yy84;
- if (yych >= ' ') goto yy83;
+ if (yych == '\r') goto yy85;
+ if (yych >= ' ') goto yy84;
}
} else {
if (yych <= '$') {
- if (yych == '"') goto yy86;
- if (yych >= '$') goto yy88;
+ if (yych == '"') goto yy87;
+ if (yych >= '$') goto yy89;
} else {
- if (yych == '\'') goto yy89;
- if (yych >= '-') goto yy90;
+ if (yych == '\'') goto yy90;
+ if (yych >= '-') goto yy91;
}
}
} else {
if (yych <= 'Z') {
if (yych <= '9') {
- if (yych <= '.') goto yy91;
- if (yych >= '0') goto yy92;
+ if (yych <= '.') goto yy92;
+ if (yych >= '0') goto yy93;
} else {
- if (yych == ';') goto yy84;
- if (yych >= 'A') goto yy94;
+ if (yych == ';') goto yy85;
+ if (yych >= 'A') goto yy95;
}
} else {
if (yych <= '^') {
- if (yych <= '[') goto yy81;
- if (yych <= '\\') goto yy96;
- if (yych <= ']') goto yy97;
+ if (yych <= '[') goto yy82;
+ if (yych <= '\\') goto yy97;
+ if (yych <= ']') goto yy98;
} else {
- if (yych == '`') goto yy81;
- if (yych <= 'z') goto yy94;
+ if (yych == '`') goto yy82;
+ if (yych <= 'z') goto yy95;
}
}
}
-yy81:
- YYDEBUG(81, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy100;
yy82:
YYDEBUG(82, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy101;
+yy83:
+ YYDEBUG(83, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 573 "Zend/zend_ini_scanner.l"
+#line 575 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 1341 "Zend/zend_ini_scanner.c"
-yy83:
- YYDEBUG(83, *YYCURSOR);
+#line 1343 "Zend/zend_ini_scanner.c"
+yy84:
+ YYDEBUG(84, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy126;
+ goto yy127;
}
- if (yych == '"') goto yy128;
- if (yych == ']') goto yy129;
- goto yy100;
-yy84:
- YYDEBUG(84, *YYCURSOR);
- ++YYCURSOR;
+ if (yych == '"') goto yy129;
+ if (yych == ']') goto yy130;
+ goto yy101;
yy85:
YYDEBUG(85, *YYCURSOR);
+ ++YYCURSOR;
+yy86:
+ YYDEBUG(86, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 648 "Zend/zend_ini_scanner.l"
+#line 650 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 1362 "Zend/zend_ini_scanner.c"
-yy86:
- YYDEBUG(86, *YYCURSOR);
- ++YYCURSOR;
+#line 1364 "Zend/zend_ini_scanner.c"
yy87:
YYDEBUG(87, *YYCURSOR);
+ ++YYCURSOR;
+yy88:
+ YYDEBUG(88, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 577 "Zend/zend_ini_scanner.l"
+#line 579 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES);
return '"';
}
-#line 1374 "Zend/zend_ini_scanner.c"
-yy88:
- YYDEBUG(88, *YYCURSOR);
+#line 1376 "Zend/zend_ini_scanner.c"
+yy89:
+ YYDEBUG(89, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy85;
- if (yych <= '[') goto yy99;
- goto yy104;
+ if (yych <= 0x00) goto yy86;
+ if (yych <= '[') goto yy100;
+ goto yy105;
} else {
- if (yych == '{') goto yy124;
- goto yy99;
+ if (yych == '{') goto yy125;
+ goto yy100;
}
-yy89:
- YYDEBUG(89, *YYCURSOR);
+yy90:
+ YYDEBUG(90, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy120;
+ goto yy121;
}
- goto yy85;
-yy90:
- YYDEBUG(90, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy100;
- if (yych <= '9') goto yy118;
- goto yy100;
+ goto yy86;
yy91:
YYDEBUG(91, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy100;
- if (yych <= '9') goto yy116;
- goto yy100;
+ if (yych <= '/') goto yy101;
+ if (yych <= '9') goto yy119;
+ goto yy101;
yy92:
YYDEBUG(92, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy101;
+ if (yych <= '9') goto yy117;
+ goto yy101;
+yy93:
+ YYDEBUG(93, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '\'') {
if (yych <= '\r') {
- if (yych == '\n') goto yy93;
- if (yych <= '\f') goto yy100;
+ if (yych == '\n') goto yy94;
+ if (yych <= '\f') goto yy101;
} else {
- if (yych == '"') goto yy93;
- if (yych <= '&') goto yy100;
+ if (yych == '"') goto yy94;
+ if (yych <= '&') goto yy101;
}
} else {
if (yych <= '9') {
- if (yych == '.') goto yy112;
- if (yych <= '/') goto yy100;
- goto yy114;
+ if (yych == '.') goto yy113;
+ if (yych <= '/') goto yy101;
+ goto yy115;
} else {
if (yych <= ';') {
- if (yych <= ':') goto yy100;
+ if (yych <= ':') goto yy101;
} else {
- if (yych != ']') goto yy100;
+ if (yych != ']') goto yy101;
}
}
}
-yy93:
- YYDEBUG(93, *YYCURSOR);
+yy94:
+ YYDEBUG(94, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 551 "Zend/zend_ini_scanner.l"
+#line 553 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 1440 "Zend/zend_ini_scanner.c"
-yy94:
- YYDEBUG(94, *YYCURSOR);
+#line 1442 "Zend/zend_ini_scanner.c"
+yy95:
+ YYDEBUG(95, *YYCURSOR);
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy110;
+ goto yy111;
}
if (yych <= '"') {
if (yych <= '\f') {
- if (yych != '\n') goto yy100;
+ if (yych != '\n') goto yy101;
} else {
- if (yych <= '\r') goto yy95;
- if (yych <= '!') goto yy100;
+ if (yych <= '\r') goto yy96;
+ if (yych <= '!') goto yy101;
}
} else {
if (yych <= ':') {
- if (yych != '\'') goto yy100;
+ if (yych != '\'') goto yy101;
} else {
- if (yych <= ';') goto yy95;
- if (yych != ']') goto yy100;
+ if (yych <= ';') goto yy96;
+ if (yych != ']') goto yy101;
}
}
-yy95:
- YYDEBUG(95, *YYCURSOR);
+yy96:
+ YYDEBUG(96, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 547 "Zend/zend_ini_scanner.l"
+#line 549 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 1470 "Zend/zend_ini_scanner.c"
-yy96:
- YYDEBUG(96, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy99;
+#line 1472 "Zend/zend_ini_scanner.c"
yy97:
YYDEBUG(97, *YYCURSOR);
- ++YYCURSOR;
+ yych = *++YYCURSOR;
+ goto yy100;
yy98:
YYDEBUG(98, *YYCURSOR);
+ ++YYCURSOR;
+yy99:
+ YYDEBUG(99, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 444 "Zend/zend_ini_scanner.l"
+#line 446 "Zend/zend_ini_scanner.l"
{ /* End of section or an option offset */
BEGIN(INITIAL);
return ']';
}
-#line 1486 "Zend/zend_ini_scanner.c"
-yy99:
- YYDEBUG(99, *YYCURSOR);
+#line 1488 "Zend/zend_ini_scanner.c"
+yy100:
+ YYDEBUG(100, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy100:
- YYDEBUG(100, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy99;
- }
- if (yych == '$') goto yy102;
- if (yych != '\\') goto yy82;
yy101:
YYDEBUG(101, *YYCURSOR);
+ if (yybm[0+yych] & 2) {
+ goto yy100;
+ }
+ if (yych <= '"') goto yy83;
+ if (yych <= '$') goto yy103;
+ if (yych <= ';') goto yy83;
+ if (yych >= ']') goto yy83;
+yy102:
+ YYDEBUG(102, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- goto yy99;
-yy102:
- YYDEBUG(102, *YYCURSOR);
+ goto yy100;
+yy103:
+ YYDEBUG(103, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy103;
- if (yych <= '[') goto yy99;
- goto yy104;
+ if (yych <= 0x00) goto yy104;
+ if (yych <= '[') goto yy100;
+ goto yy105;
} else {
- if (yych != '{') goto yy99;
+ if (yych != '{') goto yy100;
}
-yy103:
- YYDEBUG(103, *YYCURSOR);
+yy104:
+ YYDEBUG(104, *YYCURSOR);
YYCURSOR = YYMARKER;
if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy82;
+ if (yyaccept == 0) {
+ goto yy83;
} else {
- goto yy85;
+ goto yy86;
}
} else {
- if (yyaccept <= 2) {
- goto yy93;
+ if (yyaccept == 2) {
+ goto yy94;
} else {
- goto yy95;
+ goto yy96;
}
}
-yy104:
- YYDEBUG(104, *YYCURSOR);
+yy105:
+ YYDEBUG(105, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 4) {
- goto yy105;
+ goto yy106;
}
- if (yych == '\\') goto yy107;
- goto yy99;
-yy105:
- YYDEBUG(105, *YYCURSOR);
+ if (yych == '\\') goto yy108;
+ goto yy100;
+yy106:
+ YYDEBUG(106, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(106, *YYCURSOR);
+ YYDEBUG(107, *YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy105;
+ goto yy106;
}
- if (yych == '\\') goto yy109;
- goto yy99;
-yy107:
- YYDEBUG(107, *YYCURSOR);
+ if (yych == '\\') goto yy110;
+ goto yy100;
+yy108:
+ YYDEBUG(108, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(108, *YYCURSOR);
+ YYDEBUG(109, *YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy105;
+ goto yy106;
}
- if (yych == '\\') goto yy107;
- goto yy99;
-yy109:
- YYDEBUG(109, *YYCURSOR);
+ if (yych == '\\') goto yy108;
+ goto yy100;
+yy110:
+ YYDEBUG(110, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 4) {
- goto yy105;
+ goto yy106;
}
- if (yych == '\\') goto yy107;
- goto yy99;
-yy110:
- YYDEBUG(110, *YYCURSOR);
+ if (yych == '\\') goto yy108;
+ goto yy100;
+yy111:
+ YYDEBUG(111, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(111, *YYCURSOR);
+ YYDEBUG(112, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy110;
+ goto yy111;
}
if (yych <= '$') {
if (yych <= '\r') {
- if (yych == '\n') goto yy95;
- if (yych <= '\f') goto yy99;
- goto yy95;
+ if (yych == '\n') goto yy96;
+ if (yych <= '\f') goto yy100;
+ goto yy96;
} else {
- if (yych == '"') goto yy95;
- if (yych <= '#') goto yy99;
- goto yy102;
+ if (yych == '"') goto yy96;
+ if (yych <= '#') goto yy100;
+ goto yy103;
}
} else {
if (yych <= ';') {
- if (yych == '\'') goto yy95;
- if (yych <= ':') goto yy99;
- goto yy95;
+ if (yych == '\'') goto yy96;
+ if (yych <= ':') goto yy100;
+ goto yy96;
} else {
- if (yych <= '[') goto yy99;
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy95;
- goto yy99;
+ if (yych <= '[') goto yy100;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy96;
+ goto yy100;
}
}
-yy112:
- YYDEBUG(112, *YYCURSOR);
+yy113:
+ YYDEBUG(113, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(113, *YYCURSOR);
+ YYDEBUG(114, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy112;
+ goto yy113;
}
if (yych <= '$') {
if (yych <= '\r') {
- if (yych == '\n') goto yy93;
- if (yych <= '\f') goto yy99;
- goto yy93;
+ if (yych == '\n') goto yy94;
+ if (yych <= '\f') goto yy100;
+ goto yy94;
} else {
- if (yych == '"') goto yy93;
- if (yych <= '#') goto yy99;
- goto yy102;
+ if (yych == '"') goto yy94;
+ if (yych <= '#') goto yy100;
+ goto yy103;
}
} else {
if (yych <= ';') {
- if (yych == '\'') goto yy93;
- if (yych <= ':') goto yy99;
- goto yy93;
+ if (yych == '\'') goto yy94;
+ if (yych <= ':') goto yy100;
+ goto yy94;
} else {
- if (yych <= '[') goto yy99;
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy93;
- goto yy99;
+ if (yych <= '[') goto yy100;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy94;
+ goto yy100;
}
}
-yy114:
- YYDEBUG(114, *YYCURSOR);
+yy115:
+ YYDEBUG(115, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(115, *YYCURSOR);
+ YYDEBUG(116, *YYCURSOR);
if (yych <= '\'') {
if (yych <= '!') {
if (yych <= '\n') {
- if (yych <= '\t') goto yy99;
- goto yy93;
+ if (yych <= '\t') goto yy100;
+ goto yy94;
} else {
- if (yych == '\r') goto yy93;
- goto yy99;
+ if (yych == '\r') goto yy94;
+ goto yy100;
}
} else {
if (yych <= '#') {
- if (yych <= '"') goto yy93;
- goto yy99;
+ if (yych <= '"') goto yy94;
+ goto yy100;
} else {
- if (yych <= '$') goto yy102;
- if (yych <= '&') goto yy99;
- goto yy93;
+ if (yych <= '$') goto yy103;
+ if (yych <= '&') goto yy100;
+ goto yy94;
}
}
} else {
if (yych <= ':') {
if (yych <= '.') {
- if (yych <= '-') goto yy99;
- goto yy112;
+ if (yych <= '-') goto yy100;
+ goto yy113;
} else {
- if (yych <= '/') goto yy99;
- if (yych <= '9') goto yy114;
- goto yy99;
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy115;
+ goto yy100;
}
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy93;
- goto yy99;
+ if (yych <= ';') goto yy94;
+ goto yy100;
} else {
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy93;
- goto yy99;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy94;
+ goto yy100;
}
}
}
-yy116:
- YYDEBUG(116, *YYCURSOR);
+yy117:
+ YYDEBUG(117, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(117, *YYCURSOR);
+ YYDEBUG(118, *YYCURSOR);
if (yych <= '&') {
if (yych <= '\r') {
- if (yych == '\n') goto yy93;
- if (yych <= '\f') goto yy99;
- goto yy93;
+ if (yych == '\n') goto yy94;
+ if (yych <= '\f') goto yy100;
+ goto yy94;
} else {
if (yych <= '"') {
- if (yych <= '!') goto yy99;
- goto yy93;
+ if (yych <= '!') goto yy100;
+ goto yy94;
} else {
- if (yych == '$') goto yy102;
- goto yy99;
+ if (yych == '$') goto yy103;
+ goto yy100;
}
}
} else {
if (yych <= ':') {
- if (yych <= '\'') goto yy93;
- if (yych <= '/') goto yy99;
- if (yych <= '9') goto yy116;
- goto yy99;
+ if (yych <= '\'') goto yy94;
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy117;
+ goto yy100;
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy93;
- goto yy99;
+ if (yych <= ';') goto yy94;
+ goto yy100;
} else {
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy93;
- goto yy99;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy94;
+ goto yy100;
}
}
}
-yy118:
- YYDEBUG(118, *YYCURSOR);
+yy119:
+ YYDEBUG(119, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(119, *YYCURSOR);
+ YYDEBUG(120, *YYCURSOR);
if (yych <= '&') {
if (yych <= '\r') {
- if (yych == '\n') goto yy93;
- if (yych <= '\f') goto yy99;
- goto yy93;
+ if (yych == '\n') goto yy94;
+ if (yych <= '\f') goto yy100;
+ goto yy94;
} else {
if (yych <= '"') {
- if (yych <= '!') goto yy99;
- goto yy93;
+ if (yych <= '!') goto yy100;
+ goto yy94;
} else {
- if (yych == '$') goto yy102;
- goto yy99;
+ if (yych == '$') goto yy103;
+ goto yy100;
}
}
} else {
if (yych <= ':') {
- if (yych <= '\'') goto yy93;
- if (yych <= '/') goto yy99;
- if (yych <= '9') goto yy118;
- goto yy99;
+ if (yych <= '\'') goto yy94;
+ if (yych <= '/') goto yy100;
+ if (yych <= '9') goto yy119;
+ goto yy100;
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy93;
- goto yy99;
+ if (yych <= ';') goto yy94;
+ goto yy100;
} else {
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy93;
- goto yy99;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy94;
+ goto yy100;
}
}
}
-yy120:
- YYDEBUG(120, *YYCURSOR);
+yy121:
+ YYDEBUG(121, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(121, *YYCURSOR);
+ YYDEBUG(122, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy120;
+ goto yy121;
}
- YYDEBUG(122, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(123, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(124, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
+#line 418 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -1781,59 +1785,60 @@ yy120:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1785 "Zend/zend_ini_scanner.c"
-yy124:
- YYDEBUG(124, *YYCURSOR);
- ++YYCURSOR;
+#line 1789 "Zend/zend_ini_scanner.c"
+yy125:
YYDEBUG(125, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(126, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME);
return TC_DOLLAR_CURLY;
}
-#line 1796 "Zend/zend_ini_scanner.c"
-yy126:
- YYDEBUG(126, *YYCURSOR);
+#line 1800 "Zend/zend_ini_scanner.c"
+yy127:
+ YYDEBUG(127, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(127, *YYCURSOR);
+ YYDEBUG(128, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy126;
+ goto yy127;
}
if (yych <= '$') {
if (yych <= '\r') {
- if (yych == '\n') goto yy82;
- if (yych <= '\f') goto yy99;
- goto yy82;
+ if (yych <= 0x08) goto yy100;
+ if (yych <= '\n') goto yy83;
+ if (yych <= '\f') goto yy100;
+ goto yy83;
} else {
- if (yych == '"') goto yy128;
- if (yych <= '#') goto yy99;
- goto yy102;
+ if (yych == '"') goto yy129;
+ if (yych <= '#') goto yy100;
+ goto yy103;
}
} else {
if (yych <= ';') {
- if (yych == '\'') goto yy82;
- if (yych <= ':') goto yy99;
- goto yy82;
+ if (yych == '\'') goto yy83;
+ if (yych <= ':') goto yy100;
+ goto yy83;
} else {
- if (yych <= '[') goto yy99;
- if (yych <= '\\') goto yy101;
- if (yych <= ']') goto yy129;
- goto yy99;
+ if (yych <= '[') goto yy100;
+ if (yych <= '\\') goto yy102;
+ if (yych <= ']') goto yy130;
+ goto yy100;
}
}
-yy128:
- YYDEBUG(128, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy87;
yy129:
YYDEBUG(129, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy88;
+yy130:
+ YYDEBUG(130, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy98;
+ goto yy99;
}
/* *********************************** */
yyc_ST_RAW:
@@ -1872,44 +1877,44 @@ yyc_ST_RAW:
64, 64, 64, 64, 64, 64, 64, 64,
64, 64, 64, 64, 64, 64, 64, 64,
};
- YYDEBUG(130, *YYCURSOR);
+ YYDEBUG(131, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '\f') {
if (yych <= 0x08) {
- if (yych >= 0x01) goto yy134;
+ if (yych >= 0x01) goto yy135;
} else {
- if (yych <= '\t') goto yy136;
- if (yych <= '\n') goto yy137;
- goto yy134;
+ if (yych <= '\t') goto yy137;
+ if (yych <= '\n') goto yy138;
+ goto yy135;
}
} else {
if (yych <= ' ') {
- if (yych <= '\r') goto yy139;
- if (yych <= 0x1F) goto yy134;
- goto yy136;
+ if (yych <= '\r') goto yy140;
+ if (yych <= 0x1F) goto yy135;
+ goto yy137;
} else {
- if (yych == ';') goto yy140;
- goto yy134;
+ if (yych == ';') goto yy141;
+ goto yy135;
}
}
- YYDEBUG(132, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(133, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(134, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 643 "Zend/zend_ini_scanner.l"
+#line 645 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 1906 "Zend/zend_ini_scanner.c"
-yy134:
- YYDEBUG(134, *YYCURSOR);
- ++YYCURSOR;
+#line 1911 "Zend/zend_ini_scanner.c"
yy135:
YYDEBUG(135, *YYCURSOR);
+ ++YYCURSOR;
+yy136:
+ YYDEBUG(136, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 500 "Zend/zend_ini_scanner.l"
+#line 502 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
unsigned char *sc = NULL;
while (YYCURSOR < YYLIMIT) {
@@ -1946,111 +1951,113 @@ end_raw_value_chars:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 1950 "Zend/zend_ini_scanner.c"
-yy136:
- YYDEBUG(136, *YYCURSOR);
+#line 1955 "Zend/zend_ini_scanner.c"
+yy137:
+ YYDEBUG(137, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '\r') {
- if (yych <= 0x08) goto yy135;
- if (yych <= '\n') goto yy148;
- if (yych <= '\f') goto yy135;
- goto yy148;
+ if (yych <= 0x08) goto yy136;
+ if (yych <= '\n') goto yy149;
+ if (yych <= '\f') goto yy136;
+ goto yy149;
} else {
if (yych <= ' ') {
- if (yych <= 0x1F) goto yy135;
- goto yy148;
+ if (yych <= 0x1F) goto yy136;
+ goto yy149;
} else {
- if (yych == ';') goto yy148;
- goto yy135;
+ if (yych == ';') goto yy149;
+ goto yy136;
}
}
-yy137:
- YYDEBUG(137, *YYCURSOR);
- ++YYCURSOR;
yy138:
YYDEBUG(138, *YYCURSOR);
+ ++YYCURSOR;
+yy139:
+ YYDEBUG(139, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 541 "Zend/zend_ini_scanner.l"
+#line 543 "Zend/zend_ini_scanner.l"
{ /* End of option value */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 1981 "Zend/zend_ini_scanner.c"
-yy139:
- YYDEBUG(139, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy146;
- goto yy138;
+#line 1986 "Zend/zend_ini_scanner.c"
yy140:
YYDEBUG(140, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy142;
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy147;
+ goto yy139;
yy141:
YYDEBUG(141, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy143;
+yy142:
+ YYDEBUG(142, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy142:
- YYDEBUG(142, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy141;
- }
- if (yych >= '\r') goto yy145;
yy143:
YYDEBUG(143, *YYCURSOR);
- ++YYCURSOR;
+ if (yybm[0+yych] & 64) {
+ goto yy142;
+ }
+ if (yych >= '\v') goto yy146;
yy144:
YYDEBUG(144, *YYCURSOR);
+ ++YYCURSOR;
+yy145:
+ YYDEBUG(145, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 637 "Zend/zend_ini_scanner.l"
+#line 639 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 2015 "Zend/zend_ini_scanner.c"
-yy145:
- YYDEBUG(145, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy143;
- goto yy144;
+#line 2020 "Zend/zend_ini_scanner.c"
yy146:
YYDEBUG(146, *YYCURSOR);
yych = *++YYCURSOR;
- goto yy138;
+ if (yych == '\n') goto yy144;
+ goto yy145;
yy147:
YYDEBUG(147, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy139;
+yy148:
+ YYDEBUG(148, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy148:
- YYDEBUG(148, *YYCURSOR);
+yy149:
+ YYDEBUG(149, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy147;
+ goto yy148;
}
if (yych <= '\f') {
- if (yych == '\n') goto yy146;
+ if (yych <= 0x08) goto yy150;
+ if (yych <= '\n') goto yy147;
} else {
- if (yych <= '\r') goto yy150;
- if (yych == ';') goto yy141;
+ if (yych <= '\r') goto yy151;
+ if (yych == ';') goto yy142;
}
- YYDEBUG(149, *YYCURSOR);
+yy150:
+ YYDEBUG(150, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 627 "Zend/zend_ini_scanner.l"
+#line 629 "Zend/zend_ini_scanner.l"
{
/* eat whitespace */
goto restart;
}
-#line 2049 "Zend/zend_ini_scanner.c"
-yy150:
- YYDEBUG(150, *YYCURSOR);
+#line 2056 "Zend/zend_ini_scanner.c"
+yy151:
+ YYDEBUG(151, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy146;
- goto yy138;
+ if ((yych = *YYCURSOR) == '\n') goto yy147;
+ goto yy139;
}
/* *********************************** */
yyc_ST_SECTION_RAW:
@@ -2089,85 +2096,86 @@ yyc_ST_SECTION_RAW:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(151, *YYCURSOR);
+ YYDEBUG(152, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '\f') {
- if (yych == '\n') goto yy155;
+ if (yych == '\n') goto yy156;
} else {
- if (yych <= '\r') goto yy155;
- if (yych == ']') goto yy157;
+ if (yych <= '\r') goto yy156;
+ if (yych == ']') goto yy158;
}
- YYDEBUG(153, *YYCURSOR);
+ YYDEBUG(154, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy164;
-yy154:
- YYDEBUG(154, *YYCURSOR);
+ goto yy165;
+yy155:
+ YYDEBUG(155, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 537 "Zend/zend_ini_scanner.l"
+#line 539 "Zend/zend_ini_scanner.l"
{ /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 2113 "Zend/zend_ini_scanner.c"
-yy155:
- YYDEBUG(155, *YYCURSOR);
- ++YYCURSOR;
+#line 2120 "Zend/zend_ini_scanner.c"
+yy156:
YYDEBUG(156, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(157, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 648 "Zend/zend_ini_scanner.l"
+#line 650 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 2123 "Zend/zend_ini_scanner.c"
-yy157:
- YYDEBUG(157, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy160;
+#line 2130 "Zend/zend_ini_scanner.c"
yy158:
YYDEBUG(158, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy161;
+yy159:
+ YYDEBUG(159, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
+#line 427 "Zend/zend_ini_scanner.l"
{ /* End of section */
BEGIN(INITIAL);
SCNG(lineno)++;
return ']';
}
-#line 2138 "Zend/zend_ini_scanner.c"
-yy159:
- YYDEBUG(159, *YYCURSOR);
+#line 2145 "Zend/zend_ini_scanner.c"
+yy160:
+ YYDEBUG(160, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy160:
- YYDEBUG(160, *YYCURSOR);
- if (yybm[0+yych] & 64) {
- goto yy159;
- }
- if (yych == '\n') goto yy161;
- if (yych == '\r') goto yy162;
- goto yy158;
yy161:
YYDEBUG(161, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy158;
+ if (yybm[0+yych] & 64) {
+ goto yy160;
+ }
+ if (yych <= 0x08) goto yy159;
+ if (yych <= '\n') goto yy162;
+ if (yych == '\r') goto yy163;
+ goto yy159;
yy162:
YYDEBUG(162, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy161;
- goto yy158;
+ goto yy159;
yy163:
YYDEBUG(163, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy162;
+ goto yy159;
+yy164:
+ YYDEBUG(164, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy164:
- YYDEBUG(164, *YYCURSOR);
+yy165:
+ YYDEBUG(165, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy163;
+ goto yy164;
}
- goto yy154;
+ goto yy155;
}
/* *********************************** */
yyc_ST_SECTION_VALUE:
@@ -2206,523 +2214,526 @@ yyc_ST_SECTION_VALUE:
132, 132, 132, 132, 132, 132, 132, 132,
132, 132, 132, 132, 132, 132, 132, 132,
};
- YYDEBUG(165, *YYCURSOR);
+ YYDEBUG(166, *YYCURSOR);
YYFILL(3);
yych = *YYCURSOR;
if (yych <= '-') {
if (yych <= ' ') {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy167;
- if (yych <= '\t') goto yy169;
- goto yy170;
+ if (yych <= 0x08) goto yy168;
+ if (yych <= '\t') goto yy170;
+ goto yy171;
} else {
- if (yych == '\r') goto yy170;
- if (yych >= ' ') goto yy169;
+ if (yych == '\r') goto yy171;
+ if (yych >= ' ') goto yy170;
}
} else {
if (yych <= '$') {
- if (yych == '"') goto yy172;
- if (yych >= '$') goto yy174;
+ if (yych == '"') goto yy173;
+ if (yych >= '$') goto yy175;
} else {
- if (yych == '\'') goto yy175;
- if (yych >= '-') goto yy176;
+ if (yych == '\'') goto yy176;
+ if (yych >= '-') goto yy177;
}
}
} else {
if (yych <= 'Z') {
if (yych <= '9') {
- if (yych <= '.') goto yy177;
- if (yych >= '0') goto yy178;
+ if (yych <= '.') goto yy178;
+ if (yych >= '0') goto yy179;
} else {
- if (yych == ';') goto yy170;
- if (yych >= 'A') goto yy180;
+ if (yych == ';') goto yy171;
+ if (yych >= 'A') goto yy181;
}
} else {
if (yych <= '^') {
- if (yych <= '[') goto yy167;
- if (yych <= '\\') goto yy182;
- if (yych <= ']') goto yy183;
+ if (yych <= '[') goto yy168;
+ if (yych <= '\\') goto yy183;
+ if (yych <= ']') goto yy184;
} else {
- if (yych == '`') goto yy167;
- if (yych <= 'z') goto yy180;
+ if (yych == '`') goto yy168;
+ if (yych <= 'z') goto yy181;
}
}
}
-yy167:
- YYDEBUG(167, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy190;
yy168:
YYDEBUG(168, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy191;
+yy169:
+ YYDEBUG(169, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 573 "Zend/zend_ini_scanner.l"
+#line 575 "Zend/zend_ini_scanner.l"
{ /* Get rest as section/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2264 "Zend/zend_ini_scanner.c"
-yy169:
- YYDEBUG(169, *YYCURSOR);
+#line 2272 "Zend/zend_ini_scanner.c"
+yy170:
+ YYDEBUG(170, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 0x1F) {
- if (yych == '\t') goto yy216;
- goto yy190;
+ if (yych == '\t') goto yy217;
+ goto yy191;
} else {
- if (yych <= ' ') goto yy216;
- if (yych == '"') goto yy218;
- goto yy190;
+ if (yych <= ' ') goto yy217;
+ if (yych == '"') goto yy219;
+ goto yy191;
}
-yy170:
- YYDEBUG(170, *YYCURSOR);
- ++YYCURSOR;
yy171:
YYDEBUG(171, *YYCURSOR);
+ ++YYCURSOR;
+yy172:
+ YYDEBUG(172, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 648 "Zend/zend_ini_scanner.l"
+#line 650 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 2287 "Zend/zend_ini_scanner.c"
-yy172:
- YYDEBUG(172, *YYCURSOR);
- ++YYCURSOR;
+#line 2295 "Zend/zend_ini_scanner.c"
yy173:
YYDEBUG(173, *YYCURSOR);
+ ++YYCURSOR;
+yy174:
+ YYDEBUG(174, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 577 "Zend/zend_ini_scanner.l"
+#line 579 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES);
return '"';
}
-#line 2299 "Zend/zend_ini_scanner.c"
-yy174:
- YYDEBUG(174, *YYCURSOR);
+#line 2307 "Zend/zend_ini_scanner.c"
+yy175:
+ YYDEBUG(175, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy171;
- if (yych <= '[') goto yy189;
- goto yy194;
+ if (yych <= 0x00) goto yy172;
+ if (yych <= '[') goto yy190;
+ goto yy195;
} else {
- if (yych == '{') goto yy214;
- goto yy189;
+ if (yych == '{') goto yy215;
+ goto yy190;
}
-yy175:
- YYDEBUG(175, *YYCURSOR);
+yy176:
+ YYDEBUG(176, *YYCURSOR);
yyaccept = 1;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy210;
+ goto yy211;
}
- goto yy171;
-yy176:
- YYDEBUG(176, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy190;
- if (yych <= '9') goto yy208;
- goto yy190;
+ goto yy172;
yy177:
YYDEBUG(177, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy190;
- if (yych <= '9') goto yy206;
- goto yy190;
+ if (yych <= '/') goto yy191;
+ if (yych <= '9') goto yy209;
+ goto yy191;
yy178:
YYDEBUG(178, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy191;
+ if (yych <= '9') goto yy207;
+ goto yy191;
+yy179:
+ YYDEBUG(179, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '\'') {
if (yych <= '\r') {
- if (yych == '\n') goto yy179;
- if (yych <= '\f') goto yy190;
+ if (yych == '\n') goto yy180;
+ if (yych <= '\f') goto yy191;
} else {
- if (yych == '"') goto yy179;
- if (yych <= '&') goto yy190;
+ if (yych == '"') goto yy180;
+ if (yych <= '&') goto yy191;
}
} else {
if (yych <= '9') {
- if (yych == '.') goto yy202;
- if (yych <= '/') goto yy190;
- goto yy204;
+ if (yych == '.') goto yy203;
+ if (yych <= '/') goto yy191;
+ goto yy205;
} else {
if (yych <= ';') {
- if (yych <= ':') goto yy190;
+ if (yych <= ':') goto yy191;
} else {
- if (yych != ']') goto yy190;
+ if (yych != ']') goto yy191;
}
}
}
-yy179:
- YYDEBUG(179, *YYCURSOR);
+yy180:
+ YYDEBUG(180, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 551 "Zend/zend_ini_scanner.l"
+#line 553 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 2365 "Zend/zend_ini_scanner.c"
-yy180:
- YYDEBUG(180, *YYCURSOR);
+#line 2373 "Zend/zend_ini_scanner.c"
+yy181:
+ YYDEBUG(181, *YYCURSOR);
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy200;
+ goto yy201;
}
if (yych <= '"') {
if (yych <= '\f') {
- if (yych != '\n') goto yy190;
+ if (yych != '\n') goto yy191;
} else {
- if (yych <= '\r') goto yy181;
- if (yych <= '!') goto yy190;
+ if (yych <= '\r') goto yy182;
+ if (yych <= '!') goto yy191;
}
} else {
if (yych <= ':') {
- if (yych != '\'') goto yy190;
+ if (yych != '\'') goto yy191;
} else {
- if (yych <= ';') goto yy181;
- if (yych != ']') goto yy190;
+ if (yych <= ';') goto yy182;
+ if (yych != ']') goto yy191;
}
}
-yy181:
- YYDEBUG(181, *YYCURSOR);
+yy182:
+ YYDEBUG(182, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 547 "Zend/zend_ini_scanner.l"
+#line 549 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 2395 "Zend/zend_ini_scanner.c"
-yy182:
- YYDEBUG(182, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy189;
+#line 2403 "Zend/zend_ini_scanner.c"
yy183:
YYDEBUG(183, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy186;
+ yych = *++YYCURSOR;
+ goto yy190;
yy184:
YYDEBUG(184, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy187;
+yy185:
+ YYDEBUG(185, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 425 "Zend/zend_ini_scanner.l"
+#line 427 "Zend/zend_ini_scanner.l"
{ /* End of section */
BEGIN(INITIAL);
SCNG(lineno)++;
return ']';
}
-#line 2414 "Zend/zend_ini_scanner.c"
-yy185:
- YYDEBUG(185, *YYCURSOR);
+#line 2422 "Zend/zend_ini_scanner.c"
+yy186:
+ YYDEBUG(186, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy186:
- YYDEBUG(186, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy185;
- }
- if (yych == '\n') goto yy187;
- if (yych == '\r') goto yy188;
- goto yy184;
yy187:
YYDEBUG(187, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy184;
+ if (yybm[0+yych] & 2) {
+ goto yy186;
+ }
+ if (yych <= 0x08) goto yy185;
+ if (yych <= '\n') goto yy188;
+ if (yych == '\r') goto yy189;
+ goto yy185;
yy188:
YYDEBUG(188, *YYCURSOR);
yych = *++YYCURSOR;
- if (yych == '\n') goto yy187;
- goto yy184;
+ goto yy185;
yy189:
YYDEBUG(189, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy188;
+ goto yy185;
+yy190:
+ YYDEBUG(190, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy190:
- YYDEBUG(190, *YYCURSOR);
- if (yybm[0+yych] & 4) {
- goto yy189;
- }
- if (yych == '$') goto yy192;
- if (yych != '\\') goto yy168;
yy191:
YYDEBUG(191, *YYCURSOR);
+ if (yybm[0+yych] & 4) {
+ goto yy190;
+ }
+ if (yych <= '"') goto yy169;
+ if (yych <= '$') goto yy193;
+ if (yych <= ';') goto yy169;
+ if (yych >= ']') goto yy169;
+yy192:
+ YYDEBUG(192, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- goto yy189;
-yy192:
- YYDEBUG(192, *YYCURSOR);
+ goto yy190;
+yy193:
+ YYDEBUG(193, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy193;
- if (yych <= '[') goto yy189;
- goto yy194;
+ if (yych <= 0x00) goto yy194;
+ if (yych <= '[') goto yy190;
+ goto yy195;
} else {
- if (yych != '{') goto yy189;
+ if (yych != '{') goto yy190;
}
-yy193:
- YYDEBUG(193, *YYCURSOR);
+yy194:
+ YYDEBUG(194, *YYCURSOR);
YYCURSOR = YYMARKER;
if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy168;
+ if (yyaccept == 0) {
+ goto yy169;
} else {
- goto yy171;
+ goto yy172;
}
} else {
- if (yyaccept <= 2) {
- goto yy179;
+ if (yyaccept == 2) {
+ goto yy180;
} else {
- goto yy181;
+ goto yy182;
}
}
-yy194:
- YYDEBUG(194, *YYCURSOR);
+yy195:
+ YYDEBUG(195, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 8) {
- goto yy195;
+ goto yy196;
}
- if (yych == '\\') goto yy197;
- goto yy189;
-yy195:
- YYDEBUG(195, *YYCURSOR);
+ if (yych == '\\') goto yy198;
+ goto yy190;
+yy196:
+ YYDEBUG(196, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(196, *YYCURSOR);
+ YYDEBUG(197, *YYCURSOR);
if (yybm[0+yych] & 8) {
- goto yy195;
+ goto yy196;
}
- if (yych == '\\') goto yy199;
- goto yy189;
-yy197:
- YYDEBUG(197, *YYCURSOR);
+ if (yych == '\\') goto yy200;
+ goto yy190;
+yy198:
+ YYDEBUG(198, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(198, *YYCURSOR);
+ YYDEBUG(199, *YYCURSOR);
if (yybm[0+yych] & 8) {
- goto yy195;
+ goto yy196;
}
- if (yych == '\\') goto yy197;
- goto yy189;
-yy199:
- YYDEBUG(199, *YYCURSOR);
+ if (yych == '\\') goto yy198;
+ goto yy190;
+yy200:
+ YYDEBUG(200, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 8) {
- goto yy195;
+ goto yy196;
}
- if (yych == '\\') goto yy197;
- goto yy189;
-yy200:
- YYDEBUG(200, *YYCURSOR);
+ if (yych == '\\') goto yy198;
+ goto yy190;
+yy201:
+ YYDEBUG(201, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(201, *YYCURSOR);
+ YYDEBUG(202, *YYCURSOR);
if (yybm[0+yych] & 32) {
- goto yy200;
+ goto yy201;
}
if (yych <= '$') {
if (yych <= '\r') {
- if (yych == '\n') goto yy181;
- if (yych <= '\f') goto yy189;
- goto yy181;
+ if (yych == '\n') goto yy182;
+ if (yych <= '\f') goto yy190;
+ goto yy182;
} else {
- if (yych == '"') goto yy181;
- if (yych <= '#') goto yy189;
- goto yy192;
+ if (yych == '"') goto yy182;
+ if (yych <= '#') goto yy190;
+ goto yy193;
}
} else {
if (yych <= ';') {
- if (yych == '\'') goto yy181;
- if (yych <= ':') goto yy189;
- goto yy181;
+ if (yych == '\'') goto yy182;
+ if (yych <= ':') goto yy190;
+ goto yy182;
} else {
- if (yych <= '[') goto yy189;
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy181;
- goto yy189;
+ if (yych <= '[') goto yy190;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy182;
+ goto yy190;
}
}
-yy202:
- YYDEBUG(202, *YYCURSOR);
+yy203:
+ YYDEBUG(203, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(203, *YYCURSOR);
+ YYDEBUG(204, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy202;
+ goto yy203;
}
if (yych <= '$') {
if (yych <= '\r') {
- if (yych == '\n') goto yy179;
- if (yych <= '\f') goto yy189;
- goto yy179;
+ if (yych == '\n') goto yy180;
+ if (yych <= '\f') goto yy190;
+ goto yy180;
} else {
- if (yych == '"') goto yy179;
- if (yych <= '#') goto yy189;
- goto yy192;
+ if (yych == '"') goto yy180;
+ if (yych <= '#') goto yy190;
+ goto yy193;
}
} else {
if (yych <= ';') {
- if (yych == '\'') goto yy179;
- if (yych <= ':') goto yy189;
- goto yy179;
+ if (yych == '\'') goto yy180;
+ if (yych <= ':') goto yy190;
+ goto yy180;
} else {
- if (yych <= '[') goto yy189;
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy179;
- goto yy189;
+ if (yych <= '[') goto yy190;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy180;
+ goto yy190;
}
}
-yy204:
- YYDEBUG(204, *YYCURSOR);
+yy205:
+ YYDEBUG(205, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(205, *YYCURSOR);
+ YYDEBUG(206, *YYCURSOR);
if (yych <= '\'') {
if (yych <= '!') {
if (yych <= '\n') {
- if (yych <= '\t') goto yy189;
- goto yy179;
+ if (yych <= '\t') goto yy190;
+ goto yy180;
} else {
- if (yych == '\r') goto yy179;
- goto yy189;
+ if (yych == '\r') goto yy180;
+ goto yy190;
}
} else {
if (yych <= '#') {
- if (yych <= '"') goto yy179;
- goto yy189;
+ if (yych <= '"') goto yy180;
+ goto yy190;
} else {
- if (yych <= '$') goto yy192;
- if (yych <= '&') goto yy189;
- goto yy179;
+ if (yych <= '$') goto yy193;
+ if (yych <= '&') goto yy190;
+ goto yy180;
}
}
} else {
if (yych <= ':') {
if (yych <= '.') {
- if (yych <= '-') goto yy189;
- goto yy202;
+ if (yych <= '-') goto yy190;
+ goto yy203;
} else {
- if (yych <= '/') goto yy189;
- if (yych <= '9') goto yy204;
- goto yy189;
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy205;
+ goto yy190;
}
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy179;
- goto yy189;
+ if (yych <= ';') goto yy180;
+ goto yy190;
} else {
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy179;
- goto yy189;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy180;
+ goto yy190;
}
}
}
-yy206:
- YYDEBUG(206, *YYCURSOR);
+yy207:
+ YYDEBUG(207, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(207, *YYCURSOR);
+ YYDEBUG(208, *YYCURSOR);
if (yych <= '&') {
if (yych <= '\r') {
- if (yych == '\n') goto yy179;
- if (yych <= '\f') goto yy189;
- goto yy179;
+ if (yych == '\n') goto yy180;
+ if (yych <= '\f') goto yy190;
+ goto yy180;
} else {
if (yych <= '"') {
- if (yych <= '!') goto yy189;
- goto yy179;
+ if (yych <= '!') goto yy190;
+ goto yy180;
} else {
- if (yych == '$') goto yy192;
- goto yy189;
+ if (yych == '$') goto yy193;
+ goto yy190;
}
}
} else {
if (yych <= ':') {
- if (yych <= '\'') goto yy179;
- if (yych <= '/') goto yy189;
- if (yych <= '9') goto yy206;
- goto yy189;
+ if (yych <= '\'') goto yy180;
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy207;
+ goto yy190;
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy179;
- goto yy189;
+ if (yych <= ';') goto yy180;
+ goto yy190;
} else {
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy179;
- goto yy189;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy180;
+ goto yy190;
}
}
}
-yy208:
- YYDEBUG(208, *YYCURSOR);
+yy209:
+ YYDEBUG(209, *YYCURSOR);
yyaccept = 2;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(209, *YYCURSOR);
+ YYDEBUG(210, *YYCURSOR);
if (yych <= '&') {
if (yych <= '\r') {
- if (yych == '\n') goto yy179;
- if (yych <= '\f') goto yy189;
- goto yy179;
+ if (yych == '\n') goto yy180;
+ if (yych <= '\f') goto yy190;
+ goto yy180;
} else {
if (yych <= '"') {
- if (yych <= '!') goto yy189;
- goto yy179;
+ if (yych <= '!') goto yy190;
+ goto yy180;
} else {
- if (yych == '$') goto yy192;
- goto yy189;
+ if (yych == '$') goto yy193;
+ goto yy190;
}
}
} else {
if (yych <= ':') {
- if (yych <= '\'') goto yy179;
- if (yych <= '/') goto yy189;
- if (yych <= '9') goto yy208;
- goto yy189;
+ if (yych <= '\'') goto yy180;
+ if (yych <= '/') goto yy190;
+ if (yych <= '9') goto yy209;
+ goto yy190;
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy179;
- goto yy189;
+ if (yych <= ';') goto yy180;
+ goto yy190;
} else {
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy179;
- goto yy189;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy180;
+ goto yy190;
}
}
}
-yy210:
- YYDEBUG(210, *YYCURSOR);
+yy211:
+ YYDEBUG(211, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(211, *YYCURSOR);
+ YYDEBUG(212, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy210;
+ goto yy211;
}
- YYDEBUG(212, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(213, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(214, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
+#line 418 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -2731,65 +2742,65 @@ yy210:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 2735 "Zend/zend_ini_scanner.c"
-yy214:
- YYDEBUG(214, *YYCURSOR);
- ++YYCURSOR;
+#line 2746 "Zend/zend_ini_scanner.c"
+yy215:
YYDEBUG(215, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(216, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME);
return TC_DOLLAR_CURLY;
}
-#line 2746 "Zend/zend_ini_scanner.c"
-yy216:
- YYDEBUG(216, *YYCURSOR);
+#line 2757 "Zend/zend_ini_scanner.c"
+yy217:
+ YYDEBUG(217, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(217, *YYCURSOR);
+ YYDEBUG(218, *YYCURSOR);
if (yych <= '"') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy189;
- if (yych <= '\t') goto yy216;
- if (yych <= '\n') goto yy168;
- goto yy189;
+ if (yych <= 0x08) goto yy190;
+ if (yych <= '\t') goto yy217;
+ if (yych <= '\n') goto yy169;
+ goto yy190;
} else {
if (yych <= 0x1F) {
- if (yych <= '\r') goto yy168;
- goto yy189;
+ if (yych <= '\r') goto yy169;
+ goto yy190;
} else {
- if (yych <= ' ') goto yy216;
- if (yych <= '!') goto yy189;
+ if (yych <= ' ') goto yy217;
+ if (yych <= '!') goto yy190;
}
}
} else {
if (yych <= ':') {
if (yych <= '$') {
- if (yych <= '#') goto yy189;
- goto yy192;
+ if (yych <= '#') goto yy190;
+ goto yy193;
} else {
- if (yych == '\'') goto yy168;
- goto yy189;
+ if (yych == '\'') goto yy169;
+ goto yy190;
}
} else {
if (yych <= '[') {
- if (yych <= ';') goto yy168;
- goto yy189;
+ if (yych <= ';') goto yy169;
+ goto yy190;
} else {
- if (yych <= '\\') goto yy191;
- if (yych <= ']') goto yy168;
- goto yy189;
+ if (yych <= '\\') goto yy192;
+ if (yych <= ']') goto yy169;
+ goto yy190;
}
}
}
-yy218:
- YYDEBUG(218, *YYCURSOR);
+yy219:
+ YYDEBUG(219, *YYCURSOR);
++YYCURSOR;
yych = *YYCURSOR;
- goto yy173;
+ goto yy174;
}
/* *********************************** */
yyc_ST_VALUE:
@@ -2828,28 +2839,28 @@ yyc_ST_VALUE:
162, 162, 162, 162, 162, 162, 162, 162,
162, 162, 162, 162, 162, 162, 162, 162,
};
- YYDEBUG(219, *YYCURSOR);
+ YYDEBUG(220, *YYCURSOR);
YYFILL(6);
yych = *YYCURSOR;
YYDEBUG(-1, yych);
switch (yych) {
- case 0x00: goto yy221;
+ case 0x00: goto yy222;
case '\t':
- case ' ': goto yy225;
- case '\n': goto yy227;
- case '\r': goto yy229;
+ case ' ': goto yy226;
+ case '\n': goto yy228;
+ case '\r': goto yy230;
case '!':
case '&':
case '(':
case ')':
case '^':
case '|':
- case '~': goto yy230;
- case '"': goto yy232;
- case '$': goto yy234;
- case '\'': goto yy235;
- case '-': goto yy236;
- case '.': goto yy237;
+ case '~': goto yy231;
+ case '"': goto yy233;
+ case '$': goto yy235;
+ case '\'': goto yy236;
+ case '-': goto yy237;
+ case '.': goto yy238;
case '0':
case '1':
case '2':
@@ -2859,9 +2870,9 @@ yyc_ST_VALUE:
case '6':
case '7':
case '8':
- case '9': goto yy238;
- case ';': goto yy240;
- case '=': goto yy241;
+ case '9': goto yy239;
+ case ';': goto yy241;
+ case '=': goto yy242;
case 'A':
case 'B':
case 'C':
@@ -2904,1637 +2915,1638 @@ yyc_ST_VALUE:
case 'v':
case 'w':
case 'x':
- case 'z': goto yy243;
+ case 'z': goto yy244;
case 'F':
- case 'f': goto yy245;
+ case 'f': goto yy246;
case 'N':
- case 'n': goto yy246;
+ case 'n': goto yy247;
case 'O':
- case 'o': goto yy247;
+ case 'o': goto yy248;
case 'T':
- case 't': goto yy248;
+ case 't': goto yy249;
case 'Y':
- case 'y': goto yy249;
- default: goto yy223;
+ case 'y': goto yy250;
+ default: goto yy224;
}
-yy221:
- YYDEBUG(221, *YYCURSOR);
- ++YYCURSOR;
yy222:
YYDEBUG(222, *YYCURSOR);
+ ++YYCURSOR;
+yy223:
+ YYDEBUG(223, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 643 "Zend/zend_ini_scanner.l"
+#line 645 "Zend/zend_ini_scanner.l"
{ /* End of option value (if EOF is reached before EOL */
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 2932 "Zend/zend_ini_scanner.c"
-yy223:
- YYDEBUG(223, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy251;
+#line 2943 "Zend/zend_ini_scanner.c"
yy224:
YYDEBUG(224, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy252;
+yy225:
+ YYDEBUG(225, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 569 "Zend/zend_ini_scanner.l"
+#line 571 "Zend/zend_ini_scanner.l"
{ /* Get everything else as option/offset value */
RETURN_TOKEN(TC_STRING, yytext, yyleng);
}
-#line 2945 "Zend/zend_ini_scanner.c"
-yy225:
- YYDEBUG(225, *YYCURSOR);
- yyaccept = 1;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy305;
+#line 2956 "Zend/zend_ini_scanner.c"
yy226:
YYDEBUG(226, *YYCURSOR);
+ yyaccept = 1;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy306;
+yy227:
+ YYDEBUG(227, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 623 "Zend/zend_ini_scanner.l"
+#line 625 "Zend/zend_ini_scanner.l"
{
RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
}
-#line 2958 "Zend/zend_ini_scanner.c"
-yy227:
- YYDEBUG(227, *YYCURSOR);
- ++YYCURSOR;
+#line 2969 "Zend/zend_ini_scanner.c"
yy228:
YYDEBUG(228, *YYCURSOR);
+ ++YYCURSOR;
+yy229:
+ YYDEBUG(229, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 541 "Zend/zend_ini_scanner.l"
+#line 543 "Zend/zend_ini_scanner.l"
{ /* End of option value */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 2971 "Zend/zend_ini_scanner.c"
-yy229:
- YYDEBUG(229, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy303;
- goto yy228;
+#line 2982 "Zend/zend_ini_scanner.c"
yy230:
YYDEBUG(230, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy302;
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy304;
+ goto yy229;
yy231:
YYDEBUG(231, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy303;
+yy232:
+ YYDEBUG(232, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 559 "Zend/zend_ini_scanner.l"
+#line 561 "Zend/zend_ini_scanner.l"
{ /* Boolean operators */
return yytext[0];
}
-#line 2989 "Zend/zend_ini_scanner.c"
-yy232:
- YYDEBUG(232, *YYCURSOR);
- ++YYCURSOR;
+#line 3000 "Zend/zend_ini_scanner.c"
yy233:
YYDEBUG(233, *YYCURSOR);
+ ++YYCURSOR;
+yy234:
+ YYDEBUG(234, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 577 "Zend/zend_ini_scanner.l"
+#line 579 "Zend/zend_ini_scanner.l"
{ /* Double quoted '"' string start */
yy_push_state(ST_DOUBLE_QUOTES);
return '"';
}
-#line 3001 "Zend/zend_ini_scanner.c"
-yy234:
- YYDEBUG(234, *YYCURSOR);
+#line 3012 "Zend/zend_ini_scanner.c"
+yy235:
+ YYDEBUG(235, *YYCURSOR);
yych = *++YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy222;
- if (yych <= '[') goto yy250;
- goto yy257;
+ if (yych <= 0x00) goto yy223;
+ if (yych <= '[') goto yy251;
+ goto yy258;
} else {
- if (yych == '{') goto yy299;
- goto yy250;
+ if (yych == '{') goto yy300;
+ goto yy251;
}
-yy235:
- YYDEBUG(235, *YYCURSOR);
+yy236:
+ YYDEBUG(236, *YYCURSOR);
yyaccept = 2;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy295;
+ goto yy296;
}
- goto yy222;
-yy236:
- YYDEBUG(236, *YYCURSOR);
- yyaccept = 0;
- yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy251;
- if (yych <= '9') goto yy293;
- goto yy251;
+ goto yy223;
yy237:
YYDEBUG(237, *YYCURSOR);
yyaccept = 0;
yych = *(YYMARKER = ++YYCURSOR);
- if (yych <= '/') goto yy251;
- if (yych <= '9') goto yy291;
- goto yy251;
+ if (yych <= '/') goto yy252;
+ if (yych <= '9') goto yy294;
+ goto yy252;
yy238:
YYDEBUG(238, *YYCURSOR);
+ yyaccept = 0;
+ yych = *(YYMARKER = ++YYCURSOR);
+ if (yych <= '/') goto yy252;
+ if (yych <= '9') goto yy292;
+ goto yy252;
+yy239:
+ YYDEBUG(239, *YYCURSOR);
yyaccept = 3;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy239;
- if (yych <= 0x08) goto yy251;
+ if (yych <= 0x00) goto yy240;
+ if (yych <= 0x08) goto yy252;
} else {
- if (yych != '\r') goto yy251;
+ if (yych != '\r') goto yy252;
}
} else {
if (yych <= ')') {
- if (yych <= '"') goto yy239;
- if (yych <= '%') goto yy251;
+ if (yych <= '"') goto yy240;
+ if (yych <= '%') goto yy252;
} else {
- if (yych == '.') goto yy287;
- goto yy251;
+ if (yych == '.') goto yy288;
+ goto yy252;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= '9') goto yy289;
- if (yych <= ':') goto yy251;
+ if (yych <= '9') goto yy290;
+ if (yych <= ':') goto yy252;
} else {
- if (yych != '=') goto yy251;
+ if (yych != '=') goto yy252;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy239;
- if (yych <= '{') goto yy251;
+ if (yych <= '^') goto yy240;
+ if (yych <= '{') goto yy252;
} else {
- if (yych != '~') goto yy251;
+ if (yych != '~') goto yy252;
}
}
}
-yy239:
- YYDEBUG(239, *YYCURSOR);
+yy240:
+ YYDEBUG(240, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 551 "Zend/zend_ini_scanner.l"
+#line 553 "Zend/zend_ini_scanner.l"
{ /* Get number option value as string */
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
}
-#line 3080 "Zend/zend_ini_scanner.c"
-yy240:
- YYDEBUG(240, *YYCURSOR);
- yyaccept = 2;
- yych = *(YYMARKER = ++YYCURSOR);
- goto yy283;
+#line 3091 "Zend/zend_ini_scanner.c"
yy241:
YYDEBUG(241, *YYCURSOR);
- ++YYCURSOR;
+ yyaccept = 2;
+ yych = *(YYMARKER = ++YYCURSOR);
+ goto yy284;
+yy242:
YYDEBUG(242, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(243, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 563 "Zend/zend_ini_scanner.l"
+#line 565 "Zend/zend_ini_scanner.l"
{ /* Make = used in option value to trigger error */
yyless(0);
BEGIN(INITIAL);
return END_OF_LINE;
}
-#line 3097 "Zend/zend_ini_scanner.c"
-yy243:
- YYDEBUG(243, *YYCURSOR);
+#line 3108 "Zend/zend_ini_scanner.c"
+yy244:
+ YYDEBUG(244, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy252;
+ goto yy253;
}
if (yych <= ':') {
if (yych <= '\r') {
if (yych <= 0x08) {
- if (yych >= 0x01) goto yy251;
+ if (yych >= 0x01) goto yy252;
} else {
- if (yych <= '\n') goto yy244;
- if (yych <= '\f') goto yy251;
+ if (yych <= '\n') goto yy245;
+ if (yych <= '\f') goto yy252;
}
} else {
if (yych <= '"') {
- if (yych <= 0x1F) goto yy251;
+ if (yych <= 0x1F) goto yy252;
} else {
- if (yych <= '%') goto yy251;
- if (yych >= '*') goto yy251;
+ if (yych <= '%') goto yy252;
+ if (yych >= '*') goto yy252;
}
}
} else {
if (yych <= '^') {
if (yych <= '<') {
- if (yych >= '<') goto yy251;
+ if (yych >= '<') goto yy252;
} else {
- if (yych <= '=') goto yy244;
- if (yych <= ']') goto yy251;
+ if (yych <= '=') goto yy245;
+ if (yych <= ']') goto yy252;
}
} else {
if (yych <= '|') {
- if (yych <= '{') goto yy251;
+ if (yych <= '{') goto yy252;
} else {
- if (yych != '~') goto yy251;
+ if (yych != '~') goto yy252;
}
}
}
-yy244:
- YYDEBUG(244, *YYCURSOR);
+yy245:
+ YYDEBUG(245, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 547 "Zend/zend_ini_scanner.l"
+#line 549 "Zend/zend_ini_scanner.l"
{ /* Get constant option value */
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
}
-#line 3144 "Zend/zend_ini_scanner.c"
-yy245:
- YYDEBUG(245, *YYCURSOR);
+#line 3155 "Zend/zend_ini_scanner.c"
+yy246:
+ YYDEBUG(246, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '<') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '/') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- goto yy251;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ goto yy252;
} else {
- if (yych <= '9') goto yy252;
- if (yych == ';') goto yy244;
- goto yy251;
+ if (yych <= '9') goto yy253;
+ if (yych == ';') goto yy245;
+ goto yy252;
}
}
} else {
if (yych <= '_') {
if (yych <= 'A') {
- if (yych <= '=') goto yy244;
- if (yych <= '@') goto yy251;
- goto yy279;
+ if (yych <= '=') goto yy245;
+ if (yych <= '@') goto yy252;
+ goto yy280;
} else {
- if (yych <= 'Z') goto yy252;
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- goto yy252;
+ if (yych <= 'Z') goto yy253;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ goto yy253;
}
} else {
if (yych <= '{') {
- if (yych <= '`') goto yy251;
- if (yych <= 'a') goto yy279;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych <= '`') goto yy252;
+ if (yych <= 'a') goto yy280;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy246:
- YYDEBUG(246, *YYCURSOR);
+yy247:
+ YYDEBUG(247, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'N') {
if (yych <= '%') {
if (yych <= '\f') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- if (yych <= '\n') goto yy244;
- goto yy251;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ if (yych <= '\n') goto yy245;
+ goto yy252;
} else {
- if (yych <= '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- if (yych <= '"') goto yy244;
- goto yy251;
+ if (yych <= '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ if (yych <= '"') goto yy245;
+ goto yy252;
}
} else {
if (yych <= ':') {
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- if (yych <= '9') goto yy252;
- goto yy251;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ if (yych <= '9') goto yy253;
+ goto yy252;
} else {
if (yych <= '<') {
- if (yych <= ';') goto yy244;
- goto yy251;
- } else {
- if (yych <= '=') goto yy244;
- if (yych <= '@') goto yy251;
+ if (yych <= ';') goto yy245;
goto yy252;
+ } else {
+ if (yych <= '=') goto yy245;
+ if (yych <= '@') goto yy252;
+ goto yy253;
}
}
}
} else {
if (yych <= 'n') {
if (yych <= 'Z') {
- if (yych <= 'O') goto yy271;
- if (yych == 'U') goto yy272;
- goto yy252;
+ if (yych <= 'O') goto yy272;
+ if (yych == 'U') goto yy273;
+ goto yy253;
} else {
if (yych <= '^') {
- if (yych <= ']') goto yy251;
- goto yy244;
+ if (yych <= ']') goto yy252;
+ goto yy245;
} else {
- if (yych == '`') goto yy251;
- goto yy252;
+ if (yych == '`') goto yy252;
+ goto yy253;
}
}
} else {
if (yych <= 'z') {
- if (yych <= 'o') goto yy271;
- if (yych == 'u') goto yy272;
- goto yy252;
+ if (yych <= 'o') goto yy272;
+ if (yych == 'u') goto yy273;
+ goto yy253;
} else {
if (yych <= '|') {
- if (yych <= '{') goto yy251;
- goto yy244;
+ if (yych <= '{') goto yy252;
+ goto yy245;
} else {
- if (yych == '~') goto yy244;
- goto yy251;
+ if (yych == '~') goto yy245;
+ goto yy252;
}
}
}
}
-yy247:
- YYDEBUG(247, *YYCURSOR);
+yy248:
+ YYDEBUG(248, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= 'E') {
if (yych <= '%') {
if (yych <= '\f') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- if (yych <= '\n') goto yy244;
- goto yy251;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ if (yych <= '\n') goto yy245;
+ goto yy252;
} else {
- if (yych <= '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- if (yych <= '"') goto yy244;
- goto yy251;
+ if (yych <= '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ if (yych <= '"') goto yy245;
+ goto yy252;
}
} else {
if (yych <= ':') {
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- if (yych <= '9') goto yy252;
- goto yy251;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ if (yych <= '9') goto yy253;
+ goto yy252;
} else {
if (yych <= '<') {
- if (yych <= ';') goto yy244;
- goto yy251;
- } else {
- if (yych <= '=') goto yy244;
- if (yych <= '@') goto yy251;
+ if (yych <= ';') goto yy245;
goto yy252;
+ } else {
+ if (yych <= '=') goto yy245;
+ if (yych <= '@') goto yy252;
+ goto yy253;
}
}
}
} else {
if (yych <= 'e') {
if (yych <= 'Z') {
- if (yych <= 'F') goto yy266;
- if (yych == 'N') goto yy260;
- goto yy252;
+ if (yych <= 'F') goto yy267;
+ if (yych == 'N') goto yy261;
+ goto yy253;
} else {
if (yych <= '^') {
- if (yych <= ']') goto yy251;
- goto yy244;
+ if (yych <= ']') goto yy252;
+ goto yy245;
} else {
- if (yych == '`') goto yy251;
- goto yy252;
+ if (yych == '`') goto yy252;
+ goto yy253;
}
}
} else {
if (yych <= 'z') {
- if (yych <= 'f') goto yy266;
- if (yych == 'n') goto yy260;
- goto yy252;
+ if (yych <= 'f') goto yy267;
+ if (yych == 'n') goto yy261;
+ goto yy253;
} else {
if (yych <= '|') {
- if (yych <= '{') goto yy251;
- goto yy244;
+ if (yych <= '{') goto yy252;
+ goto yy245;
} else {
- if (yych == '~') goto yy244;
- goto yy251;
+ if (yych == '~') goto yy245;
+ goto yy252;
}
}
}
}
-yy248:
- YYDEBUG(248, *YYCURSOR);
+yy249:
+ YYDEBUG(249, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'R') goto yy264;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'R') goto yy265;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'r') goto yy264;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'r') goto yy265;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy249:
- YYDEBUG(249, *YYCURSOR);
+yy250:
+ YYDEBUG(250, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'E') goto yy254;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'E') goto yy255;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'e') goto yy254;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'e') goto yy255;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy250:
- YYDEBUG(250, *YYCURSOR);
+yy251:
+ YYDEBUG(251, *YYCURSOR);
yyaccept = 0;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy251:
- YYDEBUG(251, *YYCURSOR);
- if (yybm[0+yych] & 2) {
- goto yy250;
- }
- if (yych == '$') goto yy255;
- goto yy224;
yy252:
YYDEBUG(252, *YYCURSOR);
+ if (yybm[0+yych] & 2) {
+ goto yy251;
+ }
+ if (yych <= '"') goto yy225;
+ if (yych <= '$') goto yy256;
+ goto yy225;
+yy253:
+ YYDEBUG(253, *YYCURSOR);
yyaccept = 4;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(253, *YYCURSOR);
+ YYDEBUG(254, *YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy252;
+ goto yy253;
}
if (yych <= ')') {
if (yych <= '\r') {
if (yych <= 0x08) {
- if (yych <= 0x00) goto yy244;
- goto yy250;
+ if (yych <= 0x00) goto yy245;
+ goto yy251;
} else {
- if (yych <= '\n') goto yy244;
- if (yych <= '\f') goto yy250;
- goto yy244;
+ if (yych <= '\n') goto yy245;
+ if (yych <= '\f') goto yy251;
+ goto yy245;
}
} else {
if (yych <= '#') {
- if (yych <= 0x1F) goto yy250;
- if (yych <= '"') goto yy244;
- goto yy250;
+ if (yych <= 0x1F) goto yy251;
+ if (yych <= '"') goto yy245;
+ goto yy251;
} else {
- if (yych <= '$') goto yy255;
- if (yych <= '%') goto yy250;
- goto yy244;
+ if (yych <= '$') goto yy256;
+ if (yych <= '%') goto yy251;
+ goto yy245;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= ':') goto yy250;
- goto yy244;
+ if (yych <= ':') goto yy251;
+ goto yy245;
} else {
- if (yych == '=') goto yy244;
- goto yy250;
+ if (yych == '=') goto yy245;
+ goto yy251;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy244;
- if (yych <= '{') goto yy250;
- goto yy244;
+ if (yych <= '^') goto yy245;
+ if (yych <= '{') goto yy251;
+ goto yy245;
} else {
- if (yych == '~') goto yy244;
- goto yy250;
+ if (yych == '~') goto yy245;
+ goto yy251;
}
}
}
-yy254:
- YYDEBUG(254, *YYCURSOR);
+yy255:
+ YYDEBUG(255, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'S') goto yy260;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'S') goto yy261;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 's') goto yy260;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 's') goto yy261;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy255:
- YYDEBUG(255, *YYCURSOR);
+yy256:
+ YYDEBUG(256, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yych <= '\\') {
- if (yych <= 0x00) goto yy256;
- if (yych <= '[') goto yy250;
- goto yy257;
+ if (yych <= 0x00) goto yy257;
+ if (yych <= '[') goto yy251;
+ goto yy258;
} else {
- if (yych != '{') goto yy250;
+ if (yych != '{') goto yy251;
}
-yy256:
- YYDEBUG(256, *YYCURSOR);
+yy257:
+ YYDEBUG(257, *YYCURSOR);
YYCURSOR = YYMARKER;
if (yyaccept <= 3) {
if (yyaccept <= 1) {
- if (yyaccept <= 0) {
- goto yy224;
+ if (yyaccept == 0) {
+ goto yy225;
} else {
- goto yy226;
+ goto yy227;
}
} else {
- if (yyaccept <= 2) {
- goto yy222;
+ if (yyaccept == 2) {
+ goto yy223;
} else {
- goto yy239;
+ goto yy240;
}
}
} else {
if (yyaccept <= 5) {
- if (yyaccept <= 4) {
- goto yy244;
+ if (yyaccept == 4) {
+ goto yy245;
} else {
- goto yy261;
+ goto yy262;
}
} else {
- if (yyaccept <= 6) {
- goto yy268;
+ if (yyaccept == 6) {
+ goto yy269;
} else {
- goto yy275;
+ goto yy276;
}
}
}
-yy257:
- YYDEBUG(257, *YYCURSOR);
+yy258:
+ YYDEBUG(258, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
if (yybm[0+yych] & 8) {
- goto yy258;
+ goto yy259;
}
- goto yy250;
-yy258:
- YYDEBUG(258, *YYCURSOR);
+ goto yy251;
+yy259:
+ YYDEBUG(259, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(259, *YYCURSOR);
+ YYDEBUG(260, *YYCURSOR);
if (yybm[0+yych] & 8) {
- goto yy258;
+ goto yy259;
}
- if (yych <= 0x00) goto yy224;
- if (yych == '\\') goto yy257;
- goto yy250;
-yy260:
- YYDEBUG(260, *YYCURSOR);
+ if (yych <= 0x00) goto yy225;
+ if (yych == '\\') goto yy258;
+ goto yy251;
+yy261:
+ YYDEBUG(261, *YYCURSOR);
yyaccept = 5;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy262;
+ goto yy263;
}
if (yych <= ';') {
- if (yych <= ' ') {
+ if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy261;
- if (yych <= '\t') goto yy251;
+ if (yych <= 0x00) goto yy262;
+ if (yych <= 0x08) goto yy252;
} else {
- if (yych != '\r') goto yy251;
+ if (yych != '\r') goto yy252;
}
} else {
if (yych <= ')') {
- if (yych <= '"') goto yy261;
- if (yych <= '%') goto yy251;
+ if (yych <= '"') goto yy262;
+ if (yych <= '%') goto yy252;
} else {
- if (yych <= '/') goto yy251;
- if (yych <= '9') goto yy252;
- if (yych <= ':') goto yy251;
+ if (yych <= '/') goto yy252;
+ if (yych <= '9') goto yy253;
+ if (yych <= ':') goto yy252;
}
}
} else {
if (yych <= '_') {
if (yych <= '@') {
- if (yych != '=') goto yy251;
+ if (yych != '=') goto yy252;
} else {
- if (yych <= 'Z') goto yy252;
- if (yych <= ']') goto yy251;
- if (yych >= '_') goto yy252;
+ if (yych <= 'Z') goto yy253;
+ if (yych <= ']') goto yy252;
+ if (yych >= '_') goto yy253;
}
} else {
if (yych <= '{') {
- if (yych <= '`') goto yy251;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych <= '`') goto yy252;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych >= 0x7F) goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych >= 0x7F) goto yy252;
}
}
}
-yy261:
- YYDEBUG(261, *YYCURSOR);
+yy262:
+ YYDEBUG(262, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 469 "Zend/zend_ini_scanner.l"
+#line 471 "Zend/zend_ini_scanner.l"
{ /* TRUE value (when used outside option value/offset this causes parse error!) */
RETURN_TOKEN(BOOL_TRUE, "1", 1);
}
-#line 3660 "Zend/zend_ini_scanner.c"
-yy262:
- YYDEBUG(262, *YYCURSOR);
+#line 3672 "Zend/zend_ini_scanner.c"
+yy263:
+ YYDEBUG(263, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(263, *YYCURSOR);
+ YYDEBUG(264, *YYCURSOR);
if (yybm[0+yych] & 16) {
- goto yy262;
+ goto yy263;
}
- goto yy261;
-yy264:
- YYDEBUG(264, *YYCURSOR);
+ goto yy262;
+yy265:
+ YYDEBUG(265, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'U') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'U') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'u') goto yy265;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'u') goto yy266;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy265:
- YYDEBUG(265, *YYCURSOR);
+yy266:
+ YYDEBUG(266, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'E') goto yy260;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'E') goto yy261;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'e') goto yy260;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'e') goto yy261;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy266:
- YYDEBUG(266, *YYCURSOR);
+yy267:
+ YYDEBUG(267, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'F') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'F') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'f') goto yy267;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'f') goto yy268;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy267:
- YYDEBUG(267, *YYCURSOR);
+yy268:
+ YYDEBUG(268, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy252;
+ goto yy253;
}
if (yych <= ')') {
if (yych <= '\f') {
if (yych <= 0x08) {
- if (yych >= 0x01) goto yy251;
+ if (yych >= 0x01) goto yy252;
} else {
- if (yych <= '\t') goto yy269;
- if (yych >= '\v') goto yy251;
+ if (yych <= '\t') goto yy270;
+ if (yych >= '\v') goto yy252;
}
} else {
if (yych <= ' ') {
- if (yych <= '\r') goto yy268;
- if (yych <= 0x1F) goto yy251;
- goto yy269;
+ if (yych <= '\r') goto yy269;
+ if (yych <= 0x1F) goto yy252;
+ goto yy270;
} else {
- if (yych <= '"') goto yy268;
- if (yych <= '%') goto yy251;
+ if (yych <= '"') goto yy269;
+ if (yych <= '%') goto yy252;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= ':') goto yy251;
+ if (yych <= ':') goto yy252;
} else {
- if (yych != '=') goto yy251;
+ if (yych != '=') goto yy252;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy268;
- if (yych <= '{') goto yy251;
+ if (yych <= '^') goto yy269;
+ if (yych <= '{') goto yy252;
} else {
- if (yych != '~') goto yy251;
+ if (yych != '~') goto yy252;
}
}
}
-yy268:
- YYDEBUG(268, *YYCURSOR);
+yy269:
+ YYDEBUG(269, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 473 "Zend/zend_ini_scanner.l"
+#line 475 "Zend/zend_ini_scanner.l"
{ /* FALSE value (when used outside option value/offset this causes parse error!)*/
RETURN_TOKEN(BOOL_FALSE, "", 0);
}
-#line 3870 "Zend/zend_ini_scanner.c"
-yy269:
- YYDEBUG(269, *YYCURSOR);
+#line 3882 "Zend/zend_ini_scanner.c"
+yy270:
+ YYDEBUG(270, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(270, *YYCURSOR);
- if (yych == '\t') goto yy269;
- if (yych == ' ') goto yy269;
- goto yy268;
-yy271:
YYDEBUG(271, *YYCURSOR);
+ if (yych == '\t') goto yy270;
+ if (yych == ' ') goto yy270;
+ goto yy269;
+yy272:
+ YYDEBUG(272, *YYCURSOR);
yyaccept = 6;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '<') {
if (yych <= ' ') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy268;
- if (yych <= 0x08) goto yy251;
- if (yych <= '\t') goto yy269;
- goto yy268;
- } else {
- if (yych == '\r') goto yy268;
- if (yych <= 0x1F) goto yy251;
+ if (yych <= 0x00) goto yy269;
+ if (yych <= 0x08) goto yy252;
+ if (yych <= '\t') goto yy270;
goto yy269;
+ } else {
+ if (yych == '\r') goto yy269;
+ if (yych <= 0x1F) goto yy252;
+ goto yy270;
}
} else {
if (yych <= '/') {
- if (yych <= '"') goto yy268;
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy268;
- goto yy251;
+ if (yych <= '"') goto yy269;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy269;
+ goto yy252;
} else {
- if (yych <= '9') goto yy252;
- if (yych == ';') goto yy268;
- goto yy251;
+ if (yych <= '9') goto yy253;
+ if (yych == ';') goto yy269;
+ goto yy252;
}
}
} else {
if (yych <= '_') {
if (yych <= 'N') {
- if (yych <= '=') goto yy268;
- if (yych <= '@') goto yy251;
- if (yych <= 'M') goto yy252;
- goto yy278;
- } else {
- if (yych <= 'Z') goto yy252;
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy268;
- goto yy252;
+ if (yych <= '=') goto yy269;
+ if (yych <= '@') goto yy252;
+ if (yych <= 'M') goto yy253;
+ goto yy279;
+ } else {
+ if (yych <= 'Z') goto yy253;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy269;
+ goto yy253;
}
} else {
if (yych <= 'z') {
- if (yych <= '`') goto yy251;
- if (yych == 'n') goto yy278;
- goto yy252;
+ if (yych <= '`') goto yy252;
+ if (yych == 'n') goto yy279;
+ goto yy253;
} else {
if (yych <= '|') {
- if (yych <= '{') goto yy251;
- goto yy268;
+ if (yych <= '{') goto yy252;
+ goto yy269;
} else {
- if (yych == '~') goto yy268;
- goto yy251;
+ if (yych == '~') goto yy269;
+ goto yy252;
}
}
}
}
-yy272:
- YYDEBUG(272, *YYCURSOR);
+yy273:
+ YYDEBUG(273, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'L') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'L') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'l') goto yy273;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'l') goto yy274;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy273:
- YYDEBUG(273, *YYCURSOR);
+yy274:
+ YYDEBUG(274, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'L') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'L') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'l') goto yy274;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'l') goto yy275;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy274:
- YYDEBUG(274, *YYCURSOR);
+yy275:
+ YYDEBUG(275, *YYCURSOR);
yyaccept = 7;
yych = *(YYMARKER = ++YYCURSOR);
if (yybm[0+yych] & 4) {
- goto yy252;
+ goto yy253;
}
if (yych <= ')') {
if (yych <= '\f') {
if (yych <= 0x08) {
- if (yych >= 0x01) goto yy251;
+ if (yych >= 0x01) goto yy252;
} else {
- if (yych <= '\t') goto yy276;
- if (yych >= '\v') goto yy251;
+ if (yych <= '\t') goto yy277;
+ if (yych >= '\v') goto yy252;
}
} else {
if (yych <= ' ') {
- if (yych <= '\r') goto yy275;
- if (yych <= 0x1F) goto yy251;
- goto yy276;
+ if (yych <= '\r') goto yy276;
+ if (yych <= 0x1F) goto yy252;
+ goto yy277;
} else {
- if (yych <= '"') goto yy275;
- if (yych <= '%') goto yy251;
+ if (yych <= '"') goto yy276;
+ if (yych <= '%') goto yy252;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= ':') goto yy251;
+ if (yych <= ':') goto yy252;
} else {
- if (yych != '=') goto yy251;
+ if (yych != '=') goto yy252;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy275;
- if (yych <= '{') goto yy251;
+ if (yych <= '^') goto yy276;
+ if (yych <= '{') goto yy252;
} else {
- if (yych != '~') goto yy251;
+ if (yych != '~') goto yy252;
}
}
}
-yy275:
- YYDEBUG(275, *YYCURSOR);
+yy276:
+ YYDEBUG(276, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 477 "Zend/zend_ini_scanner.l"
+#line 479 "Zend/zend_ini_scanner.l"
{
RETURN_TOKEN(NULL_NULL, "", 0);
}
-#line 4085 "Zend/zend_ini_scanner.c"
-yy276:
- YYDEBUG(276, *YYCURSOR);
+#line 4097 "Zend/zend_ini_scanner.c"
+yy277:
+ YYDEBUG(277, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(277, *YYCURSOR);
- if (yych == '\t') goto yy276;
- if (yych == ' ') goto yy276;
- goto yy275;
-yy278:
YYDEBUG(278, *YYCURSOR);
+ if (yych == '\t') goto yy277;
+ if (yych == ' ') goto yy277;
+ goto yy276;
+yy279:
+ YYDEBUG(279, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'E') goto yy267;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'E') goto yy268;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'e') goto yy267;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'e') goto yy268;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy279:
- YYDEBUG(279, *YYCURSOR);
+yy280:
+ YYDEBUG(280, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'L') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'L') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'l') goto yy280;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'l') goto yy281;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy280:
- YYDEBUG(280, *YYCURSOR);
+yy281:
+ YYDEBUG(281, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych != 'S') goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych != 'S') goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 's') goto yy281;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 's') goto yy282;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy281:
- YYDEBUG(281, *YYCURSOR);
+yy282:
+ YYDEBUG(282, *YYCURSOR);
yyaccept = 4;
yych = *(YYMARKER = ++YYCURSOR);
if (yych <= '=') {
if (yych <= '"') {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy244;
- if (yych <= 0x08) goto yy251;
- goto yy244;
+ if (yych <= 0x00) goto yy245;
+ if (yych <= 0x08) goto yy252;
+ goto yy245;
} else {
- if (yych == '\r') goto yy244;
- if (yych <= 0x1F) goto yy251;
- goto yy244;
+ if (yych == '\r') goto yy245;
+ if (yych <= 0x1F) goto yy252;
+ goto yy245;
}
} else {
if (yych <= '9') {
- if (yych <= '%') goto yy251;
- if (yych <= ')') goto yy244;
- if (yych <= '/') goto yy251;
- goto yy252;
+ if (yych <= '%') goto yy252;
+ if (yych <= ')') goto yy245;
+ if (yych <= '/') goto yy252;
+ goto yy253;
} else {
- if (yych == ';') goto yy244;
- if (yych <= '<') goto yy251;
- goto yy244;
+ if (yych == ';') goto yy245;
+ if (yych <= '<') goto yy252;
+ goto yy245;
}
}
} else {
if (yych <= '`') {
if (yych <= 'Z') {
- if (yych <= '@') goto yy251;
- if (yych == 'E') goto yy267;
- goto yy252;
+ if (yych <= '@') goto yy252;
+ if (yych == 'E') goto yy268;
+ goto yy253;
} else {
- if (yych <= ']') goto yy251;
- if (yych <= '^') goto yy244;
- if (yych <= '_') goto yy252;
- goto yy251;
+ if (yych <= ']') goto yy252;
+ if (yych <= '^') goto yy245;
+ if (yych <= '_') goto yy253;
+ goto yy252;
}
} else {
if (yych <= '{') {
- if (yych == 'e') goto yy267;
- if (yych <= 'z') goto yy252;
- goto yy251;
+ if (yych == 'e') goto yy268;
+ if (yych <= 'z') goto yy253;
+ goto yy252;
} else {
- if (yych == '}') goto yy251;
- if (yych <= '~') goto yy244;
- goto yy251;
+ if (yych == '}') goto yy252;
+ if (yych <= '~') goto yy245;
+ goto yy252;
}
}
}
-yy282:
- YYDEBUG(282, *YYCURSOR);
+yy283:
+ YYDEBUG(283, *YYCURSOR);
++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy283:
- YYDEBUG(283, *YYCURSOR);
- if (yybm[0+yych] & 32) {
- goto yy282;
- }
- if (yych >= '\r') goto yy286;
yy284:
YYDEBUG(284, *YYCURSOR);
- ++YYCURSOR;
+ if (yybm[0+yych] & 32) {
+ goto yy283;
+ }
+ if (yych >= '\v') goto yy287;
yy285:
YYDEBUG(285, *YYCURSOR);
+ ++YYCURSOR;
+yy286:
+ YYDEBUG(286, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 637 "Zend/zend_ini_scanner.l"
+#line 639 "Zend/zend_ini_scanner.l"
{ /* Comment */
BEGIN(INITIAL);
SCNG(lineno)++;
return END_OF_LINE;
}
-#line 4320 "Zend/zend_ini_scanner.c"
-yy286:
- YYDEBUG(286, *YYCURSOR);
- yych = *++YYCURSOR;
- if (yych == '\n') goto yy284;
- goto yy285;
+#line 4332 "Zend/zend_ini_scanner.c"
yy287:
YYDEBUG(287, *YYCURSOR);
+ yych = *++YYCURSOR;
+ if (yych == '\n') goto yy285;
+ goto yy286;
+yy288:
+ YYDEBUG(288, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(288, *YYCURSOR);
+ YYDEBUG(289, *YYCURSOR);
if (yybm[0+yych] & 64) {
- goto yy287;
+ goto yy288;
}
if (yych <= ')') {
if (yych <= '\r') {
if (yych <= 0x08) {
- if (yych <= 0x00) goto yy239;
- goto yy250;
+ if (yych <= 0x00) goto yy240;
+ goto yy251;
} else {
- if (yych <= '\n') goto yy239;
- if (yych <= '\f') goto yy250;
- goto yy239;
+ if (yych <= '\n') goto yy240;
+ if (yych <= '\f') goto yy251;
+ goto yy240;
}
} else {
if (yych <= '#') {
- if (yych <= 0x1F) goto yy250;
- if (yych <= '"') goto yy239;
- goto yy250;
+ if (yych <= 0x1F) goto yy251;
+ if (yych <= '"') goto yy240;
+ goto yy251;
} else {
- if (yych <= '$') goto yy255;
- if (yych <= '%') goto yy250;
- goto yy239;
+ if (yych <= '$') goto yy256;
+ if (yych <= '%') goto yy251;
+ goto yy240;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= ':') goto yy250;
- goto yy239;
+ if (yych <= ':') goto yy251;
+ goto yy240;
} else {
- if (yych == '=') goto yy239;
- goto yy250;
+ if (yych == '=') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy239;
- if (yych <= '{') goto yy250;
- goto yy239;
+ if (yych <= '^') goto yy240;
+ if (yych <= '{') goto yy251;
+ goto yy240;
} else {
- if (yych == '~') goto yy239;
- goto yy250;
+ if (yych == '~') goto yy240;
+ goto yy251;
}
}
}
-yy289:
- YYDEBUG(289, *YYCURSOR);
+yy290:
+ YYDEBUG(290, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(290, *YYCURSOR);
+ YYDEBUG(291, *YYCURSOR);
if (yych <= '.') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy239;
- if (yych <= 0x08) goto yy250;
- goto yy239;
+ if (yych <= 0x00) goto yy240;
+ if (yych <= 0x08) goto yy251;
+ goto yy240;
} else {
- if (yych == '\r') goto yy239;
- goto yy250;
+ if (yych == '\r') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy239;
- if (yych <= '#') goto yy250;
- goto yy255;
+ if (yych <= '"') goto yy240;
+ if (yych <= '#') goto yy251;
+ goto yy256;
} else {
- if (yych <= '%') goto yy250;
- if (yych <= ')') goto yy239;
- if (yych <= '-') goto yy250;
- goto yy287;
+ if (yych <= '%') goto yy251;
+ if (yych <= ')') goto yy240;
+ if (yych <= '-') goto yy251;
+ goto yy288;
}
}
} else {
if (yych <= '=') {
if (yych <= ':') {
- if (yych <= '/') goto yy250;
- if (yych <= '9') goto yy289;
- goto yy250;
+ if (yych <= '/') goto yy251;
+ if (yych <= '9') goto yy290;
+ goto yy251;
} else {
- if (yych == '<') goto yy250;
- goto yy239;
+ if (yych == '<') goto yy251;
+ goto yy240;
}
} else {
if (yych <= '{') {
- if (yych == '^') goto yy239;
- goto yy250;
+ if (yych == '^') goto yy240;
+ goto yy251;
} else {
- if (yych == '}') goto yy250;
- if (yych <= '~') goto yy239;
- goto yy250;
+ if (yych == '}') goto yy251;
+ if (yych <= '~') goto yy240;
+ goto yy251;
}
}
}
-yy291:
- YYDEBUG(291, *YYCURSOR);
+yy292:
+ YYDEBUG(292, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(292, *YYCURSOR);
+ YYDEBUG(293, *YYCURSOR);
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy239;
- if (yych <= 0x08) goto yy250;
- goto yy239;
+ if (yych <= 0x00) goto yy240;
+ if (yych <= 0x08) goto yy251;
+ goto yy240;
} else {
- if (yych == '\r') goto yy239;
- goto yy250;
+ if (yych == '\r') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy239;
- if (yych <= '#') goto yy250;
- goto yy255;
+ if (yych <= '"') goto yy240;
+ if (yych <= '#') goto yy251;
+ goto yy256;
} else {
- if (yych <= '%') goto yy250;
- if (yych <= ')') goto yy239;
- goto yy250;
+ if (yych <= '%') goto yy251;
+ if (yych <= ')') goto yy240;
+ goto yy251;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= '9') goto yy291;
- if (yych <= ':') goto yy250;
- goto yy239;
+ if (yych <= '9') goto yy292;
+ if (yych <= ':') goto yy251;
+ goto yy240;
} else {
- if (yych == '=') goto yy239;
- goto yy250;
+ if (yych == '=') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy239;
- if (yych <= '{') goto yy250;
- goto yy239;
+ if (yych <= '^') goto yy240;
+ if (yych <= '{') goto yy251;
+ goto yy240;
} else {
- if (yych == '~') goto yy239;
- goto yy250;
+ if (yych == '~') goto yy240;
+ goto yy251;
}
}
}
-yy293:
- YYDEBUG(293, *YYCURSOR);
+yy294:
+ YYDEBUG(294, *YYCURSOR);
yyaccept = 3;
YYMARKER = ++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(294, *YYCURSOR);
+ YYDEBUG(295, *YYCURSOR);
if (yych <= '/') {
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x00) goto yy239;
- if (yych <= 0x08) goto yy250;
- goto yy239;
+ if (yych <= 0x00) goto yy240;
+ if (yych <= 0x08) goto yy251;
+ goto yy240;
} else {
- if (yych == '\r') goto yy239;
- goto yy250;
+ if (yych == '\r') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '$') {
- if (yych <= '"') goto yy239;
- if (yych <= '#') goto yy250;
- goto yy255;
+ if (yych <= '"') goto yy240;
+ if (yych <= '#') goto yy251;
+ goto yy256;
} else {
- if (yych <= '%') goto yy250;
- if (yych <= ')') goto yy239;
- goto yy250;
+ if (yych <= '%') goto yy251;
+ if (yych <= ')') goto yy240;
+ goto yy251;
}
}
} else {
if (yych <= ']') {
if (yych <= ';') {
- if (yych <= '9') goto yy293;
- if (yych <= ':') goto yy250;
- goto yy239;
+ if (yych <= '9') goto yy294;
+ if (yych <= ':') goto yy251;
+ goto yy240;
} else {
- if (yych == '=') goto yy239;
- goto yy250;
+ if (yych == '=') goto yy240;
+ goto yy251;
}
} else {
if (yych <= '|') {
- if (yych <= '^') goto yy239;
- if (yych <= '{') goto yy250;
- goto yy239;
+ if (yych <= '^') goto yy240;
+ if (yych <= '{') goto yy251;
+ goto yy240;
} else {
- if (yych == '~') goto yy239;
- goto yy250;
+ if (yych == '~') goto yy240;
+ goto yy251;
}
}
}
-yy295:
- YYDEBUG(295, *YYCURSOR);
+yy296:
+ YYDEBUG(296, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
- YYDEBUG(296, *YYCURSOR);
+ YYDEBUG(297, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy295;
+ goto yy296;
}
- YYDEBUG(297, *YYCURSOR);
- ++YYCURSOR;
YYDEBUG(298, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(299, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 416 "Zend/zend_ini_scanner.l"
+#line 418 "Zend/zend_ini_scanner.l"
{ /* Raw string */
/* Eat leading and trailing single quotes */
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
@@ -4543,66 +4555,66 @@ yy295:
}
RETURN_TOKEN(TC_RAW, yytext, yyleng);
}
-#line 4547 "Zend/zend_ini_scanner.c"
-yy299:
- YYDEBUG(299, *YYCURSOR);
- ++YYCURSOR;
+#line 4559 "Zend/zend_ini_scanner.c"
+yy300:
YYDEBUG(300, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(301, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 449 "Zend/zend_ini_scanner.l"
+#line 451 "Zend/zend_ini_scanner.l"
{ /* Variable start */
yy_push_state(ST_VARNAME);
return TC_DOLLAR_CURLY;
}
-#line 4558 "Zend/zend_ini_scanner.c"
-yy301:
- YYDEBUG(301, *YYCURSOR);
+#line 4570 "Zend/zend_ini_scanner.c"
+yy302:
+ YYDEBUG(302, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy302:
- YYDEBUG(302, *YYCURSOR);
- if (yych == '\t') goto yy301;
- if (yych == ' ') goto yy301;
- goto yy231;
yy303:
YYDEBUG(303, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy228;
+ if (yych == '\t') goto yy302;
+ if (yych == ' ') goto yy302;
+ goto yy232;
yy304:
YYDEBUG(304, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy229;
+yy305:
+ YYDEBUG(305, *YYCURSOR);
yyaccept = 1;
YYMARKER = ++YYCURSOR;
YYFILL(2);
yych = *YYCURSOR;
-yy305:
- YYDEBUG(305, *YYCURSOR);
+yy306:
+ YYDEBUG(306, *YYCURSOR);
if (yych <= 0x1F) {
if (yych <= '\n') {
- if (yych <= 0x08) goto yy226;
- if (yych <= '\t') goto yy304;
- goto yy303;
+ if (yych <= 0x08) goto yy227;
+ if (yych <= '\t') goto yy305;
+ goto yy304;
} else {
- if (yych == '\r') goto yy307;
- goto yy226;
+ if (yych == '\r') goto yy308;
+ goto yy227;
}
} else {
if (yych <= '"') {
- if (yych <= ' ') goto yy304;
- if (yych <= '!') goto yy226;
+ if (yych <= ' ') goto yy305;
+ if (yych <= '!') goto yy227;
} else {
- if (yych == ';') goto yy282;
- goto yy226;
+ if (yych == ';') goto yy283;
+ goto yy227;
}
}
- YYDEBUG(306, *YYCURSOR);
- yych = *++YYCURSOR;
- goto yy233;
-yy307:
YYDEBUG(307, *YYCURSOR);
+ yych = *++YYCURSOR;
+ goto yy234;
+yy308:
+ YYDEBUG(308, *YYCURSOR);
++YYCURSOR;
- if ((yych = *YYCURSOR) == '\n') goto yy303;
- goto yy228;
+ if ((yych = *YYCURSOR) == '\n') goto yy304;
+ goto yy229;
}
/* *********************************** */
yyc_ST_VARNAME:
@@ -4641,51 +4653,51 @@ yyc_ST_VARNAME:
128, 128, 128, 128, 128, 128, 128, 128,
128, 128, 128, 128, 128, 128, 128, 128,
};
- YYDEBUG(308, *YYCURSOR);
+ YYDEBUG(309, *YYCURSOR);
YYFILL(2);
yych = *YYCURSOR;
if (yych <= ')') {
if (yych <= '"') {
if (yych <= '\f') {
- if (yych <= 0x08) goto yy310;
- if (yych <= '\n') goto yy312;
+ if (yych <= 0x08) goto yy311;
+ if (yych <= '\n') goto yy313;
} else {
- if (yych <= '\r') goto yy312;
- if (yych >= '!') goto yy312;
+ if (yych <= '\r') goto yy313;
+ if (yych >= '!') goto yy313;
}
} else {
if (yych <= '%') {
- if (yych == '$') goto yy312;
+ if (yych == '$') goto yy313;
} else {
- if (yych != '\'') goto yy312;
+ if (yych != '\'') goto yy313;
}
}
} else {
if (yych <= '[') {
if (yych <= '<') {
- if (yych == ';') goto yy312;
+ if (yych == ';') goto yy313;
} else {
- if (yych <= '=') goto yy312;
- if (yych >= '[') goto yy312;
+ if (yych <= '=') goto yy313;
+ if (yych >= '[') goto yy313;
}
} else {
if (yych <= 'z') {
- if (yych == '^') goto yy312;
+ if (yych == '^') goto yy313;
} else {
- if (yych == '}') goto yy314;
- if (yych <= '~') goto yy312;
+ if (yych == '}') goto yy315;
+ if (yych <= '~') goto yy313;
}
}
}
-yy310:
- YYDEBUG(310, *YYCURSOR);
- ++YYCURSOR;
- yych = *YYCURSOR;
- goto yy317;
yy311:
YYDEBUG(311, *YYCURSOR);
+ ++YYCURSOR;
+ yych = *YYCURSOR;
+ goto yy318;
+yy312:
+ YYDEBUG(312, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 454 "Zend/zend_ini_scanner.l"
+#line 456 "Zend/zend_ini_scanner.l"
{ /* Variable name */
/* Eat leading whitespace */
EAT_LEADING_WHITESPACE();
@@ -4695,41 +4707,41 @@ yy311:
RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
}
-#line 4699 "Zend/zend_ini_scanner.c"
-yy312:
- YYDEBUG(312, *YYCURSOR);
- ++YYCURSOR;
+#line 4711 "Zend/zend_ini_scanner.c"
+yy313:
YYDEBUG(313, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(314, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 648 "Zend/zend_ini_scanner.l"
+#line 650 "Zend/zend_ini_scanner.l"
{
return 0;
}
-#line 4709 "Zend/zend_ini_scanner.c"
-yy314:
- YYDEBUG(314, *YYCURSOR);
- ++YYCURSOR;
+#line 4721 "Zend/zend_ini_scanner.c"
+yy315:
YYDEBUG(315, *YYCURSOR);
+ ++YYCURSOR;
+ YYDEBUG(316, *YYCURSOR);
yyleng = YYCURSOR - SCNG(yy_text);
-#line 464 "Zend/zend_ini_scanner.l"
+#line 466 "Zend/zend_ini_scanner.l"
{ /* Variable end */
yy_pop_state();
return '}';
}
-#line 4720 "Zend/zend_ini_scanner.c"
-yy316:
- YYDEBUG(316, *YYCURSOR);
+#line 4732 "Zend/zend_ini_scanner.c"
+yy317:
+ YYDEBUG(317, *YYCURSOR);
++YYCURSOR;
YYFILL(1);
yych = *YYCURSOR;
-yy317:
- YYDEBUG(317, *YYCURSOR);
+yy318:
+ YYDEBUG(318, *YYCURSOR);
if (yybm[0+yych] & 128) {
- goto yy316;
+ goto yy317;
}
- goto yy311;
+ goto yy312;
}
}
-#line 652 "Zend/zend_ini_scanner.l"
+#line 654 "Zend/zend_ini_scanner.l"
}
diff --git a/Zend/zend_ini_scanner_defs.h b/Zend/zend_ini_scanner_defs.h
index 287d7bc1fb..017865f9d3 100644
--- a/Zend/zend_ini_scanner_defs.h
+++ b/Zend/zend_ini_scanner_defs.h
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 */
+/* Generated by re2c 0.14.3 */
#line 3 "Zend/zend_ini_scanner_defs.h"
enum YYCONDTYPE {
diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c
index 434102035c..04c828872d 100644
--- a/Zend/zend_object_handlers.c
+++ b/Zend/zend_object_handlers.c
@@ -792,9 +792,11 @@ zval *zend_std_read_dimension(zval *object, zval *offset, int type, zval *rv) /*
if (type == BP_VAR_IS) {
zend_call_method_with_1_params(object, ce, NULL, "offsetexists", rv, offset);
if (UNEXPECTED(Z_ISUNDEF_P(rv))) {
+ zval_ptr_dtor(offset);
return NULL;
}
if (!i_zend_is_true(rv)) {
+ zval_ptr_dtor(offset);
zval_ptr_dtor(rv);
return &EG(uninitialized_zval);
}
diff --git a/Zend/zend_portability.h b/Zend/zend_portability.h
index 298dfb53fa..829fba1abd 100644
--- a/Zend/zend_portability.h
+++ b/Zend/zend_portability.h
@@ -125,6 +125,8 @@
# define ZEND_IGNORE_VALUE(x) ((void) (x))
#endif
+#define zend_quiet_write(...) ZEND_IGNORE_VALUE(write(__VA_ARGS__))
+
/* all HAVE_XXX test have to be after the include of zend_config above */
#if defined(HAVE_LIBDL) && !defined(ZEND_WIN32)
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 78342a0636..0f1d754f8c 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -1738,7 +1738,8 @@ ZEND_VM_HELPER(zend_fetch_static_prop_helper, CONST|TMPVAR|CV, UNUSED|CONST|VAR,
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (OP1_TYPE != IS_CONST) {
zend_string_release(name);
}
@@ -1756,7 +1757,6 @@ ZEND_VM_HELPER(zend_fetch_static_prop_helper, CONST|TMPVAR|CV, UNUSED|CONST|VAR,
}
ZEND_VM_C_LABEL(fetch_static_prop_return):
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -2709,9 +2709,6 @@ ZEND_VM_HANDLER(43, ZEND_JMPZ, CONST|TMPVAR|CV, JMP_ADDR)
opline = OP_JMP_ADDR(opline, opline->op2);
}
FREE_OP1();
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2743,9 +2740,6 @@ ZEND_VM_HANDLER(44, ZEND_JMPNZ, CONST|TMPVAR|CV, JMP_ADDR)
opline++;
}
FREE_OP1();
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2780,9 +2774,6 @@ ZEND_VM_HANDLER(45, ZEND_JMPZNZ, CONST|TMPVAR|CV, JMP_ADDR, JMP_ADDR)
opline = OP_JMP_ADDR(opline, opline->op2);
}
FREE_OP1();
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2823,9 +2814,6 @@ ZEND_VM_HANDLER(46, ZEND_JMPZ_EX, CONST|TMPVAR|CV, JMP_ADDR)
ZVAL_FALSE(EX_VAR(opline->result.var));
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2863,9 +2851,6 @@ ZEND_VM_HANDLER(47, ZEND_JMPNZ_EX, CONST|TMPVAR|CV, JMP_ADDR)
ZVAL_FALSE(EX_VAR(opline->result.var));
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -7979,9 +7964,6 @@ ZEND_VM_HANDLER(158, ZEND_CALL_TRAMPOLINE, ANY, ANY)
fbc = call->func;
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) {
-
- ZEND_ASSERT(!(fbc->common.fn_flags & ZEND_ACC_GENERATOR));
-
if (UNEXPECTED(!fbc->op_array.run_time_cache)) {
init_func_run_time_cache(&fbc->op_array);
}
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index a8a0466b5a..cb49393dd3 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -1976,9 +1976,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_CALL_TRAMPOLINE_SPEC_HANDLER(Z
fbc = call->func;
if (EXPECTED(fbc->type == ZEND_USER_FUNCTION)) {
-
- ZEND_ASSERT(!(fbc->common.fn_flags & ZEND_ACC_GENERATOR));
-
if (UNEXPECTED(!fbc->op_array.run_time_cache)) {
init_func_run_time_cache(&fbc->op_array);
}
@@ -2706,9 +2703,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CONST_HANDLER(ZEND_O
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2740,9 +2734,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CONST_HANDLER(ZEND_
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2777,9 +2768,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CONST_HANDLER(ZEND
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2820,9 +2808,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CONST_HANDLER(ZEN
ZVAL_FALSE(EX_VAR(opline->result.var));
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -2860,9 +2845,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CONST_HANDLER(ZE
ZVAL_FALSE(EX_VAR(opline->result.var));
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -4931,7 +4913,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CONST != IS_CONST) {
zend_string_release(name);
}
@@ -4947,7 +4930,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -6784,7 +6766,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CONST != IS_CONST) {
zend_string_release(name);
}
@@ -6800,7 +6783,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -7356,7 +7338,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CONST != IS_CONST) {
zend_string_release(name);
}
@@ -7372,7 +7355,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -34707,9 +34689,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_CV_HANDLER(ZEND_OPCO
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -34741,9 +34720,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_CV_HANDLER(ZEND_OPC
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -34778,9 +34754,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_CV_HANDLER(ZEND_OP
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -34821,9 +34794,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_CV_HANDLER(ZEND_O
ZVAL_FALSE(EX_VAR(opline->result.var));
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -34861,9 +34831,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_CV_HANDLER(ZEND_
ZVAL_FALSE(EX_VAR(opline->result.var));
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -38000,7 +37967,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CV != IS_CONST) {
zend_string_release(name);
}
@@ -38016,7 +37984,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -41059,7 +41026,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CV != IS_CONST) {
zend_string_release(name);
}
@@ -41075,7 +41043,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -42107,7 +42074,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if (IS_CV != IS_CONST) {
zend_string_release(name);
}
@@ -42123,7 +42091,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -51296,9 +51263,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_SPEC_TMPVAR_HANDLER(ZEND_
opline = OP_JMP_ADDR(opline, opline->op2);
}
zval_ptr_dtor_nogc(free_op1);
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -51330,9 +51294,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_SPEC_TMPVAR_HANDLER(ZEND
opline++;
}
zval_ptr_dtor_nogc(free_op1);
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -51367,9 +51328,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZNZ_SPEC_TMPVAR_HANDLER(ZEN
opline = OP_JMP_ADDR(opline, opline->op2);
}
zval_ptr_dtor_nogc(free_op1);
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -51410,9 +51368,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_TMPVAR_HANDLER(ZE
ZVAL_FALSE(EX_VAR(opline->result.var));
opline = OP_JMP_ADDR(opline, opline->op2);
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -51450,9 +51405,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_TMPVAR_HANDLER(Z
ZVAL_FALSE(EX_VAR(opline->result.var));
opline++;
}
- if (UNEXPECTED(EG(exception) != NULL)) {
- HANDLE_EXCEPTION();
- }
ZEND_VM_JMP(opline);
}
@@ -52478,7 +52430,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
zend_string_release(name);
}
@@ -52496,7 +52449,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -53427,7 +53379,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
zend_string_release(name);
}
@@ -53445,7 +53398,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
@@ -53915,7 +53867,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
}
retval = zend_std_get_static_property(ce, name, 0);
- if (UNEXPECTED(EG(exception))) {
+ if (UNEXPECTED(retval == NULL)) {
+ ZEND_ASSERT(EG(exception));
if ((IS_TMP_VAR|IS_VAR) != IS_CONST) {
zend_string_release(name);
}
@@ -53933,7 +53886,6 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_fetch_static_prop_helper_SPEC_
}
fetch_static_prop_return:
- ZEND_ASSERT(retval != NULL);
if (type == BP_VAR_R || type == BP_VAR_IS) {
ZVAL_COPY_UNREF(EX_VAR(opline->result.var), retval);
} else {
diff --git a/acinclude.m4 b/acinclude.m4
index c59eba4998..4f06730b64 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -2264,7 +2264,7 @@ AC_DEFUN([PHP_SETUP_KERBEROS],[
fi
dnl If krb5-config is found try using it
- if test "$PHP_KERBEROS" = "yes" && test -x "$KRB5_CONFIG"; then
+ if test "$PHP_KERBEROS" != "no" && test -x "$KRB5_CONFIG"; then
KERBEROS_LIBS=`$KRB5_CONFIG --libs gssapi`
KERBEROS_CFLAGS=`$KRB5_CONFIG --cflags gssapi`
diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h
index 2ae2e9a5d3..9f483bf750 100644
--- a/ext/date/lib/timezonedb.h
+++ b/ext/date/lib/timezonedb.h
@@ -1,5 +1,5 @@
/* This is a generated file, do not modify */
-const timelib_tzdb_index_entry timezonedb_idx_builtin[591] = {
+const timelib_tzdb_index_entry timezonedb_idx_builtin[593] = {
#ifdef TIMELIB_SUPPORTS_V2DATA
# define FOR_V2(v2,v1) v2
#else
@@ -242,365 +242,367 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[591] = {
{ "Asia/Amman" , FOR_V2(0x0416C3, 0x0197FF) },
{ "Asia/Anadyr" , FOR_V2(0x041E24, 0x019ABA) },
{ "Asia/Aqtau" , FOR_V2(0x042309, 0x019CB3) },
- { "Asia/Aqtobe" , FOR_V2(0x04273A, 0x019E7B) },
- { "Asia/Ashgabat" , FOR_V2(0x042B6A, 0x01A031) },
- { "Asia/Ashkhabad" , FOR_V2(0x042E01, 0x01A148) },
- { "Asia/Baghdad" , FOR_V2(0x043098, 0x01A25F) },
- { "Asia/Bahrain" , FOR_V2(0x043480, 0x01A3E5) },
- { "Asia/Baku" , FOR_V2(0x04355D, 0x01A450) },
- { "Asia/Bangkok" , FOR_V2(0x043A5E, 0x01A646) },
- { "Asia/Barnaul" , FOR_V2(0x043B36, 0x01A6AC) },
- { "Asia/Beirut" , FOR_V2(0x044037, 0x01A8AB) },
- { "Asia/Bishkek" , FOR_V2(0x0448C2, 0x01ABC9) },
- { "Asia/Brunei" , FOR_V2(0x044CE3, 0x01AD6F) },
- { "Asia/Calcutta" , FOR_V2(0x044DB8, 0x01ADD6) },
- { "Asia/Chita" , FOR_V2(0x044EE7, 0x01AE60) },
- { "Asia/Choibalsan" , FOR_V2(0x0453F0, 0x01B068) },
- { "Asia/Chongqing" , FOR_V2(0x045A3F, 0x01B2D4) },
- { "Asia/Chungking" , FOR_V2(0x045BE9, 0x01B385) },
- { "Asia/Colombo" , FOR_V2(0x045D93, 0x01B436) },
- { "Asia/Dacca" , FOR_V2(0x045F3C, 0x01B4F3) },
- { "Asia/Damascus" , FOR_V2(0x0460CE, 0x01B5AA) },
- { "Asia/Dhaka" , FOR_V2(0x0469EA, 0x01B8FF) },
- { "Asia/Dili" , FOR_V2(0x046B7C, 0x01B9B6) },
- { "Asia/Dubai" , FOR_V2(0x046CBD, 0x01BA4D) },
- { "Asia/Dushanbe" , FOR_V2(0x046D74, 0x01BAA7) },
- { "Asia/Famagusta" , FOR_V2(0x046FED, 0x01BBB1) },
- { "Asia/Gaza" , FOR_V2(0x0475AD, 0x01BDEC) },
- { "Asia/Harbin" , FOR_V2(0x047ECA, 0x01C150) },
- { "Asia/Hebron" , FOR_V2(0x048074, 0x01C201) },
- { "Asia/Ho_Chi_Minh" , FOR_V2(0x0489AC, 0x01C56E) },
- { "Asia/Hong_Kong" , FOR_V2(0x048B2D, 0x01C61D) },
- { "Asia/Hovd" , FOR_V2(0x048FDE, 0x01C7EC) },
- { "Asia/Irkutsk" , FOR_V2(0x0495FE, 0x01CA4F) },
- { "Asia/Istanbul" , FOR_V2(0x049B20, 0x01CC64) },
- { "Asia/Jakarta" , FOR_V2(0x04A3A2, 0x01CF9C) },
- { "Asia/Jayapura" , FOR_V2(0x04A52D, 0x01D056) },
- { "Asia/Jerusalem" , FOR_V2(0x04A660, 0x01D105) },
- { "Asia/Kabul" , FOR_V2(0x04AF45, 0x01D44D) },
- { "Asia/Kamchatka" , FOR_V2(0x04B018, 0x01D4AF) },
- { "Asia/Karachi" , FOR_V2(0x04B4E4, 0x01D69B) },
- { "Asia/Kashgar" , FOR_V2(0x04B683, 0x01D755) },
- { "Asia/Kathmandu" , FOR_V2(0x04B73A, 0x01D7AF) },
- { "Asia/Katmandu" , FOR_V2(0x04B81A, 0x01D81A) },
- { "Asia/Khandyga" , FOR_V2(0x04B8FA, 0x01D885) },
- { "Asia/Kolkata" , FOR_V2(0x04BE43, 0x01DAB0) },
- { "Asia/Krasnoyarsk" , FOR_V2(0x04BF72, 0x01DB3A) },
- { "Asia/Kuala_Lumpur" , FOR_V2(0x04C472, 0x01DD42) },
- { "Asia/Kuching" , FOR_V2(0x04C620, 0x01DE11) },
- { "Asia/Kuwait" , FOR_V2(0x04C841, 0x01DF03) },
- { "Asia/Macao" , FOR_V2(0x04C8F8, 0x01DF5D) },
- { "Asia/Macau" , FOR_V2(0x04CC1F, 0x01E09D) },
- { "Asia/Magadan" , FOR_V2(0x04CF46, 0x01E1DD) },
- { "Asia/Makassar" , FOR_V2(0x04D44C, 0x01E3E1) },
- { "Asia/Manila" , FOR_V2(0x04D5B9, 0x01E4B4) },
- { "Asia/Muscat" , FOR_V2(0x04D72E, 0x01E552) },
- { "Asia/Nicosia" , FOR_V2(0x04D7E5, 0x01E5AC) },
- { "Asia/Novokuznetsk" , FOR_V2(0x04DFE4, 0x01E8AC) },
- { "Asia/Novosibirsk" , FOR_V2(0x04E4AE, 0x01EA97) },
- { "Asia/Omsk" , FOR_V2(0x04E9B5, 0x01EC9C) },
- { "Asia/Oral" , FOR_V2(0x04EEA9, 0x01EE98) },
- { "Asia/Phnom_Penh" , FOR_V2(0x04F2CB, 0x01F048) },
- { "Asia/Pontianak" , FOR_V2(0x04F3A3, 0x01F0AE) },
- { "Asia/Pyongyang" , FOR_V2(0x04F53C, 0x01F176) },
- { "Asia/Qatar" , FOR_V2(0x04F680, 0x01F20D) },
- { "Asia/Qyzylorda" , FOR_V2(0x04F75D, 0x01F278) },
- { "Asia/Rangoon" , FOR_V2(0x04FB9D, 0x01F43E) },
- { "Asia/Riyadh" , FOR_V2(0x04FCC6, 0x01F4C7) },
- { "Asia/Saigon" , FOR_V2(0x04FD7D, 0x01F521) },
- { "Asia/Sakhalin" , FOR_V2(0x04FEFE, 0x01F5D0) },
- { "Asia/Samarkand" , FOR_V2(0x0503F4, 0x01F7D0) },
- { "Asia/Seoul" , FOR_V2(0x05067C, 0x01F8E8) },
- { "Asia/Shanghai" , FOR_V2(0x0508C3, 0x01F9E0) },
- { "Asia/Singapore" , FOR_V2(0x050A79, 0x01FA9D) },
- { "Asia/Srednekolymsk" , FOR_V2(0x050C31, 0x01FB65) },
- { "Asia/Taipei" , FOR_V2(0x05113B, 0x01FD76) },
- { "Asia/Tashkent" , FOR_V2(0x051467, 0x01FEB8) },
- { "Asia/Tbilisi" , FOR_V2(0x0516FF, 0x01FFD8) },
- { "Asia/Tehran" , FOR_V2(0x051B43, 0x02018B) },
- { "Asia/Tel_Aviv" , FOR_V2(0x0521DD, 0x020406) },
- { "Asia/Thimbu" , FOR_V2(0x052AC2, 0x02074E) },
- { "Asia/Thimphu" , FOR_V2(0x052B9F, 0x0207B9) },
- { "Asia/Tokyo" , FOR_V2(0x052C7C, 0x020824) },
- { "Asia/Tomsk" , FOR_V2(0x052DEB, 0x0208BB) },
- { "Asia/Ujung_Pandang" , FOR_V2(0x0532EC, 0x020ABA) },
- { "Asia/Ulaanbaatar" , FOR_V2(0x053410, 0x020B44) },
- { "Asia/Ulan_Bator" , FOR_V2(0x053A1A, 0x020D91) },
- { "Asia/Urumqi" , FOR_V2(0x05400F, 0x020FC9) },
- { "Asia/Ust-Nera" , FOR_V2(0x0540D3, 0x021030) },
- { "Asia/Vientiane" , FOR_V2(0x0545FD, 0x021248) },
- { "Asia/Vladivostok" , FOR_V2(0x0546D5, 0x0212AE) },
- { "Asia/Yakutsk" , FOR_V2(0x054BD0, 0x0214B0) },
- { "Asia/Yangon" , FOR_V2(0x0550CA, 0x0216B2) },
- { "Asia/Yekaterinburg" , FOR_V2(0x0551F3, 0x02173B) },
- { "Asia/Yerevan" , FOR_V2(0x05570E, 0x021949) },
- { "Atlantic/Azores" , FOR_V2(0x055BC9, 0x021B26) },
- { "Atlantic/Bermuda" , FOR_V2(0x05697B, 0x02203A) },
- { "Atlantic/Canary" , FOR_V2(0x05715B, 0x022320) },
- { "Atlantic/Cape_Verde" , FOR_V2(0x0578EE, 0x0225FB) },
- { "Atlantic/Faeroe" , FOR_V2(0x0579F8, 0x022679) },
- { "Atlantic/Faroe" , FOR_V2(0x058129, 0x022922) },
- { "Atlantic/Jan_Mayen" , FOR_V2(0x05885A, 0x022BCB) },
- { "Atlantic/Madeira" , FOR_V2(0x059131, 0x022F0E) },
- { "Atlantic/Reykjavik" , FOR_V2(0x059EE2, 0x023428) },
- { "Atlantic/South_Georgia" , FOR_V2(0x05A394, 0x0235FA) },
- { "Atlantic/St_Helena" , FOR_V2(0x05A434, 0x02363E) },
- { "Atlantic/Stanley" , FOR_V2(0x05A4EA, 0x023698) },
- { "Australia/ACT" , FOR_V2(0x05A9D4, 0x02387F) },
- { "Australia/Adelaide" , FOR_V2(0x05B28F, 0x023BB3) },
- { "Australia/Brisbane" , FOR_V2(0x05BB68, 0x023EF2) },
- { "Australia/Broken_Hill" , FOR_V2(0x05BD4F, 0x023FCC) },
- { "Australia/Canberra" , FOR_V2(0x05C659, 0x02431D) },
- { "Australia/Currie" , FOR_V2(0x05CF14, 0x024651) },
- { "Australia/Darwin" , FOR_V2(0x05D7E5, 0x02499B) },
- { "Australia/Eucla" , FOR_V2(0x05D946, 0x024A34) },
- { "Australia/Hobart" , FOR_V2(0x05DB52, 0x024B1C) },
- { "Australia/LHI" , FOR_V2(0x05E492, 0x024E8D) },
- { "Australia/Lindeman" , FOR_V2(0x05EBE1, 0x02513F) },
- { "Australia/Lord_Howe" , FOR_V2(0x05EE16, 0x02523A) },
- { "Australia/Melbourne" , FOR_V2(0x05F575, 0x0254FC) },
- { "Australia/North" , FOR_V2(0x05FE38, 0x025838) },
- { "Australia/NSW" , FOR_V2(0x05FF87, 0x0258BF) },
- { "Australia/Perth" , FOR_V2(0x060842, 0x025BF3) },
- { "Australia/Queensland" , FOR_V2(0x060A4B, 0x025CDE) },
- { "Australia/South" , FOR_V2(0x060C1B, 0x025DA1) },
- { "Australia/Sydney" , FOR_V2(0x0614E5, 0x0260D1) },
- { "Australia/Tasmania" , FOR_V2(0x061DBC, 0x026421) },
- { "Australia/Victoria" , FOR_V2(0x0626E7, 0x02677D) },
- { "Australia/West" , FOR_V2(0x062FA2, 0x026AB1) },
- { "Australia/Yancowinna" , FOR_V2(0x06318D, 0x026B7E) },
- { "Brazil/Acre" , FOR_V2(0x063A7B, 0x026EB3) },
- { "Brazil/DeNoronha" , FOR_V2(0x063D17, 0x026FC4) },
- { "Brazil/East" , FOR_V2(0x063FFB, 0x0270E9) },
- { "Brazil/West" , FOR_V2(0x0647E6, 0x0273CB) },
- { "Canada/Atlantic" , FOR_V2(0x064A5A, 0x0274C8) },
- { "Canada/Central" , FOR_V2(0x0657D4, 0x0279B5) },
- { "Canada/East-Saskatchewan" , FOR_V2(0x06632B, 0x027DE0) },
- { "Canada/Eastern" , FOR_V2(0x066719, 0x027F6E) },
- { "Canada/Mountain" , FOR_V2(0x0674D4, 0x02846F) },
- { "Canada/Newfoundland" , FOR_V2(0x067E42, 0x0287EA) },
- { "Canada/Pacific" , FOR_V2(0x068C9E, 0x028D2E) },
- { "Canada/Saskatchewan" , FOR_V2(0x0697FF, 0x029158) },
- { "Canada/Yukon" , FOR_V2(0x069BED, 0x0292E6) },
- { "CET" , FOR_V2(0x06A426, 0x0295FA) },
- { "Chile/Continental" , FOR_V2(0x06AC68, 0x029903) },
- { "Chile/EasterIsland" , FOR_V2(0x06B647, 0x029CA7) },
- { "CST6CDT" , FOR_V2(0x06BF04, 0x029FE1) },
- { "Cuba" , FOR_V2(0x06C806, 0x02A332) },
- { "EET" , FOR_V2(0x06D197, 0x02A6B6) },
- { "Egypt" , FOR_V2(0x06D8F7, 0x02A969) },
- { "Eire" , FOR_V2(0x06E0B7, 0x02AC49) },
- { "EST" , FOR_V2(0x06EEAA, 0x02B16B) },
- { "EST5EDT" , FOR_V2(0x06EF35, 0x02B1AF) },
- { "Etc/GMT" , FOR_V2(0x06F837, 0x02B500) },
- { "Etc/GMT+0" , FOR_V2(0x06F8C2, 0x02B544) },
- { "Etc/GMT+1" , FOR_V2(0x06F94D, 0x02B588) },
- { "Etc/GMT+10" , FOR_V2(0x06F9ED, 0x02B5D6) },
- { "Etc/GMT+11" , FOR_V2(0x06FA8E, 0x02B624) },
- { "Etc/GMT+12" , FOR_V2(0x06FB2F, 0x02B672) },
- { "Etc/GMT+2" , FOR_V2(0x06FBD0, 0x02B6C0) },
- { "Etc/GMT+3" , FOR_V2(0x06FC70, 0x02B70E) },
- { "Etc/GMT+4" , FOR_V2(0x06FD10, 0x02B75C) },
- { "Etc/GMT+5" , FOR_V2(0x06FDB0, 0x02B7AA) },
- { "Etc/GMT+6" , FOR_V2(0x06FE50, 0x02B7F8) },
- { "Etc/GMT+7" , FOR_V2(0x06FEF0, 0x02B846) },
- { "Etc/GMT+8" , FOR_V2(0x06FF90, 0x02B894) },
- { "Etc/GMT+9" , FOR_V2(0x070030, 0x02B8E2) },
- { "Etc/GMT-0" , FOR_V2(0x0700D0, 0x02B930) },
- { "Etc/GMT-1" , FOR_V2(0x07015B, 0x02B974) },
- { "Etc/GMT-10" , FOR_V2(0x0701FC, 0x02B9C2) },
- { "Etc/GMT-11" , FOR_V2(0x07029E, 0x02BA10) },
- { "Etc/GMT-12" , FOR_V2(0x070340, 0x02BA5E) },
- { "Etc/GMT-13" , FOR_V2(0x0703E2, 0x02BAAC) },
- { "Etc/GMT-14" , FOR_V2(0x070484, 0x02BAFA) },
- { "Etc/GMT-2" , FOR_V2(0x070526, 0x02BB48) },
- { "Etc/GMT-3" , FOR_V2(0x0705C7, 0x02BB96) },
- { "Etc/GMT-4" , FOR_V2(0x070668, 0x02BBE4) },
- { "Etc/GMT-5" , FOR_V2(0x070709, 0x02BC32) },
- { "Etc/GMT-6" , FOR_V2(0x0707AA, 0x02BC80) },
- { "Etc/GMT-7" , FOR_V2(0x07084B, 0x02BCCE) },
- { "Etc/GMT-8" , FOR_V2(0x0708EC, 0x02BD1C) },
- { "Etc/GMT-9" , FOR_V2(0x07098D, 0x02BD6A) },
- { "Etc/GMT0" , FOR_V2(0x070A2E, 0x02BDB8) },
- { "Etc/Greenwich" , FOR_V2(0x070AB9, 0x02BDFC) },
- { "Etc/UCT" , FOR_V2(0x070B44, 0x02BE40) },
- { "Etc/Universal" , FOR_V2(0x070BCF, 0x02BE84) },
- { "Etc/UTC" , FOR_V2(0x070C5A, 0x02BEC8) },
- { "Etc/Zulu" , FOR_V2(0x070CE5, 0x02BF0C) },
- { "Europe/Amsterdam" , FOR_V2(0x070D70, 0x02BF50) },
- { "Europe/Andorra" , FOR_V2(0x0718FB, 0x02C39F) },
- { "Europe/Astrakhan" , FOR_V2(0x071FDE, 0x02C62C) },
- { "Europe/Athens" , FOR_V2(0x0724A9, 0x02C818) },
- { "Europe/Belfast" , FOR_V2(0x072D94, 0x02CB6C) },
- { "Europe/Belgrade" , FOR_V2(0x073C07, 0x02D0B4) },
- { "Europe/Berlin" , FOR_V2(0x0743B8, 0x02D38E) },
- { "Europe/Bratislava" , FOR_V2(0x074CF7, 0x02D709) },
- { "Europe/Brussels" , FOR_V2(0x0755E3, 0x02DA4C) },
- { "Europe/Bucharest" , FOR_V2(0x076189, 0x02DE94) },
- { "Europe/Budapest" , FOR_V2(0x076A42, 0x02E1CF) },
- { "Europe/Busingen" , FOR_V2(0x0773B3, 0x02E549) },
- { "Europe/Chisinau" , FOR_V2(0x077B45, 0x02E811) },
- { "Europe/Copenhagen" , FOR_V2(0x0784DE, 0x02EBB5) },
- { "Europe/Dublin" , FOR_V2(0x078D5A, 0x02EED0) },
- { "Europe/Gibraltar" , FOR_V2(0x079B4D, 0x02F3F2) },
- { "Europe/Guernsey" , FOR_V2(0x07A74E, 0x02F85A) },
- { "Europe/Helsinki" , FOR_V2(0x07B5C1, 0x02FDA2) },
- { "Europe/Isle_of_Man" , FOR_V2(0x07BD42, 0x030069) },
- { "Europe/Istanbul" , FOR_V2(0x07CBB5, 0x0305B1) },
- { "Europe/Jersey" , FOR_V2(0x07D437, 0x0308E9) },
- { "Europe/Kaliningrad" , FOR_V2(0x07E2AA, 0x030E31) },
- { "Europe/Kiev" , FOR_V2(0x07E8B8, 0x0310A2) },
- { "Europe/Kirov" , FOR_V2(0x07F109, 0x0313D5) },
- { "Europe/Lisbon" , FOR_V2(0x07F5B2, 0x0315B0) },
- { "Europe/Ljubljana" , FOR_V2(0x08034E, 0x031AC4) },
- { "Europe/London" , FOR_V2(0x080AFF, 0x031D9E) },
- { "Europe/Luxembourg" , FOR_V2(0x081972, 0x0322E6) },
- { "Europe/Madrid" , FOR_V2(0x08251C, 0x032741) },
- { "Europe/Malta" , FOR_V2(0x082F73, 0x032B20) },
- { "Europe/Mariehamn" , FOR_V2(0x0839C4, 0x032EEA) },
- { "Europe/Minsk" , FOR_V2(0x084145, 0x0331B1) },
- { "Europe/Monaco" , FOR_V2(0x0846AB, 0x0333D5) },
- { "Europe/Moscow" , FOR_V2(0x085240, 0x033821) },
- { "Europe/Nicosia" , FOR_V2(0x085868, 0x033AA1) },
- { "Europe/Oslo" , FOR_V2(0x086054, 0x033D8E) },
- { "Europe/Paris" , FOR_V2(0x08692B, 0x0340D1) },
- { "Europe/Podgorica" , FOR_V2(0x0874D2, 0x034528) },
- { "Europe/Prague" , FOR_V2(0x087C83, 0x034802) },
- { "Europe/Riga" , FOR_V2(0x08856F, 0x034B45) },
- { "Europe/Rome" , FOR_V2(0x088E36, 0x034E9B) },
- { "Europe/Samara" , FOR_V2(0x0898C6, 0x035274) },
- { "Europe/San_Marino" , FOR_V2(0x089DD0, 0x035483) },
- { "Europe/Sarajevo" , FOR_V2(0x08A860, 0x03585C) },
- { "Europe/Simferopol" , FOR_V2(0x08B011, 0x035B36) },
- { "Europe/Skopje" , FOR_V2(0x08B5FE, 0x035D98) },
- { "Europe/Sofia" , FOR_V2(0x08BDAF, 0x036072) },
- { "Europe/Stockholm" , FOR_V2(0x08C60D, 0x03638B) },
- { "Europe/Tallinn" , FOR_V2(0x08CD97, 0x03664B) },
- { "Europe/Tirane" , FOR_V2(0x08D62E, 0x036991) },
- { "Europe/Tiraspol" , FOR_V2(0x08DE6C, 0x036C9C) },
- { "Europe/Ulyanovsk" , FOR_V2(0x08E805, 0x037040) },
- { "Europe/Uzhgorod" , FOR_V2(0x08ED24, 0x037252) },
- { "Europe/Vaduz" , FOR_V2(0x08F56F, 0x03757A) },
- { "Europe/Vatican" , FOR_V2(0x08FCF9, 0x03783A) },
- { "Europe/Vienna" , FOR_V2(0x090789, 0x037C13) },
- { "Europe/Vilnius" , FOR_V2(0x091052, 0x037F51) },
- { "Europe/Volgograd" , FOR_V2(0x0918F5, 0x0382A1) },
- { "Europe/Warsaw" , FOR_V2(0x091DAB, 0x038489) },
- { "Europe/Zagreb" , FOR_V2(0x092848, 0x03887B) },
- { "Europe/Zaporozhye" , FOR_V2(0x092FF9, 0x038B55) },
- { "Europe/Zurich" , FOR_V2(0x093872, 0x038EA7) },
- { "Factory" , FOR_V2(0x093FFC, 0x039167) },
- { "GB" , FOR_V2(0x09409C, 0x0391B5) },
- { "GB-Eire" , FOR_V2(0x094F0F, 0x0396FD) },
- { "GMT" , FOR_V2(0x095D82, 0x039C45) },
- { "GMT+0" , FOR_V2(0x095E0D, 0x039C89) },
- { "GMT-0" , FOR_V2(0x095E98, 0x039CCD) },
- { "GMT0" , FOR_V2(0x095F23, 0x039D11) },
- { "Greenwich" , FOR_V2(0x095FAE, 0x039D55) },
- { "Hongkong" , FOR_V2(0x096039, 0x039D99) },
- { "HST" , FOR_V2(0x0964EA, 0x039F68) },
- { "Iceland" , FOR_V2(0x096576, 0x039FAC) },
- { "Indian/Antananarivo" , FOR_V2(0x096A28, 0x03A17E) },
- { "Indian/Chagos" , FOR_V2(0x096B4F, 0x03A20A) },
- { "Indian/Christmas" , FOR_V2(0x096C24, 0x03A271) },
- { "Indian/Cocos" , FOR_V2(0x096CC5, 0x03A2B5) },
- { "Indian/Comoro" , FOR_V2(0x096D69, 0x03A2F9) },
- { "Indian/Kerguelen" , FOR_V2(0x096E90, 0x03A385) },
- { "Indian/Mahe" , FOR_V2(0x096F57, 0x03A3E4) },
- { "Indian/Maldives" , FOR_V2(0x09700E, 0x03A43E) },
- { "Indian/Mauritius" , FOR_V2(0x0970E6, 0x03A4A4) },
- { "Indian/Mayotte" , FOR_V2(0x0971EF, 0x03A51F) },
- { "Indian/Reunion" , FOR_V2(0x097316, 0x03A5AB) },
- { "Iran" , FOR_V2(0x0973CD, 0x03A605) },
- { "Israel" , FOR_V2(0x097A67, 0x03A880) },
- { "Jamaica" , FOR_V2(0x09834C, 0x03ABC8) },
- { "Japan" , FOR_V2(0x098553, 0x03AC9E) },
- { "Kwajalein" , FOR_V2(0x0986C2, 0x03AD35) },
- { "Libya" , FOR_V2(0x0987BB, 0x03ADA9) },
- { "MET" , FOR_V2(0x098A56, 0x03AEB7) },
- { "Mexico/BajaNorte" , FOR_V2(0x099298, 0x03B1C0) },
- { "Mexico/BajaSur" , FOR_V2(0x099BD8, 0x03B52E) },
- { "Mexico/General" , FOR_V2(0x09A200, 0x03B780) },
- { "MST" , FOR_V2(0x09A85E, 0x03B9E3) },
- { "MST7MDT" , FOR_V2(0x09A8E9, 0x03BA27) },
- { "Navajo" , FOR_V2(0x09B1EB, 0x03BD78) },
- { "NZ" , FOR_V2(0x09BB8C, 0x03C102) },
- { "NZ-CHAT" , FOR_V2(0x09C534, 0x03C491) },
- { "Pacific/Apia" , FOR_V2(0x09CD49, 0x03C786) },
- { "Pacific/Auckland" , FOR_V2(0x09D1A3, 0x03C92F) },
- { "Pacific/Bougainville" , FOR_V2(0x09DB63, 0x03CCD6) },
- { "Pacific/Chatham" , FOR_V2(0x09DC93, 0x03CD5F) },
- { "Pacific/Chuuk" , FOR_V2(0x09E4B7, 0x03D063) },
- { "Pacific/Easter" , FOR_V2(0x09E56B, 0x03D0B7) },
- { "Pacific/Efate" , FOR_V2(0x09EE35, 0x03D3FE) },
- { "Pacific/Enderbury" , FOR_V2(0x09F01F, 0x03D4C9) },
- { "Pacific/Fakaofo" , FOR_V2(0x09F120, 0x03D548) },
- { "Pacific/Fiji" , FOR_V2(0x09F1F1, 0x03D5AA) },
- { "Pacific/Funafuti" , FOR_V2(0x09F62E, 0x03D742) },
- { "Pacific/Galapagos" , FOR_V2(0x09F6D0, 0x03D786) },
- { "Pacific/Gambier" , FOR_V2(0x09F7C0, 0x03D803) },
- { "Pacific/Guadalcanal" , FOR_V2(0x09F888, 0x03D86D) },
- { "Pacific/Guam" , FOR_V2(0x09F940, 0x03D8C7) },
- { "Pacific/Honolulu" , FOR_V2(0x09FA2D, 0x03D92E) },
- { "Pacific/Johnston" , FOR_V2(0x09FB53, 0x03D9B6) },
- { "Pacific/Kiritimati" , FOR_V2(0x09FC81, 0x03DA46) },
- { "Pacific/Kosrae" , FOR_V2(0x09FD7F, 0x03DAC2) },
- { "Pacific/Kwajalein" , FOR_V2(0x09FE77, 0x03DB38) },
- { "Pacific/Majuro" , FOR_V2(0x09FF79, 0x03DBB5) },
- { "Pacific/Marquesas" , FOR_V2(0x0A0067, 0x03DC34) },
- { "Pacific/Midway" , FOR_V2(0x0A0134, 0x03DCA0) },
- { "Pacific/Nauru" , FOR_V2(0x0A025E, 0x03DD32) },
- { "Pacific/Niue" , FOR_V2(0x0A0368, 0x03DDAF) },
- { "Pacific/Norfolk" , FOR_V2(0x0A0456, 0x03DE1E) },
- { "Pacific/Noumea" , FOR_V2(0x0A0583, 0x03DEA8) },
- { "Pacific/Pago_Pago" , FOR_V2(0x0A06C9, 0x03DF3D) },
- { "Pacific/Palau" , FOR_V2(0x0A07E5, 0x03DFC1) },
- { "Pacific/Pitcairn" , FOR_V2(0x0A0886, 0x03E005) },
- { "Pacific/Pohnpei" , FOR_V2(0x0A095D, 0x03E06B) },
- { "Pacific/Ponape" , FOR_V2(0x0A0A10, 0x03E0BE) },
- { "Pacific/Port_Moresby" , FOR_V2(0x0A0AB5, 0x03E103) },
- { "Pacific/Rarotonga" , FOR_V2(0x0A0B8A, 0x03E164) },
- { "Pacific/Saipan" , FOR_V2(0x0A0DD4, 0x03E251) },
- { "Pacific/Samoa" , FOR_V2(0x0A0EC1, 0x03E2B8) },
- { "Pacific/Tahiti" , FOR_V2(0x0A0FDD, 0x03E33C) },
- { "Pacific/Tarawa" , FOR_V2(0x0A10A6, 0x03E3A6) },
- { "Pacific/Tongatapu" , FOR_V2(0x0A115A, 0x03E3FA) },
- { "Pacific/Truk" , FOR_V2(0x0A1543, 0x03E578) },
- { "Pacific/Wake" , FOR_V2(0x0A15E8, 0x03E5BD) },
- { "Pacific/Wallis" , FOR_V2(0x0A1698, 0x03E60D) },
- { "Pacific/Yap" , FOR_V2(0x0A173A, 0x03E651) },
- { "Poland" , FOR_V2(0x0A17DF, 0x03E696) },
- { "Portugal" , FOR_V2(0x0A227C, 0x03EA88) },
- { "PRC" , FOR_V2(0x0A3005, 0x03EF89) },
- { "PST8PDT" , FOR_V2(0x0A31AF, 0x03F03A) },
- { "ROC" , FOR_V2(0x0A3AB1, 0x03F38B) },
- { "ROK" , FOR_V2(0x0A3DDD, 0x03F4CD) },
- { "Singapore" , FOR_V2(0x0A4024, 0x03F5C5) },
- { "Turkey" , FOR_V2(0x0A41DC, 0x03F68D) },
- { "UCT" , FOR_V2(0x0A4A5E, 0x03F9C5) },
- { "Universal" , FOR_V2(0x0A4AE9, 0x03FA09) },
- { "US/Alaska" , FOR_V2(0x0A4B74, 0x03FA4D) },
- { "US/Aleutian" , FOR_V2(0x0A54D0, 0x03FDC7) },
- { "US/Arizona" , FOR_V2(0x0A5E19, 0x040138) },
- { "US/Central" , FOR_V2(0x0A5F86, 0x0401D7) },
- { "US/East-Indiana" , FOR_V2(0x0A6D93, 0x0406FB) },
- { "US/Eastern" , FOR_V2(0x0A742A, 0x040976) },
- { "US/Hawaii" , FOR_V2(0x0A820F, 0x040E86) },
- { "US/Indiana-Starke" , FOR_V2(0x0A832F, 0x040F08) },
- { "US/Michigan" , FOR_V2(0x0A8CC0, 0x041292) },
- { "US/Mountain" , FOR_V2(0x0A9574, 0x0415CE) },
- { "US/Pacific" , FOR_V2(0x0A9F15, 0x041958) },
- { "US/Pacific-New" , FOR_V2(0x0AAA3E, 0x041D6E) },
- { "US/Samoa" , FOR_V2(0x0AB567, 0x042184) },
- { "UTC" , FOR_V2(0x0AB683, 0x042208) },
- { "W-SU" , FOR_V2(0x0AB70E, 0x04224C) },
- { "WET" , FOR_V2(0x0ABD22, 0x0424B8) },
- { "Zulu" , FOR_V2(0x0AC47F, 0x04276B) },
+ { "Asia/Aqtobe" , FOR_V2(0x042723, 0x019E64) },
+ { "Asia/Ashgabat" , FOR_V2(0x042B53, 0x01A01A) },
+ { "Asia/Ashkhabad" , FOR_V2(0x042DEA, 0x01A131) },
+ { "Asia/Atyrau" , FOR_V2(0x043081, 0x01A248) },
+ { "Asia/Baghdad" , FOR_V2(0x04349B, 0x01A3F9) },
+ { "Asia/Bahrain" , FOR_V2(0x043883, 0x01A57F) },
+ { "Asia/Baku" , FOR_V2(0x043960, 0x01A5EA) },
+ { "Asia/Bangkok" , FOR_V2(0x043E61, 0x01A7E0) },
+ { "Asia/Barnaul" , FOR_V2(0x043F39, 0x01A846) },
+ { "Asia/Beirut" , FOR_V2(0x04443A, 0x01AA45) },
+ { "Asia/Bishkek" , FOR_V2(0x044CC5, 0x01AD63) },
+ { "Asia/Brunei" , FOR_V2(0x0450E6, 0x01AF09) },
+ { "Asia/Calcutta" , FOR_V2(0x0451BB, 0x01AF70) },
+ { "Asia/Chita" , FOR_V2(0x0452EA, 0x01AFFA) },
+ { "Asia/Choibalsan" , FOR_V2(0x0457F3, 0x01B202) },
+ { "Asia/Chongqing" , FOR_V2(0x045E42, 0x01B46E) },
+ { "Asia/Chungking" , FOR_V2(0x045FEC, 0x01B51F) },
+ { "Asia/Colombo" , FOR_V2(0x046196, 0x01B5D0) },
+ { "Asia/Dacca" , FOR_V2(0x04633F, 0x01B68D) },
+ { "Asia/Damascus" , FOR_V2(0x0464D1, 0x01B744) },
+ { "Asia/Dhaka" , FOR_V2(0x046DED, 0x01BA99) },
+ { "Asia/Dili" , FOR_V2(0x046F7F, 0x01BB50) },
+ { "Asia/Dubai" , FOR_V2(0x0470C0, 0x01BBE7) },
+ { "Asia/Dushanbe" , FOR_V2(0x047177, 0x01BC41) },
+ { "Asia/Famagusta" , FOR_V2(0x0473F0, 0x01BD4B) },
+ { "Asia/Gaza" , FOR_V2(0x0479B0, 0x01BF86) },
+ { "Asia/Harbin" , FOR_V2(0x0482BD, 0x01C2E2) },
+ { "Asia/Hebron" , FOR_V2(0x048467, 0x01C393) },
+ { "Asia/Ho_Chi_Minh" , FOR_V2(0x048D8F, 0x01C6F8) },
+ { "Asia/Hong_Kong" , FOR_V2(0x048F10, 0x01C7A7) },
+ { "Asia/Hovd" , FOR_V2(0x0493C1, 0x01C976) },
+ { "Asia/Irkutsk" , FOR_V2(0x0499E1, 0x01CBD9) },
+ { "Asia/Istanbul" , FOR_V2(0x049F03, 0x01CDEE) },
+ { "Asia/Jakarta" , FOR_V2(0x04A785, 0x01D126) },
+ { "Asia/Jayapura" , FOR_V2(0x04A910, 0x01D1E0) },
+ { "Asia/Jerusalem" , FOR_V2(0x04AA43, 0x01D28F) },
+ { "Asia/Kabul" , FOR_V2(0x04B328, 0x01D5D7) },
+ { "Asia/Kamchatka" , FOR_V2(0x04B3FB, 0x01D639) },
+ { "Asia/Karachi" , FOR_V2(0x04B8C7, 0x01D825) },
+ { "Asia/Kashgar" , FOR_V2(0x04BA66, 0x01D8DF) },
+ { "Asia/Kathmandu" , FOR_V2(0x04BB1D, 0x01D939) },
+ { "Asia/Katmandu" , FOR_V2(0x04BBFD, 0x01D9A4) },
+ { "Asia/Khandyga" , FOR_V2(0x04BCDD, 0x01DA0F) },
+ { "Asia/Kolkata" , FOR_V2(0x04C226, 0x01DC3A) },
+ { "Asia/Krasnoyarsk" , FOR_V2(0x04C355, 0x01DCC4) },
+ { "Asia/Kuala_Lumpur" , FOR_V2(0x04C855, 0x01DECC) },
+ { "Asia/Kuching" , FOR_V2(0x04CA03, 0x01DF9B) },
+ { "Asia/Kuwait" , FOR_V2(0x04CC24, 0x01E08D) },
+ { "Asia/Macao" , FOR_V2(0x04CCDB, 0x01E0E7) },
+ { "Asia/Macau" , FOR_V2(0x04D002, 0x01E227) },
+ { "Asia/Magadan" , FOR_V2(0x04D329, 0x01E367) },
+ { "Asia/Makassar" , FOR_V2(0x04D82F, 0x01E56B) },
+ { "Asia/Manila" , FOR_V2(0x04D99C, 0x01E63E) },
+ { "Asia/Muscat" , FOR_V2(0x04DB11, 0x01E6DC) },
+ { "Asia/Nicosia" , FOR_V2(0x04DBC8, 0x01E736) },
+ { "Asia/Novokuznetsk" , FOR_V2(0x04E3C7, 0x01EA36) },
+ { "Asia/Novosibirsk" , FOR_V2(0x04E891, 0x01EC21) },
+ { "Asia/Omsk" , FOR_V2(0x04ED98, 0x01EE26) },
+ { "Asia/Oral" , FOR_V2(0x04F28C, 0x01F022) },
+ { "Asia/Phnom_Penh" , FOR_V2(0x04F6AE, 0x01F1D2) },
+ { "Asia/Pontianak" , FOR_V2(0x04F786, 0x01F238) },
+ { "Asia/Pyongyang" , FOR_V2(0x04F91F, 0x01F300) },
+ { "Asia/Qatar" , FOR_V2(0x04FA63, 0x01F397) },
+ { "Asia/Qyzylorda" , FOR_V2(0x04FB40, 0x01F402) },
+ { "Asia/Rangoon" , FOR_V2(0x04FF80, 0x01F5C8) },
+ { "Asia/Riyadh" , FOR_V2(0x0500A9, 0x01F651) },
+ { "Asia/Saigon" , FOR_V2(0x050160, 0x01F6AB) },
+ { "Asia/Sakhalin" , FOR_V2(0x0502E1, 0x01F75A) },
+ { "Asia/Samarkand" , FOR_V2(0x0507D7, 0x01F95A) },
+ { "Asia/Seoul" , FOR_V2(0x050A5F, 0x01FA72) },
+ { "Asia/Shanghai" , FOR_V2(0x050CA6, 0x01FB6A) },
+ { "Asia/Singapore" , FOR_V2(0x050E5C, 0x01FC27) },
+ { "Asia/Srednekolymsk" , FOR_V2(0x051014, 0x01FCEF) },
+ { "Asia/Taipei" , FOR_V2(0x05151E, 0x01FF00) },
+ { "Asia/Tashkent" , FOR_V2(0x05184A, 0x020042) },
+ { "Asia/Tbilisi" , FOR_V2(0x051AE2, 0x020162) },
+ { "Asia/Tehran" , FOR_V2(0x051F26, 0x020315) },
+ { "Asia/Tel_Aviv" , FOR_V2(0x0525C0, 0x020590) },
+ { "Asia/Thimbu" , FOR_V2(0x052EA5, 0x0208D8) },
+ { "Asia/Thimphu" , FOR_V2(0x052F82, 0x020943) },
+ { "Asia/Tokyo" , FOR_V2(0x05305F, 0x0209AE) },
+ { "Asia/Tomsk" , FOR_V2(0x0531CE, 0x020A45) },
+ { "Asia/Ujung_Pandang" , FOR_V2(0x0536CF, 0x020C44) },
+ { "Asia/Ulaanbaatar" , FOR_V2(0x0537F3, 0x020CCE) },
+ { "Asia/Ulan_Bator" , FOR_V2(0x053DFD, 0x020F1B) },
+ { "Asia/Urumqi" , FOR_V2(0x0543F2, 0x021153) },
+ { "Asia/Ust-Nera" , FOR_V2(0x0544B6, 0x0211BA) },
+ { "Asia/Vientiane" , FOR_V2(0x0549E0, 0x0213D2) },
+ { "Asia/Vladivostok" , FOR_V2(0x054AB8, 0x021438) },
+ { "Asia/Yakutsk" , FOR_V2(0x054FB3, 0x02163A) },
+ { "Asia/Yangon" , FOR_V2(0x0554AD, 0x02183C) },
+ { "Asia/Yekaterinburg" , FOR_V2(0x0555D6, 0x0218C5) },
+ { "Asia/Yerevan" , FOR_V2(0x055AF1, 0x021AD3) },
+ { "Atlantic/Azores" , FOR_V2(0x055FAC, 0x021CB0) },
+ { "Atlantic/Bermuda" , FOR_V2(0x056D5E, 0x0221C4) },
+ { "Atlantic/Canary" , FOR_V2(0x05753E, 0x0224AA) },
+ { "Atlantic/Cape_Verde" , FOR_V2(0x057CD1, 0x022785) },
+ { "Atlantic/Faeroe" , FOR_V2(0x057DDB, 0x022803) },
+ { "Atlantic/Faroe" , FOR_V2(0x05850C, 0x022AAC) },
+ { "Atlantic/Jan_Mayen" , FOR_V2(0x058C3D, 0x022D55) },
+ { "Atlantic/Madeira" , FOR_V2(0x059514, 0x023098) },
+ { "Atlantic/Reykjavik" , FOR_V2(0x05A2C5, 0x0235B2) },
+ { "Atlantic/South_Georgia" , FOR_V2(0x05A777, 0x023784) },
+ { "Atlantic/St_Helena" , FOR_V2(0x05A817, 0x0237C8) },
+ { "Atlantic/Stanley" , FOR_V2(0x05A8CD, 0x023822) },
+ { "Australia/ACT" , FOR_V2(0x05ADB7, 0x023A09) },
+ { "Australia/Adelaide" , FOR_V2(0x05B672, 0x023D3D) },
+ { "Australia/Brisbane" , FOR_V2(0x05BF4B, 0x02407C) },
+ { "Australia/Broken_Hill" , FOR_V2(0x05C132, 0x024156) },
+ { "Australia/Canberra" , FOR_V2(0x05CA3C, 0x0244A7) },
+ { "Australia/Currie" , FOR_V2(0x05D2F7, 0x0247DB) },
+ { "Australia/Darwin" , FOR_V2(0x05DBC8, 0x024B25) },
+ { "Australia/Eucla" , FOR_V2(0x05DD29, 0x024BBE) },
+ { "Australia/Hobart" , FOR_V2(0x05DF35, 0x024CA6) },
+ { "Australia/LHI" , FOR_V2(0x05E875, 0x025017) },
+ { "Australia/Lindeman" , FOR_V2(0x05EFC4, 0x0252C9) },
+ { "Australia/Lord_Howe" , FOR_V2(0x05F1F9, 0x0253C4) },
+ { "Australia/Melbourne" , FOR_V2(0x05F958, 0x025686) },
+ { "Australia/North" , FOR_V2(0x06021B, 0x0259C2) },
+ { "Australia/NSW" , FOR_V2(0x06036A, 0x025A49) },
+ { "Australia/Perth" , FOR_V2(0x060C25, 0x025D7D) },
+ { "Australia/Queensland" , FOR_V2(0x060E2E, 0x025E68) },
+ { "Australia/South" , FOR_V2(0x060FFE, 0x025F2B) },
+ { "Australia/Sydney" , FOR_V2(0x0618C8, 0x02625B) },
+ { "Australia/Tasmania" , FOR_V2(0x06219F, 0x0265AB) },
+ { "Australia/Victoria" , FOR_V2(0x062ACA, 0x026907) },
+ { "Australia/West" , FOR_V2(0x063385, 0x026C3B) },
+ { "Australia/Yancowinna" , FOR_V2(0x063570, 0x026D08) },
+ { "Brazil/Acre" , FOR_V2(0x063E5E, 0x02703D) },
+ { "Brazil/DeNoronha" , FOR_V2(0x0640FA, 0x02714E) },
+ { "Brazil/East" , FOR_V2(0x0643DE, 0x027273) },
+ { "Brazil/West" , FOR_V2(0x064BC9, 0x027555) },
+ { "Canada/Atlantic" , FOR_V2(0x064E3D, 0x027652) },
+ { "Canada/Central" , FOR_V2(0x065BB7, 0x027B3F) },
+ { "Canada/East-Saskatchewan" , FOR_V2(0x06670E, 0x027F6A) },
+ { "Canada/Eastern" , FOR_V2(0x066AFC, 0x0280F8) },
+ { "Canada/Mountain" , FOR_V2(0x0678B7, 0x0285F9) },
+ { "Canada/Newfoundland" , FOR_V2(0x068225, 0x028974) },
+ { "Canada/Pacific" , FOR_V2(0x069081, 0x028EB8) },
+ { "Canada/Saskatchewan" , FOR_V2(0x069BE2, 0x0292E2) },
+ { "Canada/Yukon" , FOR_V2(0x069FD0, 0x029470) },
+ { "CET" , FOR_V2(0x06A809, 0x029784) },
+ { "Chile/Continental" , FOR_V2(0x06B04B, 0x029A8D) },
+ { "Chile/EasterIsland" , FOR_V2(0x06BA2A, 0x029E31) },
+ { "CST6CDT" , FOR_V2(0x06C2E7, 0x02A16B) },
+ { "Cuba" , FOR_V2(0x06CBE9, 0x02A4BC) },
+ { "EET" , FOR_V2(0x06D57A, 0x02A840) },
+ { "Egypt" , FOR_V2(0x06DCDA, 0x02AAF3) },
+ { "Eire" , FOR_V2(0x06E49A, 0x02ADD3) },
+ { "EST" , FOR_V2(0x06F28D, 0x02B2F5) },
+ { "EST5EDT" , FOR_V2(0x06F318, 0x02B339) },
+ { "Etc/GMT" , FOR_V2(0x06FC1A, 0x02B68A) },
+ { "Etc/GMT+0" , FOR_V2(0x06FCA5, 0x02B6CE) },
+ { "Etc/GMT+1" , FOR_V2(0x06FD30, 0x02B712) },
+ { "Etc/GMT+10" , FOR_V2(0x06FDD0, 0x02B760) },
+ { "Etc/GMT+11" , FOR_V2(0x06FE71, 0x02B7AE) },
+ { "Etc/GMT+12" , FOR_V2(0x06FF12, 0x02B7FC) },
+ { "Etc/GMT+2" , FOR_V2(0x06FFB3, 0x02B84A) },
+ { "Etc/GMT+3" , FOR_V2(0x070053, 0x02B898) },
+ { "Etc/GMT+4" , FOR_V2(0x0700F3, 0x02B8E6) },
+ { "Etc/GMT+5" , FOR_V2(0x070193, 0x02B934) },
+ { "Etc/GMT+6" , FOR_V2(0x070233, 0x02B982) },
+ { "Etc/GMT+7" , FOR_V2(0x0702D3, 0x02B9D0) },
+ { "Etc/GMT+8" , FOR_V2(0x070373, 0x02BA1E) },
+ { "Etc/GMT+9" , FOR_V2(0x070413, 0x02BA6C) },
+ { "Etc/GMT-0" , FOR_V2(0x0704B3, 0x02BABA) },
+ { "Etc/GMT-1" , FOR_V2(0x07053E, 0x02BAFE) },
+ { "Etc/GMT-10" , FOR_V2(0x0705DF, 0x02BB4C) },
+ { "Etc/GMT-11" , FOR_V2(0x070681, 0x02BB9A) },
+ { "Etc/GMT-12" , FOR_V2(0x070723, 0x02BBE8) },
+ { "Etc/GMT-13" , FOR_V2(0x0707C5, 0x02BC36) },
+ { "Etc/GMT-14" , FOR_V2(0x070867, 0x02BC84) },
+ { "Etc/GMT-2" , FOR_V2(0x070909, 0x02BCD2) },
+ { "Etc/GMT-3" , FOR_V2(0x0709AA, 0x02BD20) },
+ { "Etc/GMT-4" , FOR_V2(0x070A4B, 0x02BD6E) },
+ { "Etc/GMT-5" , FOR_V2(0x070AEC, 0x02BDBC) },
+ { "Etc/GMT-6" , FOR_V2(0x070B8D, 0x02BE0A) },
+ { "Etc/GMT-7" , FOR_V2(0x070C2E, 0x02BE58) },
+ { "Etc/GMT-8" , FOR_V2(0x070CCF, 0x02BEA6) },
+ { "Etc/GMT-9" , FOR_V2(0x070D70, 0x02BEF4) },
+ { "Etc/GMT0" , FOR_V2(0x070E11, 0x02BF42) },
+ { "Etc/Greenwich" , FOR_V2(0x070E9C, 0x02BF86) },
+ { "Etc/UCT" , FOR_V2(0x070F27, 0x02BFCA) },
+ { "Etc/Universal" , FOR_V2(0x070FB2, 0x02C00E) },
+ { "Etc/UTC" , FOR_V2(0x07103D, 0x02C052) },
+ { "Etc/Zulu" , FOR_V2(0x0710C8, 0x02C096) },
+ { "Europe/Amsterdam" , FOR_V2(0x071153, 0x02C0DA) },
+ { "Europe/Andorra" , FOR_V2(0x071CDE, 0x02C529) },
+ { "Europe/Astrakhan" , FOR_V2(0x0723C1, 0x02C7B6) },
+ { "Europe/Athens" , FOR_V2(0x07288C, 0x02C9A2) },
+ { "Europe/Belfast" , FOR_V2(0x073177, 0x02CCF6) },
+ { "Europe/Belgrade" , FOR_V2(0x073FEA, 0x02D23E) },
+ { "Europe/Berlin" , FOR_V2(0x07479B, 0x02D518) },
+ { "Europe/Bratislava" , FOR_V2(0x0750DA, 0x02D893) },
+ { "Europe/Brussels" , FOR_V2(0x0759C6, 0x02DBD6) },
+ { "Europe/Bucharest" , FOR_V2(0x07656C, 0x02E01E) },
+ { "Europe/Budapest" , FOR_V2(0x076E25, 0x02E359) },
+ { "Europe/Busingen" , FOR_V2(0x077796, 0x02E6D3) },
+ { "Europe/Chisinau" , FOR_V2(0x077F28, 0x02E99B) },
+ { "Europe/Copenhagen" , FOR_V2(0x0788C1, 0x02ED3F) },
+ { "Europe/Dublin" , FOR_V2(0x07913D, 0x02F05A) },
+ { "Europe/Gibraltar" , FOR_V2(0x079F30, 0x02F57C) },
+ { "Europe/Guernsey" , FOR_V2(0x07AB31, 0x02F9E4) },
+ { "Europe/Helsinki" , FOR_V2(0x07B9A4, 0x02FF2C) },
+ { "Europe/Isle_of_Man" , FOR_V2(0x07C125, 0x0301F3) },
+ { "Europe/Istanbul" , FOR_V2(0x07CF98, 0x03073B) },
+ { "Europe/Jersey" , FOR_V2(0x07D81A, 0x030A73) },
+ { "Europe/Kaliningrad" , FOR_V2(0x07E68D, 0x030FBB) },
+ { "Europe/Kiev" , FOR_V2(0x07EC9B, 0x03122C) },
+ { "Europe/Kirov" , FOR_V2(0x07F4EC, 0x03155F) },
+ { "Europe/Lisbon" , FOR_V2(0x07F995, 0x03173A) },
+ { "Europe/Ljubljana" , FOR_V2(0x080731, 0x031C4E) },
+ { "Europe/London" , FOR_V2(0x080EE2, 0x031F28) },
+ { "Europe/Luxembourg" , FOR_V2(0x081D55, 0x032470) },
+ { "Europe/Madrid" , FOR_V2(0x0828FF, 0x0328CB) },
+ { "Europe/Malta" , FOR_V2(0x083356, 0x032CAA) },
+ { "Europe/Mariehamn" , FOR_V2(0x083DA7, 0x033074) },
+ { "Europe/Minsk" , FOR_V2(0x084528, 0x03333B) },
+ { "Europe/Monaco" , FOR_V2(0x084A8E, 0x03355F) },
+ { "Europe/Moscow" , FOR_V2(0x085623, 0x0339AB) },
+ { "Europe/Nicosia" , FOR_V2(0x085C4B, 0x033C2B) },
+ { "Europe/Oslo" , FOR_V2(0x086437, 0x033F18) },
+ { "Europe/Paris" , FOR_V2(0x086D0E, 0x03425B) },
+ { "Europe/Podgorica" , FOR_V2(0x0878B5, 0x0346B2) },
+ { "Europe/Prague" , FOR_V2(0x088066, 0x03498C) },
+ { "Europe/Riga" , FOR_V2(0x088952, 0x034CCF) },
+ { "Europe/Rome" , FOR_V2(0x089219, 0x035025) },
+ { "Europe/Samara" , FOR_V2(0x089CA9, 0x0353FE) },
+ { "Europe/San_Marino" , FOR_V2(0x08A1B3, 0x03560D) },
+ { "Europe/Sarajevo" , FOR_V2(0x08AC43, 0x0359E6) },
+ { "Europe/Saratov" , FOR_V2(0x08B3F4, 0x035CC0) },
+ { "Europe/Simferopol" , FOR_V2(0x08B8BD, 0x035EAA) },
+ { "Europe/Skopje" , FOR_V2(0x08BEAA, 0x03610C) },
+ { "Europe/Sofia" , FOR_V2(0x08C65B, 0x0363E6) },
+ { "Europe/Stockholm" , FOR_V2(0x08CEB9, 0x0366FF) },
+ { "Europe/Tallinn" , FOR_V2(0x08D643, 0x0369BF) },
+ { "Europe/Tirane" , FOR_V2(0x08DEDA, 0x036D05) },
+ { "Europe/Tiraspol" , FOR_V2(0x08E718, 0x037010) },
+ { "Europe/Ulyanovsk" , FOR_V2(0x08F0B1, 0x0373B4) },
+ { "Europe/Uzhgorod" , FOR_V2(0x08F5D0, 0x0375C6) },
+ { "Europe/Vaduz" , FOR_V2(0x08FE1B, 0x0378EE) },
+ { "Europe/Vatican" , FOR_V2(0x0905A5, 0x037BAE) },
+ { "Europe/Vienna" , FOR_V2(0x091035, 0x037F87) },
+ { "Europe/Vilnius" , FOR_V2(0x0918FE, 0x0382C5) },
+ { "Europe/Volgograd" , FOR_V2(0x0921A1, 0x038615) },
+ { "Europe/Warsaw" , FOR_V2(0x09264E, 0x0387F4) },
+ { "Europe/Zagreb" , FOR_V2(0x0930EB, 0x038BE6) },
+ { "Europe/Zaporozhye" , FOR_V2(0x09389C, 0x038EC0) },
+ { "Europe/Zurich" , FOR_V2(0x094115, 0x039212) },
+ { "Factory" , FOR_V2(0x09489F, 0x0394D2) },
+ { "GB" , FOR_V2(0x09493F, 0x039520) },
+ { "GB-Eire" , FOR_V2(0x0957B2, 0x039A68) },
+ { "GMT" , FOR_V2(0x096625, 0x039FB0) },
+ { "GMT+0" , FOR_V2(0x0966B0, 0x039FF4) },
+ { "GMT-0" , FOR_V2(0x09673B, 0x03A038) },
+ { "GMT0" , FOR_V2(0x0967C6, 0x03A07C) },
+ { "Greenwich" , FOR_V2(0x096851, 0x03A0C0) },
+ { "Hongkong" , FOR_V2(0x0968DC, 0x03A104) },
+ { "HST" , FOR_V2(0x096D8D, 0x03A2D3) },
+ { "Iceland" , FOR_V2(0x096E19, 0x03A317) },
+ { "Indian/Antananarivo" , FOR_V2(0x0972CB, 0x03A4E9) },
+ { "Indian/Chagos" , FOR_V2(0x0973F2, 0x03A575) },
+ { "Indian/Christmas" , FOR_V2(0x0974C7, 0x03A5DC) },
+ { "Indian/Cocos" , FOR_V2(0x097568, 0x03A620) },
+ { "Indian/Comoro" , FOR_V2(0x09760C, 0x03A664) },
+ { "Indian/Kerguelen" , FOR_V2(0x097733, 0x03A6F0) },
+ { "Indian/Mahe" , FOR_V2(0x0977FA, 0x03A74F) },
+ { "Indian/Maldives" , FOR_V2(0x0978B1, 0x03A7A9) },
+ { "Indian/Mauritius" , FOR_V2(0x097989, 0x03A80F) },
+ { "Indian/Mayotte" , FOR_V2(0x097A92, 0x03A88A) },
+ { "Indian/Reunion" , FOR_V2(0x097BB9, 0x03A916) },
+ { "Iran" , FOR_V2(0x097C70, 0x03A970) },
+ { "Israel" , FOR_V2(0x09830A, 0x03ABEB) },
+ { "Jamaica" , FOR_V2(0x098BEF, 0x03AF33) },
+ { "Japan" , FOR_V2(0x098DF6, 0x03B009) },
+ { "Kwajalein" , FOR_V2(0x098F65, 0x03B0A0) },
+ { "Libya" , FOR_V2(0x09905E, 0x03B114) },
+ { "MET" , FOR_V2(0x0992F9, 0x03B222) },
+ { "Mexico/BajaNorte" , FOR_V2(0x099B3B, 0x03B52B) },
+ { "Mexico/BajaSur" , FOR_V2(0x09A47B, 0x03B899) },
+ { "Mexico/General" , FOR_V2(0x09AAA3, 0x03BAEB) },
+ { "MST" , FOR_V2(0x09B101, 0x03BD4E) },
+ { "MST7MDT" , FOR_V2(0x09B18C, 0x03BD92) },
+ { "Navajo" , FOR_V2(0x09BA8E, 0x03C0E3) },
+ { "NZ" , FOR_V2(0x09C42F, 0x03C46D) },
+ { "NZ-CHAT" , FOR_V2(0x09CDD7, 0x03C7FC) },
+ { "Pacific/Apia" , FOR_V2(0x09D5EC, 0x03CAF1) },
+ { "Pacific/Auckland" , FOR_V2(0x09DA46, 0x03CC9A) },
+ { "Pacific/Bougainville" , FOR_V2(0x09E406, 0x03D041) },
+ { "Pacific/Chatham" , FOR_V2(0x09E536, 0x03D0CA) },
+ { "Pacific/Chuuk" , FOR_V2(0x09ED5A, 0x03D3CE) },
+ { "Pacific/Easter" , FOR_V2(0x09EE0E, 0x03D422) },
+ { "Pacific/Efate" , FOR_V2(0x09F6D8, 0x03D769) },
+ { "Pacific/Enderbury" , FOR_V2(0x09F8C2, 0x03D834) },
+ { "Pacific/Fakaofo" , FOR_V2(0x09F9C3, 0x03D8B3) },
+ { "Pacific/Fiji" , FOR_V2(0x09FA94, 0x03D915) },
+ { "Pacific/Funafuti" , FOR_V2(0x09FED1, 0x03DAAD) },
+ { "Pacific/Galapagos" , FOR_V2(0x09FF73, 0x03DAF1) },
+ { "Pacific/Gambier" , FOR_V2(0x0A0063, 0x03DB6E) },
+ { "Pacific/Guadalcanal" , FOR_V2(0x0A012B, 0x03DBD8) },
+ { "Pacific/Guam" , FOR_V2(0x0A01E3, 0x03DC32) },
+ { "Pacific/Honolulu" , FOR_V2(0x0A02D0, 0x03DC99) },
+ { "Pacific/Johnston" , FOR_V2(0x0A03F6, 0x03DD21) },
+ { "Pacific/Kiritimati" , FOR_V2(0x0A0524, 0x03DDB1) },
+ { "Pacific/Kosrae" , FOR_V2(0x0A0622, 0x03DE2D) },
+ { "Pacific/Kwajalein" , FOR_V2(0x0A071A, 0x03DEA3) },
+ { "Pacific/Majuro" , FOR_V2(0x0A081C, 0x03DF20) },
+ { "Pacific/Marquesas" , FOR_V2(0x0A090A, 0x03DF9F) },
+ { "Pacific/Midway" , FOR_V2(0x0A09D7, 0x03E00B) },
+ { "Pacific/Nauru" , FOR_V2(0x0A0B01, 0x03E09D) },
+ { "Pacific/Niue" , FOR_V2(0x0A0C0B, 0x03E11A) },
+ { "Pacific/Norfolk" , FOR_V2(0x0A0CF9, 0x03E189) },
+ { "Pacific/Noumea" , FOR_V2(0x0A0E26, 0x03E213) },
+ { "Pacific/Pago_Pago" , FOR_V2(0x0A0F6C, 0x03E2A8) },
+ { "Pacific/Palau" , FOR_V2(0x0A1088, 0x03E32C) },
+ { "Pacific/Pitcairn" , FOR_V2(0x0A1129, 0x03E370) },
+ { "Pacific/Pohnpei" , FOR_V2(0x0A1200, 0x03E3D6) },
+ { "Pacific/Ponape" , FOR_V2(0x0A12B3, 0x03E429) },
+ { "Pacific/Port_Moresby" , FOR_V2(0x0A1358, 0x03E46E) },
+ { "Pacific/Rarotonga" , FOR_V2(0x0A142D, 0x03E4CF) },
+ { "Pacific/Saipan" , FOR_V2(0x0A1677, 0x03E5BC) },
+ { "Pacific/Samoa" , FOR_V2(0x0A1764, 0x03E623) },
+ { "Pacific/Tahiti" , FOR_V2(0x0A1880, 0x03E6A7) },
+ { "Pacific/Tarawa" , FOR_V2(0x0A1949, 0x03E711) },
+ { "Pacific/Tongatapu" , FOR_V2(0x0A19FD, 0x03E765) },
+ { "Pacific/Truk" , FOR_V2(0x0A1DE6, 0x03E8E3) },
+ { "Pacific/Wake" , FOR_V2(0x0A1E8B, 0x03E928) },
+ { "Pacific/Wallis" , FOR_V2(0x0A1F3B, 0x03E978) },
+ { "Pacific/Yap" , FOR_V2(0x0A1FDD, 0x03E9BC) },
+ { "Poland" , FOR_V2(0x0A2082, 0x03EA01) },
+ { "Portugal" , FOR_V2(0x0A2B1F, 0x03EDF3) },
+ { "PRC" , FOR_V2(0x0A38A8, 0x03F2F4) },
+ { "PST8PDT" , FOR_V2(0x0A3A52, 0x03F3A5) },
+ { "ROC" , FOR_V2(0x0A4354, 0x03F6F6) },
+ { "ROK" , FOR_V2(0x0A4680, 0x03F838) },
+ { "Singapore" , FOR_V2(0x0A48C7, 0x03F930) },
+ { "Turkey" , FOR_V2(0x0A4A7F, 0x03F9F8) },
+ { "UCT" , FOR_V2(0x0A5301, 0x03FD30) },
+ { "Universal" , FOR_V2(0x0A538C, 0x03FD74) },
+ { "US/Alaska" , FOR_V2(0x0A5417, 0x03FDB8) },
+ { "US/Aleutian" , FOR_V2(0x0A5D73, 0x040132) },
+ { "US/Arizona" , FOR_V2(0x0A66BC, 0x0404A3) },
+ { "US/Central" , FOR_V2(0x0A6829, 0x040542) },
+ { "US/East-Indiana" , FOR_V2(0x0A7636, 0x040A66) },
+ { "US/Eastern" , FOR_V2(0x0A7CCD, 0x040CE1) },
+ { "US/Hawaii" , FOR_V2(0x0A8AB2, 0x0411F1) },
+ { "US/Indiana-Starke" , FOR_V2(0x0A8BD2, 0x041273) },
+ { "US/Michigan" , FOR_V2(0x0A9563, 0x0415FD) },
+ { "US/Mountain" , FOR_V2(0x0A9E17, 0x041939) },
+ { "US/Pacific" , FOR_V2(0x0AA7B8, 0x041CC3) },
+ { "US/Pacific-New" , FOR_V2(0x0AB2E1, 0x0420D9) },
+ { "US/Samoa" , FOR_V2(0x0ABE0A, 0x0424EF) },
+ { "UTC" , FOR_V2(0x0ABF26, 0x042573) },
+ { "W-SU" , FOR_V2(0x0ABFB1, 0x0425B7) },
+ { "WET" , FOR_V2(0x0AC5C5, 0x042823) },
+ { "Zulu" , FOR_V2(0x0ACD22, 0x042AD6) },
};
#ifdef TIMELIB_SUPPORTS_V2DATA
-const unsigned char timelib_timezone_db_data_builtin[705802] = {
+const unsigned char timelib_timezone_db_data_builtin[708013] = {
#else
-const unsigned char timelib_timezone_db_data_builtin[272303] = {
+const unsigned char timelib_timezone_db_data_builtin[273178] = {
#endif
@@ -18848,10 +18850,9 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A,
#endif
-0x00, 0xCD, 0x41, 0x92, 0x01, 0x5F, 0x5B, 0xEA, 0x00, 0x00, 0x00, 0x2C, 0x41, 0x74, 0x79, 0x72,
-0x61, 0x75, 0x2F, 0x41, 0x74, 0x69, 0x72, 0x61, 0x75, 0x2F, 0x47, 0x75, 0x72, 0x27, 0x79, 0x65,
-0x76, 0x2C, 0x20, 0x4D, 0x61, 0x6E, 0x67, 0x67, 0x68, 0x79, 0x73, 0x74, 0x61, 0x75, 0x2F, 0x4D,
-0x61, 0x6E, 0x6B, 0x69, 0x73, 0x74, 0x61, 0x75,
+0x00, 0xCD, 0x41, 0x92, 0x01, 0x5F, 0x5B, 0xEA, 0x00, 0x00, 0x00, 0x15, 0x4D, 0x61, 0x6E, 0x67,
+0x67, 0x68, 0x79, 0x73, 0x74, 0x61, 0x75, 0x2F, 0x4D, 0x61, 0x6E, 0x6B, 0x69, 0x73, 0x74, 0x61,
+0x75,
/* Asia/Aqtobe */
0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -19017,6 +19018,77 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
#endif
0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
+/* Asia/Atyrau */
+0x50, 0x48, 0x50, 0x32, 0x01, 0x4B, 0x5A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00,
+0xAA, 0x19, 0x93, 0x50, 0xB5, 0xA3, 0xFD, 0x40, 0x16, 0x18, 0xCE, 0x30, 0x17, 0x08, 0xB1, 0x20,
+0x17, 0xF9, 0xF3, 0xA0, 0x18, 0xE9, 0xF2, 0xB0, 0x19, 0xDB, 0x27, 0x20, 0x1A, 0xCC, 0x77, 0xB0,
+0x1B, 0xBC, 0x84, 0xD0, 0x1C, 0xAC, 0x75, 0xD0, 0x1D, 0x9C, 0x66, 0xD0, 0x1E, 0x8C, 0x57, 0xD0,
+0x1F, 0x7C, 0x48, 0xD0, 0x20, 0x6C, 0x39, 0xD0, 0x21, 0x5C, 0x2A, 0xD0, 0x22, 0x4C, 0x1B, 0xD0,
+0x23, 0x3C, 0x0C, 0xD0, 0x24, 0x2B, 0xFD, 0xD0, 0x25, 0x1B, 0xEE, 0xD0, 0x26, 0x0B, 0xDF, 0xD0,
+0x27, 0x05, 0x0B, 0x50, 0x27, 0xF4, 0xFC, 0x50, 0x28, 0xE4, 0xFB, 0x60, 0x29, 0x78, 0xA3, 0x60,
+0x29, 0xD4, 0xDE, 0x50, 0x2A, 0xC4, 0xCF, 0x50, 0x2B, 0xB4, 0xC0, 0x50, 0x2C, 0xA4, 0xB1, 0x50,
+0x2D, 0x94, 0xA2, 0x50, 0x2E, 0x84, 0x93, 0x50, 0x2F, 0x74, 0x84, 0x50, 0x30, 0x64, 0x75, 0x50,
+0x31, 0x5D, 0xA0, 0xD0, 0x32, 0x72, 0x7B, 0xD0, 0x33, 0x3D, 0x82, 0xD0, 0x34, 0x52, 0x5D, 0xD0,
+0x35, 0x1D, 0x64, 0xD0, 0x36, 0x32, 0x3F, 0xD0, 0x36, 0xFD, 0x46, 0xD0, 0x38, 0x1B, 0x6A, 0x60,
+0x38, 0xDD, 0x36, 0xE0, 0x39, 0xFB, 0x4C, 0x60, 0x3A, 0xBD, 0x18, 0xE0, 0x3B, 0xDB, 0x2E, 0x60,
+0x3C, 0xA6, 0x35, 0x60, 0x3D, 0xBB, 0x10, 0x60, 0x3E, 0x86, 0x17, 0x60, 0x3F, 0x9A, 0xF2, 0x60,
+0x40, 0x65, 0xF9, 0x60, 0x41, 0x84, 0x0E, 0xE0, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x02, 0x03,
+0x04, 0x02, 0x04, 0x02, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05,
+0x06, 0x05, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
+0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x05, 0x05,
+0x00, 0x00, 0x30, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50,
+0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00,
+0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08,
+0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00,
+0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+#ifdef TIMELIB_SUPPORTS_V2DATA
+0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x34, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x00, 0x00, 0x10, 0xF8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xAA, 0x19, 0x93, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
+0xB5, 0xA3, 0xFD, 0x40, 0x00, 0x00, 0x00, 0x00, 0x16, 0x18, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00,
+0x17, 0x08, 0xB1, 0x20, 0x00, 0x00, 0x00, 0x00, 0x17, 0xF9, 0xF3, 0xA0, 0x00, 0x00, 0x00, 0x00,
+0x18, 0xE9, 0xF2, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x19, 0xDB, 0x27, 0x20, 0x00, 0x00, 0x00, 0x00,
+0x1A, 0xCC, 0x77, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x1B, 0xBC, 0x84, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x1C, 0xAC, 0x75, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1D, 0x9C, 0x66, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x1E, 0x8C, 0x57, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x7C, 0x48, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x6C, 0x39, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x21, 0x5C, 0x2A, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x22, 0x4C, 0x1B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x23, 0x3C, 0x0C, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x24, 0x2B, 0xFD, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1B, 0xEE, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x26, 0x0B, 0xDF, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x27, 0x05, 0x0B, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x27, 0xF4, 0xFC, 0x50, 0x00, 0x00, 0x00, 0x00, 0x28, 0xE4, 0xFB, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x29, 0x78, 0xA3, 0x60, 0x00, 0x00, 0x00, 0x00, 0x29, 0xD4, 0xDE, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x2A, 0xC4, 0xCF, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2B, 0xB4, 0xC0, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x2C, 0xA4, 0xB1, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2D, 0x94, 0xA2, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x2E, 0x84, 0x93, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2F, 0x74, 0x84, 0x50, 0x00, 0x00, 0x00, 0x00,
+0x30, 0x64, 0x75, 0x50, 0x00, 0x00, 0x00, 0x00, 0x31, 0x5D, 0xA0, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x32, 0x72, 0x7B, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x33, 0x3D, 0x82, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x34, 0x52, 0x5D, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x35, 0x1D, 0x64, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x36, 0x32, 0x3F, 0xD0, 0x00, 0x00, 0x00, 0x00, 0x36, 0xFD, 0x46, 0xD0, 0x00, 0x00, 0x00, 0x00,
+0x38, 0x1B, 0x6A, 0x60, 0x00, 0x00, 0x00, 0x00, 0x38, 0xDD, 0x36, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x39, 0xFB, 0x4C, 0x60, 0x00, 0x00, 0x00, 0x00, 0x3A, 0xBD, 0x18, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x3B, 0xDB, 0x2E, 0x60, 0x00, 0x00, 0x00, 0x00, 0x3C, 0xA6, 0x35, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x3D, 0xBB, 0x10, 0x60, 0x00, 0x00, 0x00, 0x00, 0x3E, 0x86, 0x17, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x3F, 0x9A, 0xF2, 0x60, 0x00, 0x00, 0x00, 0x00, 0x40, 0x65, 0xF9, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x41, 0x84, 0x0E, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x02, 0x03,
+0x04, 0x02, 0x04, 0x02, 0x04, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05,
+0x06, 0x05, 0x07, 0x08, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06, 0x05, 0x06,
+0x05, 0x06, 0x05, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x08, 0x07, 0x05, 0x05,
+0x00, 0x00, 0x30, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50,
+0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x00, 0x0C, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00,
+0x46, 0x50, 0x00, 0x08, 0x00, 0x00, 0x54, 0x60, 0x01, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08,
+0x00, 0x00, 0x38, 0x40, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00,
+0x2B, 0x30, 0x34, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x36, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x0A, 0x3C, 0x2B, 0x30, 0x35, 0x3E, 0x2D, 0x35, 0x0A,
+#endif
+0x00, 0xD1, 0x39, 0x32, 0x01, 0x61, 0xE6, 0xF5, 0x00, 0x00, 0x00, 0x15, 0x41, 0x74, 0x79, 0x72,
+0x61, 0x75, 0x2F, 0x41, 0x74, 0x69, 0x72, 0x61, 0x75, 0x2F, 0x47, 0x75, 0x72, 0x27, 0x79, 0x65,
+0x76,
+
/* Asia/Baghdad */
0x50, 0x48, 0x50, 0x32, 0x01, 0x49, 0x51, 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,
@@ -20233,8 +20305,8 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
/* Asia/Gaza */
0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x53, 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,
-0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x91, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x80, 0x00, 0x00, 0x00,
0xC8, 0x59, 0xB2, 0xE0, 0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0,
0xCF, 0x8F, 0x66, 0xE0, 0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70,
0xD3, 0x65, 0xB0, 0x80, 0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50,
@@ -20271,24 +20343,24 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x75, 0x0F, 0x92, 0x70, 0x76, 0x2D, 0x99, 0xE0, 0x76, 0xEF, 0x74, 0x70, 0x78, 0x0D, 0x7B, 0xE0,
0x78, 0xCF, 0x56, 0x70, 0x79, 0xED, 0x5D, 0xE0, 0x7A, 0xB8, 0x72, 0xF0, 0x7B, 0xCD, 0x3F, 0xE0,
0x7C, 0x98, 0x54, 0xF0, 0x7D, 0xAD, 0x21, 0xE0, 0x7E, 0x78, 0x36, 0xF0, 0x7F, 0x96, 0x3E, 0x60,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-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, 0x02, 0x03, 0x06, 0x03, 0x06,
-0x03, 0x06, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+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,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x01, 0x05, 0x01, 0x05,
+0x01, 0x05, 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, 0x00, 0x00, 0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C,
-0x20, 0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00,
-0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45,
-0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x20, 0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00,
+0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45,
+0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#ifdef TIMELIB_SUPPORTS_V2DATA
0x54, 0x5A, 0x69, 0x66, 0x32, 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,
-0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0xF8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0xB0, 0xFF, 0xFF, 0xFF, 0xFF,
0xC8, 0x59, 0xB2, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xC1, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
0xCD, 0xAC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0xC6, 0xF4, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF,
@@ -20362,22 +20434,22 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x7A, 0xB8, 0x72, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCD, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00,
0x7C, 0x98, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAD, 0x21, 0xE0, 0x00, 0x00, 0x00, 0x00,
0x7E, 0x78, 0x36, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x96, 0x3E, 0x60, 0x00, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 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, 0x02, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00,
-0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04,
-0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20,
-0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00,
-0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D,
-0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31, 0x2C, 0x4D,
-0x31, 0x30, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31, 0x0A,
+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, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 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, 0x00, 0x00,
+0x20, 0x50, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09,
+0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20,
+0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49,
+0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33,
+0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31,
+0x0A,
#endif
0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61,
0x20, 0x53, 0x74, 0x72, 0x69, 0x70,
@@ -20416,8 +20488,8 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
/* Asia/Hebron */
0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x53, 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,
-0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0x80, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x93, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0x80, 0x00, 0x00, 0x00,
0xC8, 0x59, 0xB2, 0xE0, 0xCC, 0xE5, 0xC1, 0x50, 0xCD, 0xAC, 0xFE, 0x00, 0xCE, 0xC6, 0xF4, 0xD0,
0xCF, 0x8F, 0x66, 0xE0, 0xD0, 0xA9, 0x79, 0xD0, 0xD1, 0x84, 0x60, 0xE0, 0xD2, 0x8A, 0xC9, 0x70,
0xD3, 0x65, 0xB0, 0x80, 0xD4, 0x6B, 0xE0, 0xD0, 0xE8, 0x36, 0x63, 0x60, 0xE8, 0xF4, 0x2D, 0x50,
@@ -20455,24 +20527,23 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x76, 0xEF, 0x74, 0x70, 0x78, 0x0D, 0x7B, 0xE0, 0x78, 0xCF, 0x56, 0x70, 0x79, 0xED, 0x5D, 0xE0,
0x7A, 0xB8, 0x72, 0xF0, 0x7B, 0xCD, 0x3F, 0xE0, 0x7C, 0x98, 0x54, 0xF0, 0x7D, 0xAD, 0x21, 0xE0,
0x7E, 0x78, 0x36, 0xF0, 0x7F, 0x96, 0x3E, 0x60, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 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, 0x02, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
-0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x00, 0x00, 0x20, 0xE7, 0x00,
-0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x00, 0x00, 0x2A,
-0x30, 0x01, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00,
-0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53,
-0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03,
+0x04, 0x03, 0x04, 0x02, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 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, 0x00, 0x00, 0x20, 0xE7, 0x00,
+0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x00, 0x00, 0x2A,
+0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x09, 0x4C,
+0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00,
+0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
#ifdef TIMELIB_SUPPORTS_V2DATA
0x54, 0x5A, 0x69, 0x66, 0x32, 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,
-0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x15, 0xF8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x94, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x15, 0xF8, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x7D, 0xBD, 0x4A, 0x19, 0xFF, 0xFF, 0xFF, 0xFF,
0xC8, 0x59, 0xB2, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xCC, 0xE5, 0xC1, 0x50, 0xFF, 0xFF, 0xFF, 0xFF,
0xCD, 0xAC, 0xFE, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xCE, 0xC6, 0xF4, 0xD0, 0xFF, 0xFF, 0xFF, 0xFF,
@@ -20547,22 +20618,22 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x7A, 0xB8, 0x72, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7B, 0xCD, 0x3F, 0xE0, 0x00, 0x00, 0x00, 0x00,
0x7C, 0x98, 0x54, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7D, 0xAD, 0x21, 0xE0, 0x00, 0x00, 0x00, 0x00,
0x7E, 0x78, 0x36, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x96, 0x3E, 0x60, 0x00, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 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, 0x02, 0x03, 0x06, 0x03, 0x06, 0x03, 0x06, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02,
-0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 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, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
+0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x02, 0x01, 0x05, 0x01, 0x05, 0x01, 0x05, 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,
0x00, 0x00, 0x20, 0xE7, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x1C, 0x20,
-0x00, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x08, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00,
-0x1C, 0x20, 0x00, 0x11, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x04, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45,
-0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45,
-0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C, 0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31,
-0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31, 0x0A,
+0x00, 0x09, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x11, 0x00, 0x00,
+0x1C, 0x20, 0x00, 0x09, 0x4C, 0x4D, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x45, 0x45, 0x54,
+0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x45, 0x45, 0x54, 0x2D, 0x32, 0x45, 0x45, 0x53, 0x54, 0x2C,
+0x4D, 0x33, 0x2E, 0x35, 0x2E, 0x36, 0x2F, 0x31, 0x2C, 0x4D, 0x31, 0x30, 0x2E, 0x35, 0x2E, 0x36,
+0x2F, 0x31, 0x0A,
#endif
0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74,
0x20, 0x42, 0x61, 0x6E, 0x6B,
@@ -22253,7 +22324,7 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x37, 0x0A,
#endif
0x00, 0xDD, 0x4D, 0xA5, 0x01, 0x91, 0x2D, 0xD2, 0x00, 0x00, 0x00, 0x14, 0x4D, 0x53, 0x4B, 0x2B,
-0x30, 0x33, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x76, 0x6F, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6B,
+0x30, 0x34, 0x20, 0x2D, 0x20, 0x4E, 0x6F, 0x76, 0x6F, 0x73, 0x69, 0x62, 0x69, 0x72, 0x73, 0x6B,
/* Asia/Omsk */
@@ -38639,6 +38710,87 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
#endif
0x00, 0xCC, 0x43, 0xAA, 0x01, 0x2E, 0xC2, 0x82, 0x00, 0x00, 0x00, 0x00,
+/* Europe/Saratov */
+0x50, 0x48, 0x50, 0x32, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0x80, 0x00, 0x00, 0x00,
+0xA1, 0x00, 0x39, 0x80, 0xB5, 0xA4, 0x0B, 0x50, 0x15, 0x27, 0x99, 0xC0, 0x16, 0x18, 0xCE, 0x30,
+0x17, 0x08, 0xCD, 0x40, 0x17, 0xFA, 0x01, 0xB0, 0x18, 0xEA, 0x00, 0xC0, 0x19, 0xDB, 0x35, 0x30,
+0x1A, 0xCC, 0x85, 0xC0, 0x1B, 0xBC, 0x92, 0xE0, 0x1C, 0xAC, 0x83, 0xE0, 0x1D, 0x9C, 0x74, 0xE0,
+0x1E, 0x8C, 0x65, 0xE0, 0x1F, 0x7C, 0x56, 0xE0, 0x20, 0x6C, 0x47, 0xE0, 0x21, 0x5C, 0x38, 0xE0,
+0x22, 0x4C, 0x29, 0xE0, 0x23, 0x3C, 0x28, 0xF0, 0x24, 0x2C, 0x19, 0xF0, 0x25, 0x1C, 0x0A, 0xF0,
+0x26, 0x0B, 0xFB, 0xF0, 0x27, 0x05, 0x27, 0x70, 0x27, 0xF5, 0x18, 0x70, 0x29, 0xD4, 0xEC, 0x60,
+0x2A, 0xC4, 0xEB, 0x70, 0x2B, 0xB4, 0xDC, 0x70, 0x2C, 0xA4, 0xCD, 0x70, 0x2D, 0x94, 0xBE, 0x70,
+0x2E, 0x84, 0xAF, 0x70, 0x2F, 0x74, 0xA0, 0x70, 0x30, 0x64, 0x91, 0x70, 0x31, 0x5D, 0xBC, 0xF0,
+0x32, 0x72, 0x97, 0xF0, 0x33, 0x3D, 0x9E, 0xF0, 0x34, 0x52, 0x79, 0xF0, 0x35, 0x1D, 0x80, 0xF0,
+0x36, 0x32, 0x5B, 0xF0, 0x36, 0xFD, 0x62, 0xF0, 0x38, 0x1B, 0x78, 0x70, 0x38, 0xDD, 0x44, 0xF0,
+0x39, 0xFB, 0x5A, 0x70, 0x3A, 0xBD, 0x26, 0xF0, 0x3B, 0xDB, 0x3C, 0x70, 0x3C, 0xA6, 0x43, 0x70,
+0x3D, 0xBB, 0x1E, 0x70, 0x3E, 0x86, 0x25, 0x70, 0x3F, 0x9B, 0x00, 0x70, 0x40, 0x66, 0x07, 0x70,
+0x41, 0x84, 0x1C, 0xF0, 0x42, 0x45, 0xE9, 0x70, 0x43, 0x63, 0xFE, 0xF0, 0x44, 0x25, 0xCB, 0x70,
+0x45, 0x43, 0xE0, 0xF0, 0x46, 0x05, 0xAD, 0x70, 0x47, 0x23, 0xC2, 0xF0, 0x47, 0xEE, 0xC9, 0xF0,
+0x49, 0x03, 0xA4, 0xF0, 0x49, 0xCE, 0xAB, 0xF0, 0x4A, 0xE3, 0x86, 0xF0, 0x4B, 0xAE, 0x8D, 0xF0,
+0x4C, 0xCC, 0xA3, 0x70, 0x4D, 0x8E, 0x6F, 0xF0, 0x54, 0x4C, 0x1D, 0x60, 0x58, 0x43, 0x4E, 0x70,
+0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05,
+0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x04, 0x06, 0x07, 0x06, 0x07,
+0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+0x06, 0x07, 0x04, 0x07, 0x04, 0x04, 0x00, 0x00, 0x2B, 0x32, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30,
+0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0C, 0x00, 0x00,
+0x38, 0x40, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0C,
+0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00,
+0x2B, 0x30, 0x33, 0x00, 0x2B, 0x30, 0x35, 0x00, 0x2B, 0x30, 0x34, 0x00, 0x00, 0x01, 0x00, 0x00,
+0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+#ifdef TIMELIB_SUPPORTS_V2DATA
+0x54, 0x5A, 0x69, 0x66, 0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x00, 0x10, 0xF8, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xA1, 0x00, 0x39, 0x80, 0xFF, 0xFF, 0xFF, 0xFF,
+0xB5, 0xA4, 0x0B, 0x50, 0x00, 0x00, 0x00, 0x00, 0x15, 0x27, 0x99, 0xC0, 0x00, 0x00, 0x00, 0x00,
+0x16, 0x18, 0xCE, 0x30, 0x00, 0x00, 0x00, 0x00, 0x17, 0x08, 0xCD, 0x40, 0x00, 0x00, 0x00, 0x00,
+0x17, 0xFA, 0x01, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x18, 0xEA, 0x00, 0xC0, 0x00, 0x00, 0x00, 0x00,
+0x19, 0xDB, 0x35, 0x30, 0x00, 0x00, 0x00, 0x00, 0x1A, 0xCC, 0x85, 0xC0, 0x00, 0x00, 0x00, 0x00,
+0x1B, 0xBC, 0x92, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1C, 0xAC, 0x83, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x1D, 0x9C, 0x74, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x1E, 0x8C, 0x65, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x1F, 0x7C, 0x56, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x20, 0x6C, 0x47, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x21, 0x5C, 0x38, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4C, 0x29, 0xE0, 0x00, 0x00, 0x00, 0x00,
+0x23, 0x3C, 0x28, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x24, 0x2C, 0x19, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x25, 0x1C, 0x0A, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x26, 0x0B, 0xFB, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x27, 0x05, 0x27, 0x70, 0x00, 0x00, 0x00, 0x00, 0x27, 0xF5, 0x18, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x29, 0xD4, 0xEC, 0x60, 0x00, 0x00, 0x00, 0x00, 0x2A, 0xC4, 0xEB, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x2B, 0xB4, 0xDC, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2C, 0xA4, 0xCD, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x2D, 0x94, 0xBE, 0x70, 0x00, 0x00, 0x00, 0x00, 0x2E, 0x84, 0xAF, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x2F, 0x74, 0xA0, 0x70, 0x00, 0x00, 0x00, 0x00, 0x30, 0x64, 0x91, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x31, 0x5D, 0xBC, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x32, 0x72, 0x97, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x33, 0x3D, 0x9E, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x34, 0x52, 0x79, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x35, 0x1D, 0x80, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x36, 0x32, 0x5B, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x36, 0xFD, 0x62, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x38, 0x1B, 0x78, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x38, 0xDD, 0x44, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x39, 0xFB, 0x5A, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x3A, 0xBD, 0x26, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x3B, 0xDB, 0x3C, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x3C, 0xA6, 0x43, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3D, 0xBB, 0x1E, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x3E, 0x86, 0x25, 0x70, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x9B, 0x00, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x40, 0x66, 0x07, 0x70, 0x00, 0x00, 0x00, 0x00, 0x41, 0x84, 0x1C, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x42, 0x45, 0xE9, 0x70, 0x00, 0x00, 0x00, 0x00, 0x43, 0x63, 0xFE, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x44, 0x25, 0xCB, 0x70, 0x00, 0x00, 0x00, 0x00, 0x45, 0x43, 0xE0, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x46, 0x05, 0xAD, 0x70, 0x00, 0x00, 0x00, 0x00, 0x47, 0x23, 0xC2, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x47, 0xEE, 0xC9, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x49, 0x03, 0xA4, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x49, 0xCE, 0xAB, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4A, 0xE3, 0x86, 0xF0, 0x00, 0x00, 0x00, 0x00,
+0x4B, 0xAE, 0x8D, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x4C, 0xCC, 0xA3, 0x70, 0x00, 0x00, 0x00, 0x00,
+0x4D, 0x8E, 0x6F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4C, 0x1D, 0x60, 0x00, 0x00, 0x00, 0x00,
+0x58, 0x43, 0x4E, 0x70, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFF, 0xFF, 0xFF, 0x00, 0x01, 0x03, 0x02,
+0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x04, 0x05, 0x04, 0x05, 0x04, 0x05, 0x04, 0x06, 0x07, 0x06,
+0x07, 0x06, 0x07, 0x04, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07,
+0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x06, 0x07, 0x04, 0x07, 0x04, 0x04, 0x00, 0x00,
+0x2B, 0x32, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00, 0x46, 0x50, 0x01, 0x08,
+0x00, 0x00, 0x38, 0x40, 0x00, 0x0C, 0x00, 0x00, 0x38, 0x40, 0x00, 0x0C, 0x00, 0x00, 0x46, 0x50,
+0x01, 0x08, 0x00, 0x00, 0x38, 0x40, 0x01, 0x0C, 0x00, 0x00, 0x2A, 0x30, 0x00, 0x04, 0x00, 0x00,
+0x38, 0x40, 0x00, 0x0C, 0x4C, 0x4D, 0x54, 0x00, 0x2B, 0x30, 0x33, 0x00, 0x2B, 0x30, 0x35, 0x00,
+0x2B, 0x30, 0x34, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x00, 0x01, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x34, 0x3E, 0x2D, 0x34, 0x0A,
+#endif
+0x00, 0xD8, 0x03, 0x7A, 0x01, 0x58, 0xE6, 0x45, 0x00, 0x00, 0x00, 0x10, 0x4D, 0x53, 0x4B, 0x2B,
+0x30, 0x31, 0x20, 0x2D, 0x20, 0x53, 0x61, 0x72, 0x61, 0x74, 0x6F, 0x76,
+
/* Europe/Simferopol */
0x50, 0x48, 0x50, 0x32, 0x01, 0x52, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0x00,
@@ -40464,9 +40616,8 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
0x00, 0x2B, 0x30, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x0A, 0x3C, 0x2B, 0x30, 0x33, 0x3E, 0x2D, 0x33, 0x0A,
#endif
-0x00, 0xD3, 0xB0, 0xB5, 0x01, 0x56, 0x6E, 0xC2, 0x00, 0x00, 0x00, 0x1B, 0x4D, 0x53, 0x4B, 0x2B,
-0x30, 0x30, 0x20, 0x2D, 0x20, 0x56, 0x6F, 0x6C, 0x67, 0x6F, 0x67, 0x72, 0x61, 0x64, 0x2C, 0x20,
-0x53, 0x61, 0x72, 0x61, 0x74, 0x6F, 0x76,
+0x00, 0xD3, 0xB0, 0xB5, 0x01, 0x56, 0x6E, 0xC2, 0x00, 0x00, 0x00, 0x12, 0x4D, 0x53, 0x4B, 0x2B,
+0x30, 0x30, 0x20, 0x2D, 0x20, 0x56, 0x6F, 0x6C, 0x67, 0x6F, 0x67, 0x72, 0x61, 0x64,
/* Europe/Warsaw */
0x50, 0x48, 0x50, 0x32, 0x01, 0x50, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -47815,4 +47966,4 @@ const unsigned char timelib_timezone_db_data_builtin[272303] = {
#endif
0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,};
-const timelib_tzdb timezonedb_builtin = { "2016.9", 591, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+const timelib_tzdb timezonedb_builtin = { "2016.10", 593, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff --git a/ext/fileinfo/tests/bug57547.phpt b/ext/fileinfo/tests/bug57547.phpt
new file mode 100644
index 0000000000..512d4c030a
--- /dev/null
+++ b/ext/fileinfo/tests/bug57547.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Bug #57547 Settings options on file doesn't give same result as constructor options
+--SKIPIF--
+<?php
+if (!class_exists('finfo'))
+ die('skip no fileinfo extension');
+--FILE--
+<?php
+
+$filenames = array("..", __FILE__);
+
+foreach ($filenames as $filename) {
+ $finfo = new finfo(FILEINFO_MIME);
+ var_dump($finfo->file($filename));
+
+ $finfo2 = new finfo();
+ var_dump($finfo2->file($filename, FILEINFO_MIME));
+}
+
+?>
+===DONE===
+--EXPECT--
+string(9) "directory"
+string(9) "directory"
+string(28) "text/x-php; charset=us-ascii"
+string(28) "text/x-php; charset=us-ascii"
+===DONE===
diff --git a/ext/gd/gd.c b/ext/gd/gd.c
index b0942a4e28..a078b2072b 100644
--- a/ext/gd/gd.c
+++ b/ext/gd/gd.c
@@ -1036,7 +1036,7 @@ void php_gd_error_method(int type, const char *format, va_list args)
default:
type = E_ERROR;
}
- php_verror(NULL, "", type, format, args TSRMLS_CC);
+ php_verror(NULL, "", type, format, args);
}
/* }}} */
#endif
@@ -3040,7 +3040,7 @@ PHP_FUNCTION(imagegammacorrect)
}
if ( input <= 0.0 || output <= 0.0 ) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Gamma values should be positive");
+ php_error_docref(NULL, E_WARNING, "Gamma values should be positive");
RETURN_FALSE;
}
@@ -4668,7 +4668,7 @@ PHP_FUNCTION(imagecropauto)
case GD_CROP_THRESHOLD:
if (color < 0 || (!gdImageTrueColor(im) && color >= gdImageColorsTotal(im))) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Color argument missing with threshold mode");
+ php_error_docref(NULL, E_WARNING, "Color argument missing with threshold mode");
RETURN_FALSE;
}
im_crop = gdImageCropThreshold(im, color, (float) threshold);
diff --git a/ext/gd/gd_ctx.c b/ext/gd/gd_ctx.c
index da825671d6..206e4554f8 100644
--- a/ext/gd/gd_ctx.c
+++ b/ext/gd/gd_ctx.c
@@ -58,6 +58,16 @@ static int _php_image_stream_putbuf(struct gdIOCtx *ctx, const void* buf, int l)
static void _php_image_stream_ctxfree(struct gdIOCtx *ctx) /* {{{ */
{
+ if(ctx->data) {
+ ctx->data = NULL;
+ }
+ if(ctx) {
+ efree(ctx);
+ }
+} /* }}} */
+
+static void _php_image_stream_ctxfreeandclose(struct gdIOCtx *ctx) /* {{{ */
+{
if(ctx->data) {
php_stream_close((php_stream *) ctx->data);
@@ -82,6 +92,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
gdIOCtx *ctx = NULL;
zval *to_zval = NULL;
php_stream *stream;
+ int close_stream = 1;
/* The third (quality) parameter for Wbmp stands for the threshold when called from image2wbmp().
* The third (quality) parameter for Wbmp and Xbm stands for the foreground color index when called
@@ -120,6 +131,7 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
if (stream == NULL) {
RETURN_FALSE;
}
+ close_stream = 0;
} else if (Z_TYPE_P(to_zval) == IS_STRING) {
if (CHECK_ZVAL_NULL_PATH(to_zval)) {
php_error_docref(NULL, E_WARNING, "Invalid 2nd parameter, filename must not contain null bytes");
@@ -156,7 +168,11 @@ static void _php_image_output_ctx(INTERNAL_FUNCTION_PARAMETERS, int image_type,
ctx = emalloc(sizeof(gdIOCtx));
ctx->putC = _php_image_stream_putc;
ctx->putBuf = _php_image_stream_putbuf;
- ctx->gd_free = _php_image_stream_ctxfree;
+ if (close_stream) {
+ ctx->gd_free = _php_image_stream_ctxfreeandclose;
+ } else {
+ ctx->gd_free = _php_image_stream_ctxfree;
+ }
ctx->data = (void *)stream;
}
diff --git a/ext/gd/tests/bug73549.phpt b/ext/gd/tests/bug73549.phpt
new file mode 100644
index 0000000000..e0cc6cf42e
--- /dev/null
+++ b/ext/gd/tests/bug73549.phpt
@@ -0,0 +1,22 @@
+--TEST--
+Bug #73549 (Use after free when stream is passed to imagepng)
+--SKIPIF--
+<?php
+if (!extension_loaded('gd')) die('skip gd extension not available');
+?>
+--FILE--
+<?php
+$stream = fopen(__DIR__ . DIRECTORY_SEPARATOR . 'bug73549.png', 'w');
+$im = imagecreatetruecolor(8, 8);
+var_dump(imagepng($im, $stream));
+var_dump($stream);
+?>
+===DONE===
+--EXPECTF--
+bool(true)
+resource(%d) of type (stream)
+===DONE===
+--CLEAN--
+<?php
+unlink(__DIR__ . DIRECTORY_SEPARATOR . 'bug73549.png');
+?>
diff --git a/ext/gd/tests/imagettftext_charmap_order.phpt b/ext/gd/tests/imagettftext_charmap_order.phpt
index 2be20b7697..221e6b851a 100644
--- a/ext/gd/tests/imagettftext_charmap_order.phpt
+++ b/ext/gd/tests/imagettftext_charmap_order.phpt
@@ -4,6 +4,7 @@ Font charmap order is deterministic based on order in the font, use the selected
<?php
if(!extension_loaded('gd')){ die('skip gd extension not available'); }
if(!function_exists('imagettftext')) die('skip imagettftext() not available');
+ if(gd_info()['JIS-mapped Japanese Font Support']) die('skip JIS-mapped Japanese Font Support not supported');
?>
--FILE--
<?php
diff --git a/ext/intl/grapheme/grapheme_string.c b/ext/intl/grapheme/grapheme_string.c
index 5ff0a43bfd..6fc14866b9 100644
--- a/ext/intl/grapheme/grapheme_string.c
+++ b/ext/intl/grapheme/grapheme_string.c
@@ -676,8 +676,10 @@ PHP_FUNCTION(grapheme_stristr)
static inline int32_t
grapheme_extract_charcount_iter(UBreakIterator *bi, int32_t csize, unsigned char *pstr, int32_t str_len)
{
- int pos = 0, prev_pos = 0;
- int ret_pos = 0, prev_ret_pos = 0;
+ int pos = 0;
+ int ret_pos = 0;
+ int break_pos, prev_break_pos;
+ int count = 0;
while ( 1 ) {
pos = ubrk_next(bi);
@@ -686,23 +688,24 @@ grapheme_extract_charcount_iter(UBreakIterator *bi, int32_t csize, unsigned char
break;
}
- /* if we are beyond our limit, then the loop is done */
- if ( pos > csize ) {
- break;
- }
+ for ( break_pos = ret_pos; break_pos < pos; ) {
+ count++;
+ prev_break_pos = break_pos;
+ U8_FWD_1(pstr, break_pos, str_len);
- /* update our pointer in the original UTF-8 buffer by as many characters
- as ubrk_next iterated over */
-
- prev_ret_pos = ret_pos;
- U8_FWD_N(pstr, ret_pos, str_len, pos - prev_pos);
+ if ( prev_break_pos == break_pos ) {
+ /* something wrong - malformed utf8? */
+ csize = 0;
+ break;
+ }
+ }
- if ( prev_ret_pos == ret_pos ) {
- /* something wrong - malformed utf8? */
+ /* if we are beyond our limit, then the loop is done */
+ if ( count > csize ) {
break;
}
- prev_pos = pos;
+ ret_pos = break_pos;
}
return ret_pos;
@@ -713,8 +716,8 @@ grapheme_extract_charcount_iter(UBreakIterator *bi, int32_t csize, unsigned char
static inline int32_t
grapheme_extract_bytecount_iter(UBreakIterator *bi, int32_t bsize, unsigned char *pstr, int32_t str_len)
{
- int pos = 0, prev_pos = 0;
- int ret_pos = 0, prev_ret_pos = 0;
+ int pos = 0;
+ int ret_pos = 0;
while ( 1 ) {
pos = ubrk_next(bi);
@@ -723,20 +726,11 @@ grapheme_extract_bytecount_iter(UBreakIterator *bi, int32_t bsize, unsigned char
break;
}
- prev_ret_pos = ret_pos;
- U8_FWD_N(pstr, ret_pos, str_len, pos - prev_pos);
-
- if ( ret_pos > bsize ) {
- ret_pos = prev_ret_pos;
- break;
- }
-
- if ( prev_ret_pos == ret_pos ) {
- /* something wrong - malformed utf8? */
+ if ( pos > bsize ) {
break;
}
- prev_pos = pos;
+ ret_pos = pos;
}
return ret_pos;
@@ -747,7 +741,7 @@ grapheme_extract_bytecount_iter(UBreakIterator *bi, int32_t bsize, unsigned char
static inline int32_t
grapheme_extract_count_iter(UBreakIterator *bi, int32_t size, unsigned char *pstr, int32_t str_len)
{
- int pos = 0, next_pos = 0;
+ int next_pos = 0;
int ret_pos = 0;
while ( size ) {
@@ -756,16 +750,10 @@ grapheme_extract_count_iter(UBreakIterator *bi, int32_t size, unsigned char *pst
if ( UBRK_DONE == next_pos ) {
break;
}
- pos = next_pos;
+ ret_pos = next_pos;
size--;
}
- /* pos is one past the last UChar - and represent the number of code units to
- advance in the utf-8 buffer
- */
-
- U8_FWD_N(pstr, ret_pos, str_len, pos);
-
return ret_pos;
}
/* }}} */
@@ -785,9 +773,8 @@ static grapheme_extract_iter grapheme_extract_iters[] = {
PHP_FUNCTION(grapheme_extract)
{
char *str, *pstr;
- UChar *ustr;
+ UText ut = UTEXT_INITIALIZER;
size_t str_len;
- int32_t ustr_len;
zend_long size; /* maximum number of grapheme clusters, bytes, or characters (based on extract_type) to return */
zend_long lstart = 0; /* starting position in str in bytes */
int32_t start = 0;
@@ -875,21 +862,15 @@ PHP_FUNCTION(grapheme_extract)
RETURN_STRINGL(pstr, nsize);
}
- /* convert the strings to UTF-16. */
- ustr = NULL;
- ustr_len = 0;
status = U_ZERO_ERROR;
- intl_convert_utf8_to_utf16(&ustr, &ustr_len, pstr, str_len, &status );
+ utext_openUTF8(&ut, pstr, str_len, &status);
if ( U_FAILURE( status ) ) {
/* Set global error code. */
intl_error_set_code( NULL, status );
/* Set error messages. */
- intl_error_set_custom_msg( NULL, "Error converting input string to UTF-16", 0 );
-
- if ( NULL != ustr )
- efree( ustr );
+ intl_error_set_custom_msg( NULL, "Error opening UTF-8 text", 0 );
RETURN_FALSE;
}
@@ -898,8 +879,7 @@ PHP_FUNCTION(grapheme_extract)
status = U_ZERO_ERROR;
bi = grapheme_get_break_iterator(u_break_iterator_buffer, &status );
- ubrk_setText(bi, ustr, ustr_len, &status);
-
+ ubrk_setUText(bi, &ut, &status);
/* if the caller put us in the middle of a grapheme, we can't detect it in all cases since we
can't back up. So, we will not do anything. */
@@ -907,9 +887,7 @@ PHP_FUNCTION(grapheme_extract)
/* it's ok to convert str_len to in32_t since if it were too big intl_convert_utf8_to_utf16 above would fail */
ret_pos = (*grapheme_extract_iters[extract_type])(bi, size, (unsigned char *)pstr, (int32_t)str_len);
- if (ustr) {
- efree(ustr);
- }
+ utext_close(&ut);
ubrk_close(bi);
if ( NULL != next ) {
diff --git a/ext/intl/locale/locale_methods.c b/ext/intl/locale/locale_methods.c
index 6a5cd2e3cb..dba93f3fbc 100644
--- a/ext/intl/locale/locale_methods.c
+++ b/ext/intl/locale/locale_methods.c
@@ -1624,7 +1624,7 @@ PHP_FUNCTION(locale_accept_from_http)
len = end ? end-start : http_accept_len-(start-http_accept);
if(len > ULOC_FULLNAME_CAPACITY) {
intl_error_set( NULL, U_ILLEGAL_ARGUMENT_ERROR,
- "locale_accept_from_http: locale string too long", 0 TSRMLS_CC );
+ "locale_accept_from_http: locale string too long", 0 );
RETURN_FALSE;
}
if(end) {
diff --git a/ext/intl/tests/bug68447.phpt b/ext/intl/tests/bug68447.phpt
new file mode 100644
index 0000000000..f320276df2
--- /dev/null
+++ b/ext/intl/tests/bug68447.phpt
@@ -0,0 +1,28 @@
+--TEST--
+Bug #68447: grapheme_extract take an extra trailing character
+--SKIPIF--
+<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
+--FILE--
+<?php
+$katsushikaku = "葛󠄁飾区";
+echo grapheme_extract($katsushikaku, 1) . "\n";
+
+$haiyore = "這󠄀いよれ";
+echo grapheme_extract($haiyore, 1, GRAPHEME_EXTR_COUNT) . "\n";
+echo grapheme_extract($haiyore, 2, GRAPHEME_EXTR_COUNT) . "\n";
+echo grapheme_extract($haiyore, 6, GRAPHEME_EXTR_MAXBYTES) . "\n";
+echo grapheme_extract($haiyore, 9, GRAPHEME_EXTR_MAXBYTES) . "\n";
+echo grapheme_extract($haiyore, 12, GRAPHEME_EXTR_MAXBYTES) . "\n";
+echo grapheme_extract($haiyore, 1, GRAPHEME_EXTR_MAXCHARS) . "\n";
+echo grapheme_extract($haiyore, 2, GRAPHEME_EXTR_MAXCHARS) . "\n";
+echo grapheme_extract($haiyore, 3, GRAPHEME_EXTR_MAXCHARS) . "\n";
+--EXPECT--
+葛󠄁
+這󠄀
+這󠄀い
+
+這󠄀
+這󠄀い
+
+這󠄀
+這󠄀い
diff --git a/ext/json/json.c b/ext/json/json.c
index 202296c65c..219fd58cf5 100644
--- a/ext/json/json.c
+++ b/ext/json/json.c
@@ -141,7 +141,7 @@ static PHP_GINIT_FUNCTION(json)
#endif
json_globals->encoder_depth = 0;
json_globals->error_code = 0;
- json_globals->encode_max_depth = 0;
+ json_globals->encode_max_depth = PHP_JSON_PARSER_DEFAULT_DEPTH;
}
/* }}} */
@@ -271,12 +271,12 @@ static PHP_FUNCTION(json_decode)
}
if (depth <= 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Depth must be greater than zero");
+ php_error_docref(NULL, E_WARNING, "Depth must be greater than zero");
RETURN_NULL();
}
if (depth > INT_MAX) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Depth must be lower than %d", INT_MAX);
+ php_error_docref(NULL, E_WARNING, "Depth must be lower than %d", INT_MAX);
RETURN_NULL();
}
diff --git a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
index 29782f5931..c4d4e7fe37 100644
--- a/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
+++ b/ext/mbstring/libmbfl/mbfl/mbfl_memory_device.c
@@ -146,6 +146,10 @@ mbfl_memory_device_output(int c, void *data)
unsigned char *tmp;
newlen = device->length + device->allocsz;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -169,6 +173,10 @@ mbfl_memory_device_output2(int c, void *data)
unsigned char *tmp;
newlen = device->length + device->allocsz;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -194,6 +202,10 @@ mbfl_memory_device_output4(int c, void* data)
unsigned char *tmp;
newlen = device->length + device->allocsz;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -227,6 +239,10 @@ mbfl_memory_device_strcat(mbfl_memory_device *device, const char *psrc)
if ((device->pos + len) >= device->length) {
/* reallocate buffer */
int newlen = device->length + (len + MBFL_MEMORY_DEVICE_ALLOC_SIZE)*sizeof(unsigned char);
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -254,6 +270,10 @@ mbfl_memory_device_strncat(mbfl_memory_device *device, const char *psrc, int len
if ((device->pos + len) >= device->length) {
/* reallocate buffer */
int newlen = device->length + len + MBFL_MEMORY_DEVICE_ALLOC_SIZE;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)device->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -281,6 +301,10 @@ mbfl_memory_device_devcat(mbfl_memory_device *dest, mbfl_memory_device *src)
if ((dest->pos + src->pos) >= dest->length) {
/* reallocate buffer */
int newlen = dest->length + src->pos + MBFL_MEMORY_DEVICE_ALLOC_SIZE;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
unsigned char *tmp = (unsigned char *)mbfl_realloc((void *)dest->buffer, newlen*sizeof(unsigned char));
if (tmp == NULL) {
return -1;
@@ -336,6 +360,10 @@ mbfl_wchar_device_output(int c, void *data)
unsigned int *tmp;
newlen = device->length + device->allocsz;
+ if (newlen <= 0) {
+ /* overflow */
+ return -1;
+ }
tmp = (unsigned int *)mbfl_realloc((void *)device->buffer, newlen*sizeof(int));
if (tmp == NULL) {
return -1;
diff --git a/ext/mbstring/mbstring.c b/ext/mbstring/mbstring.c
index 9e06afba9a..1b93b0c5c5 100644
--- a/ext/mbstring/mbstring.c
+++ b/ext/mbstring/mbstring.c
@@ -3852,7 +3852,7 @@ detect_end:
if (elist != NULL) {
efree((void *)elist);
}
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot handle recursive references");
+ php_error_docref(NULL, E_WARNING, "Cannot handle recursive references");
RETURN_FALSE;
}
efree(stack);
@@ -3969,7 +3969,7 @@ conv_end:
}
}
efree(stack);
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Cannot handle recursive references");
+ php_error_docref(NULL, E_WARNING, "Cannot handle recursive references");
RETURN_FALSE;
}
efree(stack);
diff --git a/ext/mcrypt/mcrypt.c b/ext/mcrypt/mcrypt.c
index 24dd26e0a6..127525f3fd 100644
--- a/ext/mcrypt/mcrypt.c
+++ b/ext/mcrypt/mcrypt.c
@@ -642,7 +642,7 @@ PHP_FUNCTION(mcrypt_generic)
block_size = mcrypt_enc_get_block_size(pm->td);
data_size = ((((int)data_len - 1) / block_size) + 1) * block_size;
if (data_size <= 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Integer overflow in data size");
+ php_error_docref(NULL, E_WARNING, "Integer overflow in data size");
RETURN_FALSE;
}
data_str = zend_string_alloc(data_size, 0);
@@ -696,7 +696,7 @@ PHP_FUNCTION(mdecrypt_generic)
block_size = mcrypt_enc_get_block_size(pm->td);
data_size = ((((int)data_len - 1) / block_size) + 1) * block_size;
if (data_size <= 0) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Integer overflow in data size");
+ php_error_docref(NULL, E_WARNING, "Integer overflow in data size");
RETURN_FALSE;
}
data_s = emalloc((size_t)data_size + 1);
diff --git a/ext/opcache/Optimizer/compact_literals.c b/ext/opcache/Optimizer/compact_literals.c
index 445b579f59..e59fbb4e17 100644
--- a/ext/opcache/Optimizer/compact_literals.c
+++ b/ext/opcache/Optimizer/compact_literals.c
@@ -292,7 +292,7 @@ void zend_optimizer_compact_literals(zend_op_array *op_array, zend_optimizer_ctx
case ZEND_DECLARE_CLASS:
case ZEND_DECLARE_INHERITED_CLASS:
case ZEND_DECLARE_INHERITED_CLASS_DELAYED:
- LITERAL_INFO(opline->op1.constant, LITERAL_VALUE, 1, 0, 2);
+ LITERAL_INFO(opline->op1.constant, LITERAL_VALUE, 0, 0, 2);
break;
case ZEND_RECV:
case ZEND_RECV_VARIADIC:
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c
index 0a2304bbc9..8f936bb5e0 100644
--- a/ext/opcache/ZendAccelerator.c
+++ b/ext/opcache/ZendAccelerator.c
@@ -1777,10 +1777,10 @@ zend_op_array *persistent_compile_file(zend_file_handle *file_handle, int type)
file_handle->type == ZEND_HANDLE_FILENAME &&
UNEXPECTED(access(ZSTR_VAL(persistent_script->script.filename), R_OK) != 0)) {
if (type == ZEND_REQUIRE) {
- zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename TSRMLS_CC);
+ zend_message_dispatcher(ZMSG_FAILED_REQUIRE_FOPEN, file_handle->filename);
zend_bailout();
} else {
- zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename TSRMLS_CC);
+ zend_message_dispatcher(ZMSG_FAILED_INCLUDE_FOPEN, file_handle->filename);
}
return NULL;
}
diff --git a/ext/opcache/tests/bug73583.phpt b/ext/opcache/tests/bug73583.phpt
new file mode 100644
index 0000000000..e947b451c9
--- /dev/null
+++ b/ext/opcache/tests/bug73583.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #73583 (Segfaults when conditionally declared class and function have the same name)
+--INI--
+opcache.enable=1
+opcache.enable_cli=1
+opcache.optimization_level=0x4ff
+opcache.file_update_protection=0
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+if (true) {
+ class A { }
+ function A() { }
+ function A() { }
+}
+?>
+--EXPECTF--
+Fatal error: Cannot redeclare A() (previously declared in %sbug73583.php:4) in %sbug73583.php on line 5
diff --git a/ext/openssl/openssl.c b/ext/openssl/openssl.c
index 528d8235a5..7e0721ca54 100644
--- a/ext/openssl/openssl.c
+++ b/ext/openssl/openssl.c
@@ -1209,7 +1209,7 @@ static void php_openssl_dispose_config(struct php_x509_request * req) /* {{{ */
}
/* }}} */
-#ifdef PHP_WIN32
+#if defined(PHP_WIN32) || (OPENSSL_VERSION_NUMBER >= 0x10100000L && !defined(LIBRESSL_VERSION_NUMBER))
#define PHP_OPENSSL_RAND_ADD_TIME() ((void) 0)
#else
#define PHP_OPENSSL_RAND_ADD_TIME() php_openssl_rand_add_timeval()
@@ -4091,6 +4091,47 @@ zend_bool php_openssl_pkey_init_dsa(DSA *dsa, zval *data)
}
/* }}} */
+/* {{{ php_openssl_dh_pub_from_priv */
+static BIGNUM *php_openssl_dh_pub_from_priv(BIGNUM *priv_key, BIGNUM *g, BIGNUM *p)
+{
+ BIGNUM *pub_key, *priv_key_const_time;
+ BN_CTX *ctx;
+
+ pub_key = BN_new();
+ if (pub_key == NULL) {
+ php_openssl_store_errors();
+ return NULL;
+ }
+
+ priv_key_const_time = BN_new();
+ if (priv_key_const_time == NULL) {
+ BN_free(pub_key);
+ php_openssl_store_errors();
+ return NULL;
+ }
+ ctx = BN_CTX_new();
+ if (ctx == NULL) {
+ BN_free(pub_key);
+ BN_free(priv_key_const_time);
+ php_openssl_store_errors();
+ return NULL;
+ }
+
+ BN_with_flags(priv_key_const_time, priv_key, BN_FLG_CONSTTIME);
+
+ if (!BN_mod_exp_mont(pub_key, g, priv_key_const_time, p, ctx, NULL)) {
+ BN_free(pub_key);
+ php_openssl_store_errors();
+ pub_key = NULL;
+ }
+
+ BN_free(priv_key_const_time);
+ BN_CTX_free(ctx);
+
+ return pub_key;
+}
+/* }}} */
+
/* {{{ php_openssl_pkey_init_dh */
zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data)
{
@@ -4108,6 +4149,13 @@ zend_bool php_openssl_pkey_init_dh(DH *dh, zval *data)
if (pub_key) {
return DH_set0_key(dh, pub_key, priv_key);
}
+ if (priv_key) {
+ pub_key = php_openssl_dh_pub_from_priv(priv_key, g, p);
+ if (pub_key == NULL) {
+ return 0;
+ }
+ return DH_set0_key(dh, pub_key, priv_key);
+ }
/* generate key */
PHP_OPENSSL_RAND_ADD_TIME();
diff --git a/ext/openssl/tests/bug73478.phpt b/ext/openssl/tests/bug73478.phpt
new file mode 100644
index 0000000000..1dfc584164
--- /dev/null
+++ b/ext/openssl/tests/bug73478.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Bug #73478: openssl_pkey_new() generates wrong pub/priv keys with Diffie Hellman
+--SKIPIF--
+<?php
+if (!extension_loaded("openssl")) die("skip openssl not loaded");
+?>
+--FILE--
+<?php
+$details = [
+ 'p' => base64_decode('3Pk6C4g5cuwOGZiaxaLOMQ4dN3F+jZVxu3Yjcxhm5h73Wi4niYsFf5iRwuJ6Y5w/KbYIFFgc07LKOYbSaDcFV31FwuflLcgcehcYduXOp0sUSL/frxiCjv0lGfFOReOCZjSvGUnltTXMgppIO4p2Ij5dSQolfwW9/xby+yLFg6s='),
+ 'g' => base64_decode('Ag=='),
+ 'priv_key' => base64_decode('jUdcV++P/m7oUodWiqKqKXZVenHRuj92Ig6Fmzs7QlqVdUc5mNBxmEWjug+ObffanPpOeab/LyXwjNMzevtBz3tW4oROau++9EIMJVVQr8fW9zdYBJcYieC5l4t8nRj5/Uu/Z0G2rWVLBleSi28mqqNEvnUs7uxYxrar69lwQYs=')
+];
+
+$opensslKeyResource = openssl_pkey_new(['dh' => $details]);
+$data = openssl_pkey_get_details($opensslKeyResource);
+
+printf("Private key:\n%s\n", base64_encode($data['dh']['priv_key']));
+printf("Public key:\n%s\n", base64_encode($data['dh']['pub_key']));
+?>
+--EXPECT--
+Private key:
+jUdcV++P/m7oUodWiqKqKXZVenHRuj92Ig6Fmzs7QlqVdUc5mNBxmEWjug+ObffanPpOeab/LyXwjNMzevtBz3tW4oROau++9EIMJVVQr8fW9zdYBJcYieC5l4t8nRj5/Uu/Z0G2rWVLBleSi28mqqNEvnUs7uxYxrar69lwQYs=
+Public key:
+0DmJUe9dr02pAtVoGyLHdC+rfBU3mDCelKGPXRDFHofx6mFfN2gcZCmp/ab4ezDXfpIBOatpVdbn2fTNUGo64DtKE2WGTsZCl90RgrGUv8XW/4WDPXeE7g5u7KWHBG/LCE5+XsilE5P5/GIyqr9gsiudTmk+H/hiYZl9Smar9k0=
diff --git a/ext/openssl/tests/openssl_pkey_new_basic.phpt b/ext/openssl/tests/openssl_pkey_new_basic.phpt
index b0fd530975..eee2eb0a0e 100644
--- a/ext/openssl/tests/openssl_pkey_new_basic.phpt
+++ b/ext/openssl/tests/openssl_pkey_new_basic.phpt
@@ -86,8 +86,8 @@ $details = openssl_pkey_get_details($dh);
$dh_details = $details['dh'];
openssl_pkey_test_cmp($phex, $dh_details['p']);
var_dump($dh_details['g']);
-var_dump(strlen($dh_details['pub_key']));
-var_dump(strlen($dh_details['priv_key']));
+var_dump(strlen($dh_details['pub_key']) > 0);
+var_dump(strlen($dh_details['priv_key']) > 0);
?>
--EXPECT--
int(0)
@@ -102,5 +102,5 @@ int(20)
int(128)
int(0)
string(1) "2"
-int(128)
-int(128)
+bool(true)
+bool(true)
diff --git a/ext/pcre/php_pcre.c b/ext/pcre/php_pcre.c
index c882a09238..6bcaf17d68 100644
--- a/ext/pcre/php_pcre.c
+++ b/ext/pcre/php_pcre.c
@@ -726,7 +726,7 @@ PHPAPI void php_pcre_match_impl(pcre_cache_entry *pce, char *subject, int subjec
/* Overwrite the passed-in value for subpatterns with an empty array. */
if (subpats != NULL) {
- zval_dtor(subpats);
+ zval_ptr_dtor(subpats);
array_init(subpats);
}
@@ -1592,7 +1592,7 @@ static PHP_FUNCTION(preg_replace)
replace_count = preg_replace_impl(return_value, regex, replace, subject, limit, 0, 0);
if (zcount) {
- zval_dtor(zcount);
+ zval_ptr_dtor(zcount);
ZVAL_LONG(zcount, replace_count);
}
}
@@ -1627,7 +1627,7 @@ static PHP_FUNCTION(preg_replace_callback)
replace_count = preg_replace_impl(return_value, regex, replace, subject, limit, 1, 0);
if (zcount) {
- zval_dtor(zcount);
+ zval_ptr_dtor(zcount);
ZVAL_LONG(zcount, replace_count);
}
}
@@ -1689,7 +1689,7 @@ static PHP_FUNCTION(preg_replace_callback_array)
} ZEND_HASH_FOREACH_END();
if (zcount) {
- zval_dtor(zcount);
+ zval_ptr_dtor(zcount);
ZVAL_LONG(zcount, replace_count);
}
}
@@ -1720,7 +1720,7 @@ static PHP_FUNCTION(preg_filter)
replace_count = preg_replace_impl(return_value, regex, replace, subject, limit, 0, 1);
if (zcount) {
- zval_dtor(zcount);
+ zval_ptr_dtor(zcount);
ZVAL_LONG(zcount, replace_count);
}
}
diff --git a/ext/pcre/tests/bug73612.phpt b/ext/pcre/tests/bug73612.phpt
new file mode 100644
index 0000000000..707e10bce6
--- /dev/null
+++ b/ext/pcre/tests/bug73612.phpt
@@ -0,0 +1,27 @@
+--TEST--
+Bug #73612 (preg_*() may leak memory)
+--FILE--
+<?php
+$obj = new stdClass;
+$obj->obj = $obj;
+preg_match('/./', 'x', $obj);
+
+$obj = new stdClass;
+$obj->obj = $obj;
+preg_replace('/./', '', 'x', -1, $obj);
+
+$obj = new stdClass;
+$obj->obj = $obj;
+preg_replace_callback('/./', 'count', 'x', -1, $obj);
+
+$obj = new stdClass;
+$obj->obj = $obj;
+preg_replace_callback_array(['/./' => 'count'], 'x', -1, $obj);
+
+$obj = new stdClass;
+$obj->obj = $obj;
+preg_filter('/./', '', 'x', -1, $obj);
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/ext/pdo/pdo_stmt.c b/ext/pdo/pdo_stmt.c
index 7aaf76453b..5acfb879be 100644
--- a/ext/pdo/pdo_stmt.c
+++ b/ext/pdo/pdo_stmt.c
@@ -2563,7 +2563,7 @@ static int row_prop_exists(zval *object, zval *member, int check_empty, void **c
int res;
zval val;
- fetch_value(stmt, &val, colno, NULL TSRMLS_CC);
+ fetch_value(stmt, &val, colno, NULL);
res = check_empty ? i_zend_is_true(&val) : Z_TYPE(val) != IS_NULL;
zval_dtor(&val);
diff --git a/ext/pgsql/pgsql.c b/ext/pgsql/pgsql.c
index 43b32fd2ad..5198cb2a94 100644
--- a/ext/pgsql/pgsql.c
+++ b/ext/pgsql/pgsql.c
@@ -4135,7 +4135,7 @@ PHP_FUNCTION(pg_copy_to)
free_pg_null = 1;
}
- spprintf(&query, 0, "COPY %s TO STDOUT DELIMITERS E'%c' WITH NULL AS E'%s'", table_name, *pg_delim, pg_null_as);
+ spprintf(&query, 0, "COPY %s TO STDOUT DELIMITER E'%c' NULL AS E'%s'", table_name, *pg_delim, pg_null_as);
while ((pgsql_result = PQgetResult(pgsql))) {
PQclear(pgsql_result);
@@ -4268,7 +4268,7 @@ PHP_FUNCTION(pg_copy_from)
pg_null_as_free = 1;
}
- spprintf(&query, 0, "COPY %s FROM STDIN DELIMITERS E'%c' WITH NULL AS E'%s'", table_name, *pg_delim, pg_null_as);
+ spprintf(&query, 0, "COPY %s FROM STDIN DELIMITER E'%c' NULL AS E'%s'", table_name, *pg_delim, pg_null_as);
while ((pgsql_result = PQgetResult(pgsql))) {
PQclear(pgsql_result);
}
diff --git a/ext/pgsql/tests/01createdb.phpt b/ext/pgsql/tests/01createdb.phpt
index 8f7a262841..aa2e43748f 100644
--- a/ext/pgsql/tests/01createdb.phpt
+++ b/ext/pgsql/tests/01createdb.phpt
@@ -29,6 +29,9 @@ else {
echo pg_last_error()."\n";
}
+// Create view here
+pg_query($db,$view_def);
+
pg_close($db);
echo "OK";
diff --git a/ext/pgsql/tests/06_bug73498.phpt b/ext/pgsql/tests/06_bug73498.phpt
new file mode 100644
index 0000000000..fdb2af2f97
--- /dev/null
+++ b/ext/pgsql/tests/06_bug73498.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Bug 73498 Incorrect DELIMITER syntax for pg_copy_to()
+--SKIPIF--
+<?php include("skipif.inc"); ?>
+--FILE--
+<?php
+
+include('config.inc');
+
+$db = pg_connect($conn_str);
+
+$rows = pg_copy_to($db, "(select * from {$view_name})");
+
+var_dump(gettype($rows));
+var_dump(count($rows) > 0);
+
+?>
+--EXPECT--
+string(5) "array"
+bool(true)
diff --git a/ext/pgsql/tests/9999dropdb.phpt b/ext/pgsql/tests/9999dropdb.phpt
index 8cb178b2bf..80502e54b6 100644
--- a/ext/pgsql/tests/9999dropdb.phpt
+++ b/ext/pgsql/tests/9999dropdb.phpt
@@ -9,6 +9,7 @@ PostgreSQL drop db
include('config.inc');
$db = pg_connect($conn_str);
+pg_query($db, "DROP VIEW {$view_name}");
pg_query($db, "DROP TABLE ".$table_name);
@pg_query($db, "DROP TABLE ".$table_name_92);
diff --git a/ext/pgsql/tests/config.inc b/ext/pgsql/tests/config.inc
index 7be1e242ad..fbe58588a2 100644
--- a/ext/pgsql/tests/config.inc
+++ b/ext/pgsql/tests/config.inc
@@ -11,6 +11,10 @@ $table_name = "php_pgsql_test"; // test table that will be created
$table_name_92 = "php_pgsql_test_92"; // test table that will be created
$num_test_record = 1000; // Number of records to create
+// Test view
+$view_name = "php_pgsql_viewtest";
+$view_def = "CREATE VIEW {$view_name} AS SELECT * FROM {$table_name};";
+
// Test table
$table_def = "CREATE TABLE ${table_name} (num int, str text, bin bytea);";
$table_def_92 = "CREATE TABLE ${table_name_92} (textary text[], jsn json);";
diff --git a/ext/phar/phar_object.c b/ext/phar/phar_object.c
index f3e98a6d96..ca9a031d36 100644
--- a/ext/phar/phar_object.c
+++ b/ext/phar/phar_object.c
@@ -52,8 +52,8 @@ static void phar_mung_server_vars(char *fname, char *entry, int entry_len, char
HashTable *_SERVER;
zval *stuff;
char *path_info;
- int basename_len = strlen(basename);
- int code;
+ size_t basename_len = strlen(basename);
+ size_t code;
zval temp;
/* "tweak" $_SERVER variables requested in earlier call to Phar::mungServer() */
@@ -141,7 +141,7 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char
sapi_header_line ctr = {0};
size_t got;
zval dummy;
- int name_len;
+ size_t name_len;
zend_file_handle file_handle;
zend_op_array *new_op_array;
zval result;
@@ -153,9 +153,9 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char
efree(basename);
/* highlight source */
if (entry[0] == '/') {
- name_len = spprintf(&name, 4096, "phar://%s%s", arch, entry);
+ spprintf(&name, 4096, "phar://%s%s", arch, entry);
} else {
- name_len = spprintf(&name, 4096, "phar://%s/%s", arch, entry);
+ spprintf(&name, 4096, "phar://%s/%s", arch, entry);
}
php_get_highlight_struct(&syntax_highlighter_ini);
@@ -239,10 +239,10 @@ static int phar_file_action(phar_archive_data *phar, phar_entry_info *info, char
PHAR_G(cwd_len) = 0;
PHAR_G(cwd) = NULL;
} else if (entry[0] == '/') {
- PHAR_G(cwd_len) = cwd - (entry + 1);
+ PHAR_G(cwd_len) = (int)(cwd - (entry + 1));
PHAR_G(cwd) = estrndup(entry + 1, PHAR_G(cwd_len));
} else {
- PHAR_G(cwd_len) = cwd - entry;
+ PHAR_G(cwd_len) = (int)(cwd - entry);
PHAR_G(cwd) = estrndup(entry, PHAR_G(cwd_len));
}
}
@@ -313,7 +313,7 @@ static void phar_do_403(char *entry, int entry_len) /* {{{ */
}
/* }}} */
-static void phar_do_404(phar_archive_data *phar, char *fname, int fname_len, char *f404, size_t f404_len, char *entry, size_t entry_len) /* {{{ */
+static void phar_do_404(phar_archive_data *phar, char *fname, int fname_len, char *f404, int f404_len, char *entry, size_t entry_len) /* {{{ */
{
sapi_header_line ctr = {0};
phar_entry_info *info;
@@ -389,7 +389,7 @@ static void phar_postprocess_ru_web(char *fname, int fname_len, char **entry, in
}
u[0] = '\0';
- u_len = strlen(u + 1);
+ u_len = (int)strlen(u + 1);
e_len -= u_len + 1;
if (e_len < 0) {
@@ -417,7 +417,7 @@ PHP_METHOD(Phar, running)
}
fname = (char*)zend_get_executed_filename();
- fname_len = strlen(fname);
+ fname_len = (int)strlen(fname);
if (fname_len > 7 && !memcmp(fname, "phar://", 7) && SUCCESS == phar_split_fname(fname, fname_len, &arch, &arch_len, &entry, &entry_len, 2, 0)) {
efree(entry);
@@ -454,8 +454,12 @@ PHP_METHOD(Phar, mount)
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(path_len) || ZEND_SIZE_T_INT_OVFL(actual_len)) {
+ RETURN_FALSE;
+ }
+
fname = (char*)zend_get_executed_filename();
- fname_len = strlen(fname);
+ fname_len = (int)strlen(fname);
#ifdef PHP_WIN32
phar_unixify_path_separators(fname, fname_len);
@@ -486,7 +490,7 @@ carry_on2:
return;
}
carry_on:
- if (SUCCESS != phar_mount_entry(pphar, actual, actual_len, path, path_len)) {
+ if (SUCCESS != phar_mount_entry(pphar, actual, (int)actual_len, path, (int)path_len)) {
zend_throw_exception_ex(phar_ce_PharException, 0, "Mounting of %s to %s within phar %s failed", path, actual, arch);
if (path && path == entry) {
efree(entry);
@@ -516,7 +520,7 @@ carry_on:
}
goto carry_on;
- } else if (SUCCESS == phar_split_fname(path, path_len, &arch, &arch_len, &entry, &entry_len, 2, 0)) {
+ } else if (SUCCESS == phar_split_fname(path, (int)path_len, &arch, &arch_len, &entry, &entry_len, 2, 0)) {
path = entry;
path_len = entry_len;
goto carry_on2;
@@ -555,7 +559,12 @@ PHP_METHOD(Phar, webPhar)
fname = (char*)zend_get_executed_filename();
fname_len = strlen(fname);
- if (phar_open_executed_filename(alias, alias_len, &error) != SUCCESS) {
+ if (ZEND_SIZE_T_INT_OVFL(alias_len)
+ || ZEND_SIZE_T_INT_OVFL(f404_len) || ZEND_SIZE_T_INT_OVFL(index_php_len)) {
+ RETURN_FALSE;
+ }
+
+ if (phar_open_executed_filename(alias, (int)alias_len, &error) != SUCCESS) {
if (error) {
zend_throw_exception_ex(phar_ce_PharException, 0, "%s", error);
efree(error);
@@ -596,7 +605,7 @@ PHP_METHOD(Phar, webPhar)
if (NULL != (z_path_info = zend_hash_str_find(_server, "PATH_INFO", sizeof("PATH_INFO")-1)) &&
IS_STRING == Z_TYPE_P(z_path_info)) {
- entry_len = Z_STRLEN_P(z_path_info);
+ entry_len = (int)Z_STRLEN_P(z_path_info);
entry = estrndup(Z_STRVAL_P(z_path_info), entry_len);
path_info = emalloc(Z_STRLEN_P(z_script_name) + entry_len + 1);
memcpy(path_info, Z_STRVAL_P(z_script_name), Z_STRLEN_P(z_script_name));
@@ -623,7 +632,7 @@ PHP_METHOD(Phar, webPhar)
if (path_info) {
entry = path_info;
- entry_len = strlen(entry);
+ entry_len = (int)strlen(entry);
spprintf(&path_info, 0, "%s%s", testit, path_info);
free_pathinfo = 1;
} else {
@@ -644,7 +653,7 @@ PHP_METHOD(Phar, webPhar)
return;
}
- entry_len = strlen(path_info);
+ entry_len = (int)strlen(path_info);
entry_len -= (pt - path_info) + (fname_len - (basename - fname));
entry = estrndup(pt + (fname_len - (basename - fname)), entry_len);
@@ -700,8 +709,12 @@ PHP_METHOD(Phar, webPhar)
switch (Z_TYPE(retval)) {
case IS_STRING:
efree(entry);
+ if (ZEND_SIZE_T_INT_OVFL(Z_STRLEN_P(fci.retval))) {
+ zend_throw_exception_ex(phar_ce_PharException, 0, "phar error: rewrite callback returned oversized value");
+ return;
+ }
entry = estrndup(Z_STRVAL_P(fci.retval), Z_STRLEN_P(fci.retval));
- entry_len = Z_STRLEN_P(fci.retval);
+ entry_len = (int)Z_STRLEN_P(fci.retval);
break;
case IS_TRUE:
case IS_FALSE:
@@ -726,7 +739,7 @@ PHP_METHOD(Phar, webPhar)
}
if (entry_len) {
- phar_postprocess_ru_web(fname, fname_len, &entry, &entry_len, &ru, &ru_len);
+ phar_postprocess_ru_web(fname, (int)fname_len, &entry, &entry_len, &ru, &ru_len);
}
if (!entry_len || (entry_len == 1 && entry[0] == '/')) {
@@ -734,7 +747,7 @@ PHP_METHOD(Phar, webPhar)
/* direct request */
if (index_php_len) {
entry = index_php;
- entry_len = index_php_len;
+ entry_len = (int)index_php_len;
if (entry[0] != '/') {
spprintf(&entry, 0, "/%s", index_php);
++entry_len;
@@ -745,9 +758,9 @@ PHP_METHOD(Phar, webPhar)
entry_len = sizeof("/index.php")-1;
}
- if (FAILURE == phar_get_archive(&phar, fname, fname_len, NULL, 0, NULL) ||
+ if (FAILURE == phar_get_archive(&phar, fname, (int)fname_len, NULL, 0, NULL) ||
(info = phar_get_entry_info(phar, entry, entry_len, NULL, 0)) == NULL) {
- phar_do_404(phar, fname, fname_len, f404, f404_len, entry, entry_len);
+ phar_do_404(phar, fname, (int)fname_len, f404, (int)f404_len, entry, entry_len);
if (free_pathinfo) {
efree(path_info);
@@ -791,9 +804,9 @@ PHP_METHOD(Phar, webPhar)
}
}
- if (FAILURE == phar_get_archive(&phar, fname, fname_len, NULL, 0, NULL) ||
+ if (FAILURE == phar_get_archive(&phar, fname, (int)fname_len, NULL, 0, NULL) ||
(info = phar_get_entry_info(phar, entry, entry_len, NULL, 0)) == NULL) {
- phar_do_404(phar, fname, fname_len, f404, f404_len, entry, entry_len);
+ phar_do_404(phar, fname, (int)fname_len, f404, (int)f404_len, entry, entry_len);
#ifdef PHP_WIN32
efree(fname);
#endif
@@ -812,7 +825,7 @@ PHP_METHOD(Phar, webPhar)
case IS_LONG:
if (Z_LVAL_P(val) == PHAR_MIME_PHP || Z_LVAL_P(val) == PHAR_MIME_PHPS) {
mime_type = "";
- code = Z_LVAL_P(val);
+ code = (int)Z_LVAL_P(val);
} else {
zend_throw_exception_ex(phar_ce_PharException, 0, "Unknown mime type specifier used, only Phar::PHP, Phar::PHPS and a mime type string are allowed");
if (free_pathinfo) {
@@ -961,9 +974,12 @@ PHP_METHOD(Phar, mapPhar)
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(alias_len)) {
+ RETURN_FALSE;
+ }
phar_request_initialize();
- RETVAL_BOOL(phar_open_executed_filename(alias, alias_len, &error) == SUCCESS);
+ RETVAL_BOOL(phar_open_executed_filename(alias, (int)alias_len, &error) == SUCCESS);
if (error) {
zend_throw_exception_ex(phar_ce_PharException, 0, "%s", error);
@@ -982,9 +998,12 @@ PHP_METHOD(Phar, loadPhar)
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(alias_len) || ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
phar_request_initialize();
- RETVAL_BOOL(phar_open_from_filename(fname, fname_len, alias, alias_len, REPORT_ERRORS, NULL, &error) == SUCCESS);
+ RETVAL_BOOL(phar_open_from_filename(fname, (int)fname_len, alias, (int)alias_len, REPORT_ERRORS, NULL, &error) == SUCCESS);
if (error) {
zend_throw_exception_ex(phar_ce_PharException, 0, "%s", error);
@@ -1062,8 +1081,12 @@ PHP_METHOD(Phar, isValidPharFilename)
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
+
is_executable = executable;
- RETVAL_BOOL(phar_detect_phar_fname_ext(fname, fname_len, &ext_str, &ext_len, is_executable, 2, 1) == SUCCESS);
+ RETVAL_BOOL(phar_detect_phar_fname_ext(fname, (int)fname_len, &ext_str, &ext_len, is_executable, 2, 1) == SUCCESS);
}
/* }}} */
@@ -1134,6 +1157,9 @@ PHP_METHOD(Phar, __construct)
}
}
+ if (ZEND_SIZE_T_INT_OVFL(alias_len) || ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (phar_obj->archive) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Cannot call constructor twice");
return;
@@ -1157,7 +1183,7 @@ PHP_METHOD(Phar, __construct)
#endif
}
- if (phar_open_or_create_filename(fname, fname_len, alias, alias_len, is_data, REPORT_ERRORS, &phar_data, &error) == FAILURE) {
+ if (phar_open_or_create_filename(fname, (int)fname_len, alias, (int)alias_len, is_data, REPORT_ERRORS, &phar_data, &error) == FAILURE) {
if (fname == arch && fname != save_fname) {
efree(arch);
@@ -1301,12 +1327,15 @@ PHP_METHOD(Phar, unlinkArchive)
RETURN_FALSE;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (!fname_len) {
zend_throw_exception_ex(phar_ce_PharException, 0, "Unknown phar archive \"\"");
return;
}
- if (FAILURE == phar_open_from_filename(fname, fname_len, NULL, 0, REPORT_ERRORS, &phar, &error)) {
+ if (FAILURE == phar_open_from_filename(fname, (int)fname_len, NULL, 0, REPORT_ERRORS, &phar, &error)) {
if (error) {
zend_throw_exception_ex(phar_ce_PharException, 0, "Unknown phar archive \"%s\": %s", fname, error);
efree(error);
@@ -1317,7 +1346,7 @@ PHP_METHOD(Phar, unlinkArchive)
}
zname = (char*)zend_get_executed_filename();
- zname_len = strlen(zname);
+ zname_len = (int)strlen(zname);
if (zname_len > 7 && !memcmp(zname, "phar://", 7) && SUCCESS == phar_split_fname(zname, zname_len, &arch, &arch_len, &entry, &entry_len, 2, 0)) {
if ((size_t)arch_len == fname_len && !memcmp(arch, fname, arch_len)) {
@@ -1391,9 +1420,10 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
zval *value;
zend_bool close_fp = 1;
struct _phar_t *p_obj = (struct _phar_t*) puser;
- uint str_key_len, base_len = p_obj->l, fname_len;
+ uint base_len = p_obj->l, str_key_len;
phar_entry_data *data;
php_stream *fp;
+ php_stat_len fname_len;
size_t contents_len;
char *fname, *error = NULL, *base = p_obj->b, *save = NULL, *temp = NULL;
zend_string *opened;
@@ -1438,7 +1468,13 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
return ZEND_HASH_APPLY_STOP;
}
- str_key_len = Z_STRLEN(key);
+ if (ZEND_SIZE_T_INT_OVFL(Z_STRLEN(key))) {
+ zval_dtor(&key);
+ zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0, "Iterator %v returned an invalid key (too long)", ZSTR_VAL(ce->name));
+ return ZEND_HASH_APPLY_STOP;
+ }
+
+ str_key_len = (int)Z_STRLEN(key);
str_key = estrndup(Z_STRVAL(key), str_key_len);
save = str_key;
@@ -1465,7 +1501,7 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
switch (intern->type) {
case SPL_FS_DIR:
test = spl_filesystem_object_get_path(intern, NULL);
- fname_len = spprintf(&fname, 0, "%s%c%s", test, DEFAULT_SLASH, intern->u.dir.entry.d_name);
+ fname_len = (php_stat_len)spprintf(&fname, 0, "%s%c%s", test, DEFAULT_SLASH, intern->u.dir.entry.d_name);
php_stat(fname, fname_len, FS_IS_DIR, &dummy);
if (Z_TYPE(dummy) == IS_TRUE) {
@@ -1479,7 +1515,7 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
if (test) {
fname = test;
- fname_len = strlen(fname);
+ fname_len = (php_stat_len)strlen(fname);
} else {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0, "Could not resolve file path");
return ZEND_HASH_APPLY_STOP;
@@ -1495,7 +1531,7 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
return ZEND_HASH_APPLY_STOP;
}
- fname_len = strlen(fname);
+ fname_len = (php_stat_len)strlen(fname);
save = fname;
goto phar_spl_fileinfo;
}
@@ -1507,7 +1543,7 @@ static int phar_build(zend_object_iterator *iter, void *puser) /* {{{ */
}
fname = Z_STRVAL_P(value);
- fname_len = Z_STRLEN_P(value);
+ fname_len = (php_stat_len)Z_STRLEN_P(value);
phar_spl_fileinfo:
if (base_len) {
@@ -1521,7 +1557,7 @@ phar_spl_fileinfo:
}
base = temp;
- base_len = strlen(base);
+ base_len = (int)strlen(base);
if (strstr(fname, base)) {
str_key_len = fname_len - base_len;
@@ -1566,7 +1602,13 @@ phar_spl_fileinfo:
return ZEND_HASH_APPLY_STOP;
}
- str_key_len = Z_STRLEN(key);
+ if (ZEND_SIZE_T_INT_OVFL(Z_STRLEN(key))) {
+ zval_dtor(&key);
+ zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0, "Iterator %v returned an invalid key (too long)", ZSTR_VAL(ce->name));
+ return ZEND_HASH_APPLY_STOP;
+ }
+
+ str_key_len = (int)Z_STRLEN(key);
str_key = estrndup(Z_STRVAL(key), str_key_len);
save = str_key;
@@ -1716,6 +1758,10 @@ PHP_METHOD(Phar, buildFromDirectory)
RETURN_FALSE;
}
+ if (ZEND_SIZE_T_UINT_OVFL(dir_len)) {
+ RETURN_FALSE;
+ }
+
if (SUCCESS != object_init_ex(&iter, spl_ce_RecursiveDirectoryIterator)) {
zval_ptr_dtor(&iter);
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Unable to instantiate directory iterator for %s", phar_obj->archive->fname);
@@ -1774,7 +1820,7 @@ PHP_METHOD(Phar, buildFromDirectory)
pass.c = apply_reg ? Z_OBJCE(regexiter) : Z_OBJCE(iteriter);
pass.p = phar_obj;
pass.b = dir;
- pass.l = dir_len;
+ pass.l = (uint)dir_len;
pass.count = 0;
pass.ret = return_value;
pass.fp = php_stream_fopen_tmpfile();
@@ -1848,6 +1894,10 @@ PHP_METHOD(Phar, buildFromIterator)
RETURN_FALSE;
}
+ if (ZEND_SIZE_T_UINT_OVFL(base_len)) {
+ RETURN_FALSE;
+ }
+
if (phar_obj->archive->is_persistent && FAILURE == phar_copy_on_write(&(phar_obj->archive))) {
zend_throw_exception_ex(phar_ce_PharException, 0, "phar \"%s\" is persistent, unable to copy on write", phar_obj->archive->fname);
return;
@@ -1858,7 +1908,7 @@ PHP_METHOD(Phar, buildFromIterator)
pass.c = Z_OBJCE_P(obj);
pass.p = phar_obj;
pass.b = base;
- pass.l = base_len;
+ pass.l = (uint)base_len;
pass.ret = return_value;
pass.count = 0;
pass.fp = php_stream_fopen_tmpfile();
@@ -1981,7 +2031,7 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext, ze
char *error;
const char *pcr_error;
int ext_len = ext ? strlen(ext) : 0;
- int oldname_len;
+ size_t new_len, oldname_len;
phar_archive_data *pphar = NULL;
php_stream_statbuf ssb;
@@ -2057,10 +2107,16 @@ static zend_object *phar_rename_archive(phar_archive_data **sphar, char *ext, ze
spprintf(&newname, 0, "%s.%s", strtok(basename, "."), ext);
efree(basename);
-
-
basepath = estrndup(oldpath, (strlen(oldpath) - oldname_len));
- phar->fname_len = spprintf(&newpath, 0, "%s%s", basepath, newname);
+ new_len = spprintf(&newpath, 0, "%s%s", basepath, newname);
+ if (ZEND_SIZE_T_INT_OVFL(new_len)) {
+ efree(oldpath);
+ efree(basepath);
+ efree(newpath);
+ zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "New name is too long");
+ return NULL;
+ }
+ phar->fname_len = (int)new_len;
phar->fname = newpath;
phar->ext = newpath + phar->fname_len - strlen(ext) - 1;
efree(basepath);
@@ -2113,7 +2169,7 @@ its_ok:
phar->alias_len = 0;
} else {
phar->alias = estrndup(newpath, strlen(newpath));
- phar->alias_len = strlen(newpath);
+ phar->alias_len = (int)strlen(newpath);
phar->is_temporary_alias = 1;
zend_hash_str_update_ptr(&(PHAR_G(phar_alias_map)), newpath, phar->fname_len, phar);
}
@@ -2376,7 +2432,7 @@ PHP_METHOD(Phar, convertToExecutable)
is_data = phar_obj->archive->is_data;
phar_obj->archive->is_data = 0;
- ret = phar_convert_to_other(phar_obj->archive, format, ext, flags);
+ ret = phar_convert_to_other(phar_obj->archive, (int)format, ext, flags);
phar_obj->archive->is_data = is_data;
if (ret) {
@@ -2479,7 +2535,7 @@ PHP_METHOD(Phar, convertToData)
is_data = phar_obj->archive->is_data;
phar_obj->archive->is_data = 1;
- ret = phar_convert_to_other(phar_obj->archive, format, ext, flags);
+ ret = phar_convert_to_other(phar_obj->archive, (int)format, ext, flags);
phar_obj->archive->is_data = is_data;
if (ret) {
@@ -2660,12 +2716,15 @@ PHP_METHOD(Phar, setAlias)
}
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &alias, &alias_len) == SUCCESS) {
+ if (ZEND_SIZE_T_INT_OVFL(alias_len)) {
+ RETURN_FALSE;
+ }
if (alias_len == (size_t)phar_obj->archive->alias_len && memcmp(phar_obj->archive->alias, alias, alias_len) == 0) {
RETURN_TRUE;
}
if (alias_len && NULL != (fd_ptr = zend_hash_str_find_ptr(&(PHAR_G(phar_alias_map)), alias, alias_len))) {
spprintf(&error, 0, "alias \"%s\" is already used for archive \"%s\" and cannot be used for other archives", alias, fd_ptr->fname);
- if (SUCCESS == phar_free_alias(fd_ptr, alias, alias_len)) {
+ if (SUCCESS == phar_free_alias(fd_ptr, alias, (int)alias_len)) {
efree(error);
goto valid_alias;
}
@@ -2673,7 +2732,7 @@ PHP_METHOD(Phar, setAlias)
efree(error);
RETURN_FALSE;
}
- if (!phar_validate_alias(alias, alias_len)) {
+ if (!phar_validate_alias(alias, (int)alias_len)) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0,
"Invalid alias \"%s\" specified for phar \"%s\"", alias, phar_obj->archive->fname);
RETURN_FALSE;
@@ -2698,13 +2757,13 @@ valid_alias:
phar_obj->archive->alias = NULL;
}
- phar_obj->archive->alias_len = alias_len;
+ phar_obj->archive->alias_len = (int)alias_len;
phar_obj->archive->is_temporary_alias = 0;
phar_flush(phar_obj->archive, NULL, 0, 0, &error);
if (error) {
phar_obj->archive->alias = oldalias;
- phar_obj->archive->alias_len = oldalias_len;
+ phar_obj->archive->alias_len = (int)oldalias_len;
phar_obj->archive->is_temporary_alias = old_temp;
zend_throw_exception_ex(phar_ce_PharException, 0, "%s", error);
if (readd) {
@@ -2976,6 +3035,11 @@ PHP_METHOD(Phar, setSignatureAlgorithm)
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS(), "l|s", &algo, &key, &key_len) != SUCCESS) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(key_len)) {
+ zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0,
+ "Cannot set signature algorithm, key too long");
+ return;
+ }
switch (algo) {
case PHAR_SIG_SHA256:
@@ -2992,10 +3056,10 @@ PHP_METHOD(Phar, setSignatureAlgorithm)
zend_throw_exception_ex(phar_ce_PharException, 0, "phar \"%s\" is persistent, unable to copy on write", phar_obj->archive->fname);
return;
}
- phar_obj->archive->sig_flags = algo;
+ phar_obj->archive->sig_flags = (php_uint32)algo;
phar_obj->archive->is_modified = 1;
PHAR_G(openssl_privatekey) = key;
- PHAR_G(openssl_privatekey_len) = key_len;
+ PHAR_G(openssl_privatekey_len) = (int)key_len;
phar_flush(phar_obj->archive, 0, 0, 0, &error);
if (error) {
@@ -3376,7 +3440,9 @@ PHP_METHOD(Phar, copy)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "pp", &oldfile, &oldfile_len, &newfile, &newfile_len) == FAILURE) {
return;
}
-
+ if (ZEND_SIZE_T_INT_OVFL(newfile_len)) {
+ RETURN_FALSE;
+ }
if (PHAR_G(readonly) && !phar_obj->archive->is_data) {
zend_throw_exception_ex(spl_ce_UnexpectedValueException, 0,
"Cannot copy \"%s\" to \"%s\", phar is read-only", oldfile, newfile);
@@ -3436,7 +3502,7 @@ PHP_METHOD(Phar, copy)
}
newentry.filename = estrndup(newfile, newfile_len);
- newentry.filename_len = newfile_len;
+ newentry.filename_len = (int)newfile_len;
newentry.fp_refcount = 0;
if (oldentry->fp_type != PHAR_FP) {
@@ -3476,6 +3542,9 @@ PHP_METHOD(Phar, offsetExists)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &fname, &fname_len) == FAILURE) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (zend_hash_str_exists(&phar_obj->archive->manifest, fname, (uint) fname_len)) {
if (NULL != (entry = zend_hash_str_find_ptr(&phar_obj->archive->manifest, fname, (uint) fname_len))) {
@@ -3515,8 +3584,12 @@ PHP_METHOD(Phar, offsetGet)
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
+
/* security is 0 here so that we can get a better error message than "entry doesn't exist" */
- if (!(entry = phar_get_entry_info_dir(phar_obj->archive, fname, fname_len, 1, &error, 0))) {
+ if (!(entry = phar_get_entry_info_dir(phar_obj->archive, fname, (int)fname_len, 1, &error, 0))) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Entry %s does not exist%s%s", fname, error?", ":"", error?error:"");
} else {
if (fname_len == sizeof(".phar/stub.php")-1 && !memcmp(fname, ".phar/stub.php", sizeof(".phar/stub.php")-1)) {
@@ -3662,7 +3735,9 @@ PHP_METHOD(Phar, offsetSet)
&& zend_parse_parameters(ZEND_NUM_ARGS(), "ps", &fname, &fname_len, &cont_str, &cont_len) == FAILURE) {
return;
}
-
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (fname_len == sizeof(".phar/stub.php")-1 && !memcmp(fname, ".phar/stub.php", sizeof(".phar/stub.php")-1)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Cannot set stub \".phar/stub.php\" directly in phar \"%s\", use setStub", phar_obj->archive->fname);
return;
@@ -3678,7 +3753,7 @@ PHP_METHOD(Phar, offsetSet)
return;
}
- phar_add_file(&(phar_obj->archive), fname, fname_len, cont_str, cont_len, zresource);
+ phar_add_file(&(phar_obj->archive), fname, (int)fname_len, cont_str, cont_len, zresource);
}
/* }}} */
@@ -3700,6 +3775,9 @@ PHP_METHOD(Phar, offsetUnset)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &fname, &fname_len) == FAILURE) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (zend_hash_str_exists(&phar_obj->archive->manifest, fname, (uint) fname_len)) {
if (NULL != (entry = zend_hash_str_find_ptr(&phar_obj->archive->manifest, fname, (uint) fname_len))) {
@@ -3747,13 +3825,16 @@ PHP_METHOD(Phar, addEmptyDir)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "p", &dirname, &dirname_len) == FAILURE) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(dirname_len)) {
+ RETURN_FALSE;
+ }
if (dirname_len >= sizeof(".phar")-1 && !memcmp(dirname, ".phar", sizeof(".phar")-1)) {
zend_throw_exception_ex(spl_ce_BadMethodCallException, 0, "Cannot create a directory in magic \".phar\" directory");
return;
}
- phar_mkdir(&phar_obj->archive, dirname, dirname_len);
+ phar_mkdir(&phar_obj->archive, dirname, (int)dirname_len);
}
/* }}} */
@@ -3772,6 +3853,9 @@ PHP_METHOD(Phar, addFile)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "p|s", &fname, &fname_len, &localname, &localname_len) == FAILURE) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(fname_len)) {
+ RETURN_FALSE;
+ }
if (!strstr(fname, "://") && php_check_open_basedir(fname)) {
zend_throw_exception_ex(spl_ce_RuntimeException, 0, "phar error: unable to open file \"%s\" to add to phar archive, open_basedir restrictions prevent this", fname);
@@ -3789,7 +3873,7 @@ PHP_METHOD(Phar, addFile)
}
php_stream_to_zval(resource, &zresource);
- phar_add_file(&(phar_obj->archive), fname, fname_len, NULL, 0, &zresource);
+ phar_add_file(&(phar_obj->archive), fname, (int)fname_len, NULL, 0, &zresource);
zval_ptr_dtor(&zresource);
}
/* }}} */
@@ -3807,8 +3891,11 @@ PHP_METHOD(Phar, addFromString)
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ps", &localname, &localname_len, &cont_str, &cont_len) == FAILURE) {
return;
}
+ if (ZEND_SIZE_T_INT_OVFL(localname_len)) {
+ RETURN_FALSE;
+ }
- phar_add_file(&(phar_obj->archive), localname, localname_len, cont_str, cont_len, NULL);
+ phar_add_file(&(phar_obj->archive), localname, (int)localname_len, cont_str, cont_len, NULL);
}
/* }}} */
@@ -4022,7 +4109,7 @@ PHP_METHOD(Phar, delMetadata)
static int phar_extract_file(zend_bool overwrite, phar_entry_info *entry, char *dest, int dest_len, char **error) /* {{{ */
{
php_stream_statbuf ssb;
- int len;
+ size_t len;
php_stream *fp;
char *fullpath;
const char *slash;
@@ -4288,7 +4375,7 @@ PHP_METHOD(Phar, extractTo)
zend_throw_exception_ex(phar_ce_PharException, 0,
"Phar Error: attempted to extract non-existent file \"%s\" from phar \"%s\"", Z_STRVAL_P(zval_file), phar_obj->archive->fname);
}
- if (FAILURE == phar_extract_file(overwrite, entry, pathto, pathto_len, &error)) {
+ if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) {
zend_throw_exception_ex(phar_ce_PharException, 0,
"Extraction from phar \"%s\" failed: %s", phar_obj->archive->fname, error);
efree(error);
@@ -4309,7 +4396,7 @@ PHP_METHOD(Phar, extractTo)
return;
}
- if (FAILURE == phar_extract_file(overwrite, entry, pathto, pathto_len, &error)) {
+ if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) {
zend_throw_exception_ex(phar_ce_PharException, 0,
"Extraction from phar \"%s\" failed: %s", phar_obj->archive->fname, error);
efree(error);
@@ -4325,7 +4412,7 @@ all_files:
}
ZEND_HASH_FOREACH_PTR(&phar->manifest, entry) {
- if (FAILURE == phar_extract_file(overwrite, entry, pathto, pathto_len, &error)) {
+ if (FAILURE == phar_extract_file(overwrite, entry, pathto, (int)pathto_len, &error)) {
zend_throw_exception_ex(phar_ce_PharException, 0,
"Extraction from phar \"%s\" failed: %s", phar->fname, error);
efree(error);
diff --git a/ext/session/mod_files.c b/ext/session/mod_files.c
index b95a37aa1c..13681ec514 100644
--- a/ext/session/mod_files.c
+++ b/ext/session/mod_files.c
@@ -175,7 +175,7 @@ static void ps_files_open(ps_files *data, const char *key)
}
if (!ps_files_path_create(buf, sizeof(buf), data, key)) {
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to create session data file path. Too short session ID, invalid save_path or path lentgth exceeds MAXPATHLEN(%d)", MAXPATHLEN);
+ php_error_docref(NULL, E_WARNING, "Failed to create session data file path. Too short session ID, invalid save_path or path lentgth exceeds MAXPATHLEN(%d)", MAXPATHLEN);
return;
}
@@ -200,7 +200,7 @@ static void ps_files_open(ps_files *data, const char *key)
if (fstat(data->fd, &sbuf) || (sbuf.st_uid != 0 && sbuf.st_uid != getuid() && sbuf.st_uid != geteuid())) {
close(data->fd);
data->fd = -1;
- php_error_docref(NULL TSRMLS_CC, E_WARNING, "Session data file is not created by your uid");
+ php_error_docref(NULL, E_WARNING, "Session data file is not created by your uid");
return;
}
#endif
diff --git a/ext/snmp/snmp.c b/ext/snmp/snmp.c
index cabfa9e7df..910a5d5f90 100644
--- a/ext/snmp/snmp.c
+++ b/ext/snmp/snmp.c
@@ -2068,11 +2068,11 @@ static int php_snmp_has_property(zval *object, zval *member, int has_set_exists,
}
/* }}} */
-static HashTable *php_snmp_get_gc(zval *object, zval ***gc_data, int *gc_data_count TSRMLS_DC) /* {{{ */
+static HashTable *php_snmp_get_gc(zval *object, zval ***gc_data, int *gc_data_count) /* {{{ */
{
*gc_data = NULL;
*gc_data_count = 0;
- return zend_std_get_properties(object TSRMLS_CC);
+ return zend_std_get_properties(object);
}
/* }}} */
diff --git a/ext/soap/soap.c b/ext/soap/soap.c
index 52b4dcbef4..48733def55 100644
--- a/ext/soap/soap.c
+++ b/ext/soap/soap.c
@@ -3207,12 +3207,8 @@ PHP_METHOD(SoapClient, __setSoapHeaders)
if (headers == NULL || Z_TYPE_P(headers) == IS_NULL) {
zend_hash_str_del(Z_OBJPROP_P(this_ptr), "__default_headers", sizeof("__default_headers")-1);
} else if (Z_TYPE_P(headers) == IS_ARRAY) {
- zval *default_headers;
-
verify_soap_headers_array(Z_ARRVAL_P(headers));
- if ((default_headers = zend_hash_str_find(Z_OBJPROP_P(this_ptr), "__default_headers", sizeof("__default_headers")-1)) == NULL) {
- add_property_zval(this_ptr, "__default_headers", headers);
- }
+ add_property_zval(this_ptr, "__default_headers", headers);
} else if (Z_TYPE_P(headers) == IS_OBJECT &&
instanceof_function(Z_OBJCE_P(headers), soap_header_class_entry)) {
zval default_headers;
diff --git a/ext/soap/tests/bug73452.phpt b/ext/soap/tests/bug73452.phpt
new file mode 100644
index 0000000000..75f8c27016
--- /dev/null
+++ b/ext/soap/tests/bug73452.phpt
@@ -0,0 +1,17 @@
+--TEST--
+Bug #73452 Segfault (Regression for #69152)
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+$data = 'O:9:"SoapFault":4:{s:9:"faultcode";i:4298448493;s:11:"faultstring";i:4298448543;s:7:"'."\0*\0".'file";i:4298447319;s:7:"'."\0*\0".'line";s:4:"ryat";}';
+echo unserialize($data);
+
+?>
+==DONE==
+--EXPECTF--
+SoapFault exception: [4298448493] 4298448543 in :0
+Stack trace:
+#0 %sbug73452.php(4): unserialize('O:9:"SoapFault"...')
+#1 {main}==DONE==
diff --git a/ext/soap/tests/bugs/bug73538.phpt b/ext/soap/tests/bugs/bug73538.phpt
new file mode 100644
index 0000000000..1bf0372419
--- /dev/null
+++ b/ext/soap/tests/bugs/bug73538.phpt
@@ -0,0 +1,35 @@
+--TEST--
+SOAP: SoapClient::__setHeaders array overrides previous headers
+--SKIPIF--
+<?php require_once('skipif.inc'); ?>
+--FILE--
+<?php
+
+$client = new SoapClient(null, [
+ "location" => "test://",
+ "uri" => "test://",
+ "exceptions" => false,
+ "trace" => true,
+]);
+$client->__setSoapHeaders(new \SoapHeader('ns', 'Header', ['something' => 1]));
+$client->__setSoapHeaders(new \SoapHeader('ns', 'Header', ['something' => 2]));
+$client->test();
+echo $client->__getLastRequest();
+
+$client = new SoapClient(null, [
+ "location" => "test://",
+ "uri" => "test://",
+ "exceptions" => false,
+ "trace" => true,
+]);
+$client->__setSoapHeaders([new \SoapHeader('ns', 'Header', ['something' => 1])]);
+$client->__setSoapHeaders([new \SoapHeader('ns', 'Header', ['something' => 2])]);
+$client->test();
+echo $client->__getLastRequest();
+
+?>
+--EXPECT--
+<?xml version="1.0" encoding="UTF-8"?>
+<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="test://" xmlns:ns2="ns" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns2:Header><item><key>something</key><value>2</value></item></ns2:Header></SOAP-ENV:Header><SOAP-ENV:Body><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="test://" xmlns:ns2="ns" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Header><ns2:Header><item><key>something</key><value>2</value></item></ns2:Header></SOAP-ENV:Header><SOAP-ENV:Body><ns1:test/></SOAP-ENV:Body></SOAP-ENV:Envelope>
diff --git a/ext/sockets/sockets.c b/ext/sockets/sockets.c
index c23f984720..9aee9e017d 100644
--- a/ext/sockets/sockets.c
+++ b/ext/sockets/sockets.c
@@ -2370,7 +2370,7 @@ PHP_FUNCTION(socket_export_stream)
char *protocol = NULL;
size_t protocollen = 0;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "r", &zsocket) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &zsocket) == FAILURE) {
return;
}
if ((socket = (php_socket *) zend_fetch_resource(Z_RES_P(zsocket), le_socket_name, le_socket)) == NULL) {
diff --git a/ext/spl/tests/observer_010.phpt b/ext/spl/tests/observer_010.phpt
new file mode 100644
index 0000000000..5cedff8c7c
--- /dev/null
+++ b/ext/spl/tests/observer_010.phpt
@@ -0,0 +1,15 @@
+--TEST--
+SPL: SplObjectStorage null coalescing operator memory leak
+--FILE--
+<?php
+// In maintainer zts mode, this should no longer
+// detect memory leaks for the objects
+$a = new stdClass();
+$b = new stdClass();
+$map = new SplObjectStorage();
+$map[$a] = 'foo';
+var_dump($map[$b] ?? null);
+var_dump($map[$a] ?? null);
+--EXPECTF--
+NULL
+string(3) "foo"
diff --git a/ext/standard/string.c b/ext/standard/string.c
index c41d48ef17..d0ebd2f5be 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -20,8 +20,6 @@
/* $Id$ */
-/* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */
-
#include <stdio.h>
#include "php.h"
#include "php_rand.h"
diff --git a/ext/standard/tests/filters/bug73586.phpt b/ext/standard/tests/filters/bug73586.phpt
new file mode 100644
index 0000000000..3cae4662bf
--- /dev/null
+++ b/ext/standard/tests/filters/bug73586.phpt
@@ -0,0 +1,45 @@
+--TEST--
+Bug #73586 (php_user_filter::$stream is not set to the stream the filter is working on).
+--FILE--
+<?php
+class append_filter extends php_user_filter {
+ public $stream;
+ function filter($in, $out, &$consumed, $closing) {
+ while ($bucket = stream_bucket_make_writeable($in)) {
+ $consumed += $bucket->datalen;
+ stream_bucket_append($out, $bucket);
+ }
+ if ($closing) {
+ $bucket = stream_bucket_new($this->stream, "FooBar\n");
+ stream_bucket_append($out, $bucket);
+ }
+ return PSFS_PASS_ON;
+ }
+}
+stream_filter_register("append", "append_filter");
+$fin = fopen(__FILE__, 'rb');
+stream_filter_append($fin, 'append', STREAM_FILTER_READ);
+stream_copy_to_stream($fin, STDOUT);
+?>
+--EXPECT--
+<?php
+class append_filter extends php_user_filter {
+ public $stream;
+ function filter($in, $out, &$consumed, $closing) {
+ while ($bucket = stream_bucket_make_writeable($in)) {
+ $consumed += $bucket->datalen;
+ stream_bucket_append($out, $bucket);
+ }
+ if ($closing) {
+ $bucket = stream_bucket_new($this->stream, "FooBar\n");
+ stream_bucket_append($out, $bucket);
+ }
+ return PSFS_PASS_ON;
+ }
+}
+stream_filter_register("append", "append_filter");
+$fin = fopen(__FILE__, 'rb');
+stream_filter_append($fin, 'append', STREAM_FILTER_READ);
+stream_copy_to_stream($fin, STDOUT);
+?>
+FooBar
diff --git a/ext/standard/url.c b/ext/standard/url.c
index b0069c34a8..915db481ba 100644
--- a/ext/standard/url.c
+++ b/ext/standard/url.c
@@ -104,7 +104,7 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
ue = s + length;
/* parse scheme */
- if ((e = memchr(s, ':', length)) && (e - s)) {
+ if ((e = memchr(s, ':', length)) && e != s) {
/* validate scheme */
p = s;
while (p < e) {
@@ -119,10 +119,10 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
p++;
}
- if (*(e + 1) == '\0') { /* only scheme is available */
+ if (e + 1 == ue) { /* only scheme is available */
ret->scheme = estrndup(s, (e - s));
php_replace_controlchars_ex(ret->scheme, (e - s));
- goto end;
+ return ret;
}
/*
@@ -134,46 +134,39 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
* correctly parse things like a.com:80
*/
p = e + 1;
- while (isdigit(*p)) {
+ while (p < ue && isdigit(*p)) {
p++;
}
- if ((*p == '\0' || *p == '/') && (p - e) < 7) {
+ if ((p == ue || *p == '/') && (p - e) < 7) {
goto parse_port;
}
ret->scheme = estrndup(s, (e-s));
php_replace_controlchars_ex(ret->scheme, (e - s));
- length -= ++e - s;
- s = e;
+ s = e + 1;
goto just_path;
} else {
ret->scheme = estrndup(s, (e-s));
php_replace_controlchars_ex(ret->scheme, (e - s));
- if (*(e+2) == '/') {
+ if (e + 2 < ue && *(e + 2) == '/') {
s = e + 3;
if (!strncasecmp("file", ret->scheme, sizeof("file"))) {
- if (*(e + 3) == '/') {
+ if (e + 3 < ue && *(e + 3) == '/') {
/* support windows drive letters as in:
file:///c:/somedir/file.txt
*/
- if (*(e + 5) == ':') {
+ if (e + 5 < ue && *(e + 5) == ':') {
s = e + 4;
}
- goto nohost;
+ goto just_path;
}
}
} else {
- if (!strncasecmp("file", ret->scheme, sizeof("file"))) {
- s = e + 1;
- goto nohost;
- } else {
- length -= ++e - s;
- s = e;
- goto just_path;
- }
+ s = e + 1;
+ goto just_path;
}
}
} else if (e) { /* no scheme; starts with colon: look for port */
@@ -181,18 +174,18 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
p = e + 1;
pp = p;
- while (pp-p < 6 && isdigit(*pp)) {
+ while (pp < ue && pp - p < 6 && isdigit(*pp)) {
pp++;
}
- if (pp - p > 0 && pp - p < 6 && (*pp == '/' || *pp == '\0')) {
+ if (pp - p > 0 && pp - p < 6 && (pp == ue || *pp == '/')) {
zend_long port;
memcpy(port_buf, p, (pp - p));
port_buf[pp - p] = '\0';
port = ZEND_STRTOL(port_buf, NULL, 10);
if (port > 0 && port <= 65535) {
ret->port = (unsigned short) port;
- if (*s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
+ if (s + 1 < ue && *s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
s += 2;
}
} else {
@@ -200,24 +193,32 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
efree(ret);
return NULL;
}
- } else if (p == pp && *pp == '\0') {
+ } else if (p == pp && pp == ue) {
if (ret->scheme) efree(ret->scheme);
efree(ret);
return NULL;
- } else if (*s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
+ } else if (s + 1 < ue && *s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
s += 2;
} else {
goto just_path;
}
- } else if (*s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
+ } else if (s + 1 < ue && *s == '/' && *(s + 1) == '/') { /* relative-scheme URL */
s += 2;
} else {
- just_path:
- ue = s + length;
- goto nohost;
+ goto just_path;
}
- e = s + strcspn(s, "/?#");
+ /* Binary-safe strcspn(s, "/?#") */
+ e = ue;
+ if ((p = memchr(s, '/', e - s))) {
+ e = p;
+ }
+ if ((p = memchr(s, '?', e - s))) {
+ e = p;
+ }
+ if ((p = memchr(s, '#', e - s))) {
+ e = p;
+ }
/* check for login and password */
if ((p = zend_memrchr(s, '@', (e-s)))) {
@@ -237,18 +238,16 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
}
/* check for port */
- if (*s == '[' && *(e-1) == ']') {
+ if (s < ue && *s == '[' && *(e-1) == ']') {
/* Short circuit portscan,
we're dealing with an
IPv6 embedded address */
- p = s;
+ p = NULL;
} else {
- /* memrchr is a GNU specific extension
- Emulate for wide compatibility */
- for(p = e; p >= s && *p != ':'; p--);
+ p = zend_memrchr(s, ':', (e-s));
}
- if (p >= s && *p == ':') {
+ if (p) {
if (!ret->port) {
p++;
if (e-p > 5) { /* port cannot be longer then 5 characters */
@@ -296,54 +295,34 @@ PHPAPI php_url *php_url_parse_ex(char const *str, size_t length)
s = e;
- nohost:
-
- if ((p = memchr(s, '?', (ue - s)))) {
- pp = memchr(s, '#', (ue - s));
-
- if (pp && pp < p) {
- if (pp - s) {
- ret->path = estrndup(s, (pp-s));
- php_replace_controlchars_ex(ret->path, (pp - s));
- }
- p = pp;
- goto label_parse;
- }
+ just_path:
- if (p - s) {
- ret->path = estrndup(s, (p-s));
- php_replace_controlchars_ex(ret->path, (p - s));
- }
-
- if (pp) {
- if (pp - ++p) {
- ret->query = estrndup(p, (pp-p));
- php_replace_controlchars_ex(ret->query, (pp - p));
- }
- p = pp;
- goto label_parse;
- } else if (++p - ue) {
- ret->query = estrndup(p, (ue-p));
- php_replace_controlchars_ex(ret->query, (ue - p));
- }
- } else if ((p = memchr(s, '#', (ue - s)))) {
- if (p - s) {
- ret->path = estrndup(s, (p-s));
- php_replace_controlchars_ex(ret->path, (p - s));
+ e = ue;
+ p = memchr(s, '#', (e - s));
+ if (p) {
+ p++;
+ if (p < e) {
+ ret->fragment = estrndup(p, (e - p));
+ php_replace_controlchars_ex(ret->fragment, (e - p));
}
+ e = p-1;
+ }
- label_parse:
+ p = memchr(s, '?', (e - s));
+ if (p) {
p++;
-
- if (ue - p) {
- ret->fragment = estrndup(p, (ue-p));
- php_replace_controlchars_ex(ret->fragment, (ue - p));
+ if (p < e) {
+ ret->query = estrndup(p, (e - p));
+ php_replace_controlchars_ex(ret->query, (e - p));
}
- } else {
- ret->path = estrndup(s, (ue-s));
- php_replace_controlchars_ex(ret->path, (ue - s));
+ e = p-1;
}
-end:
+
+ if (s < e || s == ue) {
+ ret->path = estrndup(s, (e - s));
+ php_replace_controlchars_ex(ret->path, (e - s));
+ }
+
return ret;
}
/* }}} */
diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c
index 2da03cd276..19aff782fd 100644
--- a/ext/standard/user_filters.c
+++ b/ext/standard/user_filters.c
@@ -175,7 +175,7 @@ php_stream_filter_status_t userfilter_filter(
return ret;
}
- if (!zend_hash_str_exists(Z_OBJPROP_P(obj), "stream", sizeof("stream")-1)) {
+ if (!zend_hash_str_exists_ind(Z_OBJPROP_P(obj), "stream", sizeof("stream")-1)) {
zval tmp;
/* Give the userfilter class a hook back to the stream */
diff --git a/ext/xml/xml.c b/ext/xml/xml.c
index f0da47dc5b..61fcca5a45 100644
--- a/ext/xml/xml.c
+++ b/ext/xml/xml.c
@@ -1606,7 +1606,7 @@ PHP_FUNCTION(xml_parser_set_option)
convert_to_long_ex(val);
parser->toffset = Z_LVAL_P(val);
if (parser->toffset < 0) {
- php_error_docref(NULL TSRMLS_CC, E_NOTICE, "tagstart ignored, because it is out of range");
+ php_error_docref(NULL, E_NOTICE, "tagstart ignored, because it is out of range");
parser->toffset = 0;
}
break;
diff --git a/php.ini-development b/php.ini-development
index c5c701e689..e7ee29c3e6 100644
--- a/php.ini-development
+++ b/php.ini-development
@@ -1898,6 +1898,12 @@ ldap.max_links = -1
; This should improve performance, but requires appropriate OS configuration.
;opcache.huge_code_pages=0
+; Validate cached file permissions.
+;opcache.validate_permission=0
+
+; Prevent name collisions in chroot'ed environment.
+;opcache.validate_root=0
+
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
diff --git a/php.ini-production b/php.ini-production
index 5cd01cbd7f..f983971a85 100644
--- a/php.ini-production
+++ b/php.ini-production
@@ -1898,6 +1898,12 @@ ldap.max_links = -1
; This should improve performance, but requires appropriate OS configuration.
;opcache.huge_code_pages=1
+; Validate cached file permissions.
+;opcache.validate_permission=0
+
+; Prevent name collisions in chroot'ed environment.
+;opcache.validate_root=0
+
[curl]
; A default value for the CURLOPT_CAINFO option. This is required to be an
; absolute path.
diff --git a/run-tests.php b/run-tests.php
index 41a061666b..ce11fb1d87 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -2697,6 +2697,7 @@ function junit_init() {
'test_fail' => 0,
'test_error' => 0,
'test_skip' => 0,
+ 'test_warn' => 0,
'execution_time'=> 0,
'suites' => array(),
'files' => array()
diff --git a/sapi/fpm/fpm/fpm_log.c b/sapi/fpm/fpm/fpm_log.c
index e04c236991..02f8868142 100644
--- a/sapi/fpm/fpm/fpm_log.c
+++ b/sapi/fpm/fpm/fpm_log.c
@@ -467,7 +467,7 @@ int fpm_log_write(char *log_format) /* {{{ */
if (!test && strlen(buffer) > 0) {
buffer[len] = '\n';
- write(fpm_log_fd, buffer, len + 1);
+ zend_quiet_write(fpm_log_fd, buffer, len + 1);
}
return 0;
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
index 15f4da70fb..676811359c 100644
--- a/sapi/fpm/fpm/fpm_main.c
+++ b/sapi/fpm/fpm/fpm_main.c
@@ -1864,7 +1864,7 @@ consult the installation file that came with this distribution, or visit \n\
if (fpm_globals.send_config_pipe[1]) {
int writeval = 0;
zlog(ZLOG_DEBUG, "Sending \"0\" (error) to parent via fd=%d", fpm_globals.send_config_pipe[1]);
- write(fpm_globals.send_config_pipe[1], &writeval, sizeof(writeval));
+ zend_quiet_write(fpm_globals.send_config_pipe[1], &writeval, sizeof(writeval));
close(fpm_globals.send_config_pipe[1]);
}
return FPM_EXIT_CONFIG;
@@ -1873,7 +1873,7 @@ consult the installation file that came with this distribution, or visit \n\
if (fpm_globals.send_config_pipe[1]) {
int writeval = 1;
zlog(ZLOG_DEBUG, "Sending \"1\" (OK) to parent via fd=%d", fpm_globals.send_config_pipe[1]);
- write(fpm_globals.send_config_pipe[1], &writeval, sizeof(writeval));
+ zend_quiet_write(fpm_globals.send_config_pipe[1], &writeval, sizeof(writeval));
close(fpm_globals.send_config_pipe[1]);
}
fpm_is_running = 1;
diff --git a/sapi/fpm/fpm/fpm_signals.c b/sapi/fpm/fpm/fpm_signals.c
index 8d0a4caf25..68cb15379b 100644
--- a/sapi/fpm/fpm/fpm_signals.c
+++ b/sapi/fpm/fpm/fpm_signals.c
@@ -174,7 +174,7 @@ static void sig_handler(int signo) /* {{{ */
saved_errno = errno;
s = sig_chars[signo];
- write(sp[1], &s, sizeof(s));
+ zend_quiet_write(sp[1], &s, sizeof(s));
errno = saved_errno;
}
/* }}} */
diff --git a/sapi/fpm/fpm/zlog.c b/sapi/fpm/fpm/zlog.c
index 1659c77efc..4884dca856 100644
--- a/sapi/fpm/fpm/zlog.c
+++ b/sapi/fpm/fpm/zlog.c
@@ -16,6 +16,7 @@
#include "zlog.h"
#include "fpm.h"
+#include "zend_portability.h"
#define MAX_LINE_LENGTH 1024
@@ -186,11 +187,11 @@ void vzlog(const char *function, int line, int flags, const char *fmt, va_list a
#endif
{
buf[len++] = '\n';
- write(zlog_fd > -1 ? zlog_fd : STDERR_FILENO, buf, len);
+ zend_quiet_write(zlog_fd > -1 ? zlog_fd : STDERR_FILENO, buf, len);
}
if (zlog_fd != STDERR_FILENO && zlog_fd != -1 && !launched && (flags & ZLOG_LEVEL_MASK) >= ZLOG_NOTICE) {
- write(STDERR_FILENO, buf, len);
+ zend_quiet_write(STDERR_FILENO, buf, len);
}
}
/* }}} */
diff --git a/sapi/phpdbg/phpdbg.c b/sapi/phpdbg/phpdbg.c
index 2adca8e2c8..b47c7c82b3 100644
--- a/sapi/phpdbg/phpdbg.c
+++ b/sapi/phpdbg/phpdbg.c
@@ -29,6 +29,7 @@
#include "zend_alloc.h"
#include "phpdbg_eol.h"
#include "phpdbg_print.h"
+#include "phpdbg_help.h"
#include "ext/standard/basic_functions.h"
@@ -1957,7 +1958,7 @@ phpdbg_main:
if (PHPDBG_G(ops)) {
phpdbg_print_opcodes(print_opline_func);
} else {
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("No opcodes could be compiled | No file specified or compilation failed?\n"));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("No opcodes could be compiled | No file specified or compilation failed?\n"));
}
goto phpdbg_out;
}
diff --git a/sapi/phpdbg/phpdbg.h b/sapi/phpdbg/phpdbg.h
index 84041b125c..cf591a8a4e 100644
--- a/sapi/phpdbg/phpdbg.h
+++ b/sapi/phpdbg/phpdbg.h
@@ -116,8 +116,6 @@
#define memcpy(...) memcpy_tmp(__VA_ARGS__)
#endif
-#define quiet_write(...) ZEND_IGNORE_VALUE(write(__VA_ARGS__))
-
#if !defined(PHPDBG_WEBDATA_TRANSFER_H) && !defined(PHPDBG_WEBHELPER_H)
#ifdef ZTS
diff --git a/sapi/phpdbg/phpdbg_io.c b/sapi/phpdbg/phpdbg_io.c
index b2f4ba7c0d..65a14d0ccb 100644
--- a/sapi/phpdbg/phpdbg_io.c
+++ b/sapi/phpdbg/phpdbg_io.c
@@ -149,7 +149,7 @@ recv_once:
#endif
if (got_now == -1) {
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Read operation timed out!\n"));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Read operation timed out!\n"));
return -1;
}
i -= got_now;
@@ -203,7 +203,7 @@ static int phpdbg_output_pager(int sock, const char *ptr, int len) {
if (memchr(p, '\n', endp - p)) {
char buf[PHPDBG_MAX_CMD];
- write(sock, ZEND_STRL("\r---Type <return> to continue or q <return> to quit---"));
+ zend_quiet_write(sock, ZEND_STRL("\r---Type <return> to continue or q <return> to quit---"));
phpdbg_consume_stdin_line(buf);
if (*buf == 'q') {
break;
@@ -305,7 +305,7 @@ PHPDBG_API int phpdbg_create_listenable_socket(const char *addr, unsigned short
wrote = snprintf(buf, 128, "Could not translate address '%s'", addr);
buf[wrote] = '\0';
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
return sock;
} else {
@@ -315,7 +315,7 @@ PHPDBG_API int phpdbg_create_listenable_socket(const char *addr, unsigned short
wrote = snprintf(buf, 256, "Host '%s' not found. %s", addr, estrdup(gai_strerror(rc)));
buf[wrote] = '\0';
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
return sock;
#ifndef PHP_WIN32
@@ -330,7 +330,7 @@ PHPDBG_API int phpdbg_create_listenable_socket(const char *addr, unsigned short
wrote = sprintf(buf, "Unable to create socket");
buf[wrote] = '\0';
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, buf, strlen(buf));
return sock;
}
diff --git a/sapi/phpdbg/phpdbg_sigsafe.c b/sapi/phpdbg/phpdbg_sigsafe.c
index 2f987b3a15..081d864c5c 100644
--- a/sapi/phpdbg/phpdbg_sigsafe.c
+++ b/sapi/phpdbg/phpdbg_sigsafe.c
@@ -13,13 +13,13 @@ static void* zend_mm_mem_alloc(zend_mm_storage *storage, size_t size, size_t ali
return (void *) (((size_t) PHPDBG_G(sigsafe_mem).mem & ~(alignment - 1)) + alignment);
}
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Tried to allocate more than " EXP_STR(PHPDBG_SIGSAFE_MEM_SIZE) " bytes from stack memory in signal handler ... bailing out of signal handler\n"));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Tried to allocate more than " EXP_STR(PHPDBG_SIGSAFE_MEM_SIZE) " bytes from stack memory in signal handler ... bailing out of signal handler\n"));
if (*EG(bailout)) {
LONGJMP(*EG(bailout), FAILURE);
}
- quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Bailed out without a bailout address in signal handler!\n"));
+ zend_quiet_write(PHPDBG_G(io)[PHPDBG_STDERR].fd, ZEND_STRL("Bailed out without a bailout address in signal handler!\n"));
return NULL;
}
diff --git a/tests/lang/operators/overloaded_property_ref.phpt b/tests/lang/operators/overloaded_property_ref.phpt
new file mode 100644
index 0000000000..7561fc9916
--- /dev/null
+++ b/tests/lang/operators/overloaded_property_ref.phpt
@@ -0,0 +1,20 @@
+--TEST--
+Operators on overlaoded property reference
+--FILE--
+<?php
+class C {
+ function __construct() { $this->bar = str_repeat("1", 2); }
+ function &__get($x) { return $this->bar; }
+ function __set($x, $v) { $this->bar = $v; }
+}
+$x = new C;
+var_dump(++$x->foo);
+$x = new C;
+var_dump($x->foo++);
+$x = new C;
+var_dump($x->foo += 2);
+?>
+--EXPECT--
+int(12)
+string(2) "11"
+int(13)
diff --git a/win32/build/libs_version.txt b/win32/build/libs_version.txt
index c7cfb37940..716fad3c8b 100644
--- a/win32/build/libs_version.txt
+++ b/win32/build/libs_version.txt
@@ -3,13 +3,13 @@ cclient-2007f
freetype-2.6.2
icu-57.1
jpeglib-9b
-libcurl-7.50.3
+libcurl-7.51.0
libiconv-1.14
libmcrypt-2.5.8
libmpir-2.7.2
libpng-1.6.21
libpq-9.5.3
-libssh2-1.7.0
+libssh2-1.8.0
libtidy-20090406
libxslt-1.1.29
libxml-2.9.4