mirror of
https://github.com/bdnugget/php-src.git
synced 2026-11-13 20:20:50 +00:00
Compare commits
217
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0d135ccbf0 | ||
|
|
f432141cd9 | ||
|
|
e9b22042a7 | ||
|
|
2ce4bd7f2d | ||
|
|
6b896fa57f | ||
|
|
5ac0ee30ce | ||
|
|
95cc763a14 | ||
|
|
248414f132 | ||
|
|
272c5edea4 | ||
|
|
ca3e0862db | ||
|
|
cfb1ffb4fa | ||
|
|
ebef8c4176 | ||
|
|
ee01af7df1 | ||
|
|
2a93fd1347 | ||
|
|
7bb052ee3e | ||
|
|
0dc98208ee | ||
|
|
d9c034ee5e | ||
|
|
b5b0a53b09 | ||
|
|
600d6deef9 | ||
|
|
2208447d42 | ||
|
|
088c183639 | ||
|
|
b6dd1ec60d | ||
|
|
49e57a3165 | ||
|
|
7457867ba8 | ||
|
|
8acfa0b3f8 | ||
|
|
02f552ceca | ||
|
|
6238dd6f32 | ||
|
|
10b9579395 | ||
|
|
ed2690477c | ||
|
|
cd1b44c4b6 | ||
|
|
1cc750493f | ||
|
|
eccc05fc44 | ||
|
|
251ec84a97 | ||
|
|
f16143f5ac | ||
|
|
760b7d00c3 | ||
|
|
ac40c0b562 | ||
|
|
04145dc2aa | ||
|
|
ed2e84e239 | ||
|
|
7a1e670d76 | ||
|
|
18403e496d | ||
|
|
0f9cf35315 | ||
|
|
e1e07cb431 | ||
|
|
88c2dbe5fc | ||
|
|
d8792d87cf | ||
|
|
53c39e2b4e | ||
|
|
f68b8a5e74 | ||
|
|
f5f6404260 | ||
|
|
8a8bef1b73 | ||
|
|
f4e3c7ab7c | ||
|
|
336a8e1943 | ||
|
|
fdd7379686 | ||
|
|
f338510c94 | ||
|
|
75c57122e3 | ||
|
|
e14800dd46 | ||
|
|
3cc891bf3a | ||
|
|
ab22fda7e5 | ||
|
|
e8f004d542 | ||
|
|
a7e25bdd48 | ||
|
|
4b96b8f909 | ||
|
|
25cae37b13 | ||
|
|
1aee7ad636 | ||
|
|
5ee047b486 | ||
|
|
ec3bcbcb5a | ||
|
|
3c93402f86 | ||
|
|
f597f5561e | ||
|
|
3c87945c95 | ||
|
|
efdeec3c0e | ||
|
|
93e0d78ec6 | ||
|
|
90bb28726b | ||
|
|
5a04ab9a54 | ||
|
|
7360f0f1e6 | ||
|
|
2463e89794 | ||
|
|
a98359b7b9 | ||
|
|
cbf90b1a90 | ||
|
|
51c065f611 | ||
|
|
25aae37229 | ||
|
|
de42833115 | ||
|
|
79803bebde | ||
|
|
a3b5b42e77 | ||
|
|
598e2690b8 | ||
|
|
bf4a034e3e | ||
|
|
510498947e | ||
|
|
df6ca450ce | ||
|
|
65d233f06c | ||
|
|
0c9f11758f | ||
|
|
2dd67abb7d | ||
|
|
1c623e3b07 | ||
|
|
8b515fa00a | ||
|
|
13e5c97ffd | ||
|
|
bcdac7526d | ||
|
|
2d386db878 | ||
|
|
9f6ca9bc64 | ||
|
|
cd74b7d57e | ||
|
|
4cb25d25f1 | ||
|
|
c53058763a | ||
|
|
c50cef1dc5 | ||
|
|
73eedaf6f7 | ||
|
|
013797588a | ||
|
|
fc2a9d6e47 | ||
|
|
0776337e28 | ||
|
|
de4fd8638b | ||
|
|
d4ad889824 | ||
|
|
2d7415a4af | ||
|
|
646ebc2cb9 | ||
|
|
4828f7343b | ||
|
|
0e99329e0a | ||
|
|
77fffff157 | ||
|
|
1124b0678f | ||
|
|
fb58e69a84 | ||
|
|
7c66c502d0 | ||
|
|
2d5695cbc5 | ||
|
|
b142e8825f | ||
|
|
aff65a0346 | ||
|
|
46b05bc57a | ||
|
|
3eb1745643 | ||
|
|
8dec06ea2a | ||
|
|
d82704b677 | ||
|
|
09470ebf35 | ||
|
|
de82e7edf7 | ||
|
|
86db5fb4c2 | ||
|
|
7ec2e5314e | ||
|
|
ba1af29805 | ||
|
|
1a46a102d9 | ||
|
|
8c36156070 | ||
|
|
74555e7c26 | ||
|
|
f37c54ab27 | ||
|
|
533e636a62 | ||
|
|
156576fcce | ||
|
|
fe21accfb4 | ||
|
|
89159926ad | ||
|
|
dd188e9538 | ||
|
|
d6505acbf5 | ||
|
|
699dc04c55 | ||
|
|
898ddcb9e1 | ||
|
|
1cc2162b83 | ||
|
|
ec4388158d | ||
|
|
f1e5127e7a | ||
|
|
5c701d19ac | ||
|
|
8c3b8f39aa | ||
|
|
c34274acb8 | ||
|
|
3a413f216a | ||
|
|
f1269d80c5 | ||
|
|
b1c24d1eac | ||
|
|
aa4762572e | ||
|
|
b1ea0b7a7a | ||
|
|
e36adfe94a | ||
|
|
a39282b64d | ||
|
|
3828f6227b | ||
|
|
5af2c5d202 | ||
|
|
aa448adc83 | ||
|
|
9996c310d1 | ||
|
|
f087c53130 | ||
|
|
4a34d4a83c | ||
|
|
3fd4b6be63 | ||
|
|
0549e55d82 | ||
|
|
b7b150b830 | ||
|
|
444e59eb20 | ||
|
|
08b72ac9f1 | ||
|
|
331540d20c | ||
|
|
c374b80dda | ||
|
|
d0c40220d1 | ||
|
|
78c48af2f2 | ||
|
|
8492bbefbb | ||
|
|
a7d6cb2360 | ||
|
|
be3f7ba4fb | ||
|
|
ab117573cd | ||
|
|
3f2f534a5c | ||
|
|
1656b337ce | ||
|
|
514afd67b6 | ||
|
|
4a92ae3401 | ||
|
|
4e773c1b92 | ||
|
|
7b9eabaf51 | ||
|
|
15b554cd9b | ||
|
|
8f5a534b21 | ||
|
|
d54432ed98 | ||
|
|
c7b8368ed5 | ||
|
|
e9b03c412b | ||
|
|
cdc1a63790 | ||
|
|
5adf1be45d | ||
|
|
bf5506f511 | ||
|
|
239ba8d58b | ||
|
|
63434524f8 | ||
|
|
671ef9fda7 | ||
|
|
a58a279d7b | ||
|
|
84e5c8a0e2 | ||
|
|
5e24a6e74d | ||
|
|
18fdab5a09 | ||
|
|
43ab915b41 | ||
|
|
4cf0647399 | ||
|
|
b3aa3c2616 | ||
|
|
8febe2ad08 | ||
|
|
f082d6311b | ||
|
|
0b2c411323 | ||
|
|
70b67f2e50 | ||
|
|
b02241b968 | ||
|
|
92bbe6be72 | ||
|
|
39cc08c7e9 | ||
|
|
0802961bd1 | ||
|
|
ecf76e2da8 | ||
|
|
fb955a613c | ||
|
|
4fbe1173eb | ||
|
|
323fdb9879 | ||
|
|
a9271a8b0d | ||
|
|
e694d40963 | ||
|
|
ba292b037f | ||
|
|
4475dbf11d | ||
|
|
684f4d5272 | ||
|
|
b6d54faa92 | ||
|
|
56b028e590 | ||
|
|
782085bbfb | ||
|
|
ceb5b684e0 | ||
|
|
968ae4a56a | ||
|
|
c480bf3fb2 | ||
|
|
224a67fb9f | ||
|
|
442ff25187 | ||
|
|
146d786137 | ||
|
|
ecdf8bcc45 |
No files matched your search
@@ -32,7 +32,7 @@ resources cannot be auto-converted.
|
||||
Type specifiers
|
||||
---------------
|
||||
The following list shows the type specifier, its meaning and the parameter
|
||||
types that need to be passed by address. All passed paramaters are set
|
||||
types that need to be passed by address. All passed parameters are set
|
||||
if the PHP parameter is non optional and untouched if optional and the
|
||||
parameter is not present. The only exception is O where the zend_class_entry*
|
||||
has to be provided on input and is used to verify the PHP parameter is an
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[IMPORTANT NOTICE]
|
||||
------------------
|
||||
Failed tests usualy indicate a problem with your local system setup
|
||||
Failed tests usually indicate a problem with your local system setup
|
||||
and not within PHP itself (at least for official PHP release versions).
|
||||
You may decide to automaticaly submit a test summary to our QA workflow
|
||||
at the end of a test run.
|
||||
|
||||
+1
-1
@@ -435,7 +435,7 @@ Changes in the Zend Engine 2.0
|
||||
that of other object-oriented languages, such as Java: When the
|
||||
last reference to an object is destroyed the object's
|
||||
destructor, which is a class method name __destruct() that
|
||||
recieves no parameters, is called before the object is freed
|
||||
receives no parameters, is called before the object is freed
|
||||
from memory.
|
||||
|
||||
Example:
|
||||
|
||||
+1
-1
@@ -357,7 +357,7 @@ var_dump($global_var);
|
||||
test_unset3();
|
||||
var_dump($global_var);
|
||||
|
||||
//Note: No error conditions relating to passing arugments can be tested
|
||||
//Note: No error conditions relating to passing arguments can be tested
|
||||
// because these are not functions but statements, it will result in syntax error.
|
||||
?>
|
||||
===DONE===
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
Bug #32428 (The @ warning error supression operator is broken)
|
||||
Bug #32428 (The @ warning error suppression operator is broken)
|
||||
--FILE--
|
||||
<?php
|
||||
$data = @$not_exists;
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
--TEST--
|
||||
Bug #64660 (Segfault on memory exhaustion within function definition)
|
||||
--FILE--
|
||||
<?php
|
||||
function a() {
|
||||
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[Line truncated
|
||||
}
|
||||
echo "Done\n";
|
||||
--EXPECTF--
|
||||
|
||||
Parse error: memory exhausted in %s on line %d
|
||||
@@ -0,0 +1,48 @@
|
||||
--TEST--
|
||||
Bug #64720 (SegFault on zend_deactivate)
|
||||
--FILE--
|
||||
<?php
|
||||
class Stat {
|
||||
private static $requests;
|
||||
public static function getInstance() {
|
||||
if (!isset(self::$requests[1])) {
|
||||
self::$requests[1] = new self();
|
||||
}
|
||||
return self::$requests[1];
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
unset(self::$requests[1]);
|
||||
}
|
||||
}
|
||||
|
||||
class Foo {
|
||||
public function __construct() {
|
||||
Stat::getInstance();
|
||||
}
|
||||
}
|
||||
|
||||
class Error {
|
||||
private $trace;
|
||||
public function __construct() {
|
||||
$this->trace = debug_backtrace(1);
|
||||
}
|
||||
}
|
||||
|
||||
class Bar {
|
||||
public function __destruct() {
|
||||
Stat::getInstance();
|
||||
new Error();
|
||||
}
|
||||
|
||||
public function test() {
|
||||
new Error();
|
||||
}
|
||||
}
|
||||
|
||||
$foo = new Foo();
|
||||
$bar = new Bar();
|
||||
$bar->test();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Access to undeclared static property: Stat::$requests in %sbug64720.php on line 12
|
||||
@@ -0,0 +1,22 @@
|
||||
--TEST--
|
||||
Bug #64821 Custom Exceptions crash when internal properties overridden (variation 1)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class a extends exception {
|
||||
public function __construct() {
|
||||
$this->message = NULL;
|
||||
$this->string = NULL;
|
||||
$this->code = array();
|
||||
$this->line = "hello";
|
||||
}
|
||||
}
|
||||
|
||||
throw new a;
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught exception 'a' in %s:0
|
||||
Stack trace:
|
||||
#0 {main}
|
||||
thrown in %s on line %d
|
||||
@@ -0,0 +1,19 @@
|
||||
--TEST--
|
||||
Bug #64821 Custom Exceptions crash when internal properties overridden (variation 2)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class a extends exception {
|
||||
public function __construct() {
|
||||
$this->line = array();
|
||||
}
|
||||
}
|
||||
|
||||
throw new a;
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught exception 'a' in %s:0
|
||||
Stack trace:
|
||||
#0 {main}
|
||||
thrown in %s on line %d
|
||||
@@ -0,0 +1,20 @@
|
||||
--TEST--
|
||||
Bug #64821 Custom Exceptions crash when internal properties overridden (variation 3)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class a extends exception {
|
||||
public function __construct() {
|
||||
$this->line = array();
|
||||
$this->file = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
throw new a;
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught exception 'a' in :0
|
||||
Stack trace:
|
||||
#0 {main}
|
||||
thrown in Unknown on line %d
|
||||
@@ -0,0 +1,40 @@
|
||||
--TEST--
|
||||
Bug #64960 (Segfault in gc_zval_possible_root)
|
||||
--FILE--
|
||||
<?php
|
||||
// this makes ob_end_clean raise an error
|
||||
ob_end_flush();
|
||||
|
||||
class ExceptionHandler {
|
||||
public function __invoke (Exception $e)
|
||||
{
|
||||
// this triggers the custom error handler
|
||||
ob_end_clean();
|
||||
}
|
||||
}
|
||||
|
||||
// this must be a class, closure does not trigger segfault
|
||||
set_exception_handler(new ExceptionHandler());
|
||||
|
||||
// exception must be throwed from error handler.
|
||||
set_error_handler(function()
|
||||
{
|
||||
$e = new Exception;
|
||||
$e->_trace = debug_backtrace();
|
||||
|
||||
throw $e;
|
||||
});
|
||||
|
||||
// trigger error handler
|
||||
$a['waa'];
|
||||
?>
|
||||
--EXPECTF--
|
||||
Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in %sbug64960.php on line 3
|
||||
|
||||
Fatal error: Uncaught exception 'Exception' in %sbug64960.php:19
|
||||
Stack trace:
|
||||
#0 [internal function]: {closure}(8, 'ob_end_clean():...', '%s', 9, Array)
|
||||
#1 %sbug64960.php(9): ob_end_clean()
|
||||
#2 [internal function]: ExceptionHandler->__invoke(Object(Exception))
|
||||
#3 {main}
|
||||
thrown in %sbug64960.php on line 19
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #64966 (segfault in zend_do_fcall_common_helper_SPEC)
|
||||
--FILE--
|
||||
<?php
|
||||
error_reporting(E_ALL);
|
||||
set_error_handler(function($error) { throw new Exception(); }, E_RECOVERABLE_ERROR);
|
||||
|
||||
function test($func) {
|
||||
$a = $func("");
|
||||
return true;
|
||||
}
|
||||
class A {
|
||||
public function b() {
|
||||
test("strlen");
|
||||
test("iterator_apply");
|
||||
}
|
||||
}
|
||||
|
||||
$a = new A();
|
||||
$a->b();
|
||||
?>
|
||||
--EXPECTF--
|
||||
Fatal error: Uncaught exception 'Exception' in %sbug64966.php:3
|
||||
Stack trace:
|
||||
#0 [internal function]: {closure}(4096, 'Argument 1 pass...', '%s', 6, Array)
|
||||
#1 %sbug64966.php(6): iterator_apply('')
|
||||
#2 %sbug64966.php(12): test('iterator_apply')
|
||||
#3 %sbug64966.php(17): A->b()
|
||||
#4 {main}
|
||||
thrown in %sbug64966.php on line 3
|
||||
@@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Bug #64988 (Class loading order affects E_STRICT warning)
|
||||
--FILE--
|
||||
<?php
|
||||
abstract class Base1 {
|
||||
public function insert(array $data){
|
||||
return array_reverse($data);
|
||||
}
|
||||
}
|
||||
|
||||
class Noisy1 extends Base1 {
|
||||
public function insert(array $data, $option1 = Null) {
|
||||
if (!empty($option1)) {
|
||||
$data['option1'] = $option1;
|
||||
}
|
||||
return parent::insert($data);
|
||||
}
|
||||
}
|
||||
class Smooth1 extends Noisy1 {
|
||||
public function insert(array $data) {
|
||||
return parent::insert($data, count($data));
|
||||
}
|
||||
}
|
||||
|
||||
$o = new Smooth1();
|
||||
echo "okey";
|
||||
?>
|
||||
--EXPECTF--
|
||||
Strict Standards: Declaration of Smooth1::insert() should be compatible with Noisy1::insert(array $data, $option1 = NULL) in %sbug64988.php on line 20
|
||||
okey
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
GC 007: Unreferensed array cycle
|
||||
GC 007: Unreferenced array cycle
|
||||
--INI--
|
||||
zend.enable_gc=1
|
||||
--FILE--
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
GC 008: Unreferensed object cycle
|
||||
GC 008: Unreferenced object cycle
|
||||
--INI--
|
||||
zend.enable_gc=1
|
||||
--FILE--
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
GC 009: Unreferensed array-object cycle
|
||||
GC 009: Unreferenced array-object cycle
|
||||
--INI--
|
||||
zend.enable_gc=1
|
||||
--FILE--
|
||||
|
||||
+1
-1
@@ -1143,7 +1143,7 @@ ZEND_API void object_properties_init(zend_object *object, zend_class_entry *clas
|
||||
|
||||
/* This function requires 'properties' to contain all props declared in the
|
||||
* class and all props being public. If only a subset is given or the class
|
||||
* has protected members then you need to merge the properties seperately by
|
||||
* has protected members then you need to merge the properties separately by
|
||||
* calling zend_merge_properties(). */
|
||||
ZEND_API int _object_and_properties_init(zval *arg, zend_class_entry *class_type, HashTable *properties ZEND_FILE_LINE_DC TSRMLS_DC) /* {{{ */
|
||||
{
|
||||
|
||||
+3
-3
@@ -90,7 +90,7 @@ typedef struct _zend_fcall_info_cache {
|
||||
#define ZEND_NS_RAW_FENTRY(ns, zend_name, name, arg_info, flags) ZEND_RAW_FENTRY(ZEND_NS_NAME(ns, zend_name), name, arg_info, flags)
|
||||
#define ZEND_NS_RAW_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_RAW_FENTRY(ns, #zend_name, name, arg_info, 0)
|
||||
|
||||
#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, #zend_name, name, arg_info, 0)
|
||||
#define ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info) ZEND_NS_FENTRY(ns, zend_name, name, arg_info, 0)
|
||||
#define ZEND_NS_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, 0)
|
||||
#define ZEND_NS_DEP_FE(ns, name, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(name), arg_info, ZEND_ACC_DEPRECATED)
|
||||
#define ZEND_NS_FALIAS(ns, name, alias, arg_info) ZEND_NS_FENTRY(ns, name, ZEND_FN(alias), arg_info, 0)
|
||||
@@ -461,7 +461,7 @@ ZEND_API extern const zend_fcall_info_cache empty_fcall_info_cache;
|
||||
*/
|
||||
ZEND_API int zend_fcall_info_init(zval *callable, uint check_flags, zend_fcall_info *fci, zend_fcall_info_cache *fcc, char **callable_name, char **error TSRMLS_DC);
|
||||
|
||||
/** Clear argumens connected with zend_fcall_info *fci
|
||||
/** Clear arguments connected with zend_fcall_info *fci
|
||||
* If free_mem is not zero then the params array gets free'd as well
|
||||
*/
|
||||
ZEND_API void zend_fcall_info_args_clear(zend_fcall_info *fci, int free_mem);
|
||||
@@ -499,7 +499,7 @@ ZEND_API int zend_fcall_info_argv(zend_fcall_info *fci TSRMLS_DC, int argc, va_l
|
||||
ZEND_API int zend_fcall_info_argn(zend_fcall_info *fci TSRMLS_DC, int argc, ...);
|
||||
|
||||
/** Call a function using information created by zend_fcall_info_init()/args().
|
||||
* If args is given then those replace the arguement info in fci is temporarily.
|
||||
* If args is given then those replace the argument info in fci is temporarily.
|
||||
*/
|
||||
ZEND_API int zend_fcall_info_call(zend_fcall_info *fci, zend_fcall_info_cache *fcc, zval **retval, zval *args TSRMLS_DC);
|
||||
|
||||
|
||||
+14
-4
@@ -672,7 +672,7 @@ static inline unsigned int zend_mm_high_bit(size_t _size)
|
||||
#elif defined(__GNUC__) && defined(__x86_64__)
|
||||
unsigned long n;
|
||||
|
||||
__asm__("bsrq %1,%0\n\t" : "=r" (n) : "rm" (_size));
|
||||
__asm__("bsr %1,%0\n\t" : "=r" (n) : "rm" (_size));
|
||||
return (unsigned int)n;
|
||||
#elif defined(_MSC_VER) && defined(_M_IX86)
|
||||
__asm {
|
||||
@@ -698,12 +698,12 @@ static inline unsigned int zend_mm_low_bit(size_t _size)
|
||||
#elif defined(__GNUC__) && defined(__x86_64__)
|
||||
unsigned long n;
|
||||
|
||||
__asm__("bsfq %1,%0\n\t" : "=r" (n) : "rm" (_size));
|
||||
__asm__("bsf %1,%0\n\t" : "=r" (n) : "rm" (_size));
|
||||
return (unsigned int)n;
|
||||
#elif defined(_MSC_VER) && defined(_M_IX86)
|
||||
__asm {
|
||||
bsf eax, _size
|
||||
}
|
||||
}
|
||||
#else
|
||||
static const int offset[16] = {4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0};
|
||||
unsigned int n;
|
||||
@@ -2481,12 +2481,22 @@ static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
|
||||
size_t res = nmemb;
|
||||
unsigned long overflow = 0;
|
||||
|
||||
__asm__ ("mulq %3\n\taddq %4,%0\n\tadcq %1,%1"
|
||||
#ifdef __ILP32__ /* x32 */
|
||||
# define LP_SUFF "l"
|
||||
#else /* amd64 */
|
||||
# define LP_SUFF "q"
|
||||
#endif
|
||||
|
||||
__asm__ ("mul" LP_SUFF " %3\n\t"
|
||||
"add %4,%0\n\t"
|
||||
"adc %1,%1"
|
||||
: "=&a"(res), "=&d" (overflow)
|
||||
: "%0"(res),
|
||||
"rm"(size),
|
||||
"rm"(offset));
|
||||
|
||||
#undef LP_SUFF
|
||||
|
||||
if (UNEXPECTED(overflow)) {
|
||||
zend_error_noreturn(E_ERROR, "Possible integer overflow in memory allocation (%zu * %zu + %zu)", nmemb, size, offset);
|
||||
return 0;
|
||||
|
||||
+5
-5
@@ -3267,11 +3267,11 @@ static void do_inheritance_check_on_method(zend_function *child, zend_function *
|
||||
|
||||
if (child->common.prototype && (child->common.prototype->common.fn_flags & ZEND_ACC_ABSTRACT)) {
|
||||
if (!zend_do_perform_implementation_check(child, child->common.prototype TSRMLS_CC)) {
|
||||
zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype? child->common.prototype : parent TSRMLS_CC));
|
||||
zend_error(E_COMPILE_ERROR, "Declaration of %s::%s() must be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, zend_get_function_declaration(child->common.prototype TSRMLS_CC));
|
||||
}
|
||||
} else if (EG(error_reporting) & E_STRICT || EG(user_error_handler)) { /* Check E_STRICT (or custom error handler) before the check so that we save some time */
|
||||
if (!zend_do_perform_implementation_check(child, parent TSRMLS_CC)) {
|
||||
char *method_prototype = zend_get_function_declaration(child->common.prototype? child->common.prototype : parent TSRMLS_CC);
|
||||
char *method_prototype = zend_get_function_declaration(parent TSRMLS_CC);
|
||||
zend_error(E_STRICT, "Declaration of %s::%s() should be compatible with %s", ZEND_FN_SCOPE_NAME(child), child->common.function_name, method_prototype);
|
||||
efree(method_prototype);
|
||||
}
|
||||
@@ -3744,7 +3744,7 @@ static void zend_add_trait_method(zend_class_entry *ce, const char *name, const
|
||||
#endif
|
||||
} else {
|
||||
/* inherited members are overridden by members inserted by traits */
|
||||
/* check whether the trait method fullfills the inheritance requirements */
|
||||
/* check whether the trait method fulfills the inheritance requirements */
|
||||
do_inheritance_check_on_method(fn, existing_fn TSRMLS_CC);
|
||||
}
|
||||
}
|
||||
@@ -5479,7 +5479,7 @@ void zend_do_shell_exec(znode *result, const znode *cmd TSRMLS_DC) /* {{{ */
|
||||
break;
|
||||
}
|
||||
SET_NODE(opline->op1, cmd);
|
||||
opline->op2.opline_num = 0;
|
||||
opline->op2.opline_num = 1;
|
||||
opline->extended_value = ZEND_DO_FCALL;
|
||||
SET_UNUSED(opline->op2);
|
||||
|
||||
@@ -6943,7 +6943,7 @@ ZEND_API size_t zend_dirname(char *path, size_t len)
|
||||
}
|
||||
#elif defined(NETWARE)
|
||||
/*
|
||||
* Find the first occurence of : from the left
|
||||
* Find the first occurrence of : from the left
|
||||
* move the path pointer to the position just after :
|
||||
* increment the len_adjust to the length of path till colon character(inclusive)
|
||||
* If there is no character beyond : simple return len
|
||||
|
||||
@@ -817,6 +817,10 @@ ZEND_API void zend_exception_error(zval *exception, int severity TSRMLS_DC) /* {
|
||||
if (instanceof_function(ce_exception, default_exception_ce TSRMLS_CC)) {
|
||||
file = zend_read_property(default_exception_ce, EG(exception), "file", sizeof("file")-1, 1 TSRMLS_CC);
|
||||
line = zend_read_property(default_exception_ce, EG(exception), "line", sizeof("line")-1, 1 TSRMLS_CC);
|
||||
|
||||
convert_to_string(file);
|
||||
file = (Z_STRLEN_P(file) > 0) ? file : NULL;
|
||||
line = (Z_TYPE_P(line) == IS_LONG) ? line : NULL;
|
||||
} else {
|
||||
file = NULL;
|
||||
line = NULL;
|
||||
@@ -828,7 +832,11 @@ ZEND_API void zend_exception_error(zval *exception, int severity TSRMLS_DC) /* {
|
||||
file = zend_read_property(default_exception_ce, exception, "file", sizeof("file")-1, 1 TSRMLS_CC);
|
||||
line = zend_read_property(default_exception_ce, exception, "line", sizeof("line")-1, 1 TSRMLS_CC);
|
||||
|
||||
zend_error_va(severity, Z_STRVAL_P(file), Z_LVAL_P(line), "Uncaught %s\n thrown", Z_STRVAL_P(str));
|
||||
convert_to_string(str);
|
||||
convert_to_string(file);
|
||||
convert_to_long(line);
|
||||
|
||||
zend_error_va(severity, (Z_STRLEN_P(file) > 0) ? Z_STRVAL_P(file) : NULL, Z_LVAL_P(line), "Uncaught %s\n thrown", Z_STRVAL_P(str));
|
||||
} else {
|
||||
zend_error(severity, "Uncaught exception '%s'", ce_exception->name);
|
||||
}
|
||||
|
||||
@@ -254,15 +254,13 @@ void shutdown_executor(TSRMLS_D) /* {{{ */
|
||||
if (EG(user_error_handler)) {
|
||||
zeh = EG(user_error_handler);
|
||||
EG(user_error_handler) = NULL;
|
||||
zval_dtor(zeh);
|
||||
FREE_ZVAL(zeh);
|
||||
zval_ptr_dtor(&zeh);
|
||||
}
|
||||
|
||||
if (EG(user_exception_handler)) {
|
||||
zeh = EG(user_exception_handler);
|
||||
EG(user_exception_handler) = NULL;
|
||||
zval_dtor(zeh);
|
||||
FREE_ZVAL(zeh);
|
||||
zval_ptr_dtor(&zeh);
|
||||
}
|
||||
|
||||
zend_stack_destroy(&EG(user_error_handlers_error_reporting));
|
||||
|
||||
+2
-2
@@ -106,7 +106,7 @@ typedef struct _zend_gc_globals {
|
||||
gc_root_buffer *first_unused; /* pointer to first unused buffer */
|
||||
gc_root_buffer *last_unused; /* pointer to last unused buffer */
|
||||
|
||||
zval_gc_info *zval_to_free; /* temporaryt list of zvals to free */
|
||||
zval_gc_info *zval_to_free; /* temporary list of zvals to free */
|
||||
zval_gc_info *free_list;
|
||||
zval_gc_info *next_to_free;
|
||||
|
||||
@@ -199,7 +199,7 @@ static zend_always_inline void gc_remove_from_buffer(gc_root_buffer *root TSRMLS
|
||||
GC_ZVAL_INIT(z); \
|
||||
} while (0)
|
||||
|
||||
/* The following macroses override macroses from zend_alloc.h */
|
||||
/* The following macros override macros from zend_alloc.h */
|
||||
#undef ALLOC_ZVAL
|
||||
#define ALLOC_ZVAL(z) \
|
||||
do { \
|
||||
|
||||
+346
-343
File diff suppressed because it is too large.
Load diff
@@ -256,6 +256,7 @@ ZEND_API void zend_restore_lexical_state(zend_lex_state *lex_state TSRMLS_DC)
|
||||
CG(heredoc) = NULL;
|
||||
CG(heredoc_len) = 0;
|
||||
}
|
||||
RESET_DOC_COMMENT();
|
||||
}
|
||||
|
||||
ZEND_API void zend_destroy_file_handle(zend_file_handle *file_handle TSRMLS_DC)
|
||||
@@ -539,6 +540,7 @@ ZEND_API int open_file_for_scanning(zend_file_handle *file_handle TSRMLS_DC)
|
||||
CG(zend_lineno) = 1;
|
||||
}
|
||||
|
||||
RESET_DOC_COMMENT();
|
||||
CG(increment_lineno) = 0;
|
||||
return SUCCESS;
|
||||
}
|
||||
@@ -583,7 +585,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
|
||||
compiler_result = zendparse(TSRMLS_C);
|
||||
zend_do_return(&retval_znode, 0 TSRMLS_CC);
|
||||
CG(in_compilation) = original_in_compilation;
|
||||
if (compiler_result==1) { /* parser error */
|
||||
if (compiler_result != 0) { /* parser error */
|
||||
zend_bailout();
|
||||
}
|
||||
compilation_successful=1;
|
||||
@@ -689,6 +691,7 @@ ZEND_API int zend_prepare_string_for_scanning(zval *str, char *filename TSRMLS_D
|
||||
zend_set_compiled_filename(filename TSRMLS_CC);
|
||||
CG(zend_lineno) = 1;
|
||||
CG(increment_lineno) = 0;
|
||||
RESET_DOC_COMMENT();
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
@@ -758,7 +761,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
|
||||
SCNG(script_filtered) = NULL;
|
||||
}
|
||||
|
||||
if (compiler_result==1) {
|
||||
if (compiler_result != 0) {
|
||||
CG(active_op_array) = original_active_op_array;
|
||||
CG(unclean_shutdown)=1;
|
||||
destroy_op_array(op_array TSRMLS_CC);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Generated by re2c 0.13.5 on Wed Mar 27 23:52:29 2013 */
|
||||
/* Generated by re2c 0.13.5 on Sun Jun 16 14:52:22 2013 */
|
||||
#line 3 "Zend/zend_language_scanner_defs.h"
|
||||
|
||||
enum YYCONDTYPE {
|
||||
|
||||
@@ -35,8 +35,8 @@
|
||||
|
||||
#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do { \
|
||||
long __tmpvar; \
|
||||
__asm__ ("imulq %3,%0\n" \
|
||||
"adcq $0,%1" \
|
||||
__asm__ ("imul %3,%0\n" \
|
||||
"adc $0,%1" \
|
||||
: "=r"(__tmpvar),"=r"(usedval) \
|
||||
: "0"(a), "r"(b), "1"(0)); \
|
||||
if (usedval) (dval) = (double) (a) * (double) (b); \
|
||||
|
||||
@@ -1278,6 +1278,14 @@ ZEND_API zval **zend_std_get_static_property(zend_class_entry *ce, const char *p
|
||||
}
|
||||
}
|
||||
|
||||
if (UNEXPECTED(CE_STATIC_MEMBERS(ce) == NULL) ||
|
||||
UNEXPECTED(CE_STATIC_MEMBERS(ce)[property_info->offset] == NULL)) {
|
||||
if (!silent) {
|
||||
zend_error_noreturn(E_ERROR, "Access to undeclared static property: %s::$%s", ce->name, property_name);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return &CE_STATIC_MEMBERS(ce)[property_info->offset];
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
+2
-1
@@ -162,8 +162,9 @@ static inline void cleanup_user_class_data(zend_class_entry *ce TSRMLS_DC)
|
||||
|
||||
for (i = 0; i < ce->default_static_members_count; i++) {
|
||||
if (ce->static_members_table[i]) {
|
||||
zval_ptr_dtor(&ce->static_members_table[i]);
|
||||
zval *p = ce->static_members_table[i];
|
||||
ce->static_members_table[i] = NULL;
|
||||
zval_ptr_dtor(&p);
|
||||
}
|
||||
}
|
||||
ce->static_members_table = NULL;
|
||||
|
||||
@@ -1475,7 +1475,7 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {
|
||||
/* If both are objects sharing the same comparision handler then use is */
|
||||
if (Z_OBJ_HANDLER_P(op1,compare_objects) == Z_OBJ_HANDLER_P(op2,compare_objects)) {
|
||||
if (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)) {
|
||||
/* object handles are identical, apprently this is the same object */
|
||||
/* object handles are identical, apparently this is the same object */
|
||||
ZVAL_LONG(result, 0);
|
||||
return SUCCESS;
|
||||
}
|
||||
|
||||
+6
-2
@@ -2684,6 +2684,8 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
|
||||
if (!RETURN_VALUE_USED(opline)) {
|
||||
zval_ptr_dtor(&ret->var.ptr);
|
||||
}
|
||||
} else if (RETURN_VALUE_USED(opline)) {
|
||||
EX_T(opline->result.var).var.ptr = NULL;
|
||||
}
|
||||
} else if (fbc->type == ZEND_USER_FUNCTION) {
|
||||
EX(original_return_value) = EG(return_value_ptr_ptr);
|
||||
@@ -3140,7 +3142,9 @@ ZEND_VM_HANDLER(67, ZEND_SEND_REF, VAR|CV, ANY)
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
|
||||
EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
|
||||
!ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
ZEND_VM_DISPATCH_TO_HELPER(zend_send_by_var_helper);
|
||||
}
|
||||
|
||||
@@ -4925,7 +4929,7 @@ ZEND_VM_HANDLER(144, ZEND_ADD_INTERFACE, ANY, CONST)
|
||||
CHECK_EXCEPTION();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
CACHE_PTR(opline->op2.literal->cache_slot, ce);
|
||||
CACHE_PTR(opline->op2.literal->cache_slot, iface);
|
||||
}
|
||||
|
||||
if (UNEXPECTED((iface->ce_flags & ZEND_ACC_INTERFACE) == 0)) {
|
||||
|
||||
@@ -648,6 +648,8 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
|
||||
if (!RETURN_VALUE_USED(opline)) {
|
||||
zval_ptr_dtor(&ret->var.ptr);
|
||||
}
|
||||
} else if (RETURN_VALUE_USED(opline)) {
|
||||
EX_T(opline->result.var).var.ptr = NULL;
|
||||
}
|
||||
} else if (fbc->type == ZEND_USER_FUNCTION) {
|
||||
EX(original_return_value) = EG(return_value_ptr_ptr);
|
||||
@@ -1447,7 +1449,7 @@ static int ZEND_FASTCALL ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HAND
|
||||
CHECK_EXCEPTION();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
CACHE_PTR(opline->op2.literal->cache_slot, ce);
|
||||
CACHE_PTR(opline->op2.literal->cache_slot, iface);
|
||||
}
|
||||
|
||||
if (UNEXPECTED((iface->ce_flags & ZEND_ACC_INTERFACE) == 0)) {
|
||||
@@ -11171,7 +11173,9 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
|
||||
EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
|
||||
!ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
return zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
|
||||
}
|
||||
|
||||
@@ -27123,7 +27127,9 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
if (EX(function_state).function->type == ZEND_INTERNAL_FUNCTION && !ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
if (opline->extended_value == ZEND_DO_FCALL_BY_NAME &&
|
||||
EX(function_state).function->type == ZEND_INTERNAL_FUNCTION &&
|
||||
!ARG_SHOULD_BE_SENT_BY_REF(EX(fbc), opline->op2.opline_num)) {
|
||||
return zend_send_by_var_helper_SPEC_CV(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1832,7 +1832,7 @@ AC_TRY_COMPILE([
|
||||
])
|
||||
|
||||
dnl -------------------------------------------------------------------------
|
||||
dnl Library/function existance and build sanity checks
|
||||
dnl Library/function existence and build sanity checks
|
||||
dnl -------------------------------------------------------------------------
|
||||
|
||||
dnl
|
||||
|
||||
+2
-2
@@ -376,11 +376,11 @@ while [ $# -gt 0 ]; do
|
||||
eval "opt_${opt_OPT}=yes"
|
||||
;;
|
||||
':' )
|
||||
# option with argument (multiple occurances override)
|
||||
# option with argument (multiple occurrences override)
|
||||
eval "opt_${opt_OPT}=\"\$opt_ARG\""
|
||||
;;
|
||||
'+' )
|
||||
# option with argument (multiple occurances append)
|
||||
# option with argument (multiple occurrences append)
|
||||
eval "opt_${opt_OPT}=\"\$opt_${opt_OPT}\${ASC_NL}\$opt_ARG\""
|
||||
;;
|
||||
* )
|
||||
|
||||
+3
-3
@@ -119,8 +119,8 @@ int zend_sprintf(char *buffer, const char *format, ...);
|
||||
|
||||
PHP_MAJOR_VERSION=5
|
||||
PHP_MINOR_VERSION=4
|
||||
PHP_RELEASE_VERSION=15
|
||||
PHP_EXTRA_VERSION="-dev"
|
||||
PHP_RELEASE_VERSION=17
|
||||
PHP_EXTRA_VERSION=""
|
||||
PHP_VERSION="$PHP_MAJOR_VERSION.$PHP_MINOR_VERSION.$PHP_RELEASE_VERSION$PHP_EXTRA_VERSION"
|
||||
PHP_VERSION_ID=`expr [$]PHP_MAJOR_VERSION \* 10000 + [$]PHP_MINOR_VERSION \* 100 + [$]PHP_RELEASE_VERSION`
|
||||
|
||||
@@ -784,7 +784,7 @@ if test "$PHP_GCOV" = "yes"; then
|
||||
AC_MSG_ERROR([ccache must be disabled when --enable-gcov option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
|
||||
fi
|
||||
|
||||
ltp_version_list="1.5 1.6 1.7"
|
||||
ltp_version_list="1.5 1.6 1.7 1.9 1.10"
|
||||
|
||||
AC_CHECK_PROG(LTP, lcov, lcov)
|
||||
AC_CHECK_PROG(LTP_GENHTML, genhtml, genhtml)
|
||||
|
||||
+1
-1
@@ -518,7 +518,7 @@ static PHP_FUNCTION(bzcompress)
|
||||
efree(dest);
|
||||
RETURN_LONG(error);
|
||||
} else {
|
||||
/* Copy the buffer, we have perhaps allocate alot more than we need,
|
||||
/* Copy the buffer, we have perhaps allocate a lot more than we need,
|
||||
so we erealloc() the buffer to the proper size */
|
||||
dest = erealloc(dest, dest_len + 1);
|
||||
dest[dest_len] = 0;
|
||||
|
||||
@@ -7,7 +7,7 @@ Bug #51997 (SEEK_CUR with 0 value, returns a warning)
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$filename = "testfile.bz2";
|
||||
$filename = "bug51997.bz2";
|
||||
$str = "This is a test string.\n";
|
||||
$bz = bzopen($filename, "w");
|
||||
bzwrite($bz, $str);
|
||||
|
||||
@@ -7,7 +7,7 @@ BZ2 with files
|
||||
|
||||
error_reporting(E_ALL);
|
||||
|
||||
$filename = "testfile.bz2";
|
||||
$filename = "with_files.bz2";
|
||||
$str = "This is a test string.\n";
|
||||
$bz = bzopen($filename, "w");
|
||||
bzwrite($bz, $str);
|
||||
|
||||
@@ -272,6 +272,7 @@
|
||||
#define HALAKIM_PER_METONIC_CYCLE (HALAKIM_PER_LUNAR_CYCLE * (12 * 19 + 7))
|
||||
|
||||
#define JEWISH_SDN_OFFSET 347997
|
||||
#define JEWISH_SDN_MAX 324542846L /* 12/13/887605, greater value raises interger overflow */
|
||||
#define NEW_MOON_OF_CREATION 31524
|
||||
|
||||
#define SUNDAY 0
|
||||
@@ -519,7 +520,7 @@ void SdnToJewish(
|
||||
int tishri1After;
|
||||
int yearLength;
|
||||
|
||||
if (sdn <= JEWISH_SDN_OFFSET) {
|
||||
if (sdn <= JEWISH_SDN_OFFSET || sdn > JEWISH_SDN_MAX) {
|
||||
*pYear = 0;
|
||||
*pMonth = 0;
|
||||
*pDay = 0;
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
--TEST--
|
||||
Bug #64895: Integer overflow in SndToJewish
|
||||
--SKIPIF--
|
||||
<?php
|
||||
include 'skipif.inc';
|
||||
if (PHP_INT_SIZE == 4) {
|
||||
die("skip this test is for 64bit platform only");
|
||||
}
|
||||
?>
|
||||
--FILE--
|
||||
<?php
|
||||
$a = array(38245310, 324542846, 324542847, 9223372036854743639);
|
||||
|
||||
foreach ($a as $x) var_dump(jdtojewish($x));
|
||||
--EXPECTF--
|
||||
string(11) "2/22/103759"
|
||||
string(12) "12/13/887605"
|
||||
string(5) "0/0/0"
|
||||
string(5) "0/0/0"
|
||||
@@ -429,7 +429,7 @@ PHP_FUNCTION(com_variant_create_instance)
|
||||
/* If already an array and VT_ARRAY is passed then:
|
||||
- if only VT_ARRAY passed then do not perform a conversion
|
||||
- if VT_ARRAY plus other type passed then perform conversion
|
||||
but will probably fail (origional behavior)
|
||||
but will probably fail (original behavior)
|
||||
*/
|
||||
if ((vt & VT_ARRAY) && (V_VT(&obj->v) & VT_ARRAY)) {
|
||||
long orig_vt = vt;
|
||||
|
||||
@@ -914,7 +914,6 @@ PHP_MINIT_FUNCTION(curl)
|
||||
}
|
||||
|
||||
#ifdef PHP_CURL_URL_WRAPPERS
|
||||
REGISTER_LONG_CONSTANT("CURL_WRAPPERS_ENABLED", 1, CONST_CS | CONST_PERSISTENT);
|
||||
# if HAVE_CURL_VERSION_INFO
|
||||
{
|
||||
curl_version_info_data *info = curl_version_info(CURLVERSION_NOW);
|
||||
@@ -941,8 +940,6 @@ PHP_MINIT_FUNCTION(curl)
|
||||
php_unregister_url_stream_wrapper("ldap");
|
||||
php_register_url_stream_wrapper("ldap", &php_curl_wrapper TSRMLS_CC);
|
||||
# endif
|
||||
#else
|
||||
REGISTER_LONG_CONSTANT("CURL_WRAPPERS_ENABLED", 0, CONST_CS | CONST_PERSISTENT);
|
||||
#endif
|
||||
|
||||
return SUCCESS;
|
||||
|
||||
+469
-441
@@ -221,366 +221,366 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[579] = {
|
||||
{ "Antarctica/Davis" , 0x0179E5 },
|
||||
{ "Antarctica/DumontDUrville" , 0x017A86 },
|
||||
{ "Antarctica/Macquarie" , 0x017B18 },
|
||||
{ "Antarctica/Mawson" , 0x017D92 },
|
||||
{ "Antarctica/McMurdo" , 0x017E0E },
|
||||
{ "Antarctica/Palmer" , 0x018110 },
|
||||
{ "Antarctica/Rothera" , 0x01842C },
|
||||
{ "Antarctica/South_Pole" , 0x0184A2 },
|
||||
{ "Antarctica/Syowa" , 0x0187AA },
|
||||
{ "Antarctica/Vostok" , 0x018818 },
|
||||
{ "Arctic/Longyearbyen" , 0x018889 },
|
||||
{ "Asia/Aden" , 0x018BBB },
|
||||
{ "Asia/Almaty" , 0x018C10 },
|
||||
{ "Asia/Amman" , 0x018D8F },
|
||||
{ "Asia/Anadyr" , 0x019045 },
|
||||
{ "Asia/Aqtau" , 0x01922A },
|
||||
{ "Asia/Aqtobe" , 0x019429 },
|
||||
{ "Asia/Ashgabat" , 0x0195E1 },
|
||||
{ "Asia/Ashkhabad" , 0x0196FE },
|
||||
{ "Asia/Baghdad" , 0x01981B },
|
||||
{ "Asia/Bahrain" , 0x019990 },
|
||||
{ "Asia/Baku" , 0x0199F6 },
|
||||
{ "Asia/Bangkok" , 0x019CDE },
|
||||
{ "Asia/Beirut" , 0x019D33 },
|
||||
{ "Asia/Bishkek" , 0x01A040 },
|
||||
{ "Asia/Brunei" , 0x01A1EC },
|
||||
{ "Asia/Calcutta" , 0x01A24E },
|
||||
{ "Asia/Choibalsan" , 0x01A2C7 },
|
||||
{ "Asia/Chongqing" , 0x01A440 },
|
||||
{ "Asia/Chungking" , 0x01A52F },
|
||||
{ "Asia/Colombo" , 0x01A5DE },
|
||||
{ "Asia/Dacca" , 0x01A67A },
|
||||
{ "Asia/Damascus" , 0x01A720 },
|
||||
{ "Asia/Dhaka" , 0x01AA70 },
|
||||
{ "Asia/Dili" , 0x01AB16 },
|
||||
{ "Asia/Dubai" , 0x01AB9F },
|
||||
{ "Asia/Dushanbe" , 0x01ABF4 },
|
||||
{ "Asia/Gaza" , 0x01ACF7 },
|
||||
{ "Asia/Harbin" , 0x01AF50 },
|
||||
{ "Asia/Hebron" , 0x01B037 },
|
||||
{ "Asia/Ho_Chi_Minh" , 0x01B299 },
|
||||
{ "Asia/Hong_Kong" , 0x01B311 },
|
||||
{ "Asia/Hovd" , 0x01B4D3 },
|
||||
{ "Asia/Irkutsk" , 0x01B64B },
|
||||
{ "Asia/Istanbul" , 0x01B831 },
|
||||
{ "Asia/Jakarta" , 0x01BC1E },
|
||||
{ "Asia/Jayapura" , 0x01BCC8 },
|
||||
{ "Asia/Jerusalem" , 0x01BD64 },
|
||||
{ "Asia/Kabul" , 0x01C093 },
|
||||
{ "Asia/Kamchatka" , 0x01C0E4 },
|
||||
{ "Asia/Karachi" , 0x01C2C0 },
|
||||
{ "Asia/Kashgar" , 0x01C375 },
|
||||
{ "Asia/Kathmandu" , 0x01C446 },
|
||||
{ "Asia/Katmandu" , 0x01C4AC },
|
||||
{ "Asia/Khandyga" , 0x01C512 },
|
||||
{ "Asia/Kolkata" , 0x01C737 },
|
||||
{ "Asia/Krasnoyarsk" , 0x01C7B0 },
|
||||
{ "Asia/Kuala_Lumpur" , 0x01C998 },
|
||||
{ "Asia/Kuching" , 0x01CA55 },
|
||||
{ "Asia/Kuwait" , 0x01CB43 },
|
||||
{ "Asia/Macao" , 0x01CB98 },
|
||||
{ "Asia/Macau" , 0x01CCD3 },
|
||||
{ "Asia/Magadan" , 0x01CE0E },
|
||||
{ "Asia/Makassar" , 0x01CFF0 },
|
||||
{ "Asia/Manila" , 0x01D0B4 },
|
||||
{ "Asia/Muscat" , 0x01D139 },
|
||||
{ "Asia/Nicosia" , 0x01D18E },
|
||||
{ "Asia/Novokuznetsk" , 0x01D476 },
|
||||
{ "Asia/Novosibirsk" , 0x01D678 },
|
||||
{ "Asia/Omsk" , 0x01D863 },
|
||||
{ "Asia/Oral" , 0x01DA4A },
|
||||
{ "Asia/Phnom_Penh" , 0x01DC1A },
|
||||
{ "Asia/Pontianak" , 0x01DC92 },
|
||||
{ "Asia/Pyongyang" , 0x01DD53 },
|
||||
{ "Asia/Qatar" , 0x01DDC0 },
|
||||
{ "Asia/Qyzylorda" , 0x01DE26 },
|
||||
{ "Asia/Rangoon" , 0x01DFFC },
|
||||
{ "Asia/Riyadh" , 0x01E074 },
|
||||
{ "Asia/Saigon" , 0x01E0C9 },
|
||||
{ "Asia/Sakhalin" , 0x01E141 },
|
||||
{ "Asia/Samarkand" , 0x01E338 },
|
||||
{ "Asia/Seoul" , 0x01E46E },
|
||||
{ "Asia/Shanghai" , 0x01E512 },
|
||||
{ "Asia/Singapore" , 0x01E5F2 },
|
||||
{ "Asia/Taipei" , 0x01E6A9 },
|
||||
{ "Asia/Tashkent" , 0x01E7C1 },
|
||||
{ "Asia/Tbilisi" , 0x01E8F2 },
|
||||
{ "Asia/Tehran" , 0x01EAAC },
|
||||
{ "Asia/Tel_Aviv" , 0x01ED1A },
|
||||
{ "Asia/Thimbu" , 0x01F049 },
|
||||
{ "Asia/Thimphu" , 0x01F0AF },
|
||||
{ "Asia/Tokyo" , 0x01F115 },
|
||||
{ "Asia/Ujung_Pandang" , 0x01F19E },
|
||||
{ "Asia/Ulaanbaatar" , 0x01F21A },
|
||||
{ "Asia/Ulan_Bator" , 0x01F375 },
|
||||
{ "Asia/Urumqi" , 0x01F4C2 },
|
||||
{ "Asia/Ust-Nera" , 0x01F589 },
|
||||
{ "Asia/Vientiane" , 0x01F78E },
|
||||
{ "Asia/Vladivostok" , 0x01F806 },
|
||||
{ "Asia/Yakutsk" , 0x01F9F2 },
|
||||
{ "Asia/Yekaterinburg" , 0x01FBD7 },
|
||||
{ "Asia/Yerevan" , 0x01FDE2 },
|
||||
{ "Atlantic/Azores" , 0x01FFE2 },
|
||||
{ "Atlantic/Bermuda" , 0x0204E5 },
|
||||
{ "Atlantic/Canary" , 0x0207C6 },
|
||||
{ "Atlantic/Cape_Verde" , 0x020A9C },
|
||||
{ "Atlantic/Faeroe" , 0x020B15 },
|
||||
{ "Atlantic/Faroe" , 0x020DB9 },
|
||||
{ "Atlantic/Jan_Mayen" , 0x02105D },
|
||||
{ "Atlantic/Madeira" , 0x02138F },
|
||||
{ "Atlantic/Reykjavik" , 0x021898 },
|
||||
{ "Atlantic/South_Georgia" , 0x021A51 },
|
||||
{ "Atlantic/St_Helena" , 0x021C63 },
|
||||
{ "Atlantic/Stanley" , 0x021A95 },
|
||||
{ "Australia/ACT" , 0x021CB8 },
|
||||
{ "Australia/Adelaide" , 0x021FD5 },
|
||||
{ "Australia/Brisbane" , 0x022301 },
|
||||
{ "Australia/Broken_Hill" , 0x0223C8 },
|
||||
{ "Australia/Canberra" , 0x022706 },
|
||||
{ "Australia/Currie" , 0x022A23 },
|
||||
{ "Australia/Darwin" , 0x022D56 },
|
||||
{ "Australia/Eucla" , 0x022DDC },
|
||||
{ "Australia/Hobart" , 0x022EB1 },
|
||||
{ "Australia/LHI" , 0x02320F },
|
||||
{ "Australia/Lindeman" , 0x0234AA },
|
||||
{ "Australia/Lord_Howe" , 0x02358B },
|
||||
{ "Australia/Melbourne" , 0x023836 },
|
||||
{ "Australia/North" , 0x023B5B },
|
||||
{ "Australia/NSW" , 0x023BCF },
|
||||
{ "Australia/Perth" , 0x023EEC },
|
||||
{ "Australia/Queensland" , 0x023FC4 },
|
||||
{ "Australia/South" , 0x024070 },
|
||||
{ "Australia/Sydney" , 0x02438D },
|
||||
{ "Australia/Tasmania" , 0x0246CA },
|
||||
{ "Australia/Victoria" , 0x024A0F },
|
||||
{ "Australia/West" , 0x024D2C },
|
||||
{ "Australia/Yancowinna" , 0x024DE2 },
|
||||
{ "Brazil/Acre" , 0x025104 },
|
||||
{ "Brazil/DeNoronha" , 0x025203 },
|
||||
{ "Brazil/East" , 0x025323 },
|
||||
{ "Brazil/West" , 0x025600 },
|
||||
{ "Canada/Atlantic" , 0x0256F8 },
|
||||
{ "Canada/Central" , 0x025BE0 },
|
||||
{ "Canada/East-Saskatchewan" , 0x0264EA },
|
||||
{ "Canada/Eastern" , 0x025FFA },
|
||||
{ "Canada/Mountain" , 0x026673 },
|
||||
{ "Canada/Newfoundland" , 0x0269E9 },
|
||||
{ "Canada/Pacific" , 0x026F14 },
|
||||
{ "Canada/Saskatchewan" , 0x02732D },
|
||||
{ "Canada/Yukon" , 0x0274B6 },
|
||||
{ "CET" , 0x0277B9 },
|
||||
{ "Chile/Continental" , 0x027AC2 },
|
||||
{ "Chile/EasterIsland" , 0x027E5D },
|
||||
{ "CST6CDT" , 0x02819F },
|
||||
{ "Cuba" , 0x0284F0 },
|
||||
{ "EET" , 0x028863 },
|
||||
{ "Egypt" , 0x028B16 },
|
||||
{ "Eire" , 0x028DD9 },
|
||||
{ "EST" , 0x0292EA },
|
||||
{ "EST5EDT" , 0x02932E },
|
||||
{ "Etc/GMT" , 0x02967F },
|
||||
{ "Etc/GMT+0" , 0x02974B },
|
||||
{ "Etc/GMT+1" , 0x0297D5 },
|
||||
{ "Etc/GMT+10" , 0x029862 },
|
||||
{ "Etc/GMT+11" , 0x0298F0 },
|
||||
{ "Etc/GMT+12" , 0x02997E },
|
||||
{ "Etc/GMT+2" , 0x029A99 },
|
||||
{ "Etc/GMT+3" , 0x029B25 },
|
||||
{ "Etc/GMT+4" , 0x029BB1 },
|
||||
{ "Etc/GMT+5" , 0x029C3D },
|
||||
{ "Etc/GMT+6" , 0x029CC9 },
|
||||
{ "Etc/GMT+7" , 0x029D55 },
|
||||
{ "Etc/GMT+8" , 0x029DE1 },
|
||||
{ "Etc/GMT+9" , 0x029E6D },
|
||||
{ "Etc/GMT-0" , 0x029707 },
|
||||
{ "Etc/GMT-1" , 0x02978F },
|
||||
{ "Etc/GMT-10" , 0x02981B },
|
||||
{ "Etc/GMT-11" , 0x0298A9 },
|
||||
{ "Etc/GMT-12" , 0x029937 },
|
||||
{ "Etc/GMT-13" , 0x0299C5 },
|
||||
{ "Etc/GMT-14" , 0x029A0C },
|
||||
{ "Etc/GMT-2" , 0x029A53 },
|
||||
{ "Etc/GMT-3" , 0x029ADF },
|
||||
{ "Etc/GMT-4" , 0x029B6B },
|
||||
{ "Etc/GMT-5" , 0x029BF7 },
|
||||
{ "Etc/GMT-6" , 0x029C83 },
|
||||
{ "Etc/GMT-7" , 0x029D0F },
|
||||
{ "Etc/GMT-8" , 0x029D9B },
|
||||
{ "Etc/GMT-9" , 0x029E27 },
|
||||
{ "Etc/GMT0" , 0x0296C3 },
|
||||
{ "Etc/Greenwich" , 0x029EB3 },
|
||||
{ "Etc/UCT" , 0x029EF7 },
|
||||
{ "Etc/Universal" , 0x029F3B },
|
||||
{ "Etc/UTC" , 0x029F7F },
|
||||
{ "Etc/Zulu" , 0x029FC3 },
|
||||
{ "Europe/Amsterdam" , 0x02A007 },
|
||||
{ "Europe/Andorra" , 0x02A445 },
|
||||
{ "Europe/Athens" , 0x02A6C1 },
|
||||
{ "Europe/Belfast" , 0x02AA04 },
|
||||
{ "Europe/Belgrade" , 0x02AF3B },
|
||||
{ "Europe/Berlin" , 0x02B204 },
|
||||
{ "Europe/Bratislava" , 0x02B568 },
|
||||
{ "Europe/Brussels" , 0x02B89A },
|
||||
{ "Europe/Bucharest" , 0x02BCD1 },
|
||||
{ "Europe/Budapest" , 0x02BFFB },
|
||||
{ "Europe/Busingen" , 0x02C36E },
|
||||
{ "Europe/Chisinau" , 0x02C625 },
|
||||
{ "Europe/Copenhagen" , 0x02C9B3 },
|
||||
{ "Europe/Dublin" , 0x02CCBD },
|
||||
{ "Europe/Gibraltar" , 0x02D1CE },
|
||||
{ "Europe/Guernsey" , 0x02D625 },
|
||||
{ "Europe/Helsinki" , 0x02DB5C },
|
||||
{ "Europe/Isle_of_Man" , 0x02DE12 },
|
||||
{ "Europe/Istanbul" , 0x02E349 },
|
||||
{ "Europe/Jersey" , 0x02E736 },
|
||||
{ "Europe/Kaliningrad" , 0x02EC6D },
|
||||
{ "Europe/Kiev" , 0x02EED3 },
|
||||
{ "Europe/Lisbon" , 0x02F1EA },
|
||||
{ "Europe/Ljubljana" , 0x02F6EE },
|
||||
{ "Europe/London" , 0x02F9B7 },
|
||||
{ "Europe/Luxembourg" , 0x02FEEE },
|
||||
{ "Europe/Madrid" , 0x030344 },
|
||||
{ "Europe/Malta" , 0x03070A },
|
||||
{ "Europe/Mariehamn" , 0x030AC3 },
|
||||
{ "Europe/Minsk" , 0x030D79 },
|
||||
{ "Europe/Monaco" , 0x030F87 },
|
||||
{ "Europe/Moscow" , 0x0313C2 },
|
||||
{ "Europe/Nicosia" , 0x031613 },
|
||||
{ "Europe/Oslo" , 0x0318FB },
|
||||
{ "Europe/Paris" , 0x031C2D },
|
||||
{ "Europe/Podgorica" , 0x032073 },
|
||||
{ "Europe/Prague" , 0x03233C },
|
||||
{ "Europe/Riga" , 0x03266E },
|
||||
{ "Europe/Rome" , 0x0329B3 },
|
||||
{ "Europe/Samara" , 0x032D76 },
|
||||
{ "Europe/San_Marino" , 0x032FA9 },
|
||||
{ "Europe/Sarajevo" , 0x03336C },
|
||||
{ "Europe/Simferopol" , 0x033635 },
|
||||
{ "Europe/Skopje" , 0x033960 },
|
||||
{ "Europe/Sofia" , 0x033C29 },
|
||||
{ "Europe/Stockholm" , 0x033F31 },
|
||||
{ "Europe/Tallinn" , 0x0341E0 },
|
||||
{ "Europe/Tirane" , 0x03451A },
|
||||
{ "Europe/Tiraspol" , 0x034820 },
|
||||
{ "Europe/Uzhgorod" , 0x034BAE },
|
||||
{ "Europe/Vaduz" , 0x034EC5 },
|
||||
{ "Europe/Vatican" , 0x035158 },
|
||||
{ "Europe/Vienna" , 0x03551B },
|
||||
{ "Europe/Vilnius" , 0x035848 },
|
||||
{ "Europe/Volgograd" , 0x035B87 },
|
||||
{ "Europe/Warsaw" , 0x035D87 },
|
||||
{ "Europe/Zagreb" , 0x036168 },
|
||||
{ "Europe/Zaporozhye" , 0x036431 },
|
||||
{ "Europe/Zurich" , 0x036772 },
|
||||
{ "Factory" , 0x036A21 },
|
||||
{ "GB" , 0x036A92 },
|
||||
{ "GB-Eire" , 0x036FC9 },
|
||||
{ "GMT" , 0x037500 },
|
||||
{ "GMT+0" , 0x0375CC },
|
||||
{ "GMT-0" , 0x037588 },
|
||||
{ "GMT0" , 0x037544 },
|
||||
{ "Greenwich" , 0x037610 },
|
||||
{ "Hongkong" , 0x037654 },
|
||||
{ "HST" , 0x037816 },
|
||||
{ "Iceland" , 0x03785A },
|
||||
{ "Indian/Antananarivo" , 0x037A13 },
|
||||
{ "Indian/Chagos" , 0x037A87 },
|
||||
{ "Indian/Christmas" , 0x037AE9 },
|
||||
{ "Indian/Cocos" , 0x037B2D },
|
||||
{ "Indian/Comoro" , 0x037B71 },
|
||||
{ "Indian/Kerguelen" , 0x037BC6 },
|
||||
{ "Indian/Mahe" , 0x037C1B },
|
||||
{ "Indian/Maldives" , 0x037C70 },
|
||||
{ "Indian/Mauritius" , 0x037CC5 },
|
||||
{ "Indian/Mayotte" , 0x037D3B },
|
||||
{ "Indian/Reunion" , 0x037D90 },
|
||||
{ "Iran" , 0x037DE5 },
|
||||
{ "Israel" , 0x038053 },
|
||||
{ "Jamaica" , 0x038382 },
|
||||
{ "Japan" , 0x038447 },
|
||||
{ "Kwajalein" , 0x0384D0 },
|
||||
{ "Libya" , 0x038533 },
|
||||
{ "MET" , 0x03872C },
|
||||
{ "Mexico/BajaNorte" , 0x038A35 },
|
||||
{ "Mexico/BajaSur" , 0x038D9E },
|
||||
{ "Mexico/General" , 0x038FE3 },
|
||||
{ "MST" , 0x039241 },
|
||||
{ "MST7MDT" , 0x039285 },
|
||||
{ "Navajo" , 0x0395D6 },
|
||||
{ "NZ" , 0x03994F },
|
||||
{ "NZ-CHAT" , 0x039CCD },
|
||||
{ "Pacific/Apia" , 0x039FB5 },
|
||||
{ "Pacific/Auckland" , 0x03A151 },
|
||||
{ "Pacific/Chatham" , 0x03A4DD },
|
||||
{ "Pacific/Chuuk" , 0x03A7D4 },
|
||||
{ "Pacific/Easter" , 0x03A82D },
|
||||
{ "Pacific/Efate" , 0x03AB8B },
|
||||
{ "Pacific/Enderbury" , 0x03AC51 },
|
||||
{ "Pacific/Fakaofo" , 0x03ACBF },
|
||||
{ "Pacific/Fiji" , 0x03AD10 },
|
||||
{ "Pacific/Funafuti" , 0x03AEA3 },
|
||||
{ "Pacific/Galapagos" , 0x03AEE7 },
|
||||
{ "Pacific/Gambier" , 0x03AF5F },
|
||||
{ "Pacific/Guadalcanal" , 0x03AFC4 },
|
||||
{ "Pacific/Guam" , 0x03B019 },
|
||||
{ "Pacific/Honolulu" , 0x03B06F },
|
||||
{ "Pacific/Johnston" , 0x03B0E6 },
|
||||
{ "Pacific/Kiritimati" , 0x03B138 },
|
||||
{ "Pacific/Kosrae" , 0x03B1A3 },
|
||||
{ "Pacific/Kwajalein" , 0x03B200 },
|
||||
{ "Pacific/Majuro" , 0x03B26C },
|
||||
{ "Pacific/Marquesas" , 0x03B2CB },
|
||||
{ "Pacific/Midway" , 0x03B332 },
|
||||
{ "Pacific/Nauru" , 0x03B3BC },
|
||||
{ "Pacific/Niue" , 0x03B434 },
|
||||
{ "Pacific/Norfolk" , 0x03B492 },
|
||||
{ "Pacific/Noumea" , 0x03B4E7 },
|
||||
{ "Pacific/Pago_Pago" , 0x03B577 },
|
||||
{ "Pacific/Palau" , 0x03B600 },
|
||||
{ "Pacific/Pitcairn" , 0x03B644 },
|
||||
{ "Pacific/Pohnpei" , 0x03B699 },
|
||||
{ "Pacific/Ponape" , 0x03B6EE },
|
||||
{ "Pacific/Port_Moresby" , 0x03B733 },
|
||||
{ "Pacific/Rarotonga" , 0x03B777 },
|
||||
{ "Pacific/Saipan" , 0x03B853 },
|
||||
{ "Pacific/Samoa" , 0x03B8B6 },
|
||||
{ "Pacific/Tahiti" , 0x03B93F },
|
||||
{ "Pacific/Tarawa" , 0x03B9A4 },
|
||||
{ "Pacific/Tongatapu" , 0x03B9F8 },
|
||||
{ "Pacific/Truk" , 0x03BA84 },
|
||||
{ "Pacific/Wake" , 0x03BAC9 },
|
||||
{ "Pacific/Wallis" , 0x03BB19 },
|
||||
{ "Pacific/Yap" , 0x03BB5D },
|
||||
{ "Poland" , 0x03BBA2 },
|
||||
{ "Portugal" , 0x03BF83 },
|
||||
{ "PRC" , 0x03C47F },
|
||||
{ "PST8PDT" , 0x03C530 },
|
||||
{ "ROC" , 0x03C881 },
|
||||
{ "ROK" , 0x03C999 },
|
||||
{ "Singapore" , 0x03CA3D },
|
||||
{ "Turkey" , 0x03CAF4 },
|
||||
{ "UCT" , 0x03CEE1 },
|
||||
{ "Universal" , 0x03CF25 },
|
||||
{ "US/Alaska" , 0x03CF69 },
|
||||
{ "US/Aleutian" , 0x03D2D2 },
|
||||
{ "US/Arizona" , 0x03D638 },
|
||||
{ "US/Central" , 0x03D6C6 },
|
||||
{ "US/East-Indiana" , 0x03E0D0 },
|
||||
{ "US/Eastern" , 0x03DBD1 },
|
||||
{ "US/Hawaii" , 0x03E33A },
|
||||
{ "US/Indiana-Starke" , 0x03E3AB },
|
||||
{ "US/Michigan" , 0x03E71C },
|
||||
{ "US/Mountain" , 0x03EA53 },
|
||||
{ "US/Pacific" , 0x03EDCC },
|
||||
{ "US/Pacific-New" , 0x03F1D1 },
|
||||
{ "US/Samoa" , 0x03F5D6 },
|
||||
{ "UTC" , 0x03F65F },
|
||||
{ "W-SU" , 0x03F956 },
|
||||
{ "WET" , 0x03F6A3 },
|
||||
{ "Zulu" , 0x03FB90 },
|
||||
{ "Antarctica/Mawson" , 0x017D5F },
|
||||
{ "Antarctica/McMurdo" , 0x017DDB },
|
||||
{ "Antarctica/Palmer" , 0x0180DD },
|
||||
{ "Antarctica/Rothera" , 0x0183F9 },
|
||||
{ "Antarctica/South_Pole" , 0x01846F },
|
||||
{ "Antarctica/Syowa" , 0x018777 },
|
||||
{ "Antarctica/Vostok" , 0x0187E5 },
|
||||
{ "Arctic/Longyearbyen" , 0x018856 },
|
||||
{ "Asia/Aden" , 0x018B88 },
|
||||
{ "Asia/Almaty" , 0x018BDD },
|
||||
{ "Asia/Amman" , 0x018D5C },
|
||||
{ "Asia/Anadyr" , 0x019012 },
|
||||
{ "Asia/Aqtau" , 0x0191F7 },
|
||||
{ "Asia/Aqtobe" , 0x0193F6 },
|
||||
{ "Asia/Ashgabat" , 0x0195AE },
|
||||
{ "Asia/Ashkhabad" , 0x0196CB },
|
||||
{ "Asia/Baghdad" , 0x0197E8 },
|
||||
{ "Asia/Bahrain" , 0x01995D },
|
||||
{ "Asia/Baku" , 0x0199C3 },
|
||||
{ "Asia/Bangkok" , 0x019CAB },
|
||||
{ "Asia/Beirut" , 0x019D00 },
|
||||
{ "Asia/Bishkek" , 0x01A00D },
|
||||
{ "Asia/Brunei" , 0x01A1B9 },
|
||||
{ "Asia/Calcutta" , 0x01A21B },
|
||||
{ "Asia/Choibalsan" , 0x01A294 },
|
||||
{ "Asia/Chongqing" , 0x01A40D },
|
||||
{ "Asia/Chungking" , 0x01A4FC },
|
||||
{ "Asia/Colombo" , 0x01A5AB },
|
||||
{ "Asia/Dacca" , 0x01A647 },
|
||||
{ "Asia/Damascus" , 0x01A6ED },
|
||||
{ "Asia/Dhaka" , 0x01AA3D },
|
||||
{ "Asia/Dili" , 0x01AAE3 },
|
||||
{ "Asia/Dubai" , 0x01AB6C },
|
||||
{ "Asia/Dushanbe" , 0x01ABC1 },
|
||||
{ "Asia/Gaza" , 0x01ACC4 },
|
||||
{ "Asia/Harbin" , 0x01B017 },
|
||||
{ "Asia/Hebron" , 0x01B0FE },
|
||||
{ "Asia/Ho_Chi_Minh" , 0x01B45A },
|
||||
{ "Asia/Hong_Kong" , 0x01B4D2 },
|
||||
{ "Asia/Hovd" , 0x01B694 },
|
||||
{ "Asia/Irkutsk" , 0x01B80C },
|
||||
{ "Asia/Istanbul" , 0x01B9F2 },
|
||||
{ "Asia/Jakarta" , 0x01BDDF },
|
||||
{ "Asia/Jayapura" , 0x01BE89 },
|
||||
{ "Asia/Jerusalem" , 0x01BF25 },
|
||||
{ "Asia/Kabul" , 0x01C254 },
|
||||
{ "Asia/Kamchatka" , 0x01C2A5 },
|
||||
{ "Asia/Karachi" , 0x01C481 },
|
||||
{ "Asia/Kashgar" , 0x01C536 },
|
||||
{ "Asia/Kathmandu" , 0x01C607 },
|
||||
{ "Asia/Katmandu" , 0x01C66D },
|
||||
{ "Asia/Khandyga" , 0x01C6D3 },
|
||||
{ "Asia/Kolkata" , 0x01C8F8 },
|
||||
{ "Asia/Krasnoyarsk" , 0x01C971 },
|
||||
{ "Asia/Kuala_Lumpur" , 0x01CB59 },
|
||||
{ "Asia/Kuching" , 0x01CC16 },
|
||||
{ "Asia/Kuwait" , 0x01CD04 },
|
||||
{ "Asia/Macao" , 0x01CD59 },
|
||||
{ "Asia/Macau" , 0x01CE94 },
|
||||
{ "Asia/Magadan" , 0x01CFCF },
|
||||
{ "Asia/Makassar" , 0x01D1B1 },
|
||||
{ "Asia/Manila" , 0x01D275 },
|
||||
{ "Asia/Muscat" , 0x01D2FA },
|
||||
{ "Asia/Nicosia" , 0x01D34F },
|
||||
{ "Asia/Novokuznetsk" , 0x01D637 },
|
||||
{ "Asia/Novosibirsk" , 0x01D839 },
|
||||
{ "Asia/Omsk" , 0x01DA24 },
|
||||
{ "Asia/Oral" , 0x01DC0B },
|
||||
{ "Asia/Phnom_Penh" , 0x01DDDB },
|
||||
{ "Asia/Pontianak" , 0x01DE53 },
|
||||
{ "Asia/Pyongyang" , 0x01DF14 },
|
||||
{ "Asia/Qatar" , 0x01DF81 },
|
||||
{ "Asia/Qyzylorda" , 0x01DFE7 },
|
||||
{ "Asia/Rangoon" , 0x01E1BD },
|
||||
{ "Asia/Riyadh" , 0x01E235 },
|
||||
{ "Asia/Saigon" , 0x01E28A },
|
||||
{ "Asia/Sakhalin" , 0x01E302 },
|
||||
{ "Asia/Samarkand" , 0x01E4F9 },
|
||||
{ "Asia/Seoul" , 0x01E62F },
|
||||
{ "Asia/Shanghai" , 0x01E6D3 },
|
||||
{ "Asia/Singapore" , 0x01E7B3 },
|
||||
{ "Asia/Taipei" , 0x01E86A },
|
||||
{ "Asia/Tashkent" , 0x01E982 },
|
||||
{ "Asia/Tbilisi" , 0x01EAB3 },
|
||||
{ "Asia/Tehran" , 0x01EC6D },
|
||||
{ "Asia/Tel_Aviv" , 0x01EEDB },
|
||||
{ "Asia/Thimbu" , 0x01F20A },
|
||||
{ "Asia/Thimphu" , 0x01F270 },
|
||||
{ "Asia/Tokyo" , 0x01F2D6 },
|
||||
{ "Asia/Ujung_Pandang" , 0x01F35F },
|
||||
{ "Asia/Ulaanbaatar" , 0x01F3DB },
|
||||
{ "Asia/Ulan_Bator" , 0x01F536 },
|
||||
{ "Asia/Urumqi" , 0x01F683 },
|
||||
{ "Asia/Ust-Nera" , 0x01F74A },
|
||||
{ "Asia/Vientiane" , 0x01F94F },
|
||||
{ "Asia/Vladivostok" , 0x01F9C7 },
|
||||
{ "Asia/Yakutsk" , 0x01FBB3 },
|
||||
{ "Asia/Yekaterinburg" , 0x01FD98 },
|
||||
{ "Asia/Yerevan" , 0x01FFA3 },
|
||||
{ "Atlantic/Azores" , 0x0201A3 },
|
||||
{ "Atlantic/Bermuda" , 0x0206A6 },
|
||||
{ "Atlantic/Canary" , 0x020987 },
|
||||
{ "Atlantic/Cape_Verde" , 0x020C5D },
|
||||
{ "Atlantic/Faeroe" , 0x020CD6 },
|
||||
{ "Atlantic/Faroe" , 0x020F7A },
|
||||
{ "Atlantic/Jan_Mayen" , 0x02121E },
|
||||
{ "Atlantic/Madeira" , 0x021550 },
|
||||
{ "Atlantic/Reykjavik" , 0x021A59 },
|
||||
{ "Atlantic/South_Georgia" , 0x021C12 },
|
||||
{ "Atlantic/St_Helena" , 0x021E24 },
|
||||
{ "Atlantic/Stanley" , 0x021C56 },
|
||||
{ "Australia/ACT" , 0x021E79 },
|
||||
{ "Australia/Adelaide" , 0x022196 },
|
||||
{ "Australia/Brisbane" , 0x0224C2 },
|
||||
{ "Australia/Broken_Hill" , 0x022589 },
|
||||
{ "Australia/Canberra" , 0x0228C7 },
|
||||
{ "Australia/Currie" , 0x022BE4 },
|
||||
{ "Australia/Darwin" , 0x022F17 },
|
||||
{ "Australia/Eucla" , 0x022F9D },
|
||||
{ "Australia/Hobart" , 0x023072 },
|
||||
{ "Australia/LHI" , 0x0233D0 },
|
||||
{ "Australia/Lindeman" , 0x02366B },
|
||||
{ "Australia/Lord_Howe" , 0x02374C },
|
||||
{ "Australia/Melbourne" , 0x0239F7 },
|
||||
{ "Australia/North" , 0x023D1C },
|
||||
{ "Australia/NSW" , 0x023D90 },
|
||||
{ "Australia/Perth" , 0x0240AD },
|
||||
{ "Australia/Queensland" , 0x024185 },
|
||||
{ "Australia/South" , 0x024231 },
|
||||
{ "Australia/Sydney" , 0x02454E },
|
||||
{ "Australia/Tasmania" , 0x02488B },
|
||||
{ "Australia/Victoria" , 0x024BD0 },
|
||||
{ "Australia/West" , 0x024EED },
|
||||
{ "Australia/Yancowinna" , 0x024FA3 },
|
||||
{ "Brazil/Acre" , 0x0252C5 },
|
||||
{ "Brazil/DeNoronha" , 0x0253C4 },
|
||||
{ "Brazil/East" , 0x0254E4 },
|
||||
{ "Brazil/West" , 0x0257C1 },
|
||||
{ "Canada/Atlantic" , 0x0258B9 },
|
||||
{ "Canada/Central" , 0x025DA1 },
|
||||
{ "Canada/East-Saskatchewan" , 0x0266AB },
|
||||
{ "Canada/Eastern" , 0x0261BB },
|
||||
{ "Canada/Mountain" , 0x026834 },
|
||||
{ "Canada/Newfoundland" , 0x026BAA },
|
||||
{ "Canada/Pacific" , 0x0270D5 },
|
||||
{ "Canada/Saskatchewan" , 0x0274EE },
|
||||
{ "Canada/Yukon" , 0x027677 },
|
||||
{ "CET" , 0x02797A },
|
||||
{ "Chile/Continental" , 0x027C83 },
|
||||
{ "Chile/EasterIsland" , 0x02801E },
|
||||
{ "CST6CDT" , 0x028360 },
|
||||
{ "Cuba" , 0x0286B1 },
|
||||
{ "EET" , 0x028A24 },
|
||||
{ "Egypt" , 0x028CD7 },
|
||||
{ "Eire" , 0x028F9A },
|
||||
{ "EST" , 0x0294AB },
|
||||
{ "EST5EDT" , 0x0294EF },
|
||||
{ "Etc/GMT" , 0x029840 },
|
||||
{ "Etc/GMT+0" , 0x02990C },
|
||||
{ "Etc/GMT+1" , 0x029996 },
|
||||
{ "Etc/GMT+10" , 0x029A23 },
|
||||
{ "Etc/GMT+11" , 0x029AB1 },
|
||||
{ "Etc/GMT+12" , 0x029B3F },
|
||||
{ "Etc/GMT+2" , 0x029C5A },
|
||||
{ "Etc/GMT+3" , 0x029CE6 },
|
||||
{ "Etc/GMT+4" , 0x029D72 },
|
||||
{ "Etc/GMT+5" , 0x029DFE },
|
||||
{ "Etc/GMT+6" , 0x029E8A },
|
||||
{ "Etc/GMT+7" , 0x029F16 },
|
||||
{ "Etc/GMT+8" , 0x029FA2 },
|
||||
{ "Etc/GMT+9" , 0x02A02E },
|
||||
{ "Etc/GMT-0" , 0x0298C8 },
|
||||
{ "Etc/GMT-1" , 0x029950 },
|
||||
{ "Etc/GMT-10" , 0x0299DC },
|
||||
{ "Etc/GMT-11" , 0x029A6A },
|
||||
{ "Etc/GMT-12" , 0x029AF8 },
|
||||
{ "Etc/GMT-13" , 0x029B86 },
|
||||
{ "Etc/GMT-14" , 0x029BCD },
|
||||
{ "Etc/GMT-2" , 0x029C14 },
|
||||
{ "Etc/GMT-3" , 0x029CA0 },
|
||||
{ "Etc/GMT-4" , 0x029D2C },
|
||||
{ "Etc/GMT-5" , 0x029DB8 },
|
||||
{ "Etc/GMT-6" , 0x029E44 },
|
||||
{ "Etc/GMT-7" , 0x029ED0 },
|
||||
{ "Etc/GMT-8" , 0x029F5C },
|
||||
{ "Etc/GMT-9" , 0x029FE8 },
|
||||
{ "Etc/GMT0" , 0x029884 },
|
||||
{ "Etc/Greenwich" , 0x02A074 },
|
||||
{ "Etc/UCT" , 0x02A0B8 },
|
||||
{ "Etc/Universal" , 0x02A0FC },
|
||||
{ "Etc/UTC" , 0x02A140 },
|
||||
{ "Etc/Zulu" , 0x02A184 },
|
||||
{ "Europe/Amsterdam" , 0x02A1C8 },
|
||||
{ "Europe/Andorra" , 0x02A606 },
|
||||
{ "Europe/Athens" , 0x02A882 },
|
||||
{ "Europe/Belfast" , 0x02ABC5 },
|
||||
{ "Europe/Belgrade" , 0x02B0FC },
|
||||
{ "Europe/Berlin" , 0x02B3C5 },
|
||||
{ "Europe/Bratislava" , 0x02B729 },
|
||||
{ "Europe/Brussels" , 0x02BA5B },
|
||||
{ "Europe/Bucharest" , 0x02BE92 },
|
||||
{ "Europe/Budapest" , 0x02C1BC },
|
||||
{ "Europe/Busingen" , 0x02C52F },
|
||||
{ "Europe/Chisinau" , 0x02C7E6 },
|
||||
{ "Europe/Copenhagen" , 0x02CB74 },
|
||||
{ "Europe/Dublin" , 0x02CE7E },
|
||||
{ "Europe/Gibraltar" , 0x02D38F },
|
||||
{ "Europe/Guernsey" , 0x02D7E6 },
|
||||
{ "Europe/Helsinki" , 0x02DD1D },
|
||||
{ "Europe/Isle_of_Man" , 0x02DFD3 },
|
||||
{ "Europe/Istanbul" , 0x02E50A },
|
||||
{ "Europe/Jersey" , 0x02E8F7 },
|
||||
{ "Europe/Kaliningrad" , 0x02EE2E },
|
||||
{ "Europe/Kiev" , 0x02F094 },
|
||||
{ "Europe/Lisbon" , 0x02F3AB },
|
||||
{ "Europe/Ljubljana" , 0x02F8AF },
|
||||
{ "Europe/London" , 0x02FB78 },
|
||||
{ "Europe/Luxembourg" , 0x0300AF },
|
||||
{ "Europe/Madrid" , 0x030505 },
|
||||
{ "Europe/Malta" , 0x0308CB },
|
||||
{ "Europe/Mariehamn" , 0x030C84 },
|
||||
{ "Europe/Minsk" , 0x030F3A },
|
||||
{ "Europe/Monaco" , 0x031148 },
|
||||
{ "Europe/Moscow" , 0x031583 },
|
||||
{ "Europe/Nicosia" , 0x0317D4 },
|
||||
{ "Europe/Oslo" , 0x031ABC },
|
||||
{ "Europe/Paris" , 0x031DEE },
|
||||
{ "Europe/Podgorica" , 0x032234 },
|
||||
{ "Europe/Prague" , 0x0324FD },
|
||||
{ "Europe/Riga" , 0x03282F },
|
||||
{ "Europe/Rome" , 0x032B74 },
|
||||
{ "Europe/Samara" , 0x032F37 },
|
||||
{ "Europe/San_Marino" , 0x03316A },
|
||||
{ "Europe/Sarajevo" , 0x03352D },
|
||||
{ "Europe/Simferopol" , 0x0337F6 },
|
||||
{ "Europe/Skopje" , 0x033B21 },
|
||||
{ "Europe/Sofia" , 0x033DEA },
|
||||
{ "Europe/Stockholm" , 0x0340F2 },
|
||||
{ "Europe/Tallinn" , 0x0343A1 },
|
||||
{ "Europe/Tirane" , 0x0346DB },
|
||||
{ "Europe/Tiraspol" , 0x0349E1 },
|
||||
{ "Europe/Uzhgorod" , 0x034D6F },
|
||||
{ "Europe/Vaduz" , 0x035086 },
|
||||
{ "Europe/Vatican" , 0x035319 },
|
||||
{ "Europe/Vienna" , 0x0356DC },
|
||||
{ "Europe/Vilnius" , 0x035A09 },
|
||||
{ "Europe/Volgograd" , 0x035D48 },
|
||||
{ "Europe/Warsaw" , 0x035F48 },
|
||||
{ "Europe/Zagreb" , 0x036329 },
|
||||
{ "Europe/Zaporozhye" , 0x0365F2 },
|
||||
{ "Europe/Zurich" , 0x036933 },
|
||||
{ "Factory" , 0x036BE2 },
|
||||
{ "GB" , 0x036C53 },
|
||||
{ "GB-Eire" , 0x03718A },
|
||||
{ "GMT" , 0x0376C1 },
|
||||
{ "GMT+0" , 0x03778D },
|
||||
{ "GMT-0" , 0x037749 },
|
||||
{ "GMT0" , 0x037705 },
|
||||
{ "Greenwich" , 0x0377D1 },
|
||||
{ "Hongkong" , 0x037815 },
|
||||
{ "HST" , 0x0379D7 },
|
||||
{ "Iceland" , 0x037A1B },
|
||||
{ "Indian/Antananarivo" , 0x037BD4 },
|
||||
{ "Indian/Chagos" , 0x037C48 },
|
||||
{ "Indian/Christmas" , 0x037CAA },
|
||||
{ "Indian/Cocos" , 0x037CEE },
|
||||
{ "Indian/Comoro" , 0x037D32 },
|
||||
{ "Indian/Kerguelen" , 0x037D87 },
|
||||
{ "Indian/Mahe" , 0x037DDC },
|
||||
{ "Indian/Maldives" , 0x037E31 },
|
||||
{ "Indian/Mauritius" , 0x037E86 },
|
||||
{ "Indian/Mayotte" , 0x037EFC },
|
||||
{ "Indian/Reunion" , 0x037F51 },
|
||||
{ "Iran" , 0x037FA6 },
|
||||
{ "Israel" , 0x038214 },
|
||||
{ "Jamaica" , 0x038543 },
|
||||
{ "Japan" , 0x038608 },
|
||||
{ "Kwajalein" , 0x038691 },
|
||||
{ "Libya" , 0x0386F4 },
|
||||
{ "MET" , 0x0388ED },
|
||||
{ "Mexico/BajaNorte" , 0x038BF6 },
|
||||
{ "Mexico/BajaSur" , 0x038F5F },
|
||||
{ "Mexico/General" , 0x0391A4 },
|
||||
{ "MST" , 0x039402 },
|
||||
{ "MST7MDT" , 0x039446 },
|
||||
{ "Navajo" , 0x039797 },
|
||||
{ "NZ" , 0x039B10 },
|
||||
{ "NZ-CHAT" , 0x039E8E },
|
||||
{ "Pacific/Apia" , 0x03A176 },
|
||||
{ "Pacific/Auckland" , 0x03A312 },
|
||||
{ "Pacific/Chatham" , 0x03A69E },
|
||||
{ "Pacific/Chuuk" , 0x03A995 },
|
||||
{ "Pacific/Easter" , 0x03A9EE },
|
||||
{ "Pacific/Efate" , 0x03AD4C },
|
||||
{ "Pacific/Enderbury" , 0x03AE12 },
|
||||
{ "Pacific/Fakaofo" , 0x03AE80 },
|
||||
{ "Pacific/Fiji" , 0x03AED1 },
|
||||
{ "Pacific/Funafuti" , 0x03B064 },
|
||||
{ "Pacific/Galapagos" , 0x03B0A8 },
|
||||
{ "Pacific/Gambier" , 0x03B120 },
|
||||
{ "Pacific/Guadalcanal" , 0x03B185 },
|
||||
{ "Pacific/Guam" , 0x03B1DA },
|
||||
{ "Pacific/Honolulu" , 0x03B230 },
|
||||
{ "Pacific/Johnston" , 0x03B2A7 },
|
||||
{ "Pacific/Kiritimati" , 0x03B2F9 },
|
||||
{ "Pacific/Kosrae" , 0x03B364 },
|
||||
{ "Pacific/Kwajalein" , 0x03B3C1 },
|
||||
{ "Pacific/Majuro" , 0x03B42D },
|
||||
{ "Pacific/Marquesas" , 0x03B48C },
|
||||
{ "Pacific/Midway" , 0x03B4F3 },
|
||||
{ "Pacific/Nauru" , 0x03B57D },
|
||||
{ "Pacific/Niue" , 0x03B5F5 },
|
||||
{ "Pacific/Norfolk" , 0x03B653 },
|
||||
{ "Pacific/Noumea" , 0x03B6A8 },
|
||||
{ "Pacific/Pago_Pago" , 0x03B738 },
|
||||
{ "Pacific/Palau" , 0x03B7C1 },
|
||||
{ "Pacific/Pitcairn" , 0x03B805 },
|
||||
{ "Pacific/Pohnpei" , 0x03B85A },
|
||||
{ "Pacific/Ponape" , 0x03B8AF },
|
||||
{ "Pacific/Port_Moresby" , 0x03B8F4 },
|
||||
{ "Pacific/Rarotonga" , 0x03B938 },
|
||||
{ "Pacific/Saipan" , 0x03BA14 },
|
||||
{ "Pacific/Samoa" , 0x03BA77 },
|
||||
{ "Pacific/Tahiti" , 0x03BB00 },
|
||||
{ "Pacific/Tarawa" , 0x03BB65 },
|
||||
{ "Pacific/Tongatapu" , 0x03BBB9 },
|
||||
{ "Pacific/Truk" , 0x03BC45 },
|
||||
{ "Pacific/Wake" , 0x03BC8A },
|
||||
{ "Pacific/Wallis" , 0x03BCDA },
|
||||
{ "Pacific/Yap" , 0x03BD1E },
|
||||
{ "Poland" , 0x03BD63 },
|
||||
{ "Portugal" , 0x03C144 },
|
||||
{ "PRC" , 0x03C640 },
|
||||
{ "PST8PDT" , 0x03C6F1 },
|
||||
{ "ROC" , 0x03CA42 },
|
||||
{ "ROK" , 0x03CB5A },
|
||||
{ "Singapore" , 0x03CBFE },
|
||||
{ "Turkey" , 0x03CCB5 },
|
||||
{ "UCT" , 0x03D0A2 },
|
||||
{ "Universal" , 0x03D0E6 },
|
||||
{ "US/Alaska" , 0x03D12A },
|
||||
{ "US/Aleutian" , 0x03D493 },
|
||||
{ "US/Arizona" , 0x03D7F9 },
|
||||
{ "US/Central" , 0x03D887 },
|
||||
{ "US/East-Indiana" , 0x03E291 },
|
||||
{ "US/Eastern" , 0x03DD92 },
|
||||
{ "US/Hawaii" , 0x03E4FB },
|
||||
{ "US/Indiana-Starke" , 0x03E56C },
|
||||
{ "US/Michigan" , 0x03E8DD },
|
||||
{ "US/Mountain" , 0x03EC14 },
|
||||
{ "US/Pacific" , 0x03EF8D },
|
||||
{ "US/Pacific-New" , 0x03F392 },
|
||||
{ "US/Samoa" , 0x03F797 },
|
||||
{ "UTC" , 0x03F820 },
|
||||
{ "W-SU" , 0x03FB17 },
|
||||
{ "WET" , 0x03F864 },
|
||||
{ "Zulu" , 0x03FD51 },
|
||||
};
|
||||
/* This is a generated file, do not modify */
|
||||
const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
const unsigned char timelib_timezone_db_data_builtin[261525] = {
|
||||
|
||||
|
||||
/* Africa/Abidjan */
|
||||
@@ -1868,19 +1868,19 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
0x45, 0x31, 0xB2, 0x40, 0x45, 0xF3, 0x70, 0xB0, 0x47, 0x1A, 0xCE, 0xC0, 0x47, 0xD3, 0x52, 0xB0,
|
||||
0x48, 0xFA, 0xB0, 0xC0, 0x49, 0xB3, 0x34, 0xB0, 0x4A, 0xDA, 0x92, 0xC0, 0x4B, 0xC1, 0x3B, 0x30,
|
||||
0x4C, 0xA7, 0xFF, 0xC0, 0x4D, 0xA1, 0x1D, 0x30, 0x4E, 0x87, 0xE1, 0xC0, 0x4F, 0x80, 0xFF, 0x30,
|
||||
0x50, 0x70, 0xFE, 0x40, 0x51, 0x4E, 0x6C, 0x30, 0x52, 0x50, 0xE0, 0x40, 0x53, 0x49, 0xFD, 0xB0,
|
||||
0x54, 0x30, 0xC2, 0x40, 0x55, 0x29, 0xDF, 0xB0, 0x56, 0x10, 0xA4, 0x40, 0x57, 0x09, 0xC1, 0xB0,
|
||||
0x57, 0xF0, 0x86, 0x40, 0x58, 0xE9, 0xA3, 0xB0, 0x59, 0xD0, 0x68, 0x40, 0x5A, 0xC9, 0x85, 0xB0,
|
||||
0x5B, 0xB9, 0x84, 0xC0, 0x5C, 0xB2, 0xA2, 0x30, 0x5D, 0x99, 0x66, 0xC0, 0x5E, 0x92, 0x84, 0x30,
|
||||
0x5F, 0x79, 0x48, 0xC0, 0x60, 0x72, 0x66, 0x30, 0x61, 0x59, 0x2A, 0xC0, 0x62, 0x52, 0x48, 0x30,
|
||||
0x63, 0x39, 0x0C, 0xC0, 0x64, 0x32, 0x2A, 0x30, 0x65, 0x18, 0xEE, 0xC0, 0x66, 0x1B, 0x46, 0xB0,
|
||||
0x67, 0x02, 0x0B, 0x40, 0x67, 0xFB, 0x28, 0xB0, 0x68, 0xE1, 0xED, 0x40, 0x69, 0xDB, 0x0A, 0xB0,
|
||||
0x6A, 0xC1, 0xCF, 0x40, 0x6B, 0xBA, 0xEC, 0xB0, 0x6C, 0xA1, 0xB1, 0x40, 0x6D, 0x9A, 0xCE, 0xB0,
|
||||
0x6E, 0x81, 0x93, 0x40, 0x6F, 0x7A, 0xB0, 0xB0, 0x70, 0x6A, 0xAF, 0xC0, 0x71, 0x63, 0xCD, 0x30,
|
||||
0x72, 0x4A, 0x91, 0xC0, 0x73, 0x43, 0xAF, 0x30, 0x74, 0x2A, 0x73, 0xC0, 0x75, 0x23, 0x91, 0x30,
|
||||
0x76, 0x0A, 0x55, 0xC0, 0x77, 0x03, 0x73, 0x30, 0x77, 0xEA, 0x37, 0xC0, 0x78, 0xE3, 0x55, 0x30,
|
||||
0x79, 0xCA, 0x19, 0xC0, 0x7A, 0xC3, 0x37, 0x30, 0x7B, 0xB3, 0x36, 0x40, 0x7C, 0xAC, 0x53, 0xB0,
|
||||
0x7D, 0x93, 0x18, 0x40, 0x7E, 0x8C, 0x35, 0xB0, 0x7F, 0x72, 0xFA, 0x40, 0x01, 0x02, 0x01, 0x03,
|
||||
0x50, 0x70, 0xFE, 0x40, 0x51, 0x4E, 0x6C, 0x30, 0x52, 0x50, 0xE0, 0x40, 0x53, 0x2E, 0x4E, 0x30,
|
||||
0x54, 0x30, 0xC2, 0x40, 0x55, 0x0E, 0x30, 0x30, 0x56, 0x10, 0xA4, 0x40, 0x56, 0xF7, 0x4C, 0xB0,
|
||||
0x57, 0xF0, 0x86, 0x40, 0x58, 0xD7, 0x2E, 0xB0, 0x59, 0xD0, 0x68, 0x40, 0x5A, 0xB7, 0x10, 0xB0,
|
||||
0x5B, 0xB9, 0x84, 0xC0, 0x5C, 0x96, 0xF2, 0xB0, 0x5D, 0x99, 0x66, 0xC0, 0x5E, 0x76, 0xD4, 0xB0,
|
||||
0x5F, 0x79, 0x48, 0xC0, 0x60, 0x5F, 0xF1, 0x30, 0x61, 0x59, 0x2A, 0xC0, 0x62, 0x3F, 0xD3, 0x30,
|
||||
0x63, 0x39, 0x0C, 0xC0, 0x64, 0x1F, 0xB5, 0x30, 0x65, 0x18, 0xEE, 0xC0, 0x65, 0xFF, 0x97, 0x30,
|
||||
0x67, 0x02, 0x0B, 0x40, 0x67, 0xDF, 0x79, 0x30, 0x68, 0xE1, 0xED, 0x40, 0x69, 0xBF, 0x5B, 0x30,
|
||||
0x6A, 0xC1, 0xCF, 0x40, 0x6B, 0xA8, 0x77, 0xB0, 0x6C, 0xA1, 0xB1, 0x40, 0x6D, 0x88, 0x59, 0xB0,
|
||||
0x6E, 0x81, 0x93, 0x40, 0x6F, 0x68, 0x3B, 0xB0, 0x70, 0x6A, 0xAF, 0xC0, 0x71, 0x48, 0x1D, 0xB0,
|
||||
0x72, 0x4A, 0x91, 0xC0, 0x73, 0x27, 0xFF, 0xB0, 0x74, 0x2A, 0x73, 0xC0, 0x75, 0x11, 0x1C, 0x30,
|
||||
0x76, 0x0A, 0x55, 0xC0, 0x76, 0xF0, 0xFE, 0x30, 0x77, 0xEA, 0x37, 0xC0, 0x78, 0xD0, 0xE0, 0x30,
|
||||
0x79, 0xCA, 0x19, 0xC0, 0x7A, 0xB0, 0xC2, 0x30, 0x7B, 0xB3, 0x36, 0x40, 0x7C, 0x90, 0xA4, 0x30,
|
||||
0x7D, 0x93, 0x18, 0x40, 0x7E, 0x70, 0x86, 0x30, 0x7F, 0x72, 0xFA, 0x40, 0x01, 0x02, 0x01, 0x03,
|
||||
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
|
||||
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
|
||||
0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03, 0x01, 0x03,
|
||||
@@ -7214,46 +7214,43 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
0x69, 0x65,
|
||||
|
||||
/* Antarctica/Macquarie */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x91, 0x05, 0x5B, 0x00,
|
||||
0x9B, 0xD5, 0x78, 0x80, 0x9C, 0xBC, 0x20, 0xF0, 0xCB, 0x54, 0xB3, 0x00, 0xCB, 0xC7, 0x57, 0x70,
|
||||
0xCC, 0xB7, 0x56, 0x80, 0xCD, 0xA7, 0x39, 0x70, 0xCE, 0xA0, 0x73, 0x00, 0xCF, 0x87, 0x1B, 0x70,
|
||||
0xFB, 0xC2, 0x8D, 0x00, 0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80,
|
||||
0xFF, 0xA7, 0x3B, 0x00, 0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00,
|
||||
0x03, 0x70, 0x39, 0x80, 0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80,
|
||||
0x07, 0x2F, 0xFD, 0x80, 0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80,
|
||||
0x0A, 0xEF, 0xC1, 0x80, 0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00,
|
||||
0x0E, 0xB8, 0xC0, 0x00, 0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00,
|
||||
0x12, 0x78, 0x84, 0x00, 0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00,
|
||||
0x16, 0x38, 0x48, 0x00, 0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00,
|
||||
0x1A, 0x01, 0x46, 0x80, 0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80,
|
||||
0x1D, 0xC1, 0x0A, 0x80, 0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80,
|
||||
0x21, 0x80, 0xCE, 0x80, 0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00,
|
||||
0x25, 0x49, 0xCD, 0x00, 0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00,
|
||||
0x28, 0xED, 0xE1, 0x80, 0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00,
|
||||
0x2C, 0xAD, 0xA5, 0x80, 0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00,
|
||||
0x30, 0x6D, 0x69, 0x80, 0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80,
|
||||
0x34, 0x36, 0x68, 0x00, 0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80,
|
||||
0x37, 0xF6, 0x2C, 0x00, 0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80,
|
||||
0x3B, 0xBF, 0x2A, 0x80, 0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00,
|
||||
0x3F, 0x7E, 0xEE, 0x80, 0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00,
|
||||
0x43, 0x3E, 0xB2, 0x80, 0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00,
|
||||
0x47, 0x07, 0xB1, 0x00, 0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00,
|
||||
0x4A, 0xC7, 0x75, 0x00, 0x4B, 0xB7, 0x66, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
|
||||
0x01, 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, 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, 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, 0x03,
|
||||
0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8C,
|
||||
0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x04, 0x00,
|
||||
0x00, 0x8C, 0xA0, 0x00, 0x04, 0x00, 0x00, 0x9A, 0xB0, 0x00, 0x08, 0x7A, 0x7A, 0x7A, 0x00, 0x45,
|
||||
0x53, 0x54, 0x00, 0x4D, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x2B, 0x30, 0x02, 0x05, 0x32, 0x58, 0x00, 0x00, 0x00, 0x2A,
|
||||
0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
|
||||
0x20, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2C, 0x20, 0x4D, 0x61, 0x63, 0x71, 0x75, 0x61,
|
||||
0x72, 0x69, 0x65, 0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
|
||||
0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x0D, 0x9B, 0xD5, 0x78, 0x80,
|
||||
0x9C, 0xBC, 0x20, 0xF0, 0xA0, 0x87, 0xB4, 0x60, 0xD7, 0x0C, 0x68, 0x00, 0xFB, 0xC2, 0x8D, 0x00,
|
||||
0xFC, 0xB2, 0x7E, 0x00, 0xFD, 0xC7, 0x59, 0x00, 0xFE, 0x76, 0xB0, 0x80, 0xFF, 0xA7, 0x3B, 0x00,
|
||||
0x00, 0x56, 0x92, 0x80, 0x01, 0x87, 0x1D, 0x00, 0x02, 0x3F, 0xAF, 0x00, 0x03, 0x70, 0x39, 0x80,
|
||||
0x04, 0x0D, 0x1C, 0x00, 0x05, 0x50, 0x1B, 0x80, 0x05, 0xF6, 0x38, 0x80, 0x07, 0x2F, 0xFD, 0x80,
|
||||
0x07, 0xD6, 0x1A, 0x80, 0x09, 0x0F, 0xDF, 0x80, 0x09, 0xB5, 0xFC, 0x80, 0x0A, 0xEF, 0xC1, 0x80,
|
||||
0x0B, 0x9F, 0x19, 0x00, 0x0C, 0xD8, 0xDE, 0x00, 0x0D, 0x7E, 0xFB, 0x00, 0x0E, 0xB8, 0xC0, 0x00,
|
||||
0x0F, 0x5E, 0xDD, 0x00, 0x10, 0x98, 0xA2, 0x00, 0x11, 0x3E, 0xBF, 0x00, 0x12, 0x78, 0x84, 0x00,
|
||||
0x13, 0x1E, 0xA1, 0x00, 0x14, 0x58, 0x66, 0x00, 0x14, 0xFE, 0x83, 0x00, 0x16, 0x38, 0x48, 0x00,
|
||||
0x17, 0x03, 0x4F, 0x00, 0x18, 0x21, 0x64, 0x80, 0x18, 0xE3, 0x31, 0x00, 0x1A, 0x01, 0x46, 0x80,
|
||||
0x1A, 0xA7, 0x63, 0x80, 0x1B, 0xE1, 0x28, 0x80, 0x1C, 0x87, 0x45, 0x80, 0x1D, 0xC1, 0x0A, 0x80,
|
||||
0x1E, 0x67, 0x27, 0x80, 0x1F, 0x97, 0xB2, 0x00, 0x20, 0x59, 0x7E, 0x80, 0x21, 0x80, 0xCE, 0x80,
|
||||
0x22, 0x42, 0x9B, 0x00, 0x23, 0x69, 0xEB, 0x00, 0x24, 0x22, 0x7D, 0x00, 0x25, 0x49, 0xCD, 0x00,
|
||||
0x26, 0x02, 0x5F, 0x00, 0x27, 0x29, 0xAF, 0x00, 0x27, 0xF4, 0xB6, 0x00, 0x28, 0xED, 0xE1, 0x80,
|
||||
0x29, 0xD4, 0x98, 0x00, 0x2A, 0xCD, 0xC3, 0x80, 0x2B, 0xB4, 0x7A, 0x00, 0x2C, 0xAD, 0xA5, 0x80,
|
||||
0x2D, 0x94, 0x5C, 0x00, 0x2E, 0x8D, 0x87, 0x80, 0x2F, 0x74, 0x3E, 0x00, 0x30, 0x6D, 0x69, 0x80,
|
||||
0x31, 0x5D, 0x5A, 0x80, 0x32, 0x56, 0x86, 0x00, 0x33, 0x3D, 0x3C, 0x80, 0x34, 0x36, 0x68, 0x00,
|
||||
0x35, 0x1D, 0x1E, 0x80, 0x36, 0x16, 0x4A, 0x00, 0x36, 0xFD, 0x00, 0x80, 0x37, 0xF6, 0x2C, 0x00,
|
||||
0x38, 0xDC, 0xE2, 0x80, 0x39, 0xA7, 0xE9, 0x80, 0x3A, 0xBC, 0xC4, 0x80, 0x3B, 0xBF, 0x2A, 0x80,
|
||||
0x3C, 0xA5, 0xE1, 0x00, 0x3D, 0x9F, 0x0C, 0x80, 0x3E, 0x85, 0xC3, 0x00, 0x3F, 0x7E, 0xEE, 0x80,
|
||||
0x40, 0x65, 0xA5, 0x00, 0x41, 0x5E, 0xD0, 0x80, 0x42, 0x45, 0x87, 0x00, 0x43, 0x3E, 0xB2, 0x80,
|
||||
0x44, 0x2E, 0xA3, 0x80, 0x45, 0x1E, 0x94, 0x80, 0x46, 0x05, 0x4B, 0x00, 0x47, 0x07, 0xB1, 0x00,
|
||||
0x47, 0xF7, 0xA2, 0x00, 0x48, 0xE7, 0x93, 0x00, 0x49, 0xD7, 0x84, 0x00, 0x4A, 0xC7, 0x75, 0x00,
|
||||
0x4B, 0xB7, 0x66, 0x00, 0x01, 0x00, 0x02, 0x00, 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, 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, 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, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x05, 0x00, 0x00,
|
||||
0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
|
||||
0x00, 0x00, 0x9A, 0xB0, 0x01, 0x00, 0x00, 0x00, 0x8C, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x9A, 0xB0,
|
||||
0x00, 0x08, 0x45, 0x53, 0x54, 0x00, 0x7A, 0x7A, 0x7A, 0x00, 0x4D, 0x49, 0x53, 0x54, 0x00, 0x00,
|
||||
0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x2B, 0x30, 0x02,
|
||||
0x05, 0x32, 0x58, 0x00, 0x00, 0x00, 0x10, 0x4D, 0x61, 0x63, 0x71, 0x75, 0x61, 0x72, 0x69, 0x65,
|
||||
0x20, 0x49, 0x73, 0x6C, 0x61, 0x6E, 0x64,
|
||||
|
||||
/* Antarctica/Mawson */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x41, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -8101,7 +8098,7 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
/* Asia/Gaza */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x5E, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
|
||||
0x00, 0x00, 0x00, 0x90, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 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, 0xEA, 0x0B, 0xB9, 0x60,
|
||||
@@ -8122,21 +8119,37 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0,
|
||||
0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0,
|
||||
0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60,
|
||||
0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0,
|
||||
0x48, 0xB7, 0x11, 0xD0, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C,
|
||||
0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x96, 0xF3, 0xDC, 0x4E, 0x35, 0xC2, 0x50, 0x4F, 0x74, 0xDB, 0x60,
|
||||
0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01,
|
||||
0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xEC, 0x18, 0xE0,
|
||||
0x48, 0xB7, 0x11, 0xD0, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x3C, 0x60, 0x4B, 0xAD, 0x2E, 0x9C,
|
||||
0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x94, 0xF9, 0x9C, 0x4E, 0x35, 0xC2, 0x50, 0x4F, 0x74, 0xDB, 0x60,
|
||||
0x50, 0x5B, 0x91, 0xE0, 0x51, 0x54, 0xBD, 0x60, 0x52, 0x44, 0xAE, 0x60, 0x53, 0x34, 0x9F, 0x60,
|
||||
0x54, 0x24, 0x90, 0x60, 0x55, 0x14, 0x81, 0x60, 0x56, 0x04, 0x72, 0x60, 0x56, 0xFD, 0x9D, 0xE0,
|
||||
0x57, 0xE4, 0x54, 0x60, 0x58, 0xDD, 0x7F, 0xE0, 0x59, 0xC4, 0x36, 0x60, 0x5A, 0xBD, 0x61, 0xE0,
|
||||
0x5B, 0xA4, 0x18, 0x60, 0x5C, 0x9D, 0x43, 0xE0, 0x5D, 0x8D, 0x34, 0xE0, 0x5E, 0x7D, 0x25, 0xE0,
|
||||
0x5F, 0x6D, 0x16, 0xE0, 0x60, 0x5D, 0x07, 0xE0, 0x61, 0x4C, 0xF8, 0xE0, 0x62, 0x46, 0x24, 0x60,
|
||||
0x63, 0x2C, 0xDA, 0xE0, 0x64, 0x26, 0x06, 0x60, 0x65, 0x0C, 0xBC, 0xE0, 0x66, 0x05, 0xE8, 0x60,
|
||||
0x66, 0xF5, 0xD9, 0x60, 0x67, 0xE5, 0xCA, 0x60, 0x68, 0xD5, 0xBB, 0x60, 0x69, 0xC5, 0xAC, 0x60,
|
||||
0x6A, 0xB5, 0x9D, 0x60, 0x6B, 0xA5, 0x8E, 0x60, 0x6C, 0x95, 0x7F, 0x60, 0x6D, 0x8E, 0xAA, 0xE0,
|
||||
0x6E, 0x75, 0x61, 0x60, 0x6F, 0x6E, 0x8C, 0xE0, 0x70, 0x55, 0x43, 0x60, 0x71, 0x4E, 0x6E, 0xE0,
|
||||
0x72, 0x3E, 0x5F, 0xE0, 0x73, 0x2E, 0x50, 0xE0, 0x74, 0x1E, 0x41, 0xE0, 0x75, 0x0E, 0x32, 0xE0,
|
||||
0x75, 0xFE, 0x23, 0xE0, 0x76, 0xF7, 0x4F, 0x60, 0x77, 0xDE, 0x05, 0xE0, 0x78, 0xD7, 0x31, 0x60,
|
||||
0x79, 0xBD, 0xE7, 0xE0, 0x7A, 0xB7, 0x13, 0x60, 0x7B, 0x9D, 0xC9, 0xE0, 0x7C, 0x96, 0xF5, 0x60,
|
||||
0x7D, 0x86, 0xE6, 0x60, 0x7E, 0x76, 0xD7, 0x60, 0x7F, 0x66, 0xC8, 0x60, 0x00, 0x01, 0x00, 0x01,
|
||||
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04,
|
||||
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
|
||||
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
|
||||
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02,
|
||||
0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00,
|
||||
0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D,
|
||||
0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49,
|
||||
0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0xB9, 0x64, 0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47,
|
||||
0x61, 0x7A, 0x61, 0x20, 0x53, 0x74, 0x72, 0x69, 0x70,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30,
|
||||
0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00,
|
||||
0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00,
|
||||
0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x64,
|
||||
0xF0, 0x01, 0x47, 0x40, 0x0A, 0x00, 0x00, 0x00, 0x0A, 0x47, 0x61, 0x7A, 0x61, 0x20, 0x53, 0x74,
|
||||
0x72, 0x69, 0x70,
|
||||
|
||||
/* Asia/Harbin */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x43, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -8158,7 +8171,7 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
/* Asia/Hebron */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x50, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 0xC8, 0x59, 0xB2, 0xE0,
|
||||
0x00, 0x00, 0x00, 0x92, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x11, 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, 0xEA, 0x0B, 0xB9, 0x60,
|
||||
@@ -8179,22 +8192,37 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
0x39, 0xEF, 0x60, 0xD0, 0x3A, 0xDF, 0x5F, 0xE0, 0x3B, 0xCF, 0x42, 0xD0, 0x3C, 0xBF, 0x41, 0xE0,
|
||||
0x3D, 0xAF, 0x24, 0xD0, 0x3E, 0x9F, 0x23, 0xE0, 0x3F, 0x8F, 0x06, 0xD0, 0x40, 0x7F, 0x05, 0xE0,
|
||||
0x41, 0x5C, 0x81, 0xE0, 0x42, 0x5E, 0xE7, 0xE0, 0x43, 0x41, 0xB7, 0xF0, 0x44, 0x2D, 0xA6, 0x60,
|
||||
0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xF1, 0x5E, 0xE0,
|
||||
0x48, 0xBB, 0x06, 0x50, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x4A, 0x70, 0x4B, 0xAD, 0x2E, 0x9C,
|
||||
0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x95, 0xA2, 0x5C, 0x4E, 0x35, 0xC2, 0x50, 0x4E, 0x5C, 0x0B, 0xE0,
|
||||
0x4E, 0x85, 0x06, 0x80, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x5B, 0x91, 0xE0, 0x00, 0x01, 0x00, 0x01,
|
||||
0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x04, 0x03, 0x04, 0x03, 0x04,
|
||||
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x03, 0x04,
|
||||
0x03, 0x04, 0x03, 0x04, 0x03, 0x04, 0x01, 0x02, 0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01,
|
||||
0x45, 0x12, 0xFD, 0x50, 0x46, 0x0E, 0xD9, 0xE0, 0x46, 0xE8, 0x6F, 0x70, 0x47, 0xEC, 0x18, 0xE0,
|
||||
0x48, 0xBB, 0x06, 0x50, 0x49, 0xCB, 0xFA, 0xE0, 0x4A, 0xA0, 0x3C, 0x60, 0x4B, 0xAB, 0xDC, 0xE0,
|
||||
0x4C, 0x61, 0xBD, 0xD0, 0x4D, 0x94, 0xF9, 0x9C, 0x4E, 0x35, 0xC2, 0x50, 0x4E, 0x5C, 0x0B, 0xE0,
|
||||
0x4E, 0x84, 0xDC, 0x50, 0x4F, 0x74, 0xDB, 0x60, 0x50, 0x5B, 0x91, 0xE0, 0x51, 0x54, 0xBD, 0x60,
|
||||
0x52, 0x44, 0xAE, 0x60, 0x53, 0x34, 0x9F, 0x60, 0x54, 0x24, 0x90, 0x60, 0x55, 0x14, 0x81, 0x60,
|
||||
0x56, 0x04, 0x72, 0x60, 0x56, 0xFD, 0x9D, 0xE0, 0x57, 0xE4, 0x54, 0x60, 0x58, 0xDD, 0x7F, 0xE0,
|
||||
0x59, 0xC4, 0x36, 0x60, 0x5A, 0xBD, 0x61, 0xE0, 0x5B, 0xA4, 0x18, 0x60, 0x5C, 0x9D, 0x43, 0xE0,
|
||||
0x5D, 0x8D, 0x34, 0xE0, 0x5E, 0x7D, 0x25, 0xE0, 0x5F, 0x6D, 0x16, 0xE0, 0x60, 0x5D, 0x07, 0xE0,
|
||||
0x61, 0x4C, 0xF8, 0xE0, 0x62, 0x46, 0x24, 0x60, 0x63, 0x2C, 0xDA, 0xE0, 0x64, 0x26, 0x06, 0x60,
|
||||
0x65, 0x0C, 0xBC, 0xE0, 0x66, 0x05, 0xE8, 0x60, 0x66, 0xF5, 0xD9, 0x60, 0x67, 0xE5, 0xCA, 0x60,
|
||||
0x68, 0xD5, 0xBB, 0x60, 0x69, 0xC5, 0xAC, 0x60, 0x6A, 0xB5, 0x9D, 0x60, 0x6B, 0xA5, 0x8E, 0x60,
|
||||
0x6C, 0x95, 0x7F, 0x60, 0x6D, 0x8E, 0xAA, 0xE0, 0x6E, 0x75, 0x61, 0x60, 0x6F, 0x6E, 0x8C, 0xE0,
|
||||
0x70, 0x55, 0x43, 0x60, 0x71, 0x4E, 0x6E, 0xE0, 0x72, 0x3E, 0x5F, 0xE0, 0x73, 0x2E, 0x50, 0xE0,
|
||||
0x74, 0x1E, 0x41, 0xE0, 0x75, 0x0E, 0x32, 0xE0, 0x75, 0xFE, 0x23, 0xE0, 0x76, 0xF7, 0x4F, 0x60,
|
||||
0x77, 0xDE, 0x05, 0xE0, 0x78, 0xD7, 0x31, 0x60, 0x79, 0xBD, 0xE7, 0xE0, 0x7A, 0xB7, 0x13, 0x60,
|
||||
0x7B, 0x9D, 0xC9, 0xE0, 0x7C, 0x96, 0xF5, 0x60, 0x7D, 0x86, 0xE6, 0x60, 0x7E, 0x76, 0xD7, 0x60,
|
||||
0x7F, 0x66, 0xC8, 0x60, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30,
|
||||
0x01, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00,
|
||||
0x2A, 0x30, 0x01, 0x09, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00,
|
||||
0x45, 0x45, 0x54, 0x00, 0x45, 0x45, 0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x71,
|
||||
0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00, 0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61,
|
||||
0x6E, 0x6B,
|
||||
0x02, 0x01, 0x02, 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, 0x01, 0x02,
|
||||
0x05, 0x02, 0x05, 0x02, 0x05, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
|
||||
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x20,
|
||||
0x00, 0x00, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x04, 0x00, 0x00, 0x2A, 0x30, 0x01, 0x09, 0x00, 0x00,
|
||||
0x1C, 0x20, 0x00, 0x0D, 0x00, 0x00, 0x1C, 0x20, 0x00, 0x00, 0x45, 0x45, 0x54, 0x00, 0x45, 0x45,
|
||||
0x53, 0x54, 0x00, 0x49, 0x44, 0x54, 0x00, 0x49, 0x53, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB9, 0x71, 0xF5, 0x01, 0x48, 0x35, 0x7C, 0x00,
|
||||
0x00, 0x00, 0x09, 0x57, 0x65, 0x73, 0x74, 0x20, 0x42, 0x61, 0x6E, 0x6B,
|
||||
|
||||
/* Asia/Ho_Chi_Minh */
|
||||
0x50, 0x48, 0x50, 0x31, 0x01, 0x56, 0x4E, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
@@ -18382,4 +18410,4 @@ const unsigned char timelib_timezone_db_data_builtin[261076] = {
|
||||
0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
|
||||
0x00, 0x00, 0x00, 0x00, };
|
||||
|
||||
const timelib_tzdb timezonedb_builtin = { "2013.2", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
|
||||
const timelib_tzdb timezonedb_builtin = { "2013.3", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
|
||||
+295
-22
@@ -39,6 +39,20 @@ static __inline __int64_t php_date_llabs( __int64_t i ) { return i >= 0 ? i : -i
|
||||
static inline long long php_date_llabs( long long i ) { return i >= 0 ? i : -i; }
|
||||
#endif
|
||||
|
||||
#ifdef PHP_WIN32
|
||||
#define DATE_I64_BUF_LEN 65
|
||||
# define DATE_I64A(i, s, len) _i64toa_s(i, s, len, 10)
|
||||
# define DATE_A64I(i, s) i = _atoi64(s)
|
||||
#else
|
||||
#define DATE_I64_BUF_LEN 65
|
||||
# define DATE_I64A(i, s, len) \
|
||||
do { \
|
||||
int st = snprintf(s, len, "%lld", i); \
|
||||
s[st] = '\0'; \
|
||||
} while (0);
|
||||
# define DATE_A64I(i, s) i = atoll(s)
|
||||
#endif
|
||||
|
||||
/* {{{ arginfo */
|
||||
ZEND_BEGIN_ARG_INFO_EX(arginfo_date, 0, 0, 1)
|
||||
ZEND_ARG_INFO(0, format)
|
||||
@@ -472,6 +486,8 @@ const zend_function_entry date_funcs_interval[] = {
|
||||
|
||||
const zend_function_entry date_funcs_period[] = {
|
||||
PHP_ME(DatePeriod, __construct, arginfo_date_period_construct, ZEND_ACC_CTOR|ZEND_ACC_PUBLIC)
|
||||
PHP_ME(DatePeriod, __wakeup, NULL, ZEND_ACC_PUBLIC)
|
||||
PHP_ME(DatePeriod, __set_state, NULL, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC)
|
||||
PHP_FE_END
|
||||
};
|
||||
|
||||
@@ -569,9 +585,13 @@ static HashTable *date_object_get_gc(zval *object, zval ***table, int *n TSRMLS_
|
||||
static HashTable *date_object_get_properties(zval *object TSRMLS_DC);
|
||||
static HashTable *date_object_get_gc_interval(zval *object, zval ***table, int *n TSRMLS_DC);
|
||||
static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC);
|
||||
static HashTable *date_object_get_gc_period(zval *object, zval ***table, int *n TSRMLS_DC);
|
||||
static HashTable *date_object_get_properties_period(zval *object TSRMLS_DC);
|
||||
|
||||
zval *date_interval_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC);
|
||||
void date_interval_write_property(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC);
|
||||
static zval *date_period_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC);
|
||||
static void date_period_write_property(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC);
|
||||
|
||||
/* {{{ Module struct */
|
||||
zend_module_entry date_module_entry = {
|
||||
@@ -1982,6 +2002,11 @@ static void date_register_classes(TSRMLS_D)
|
||||
zend_class_implements(date_ce_period TSRMLS_CC, 1, zend_ce_traversable);
|
||||
memcpy(&date_object_handlers_period, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
|
||||
date_object_handlers_period.clone_obj = date_object_clone_period;
|
||||
date_object_handlers_period.get_properties = date_object_get_properties_period;
|
||||
date_object_handlers_period.get_property_ptr_ptr = NULL;
|
||||
date_object_handlers_period.get_gc = date_object_get_gc_period;
|
||||
date_object_handlers_period.read_property = date_period_read_property;
|
||||
date_object_handlers_period.write_property = date_period_write_property;
|
||||
|
||||
#define REGISTER_PERIOD_CLASS_CONST_STRING(const_name, value) \
|
||||
zend_declare_class_constant_long(date_ce_period, const_name, sizeof(const_name)-1, value TSRMLS_CC);
|
||||
@@ -2081,7 +2106,7 @@ static HashTable *date_object_get_properties(zval *object TSRMLS_DC)
|
||||
|
||||
props = zend_std_get_properties(object TSRMLS_CC);
|
||||
|
||||
if (!dateobj->time) {
|
||||
if (!dateobj->time || GC_G(gc_active)) {
|
||||
return props;
|
||||
}
|
||||
|
||||
@@ -2229,7 +2254,6 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
|
||||
zval *zv;
|
||||
php_interval_obj *intervalobj;
|
||||
|
||||
|
||||
intervalobj = (php_interval_obj *) zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
props = zend_std_get_properties(object TSRMLS_CC);
|
||||
@@ -2240,7 +2264,7 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
|
||||
|
||||
#define PHP_DATE_INTERVAL_ADD_PROPERTY(n,f) \
|
||||
MAKE_STD_ZVAL(zv); \
|
||||
ZVAL_LONG(zv, intervalobj->diff->f); \
|
||||
ZVAL_LONG(zv, (long)intervalobj->diff->f); \
|
||||
zend_hash_update(props, n, strlen(n) + 1, &zv, sizeof(zval), NULL);
|
||||
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("y", y);
|
||||
@@ -2249,6 +2273,9 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("h", h);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("i", i);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("s", s);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("weekday", weekday);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("weekday_behavior", weekday_behavior);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("first_last_day_of", first_last_day_of);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("invert", invert);
|
||||
if (intervalobj->diff->days != -99999) {
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("days", days);
|
||||
@@ -2257,6 +2284,10 @@ static HashTable *date_object_get_properties_interval(zval *object TSRMLS_DC)
|
||||
ZVAL_FALSE(zv);
|
||||
zend_hash_update(props, "days", 5, &zv, sizeof(zval), NULL);
|
||||
}
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("special_type", special.type);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("special_amount", special.amount);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("have_weekday_relative", have_weekday_relative);
|
||||
PHP_DATE_INTERVAL_ADD_PROPERTY("have_special_relative", have_special_relative);
|
||||
|
||||
return props;
|
||||
}
|
||||
@@ -2358,6 +2389,7 @@ PHPAPI zval *php_date_instantiate(zend_class_entry *pce, zval *object TSRMLS_DC)
|
||||
object_init_ex(object, pce);
|
||||
Z_SET_REFCOUNT_P(object, 1);
|
||||
Z_UNSET_ISREF_P(object);
|
||||
|
||||
return object;
|
||||
}
|
||||
|
||||
@@ -3629,30 +3661,48 @@ PHP_METHOD(DateInterval, __construct)
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static long php_date_long_from_hash_element(HashTable *myht, char *element, size_t size)
|
||||
{
|
||||
zval **z_arg = NULL;
|
||||
|
||||
if (zend_hash_find(myht, element, size + 1, (void**) &z_arg) == SUCCESS) {
|
||||
convert_to_long(*z_arg);
|
||||
return Z_LVAL_PP(z_arg);
|
||||
} else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
static int php_date_interval_initialize_from_hash(zval **return_value, php_interval_obj **intobj, HashTable *myht TSRMLS_DC)
|
||||
{
|
||||
(*intobj)->diff = timelib_rel_time_ctor();
|
||||
|
||||
(*intobj)->diff->y = php_date_long_from_hash_element(myht, "y", 1);
|
||||
(*intobj)->diff->m = php_date_long_from_hash_element(myht, "m", 1);
|
||||
(*intobj)->diff->d = php_date_long_from_hash_element(myht, "d", 1);
|
||||
(*intobj)->diff->h = php_date_long_from_hash_element(myht, "h", 1);
|
||||
(*intobj)->diff->i = php_date_long_from_hash_element(myht, "i", 1);
|
||||
(*intobj)->diff->s = php_date_long_from_hash_element(myht, "s", 1);
|
||||
(*intobj)->diff->invert = php_date_long_from_hash_element(myht, "invert", 6);
|
||||
(*intobj)->diff->days = php_date_long_from_hash_element(myht, "days", 4);
|
||||
#define PHP_DATE_INTERVAL_READ_PROPERTY(element, member, itype, def) \
|
||||
do { \
|
||||
zval **z_arg = NULL; \
|
||||
if (zend_hash_find(myht, element, strlen(element) + 1, (void**) &z_arg) == SUCCESS) { \
|
||||
convert_to_long(*z_arg); \
|
||||
(*intobj)->diff->member = (itype)Z_LVAL_PP(z_arg); \
|
||||
} else { \
|
||||
(*intobj)->diff->member = (itype)def; \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
#define PHP_DATE_INTERVAL_READ_PROPERTY_I64(element, member) \
|
||||
do { \
|
||||
zval **z_arg = NULL; \
|
||||
if (zend_hash_find(myht, element, strlen(element) + 1, (void**) &z_arg) == SUCCESS) { \
|
||||
convert_to_string(*z_arg); \
|
||||
DATE_A64I((*intobj)->diff->member, Z_STRVAL_PP(z_arg)); \
|
||||
} else { \
|
||||
(*intobj)->diff->member = -1LL; \
|
||||
} \
|
||||
} while (0);
|
||||
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("y", y, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("m", m, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("d", d, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("h", h, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("i", i, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("s", s, timelib_sll, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("weekday", weekday, int, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("weekday_behavior", weekday_behavior, int, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("first_last_day_of", first_last_day_of, int, -1)
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("invert", invert, int, 0);
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY_I64("days", days);
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("special_type", special.type, unsigned int, 0);
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY_I64("special_amount", special.amount);
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("have_weekday_relative", have_weekday_relative, unsigned int, 0);
|
||||
PHP_DATE_INTERVAL_READ_PROPERTY("have_special_relative", have_special_relative, unsigned int, 0);
|
||||
(*intobj)->initialized = 1;
|
||||
|
||||
return 0;
|
||||
@@ -4256,6 +4306,229 @@ PHP_FUNCTION(date_sun_info)
|
||||
timelib_time_dtor(t2);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
static HashTable *date_object_get_gc_period(zval *object, zval ***table, int *n TSRMLS_DC)
|
||||
{
|
||||
*table = NULL;
|
||||
*n = 0;
|
||||
return zend_std_get_properties(object TSRMLS_CC);
|
||||
}
|
||||
|
||||
static HashTable *date_object_get_properties_period(zval *object TSRMLS_DC)
|
||||
{
|
||||
HashTable *props;
|
||||
zval *zv;
|
||||
php_period_obj *period_obj;
|
||||
|
||||
period_obj = zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
props = zend_std_get_properties(object TSRMLS_CC);
|
||||
|
||||
if (!period_obj->start || GC_G(gc_active)) {
|
||||
return props;
|
||||
}
|
||||
|
||||
MAKE_STD_ZVAL(zv);
|
||||
if (period_obj->start) {
|
||||
php_date_obj *date_obj;
|
||||
object_init_ex(zv, date_ce_date);
|
||||
date_obj = zend_object_store_get_object(zv TSRMLS_CC);
|
||||
date_obj->time = timelib_time_clone(period_obj->start);
|
||||
} else {
|
||||
ZVAL_NULL(zv);
|
||||
}
|
||||
zend_hash_update(props, "start", sizeof("start"), &zv, sizeof(zv), NULL);
|
||||
|
||||
MAKE_STD_ZVAL(zv);
|
||||
if (period_obj->current) {
|
||||
php_date_obj *date_obj;
|
||||
object_init_ex(zv, date_ce_date);
|
||||
date_obj = zend_object_store_get_object(zv TSRMLS_CC);
|
||||
date_obj->time = timelib_time_clone(period_obj->current);
|
||||
} else {
|
||||
ZVAL_NULL(zv);
|
||||
}
|
||||
zend_hash_update(props, "current", sizeof("current"), &zv, sizeof(zv), NULL);
|
||||
|
||||
MAKE_STD_ZVAL(zv);
|
||||
if (period_obj->end) {
|
||||
php_date_obj *date_obj;
|
||||
object_init_ex(zv, date_ce_date);
|
||||
date_obj = zend_object_store_get_object(zv TSRMLS_CC);
|
||||
date_obj->time = timelib_time_clone(period_obj->end);
|
||||
} else {
|
||||
ZVAL_NULL(zv);
|
||||
}
|
||||
zend_hash_update(props, "end", sizeof("end"), &zv, sizeof(zv), NULL);
|
||||
|
||||
MAKE_STD_ZVAL(zv);
|
||||
if (period_obj->interval) {
|
||||
php_interval_obj *interval_obj;
|
||||
object_init_ex(zv, date_ce_interval);
|
||||
interval_obj = zend_object_store_get_object(zv TSRMLS_CC);
|
||||
interval_obj->diff = timelib_rel_time_clone(period_obj->interval);
|
||||
interval_obj->initialized = 1;
|
||||
} else {
|
||||
ZVAL_NULL(zv);
|
||||
}
|
||||
zend_hash_update(props, "interval", sizeof("interval"), &zv, sizeof(zv), NULL);
|
||||
|
||||
/* converted to larger type (int->long); must check when unserializing */
|
||||
MAKE_STD_ZVAL(zv);
|
||||
ZVAL_LONG(zv, (long) period_obj->recurrences);
|
||||
zend_hash_update(props, "recurrences", sizeof("recurrences"), &zv, sizeof(zv), NULL);
|
||||
|
||||
MAKE_STD_ZVAL(zv);
|
||||
ZVAL_BOOL(zv, period_obj->include_start_date);
|
||||
zend_hash_update(props, "include_start_date", sizeof("include_start_date"), &zv, sizeof(zv), NULL);
|
||||
|
||||
return props;
|
||||
}
|
||||
|
||||
static int php_date_period_initialize_from_hash(php_period_obj *period_obj, HashTable *myht TSRMLS_DC)
|
||||
{
|
||||
zval **ht_entry;
|
||||
|
||||
/* this function does no rollback on error */
|
||||
|
||||
if (zend_hash_find(myht, "start", sizeof("start"), (void**) &ht_entry) == SUCCESS) {
|
||||
if (Z_TYPE_PP(ht_entry) == IS_OBJECT && Z_OBJCE_PP(ht_entry) == date_ce_date) {
|
||||
php_date_obj *date_obj;
|
||||
date_obj = zend_object_store_get_object(*ht_entry TSRMLS_CC);
|
||||
period_obj->start = timelib_time_clone(date_obj->time);
|
||||
} else if (Z_TYPE_PP(ht_entry) != IS_NULL) {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (zend_hash_find(myht, "end", sizeof("end"), (void**) &ht_entry) == SUCCESS) {
|
||||
if (Z_TYPE_PP(ht_entry) == IS_OBJECT && Z_OBJCE_PP(ht_entry) == date_ce_date) {
|
||||
php_date_obj *date_obj;
|
||||
date_obj = zend_object_store_get_object(*ht_entry TSRMLS_CC);
|
||||
period_obj->end = timelib_time_clone(date_obj->time);
|
||||
} else if (Z_TYPE_PP(ht_entry) != IS_NULL) {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (zend_hash_find(myht, "current", sizeof("current"), (void**) &ht_entry) == SUCCESS) {
|
||||
if (Z_TYPE_PP(ht_entry) == IS_OBJECT && Z_OBJCE_PP(ht_entry) == date_ce_date) {
|
||||
php_date_obj *date_obj;
|
||||
date_obj = zend_object_store_get_object(*ht_entry TSRMLS_CC);
|
||||
period_obj->current = timelib_time_clone(date_obj->time);
|
||||
} else if (Z_TYPE_PP(ht_entry) != IS_NULL) {
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (zend_hash_find(myht, "interval", sizeof("interval"), (void**) &ht_entry) == SUCCESS) {
|
||||
if (Z_TYPE_PP(ht_entry) == IS_OBJECT && Z_OBJCE_PP(ht_entry) == date_ce_interval) {
|
||||
php_interval_obj *interval_obj;
|
||||
interval_obj = zend_object_store_get_object(*ht_entry TSRMLS_CC);
|
||||
period_obj->interval = timelib_rel_time_clone(interval_obj->diff);
|
||||
} else { /* interval is required */
|
||||
return 0;
|
||||
}
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (zend_hash_find(myht, "recurrences", sizeof("recurrences"), (void**) &ht_entry) == SUCCESS &&
|
||||
Z_TYPE_PP(ht_entry) == IS_LONG && Z_LVAL_PP(ht_entry) >= 0 && Z_LVAL_PP(ht_entry) <= INT_MAX) {
|
||||
period_obj->recurrences = Z_LVAL_PP(ht_entry);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (zend_hash_find(myht, "include_start_date", sizeof("include_start_date"), (void**) &ht_entry) == SUCCESS &&
|
||||
Z_TYPE_PP(ht_entry) == IS_BOOL) {
|
||||
period_obj->include_start_date = Z_BVAL_PP(ht_entry);
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
|
||||
period_obj->initialized = 1;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* {{{ proto DatePeriod::__set_state()
|
||||
*/
|
||||
PHP_METHOD(DatePeriod, __set_state)
|
||||
{
|
||||
php_period_obj *period_obj;
|
||||
zval *array;
|
||||
HashTable *myht;
|
||||
|
||||
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a", &array) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
myht = Z_ARRVAL_P(array);
|
||||
|
||||
object_init_ex(return_value, date_ce_period);
|
||||
period_obj = zend_object_store_get_object(return_value TSRMLS_CC);
|
||||
if (!php_date_period_initialize_from_hash(period_obj, myht TSRMLS_CC)) {
|
||||
php_error(E_ERROR, "Invalid serialization data for DatePeriod object");
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto DatePeriod::__wakeup()
|
||||
*/
|
||||
PHP_METHOD(DatePeriod, __wakeup)
|
||||
{
|
||||
zval *object = getThis();
|
||||
php_period_obj *period_obj;
|
||||
HashTable *myht;
|
||||
|
||||
period_obj = zend_object_store_get_object(object TSRMLS_CC);
|
||||
|
||||
myht = Z_OBJPROP_P(object);
|
||||
|
||||
if (!php_date_period_initialize_from_hash(period_obj, myht TSRMLS_CC)) {
|
||||
php_error(E_ERROR, "Invalid serialization data for DatePeriod object");
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ date_period_read_property */
|
||||
static zval *date_period_read_property(zval *object, zval *member, int type, const zend_literal *key TSRMLS_DC)
|
||||
{
|
||||
zval *zv;
|
||||
if (type != BP_VAR_IS && type != BP_VAR_R) {
|
||||
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Retrieval of DatePeriod properties for modification is unsupported");
|
||||
}
|
||||
|
||||
Z_OBJPROP_P(object); /* build properties hash table */
|
||||
|
||||
zv = std_object_handlers.read_property(object, member, type, key TSRMLS_CC);
|
||||
if (Z_TYPE_P(zv) == IS_OBJECT && Z_OBJ_HANDLER_P(zv, clone_obj)) {
|
||||
/* defensive copy */
|
||||
zend_object_value zov = Z_OBJ_HANDLER_P(zv, clone_obj)(zv TSRMLS_CC);
|
||||
MAKE_STD_ZVAL(zv);
|
||||
Z_TYPE_P(zv) = IS_OBJECT;
|
||||
Z_OBJVAL_P(zv) = zov;
|
||||
}
|
||||
|
||||
return zv;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ date_period_write_property */
|
||||
static void date_period_write_property(zval *object, zval *member, zval *value, const zend_literal *key TSRMLS_DC)
|
||||
{
|
||||
php_error_docref(NULL TSRMLS_CC, E_ERROR, "Writing to DatePeriod properties is unsupported");
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
||||
/*
|
||||
* Local variables:
|
||||
* tab-width: 4
|
||||
|
||||
@@ -88,6 +88,8 @@ PHP_FUNCTION(date_interval_format);
|
||||
PHP_FUNCTION(date_interval_create_from_date_string);
|
||||
|
||||
PHP_METHOD(DatePeriod, __construct);
|
||||
PHP_METHOD(DatePeriod, __wakeup);
|
||||
PHP_METHOD(DatePeriod, __set_state);
|
||||
|
||||
/* Options and Configuration */
|
||||
PHP_FUNCTION(date_default_timezone_set);
|
||||
|
||||
@@ -11,8 +11,8 @@ $other = new DateTime("31-July-2008");
|
||||
$diff = date_diff($date, $other);
|
||||
|
||||
var_dump($diff);
|
||||
--EXPECT--
|
||||
object(DateInterval)#3 (8) {
|
||||
--EXPECTF--
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -25,8 +25,22 @@ object(DateInterval)#3 (8) {
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(3)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
@@ -15,8 +15,15 @@ DateInterval Object
|
||||
[h] => 12
|
||||
[i] => 30
|
||||
[s] => 5
|
||||
[weekday] => 0
|
||||
[weekday_behavior] => 0
|
||||
[first_last_day_of] => 0
|
||||
[invert] => 0
|
||||
[days] =>%s
|
||||
[days] =>
|
||||
[special_type] => 0
|
||||
[special_amount] => 0
|
||||
[have_weekday_relative] => 0
|
||||
[have_special_relative] => 0
|
||||
)
|
||||
DateInterval Object
|
||||
(
|
||||
@@ -26,6 +33,13 @@ DateInterval Object
|
||||
[h] => 12
|
||||
[i] => 30
|
||||
[s] => 5
|
||||
[weekday] => 0
|
||||
[weekday_behavior] => 0
|
||||
[first_last_day_of] => 0
|
||||
[invert] => 0
|
||||
[days] =>%s
|
||||
[days] => 0
|
||||
[special_type] => 0
|
||||
[special_amount] => 0
|
||||
[have_weekday_relative] => 0
|
||||
[have_special_relative] => 0
|
||||
)
|
||||
@@ -17,6 +17,13 @@ DateInterval Object
|
||||
[h] => 4
|
||||
[i] => 0
|
||||
[s] => 0
|
||||
[weekday] => 0
|
||||
[weekday_behavior] => 0
|
||||
[first_last_day_of] => 0
|
||||
[invert] => 0
|
||||
[days] => 30
|
||||
[special_type] => 0
|
||||
[special_amount] => 0
|
||||
[have_weekday_relative] => 0
|
||||
[have_special_relative] => 0
|
||||
)
|
||||
@@ -8,7 +8,7 @@ echo $i->format("%d"), "\n";
|
||||
echo $i->format("%a"), "\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
object(DateInterval)#1 (8) {
|
||||
object(DateInterval)#1 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -21,10 +21,24 @@ object(DateInterval)#1 (8) {
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
bool(false)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
7
|
||||
(unknown)
|
||||
@@ -32,7 +32,7 @@ var_dump($unser, $p);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
object(DateInterval)#3 (8) {
|
||||
object(DateInterval)#3 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -45,12 +45,26 @@ object(DateInterval)#3 (8) {
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
string(128) "O:12:"DateInterval":8:{s:1:"y";i:0;s:1:"m";i:0;s:1:"d";i:0;s:1:"h";i:4;s:1:"i";i:0;s:1:"s";i:0;s:6:"invert";i:0;s:4:"days";i:0;}"
|
||||
string(320) "O:12:"DateInterval":15:{s:1:"y";i:0;s:1:"m";i:0;s:1:"d";i:0;s:1:"h";i:4;s:1:"i";i:0;s:1:"s";i:0;s:7:"weekday";i:0;s:16:"weekday_behavior";i:0;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";i:0;s:12:"special_type";i:0;s:14:"special_amount";i:0;s:21:"have_weekday_relative";i:0;s:21:"have_special_relative";i:0;}"
|
||||
DateInterval::__set_state(array(
|
||||
'y' => 0,
|
||||
'm' => 0,
|
||||
@@ -58,9 +72,16 @@ DateInterval::__set_state(array(
|
||||
'h' => 4,
|
||||
'i' => 0,
|
||||
's' => 0,
|
||||
'weekday' => 0,
|
||||
'weekday_behavior' => 0,
|
||||
'first_last_day_of' => 0,
|
||||
'invert' => 0,
|
||||
'days' => 0,
|
||||
))object(DateInterval)#5 (8) {
|
||||
'special_type' => 0,
|
||||
'special_amount' => 0,
|
||||
'have_weekday_relative' => 0,
|
||||
'have_special_relative' => 0,
|
||||
))object(DateInterval)#5 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -73,14 +94,78 @@ DateInterval::__set_state(array(
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
object(DatePeriod)#6 (0) {
|
||||
object(DatePeriod)#6 (6) {
|
||||
["start"]=>
|
||||
object(DateTime)#4 (3) {
|
||||
["date"]=>
|
||||
string(19) "2003-01-02 08:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["current"]=>
|
||||
NULL
|
||||
["end"]=>
|
||||
NULL
|
||||
["interval"]=>
|
||||
object(DateInterval)#7 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(0)
|
||||
["h"]=>
|
||||
int(4)
|
||||
["i"]=>
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
["recurrences"]=>
|
||||
int(3)
|
||||
["include_start_date"]=>
|
||||
bool(true)
|
||||
}
|
||||
object(DateInterval)#4 (8) {
|
||||
object(DateInterval)#8 (15) {
|
||||
["y"]=>
|
||||
int(7)
|
||||
["m"]=>
|
||||
@@ -93,10 +178,74 @@ object(DateInterval)#4 (8) {
|
||||
int(3)
|
||||
["s"]=>
|
||||
int(2)
|
||||
["weekday"]=>
|
||||
int(-1)
|
||||
["weekday_behavior"]=>
|
||||
int(-1)
|
||||
["first_last_day_of"]=>
|
||||
int(-1)
|
||||
["invert"]=>
|
||||
int(1)
|
||||
["days"]=>
|
||||
int(2400)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(-1)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
object(DatePeriod)#7 (0) {
|
||||
object(DatePeriod)#9 (6) {
|
||||
["start"]=>
|
||||
object(DateTime)#6 (3) {
|
||||
["date"]=>
|
||||
string(19) "2003-01-02 08:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["current"]=>
|
||||
NULL
|
||||
["end"]=>
|
||||
NULL
|
||||
["interval"]=>
|
||||
object(DateInterval)#7 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(0)
|
||||
["h"]=>
|
||||
int(4)
|
||||
["i"]=>
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
["recurrences"]=>
|
||||
int(3)
|
||||
["include_start_date"]=>
|
||||
bool(true)
|
||||
}
|
||||
@@ -27,6 +27,13 @@ di Object
|
||||
[h] => 0
|
||||
[i] => 0
|
||||
[s] => 0
|
||||
[weekday] => 0
|
||||
[weekday_behavior] => 0
|
||||
[first_last_day_of] => 0
|
||||
[invert] => 0
|
||||
[days] =>
|
||||
[special_type] => 0
|
||||
[special_amount] => 0
|
||||
[have_weekday_relative] => 0
|
||||
[have_special_relative] => 0
|
||||
)
|
||||
@@ -25,7 +25,7 @@ foreach($intervals as $iv) {
|
||||
echo "==DONE==\n";
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(DateInterval)#%d (8) {
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(1)
|
||||
["m"]=>
|
||||
@@ -38,12 +38,26 @@ object(DateInterval)#%d (8) {
|
||||
int(30)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(1)
|
||||
["days"]=>
|
||||
int(437)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
object(DateInterval)#%d (8) {
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -56,12 +70,26 @@ object(DateInterval)#%d (8) {
|
||||
int(30)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(294)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
object(DateInterval)#%d (8) {
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -74,10 +102,24 @@ object(DateInterval)#%d (8) {
|
||||
int(30)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(294)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z/)
|
||||
DateInterval::__construct(): Failed to parse interval (2007-05-11T15:30:00Z)
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
--TEST--
|
||||
Bug #53437 (Crash when using unserialized DatePeriod instance)
|
||||
--XFAIL--
|
||||
Bug #53437 Not fixed yet
|
||||
Bug #53437 (Crash when using unserialized DatePeriod instance), variation 1
|
||||
--FILE--
|
||||
<?php
|
||||
$dp = new DatePeriod(new DateTime('2010-01-01 UTC'), new DateInterval('P1D'), 2);
|
||||
@@ -20,9 +18,137 @@ $dpu = unserialize($ser); // $dpu has invalid values???
|
||||
var_dump($dpu);
|
||||
|
||||
echo "Unserialized:\r\n";
|
||||
// ???which leads to CRASH:
|
||||
foreach($dpu as $dt) {
|
||||
echo $dt->format('Y-m-d H:i:s')."\r\n";
|
||||
}
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
Original:
|
||||
2010-01-01 00:00:00
|
||||
2010-01-02 00:00:00
|
||||
2010-01-03 00:00:00
|
||||
|
||||
object(DatePeriod)#1 (6) {
|
||||
["start"]=>
|
||||
object(DateTime)#2 (3) {
|
||||
["date"]=>
|
||||
string(19) "2010-01-01 00:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["current"]=>
|
||||
object(DateTime)#4 (3) {
|
||||
["date"]=>
|
||||
string(19) "2010-01-04 00:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["end"]=>
|
||||
NULL
|
||||
["interval"]=>
|
||||
object(DateInterval)#5 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(1)
|
||||
["h"]=>
|
||||
int(0)
|
||||
["i"]=>
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
bool(false)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
["recurrences"]=>
|
||||
int(3)
|
||||
["include_start_date"]=>
|
||||
bool(true)
|
||||
}
|
||||
object(DatePeriod)#5 (6) {
|
||||
["start"]=>
|
||||
object(DateTime)#10 (3) {
|
||||
["date"]=>
|
||||
string(19) "2010-01-01 00:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["current"]=>
|
||||
object(DateTime)#7 (3) {
|
||||
["date"]=>
|
||||
string(19) "2010-01-04 00:00:00"
|
||||
["timezone_type"]=>
|
||||
int(3)
|
||||
["timezone"]=>
|
||||
string(3) "UTC"
|
||||
}
|
||||
["end"]=>
|
||||
NULL
|
||||
["interval"]=>
|
||||
object(DateInterval)#8 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(1)
|
||||
["h"]=>
|
||||
int(0)
|
||||
["i"]=>
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
["recurrences"]=>
|
||||
int(3)
|
||||
["include_start_date"]=>
|
||||
bool(true)
|
||||
}
|
||||
Unserialized:
|
||||
2010-01-01 00:00:00
|
||||
2010-01-02 00:00:00
|
||||
2010-01-03 00:00:00
|
||||
==DONE==
|
||||
@@ -0,0 +1,13 @@
|
||||
--TEST--
|
||||
Bug #53437 (Crash when using unserialized DatePeriod instance), variation 2
|
||||
--FILE--
|
||||
<?php
|
||||
$s = 'O:10:"DatePeriod":0:{}';
|
||||
|
||||
$dp = unserialize($s);
|
||||
|
||||
var_dump($dp);
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECTF--
|
||||
Fatal error: Invalid serialization data for DatePeriod object in %sbug53437_var1.php on line %d
|
||||
@@ -0,0 +1,80 @@
|
||||
--TEST--
|
||||
Bug #53437 DateInterval basic serialization
|
||||
--FILE--
|
||||
<?php
|
||||
$di0 = new DateInterval('P2Y4DT6H8M');
|
||||
|
||||
$s = serialize($di0);
|
||||
|
||||
$di1 = unserialize($s);
|
||||
|
||||
var_dump($di0, $di1);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECT--
|
||||
object(DateInterval)#1 (15) {
|
||||
["y"]=>
|
||||
int(2)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(4)
|
||||
["h"]=>
|
||||
int(6)
|
||||
["i"]=>
|
||||
int(8)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
bool(false)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
object(DateInterval)#2 (15) {
|
||||
["y"]=>
|
||||
int(2)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(4)
|
||||
["h"]=>
|
||||
int(6)
|
||||
["i"]=>
|
||||
int(8)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
==DONE==
|
||||
@@ -0,0 +1,47 @@
|
||||
--TEST--
|
||||
Bug #53437 DateInterval unserialize bad data, 32 bit
|
||||
--SKIPIF--
|
||||
<?php if (PHP_INT_SIZE != 4) { die('skip 32 bit only'); } ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";}';
|
||||
|
||||
$di = unserialize($s);
|
||||
var_dump($di);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECTF--
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(2)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(0)
|
||||
["h"]=>
|
||||
int(6)
|
||||
["i"]=>
|
||||
int(8)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(10)
|
||||
["weekday_behavior"]=>
|
||||
int(10)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(-1)
|
||||
["have_weekday_relative"]=>
|
||||
int(9)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
==DONE==
|
||||
@@ -0,0 +1,64 @@
|
||||
--TEST--
|
||||
Bug #53437 (Check that var_dump out is the same using the whole object or it's single properties), variation 4
|
||||
--INI--
|
||||
date.timezone = Europe/Berlin
|
||||
--FILE--
|
||||
<?php
|
||||
$dt = new DateTime('2009-10-11');
|
||||
|
||||
$df = $dt->diff(new DateTime('2009-10-13'));
|
||||
|
||||
var_dump($df,
|
||||
$df->y,
|
||||
$df->m,
|
||||
$df->d,
|
||||
$df->h,
|
||||
$df->i,
|
||||
$df->s,
|
||||
$df->invert,
|
||||
$df->days);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECTF--
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(2)
|
||||
["h"]=>
|
||||
int(0)
|
||||
["i"]=>
|
||||
int(0)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(2)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
int(0)
|
||||
int(0)
|
||||
int(2)
|
||||
int(0)
|
||||
int(0)
|
||||
int(0)
|
||||
int(0)
|
||||
int(2)
|
||||
==DONE==
|
||||
@@ -0,0 +1,47 @@
|
||||
--TEST--
|
||||
Bug #53437 DateInterval unserialize bad data, 64 bit
|
||||
--SKIPIF--
|
||||
<?php if (PHP_INT_SIZE != 8) { die('skip true 64 bit only'); } ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$s = 'O:12:"DateInterval":15:{s:1:"y";s:1:"2";s:1:"m";s:1:"0";s:1:"d";s:3:"bla";s:1:"h";s:1:"6";s:1:"i";s:1:"8";s:1:"s";s:1:"0";s:7:"weekday";i:10;s:16:"weekday_behavior";i:10;s:17:"first_last_day_of";i:0;s:6:"invert";i:0;s:4:"days";s:4:"aoeu";s:12:"special_type";i:0;s:14:"special_amount";s:21:"234523452345234532455";s:21:"have_weekday_relative";i:21474836489;s:21:"have_special_relative";s:3:"bla";}';
|
||||
|
||||
$di = unserialize($s);
|
||||
var_dump($di);
|
||||
|
||||
?>
|
||||
==DONE==
|
||||
--EXPECTF--
|
||||
object(DateInterval)#%d (15) {
|
||||
["y"]=>
|
||||
int(2)
|
||||
["m"]=>
|
||||
int(0)
|
||||
["d"]=>
|
||||
int(0)
|
||||
["h"]=>
|
||||
int(6)
|
||||
["i"]=>
|
||||
int(8)
|
||||
["s"]=>
|
||||
int(0)
|
||||
["weekday"]=>
|
||||
int(10)
|
||||
["weekday_behavior"]=>
|
||||
int(10)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(0)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(9223372036854775807)
|
||||
["have_weekday_relative"]=>
|
||||
int(9)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
==DONE==
|
||||
@@ -28,7 +28,7 @@ object(DateTime)#2 (3) {
|
||||
["timezone"]=>
|
||||
string(3) "EDT"
|
||||
}
|
||||
object(DateInterval)#3 (8) {
|
||||
object(DateInterval)#3 (15) {
|
||||
["y"]=>
|
||||
int(0)
|
||||
["m"]=>
|
||||
@@ -41,8 +41,22 @@ object(DateInterval)#3 (8) {
|
||||
int(19)
|
||||
["s"]=>
|
||||
int(40)
|
||||
["weekday"]=>
|
||||
int(0)
|
||||
["weekday_behavior"]=>
|
||||
int(0)
|
||||
["first_last_day_of"]=>
|
||||
int(0)
|
||||
["invert"]=>
|
||||
int(0)
|
||||
["days"]=>
|
||||
int(33)
|
||||
["special_type"]=>
|
||||
int(0)
|
||||
["special_amount"]=>
|
||||
int(0)
|
||||
["have_weekday_relative"]=>
|
||||
int(0)
|
||||
["have_special_relative"]=>
|
||||
int(0)
|
||||
}
|
||||
@@ -14,7 +14,7 @@ offset: +1 GMT
|
||||
|
||||
echo "Basic test for date_sunrise() and date_sunset()\n";
|
||||
|
||||
// supress date() function strict msgs
|
||||
// suppress date() function strict msgs
|
||||
error_reporting(E_ALL & ~E_STRICT);
|
||||
|
||||
echo date("D M d Y") . ', sunrise time : ' . date_sunrise(time(), SUNFUNCS_RET_STRING, 38.4, -9, 90, 1) . "\n";
|
||||
|
||||
@@ -20,7 +20,7 @@ DBA CDB handler test (read only)
|
||||
$keys .= $a;
|
||||
$count++;
|
||||
}
|
||||
// display number of entries and key existance
|
||||
// display number of entries and key existence
|
||||
echo $count;
|
||||
for ($i=1; $i<8; $i++) {
|
||||
echo dba_exists($i, $db_file) ? "Y" : "N";
|
||||
|
||||
+1
-1
@@ -177,7 +177,7 @@ PHP_METHOD(domelement, __construct)
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
/* Namespace logic is seperate and only when uri passed in to insure no BC breakage */
|
||||
/* Namespace logic is separate and only when uri passed in to insure no BC breakage */
|
||||
if (uri_len > 0) {
|
||||
errorcode = dom_check_qname(name, &localname, &prefix, uri_len, name_len);
|
||||
if (errorcode == 0) {
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Test DOMDocument::loadHTMLFile
|
||||
--DESCRIPTION--
|
||||
Verifies the basic behaviour of the method
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile(dirname(__FILE__) . "/test.html");
|
||||
assert('$result === true');
|
||||
?>
|
||||
--EXPECT--
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Test DOMDocument::loadHTMLFile when the file doesn't exist
|
||||
--DESCRIPTION--
|
||||
Verifies that an error message is showed if the file doesn't exist
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile(dirname(__FILE__) . "/ffff/test.html");
|
||||
assert('$result === false');
|
||||
?>
|
||||
--EXPECTF--
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile(): I/O warning : failed to load external entity %s
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Test DOMDocument::loadHTMLFile when an empty string is passed
|
||||
--DESCRIPTION--
|
||||
Verifies that an error message is showed if an empty string is passed as argument
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile("");
|
||||
assert('$result === false');
|
||||
?>
|
||||
--EXPECTF--
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile(): Empty string supplied as input %s
|
||||
@@ -0,0 +1,18 @@
|
||||
--TEST--
|
||||
Test DOMDocument::loadHTMLFile when an empty document is loaded
|
||||
--DESCRIPTION--
|
||||
Verifies that an warning message is showed if an empty document is loaded
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile(dirname(__FILE__) . "/empty.html");
|
||||
assert('$result === true');
|
||||
?>
|
||||
--EXPECTF--
|
||||
%r(PHP ){0,1}%rWarning: DOMDocument::loadHTMLFile(): Document is empty %s
|
||||
@@ -0,0 +1,17 @@
|
||||
--TEST--
|
||||
Test DOMDocument::loadHTMLFile when a not-well formed document is loaded
|
||||
--DESCRIPTION--
|
||||
Verifies the behavior if a not-well formed document is loaded
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$doc = new DOMDocument();
|
||||
$result = $doc->loadHTMLFile(dirname(__FILE__) . "/not_well.html");
|
||||
assert('$result === true');
|
||||
?>
|
||||
--EXPECT--
|
||||
@@ -13,7 +13,7 @@ require_once('skipif.inc');
|
||||
require_once('dom_test.inc');
|
||||
|
||||
chdir(__DIR__);
|
||||
$XMLStringGood = file_get_contents('note.xml');
|
||||
$XMLStringGood = file_get_contents(dirname(__FILE__).'/note.xml');
|
||||
|
||||
$dom = new DOMDocument;
|
||||
$dom->resolveExternals = TRUE;
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
|
||||
--DESCRIPTION--
|
||||
DOMNode::insertBefore(newNode, [refNode])
|
||||
DOM_NOT_FOUND is raised if refnode is not a child
|
||||
This test checks the error message is raised when the refnode is a sibling
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dom = new DOMDocument();
|
||||
|
||||
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
|
||||
assert('$doc === true');
|
||||
|
||||
$parent_node = $dom->getElementsByTagName("book")->item(0);
|
||||
assert('!is_null($parent_node)');
|
||||
|
||||
$new_node = $dom->createElement('newnode');
|
||||
assert('$new_node !== false');
|
||||
|
||||
// getting a sibling as reference node to insert
|
||||
|
||||
$ref_node = $dom->getElementsByTagName("book")->item(1);
|
||||
|
||||
try {
|
||||
$parent_node->insertBefore($new_node, $ref_node);
|
||||
} catch(DOMException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Not Found Error
|
||||
@@ -0,0 +1,39 @@
|
||||
--TEST--
|
||||
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
|
||||
--DESCRIPTION--
|
||||
DOMNode::insertBefore(newNode, [refNode])
|
||||
DOM_NOT_FOUND is raised if refnode is not a child
|
||||
This test checks the error message is raised when refnode is the parent node
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dom = new DOMDocument();
|
||||
|
||||
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
|
||||
assert('$doc === true');
|
||||
|
||||
$parent_node = $dom->getElementsByTagName("book")->item(0);
|
||||
assert('!is_null($parent_node)');
|
||||
|
||||
$new_node = $dom->createElement('newnode');
|
||||
assert('$new_node !== false');
|
||||
|
||||
// getting the parent node as reference node to insert
|
||||
|
||||
$ref_node = $dom->getElementsByTagName("book")->item(0)->parentNode;
|
||||
assert('!is_null($ref_node)');
|
||||
|
||||
try {
|
||||
$parent_node->insertBefore($new_node, $ref_node);
|
||||
} catch(DOMException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Not Found Error
|
||||
@@ -0,0 +1,38 @@
|
||||
--TEST--
|
||||
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
|
||||
--DESCRIPTION--
|
||||
DOMNode::insertBefore(newNode, [refNode])
|
||||
DOM_NOT_FOUND is raised if refnode is not a child
|
||||
This test checks the error message is raised when the refnode is a brand new node
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dom = new DOMDocument();
|
||||
|
||||
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
|
||||
assert('$doc === true');
|
||||
|
||||
$parent_node = $dom->getElementsByTagName("book")->item(0);
|
||||
assert('!is_null($parent_node)');
|
||||
|
||||
$new_node = $dom->createElement('newnode');
|
||||
assert('$new_node !== false');
|
||||
|
||||
// could be a brand new node
|
||||
|
||||
$ref_node = $dom->createElement('newnode2');
|
||||
|
||||
try {
|
||||
$parent_node->insertBefore($new_node, $ref_node);
|
||||
} catch(DOMException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Not Found Error
|
||||
@@ -0,0 +1,40 @@
|
||||
--TEST--
|
||||
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
|
||||
--DESCRIPTION--
|
||||
DOMNode::insertBefore(newNode, [refNode])
|
||||
DOM_NOT_FOUND is raised if refnode is not a child
|
||||
This test checks the error message is raised when the refnode is a descendant but not a child
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dom = new DOMDocument();
|
||||
|
||||
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
|
||||
assert('$doc === true');
|
||||
|
||||
$parent_node = $dom->getElementsByTagName("book")->item(0);
|
||||
assert('!is_null($parent_node)');
|
||||
|
||||
$new_node = $dom->createElement('newnode');
|
||||
assert('$new_node !== false');
|
||||
|
||||
// creating a new node (descendant) and getting it as the refnode
|
||||
|
||||
$ref_node = $dom->createElement('newnode3');
|
||||
$parent_node->childNodes->item(0)->appendChild($ref_node);
|
||||
$dom->saveXML();
|
||||
|
||||
try {
|
||||
$parent_node->insertBefore($new_node, $ref_node);
|
||||
} catch(DOMException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Not Found Error
|
||||
@@ -0,0 +1,35 @@
|
||||
--TEST--
|
||||
Test DOMNode::insertBefore() check the error code DOM_NOT_FOUND is raised
|
||||
--DESCRIPTION--
|
||||
DOMNode::insertBefore(newNode, [refNode])
|
||||
DOM_NOT_FOUND is raised if refnode is not a child
|
||||
This test checks the error message is raised when the refnode is the parent
|
||||
--CREDITS--
|
||||
Antonio Diaz Ruiz <dejalatele@gmail.com>
|
||||
--INI--
|
||||
assert.bail=true
|
||||
--SKIPIF--
|
||||
<?php include('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
$dom = new DOMDocument();
|
||||
|
||||
$doc = $dom->load(dirname(__FILE__) . "/book.xml", LIBXML_NOBLANKS);
|
||||
assert('$doc === true');
|
||||
|
||||
$parent_node = $dom->getElementsByTagName("book")->item(0);
|
||||
assert('!is_null($parent_node)');
|
||||
$ref_node = $parent_node;
|
||||
|
||||
$new_node = $dom->createElement('newnode');
|
||||
assert('$new_node !== false');
|
||||
|
||||
try {
|
||||
$parent_node->insertBefore($new_node, $ref_node);
|
||||
} catch(DOMException $e) {
|
||||
echo $e->getMessage();
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Not Found Error
|
||||
@@ -39,7 +39,7 @@ $root = $dom->documentElement;
|
||||
|
||||
$children = $root->childNodes;
|
||||
$len = $children->length;
|
||||
echo "orignal has $len nodes\n";
|
||||
echo "original has $len nodes\n";
|
||||
for ($index = $children->length - 1; $index >=0; $index--) {
|
||||
echo "node $index\n";
|
||||
$current = $children->item($index);
|
||||
@@ -58,7 +58,7 @@ for ($index = 0; $index < $children->length; $index++) {
|
||||
}
|
||||
|
||||
--EXPECTF--
|
||||
orignal has 5 nodes
|
||||
original has 5 nodes
|
||||
node 4
|
||||
Course: no title:DOMText
|
||||
~string(1) "
|
||||
|
||||
Whitespace-only changes.
@@ -0,0 +1,8 @@
|
||||
<head>
|
||||
<title>Hello world</title>
|
||||
</head>
|
||||
<body>
|
||||
This is a not well-formed<br>
|
||||
html files with undeclared entities
|
||||
</body>
|
||||
</html>
|
||||
@@ -651,7 +651,7 @@ PHP_FUNCTION(enchant_broker_free_dict)
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool enchant_broker_dict_exists(resource broker, string tag)
|
||||
Wether a dictionary exists or not. Using non-empty tag */
|
||||
Whether a dictionary exists or not. Using non-empty tag */
|
||||
PHP_FUNCTION(enchant_broker_dict_exists)
|
||||
{
|
||||
zval *broker;
|
||||
|
||||
@@ -78,7 +78,7 @@ $values = array (
|
||||
|
||||
|
||||
// loop through each element of the array and check the working of exif_tagname()
|
||||
// when $index arugment is supplied with different values
|
||||
// when $index argument is supplied with different values
|
||||
|
||||
echo "\n--- Testing exif_tagname() by supplying different values for 'index' argument ---\n";
|
||||
$counter = 1;
|
||||
|
||||
+40
-34
@@ -1,6 +1,6 @@
|
||||
diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
--- libmagic.orig/apprentice.c 2013-03-21 18:45:14.000000000 +0100
|
||||
+++ libmagic/apprentice.c 2013-04-08 16:14:17.828357711 +0200
|
||||
+++ libmagic/apprentice.c 2013-04-27 13:53:32.175250261 +0200
|
||||
@@ -29,6 +29,8 @@
|
||||
* apprentice - make one pass through /etc/magic, learning its secrets.
|
||||
*/
|
||||
@@ -352,7 +352,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
file_oomem(ms, slen);
|
||||
return -1;
|
||||
}
|
||||
@@ -1102,14 +1121,14 @@
|
||||
@@ -1102,27 +1121,29 @@
|
||||
if (me == NULL)
|
||||
return;
|
||||
for (i = 0; i < nme; i++)
|
||||
@@ -370,8 +370,9 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
struct magic_entry *mentry[MAGIC_SETS] = { NULL };
|
||||
uint32_t mentrycount[MAGIC_SETS] = { 0 };
|
||||
uint32_t i, j;
|
||||
@@ -1117,12 +1136,14 @@
|
||||
char **filearr = NULL, *mfn;
|
||||
size_t files = 0, maxfiles = 0;
|
||||
- char **filearr = NULL, *mfn;
|
||||
+ char **filearr = NULL;
|
||||
struct stat st;
|
||||
struct magic_map *map;
|
||||
- DIR *dir;
|
||||
@@ -411,7 +412,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
+ int mflen;
|
||||
+ char mfn[MAXPATHLEN];
|
||||
+
|
||||
+ dir = php_stream_opendir(fn, REPORT_ERRORS, NULL);
|
||||
+ dir = php_stream_opendir((char *)fn, REPORT_ERRORS, NULL);
|
||||
if (!dir) {
|
||||
errs++;
|
||||
goto out;
|
||||
@@ -578,7 +579,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
+#ifdef PHP_WIN32
|
||||
+ /* Don't bother on windows with php_stream_open_wrapper,
|
||||
+ return to give apprentice_load() a chance. */
|
||||
+ if (php_stream_stat_path_ex(fn, 0, &st, NULL) == SUCCESS) {
|
||||
+ if (php_stream_stat_path_ex((char *)fn, 0, &st, NULL) == SUCCESS) {
|
||||
+ if (st.sb.st_mode & S_IFDIR) {
|
||||
+ goto error;
|
||||
+ }
|
||||
@@ -751,7 +752,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
}
|
||||
|
||||
- if (write(fd, map->nmagic, nm) != (ssize_t)nm) {
|
||||
+ if (php_stream_write(stream, map->nmagic, nm) != (ssize_t)nm) {
|
||||
+ if (php_stream_write(stream, (const char *)map->nmagic, nm) != (ssize_t)nm) {
|
||||
file_error(ms, errno, "error writing `%s'", dbname);
|
||||
goto out;
|
||||
}
|
||||
@@ -767,7 +768,7 @@ diff -u libmagic.orig/apprentice.c libmagic/apprentice.c
|
||||
for (i = 0; i < MAGIC_SETS; i++) {
|
||||
len = m * map->nmagic[i];
|
||||
- if (write(fd, map->magic[i], len) != (ssize_t)len) {
|
||||
+ if (php_stream_write(stream, map->magic[i], len) != (ssize_t)len) {
|
||||
+ if (php_stream_write(stream, (const char *)map->magic[i], len) != (ssize_t)len) {
|
||||
file_error(ms, errno, "error writing `%s'", dbname);
|
||||
goto out;
|
||||
}
|
||||
@@ -2047,7 +2048,7 @@ diff -u libmagic.orig/funcs.c libmagic/funcs.c
|
||||
+
|
||||
diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
--- libmagic.orig/magic.c 2013-01-11 17:43:09.000000000 +0100
|
||||
+++ libmagic/magic.c 2013-04-08 15:42:57.328298809 +0200
|
||||
+++ libmagic/magic.c 2013-04-27 13:53:32.175250261 +0200
|
||||
@@ -25,11 +25,6 @@
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
@@ -2089,7 +2090,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
#if defined(HAVE_UTIMES)
|
||||
# include <sys/time.h>
|
||||
#elif defined(HAVE_UTIME)
|
||||
@@ -71,18 +75,24 @@
|
||||
@@ -71,18 +75,25 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -2098,14 +2099,14 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
+# undef S_IFIFO
|
||||
+#endif
|
||||
+
|
||||
+private void free_mlist(struct mlist *);
|
||||
private void close_and_restore(const struct magic_set *, const char *, int,
|
||||
const struct stat *);
|
||||
private int unreadable_info(struct magic_set *, mode_t, const char *);
|
||||
+#if 0
|
||||
private const char* get_default_magic(void);
|
||||
-#ifndef COMPILE_ONLY
|
||||
-private const char *file_or_fd(struct magic_set *, const char *, int);
|
||||
-#endif
|
||||
#endif
|
||||
+private const char *file_or_stream(struct magic_set *, const char *, php_stream *);
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
@@ -2117,7 +2118,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
private const char *
|
||||
get_default_magic(void)
|
||||
{
|
||||
@@ -90,7 +100,7 @@
|
||||
@@ -90,7 +101,7 @@
|
||||
static char *default_magic;
|
||||
char *home, *hmagicpath;
|
||||
|
||||
@@ -2126,7 +2127,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
struct stat st;
|
||||
|
||||
if (default_magic) {
|
||||
@@ -104,17 +114,17 @@
|
||||
@@ -104,17 +115,17 @@
|
||||
return MAGIC;
|
||||
if (stat(hmagicpath, &st) == -1) {
|
||||
free(hmagicpath);
|
||||
@@ -2153,7 +2154,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
}
|
||||
|
||||
if (asprintf(&default_magic, "%s:%s", hmagicpath, MAGIC) < 0)
|
||||
@@ -128,6 +138,7 @@
|
||||
@@ -128,6 +139,7 @@
|
||||
#else
|
||||
char *hmagicp = hmagicpath;
|
||||
char *tmppath = NULL;
|
||||
@@ -2161,7 +2162,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
|
||||
#define APPENDPATH() \
|
||||
do { \
|
||||
@@ -172,7 +183,7 @@
|
||||
@@ -172,7 +184,7 @@
|
||||
}
|
||||
|
||||
/* Third, try to get magic file relative to dll location */
|
||||
@@ -2170,7 +2171,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
dllpath[MAX_PATH] = 0; /* just in case long path gets truncated and not null terminated */
|
||||
if (GetModuleFileNameA(NULL, dllpath, MAX_PATH)){
|
||||
PathRemoveFileSpecA(dllpath);
|
||||
@@ -210,6 +221,7 @@
|
||||
@@ -210,6 +222,7 @@
|
||||
|
||||
return action == FILE_LOAD ? get_default_magic() : MAGIC;
|
||||
}
|
||||
@@ -2178,7 +2179,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
|
||||
public struct magic_set *
|
||||
magic_open(int flags)
|
||||
@@ -250,7 +262,7 @@
|
||||
@@ -250,7 +263,7 @@
|
||||
magic_load(struct magic_set *ms, const char *magicfile)
|
||||
{
|
||||
if (ms == NULL)
|
||||
@@ -2187,7 +2188,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
return file_apprentice(ms, magicfile, FILE_LOAD);
|
||||
}
|
||||
|
||||
@@ -262,13 +274,6 @@
|
||||
@@ -262,13 +275,6 @@
|
||||
return file_apprentice(ms, magicfile, FILE_COMPILE);
|
||||
}
|
||||
|
||||
@@ -2201,7 +2202,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
|
||||
public int
|
||||
magic_list(struct magic_set *ms, const char *magicfile)
|
||||
@@ -282,9 +287,6 @@
|
||||
@@ -282,9 +288,6 @@
|
||||
close_and_restore(const struct magic_set *ms, const char *name, int fd,
|
||||
const struct stat *sb)
|
||||
{
|
||||
@@ -2211,7 +2212,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
|
||||
if ((ms->flags & MAGIC_PRESERVE_ATIME) != 0) {
|
||||
/*
|
||||
@@ -311,7 +313,6 @@
|
||||
@@ -311,7 +314,6 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2219,7 +2220,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
|
||||
/*
|
||||
* find type of descriptor
|
||||
@@ -321,7 +322,7 @@
|
||||
@@ -321,7 +323,7 @@
|
||||
{
|
||||
if (ms == NULL)
|
||||
return NULL;
|
||||
@@ -2228,7 +2229,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -332,30 +333,42 @@
|
||||
@@ -332,30 +334,42 @@
|
||||
{
|
||||
if (ms == NULL)
|
||||
return NULL;
|
||||
@@ -2277,7 +2278,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
case -1: /* error */
|
||||
goto done;
|
||||
case 0: /* nothing found */
|
||||
@@ -365,68 +378,48 @@
|
||||
@@ -365,68 +379,48 @@
|
||||
goto done;
|
||||
}
|
||||
|
||||
@@ -2372,7 +2373,7 @@ diff -u libmagic.orig/magic.c libmagic/magic.c
|
||||
return rv == 0 ? file_getbuffer(ms) : NULL;
|
||||
}
|
||||
|
||||
@@ -440,14 +433,13 @@
|
||||
@@ -440,14 +434,13 @@
|
||||
return NULL;
|
||||
/*
|
||||
* The main work is done here!
|
||||
@@ -2410,8 +2411,8 @@ diff -u libmagic.orig/magic.h libmagic/magic.h
|
||||
|
||||
diff -u libmagic.orig/print.c libmagic/print.c
|
||||
--- libmagic.orig/print.c 2013-03-21 18:45:14.000000000 +0100
|
||||
+++ libmagic/print.c 2013-04-08 15:42:57.328298809 +0200
|
||||
@@ -28,6 +28,8 @@
|
||||
+++ libmagic/print.c 2013-04-27 13:53:32.175250261 +0200
|
||||
@@ -28,13 +28,17 @@
|
||||
/*
|
||||
* print.c - debugging printout routines
|
||||
*/
|
||||
@@ -2419,8 +2420,9 @@ diff -u libmagic.orig/print.c libmagic/print.c
|
||||
+#include "php.h"
|
||||
|
||||
#include "file.h"
|
||||
+#include "cdf.h"
|
||||
|
||||
@@ -35,6 +37,7 @@
|
||||
#ifndef lint
|
||||
FILE_RCSID("@(#)$File: print.c,v 1.76 2013/02/26 18:25:00 christos Exp $")
|
||||
#endif /* lint */
|
||||
|
||||
@@ -2428,7 +2430,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdlib.h>
|
||||
@@ -43,188 +46,28 @@
|
||||
@@ -43,188 +47,28 @@
|
||||
#endif
|
||||
#include <time.h>
|
||||
|
||||
@@ -2619,7 +2621,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
|
||||
- (void) fprintf(stderr, "Warning: ");
|
||||
va_start(va, f);
|
||||
- (void) vfprintf(stderr, f, va);
|
||||
+ vasprintf(&expanded_format, f, va);
|
||||
+ if (vasprintf(&expanded_format, f, va)); /* silence */
|
||||
va_end(va);
|
||||
- (void) fputc('\n', stderr);
|
||||
+
|
||||
@@ -2629,7 +2631,7 @@ diff -u libmagic.orig/print.c libmagic/print.c
|
||||
}
|
||||
|
||||
protected const char *
|
||||
@@ -235,7 +78,7 @@
|
||||
@@ -235,7 +79,7 @@
|
||||
struct tm *tm;
|
||||
|
||||
if (flags & FILE_T_WINDOWS) {
|
||||
@@ -2976,7 +2978,7 @@ diff -u libmagic.orig/readelf.h libmagic/readelf.h
|
||||
typedef uint8_t Elf64_Char;
|
||||
diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
|
||||
--- libmagic.orig/softmagic.c 2013-03-21 18:45:14.000000000 +0100
|
||||
+++ libmagic/softmagic.c 2013-04-08 15:42:57.328298809 +0200
|
||||
+++ libmagic/softmagic.c 2013-05-14 11:00:07.044745939 +0200
|
||||
@@ -41,6 +41,11 @@
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
@@ -3121,7 +3123,7 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1717,9 +1694,9 @@
|
||||
@@ -1717,12 +1694,12 @@
|
||||
ms->o.buf = sbuf;
|
||||
ms->offset = soffset;
|
||||
if (rv == 1) {
|
||||
@@ -3132,7 +3134,11 @@ diff -u libmagic.orig/softmagic.c libmagic/softmagic.c
|
||||
+ return -1;
|
||||
if (file_printf(ms, "%s", rbuf) == -1)
|
||||
return -1;
|
||||
free(rbuf);
|
||||
- free(rbuf);
|
||||
+ efree(rbuf);
|
||||
}
|
||||
return rv;
|
||||
|
||||
@@ -1837,6 +1814,42 @@
|
||||
return file_strncmp(a, b, len, flags);
|
||||
}
|
||||
|
||||
@@ -1133,7 +1133,7 @@ apprentice_load(struct magic_set *ms, const char *fn, int action)
|
||||
uint32_t mentrycount[MAGIC_SETS] = { 0 };
|
||||
uint32_t i, j;
|
||||
size_t files = 0, maxfiles = 0;
|
||||
char **filearr = NULL, *mfn;
|
||||
char **filearr = NULL;
|
||||
struct stat st;
|
||||
struct magic_map *map;
|
||||
php_stream *dir;
|
||||
@@ -1169,7 +1169,7 @@ apprentice_load(struct magic_set *ms, const char *fn, int action)
|
||||
int mflen;
|
||||
char mfn[MAXPATHLEN];
|
||||
|
||||
dir = php_stream_opendir(fn, REPORT_ERRORS, NULL);
|
||||
dir = php_stream_opendir((char *)fn, REPORT_ERRORS, NULL);
|
||||
if (!dir) {
|
||||
errs++;
|
||||
goto out;
|
||||
@@ -2613,7 +2613,7 @@ apprentice_map(struct magic_set *ms, const char *fn)
|
||||
#ifdef PHP_WIN32
|
||||
/* Don't bother on windows with php_stream_open_wrapper,
|
||||
return to give apprentice_load() a chance. */
|
||||
if (php_stream_stat_path_ex(fn, 0, &st, NULL) == SUCCESS) {
|
||||
if (php_stream_stat_path_ex((char *)fn, 0, &st, NULL) == SUCCESS) {
|
||||
if (st.sb.st_mode & S_IFDIR) {
|
||||
goto error;
|
||||
}
|
||||
@@ -2778,7 +2778,7 @@ apprentice_compile(struct magic_set *ms, struct magic_map *map, const char *fn)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (php_stream_write(stream, map->nmagic, nm) != (ssize_t)nm) {
|
||||
if (php_stream_write(stream, (const char *)map->nmagic, nm) != (ssize_t)nm) {
|
||||
file_error(ms, errno, "error writing `%s'", dbname);
|
||||
goto out;
|
||||
}
|
||||
@@ -2792,7 +2792,7 @@ apprentice_compile(struct magic_set *ms, struct magic_map *map, const char *fn)
|
||||
|
||||
for (i = 0; i < MAGIC_SETS; i++) {
|
||||
len = m * map->nmagic[i];
|
||||
if (php_stream_write(stream, map->magic[i], len) != (ssize_t)len) {
|
||||
if (php_stream_write(stream, (const char *)map->magic[i], len) != (ssize_t)len) {
|
||||
file_error(ms, errno, "error writing `%s'", dbname);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -80,11 +80,12 @@ FILE_RCSID("@(#)$File: magic.c,v 1.78 2013/01/07 18:20:19 christos Exp $")
|
||||
# undef S_IFIFO
|
||||
#endif
|
||||
|
||||
private void free_mlist(struct mlist *);
|
||||
private void close_and_restore(const struct magic_set *, const char *, int,
|
||||
const struct stat *);
|
||||
private int unreadable_info(struct magic_set *, mode_t, const char *);
|
||||
#if 0
|
||||
private const char* get_default_magic(void);
|
||||
#endif
|
||||
private const char *file_or_stream(struct magic_set *, const char *, php_stream *);
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "php.h"
|
||||
|
||||
#include "file.h"
|
||||
#include "cdf.h"
|
||||
|
||||
#ifndef lint
|
||||
FILE_RCSID("@(#)$File: print.c,v 1.76 2013/02/26 18:25:00 christos Exp $")
|
||||
@@ -63,7 +64,7 @@ file_magwarn(struct magic_set *ms, const char *f, ...)
|
||||
TSRMLS_FETCH();
|
||||
|
||||
va_start(va, f);
|
||||
vasprintf(&expanded_format, f, va);
|
||||
if (vasprintf(&expanded_format, f, va)); /* silence */
|
||||
va_end(va);
|
||||
|
||||
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "Warning: %s", expanded_format);
|
||||
|
||||
@@ -1699,7 +1699,7 @@ mget(struct magic_set *ms, const unsigned char *s, struct magic *m,
|
||||
return -1;
|
||||
if (file_printf(ms, "%s", rbuf) == -1)
|
||||
return -1;
|
||||
free(rbuf);
|
||||
efree(rbuf);
|
||||
}
|
||||
return rv;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ ksort($results);
|
||||
var_dump($results);
|
||||
?>
|
||||
--EXPECTF--
|
||||
array(7) {
|
||||
array(8) {
|
||||
["%s/resources/dir.zip"]=>
|
||||
string(15) "application/zip"
|
||||
["%s/resources/test.awk"]=>
|
||||
@@ -29,6 +29,8 @@ array(7) {
|
||||
string(9) "image/gif"
|
||||
["%s/resources/test.jpg"]=>
|
||||
string(10) "image/jpeg"
|
||||
["%s/resources/test.mp3"]=>
|
||||
string(10) "audio/mpeg"
|
||||
["%s/resources/test.pdf"]=>
|
||||
string(15) "application/pdf"
|
||||
["%s/resources/test.png"]=>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
Test finfo extention : loading into phpinfo()
|
||||
Test finfo extension : loading into phpinfo()
|
||||
--SKIPIF--
|
||||
<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
|
||||
--FILE--
|
||||
|
||||
@@ -4957,7 +4957,7 @@
|
||||
>>>>0 ubelong =0 \b, next free block index %lu
|
||||
>>>>0 ubelong !0 \b, next free block index %lu
|
||||
>>>512 default x dBase IV DBT
|
||||
# DBF file name without extention
|
||||
# DBF file name without extension
|
||||
>>>>8 string >\0 \b of %-.8s.DBF
|
||||
# size of blocks ; not reliable 0x2020204C
|
||||
#>>>>4 ulelong =0 \b, blocks size %lu
|
||||
@@ -13205,7 +13205,7 @@
|
||||
# they have their real name at offset 22
|
||||
>>>>>22 string >\0 \b%-.5s
|
||||
>4 uleshort&0x8000 0x0000
|
||||
# 32 bit sector adressing ( > 32 MB) for block devices
|
||||
# 32 bit sector addressing ( > 32 MB) for block devices
|
||||
>>4 uleshort&0x0002 0x0002 \b,32-bit sector-
|
||||
# support by driver functions 13h, 17h, 18h
|
||||
>4 uleshort&0x0040 0x0040 \b,IOCTL-
|
||||
@@ -17951,7 +17951,7 @@
|
||||
# 00030 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 ................
|
||||
# 00040 00 00 00 00 ff ff ff ff ff ff ff ff 02 00 00 00 ................
|
||||
#
|
||||
# GRR this test is still too general as it catches example adressen.dbt
|
||||
# GRR this test is still too general as it catches example addressen.dbt
|
||||
0 belong 0x03000000
|
||||
>8 ubelong 0xec020000 VMS Alpha executable
|
||||
>>75264 string PK\003\004 \b, Info-ZIP SFX archive v5.12 w/decryption
|
||||
|
||||
Binary file not shown.
@@ -1,5 +1,7 @@
|
||||
--TEST--
|
||||
#49510 boolean validation fails with FILTER_NULL_ON_FAILURE
|
||||
Bug #49510 boolean validation fails with FILTER_NULL_ON_FAILURE
|
||||
--SKIPIF--
|
||||
<?php if (!extension_loaded("filter")) die("skip"); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
var_dump(filter_var(false, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
|
||||
|
||||
@@ -283,6 +283,8 @@ AC_DEFUN([PHP_GD_CHECK_VERSION],[
|
||||
PHP_CHECK_LIBRARY(gd, gdFreeFontCache, [AC_DEFINE(HAVE_GD_FREEFONTCACHE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
|
||||
PHP_CHECK_LIBRARY(gd, gdFontCacheMutexSetup, [AC_DEFINE(HAVE_GD_FONTMUTEX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
|
||||
PHP_CHECK_LIBRARY(gd, gdNewDynamicCtxEx, [AC_DEFINE(HAVE_GD_DYNAMIC_CTX_EX, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
|
||||
PHP_CHECK_LIBRARY(gd, gdImageConvolution, [AC_DEFINE(HAVE_GD_IMAGE_CONVOLUTION, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
|
||||
PHP_CHECK_LIBRARY(gd, gdImagePixelate, [AC_DEFINE(HAVE_GD_IMAGE_PIXELATE, 1, [ ])], [], [ -L$GD_LIB $GD_SHARED_LIBADD ])
|
||||
])
|
||||
|
||||
dnl
|
||||
|
||||
+11
-7
@@ -1261,9 +1261,13 @@ PHP_RSHUTDOWN_FUNCTION(gd)
|
||||
/* }}} */
|
||||
|
||||
#if HAVE_GD_BUNDLED
|
||||
#define PHP_GD_VERSION_STRING "bundled (2.0.34 compatible)"
|
||||
#define PHP_GD_VERSION_STRING "bundled (2.1.0 compatible)"
|
||||
#else
|
||||
#define PHP_GD_VERSION_STRING "2.0"
|
||||
# ifdef GD_VERSION_STRING
|
||||
# define PHP_GD_VERSION_STRING GD_VERSION_STRING
|
||||
# else
|
||||
# define PHP_GD_VERSION_STRING "2.0"
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* {{{ PHP_MINFO_FUNCTION
|
||||
@@ -2826,7 +2830,7 @@ static void _php_image_output(INTERNAL_FUNCTION_PARAMETERS, int image_type, char
|
||||
#if HAVE_GD_BUNDLED
|
||||
PHP_FUNCTION(imagexbm)
|
||||
{
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XBM, "GIF", gdImageXbmCtx);
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_XBM, "XBM", gdImageXbmCtx);
|
||||
}
|
||||
#endif
|
||||
/* }}} */
|
||||
@@ -2846,7 +2850,7 @@ PHP_FUNCTION(imagegif)
|
||||
Output PNG image to browser or file */
|
||||
PHP_FUNCTION(imagepng)
|
||||
{
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "GIF", gdImagePngCtxEx);
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_PNG, "PNG", gdImagePngCtxEx);
|
||||
}
|
||||
/* }}} */
|
||||
#endif /* HAVE_GD_PNG */
|
||||
@@ -2857,7 +2861,7 @@ PHP_FUNCTION(imagepng)
|
||||
Output PNG image to browser or file */
|
||||
PHP_FUNCTION(imagewebp)
|
||||
{
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "GIF", gdImageWebpCtx);
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WEBP, "WEBP", gdImageWebpCtx);
|
||||
}
|
||||
/* }}} */
|
||||
#endif /* HAVE_GD_WEBP */
|
||||
@@ -2868,7 +2872,7 @@ PHP_FUNCTION(imagewebp)
|
||||
Output JPEG image to browser or file */
|
||||
PHP_FUNCTION(imagejpeg)
|
||||
{
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_JPG, "GIF", gdImageJpegCtx);
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_JPG, "JPEG", gdImageJpegCtx);
|
||||
}
|
||||
/* }}} */
|
||||
#endif /* HAVE_GD_JPG */
|
||||
@@ -2878,7 +2882,7 @@ PHP_FUNCTION(imagejpeg)
|
||||
Output WBMP image to browser or file */
|
||||
PHP_FUNCTION(imagewbmp)
|
||||
{
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WBM, "GIF", gdImageWBMPCtx);
|
||||
_php_image_output_ctx(INTERNAL_FUNCTION_PARAM_PASSTHRU, PHP_GDIMG_TYPE_WBM, "WBMP", gdImageWBMPCtx);
|
||||
}
|
||||
/* }}} */
|
||||
#endif /* HAVE_GD_WBMP */
|
||||
|
||||
@@ -32,6 +32,7 @@ int gdImageContrast(gdImagePtr src, double contrast);
|
||||
/* Simply adds or substracts respectively red, green or blue to a pixel */
|
||||
int gdImageColor(gdImagePtr src, const int red, const int green, const int blue, const int alpha);
|
||||
|
||||
#if !defined(HAVE_GD_IMAGE_CONVOLUTION)
|
||||
/* Image convolution by a 3x3 custom matrix */
|
||||
int gdImageConvolution(gdImagePtr src, float ft[3][3], float filter_div, float offset);
|
||||
int gdImageEdgeDetectQuick(gdImagePtr src);
|
||||
@@ -40,11 +41,17 @@ int gdImageSelectiveBlur( gdImagePtr src);
|
||||
int gdImageEmboss(gdImagePtr im);
|
||||
int gdImageMeanRemoval(gdImagePtr im);
|
||||
int gdImageSmooth(gdImagePtr im, float weight);
|
||||
#endif
|
||||
|
||||
#if !defined(HAVE_GD_IMAGE_PIXELATE)
|
||||
enum gdPixelateMode {
|
||||
GD_PIXELATE_UPPERLEFT,
|
||||
GD_PIXELATE_AVERAGE
|
||||
};
|
||||
|
||||
int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
|
||||
#endif
|
||||
|
||||
int gdImagePixelate(gdImagePtr im, int block_size, const unsigned int mode);
|
||||
|
||||
#if !HAVE_GD_IMAGEELLIPSE
|
||||
|
||||
@@ -35,9 +35,9 @@ imagefilledellipse($image_lge, 200, 150, 300, 200, $col_ellipse);
|
||||
imagepng($image_lge, $dest_lge);
|
||||
|
||||
// Get new dimensions
|
||||
$percent = 0.5; // new image 50% of orginal
|
||||
$percent = 0.5; // new image 50% of original
|
||||
list($width, $height) = getimagesize($dest_lge);
|
||||
echo "Size of orginal: width=". $width . " height=" . $height . "\n";
|
||||
echo "Size of original: width=". $width . " height=" . $height . "\n";
|
||||
|
||||
$new_width = $width * $percent;
|
||||
$new_height = $height * $percent;
|
||||
@@ -66,6 +66,6 @@ echo "Done\n";
|
||||
?>
|
||||
--EXPECT--
|
||||
Simple test of imagecopyresampled() function
|
||||
Size of orginal: width=400 height=300
|
||||
Size of original: width=400 height=300
|
||||
Size of copy: width=200 height=150
|
||||
Done
|
||||
@@ -24,7 +24,7 @@ $supported_hash_al = array(
|
||||
"CRC32" => 4,
|
||||
"CRC32B" => 4,
|
||||
"ADLER32" => 4,
|
||||
"NA_XYZ" => 0 /* verify that the algorythm works */
|
||||
"NA_XYZ" => 0 /* verify that the algorithm works */
|
||||
);
|
||||
|
||||
$hc = mhash_count() + 1;
|
||||
|
||||
@@ -61,7 +61,7 @@ function displayOverviewFields($resp, $fields=null) {
|
||||
* @param string mailbox_suffix Suffix used to uniquely identify mailboxes
|
||||
* @param int message_count number of test msgs to be written to new mailbox
|
||||
*
|
||||
* @return IMAP stream to new mailbox on sucesss; FALSE on failure
|
||||
* @return IMAP stream to new mailbox on success; FALSE on failure
|
||||
*/
|
||||
function setup_test_mailbox($mailbox_suffix, $message_count, &$new_mailbox = null, $msg_type = "simple"){
|
||||
global $server, $default_mailbox, $username, $password;
|
||||
|
||||
@@ -18,7 +18,7 @@ InterBase: transactions
|
||||
|
||||
/*
|
||||
Difference between default and other transactions:
|
||||
default commited when you call ibase_close().
|
||||
default committed when you call ibase_close().
|
||||
Other transaction doing rollback.
|
||||
|
||||
If you not open default transaction with
|
||||
@@ -158,7 +158,7 @@ three transaction on default link
|
||||
|
||||
ibase_free_result($res);
|
||||
|
||||
/* tr_4 IBASE_COMMITED + IBASE_REC_NO_VERSION + IBASE_NOWAIT */
|
||||
/* tr_4 IBASE_COMMITTED + IBASE_REC_NO_VERSION + IBASE_NOWAIT */
|
||||
$res = ibase_query($tr_4, "select * from test5");
|
||||
|
||||
echo "three rows in fourth transaction with deadlock\n";
|
||||
|
||||
@@ -7,7 +7,7 @@ Examle of locales format: 'en_US', 'ru_UA', 'ua_UA' (see http://demo.icu-project
|
||||
|
||||
|
||||
2. Collator::getDisplayName( $obj_locale, $disp_locale ).
|
||||
Get name of the object for the desired Locale, in the desired langauge. Both arguments
|
||||
Get name of the object for the desired Locale, in the desired language. Both arguments
|
||||
must be from getAvailableLocales method.
|
||||
|
||||
@param string $obj_locale Locale to get display name for.
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
* @param string $haystack The input string.
|
||||
* @param string $needle The string to look for.
|
||||
* @param [boolean] $before_needle If TRUE (the default is FALSE), grapheme_strstr() returns the part of the
|
||||
haystack before the first occurence of the needle.
|
||||
haystack before the first occurrence of the needle.
|
||||
* @return string Returns the portion of string, or FALSE if needle is not found.
|
||||
*/
|
||||
function grapheme_strstr($haystack, $needle, $before_needle = FALSE) {}
|
||||
@@ -109,7 +109,7 @@
|
||||
* @param string $haystack The input string.
|
||||
* @param string $needle The string to look for.
|
||||
* @param [boolean] $before_needle If TRUE (the default is FALSE), grapheme_strstr() returns the part of the
|
||||
haystack before the first occurence of the needle.
|
||||
haystack before the first occurrence of the needle.
|
||||
* @return string Returns the portion of string, or FALSE if needle is not found.
|
||||
*/
|
||||
function grapheme_stristr($haystack, $needle, $before_needle = FALSE) {}
|
||||
|
||||
@@ -31,7 +31,7 @@ class MessageFormatter {
|
||||
/**
|
||||
* Format the message
|
||||
* @param array $args arguments to insert into the pattern string
|
||||
* @return string the formatted string, or false if an error ocurred
|
||||
* @return string the formatted string, or false if an error occurred
|
||||
*/
|
||||
public function format($args) {}
|
||||
|
||||
@@ -124,7 +124,7 @@ class MessageFormatter {
|
||||
* Format the message
|
||||
* @param MessageFormatter $fmt The message formatter
|
||||
* @param array $args arguments to insert into the pattern string
|
||||
* @return string the formatted string, or false if an error ocurred
|
||||
* @return string the formatted string, or false if an error occurred
|
||||
*/
|
||||
function msgfmt_format($fmt, $args) {}
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
--TEST--
|
||||
Check that bad argumens return the same
|
||||
Check that bad arguments return the same
|
||||
--SKIPIF--
|
||||
<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?>
|
||||
--FILE--
|
||||
|
||||
Loaded 100 of 451 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user