diff options
author | Davey Shafik <me@daveyshafik.com> | 2016-11-30 15:05:54 -0800 |
---|---|---|
committer | Davey Shafik <me@daveyshafik.com> | 2016-11-30 15:05:54 -0800 |
commit | be556555cc4f41798a880fde52920f0b29518fd7 (patch) | |
tree | 03a75f73c5ea6da5989f4aeca3078fc64ade1020 | |
parent | 9efea0c23eb0bd8f92c97cc39954fd3cdb366e8b (diff) | |
parent | e89a0535a3d8f2a09e3b28c3e70d7181819d6ec5 (diff) | |
download | php-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
...
66 files changed, 3294 insertions, 2707 deletions
@@ -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 |