Compare commits

...
1286 Commits
Author SHA1 Message Date
SVN Migration 3e94ce6a97 This commit was manufactured by cvs2svn to create tag 'NEWS'. 2008-12-19 02:13:42 +00:00
Scott MacVicar 99614941d7 MFH: Invalid string causes segfault within json_decode() 2008-12-19 02:13:41 +00:00
Scott MacVicar b5ca904be2 Add name of reported to security issues because we apparently need to let everyone know. 2008-12-18 21:05:55 +00:00
Derick Rethans 9fbc798d63 - Added a test case for bug #46268. (Bug itself is not present in 5.2). 2008-12-18 20:30:06 +00:00
Ilia Alshanetsky 444aba4d5f MFB: Fixed bug #46887 (Invalid calls to php_error_docref()) 2008-12-18 20:08:00 +00:00
Pierre Joye abda35380f - MFH: export php_scandir and php_alphasort 2008-12-18 17:41:59 +00:00
Arnaud Le Blanc 3572d5f2b0 MFH: Fixed test 2008-12-18 16:05:14 +00:00
Robin Fernandes dae1582b66 Additional output buffering tests. 2008-12-18 15:20:46 +00:00
Derick Rethans e3388ff043 - MFH: Fixed bug #46889: Memory leak in strtotime(). 2008-12-18 14:57:04 +00:00
Stanislav Malyshev e179d4e86b bug #46005 -> 5.2 2008-12-18 14:29:38 +00:00
Stanislav Malyshev d3dce9e02e MFH fix #46005 2008-12-18 14:28:35 +00:00
Ilia Alshanetsky eaa3298b4a MFB: remove fprintf usage 2008-12-17 21:45:31 +00:00
Zoe Slattery a54f690ae0 README for ext/imap tests 2008-12-17 15:36:44 +00:00
Zoe Slattery e780773ee6 Miscellaneous tests for ext/imap 2008-12-17 15:09:21 +00:00
Jani Taskinen 3c1bcc2c8c MFH:- Fixed bug #45161 (Reusing a curl handle leaks memory) 2008-12-17 14:20:30 +00:00
Jani Taskinen 1cd04d8739 MFH: bug tests 2008-12-17 14:05:52 +00:00
Zoe Slattery 3fff948321 New FTP test from Nathaniel McHugh 2008-12-17 12:35:53 +00:00
Ilia Alshanetsky 435cf74f45 MFH: removed unused var 2008-12-17 00:30:48 +00:00
Zoe Slattery 9919125435 bug #46837 fix 2008-12-16 21:35:42 +00:00
Zoe Slattery 2b5cd5b7fe bug #46884 fix 2008-12-16 21:11:49 +00:00
Steve Seear 071a3c3c7a call_user_func_array() tests 2008-12-15 14:12:16 +00:00
Zoe Slattery b0994638ee fixed test 2008-12-15 13:19:23 +00:00
Steve Seear 5591b9fabb Add find_tested script to 5_2 branch (for use by gcov.php.net) 2008-12-15 11:29:18 +00:00
Sanjay Mantoor d0eaa59d0f New testcases for gmdate function 2008-12-15 10:36:53 +00:00
Sanjay Mantoor 29c885c8bd New testcases for gettimeofday function 2008-12-15 08:23:58 +00:00
Scott MacVicar c9e793df5e Add CVE 2008-12-13 13:37:58 +00:00
Andrei Zmievski 844799cfd5 MFH 2008-12-13 00:38:29 +00:00
Rob Richards d6b537e8ca fix entry 2008-12-12 04:21:01 +00:00
Rob Richards dba2bf64dd BFN 2008-12-12 04:18:12 +00:00
Rob Richards f9020054d2 MFH: fix bug #46699: (xml_parse crash when parser is namespace aware)
fix a couple warnings
add test
2008-12-12 04:17:26 +00:00
Pierre Joye 22955ad4bf - fix build (all platforms) 2008-12-11 15:30:18 +00:00
Pierre Joye b2483079bb - MFH: fix build (was never used like that before recent commit to session) > local include use quotes not <> 2008-12-11 13:12:54 +00:00
Stefan Esser f2d5b34f26 Added test for magic_quotes_gpc 2008-12-11 13:06:29 +00:00
Ant Phillips 99e65a945e MCrypt tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows and Linux but not Linux 64 bit or 5.3). 2008-12-11 10:20:37 +00:00
Lars Strojny d5b6ae48f7 MFB: Fixing strict warning 2008-12-11 02:38:44 +00:00
Scott MacVicar b2863d6ecc BFN 2008-12-11 01:23:40 +00:00
Scott MacVicar 08e90b069f MFH Fix bug #35975 - Session cookie expires date format isn't the most compatible. Sync to that of setcookie(). 2008-12-11 01:21:42 +00:00
Pierre Joye 422eb1b8f6 - ws 2008-12-11 00:12:20 +00:00
Ilia Alshanetsky 8424c90476 MFB: Fixed bug #46798 (Crash in mssql extension when retrieving a NULL value
inside a binary or image column type)
2008-12-10 20:54:47 +00:00
Scott MacVicar c0defbdc81 BFN 2008-12-10 13:40:20 +00:00
Scott MacVicar ec469a9f6a MFH Fix segfault and potential security issue in imagerotate(). 2008-12-10 13:33:10 +00:00
Ant Phillips 0397dd836b Tests for bug #43841 and #45923 2008-12-10 10:35:40 +00:00
Arnaud Le Blanc 74a872c001 MFH: fixed test 2008-12-09 22:54:16 +00:00
Nuno Lopes 6499ce4847 update PCRE symbol list (sync with php 5.3). this should fix bug #46800 2008-12-09 22:00:19 +00:00
Jani Taskinen 0cc37e4a06 MFH 2008-12-09 16:05:57 +00:00
Jani Taskinen 84f868ded7 MFH: fix tests 2008-12-09 15:44:47 +00:00
Jani Taskinen 8808ffa0ff MFH 2008-12-09 15:21:33 +00:00
Zoe Slattery 7d2735fbef fix resource id 2008-12-09 13:40:25 +00:00
Jani Taskinen 6414245da6 MFH 2008-12-09 10:54:04 +00:00
Pierre Joye e3b599807c - not used anymore 2008-12-09 09:21:59 +00:00
Scott MacVicar 864632a1b1 MFB 5.3 Add test for the recent magic_quotes_gpc regression. 2008-12-09 01:48:32 +00:00
Pierre Joye 6bbb6b7df7 - MFH:
- buildconf accepts arguments (pecl dir for ex.)
 - copy configure.bat
2008-12-08 22:42:51 +00:00
Pierre Joye 743e7d8cb7 - MFH: add configure script 2008-12-08 22:40:30 +00:00
Nuno Lopes 3f3da95a4c remove unused file to avoid confusion 2008-12-08 20:18:14 +00:00
Zoe Slattery bb46ef5a6e tests for imap_fetch_overview 2008-12-08 19:14:03 +00:00
Jani Taskinen bb46aa5f97 - Sync with HEAD 2008-12-08 12:35:54 +00:00
Scott MacVicar b364219ade Fix bug #46748, segfault when SSL has more than one error message. 2008-12-08 02:33:46 +00:00
Antony Dovgal de78386d8f fix .cvsignore 2008-12-07 19:33:15 +00:00
Ilia Alshanetsky 1fa754ffd3 Back to dev 2008-12-07 19:28:01 +00:00
Ilia Alshanetsky 3cb41ad94d 5.2.8 2008-12-07 19:23:26 +00:00
Ilia Alshanetsky 34455b8ab8 5.2.8 2008-12-07 19:18:20 +00:00
Ilia Alshanetsky ff209bb97c Move active branch to 5.2.9 2008-12-07 19:08:35 +00:00
Matt Wilmas af5cb849ee MFH: Fixed bug #46782 (fastcgi.c parse error) 2008-12-07 10:55:47 +00:00
Scott MacVicar ab165076a9 Back out bugfix for #42718 as this broke magic_quotes_gpc 2008-12-06 17:16:36 +00:00
Zoe Slattery 488d12c2e5 More changes to allow the same tests to be used with PHP5 and PHP6 2008-12-06 12:02:24 +00:00
Robin Fernandes 27c06db0bd Add some class related tests, fix hard-coded object ID in serialize_001.phpt. 2008-12-05 22:12:06 +00:00
Rob Richards 3bfe758475 MFH: fix arginfo - these also accept SimpleXMLElement 2008-12-05 18:36:16 +00:00
Zoe Slattery dee98d2d9e FTP test from Nathaniel McHugh 2008-12-05 16:27:01 +00:00
Ant Phillips 19c4363c8a Remove duff comment produced by the test generator tool 2008-12-05 14:17:58 +00:00
Zoe Slattery 7c375c4879 bug #46731 fix 2008-12-05 11:59:01 +00:00
Zoe Slattery 51e0152170 Update to use norsh flag 2008-12-05 11:02:55 +00:00
Sanjay Mantoor 59338d84b7 New testcases for date_sunset function 2008-12-05 06:12:11 +00:00
Sanjay Mantoor 8f00f19419 New testcases for date_sunrise function 2008-12-05 05:35:39 +00:00
Mikko Koppanen df7ba6eb86 Fixed #46739 2008-12-04 13:17:28 +00:00
Mikko Koppanen d6593aa472 Fixes bug #46739 2008-12-04 13:13:41 +00:00
Antony Dovgal 3fbb9f50c5 fix test 2008-12-03 21:29:19 +00:00
Felipe Pena 5be5df48c9 - Fixed strange typos 2008-12-03 20:45:25 +00:00
Ant Phillips b337c7ad95 XML tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-12-03 19:09:22 +00:00
Felipe Pena 1000e22750 - Coverage++ 2008-12-03 16:27:50 +00:00
Ilia Alshanetsky 4efe92fa7c Back to dev 2008-12-03 15:57:52 +00:00
Ilia Alshanetsky b822f24748 PHP 5.2.7 2008-12-03 15:54:03 +00:00
Robin Fernandes 1ff15e8260 Add support for %u|b% and %unicode_string_optional% to facilitate writing tests compatible with both 5_2 and HEAD. 2008-12-03 14:27:43 +00:00
Ant Phillips 0ff050f076 MBString tests: checked on PHP 5.2.6 (Windows, Linux and Linux 64 bit). 2008-12-03 13:04:38 +00:00
Felipe Pena 2689a74cee - BFN 2008-12-03 10:15:13 +00:00
Ant Phillips b11ad90dfc Delete duff commit files 2008-12-03 09:25:42 +00:00
Felipe Pena bc7d3a9484 - Fixed tests 2008-12-02 23:06:52 +00:00
Felipe Pena 03eb1fd623 MFH:
- Fixed memory leaks
- Added new tests (Coverage++)
2008-12-02 21:02:44 +00:00
Derick Rethans 24a764e086 - MFH: Fixed bug #46732 (mktime.year description is wrong). 2008-12-02 18:01:58 +00:00
Matt Wilmas 7c53e81273 MFH: Changed logic for LONG_MIN 2008-12-02 14:50:37 +00:00
Ant Phillips 173069cead Array tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-12-02 13:37:21 +00:00
Ilia Alshanetsky 0902cc8651 Fixed typo 2008-12-01 20:57:11 +00:00
Iain Lewis 1b3ea47dbc Adding tests for array_multisort 2008-12-01 14:25:24 +00:00
Felipe Pena fb11097b06 - MFH: Fixed memory leak 2008-12-01 12:28:27 +00:00
Ant Phillips 0722818374 Exif tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-12-01 12:23:33 +00:00
Ant Phillips 72e8a2ec60 DOM tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-12-01 11:29:35 +00:00
Uwe Schindler e073d72618 remove unneeded includes (not needed since NSAPI 3.0, wich is very old). This is needed for cleanup of the windows build. 2008-12-01 10:11:57 +00:00
Pierre Joye 21f74ba99e - c/p fix, correct description 2008-12-01 00:03:03 +00:00
Pierre Joye 279c926f8b - Enable fix fo #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer overflow) on windows (we use the latest imap) 2008-11-30 23:58:17 +00:00
Pierre Joye 26eeef7599 - fix line ending 2008-11-30 23:56:36 +00:00
Pierre Joye 07fde460a3 - fix line ending 2008-11-30 22:35:39 +00:00
Pierre Joye d70eefbaa0 - #44900 2008-11-30 21:41:57 +00:00
Pierre Joye 3d1a87fb88 - #44900, OpenSSL extension fails to link with OpenSSL 0.9.6 (5.2 only, 5.3+ requires a decent version) 2008-11-30 21:39:57 +00:00
Hannes Magnusson df9603aae0 MFH: Fix proto 2008-11-30 00:12:45 +00:00
Uwe Schindler 4560601437 MFH: support stat cache of webserver (like apache does) 2008-11-29 23:44:44 +00:00
Uwe Schindler 77972bc68a MFH: Some nsapi.h specific ifdefs unified & corrected (same like last commit, only cleanup) 2008-11-29 19:59:27 +00:00
Uwe Schindler 877cdf6862 MFH: remove one stat call and replace by cached one
(release-manager: the same like with last commit)
2008-11-29 19:38:04 +00:00
Uwe Schindler 75b081d0d1 Hallo release manager: This patch is not release critical (affects only NSAPI, but I want it to be fixed in the last version of PHP 5.2). If you do not want to have it in, revert it, a new RC is definitely not needed because of this (and I am sure nobody who tests RCs is using NSAPI :)!
MFH: Implement flushing in NSAPI, fix some problems with output buffering if the response was not started (no headers sent) before doing something in ub_write() or flush() - Writing or flushing output will fail in NSAPI, if headers were not sent before.
2008-11-29 14:51:45 +00:00
Stanislav Malyshev f9a2648d61 report fix 2008-11-29 00:49:58 +00:00
Stanislav Malyshev 8a0fc77582 properly initialize BG(page_uid) and BG(page_gid) 2008-11-28 23:27:46 +00:00
Stanislav Malyshev 7a67e94f17 init SG(server_context) before processing configs 2008-11-28 23:22:39 +00:00
Matt Wilmas 2826401afe MFH: Updated description to match docs 2008-11-28 19:07:09 +00:00
Zoe Slattery b51bb4132f Committing include files required for tests. Tests and bug reports to follow. 2008-11-28 17:41:03 +00:00
Dmitry Stogov 281fb1f2ed Fixed bug #46366 (bad cwd with / as pathinfo) 2008-11-28 11:56:50 +00:00
Ant Phillips fbdf0ba4e5 Language tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-11-28 10:40:37 +00:00
Stanislav Malyshev 311e37c4b1 report fix 2008-11-27 23:51:45 +00:00
Ilia Alshanetsky e0beb2850f Back to dev 2008-11-27 21:28:37 +00:00
Ilia Alshanetsky c66894df94 5.2.7RC5 2008-11-27 21:21:42 +00:00
Ilia Alshanetsky 460b6552cd Updated NEWS file with CVE #s 2008-11-27 17:29:20 +00:00
Ilia Alshanetsky e12dba474e MFB: Fixed bug #46696 (cURL fails in upload files with specified
content-type)
2008-11-27 17:01:29 +00:00
Ant Phillips 39de96fa50 Directory tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-11-27 14:51:16 +00:00
Dmitry Stogov ac0fc54ec4 Fixed bug #44882 (SOAP extension object decoding bug) 2008-11-27 14:49:46 +00:00
Ant Phillips 7446484181 Latest and greatest versions of these session tests - checked on 5.2.X snap on Windows, Linux and Linux 64 bit. 2008-11-27 14:30:58 +00:00
Ant Phillips bc80465549 Latest and greatest versions of these session tests - checked on 5.2.X snap on Windows, Linux and Linux 64 bit. 2008-11-27 13:51:07 +00:00
Dmitry Stogov 84ce97f43d Fixed bug #46427 (SoapClient() stumbles over its "stream_context" parameter) 2008-11-27 11:25:22 +00:00
Arnaud Le Blanc 9ed3965300 MFH: Fixed bug #46673 (stream_lock call with wrong paramater) 2008-11-26 04:20:41 +00:00
Arnaud Le Blanc fbde968865 MFH: Missed file from commit for #44181 & #44182 2008-11-26 04:08:30 +00:00
Arnaud Le Blanc 5673f9f2c1 MFH: Fixed bug #42473 (ob_start php://output and headers) 2008-11-26 01:21:10 +00:00
Arnaud Le Blanc 22f994ad4e MFH: Fixed bugs #44181 & #44182 (extract() and references)
(robin_fernandes at uk dot ibm dot com)
2008-11-26 01:00:36 +00:00
Ant Phillips 701c5a64a4 File system tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). There seems to be an issue with trailing slashes on 5.2.7 RC1 which may cause some tests to fail... 2008-11-25 11:33:41 +00:00
Arnaud Le Blanc 3e82b3d3ae MFH: Fixed endless loop in cli when ignore_user_abort is on 2008-11-25 03:53:00 +00:00
Stanislav Malyshev 40607b254a fix php_value application order for Apache 2008-11-24 22:18:25 +00:00
Ilia Alshanetsky 0d56cd2dfc MFB: Fixed bug #46626 (mb_convert_case does not handle apostrophe correctly) 2008-11-24 21:23:45 +00:00
Arnaud Le Blanc 90f9f11fbe MFH 2008-11-24 19:17:56 +00:00
David Soria Parra 6686c41e3d MFH: Revert fix for 43782, as it caused problems. 2008-11-24 15:37:33 +00:00
Jani Taskinen d9204dbce2 - Keep the style ;) 2008-11-24 12:49:00 +00:00
Arnaud Le Blanc d6b86e9d4d MFH: Fixed bug #46649 (Setting array element with that same array produces
inconsistent results)
2008-11-23 20:36:32 +00:00
Ilia Alshanetsky d2bb47958f BFN: Fixed bug #46643 (Upgraded PCRElib to 7.8) 2008-11-23 18:31:05 +00:00
Ilia Alshanetsky d8b835620c MFB: Fixed bug #46643 (Upgraded PCRElib to 7.8) 2008-11-23 18:30:38 +00:00
Felipe Pena 3d8b5526af - BFN 2008-11-22 11:24:15 +00:00
Felipe Pena c22036851a - Missing SKIPIF :( 2008-11-21 22:56:20 +00:00
Felipe Pena 958fcd4c65 - Fixed tests 2008-11-21 22:50:22 +00:00
Felipe Pena 572b3f83a3 - MFH: Fixed memory leak in readline_callback_handler_remove() 2008-11-21 22:48:27 +00:00
Felipe Pena f358f96deb - New tests 2008-11-21 21:44:32 +00:00
Felipe Pena d5e2d221cd - Fix test 2008-11-21 21:03:47 +00:00
Felipe Pena bec4b5a45e - New tests 2008-11-21 21:01:23 +00:00
Ilia Alshanetsky 42066c72d1 Back to dev 2008-11-21 00:12:18 +00:00
Ilia Alshanetsky 574d2c8987 5.2.7RC4 2008-11-21 00:08:49 +00:00
Felipe Pena c9f76fb96f - BFN 2008-11-20 22:29:49 +00:00
Felipe Pena 22851007ca - MFH: Fixed memory leaks in readline_completion_function() 2008-11-20 22:26:32 +00:00
Iain Lewis 2b251dc603 Adding some tests for array_product 2008-11-20 15:49:09 +00:00
Mark Karpeles dddacf337a - ext/wddx: fixed test 003 which depended on arch (32bits vs 64bits) 2008-11-20 15:12:28 +00:00
Felipe Pena f4cc20d972 - MFH: Added ZEND_FETCH_RESOURCE_NO_RETURN 2008-11-20 14:51:30 +00:00
Mark Karpeles c139ff0ae1 - MFH: ext/wddx: classes providing __sleep() are stored without properties (fixed) 2008-11-20 14:35:22 +00:00
Ilia Alshanetsky d65d363741 Proper bug id 2008-11-19 23:53:18 +00:00
Pierre Joye 6f24d39212 - #46497 2008-11-19 17:02:33 +00:00
Pierre Joye fa0e88725c - #46497, wddx_serialize treats input as ISO-8859-1 (Mark Karpeles) 2008-11-19 17:01:17 +00:00
Felipe Pena 50e05895c0 - Fixed test 2008-11-19 17:00:13 +00:00
Ant Phillips dfd31ff703 Reflection tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit). 2008-11-18 15:36:32 +00:00
Pierre Joye 0d3534ac1d - #41033 2008-11-18 02:15:54 +00:00
Pierre Joye 0f50210635 - fix title 2008-11-18 02:03:19 +00:00
Pierre Joye a46b6655a4 - MFH: #41033, enable signing with DSA keys 2008-11-18 02:02:19 +00:00
Ilia Alshanetsky bb592b40ab More detailed bug fix description 2008-11-17 23:40:54 +00:00
Ant Phillips 29023692ce Commit tests for ext/reflection 2008-11-17 11:20:19 +00:00
Pierre Joye bb80704332 - skip if pcntl is missing 2008-11-16 23:19:33 +00:00
Pierre Joye f38c96e85f - MFH: manage references of stream context properly (Tony)
- add tests for bug #46127
2008-11-16 23:12:38 +00:00
Ilia Alshanetsky aea970fbc2 MFB: Fixed memory leak inside readline_callback_handler_install() function 2008-11-16 18:01:25 +00:00
Felipe Pena 8c6eedb868 - MFH: Better fix 2008-11-13 23:23:11 +00:00
Stanislav Malyshev 682f0c5343 add error_log change 2008-11-13 19:23:51 +00:00
Stanislav Malyshev d3376cb591 Add option to send error_log directly to SAPI 2008-11-13 19:22:01 +00:00
Hannes Magnusson 8c5fafcdb9 MFH: Document the xmlrpc_errors option 2008-11-13 19:06:59 +00:00
Ilia Alshanetsky 88dbe358e0 MFB: Fixed a bug inside dba_replace() that could cause file truncation with
invalid keys
2008-11-13 18:22:23 +00:00
Felipe Pena 83308cedf9 - Reverted last change, only in this branch 2008-11-13 14:53:55 +00:00
Felipe Pena 614d00ca89 - MFH: Fixed invalid reads 2008-11-13 13:09:47 +00:00
Felipe Pena 9bb9f270fa - MFH: Fixed a macro redefinition on BSD for different purpose 2008-11-12 23:38:15 +00:00
Felipe Pena 1bedb57dd4 - MFH: Removed unused variables 2008-11-12 17:50:37 +00:00
Felipe Pena c18fd01775 - Fix test 2008-11-12 17:29:50 +00:00
Pierre Joye 7e2f15eb3a - update NEWS for #14962 2008-11-12 12:01:29 +00:00
Pierre Joye 36b9272e3c - MFH:
- #14962, makes extractTo 2nd argument really optional
 - replace ZEND_ENGINE_2_1 by PHP_ZIP_USE_OO
 - sync tests
2008-11-12 11:59:26 +00:00
Felipe Pena cac8a72989 - Fixes and new tests 2008-11-11 18:42:00 +00:00
Felipe Pena d7a80059bb - New test 2008-11-11 16:16:20 +00:00
Felipe Pena a3de4d224a - BFN #46543 2008-11-11 13:32:55 +00:00
Felipe Pena ea70058067 MFH:
- Added ZEND_FETCH_RESOURCE2_NO_RETURN() (a version of ZEND_FETCH_RESOURCE2 but without the ZEND_VERIFY_RESOURCE() which contains RETURN_FALSE)
- Fixed bug #46543 (ibase_trans() memory leaks when using wrong parameters)
2008-11-11 13:29:50 +00:00
Arnaud Le Blanc c7411c2c96 MFH: Fixed stream_get_contents() when using $maxlength and socket is not
closed. indeyets@php.net on #46049.
2008-11-11 01:56:33 +00:00
Arnaud Le Blanc 3c01491e89 MFH: Fixed bug #44818 (php://memory writeable when opened read only) 2008-11-11 00:45:36 +00:00
Felipe Pena edd46ec6f7 - Make expected result compatible with recent Firebird version 2008-11-10 22:35:02 +00:00
Felipe Pena 13c8beed63 - New tests 2008-11-10 18:04:41 +00:00
Derick Rethans ffef452b62 - MFH: Make it work with bison 2.4. 2008-11-10 12:06:10 +00:00
Kalle Sommer Nielsen 63130eadc0 Fix NEWS 2008-11-09 11:39:27 +00:00
Timm Friebe b0419a1ef1 - Added note on bugfix for #30312
- Added entry on CS_ROW_FAIL patch fix
2008-11-09 10:33:53 +00:00
Rasmus Lerdorf 058a282133 Potential fix for bug #46525 2008-11-08 22:45:29 +00:00
Felipe Pena ab5e85b27d - MFH: Added connection checking on SKIPIF 2008-11-08 15:39:32 +00:00
Timm Friebe 6d6138d9d9 - MFB: Initial release 2008-11-08 14:28:26 +00:00
Timm Friebe 839b81668c - Adjusted tests to reality
# We select 123456789.12345679, we should have this returned and not
# something 123456789.123457 (rounded)
2008-11-08 14:24:55 +00:00
Timm Friebe ea1453a741 - MFB: Made this test independent of date format 2008-11-08 14:24:38 +00:00
Timm Friebe 00772abea5 - MFB: Fixed problems with segmentation faults when using unbuffered queries
# Double-freeing results caused these
2008-11-08 14:15:08 +00:00
Timm Friebe b42da54e51 - MFB: Changed while loop in php_sybase_fetch_result_row() to also read rows with
retcode == CS_ROW_FAIL.
# Reported by Detlef Neumerkel and Frank Irnich of Sybase
2008-11-08 12:06:08 +00:00
Timm Friebe ef15af78dd - MFB: Made this test independent of field types in master..sysprocesses
# char on ASE 11, varchar on ASE 15
2008-11-08 12:01:10 +00:00
Timm Friebe c5b45f2281 - Changed source to read host, user and password from environment
# E.g. nmake test TESTS=ext/sybase_ct PHP_SYBASE_HOST=db PHP_SYBASE_USER=sa PHP_SYBASE_PASS=***
2008-11-08 11:59:57 +00:00
Scott MacVicar df7f836d31 MFH: Support versions of valgrind from SVN. The version is shown as 3.4.0.SVN
Save the bunnies
2008-11-08 02:05:03 +00:00
Felipe Pena 9d052f239f MFH:
- Fixed bug #46521 (Curl ZTS OpenSSL, error in config.m4 fragment)
  Noticed by: jd at cpanel dot net
2008-11-07 21:18:45 +00:00
Ilia Alshanetsky 482d6ad927 Back to dev 2008-11-06 21:53:48 +00:00
Ilia Alshanetsky f2445bd57a 5.2.7RC3 2008-11-06 21:50:36 +00:00
Felipe Pena a054d74c4a BFN #45166 2008-11-06 01:36:40 +00:00
Felipe Pena 779adcc113 MFH:
- Fixed wrong check
- Improved test
2008-11-05 23:42:05 +00:00
Felipe Pena 347fa0eb1b - Fixed bug #45166 (substr() overflow changes) (now synced with other branches) 2008-11-05 18:55:02 +00:00
Hannes Magnusson ac10dfa0ce Fixed bug#46445 (run-tests2.php is missing or README.TESTING2 is unneeded) 2008-11-05 17:16:07 +00:00
Kalle Sommer Nielsen def82c26f2 MFH: New tests for syslog 2008-11-05 09:59:46 +00:00
Arnaud Le Blanc 9ecba09de6 BFN 2008-11-04 21:07:44 +00:00
Arnaud Le Blanc be8c7c0988 MFH: Open STDIN and php://stdin streams with the relevant
wrapper when the file descriptor is a socket (inetd, etc)
Fixes bug #43731
2008-11-04 21:05:55 +00:00
Arnaud Le Blanc 695b43a535 MFH: initialize memory 2008-11-04 20:41:37 +00:00
Arnaud Le Blanc 1ba7b093a6 MFH: Fixed stream_get_line() to behave as documented on non-blocking
streams
2008-11-04 17:07:20 +00:00
Arnaud Le Blanc 930a8feb66 MFH: Avoids fclose() from complaining that stream_socket_pair() streams
have not been closed
2008-11-04 16:48:07 +00:00
Arnaud Le Blanc c6aca784f9 MFH: Fixed bug #46024 (stream_select() doesn't return the correct number) 2008-11-04 00:43:06 +00:00
Felipe Pena 7c76add7fe - MFH: Improved fix 2008-11-03 23:45:17 +00:00
Arnaud Le Blanc 736f29a9a9 cleanup 2008-11-03 23:34:36 +00:00
Arnaud Le Blanc c644ba688b MFH: Fixed bug #44607 (stream_get_line unable to correctly identify the
"ending" in the stream content)
2008-11-03 23:29:50 +00:00
Arnaud Le Blanc 07fe6986cc Fixed bug #46379 (Infinite loop when parsing '#' in one line file)
# PHP_5_2 only
2008-11-03 23:26:24 +00:00
Felipe Pena 8290469bd6 - New test 2008-11-03 21:49:49 +00:00
Felipe Pena fc53f0b6ea MFH:
- Fixed endless loop in PDOStatement::debugDumpParams()
  patch by: Jonah H. Harris <jonah.harris at gmail dot com>
2008-11-03 20:55:01 +00:00
Elizabeth Marie Smith 3591f8b356 MFH 2008-11-03 19:28:23 +00:00
Arnaud Le Blanc 5e5e4293c3 MFH: Fixed bug #45303 (Opening php:// wrapper in append mode results
in a warning)
2008-11-03 16:59:18 +00:00
Arnaud Le Blanc 2d36d06f35 credit 2008-11-03 16:08:07 +00:00
Arnaud Le Blanc 77f82b1401 MFH: Fixed bug #43353 (wrong detection of 'data' wrapper causes notice) 2008-11-03 15:48:05 +00:00
Felipe Pena 378bd3060e - MFH: Fixed bug #44327 (PDORow::queryString property & numeric offsets / Crash) 2008-11-03 15:41:35 +00:00
Felipe Pena f4d34bb28e - MFH: Fixed bug #42855 (dns_get_record() doesn't return all text from TXT record)
patch by: a dot u dot savchuk at gmail dot com
2008-11-03 11:39:34 +00:00
Arnaud Le Blanc 2f29a1240e MFH: Fixed bug #42718 (FILTER_UNSAFE_RAW not applied when configured as
default filter)
2008-11-02 22:04:40 +00:00
Jani Taskinen ea8aea176a - Ignore crap 2008-11-02 14:48:52 +00:00
Jani Taskinen 29b9bddb0c MF53: added missing constants 2008-11-02 14:12:15 +00:00
Jani Taskinen f848fb0fa1 MFH: fixed the macros 2008-11-01 23:09:51 +00:00
Jani Taskinen 1d608d09f2 - Fix skip conditions 2008-11-01 22:48:52 +00:00
Jani Taskinen 07c3dbdc8c MF53: Sync with HEAD and PHP_5_3 2008-11-01 22:42:38 +00:00
Jani Taskinen 7fc67ed4a9 [DOC] MF53: Forward compatibility 2008-11-01 22:39:14 +00:00
Jani Taskinen 98e3ad366a - Fix for real: Actually one of these "let's not commit to other branches"
fixes some people like to do..
2008-11-01 22:12:11 +00:00
Jani Taskinen f7ced2b8af - Fix tests 2008-11-01 22:06:23 +00:00
Felipe Pena 416679fae5 - Fixed test (#46438) 2008-10-31 22:43:32 +00:00
Felipe Pena 192e130e52 - Fixed test 2008-10-31 12:55:10 +00:00
Felipe Pena cc6e678224 - MFB: Fixed memory leak when using offset out of range. (php_stream_copy_to_mem returns 0, but the empty string is alloced) 2008-10-30 15:56:23 +00:00
Felipe Pena 94e5be1bdc MFH:
- Fix the fix
- Improved test
2008-10-30 14:36:34 +00:00
Lars Strojny 930fad7381 MFH: #44938 2008-10-30 14:23:03 +00:00
Jani Taskinen 3e32e77243 - had nothing else to do :) 2008-10-30 11:04:10 +00:00
Felipe Pena 756ab17389 - MFH: Fixed bug #46426 (3rd parameter offset of stream_get_contents not works for "0") 2008-10-30 10:11:52 +00:00
Dmitry Stogov 4c3bc2ab43 Fixed contributors 2008-10-30 08:56:38 +00:00
Dmitry Stogov e173d61581 Fixed ability to use "internal" heaps in extensions. 2008-10-30 08:55:09 +00:00
Antony Dovgal 250fec018a fix test 2008-10-30 08:45:21 +00:00
Rob Richards dcba47f8dc BFN 2008-10-29 21:23:45 +00:00
Rob Richards a27ca9810a MFH: fix bug #46406 (Unregistering nodeclass throws E_FATAL) 2008-10-29 21:22:34 +00:00
Ilia Alshanetsky b0ab190e62 MFB: Fixed bug #44938 (gettext functions crash with overly long domain). 2008-10-29 20:41:43 +00:00
Ilia Alshanetsky 3f9d6e9d7c MFB: Fixed bug #42294 (Unified solution for round() based on C99 round). 2008-10-29 20:17:33 +00:00
Felipe Pena acecc06940 - BFN #46064 2008-10-29 13:36:47 +00:00
Felipe Pena a04ec69406 - MFH: Fixed bug #46064 (Exception when creating ReflectionProperty object on dynamicly created property) 2008-10-29 13:34:08 +00:00
Ilia Alshanetsky 3b7b54ac68 NEWS 2008-10-28 21:23:12 +00:00
Derick Rethans 7922a83ac0 - Updated to version 2008.9 (2008i) 2008-10-28 08:17:47 +00:00
Arnaud Le Blanc 617a8855b8 MFH: Fix compile error 2008-10-27 14:59:14 +00:00
Andrey Hristov dc710ce12f MFH: Fix an issue with mysql.default_port not being used 2008-10-27 14:36:02 +00:00
Felipe Pena 77bce434a0 - Fixed test 2008-10-26 23:00:53 +00:00
Kalle Sommer Nielsen e486197f1e MFB: Fixed #44748 (php.ini comments on magic_quotes_gpc promote bad practices) 2008-10-26 15:39:44 +00:00
Ilia Alshanetsky a5e30d595f MFB: Fixed compiler warning 2008-10-26 14:35:59 +00:00
Felipe Pena d1eb03eec7 - MFH: Fixed bug #46388 (stream_notification_callback inside of object destroys object variables) 2008-10-26 13:48:16 +00:00
Derick Rethans 21490362dd - MFH: Fixed weekdays adding/subtracting algorithm.
- MFH: Fixed some ambiguities in the date parser.
- MFH: Fixed bug #45529 (new DateTimeZone() and date_create()->getTimezone()
  behave different).
- MFH: Fixed bug #43452 (strings containing a weekday, or a number plus weekday
  behaved incorrect of the current day-of-week was the same as the one in the
  phrase).
- MFH: Fixed a bug with the YYYY-MM format not resetting the day correctly.
- MFH: Fixed a bug in the DateTime->modify() methods, it would not use the
  advanced relative time strings.
- MFH: Fixed a segfault - simply a forgotten return;
2008-10-26 11:27:32 +00:00
Felipe Pena 93d952884d - BFN #46389 2008-10-26 02:24:23 +00:00
Felipe Pena e18c762764 - MFH: Fixed bug #46389 (NetWare needs small patch for _timezone) (patch by guenter at php.net) 2008-10-26 02:02:05 +00:00
Felipe Pena 48d1b3a51a - MFH: Fixed bug #46382 (Mismatching allocation and deallocation in stresstest.cpp) (dvice_null at yahoo dot com) 2008-10-24 23:17:04 +00:00
Antony Dovgal 334e8973db fix test 2008-10-24 20:15:34 +00:00
Antony Dovgal d3bf8e3016 BFN 2008-10-24 13:56:27 +00:00
Antony Dovgal 340bd30aa6 fix bug #46381 (wrong $this passed to internal methods causes segfault) 2008-10-24 13:55:37 +00:00
Felipe Pena 9fca0051a6 - MFH: Fixed bug #46082 (stream_set_blocking() can cause a crash in some circumstances) 2008-10-24 10:46:05 +00:00
Felipe Pena 44c184862b - MFH: Removed unnecessary check for array (#46273, noticed by serovov at gmail dot com) 2008-10-24 10:28:56 +00:00
Ilia Alshanetsky 51466116c0 Back to dev 2008-10-23 22:38:19 +00:00
Ilia Alshanetsky 705f67c884 5.2.7RC2 2008-10-23 22:36:05 +00:00
Arnaud Le Blanc 6928982fb3 BFN 2008-10-23 20:23:38 +00:00
Arnaud Le Blanc 8b969f44d7 MFH: Fixed bug #46360 (TCP_NODELAY constant for socket_{get,set}_option)
[DOC] Added TCP_NODELAY constant to sockets extension, to be used with
socket_set_option() to disable TCP's Nagle algorithm. Avail in PHP>=5.2.7.
2008-10-23 20:21:30 +00:00
Felipe Pena a29aef485a - BFN #43925 2008-10-23 18:57:07 +00:00
Felipe Pena 8d88e230fc - MFH: Fixed bug #43925 (Incorrect argument counter in prepared statements with pgsql) 2008-10-23 18:56:05 +00:00
Jani Taskinen baccc9b2e9 - It is past, not command. Reorder. 2008-10-23 17:55:57 +00:00
Pierre Joye c49953a8f6 - entries for zip changes 2008-10-23 16:22:01 +00:00
Pierre Joye 08a1795767 - remove unused files 2008-10-23 16:16:56 +00:00
Pierre Joye 4fc1246d11 - add missing files 2008-10-23 16:15:54 +00:00
Pierre Joye 047bda3cb8 - MFH
- Update ziplib
 - flatten path and make them relative before extraction
 - remove unnecessary export
2008-10-23 16:13:51 +00:00
Ilia Alshanetsky 8d916b2ec6 MFB: revert define() fix for now 2008-10-22 23:29:28 +00:00
Arnaud Le Blanc bb9e8e6924 MFH: Fixed FCGI_GET_VALUES requests (fixes #45522) 2008-10-21 16:43:59 +00:00
Zoe Slattery f432258b02 Committing test for till 2008-10-21 09:37:41 +00:00
Ilia Alshanetsky 1b0d1d6bcb MFB:Fixed bug #46343 (IPv6 address filter accepts invalid address) 2008-10-20 23:23:45 +00:00
Rob Richards c9e4d5b668 BFN 2008-10-20 19:30:56 +00:00
Rob Richards 8767f16ff3 MFH: fix bug #46323 (compilation of simplexml for NetWare breaks) 2008-10-20 19:29:40 +00:00
Arnaud Le Blanc f31c8fb4aa MFB PHP_5_3: Fixed #46313 (Magic quotes broke $_FILES) 2008-10-20 18:45:24 +00:00
Rob Richards 68a04f616b BFN 2008-10-20 12:46:57 +00:00
Rob Richards 6a2fe2ad1a MFH: fix bug #46335 (DOMText::splitText doesn't handle multibyte characters)
add test
2008-10-20 12:46:23 +00:00
Ilia Alshanetsky 0e91f80a4d MFB: Fixed bug #46341 (Added missing validation checks into define() for
class constants)
2008-10-19 18:16:43 +00:00
Johannes Schlüter 0e306ec3bc Add %S and %A to EXPECTF, they work like %s and %a but match empty strings, too 2008-10-19 18:07:04 +00:00
Etienne Kneuss c31e0c803e MFB: Fix #46317 (Iterator class not properly checked) 2008-10-19 18:00:42 +00:00
Antony Dovgal 8d7590996d revert the patch, it's not needed in this branch 2008-10-18 09:33:21 +00:00
Antony Dovgal 4768b28fb1 MFH: fix memleak 2008-10-17 22:10:27 +00:00
Zoe Slattery a82df14bef missed one! 2008-10-17 15:00:54 +00:00
Zoe Slattery 7d46d0480e Replacing explicit object ID with %d 2008-10-17 14:57:03 +00:00
Zoe Slattery 867546efca Committing for Robin Fernandes 2008-10-17 14:26:46 +00:00
Dmitry Stogov 739c75b050 Fixed bug #46308 (Invalid write when changing property from inside getter) 2008-10-17 10:25:56 +00:00
Ilia Alshanetsky 0621602408 MFB: Fixed bug #46319 (PHP sets default Content-Type header for HTTP 304
response code, in cgi sapi)
2008-10-17 01:32:59 +00:00
Moriyoshi Koizumi f87643038f * MFH remainder 2008-10-16 17:38:42 +00:00
Dmitry Stogov e0f657a729 Fixed bug #42862 (IMAP toolkit crash: rfc822.c legacy routine buffer overflow) 2008-10-16 16:20:53 +00:00
Dmitry Stogov 9973dfd839 ws 2008-10-16 15:49:18 +00:00
Dmitry Stogov 35f7c44a7d Fixed bug #43723 (SOAP not sent properly from client for <choice>) 2008-10-16 15:36:46 +00:00
Moriyoshi Koizumi d896ea0b9a - MFH & BFN 2008-10-16 01:02:39 +00:00
Felipe Pena 0f6f3c4771 MFH:
- Fixed:
  . Memory leak in pg_delete() when using PGSQL_DML_STRING.
  . Bug #24679 (pg_insert problem!)
  . Bug #35996 (pg_meta_data should take the schema into account)
  . Bug #40808 (pg_insert problem)
  . Bug #42078 (pg_meta_data mix tables metadata from different schemas)
- Improved:
  . Error messages
- Added:
  . Tests
2008-10-16 00:45:21 +00:00
Felipe Pena 2976c867a1 - Fixed possible efree(NULL) 2008-10-15 13:34:45 +00:00
Ilia Alshanetsky 208d8e75f1 MFB: Fixed bug #46271 (local_cert option is not resolved to full path) 2008-10-14 23:40:25 +00:00
Felipe Pena eff30bdfcb - MFH: Fixed bug #46292 (PDO::setFetchMode() shouldn't requires the 2nd arg when using FETCH_CLASSTYPE) 2008-10-14 17:43:20 +00:00
Felipe Pena 4045a51376 - BFN #37100 2008-10-13 13:47:24 +00:00
Felipe Pena 043c66806a MFH:
- Fixed bug #37100 (data is returned truncated with BINARY CURSOR)
  Patch by Tony
2008-10-13 13:46:25 +00:00
Derick Rethans 78253b53e3 - Updated to version 2008.8 (2008h) 2008-10-13 11:45:48 +00:00
Ilia Alshanetsky 09b63f25d8 WS 2008-10-12 19:00:58 +00:00
Felipe Pena 338d7dbca0 - MFB: Fixed compiler warnings 2008-10-12 15:01:40 +00:00
Felipe Pena 736efdcfc1 - MFB: Removed unnecessary strcmp call (thanks Tony) 2008-10-12 13:46:51 +00:00
Felipe Pena 7429cd2181 - New tests 2008-10-12 13:25:35 +00:00
Felipe Pena 5adf804213 - MFB: Complete the fix for #46274, and tests 2008-10-12 13:03:31 +00:00
Felipe Pena 9c16e1d9d2 - BFN: #46274, #46249 2008-10-11 19:20:41 +00:00
Greg Beaver fcec48fcc2 fix Bug #46026: bz2.decompress/zlib.inflate filter tries to decompress after end of stream 2008-10-11 19:12:11 +00:00
Felipe Pena 5feb5e5a89 MFH:
- Fixed bug #46249 (pdo_pgsql always fill in NULL for empty BLOB)
- Fixed bug #46274 (pdo_pgsql - Segfault when using PDO::ATTR_STRINGIFY_FETCHES and blob)
2008-10-11 19:05:30 +00:00
Pierre Joye 8e87cdf7ac - MFH: add nts postfix to the dist filenames 2008-10-10 23:38:15 +00:00
Felipe Pena 661569eba6 - Fixed test 2008-10-10 22:10:11 +00:00
Felipe Pena c073b42ba2 - Added skipif 2008-10-10 19:53:38 +00:00
Felipe Pena 64fcd3b4e1 - New test 2008-10-10 19:50:04 +00:00
Felipe Pena 6843a38b2c - MFH: Static'fication 2008-10-10 19:35:49 +00:00
Felipe Pena 7b952b33c6 - BFN #46139 2008-10-10 16:49:26 +00:00
Felipe Pena 177c1f128b MFH:
- Fixed bug #46139 (PDOStatement->setFetchMode() forgets FETCH_PROPS_LATE)
  Initial patch by: chsc at peytz dot dk
2008-10-10 16:48:13 +00:00
Dmitry Stogov a1a1249753 Fixed bug #46246 (difference between call_user_func(array($this, $method)) and $this->$method()) 2008-10-10 15:53:31 +00:00
Antony Dovgal 27fbfa3d08 backport convenience macro 2008-10-10 14:47:17 +00:00
Felipe Pena 16021cb6e3 - BFN: #44251, #41125 2008-10-10 12:15:43 +00:00
Felipe Pena f6221397ac MFH:
- Fixed bug #44251 (Question mark and an escaped singel quote lead to an exception)
- Fixed bug #41125 (PDO mysql + quote() + prepare() can result in seg fault)
  Patch by: tsteiner at nerdclub dot net
2008-10-10 12:11:36 +00:00
Ilia Alshanetsky d4523d6678 Back to dev 2008-10-09 23:16:41 +00:00
Ilia Alshanetsky 3e92d040f6 5.2.7RC1 2008-10-09 23:12:20 +00:00
Felipe Pena b66673da7d - MFH: Fixed bug pecl#9641 (Unable to add driver specific methods to PDOStatement) (patch by Christopher Jones) 2008-10-09 13:01:40 +00:00
Felipe Pena 4237bea6fe - MFH: Fixed bug #45575 (Segfault with invalid non-string as event handler callback)
patch by Christian seiler
2008-10-07 18:23:05 +00:00
Felipe Pena afc82532cc - MFH: Fixed bug #46247 (ibase_set_event_handler() is allowing to pass callback without event) 2008-10-07 15:31:48 +00:00
Ilia Alshanetsky bef0a451e3 MFB:
Fixed bug #46042 (memory leaks with reflection of mb_convert_encoding())
 Fixed bug #46110 (XMLWriter - openmemory() and openuri() leak memory on
  multiple calls).
 Fixed bug #46206 (pg_query_params/pg_execute convert passed values to
  strings).
2008-10-07 14:35:04 +00:00
Felipe Pena 73042afe10 - MFH: Fixed code ("Division by zero" anymore) 2008-10-07 12:53:08 +00:00
Felipe Pena 2f2a0d8259 - MFH: Fixed compiler warning 2008-10-06 15:14:17 +00:00
Felipe Pena 8b603dfa07 - BFN #45373 2008-10-06 15:11:43 +00:00
Felipe Pena 32f7c6a42d - MFH: Fixed bug #45373 (php crash on query with errors in params) 2008-10-06 14:37:13 +00:00
Derick Rethans 5bade4dcab - Updated to version 2008.7 (2008g) 2008-10-06 14:27:51 +00:00
Etienne Kneuss af17616e0e MFH: bug #46115 (Fixes nothing in 5.2, but sync code) 2008-10-06 13:45:42 +00:00
Etienne Kneuss 47d935664a Fix #46222 (Allow indirect modifications of Arrays inside ArrayObject + fix EG(uninitialized_zval_ptr) overwrite) 2008-10-05 14:49:25 +00:00
Arnaud Le Blanc 487e14d89c MFH: Fixed #46164 (stream_filter_remove() closes the stream) 2008-10-05 01:40:38 +00:00
Felipe Pena e5a7ea3293 MFH:
- Fixed bug #44991 (Compile Failure With freetds0.82)
  patch by:
  - jklowden at freetds dot org (ext/mssql)
  - matthias at dsx dot at (ext/pdo_dblib)
2008-10-04 13:19:22 +00:00
Felipe Pena 5e95dc593a - Fixed compiler warning 2008-10-04 13:11:36 +00:00
Jani Taskinen 619b8bb5ea reorder 2008-10-03 14:52:52 +00:00
Mikko Koppanen 4273a9b4dc Adds signal handling around popen/pclose in mail.c.
Related information on bugs #8992 and #14032
Original patch by D. Parthey
2008-10-03 13:59:33 +00:00
Felipe Pena df9dc12b1e - MFH: Fixed bug #46215 (json_encode mutates its parameter and has some class-specific state) 2008-10-02 03:41:24 +00:00
Antony Dovgal 3a4b2c8437 remove BOM 2008-10-01 12:37:15 +00:00
Kalle Sommer Nielsen 9cd9d67790 Fix bugs order 2008-10-01 11:09:02 +00:00
Scott MacVicar 33addf0ac5 MFH: Fix bug #46209 - Remove license condition that is no longer required. 2008-10-01 11:04:27 +00:00
Dmitry Stogov f289abf4d7 Fixed bug #43045 (SOAP encoding violation on "INF" for type double/float) 2008-10-01 08:42:26 +00:00
Rob Richards 9370d047ef BFN 2008-09-28 12:02:59 +00:00
Rob Richards 87ddfb9fbd MFH: fix bug #46191 (BC break: DOMDocument saveXML() doesn't accept null) 2008-09-28 12:01:21 +00:00
Antony Dovgal 763eda2f57 fix test 2008-09-24 13:13:26 +00:00
Felipe Pena eff8a93ded - MFH: Fixed bug #46157 (PDOStatement::fetchObject prototype error) 2008-09-23 23:10:01 +00:00
Rob Richards 842b350891 MFH: fix hints causing phpdoc crash 2008-09-22 15:10:24 +00:00
Felipe Pena d7064d84cb - BFN #46088 2008-09-22 13:17:58 +00:00
Felipe Pena c1b5abf605 - MFH: Fixed bug #46088 (RegexIterator::accept - segfault) 2008-09-22 13:15:16 +00:00
Greg Beaver e6f7b32deb fix Bug #46147: after stream seek, appending stream filter reads incorrect data 2008-09-22 01:25:44 +00:00
Arnaud Le Blanc fe49acfcb9 MFH: Fixed #46059 (Compile failure under IRIX 6.5.30 building posix.c) 2008-09-20 22:12:59 +00:00
Antony Dovgal 10b69e0f0f fix test 2008-09-18 13:26:05 +00:00
Antony Dovgal 31458c1a0d fix typo 2008-09-18 13:23:00 +00:00
Antony Dovgal 64125d247f fix test 2008-09-18 08:39:23 +00:00
Johannes Schlüter 0f6e281034 MFH Fix #44424 (Extending PDO/MySQL class with a __call() function doesn't work) 2008-09-16 23:37:35 +00:00
Antony Dovgal 03f74b711e MFH 2008-09-16 14:36:39 +00:00
Derick Rethans 8f037b3fe4 - Updated to version 2008.6 (2008f) 2008-09-15 18:03:10 +00:00
Dmitry Stogov 11900b10a3 Fixed bug #43053 (Regression: some numbers shown in scientific notation). (int-e at gmx dot de)
some 64bit test files may need to be fixed
2008-09-15 11:47:03 +00:00
Ilia Alshanetsky 929a21247c MFB: Fixed bug #45580 (levenshtein() crashes with invalid argument) 2008-09-14 05:15:15 +00:00
Moriyoshi Koizumi 772cf98e95 - MFH: Reenable ini_set("mbstring.internal_encoding", VALUE) to work on runtime.
(noticed by Antony. Thanks!)
2008-09-13 19:53:53 +00:00
Moriyoshi Koizumi 6a4057d932 - MFH: Properly initialize/finalize the library. This plugs the leaks caused by
onig_new().
2008-09-13 02:34:23 +00:00
Moriyoshi Koizumi a86756745c - MFH: WS 2008-09-13 00:24:12 +00:00
Moriyoshi Koizumi 0caab530d5 - MFH: Add missing =DIR 2008-09-13 00:14:49 +00:00
Moriyoshi Koizumi 1d7f071044 - Remove unexposed functions. 2008-09-12 23:56:06 +00:00
Moriyoshi Koizumi 2dd8e6ec27 - MFH: Use memcmp() for binary safety. 2008-09-12 23:37:21 +00:00
Felipe Pena 071deec12a - MFH: Fixed unexpected zval changes 2008-09-12 01:16:55 +00:00
Arnaud Le Blanc 114982b068 MFH: Fixed #46053 (SplFileObject::seek - Endless loop) 2008-09-11 15:32:15 +00:00
Arnaud Le Blanc 9b04ebc3c8 MFH: Fixed #46051 (SplFileInfo::openFile - memory overlap) 2008-09-11 15:24:12 +00:00
Rob Richards 914437fd97 BFN 2008-09-11 14:24:28 +00:00
Rob Richards 7d5fe7701b MFH: fix bug #46047 (SimpleXML converts empty nodes into object with nested array)
add test
2008-09-11 14:23:33 +00:00
Rob Richards 88bce658af MFH: fix bug #45901 (wddx_serialize_value crash with SimpleXMLElement object)
add test
2008-09-11 14:18:27 +00:00
Rob Richards 6a2daa2673 BFN 2008-09-10 16:29:42 +00:00
Rob Richards 01d4ee611e MFH: fix bug #46003 (isset on nonexisting node return unexpected results)
add test
2008-09-10 16:29:18 +00:00
Rob Richards 972a2192f4 BFN 2008-09-10 15:41:04 +00:00
Rob Richards 77494520a4 MFH: fix bug #46029 (Segfault in DOMText when using with Reflection) 2008-09-10 15:40:34 +00:00
Felipe Pena 56ed148d64 - MFB: Fixed mem. leak 2008-09-10 13:48:14 +00:00
Felipe Pena 098c1b5397 - Union #45226 + #18916 2008-09-10 13:26:38 +00:00
Rob Richards c5ff10fdc9 BFN
fix order
2008-09-10 11:22:40 +00:00
Rob Richards 6dc4be7100 MFH: fix bug #45553 (Using XPath for attributes with a namespace does not work)
add test
2008-09-10 11:21:48 +00:00
Arnaud Le Blanc 667a563da0 MFH: Fix test 2008-09-10 11:12:38 +00:00
Felipe Pena e4c744789d BFN #45226, #18916 2008-09-10 00:20:49 +00:00
Felipe Pena da2f2ab130 MFH:
- Merged fix from SF project (Import Jeff Lawsons patches for XML datetime bug fixes)
  Fixed bugs:
  #45226 (xmlrpc_set_type() segfaults with valid ISO8601 date string)
  #18916 (xmlrpc_set_type() "not working")
2008-09-10 00:09:04 +00:00
Arnaud Le Blanc fe30db5faf MFH: Fixed bug #46031 (Segfault in AppendIterator::next) 2008-09-09 19:44:25 +00:00
Antony Dovgal b1b7471f73 add missing file 2008-09-08 10:24:38 +00:00
Felipe Pena d4979adb80 BFN #46010 2008-09-07 23:10:07 +00:00
Felipe Pena b886771f69 - MFH: Fixed bug #46010 (warnings incorrectly generated for iv in ecb mode) 2008-09-07 23:00:31 +00:00
Johannes Schlüter 7b668c6a7d - MFH: The exact error message might differ (it's "Not owner" on Solaris) 2008-09-07 22:35:15 +00:00
Arnaud Le Blanc 21482dd1e6 MFH: More accurate max_file_size / upload_max_filesize (fixes #45124) 2008-09-07 14:18:11 +00:00
Arnaud Le Blanc 3062692e49 MFH: Fixed #43540 (rfc1867 handler newlength problem) 2008-09-06 17:19:15 +00:00
Alexey Zakhlestin 2450cf4c0f MFB: Fixed bug #45405 (snmp extension memory leak) 2008-09-06 08:18:38 +00:00
Dmitry Stogov f45b732abf Fixed bug #45860 (header() function fails to correctly replace all Status lines) 2008-09-02 13:22:00 +00:00
Dmitry Stogov bc053b7628 Fixed Bug #43958 (class name added into the error message) 2008-09-02 09:45:36 +00:00
Jani Taskinen 42eaadd128 - Fixed bug entries 2008-09-02 08:58:00 +00:00
Patrick van Kleef 331c423dbe MFH: - Added odbc.default_cursortype to control the ODBC cursormodel
(bug #43668)
2008-09-01 15:48:09 +00:00
Patrick van Kleef e624492e40 MFH: - Fixed code to use ODBC 3.52 datatypes for 64bit systems (bug #43666) 2008-09-01 15:36:56 +00:00
Dmitry Stogov 70063c1195 Fixed bug #42318 (problem with nm on AIX, not finding object files) 2008-09-01 13:15:15 +00:00
Jani Taskinen 69378b449c [DOC]- Fixed bug #45956 (parse_ini_file() does not return false with syntax errors in parsed file)
[DOC] note: change will be in since 5.2.7
2008-08-31 00:21:19 +00:00
Rasmus Lerdorf 6e1fad3505 Fix the assert 2008-08-30 18:28:01 +00:00
Rasmus Lerdorf a1ee496a50 Fix for bugs 13961, 39927 and 45947 2008-08-30 16:50:24 +00:00
David Soria Parra 8555d34ba5 MFH: Fixed bug #43782 (feof() does not detect timeout on socket) 2008-08-27 07:48:37 +00:00
Jani Taskinen 77e07a631a MFH 2008-08-26 23:26:27 +00:00
Jani Taskinen e83e18b8f8 MFH: sendmail mess cleared (PHP_PROG_SENDMAIL was not used at all, see also bug #42946) 2008-08-26 23:19:22 +00:00
Dmitry Stogov 9a4918af76 Fixed destruction of dl() loaded extensions 2008-08-22 15:31:38 +00:00
Antony Dovgal 72daf80c47 MFH: fix zend_register_functions() not displaying duplicate functions (reported by Gopal) 2008-08-22 14:52:47 +00:00
Felipe Pena 500d715ed3 - New tests 2008-08-22 13:40:54 +00:00
Sebastian Bergmann 20cc5b498f Fix ZTS build. 2008-08-22 08:17:02 +00:00
Felipe Pena ebdf8d3637 MFH:
- Fixed bug #45862 (get_class_vars is inconsistent with 'protected' and 'private' variables)
- Added some tests
2008-08-22 01:06:55 +00:00
Stanislav Malyshev 55612e2b06 report merged fix 2008-08-21 18:11:49 +00:00
Stanislav Malyshev 279f79570d merge fix for #43941 2008-08-21 18:10:48 +00:00
Dmitry Stogov a1672ca3e2 Fixed bug #45751 (Using auto_prepend_file crashes (out of scope stack address use)). (basant dot kukreja at sun dot com) 2008-08-21 13:42:36 +00:00
Dmitry Stogov d0c05b2643 Adder error code into error message 2008-08-21 11:27:42 +00:00
Rasmus Lerdorf b94207ccb8 Fix OSX build problem in this branch as well 2008-08-20 20:04:52 +00:00
Jani Taskinen 3a6cac2e6c MFH: - Fixed bug #44925 (preg_grep() modifies input array). (Nuno) 2008-08-20 01:21:47 +00:00
Jani Taskinen 244b57f272 MFH: test for bug #42737 2008-08-20 01:11:06 +00:00
Jani Taskinen 81d5bba936 MFH: Fix for bug #42737 (and #45850) 2008-08-20 00:52:13 +00:00
Felipe Pena 5b9e18dd61 - New test 2008-08-18 17:52:35 +00:00
Antony Dovgal 79b6a241ab MFH: fix bug #45028 (CRC32 output endianness is different between crc32() and hash()) 2008-08-18 14:33:00 +00:00
Jani Taskinen 1fd9b3f536 MFH: fix include 2008-08-18 10:50:10 +00:00
Antony Dovgal 2781ddf65e reverted because of test failures 2008-08-18 07:47:04 +00:00
Arnaud Le Blanc 42a2c5308e MFH: Fix tests (closes #45841) 2008-08-18 04:46:05 +00:00
Arnaud Le Blanc 6f44413558 MFH: Fixed bug #45392 (ob_start()/ob_end_clean() and memory_limit). 2008-08-18 04:09:38 +00:00
Moriyoshi Koizumi 6d8afbca87 - MFH: beware of signedness 2008-08-18 03:26:40 +00:00
Dmitry Stogov 16e6e2f04a Fixed double call to MSHUTDOWN in case of php-cgi -m 2008-08-15 07:30:31 +00:00
Felipe Pena 345ae37686 - Fixed tests (synced with 5_3 and HEAD) 2008-08-15 02:26:56 +00:00
Jani Taskinen 0e8700167a MFH: fix skipifs 2008-08-14 23:46:55 +00:00
Jani Taskinen 2712eb9b31 MFH 2008-08-14 23:45:22 +00:00
Jani Taskinen c901678ab1 MFH: fix tests 2008-08-14 23:42:01 +00:00
Jani Taskinen cb2b9fcf8b MFH 2008-08-14 22:51:50 +00:00
Jani Taskinen 26d7d2519d MFH:fix test 2008-08-14 21:56:13 +00:00
Jani Taskinen 1cd7ce6cf8 MFH: fix tests, add missing test 2008-08-14 20:57:13 +00:00
Jani Taskinen 8b0cd10768 do not leave crap behind 2008-08-14 20:55:31 +00:00
Jani Taskinen 84c5066dec MFH: fix tests 2008-08-14 20:53:31 +00:00
Jani Taskinen 7489a81e38 - Nuke annoying errors already silenced elsewhere too 2008-08-14 20:53:00 +00:00
Felipe Pena f26f786362 - New test 2008-08-14 19:17:13 +00:00
Felipe Pena 9915046344 - MFH: move declaration on top and fix build error 2008-08-14 16:34:30 +00:00
Jani Taskinen 85b00d1dd4 typoh 2008-08-13 19:43:48 +00:00
Antony Dovgal 02f8e3770d MFH: fix compile warnings (patch by Phil Oleson) 2008-08-13 08:09:55 +00:00
Dmitry Stogov fbb885cd6c Fixed bug #45805 (Crach on throwing exception from error handler) 2008-08-13 07:19:43 +00:00
Jani Taskinen 26f13b4b70 MFH: [DOC]- Added methods to change/disable --with-config-file-scan-dir=PATH at
MFH: [DOC]  startup:
MFH: [DOC]
MFH: [DOC]  To disable: Override default php.ini by using both -c and -n with
MFH: [DOC]              CGI/CLI or set "PHP_INI_SCAN_DIR" environment variable
MFH: [DOC]              to an empty string.
MFH: [DOC]
MFH: [DOC]  To change: Simply set "PHP_INI_SCAN_DIR" environment variable to point
MFH: [DOC]             to another path.
MFH: - Fixed bug #42604 ("make test" fails with  --with-config-file-scan-dir=/some/path)
MFH: - Implemented FR #45114 (Option to change --with-config-file-scan-dir)
2008-08-13 01:01:29 +00:00
Christian Seiler e08c90c68d - News: http://news.php.net/php.cvs/52239 2008-08-12 21:03:35 +00:00
Arnaud Le Blanc 43709499f9 MFH: clear stat cache in chroot() 2008-08-11 23:16:41 +00:00
Arnaud Le Blanc 6057b04dd0 news 2008-08-11 22:40:02 +00:00
Arnaud Le Blanc a1311b8bc2 MFH: Fixed #45181 (chdir() should clear relative entries in stat cache) 2008-08-11 22:39:42 +00:00
Christian Seiler b9ab70c0d2 - Fixed segmentation fault (test added) 2008-08-11 22:08:58 +00:00
Arnaud Le Blanc b28b6977bf MFH: Missing files in previous commit (Check the relevant path for open_basedir
in symlink())
2008-08-11 15:33:14 +00:00
Arnaud Le Blanc cf273715fb MFH: Check the relevant path for open_basedir in symlink() 2008-08-11 15:31:01 +00:00
Felipe Pena e249e02481 - BFN: #45765 2008-08-11 00:52:41 +00:00
Felipe Pena e0e1648359 - MFH: Fixed bug #45765 (ReflectionObject with default parameters of self::xxx cause an error) 2008-08-11 00:50:03 +00:00
Arnaud Le Blanc 02fc0f0255 MFH: Fixed bug #45581 (htmlspecialchars() double encoding &#x hex items) 2008-08-10 13:26:25 +00:00
Arnaud Le Blanc 969e64ad33 MFH:
Do not expand $target in symlink(). This made it impossible to symlink to a
symlink. This also caused the target to be wrongly expanded relatively to
the CWD when target was not an absolute path.
2008-08-10 11:55:26 +00:00
Felipe Pena 8df7dc9693 - Fixed test (LF) 2008-08-10 00:44:55 +00:00
Antony Dovgal 476aa6b90d disable the test on AIX 2008-08-09 22:35:34 +00:00
Antony Dovgal 1dd367b62d MFH: do not fail & segfault if malloc(0) returns NULL, that's expected 2008-08-09 22:01:35 +00:00
Arnaud Le Blanc 23cea0a4df *** empty log message *** 2008-08-08 09:34:08 +00:00
Antony Dovgal 5dd6078c14 not experimental anymore 2008-08-07 13:11:28 +00:00
Antony Dovgal ec9c01b2b2 remove EXPERIMENTAL flag 2008-08-07 13:07:33 +00:00
Antony Dovgal 78acd746d4 fix test
NaN != NaN
2008-08-07 08:52:11 +00:00
Kalle Sommer Nielsen 718da04673 Backport #45406 (session.serialize_handler declared by shared extension fails) to PHP_5_2 2008-08-06 21:33:13 +00:00
Kalle Sommer Nielsen b6c6759799 Backport fix for #45406 - Patch by oleg dot grenrus at dynamoid dot com 2008-08-06 21:28:38 +00:00
Jani Taskinen d9535fbf69 useless entry 2008-08-05 21:48:18 +00:00
Stanislav Malyshev dda8d74cb5 ok, clarify :) 2008-08-05 21:40:48 +00:00
Stanislav Malyshev 1ce390f2c2 add bugfix 2008-08-05 21:24:42 +00:00
Stanislav Malyshev adf6be4bfb fix memnstr bug, by Laurent Gaffie 2008-08-05 20:11:17 +00:00
Jani Taskinen ddcb5042f5 MFH:- Add test for bug #45712 2008-08-05 12:37:09 +00:00
Jani Taskinen c078127291 MFH:- Fixed bug #45705 (rfc822_parse_adrlist() modifies passed address parameter) 2008-08-04 21:16:22 +00:00
Moriyoshi Koizumi fecf5bc681 - MFH: Added .libs to .cvsignore 2008-08-04 21:11:19 +00:00
Moriyoshi Koizumi 108d9dd8e7 - MFH: More fixes for bug #45691 2008-08-04 21:06:50 +00:00
Jani Taskinen 09eebe78d8 MFH: proper version check 2008-08-04 20:54:20 +00:00
Jani Taskinen 59b98545e8 MFH 2008-08-03 12:11:13 +00:00
Jani Taskinen 843d6eecc3 MFH: no c++ comments in c files 2008-08-03 11:59:00 +00:00
Moriyoshi Koizumi cf4e80bd50 - MFH:Forgot to take account of the case when mbstring.language is processed
afterwards.
2008-08-03 00:04:30 +00:00
Moriyoshi Koizumi 2184c092d4 - MFH: Fixed bug #45691 (Some per-dir or runtime settings may leak into other requests). 2008-08-02 20:49:48 +00:00
Arnaud Le Blanc 70143b88a2 MFH: Avoid leaks when zlib streams can not be closed properly. 2008-08-02 02:36:59 +00:00
Moriyoshi Koizumi 840e508dc6 - MFH: Fixed bug #43993 (mb_substr_count() behaves differently to substr_count() with overlapping needles) 2008-08-01 22:58:20 +00:00
Moriyoshi Koizumi c530921598 - Move finalization code to the proper place 2008-08-01 22:53:20 +00:00
Moriyoshi Koizumi 22a0734469 - MFH: Fixed bug #44617 (wrong HTML entity output when substitute_character=entity). 2008-07-31 17:39:14 +00:00
Jani Taskinen ecc135ae21 MFH:- fix test 2008-07-31 11:50:54 +00:00
Rasmus Lerdorf 17d4ecdbb1 Fix test to test higher nesting level 2008-07-31 11:49:55 +00:00
Rasmus Lerdorf 7305654b69 Fix for bug #45030 2008-07-31 09:22:17 +00:00
Jani Taskinen 51a01a9a6d typo 2008-07-31 00:51:06 +00:00
Jani Taskinen 874a609723 MFH:- Fixed bug #45568 (ISAPI does not property clear auth_digest in header). 2008-07-31 00:49:16 +00:00
Jani Taskinen 461e12bb47 MFH:- Applied the missing parts to phpize.m4 for zend extension builds 2008-07-31 00:45:46 +00:00
Jani Taskinen d235cfb948 MFH: sync build stuff 2008-07-30 23:57:14 +00:00
Jani Taskinen fbca704073 MFH: sync 2008-07-30 23:27:26 +00:00
Rasmus Lerdorf a948a2605d We can afford a larger stack here and other json parsers out there
go deeper than 128.
2008-07-30 13:55:27 +00:00
Antony Dovgal 9ce5ea020f MFH: fix copy/paste error (patch by Mikko) 2008-07-29 10:42:59 +00:00
Antony Dovgal 635ce992a6 this shouldn't have been backported 2008-07-29 08:33:52 +00:00
Derick Rethans 7d8a27b3d1 - Updated to version 2008.5 (2008e) 2008-07-28 19:32:08 +00:00
David Soria Parra 4331f57597 - Fixed the fix for not requiring C++ always 2008-07-27 20:42:56 +00:00
Jani Taskinen e36ce120ae MFH:- Fixed the fix for not requiring C++ always 2008-07-27 15:05:48 +00:00
Jani Taskinen 68fb7a1252 MFH: Partial sync 2008-07-27 15:01:41 +00:00
Dmitry Stogov d3aa5682b1 Fix for bug #43487 (Wrong conversion of float to string) 2008-07-27 11:28:53 +00:00
Jani Taskinen 96fe692335 MFH: Fixed a minor problem in not enabling c++/g++ when not needed. 2008-07-25 12:36:59 +00:00
Felipe Pena 9c51f3c841 - MFB: Removed unused variable. 2008-07-24 16:01:59 +00:00
Dmitry Stogov d2f478af6a Fixed bug #45178 (memory corruption on assignment result of "new" by reference) 2008-07-24 11:47:14 +00:00
Dmitry Stogov ec1e964f5c Fixed test 2008-07-24 11:23:57 +00:00
Jani Taskinen 2b667e86f2 MFH: Fix test (bug #44985) 2008-07-23 14:15:37 +00:00
Jani Taskinen 4fafb9bddc MFH: some fixes to allow certain tests to pass regardless of system php.ini settins 2008-07-23 13:43:05 +00:00
Felipe Pena 99487f9ce3 - Change credits for #44246 2008-07-23 12:05:21 +00:00
Antony Dovgal 990de890fa MFH: invert the logics - FLAG_FCLOSE -> FLAG_NO_FCLOSE 2008-07-23 11:25:50 +00:00
Jani Taskinen 41e64a728c MFH: missing test 2008-07-23 10:30:41 +00:00
Antony Dovgal 8673660619 fix test 2008-07-23 10:26:55 +00:00
Antony Dovgal c7b3bc0d99 fix test 2008-07-23 09:29:32 +00:00
Antony Dovgal b54305bc7d MFH: add PHP_STREAM_FLAG_FCLOSE to zip streams 2008-07-23 09:09:20 +00:00
Antony Dovgal cffe7a2d3c MFH: add PHP_STREAM_FLAG_FCLOSE, bz2 streams can be closed with fclose() 2008-07-23 08:56:37 +00:00
Felipe Pena 20de4ba98f - BFN: #44246 2008-07-22 14:12:54 +00:00
Felipe Pena 4ca3f3b99a - MFH: Fixed bug #44246 (closedir() accepts a file resource opened by fopen()) 2008-07-22 14:11:25 +00:00
Jani Taskinen fbc897f4bb Tidy language and order 2008-07-21 20:02:34 +00:00
Felipe Pena 16fb63384c - MFB: Fixed securities issue detailed in CVE-2008-2665 and CVE-2008-2666.
(patch by Christian Hoffmann)
2008-07-21 19:34:45 +00:00
Dmitry Stogov 69bbae848e Added check for small ZEMD_MM_SEG_SIZE 2008-07-21 17:06:55 +00:00
Felipe Pena 71a5d27676 - BFN: #45556, #45555 2008-07-18 17:41:59 +00:00
Felipe Pena e6087a0548 - New test 2008-07-18 17:35:18 +00:00
Felipe Pena 157856f0d0 - Fixed bug #45556 (Return value from callback isn't freed) 2008-07-18 17:34:07 +00:00
Felipe Pena f3549c2276 - Fixed bug #45555 (Segfault with invalid non-string as register_introspection_callback)
(patch by chris_se at gmx dot ne)
2008-07-18 15:52:38 +00:00
Felipe Pena 721be7f87c - MFB: Fix ws 2008-07-18 14:56:58 +00:00
Derick Rethans 8a1172fe8f - Updated to version 2008.4.1 (2008d) 2008-07-18 13:46:15 +00:00
Pierre Joye 9df7af2326 - MFB: fix crash when some crafted font are given 2008-07-17 22:58:23 +00:00
Jani Taskinen e1fdf15fee -nuke weird char 2008-07-16 16:30:04 +00:00
Jani Taskinen 00fb7be378 MFH:- Prevent errors in CVS builds when bison is not there (for Sean :) 2008-07-16 16:23:59 +00:00
Jani Taskinen 273b3b8ac0 - Regenerated using more recent re2c 2008-07-16 14:26:30 +00:00
Jani Taskinen 65c908dcfe MFH:- Fixed bug #44127 (UNIX abstract namespace socket connect does not work) 2008-07-16 14:10:50 +00:00
Moriyoshi Koizumi 5b603fb1b7 * MFH: indentation fix only. 2008-07-15 18:07:42 +00:00
Jani Taskinen 2975bbb347 MFH: Fixed potentially confusing error message on failure when no errors are logged 2008-07-15 16:10:32 +00:00
Scott MacVicar 56f7e28f5d MFH: Fix bug when < is used within attribute. 2008-07-15 14:58:58 +00:00
Dmitry Stogov f4617349f8 Fixed bug #45151 (Crash with URI/file..php (filename contains 2 dots)) 2008-07-15 13:38:29 +00:00
Jani Taskinen 8fc55787d5 Fix news 2008-07-15 13:16:25 +00:00
Dmitry Stogov 51619fa391 Fixed bug #45423 (fastcgi parent process doesn't invoke php_module_shutdown before shutdown) (basant dot kukreja at sun dot com) 2008-07-15 13:10:07 +00:00
Felipe Pena 0bccc60ec2 - Reverted fix for #44197 (unsuitable for minor versions) 2008-07-15 11:20:06 +00:00
Jani Taskinen 9f0c8398d6 MFH: fix test 2008-07-15 01:57:37 +00:00
Jani Taskinen 02c937c251 MFH:- Fix tests (do NOT assume things in php.ini always to be same...or sane) 2008-07-15 01:00:17 +00:00
Rui Hirokawa 9609669572 MFPHP5_3 2008-07-13 01:36:15 +00:00
Felipe Pena b56b2d3013 BFN: #45220 2008-07-12 21:14:57 +00:00
Felipe Pena 0a0f24f8bf - Fixed bug #45220 (curl_read callback returns -1 when needs to return size_t (unsigned)) 2008-07-12 21:11:56 +00:00
Felipe Pena a256d977ff BFN: #45485 2008-07-12 01:44:04 +00:00
Felipe Pena 198a9af479 - BFN: #45449, #45486 2008-07-11 18:31:56 +00:00
Felipe Pena 6074163f74 - Fixed bug #45449 (filesize() regression using ftp wrapper) (patch by crrodriguez at suse dot de) 2008-07-11 18:28:25 +00:00
Felipe Pena 9a58cb0b3c - Fixed bug #45486 (mb_send_mail(); header 'Content-Type: text/plain; charset=' parsing incorrect) 2008-07-11 13:48:11 +00:00
Jani Taskinen 596f8bf885 MFH: silence warning 2008-07-11 13:12:18 +00:00
Felipe Pena fc2cf6e19f - Fixed bug #45485 (strip_tags and <?XML tag) 2008-07-11 12:16:06 +00:00
Felipe Pena b2f1de8924 - BFN: #45460 2008-07-11 11:18:58 +00:00
Felipe Pena a8c4bc3257 - Fixed the string sizes in imap_headerinfo 2008-07-11 11:09:05 +00:00
Felipe Pena 26da69af35 - Fixed bug #45460 (imap patch for fromlength fix in imap_headerinfo doesn't accept lengths of 1024) 2008-07-10 17:44:09 +00:00
Derick Rethans 72c5f9c02d - MFH: Memory issues
- MFH: // style comments
2008-07-08 18:02:32 +00:00
Scott MacVicar 6732d3f170 This change was backed out of 5.2 and is now in 5.3+ 2008-07-08 10:31:34 +00:00
Derick Rethans 5a70cfb8d7 - Updated to version 2008.4 (2008d) 2008-07-07 14:36:26 +00:00
Etienne Kneuss 1cd238a5df Avoid a leak on return_value 2008-07-07 00:02:22 +00:00
Dmitry Stogov 9132607dc7 Fixed bug #45352 (Segmentation fault because of tick function on second request) 2008-06-25 12:18:22 +00:00
Uwe Schindler c1bb953c71 MFH: Response to: [PHP-DEV] cleaning up the functions - any volunteers? :) 2008-06-22 18:10:33 +00:00
Christopher Jones 79301a3677 MFH:
Fix bug #45266 (Fix build with BDB 4)
Fix bug #45267 (Revert invalid assumption about BDB 4 locking; let DBA handle locking)
Fix bug #45268 (Fix error callback prototype)
2008-06-19 22:41:33 +00:00
Dmitry Stogov 764f6144d3 Fixed bug #45312 (Segmentation fault on second request for array functions). 2008-06-19 12:09:22 +00:00
Dmitry Stogov c55fc5cfa4 Fixed SOAP binding selection 2008-06-18 07:23:42 +00:00
Philip Olson cf6ae88c42 MFH: updated website team info 2008-06-18 05:21:08 +00:00
Felipe Pena c4bc06b480 - MF5.3: Improved warning message to call-time pass-by-reference when used with internal function
(http://news.php.net/php.internals/38252)
2008-06-15 18:31:10 +00:00
Rob Richards 4c65f7b0a2 BFN
fix ordering
2008-06-14 11:25:52 +00:00
Rob Richards b3a2fffb83 MFH: fixed bug #45251 (double free or corruption with setAttributeNode())
add test
2008-06-14 11:24:00 +00:00
Rui Hirokawa d2f21677d5 MFH 2008-06-13 14:49:19 +00:00
Steve Seear a640702789 Filesystem tests. 2008-06-11 12:38:16 +00:00
Dmitry Stogov 6cd3a97ce2 closeder/readdir/rewinddir must work only with directories 2008-06-11 09:02:09 +00:00
Dmitry Stogov 32b6c60dea Fixed memory leaks 2008-06-11 07:46:43 +00:00
Dmitry Stogov d3d8886e3e Fixed test (5.2 doesn't contain GC) 2008-06-11 07:46:28 +00:00
Philip Olson 4b898c5e57 MFH: fixed imap_listscan() proto 2008-06-11 02:32:22 +00:00
Antony Dovgal 26e2d61588 fix typo 2008-06-10 08:14:59 +00:00
Rasmus Lerdorf a583cad157 Merge from 5.3 branch - no point in echoeing the raw values here 2008-06-09 14:03:44 +00:00
Scott MacVicar c4fa4d5361 Backout fix for spaces in both the program name and argument name, this will be fixed in PHP 5.3+ only 2008-06-06 23:05:37 +00:00
Christopher Jones 50db74684d Update 2008-06-06 01:00:20 +00:00
Christopher Jones 8c9e028a76 (Bugs 41348, 41563, 42456, 42939) Appease the masses and fix
compilation with Oracle 8.1.  This gives cleaner support for older
releases now that PHP 5.3 is firmly Oracle 9.2+ only.  No plans to
MTH.
2008-06-06 00:59:44 +00:00
Christopher Jones 44e82f5789 Sync for PECL OCI8 1.2.5 release 2008-06-05 23:26:01 +00:00
Felipe Pena fba1e9d0c5 - Fixed bug #45139 (ReflectionProperty returns incorrect declaring class) 2008-06-01 03:08:59 +00:00
Matt Wilmas b3abcd8a34 MFH: Only check args once in php_array_diff_key/intersect_key, not on each iteration. This also makes sure ALL args are checked (pre-5.2.5 behavior) 2008-05-30 10:55:44 +00:00
Matt Wilmas 76a95184ef MFH: Fixed overflow crash (at least on Windows) in div_function with LONG_MIN / -1 2008-05-29 11:45:28 +00:00
Scott MacVicar 8063c11142 MFH: Fix a bug when command is quoted and parameters are quoted during call to exec, the result is that cmd.exe /c strips the first and last quote. 2008-05-29 11:41:50 +00:00
Matt Wilmas 70c5d7fcb5 Fixed tests on Windows 2008-05-29 07:33:03 +00:00
Ant Phillips 6e79f8f999 DOM tests from TestFest 2008-05-27 12:44:52 +00:00
Derick Rethans 8df7662306 - Updated to version 2008.3 (2008c) 2008-05-27 12:20:02 +00:00
Ilia Alshanetsky c29dac2f32 When dumping entire document to file via asXml() don't lose the encoding 2008-05-23 15:46:54 +00:00
Antony Dovgal fa6c5d5429 MFH 2008-05-21 12:31:31 +00:00
Dmitry Stogov e9b91783c2 proper fix 2008-05-20 07:41:23 +00:00
Ilia Alshanetsky 92512da2b0 MFB: Fixed bug #45004 (pg_insert() does not accept 4 digit timezone format) 2008-05-19 15:18:39 +00:00
Dmitry Stogov a806380376 Fixed win32 related realpath cache bug 2008-05-19 10:49:13 +00:00
Felipe Pena a0e34ecfee - Reverted the accidental previous commit 2008-05-18 22:32:33 +00:00
Felipe Pena 0f3bde23fd - MFB: Making compatible with 64bit platform 2008-05-18 21:50:58 +00:00
Ilia Alshanetsky 9d3385ff08 MFB: Added missing INI handler 2008-05-18 14:36:59 +00:00
David Soria Parra bb1840dcf9 Wrong file 2008-05-18 14:27:52 +00:00
David Soria Parra e3fbf25a02 MFH: Tests from Munich PHP Testfest 2008 2008-05-17 23:31:31 +00:00
Ilia Alshanetsky 4b7d16ec33 BFn 2008-05-14 23:53:54 +00:00
Antony Dovgal c7d2788311 fixed more titles 2008-05-14 13:10:30 +00:00
Antony Dovgal d01d7450a7 fix test titles 2008-05-14 13:07:17 +00:00
Felipe Pena 908b6e7808 - MFH: Add check for avoid segfault when trying instantiate PDORow manually 2008-05-14 12:34:10 +00:00
Christopher Jones 20eb83c3fe MFH: PECL #13523 (x86_64 build) 2008-05-13 16:06:55 +00:00
Christopher Jones d89a570ad0 MFH: new test 2008-05-13 00:17:59 +00:00
Antony Dovgal cafbf45c13 MFH 2008-05-12 15:31:20 +00:00
Felipe Pena 670ed18df4 - Fixed test 2008-05-12 11:24:07 +00:00
Antony Dovgal 86cf005ca2 MFH: revert patch that causes invalid reads/crashes on Linux 2008-05-12 08:47:29 +00:00
Matt Wilmas 1d30a554a4 MFH: Fixed test after fixing bug #44830 2008-05-12 05:09:28 +00:00
Matt Wilmas e4f6cab2c3 MFH: Fixed error message typo 2008-05-11 11:47:01 +00:00
Sebastian Bergmann 3bf703845f MFH: Add tests for ReflectionFunction::getExtension*(). 2008-05-11 04:57:27 +00:00
Sebastian Bergmann 032d0355e7 MFH: dos2unix *.phpt 2008-05-11 04:53:26 +00:00
Matt Wilmas e8d5d67ff2 MFH: Restore end check for "escape" strings 2008-05-10 09:18:27 +00:00
Matt Wilmas fcef7403cf MFH 2008-05-09 14:41:31 +00:00
Felipe Pena daf04269f5 - New tests 2008-05-09 14:17:42 +00:00
Scott MacVicar f73f5c1aa5 MFH: Fix compile error if _GNU_SOURCE is defined 2008-05-09 12:59:41 +00:00
Matt Wilmas 6c7ae8825d MFH: Test for loss of backslash at end of heredoc; For bug #44830 (Very minor issue with backslash in heredoc) 2008-05-09 11:06:45 +00:00
Matt Wilmas 4d478c9b67 MFH: Fix loss of backslash at end of heredoc; For bug #44830 (Very minor issue with backslash in heredoc) 2008-05-09 10:29:01 +00:00
Ant Phillips c6822cd936 Collect all the open_basedir security tests into one place 2008-05-09 08:36:41 +00:00
Ant Phillips f6b00dcf5b open_basedir tests for error_log 2008-05-09 08:33:55 +00:00
Dmitry Stogov c36ea5eb07 Fixed test 2008-05-08 09:15:49 +00:00
Antony Dovgal 9af8ebe9c7 fix test 2008-05-08 07:09:17 +00:00
Hannes Magnusson 88d4da5097 BFN 2008-05-07 20:03:26 +00:00
Hannes Magnusson 58be64ce2b MFH: Fixed bug #44712 (stream_context_set_params segfaults on invalid
arguments).
2008-05-07 20:02:42 +00:00
Hannes Magnusson fa6ab4ca82 MFH: Fixed bug #44716 (Progress notifications incorrect) 2008-05-07 20:01:56 +00:00
Christopher Jones fc4cfc3c83 MFH: new tests and test cleanup 2008-05-07 15:29:27 +00:00
Antony Dovgal fbbbd2b334 fix test title 2008-05-07 15:23:11 +00:00
Antony Dovgal 845e9001b3 reorder 2008-05-07 15:08:42 +00:00
David Coallier e5f281acf1 - Added NEWS item for fixation of bug 44811 2008-05-07 15:03:17 +00:00
David Coallier 3a37e3f5eb - Fixed Bug #44811: Improved error message when creating a new
SoapClient has invalid data.
2008-05-07 14:57:56 +00:00
David Coallier 8a346e1257 - Test for bug #44811 (Improve error message when new SoapClient has invalid data) 2008-05-07 14:56:37 +00:00
Ilia Alshanetsky fe5e6c081e MFB: Fixed bug #44836 (putenv() crashes, avoid direct reference of environ
in POSIX systems).
2008-05-06 18:03:52 +00:00
Ilia Alshanetsky 3ffd3e8b8c MFB: Specify the necessary precision 2008-05-05 23:05:06 +00:00
Ilia Alshanetsky 8fde9d7701 MFB: Fixed bug #44798 (Memory leak assigning value to attribute). 2008-05-05 23:00:13 +00:00
Andrey Hristov 05b2a03297 Fix build with libmysql 6.0.x 2008-05-05 12:30:38 +00:00
Etienne Kneuss c54c42dcf3 MFH: Fix protos 2008-05-04 21:19:18 +00:00
Rob Richards 029a4c8213 BFN 2008-05-04 15:26:25 +00:00
Rob Richards f5bf8c94f7 MFH: fix bug #44891 Memory leak using registerPHPFunctions and XSLT Variable 2008-05-04 15:15:01 +00:00
Zoe Slattery 8e23d68942 Committing corrected test from Eric Stewart 2008-05-03 20:34:16 +00:00
Etienne Kneuss b6e7b8e09a MFB: Fix #44838 (static class reference restricting overwriting) 2008-05-03 16:00:40 +00:00
Derick Rethans 0685a79356 - Fixed an issue in date() where a : was printed for the O modifier after a P
modifier was used.
2008-05-02 21:36:00 +00:00
Ant Phillips 6bec04b0a3 open_basedir tests for directory functions 2008-05-01 12:36:45 +00:00
Ant Phillips 18da1a2ff4 open_basedir tests for directory functions 2008-05-01 11:46:20 +00:00
Ilia Alshanetsky ba307b2aff Back to dev 2008-04-30 18:33:33 +00:00
Ilia Alshanetsky 6a7f02001d 5.2.6 2008-04-30 18:27:56 +00:00
Ant Phillips ab211d72a3 Fix session test failures as reported by Antony Dovgal.
These were caused by the tests assuming default values for some session
configuration settings, in particular session.save_path and session.name.
The tests now explicitly set these settings in the --INI-- section.
2008-04-30 15:20:16 +00:00
Ant Phillips 3946b4727b Break up complicated rename tests into some smaller more consumable chunks 2008-04-30 13:53:49 +00:00
Ant Phillips 3a30d703c0 Fix session test failures as reported by Antony Dovgal.
These were caused by the tests assuming default values for some session
configuration settings, in particular session.save_path and session.name.
The tests now explicitly set these settings in the --INI-- section.
2008-04-30 09:27:59 +00:00
Scott MacVicar ad86c485cd MFH Fixed bug #44720 (Prevent infinite recursion within session_register) 2008-04-29 14:42:38 +00:00
Ant Phillips 597adbfef1 More session tests to improve code coverage for untested extension code 2008-04-29 09:24:17 +00:00
Ant Phillips 2d2ad8e8d3 More session tests to improve code coverage for untested extension code 2008-04-29 08:57:12 +00:00
Jani Taskinen f2c9167ebb MFH 2008-04-28 12:30:33 +00:00
Ant Phillips 0ccb772f10 Extra open_basedir tests 2008-04-24 16:40:53 +00:00
Ant Phillips 138a1160ab Allow for chmod() to fail on symbolic links 2008-04-24 13:58:29 +00:00
Ant Phillips e9da49eaf5 open_basedir tests for file system functions (v5.2, 5.3 and 6.0 branches) 2008-04-23 14:10:23 +00:00
Ant Phillips 64de2d2d45 New set of session extension tests for PHP 5.2 branch.
These hopefully test a reasonable set of basic, error and variations for
the twenty or so session functions. Note however that they do not
test all the session configuration settings, nor do they test anything
with register_globals enabled.
2008-04-22 16:04:00 +00:00
Ant Phillips 1f4fa0ba1f These tests were backported from the PHP 6.0 branch, which in turn were ported from this branch and then updated to remove any dependencies on register_globals. With register_globals removed they are useful tests to run against the 5.X branches. 2008-04-22 15:58:34 +00:00
Robin Fernandes 1d943ee85e Fix some ereg tests for 64bit platforms. 2008-04-22 15:31:56 +00:00
Felipe Pena 5c605854b8 - Fixed tests 2008-04-20 01:55:05 +00:00
Felipe Pena 11d09ac646 - Better error message 2008-04-20 01:43:18 +00:00
Antony Dovgal 269aac9ee9 fix test 2008-04-18 08:22:01 +00:00
Ilia Alshanetsky 7204e7ba5a BFN 2008-04-18 01:00:56 +00:00
Antony Dovgal 59dde7cbeb make Matt happy =) 2008-04-17 11:48:53 +00:00
Felipe Pena 11a13337ff - Fix typo 2008-04-17 11:04:49 +00:00
Derick Rethans 8649483a69 - Fixed bug #44703 (htmlspecialchars() does not detect bad character set
argument).
2008-04-16 17:21:46 +00:00
Antony Dovgal d9b443095f change %d to %ld and silence the warning 2008-04-16 08:54:44 +00:00
Felipe Pena 9db0be61ad Fixed bug #44703 (htmlspecialchars() does not detect bad character set argument) (patch by Andy Wharmby) 2008-04-11 19:01:25 +00:00
Robin Fernandes 29c12bd254 Fix test parse_url_variation_002.phpt for 64bit platforms. 2008-04-11 14:35:04 +00:00
Antony Dovgal ef1f2c1b7b fix tests 2008-04-11 11:06:18 +00:00
Antony Dovgal 1e20b1ed7d MFH: fix 2 segfaults in ZTS mode 2008-04-11 11:00:24 +00:00
Steve Seear 9d700f942f POSIX extension error tests 2008-04-11 09:32:32 +00:00
Steve Seear 35ca4a5cb4 POSIX extension variation tests 2008-04-11 09:27:42 +00:00
Robin Fernandes fdb9b9d8c8 Adding some tests for ereg and url functions. 2008-04-11 08:57:11 +00:00
Ilia Alshanetsky a1f0e80436 Back to dev 2008-04-10 22:31:09 +00:00
Ilia Alshanetsky 1e29c1716d 5.2.6RC5 2008-04-10 22:24:05 +00:00
Christopher Jones 7788b67557 Bump OCI8 version to 1.2.5 (This change is for 5.2 branch only) 2008-04-10 21:53:46 +00:00
Nuno Lopes 5baa766b21 MFB53 2008-04-10 19:16:00 +00:00
Nuno Lopes 60d622bdb0 MFB5.3: fix SKIPIF 2008-04-10 19:09:49 +00:00
Philip Olson 63ca897356 MFH: Updated the documentation credits 2008-04-10 05:32:26 +00:00
Scott MacVicar b584600e1d Fix heredoc handling. (Patch by Matt Wilmas) 2008-04-09 21:40:13 +00:00
Felipe Pena 52127174e2 Fixed bug #44678 (spliti error message includes wrong function name) 2008-04-09 13:47:35 +00:00
Dmitry Stogov a548d2f19b Fixed bug #44673 (With CGI argv/argc starts from arguments, not from script) 2008-04-09 09:16:40 +00:00
Ilia Alshanetsky edf54b5468 MFB: Bug #44650 escaepshellscmd() does not check arg count (port from 5.3) 2008-04-08 17:17:07 +00:00
Joe Orton 8611785073 MFH: Fixed bug #32979 (OpenSSL stream->fd casts broken in 64-bit build)
(stotty at tvnet dot hu)
MFH: Fix another case of a broken stream->fd cast in 64-bit builds.
2008-04-08 14:11:49 +00:00
Jani Taskinen 8f6f281866 MFH: Fixed test on systems where order is not guaranteed 2008-04-08 10:35:36 +00:00
Jani Taskinen a9f2587716 MFH: - Fixed bug #44667 (proc_open() does not handle pipes with the mode "wb" correctly) 2008-04-08 08:45:52 +00:00
Jani Taskinen 5f7df8099a MF53: Fix tests 2008-04-08 08:45:04 +00:00
Ilia Alshanetsky b615180021 MFB: various bug fixes 2008-04-08 00:03:34 +00:00
Antony Dovgal 7a4f2f9a00 fix test 2008-04-07 12:14:46 +00:00
Antony Dovgal 339414deea initialize variable 2008-04-07 10:44:03 +00:00
Marcus Boerger 98f4d8c5f6 - MFH add new tests 2008-04-06 17:53:35 +00:00
Felipe Pena e8795126ea Fixed bug #44591 (imagegif's filename parameter) 2008-04-04 17:39:52 +00:00
Derick Rethans d80a51181a - Fixed typo. 2008-04-04 07:26:41 +00:00
Ilia Alshanetsky cb9be83c31 Back to dev 2008-04-04 00:16:53 +00:00
Ilia Alshanetsky 62c865e21f 5.2.6RC4 2008-04-04 00:12:22 +00:00
Felipe Pena 1054bfbb0b - Fixed tests 2008-04-03 22:01:59 +00:00
Dmitry Stogov 889ba3c824 fixed name 2008-04-03 14:44:19 +00:00
Dmitry Stogov 1dd17ad54a - Fixed possible stack buffer overflow in FastCGI SAPI. (Andrey Nigmatulin)
- Fixed sending of uninitialized paddings which may contain some information.
  (Andrey Nigmatulin)
2008-04-03 10:24:44 +00:00
Ilia Alshanetsky 357cadb362 MFB: imap bug fixes 2008-04-02 16:31:51 +00:00
Antony Dovgal 8f16e0b75c MFH 2008-04-02 14:56:43 +00:00
Derick Rethans b0b7f4eed1 - MFH: Fixed a bug in formatting timestamps when DST is active in the default
timezone.
2008-03-31 09:12:15 +00:00
Felipe Pena 3e663ebfef Fixed bug #44564 (escapeshellarg removes UTF-8 multi-byte characters) 2008-03-30 12:17:39 +00:00
Felipe Pena fd6f77d569 Fixed bug #44557 (Crash in imap_setacl when supplied integer as username) (patch by Thomas Jarosch) 2008-03-28 16:43:49 +00:00
Ilia Alshanetsky dd040e75c3 Back to dev 2008-03-27 22:53:49 +00:00
Ilia Alshanetsky 1de0c2f27c 5.2.6RC3 2008-03-27 22:44:02 +00:00
Andrey Hristov 64af7df7d0 Recreate 2008-03-27 14:48:00 +00:00
Jani Taskinen 40655e4104 MF53:- Fix test (readdir() does not sort the results..) 2008-03-27 10:45:06 +00:00
Steve Seear 8cc6227b45 Adding tests for gethostbyaddr() and gethostbynamel() 2008-03-26 18:18:07 +00:00
Marcus Boerger 13a67db7f5 MFH:
- Fix memory leak found by Osman
- Merge strlen to sizof change from CLI
2008-03-26 13:21:57 +00:00
Antony Dovgal b103a34cda MFH: check if return value of write() is -1 and abort upload, setting the correct error status 2008-03-26 12:59:42 +00:00
Dmitry Stogov c6aef571dd Fixed test (removed leaks becaue of cyrcular references) 2008-03-25 07:01:22 +00:00
Antony Dovgal 00779cc424 MFH: disabled mmap() when copying files to memory 2008-03-24 16:28:56 +00:00
Derick Rethans 94cfbb5448 - Updated to version 2008.2 (2008b) 2008-03-24 13:01:10 +00:00
Dmitry Stogov 193801fbda Fixed tests (file order is undefined, so we need to sort() them) 2008-03-24 09:00:18 +00:00
Marcus Boerger 7e071024d3 - MFH Add .cvsignore 2008-03-23 16:53:57 +00:00
Marcus Boerger 03c3cfbde3 - MFH Add tests 2008-03-23 13:39:27 +00:00
Marcus Boerger 978886a3a8 - Make multibyte a tad bit less crappy 2008-03-22 18:53:08 +00:00
Antony Dovgal 708cbe15d1 add missing .cvsignore 2008-03-21 08:30:02 +00:00
Antony Dovgal 28331f99e2 fix ZTS build 2008-03-21 08:28:36 +00:00
Ilia Alshanetsky 8c4653fbb6 MFB: Refine fix for multibyte char hanling inside command names and args 2008-03-20 23:25:42 +00:00
Rob Richards 5a94926037 BFN
re-order
2008-03-20 16:49:41 +00:00
Rob Richards 4a4711eb36 MFH: fix bug #44478 (Inconsistent behaviour when assigning new nodes)
add test
2008-03-20 16:48:45 +00:00
Antony Dovgal 3baf31907a MFH 2008-03-20 12:14:15 +00:00
Antony Dovgal 83a3d76e37 fix tests 2008-03-20 11:34:50 +00:00
David Soria Parra bb4e8b10e3 MFH: Fix bug #44487 (call_user_method_array issues a warning when throwing an exception). 2008-03-20 00:55:26 +00:00
Steve Seear bc8c649878 Adding language tests. 2008-03-19 18:06:26 +00:00
Steve Seear 9e8d58e54b Added some class tests; Replaced some hardcoded instance ids with %d. 2008-03-19 17:56:12 +00:00
Steve Seear c441dafbf4 Adding tokenizer test 2008-03-19 17:43:52 +00:00
Steve Seear 6744f65d51 Adding streams tests 2008-03-19 17:38:25 +00:00
Steve Seear 946190d453 Adding filesystem tests 2008-03-19 17:23:29 +00:00
Antony Dovgal 236b0c1bde fix test 2008-03-19 12:36:17 +00:00
Dmitry Stogov 9b8fdcf63f Fixed test 2008-03-19 09:17:21 +00:00
Felipe Pena b781627d85 Fixed bug #43614 (incorrect processing of numerical string keys of array in arbitrary serialized data) 2008-03-19 03:00:40 +00:00
Ilia Alshanetsky 34f0981808 MFB: Bug #44445 (email validator does not handle domains starting/ending
with a -)
2008-03-18 23:32:42 +00:00
Robin Fernandes dc2a59a970 Adding more tests for serialize() and unserialize(). 2008-03-18 15:11:12 +00:00
Felipe Pena d202354263 Fix build 2008-03-18 00:25:24 +00:00
Stanislav Malyshev 7be2f35865 report printf fix 2008-03-17 23:09:06 +00:00
Ilia Alshanetsky 233c3ade12 MFB: Properly address incomplete multibyte chars inside escapeshellcmd() 2008-03-17 23:02:26 +00:00
Stanislav Malyshev 5273e2163b fix integer overflow in length calculation 2008-03-17 23:00:41 +00:00
Josie Messa 9a859a31ab - new tests for ctype functions 2008-03-17 09:50:42 +00:00
Derick Rethans d1e3634d13 - Updated to version 2008.1 (2008a) 2008-03-16 07:22:10 +00:00
Felipe Pena 681859cdc4 BFN: #41828, #44440 2008-03-15 10:46:48 +00:00
Felipe Pena 27f2d54784 Fixed bug #44440 (st_blocks undefined under BeOS) 2008-03-15 10:28:53 +00:00
Felipe Pena 655610a5bb Add SKIPIF (32bit platform only) 2008-03-14 23:13:07 +00:00
Ilia Alshanetsky 62b1449e47 Fixed bug #43677 (Inconsistent behaviour of include_path set with
php_value).
2008-03-13 15:56:21 +00:00
Felipe Pena a8fc46afa7 Fix valgrind version validation (accepting "valgrind-3.2.1-Debian") 2008-03-13 13:51:40 +00:00
Felipe Pena 3958a09990 Sync with fix for #44394 2008-03-12 19:33:46 +00:00
Felipe Pena 69663666c1 Fixed bug #42177 (Warning "array_merge_recursive(): recursion detected" comes again...) 2008-03-12 19:13:00 +00:00
Christopher Jones 0befe23833 MFH: New test for existing behavior 2008-03-12 17:52:48 +00:00
Ilia Alshanetsky 0f1e56bc3a MFB: Fixed bug #44388 (Crash inside exif_read_data() on invalid images) 2008-03-12 17:33:14 +00:00
Etienne Kneuss f2c14fd8b0 Fix bug #41828 (Fix crash on wrong instantiation) 2008-03-12 13:24:24 +00:00
Felipe Pena a000cbd955 Fixed bug #44394 (Last two bytes missing from output) 2008-03-12 11:27:42 +00:00
Antony Dovgal 40f85eb585 MFH: fix segfault - error_string may be NULL, in this case we have to follow the old behavior 2008-03-11 10:27:23 +00:00
Josie Messa c857ec6c98 - Replace with previous commit 2008-03-11 10:15:18 +00:00
Josie Messa 02be1a8d19 - Fix test 2008-03-11 10:01:31 +00:00
Josie Messa 052670121b - Modified tests 2008-03-11 09:55:26 +00:00
Josie Messa 2a93e109e1 - Added extra whitespace around error messages in expected output 2008-03-11 09:45:30 +00:00
Andrey Hristov 031e443b44 char **error_string was passed but not used. This causes problems in cases
of getaddrinfo() failure, because the upper layers don't get the error.
initialize a variable because we were reading initialized in case of error.
2008-03-10 20:09:22 +00:00
Josie Messa 977f7b6716 - New tests for getcwd() function 2008-03-10 15:21:17 +00:00
Josie Messa 63c1185096 - Modified expected output to allow tests to work on all platforms 2008-03-10 15:07:20 +00:00
Felipe Pena d4888d7410 Fixed compilation warnings 2008-03-10 14:54:47 +00:00
Josie Messa 14a393d6a2 - New tests for scandir() function 2008-03-10 14:09:05 +00:00
Felipe Pena d39fbb1548 Fix typo (#44381) 2008-03-09 16:06:33 +00:00
David Coallier ff962d9de1 - MFH . Libxml version < 2.6.21 it fails. Patch from scoates 2008-03-08 19:14:38 +00:00
Zoe Slattery 4ec1845b52 Countable requires SPL 2008-03-08 17:13:06 +00:00
Andrey Hristov ecf84f8b6b Fix introduced in 5.0.46, not in 5.0.42 2008-03-08 14:59:37 +00:00
Felipe Pena 1c9c9daa78 BFN: #44373 2008-03-08 14:10:34 +00:00
Felipe Pena e1cf7f0ca6 Fixed bug #44373 (PDO_OCI extension compile failed) 2008-03-08 14:01:49 +00:00
Nuno Lopes 2e161037fa MFB53 skipif patch as asked by gentoo guys 2008-03-08 12:12:22 +00:00
Pierre Joye 6d3101b8f4 - #44355, compilation breaks due illegal const usage (Guenter Knauf)
I suppose it must break on other platform, it is not used anywhere else
  but here, and it was introduced after 5.2.5 (why no news)
2008-03-07 18:41:02 +00:00
Josie Messa 1b07a0988b - Tests awaiting fix of bug #44246 2008-03-07 16:19:40 +00:00
Josie Messa 46db94819f - New tests for rewinddir() function 2008-03-07 16:08:59 +00:00
Josie Messa f9f818959a - New tests for closedir() function 2008-03-07 15:58:39 +00:00
Scott MacVicar 216e57bf23 Typo, bundled version is really 3.3.7 2008-03-07 10:38:33 +00:00
Antony Dovgal 77f40d6d5b fix build 2008-03-07 08:56:45 +00:00
Stanislav Malyshev 0d6cdac9ff improve seed calculation
# better solution would be to port mt's multi-value seed procedure
2008-03-07 03:34:47 +00:00
Ilia Alshanetsky 3e51cc7a8c Back to dev 2008-03-07 00:36:12 +00:00
Ilia Alshanetsky d4689143e1 5.2.6RC2 2008-03-07 00:27:39 +00:00
Antony Dovgal ba9ad966c3 MFH: fix segfault when trying to clone uncloneable object 2008-03-06 17:28:47 +00:00
Robin Fernandes 1af0116cf0 Add new tests for class/object functions and features. 2008-03-06 10:56:07 +00:00
Ilia Alshanetsky abc6363462 MFB: Revert patch for bug #44325 2008-03-05 23:53:23 +00:00
Pierre Joye 77fee69a7e - #40013, php_uname() does not return nodename on Netware (Guenter Knauf) 2008-03-05 21:09:29 +00:00
Pierre Joye 38b94446a4 - #42505, new sendmail default path breaks on Novell (Guenter Knauf) 2008-03-05 20:58:08 +00:00
Jani Taskinen 2a4a4fbcaf MF53: Fix tests 2008-03-05 15:37:53 +00:00
Jani Taskinen 90f420baa5 - fix test (MF53) 2008-03-05 15:12:27 +00:00
Antony Dovgal 6eee168067 add missing .cvsignore 2008-03-05 12:13:00 +00:00
Jani Taskinen 26116d7285 - Fix tests 2008-03-05 12:10:38 +00:00
Antony Dovgal eb81041b0a MFH: apply better fix 2008-03-05 12:10:18 +00:00
Antony Dovgal 1a65748249 cosmetic fixes 2008-03-05 10:46:46 +00:00
Antony Dovgal 31683f4bfa MFH: fix memory corruption due to double destruction of default dir handle 2008-03-05 09:29:37 +00:00
Felipe Pena b47aea1094 Fixed bug #44333 (SEGFAULT when using mysql_pconnect() with client_flags) 2008-03-04 22:25:35 +00:00
Ilia Alshanetsky c36af9e2b5 MFB: Fixed bug #44325 (mssql_bind not correctly bind empty strings as
parameter value)
2008-03-04 19:39:08 +00:00
Josie Messa 6d48ddaf8f - new tests for readdir() function 2008-03-04 17:06:47 +00:00
Zoe Slattery 77a1339755 re-fixing to skip on 64 bit 2008-03-04 13:25:30 +00:00
Dmitry Stogov f4068e65ba Fixed SIGSEGV because of acess to uninitialized data 2008-03-04 12:23:10 +00:00
Dmitry Stogov 0d7d139700 Fixed wrong result of cascading assignment to string offset 2008-03-04 11:49:31 +00:00
Dmitry Stogov 43a9fd4c4a Fixed wrong result of cascading assignment to string offset
Fixed memory corruption on cascading assignment of IS_TMP_VAR into string offset
Fixed opcode caches shared memory corruption on cascading assignment of IS_CONST into string offset
2008-03-04 11:48:53 +00:00
Dmitry Stogov 7089db25e0 Fixed shared memory corruption of opcode caches 2008-03-04 11:46:09 +00:00
Antony Dovgal f3213ecacd MFH 2008-03-04 11:16:39 +00:00
Josie Messa 94565fb450 - new tests for opendir() function 2008-03-04 10:39:32 +00:00
Ilia Alshanetsky 0418676cc6 MFB: Fixed bug #44166 (Parameter handling flaw in
PDO::getAvailableDrivers())
2008-03-03 21:14:33 +00:00
Ilia Alshanetsky 5d66c33385 MFB: Fixed bug #44166 (Parameter handling flaw in
PDO::getAvailableDrivers())
2008-03-03 21:14:19 +00:00
Ilia Alshanetsky c4d4183f96 MFB: Fixed bug #44306 (Better detection of MIPS processors on Windows) 2008-03-02 15:36:09 +00:00
Ilia Alshanetsky 73550dd6b5 Set proper RC version (Thanks Hannes) 2008-02-28 15:36:07 +00:00
Ilia Alshanetsky 0dd068331a Back to dev 2008-02-28 00:35:26 +00:00
Ilia Alshanetsky 743bb87a57 5.2.6RC1 2008-02-28 00:30:35 +00:00
Ilia Alshanetsky 9c3f699ed8 Fixed security issue detailed in CVE-2008-0599 2008-02-28 00:29:29 +00:00
Antony Dovgal 0c0fb4be83 MFH 2008-02-27 09:35:10 +00:00
Felipe Pena 5db9cbbc40 MFB: Fixed bug #43559 (array_merge_recursive() doesn't behave as expected with duplicate NULL values) 2008-02-27 02:04:09 +00:00
Felipe Pena 45e379b49d Improved fix for #44242 2008-02-27 01:10:56 +00:00
Ilia Alshanetsky 45c443576e MFB: Fixed bug #44233 (MSG_PEEK undefined under BeOS R5) 2008-02-27 00:32:39 +00:00
Josie Messa 7c28ec2e54 - New tests for chdir() function 2008-02-26 09:31:16 +00:00
Christopher Jones 8b43d4de96 Fix test noise 2008-02-26 01:06:37 +00:00
Ilia Alshanetsky 86647d648f MFB: Better fix for bug #44189 2008-02-26 00:14:04 +00:00
Christopher Jones 8bdaeafc23 Add recent OCI8 bug fixes 2008-02-26 00:04:18 +00:00
Christopher Jones 2ce86f5e5a OCI8: fix bug #44008 (OCI-Lob->close) & bug #44206 (ref cursor leak) 2008-02-25 23:52:10 +00:00
Felipe Pena 9b730870a1 Fixed bug #44242 (metaphone(CMXFXM) crashes PHP) 2008-02-25 22:40:45 +00:00
Derick Rethans a58f8d2a9b - MFH: Fixed tests on 64bit platform. 2008-02-25 22:34:11 +00:00
Derick Rethans 08e237cc6d - MFH: Fixed a problem with parsing timezones as part of a format.
#- It doesn't actually fix anything, but atleast it's consistent with HEAD.
2008-02-25 18:28:18 +00:00
Steve Seear d4e61a3042 Replace hardcoded resource ids with %d in fgetc() tests. 2008-02-25 10:28:43 +00:00
Felipe Pena 7af1de82e3 New test 2008-02-24 18:49:40 +00:00
Felipe Pena f75a2de1c1 Fixed segfault in filter extension when using callbacks. (reported & patched by Arnar Mar Sig) 2008-02-24 18:34:30 +00:00
Ilia Alshanetsky c2805b88e5 MFB: Fixed bug #44200 (A crash in PDO when no bound targets exists and yet
bound parameters are present)
2008-02-24 16:09:05 +00:00
Derick Rethans 8241ee2226 - MFH: Fixed bug #44216 (strftime segfaults on large negative value). 2008-02-22 17:49:30 +00:00
Derick Rethans dfd8f3f735 - MFH: Fixed bug #44209: strtotime doesn't support 64 bit timestamps. 2008-02-22 09:48:18 +00:00
Josie Messa 6dc4795a66 - New tests for reset() function 2008-02-22 09:18:25 +00:00
Dmitry Stogov 6c7fe8df9f Fixed test 2008-02-22 08:16:32 +00:00
Felipe Pena fcffdf2285 Fix test 2008-02-22 02:45:37 +00:00
Josie Messa d8794230ed - New tests for end() and next() function 2008-02-21 16:38:12 +00:00
Dmitry Stogov 7eb1befffe Fixed bug #43483 (get_class_methods() does not list all visible methods) 2008-02-21 15:14:13 +00:00
Josie Messa ffa42113ff - New tests for key() function 2008-02-21 14:34:02 +00:00
Felipe Pena 3ed933811b Fix test 2008-02-21 14:22:04 +00:00
Dmitry Stogov 28306e3439 Fixed bug #44141 (private parent constructor callable through static function) 2008-02-21 13:55:22 +00:00
Ilia Alshanetsky 744d8992b3 MFB: Fixed bug #44189 (PDO setAttribute() does not properly validate values
for native numeric options)
2008-02-21 13:37:52 +00:00
Felipe Pena 4421fc2204 Cosmetics change 2008-02-21 13:32:03 +00:00
Antony Dovgal 00315b1d42 MF53 2008-02-21 11:53:51 +00:00
Dmitry Stogov 7c40e93b69 Fixed test 2008-02-21 08:17:00 +00:00
Felipe Pena 48952c1b1d Fix typo 2008-02-21 02:39:43 +00:00
Felipe Pena e0379278af Fixed Bug #44197 (socket array keys lost on socket_select) 2008-02-21 02:34:50 +00:00
Felipe Pena 50bdcc203b Fixed Bug #44191 (preg_grep messes up array index) 2008-02-20 22:08:18 +00:00
Felipe Pena 2778d2ad59 New test 2008-02-20 21:56:45 +00:00
Ilia Alshanetsky de270b4d6e MFB: Fixed bug #44152 (Possible crash with syslog logging on ZTS builds). 2008-02-20 15:28:37 +00:00
Josie Messa 18dc5aaed6 - New tests for current() function 2008-02-20 14:19:44 +00:00
Dmitry Stogov 39c4c3971d Fixed bug #44184 (Double free of loop-variable on exception) 2008-02-20 12:04:50 +00:00
Ilia Alshanetsky 766b688c8e MFB: Fixed bug #44171 (Invalid FETCH_COLUMN index does not raise an error) 2008-02-20 03:12:16 +00:00
Josie Messa 5c394578de - New tests for each() function 2008-02-19 17:00:58 +00:00
Dmitry Stogov 981603b55c Reverted wrong commit (debug code) 2008-02-19 16:44:43 +00:00
Dmitry Stogov 12e8e280c7 Fixed memory leaks 2008-02-19 16:39:02 +00:00
Dmitry Stogov 59f4a9381f Fixed test 2008-02-19 16:33:17 +00:00
Felipe Pena 5ccd0528fe New test 2008-02-19 14:53:44 +00:00
Felipe Pena d0fea14428 Fixed Bug #44159 (Crash: $pdo->setAttribute(PDO::STATEMENT_ATTR_CLASS, NULL)) 2008-02-19 12:09:47 +00:00
Dmitry Stogov ee82eac68a Fixed memory leak 2008-02-19 12:00:36 +00:00
Josie Messa ae105adfd9 - New tests for natcasesort() function 2008-02-19 10:51:44 +00:00
Sebastian Bergmann 87784c32b3 MFH: Fugbix typo. 2008-02-19 06:52:58 +00:00
Dmitry Stogov 8187dbfa4d Made code opcode-cache friendly. (It is disallowed to change code during execution) 2008-02-18 14:30:25 +00:00
Rui Hirokawa f17936083a fixed some failures on test scripts caused by bug fix. 2008-02-18 14:28:13 +00:00
Ilia Alshanetsky 304923d187 MFB:Fixed a possible crash 2008-02-18 13:29:00 +00:00
Dmitry Stogov 4a3df17f43 Removed redundant refcount manipulations 2008-02-18 12:11:34 +00:00
Dmitry Stogov 63fbdfb3e1 Fixed test 2008-02-18 09:02:16 +00:00
Ilia Alshanetsky f506f6254a Mbstring bug fixing news 2008-02-17 17:20:40 +00:00
Rui Hirokawa 65ef397b3c MF PHP5_3 (fixed #43841) 2008-02-17 02:06:56 +00:00
Rui Hirokawa 419b7283d3 MF PHP5_3 (fixed #43994) 2008-02-17 02:04:12 +00:00
Rui Hirokawa e2fa604b0a MF PHP5_3 (fixed #43998) 2008-02-17 02:01:41 +00:00
Rui Hirokawa bd98b8a3e0 MF PHP5_3 (fixed #43840) 2008-02-17 01:59:03 +00:00
Rui Hirokawa ba670d01b5 MF PHP5_3 2008-02-16 08:32:57 +00:00
Rui Hirokawa ee71417ef0 MF PHP5_3 2008-02-16 08:25:11 +00:00
Christopher Jones 7ac84b8607 Test existing LOB error messages 2008-02-16 03:01:17 +00:00
Christopher Jones 6c0abfe077 Bug #44113 (New collection creation can fail with OCI-22303) 2008-02-15 23:05:19 +00:00
Josie Messa 9da1ec78c0 - New tests for rsort() function 2008-02-15 16:05:28 +00:00
Antony Dovgal e3189410c4 MFH: recursion protection in count() 2008-02-15 09:33:26 +00:00
Dmitry Stogov f29c6b45a8 MFH: Fixed bug #43128 (Very long class name causes segfault) 2008-02-15 07:44:46 +00:00
Dmitry Stogov 5ef434d175 Fixed bug #43507 (SOAPFault HTTP Status 500 - would like to be able to set the HTTP Status) 2008-02-15 06:50:39 +00:00
Dmitry Stogov 0be31f3f3c Fixed test 2008-02-15 06:38:37 +00:00
Josie Messa 5ae0fb0628 - New tests for count() function 2008-02-14 16:49:17 +00:00
Josie Messa 5ce503459d - removing .project file 2008-02-14 16:20:19 +00:00
Josie Messa 87e2a75f70 - New variation test for array_values() 2008-02-14 16:15:16 +00:00
Dmitry Stogov af3aecb688 Fixed bug #44069 (Huge memory usage with concatenation using . instead of .=) 2008-02-14 14:47:25 +00:00
Josie Messa 592f5f384e - New tests for array_values() function 2008-02-14 14:21:48 +00:00
Felipe Pena a69ea8773d Fixed Bug #42838 (Wrong results in array_diff_uassoc) 2008-02-14 14:02:02 +00:00
Felipe Pena cf2c1c59aa New test 2008-02-14 13:49:55 +00:00
Josie Messa f56d34a230 - New tests for array_slice() function 2008-02-14 11:15:54 +00:00
Dmitry Stogov 8448591096 Fixed memory leak 2008-02-14 08:46:08 +00:00
Josie Messa 079c7f0cd6 - New tests for array_shift() function 2008-02-13 16:41:27 +00:00
Josie Messa b289acb3af - New tests for array_push() function 2008-02-13 16:10:43 +00:00
Josie Messa 2554f5ca00 - committing tests for array_merge() function 2008-02-13 14:20:22 +00:00
Josie Messa 064bbbb04e - committing tests for array_key_exists() function 2008-02-13 13:15:11 +00:00
Marcus Boerger 697b79f6a3 - MFH Make this behave like in <= 5.2.5 and test for it 2008-02-13 12:23:26 +00:00
Greg Beaver 26f6c26c8c MFH: fix potential memleak due to destruction of filterparams zval 2008-02-12 23:29:18 +00:00
Johannes Schlüter 201a2ec1f0 - MFH: Make clear what's going on and avoid overwriting parameters 2008-02-12 20:43:50 +00:00
Hannes Magnusson 8fbb789d04 Fix test 2008-02-12 20:06:10 +00:00
Josie Messa fa7ab79523 - committing array_change_key_case variation tests 2008-02-12 17:43:54 +00:00
Felipe Pena d1f536595e MFB: array_slice() - Fixed behavior when NULL is given in third parameter (BC) 2008-02-12 12:47:30 +00:00
Felipe Pena 13e939679b MFB: Fixed Bug #44094 (SEGFAULT when using mysql_connect()) 2008-02-12 10:24:35 +00:00
Zoe Slattery a628bc8856 Fixing 44092 2008-02-12 07:27:49 +00:00
Ilia Alshanetsky 2e6320425b MFB: Fixed test on 64bit machines 2008-02-11 16:23:12 +00:00
Johannes Schlüter eaa1662a75 MFH: The exact message differs on different systems 2008-02-11 00:03:30 +00:00
Johannes Schlüter c04ac43efa - Fix typo (see #44095) 2008-02-11 00:01:29 +00:00
Jani Taskinen 839abfabcc MFH 2008-02-06 19:14:07 +00:00
Jani Taskinen c717b41784 MFH:- Fixed bug in handling arrays which caused the original array being modified too. 2008-02-06 19:07:36 +00:00
Marcus Boerger 745fe9004f - BFN 2008-02-06 11:10:07 +00:00
Marcus Boerger dd570d65ce - WS 2008-02-06 11:09:48 +00:00
Zoe Slattery 44b091a30d Tests for assorted Maths functions 2008-02-06 09:51:19 +00:00
Ilia Alshanetsky 5b0fbbefe1 MFB: Fixed bug #44046 (crash inside array_slice() function with an invalid
by-ref offset).
2008-02-05 16:01:21 +00:00
Robert Nicholson 95121ed073 - fix arsort_variation3.phpt which was missing its EXPECT section 2008-02-05 11:18:00 +00:00
Marcus Boerger f26c177b2d - Damnit you flags (wrong commit) 2008-02-04 21:49:44 +00:00
Marcus Boerger 9a90cfc99c - MFH Really last flag change (got confused with code) 2008-02-04 21:37:55 +00:00
Ilia Alshanetsky 2c92d82a02 Revert fix for bug #43981, not yet ready for 5.2 2008-02-04 21:31:52 +00:00
Marcus Boerger 80907e4a91 - MFH Flag handling and documentation 2008-02-04 20:43:50 +00:00
Sebastian Bergmann 0d516bf7ec Add NEWS entry for ext/dom arginfo changes. 2008-02-04 19:43:34 +00:00
Sebastian Bergmann cc0b2dd120 MFH: Add missing Reflection API metadata for DOM classes. 2008-02-04 15:23:11 +00:00
Robert Nicholson 622504d7a3 - added some new tests for arsort 2008-02-04 00:04:26 +00:00
Ilia Alshanetsky e002e2ec1c MFB: Fixed bug #44028 (crash inside stream_socket_enable_crypto() when
enabling encryption without crypto type)
2008-02-03 16:15:30 +00:00
Derick Rethans 3bcef3b39d - Fixed invalid read errors as found by GCOV. 2008-02-03 14:22:55 +00:00
Antony Dovgal 20b39a9806 fix test, add 64bit version 2008-02-02 23:44:39 +00:00
Derick Rethans d7ae91bea7 - MFH: Make timezone_open() work again. 2008-02-02 17:26:23 +00:00
Zoe Slattery cc0b147a2f A few new tests for math functions - Note the "constants" test will fail on Windows - Bug 42143. 2008-02-01 17:27:43 +00:00
Robert Nicholson 801ce5ee03 - a few more gd tests (committed on behalf of andy wharmby) 2008-02-01 16:33:37 +00:00
Josie Messa bb5f5da561 - Committing new tests for MBString extension.
More details can be found here: http://news.php.net/php.qa/62382
2008-02-01 15:27:57 +00:00
Rob Richards 390b033755 BFN 2008-01-31 22:00:22 +00:00
Rob Richards 1dc8e72874 MFH: fix bug #42369 (Implicit conversion to string leaks memory)
add test
2008-01-31 21:59:41 +00:00
Antony Dovgal caf57b0532 BFN 2008-01-31 20:23:33 +00:00
Christopher Jones dece018a41 Fixed bug #42841 (REF CURSOR and oci_new_cursor PHP crash) 2008-01-31 00:26:44 +00:00
Ilia Alshanetsky 6f1c2f04a0 MFB: Fixed bug #43981 (gmp_div_r() does not preserve the sign of 1st
argument)
2008-01-30 18:27:03 +00:00
Zoe Slattery 51f63718cf Removing superfluous --INI-- section 2008-01-30 17:44:54 +00:00
Rob Richards 82a3271eda BFN 2008-01-30 15:30:44 +00:00
Rob Richards 005ece078a MFH: fix bug #41562 (SimpleXML memory issue) 2008-01-30 15:29:51 +00:00
Robin Fernandes 5912128780 Adding tests for class features, including __autoload(), property inheritance rules and class constants. 2008-01-30 14:24:47 +00:00
Rasmus Lerdorf 529092df9b Copy-paste typo 2008-01-30 08:50:02 +00:00
Sebastian Bergmann 410fb2b6d4 MFH: Fix arginfo. 2008-01-30 06:48:20 +00:00
Rasmus Lerdorf b8af6b08db This one depends on the precision setting 2008-01-30 05:37:23 +00:00
Rasmus Lerdorf 7b624a37bc Fixed bug #43957 (utf8_decode() bogus conversion of partial multibyte UTF8 char) 2008-01-29 23:21:20 +00:00
Sebastian Bergmann 088d2d98b8 MFH: Fix arginfo and prototype. 2008-01-29 21:21:28 +00:00
Nuno Lopes 8cb33d2c04 upgrade to pcre 7.6 2008-01-29 20:25:47 +00:00
Dmitry Stogov 7c51430b37 Fixed bug #43968 (Extending internal class causes a crash)
The fix is a workaround for GCC optizer bug.
2008-01-29 20:01:14 +00:00
Sebastian Bergmann fef277ab76 MFH: Add Reflection API metadata for DOMXPath. 2008-01-29 15:55:29 +00:00
Sebastian Bergmann 0c685dc3c0 MFH: Add Reflection API metadata for DOMNode. 2008-01-29 15:23:25 +00:00
Dmitry Stogov f8d7d6fc90 Fixed bug #43491 (Under certain conditions, file_exists() never returns) 2008-01-29 14:23:19 +00:00
Antony Dovgal 1a4c15d5e1 MFH: fix #43927 (koi8r is missing from html_entity_decode())
patch by andy at demos dot su
2008-01-29 13:39:03 +00:00
Dmitry Stogov e4782cddf4 Fixed bug #43505 (Assign by reference bug) 2008-01-29 10:44:53 +00:00
Dmitry Stogov c9fd5b3010 Fixed test 2008-01-29 10:43:42 +00:00
Antony Dovgal c86f396edf BFN 2008-01-29 09:30:08 +00:00
Sebastian Bergmann 984b2c84a5 MFH: Add Reflection API metadata for XSLTProcessor. 2008-01-29 07:51:46 +00:00
Antony Dovgal 65d0aca95c MFH: fix type and bug #43646 2008-01-29 00:08:08 +00:00
Scott MacVicar 20809972dc MFH: Fixed bug #43954 (Memory leak when sending the same HTTP status code more than once.) 2008-01-28 16:12:55 +00:00
Hannes Magnusson 1e0125e9a4 Remove bogus test (should be in HEAD) 2008-01-27 18:20:27 +00:00
Marcus Boerger f2e8119bf5 - Add second parameter to SplObjectStorage::attach()
- Add SplObjectStorage::setInfo()
- Add SplObjectStorage::getInfo()
2008-01-27 18:04:56 +00:00
Rob Richards 86ae2781fb MFH: add missing export 2008-01-27 16:33:22 +00:00
Derick Rethans da11bc2b32 - MFH Bugfixes:
- Fixed bug #43808 (date_create never fails (even when it should)).
	- Fixed bug #43527 (DateTime created from a timestamp reports environment
	  timezone).
	- Fixed bug #43003 (Invalid timezone reported for DateTime objects
	  constructed using a timestamp).
	- Fixed bug #42190 (Constructing DateTime with TimeZone Indicator
	  invalidates DateTimeZone).
	- Fixed bug #41599 (setTime() fails after modify() is used).
2008-01-26 16:26:47 +00:00
Robert Nicholson 905f0d086b - Add a basic test for array_shuffle() 2008-01-25 00:30:52 +00:00
Robert Nicholson db0c290db4 - add some basic tests for array diff and intersection functions 2008-01-25 00:16:14 +00:00
Antony Dovgal ab8436fc87 MFH 2008-01-24 23:11:15 +00:00
Robert Nicholson 6b7d50ead4 - New tests for compact() 2008-01-24 14:52:38 +00:00
Rob Richards e660e038a4 MFH: fix zts build 2008-01-24 14:10:21 +00:00
Dmitry Stogov bab919b91b Fixed error message 2008-01-24 08:51:04 +00:00
Ilia Alshanetsky cfcb262dfb MFB:Fixed bug #43912 (Interbase column names are truncated to 31 characters) 2008-01-23 01:22:57 +00:00
Antony Dovgal 5331163715 add new test 2008-01-22 15:43:09 +00:00
Hannes Magnusson 66d39db51e MFH: Fixed bug #43875 (Two error messages returned for $new and $flag argument in mysql_connect()) 2008-01-20 14:13:11 +00:00
Christopher Jones a4c915c855 MFH: Add ifdef 2008-01-18 16:03:35 +00:00
Antony Dovgal 45353a5c39 fix test 2008-01-18 12:41:24 +00:00
Antony Dovgal f66f94b4b0 fix test 2008-01-18 12:12:19 +00:00
Antony Dovgal ff7be14077 BFN 2008-01-18 07:10:21 +00:00
Pierre Joye c1fa811b5c - reflect the correct version 2008-01-18 00:51:38 +00:00
Greg Beaver 736e23a4c5 MF5.3: install headers, use correct zip version 2008-01-18 00:31:23 +00:00
Greg Beaver 42b320bca1 MFH: add errors when missing dependencies (Steph) 2008-01-17 21:17:29 +00:00
Ilia Alshanetsky 23994f9150 MFB: Fixed bug #42779 (Incorrect forcing from HTTP/1.0 request to HTTP/1.1
response)
2008-01-16 15:50:37 +00:00
Antony Dovgal b42398f850 MFH: fix #43863 (str_word_count() breaks on cyrillic "ya" in locale cp1251)
patch by phprus at gmail dot com
2008-01-16 08:35:59 +00:00
Dmitry Stogov bb084caec1 Fixed wrong type cast 2008-01-16 06:14:45 +00:00
Christopher Jones 65bec2edc8 MFH: fix #41941 (oci8 extension not lib64 savvy) 2008-01-16 00:42:02 +00:00
Christopher Jones ea2d2d6bb6 MFH: Testcase for #43492 (nested cursors) 2008-01-15 20:54:22 +00:00
Christopher Jones f4a29d5432 fix #43497 (OCI8 XML/getClobVal aka temporary LOBs leak UGA memory) 2008-01-15 20:42:13 +00:00
Rob Richards 844d6ee35b MFH: fix memleak in sign and verify functions 2008-01-15 15:13:37 +00:00
Brian Shire 751b0807b1 MFH: Fix bug #42850 array_walk_recursive() leaves references, refix bug #34982 2008-01-14 22:10:09 +00:00
Ilia Alshanetsky a2581f81d1 MFB: Missing patch bit from the FETCH_GROUP fix 2008-01-14 18:41:41 +00:00
Nuno Lopes 0f9729404f MFH: fix bug #42945, as asked by Ilia 2008-01-14 09:46:55 +00:00
Nuno Lopes 255a7b9cf0 upgrade PCRE to version 7.5 (as asked by Ilia 2008-01-14 09:39:41 +00:00
Greg Beaver c98f8dc302 merge in cgi fixes from PHP_5_3 2008-01-14 04:34:17 +00:00
Greg Beaver b24c96616a add missing alias .h files 2008-01-14 03:58:03 +00:00
Greg Beaver 1d3604c1b1 MFH: export libzip symbols 2008-01-14 03:19:41 +00:00
Greg Beaver 1d28516b79 MFH: far better fix for bug #40189 2008-01-12 22:04:03 +00:00
Greg Beaver ee16647cfd MFH: fix faulty fix for Bug #40189, and provide real fix for the bug 2008-01-12 21:35:44 +00:00
Greg Beaver 5d96f54cf9 revert last commit, was to wrong branch 2008-01-12 03:46:47 +00:00
Greg Beaver 9ce5990880 MFH: export symbols for use by other extensions like phar 2008-01-12 03:43:06 +00:00
Rob Richards 0d1fe9c73b MFH: starting with 2.6.30, standard libxml2 build can be used 2008-01-11 13:37:24 +00:00
Ilia Alshanetsky aa51dce93a MFB: Fixed a bug with PDO::FETCH_COLUMN|PDO::FETCH_GROUP mode when a column
# by which to group by data is specified.
2008-01-11 01:47:55 +00:00
Brian Shire 0c855571c3 - MFH fix truncation of large values on 64-bit systems in http_build_query 2008-01-10 20:32:41 +00:00
Antony Dovgal c2f8930033 correct number of symbols 2008-01-10 08:45:39 +00:00
Antony Dovgal 2fe13db7ac fix test 2008-01-10 08:45:06 +00:00
Dmitry Stogov d5bd104d9d Fixed broken soap.wsdl_cache_enabled 2008-01-09 16:45:30 +00:00
Greg Beaver 8a1cd11e0b apply proper fix of bug #43793 to zlib.deflate (window+16 = gzip) 2008-01-09 08:12:26 +00:00
Dmitry Stogov b58a5db130 Fixed bug #43703 (Signature compatibility check broken) 2008-01-09 07:57:23 +00:00
Greg Beaver a603c8d71b apply same fix of bug #43793 to zlib.deflate 2008-01-09 07:03:41 +00:00
Greg Beaver ad7f030c6d fix Bug #43793: zlib filter is unable to auto-detect gzip/zlib file headers 2008-01-09 06:45:15 +00:00
Pierre Joye 3dd5e7854c - #43790, fix crash when no family name has been found 2008-01-09 01:50:59 +00:00
Ilia Alshanetsky c73247fe2c MFB: Fixed bug #43498 (file_exists() on a proftpd server got SIZE not
allowed in ASCII mode).
2008-01-08 19:10:16 +00:00
Ilia Alshanetsky 0b25a9fb8c Fixed a safe_mode bypass in cURL identified by Maksymilian Arciemowicz. 2008-01-06 17:12:29 +00:00
Greg Beaver 4490673e0e remove potential preg warnings if --EXPECTHEADERS-- is combined with --EXPECTF-- or --EXPECTRE-- 2008-01-05 21:39:47 +00:00
Greg Beaver 32f4ff69b5 implement --FILE_EXTERNAL-- section for using an external file as --FILE--, use CGI for --EXPECTHEADERS--, fix --POST_RAW-- 2008-01-05 21:05:14 +00:00
Raghubansh Kumar d380d052af New testcases for array_diff() function 2008-01-04 14:04:26 +00:00
Raghubansh Kumar 5fe2521143 New testcases for array_diff_assoc() function 2008-01-04 14:03:57 +00:00
Ulf Wendel 8e0bb2d72c MFH: Fix for bug #43036 2008-01-04 09:19:49 +00:00
Ilia Alshanetsky 0c882b2645 MFB: Skip test for PostgreSQL driver since error is too dissimilar to other
drivers
2008-01-03 16:47:08 +00:00
Raghubansh Kumar b054ae8716 this testcase has been split into many smaller testcases and committed. 2008-01-03 09:50:05 +00:00
Raghubansh Kumar 5a6c4393cb new smaller testcases for array_map() function 2008-01-03 09:48:42 +00:00
Steve Seear 425646f98b Adding PHPT tests for the ReflectionMethod class. 2008-01-03 09:06:08 +00:00
Ilia Alshanetsky 02967f7040 MFB: Fixed bug #43647 (Make FindFile use PATH_SEPARATOR instead of ";") 2008-01-02 19:20:15 +00:00
Ilia Alshanetsky 660fac9dc0 MFB: Update copyright 2008-01-01 18:30:41 +00:00
Hartmut Holzgraefe 3e34e202d5 MFH: Fix for bug #42548 "PROCEDURE xxx can't return a result set" 2008-01-01 16:51:09 +00:00
Derick Rethans aaeded2ac7 - Updated to version 2007.11 2008-01-01 15:32:28 +00:00
Hannes Magnusson 30ff9a85cf MFH: Fix test 2008-01-01 14:36:08 +00:00
Sebastian Bergmann 58fea2b990 MFB: Leftover: Bump copyright year. 2008-01-01 06:15:48 +00:00
Sebastian Bergmann dfa693b392 Leftover: Bump copyright year. 2007-12-31 07:25:08 +00:00
Sebastian Bergmann d9f3a1305f MFH: Bump copyright year, 2 of 2. 2007-12-31 07:20:42 +00:00
Sebastian Bergmann e78105b103 MFH: Bump copyright year, 1 of 2. 2007-12-31 07:17:40 +00:00
David Soria Parra e81a660bae - Fixed bug #43663 (Extending PDO class with a __call() function doesn't work). 2007-12-30 17:59:31 +00:00
Jani Taskinen 3b2ca90699 MFH:- This makes no sense with non-ipv6 builds. (and fixes lot of issues with misconfigured servers) 2007-12-29 18:46:37 +00:00
Hannes Magnusson 5a5f3e6dff Fix test when additional ini files are used (patch by <confins_de_l_univers at yahoo dot fr>) 2007-12-29 11:38:06 +00:00
Antony Dovgal 6db1f40e32 correct fix for bug #43522 2007-12-29 10:52:51 +00:00
Hannes Magnusson dbbd4bf1b8 MFH: Update the class method documentation links 2007-12-29 02:22:23 +00:00
Dmitry Stogov df9e324f35 Fixed test related to bug #38469 2007-12-28 13:38:30 +00:00
Dmitry Stogov 2705adc4b9 Fixed bug #38469 (Unexpected creation of cycle). 2007-12-28 13:38:20 +00:00
Hannes Magnusson 97c1cc8925 BFN 2007-12-27 02:12:48 +00:00
Hannes Magnusson 7c9ab52ca4 MFB5.3: Fixed bug#43105 (PHP seems to fail to close open files.) 2007-12-27 02:10:26 +00:00
Hannes Magnusson 6bcf63c567 MFH: Fix typo (TAKAGI Masahiro) 2007-12-26 21:03:12 +00:00
Raghubansh Kumar 8774eb1ae9 fix test : do not run when run as root 2007-12-25 16:16:32 +00:00
Dmitry Stogov 24957a15e0 Fixed %f regex 2007-12-25 12:06:22 +00:00
Raghubansh Kumar cb165e184d new testcases for dir() function 2007-12-24 05:21:08 +00:00
Raghubansh Kumar 63ff78e2f3 fix tests 2007-12-24 04:26:41 +00:00
Raghubansh Kumar 77245e4907 Changing the regex for %f so the it will match e-, e+ and e. 2007-12-24 04:24:20 +00:00
Johannes Schlüter bb52c198ce -Fix name (arg, new keyboard is coming...) 2007-12-21 21:18:01 +00:00
Johannes Schlüter 0bc875c9ca -Fix name 2007-12-21 21:17:31 +00:00
Johannes Schlüter 42add0f2e1 - MFH: Fix #43450 (Memory leak on some functions with implicit object
__toString() call) (Davic C.)
2007-12-21 20:58:11 +00:00
Dmitry Stogov ab6121f686 Fixed test 2007-12-21 09:44:13 +00:00
Raghubansh Kumar 59ddc3b287 fix tests 2007-12-20 17:28:36 +00:00
Dmitry Stogov 6789574da2 x86_64 assembler optimization (Brain Shire) 2007-12-20 13:22:22 +00:00
Robert Nicholson 6194af1343 New test - Indexing - various special cases 2007-12-20 11:41:40 +00:00
Robert Nicholson 847f462905 new tests for array_map usage variations - string keys and references 2007-12-20 11:18:55 +00:00
Ilia Alshanetsky c21ef044a7 MFB: Fixed bug #43635 (mysql extension ingores INI settings on NULL values
passed to mysql_connect())
2007-12-20 00:31:49 +00:00
Raghubansh Kumar a81fccc47d fix test 2007-12-19 10:40:18 +00:00
Derick Rethans dc30b0035d - MFH: Fixed var_export() for array keys
- MFH: Fixed broken explode() test
2007-12-19 08:45:16 +00:00
Steve Seear fd81f61e0d Adding PHPT tests for the ReflectionProperty class. 2007-12-18 17:20:05 +00:00
Ilia Alshanetsky a68454f659 MFB: Fixed bug #43620 (Workaround for a bug inside libcurl 7.16.2 that can
result in a crash)
2007-12-18 13:47:37 +00:00
Jani Taskinen b9fabc8ae6 MFH:- Fix indent of macros 2007-12-17 08:52:30 +00:00
Johannes Schlüter bbfe422bd1 - MFH: Fix #43611 SplObjectStorage is available since 5.1.2 2007-12-16 22:19:58 +00:00
Hannes Magnusson 327109fab1 MFB5.3: Fix test 2007-12-16 19:18:44 +00:00
Ilia Alshanetsky 1643c14e5f MFB: Fixed bug #43589 (a possible infinite loop in bz2_filter.c) 2007-12-16 17:22:31 +00:00
Ilia Alshanetsky 6dc859da75 MFB: Fixed bug #43606 (define missing depencies of the exif extension) 2007-12-16 17:14:54 +00:00
Hannes Magnusson 25a7740600 Fix protos 2007-12-15 12:52:11 +00:00
Raghubansh Kumar ee8d2395e1 New testcases for token_get_all() function 2007-12-14 16:23:12 +00:00
Antony Dovgal eb324c4cce MFH 2007-12-13 22:30:28 +00:00
Douglas Goldstein 45dba3ecc7 add tests for ldap_dn2ufn() 2007-12-13 17:59:52 +00:00
Douglas Goldstein 2013cd57cd expand ldap_explode_dn() tests. 2007-12-13 17:46:46 +00:00
Dmitry Stogov 853adf67f9 Fixed test 2007-12-13 07:57:24 +00:00
Ilia Alshanetsky c35249d45e MFB Fixed bug #43580 (removed bogus declaration of a non-existent php_is_url()
function)
2007-12-13 00:33:26 +00:00
Antony Dovgal 0e70b8fea0 MFH: add valgrind 3.3.0 support 2007-12-12 20:21:57 +00:00
Douglas Goldstein 8f8e19dc7b add skipif case if the ldap extension is not loaded 2007-12-11 17:35:11 +00:00
Douglas Goldstein 57dbd0837a put ldap_explode_dn.phpt in proper directory 2007-12-11 17:33:51 +00:00
Douglas Goldstein becf94003a Adding initial tests for LDAP module. Adding tests for ldap_explode_dn() function 2007-12-11 17:20:58 +00:00
Jani Taskinen 0644aff586 MFH:- Revert previous patch, it was correct to do this, error is logged if logging is enabled 2007-12-11 12:26:16 +00:00
Jani Taskinen 882bd652df MFH: fix error displaying 2007-12-11 11:29:37 +00:00
Raghubansh Kumar b1c09efa90 New testcases for array_walk() function 2007-12-11 10:50:17 +00:00
Raghubansh Kumar 1ed9911cfa New testcases for array_merge_recursive() function 2007-12-11 09:09:12 +00:00
Christopher Jones e2c7f9c485 Fix #42496. Cursor leak fetching LOBs 2007-12-11 06:07:13 +00:00
Ilia Alshanetsky 8a9ad0081d MFB: Fixed bug #43522 (stream_get_line() eats additional characters) 2007-12-10 14:18:02 +00:00
Derick Rethans 63dcbb73f0 - MFH: Fixed Bug #42272 (var_export() incorrectly escapes char(0)). 2007-12-09 16:55:46 +00:00
Ilia Alshanetsky 2caccf3136 Fixed bug #43533 (escapeshellarg('') returns null).
# Backport of code from 5.3
2007-12-09 16:37:02 +00:00
Raghubansh Kumar e31fd8027f new testcases for array_unique() function 2007-12-09 14:44:18 +00:00
Marcus Boerger f012dee00c -MFH: db 4.6 detection 2007-12-06 14:17:43 +00:00
Ilia Alshanetsky f6829cf90f MFB: Fixed bug #43495 (array_merge_recursive() crashes with recursive
arrays)
2007-12-05 20:04:13 +00:00
Ilia Alshanetsky e3ec29a3f1 MFB: fixed test 2007-12-04 13:05:24 +00:00
Ilia Alshanetsky bb9384cb8a MFB: Fixed bug #43493 (pdo_pgsql does not send username on connect when
password is not available)
2007-12-04 13:05:03 +00:00
Antony Dovgal 33885b64a4 MFH 2007-12-04 08:56:14 +00:00
Antony Dovgal fe8771ec81 fix typos
use the earliest bug report in the description
2007-12-03 16:33:37 +00:00
Dmitry Stogov aeae1ce48a bug numbers 2007-12-03 16:20:55 +00:00
Dmitry Stogov 0c2edc588d Fixed crash because of uninitialized SG(sapi_headers).mimetype 2007-12-03 16:04:26 +00:00
Derick Rethans 3f9a50c5bf - Updated to version 2007.10 2007-12-03 15:16:40 +00:00
Dmitry Stogov b68b2e029c Fixed weired behavior in CGI parameter parsing 2007-12-03 15:08:01 +00:00
Ilia Alshanetsky 32463e7af9 Fixed bug #43482 (array_pad() does not warn on very small pad numbers). 2007-12-03 14:11:09 +00:00
Raghubansh Kumar f0570bce0b fix tests : better float values 2007-12-03 13:04:45 +00:00
Raghubansh Kumar 0bf84145b2 fix tests: better float values 2007-12-03 11:59:55 +00:00
Raghubansh Kumar e12bef98c6 New testcases for array_pad() function 2007-12-03 11:53:04 +00:00
Raghubansh Kumar d47d025881 New testcases for array_chunk() function 2007-12-03 03:55:55 +00:00
Ilia Alshanetsky e2ed7b551f MFB: Fixed bug #43457 (Prepared statement with incorrect parms doens't
throw exception with pdo_pgsql driver)
2007-12-02 21:00:06 +00:00
Ilia Alshanetsky 83156cf04d Fixed a typo 2007-11-30 00:12:18 +00:00
Ilia Alshanetsky 056197037d MFB: Fixed tests 2007-11-28 14:50:24 +00:00
Rob Richards ff8e1a32f9 BFN 2007-11-28 10:47:36 +00:00
Rob Richards d5afff5286 MFH: Fix bug #43364 (recursive xincludes don't remove internal nodes properly)
add test
2007-11-28 10:45:16 +00:00
Raghubansh Kumar 1a8b3e0923 Marked with defect 2007-11-28 03:42:43 +00:00
Ilia Alshanetsky b1407d3709 MFB: Fixed bug #43373 (pcntl_fork() should not raise E_ERROR on error) 2007-11-27 17:14:27 +00:00
Raghubansh Kumar ea4f3ac8a3 New testcases for array_combine() function 2007-11-27 15:18:11 +00:00
Raghubansh Kumar 9de95af3db New testcases for array_sum() function 2007-11-27 15:00:55 +00:00
Antony Dovgal d3aff8310c fix test 2007-11-27 11:14:17 +00:00
Antony Dovgal 14902c89cc fix test 2007-11-27 06:44:32 +00:00
Ilia Alshanetsky 8330f31750 MFB: Revert addition of - char support for bound param names 2007-11-26 21:10:41 +00:00
Jani Taskinen a109ecaacf MFH:- Fixed bug #43365 (Several enums have trailing commas) 2007-11-26 10:59:18 +00:00
Ilia Alshanetsky 947cebee3c MFB: Fixed bug #43386 (array_globals not reset to 0 properly on init) 2007-11-25 15:56:47 +00:00
Robert Nicholson dc75c7c2a1 Fix incorrect use of assignment in where equality was intended - class tests. 2007-11-23 15:41:05 +00:00
Ilia Alshanetsky 3acbcf448f MFB: Fixed bug #43377 (PHP crashes with invalid argument for DateTimeZone) 2007-11-23 00:16:48 +00:00
Robert Nicholson 202e7f5b28 Add some more pcre tests 2007-11-21 18:21:19 +00:00
Jani Taskinen 14d5ba8aec MFH:- Fixed bug #43035: ignore_repeated_errors=On causes lot of tests to fail 2007-11-21 08:20:45 +00:00
Ilia Alshanetsky fdc2dab50b MFB: Adjusted fix for bug #42978 2007-11-20 23:12:30 +00:00
Ilia Alshanetsky a4bc590ec1 MFB: Fixed bug #42978 (mismatch between number of bound params and values
causes a crash in pdo_pgsql)
2007-11-20 14:23:47 +00:00
Antony Dovgal c39a2f7143 fix test 2007-11-19 11:12:36 +00:00
Dmitry Stogov 06a116cd53 Fixed tests 2007-11-19 08:01:56 +00:00
Derick Rethans 62fb0402db - MFH: Initialize the reserved resource bits so that they can be reliably used. 2007-11-18 21:30:30 +00:00
Ilia Alshanetsky 99a1f9e0b2 MFB: Fixed bug #42261 (Incorrect lengths for date and boolean data types) 2007-11-18 14:20:17 +00:00
Sara Golemon d92f11b9d6 MFH(r-1.192) Remove extraneous space in error/notice messages (felipe) 2007-11-17 21:52:06 +00:00
Raghubansh Kumar b99048d5c7 New testcases for sizeof() function 2007-11-16 17:55:55 +00:00
Raghubansh Kumar 9b85655327 fix tests: removed values that generate diff. output on Linux64 2007-11-16 17:04:19 +00:00
Jani Taskinen 369a97713c MFH: - Fixed bug #43092 (curl_copy_handle() crashes with > 32 chars long URL) 2007-11-16 14:19:35 +00:00
Jani Taskinen aaa295fa35 MFH:- Fixed bug #43301 (mb_ereg*_replace() crashes when replacement string is
invalid PHP expression and 'e' option is used)
2007-11-16 12:28:34 +00:00
Antony Dovgal 332e1b8482 MFH: fix test 2007-11-15 22:14:29 +00:00
Ilia Alshanetsky 81676a4b6e MFB: Fixed bug #43276 (Incomplete fix for bug #42739, mkdir() under
safe_mode).
2007-11-15 18:58:43 +00:00
Hannes Magnusson 177ed895d3 MFH test 2007-11-15 13:14:19 +00:00
Ilia Alshanetsky dbdbfe37f2 MFB: Don't show file names being examined 2007-11-14 23:45:39 +00:00
Elizabeth Marie Smith b9580cd54e MFB 2007-11-14 19:48:57 +00:00
Raghubansh Kumar b298641605 New testcases for uasort() function 2007-11-14 17:17:51 +00:00
Raghubansh Kumar bfe5708953 fix test for linux64 - choosing smaller float values 2007-11-14 16:30:09 +00:00
Hannes Magnusson d3fd30265a MFB5.3: Fixed bug#43293 (Multiple segfaults in getopt()) 2007-11-14 15:19:29 +00:00
Hannes Magnusson 1dd3064045 Fix test 2007-11-14 13:07:07 +00:00
Ilia Alshanetsky 916ad03b84 MFB: Fixed bug #43279 (pg_send_query_params() converts all elements in
'params' to strings)
2007-11-13 20:08:04 +00:00
Dmitry Stogov 5c6a2679c8 Fixed bug #42692 (Procedure 'int1' not present with doc/lit SoapServer) 2007-11-13 15:10:05 +00:00
Antony Dovgal 3258e0cef2 fix typo 2007-11-13 10:31:34 +00:00
Dmitry Stogov 6c7761c807 Fixed Bug #43248 (backward compatibility break in realpath()) 2007-11-13 09:46:39 +00:00
Zoe Slattery 332c87b12a MFH: Changing the regex for %f so the it will match E-, E+ and E. 2007-11-12 21:16:27 +00:00
Rob Richards fe13ae813d BFN 2007-11-12 19:00:04 +00:00
Rob Richards 376d5f828d MFH: fix bug #43221 (SimpleXML adding default namespace in addAttribute)
add test
2007-11-12 18:59:26 +00:00
Ilia Alshanetsky 5d09ce66a3 Fixed bug #43182 (file_put_contents() LOCK_EX does not work properly on
file
2007-11-12 18:47:46 +00:00
Antony Dovgal 144419b3a1 MFH: fix error message (reported by Felipe Nascimento) 2007-11-12 16:56:39 +00:00
Raghubansh Kumar 7a39cd0117 New testcases for ksort() function 2007-11-12 15:55:10 +00:00
Raghubansh Kumar 09e35a5107 New testcases for krsort() function 2007-11-12 15:54:35 +00:00
Antony Dovgal 7a369dc593 MFH: fix #42736 (xmlrpc_server_call_method() crashes) 2007-11-12 11:24:13 +00:00
Dmitry Stogov 2ea3105939 Fixed bug #42937 (__call() method not invoked when methods are called on parent from child class). 2007-11-12 09:11:49 +00:00
Ilia Alshanetsky 9ed8465d1b MFB: Fixed parse error described in bug #43228 2007-11-11 13:38:28 +00:00
Johannes Schlüter 6ff45cf55e - Use #if instead of #ifdef there (by Mikko Koppanen) 2007-11-10 19:52:08 +00:00
Raghubansh Kumar ad732b6140 fix tests 2007-11-09 12:00:57 +00:00
Dmitry Stogov 1ea2e504e3 Fixed bug #43216 (stream_is_local() returns false on "file://") 2007-11-09 09:37:42 +00:00
Dmitry Stogov 84c1ac4385 Fixed bug #43201 (Crash on using unitialized vals and __get/__set) 2007-11-09 09:28:18 +00:00
Dmitry Stogov 85a2d87bae Fixed bug #43175 (__destruct() throwing an exception with __call() causes segfault) 2007-11-09 09:16:45 +00:00
Raghubansh Kumar a91fe5ca49 fix test: better float values 2007-11-09 08:57:18 +00:00
Raghubansh Kumar 6ca1fdbc25 fix tests: better float values 2007-11-09 07:09:52 +00:00
Ilia Alshanetsky 9623aa59eb Fixed win32 build 2007-11-09 03:51:12 +00:00
Ilia Alshanetsky 0125436439 Back to dev 2007-11-08 13:53:14 +00:00
Ilia Alshanetsky af81b9d973 5.2.5 2007-11-08 13:44:12 +00:00
Antony Dovgal e9e1ba64e9 MFH 2007-11-08 11:39:59 +00:00
Antony Dovgal 2bb2bcdcce fix tests 2007-11-08 11:19:46 +00:00
Antony Dovgal f237b06942 fix test 2007-11-08 10:30:08 +00:00
Antony Dovgal 9958658fc3 MFH: fix test 2007-11-08 10:13:47 +00:00
Antony Dovgal 527f581a6b MFH 2007-11-08 08:12:01 +00:00
Dmitry Stogov 76a5faaf8f Fixed tests 2007-11-08 07:06:55 +00:00
Antony Dovgal 0e6b470417 fix tests 2007-11-07 12:07:59 +00:00
Antony Dovgal 295c1cc04e MFH 2007-11-07 08:31:04 +00:00
Jani Taskinen df35a307cc MFH: - Fixed bug #43196 (array_intersect_assoc() crashes with non-array input) 2007-11-06 13:28:21 +00:00
Raghubansh Kumar c6779ec584 New testcases for asort() function 2007-11-05 16:37:45 +00:00
Raghubansh Kumar f87b27a84e better test title 2007-11-05 16:24:37 +00:00
Raghubansh Kumar bbc87a14eb New testcases for sort() function 2007-11-05 15:38:03 +00:00
Raghubansh Kumar c1ee9eeecf New testcases for array_intersect_assoc() function 2007-11-05 14:39:42 +00:00
Derick Rethans db4b1f7f46 - Updated to version 2007.9 2007-11-05 10:36:50 +00:00
Mattias Bengtsson 5697c1a9ac - Right filename 2007-11-05 01:14:18 +00:00
Mattias Bengtsson 7f57a366dc - Fixed Bug #43121 (gdImageFill with IMG_COLOR_TILED crashes httpd) 2007-11-04 23:56:00 +00:00
Raghubansh Kumar 72c994d464 fix tests: proper temp file names 2007-11-02 03:54:05 +00:00
Raghubansh Kumar 5302a164b1 fix tests: proper temp file names 2007-11-02 03:16:22 +00:00
Raghubansh Kumar 72a009a2f2 Fix test: better float values 2007-11-02 03:00:18 +00:00
Ilia Alshanetsky 79cd4dc1c3 back to dev 2007-11-01 22:37:35 +00:00
Ilia Alshanetsky e3eb1b9bed 5.2.5RC2 2007-11-01 22:33:31 +00:00
Antony Dovgal f6966f28d0 MFH: initialize correct variable 2007-11-01 19:13:49 +00:00
Jani Taskinen e207cc58ac MFH: nuke unused variables 2007-11-01 17:32:26 +00:00
Dmitry Stogov 67f6979df2 Another fix for bug #42773 2007-11-01 15:41:13 +00:00
Dmitry Stogov e468aa44a2 Fixed bug #42848 (Status: header incorrect under FastCGI) 2007-11-01 15:23:14 +00:00
Dmitry Stogov fc6d3652f9 Fixed bug #41635 (SoapServer and zlib.output_compression with FastCGI result in major slowdown) 2007-11-01 14:11:47 +00:00
Dmitry Stogov 375bf36e42 Fixed bug #42773 (WSDL error causes HTTP 500 Response) 2007-11-01 14:10:19 +00:00
Robert Nicholson 997925db9f delete .project file 2007-11-01 10:34:38 +00:00
Robert Nicholson fa0e4863a2 update min_error and max_error testcases to take into account bug fix for bug#43125 2007-11-01 08:42:32 +00:00
Dmitry Stogov 2e869a00ac Added CGI SAPI -T option, to measure execution time of script repeated several times. 2007-10-31 18:24:42 +00:00
Jani Taskinen 171184b64d MFH: fix typo 2007-10-31 13:39:14 +00:00
Jani Taskinen bdbcc4b6d3 MFH: - Fixed Bug #43137 (rmdir() and rename() do not clear statcache) 2007-10-31 13:23:07 +00:00
Ilia Alshanetsky f4cd343b6c MFB: Fixed bug #43139 PDO ignores ATTR_DEFAULT_FETCH_MODE in some cases with
fetchAll()
2007-10-31 12:58:24 +00:00
Ilia Alshanetsky e5db0d8077 MFB: Test not relavent for sqlite that uses built-in bound syntax 2007-10-30 23:03:54 +00:00
Ilia Alshanetsky 68893b0cb4 MFB: Fixed bug #43130 (Bound parameters cannot have - in their name) 2007-10-29 22:37:25 +00:00
Jani Taskinen caa0de9205 MFH 2007-10-29 09:05:55 +00:00
Ilia Alshanetsky 39f1f2fcd3 MFB: Fixed bug #42976 (Crash when constructor for newInstance() or
newInstanceArgs() fails)
2007-10-28 13:47:14 +00:00
Raghubansh Kumar b89ab4a4d5 New testcases for shuffle() function 2007-10-27 12:29:25 +00:00
Raghubansh Kumar 6d9165b332 New testcases for array_intersect() function 2007-10-27 12:16:57 +00:00
Stanislav Malyshev b196fbece9 add attribution 2007-10-26 17:45:26 +00:00
Robert Nicholson 85122b5ae6 Remove unneeded INI sections 2007-10-26 16:08:34 +00:00
Raghubansh Kumar 8ba0f7f275 more testcases for array_unshift() function 2007-10-26 11:47:50 +00:00
Robert Nicholson 8ae4fa2810 new testcases for array_splice 2007-10-26 11:07:31 +00:00
Robert Nicholson b6900cb61d new testcases for max and min 2007-10-26 11:02:04 +00:00
Jani Taskinen 9a6012ff21 fix news 2007-10-26 08:13:15 +00:00
Antony Dovgal ef0652c7f3 MFH 2007-10-25 13:01:16 +00:00
Antony Dovgal 54e44a4707 MFH 2007-10-25 11:54:23 +00:00
Dmitry Stogov 602f26dc08 Added ability to control memory consumption between request using ZEND_MM_COMPACT environment variable 2007-10-25 07:30:29 +00:00
Ilia Alshanetsky 68f328560d MFB: Fixed bug #43099 (XMLWriter::endElement() does not check # of params) 2007-10-24 22:50:19 +00:00
Dmitry Stogov 1155200b02 Fixed realpath cache for existent file with CWD_FILEPATH flag on win32 2007-10-23 05:57:35 +00:00
Mattias Bengtsson a04472df2e - Be paranoid and dont allow multiplication with zero 2007-10-23 01:58:08 +00:00
Ilia Alshanetsky 521048a9ae MFB: Fixed bug #4294 (Move *timeout initialization from RINIT to connect
time)
2007-10-22 22:43:44 +00:00
Raghubansh Kumar 4846f7e349 more testcase for array_filter() function 2007-10-22 11:13:51 +00:00
Andrey Hristov 7c21b37a2f Make it compile with libmysql 3.23 2007-10-22 10:35:33 +00:00
Dmitry Stogov f8e5189286 forgotten description 2007-10-22 07:52:03 +00:00
Dmitry Stogov 9926736605 Fixed move_uploaded_file() to always set file permissions of resulting file according to UMASK (Andrew Sitnikov) 2007-10-22 07:37:20 +00:00
Ilia Alshanetsky 0139100668 MFB: Fixed bug #42944 (test failing due to expectation that /etc/passwd has
0644 permissions).
2007-10-21 15:41:45 +00:00
Raghubansh Kumar 083c7f05ca New tetscases for array_rand() function 2007-10-19 18:39:52 +00:00
Raghubansh Kumar ff9f6404dd New testcases for array_fill() function 2007-10-19 18:34:16 +00:00
Raghubansh Kumar ee0c90556e New testcases for array_filter() function 2007-10-19 18:18:17 +00:00
Raghubansh Kumar 5516f0a247 New testcases for array_unshift() function 2007-10-19 09:12:22 +00:00
Robert Thompson 586ceb9d40 formatting 2007-10-19 05:35:05 +00:00
Robert Thompson 08433295c4 News for getcwd() failure fix. 2007-10-19 01:22:24 +00:00
Ilia Alshanetsky c6ec417654 Back to dev 2007-10-18 23:09:54 +00:00
Ilia Alshanetsky 63f4dc835e 5.2.5RC1 2007-10-18 22:59:43 +00:00
Scott MacVicar 3e47b3cb7b MFB53: Fixed bug #43020 (Warning message is missing with shuffle() and more than one argument) 2007-10-18 14:39:08 +00:00
Dmitry Stogov 168f127abb Fixed bug #42722 (display_errors setting ignored for E_PARSE and HTTP 500 page) 2007-10-18 13:11:30 +00:00
Marcus Boerger 2e2a566c15 - BFN 2007-10-18 05:32:50 +00:00
Marcus Boerger 9f6936fc0c - MF53 Fix for #41692, #42703
# Now in correct branch with fixed checkout and so on
2007-10-18 05:26:55 +00:00
Marcus Boerger efc78b635b - Fix test expectation 2007-10-18 04:51:53 +00:00
Marcus Boerger 017fa36d3f - MFB #42654, #42704 2007-10-18 04:49:55 +00:00
Dmitry Stogov c43fe1c6cf Fixed possible crash because of uninitialized value (Zdash Urf) 2007-10-17 12:08:46 +00:00
Dmitry Stogov 82264b0b45 Fixed bug #42637 (SoapFault : Only http and https are allowed) 2007-10-17 11:17:46 +00:00
Antony Dovgal 7a9cd0a4fd MFH 2007-10-17 08:19:50 +00:00
Antony Dovgal 36e950eb5f avoid double free and use zval_dtor() where neccessary 2007-10-16 13:20:29 +00:00
Andrey Hristov c8f8766461 MFB5_3 : Shadowing of params bring undefined results. 2007-10-16 13:00:32 +00:00
Raghubansh Kumar 7a97b74637 New testcases for array_flip() function 2007-10-15 06:29:37 +00:00
Raghubansh Kumar 92642d0189 New testcases for array_reverse() function 2007-10-15 06:09:27 +00:00
Hannes Magnusson a029117eb5 MFH: fix typo and remove dots in error message 2007-10-13 11:35:35 +00:00
Ilia Alshanetsky accfde57ca MFB: Fixed bug #42917 (PDO::FETCH_KEY_PAIR doesn't work with setFetchMode) 2007-10-11 20:56:22 +00:00
Derick Rethans 94a3bb327e - Updated to version 2007.8 2007-10-11 18:54:37 +00:00
Raghubansh Kumar d7e424acbe fix test (temp. file name) 2007-10-11 11:53:16 +00:00
Jani Taskinen 979e8b5896 MFB53 2007-10-11 09:33:53 +00:00
Jani Taskinen 3c9eb61d04 MF53 2007-10-11 08:28:02 +00:00
Robert Thompson 98505945f2 Fix for bug 41899, safe mode and relative paths with Solaris's broken getcwd(). 2007-10-10 23:54:39 +00:00
Jani Taskinen 6f128d2dd7 - Generated with more recent re2c version 2007-10-10 09:28:51 +00:00
Ilia Alshanetsky 00f18d764a MFB: Fixed bug #42869 (automatic session id insertion adds sessions id to
non-local forms)
2007-10-10 00:35:52 +00:00
Scott MacVicar 6928bdc6bf MFH: Add constant to allow setting of character set with mysqli_options prior to connection. 2007-10-09 16:56:38 +00:00
Raghubansh Kumar 2a078d14c9 New testcases for strip_tags() function 2007-10-09 12:47:00 +00:00
Raghubansh Kumar 1993c9a384 fix test 2007-10-09 12:19:27 +00:00
Raghubansh Kumar ecf81d1529 fix tests 2007-10-09 12:12:19 +00:00
Raghubansh Kumar bf428e90a5 fix tests 2007-10-09 10:56:45 +00:00
Scott MacVicar 7deeb54fe1 MFH: Fix expand_filepath when including relative files, ideally you should test your code... 2007-10-09 10:06:34 +00:00
Jani Taskinen 6d078cea10 MFH: ws + cs 2007-10-09 08:40:47 +00:00
Raghubansh Kumar fdf4c22696 fix tests 2007-10-09 06:18:47 +00:00
Raghubansh Kumar be49c27d17 more tests for fseek(), ftell() & rewind() for win32 2007-10-09 04:55:14 +00:00
Raghubansh Kumar 0c9f9f8ef9 fix tests 2007-10-09 04:07:24 +00:00
Andrey Hristov 8cc2f5d576 News entry 2007-10-08 18:27:18 +00:00
Andrey Hristov 3f6b49a340 Fix for bug #42890 Constant "LIST" defined by mysqlclient and c-client 2007-10-08 18:25:52 +00:00
Raghubansh Kumar 393a686507 fix test 2007-10-08 16:02:55 +00:00
Raghubansh Kumar b8e0f7e78a fix test 2007-10-08 15:44:26 +00:00
Raghubansh Kumar 40098256fb fix tests 2007-10-08 15:36:01 +00:00
Raghubansh Kumar 50a4e50d03 New testcases for strtr() function 2007-10-08 15:19:56 +00:00
Raghubansh Kumar 99d99a0ba0 New testcases for get_html_translation_table() function 2007-10-08 15:19:27 +00:00
Raghubansh Kumar f075e78ac1 fix test 2007-10-08 06:19:11 +00:00
Robert Thompson 477e2b315b Fix for bug 41822 and 41899. expand_filepath() will now return a relative path under the specific situation where getcwd() returns NULL and the file is
still readable.  As far as I have been able to tell, this fix only applies to the Solaris OS where files in directories with (--x) cannot getcwd().
2007-10-08 02:49:26 +00:00
Antony Dovgal 98599a1c23 MFH: fix ws & folding 2007-10-06 21:35:53 +00:00
Raghubansh Kumar ea8fc31bf3 New testcases for setlocale() function 2007-10-05 19:30:51 +00:00
Raghubansh Kumar b84873aa96 New testcases for nl2br() function 2007-10-05 18:44:35 +00:00
Raghubansh Kumar 7cf81e0fe0 New testcases for strrpos() function 2007-10-05 18:31:51 +00:00
Raghubansh Kumar 620b1c63d0 New testcases for str_split() function 2007-10-05 18:16:34 +00:00
Raghubansh Kumar 2a05dfadb2 New testcases for vsprintf() function 2007-10-05 18:07:28 +00:00
Jani Taskinen 5a8c9a7d1c MFH: fix test 2007-10-05 14:57:51 +00:00
Nuno Lopes e1a402b6da allow lcov 1.6 2007-10-05 14:51:36 +00:00
Ilia Alshanetsky f9137cddf6 BFN 2007-10-04 23:26:04 +00:00
Ilia Alshanetsky 07710a5fb9 MFB: Fixed bug #42817 (clone() on a non-object does not result in a fatal
error)
2007-10-04 23:23:43 +00:00
Jani Taskinen 1be447eb95 MFH: Removed ending dots from error messages 2007-10-04 13:31:11 +00:00
Ilia Alshanetsky 91e99495af MFB: Fixed bug #42783 (pg_insert() does not accept an empty list for
insertion)
2007-10-03 23:31:58 +00:00
Michael Wallner b260f03830 MFH: fix CURLOPT_TIMEOUT_MS support 2007-10-03 20:34:48 +00:00
Dmitry Stogov 0cd4039af2 Fixed bug #42818 ($foo = clone(array()); leaks memory) 2007-10-03 09:47:25 +00:00
Dmitry Stogov c7047381f5 Fixed bug #42772 (Storing $this in a static var fails while handling a cast to string) 2007-10-03 08:02:19 +00:00
Stanislav Malyshev f422acca26 add html* utf fix 2007-10-03 05:03:12 +00:00
Stanislav Malyshev ecc9d28fed add test with invalid sequences 2007-10-03 04:58:41 +00:00
Stanislav Malyshev 5e82a38f0a do not accept partial multibyte sequences in html* functions 2007-10-03 04:53:05 +00:00
Antony Dovgal 63b3528cb1 improved recursion detection in array_walk()
fixes #42752, though the leaks are still there
2007-10-02 10:04:13 +00:00
Ilia Alshanetsky 139996e1ac MFB: Added test for bug #42785 2007-10-01 15:33:21 +00:00
Ilia Alshanetsky f89aae49a7 MFB: Fixed bug #42785 (json_encode() formats doubles according to locale
rather then following standard syntax).
2007-10-01 15:23:15 +00:00
Ilia Alshanetsky 94eb3ed91b MFB: Fixed typo in previous patch 2007-10-01 15:00:15 +00:00
Ilia Alshanetsky 191bf235ed MFB: Refactor code to make fixes for coverity issues #385 and #386 a bit
more obvious
2007-10-01 14:53:01 +00:00
Antony Dovgal 7d889d818a fix test 2007-10-01 10:41:36 +00:00
Antony Dovgal d70e63458f fix tests 2007-10-01 10:25:50 +00:00
Antony Dovgal 23d9af29d7 these dots exist since PHP3
even though Jani removed them in 5_3, I can't see how they can cause any BUGS
2007-10-01 10:22:43 +00:00
Pierre Joye 73219c9cb0 - add notice about glob regression (Lukas) 2007-10-01 08:14:03 +00:00
Raghubansh Kumar e538e493d7 smaller tests already exist 2007-09-29 17:21:41 +00:00
Raghubansh Kumar 2770262bad New testcases for sprintf() function 2007-09-29 14:13:53 +00:00
Raghubansh Kumar 69158b5e18 New testcases for chunk_split() function 2007-09-29 12:55:34 +00:00
Raghubansh Kumar f0435592a0 New testcases for stripos() function 2007-09-29 09:19:43 +00:00
Raghubansh Kumar 6eaef0712e New testcases for strrchr() function 2007-09-29 09:18:07 +00:00
Raghubansh Kumar 64f7dafa74 New testcases for join() function 2007-09-29 09:10:18 +00:00
Raghubansh Kumar 16242cd2df New testcases for htmlspecialchars_decode() function 2007-09-29 09:00:48 +00:00
Johannes Schlüter 11d5f9c7c4 - MFH: Fix type in example 2007-09-28 22:04:47 +00:00
Ilia Alshanetsky 3447b26334 MFB: Fixed coverity issue #470 Unitialized integer value used inside
zend_ini_boolean_displayer_cb
2007-09-27 17:27:15 +00:00
Jani Taskinen 12760053c1 missing folding tag 2007-09-27 16:42:11 +00:00
Jani Taskinen 52095f58a5 MFH: use Z_STR* macros 2007-09-27 16:29:27 +00:00
Jani Taskinen b024bedbdb MFH: ws 2007-09-27 16:00:20 +00:00
Jani Taskinen 5cb0b7609a MFH: ws + cs (to keep in sync with HEAD/PHP_5_3 only!) 2007-09-27 15:54:49 +00:00
Jani Taskinen 2c841333ee ws + cs fixes 2007-09-27 13:15:09 +00:00
Antony Dovgal 474f6eef5e MFH: fix coverity issue #412 2007-09-27 09:19:06 +00:00
Antony Dovgal eb2659c7b2 MFH: fix coverity issue #411 2007-09-27 09:15:20 +00:00
6712 changed files with 1990 additions and 1399224 deletions

No files matched your search

+1 -1
View File
@@ -159,7 +159,7 @@ STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: oci8
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net>, Antony Dovgal <tony2001@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
+15 -37
View File
@@ -11,7 +11,7 @@ all: $(all_targets)
@echo "Don't forget to run 'make test'."
@echo
build-modules: $(PHP_MODULES)
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
@@ -73,6 +73,11 @@ PHP_TEST_SHARED_EXTENSIONS = ` \
for i in $(PHP_MODULES)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
done; \
fi; \
if test "x$(PHP_ZEND_EX)" != "x"; then \
for i in $(PHP_ZEND_EX)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
done; \
fi`
test: all
@@ -80,50 +85,23 @@ test: all
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -U -d extension_dir=modules/ $(PHP_TEST_SHARED_EXTENSIONS) tests/; \
$(PHP_EXECUTABLE) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -d extension_dir=modules/ $(PHP_TEST_SHARED_EXTENSIONS) tests/; \
elif test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
if test "$$INI_FILE"; then \
$(EGREP) -v '^extension[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
$(EGREP) -v '^(zend_)?extension(_debug)?(_ts)?[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
INI_SCANNED_PATH=`$(top_builddir)/$(SAPI_CLI_PATH) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
if test "$$INI_SCANNED_PATH"; then \
INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \
$(EGREP) -h -v '^(zend_)?extension(_debug)?(_ts)?[\t\ ]*=' "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -U -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
utest: all
-@if test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
if test "$$INI_FILE"; then \
$(EGREP) -v '^extension[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -u -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
ntest: all
-@if test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
if test "$$INI_FILE"; then \
$(EGREP) -v '^extension[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -N -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
$(top_builddir)/$(SAPI_CLI_PATH) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
+951 -427
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -70,7 +70,7 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
zend_class_entry my_ce;
zend_class_entry *my_ce;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
&obj, my_ce, &d) == FAILURE) {
return;
+14 -14
View File
@@ -1,11 +1,11 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to run-tests2.php.
specific to server-tests.php.
run-tests2.php is backward compatible with tests developed for
the original run-tests.php script. run-tests2 is *not* used by
'make test'. run-tests2 was developed to provide support for
server-tests.php is backward compatible with tests developed for
the original run-tests.php script. server-tests is *not* used by
'make test'. server-tests was developed to provide support for
testing PHP under it's primary environment, HTTP, and can run the
PHP tests under any of the SAPI modules that are direct executables,
or are accessable via HTTP.
@@ -13,12 +13,12 @@ or are accessable via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php run-tests2.php -h' to get all the possible options.
You can run 'php server-tests.php -h' to get all the possible options.
* Configuration file:
the -c argument will allow you to use a configuration file. This is
handy if you are testing multiple environments and need various options
depending on the environment.
see run-tests-config.php for details.
see server-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
@@ -39,23 +39,23 @@ make testing work.
Some (but not all!) examples of usage:
1. run tests from the php source directory
php run-tests2.php -p /path/to/php-cli
php server-tests.php -p /path/to/php-cli
2. run tests using cgi emulation
php run-tests2.php -p /path/to/php-cgi
php server-tests.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php run-tests2.php -w -u http://localhost/test -m /path/to/htdocs/test
php server-tests.php -w -u http://localhost/test -m /path/to/htdocs/test
4. run tests over http, php sources have been aliased in web server
php run-tests2.php -w -u http://localhost/test
php server-tests.php -w -u http://localhost/test
5. run tests using configuration file
php run-tests2.php -c /path/to/run-tests-config.php
php server-tests.php -c /path/to/server-tests-config.php
6. run tests using configuration file, but overriding some settings:
(config file must be first)
php run-tests2.php -c /path/to/run-tests-config.php -w -t 3 -d /path/to/testdir
php server-tests.php -c /path/to/server-tests-config.php -w -t 3 -d /path/to/testdir
NOTE: configuration as described in README.TESTING still works.
@@ -63,7 +63,7 @@ NOTE: configuration as described in README.TESTING still works.
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under run-tests2.
under server-tests.
--POST--
This is not a new section, but not multipart posts are supported for testing
@@ -97,7 +97,7 @@ include:
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivelant of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all run-tests2 configuration vars
$this->conf all server-tests configuration vars
$this->env all environment variables that will get passed to the test
+15
View File
@@ -172,6 +172,21 @@ Items from the NEWS file explained
from your error handler in order to populate $php_errormsg. This allows
you to fine-grain the levels of the messages stored.
==============================
Regressions introduced/fixed
==============================
- In version 5.2.4 a security fix caused a regression for patterns of
the form "/foo/*/bar/*". Since version 5.2.5 instead of raising a warning the
glob() function will return false when openbase_dir restrictions are violated.
#See http://bugs.php.net/bug.php?id=41655
The warning that used to be raised looked like something as follows:
Warning: glob() [function.glob]: Unable to access /foo/*/bar/* in /foo.php on line xxx
#See http://cvs.php.net/viewvc.cgi/php-src/ext/standard/dir.c?r1=1.169&r2=1.170
The patch can safely be applied to PHP 5.2.4 as well.
==============================
Backwards incompatible changes
-26
View File
@@ -1,26 +0,0 @@
Copyright (c) 1999-2006, Andi Gutmans, Sascha Schumann, Zeev Suraski.
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
- Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
- Neither name of the copyright holders nor the names of their contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-6
View File
@@ -1,6 +0,0 @@
## process this file with automake to produce Makefile.am
AUTOMAKE_OPTIONS=foreign
noinst_LTLIBRARIES=libtsrm.la
libtsrm_la_SOURCES = TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c
depend:
-2
View File
@@ -1,2 +0,0 @@
- Improve the lock in ts_resource_ex() in order to cover less code.
This can probably be done by more careful hash table access
-764
View File
@@ -1,764 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2007, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#include "TSRM.h"
#ifdef ZTS
#include <stdio.h>
#if HAVE_STDARG_H
#include <stdarg.h>
#endif
typedef struct _tsrm_tls_entry tsrm_tls_entry;
struct _tsrm_tls_entry {
void **storage;
int count;
THREAD_T thread_id;
tsrm_tls_entry *next;
};
typedef struct {
size_t size;
ts_allocate_ctor ctor;
ts_allocate_dtor dtor;
int done;
} tsrm_resource_type;
/* The memory manager table */
static tsrm_tls_entry **tsrm_tls_table=NULL;
static int tsrm_tls_table_size;
static ts_rsrc_id id_count;
/* The resource sizes table */
static tsrm_resource_type *resource_types_table=NULL;
static int resource_types_table_size;
static MUTEX_T tsmm_mutex; /* thread-safe memory manager mutex */
/* New thread handlers */
static tsrm_thread_begin_func_t tsrm_new_thread_begin_handler;
static tsrm_thread_end_func_t tsrm_new_thread_end_handler;
/* Debug support */
int tsrm_error(int level, const char *format, ...);
/* Read a resource from a thread's resource storage */
static int tsrm_error_level;
static FILE *tsrm_error_file;
#if TSRM_DEBUG
#define TSRM_ERROR(args) tsrm_error args
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
{ \
int unshuffled_offset = TSRM_UNSHUFFLE_RSRC_ID(offset); \
\
if (offset==0) { \
return &array; \
} else if ((unshuffled_offset)>=0 && (unshuffled_offset)<(range)) { \
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Successfully fetched resource id %d for thread id %ld - 0x%0.8X", \
unshuffled_offset, (long) thread_resources->thread_id, array[unshuffled_offset])); \
return array[unshuffled_offset]; \
} else { \
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Resource id %d is out of range (%d..%d)", \
unshuffled_offset, TSRM_SHUFFLE_RSRC_ID(0), TSRM_SHUFFLE_RSRC_ID(thread_resources->count-1))); \
return NULL; \
} \
}
#else
#define TSRM_ERROR(args)
#define TSRM_SAFE_RETURN_RSRC(array, offset, range) \
if (offset==0) { \
return &array; \
} else { \
return array[TSRM_UNSHUFFLE_RSRC_ID(offset)]; \
}
#endif
#if defined(PTHREADS)
/* Thread local storage */
static pthread_key_t tls_key;
# define tsrm_tls_set(what) pthread_setspecific(tls_key, (void*)(what))
# define tsrm_tls_get() pthread_getspecific(tls_key)
#elif defined(TSRM_ST)
static int tls_key;
# define tsrm_tls_set(what) st_thread_setspecific(tls_key, (void*)(what))
# define tsrm_tls_get() st_thread_getspecific(tls_key)
#elif defined(TSRM_WIN32)
static DWORD tls_key;
# define tsrm_tls_set(what) TlsSetValue(tls_key, (void*)(what))
# define tsrm_tls_get() TlsGetValue(tls_key)
#elif defined(BETHREADS)
static int32 tls_key;
# define tsrm_tls_set(what) tls_set(tls_key, (void*)(what))
# define tsrm_tls_get() (tsrm_tls_entry*)tls_get(tls_key)
#else
# define tsrm_tls_set(what)
# define tsrm_tls_get() NULL
# warning tsrm_set_interpreter_context is probably broken on this platform
#endif
/* Startup TSRM (call once for the entire process) */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename)
{
#if defined(GNUPTH)
pth_init();
#elif defined(PTHREADS)
pthread_key_create( &tls_key, 0 );
#elif defined(TSRM_ST)
st_init();
st_key_create(&tls_key, 0);
#elif defined(TSRM_WIN32)
tls_key = TlsAlloc();
#elif defined(BETHREADS)
tls_key = tls_allocate();
#endif
tsrm_error_file = stderr;
tsrm_error_set(debug_level, debug_filename);
tsrm_tls_table_size = expected_threads;
tsrm_tls_table = (tsrm_tls_entry **) calloc(tsrm_tls_table_size, sizeof(tsrm_tls_entry *));
if (!tsrm_tls_table) {
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate TLS table"));
return 0;
}
id_count=0;
resource_types_table_size = expected_resources;
resource_types_table = (tsrm_resource_type *) calloc(resource_types_table_size, sizeof(tsrm_resource_type));
if (!resource_types_table) {
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate resource types table"));
free(tsrm_tls_table);
tsrm_tls_table = NULL;
return 0;
}
tsmm_mutex = tsrm_mutex_alloc();
tsrm_new_thread_begin_handler = tsrm_new_thread_end_handler = NULL;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Started up TSRM, %d expected threads, %d expected resources", expected_threads, expected_resources));
return 1;
}
/* Shutdown TSRM (call once for the entire process) */
TSRM_API void tsrm_shutdown(void)
{
int i;
if (tsrm_tls_table) {
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i], *next_p;
while (p) {
int j;
next_p = p->next;
for (j=0; j<p->count; j++) {
if (p->storage[j]) {
if (resource_types_table && !resource_types_table[j].done && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
}
free(p->storage[j]);
}
}
free(p->storage);
free(p);
p = next_p;
}
}
free(tsrm_tls_table);
tsrm_tls_table = NULL;
}
if (resource_types_table) {
free(resource_types_table);
resource_types_table=NULL;
}
tsrm_mutex_free(tsmm_mutex);
tsmm_mutex = NULL;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Shutdown TSRM"));
if (tsrm_error_file!=stderr) {
fclose(tsrm_error_file);
}
#if defined(GNUPTH)
pth_kill();
#elif defined(PTHREADS)
pthread_setspecific(tls_key, 0);
pthread_key_delete(tls_key);
#elif defined(TSRM_WIN32)
TlsFree(tls_key);
#endif
}
/* allocates a new thread-safe-resource id */
TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor)
{
int i;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Obtaining a new resource id, %d bytes", size));
tsrm_mutex_lock(tsmm_mutex);
/* obtain a resource id */
*rsrc_id = TSRM_SHUFFLE_RSRC_ID(id_count++);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Obtained resource id %d", *rsrc_id));
/* store the new resource type in the resource sizes table */
if (resource_types_table_size < id_count) {
resource_types_table = (tsrm_resource_type *) realloc(resource_types_table, sizeof(tsrm_resource_type)*id_count);
if (!resource_types_table) {
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_ERROR, "Unable to allocate storage for resource"));
*rsrc_id = 0;
return 0;
}
resource_types_table_size = id_count;
}
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].size = size;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].ctor = ctor;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].dtor = dtor;
resource_types_table[TSRM_UNSHUFFLE_RSRC_ID(*rsrc_id)].done = 0;
/* enlarge the arrays for the already active threads */
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i];
while (p) {
if (p->count < id_count) {
int j;
p->storage = (void *) realloc(p->storage, sizeof(void *)*id_count);
for (j=p->count; j<id_count; j++) {
p->storage[j] = (void *) malloc(resource_types_table[j].size);
if (resource_types_table[j].ctor) {
resource_types_table[j].ctor(p->storage[j], &p->storage);
}
}
p->count = id_count;
}
p = p->next;
}
}
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Successfully allocated new resource id %d", *rsrc_id));
return *rsrc_id;
}
static void allocate_new_resource(tsrm_tls_entry **thread_resources_ptr, THREAD_T thread_id)
{
int i;
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Creating data structures for thread %x", thread_id));
(*thread_resources_ptr) = (tsrm_tls_entry *) malloc(sizeof(tsrm_tls_entry));
(*thread_resources_ptr)->storage = (void **) malloc(sizeof(void *)*id_count);
(*thread_resources_ptr)->count = id_count;
(*thread_resources_ptr)->thread_id = thread_id;
(*thread_resources_ptr)->next = NULL;
/* Set thread local storage to this new thread resources structure */
tsrm_tls_set(*thread_resources_ptr);
if (tsrm_new_thread_begin_handler) {
tsrm_new_thread_begin_handler(thread_id, &((*thread_resources_ptr)->storage));
}
for (i=0; i<id_count; i++) {
if (resource_types_table[i].done) {
(*thread_resources_ptr)->storage[i] = NULL;
} else
{
(*thread_resources_ptr)->storage[i] = (void *) malloc(resource_types_table[i].size);
if (resource_types_table[i].ctor) {
resource_types_table[i].ctor((*thread_resources_ptr)->storage[i], &(*thread_resources_ptr)->storage);
}
}
}
if (tsrm_new_thread_end_handler) {
tsrm_new_thread_end_handler(thread_id, &((*thread_resources_ptr)->storage));
}
tsrm_mutex_unlock(tsmm_mutex);
}
/* fetches the requested resource for the current thread */
TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id)
{
THREAD_T thread_id;
int hash_value;
tsrm_tls_entry *thread_resources;
#ifdef NETWARE
/* The below if loop is added for NetWare to fix an abend while unloading PHP
* when an Apache unload command is issued on the system console.
* While exiting from PHP, at the end for some reason, this function is called
* with tsrm_tls_table = NULL. When this happened, the server abends when
* tsrm_tls_table is accessed since it is NULL.
*/
if(tsrm_tls_table) {
#endif
if (!th_id) {
/* Fast path for looking up the resources for the current
* thread. Its used by just about every call to
* ts_resource_ex(). This avoids the need for a mutex lock
* and our hashtable lookup.
*/
thread_resources = tsrm_tls_get();
if (thread_resources) {
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for current thread %d", id, (long) thread_resources->thread_id));
/* Read a specific resource from the thread's resources.
* This is called outside of a mutex, so have to be aware about external
* changes to the structure as we read it.
*/
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id, thread_resources->count);
}
thread_id = tsrm_thread_id();
} else {
thread_id = *th_id;
}
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Fetching resource id %d for thread %ld", id, (long) thread_id));
tsrm_mutex_lock(tsmm_mutex);
hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
thread_resources = tsrm_tls_table[hash_value];
if (!thread_resources) {
allocate_new_resource(&tsrm_tls_table[hash_value], thread_id);
return ts_resource_ex(id, &thread_id);
} else {
do {
if (thread_resources->thread_id == thread_id) {
break;
}
if (thread_resources->next) {
thread_resources = thread_resources->next;
} else {
allocate_new_resource(&thread_resources->next, thread_id);
return ts_resource_ex(id, &thread_id);
/*
* thread_resources = thread_resources->next;
* break;
*/
}
} while (thread_resources);
}
tsrm_mutex_unlock(tsmm_mutex);
/* Read a specific resource from the thread's resources.
* This is called outside of a mutex, so have to be aware about external
* changes to the structure as we read it.
*/
TSRM_SAFE_RETURN_RSRC(thread_resources->storage, id, thread_resources->count);
#ifdef NETWARE
} /* if(tsrm_tls_table) */
#endif
}
/* frees an interpreter context. You are responsible for making sure that
* it is not linked into the TSRM hash, and not marked as the current interpreter */
void tsrm_free_interpreter_context(void *context)
{
tsrm_tls_entry *next, *thread_resources = (tsrm_tls_entry*)context;
int i;
while (thread_resources) {
next = thread_resources->next;
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
}
}
for (i=0; i<thread_resources->count; i++) {
free(thread_resources->storage[i]);
}
free(thread_resources->storage);
free(thread_resources);
thread_resources = next;
}
}
void *tsrm_set_interpreter_context(void *new_ctx)
{
tsrm_tls_entry *current;
current = tsrm_tls_get();
/* TODO: unlink current from the global linked list, and replace it
* it with the new context, protected by mutex where/if appropriate */
/* Set thread local storage to this new thread resources structure */
tsrm_tls_set(new_ctx);
/* return old context, so caller can restore it when they're done */
return current;
}
/* allocates a new interpreter context */
void *tsrm_new_interpreter_context(void)
{
tsrm_tls_entry *new_ctx, *current;
THREAD_T thread_id;
thread_id = tsrm_thread_id();
tsrm_mutex_lock(tsmm_mutex);
current = tsrm_tls_get();
allocate_new_resource(&new_ctx, thread_id);
/* switch back to the context that was in use prior to our creation
* of the new one */
return tsrm_set_interpreter_context(current);
}
/* frees all resources allocated for the current thread */
void ts_free_thread(void)
{
tsrm_tls_entry *thread_resources;
int i;
THREAD_T thread_id = tsrm_thread_id();
int hash_value;
tsrm_tls_entry *last=NULL;
tsrm_mutex_lock(tsmm_mutex);
hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
thread_resources = tsrm_tls_table[hash_value];
while (thread_resources) {
if (thread_resources->thread_id == thread_id) {
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
}
}
for (i=0; i<thread_resources->count; i++) {
free(thread_resources->storage[i]);
}
free(thread_resources->storage);
if (last) {
last->next = thread_resources->next;
} else {
tsrm_tls_table[hash_value] = thread_resources->next;
}
tsrm_tls_set(0);
free(thread_resources);
break;
}
if (thread_resources->next) {
last = thread_resources;
}
thread_resources = thread_resources->next;
}
tsrm_mutex_unlock(tsmm_mutex);
}
/* frees all resources allocated for all threads except current */
void ts_free_worker_threads(void)
{
tsrm_tls_entry *thread_resources;
int i;
THREAD_T thread_id = tsrm_thread_id();
int hash_value;
tsrm_tls_entry *last=NULL;
tsrm_mutex_lock(tsmm_mutex);
hash_value = THREAD_HASH_OF(thread_id, tsrm_tls_table_size);
thread_resources = tsrm_tls_table[hash_value];
while (thread_resources) {
if (thread_resources->thread_id != thread_id) {
for (i=0; i<thread_resources->count; i++) {
if (resource_types_table[i].dtor) {
resource_types_table[i].dtor(thread_resources->storage[i], &thread_resources->storage);
}
}
for (i=0; i<thread_resources->count; i++) {
free(thread_resources->storage[i]);
}
free(thread_resources->storage);
if (last) {
last->next = thread_resources->next;
} else {
tsrm_tls_table[hash_value] = thread_resources->next;
}
free(thread_resources);
if (last) {
thread_resources = last->next;
} else {
thread_resources = tsrm_tls_table[hash_value];
}
} else {
if (thread_resources->next) {
last = thread_resources;
}
thread_resources = thread_resources->next;
}
}
tsrm_mutex_unlock(tsmm_mutex);
}
/* deallocates all occurrences of a given id */
void ts_free_id(ts_rsrc_id id)
{
int i;
int j = TSRM_UNSHUFFLE_RSRC_ID(id);
tsrm_mutex_lock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Freeing resource id %d", id));
if (tsrm_tls_table) {
for (i=0; i<tsrm_tls_table_size; i++) {
tsrm_tls_entry *p = tsrm_tls_table[i];
while (p) {
if (p->count > j && p->storage[j]) {
if (resource_types_table && resource_types_table[j].dtor) {
resource_types_table[j].dtor(p->storage[j], &p->storage);
}
free(p->storage[j]);
p->storage[j] = NULL;
}
p = p->next;
}
}
}
resource_types_table[j].done = 1;
tsrm_mutex_unlock(tsmm_mutex);
TSRM_ERROR((TSRM_ERROR_LEVEL_CORE, "Successfully freed resource id %d", id));
}
/*
* Utility Functions
*/
/* Obtain the current thread id */
TSRM_API THREAD_T tsrm_thread_id(void)
{
#ifdef TSRM_WIN32
return GetCurrentThreadId();
#elif defined(GNUPTH)
return pth_self();
#elif defined(PTHREADS)
return pthread_self();
#elif defined(NSAPI)
return systhread_current();
#elif defined(PI3WEB)
return PIThread_getCurrent();
#elif defined(TSRM_ST)
return st_thread_self();
#elif defined(BETHREADS)
return find_thread(NULL);
#endif
}
/* Allocate a mutex */
TSRM_API MUTEX_T tsrm_mutex_alloc(void)
{
MUTEX_T mutexp;
#ifdef TSRM_WIN32
mutexp = malloc(sizeof(CRITICAL_SECTION));
InitializeCriticalSection(mutexp);
#elif defined(GNUPTH)
mutexp = (MUTEX_T) malloc(sizeof(*mutexp));
pth_mutex_init(mutexp);
#elif defined(PTHREADS)
mutexp = (pthread_mutex_t *)malloc(sizeof(pthread_mutex_t));
pthread_mutex_init(mutexp,NULL);
#elif defined(NSAPI)
mutexp = crit_init();
#elif defined(PI3WEB)
mutexp = PIPlatform_allocLocalMutex();
#elif defined(TSRM_ST)
mutexp = st_mutex_new();
#elif defined(BETHREADS)
mutexp = (beos_ben*)malloc(sizeof(beos_ben));
mutexp->ben = 0;
mutexp->sem = create_sem(1, "PHP sempahore");
#endif
#ifdef THR_DEBUG
printf("Mutex created thread: %d\n",mythreadid());
#endif
return( mutexp );
}
/* Free a mutex */
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
{
if (mutexp) {
#ifdef TSRM_WIN32
DeleteCriticalSection(mutexp);
free(mutexp);
#elif defined(GNUPTH)
free(mutexp);
#elif defined(PTHREADS)
pthread_mutex_destroy(mutexp);
free(mutexp);
#elif defined(NSAPI)
crit_terminate(mutexp);
#elif defined(PI3WEB)
PISync_delete(mutexp);
#elif defined(TSRM_ST)
st_mutex_destroy(mutexp);
#elif defined(BETHREADS)
delete_sem(mutexp->sem);
free(mutexp);
#endif
}
#ifdef THR_DEBUG
printf("Mutex freed thread: %d\n",mythreadid());
#endif
}
/* Lock a mutex */
TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
{
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex locked thread: %ld", tsrm_thread_id()));
#ifdef TSRM_WIN32
EnterCriticalSection(mutexp);
return 1;
#elif defined(GNUPTH)
return pth_mutex_acquire(mutexp, 0, NULL);
#elif defined(PTHREADS)
return pthread_mutex_lock(mutexp);
#elif defined(NSAPI)
return crit_enter(mutexp);
#elif defined(PI3WEB)
return PISync_lock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_lock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, 1) != 0)
return acquire_sem(mutexp->sem);
return 0;
#endif
}
/* Unlock a mutex */
TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp)
{
TSRM_ERROR((TSRM_ERROR_LEVEL_INFO, "Mutex unlocked thread: %ld", tsrm_thread_id()));
#ifdef TSRM_WIN32
LeaveCriticalSection(mutexp);
return 1;
#elif defined(GNUPTH)
return pth_mutex_release(mutexp);
#elif defined(PTHREADS)
return pthread_mutex_unlock(mutexp);
#elif defined(NSAPI)
return crit_exit(mutexp);
#elif defined(PI3WEB)
return PISync_unlock(mutexp);
#elif defined(TSRM_ST)
return st_mutex_unlock(mutexp);
#elif defined(BETHREADS)
if (atomic_add(&mutexp->ben, -1) != 1)
return release_sem(mutexp->sem);
return 0;
#endif
}
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler)
{
void *retval = (void *) tsrm_new_thread_begin_handler;
tsrm_new_thread_begin_handler = new_thread_begin_handler;
return retval;
}
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler)
{
void *retval = (void *) tsrm_new_thread_end_handler;
tsrm_new_thread_end_handler = new_thread_end_handler;
return retval;
}
/*
* Debug support
*/
#if TSRM_DEBUG
int tsrm_error(int level, const char *format, ...)
{
if (level<=tsrm_error_level) {
va_list args;
int size;
fprintf(tsrm_error_file, "TSRM: ");
va_start(args, format);
size = vfprintf(tsrm_error_file, format, args);
va_end(args);
fprintf(tsrm_error_file, "\n");
fflush(tsrm_error_file);
return size;
} else {
return 0;
}
}
#endif
void tsrm_error_set(int level, char *debug_filename)
{
tsrm_error_level = level;
#if TSRM_DEBUG
if (tsrm_error_file!=stderr) { /* close files opened earlier */
fclose(tsrm_error_file);
}
if (debug_filename) {
tsrm_error_file = fopen(debug_filename, "w");
if (!tsrm_error_file) {
tsrm_error_file = stderr;
}
} else {
tsrm_error_file = stderr;
}
#endif
}
#endif /* ZTS */
-186
View File
@@ -1,186 +0,0 @@
# Microsoft Developer Studio Project File - Name="TSRM" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=TSRM - Win32 Debug_TS
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "TSRM.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "TSRM.mak" CFG="TSRM - Win32 Debug_TS"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "TSRM - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "TSRM - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "TSRM - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "TSRM___Win32_Debug_TS"
# PROP BASE Intermediate_Dir "TSRM___Win32_Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /I "C:\Projects\TSRM" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_DEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=1 /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_DEBUG"
# ADD RSC /l 0x40d /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TS"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TS_inline"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TS_inline"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TS_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TS_inline"
# PROP Intermediate_Dir "Release_TS_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "WIN32" /D "_MBCS" /D "_LIB" /D "TSRM_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "TSRM - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "TSRM___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDEBUG" /D "ZTS" /D "_LIB" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D TSRM_DEBUG=0 /YX /FD /c
# ADD BASE RSC /l 0x40d /d "NDEBUG"
# ADD RSC /l 0x40d /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "TSRM - Win32 Debug_TS"
# Name "TSRM - Win32 Release_TS"
# Name "TSRM - Win32 Release_TS_inline"
# Name "TSRM - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\TSRM.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_strtok_r.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_virtual_cwd.c
# End Source File
# Begin Source File
SOURCE=.\tsrm_win32.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\readdir.h
# End Source File
# Begin Source File
SOURCE=.\TSRM.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_config_common.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_strtok_r.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_virtual_cwd.h
# End Source File
# Begin Source File
SOURCE=.\tsrm_win32.h
# End Source File
# End Group
# End Target
# End Project
-177
View File
@@ -1,177 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2007, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| This source file is subject to the TSRM license, that is bundled |
| with this package in the file LICENSE |
+----------------------------------------------------------------------+
| Authors: Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
#ifndef TSRM_H
#define TSRM_H
#if !defined(__CYGWIN__) && defined(WIN32)
# define TSRM_WIN32
# include "tsrm_config.w32.h"
#else
# include <tsrm_config.h>
#endif
#ifdef TSRM_WIN32
# ifdef TSRM_EXPORTS
# define TSRM_API __declspec(dllexport)
# else
# define TSRM_API __declspec(dllimport)
# endif
#else
# define TSRM_API
#endif
#ifdef _WIN64
typedef __int64 tsrm_intptr_t;
typedef unsigned __int64 tsrm_uintptr_t;
#else
typedef long tsrm_intptr_t;
typedef unsigned long tsrm_uintptr_t;
#endif
/* Only compile multi-threading functions if we're in ZTS mode */
#ifdef ZTS
#ifdef TSRM_WIN32
# ifndef TSRM_INCLUDE_FULL_WINDOWS_HEADERS
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
# include <shellapi.h>
#elif defined(GNUPTH)
# include <pth.h>
#elif defined(PTHREADS)
# include <pthread.h>
#elif defined(TSRM_ST)
# include <st.h>
#elif defined(BETHREADS)
#include <kernel/OS.h>
#include <TLS.h>
#endif
typedef int ts_rsrc_id;
/* Define THREAD_T and MUTEX_T */
#ifdef TSRM_WIN32
# define THREAD_T DWORD
# define MUTEX_T CRITICAL_SECTION *
#elif defined(GNUPTH)
# define THREAD_T pth_t
# define MUTEX_T pth_mutex_t *
#elif defined(PTHREADS)
# define THREAD_T pthread_t
# define MUTEX_T pthread_mutex_t *
#elif defined(NSAPI)
# define THREAD_T SYS_THREAD
# define MUTEX_T CRITICAL
#elif defined(PI3WEB)
# define THREAD_T PIThread *
# define MUTEX_T PISync *
#elif defined(TSRM_ST)
# define THREAD_T st_thread_t
# define MUTEX_T st_mutex_t
#elif defined(BETHREADS)
# define THREAD_T thread_id
typedef struct {
sem_id sem;
int32 ben;
} beos_ben;
# define MUTEX_T beos_ben *
#endif
typedef void (*ts_allocate_ctor)(void *, void ***);
typedef void (*ts_allocate_dtor)(void *, void ***);
#define THREAD_HASH_OF(thr,ts) (unsigned long)thr%(unsigned long)ts
#ifdef __cplusplus
extern "C" {
#endif
/* startup/shutdown */
TSRM_API int tsrm_startup(int expected_threads, int expected_resources, int debug_level, char *debug_filename);
TSRM_API void tsrm_shutdown(void);
/* allocates a new thread-safe-resource id */
TSRM_API ts_rsrc_id ts_allocate_id(ts_rsrc_id *rsrc_id, size_t size, ts_allocate_ctor ctor, ts_allocate_dtor dtor);
/* fetches the requested resource for the current thread */
TSRM_API void *ts_resource_ex(ts_rsrc_id id, THREAD_T *th_id);
#define ts_resource(id) ts_resource_ex(id, NULL)
/* frees all resources allocated for the current thread */
TSRM_API void ts_free_thread(void);
/* frees all resources allocated for all threads except current */
void ts_free_worker_threads(void);
/* deallocates all occurrences of a given id */
TSRM_API void ts_free_id(ts_rsrc_id id);
/* Debug support */
#define TSRM_ERROR_LEVEL_ERROR 1
#define TSRM_ERROR_LEVEL_CORE 2
#define TSRM_ERROR_LEVEL_INFO 3
typedef void (*tsrm_thread_begin_func_t)(THREAD_T thread_id, void ***tsrm_ls);
typedef void (*tsrm_thread_end_func_t)(THREAD_T thread_id, void ***tsrm_ls);
TSRM_API int tsrm_error(int level, const char *format, ...);
TSRM_API void tsrm_error_set(int level, char *debug_filename);
/* utility functions */
TSRM_API THREAD_T tsrm_thread_id(void);
TSRM_API MUTEX_T tsrm_mutex_alloc(void);
TSRM_API void tsrm_mutex_free(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp);
TSRM_API int tsrm_mutex_unlock(MUTEX_T mutexp);
TSRM_API void *tsrm_set_new_thread_begin_handler(tsrm_thread_begin_func_t new_thread_begin_handler);
TSRM_API void *tsrm_set_new_thread_end_handler(tsrm_thread_end_func_t new_thread_end_handler);
/* these 3 APIs should only be used by people that fully understand the threading model
* used by PHP/Zend and the selected SAPI. */
TSRM_API void *tsrm_new_interpreter_context(void);
TSRM_API void *tsrm_set_interpreter_context(void *new_ctx);
TSRM_API void tsrm_free_interpreter_context(void *context);
#define TSRM_SHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)+1)
#define TSRM_UNSHUFFLE_RSRC_ID(rsrc_id) ((rsrc_id)-1)
#define TSRMLS_FETCH() void ***tsrm_ls = (void ***) ts_resource_ex(0, NULL)
#define TSRMLS_FETCH_FROM_CTX(ctx) void ***tsrm_ls = (void ***) ctx
#define TSRMLS_SET_CTX(ctx) ctx = (void ***) tsrm_ls
#define TSRMG(id, type, element) (((type) (*((void ***) tsrm_ls))[TSRM_UNSHUFFLE_RSRC_ID(id)])->element)
#define TSRMLS_D void ***tsrm_ls
#define TSRMLS_DC , TSRMLS_D
#define TSRMLS_C tsrm_ls
#define TSRMLS_CC , TSRMLS_C
#ifdef __cplusplus
}
#endif
#else /* non ZTS */
#define TSRMLS_FETCH()
#define TSRMLS_FETCH_FROM_CTX(ctx)
#define TSRMLS_SET_CTX(ctx)
#define TSRMLS_D void
#define TSRMLS_DC
#define TSRMLS_C
#define TSRMLS_CC
#endif /* ZTS */
#endif /* TSRM_H */
-1
View File
@@ -1 +0,0 @@
#undef PTHREADS
-5
View File
@@ -1,5 +0,0 @@
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
])
-43
View File
@@ -1,43 +0,0 @@
# Makefile to generate build tools
#
# Standard usage:
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
config_h_in = tsrm_config.h.in
makefile_am_files = Makefile.am
makefile_in_files = $(makefile_am_files:.am=.in)
makefile_files = $(makefile_am_files:e.am=e)
targets = $(makefile_in_files) $(LT_TARGETS) configure $(config_h_in)
all: $(targets)
clean:
rm -f $(targets)
$(LT_TARGETS):
rm -f $(LT_TARGETS)
libtoolize --automake $(AMFLAGS) -f
$(makefile_in_files): $(makefile_am_files)
automake -a -i $(AMFLAGS) $(makefile_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
autoheader
configure: aclocal.m4 configure.in
autoconf
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
case "$1" in
--copy)
automake_flags=--copy
shift
;;
esac
libtoolize --force --automake $automake_flags
mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
echo "buildconf: keeping ${1}aclocal.m4"
mv aclocal.m4.old aclocal.m4
else
echo "buildconf: created or modified ${1}aclocal.m4"
fi
autoheader
automake --add-missing --include-deps $automake_flags
mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
echo "buildconf: keeping ${1}configure"
mv configure.old configure
else
echo "buildconf: created or modified ${1}configure"
fi
-10
View File
@@ -1,10 +0,0 @@
// vim:ft=javascript
// $Id$
if (CHECK_HEADER_ADD_INCLUDE("NewAPIs.h", "CFLAGS_PHP", php_usual_include_suspects)) {
// Need to add the flag directly, since TSRM doesn't include the config
// header
ADD_FLAG("CFLAGS_PHP", "/DHAVE_NEWAPIS_H=1");
}
ADD_SOURCES("TSRM", "TSRM.c tsrm_strtok_r.c tsrm_virtual_cwd.c tsrm_win32.c");
-31
View File
@@ -1,31 +0,0 @@
dnl $Id$
dnl
dnl Minimalistic configure.in for TSRM.
dnl
AC_INIT(TSRM.c)
AM_INIT_AUTOMAKE(TSRM, 1.0, nodefine)
AM_CONFIG_HEADER(tsrm_config.h)
sinclude(tsrm.m4)
TSRM_BASIC_CHECKS
TSRM_THREADS_CHECKS
AM_PROG_LIBTOOL
if test "$enable_debug" != "yes"; then
AM_SET_LIBTOOL_VARIABLE([--silent])
fi
dnl TSRM_PTHREAD
AC_CHECK_HEADERS(
utime.h \
dirent.h \
stdarg.h \
alloca.h \
unistd.h \
limits.h
)
AC_OUTPUT(Makefile)
-47
View File
@@ -1,47 +0,0 @@
#ifndef READDIR_H
#define READDIR_H
/*
* Structures and types used to implement opendir/readdir/closedir
* on Windows 95/NT.
*/
#define _WIN32_WINNT 0x0400
#include <windows.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <direct.h>
/* struct dirent - same as Unix */
struct dirent {
long d_ino; /* inode (always 1 in WIN32) */
off_t d_off; /* offset to this dirent */
unsigned short d_reclen; /* length of d_name */
char d_name[_MAX_FNAME + 1]; /* filename (null terminated) */
};
/* typedef DIR - not the same as Unix */
typedef struct {
HANDLE handle; /* _findfirst/_findnext handle */
short offset; /* offset into directory */
short finished; /* 1 if there are not more files */
WIN32_FIND_DATA fileinfo; /* from _findfirst/_findnext */
char *dir; /* the dir we are reading */
struct dirent dent; /* the dirent to return */
} DIR;
/* Function prototypes */
DIR *opendir(const char *);
struct dirent *readdir(DIR *);
int readdir_r(DIR *, struct dirent *, struct dirent **);
int closedir(DIR *);
int rewinddir(DIR *);
#endif /* READDIR_H */
-173
View File
@@ -1,173 +0,0 @@
dnl Copyright (c) 1999, 2000 Sascha Schumann. All rights reserved.
dnl
dnl Redistribution and use in source and binary forms, with or without
dnl modification, are permitted provided that the following conditions
dnl are met:
dnl
dnl 1. Redistributions of source code must retain the above copyright
dnl notice, this list of conditions and the following disclaimer.
dnl
dnl 2. Redistributions in binary form must reproduce the above copyright
dnl notice, this list of conditions and the following disclaimer in
dnl the documentation and/or other materials provided with the
dnl distribution.
dnl
dnl THIS SOFTWARE IS PROVIDED BY SASCHA SCHUMANN ``AS IS'' AND ANY
dnl EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
dnl IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
dnl PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SASCHA SCHUMANN OR
dnl HIS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
dnl SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
dnl NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
dnl LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
dnl HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
dnl STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
dnl ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
dnl OF THE POSSIBILITY OF SUCH DAMAGE.
dnl
dnl PTHREADS_FLAGS
dnl
dnl Set some magic defines to achieve POSIX threads conformance
dnl
AC_DEFUN([PTHREADS_FLAGS],[
if test -z "$host_alias" && test -n "$host"; then
host_alias=$host
fi
if test -z "$host_alias"; then
AC_MSG_ERROR(host_alias is not set. Make sure to run config.guess)
fi
case $host_alias in
*solaris*)
PTHREAD_FLAGS="-D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT";;
*freebsd*)
PTHREAD_FLAGS="-D_REENTRANT -D_THREAD_SAFE";;
*linux*)
PTHREAD_FLAGS=-D_REENTRANT;;
*aix*)
PTHREAD_FLAGS=-D_THREAD_SAFE;;
*irix*)
PTHREAD_FLAGS=-D_POSIX_THREAD_SAFE_FUNCTIONS;;
*hpux*)
PTHREAD_FLAGS=-D_REENTRANT;;
*sco*)
PTHREAD_FLAGS=-D_REENTRANT;;
dnl Solves sigwait() problem, creates problems with u_long etc.
dnl PTHREAD_FLAGS="-D_REENTRANT -D_XOPEN_SOURCE=500 -D_POSIX_C_SOURCE=199506 -D_XOPEN_SOURCE_EXTENDED=1";;
esac
if test -n "$PTHREAD_FLAGS"; then
CPPFLAGS="$CPPFLAGS $PTHREAD_FLAGS"
fi
])dnl
dnl
dnl PTHREADS_CHECK_COMPILE
dnl
dnl Check whether the current setup can use POSIX threads calls
dnl
AC_DEFUN([PTHREADS_CHECK_COMPILE], [
AC_TRY_RUN( [
#include <pthread.h>
#include <stddef.h>
void *thread_routine(void *data) {
return data;
}
int main() {
pthread_t thd;
pthread_mutexattr_t mattr;
int data = 1;
pthread_mutexattr_init(&mattr);
return pthread_create(&thd, NULL, thread_routine, &data);
} ], [
pthreads_working=yes
], [
pthreads_working=no
], [
dnl For cross compiling running this test is of no use. NetWare supports pthreads
pthreads_working=no
case $host_alias in
*netware*)
pthreads_working=yes
esac
]
) ] )dnl
dnl
dnl PTHREADS_CHECK()
dnl
dnl Try to find a way to enable POSIX threads
dnl
dnl Magic flags
dnl -kthread gcc (FreeBSD)
dnl -Kthread UDK cc (UnixWare)
dnl -mt WorkShop cc (Solaris)
dnl -mthreads gcc (AIX)
dnl -pthread gcc (Linux, FreeBSD, NetBSD, OpenBSD)
dnl -pthreads gcc (Solaris)
dnl -qthreaded AIX cc V5
dnl -threads gcc (HP-UX)
dnl
AC_DEFUN([PTHREADS_CHECK],[
if test "$beos_threads" = "1"; then
pthreads_working="yes"
ac_cv_pthreads_cflags=""
else
save_CFLAGS=$CFLAGS
save_LIBS=$LIBS
PTHREADS_ASSIGN_VARS
PTHREADS_CHECK_COMPILE
LIBS=$save_LIBS
CFLAGS=$save_CFLAGS
AC_CACHE_CHECK(for pthreads_cflags,ac_cv_pthreads_cflags,[
ac_cv_pthreads_cflags=
if test "$pthreads_working" != "yes"; then
for flag in -kthread -pthread -pthreads -mthreads -Kthread -threads -mt -qthreaded; do
ac_save=$CFLAGS
CFLAGS="$CFLAGS $flag"
PTHREADS_CHECK_COMPILE
CFLAGS=$ac_save
if test "$pthreads_working" = "yes"; then
ac_cv_pthreads_cflags=$flag
break
fi
done
fi
fi
])
AC_CACHE_CHECK(for pthreads_lib, ac_cv_pthreads_lib,[
ac_cv_pthreads_lib=
if test "$pthreads_working" != "yes"; then
for lib in pthread pthreads c_r; do
ac_save=$LIBS
LIBS="$LIBS -l$lib"
PTHREADS_CHECK_COMPILE
LIBS=$ac_save
if test "$pthreads_working" = "yes"; then
ac_cv_pthreads_lib=$lib
break
fi
done
fi
])
if test "$pthreads_working" = "yes"; then
threads_result="POSIX-Threads found"
else
threads_result="POSIX-Threads not found"
fi
])dnl
dnl
dnl
AC_DEFUN([PTHREADS_ASSIGN_VARS],[
if test -n "$ac_cv_pthreads_lib"; then
LIBS="$LIBS -l$ac_cv_pthreads_lib"
fi
if test -n "$ac_cv_pthreads_cflags"; then
CFLAGS="$CFLAGS $ac_cv_pthreads_cflags"
fi
])dnl
-128
View File
@@ -1,128 +0,0 @@
dnl TSRM_CHECK_GCC_ARG(ARG, ACTION-IF-FOUND, ACTION-IF-NOT_FOUND)
AC_DEFUN([TSRM_CHECK_GCC_ARG],[
gcc_arg_name=[ac_cv_gcc_arg]translit($1,A-Z-,a-z_)
AC_CACHE_CHECK([whether $CC supports $1], [ac_cv_gcc_arg]translit($1,A-Z-,a-z_), [
echo 'void somefunc() { };' > conftest.c
cmd='$CC $1 -c conftest.c'
if eval $cmd 2>&1 | egrep -e $1 >/dev/null ; then
ac_result=no
else
ac_result=yes
fi
eval $gcc_arg_name=$ac_result
rm -f conftest.*
])
if eval test "\$$gcc_arg_name" = "yes"; then
$2
else
:
$3
fi
])
AC_DEFUN([TSRM_BASIC_CHECKS],[
AC_REQUIRE([AC_PROG_CC])dnl
dnl AC_REQUIRE([AM_PROG_CC_STDC])dnl
AC_REQUIRE([AC_PROG_CC_C_O])dnl
AC_REQUIRE([AC_PROG_RANLIB])dnl
AC_CHECK_HEADERS(stdarg.h)
])
AC_DEFUN([TSRM_CHECK_PTH],[
AC_MSG_CHECKING(for GNU Pth)
PTH_PREFIX="`$1 --prefix`"
if test -z "$PTH_PREFIX"; then
AC_MSG_RESULT(Please check your Pth installation)
fi
CPPFLAGS="$CPPFLAGS `$1 --cflags`"
LDFLAGS="$LDFLAGS `$1 --ldflags`"
LIBS="$LIBS `$1 --libs`"
AC_DEFINE(GNUPTH, 1, [Whether you use GNU Pth])
AC_MSG_RESULT(yes - installed in $PTH_PREFIX)
])
AC_DEFUN([TSRM_CHECK_ST],[
if test -r "$1/include/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1/include"
LDFLAGS="$LDFLAGS -L$1/lib"
elif test -r "$1/st.h"; then
CPPFLAGS="$CPPFLAGS -I$1"
LDFLAGS="$LDFLAGS -L$1"
fi
AC_CHECK_HEADERS(st.h,[],[
AC_MSG_ERROR([Sorry[,] I was unable to locate the State Threads header file. Please specify the prefix using --with-tsrm-st=/prefix])
])
LIBS="$LIBS -lst"
AC_MSG_CHECKING(for SGI's State Threads)
AC_MSG_RESULT(yes)
AC_DEFINE(TSRM_ST, 1, [ ])
])
sinclude(threads.m4)
AC_DEFUN([TSRM_CHECK_PTHREADS],[
PTHREADS_CHECK
if test "$beos_threads" = "1"; then
AC_DEFINE(BETHREADS, 1, Whether to use native BeOS threads)
else
if test "$pthreads_working" != "yes"; then
AC_MSG_ERROR(Your system seems to lack POSIX threads.)
fi
AC_DEFINE(PTHREADS, 1, Whether to use Pthreads)
AC_MSG_CHECKING(for POSIX threads)
AC_MSG_RESULT(yes)
fi
])
AC_DEFUN([TSRM_THREADS_CHECKS],[
dnl For the thread implementations, we always use --with-*
dnl to maintain consistency
AC_ARG_WITH(tsrm-pth,
[ --with-tsrm-pth[=pth-config]
Use GNU Pth],[
TSRM_PTH=$withval
],[
TSRM_PTH=no
])
AC_ARG_WITH(tsrm-st,
[ --with-tsrm-st Use SGI's State Threads],[
TSRM_ST=$withval
],[
TSRM_ST=no
])
AC_ARG_WITH(tsrm-pthreads,
[ --with-tsrm-pthreads Use POSIX threads (default)],[
TSRM_PTHREADS=$withval
],[
TSRM_PTHREADS=yes
])
test "$TSRM_PTH" = "yes" && TSRM_PTH=pth-config
if test "$TSRM_PTH" != "no"; then
TSRM_CHECK_PTH($TSRM_PTH)
elif test "$TSRM_ST" != "no"; then
TSRM_CHECK_ST($TSRM_ST)
elif test "$TSRM_PTHREADS" != "no"; then
TSRM_CHECK_PTHREADS
fi
])
-20
View File
@@ -1,20 +0,0 @@
#ifndef TSRM_CONFIG_W32_H
#define TSRM_CONFIG_W32_H
#define HAVE_UTIME 1
#define HAVE_ALLOCA 1
#define HAVE_REALPATH 1
#include <malloc.h>
#include <stdlib.h>
#include <crtdbg.h>
#undef inline
#ifdef ZEND_WIN32_FORCE_INLINE
# define inline __forceinline
#else
# define inline
#endif
#endif
-62
View File
@@ -1,62 +0,0 @@
#ifndef TSRM_CONFIG_COMMON_H
#define TSRM_CONFIG_COMMON_H
#ifndef __CYGWIN__
# if WINNT|WIN32
# define TSRM_WIN32
# endif
#endif
#ifdef TSRM_WIN32
# include "tsrm_config.w32.h"
#else
# include <tsrm_config.h>
# include <sys/param.h>
#endif
#if HAVE_ALLOCA_H && !defined(_ALLOCA_H)
# include <alloca.h>
#endif
/* AIX requires this to be the first thing in the file. */
#ifndef __GNUC__
# ifndef HAVE_ALLOCA_H
# ifdef _AIX
#pragma alloca
# else
# ifndef alloca /* predefined by HP cc +Olibcalls */
# ifndef NETWARE
char *alloca ();
# endif
# endif
# endif
# endif
#endif
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#if HAVE_LIMITS_H
#include <limits.h>
#endif
#ifndef MAXPATHLEN
# ifdef PATH_MAX
# define MAXPATHLEN PATH_MAX
# elif defined(MAX_PATH)
# define MAXPATHLEN MAX_PATH
# else
# define MAXPATHLEN 256
# endif
#endif
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2))
# define tsrm_do_alloca(p) alloca(p)
# define tsrm_free_alloca(p)
#else
# define tsrm_do_alloca(p) malloc(p)
# define tsrm_free_alloca(p) free(p)
#endif
#endif /* TSRM_CONFIG_COMMON_H */
-240
View File
@@ -1,240 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2007 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Venkat Raghavan S <rvenkat@novell.com> |
| Anantha Kesari H Y <hyanantha@novell.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include "TSRM.h"
#ifdef NETWARE
#ifdef USE_MKFIFO
#include <sys/stat.h>
#elif !defined(USE_PIPE_OPEN) /* NXFifoOpen */
#include <nks/fsio.h>
#endif
#include <nks/vm.h>
#include <nks/memory.h>
#include <string.h>
#include "mktemp.h"
/* strtok() call in LibC is abending when used in a different address space
* -- hence using PHP's version itself for now
*/
#include "tsrm_strtok_r.h"
#define tsrm_strtok_r(a,b,c) strtok((a),(b))
#define WHITESPACE " \t"
#define MAX_ARGS 10
TSRM_API FILE* popen(const char *commandline, const char *type)
{
char *command = NULL, *argv[MAX_ARGS] = {'\0'}, **env = NULL;
char *tempName = "sys:/php/temp/phpXXXXXX.tmp";
char *filePath = NULL;
char *ptr = NULL;
int ptrLen = 0, argc = 0, i = 0, envCount = 0, err = 0;
FILE *stream = NULL;
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
int pipe_handle;
int mode = O_RDONLY;
#else
NXHandle_t pipe_handle;
NXMode_t mode = NX_O_RDONLY;
#endif
NXExecEnvSpec_t envSpec;
NXNameSpec_t nameSpec;
NXVmId_t newVM = 0;
/* Check for validity of input parameters */
if (!commandline || !type)
return NULL;
/* Get temporary file name */
filePath = mktemp(tempName);
if (!filePath)
return NULL;
/* Set pipe mode according to type -- for now allow only "r" or "w" */
if (strcmp(type, "r") == 0)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
mode = O_RDONLY;
#else
mode = NX_O_RDONLY;
#endif
else if (strcmp(type, "w") == 0)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
mode = O_WRONLY;
#else
mode = NX_O_WRONLY;
#endif
else
return NULL;
#ifdef USE_PIPE_OPEN
pipe_handle = pipe_open(filePath, mode);
if (pipe_handle == -1)
return NULL;
#elif defined(USE_MKFIFO)
pipe_handle = mkfifo(filePath, mode);
if (pipe_handle == -1)
return NULL;
#else
/* - NetWare doesn't require first parameter
* - Allowing LibC to choose the buffer size for now
*/
err = NXFifoOpen(0, filePath, mode, 0, &pipe_handle);
if (err)
return NULL;
#endif
/* Copy the environment variables in preparation for the spawn call */
envCount = NXGetEnvCount() + 1; /* add one for NULL */
env = (char **) NXMemAlloc(sizeof(char *) * envCount, 0);
if (!env)
return NULL;
err = NXCopyEnv(env, envCount);
if (err) {
NXMemFree (env);
return NULL;
}
/* Separate commandline string into words */
ptr = tsrm_strtok_r((char*)commandline, WHITESPACE, NULL);
ptrLen = strlen(ptr);
command = (char*)malloc(ptrLen + 1);
if (!command) {
NXMemFree (env);
return NULL;
}
strcpy (command, ptr);
ptr = tsrm_strtok_r(NULL, WHITESPACE, NULL);
while (ptr && (argc < MAX_ARGS)) {
ptrLen = strlen(ptr);
argv[argc] = (char*)malloc(ptrLen + 1);
if (!argv[argc]) {
NXMemFree (env);
if (command)
free (command);
for (i = 0; i < argc; i++) {
if (argv[i])
free (argv[i]);
}
return NULL;
}
strcpy (argv[argc], ptr);
argc++;
ptr = tsrm_strtok_r(NULL, WHITESPACE, NULL);
}
/* Setup the execution environment and spawn new process */
envSpec.esFlags = 0; /* Not used */
envSpec.esArgc = argc;
envSpec.esArgv = (void **) argv;
envSpec.esEnv = (void **) env;
/* envSpec.esStdin.ssType = */
envSpec.esStdout.ssType = NX_OBJ_FIFO;
envSpec.esStderr.ssType = NX_OBJ_FILE;
/* 'ssHandle' is not a struct/union/class member */
/*
envSpec.esStdin.ssHandle =
envSpec.esStdout.ssHandle =
envSpec.esStderr.ssHandle = -1;
*/
envSpec.esStdin.ssPathCtx = NULL;
envSpec.esStdout.ssPathCtx = NULL;
envSpec.esStderr.ssPathCtx = NULL;
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
if (mode == O_RDONLY) {
#else
if (mode == NX_O_RDONLY) {
#endif
envSpec.esStdin.ssPath = filePath;
envSpec.esStdout.ssPath = stdout;
} else { /* Write Only */
envSpec.esStdin.ssPath = stdin;
envSpec.esStdout.ssPath = filePath;
}
envSpec.esStderr.ssPath = stdout;
nameSpec.ssType = NX_OBJ_FIFO;
/* nameSpec.ssHandle = 0; */ /* 'ssHandle' is not a struct/union/class member */
nameSpec.ssPathCtx = NULL; /* Not used */
nameSpec.ssPath = argv[0];
err = NXVmSpawn(&nameSpec, &envSpec, 0, &newVM);
if (!err)
/* Get file pointer corresponding to the pipe (file) opened */
stream = fdopen(pipe_handle, type);
/* Clean-up */
if (env)
NXMemFree (env);
if (pipe_handle)
#if defined(USE_PIPE_OPEN) || defined(USE_MKFIFO)
close(pipe_handle);
#else
NXClose(pipe_handle);
#endif
if (command)
free (command);
for (i = 0; i < argc; i++) {
if (argv[i])
free (argv[i]);
}
return stream;
}
TSRM_API int pclose(FILE* stream)
{
int err = 0;
NXHandle_t fd = 0;
/* Get the process associated with this pipe (file) handle and terminate it */
fd = fileno(stream);
NXClose (fd);
err = fclose(stream);
return err;
}
#endif /* NETWARE */
-29
View File
@@ -1,29 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2007 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Venkat Raghavan S <rvenkat@novell.com> |
| Anantha Kesari H Y <hyanantha@novell.com> |
+----------------------------------------------------------------------+
*/
#ifndef TSRM_NW_H
#define TSRM_NW_H
#include "TSRM.h"
TSRM_API FILE* popen(const char *command, const char *type);
TSRM_API int pclose(FILE* stream);
#endif
-63
View File
@@ -1,63 +0,0 @@
#include <stdio.h>
#include "tsrm_config_common.h"
#include "tsrm_strtok_r.h"
static inline int in_character_class(char ch, const char *delim)
{
while (*delim) {
if (*delim == ch) {
return 1;
}
delim++;
}
return 0;
}
char *tsrm_strtok_r(char *s, const char *delim, char **last)
{
char *token;
if (s == NULL) {
s = *last;
}
while (*s && in_character_class(*s, delim)) {
s++;
}
if (!*s) {
return NULL;
}
token = s;
while (*s && !in_character_class(*s, delim)) {
s++;
}
if (!*s) {
*last = s;
} else {
*s = '\0';
*last = s + 1;
}
return token;
}
#if 0
main()
{
char foo[] = "/foo/bar//\\barbara";
char *last;
char *token;
token = tsrm_strtok_r(foo, "/\\", &last);
while (token) {
printf ("Token = '%s'\n", token);
token = tsrm_strtok_r(NULL, "/\\", &last);
}
return 0;
}
#endif
-6
View File
@@ -1,6 +0,0 @@
#ifndef TSRM_STRTOK_R
#define TSRM_STRTOK_R
char *tsrm_strtok_r(char *s, const char *delim, char **last);
#endif
File diff suppressed because it is too large. Load diff
-310
View File
@@ -1,310 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2007 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Sascha Schumann <sascha@schumann.cx> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef VIRTUAL_CWD_H
#define VIRTUAL_CWD_H
#include "TSRM.h"
#include "tsrm_config_common.h"
#include <sys/types.h>
#include <sys/stat.h>
#include <ctype.h>
#ifdef HAVE_UTIME_H
#include <utime.h>
#endif
#ifdef HAVE_STDARG_H
#include <stdarg.h>
#endif
#ifdef ZTS
#define VIRTUAL_DIR
#endif
#ifndef TSRM_WIN32
#include <unistd.h>
#else
#include <direct.h>
#endif
#if defined(__osf__) || defined(_AIX)
#include <errno.h>
#endif
#ifdef TSRM_WIN32
#include "readdir.h"
#include <sys/utime.h>
/* mode_t isn't defined on Windows */
typedef unsigned short mode_t;
#define DEFAULT_SLASH '\\'
#define DEFAULT_DIR_SEPARATOR ';'
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) (*(c) == '/' || \
(*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
/* COPY_WHEN_ABSOLUTE is 2 under Win32 because by chance both regular absolute paths
in the file system and UNC paths need copying of two characters */
#define COPY_WHEN_ABSOLUTE(path) 2
#define IS_UNC_PATH(path, len) \
(len >= 2 && IS_SLASH(path[0]) && IS_SLASH(path[1]))
#define IS_ABSOLUTE_PATH(path, len) \
(len >= 2 && ((isalpha(path[0]) && path[1] == ':') || IS_UNC_PATH(path, len)))
#elif defined(NETWARE)
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#define DEFAULT_SLASH '/'
#define DEFAULT_DIR_SEPARATOR ';'
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) IS_SLASH(*(c))
/* Colon indicates volume name, either first character should be forward slash or backward slash */
#define IS_ABSOLUTE_PATH(path, len) \
((strchr(path, ':') != NULL) || ((len >= 1) && ((path[0] == '/') || (path[0] == '\\'))))
#else
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#define DEFAULT_SLASH '/'
#ifdef __riscos__
#define DEFAULT_DIR_SEPARATOR ';'
#else
#define DEFAULT_DIR_SEPARATOR ':'
#endif
#define IS_SLASH(c) ((c) == '/')
#define IS_SLASH_P(c) (*(c) == '/')
#endif
#ifndef COPY_WHEN_ABSOLUTE
#define COPY_WHEN_ABSOLUTE(path) 0
#endif
#ifndef IS_ABSOLUTE_PATH
#define IS_ABSOLUTE_PATH(path, len) \
(IS_SLASH(path[0]))
#endif
#ifdef TSRM_EXPORTS
#define CWD_EXPORTS
#endif
#ifdef TSRM_WIN32
# ifdef CWD_EXPORTS
# define CWD_API __declspec(dllexport)
# else
# define CWD_API __declspec(dllimport)
# endif
#else
#define CWD_API
#endif
#ifdef TSRM_WIN32
CWD_API int php_sys_stat(const char *path, struct stat *buf);
#else
# define php_sys_stat stat
#endif
typedef struct _cwd_state {
char *cwd;
int cwd_length;
} cwd_state;
typedef int (*verify_path_func)(const cwd_state *);
CWD_API void virtual_cwd_startup(void);
CWD_API void virtual_cwd_shutdown(void);
CWD_API char *virtual_getcwd_ex(size_t *length TSRMLS_DC);
CWD_API char *virtual_getcwd(char *buf, size_t size TSRMLS_DC);
CWD_API int virtual_chdir(const char *path TSRMLS_DC);
CWD_API int virtual_chdir_file(const char *path, int (*p_chdir)(const char *path TSRMLS_DC) TSRMLS_DC);
CWD_API int virtual_filepath(const char *path, char **filepath TSRMLS_DC);
CWD_API int virtual_filepath_ex(const char *path, char **filepath, verify_path_func verify_path TSRMLS_DC);
CWD_API char *virtual_realpath(const char *path, char *real_path TSRMLS_DC);
CWD_API FILE *virtual_fopen(const char *path, const char *mode TSRMLS_DC);
CWD_API int virtual_open(const char *path TSRMLS_DC, int flags, ...);
CWD_API int virtual_creat(const char *path, mode_t mode TSRMLS_DC);
CWD_API int virtual_rename(char *oldname, char *newname TSRMLS_DC);
CWD_API int virtual_stat(const char *path, struct stat *buf TSRMLS_DC);
#if !defined(TSRM_WIN32)
CWD_API int virtual_lstat(const char *path, struct stat *buf TSRMLS_DC);
#endif
CWD_API int virtual_unlink(const char *path TSRMLS_DC);
CWD_API int virtual_mkdir(const char *pathname, mode_t mode TSRMLS_DC);
CWD_API int virtual_rmdir(const char *pathname TSRMLS_DC);
CWD_API DIR *virtual_opendir(const char *pathname TSRMLS_DC);
CWD_API FILE *virtual_popen(const char *command, const char *type TSRMLS_DC);
CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
#if defined(TSRM_WIN32)
/* these are not defined in win32 headers */
#ifndef W_OK
#define W_OK 0x02
#endif
#ifndef R_OK
#define R_OK 0x04
#endif
#ifndef X_OK
#define X_OK 0x01
#endif
#ifndef F_OK
#define F_OK 0x00
#endif
#endif
#if HAVE_UTIME
CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC);
#endif
CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
#if !defined(TSRM_WIN32) && !defined(NETWARE)
CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);
#endif
/* One of the following constants must be used as the last argument
in virtual_file_ex() call. */
#define CWD_EXPAND 0 /* expand "." and ".." but dont resolve symlinks */
#define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */
#define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC);
#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
typedef struct _realpath_cache_bucket {
unsigned long key;
char *path;
int path_len;
char *realpath;
int realpath_len;
time_t expires;
struct _realpath_cache_bucket *next;
} realpath_cache_bucket;
typedef struct _virtual_cwd_globals {
cwd_state cwd;
long realpath_cache_size;
long realpath_cache_size_limit;
long realpath_cache_ttl;
realpath_cache_bucket *realpath_cache[1024];
} virtual_cwd_globals;
#ifdef ZTS
extern ts_rsrc_id cwd_globals_id;
# define CWDG(v) TSRMG(cwd_globals_id, virtual_cwd_globals *, v)
#else
extern virtual_cwd_globals cwd_globals;
# define CWDG(v) (cwd_globals.v)
#endif
CWD_API void realpath_cache_clean(TSRMLS_D);
CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC);
/* The actual macros to be used in programs using TSRM
* If the program defines VIRTUAL_DIR it will use the
* virtual_* functions
*/
#ifdef VIRTUAL_DIR
#define VCWD_GETCWD(buff, size) virtual_getcwd(buff, size TSRMLS_CC)
#define VCWD_FOPEN(path, mode) virtual_fopen(path, mode TSRMLS_CC)
/* Because open() has two modes, we have to macros to replace it */
#define VCWD_OPEN(path, flags) virtual_open(path TSRMLS_CC, flags)
#define VCWD_OPEN_MODE(path, flags, mode) virtual_open(path TSRMLS_CC, flags, mode)
#define VCWD_CREAT(path, mode) virtual_creat(path, mode TSRMLS_CC)
#define VCWD_CHDIR(path) virtual_chdir(path TSRMLS_CC)
#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, virtual_chdir TSRMLS_CC)
#define VCWD_GETWD(buf)
#define VCWD_REALPATH(path, real_path) virtual_realpath(path, real_path TSRMLS_CC)
#define VCWD_RENAME(oldname, newname) virtual_rename(oldname, newname TSRMLS_CC)
#define VCWD_STAT(path, buff) virtual_stat(path, buff TSRMLS_CC)
#if !defined(TSRM_WIN32)
#define VCWD_LSTAT(path, buff) virtual_lstat(path, buff TSRMLS_CC)
#endif
#define VCWD_UNLINK(path) virtual_unlink(path TSRMLS_CC)
#define VCWD_MKDIR(pathname, mode) virtual_mkdir(pathname, mode TSRMLS_CC)
#define VCWD_RMDIR(pathname) virtual_rmdir(pathname TSRMLS_CC)
#define VCWD_OPENDIR(pathname) virtual_opendir(pathname TSRMLS_CC)
#define VCWD_POPEN(command, type) virtual_popen(command, type TSRMLS_CC)
#define VCWD_ACCESS(pathname, mode) virtual_access(pathname, mode TSRMLS_CC)
#if HAVE_UTIME
#define VCWD_UTIME(path, time) virtual_utime(path, time TSRMLS_CC)
#endif
#define VCWD_CHMOD(path, mode) virtual_chmod(path, mode TSRMLS_CC)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_CHOWN(path, owner, group) virtual_chown(path, owner, group, 0 TSRMLS_CC)
#if HAVE_LCHOWN
#define VCWD_LCHOWN(path, owner, group) virtual_chown(path, owner, group, 1 TSRMLS_CC)
#endif
#endif
#else
#define VCWD_GETCWD(buff, size) getcwd(buff, size)
#define VCWD_FOPEN(path, mode) fopen(path, mode)
#define VCWD_OPEN(path, flags) open(path, flags)
#define VCWD_OPEN_MODE(path, flags, mode) open(path, flags, mode)
#define VCWD_CREAT(path, mode) creat(path, mode)
#define VCWD_RENAME(oldname, newname) rename(oldname, newname)
#define VCWD_CHDIR(path) chdir(path)
#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, chdir)
#define VCWD_GETWD(buf) getwd(buf)
#define VCWD_STAT(path, buff) php_sys_stat(path, buff)
#define VCWD_LSTAT(path, buff) lstat(path, buff)
#define VCWD_UNLINK(path) unlink(path)
#define VCWD_MKDIR(pathname, mode) mkdir(pathname, mode)
#define VCWD_RMDIR(pathname) rmdir(pathname)
#define VCWD_OPENDIR(pathname) opendir(pathname)
#define VCWD_POPEN(command, type) popen(command, type)
#if defined(TSRM_WIN32)
#define VCWD_ACCESS(pathname, mode) tsrm_win32_access(pathname, mode)
#else
#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
#endif
#define VCWD_REALPATH(path, real_path) tsrm_realpath(path, real_path TSRMLS_CC)
#if HAVE_UTIME
#define VCWD_UTIME(path, time) utime(path, time)
#endif
#define VCWD_CHMOD(path, mode) chmod(path, mode)
#if !defined(TSRM_WIN32) && !defined(NETWARE)
#define VCWD_CHOWN(path, owner, group) chown(path, owner, group)
#if HAVE_LCHOWN
#define VCWD_LCHOWN(path, owner, group) lchown(path, owner, group)
#endif
#endif
#endif
#endif /* VIRTUAL_CWD_H */
-397
View File
@@ -1,397 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2007 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Daniel Beulshausen <daniel@php4win.de> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#include <stdio.h>
#include <fcntl.h>
#include <io.h>
#include <process.h>
#include <time.h>
#define TSRM_INCLUDE_FULL_WINDOWS_HEADERS
#include "TSRM.h"
#ifdef TSRM_WIN32
#include "tsrm_win32.h"
#ifdef ZTS
static ts_rsrc_id win32_globals_id;
#else
static tsrm_win32_globals win32_globals;
#endif
static void tsrm_win32_ctor(tsrm_win32_globals *globals TSRMLS_DC)
{
globals->process = NULL;
globals->shm = NULL;
globals->process_size = 0;
globals->shm_size = 0;
globals->comspec = _strdup((GetVersion()<0x80000000)?"cmd.exe":"command.com");
}
static void tsrm_win32_dtor(tsrm_win32_globals *globals TSRMLS_DC)
{
shm_pair *ptr;
if (globals->process) {
free(globals->process);
}
if (globals->shm) {
for (ptr = globals->shm; ptr < (globals->shm + globals->shm_size); ptr++) {
UnmapViewOfFile(ptr->addr);
CloseHandle(ptr->segment);
UnmapViewOfFile(ptr->descriptor);
CloseHandle(ptr->info);
}
free(globals->shm);
}
free(globals->comspec);
}
TSRM_API void tsrm_win32_startup(void)
{
#ifdef ZTS
ts_allocate_id(&win32_globals_id, sizeof(tsrm_win32_globals), (ts_allocate_ctor)tsrm_win32_ctor, (ts_allocate_ctor)tsrm_win32_dtor);
#else
tsrm_win32_ctor(&win32_globals TSRMLS_CC);
#endif
}
TSRM_API void tsrm_win32_shutdown(void)
{
#ifndef ZTS
tsrm_win32_dtor(&win32_globals TSRMLS_CC);
#endif
}
TSRM_API int tsrm_win32_access(const char *pathname, int mode)
{
if (mode == 1 /*X_OK*/) {
#if 1
/* This code is not supported by Windows 98,
* but we don't support it anymore */
DWORD type;
return GetBinaryType(pathname, &type)?0:-1;
#else
SHFILEINFO sfi;
return access(pathname, 0) == 0 &&
SHGetFileInfo(pathname, 0, &sfi, sizeof(SHFILEINFO), SHGFI_EXETYPE) != 0 ? 0 : -1;
#endif
} else {
return access(pathname, mode);
}
}
static process_pair *process_get(FILE *stream TSRMLS_DC)
{
process_pair *ptr;
process_pair *newptr;
for (ptr = TWG(process); ptr < (TWG(process) + TWG(process_size)); ptr++) {
if (ptr->stream == stream) {
break;
}
}
if (ptr < (TWG(process) + TWG(process_size))) {
return ptr;
}
newptr = (process_pair*)realloc((void*)TWG(process), (TWG(process_size)+1)*sizeof(process_pair));
if (newptr == NULL) {
return NULL;
}
TWG(process) = newptr;
ptr = newptr + TWG(process_size);
TWG(process_size)++;
return ptr;
}
static shm_pair *shm_get(int key, void *addr)
{
shm_pair *ptr;
shm_pair *newptr;
TSRMLS_FETCH();
for (ptr = TWG(shm); ptr < (TWG(shm) + TWG(shm_size)); ptr++) {
if (!ptr->descriptor) {
continue;
}
if (!addr && ptr->descriptor->shm_perm.key == key) {
break;
} else if (ptr->addr == addr) {
break;
}
}
if (ptr < (TWG(shm) + TWG(shm_size))) {
return ptr;
}
newptr = (shm_pair*)realloc((void*)TWG(shm), (TWG(shm_size)+1)*sizeof(shm_pair));
if (newptr == NULL) {
return NULL;
}
TWG(shm) = newptr;
ptr = newptr + TWG(shm_size);
TWG(shm_size)++;
return ptr;
}
static HANDLE dupHandle(HANDLE fh, BOOL inherit) {
HANDLE copy, self = GetCurrentProcess();
if (!DuplicateHandle(self, fh, self, &copy, 0, inherit, DUPLICATE_SAME_ACCESS|DUPLICATE_CLOSE_SOURCE)) {
return NULL;
}
return copy;
}
TSRM_API FILE *popen(const char *command, const char *type)
{
return popen_ex(command, type, NULL, NULL);
}
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env)
{
FILE *stream = NULL;
int fno, str_len = strlen(type), read, mode;
STARTUPINFO startup;
PROCESS_INFORMATION process;
SECURITY_ATTRIBUTES security;
HANDLE in, out;
char *cmd;
process_pair *proc;
TSRMLS_FETCH();
security.nLength = sizeof(SECURITY_ATTRIBUTES);
security.bInheritHandle = TRUE;
security.lpSecurityDescriptor = NULL;
if (!str_len || !CreatePipe(&in, &out, &security, 2048L)) {
return NULL;
}
memset(&startup, 0, sizeof(STARTUPINFO));
memset(&process, 0, sizeof(PROCESS_INFORMATION));
startup.cb = sizeof(STARTUPINFO);
startup.dwFlags = STARTF_USESTDHANDLES;
startup.hStdError = GetStdHandle(STD_ERROR_HANDLE);
read = (type[0] == 'r') ? TRUE : FALSE;
mode = ((str_len == 2) && (type[1] == 'b')) ? O_BINARY : O_TEXT;
if (read) {
in = dupHandle(in, FALSE);
startup.hStdInput = GetStdHandle(STD_INPUT_HANDLE);
startup.hStdOutput = out;
} else {
out = dupHandle(out, FALSE);
startup.hStdInput = in;
startup.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
}
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c "));
sprintf(cmd, "%s /c %s", TWG(comspec), command);
if (!CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, NORMAL_PRIORITY_CLASS|CREATE_NO_WINDOW, env, cwd, &startup, &process)) {
return NULL;
}
free(cmd);
CloseHandle(process.hThread);
proc = process_get(NULL TSRMLS_CC);
if (read) {
fno = _open_osfhandle((tsrm_intptr_t)in, _O_RDONLY | mode);
CloseHandle(out);
} else {
fno = _open_osfhandle((tsrm_intptr_t)out, _O_WRONLY | mode);
CloseHandle(in);
}
stream = _fdopen(fno, type);
proc->prochnd = process.hProcess;
proc->stream = stream;
return stream;
}
TSRM_API int pclose(FILE *stream)
{
DWORD termstat = 0;
process_pair *process;
TSRMLS_FETCH();
if ((process = process_get(stream TSRMLS_CC)) == NULL) {
return 0;
}
fflush(process->stream);
fclose(process->stream);
WaitForSingleObject(process->prochnd, INFINITE);
GetExitCodeProcess(process->prochnd, &termstat);
process->stream = NULL;
CloseHandle(process->prochnd);
return termstat;
}
TSRM_API int shmget(int key, int size, int flags)
{
shm_pair *shm;
char shm_segment[26], shm_info[29];
HANDLE shm_handle, info_handle;
BOOL created = FALSE;
if (size < 0) {
return -1;
}
sprintf(shm_segment, "TSRM_SHM_SEGMENT:%d", key);
sprintf(shm_info, "TSRM_SHM_DESCRIPTOR:%d", key);
shm_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_segment);
info_handle = OpenFileMapping(FILE_MAP_ALL_ACCESS, FALSE, shm_info);
if ((!shm_handle && !info_handle)) {
if (flags & IPC_CREAT) {
shm_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, size, shm_segment);
info_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(shm->descriptor), shm_info);
created = TRUE;
}
if ((!shm_handle || !info_handle)) {
return -1;
}
} else {
if (flags & IPC_EXCL) {
return -1;
}
}
shm = shm_get(key, NULL);
shm->segment = shm_handle;
shm->info = info_handle;
shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
if (created) {
shm->descriptor->shm_perm.key = key;
shm->descriptor->shm_segsz = size;
shm->descriptor->shm_ctime = time(NULL);
shm->descriptor->shm_cpid = getpid();
shm->descriptor->shm_perm.mode = flags;
shm->descriptor->shm_perm.cuid = shm->descriptor->shm_perm.cgid= 0;
shm->descriptor->shm_perm.gid = shm->descriptor->shm_perm.uid = 0;
shm->descriptor->shm_atime = shm->descriptor->shm_dtime = 0;
shm->descriptor->shm_lpid = shm->descriptor->shm_nattch = 0;
shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0;
}
if (shm->descriptor->shm_perm.key != key || size > shm->descriptor->shm_segsz ) {
CloseHandle(shm->segment);
UnmapViewOfFile(shm->descriptor);
CloseHandle(shm->info);
return -1;
}
return key;
}
TSRM_API void *shmat(int key, const void *shmaddr, int flags)
{
shm_pair *shm = shm_get(key, NULL);
if (!shm->segment) {
return (void*)-1;
}
shm->descriptor->shm_atime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch++;
shm->addr = MapViewOfFileEx(shm->segment, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL);
return shm->addr;
}
TSRM_API int shmdt(const void *shmaddr)
{
shm_pair *shm = shm_get(0, (void*)shmaddr);
if (!shm->segment) {
return -1;
}
shm->descriptor->shm_dtime = time(NULL);
shm->descriptor->shm_lpid = getpid();
shm->descriptor->shm_nattch--;
return UnmapViewOfFile(shm->addr) ? 0 : -1;
}
TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf) {
shm_pair *shm = shm_get(key, NULL);
if (!shm->segment) {
return -1;
}
switch (cmd) {
case IPC_STAT:
memcpy(buf, shm->descriptor, sizeof(struct shmid_ds));
return 0;
case IPC_SET:
shm->descriptor->shm_ctime = time(NULL);
shm->descriptor->shm_perm.uid = buf->shm_perm.uid;
shm->descriptor->shm_perm.gid = buf->shm_perm.gid;
shm->descriptor->shm_perm.mode = buf->shm_perm.mode;
return 0;
case IPC_RMID:
if (shm->descriptor->shm_nattch < 1) {
shm->descriptor->shm_perm.key = -1;
}
return 0;
default:
return -1;
}
}
TSRM_API char *realpath(char *orig_path, char *buffer)
{
int ret = GetFullPathName(orig_path, _MAX_PATH, buffer, NULL);
if(!ret || ret > _MAX_PATH) {
return NULL;
}
return buffer;
}
#endif
-106
View File
@@ -1,106 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2007 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.php.net/license/3_01.txt |
| If you did not receive a copy of the PHP license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@php.net so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Daniel Beulshausen <daniel@php4win.de> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#ifndef TSRM_WIN32_H
#define TSRM_WIN32_H
#include "TSRM.h"
#include <windows.h>
struct ipc_perm {
int key;
unsigned short uid;
unsigned short gid;
unsigned short cuid;
unsigned short cgid;
unsigned short mode;
unsigned short seq;
};
struct shmid_ds {
struct ipc_perm shm_perm;
int shm_segsz;
time_t shm_atime;
time_t shm_dtime;
time_t shm_ctime;
unsigned short shm_cpid;
unsigned short shm_lpid;
short shm_nattch;
};
typedef struct {
FILE *stream;
HANDLE prochnd;
} process_pair;
typedef struct {
void *addr;
HANDLE info;
HANDLE segment;
struct shmid_ds *descriptor;
} shm_pair;
typedef struct {
process_pair *process;
shm_pair *shm;
int process_size;
int shm_size;
char *comspec;
} tsrm_win32_globals;
#ifdef ZTS
# define TWG(v) TSRMG(win32_globals_id, tsrm_win32_globals *, v)
#else
# define TWG(v) (win32_globals.v)
#endif
#define IPC_PRIVATE 0
#define IPC_CREAT 00001000
#define IPC_EXCL 00002000
#define IPC_NOWAIT 00004000
#define IPC_RMID 0
#define IPC_SET 1
#define IPC_STAT 2
#define IPC_INFO 3
#define SHM_R PAGE_READONLY
#define SHM_W PAGE_READWRITE
#define SHM_RDONLY FILE_MAP_READ
#define SHM_RND FILE_MAP_WRITE
#define SHM_REMAP FILE_MAP_COPY
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env);
TSRM_API FILE *popen(const char *command, const char *type);
TSRM_API int pclose(FILE *stream);
TSRM_API int tsrm_win32_access(const char *pathname, int mode);
TSRM_API int shmget(int key, int size, int flags);
TSRM_API void *shmat(int key, const void *shmaddr, int flags);
TSRM_API int shmdt(const void *shmaddr);
TSRM_API int shmctl(int key, int cmd, struct shmid_ds *buf);
TSRM_API char *realpath(char *orig_path, char *buffer);
#endif
-22097
View File
File diff suppressed because it is too large. Load diff
-186
View File
@@ -1,186 +0,0 @@
// $Header$
// FlexLexer.h -- define interfaces for lexical analyzer classes generated
// by flex
// Copyright (c) 1993 The Regents of the University of California.
// All rights reserved.
//
// This code is derived from software contributed to Berkeley by
// Kent Williams and Tom Epperly.
//
// Redistribution and use in source and binary forms with or without
// modification are permitted provided that: (1) source distributions retain
// this entire copyright notice and comment, and (2) distributions including
// binaries display the following acknowledgement: ``This product includes
// software developed by the University of California, Berkeley and its
// contributors'' in the documentation or other materials provided with the
// distribution and in all advertising materials mentioning features or use
// of this software. Neither the name of the University nor the names of
// its contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
// WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
// This file defines FlexLexer, an abstract class which specifies the
// external interface provided to flex C++ lexer objects, and yyFlexLexer,
// which defines a particular lexer class.
//
// If you want to create multiple lexer classes, you use the -P flag
// to rename each yyFlexLexer to some other xxFlexLexer. You then
// include <FlexLexer.h> in your other sources once per lexer class:
//
// #undef yyFlexLexer
// #define yyFlexLexer xxFlexLexer
// #include <FlexLexer.h>
//
// #undef yyFlexLexer
// #define yyFlexLexer zzFlexLexer
// #include <FlexLexer.h>
// ...
#ifndef FLEXLEXER_H
// Never included before - need to define base class.
#define FLEXLEXER_H
#include <iostream.h>
extern "C++" {
struct yy_buffer_state;
typedef int yy_state_type;
class FlexLexer {
public:
virtual ~FlexLexer() { }
const char* YYText() { return yytext; }
int YYLeng() { return yyleng; }
virtual void
yy_switch_to_buffer( struct yy_buffer_state* new_buffer ) = 0;
virtual struct yy_buffer_state*
yy_create_buffer( istream* s, int size ) = 0;
virtual void yy_delete_buffer( struct yy_buffer_state* b ) = 0;
virtual void yyrestart( istream* s ) = 0;
virtual int yylex() = 0;
// Call yylex with new input/output sources.
int yylex( istream* new_in, ostream* new_out = 0 )
{
switch_streams( new_in, new_out );
return yylex();
}
// Switch to new input/output streams. A nil stream pointer
// indicates "keep the current one".
virtual void switch_streams( istream* new_in = 0,
ostream* new_out = 0 ) = 0;
int lineno() const { return yylineno; }
int debug() const { return yy_flex_debug; }
void set_debug( int flag ) { yy_flex_debug = flag; }
protected:
char* yytext;
int yyleng;
int yylineno; // only maintained if you use %option yylineno
int yy_flex_debug; // only has effect with -d or "%option debug"
};
}
#endif
#if defined(yyFlexLexer) || ! defined(yyFlexLexerOnce)
// Either this is the first time through (yyFlexLexerOnce not defined),
// or this is a repeated include to define a different flavor of
// yyFlexLexer, as discussed in the flex man page.
#define yyFlexLexerOnce
class yyFlexLexer : public FlexLexer {
public:
// arg_yyin and arg_yyout default to the cin and cout, but we
// only make that assignment when initializing in yylex().
yyFlexLexer( istream* arg_yyin = 0, ostream* arg_yyout = 0 );
virtual ~yyFlexLexer();
void yy_switch_to_buffer( struct yy_buffer_state* new_buffer );
struct yy_buffer_state* yy_create_buffer( istream* s, int size );
void yy_delete_buffer( struct yy_buffer_state* b );
void yyrestart( istream* s );
virtual int yylex();
virtual void switch_streams( istream* new_in, ostream* new_out );
protected:
virtual int LexerInput( char* buf, int max_size );
virtual void LexerOutput( const char* buf, int size );
virtual void LexerError( const char* msg );
void yyunput( int c, char* buf_ptr );
int yyinput();
void yy_load_buffer_state();
void yy_init_buffer( struct yy_buffer_state* b, istream* s );
void yy_flush_buffer( struct yy_buffer_state* b );
int yy_start_stack_ptr;
int yy_start_stack_depth;
int* yy_start_stack;
void yy_push_state( int new_state );
void yy_pop_state();
int yy_top_state();
yy_state_type yy_get_previous_state();
yy_state_type yy_try_NUL_trans( yy_state_type current_state );
int yy_get_next_buffer();
istream* yyin; // input source for default LexerInput
ostream* yyout; // output sink for default LexerOutput
struct yy_buffer_state* yy_current_buffer;
// yy_hold_char holds the character lost when yytext is formed.
char yy_hold_char;
// Number of characters read into yy_ch_buf.
int yy_n_chars;
// Points to current character in buffer.
char* yy_c_buf_p;
int yy_init; // whether we need to initialize
int yy_start; // start state number
// Flag which is used to allow yywrap()'s to do buffer switches
// instead of setting up a fresh yyin. A bit of a hack ...
int yy_did_buffer_switch_on_eof;
// The following are not always needed, but may be depending
// on use of certain flex features (like REJECT or yymore()).
yy_state_type yy_last_accepting_state;
char* yy_last_accepting_cpos;
yy_state_type* yy_state_buf;
yy_state_type* yy_state_ptr;
char* yy_full_match;
int* yy_full_state;
int yy_full_lp;
int yy_lp;
int yy_looking_for_trail_begin;
int yy_more_flag;
int yy_more_len;
int yy_more_offset;
int yy_prev_more_offset;
};
#endif
-56
View File
@@ -1,56 +0,0 @@
--------------------------------------------------------------------
The Zend Engine License, Version 2.00
Copyright (c) 1999-2006 Zend Technologies Ltd. All rights reserved.
--------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
modification, is permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
3. The names "Zend" and "Zend Engine" must not be used to endorse
or promote products derived from this software without prior
permission from Zend Technologies Ltd. For written permission,
please contact license@zend.com.
4. Zend Technologies Ltd. may publish revised and/or new versions
of the license from time to time. Each version will be given a
distinguishing version number.
Once covered code has been published under a particular version
of the license, you may always continue to use it under the
terms of that version. You may also choose to use such covered
code under the terms of any subsequent version of the license
published by Zend Technologies Ltd. No one other than Zend
Technologies Ltd. has the right to modify the terms applicable
to covered code created under this License.
5. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes the Zend Engine, freely available at
http://www.zend.com"
6. All advertising materials mentioning features or use of this
software must display the following acknowledgment:
"The Zend Engine is freely available at http://www.zend.com"
THIS SOFTWARE IS PROVIDED BY ZEND TECHNOLOGIES LTD. ``AS IS'' AND
ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ZEND
TECHNOLOGIES LTD. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
SUCH DAMAGE.
--------------------------------------------------------------------
-54
View File
@@ -1,54 +0,0 @@
## Process this file with automake to produce Makefile.in -*- makefile -*-
#CLEANFILES = zend_language_parser.c zend_language_parser.h zend_language_scanner.c zend_language_parser.output zend_ini_parser.c zend_ini_parser.h zend_ini_scanner.c zend_ini_parser.output
AUTOMAKE_OPTIONS=foreign
noinst_LTLIBRARIES=libZend.la
libZend_la_SOURCES=\
zend_language_parser.y zend_language_scanner.l \
zend_ini_parser.y zend_ini_scanner.l \
zend_alloc.c zend_compile.c zend_constants.c zend_dynamic_array.c \
zend_execute.c zend_execute_API.c zend_highlight.c zend_llist.c \
zend_opcode.c zend_operators.c zend_ptr_stack.c zend_stack.c \
zend_variables.c zend.c zend_API.c zend_extensions.c zend_hash.c \
zend_list.c zend_indent.c zend_builtin_functions.c zend_sprintf.c \
zend_ini.c zend_qsort.c zend_objects.c zend_object_handlers.c \
zend_objects_API.c zend_ts_hash.c zend_stream.c \
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_multibyte.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
# automake isn't too clever about "non-standard" use of lex and yacc
$(libZend_la_OBJECTS): zend_language_parser.h
zend_ini_scanner.lo: zend_ini_parser.h
# Language parser/scanner rules
zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
zend_language_parser.h: zend_language_parser.c
zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o zend_language_parser.c
# INI parser/scanner rules
zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o zend_ini_parser.c
zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
zend_ini_parser.h: zend_ini_parser.c
depend:
zend_execute.lo: $(srcdir)/zend_execute.c
$(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(CPPFLAGS) $(INLINE_CFLAGS) -c $(srcdir)/zend_execute.c
-1
View File
@@ -1 +0,0 @@
Zend/zend_execute.lo: $(srcdir)/zend_vm_execute.h $(srcdir)/zend_vm_opcodes.h
-195
View File
@@ -1,195 +0,0 @@
Creating an object
------------------
Object can be created in the following ways:
1. As a result of a function call. E.g.:
$foo = create_new_foo("parameter");
$foo->run();
The function should create a new zval, create new object and get the
handle for it, set handle and handler table as needed. Note that the
handle is the only ID of the object, so it should be enough to
identify it.
2. Overriding create_object handler for class. E.g.:
$foo = new Java("some.Class.here", "parameter");
$foo->run();
The create_object handler function should create a new zval, create
new object and get the handle for it, set handle and handler table as
needed, and also provide constructor method that would handle
constructor call. The get_constructor handler table entry should be
used for that. Do not rely class entry's constructor, unless you refer
to it from get_constructor handler.
Object maintenance
------------------
The handlers add_ref and del_ref are called when a new zval referring
to the object is created. This does not create a new object - both
zvals still refer to the same object.
clone_obj handler should create a new object, identical to an old one,
but being a separate entity.
delete_obj should destroy an object, all references to it become
invalid.
Object access - read
--------------------
read_property is used to read object's property. This value is not
meant to be changed. The handler returns zval * with the value.
Object access - write
---------------------
write_property is used to directly write object's property by
name. This handler is used to assign property variables or to change them
in operations like += or ++ (unless get_property_zval_ptr is also set).
get_property_zval_ptr is used to obtain pointer to modifiable zval for
operations like += or ++. This should be used only if your object model
stores properties as real zval's that can be modified from outside.
Otherwise this handler should be NULL and the engine will use
read_property and write_property instead.
get_property_ptr is used to obtain zval ** for future writing to
it. If your object properties are stored as zval*, return real place
where the property is stored. If the aren't, the best way is to create
proxy object and handle it via get and set methods (see below).
This method is meant to be used for send-by-reference and assign-by-reference
use of object properties. If you don;t want to implement property
referencing for your objects, you can set this handler to NULL.
get and set handlers are used when engine needs to access the object
as a value. E.g., in the following situation:
$foo =& $obj->bar;
$foo = 1;
if $foo is an object (e.g., proxy object from get_property_ptr) it
would be accessed using write handler.
Object access - method call
---------------------------
get_method handler is used to find method description by name. It
should set right type, function name and parameter mask for the
method. If the type is ZEND_OVERLOADED_FUNCTION, the method would be
called via call_method handler, otherwise it would be called with
standard Zend means.
get_constructor performs the same function as get_method, but for the
object constructor.
call_method handler is used to perform method call. Parameters are
passed like to any other Zend internal function.
Object - comparison
-------------------
Objects can be compared via compare_objects handler. This is used with
== operation, === compares objects by handles, i.e., return true if
and only if it's really the same object. Note that objects from
different object types (i.e., having different handlers) can not be
compared.
Objects - reflection
--------------------
get_class_name is used to retrieve class name of the object.
get_class_entry returns class entry (zend_class_entry) for the object,
in case there exists PHP class for it.
No other reflection functions are currently implemented.
Objects - data structures and handlers
---------------------------------------
The object is represented by the following structure:
struct _zend_object_value {
zend_object_handle handle;
zend_object_handlers *handlers;
};
handle is an ID of the object among the objects of the same type (not
class!). The type of the object and how it behaves is determined by
the handler table.
typedef struct _zend_object_handlers {
zend_object_add_ref_t add_ref;
zend_object_del_ref_t del_ref;
zend_object_delete_obj_t delete_obj;
zend_object_clone_obj_t clone_obj;
zend_object_read_property_t read_property;
zend_object_write_property_t write_property;
zend_object_get_property_ptr_t get_property_ptr;
zend_object_get_property_zval_ptr_t get_property_zval_ptr;
zend_object_get_t get;
zend_object_set_t set;
zend_object_has_property_t has_property;
zend_object_unset_property_t unset_property;
zend_object_get_properties_t get_properties;
zend_object_get_method_t get_method;
zend_object_call_method_t call_method;
zend_object_get_constructor_t get_constructor;
zend_object_get_class_entry_t get_class_entry;
zend_object_get_class_name_t get_class_name;
zend_object_compare_t compare_objects;
} zend_object_handlers;
See zend_object_handlers.h for prototypes. All objects are passed as zval's.
Handlers explained:
add_ref - called when a copy of the object handle is created.
del_ref - called when a copy of the object handle is destroyed.
delete_obj - called when an object needs to be destroyed.
clone_obj - called when a new object identical to an old one should be
created (unlike Zend Engine 1, this never happens unless explicitly
asked for).
read_property - returns zval *, containing the value of the
property. Is used when value of the property should be retrieved for
reading.
write_property - assigns value to certain property of the object.
get_property_zval_ptr - retrieves zval** for being directly modified by
the engine. If your properties are not zval's, don't define it.
get_property_ptr - retrieves zval** for the property of the value, to
be used for read and write. If object properties are not zval's
natively, this method should create and return proxy object for use
with get and set methods.
get - retrieves zval* for object contents. To be used mainly with
proxy objects from get_property_ptr, but also may be used for
convert_to_* functions.
set - sets value for object contents. To be used mainly with
proxy objects from get_property_ptr.
has_property - checks if the object has certain property set.
unset_property - removes value for the property of the object
get_method - retrieves description of the method
call_method - calls the method (parameters should be put on stack like
for any other PHP internal function).
get_constructor - get description for the object constructor method
get_class_entry - should return the class entry for the object
get_class_name - get the name of the class the object belongs to
compare_objects - compares if two objects are equal
-34
View File
@@ -1,34 +0,0 @@
Zend Memory Manager
===================
General:
--------
The goal of the new memory manager (available since PHP 5.2) is to reduce memory
allocation overhead and speedup memory management.
The new manager's "configure" has no "--disable-zend-memory-manager" option,
but it has "--enable-malloc-mm" instead. It is enabled by default in DEBUG
build and disabled by default in RELEASE build. when enabled it allows selecting
between malloc and emalloc at runtime so you can use internal and external memory
debuggers without recompilation.
Debugging:
----------
Normal:
$ sapi/cli/php -r 'leak();'
Zend MM disabled:
$ USE_ZEND_ALLOC=0 valgrind --leak-check=full sapi/cli/php -r 'leak();'
Tweaking:
---------
The Zend MM can be tweaked using ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment
variables. Default values are "malloc" and "256K". Dependent on target system you
can also use "mmap_anon", "mmap_zero" and "win32" storage managers.
$ ZEND_MM_MEM_TYPE=mmap_anon ZEND_MM_SEG_SIZE=1M sapi/cli/php ..etc.
-108
View File
@@ -1,108 +0,0 @@
ZEND_VM
=======
ZEND_VM architecture allows specializing opcode handlers according to op_type
fields and using different execution methods (call threading, switch threading
and direct threading). As a result ZE2 got more than 20% speedup on raw PHP
code execution (with specialized executor and direct threading execution
method). As in most PHP applications raw execution speed isn't the limiting
factor but system calls and database callls are, your mileage with this patch
will vary.
Most parts of the old zend_execute.c go into zend_vm_def.h. Here you can
find opcode handlers and helpers. The typical opcode handler template looks
like this:
ZEND_VM_HANDLER(<OPCODE-NUMBER>, <OPCODE>, <OP1_TYPES>, <OP2_TYPES>)
{
<HANDLER'S CODE>
}
<OPCODE-NUMBER> is a opcode number (0, 1, ...)
<OPCODE> is an opcode name (ZEN_NOP, ZEND_ADD, :)
<OP1_TYPES> & <OP2_TYPES> are masks for allowed operand op_types. Specializer
will generate code only for defined combination of types. You can use any
combination of the following op_types UNUSED, CONST, VAR, TMP and CV also
you can use ANY mask to disable specialization according operand's op_type.
<HANDLER'S CODE> is a handler's code itself. For most handlers it stills the
same as in old zend_execute.c, but now it uses macros to access opcode operands
and some internal executor data.
You can see the conformity of new macros to old code in the following list:
EXECUTE_DATA
execute_data
ZEND_VM_DISPATCH_TO_HANDLER(<OP>)
return <OP>_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
ZEND_VM_DISPATCH_TO_HELPER(<NAME>)
return <NAME>(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>)
return <NAME>(<VAL>, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU)
ZEND_VM_CONTINUE()
return 0
ZEND_VM_NEXT_OPCODE()
NEXT_OPCODE()
ZEND_VM_SET_OPCODE(<TARGET>
SET_OPCODE(<TARGET>
ZEND_VM_INC_OPCODE()
INC_OPCOD()
ZEND_VM_RETURN_FROM_EXECUTE_LOOP()
RETURN_FROM_EXECUTE_LOOP()
ZEND_VM_C_LABEL(<LABEL>):
<LABEL>:
ZEND_VM_C_GOTO(<LABEL>)
goto <LABEL>
OP<X>_TYPE
opline->op<X>.op_type
GET_OP<X>_ZVAL_PTR(<TYPE>)
get_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
GET_OP<X>_ZVAL_PTR_PTR(<TYPE>)
get_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
GET_OP<X>_OBJ_ZVAL_PTR(<TYPE>)
get_obj_zval_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
GET_OP<X>_OBJ_ZVAL_PTR_PTR(<TYPE>)
get_obj_zval_ptr_ptr(&opline->op<X>, EX(Ts), &free_op<X>, <TYPE>)
IS_OP<X>_TMP_FREE()
IS_TMP_FREE(free_op<X>)
FREE_OP<X>()
FREE_OP(free_op<X>)
FREE_OP<X>_IF_VAR()
FREE_VAR(free_op<X>)
FREE_OP<X>_VAR_PTR()
FREE_VAR_PTR(free_op<X>)
Executor's helpers can be defined without parameters or with one parameter.
This is done with the following constructs:
ZEND_VM_HELPER(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>)
{
<HELPER'S CODE>
}
ZEND_VM_HELPER_EX(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>, <PARAM_SPEC>)
{
<HELPER'S CODE>
}
Executor's code is generated by PHP script zend_vm_gen.php it uses zend_vm_def.h
and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and
zend_vm_execute.h. The first file is a list of opcode definitions. It is
included from zend_compile.h. The second one is an executor code itself. It is
included from zend_execute.c.
zend_vm_gen.php can produce different kind of executors. You can select
different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can
disable opcode specialization using --without-specializer. You can include or
exclude old executor together with specialized one using --without-old-executor.
At last you can debug executor using original zend_vm_def.h or generated file
zend_vm_execute.h. Debugging with original file requires --with-lines
option. By default ZE2 uses the following command to generate executor:
$ php zend_vm_gen.php --with-vm-kind=CALL
Zend Engine II currently includes two executors during the build process, one
is the specialized version and the other is the old one non-specialized with
function handlers. By default Zend Engine II uses the specialized one but you
can switch to the old executor at runtime by calling zend_vm_use_old_executor().
-136
View File
@@ -1,136 +0,0 @@
Revamped object model using object handles
===========================================
Background
----------
In the Zend Engine 1.0 (and its predecessor the PHP 3 scripting
engine) the object model's design is that instantiated objects are
language values. This means that when programmers are performing
operations, such variable assignment and passing parameters to
functions, objects are handled very similarly to the way other
primitive types are handled such as integers and strings.
Semantically this means that the whole object is being copied. The
approach Java takes is different where one refers to objects by handle
and not by value (one can think of a handle as an objects' ID).
Need
----
Unfortunately, the approach taken up to now has severely limited the
Zend Engine's object oriented model, both feature and simplicity
wise. One of the main problems with the former approach is that object
instantiation and duplication is very hard to control, a problem which
can not only lead to inefficient development but also often to strange
run-time behavior. Changing the object model to a handle oriented
model will allow the addressing of many needs such as destructors,
de-referencing method return values, tight control of object
duplication and more.
Overview
--------
The proposed object model is very much influenced by the Java
model. In general, when you create a new object you will be getting a
handle to the object instead of the object itself. When this handle is
sent to functions, assigned and copied it is only the handle which is
copied/sent/assigned. The object itself is never copied nor
duplicated. This results in all handles of this object to always point
at the same object making it a very consistent solution and saving
unnecessary duplication and confusing behavior.
Functionality
-------------
After this change the basic use of objects will be almost identical to
previous versions of the scripting engine. However, you won't bump
into awkward and confusing copying & destructing of objects. In order
to create and use a new object instance you will do the following:
$object = new MyClass(); $object->method();
The previous code will assign $object the handle of a new instance of
the class MyClass and call one of its methods.
Consider the following code:
1 class MyClass
2 {
3 function setMember($value)
4 {
5 $this->member = $value;
6 }
7
8 function getMember()
9 {
10 return $this->member;
11 }
12 }
13
14 function foo($obj)
15 {
16 $obj->setMember("foo");
17 }
18
19 $object = new MyClass();
20 $object->setMember("bar");
21 foo($object);
22 print $object->getMember();
Without the new Java-like handles, at line 20 the objects' data member
member is set to the string value of "bar". Because of the internal
representation of objects in the Zend Engine 1.0, the object is marked
as a reference, and when it is sent by value to the function foo, it
is duplicated (!). Therefore, the call to foo() on line 21 will
result in the $obj->setMember("foo") call being called on a duplicate
of $object. Line 22 will then result in "bar" being printed.
This is how the scripting engine has worked until today. Most
developers are probably unaware of the fact that they aren't always
talking to the same object but often duplicates; others may have
realized this can usually be solved by always passing objects by
reference (unless a replica is actually desired, which is uncommon).
The new object model will allow for a much more intuitive
implementation of the code. On line 21, the object's handle (ID) is
passed to foo() by value. Inside foo(), the object is fetched
according to this handle and, therefore, the setMember() method is
called on the originally instantiated object and not a copy. Line 22
will therefore result in "foo" being printed. This approach gives
developers tighter control of when objects are created and duplicated.
An additional not-as-important benefit is that the object handle will
be passed to foo() by value, which most probably will also save
unnecessary duplication of the value containing the ID itself and thus
additionally improving run-time performance.
This was just a simple description of why the new object model solves
awkward behavior and makes object handling much easier, intuitive and
efficient. The importance of this change goes far beyond what is
mentioned in this section as you will see in further sections which
describe new features with a majority of them being based on this
change.
Compatibility Notes
--------------------
Many PHP programmers aren't even aware of the copying quirks of the
current object model and, therefore, there is a relatively good chance
that the amount of PHP applications that will work out of the box or
after a very small amount of modifications would be high.
To simplify migration, version 2.0 will support an optional
'auto-clone' feature, which will perform a cloning of the object
whenever it would have been copied in version 1.0. Optionally, it
will also be possible to request that the engine will emit an E_NOTICE
message whenever such an automatic clone occurs, in order to allow
developers to gradually migrate to the version 2.0-style behavior
(without automatic clones).
Dependencies
------------
The new object model is not dependent on other features. Many of the
other Zend Engine 2.0 features, such as the $foo->bar()->barbara()
syntax, destructors and others completely rely on this new object
model.
-169
View File
@@ -1,169 +0,0 @@
Title: Zend 2.0 Namespaces
Version: $Revision$
Status: declined
Maintainer: Stig S. Bakken <ssb@php.net>
Created: 2001-09-08
Modified: 2001-09-08
1. Background/Need
==================
PHP and Zend 1.0 have come to a point where a lot of reusable code is
being written; from simple functions and classes to entire application
frameworks. It is becoming increasingly difficult to avoid symbol
name collisions with the current scoping methods.
The symbol scopes available in Zend 1.0 are the global scope, the
class scope and the function scope. All scopes but classes may
contain variables, only the class and global scopes may contain
functions, while only the global scope may contain constants and
classes. This means that all of Zend 1.0's scoping methods are
inherently limited for solving symbol name collision problems.
2. Overview
===========
Namespaces in Zend 2.0 provide a way to manage the symbol collision
problem by making it possible to define multiple symbol tables able to
contain all types of symbols. Zend will get the notion of a current
namespace, defaulting to the current global one. The current name
space may be changed on a file-by-file basis. Symbols in other name
spaces than the current one may be referenced using a new namespace
operator. It will be possible to "import" symbols from one namespace
into another.
3. Functionality
================
3.1. Namespace Syntax
=====================
The namespace operator ":" is used to refer to symbols in other
namespaces than the current one:
Class: Namespace:class
Function: Namespace:function
Static method: Namespace:class::method
Variable: $Namespace:variable
Constant: Namespace:CONSTANT
Class variable: $Namespace:class::variable
To refer to symbols in the global namespace, symbols are prefixed with
only the namespace operator:
Class: :class
Function: :function
Static method: :class::method
Variable: $:variable
Constant: :CONSTANT
Class variable: $:class::variable
Note: $:variable will effectively be just another syntax for
$GLOBALS['variable'].
A namespace may have a name containing a ":", it is always the last
":" character in the symbol qualifier that is the actual namespace
operator:
Class: Name:Space:class
Function: Name:Space:function
Static method: Name:Space:class::method
Variable: $Name:Space:variable
Constant: Name:Space:CONSTANT
Class variable: $Name:Space:class::variable
(Here, the ":" between "Name" and "Space" is part of the name, it is
the one after "Space" that is the namespace operator.)
3.2. Defining Namespaces
========================
Individual files may define a namespace that will apply to the entire
file. If no "namespace" operator occurs in the file, it will be in
the global namespace:
1 namespace HTML;
2
3 class Form {
4 function Form() {
5 // constructor
6 }
7 // ...
8 }
Or with the "nested" name syntax:
1 namespace HTML:Form;
2
3 class Image {
4 var $src;
5 function Image($src) {
6 $this->src = $src;
7 }
8 // ...
9 }
Code executed within the "HTML" namespace may refer to the Form class
as just "Form". Code executed from within other namespaces has to
refer to it as "HTML:Form". The "namespace" statement must occur
before any other statements in the file.
# [ssb 2001-09-08]:
# Should it be possible to "add" symbols to a namespace by including a
# second file with the same namespace statement?
3.3. Importing Symbols
======================
It is possible to import symbols from another namespace into the
current one with the "import" statement:
import * from HTML; // all symbols
import Form from HTML; // single symbols
import Form,Table from HTML; // multiple symbols
There is a potential for name clashes between symols of different
types that have the same qualifier syntax. These are resolved in this
order: class, function, constant.
Optionally, the symbol type may be explicitly given to import (as
"class", "function", "variable" or "constant"):
import class Form from HTML;
And finally, you may import all symbols of a given type:
import constant * from HTML:Table;
The namespace with its symbols must already be defined before using
"import".
4. Compatibility Notes
======================
Old code that does not take advantage of namespaces will run without
modifications.
5. Dependencies
===============
The class variable syntax depends on this class variables being
implemented in the new ZE2 object model.
6. Acknowledgements
===================
Andi Gutmans <andi@zend.com> and Zeev Suraski <zeev@zend.com> for
initial ZE2 namespaces proposal
Dean Hall <php@apt7.com> for the initial symbol qualification syntax
-72
View File
@@ -1,72 +0,0 @@
Title: Loose type requirements for functions
Version: $Revision$
Status: draft
Maintainer: Brian Moon <brianm@dealnews.com>
Created: 2001-09-17
Modified: 2001-09-17
1. Background/Need
==================
Many internal function of PHP will reject parameters because of their
type (the array and variable function come to mind). For userland
this is not an easy task as there is no uniform way to do it. An
addition to the engine for requiring loose types would allow
delevopers to know that the data passed to their functions is of the
correct type and reduce the need for duplicating the same code in
every function to check for the type of data.
2. Overview
===========
Loose typing mostly means evaluating the contents of the variable and
not the type of the variable itself. The requirements for this would
and should work much like several of the is_* functions do now.
The typing of parameters would be optional and those not typed would
simply continue to be treated as they are now.
3. Functionality
================
3.1. Allowed Types
==================
Only loose types should be needed to ensure the data is usable by the
function. Duplicating the functionallity of is_scalar, is_resource,
is_array and is_object should give developers all the information they
need to use a variable correctly.
3.2. Syntax
===========
The current function syntax should be expanded to allow typing of
variables inline in a C style.
function foo ($var){
}
could be changed to require an array such as:
function foo (array $var){
}
3.3. Errors
===========
Mis-matches in type should be reported as fatal errors and should halt
the execution of a script as that function can not be run and code
following could not reliably run.
4. Compatibility Notes
======================
Old code that does not take advantage of this will run without
modifications.
-1166
View File
File diff suppressed because it is too large. Load diff
-594
View File
@@ -1,594 +0,0 @@
# Microsoft Developer Studio Project File - Name="Zend" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=Zend - Win32 Release_inline
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Zend.mak" CFG="Zend - Win32 Release_inline"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Zend - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE "Zend - Win32 Release_inline" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "Zend - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug" /D "_LIB" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=1 /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug"
# ADD RSC /l 0x40d /d "_Debug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Zend___Win32_Release_inline"
# PROP BASE Intermediate_Dir "Zend___Win32_Release_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_inline"
# PROP Intermediate_Dir "Release_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D ZEND_DEBUG=0 /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug" /D "_LIB" /D "Zend_EXPORTS" /D "LIBZEND_EXPORTS" /D "TSRM_EXPORTS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D "WIN32" /D "_MBCS" /D "ZEND_WIN32" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug"
# ADD RSC /l 0x40d /d "NDebug"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "Zend - Win32 Release"
# Name "Zend - Win32 Debug"
# Name "Zend - Win32 Release_inline"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.c
# End Source File
# Begin Source File
SOURCE=.\zend_indent.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.c
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.c
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.c"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.c"
# End Source File
# Begin Source File
SOURCE=.\zend_list.c
# End Source File
# Begin Source File
SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.c
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_variables.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\zend.h
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.h
# End Source File
# Begin Source File
SOURCE=.\zend_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.h
# End Source File
# Begin Source File
SOURCE=.\zend_compile.h
# End Source File
# Begin Source File
SOURCE=.\zend_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\zend_constants.h
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.h
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.h
# End Source File
# Begin Source File
SOURCE=.\zend_errors.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute_locks.h
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals_macros.h
# End Source File
# Begin Source File
SOURCE=.\zend_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.h
# End Source File
# Begin Source File
SOURCE=.\zend_indent.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.h
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.h
# End Source File
# Begin Source File
SOURCE=.\zend_istdiostream.h
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.h"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.h"
# End Source File
# Begin Source File
SOURCE=.\zend_list.h
# End Source File
# Begin Source File
SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_operators.h
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.h
# End Source File
# Begin Source File
SOURCE=.\zend_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.h
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_variables.h
# End Source File
# End Group
# Begin Group "Parsers"
# PROP Default_Filter "y"
# Begin Source File
SOURCE=.\zend_ini_parser.y
!IF "$(CFG)" == "Zend - Win32 Release"
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.y"
!IF "$(CFG)" == "Zend - Win32 Release"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Scanners"
# PROP Default_Filter "l"
# Begin Source File
SOURCE=.\flex.skl
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.l
!IF "$(CFG)" == "Zend - Win32 Release"
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.l"
!IF "$(CFG)" == "Zend - Win32 Release"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Debug"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "Zend - Win32 Release_inline"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -i -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Text Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\ZEND_BUGS
# End Source File
# Begin Source File
SOURCE=.\ZEND_CHANGES
# End Source File
# Begin Source File
SOURCE=.\ZEND_TODO
# End Source File
# End Group
# Begin Group "Resources"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\zend.ico
# End Source File
# End Group
# End Target
# End Project
-390
View File
@@ -1,390 +0,0 @@
dnl
dnl $Id$
dnl
dnl This file contains Zend specific autoconf functions.
dnl
AC_DEFUN([LIBZEND_CHECK_INT_TYPE],[
AC_MSG_CHECKING(for $1)
AC_TRY_COMPILE([
#if HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#if HAVE_INTTYPES_H
#include <inttypes.h>
#elif HAVE_STDINT_H
#include <stdint.h>
#endif],
[if (($1 *) 0)
return 0;
if (sizeof ($1))
return 0;
],[
AC_DEFINE_UNQUOTED([HAVE_]translit($1,a-z_-,A-Z__), 1,[Define if $1 type is present. ])
AC_MSG_RESULT(yes)
], AC_MSG_RESULT(no)
)dnl
])
AC_DEFUN([LIBZEND_BASIC_CHECKS],[
AC_REQUIRE([AC_PROG_YACC])
AC_REQUIRE([AC_PROG_CC])
AC_REQUIRE([AC_PROG_CC_C_O])
AC_REQUIRE([AC_PROG_LEX])
AC_REQUIRE([AC_HEADER_STDC])
LIBZEND_BISON_CHECK
dnl Ugly hack to get around a problem with gcc on AIX.
if test "$CC" = "gcc" -a "$ac_cv_prog_cc_g" = "yes" -a \
"`uname -sv`" = "AIX 4"; then
CFLAGS=`echo $CFLAGS | sed -e 's/-g//'`
fi
dnl Hack to work around a Mac OS X cpp problem
dnl Known versions needing this workaround are 5.3 and 5.4
if test "$ac_cv_prog_gcc" = "yes" -a "`uname -s`" = "Rhapsody"; then
CPPFLAGS="$CPPFLAGS -traditional-cpp"
fi
AC_CHECK_HEADERS(
inttypes.h \
stdint.h \
limits.h \
malloc.h \
string.h \
unistd.h \
stdarg.h \
sys/types.h \
sys/time.h \
signal.h \
unix.h \
stdlib.h \
mach-o/dyld.h \
dlfcn.h)
AC_TYPE_SIZE_T
AC_TYPE_SIGNAL
AC_DEFUN([LIBZEND_LIBDL_CHECKS],[
AC_CHECK_LIB(dl, dlopen, [LIBS="-ldl $LIBS"])
AC_CHECK_FUNC(dlopen,[AC_DEFINE(HAVE_LIBDL, 1,[ ])])
])
AC_DEFUN([LIBZEND_DLSYM_CHECK],[
dnl
dnl Ugly hack to check if dlsym() requires a leading underscore in symbol name.
dnl
AC_MSG_CHECKING([whether dlsym() requires a leading underscore in symbol names])
_LT_AC_TRY_DLOPEN_SELF([
AC_MSG_RESULT(no)
], [
AC_MSG_RESULT(yes)
AC_DEFINE(DLSYM_NEEDS_UNDERSCORE, 1, [Define if dlsym() requires a leading underscore in symbol names. ])
], [
AC_MSG_RESULT(no)
], [])
])
dnl This is required for QNX and may be some BSD derived systems
AC_CHECK_TYPE( uint, unsigned int )
AC_CHECK_TYPE( ulong, unsigned long )
dnl Check if int32_t and uint32_t are defined
LIBZEND_CHECK_INT_TYPE(int32_t)
LIBZEND_CHECK_INT_TYPE(uint32_t)
dnl Checks for library functions.
AC_FUNC_VPRINTF
AC_FUNC_MEMCMP
AC_FUNC_ALLOCA
AC_CHECK_FUNCS(memcpy strdup getpid kill strtod strtol finite fpclass)
AC_ZEND_BROKEN_SPRINTF
AC_CHECK_FUNCS(finite isfinite isinf isnan)
ZEND_FP_EXCEPT
])
AC_DEFUN([LIBZEND_ENABLE_DEBUG],[
AC_ARG_ENABLE(debug,
[ --enable-debug Compile with debugging symbols],[
ZEND_DEBUG=$enableval
],[
ZEND_DEBUG=no
])
])
AC_DEFUN([LIBZEND_OTHER_CHECKS],[
AC_ARG_WITH(zend-vm,
[ --with-zend-vm=TYPE Set virtual machine dispatch method. Type is
one of "CALL", "SWITCH" or "GOTO" [TYPE=CALL]],[
PHP_ZEND_VM=$withval
],[
PHP_ZEND_VM=CALL
])
AC_ARG_ENABLE(maintainer-zts,
[ --enable-maintainer-zts Enable thread safety - for code maintainers only!!],[
ZEND_MAINTAINER_ZTS=$enableval
],[
ZEND_MAINTAINER_ZTS=no
])
AC_ARG_ENABLE(inline-optimization,
[ --disable-inline-optimization
If building zend_execute.lo fails, try this switch],[
ZEND_INLINE_OPTIMIZATION=$enableval
],[
ZEND_INLINE_OPTIMIZATION=yes
])
AC_ARG_ENABLE(zend-multibyte,
[ --enable-zend-multibyte Compile with zend multibyte support], [
ZEND_MULTIBYTE=$enableval
],[
ZEND_MULTIBYTE=no
])
AC_MSG_CHECKING([virtual machine dispatch method])
AC_MSG_RESULT($PHP_ZEND_VM)
AC_MSG_CHECKING(whether to enable thread-safety)
AC_MSG_RESULT($ZEND_MAINTAINER_ZTS)
AC_MSG_CHECKING(whether to enable inline optimization for GCC)
AC_MSG_RESULT($ZEND_INLINE_OPTIMIZATION)
AC_MSG_CHECKING(whether to enable Zend debugging)
AC_MSG_RESULT($ZEND_DEBUG)
AC_MSG_CHECKING(whether to enable Zend multibyte)
AC_MSG_RESULT($ZEND_MULTIBYTE)
case $PHP_ZEND_VM in
SWITCH)
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_SWITCH,[virtual machine dispatch method])
;;
GOTO)
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_GOTO,[virtual machine dispatch method])
;;
*)
PHP_ZEND_VM=CALL
AC_DEFINE(ZEND_VM_KIND,ZEND_VM_KIND_CALL,[virtual machine dispatch method])
;;
esac
if test "$ZEND_DEBUG" = "yes"; then
AC_DEFINE(ZEND_DEBUG,1,[ ])
echo " $CFLAGS" | grep ' -g' >/dev/null || DEBUG_CFLAGS="-g"
if test "$CFLAGS" = "-g -O2"; then
CFLAGS=-g
fi
test -n "$GCC" && DEBUG_CFLAGS="$DEBUG_CFLAGS -Wall"
test -n "$GCC" && test "$USE_MAINTAINER_MODE" = "yes" && \
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations"
else
AC_DEFINE(ZEND_DEBUG,0,[ ])
fi
test -n "$DEBUG_CFLAGS" && CFLAGS="$CFLAGS $DEBUG_CFLAGS"
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
AC_DEFINE(ZTS,1,[ ])
CFLAGS="$CFLAGS -DZTS"
LIBZEND_CPLUSPLUS_CHECKS
fi
if test "$ZEND_MULTIBYTE" = "yes"; then
AC_DEFINE(ZEND_MULTIBYTE, 1, [ ])
fi
changequote({,})
if test -n "$GCC" && test "$ZEND_INLINE_OPTIMIZATION" != "yes"; then
INLINE_CFLAGS=`echo $ac_n "$CFLAGS $ac_c" | sed s/-O[0-9s]*//`
else
INLINE_CFLAGS="$CFLAGS"
fi
changequote([,])
AC_C_INLINE
AC_SUBST(INLINE_CFLAGS)
AC_MSG_CHECKING(target system is Darwin)
if echo "$target" | grep "darwin" > /dev/null; then
AC_DEFINE([DARWIN], 1, [Define if the target system is darwin])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl test and set the alignment define for ZEND_MM
dnl this also does the logarithmic test for ZEND_MM.
AC_MSG_CHECKING(for MM alignment and log values)
AC_TRY_RUN([
#include <stdio.h>
typedef union _mm_align_test {
void *ptr;
double dbl;
long lng;
} mm_align_test;
#if (defined (__GNUC__) && __GNUC__ >= 2)
#define ZEND_MM_ALIGNMENT (__alignof__ (mm_align_test))
#else
#define ZEND_MM_ALIGNMENT (sizeof(mm_align_test))
#endif
int main()
{
int i = ZEND_MM_ALIGNMENT;
int zeros = 0;
FILE *fp;
while (i & ~0x1) {
zeros++;
i = i >> 1;
}
fp = fopen("conftest.zend", "w");
fprintf(fp, "%d %d\n", ZEND_MM_ALIGNMENT, zeros);
fclose(fp);
exit(0);
}
], [
LIBZEND_MM_ALIGN=`cat conftest.zend | cut -d ' ' -f 1`
LIBZEND_MM_ALIGN_LOG2=`cat conftest.zend | cut -d ' ' -f 2`
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT, $LIBZEND_MM_ALIGN, [ ])
AC_DEFINE_UNQUOTED(ZEND_MM_ALIGNMENT_LOG2, $LIBZEND_MM_ALIGN_LOG2, [ ])
], [], [
dnl cross-compile needs something here
LIBZEND_MM_ALIGN=8
])
AC_MSG_RESULT(done)
dnl test for memory allocation using mmap(MAP_ANON)
AC_MSG_CHECKING(for memory allocation using mmap(MAP_ANON))
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdlib.h>
#include <stdio.h>
#ifndef MAP_ANON
# ifdef MAP_ANONYMOUS
# define MAP_ANON MAP_ANONYMOUS
# endif
#endif
#ifndef MREMAP_MAYMOVE
# define MREMAP_MAYMOVE 0
#endif
#ifndef MAP_FAILED
# define MAP_FAILED ((void*)-1)
#endif
#define SEG_SIZE (256*1024)
int main()
{
void *seg = mmap(NULL, SEG_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANON, -1, 0);
if (seg == MAP_FAILED) {
return 1;
}
if (munmap(seg, SEG_SIZE) != 0) {
return 2;
}
return 0;
}
], [
AC_DEFINE([HAVE_MEM_MMAP_ANON], 1, [Define if the target system has support for memory allocation using mmap(MAP_ANON)])
AC_MSG_RESULT(yes)
], [
AC_MSG_RESULT(no)
], [
dnl cross-compile needs something here
AC_MSG_RESULT(no)
])
dnl test for memory allocation using mmap("/dev/zero")
AC_MSG_CHECKING(for memory allocation using mmap("/dev/zero"))
AC_TRY_RUN([
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <stdlib.h>
#include <stdio.h>
#ifndef MAP_ANON
# ifdef MAP_ANONYMOUS
# define MAP_ANON MAP_ANONYMOUS
# endif
#endif
#ifndef MREMAP_MAYMOVE
# define MREMAP_MAYMOVE 0
#endif
#ifndef MAP_FAILED
# define MAP_FAILED ((void*)-1)
#endif
#define SEG_SIZE (256*1024)
int main()
{
int fd;
void *seg;
fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
if (fd < 0) {
return 1;
}
seg = mmap(NULL, SEG_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0);
if (seg == MAP_FAILED) {
return 2;
}
if (munmap(seg, SEG_SIZE) != 0) {
return 3;
}
if (close(fd) != 0) {
return 4;
}
return 0;
}
], [
AC_DEFINE([HAVE_MEM_MMAP_ZERO], 1, [Define if the target system has support for memory allocation using mmap("/dev/zero")])
AC_MSG_RESULT(yes)
], [
AC_MSG_RESULT(no)
], [
dnl cross-compile needs something here
AC_MSG_RESULT(no)
])
AC_CHECK_FUNCS(mremap)
])
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
])
AC_MSG_CHECKING(whether /dev/urandom exists)
if test -r "/dev/urandom" && test -c "/dev/urandom"; then
AC_DEFINE([HAVE_DEV_URANDOM], 1, [Define if the target system has /dev/urandom device])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
-258
View File
@@ -1,258 +0,0 @@
# Microsoft Developer Studio Generated Dependency File, included by ZendCore.mak
.\zend_alloc.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\alloca.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_compile.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_constants.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_execute.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_highlight.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_highlight.h"\
".\zend_llist.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_language_parser.tab.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_llist.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_llist.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_opcode.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
.\zend_operators.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
.\zend_ptr_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_ptr_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_stack.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_stack.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_variables.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend_operators.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_API.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_compile.h"\
".\zend_config.w32.h"\
".\zend_constants.h"\
".\zend_execute.h"\
".\zend_llist.h"\
".\zend_modules.h"\
".\zend_operators.h"\
".\zend_ptr_stack.h"\
".\zend_stack.h"\
".\zend_variables.h"\
".\zend.h"\
".\zend_API.h"\
".\zend_errors.h"\
".\zend_globals.h"\
".\zend_hash.h"\
".\zend_ini.h"\
".\zend_list.h"\
.\zend_hash.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
.\zend_ini.c : \
"..\..\..\program files\microsoft visual studio\vc98\include\basetsd.h"\
".\zend_alloc.h"\
".\zend_config.w32.h"\
".\zend.h"\
".\zend_errors.h"\
".\zend_hash.h"\
".\zend_ini.h"\
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
!IF "$(CFG)" == "ZendCore - Win32 Release"
!ELSEIF "$(CFG)" == "ZendCore - Win32 Debug"
!ENDIF
-728
View File
@@ -1,728 +0,0 @@
# Microsoft Developer Studio Project File - Name="ZendTS" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=ZendTS - Win32 Release_TSDbg
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "ZendTS.mak" CFG="ZendTS - Win32 Release_TSDbg"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "ZendTS - Win32 Release_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Debug_TS" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TS_inline" (based on "Win32 (x86) Static Library")
!MESSAGE "ZendTS - Win32 Release_TSDbg" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Release_TS"
# PROP BASE Intermediate_Dir "Release_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS"
# PROP Intermediate_Dir "Release_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDebug_TS" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "Debug_TS"
# PROP BASE Intermediate_Dir "Debug_TS"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Debug_TS"
# PROP Intermediate_Dir "Debug_TS"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_Debug_TS" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "." /D "_Debug_TS" /D ZEND_DEBUG=1 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x40d /d "_Debug_TS"
# ADD RSC /l 0x40d /d "_Debug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TS_inline"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TS_inline"
# PROP Intermediate_Dir "Release_TS_inline"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "WIN32" /D "_MBCS" /D ZEND_DEBUG=0 /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D "ZEND_WIN32_FORCE_INLINE" /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# PROP BASE Use_MFC 0
# PROP BASE Output_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Intermediate_Dir "ZendTS___Win32_Release_TSDbg"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Output_Dir "Release_TSDbg"
# PROP Intermediate_Dir "Release_TSDbg"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MD /W3 /GX /O2 /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT BASE CPP /YX
# ADD CPP /nologo /MD /W3 /GX /Zi /Od /I "." /D "NDebug_TS" /D ZEND_DEBUG=0 /D _WIN32_WINNT=0x400 /D "_LIB" /D "TSRM_EXPORTS" /D "LIBZEND_EXPORTS" /D "ZTS" /D "ZEND_WIN32" /D "WIN32" /D "_MBCS" /FR /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x40d /d "NDebug_TS"
# ADD RSC /l 0x40d /d "NDebug_TS"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "ZendTS - Win32 Release_TS"
# Name "ZendTS - Win32 Debug_TS"
# Name "ZendTS - Win32 Release_TS_inline"
# Name "ZendTS - Win32 Release_TSDbg"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\zend.c
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.c
# End Source File
# Begin Source File
SOURCE=.\zend_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
SOURCE=.\zend_constants.c
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# ADD CPP /I "..\TSRM"
# End Source File
# Begin Source File
SOURCE=.\zend_execute_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.c
# End Source File
# Begin Source File
SOURCE=.\zend_indent.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.c
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.c
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.c
# End Source File
# Begin Source File
SOURCE=.\zend_iterators.c
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.c"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.c"
# End Source File
# Begin Source File
SOURCE=.\zend_list.c
# End Source File
# Begin Source File
SOURCE=.\zend_llist.c
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects.c
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.c
# End Source File
# Begin Source File
SOURCE=.\zend_opcode.c
# End Source File
# Begin Source File
SOURCE=.\zend_operators.c
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.c
# End Source File
# Begin Source File
SOURCE=.\zend_sprintf.c
# End Source File
# Begin Source File
SOURCE=.\zend_stack.c
# End Source File
# Begin Source File
SOURCE=.\zend_stream.c
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.c
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.c
# End Source File
# Begin Source File
SOURCE=.\zend_variables.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\FlexLexer.h
# End Source File
# Begin Source File
SOURCE=.\zend.h
# End Source File
# Begin Source File
SOURCE=.\zend_alloc.h
# End Source File
# Begin Source File
SOURCE=.\zend_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_builtin_functions.h
# End Source File
# Begin Source File
SOURCE=.\zend_compile.h
# End Source File
# Begin Source File
SOURCE=.\zend_config.w32.h
# End Source File
# Begin Source File
SOURCE=.\zend_constants.h
# End Source File
# Begin Source File
SOURCE=.\zend_default_classes.h
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.h
# End Source File
# Begin Source File
SOURCE=.\zend_errors.h
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.h
# End Source File
# Begin Source File
SOURCE=.\zend_execute.h
# End Source File
# Begin Source File
SOURCE=.\zend_extensions.h
# End Source File
# Begin Source File
SOURCE=.\zend_fast_cache.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals.h
# End Source File
# Begin Source File
SOURCE=.\zend_globals_macros.h
# End Source File
# Begin Source File
SOURCE=.\zend_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_highlight.h
# End Source File
# Begin Source File
SOURCE=.\zend_indent.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_parser.h
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.h
# End Source File
# Begin Source File
SOURCE=.\zend_interfaces.h
# End Source File
# Begin Source File
SOURCE=.\zend_istdiostream.h
# End Source File
# Begin Source File
SOURCE=.\zend_iterators.h
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.h"
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.h"
# End Source File
# Begin Source File
SOURCE=.\zend_list.h
# End Source File
# Begin Source File
SOURCE=.\zend_llist.h
# End Source File
# Begin Source File
SOURCE=.\zend_modules.h
# End Source File
# Begin Source File
SOURCE=.\zend_object_handlers.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects.h
# End Source File
# Begin Source File
SOURCE=.\zend_objects_API.h
# End Source File
# Begin Source File
SOURCE=.\zend_operators.h
# End Source File
# Begin Source File
SOURCE=.\zend_ptr_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_qsort.h
# End Source File
# Begin Source File
SOURCE=.\zend_stack.h
# End Source File
# Begin Source File
SOURCE=.\zend_stream.h
# End Source File
# Begin Source File
SOURCE=.\zend_strtod.h
# End Source File
# Begin Source File
SOURCE=.\zend_ts_hash.h
# End Source File
# Begin Source File
SOURCE=.\zend_variables.h
# End Source File
# End Group
# Begin Group "Parsers"
# PROP Default_Filter "y"
# Begin Source File
SOURCE=.\zend_ini_parser.y
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputDir=.
InputPath=.\zend_ini_parser.y
BuildCmds= \
bison --output=zend_ini_parser.c -v -d -p ini_ zend_ini_parser.y
"$(InputDir)\zend_ini_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_ini_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_parser.y"
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputDir=.
InputPath=".\zend_language_parser.y"
BuildCmds= \
bison --output=zend_language_parser.c -v -d -p zend zend_language_parser.y
"$(InputDir)\zend_language_parser.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
"$(InputDir)\zend_language_parser.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
$(BuildCmds)
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Scanners"
# PROP Default_Filter "l"
# Begin Source File
SOURCE=.\flex.skl
# End Source File
# Begin Source File
SOURCE=.\zend_ini_scanner.l
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=.\zend_ini_scanner.l
"zend_ini_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pini_ -ozend_ini_scanner.c zend_ini_scanner.l
# End Custom Build
!ENDIF
# End Source File
# Begin Source File
SOURCE=".\zend_language_scanner.l"
!IF "$(CFG)" == "ZendTS - Win32 Release_TS"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Debug_TS"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TS_inline"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ELSEIF "$(CFG)" == "ZendTS - Win32 Release_TSDbg"
# Begin Custom Build
InputPath=".\zend_language_scanner.l"
"zend_language_scanner.c" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
flex -B -i -Sflex.skl -Pzend -ozend_language_scanner.c zend_language_scanner.l
# End Custom Build
!ENDIF
# End Source File
# End Group
# Begin Group "Text Files"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\LICENSE
# End Source File
# Begin Source File
SOURCE=.\ZEND_BUGS
# End Source File
# Begin Source File
SOURCE=.\ZEND_CHANGES
# End Source File
# End Group
# Begin Group "Resources"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\zend.ico
# End Source File
# End Group
# End Target
# End Project
-121
View File
@@ -1,121 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2007 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: Andi Gutmans <andi@zend.com> |
| Zeev Suraski <zeev@zend.com> |
+----------------------------------------------------------------------+
*/
/* $Id$ */
#define ZEND_API
#define ZEND_DLEXPORT
#define ZEND_DLIMPORT
@TOP@
#undef uint
#undef ulong
/* Define if you want to enable memory limit support */
#define MEMORY_LIMIT 0
@BOTTOM@
#ifndef ZEND_ACCONFIG_H_NO_C_PROTOS
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif
#ifdef HAVE_SYS_SELECT_H
#include <sys/select.h>
#endif
#ifdef HAVE_IEEEFP_H
# include <ieeefp.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#else
# include <strings.h>
#endif
#if ZEND_BROKEN_SPRINTF
int zend_sprintf(char *buffer, const char *format, ...);
#else
# define zend_sprintf sprintf
#endif
#include <math.h>
/* To enable the is_nan, is_infinite and is_finite PHP functions */
#ifdef NETWARE
#define HAVE_ISNAN 1
#define HAVE_ISINF 1
#define HAVE_ISFINITE 1
#endif
#ifndef zend_isnan
#ifdef HAVE_ISNAN
#define zend_isnan(a) isnan(a)
#elif defined(HAVE_FPCLASS)
#define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
#else
#define zend_isnan(a) 0
#endif
#endif
#ifdef HAVE_ISINF
#define zend_isinf(a) isinf(a)
#elif defined(INFINITY)
/* Might not work, but is required by ISO C99 */
#define zend_isinf(a) (((a)==INFINITY)?1:0)
#elif defined(HAVE_FPCLASS)
#define zend_isinf(a) ((fpclass(a) == FP_PINF) || (fpclass(a) == FP_NINF))
#else
#define zend_isinf(a) 0
#endif
#ifdef HAVE_FINITE
#define zend_finite(a) finite(a)
#elif defined(HAVE_ISFINITE) || defined(isfinite)
#define zend_finite(a) isfinite(a)
#elif defined(fpclassify)
#define zend_finite(a) ((fpclassify((a))!=FP_INFINITE&&fpclassify((a))!=FP_NAN)?1:0)
#else
#define zend_finite(a) (zend_isnan(a) ? 0 : zend_isinf(a) ? 0 : 1)
#endif
#endif /* ifndef ZEND_ACCONFIG_H_NO_C_PROTOS */
#ifdef NETWARE
#ifdef USE_WINSOCK
#/*This detection against winsock is of no use*/ undef HAVE_SOCKLEN_T
#/*This detection against winsock is of no use*/ undef HAVE_SYS_SOCKET_H
#endif
#endif
/*
* Local variables:
* tab-width: 4
* c-basic-offset: 4
* indent-tabs-mode: t
* End:
*/
-107
View File
@@ -1,107 +0,0 @@
dnl $Id$
dnl
dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
bison_version=none
if test "$YACC"; then
AC_CACHE_CHECK([for bison version], php_cv_bison_version, [
bison_version_vars=`bison --version 2> /dev/null | grep 'GNU Bison' | cut -d ' ' -f 4 | $SED -e 's/\./ /' | tr -d a-z`
php_cv_bison_version=invalid
if test -n "$bison_version_vars"; then
set $bison_version_vars
bison_version="${1}.${2}"
for bison_check_version in $bison_version_list; do
if test "$bison_version" = "$bison_check_version"; then
php_cv_bison_version="$bison_check_version (ok)"
break
fi
done
fi
])
fi
case $php_cv_bison_version in
""|invalid[)]
bison_msg="bison versions supported for regeneration of the Zend/PHP parsers: $bison_version_list (found: $bison_version)."
AC_MSG_WARN([$bison_msg])
YACC="exit 0;"
;;
esac
])
AC_DEFUN([ZEND_FP_EXCEPT],[
AC_CACHE_CHECK(whether fp_except is defined, ac_cv_type_fp_except,[
AC_TRY_COMPILE([
#include <floatingpoint.h>
],[
fp_except x = (fp_except) 0;
],[
ac_cv_type_fp_except=yes
],[
ac_cv_type_fp_except=no
],[
ac_cv_type_fp_except=no
])])
if test "$ac_cv_type_fp_except" = "yes"; then
AC_DEFINE(HAVE_FP_EXCEPT, 1, [whether floatingpoint.h defines fp_except])
fi
])
dnl
dnl Check for broken sprintf()
dnl
AC_DEFUN([AC_ZEND_BROKEN_SPRINTF],[
AC_CACHE_CHECK(whether sprintf is broken, ac_cv_broken_sprintf,[
AC_TRY_RUN([main() {char buf[20];exit(sprintf(buf,"testing 123")!=11); }],[
ac_cv_broken_sprintf=no
],[
ac_cv_broken_sprintf=yes
],[
ac_cv_broken_sprintf=no
])
])
if test "$ac_cv_broken_sprintf" = "yes"; then
ac_result=1
else
ac_result=0
fi
AC_DEFINE_UNQUOTED(ZEND_BROKEN_SPRINTF, $ac_result, [Whether sprintf is broken])
])
dnl
dnl AC_ZEND_C_BIGENDIAN
dnl Replacement macro for AC_C_BIGENDIAN
dnl
AC_DEFUN([AC_ZEND_C_BIGENDIAN],
[AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian_php,
[
ac_cv_c_bigendian_php=unknown
AC_TRY_RUN(
[
int main(void)
{
short one = 1;
char *cp = (char *)&one;
if (*cp == 0) {
return(0);
} else {
return(1);
}
}
], [ac_cv_c_bigendian_php=yes], [ac_cv_c_bigendian_php=no], [ac_cv_c_bigendian_php=unknown])
])
if test $ac_cv_c_bigendian_php = yes; then
AC_DEFINE(WORDS_BIGENDIAN, [], [Define if processor uses big-endian word])
fi
])
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
])
-420
View File
@@ -1,420 +0,0 @@
<?php
date_default_timezone_set("UTC");
function simple() {
$a = 0;
for ($i = 0; $i < 1000000; $i++)
$a++;
$thisisanotherlongname = 0;
for ($thisisalongname = 0; $thisisalongname < 1000000; $thisisalongname++)
$thisisanotherlongname++;
}
/****/
function simplecall() {
for ($i = 0; $i < 1000000; $i++)
strlen("hallo");
}
/****/
function hallo($a) {
}
function simpleucall() {
for ($i = 0; $i < 1000000; $i++)
hallo("hallo");
}
/****/
function simpleudcall() {
for ($i = 0; $i < 1000000; $i++)
hallo2("hallo");
}
function hallo2($a) {
}
/****/
function mandel() {
$w1=50;
$h1=150;
$recen=-.45;
$imcen=0.0;
$r=0.7;
$s=0; $rec=0; $imc=0; $re=0; $im=0; $re2=0; $im2=0;
$x=0; $y=0; $w2=0; $h2=0; $color=0;
$s=2*$r/$w1;
$w2=40;
$h2=12;
for ($y=0 ; $y<=$w1; $y=$y+1) {
$imc=$s*($y-$h2)+$imcen;
for ($x=0 ; $x<=$h1; $x=$x+1) {
$rec=$s*($x-$w2)+$recen;
$re=$rec;
$im=$imc;
$color=1000;
$re2=$re*$re;
$im2=$im*$im;
while( ((($re2+$im2)<1000000) && $color>0)) {
$im=$re*$im*2+$imc;
$re=$re2-$im2+$rec;
$re2=$re*$re;
$im2=$im*$im;
$color=$color-1;
}
if ( $color==0 ) {
print "_";
} else {
print "#";
}
}
print "<br>";
flush();
}
}
/****/
function mandel2() {
$b = " .:,;!/>)|&IH%*#";
//float r, i, z, Z, t, c, C;
for ($y=30; printf("\n"), $C = $y*0.1 - 1.5, $y--;){
for ($x=0; $c = $x*0.04 - 2, $z=0, $Z=0, $x++ < 75;){
for ($r=$c, $i=$C, $k=0; $t = $z*$z - $Z*$Z + $r, $Z = 2*$z*$Z + $i, $z=$t, $k<5000; $k++)
if ($z*$z + $Z*$Z > 500000) break;
echo $b[$k%16];
}
}
}
/****/
function Ack($m, $n){
if($m == 0) return $n+1;
if($n == 0) return Ack($m-1, 1);
return Ack($m - 1, Ack($m, ($n - 1)));
}
function ackermann($n) {
$r = Ack(3,$n);
print "Ack(3,$n): $r\n";
}
/****/
function ary($n) {
for ($i=0; $i<$n; $i++) {
$X[$i] = $i;
}
for ($i=$n-1; $i>=0; $i--) {
$Y[$i] = $X[$i];
}
$last = $n-1;
print "$Y[$last]\n";
}
/****/
function ary2($n) {
for ($i=0; $i<$n;) {
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
$X[$i] = $i; ++$i;
}
for ($i=$n-1; $i>=0;) {
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
$Y[$i] = $X[$i]; --$i;
}
$last = $n-1;
print "$Y[$last]\n";
}
/****/
function ary3($n) {
for ($i=0; $i<$n; $i++) {
$X[$i] = $i + 1;
$Y[$i] = 0;
}
for ($k=0; $k<1000; $k++) {
for ($i=$n-1; $i>=0; $i--) {
$Y[$i] += $X[$i];
}
}
$last = $n-1;
print "$Y[0] $Y[$last]\n";
}
/****/
function fibo_r($n){
return(($n < 2) ? 1 : fibo_r($n - 2) + fibo_r($n - 1));
}
function fibo($n) {
$r = fibo_r($n);
print "$r\n";
}
/****/
function hash1($n) {
for ($i = 1; $i <= $n; $i++) {
$X[dechex($i)] = $i;
}
$c = 0;
for ($i = $n; $i > 0; $i--) {
if ($X[dechex($i)]) { $c++; }
}
print "$c\n";
}
/****/
function hash2($n) {
for ($i = 0; $i < $n; $i++) {
$hash1["foo_$i"] = $i;
$hash2["foo_$i"] = 0;
}
for ($i = $n; $i > 0; $i--) {
foreach($hash1 as $key => $value) $hash2[$key] += $value;
}
$first = "foo_0";
$last = "foo_".($n-1);
print "$hash1[$first] $hash1[$last] $hash2[$first] $hash2[$last]\n";
}
/****/
function gen_random ($n) {
global $LAST;
return( ($n * ($LAST = ($LAST * IA + IC) % IM)) / IM );
}
function heapsort_r($n, &$ra) {
$l = ($n >> 1) + 1;
$ir = $n;
while (1) {
if ($l > 1) {
$rra = $ra[--$l];
} else {
$rra = $ra[$ir];
$ra[$ir] = $ra[1];
if (--$ir == 1) {
$ra[1] = $rra;
return;
}
}
$i = $l;
$j = $l << 1;
while ($j <= $ir) {
if (($j < $ir) && ($ra[$j] < $ra[$j+1])) {
$j++;
}
if ($rra < $ra[$j]) {
$ra[$i] = $ra[$j];
$j += ($i = $j);
} else {
$j = $ir + 1;
}
}
$ra[$i] = $rra;
}
}
function heapsort($N) {
global $LAST;
define("IM", 139968);
define("IA", 3877);
define("IC", 29573);
$LAST = 42;
for ($i=1; $i<=$N; $i++) {
$ary[$i] = gen_random(1);
}
heapsort_r($N, $ary);
printf("%.10f\n", $ary[$N]);
}
/****/
function mkmatrix ($rows, $cols) {
$count = 1;
$mx = array();
for ($i=0; $i<$rows; $i++) {
for ($j=0; $j<$cols; $j++) {
$mx[$i][$j] = $count++;
}
}
return($mx);
}
function mmult ($rows, $cols, $m1, $m2) {
$m3 = array();
for ($i=0; $i<$rows; $i++) {
for ($j=0; $j<$cols; $j++) {
$x = 0;
for ($k=0; $k<$cols; $k++) {
$x += $m1[$i][$k] * $m2[$k][$j];
}
$m3[$i][$j] = $x;
}
}
return($m3);
}
function matrix($n) {
$SIZE = 30;
$m1 = mkmatrix($SIZE, $SIZE);
$m2 = mkmatrix($SIZE, $SIZE);
while ($n--) {
$mm = mmult($SIZE, $SIZE, $m1, $m2);
}
print "{$mm[0][0]} {$mm[2][3]} {$mm[3][2]} {$mm[4][4]}\n";
}
/****/
function nestedloop($n) {
$x = 0;
for ($a=0; $a<$n; $a++)
for ($b=0; $b<$n; $b++)
for ($c=0; $c<$n; $c++)
for ($d=0; $d<$n; $d++)
for ($e=0; $e<$n; $e++)
for ($f=0; $f<$n; $f++)
$x++;
print "$x\n";
}
/****/
function sieve($n) {
$count = 0;
while ($n-- > 0) {
$count = 0;
$flags = range (0,8192);
for ($i=2; $i<8193; $i++) {
if ($flags[$i] > 0) {
for ($k=$i+$i; $k <= 8192; $k+=$i) {
$flags[$k] = 0;
}
$count++;
}
}
}
print "Count: $count\n";
}
/****/
function strcat($n) {
$str = "";
while ($n-- > 0) {
$str .= "hello\n";
}
$len = strlen($str);
print "$len\n";
}
/*****/
function getmicrotime()
{
$t = gettimeofday();
return ($t['sec'] + $t['usec'] / 1000000);
}
function start_test()
{
ob_start();
return getmicrotime();
}
function end_test($start, $name)
{
global $total;
$end = getmicrotime();
ob_end_clean();
$total += $end-$start;
$num = number_format($end-$start,3);
$pad = str_repeat(" ", 24-strlen($name)-strlen($num));
echo $name.$pad.$num."\n";
ob_start();
return getmicrotime();
}
function total()
{
global $total;
$pad = str_repeat("-", 24);
echo $pad."\n";
$num = number_format($total,3);
$pad = str_repeat(" ", 24-strlen("Total")-strlen($num));
echo "Total".$pad.$num."\n";
}
$t0 = $t = start_test();
simple();
$t = end_test($t, "simple");
simplecall();
$t = end_test($t, "simplecall");
simpleucall();
$t = end_test($t, "simpleucall");
simpleudcall();
$t = end_test($t, "simpleudcall");
mandel();
$t = end_test($t, "mandel");
mandel2();
$t = end_test($t, "mandel2");
ackermann(7);
$t = end_test($t, "ackermann(7)");
ary(50000);
$t = end_test($t, "ary(50000)");
ary2(50000);
$t = end_test($t, "ary2(50000)");
ary3(2000);
$t = end_test($t, "ary3(2000)");
fibo(30);
$t = end_test($t, "fibo(30)");
hash1(50000);
$t = end_test($t, "hash1(50000)");
hash2(500);
$t = end_test($t, "hash2(500)");
heapsort(20000);
$t = end_test($t, "heapsort(20000)");
matrix(20);
$t = end_test($t, "matrix(20)");
nestedloop(12);
$t = end_test($t, "nestedloop(12)");
sieve(30);
$t = end_test($t, "sieve(30)");
strcat(200000);
$t = end_test($t, "strcat(200000)");
total($t0, "Total");
?>
-43
View File
@@ -1,43 +0,0 @@
# Makefile to generate build tools
#
# Standard usage:
# make -f build.mk
#
# Written by Sascha Schumann
#
# $Id$
LT_TARGETS = ltmain.sh ltconfig
config_h_in = zend_config.h.in
makefile_am_files = Makefile.am
makefile_in_files = $(makefile_am_files:.am=.in)
makefile_files = $(makefile_am_files:e.am=e)
targets = $(makefile_in_files) $(LT_TARGETS) configure $(config_h_in)
all: $(targets)
clean:
rm -f $(targets)
$(LT_TARGETS):
rm -f $(LT_TARGETS)
libtoolize --automake $(AMFLAGS) -f
$(makefile_in_files): $(makefile_am_files)
automake -a -i $(AMFLAGS) $(makefile_files)
aclocal.m4: configure.in acinclude.m4
aclocal
$(config_h_in): configure.in acconfig.h
# explicitly remove target since autoheader does not seem to work
# correctly otherwise (timestamps are not updated)
@rm -f $@
autoheader
configure: aclocal.m4 configure.in
autoconf
-33
View File
@@ -1,33 +0,0 @@
#!/bin/sh
case "$1" in
--copy)
automake_flags=--copy
shift
;;
esac
libtoolize --force --automake $automake_flags
mv aclocal.m4 aclocal.m4.old 2>/dev/null
aclocal
if cmp aclocal.m4.old aclocal.m4 > /dev/null 2>&1; then
echo "buildconf: keeping ${1}aclocal.m4"
mv aclocal.m4.old aclocal.m4
else
echo "buildconf: created or modified ${1}aclocal.m4"
fi
autoheader
automake --add-missing --include-deps $automake_flags
mv configure configure.old 2>/dev/null
autoconf
if cmp configure.old configure > /dev/null 2>&1; then
echo "buildconf: keeping ${1}configure"
mv configure.old configure
else
echo "buildconf: created or modified ${1}configure"
fi
-51
View File
@@ -1,51 +0,0 @@
dnl $Id$
dnl Process this file with autoconf to produce a configure script.
AC_INIT(zend.c)
AM_INIT_AUTOMAKE(zend, 0.80A, nodefine)
AM_CONFIG_HEADER(zend_config.h)
AM_SANITY_CHECK
AM_MAINTAINER_MODE
AC_PROG_CC
AM_PROG_LEX
AM_PROG_CC_STDC
ZEND_VERSION=$VERSION
AC_ZEND_C_BIGENDIAN
dnl We want this one before the checks, so the checks can modify CFLAGS.
test -z "$CFLAGS" && auto_cflags=1
AC_CHECK_SIZEOF(long, 8)
AC_CHECK_SIZEOF(int, 4)
sinclude(Zend.m4)
LIBZEND_BASIC_CHECKS
LIBZEND_LIBDL_CHECKS
LIBZEND_DLSYM_CHECK
AM_PROG_LIBTOOL
if test "$enable_debug" != "yes"; then
AM_SET_LIBTOOL_VARIABLE([--silent])
fi
dnl
dnl Check for /usr/pkg/{lib,include} which is where NetBSD puts binary
dnl and source packages. This should be harmless on other OSs.
dnl
if test -d /usr/pkg/include -a -d /usr/pkg/lib ; then
CFLAGS="$CFLAGS -I/usr/pkg/include"
LDFLAGS="$LDFLAGS -L/usr/pkg/lib"
fi
LIBZEND_ENABLE_DEBUG
LIBZEND_OTHER_CHECKS
ZEND_EXTRA_LIBS="$LIBS"
LIBS=""
AC_SUBST(ZEND_EXTRA_LIBS)
AC_OUTPUT(Makefile)
# Local Variables:
# tab-width: 4
# End:
-1648
View File
File diff suppressed because it is too large. Load diff
-19
View File
@@ -1,19 +0,0 @@
/*
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
| available through the world-wide-web at the following url: |
| http://www.zend.com/license/2_00.txt. |
| If you did not receive a copy of the Zend license and are unable to |
| obtain it through the world-wide-web, please send a note to |
| license@zend.com so we can mail you a copy immediately. |
+----------------------------------------------------------------------+
| Authors: |
+----------------------------------------------------------------------+
*/
/* $Id$ */
-54
View File
@@ -1,54 +0,0 @@
--TEST--
func_num_args() tests
--FILE--
<?php
function test1() {
var_dump(func_num_args());
}
function test2($a) {
var_dump(func_num_args());
}
function test3($a, $b) {
var_dump(func_num_args());
}
test1();
test2(1);
test2();
test3(1,2);
call_user_func("test1");
call_user_func("test3", 1);
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_num_args());
}
}
test::test1(1);
var_dump(func_num_args());
echo "Done\n";
?>
--EXPECTF--
int(0)
int(1)
Warning: Missing argument 1 for test2(), called in %s on line %d
int(0)
int(2)
int(0)
Warning: Missing argument 2 for test3() in %s on line %d
int(1)
int(2)
int(1)
Warning: func_num_args(): Called from the global scope - no function context in %s on line %d
int(-1)
Done
-108
View File
@@ -1,108 +0,0 @@
--TEST--
func_get_arg() tests
--FILE--
<?php
function test1() {
var_dump(func_get_arg(-10));
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
}
function test2($a) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
}
function test3($a, $b) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
var_dump(func_get_arg(2));
}
test1();
test1(10);
test2(1);
test2();
test3(1,2);
call_user_func("test1");
call_user_func("test3", 1);
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_get_arg(0));
var_dump(func_get_arg(1));
}
}
test::test1(1);
var_dump(func_get_arg(1));
echo "Done\n";
?>
--EXPECTF--
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
int(10)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
int(1)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: Missing argument 1 for test2(), called in %s on line %d and defined in %s on line %d
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
int(1)
int(2)
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 0 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: Missing argument 2 for test3() in %s on line %d
int(1)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
bool(false)
int(1)
int(2)
Warning: func_get_arg(): Argument 2 not passed to function in %s on line %d
bool(false)
int(1)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
bool(false)
Done
-81
View File
@@ -1,81 +0,0 @@
--TEST--
func_get_args() tests
--FILE--
<?php
function test1() {
var_dump(func_get_args());
}
function test2($a) {
var_dump(func_get_args());
}
function test3($a, $b) {
var_dump(func_get_args());
}
test1();
test1(10);
test2(1);
test2();
test3(1,2);
call_user_func("test1");
call_user_func("test3", 1);
call_user_func("test3", 1, 2);
class test {
static function test1($a) {
var_dump(func_get_args());
}
}
test::test1(1);
var_dump(func_get_args());
echo "Done\n";
?>
--EXPECTF--
array(0) {
}
array(1) {
[0]=>
int(10)
}
array(1) {
[0]=>
int(1)
}
Warning: Missing argument 1 for test2(), called in %s on line %d and defined in %s on line %d
array(0) {
}
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
array(0) {
}
Warning: Missing argument 2 for test3() in %s on line %d
array(1) {
[0]=>
int(1)
}
array(2) {
[0]=>
int(1)
[1]=>
int(2)
}
array(1) {
[0]=>
int(1)
}
Warning: func_get_args(): Called from the global scope - no function context in %s on line %d
bool(false)
Done
-25
View File
@@ -1,25 +0,0 @@
--TEST--
strncmp() tests
--FILE--
<?php
var_dump(strncmp("", ""));
var_dump(strncmp("", "", 100));
var_dump(strncmp("aef", "dfsgbdf", -1));
var_dump(strncmp("fghjkl", "qwer", 0));
var_dump(strncmp("qwerty", "qwerty123", 6));
var_dump(strncmp("qwerty", "qwerty123", 7));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for strncmp() in %s on line %d
NULL
int(0)
Warning: Length must be greater than or equal to 0 in %s on line %d
bool(false)
int(0)
int(0)
int(-1)
Done
-27
View File
@@ -1,27 +0,0 @@
--TEST--
strcasecmp() tests
--FILE--
<?php
var_dump(strcasecmp(""));
var_dump(strcasecmp("", ""));
var_dump(strcasecmp("aef", "dfsgbdf"));
var_dump(strcasecmp("qwe", "qwer"));
var_dump(strcasecmp("qwerty", "QweRty"));
var_dump(strcasecmp("qwErtY", "qwerty"));
var_dump(strcasecmp("q123", "Q123"));
var_dump(strcasecmp("01", "01"));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for strcasecmp() in %s on line %d
NULL
int(0)
int(-3)
int(-1)
int(0)
int(0)
int(0)
int(0)
Done
-31
View File
@@ -1,31 +0,0 @@
--TEST--
strncasecmp() tests
--FILE--
<?php
var_dump(strncasecmp(""));
var_dump(strncasecmp("", "", -1));
var_dump(strncasecmp("aef", "dfsgbdf", 0));
var_dump(strncasecmp("aef", "dfsgbdf", 10));
var_dump(strncasecmp("qwe", "qwer", 3));
var_dump(strncasecmp("qwerty", "QweRty", 6));
var_dump(strncasecmp("qwErtY", "qwer", 7));
var_dump(strncasecmp("q123", "Q123", 3));
var_dump(strncasecmp("01", "01", 1000));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for strncasecmp() in %s on line %d
NULL
Warning: Length must be greater than or equal to 0 in %s on line %d
bool(false)
int(0)
int(-3)
int(0)
int(0)
int(2)
int(0)
int(0)
Done
-63
View File
@@ -1,63 +0,0 @@
--TEST--
each() tests
--FILE--
<?php
var_dump(each());
$var = 1;
var_dump(each($var));
$var = "string";
var_dump(each($var));
$var = array(1,2,3);
var_dump(each($var));
$var = array("a"=>1,"b"=>2,"c"=>3);
var_dump(each($var));
$a = array(1);
$a [] =&$a[0];
var_dump(each($a));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for each() in %s on line %d
NULL
Warning: Variable passed to each() is not an array or object in %s on line %d
NULL
Warning: Variable passed to each() is not an array or object in %s on line %d
NULL
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
int(0)
["key"]=>
int(0)
}
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
string(1) "a"
["key"]=>
string(1) "a"
}
array(4) {
[1]=>
int(1)
["value"]=>
int(1)
[0]=>
int(0)
["key"]=>
int(0)
}
Done
-53
View File
@@ -1,53 +0,0 @@
--TEST--
define() tests
--FILE--
<?php
var_dump(define());
var_dump(define("TRUE"));
var_dump(define("TRUE", 1));
var_dump(define("TRUE", 1, array(1)));
var_dump(define(array(1,2,3,4,5), 1));
var_dump(define(" ", 1));
var_dump(define("[[[", 2));
var_dump(define("test const", 3));
var_dump(define("test const", 3));
var_dump(define("test", array(1)));
var_dump(define("test1", new stdclass));
var_dump(constant(" "));
var_dump(constant("[[["));
var_dump(constant("test const"));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for define() in %s on line %d
NULL
Warning: Wrong parameter count for define() in %s on line %d
NULL
bool(true)
Notice: Constant true already defined in %s on line %d
bool(false)
Notice: Array to string conversion in %s on line %d
bool(true)
bool(true)
bool(true)
bool(true)
Notice: Constant test const already defined in %s on line %d
bool(false)
Warning: Constants may only evaluate to scalar values in %s on line %d
bool(false)
Warning: Constants may only evaluate to scalar values in %s on line %d
bool(false)
int(1)
int(2)
int(3)
Done
-46
View File
@@ -1,46 +0,0 @@
--TEST--
get_class() tests
--FILE--
<?php
class foo {
function bar () {
var_dump(get_class());
}
}
class foo2 extends foo {
}
foo::bar();
foo2::bar();
$f1 = new foo;
$f2 = new foo2;
$f1->bar();
$f2->bar();
var_dump(get_class());
var_dump(get_class("qwerty"));
var_dump(get_class($f1));
var_dump(get_class($f2));
echo "Done\n";
?>
--EXPECTF--
Strict Standards: Non-static method foo::bar() should not be called statically in %s on line %d
string(3) "foo"
Strict Standards: Non-static method foo::bar() should not be called statically in %s on line %d
string(3) "foo"
string(3) "foo"
string(3) "foo"
Warning: get_class() called without object from outside a class in %s on line %d
bool(false)
bool(false)
string(3) "foo"
string(4) "foo2"
Done
-59
View File
@@ -1,59 +0,0 @@
--TEST--
get_parent_class() tests
--FILE--
<?php
interface i {
function test();
}
class foo implements i {
function test() {
var_dump(get_parent_class());
}
}
class bar extends foo {
function test_bar() {
var_dump(get_parent_class());
}
}
$bar = new bar;
$foo = new foo;
$foo->test();
$bar->test();
$bar->test_bar();
var_dump(get_parent_class($bar));
var_dump(get_parent_class($foo));
var_dump(get_parent_class("bar"));
var_dump(get_parent_class("foo"));
var_dump(get_parent_class("i"));
var_dump(get_parent_class(""));
var_dump(get_parent_class("[[[["));
var_dump(get_parent_class(" "));
var_dump(get_parent_class(new stdclass));
var_dump(get_parent_class(array()));
var_dump(get_parent_class(1));
echo "Done\n";
?>
--EXPECTF--
bool(false)
bool(false)
string(3) "foo"
string(3) "foo"
bool(false)
string(3) "foo"
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
Done
-89
View File
@@ -1,89 +0,0 @@
--TEST--
property_exists() tests
--FILE--
<?php
class foo {
public $pp1 = 1;
private $pp2 = 2;
protected $pp3 = 3;
function bar() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
}
class bar extends foo {
function test() {
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
}
}
var_dump(property_exists());
var_dump(property_exists(""));
var_dump(property_exists("foo","pp1"));
var_dump(property_exists("foo","pp2"));
var_dump(property_exists("foo","pp3"));
var_dump(property_exists("foo","nonexistent"));
var_dump(property_exists("fo","nonexistent"));
var_dump(property_exists("foo",""));
var_dump(property_exists("","test"));
var_dump(property_exists("",""));
$foo = new foo;
var_dump(property_exists($foo,"pp1"));
var_dump(property_exists($foo,"pp2"));
var_dump(property_exists($foo,"pp3"));
var_dump(property_exists($foo,"nonexistent"));
var_dump(property_exists($foo,""));
var_dump(property_exists(array(),"test"));
var_dump(property_exists(1,"test"));
var_dump(property_exists(true,"test"));
$foo->bar();
$bar = new bar;
$bar->test();
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for property_exists() in %s on line %d
NULL
Warning: Wrong parameter count for property_exists() in %s on line %d
NULL
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
Warning: First parameter must either be an object or the name of an existing class in %s on line %d
NULL
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
Done
-34
View File
@@ -1,34 +0,0 @@
--TEST--
class_exists() tests
--FILE--
<?php
class foo {
}
var_dump(class_exists());
var_dump(class_exists("qwerty"));
var_dump(class_exists(""));
var_dump(class_exists(array()));
var_dump(class_exists("test", false));
var_dump(class_exists("foo", false));
var_dump(class_exists("foo"));
var_dump(class_exists("stdClass", false));
var_dump(class_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
Warning: class_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
bool(false)
bool(false)
Warning: class_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
bool(true)
bool(true)
bool(true)
Done
-34
View File
@@ -1,34 +0,0 @@
--TEST--
interface_exists() tests
--FILE--
<?php
interface foo {
}
var_dump(interface_exists());
var_dump(interface_exists("qwerty"));
var_dump(interface_exists(""));
var_dump(interface_exists(array()));
var_dump(interface_exists("test", false));
var_dump(interface_exists("foo", false));
var_dump(interface_exists("foo"));
var_dump(interface_exists("stdClass", false));
var_dump(interface_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
Warning: interface_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
bool(false)
bool(false)
Warning: interface_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
bool(true)
bool(false)
bool(false)
Done
-3
View File
@@ -1,3 +0,0 @@
<?php
/* dummy file for 014.phpt */
?>
-52
View File
@@ -1,52 +0,0 @@
--TEST--
get_included_files() tests
--FILE--
<?php
var_dump(get_included_files());
include(dirname(__FILE__)."/014.inc");
var_dump(get_included_files());
var_dump(get_included_files(1,1));
include_once(dirname(__FILE__)."/014.inc");
var_dump(get_included_files());
var_dump(get_included_files(1));
include(dirname(__FILE__)."/014.inc");
var_dump(get_included_files());
echo "Done\n";
?>
--EXPECTF--
array(1) {
[0]=>
string(%d) "%s"
}
array(2) {
[0]=>
string(%d) "%s"
[1]=>
string(%d) "%s"
}
Warning: Wrong parameter count for get_included_files() in %s on line %d
NULL
array(2) {
[0]=>
string(%d) "%s"
[1]=>
string(%d) "%s"
}
Warning: Wrong parameter count for get_included_files() in %s on line %d
NULL
array(2) {
[0]=>
string(%d) "%s"
[1]=>
string(%d) "%s"
}
Done
-35
View File
@@ -1,35 +0,0 @@
--TEST--
trigger_error() tests
--FILE--
<?php
var_dump(trigger_error());
var_dump(trigger_error("error"));
var_dump(trigger_error(array()));
var_dump(trigger_error("error", -1));
var_dump(trigger_error("error", 0));
var_dump(trigger_error("error", E_USER_WARNING));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for trigger_error() in %s on line %d
NULL
Notice: error in %s on line %d
bool(true)
Notice: Array to string conversion in %s on line %d
Notice: Array in %s on line %d
bool(true)
Warning: Invalid error type specified in %s on line %d
bool(false)
Warning: Invalid error type specified in %s on line %d
bool(false)
Warning: error in %s on line %d
bool(true)
Done
-12
View File
@@ -1,12 +0,0 @@
--TEST--
isset() with object properties when operating on non-object
--FILE--
<?php
$foo = NULL;
isset($foo->bar->bar);
echo "Done\n";
?>
--EXPECT--
Done
-86
View File
@@ -1,86 +0,0 @@
--TEST--
builtin functions tests
--FILE--
<?php
var_dump(get_resource_type());
var_dump(get_resource_type(""));
$fp = fopen(__FILE__, "r");
var_dump(get_resource_type($fp));
fclose($fp);
var_dump(get_resource_type($fp));
var_dump(gettype(get_loaded_extensions()));
var_dump(count(get_loaded_extensions()));
var_dump(gettype(get_loaded_extensions(true)));
var_dump(count(get_loaded_extensions(true)));
var_dump(get_loaded_extensions(true, true));
define("USER_CONSTANT", "test");
var_dump(get_defined_constants(true, true));
var_dump(gettype(get_defined_constants(true)));
var_dump(gettype(get_defined_constants()));
var_dump(count(get_defined_constants()));
function test () {
}
var_dump(get_defined_functions(true));
var_dump(gettype(get_defined_functions()));
var_dump(count(get_defined_functions()));
var_dump(get_declared_interfaces(true));
var_dump(gettype(get_declared_interfaces()));
var_dump(count(get_declared_interfaces()));
var_dump(get_extension_funcs());
var_dump(get_extension_funcs(true));
var_dump(gettype(get_extension_funcs("standard")));
var_dump(count(get_extension_funcs("standard")));
var_dump(gettype(get_extension_funcs("zend")));
var_dump(count(get_extension_funcs("zend")));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for get_resource_type() in %s on line %d
NULL
Warning: Supplied argument is not a valid resource handle in %s on line %d
bool(false)
string(6) "stream"
string(7) "Unknown"
string(5) "array"
int(%d)
string(5) "array"
int(%d)
Warning: get_loaded_extensions() expects at most 1 parameter, 2 given in %s on line %d
NULL
Warning: Wrong parameter count for get_defined_constants() in %s on line %d
NULL
string(5) "array"
string(5) "array"
int(%d)
Warning: Wrong parameter count for get_defined_functions() in %s on line %d
NULL
string(5) "array"
int(%d)
Warning: Wrong parameter count for get_declared_interfaces() in %s on line %d
NULL
string(5) "array"
int(%d)
Warning: Wrong parameter count for get_extension_funcs() in %s on line %d
NULL
bool(false)
string(5) "array"
int(%d)
string(5) "array"
int(%d)
Done
-36
View File
@@ -1,36 +0,0 @@
--TEST--
constant() tests
--FILE--
<?php
var_dump(constant());
var_dump(constant("", ""));
var_dump(constant(""));
var_dump(constant(array()));
define("TEST_CONST", 1);
var_dump(constant("TEST_CONST"));
define("TEST_CONST2", "test");
var_dump(constant("TEST_CONST2"));
echo "Done\n";
?>
--EXPECTF--
Warning: Wrong parameter count for constant() in %s on line %d
NULL
Warning: Wrong parameter count for constant() in %s on line %d
NULL
Warning: constant(): Couldn't find constant in %s on line %d
NULL
Notice: Array to string conversion in %s on line %d
Warning: constant(): Couldn't find constant Array in %s on line %d
NULL
int(1)
string(4) "test"
Done
-1332
View File
File diff suppressed because it is too large. Load diff
-31
View File
@@ -1,31 +0,0 @@
--TEST--
func_get_arg() invalid usage
--FILE--
<?php
var_dump(func_get_arg(1,2,3));
var_dump(func_get_arg(1));
var_dump(func_get_arg());
function bar() {
var_dump(func_get_arg(1));
}
function foo() {
bar(func_get_arg(1));
}
foo(1,2);
echo "Done\n";
?>
--EXPECTF--
bool(false)
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
bool(false)
bool(false)
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Done
-14
View File
@@ -1,14 +0,0 @@
--TEST--
Test for abstract static classes
--FILE--
<?php
abstract class TestClass
{
abstract static public function getName();
}
?>
===DONE===
--EXPECTF--
Strict Standards: Static function TestClass::getName() should not be abstract in %sabstract-static.php on line %d
===DONE===
-73
View File
@@ -1,73 +0,0 @@
--TEST--
adding arrays
--FILE--
<?php
$a = array(1,2,3);
$b = array("str", "here");
$c = $a + $b;
var_dump($c);
$a = array(1,2,3);
$b = array(1,2,4);
$c = $a + $b;
var_dump($c);
$a = array("a"=>"aaa",2,3);
$b = array(1,2,"a"=>"bbbbbb");
$c = $a + $b;
var_dump($c);
$a += $b;
var_dump($c);
$a += $a;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
array(3) {
["a"]=>
string(3) "aaa"
[0]=>
int(2)
[1]=>
int(3)
}
array(3) {
["a"]=>
string(3) "aaa"
[0]=>
int(2)
[1]=>
int(3)
}
array(3) {
["a"]=>
string(3) "aaa"
[0]=>
int(2)
[1]=>
int(3)
}
Done
-19
View File
@@ -1,19 +0,0 @@
--TEST--
adding objects to arrays
--FILE--
<?php
$a = array(1,2,3);
$o = new stdclass;
$o->prop = "value";
$c = $a + $o;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to int in %s on line %d
Fatal error: Unsupported operand types in %s on line %d
-19
View File
@@ -1,19 +0,0 @@
--TEST--
adding arrays to objects
--FILE--
<?php
$a = array(1,2,3);
$o = new stdclass;
$o->prop = "value";
$c = $o + $a;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Notice: Object of class stdClass could not be converted to int in %s on line %d
Fatal error: Unsupported operand types in %s on line %d
-14
View File
@@ -1,14 +0,0 @@
--TEST--
adding numbers to arrays
--FILE--
<?php
$a = array(1,2,3);
$c = $a + 5;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Fatal error: Unsupported operand types in %s on line %d
-22
View File
@@ -1,22 +0,0 @@
--TEST--
adding integers to doubles
--INI--
precision=14
--FILE--
<?php
$i = 75636;
$d = 2834681123.123123;
$c = $i + $d;
var_dump($c);
$c = $d + $i;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
float(2834756759.1231)
float(2834756759.1231)
Done
-49
View File
@@ -1,49 +0,0 @@
--TEST--
adding numbers to strings
--INI--
precision=14
--FILE--
<?php
$i = 75636;
$s1 = "this is a string";
$s2 = "876222numeric";
$s3 = "48474874";
$s4 = "25.68";
$c = $i + $s1;
var_dump($c);
$c = $i + $s2;
var_dump($c);
$c = $i + $s3;
var_dump($c);
$c = $i + $s4;
var_dump($c);
$c = $s1 + $i;
var_dump($c);
$c = $s2 + $i;
var_dump($c);
$c = $s3 + $i;
var_dump($c);
$c = $s4 + $i;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
int(75636)
int(951858)
int(48550510)
float(75661.68)
int(75636)
int(951858)
int(48550510)
float(75661.68)
Done
-16
View File
@@ -1,16 +0,0 @@
--TEST--
adding strings to arrays
--FILE--
<?php
$a = array(1,2,3);
$s1 = "some string";
$c = $a + $s1;
var_dump($c);
echo "Done\n";
?>
--EXPECTF--
Fatal error: Unsupported operand types in %s on line %d
-39
View File
@@ -1,39 +0,0 @@
--TEST--
bitwise AND and strings
--FILE--
<?php
$s = "123";
$s1 = "234";
var_dump($s & $s1);
$s = "test";
$s1 = "some";
var_dump($s & $s1);
$s = "test long";
$s1 = "some";
var_dump($s & $s1);
$s = "test";
$s1 = "some long";
var_dump($s & $s1);
$s = "test";
$s &= "some long";
var_dump($s);
echo "Done\n";
?>
--EXPECTF--
string(3) "020"
string(4) "pead"
string(4) "pead"
string(4) "pead"
string(4) "pead"
Done
-16
View File
@@ -1,16 +0,0 @@
--TEST--
Tests that array manipulation code is correctly dealing with copy on write and splitting on reference
--FILE--
<?php
$a=array();
$b=1;
$c=&$b;
$a[]=$b;
$b=2;
var_dump ($a);
?>
--EXPECT--
array(1) {
[0]=>
int(1)
}
-15
View File
@@ -1,15 +0,0 @@
--TEST--
Array type hint
--FILE--
<?php
function foo(array $a) {
echo count($a)."\n";
}
foo(array(1,2,3));
foo(123);
?>
--EXPECTF--
3
Catchable fatal error: Argument 1 passed to foo() must be an array, integer given, called in %sarray_type_hint_001.php on line 7 and defined in %sarray_type_hint_001.php on line 2
-16
View File
@@ -1,16 +0,0 @@
--TEST--
Tests that array unshift code is correctly dealing with copy on write and splitting on reference
--FILE--
<?php
$a=array();
$b=1;
$c=&$b;
array_unshift ($a,$b);
$b=2;
var_dump ($a);
?>
--EXPECT--
array(1) {
[0]=>
int(1)
}
-22
View File
@@ -1,22 +0,0 @@
--TEST--
Bug #19859 (__call() does not catch call_user_func_array() calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
function __call($method,$args)
{
print "test::__call invoked for method '$method'\n";
}
}
$x = new test;
$x->fake(1);
call_user_func_array(array($x,'fake'),array(1));
call_user_func(array($x,'fake'),2);
?>
--EXPECT--
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
test::__call invoked for method 'fake'
-43
View File
@@ -1,43 +0,0 @@
--TEST--
Bug #20240 (order of destructor calls)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class test
{
public $member;
function test() {
$this->member = 1;
register_shutdown_function(array($this, 'destructor'));
}
function destructor() {
print __METHOD__ . "\n";
}
function __destruct() {
print __METHOD__ . "\n";
}
function add() {
$this->member += 1;
print $this->member."\n";
}
}
$t = new test();
$t->add();
$t->add();
echo "Done\n";
?>
--EXPECT--
2
3
Done
test::destructor
test::__destruct
-26
View File
@@ -1,26 +0,0 @@
--TEST--
Bug #20242 (Method call in front of class definition)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '>=')) die('skip ZendEngine 2 does not support this'); ?>
--FILE--
<?php
// THIS IS A WON'T FIX FOR ZE2
test::show_static();
$t = new test;
$t->show_method();
class test {
static function show_static() {
echo "static\n";
}
function show_method() {
echo "method\n";
}
}
?>
--EXPECT--
static
method
-37
View File
@@ -1,37 +0,0 @@
--TEST--
Bug #21478 (Zend/zend_alloc.c :: shutdown_memory_manager produces segfault)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
if (!function_exists('stream_filter_register')) die('skip stream_filter_register() not available');
?>
--FILE--
<?php
class debugfilter extends php_user_filter {
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
stream_bucket_append($out, $bucket);
$consumed += strlen($bucket->data);
}
return PSFS_PASS_ON;
}
}
stream_filter_register("myfilter","debugfilter");
$fp = fopen(dirname(__FILE__)."/test.txt","w");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
stream_filter_append($fp, "myfilter");
fwrite($fp, "This is a test.\n");
print "Done.\n";
fclose($fp);
// Uncommenting the following 'print' line causes the segfault to stop occuring
// print "2\n";
readfile(dirname(__FILE__)."/test.txt");
unlink(dirname(__FILE__)."/test.txt");
?>
--EXPECT--
Done.
THIS IS A TEST.
-36
View File
@@ -1,36 +0,0 @@
--TEST--
Bug #21888 (protected property and protected method of the same name)
--SKIPIF--
<?php
if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed');
?>
--FILE--
<?php
class mom {
protected $prot = "protected property\n";
protected function prot() {
print "protected method\n";
}
}
class child extends mom {
public function callMom() {
$this->prot();
}
public function viewMom() {
print $this->prot;
}
}
$c = new child();
$c->callMom();
$c->viewMom();
?>
--EXPECT--
protected method
protected property
-31
View File
@@ -1,31 +0,0 @@
--TEST--
Bug #22725 (A derived class can call a parent's protected method that calls a private method)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Foo {
private function aPrivateMethod() {
echo "Foo::aPrivateMethod() called.\n";
}
protected function aProtectedMethod() {
echo "Foo::aProtectedMethod() called.\n";
$this->aPrivateMethod();
}
}
class Bar extends Foo {
public function aPublicMethod() {
echo "Bar::aPublicMethod() called.\n";
$this->aProtectedMethod();
}
}
$o = new Bar;
$o->aPublicMethod();
?>
--EXPECT--
Bar::aPublicMethod() called.
Foo::aProtectedMethod() called.
Foo::aPrivateMethod() called.
-34
View File
@@ -1,34 +0,0 @@
--TEST--
Bug #22836 (returning references to NULL)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
function &f()
{
$x = "foo";
var_dump($x);
print "'$x'\n";
return ($a);
}
for ($i = 0; $i < 8; $i++) {
$h =& f();
}
?>
--EXPECTF--
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
string(3) "foo"
'foo'
-12
View File
@@ -1,12 +0,0 @@
--TEST--
Bug #23104 (Hash position not reset for constant arrays)
--FILE--
<?php
function foo($bar = array("a", "b", "c"))
{
var_dump(current($bar));
}
foo();
?>
--EXPECT--
string(1) "a"
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Bug #24436 (isset()/empty() produce errors with non-existent variables in classes)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--INI--
error_reporting=2047
--FILE--
<?php
class test {
function __construct() {
if (empty($this->test[0][0])) { print "test1\n";}
if (!isset($this->test[0][0])) { print "test2\n";}
if (empty($this->test)) { print "test1\n";}
if (!isset($this->test)) { print "test2\n";}
}
}
$test1 = new test();
?>
--EXPECT--
test1
test2
test1
test2
-30
View File
@@ -1,30 +0,0 @@
--TEST--
Bug #24635 (crash on dtor calling other functions)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class SiteClass {
function __construct() { $this->page = new PageClass(); }
}
class PageClass {
function Display() {
$section = new SectionClass("PageClass::Display");
}
}
class SectionClass {
function __construct($comment) {
$this->Comment = $comment;
}
function __destruct() {
out($this->Comment); // this line doesn't crash PHP
out("\n<!-- End Section: " . $this->Comment . "-->"); // this line
}
}
function out($code) { return; }
$site = new SiteClass();
$site->page->Display();
echo "OK\n";
?>
--EXPECT--
OK
-13
View File
@@ -1,13 +0,0 @@
--TEST--
Bug #24699 (Memory Leak with per-class constants)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 is needed'); ?>
--FILE--
<?php
class TEST { const FOO = SEEK_CUR; };
class TEST2 { const FOO = 1; };
class TEST3 { const FOO = PHP_VERSION; };
print TEST::FOO."\n";
?>
--EXPECT--
1
-9
View File
@@ -1,9 +0,0 @@
--TEST--
Bug #24773 (unset() of integers treated as arrays causes a crash)
--FILE--
<?php
$array = 'test';
unset($array["lvl1"]["lvl2"]["b"]);
?>
--EXPECTF--
Fatal error: Cannot unset string offsets in %s on line %d
Loaded 100 of 6712 files, more files were not shown because too many files have changed in this diff. Show more