Compare commits

...
Author SHA1 Message Date
Stanislav Malyshev 0d135ccbf0 5.4.17 2013-07-02 23:10:53 -07:00
Stanislav Malyshev f432141cd9 sync NEWS 2013-06-18 23:08:56 -07:00
Stanislav Malyshev e9b22042a7 5.4.17 RC1 2013-06-18 22:57:07 -07:00
Xinchen Hui 2ce4bd7f2d Fix test typo 2013-06-19 11:15:52 +08:00
Stanislav Malyshev 6b896fa57f Merge branch 'pull-request/320'
* pull-request/320:
  this is test 5 not 6
  fix race condition
  more shared names that create race conditions
  change to a unique filename
  more shared filenames
  yet another shared filename
  don't share a filename to stop race conditions
  fix race condition for 2-4 and normalize names for others
  fix race condition when running tests in parallel
  clean up after test
  Fix #64572: Clean up after the test
  Fix #64572: Clean up after the test
2013-06-17 01:06:01 -07:00
Daniel Beardsley 5ac0ee30ce Tests: PDO Mysql - update for fixed getColumnMeta()
The test has always been disabled... so it's never run anyway. Oh well.
2013-06-17 00:41:21 -07:00
Antony Dovgal 95cc763a14 fix bug #48724
PDO's getColumnMeta() doesn't return native_type for BIT, TINYINT and YEAR
2013-06-17 00:27:21 -07:00
Stanislav Malyshev 248414f132 readline can output control codes 2013-06-17 00:15:31 -07:00
Hartmel 272c5edea4 Bug #55694: Update readline test to support attempted_completion_over variable 2013-06-16 23:44:44 -07:00
Hartmel ca3e0862db Bug #55694: Expose attempted_completion_over variable from readline library 2013-06-16 23:42:43 -07:00
Xinchen Hui cfb1ffb4fa Fix typo in test 2013-06-17 13:22:20 +08:00
Jefersson Nathan ebef8c4176 Identation Fixed 2013-06-16 18:13:49 -07:00
Lior Kaplan ee01af7df1 Fix bug #64764: Add status option to fpm init.d script 2013-06-16 16:54:49 -07:00
Stanislav Malyshev 2a93fd1347 news for #64166 2013-06-16 16:40:39 -07:00
Stanislav Malyshev 7bb052ee3e add more tests for bug #64166 2013-06-16 16:34:34 -07:00
Michael M Slusarz 0dc98208ee Move unsigned char declaration to top of block 2013-06-16 16:04:29 -07:00
Michael M Slusarz d9c034ee5e trailing ws 2013-06-16 16:04:24 -07:00
Michael M Slusarz b5b0a53b09 Fix #64166: quoted-printable-encode stream filter incorrectly discarding whitespace
Second attempt: need to use lookaheadto determine whether to encode ws
2013-06-16 16:04:19 -07:00
Michael M Slusarz 600d6deef9 Fix #64166: quoted-printable-encode stream filter incorrectly discarding whitespace
If trailing whitespace on a line is detected, mark the linebreak as a
soft linebreak.
2013-06-16 16:04:14 -07:00
Stanislav Malyshev 2208447d42 Fix bug #64936 - clean doc comment state at the beginning and end of the scan 2013-06-16 15:22:23 -07:00
Stanislav Malyshev 088c183639 ws fix 2013-06-16 15:22:23 -07:00
Anatol Belski b6dd1ec60d fix test
breach introduced in ac40c0b562
2013-06-17 00:09:05 +02:00
Xinchen Hui 49e57a3165 Fixed bug #63176 (Segmentation fault when instantiate 2 persistent PDO to the same db server) 2013-06-16 22:55:59 +08:00
Boris Lytochkin 7457867ba8 fix typo in test 2013-06-16 00:09:18 +04:00
Boris Lytochkin 8acfa0b3f8 Merge branch 'PHP-5.4' of https://git.php.net/push/php-src into PHP-5.4
* 'PHP-5.4' of https://git.php.net/push/php-src: (76 commits)
  Fixed bug #63186 (compile failure on netbsd)
  fix test for bug #60322
  ensure the error_reporting level to get expected notice
  fixed tests
  missing tests for bug #53437
  fix double entry
  Merge branch 'pull-request/341'
  typo fixes (argument)
  typo fixes (accommodate, parameter)
  missing colon
  Backported the fix for bug #53437
  Backported the fix for bug #53437
  Fixed bug #64988 (Class loading order affects E_STRICT warning)
  Fixed test script
  PHPTests for the DOMDocument::loadHTMLfile method. They cover - The basic behaviour - When the method receives as argument a file which doesn't exist - When the argument is an empty string - When an empty file is loaded - When a not-well formed html file is loaded
  Fix spelling and correct typo.
  Callback has to be restored in MSHUTDOWN
  Update NEWs
  Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems)
  Fixed merge wrongly
  ...
2013-06-16 00:03:30 +04:00
Matteo Beccati 02f552ceca Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #63186 (compile failure on netbsd)
2013-06-14 16:54:32 +02:00
Matteo Beccati 6238dd6f32 Fixed bug #63186 (compile failure on netbsd) 2013-06-14 16:51:54 +02:00
Stanislav Malyshev 10b9579395 fix test for bug #60322 2013-06-13 10:30:00 -07:00
Anatol Belski ed2690477c Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  ensure the error_reporting level to get expected notice
2013-06-12 13:14:53 +02:00
Anatol Belski cd1b44c4b6 ensure the error_reporting level to get expected notice 2013-06-12 13:13:48 +02:00
Anatol Belski 1cc750493f Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fixed tests
2013-06-11 12:39:28 +02:00
Anatol Belski eccc05fc44 fixed tests 2013-06-11 12:38:49 +02:00
Anatol Belski 251ec84a97 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  missing tests for bug #53437
2013-06-11 11:22:55 +02:00
Anatol Belski f16143f5ac missing tests for bug #53437 2013-06-11 11:19:57 +02:00
Stanislav Malyshev 760b7d00c3 fix double entry 2013-06-10 18:15:03 -07:00
Stanislav Malyshev ac40c0b562 Merge branch 'pull-request/341'
* pull-request/341: (23 commits)
  typofixes
2013-06-10 14:20:18 -07:00
Veres Lajos 04145dc2aa typo fixes (argument) 2013-06-10 13:36:17 -07:00
Veres Lajos ed2e84e239 typo fixes (accommodate, parameter) 2013-06-10 13:36:03 -07:00
Anatol Belski 7a1e670d76 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  missing colon
2013-06-10 19:55:06 +02:00
Anatol Belski 18403e496d missing colon 2013-06-10 19:54:29 +02:00
Anatol Belski 0f9cf35315 Backported the fix for bug #53437 2013-06-10 19:52:29 +02:00
Anatol Belski e1e07cb431 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Backported the fix for bug #53437
2013-06-10 19:49:31 +02:00
Anatol Belski 88c2dbe5fc Backported the fix for bug #53437 2013-06-10 19:48:18 +02:00
Xinchen Hui d8792d87cf Fixed bug #64988 (Class loading order affects E_STRICT warning) 2013-06-10 21:26:11 +08:00
Dmitry Stogov 53c39e2b4e Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4
* 'PHP-5.4' of git.php.net:php-src:
  PHPTests for the DOMDocument::loadHTMLfile method. They cover - The basic behaviour - When the method receives as argument a file which doesn't exist - When the argument is an empty string - When an empty file is loaded - When a not-well formed html file is loaded
  Fix spelling and correct typo.
2013-06-10 12:59:28 +04:00
Dmitry Stogov f68b8a5e74 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed test script
2013-06-10 12:54:54 +04:00
Dmitry Stogov f5f6404260 Fixed test script 2013-06-10 12:53:19 +04:00
Antonio Diaz Ruiz 8a8bef1b73 PHPTests for the DOMDocument::loadHTMLfile method.
They cover
- The basic behaviour
- When the method receives as argument a file which doesn't exist
- When the argument is an empty string
- When an empty file is loaded
- When a not-well formed html file is loaded

It also includes 2 auxilary files
- An empty html file
- A not well formed html file
2013-06-10 01:50:00 -07:00
Carson McDonald f4e3c7ab7c Fix spelling and correct typo. 2013-06-10 01:42:27 -07:00
Dmitry Stogov 336a8e1943 Callback has to be restored in MSHUTDOWN 2013-06-10 12:32:53 +04:00
Xinchen Hui fdd7379686 Update NEWs 2013-06-09 22:25:28 +08:00
Xinchen Hui f338510c94 Merge branch 'PHP-5.3' into PHP-5.4 2013-06-09 22:25:07 +08:00
Xinchen Hui 75c57122e3 Fixed bug #64997 (Segfault while using RecursiveIteratorIterator on 64-bits systems) 2013-06-09 22:24:48 +08:00
Xinchen Hui e14800dd46 Fixed merge wrongly 2013-06-09 14:24:05 +08:00
Xinchen Hui 3cc891bf3a Update NEWS 2013-06-09 13:39:40 +08:00
Xinchen Hui ab22fda7e5 Merge branch 'PHP-5.3' into PHP-5.4 2013-06-09 13:35:45 +08:00
Xinchen Hui e8f004d542 Fixed bug #64966 (segfault in zend_do_fcall_common_helper_SPEC) 2013-06-09 13:20:40 +08:00
Stanislav Malyshev a7e25bdd48 fix 5.4.16 date 2013-06-06 13:27:04 -07:00
Anatol Belski 4b96b8f909 updated NEWS 2013-06-06 18:52:05 +02:00
Anatol Belski 25cae37b13 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64934 Apache2 TS crash with get_browser()
2013-06-06 18:51:32 +02:00
Anatol Belski 1aee7ad636 Fixed bug #64934 Apache2 TS crash with get_browser()
In favour of reading the browscap.ini into a true global var
only once in MINIT, the price for that is to deep copy the
any data from it.
2013-06-06 18:49:04 +02:00
Johannes Schlüter 5ee047b486 Merge branch 'PHP-5.3' into PHP-5.4 2013-06-05 16:34:54 +02:00
Johannes Schlüter ec3bcbcb5a Add NEWS for PHP 5.3.26 2013-06-05 16:34:18 +02:00
Xinchen Hui 3c93402f86 Update NEWS 2013-06-05 17:29:04 +08:00
Xinchen Hui f597f5561e Merge branch 'PHP-5.3' into PHP-5.4 2013-06-05 17:26:10 +08:00
Xinchen Hui 3c87945c95 Fixed bug #64960 (Segfault in gc_zval_possible_root) 2013-06-05 17:25:00 +08:00
Stanislav Malyshev efdeec3c0e Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix CVE-2013-2110 - use correct formula to calculate string size
2013-06-04 21:58:44 -07:00
Stanislav Malyshev 93e0d78ec6 fix CVE-2013-2110 - use correct formula to calculate string size 2013-06-04 21:56:33 -07:00
Stanislav Malyshev 90bb28726b news for dblib fixes 2013-06-03 21:54:50 -07:00
Stanley Sufficool 5a04ab9a54 Fix PDO_DBLIB bugs: #64338, #64808, #63638
Synchronize with master
2013-06-03 20:02:08 -07:00
Matteo Beccati 7360f0f1e6 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Clean up leftover test files
2013-06-02 13:39:19 +02:00
Matteo Beccati 2463e89794 Clean up leftover test files 2013-06-02 13:38:43 +02:00
Matteo Beccati a98359b7b9 Improved test portability so that it doesn't fail with pdo_pgsql 2013-06-02 13:32:48 +02:00
Nikita Popov cbf90b1a90 Fix PDO::inTransaction() test for pgsql
inTransaction() nowadays casts the in_transaction result to boolean.
I'm not sure whether the INERROR state should result in true or false.
For now I went with the result that we actually get.
2013-06-02 13:28:30 +02:00
Matteo Beccati 51c065f611 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64609 (pg_convert enum type support)
2013-06-02 06:33:54 +02:00
Matteo Beccati 25aae37229 Fixed bug #64609 (pg_convert enum type support) 2013-06-02 06:29:35 +02:00
Matteo Beccati de42833115 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #62857 (bytea test failures)
2013-06-01 23:22:50 +02:00
Matteo Beccati 79803bebde Fixed bug #62857 (bytea test failures)
Postgres 9.1+ test fixes. Tests were failing due to the default
standard_conforming_strings GUC being changed to on. Also the
pg_escape_bytea test was encoding the data before estabilishing
a connection, thus falling back to the old escaping type which
isn't properly handled by the backend when using a default
configuration.

I haven't updated the NEWS file as it's just test fixes.
2013-06-01 23:15:48 +02:00
Matteo Beccati a3b5b42e77 Merge branch 'PHP-5.3' into PHP-5.4 2013-05-31 16:26:54 +02:00
Matteo Beccati 598e2690b8 Merge branch 'pull-request/309' into PHP-5.3 2013-05-31 16:26:38 +02:00
Matteo Beccati bf4a034e3e NEWS 2013-05-31 16:26:06 +02:00
Matteo Beccati 510498947e Slightly edited tests and fix for bug #62024 2013-05-31 16:19:58 +02:00
Matheus Degiovani df6ca450ce Fixed bug #62024 (unable to run consecutive prepared querys with null values)
Credits to james@kenjim.com for the patch.
2013-05-31 14:30:57 +02:00
Matheus Degiovani 65d233f06c Fixed bug #64037 (wrong value returned when using a negative numeric field equal to the scale) 2013-05-31 14:30:51 +02:00
Remi Collet 0c9f11758f NEWS 2013-05-31 08:45:09 +02:00
Remi Collet 2dd67abb7d Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error)
2013-05-31 08:44:33 +02:00
Remi Collet 1c623e3b07 Fixed Bug #64949 (Buffer overflow in _pdo_pgsql_error)
There is a lot of call such as:
	pdo_pgsql_error(dbh, PGRES_FATAL_ERROR, "Copy command failed");
Where the 3rd paramater is a error message string where a sqlstate (5 chars)
is expected. This cause a segfault in copy_from.phpt and copy_to.phpt.

This is only a sanity check to avoid buffer overflow, but obviously this
calls need to be fixed (using NULL or a correct sqlstate).
2013-05-31 08:39:32 +02:00
Dmitry Stogov 8b515fa00a Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed incorrect argument number

Conflicts:
	Zend/zend_compile.c
2013-05-29 11:12:43 +04:00
Dmitry Stogov 13e5c97ffd Fixed incorrect argument number 2013-05-29 11:09:55 +04:00
Anatol Belski bcdac7526d reduced the file size even more
the first second is what at least has to be
2013-05-25 00:09:32 +02:00
Anatol Belski 2d386db878 Fixed bug #64916 finfo testcase contains copyrighted music.
I wasn't able to produce a file causing exactly the same crash.
However the first three seconds of the originally reported
file are  pretty enough to repro bug #64830. That reduces its
size to 72k.
2013-05-24 23:58:31 +02:00
Remi Collet 9f6ca9bc64 Fixed Bug #64915 (error_log ignored when daemonize=0)
Use configured error_log file when stderr is not a tty.
So only use tty during interactive debug run.
2013-05-24 12:09:05 +02:00
Johannes Schlüter cd74b7d57e Merge branch 'PHP-5.3' into PHP-5.4 2013-05-22 17:15:27 +02:00
Johannes Schlüter 4cb25d25f1 This will be PHP 5.3.27 2013-05-22 17:13:17 +02:00
Stanislav Malyshev c53058763a 5.4.17 is next 2013-05-21 23:36:28 -07:00
Remi Collet c50cef1dc5 Fixed bug #64895 Integer overflow in SndToJewish 2013-05-22 08:30:50 +02:00
Remi Collet 73eedaf6f7 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64895 Integer overflow in SndToJewish
2013-05-22 08:29:08 +02:00
Remi Collet 013797588a NEWS 2013-05-22 08:28:53 +02:00
Remi Collet fc2a9d6e47 Fixed bug #64895 Integer overflow in SndToJewish 2013-05-22 08:28:05 +02:00
Stanislav Malyshev 0776337e28 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix order
2013-05-21 23:26:03 -07:00
Stanislav Malyshev de4fd8638b merge NEWS from 5.3 2013-05-21 23:25:46 -07:00
Stanislav Malyshev d4ad889824 fix order 2013-05-21 23:25:35 -07:00
Sara Golemon 2d7415a4af Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Don't double-quote name of namespaced function.
2013-05-19 13:34:57 -07:00
Remi Collet 646ebc2cb9 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Integer overflow in SndToJewish leads to php hang AT least in (inputDay is long, metonicCycle is int):    metonicCycle = (inputDay + 310) / 6940;
2013-05-21 18:08:45 +02:00
Remi Collet 4828f7343b Integer overflow in SndToJewish leads to php hang
AT least in (inputDay is long, metonicCycle is int):
   metonicCycle = (inputDay + 310) / 6940;

So large value give strange (negative) results or php hangs.
This is patch already applied in some linux distro.
2013-05-21 18:04:17 +02:00
Remi Collet 0e99329e0a Add --with-fpm-systemd option to report health to systemd, and
systemd_interval option to configure this. The service can now use
Type=notify in the systemd unit file.

Systemd status line will looks like:
Status: "Processes active: 0, idle: 5, Requests: 90, slow: 0, Traffic: 10req/sec"

Watchdog mode is also supported. In this case watchdog interval,
configured in the unit file, override the systemd_interval option.

When not used (default), no change from previous version.
2013-05-21 09:49:00 +02:00
Dmitry Stogov 77fffff157 Fixed bug #64720 (SegFault on zend_deactivate) 2013-05-21 09:58:11 +04:00
Stanislav Malyshev 1124b0678f add reporter 2013-05-20 02:01:38 -07:00
Stanislav Malyshev fb58e69a84 fix bug #64660 - yyparse can return 2, not only 1 2013-05-20 00:52:38 -07:00
Stanislav Malyshev 7c66c502d0 fix 5.4.16 relase date 2013-05-19 23:55:12 -07:00
Sara Golemon 2d5695cbc5 Don't double-quote name of namespaced function.
ZEND_NS_NAMED_FE(ns, zend_name, name, arg_info)

was resulting in a function declaration of:

ns\"zend_name"()

including the errant quotes.

This diff corrects that.  There are currently no uses of ZEND_NS_NAMED_FE
in core and reason to believe that there are no uses in the wild either.
2013-05-19 13:32:17 -07:00
Pierre Joye b142e8825f Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-05-17 11:49:45 +02:00
Pierre Joye aff65a0346 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  entry for #64214
  other fix for #64214, unmodified file may not have old fp set, causing other possible crashes
2013-05-17 11:49:33 +02:00
Pierre Joye 46b05bc57a entry for #64214 2013-05-17 11:49:13 +02:00
Pierre Joye 3eb1745643 other fix for #64214, unmodified file may not have old fp set, causing other possible crashes 2013-05-17 11:45:13 +02:00
Anatol Belski 8dec06ea2a Fixed error handling for ext/sockets under win
WSAGetLastError() must be the very next call after a socket
function had an invalid return. Any function call inbetween
will clear the error information.
2013-05-16 19:23:31 +02:00
Anatol Belski d82704b677 Fixed bug #64853Use of no longer available ini directives causes crash on TS build
The fatal error for removed ini options is thrown before the executor
init, so ensure the relevant variables are initialized.
2013-05-16 08:40:56 +02:00
Pierre Joye 09470ebf35 Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-05-15 15:53:57 +02:00
Anatol Belski de82e7edf7 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix unitialized vars when sql.safe_mode=1
  more check for php_stream_fopen_tmpfile failure
2013-05-15 11:14:58 +02:00
Anatol Belski 86db5fb4c2 Fix unitialized vars when sql.safe_mode=1
which can break the subsequent mysqlnd_connect() call
2013-05-15 11:12:17 +02:00
Pierre Joye 7ec2e5314e Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  more check for php_stream_fopen_tmpfile failure
2013-05-14 16:45:56 +02:00
Pierre Joye ba1af29805 more check for php_stream_fopen_tmpfile failure 2013-05-14 16:45:11 +02:00
Anatol Belski 1a46a102d9 updated libmagic.patch after fix for #64830 2013-05-14 11:14:37 +02:00
Anatol Belski 8c36156070 Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-05-14 09:45:02 +02:00
Anatol Belski 74555e7c26 Fixed bug #64830 mimetype detection segfaults on mp3 file 2013-05-14 09:40:43 +02:00
Pierre Joye f37c54ab27 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  php_stream_fopen_tmpfile may file, causing any following stream usage to crash
2013-05-14 09:21:17 +02:00
Pierre Joye 533e636a62 php_stream_fopen_tmpfile may file, causing any following stream usage to crash 2013-05-14 09:20:53 +02:00
Anatol Belski 156576fcce Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix heap overflow warnings on win x64 debug crt
2013-05-13 14:25:25 +02:00
Anatol Belski fe21accfb4 fix heap overflow warnings on win x64 debug crt 2013-05-13 14:24:21 +02:00
Anatol Belski 89159926ad updated NEWS 2013-05-12 14:08:42 +02:00
Anatol Belski dd188e9538 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64821 Custom Exceptions crash when internal properties overridden
2013-05-12 14:06:59 +02:00
Anatol Belski d6505acbf5 Fixed bug #64821 Custom Exceptions crash when internal properties overridden
If user inherits Exception and overrides the properties to arbitrary data types,
or simply doesn't run parent::__construct(), here we go. Just convert everything
to the appropriate data type, like Exception::__toString() does.
2013-05-12 14:00:32 +02:00
Xinchen Hui 699dc04c55 Missed SKIPIF 2013-05-09 15:57:25 +08:00
Johannes Schlüter 898ddcb9e1 Merge branch 'PHP-5.3' into PHP-5.4 2013-05-08 18:02:35 +02:00
Johannes Schlüter 1cc2162b83 PHP 5.3.25 NEWS 2013-05-08 18:01:39 +02:00
Anatol Belski ec4388158d better fix for bug #64770 2013-05-04 12:19:52 +02:00
Anatol Belski f1e5127e7a Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  better fix for bug #64770
2013-05-04 12:18:06 +02:00
Anatol Belski 5c701d19ac better fix for bug #64770 2013-05-04 12:16:38 +02:00
Boris Lytochkin 8c3b8f39aa remove OS-specific OIDs from
'WALK multiple on single OID with OID suffix as keys' test part
2013-05-04 00:04:52 +04:00
Boris Lytochkin c34274acb8 re-work walkaround for net-snmp BUGid 2027834, no need to detect it anymore
add test for Bug #64159
bump default buffer size for values(32->512): do not reallocate buffers in 99% cases
2013-05-03 23:06:34 +04:00
Boris Lytochkin 3a413f216a Merge branch 'PHP-5.4' of https://git.php.net/push/php-src into PHP-5.4
* 'PHP-5.4' of https://git.php.net/push/php-src:
  updated NEWS
  Fixed bug #64770 stream_select() fails with pipes
2013-05-03 19:24:24 +04:00
Boris Lytochkin f1269d80c5 Merge branch 'PHP-5.3' of https://git.php.net/push/php-src into PHP-5.3
* 'PHP-5.3' of https://git.php.net/push/php-src:
  Fixed bug #64770 stream_select() fails with pipes
2013-05-03 19:23:46 +04:00
Anatol Belski b1c24d1eac updated NEWS 2013-05-03 17:04:26 +02:00
Anatol Belski aa4762572e Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64770 stream_select() fails with pipes
2013-05-03 17:03:16 +02:00
Anatol Belski b1ea0b7a7a Fixed bug #64770 stream_select() fails with pipes
returned by proc_open() on Windows x64
2013-05-03 17:01:33 +02:00
Boris Lytochkin e36adfe94a Fixed bug #64159 (Truncated snmpget) 2013-05-03 15:35:09 +04:00
Boris Lytochkin a39282b64d update NEWS 2013-05-03 12:15:35 +04:00
Boris Lytochkin 3828f6227b Fix bug #64765 (enclose IPv6 address into square brackets) 2013-05-03 12:13:50 +04:00
Boris Lytochkin 5af2c5d202 Merge branch 'PHP-5.4' of https://git.php.net/push/php-src into PHP-5.4
* 'PHP-5.4' of https://git.php.net/push/php-src: (109 commits)
  NEWS
  NEWS
  From code coverity scan, syscall return value must be check.
  fix more resource leaks
  From code coverity scan - fix some memory leak - fix some resources leak (fd) - create fpm_worker_pool_free (shared use) - possible null dref (wp->user and wp->home can be null)
  fixed size array cannot be null
  use limit_extensions as we use security_limit_extensions later (free)
  unused variable
  fix possible null deref (detected by code coverity scan)
  Remove trailing space in NEWS
  NEWS for 514afd67
  Fix bug #64729: compilation failure on x32
  When Apache use RewriteRule to redirect, via mod_proxy_fgi, to php-fpm the SCRIPT_FILENAME may contains the QUERY_STRING.
  Revert "Add CURL_WRAPPERS_ENABLE constant"
  Also fixed bug #64726 in 5.3
  Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed)
  Fix memory realted to #64726
  updated libmagic.patch
  Fixed bug bug #64713 Compilation warnings in finfo
  Fix Test Bug #64714
  ...
2013-05-03 11:22:16 +04:00
Boris Lytochkin aa448adc83 Merge branch 'PHP-5.3' of https://git.php.net/push/php-src into PHP-5.3
* 'PHP-5.3' of https://git.php.net/push/php-src: (39 commits)
  NEWS
  From code coverity scan, syscall return value must be check.
  fix more resource leaks
  From code coverity scan - fix some memory leak - fix some resources leak (fd) - create fpm_worker_pool_free (shared use) - possible null dref (wp->user and wp->home can be null)
  fixed size array cannot be null
  use limit_extensions as we use security_limit_extensions later (free)
  unused variable
  fix possible null deref (detected by code coverity scan)
  Also fixed bug #64726 in 5.3
  Fix memory realted to #64726
  Fix Test Bug #64714
  PHP 5.3.26 this will be
  Fix NEWS
  Fix bug #64458 (dns_get_record result with string of length -1)
  Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.
  Fixed stream_socket_pair() on Windows x64 and
  - Updated to version 2013.3 (2013c)
  lower the limit, should fit in a byte
  updated lib versions
  allow lcov 1.10
  ...
2013-05-03 11:21:48 +04:00
Remi Collet 9996c310d1 NEWS 2013-05-03 08:30:47 +02:00
Remi Collet f087c53130 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  NEWS
2013-05-03 08:30:19 +02:00
Remi Collet 4a34d4a83c NEWS 2013-05-03 08:29:56 +02:00
Remi Collet 3fd4b6be63 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  From code coverity scan, syscall return value must be check.
2013-05-03 08:22:55 +02:00
Remi Collet 0549e55d82 From code coverity scan, syscall return value must be check.
To not alter current behaviour, we simply log the problem,
so, if it occurs, the message will give explanation.

This are only warning as they don't block the server,
but such fail can explain strange (not expected) behaviour later.
2013-05-03 08:19:14 +02:00
Remi Collet b7b150b830 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix more resource leaks
2013-05-02 13:47:36 +02:00
Remi Collet 444e59eb20 fix more resource leaks 2013-05-02 13:47:24 +02:00
Remi Collet 08b72ac9f1 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  From code coverity scan - fix some memory leak - fix some resources leak (fd) - create fpm_worker_pool_free (shared use) - possible null dref (wp->user and wp->home can be null)
2013-05-02 13:31:11 +02:00
Remi Collet 331540d20c From code coverity scan
- fix some memory leak
- fix some resources leak (fd)
- create fpm_worker_pool_free (shared use)
- possible null dref (wp->user and wp->home can be null)
2013-05-02 13:27:16 +02:00
Remi Collet c374b80dda Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fixed size array cannot be null
2013-05-02 10:32:54 +02:00
Remi Collet d0c40220d1 fixed size array cannot be null 2013-05-02 10:32:45 +02:00
Remi Collet 78c48af2f2 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  use limit_extensions as we use security_limit_extensions later (free)
  unused variable
2013-05-02 10:15:20 +02:00
Remi Collet 8492bbefbb use limit_extensions as we use security_limit_extensions later (free) 2013-05-02 10:15:12 +02:00
Remi Collet a7d6cb2360 unused variable 2013-05-02 10:15:05 +02:00
Remi Collet be3f7ba4fb Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  fix possible null deref (detected by code coverity scan)
2013-05-02 09:38:12 +02:00
Remi Collet ab117573cd fix possible null deref (detected by code coverity scan) 2013-05-02 09:38:00 +02:00
Gustavo Lopes 3f2f534a5c Remove trailing space in NEWS 2013-04-30 19:42:31 +02:00
Gustavo Lopes 1656b337ce NEWS for 514afd67 2013-04-30 19:41:27 +02:00
Gustavo Lopes 514afd67b6 Fix bug #64729: compilation failure on x32 2013-04-30 19:28:24 +02:00
Remi Collet 4a92ae3401 When Apache use RewriteRule to redirect, via mod_proxy_fgi, to php-fpm
the SCRIPT_FILENAME may contains the QUERY_STRING.

Ex : RewriteRule ^(.*)\.php$ fcgi://127.0.0.1:9000/$1.php [P]

From apache debug (build with -DFCGI_DUMP_ENV_VARS)
AH01062: sending env var 'SCRIPT_FILENAME' value 'proxy:fcgi://127.0.0.1:9000/var/www/html/info.php?foo'
AH01071: Got error 'Primary script unknown\n'
2013-04-30 08:55:18 +02:00
Stanislav Malyshev 4e773c1b92 Revert "Add CURL_WRAPPERS_ENABLE constant"
This reverts commit d7f709a032.
Since wrappers are deleted from 5.5, no point in adding this constant.
2013-04-28 22:26:05 -07:00
Xinchen Hui 7b9eabaf51 Merge branch 'PHP-5.3' into PHP-5.4 2013-04-27 23:50:02 +08:00
Xinchen Hui 15b554cd9b Also fixed bug #64726 in 5.3 2013-04-27 23:49:43 +08:00
Xinchen Hui 8f5a534b21 Fixed bug #64726 (Segfault when calling fetch_object on a use_result and DB pointer has closed) 2013-04-27 23:41:31 +08:00
Xinchen Hui d54432ed98 Merge branch 'PHP-5.3' into PHP-5.4 2013-04-27 23:38:10 +08:00
Xinchen Hui c7b8368ed5 Fix memory realted to #64726 2013-04-27 23:38:00 +08:00
Anatol Belski e9b03c412b updated libmagic.patch 2013-04-27 14:09:29 +02:00
Anatol Belski cdc1a63790 Fixed bug bug #64713 Compilation warnings in finfo 2013-04-27 13:49:50 +02:00
Matt Ficken 5adf1be45d Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix Test Bug #64714
2013-04-25 11:37:09 -07:00
Matt Ficken bf5506f511 Fix Test Bug #64714 2013-04-25 11:34:57 -07:00
Johannes Schlüter 239ba8d58b Merge branch 'PHP-5.3' into PHP-5.4
Conflicts:
	configure.in
	main/php_version.h
2013-04-25 18:05:19 +02:00
Johannes Schlüter 63434524f8 PHP 5.3.26 this will be 2013-04-25 18:02:53 +02:00
Johannes Schlüter 671ef9fda7 Fix NEWS 2013-04-25 17:58:02 +02:00
Stanislav Malyshev a58a279d7b 5.4.16-dev 2013-04-24 10:15:35 -07:00
Stanislav Malyshev 84e5c8a0e2 update credits 2013-04-23 22:02:57 -07:00
Stanislav Malyshev 5e24a6e74d Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix bug #64458 (dns_get_record result with string of length -1)
2013-04-23 21:45:49 -07:00
Stanislav Malyshev 18fdab5a09 Fix bug #64458 (dns_get_record result with string of length -1) 2013-04-23 21:43:35 -07:00
Dmitry Stogov 43ab915b41 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function.

Conflicts:
	Zend/zend_vm_def.h
	Zend/zend_vm_execute.h
2013-04-23 23:55:47 +04:00
Dmitry Stogov 4cf0647399 Fixed incorrect check. SEND_REF may be executed before DO_FCALL when EX(function_state).function is not yet set to the calling function. 2013-04-23 23:43:23 +04:00
Anatol Belski b3aa3c2616 updated NEWS 2013-04-22 18:59:47 +02:00
Anatol Belski 8febe2ad08 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed stream_socket_pair() on Windows x64 and
2013-04-22 18:59:11 +02:00
Anatol Belski f082d6311b Fixed stream_socket_pair() on Windows x64 and
improved errorhandling in the socketpair() implementation.
2013-04-22 18:55:32 +02:00
Derick Rethans 0b2c411323 Merge branch 'PHP-5.3' into PHP-5.4 2013-04-22 17:51:43 +01:00
Derick Rethans 70b67f2e50 - Updated to version 2013.3 (2013c) 2013-04-22 17:51:41 +01:00
Xinchen Hui b02241b968 Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-04-21 11:11:02 +08:00
Antonio Diaz Ruiz 92bbe6be72 Includes 5 new phpTests to check that the error message DOM_NOT_FOUND is properly raised by the method DOMNode::insertBefore(newNode, [refNode]).
Each file covers a different test case

    DOMNode_insertBefore_error2.phpt: refNode is a sibling of the node where newNode wanted to be inserted.
    DOMNode_insertBefore_error3.phpt: refNode is the parent of the node where newNode wanted to be inserted.
    DOMNode_insertBefore_error4.phpt: refNode is a brand new node.
    DOMNode_insertBefore_error5.phpt: refNode is a descendant (not child) of the node where newNode wanted to be inserted.
    DOMNode_insertBefore_error6.phpt: refNode is the node where newNode wanted to be inserted.
2013-04-21 11:05:59 +08:00
Andrey Hristov 39cc08c7e9 Merge branch 'PHP-5.3' into PHP-5.4 2013-04-19 15:55:46 +02:00
Andrey Hristov 0802961bd1 lower the limit, should fit in a byte 2013-04-19 15:54:35 +02:00
Anatol Belski ecf76e2da8 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  updated lib versions
  allow lcov 1.10
2013-04-17 13:18:00 +02:00
Anatol Belski fb955a613c updated lib versions 2013-04-17 13:17:32 +02:00
Anatol Belski 4fbe1173eb fixed EOL 2013-04-17 13:15:08 +02:00
Anatol Belski 323fdb9879 updated lib versions 2013-04-17 13:12:18 +02:00
Nuno Lopes a9271a8b0d allow lcov 1.10 2013-04-13 16:57:25 -04:00
Nuno Lopes e694d40963 allow lcov 1.10 2013-04-13 16:56:30 -04:00
Xinchen Hui ba292b037f Fixed bug (Wrong ce cached) 2013-04-11 14:28:42 +08:00
Pierre Joye 4475dbf11d Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-04-11 06:58:04 +02:00
Pierre Joye 684f4d5272 lucky that the name is not used, fix name of encoder 2013-04-11 06:42:38 +02:00
Anatol Belski b6d54faa92 Merge branch 'PHP-5.4' of git.php.net:php-src into PHP-5.4 2013-04-10 20:51:32 +02:00
Anatol Belski 56b028e590 Merge branch 'PHP-5.3' of git.php.net:php-src into PHP-5.3 2013-04-10 20:50:57 +02:00
Anatol Belski 782085bbfb updated NEWS 2013-04-10 20:44:41 +02:00
Anatol Belski ceb5b684e0 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fixed bug #64342 ZipArchive::addFile() has to check for file existence
2013-04-10 20:40:28 +02:00
Anatol Belski 968ae4a56a Fixed bug #64342 ZipArchive::addFile() has to check for file existence 2013-04-10 20:39:17 +02:00
Pierre Joye c480bf3fb2 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  add external 2.1 detection and fix gd_compat for 2.1+
2013-04-10 20:13:18 +02:00
Pierre Joye 224a67fb9f add external 2.1 detection and fix gd_compat for 2.1+ 2013-04-10 20:12:25 +02:00
Johannes Schlüter 442ff25187 PHP 5.4.14 release date 2013-04-10 09:45:16 +02:00
Johannes Schlüter 146d786137 Merge branch 'PHP-5.3' into PHP-5.4 2013-04-10 09:44:34 +02:00
Johannes Schlüter ecdf8bcc45 PHP 5.3.24 release date 2013-04-10 09:41:21 +02:00
451 changed files with 4743 additions and 1973 deletions

No files matched your search

+327 -213
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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 -1
View File
@@ -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;
+11
View File
@@ -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
+48
View File
@@ -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
+22
View File
@@ -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
+19
View File
@@ -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
+20
View File
@@ -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
+40
View File
@@ -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
+30
View File
@@ -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
+30
View File
@@ -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 -1
View File
@@ -1,5 +1,5 @@
--TEST--
GC 007: Unreferensed array cycle
GC 007: Unreferenced array cycle
--INI--
zend.enable_gc=1
--FILE--
+1 -1
View File
@@ -1,5 +1,5 @@
--TEST--
GC 008: Unreferensed object cycle
GC 008: Unreferenced object cycle
--INI--
zend.enable_gc=1
--FILE--
+1 -1
View 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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
+9 -1
View File
@@ -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);
}
+2 -4
View File
@@ -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
View File
@@ -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 { \
File diff suppressed because it is too large. Load diff
+5 -2
View File
@@ -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 -1
View File
@@ -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 {
+2 -2
View File
@@ -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); \
+8
View File
@@ -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
View File
@@ -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;
+1 -1
View File
@@ -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
View File
@@ -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)) {
+9 -3
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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
View File
@@ -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;
+1 -1
View File
@@ -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);
+1 -1
View File
@@ -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);
+2 -1
View File
@@ -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;
+19
View File
@@ -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"
+1 -1
View File
@@ -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;
-3
View File
@@ -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
View File
@@ -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
View File
@@ -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
+2
View File
@@ -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);
+16 -2
View File
@@ -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)
}
+16 -2
View File
@@ -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
)
+7
View File
@@ -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
)
+15 -1
View File
@@ -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)
+155 -6
View File
@@ -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)
}
+7
View File
@@ -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
)
+45 -3
View File
@@ -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)
+130 -4
View File
@@ -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==
+13
View File
@@ -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
+80
View File
@@ -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==
+47
View File
@@ -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==
+64
View File
@@ -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==
+47
View File
@@ -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==
+15 -1
View File
@@ -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";
+1 -1
View File
@@ -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
View File
@@ -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
+2 -2
View File
@@ -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) "
View File
Whitespace-only changes.
+8
View File
@@ -0,0 +1,8 @@
<head>
<title>Hello world</title>
</head>
<body>
This is a not well-formed<br>
html files with undeclared entities&nbsp;
</body>
</html>
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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
View File
@@ -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);
}
+5 -5
View File
@@ -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;
}
+2 -1
View File
@@ -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
+2 -1
View File
@@ -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);
+1 -1
View File
@@ -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;
+3 -1
View File
@@ -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 -1
View File
@@ -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--
+3 -3
View 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.
+3 -1
View File
@@ -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));
+2
View File
@@ -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
View File
@@ -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 */
+7
View File
@@ -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
+3 -3
View File
@@ -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
+1 -1
View File
@@ -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;
+1 -1
View File
@@ -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;
+2 -2
View File
@@ -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";
+1 -1
View File
@@ -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.
+2 -2
View File
@@ -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) {}
+2 -2
View File
@@ -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 -1
View File
@@ -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