Compare commits

...
2317 Commits
Author SHA1 Message Date
SVN Migration 56cd5a941e This commit was manufactured by cvs2svn to create tag 'RELEASE_1_2'. 2006-03-04 14:17:36 +00:00
Michael Wallner 11532a5add - prepare 1.2 release; use package.xml v2 2006-03-04 14:17:35 +00:00
164ee5c2f4 ChangeLog update 2006-03-04 06:31:46 +00:00
Greg Beaver 0d12c29530 s/archieve/archive 2006-03-04 02:12:22 +00:00
Marcus Boerger 3e986adfe3 - Unicode... 2006-03-03 23:51:40 +00:00
Marcus Boerger e86cc2a41d - Add new test 2006-03-03 23:48:36 +00:00
Marcus Boerger 75c95e09c3 - Add new test 2006-03-03 23:35:06 +00:00
Marcus Boerger ce20de5e46 - Fix issue with LimitIterator and bounds checking 2006-03-03 23:34:49 +00:00
Andrei Zmievski ba0b3868ee Clean up after Marcus. 2006-03-03 23:23:17 +00:00
Marcus Boerger 03be54de37 - Make unicode handling portable (noted by andrei)
# Actually we should provide much more such unicode strings that we often
# use like 'parent', 'self' and so on.
2006-03-03 23:20:29 +00:00
Marcus Boerger 742c59862d - Test addition 2006-03-03 22:58:13 +00:00
Marcus Boerger b9630ddf52 - Fix issue with LimitIterator 2006-03-03 22:56:27 +00:00
Andrei Zmievski a5f9807b76 Add note about md5(). 2006-03-03 22:46:55 +00:00
Marcus Boerger 5d77a462f6 - As expected (but told otherwise) unicode strings indeed need to be
terminated by two \0.
2006-03-03 22:37:47 +00:00
Marcus Boerger a9ea7e81c6 - Fix issue with uncaught exceptions in unicode mode 2006-03-03 21:58:56 +00:00
Marcus Boerger 7bb0ca9ce6 - Fix SEGV with AppendIterator when base class constructor was not called
- Generic check to prevent double call to constructors of SPL iterators
2006-03-03 21:35:16 +00:00
Michael Wallner 73ed69f60d - version agnosticism (PECL/HEAD) 2006-03-03 20:44:05 +00:00
Yasuo Ohgaki 4cf8787936 remove obsolete check 2006-03-03 20:41:52 +00:00
Rob Richards 206e50fc60 update dom iterator get key function for engine iterator changes
fix crashes using notations and entity decls
add test
2006-03-03 20:13:12 +00:00
Marcus Boerger 4690c282a0 - Add new tests 2006-03-03 18:07:24 +00:00
Dmitry Stogov dec6f749d9 Regenerated 2006-03-03 16:47:55 +00:00
Edin Kadribasic 75287c2261 MFB: Sync with source distro, enable hash by default 2006-03-03 14:35:29 +00:00
Dmitry Stogov 2a2050d4e3 Added support for "continue" and "break" operators with labels. Each loop or switch statement can be marked by label and then it is possible to write "break <label>" instead of "break <number>". 2006-03-03 13:09:13 +00:00
Dmitry Stogov bfe01c2c17 Fixed incorrect backtrace type ("::" instead of "->") for __set()/__get() 2006-03-03 12:06:44 +00:00
Dmitry Stogov 43621bdc7a Fixed crash 2006-03-03 10:28:58 +00:00
Dmitry Stogov 62de2d7366 Remove "called at [(null):0]" from debug backtrace 2006-03-03 10:09:35 +00:00
Johannes Schlüter 1ed7db0e3b - Fix typo 2006-03-03 09:56:47 +00:00
Dmitry Stogov 1facee1b94 Fixed bug #36575 (SOAP: Incorrect complex type instantiation with hierarchies) 2006-03-03 09:20:51 +00:00
Dmitry Stogov b86007f0e1 ZTS fix 2006-03-03 08:50:25 +00:00
Derick Rethans 0ae66c021d - MF51: Fixed bug #36599 (DATE_W3C format constant incorrect) 2006-03-03 07:54:36 +00:00
37a5ce2d51 ChangeLog update 2006-03-03 06:31:48 +00:00
Andrei Zmievski c5f6efe367 Fix ucwords() to use full case mapping.
# Note that this is different from i18n_strtotitle() which uses
# locale-aware word break iterator. The difference is seen here:
#
# $a = "pouvez-vous";
# var_dump(ucwords($a));
# var_dump(i18n_strtotitle($a));
#
# Outputs:
#
# unicode(11) "Pouvez-vous"
# unicode(11) "Pouvez-Vous"
#
2006-03-02 23:12:33 +00:00
Marcus Boerger c9f49d277b - Store min/max timestamp of entries while building manifest and use max
value for a/c/m-time of dirirectory stats.
2006-03-02 22:44:39 +00:00
Andrei Zmievski 20301a153f Should use word break iteration instead of title, as title one has been
deprecated since Unicode 3.2>
2006-03-02 20:40:45 +00:00
Andrei Zmievski 1751241203 - Update protos for Unicode-upgraded functions
- Also fix ucfirst() to use full case mapping, so that ß (sharp s)
  maps to 'SS' for example
2006-03-02 20:37:07 +00:00
Dmitry Stogov 63116203d7 Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence). (David) 2006-03-02 14:08:04 +00:00
Dmitry Stogov c366cc6d1a Nuke int32_t (everywhere except streams layer) and signed/unsigned warnings 2006-03-02 13:12:45 +00:00
8f567a5abb ChangeLog update 2006-03-02 06:31:46 +00:00
Marcus Boerger cd35eae1aa - Use object handler get in the same way as the rest of the engine does 2006-03-02 00:40:19 +00:00
Yasuo Ohgaki 52fe090ef0 add safe_mode num of parameter check 2006-03-02 00:34:28 +00:00
Ilia Alshanetsky c20dbeb121 MFB51: Remove no longer needed check (checked at a higher level now). 2006-03-01 18:37:25 +00:00
Marcus Boerger f1d02a87aa - Fix test 2006-03-01 17:20:28 +00:00
Dmitry Stogov 6f7619cf6f Unicode support: zstr union 2006-03-01 16:27:47 +00:00
Marcus Boerger 9158218d3a - Must use return as in 5.1 after recursion 2006-03-01 16:18:35 +00:00
Marcus Boerger bf086dff71 - Fix string conversion issues 2006-03-01 16:15:40 +00:00
Marcus Boerger a3741cf6bc - Constants need to be updated too (when updating class constants) 2006-03-01 16:15:15 +00:00
Marcus Boerger 23a8100309 - Fix warning 2006-03-01 16:14:37 +00:00
Rob Richards 96cb8329e5 nuke tests for libxml2 version - will always be > 2.6.0 2006-03-01 15:36:34 +00:00
Rob Richards 06a4265712 64-bit fixes - ("make test" now works again on these platforms) 2006-03-01 11:19:35 +00:00
3c01a9f641 ChangeLog update 2006-03-01 06:31:45 +00:00
Dmitry Stogov 3413d5df40 Fixed compilation on FreeBSD with gcc-3.2 2006-02-28 18:34:58 +00:00
Marcus Boerger 4fb5bc4b6e - Make Derick happy for the moment 2006-02-28 18:26:24 +00:00
Marcus Boerger 56ec57c614 - If (SEEK_CUR,0) means an illegal seek we return -1 to denote the error 2006-02-28 18:00:03 +00:00
Ilia Alshanetsky d31641e2d8 Parsers for previous patch 2006-02-28 14:46:29 +00:00
Ilia Alshanetsky 1a3bb9f4bd MFB51: Fixed bug #36459 (Incorrect adding PHPSESSID to links, which
contains \r\n).
2006-02-28 14:45:52 +00:00
Marcus Boerger 40a610887d - Need to set eof flag when inner stream has eof condition 2006-02-28 14:44:23 +00:00
Marcus Boerger 47a1a84ea5 - Fix the fix 2006-02-28 13:07:19 +00:00
Marcus Boerger 5ea9499ca4 - Fix dependency checks 2006-02-28 12:25:43 +00:00
Marcus Boerger 6531669e4e - Cleanup 2006-02-28 12:06:54 +00:00
232eace5c8 ChangeLog update 2006-02-28 06:31:47 +00:00
Marcus Boerger 946219de15 - Fix reflection info 2006-02-28 01:57:00 +00:00
Marcus Boerger ce2b0345fb - This dtor is actually always needed 2006-02-28 01:45:28 +00:00
Marcus Boerger a3fcdf4f08 - Add OO interface to handling phar archieves and entries
- Add support for HEAD
- Cleanup
2006-02-28 01:36:30 +00:00
Marcus Boerger 1c0d546bd4 - Fix issues withhandling of derived info classes as entries 2006-02-27 22:31:07 +00:00
Derick Rethans 2068a3bea5 - Fixed bug #36510 (strtotime string with tabs - changed behaviour). 2006-02-27 19:39:21 +00:00
Marcus Boerger 5a42b4086b - Extend struct to allow inherited c classes hookk their own info there 2006-02-27 18:15:29 +00:00
Marcus Boerger 10a5901abf - Fix count/foreach interaction 2006-02-27 13:32:25 +00:00
Marcus Boerger d8b7f1dea0 - MFB 2006-02-27 11:55:23 +00:00
Johannes Schlüter 5bc5d507c2 - Add .cvsignore 2006-02-27 11:37:02 +00:00
72345090e7 ChangeLog update 2006-02-27 06:32:01 +00:00
Ilia Alshanetsky 736a05f959 MFB51: Revert previous fix to allow for a more comprehensive patch from Derick. 2006-02-26 22:15:22 +00:00
Ilia Alshanetsky 341113bdb2 Fixed file 2006-02-26 17:07:33 +00:00
Ilia Alshanetsky 4c722c519f MFB51: Fixed bug #36510 (strtotime() fails to parse date strings with tabs). 2006-02-26 17:07:17 +00:00
Marcus Boerger 3dd6bb16aa - Fix test 2006-02-26 16:40:01 +00:00
Marcus Boerger 30806dbc2b - Missing conversion 2006-02-26 16:12:21 +00:00
Marcus Boerger 1dd351d649 - Use get_property_ptr_ptr handler to prevent SEGV as in bug #35785
# Issue not completley solved though
2006-02-26 15:48:28 +00:00
Marcus Boerger 24d83ebd0f - Add another write case 2006-02-26 13:37:54 +00:00
Marcus Boerger 75b3d578d3 - Add unicode results 2006-02-26 12:26:31 +00:00
Marcus Boerger ebef7961a3 - Unicode support 2006-02-26 12:00:39 +00:00
Dmitry Stogov e3b7f3fd0d Unicode support: MS Visual C compatibility 2006-02-26 11:57:14 +00:00
Dmitry Stogov 25c8f09752 Unicode support 2006-02-26 07:23:33 +00:00
d952bfcc6a ChangeLog update 2006-02-26 06:31:46 +00:00
Marcus Boerger d1f3c48041 - Added ability to add elements by index if such elements already exist
- Added SimpleXMLElement::getName() to access the node name
# This allows to retrieve the name of the root element which is otherwise
# only available by converting the sxe object into a dom object.
2006-02-25 23:41:06 +00:00
Rasmus Lerdorf f16846e685 Binary safety patch from Moriyoshi 2006-02-25 21:30:32 +00:00
Marcus Boerger 257a95f69f - deprecated belongs in the flag area, not in the keyword area 2006-02-25 18:05:16 +00:00
Marcus Boerger 44b0637bcd - Deprecation severity shall be E_STRICT (as commented by ilia)
# Actually this conforms with other messages
2006-02-25 17:43:12 +00:00
8299b9ea6f ChangeLog update 2006-02-25 06:31:48 +00:00
Johannes Schlüter 0f88ee56d0 - Fix description 2006-02-24 23:25:39 +00:00
Johannes Schlüter e0053b2536 - We need %v here 2006-02-24 23:10:53 +00:00
Johannes Schlüter cea8dd887b - Fix #29986 (Class constants won't work with predefined constants when
using ReflectionClass)
2006-02-24 23:08:36 +00:00
Derick Rethans 16920d54c7 - Fixed issue with iconv_mime_decode where the "encoding" would only allow
upper case specifiers.
#- See RFC 2047, section 2.
2006-02-24 16:04:55 +00:00
Marcus Boerger e610f5959f - s/FETCH_PROPSLATE/FETCH_PROPS_LATE/ as per IRC discussion 2006-02-24 16:04:13 +00:00
Marcus Boerger 252ad86917 - Add FETCH_PROPSLATE: fetch props after calling ctor
# Fixes bug #36428
2006-02-24 15:56:03 +00:00
Marcus Boerger b13105ee4c - Add ability to add new nodes via properties 2006-02-24 15:49:13 +00:00
Johannes Schlüter 4ad7d57a97 - deprecated not static 2006-02-24 13:44:46 +00:00
Marcus Boerger 90c428a6a0 - Fix warning 2006-02-24 13:37:20 +00:00
Marcus Boerger 9845606cef - Add deprecation function/function alias macros 2006-02-24 13:30:21 +00:00
Marcus Boerger 8a4c8e8d47 - Add macros to mark functions/alias functions as deprecated
(mentioned by Sara and obviously neccessary)
- Fix function/method flag error detection logic
2006-02-24 13:29:54 +00:00
Marcus Boerger 7dfafcbb84 - Functions can be deprecated too
- Add missing constant
2006-02-24 13:13:55 +00:00
Michael Wallner 92f97ce76a - MF51: fix crash in DOMImplementation::createDocumentType("name:") 2006-02-24 10:24:43 +00:00
Derick Rethans 945cba102a - Added support for exif date format
- Fixed bug #36396 (strtotime() fails to parse dates in dd-mm-yyyy format).
2006-02-24 09:43:30 +00:00
fea97047e9 ChangeLog update 2006-02-24 06:31:51 +00:00
Marcus Boerger bb94742080 - Disable mbregex support until someone finds a way to reenable the
required engine stuff
- Fix build
2006-02-23 20:15:36 +00:00
Ilia Alshanetsky a9b90524d5 MFB51: Fixed bug #35900 (stream_select() should warning when tv_sec is
negative).
2006-02-23 18:28:37 +00:00
Andrei Zmievski 7f5c395781 *** empty log message *** 2006-02-23 18:06:36 +00:00
Andrei Zmievski ea1c076155 Fix a bug where the default value for function argument could be an
array with array (!) keys.
2006-02-23 18:06:04 +00:00
9ca3aa59e6 ChangeLog update 2006-02-23 06:32:01 +00:00
Brian France 2eb346cce0 fixed bug #35594 for all systems. "optind = 0" doesn't work on FreeBSD, but "optind = 1" seems to work on all systems (bug #36091) 2006-02-23 03:48:30 +00:00
Ilia Alshanetsky 71a4f39d7b MFB51: Added test for bug #36434 2006-02-22 15:45:45 +00:00
Dmitry Stogov 5237a40717 Unicode support: fixed serialization of "Serializable" 2006-02-22 14:20:54 +00:00
Dmitry Stogov ba8069e77e Unicode support: fixed serealization of "Serializable" and "IncompleteClass" 2006-02-22 13:47:40 +00:00
Dmitry Stogov 84f0adff86 Unicode support: fixed GLOBALS protection 2006-02-22 13:10:32 +00:00
Dmitry Stogov b029407078 fixed test file 2006-02-22 12:24:02 +00:00
Dmitry Stogov 36002f16c3 Fixed test file 2006-02-22 12:22:07 +00:00
Dmitry Stogov 0342d9f519 Unicode support 2006-02-22 12:02:44 +00:00
Dmitry Stogov 9da17f4fed Fixed test file 2006-02-22 11:44:37 +00:00
Dmitry Stogov 3d0da6184a Unicode support: fixed __toString() in user defined exceptions 2006-02-22 11:38:32 +00:00
Dmitry Stogov 26ddcdb55d Unicode support 2006-02-22 11:37:11 +00:00
Dmitry Stogov cbd40d1e5d Unicode support: fixed check for class type hint 2006-02-22 10:56:52 +00:00
Dmitry Stogov 1f4d9fa4a7 Unicode support: fixed internal constants usage and get_defined_constants() 2006-02-22 10:02:15 +00:00
Dmitry Stogov 28737451f2 Unicode support: fixed check for direct call to __clone() 2006-02-22 09:03:26 +00:00
Dmitry Stogov 19ebeed0d8 Unicode support: fixed call_user_func(array($this, "self::foo"))
Made check for "self/parent" before calling __autoload()
2006-02-22 08:54:02 +00:00
Antony Dovgal 9fbd7efa09 fix ext/wddx build 2006-02-22 07:25:09 +00:00
9f8de03dad ChangeLog update 2006-02-22 06:31:55 +00:00
Marcus Boerger 54c4478a12 - 2006 now 2006-02-21 23:21:53 +00:00
Johannes Schlüter f0331d8c12 - Print deprecation info on reflection export 2006-02-21 21:42:54 +00:00
Sebastian Bergmann 50ccc82261 Fix whitespace. 2006-02-21 21:38:28 +00:00
Marcus Boerger de27da1c85 - More bodies 2006-02-21 21:22:39 +00:00
Marcus Boerger 0cf591a5f9 - Ensure non abstract methods have code
# This is very usefull once doxygen 1.4.7 comes out with my patch :-)
2006-02-21 21:19:34 +00:00
Johannes Schlüter 14e07c9ae2 - List --rf/--rc/--re only with enabled reflection 2006-02-21 21:14:36 +00:00
Johannes Schlüter 851e5109f6 - Fix build with readline-support 2006-02-21 21:04:19 +00:00
Sara Golemon 3b7d690912 Add md2 algo support 2006-02-21 20:37:12 +00:00
Sara Golemon 6ca81d1347 Keep history in package.xml file.. 2006-02-21 20:35:38 +00:00
Sebastian Bergmann 865eaa67b5 Add ReflectionMethod::isDeprecated(). Patch reviewed by Marcus Börger <helly@php.net>. 2006-02-21 20:23:10 +00:00
Dmitry Stogov 0f1209ab3d Portable unicode string API:
- use the same type (int) for zval.value.usr.len and zval.value.str.len
  - use union "zstr" as char*/UChar* mixture instead of void*
  - Z_UNISTR() and Z_UNILEN() no longer check for Z_TYPE()
  - nuke int32_t from ZE (not finisned)
2006-02-21 20:12:43 +00:00
Ilia Alshanetsky fca6eecbe9 MFB51: Fixed bug #36458 (sleep() accepts negative values). 2006-02-21 15:32:34 +00:00
Marcus Boerger 53f2048fd1 - Its 2006 already 2006-02-21 09:47:09 +00:00
Marcus Boerger 43e9def563 - Update 2006-02-21 09:45:38 +00:00
Marcus Boerger 416f3ef160 - Ansi compliance issue found by rob 2006-02-21 09:12:32 +00:00
Dmitry Stogov 2e5d0a3a9d WS 2006-02-21 08:00:39 +00:00
7bc8d5227d ChangeLog update 2006-02-21 06:31:51 +00:00
Marcus Boerger 76df257b15 - Simplify by remove redundant checks 2006-02-21 00:55:38 +00:00
Marcus Boerger 86f70099d0 - Fix text expectations 2006-02-21 00:49:51 +00:00
Marcus Boerger 37f033e0f7 - Fix mem issue in unicode mode (seems to be a problem in different api behavior) 2006-02-21 00:43:33 +00:00
Marcus Boerger 3ac5297d8b - Add ReflectionProperty::getDefaultValue() 2006-02-21 00:37:39 +00:00
Johannes Schlüter 6e9026d6c8 - Rename reflection constants to fix parser conflicts 2006-02-20 23:31:29 +00:00
Marcus Boerger fc21f78226 - Show dependencies in dump's too 2006-02-20 23:26:39 +00:00
Marcus Boerger 0184485812 - Add ReflectionExtension::getDependencies() to retrieve all dependencies
of an extension as associative array "ModuleNeme" > "Relation"
2006-02-20 23:01:27 +00:00
Marcus Boerger b56190d25b - Add some arginfo 2006-02-20 22:23:27 +00:00
Marcus Boerger 45dd9a10b8 - WS 2006-02-20 22:21:24 +00:00
Marcus Boerger f4fd040d73 - Include examples in documentation
- Provide a better place for the examples
2006-02-20 22:19:04 +00:00
Marcus Boerger a27e272670 - Synch zend_call_function() with VM function call helper 2006-02-20 20:03:36 +00:00
Marcus Boerger 3b3e006e33 - Add deprecation flag and message 2006-02-20 20:00:46 +00:00
Dmitry Stogov b424a32610 Preparation for portable string API (use macroses to access zval). 2006-02-20 19:03:43 +00:00
Dmitry Stogov 6e6a84129c Incorrect usage of Z_TYPE() macro 2006-02-20 17:14:18 +00:00
Ilia Alshanetsky 3fa4bf210f MFB51: Fixed bug #36434 (Improper resolution of declaring class name of an
inherited property).
2006-02-20 15:28:15 +00:00
Dmitry Stogov 9528c37906 Fixed SIGSEGV in unicode mode 2006-02-20 11:15:02 +00:00
Dmitry Stogov bb0f2051c4 Fixed wrong prototype and error message 2006-02-20 10:50:58 +00:00
Dmitry Stogov 332e557ac2 Fixed start inex in iterator 2006-02-20 10:29:35 +00:00
Dmitry Stogov 5e0b8cdb94 Fixed test files 2006-02-20 09:45:00 +00:00
Dmitry Stogov 5fb11bc86e Fixed memory corruption 2006-02-20 09:38:47 +00:00
Dmitry Stogov 56b0eb7248 Fixed test file 2006-02-20 08:39:38 +00:00
9926de1840 ChangeLog update 2006-02-20 06:31:57 +00:00
Michael Wallner e15933f6ef - changelog 2006-02-19 23:53:06 +00:00
Michael Wallner cc6ac87145 MF51: fix tiger on big endian platforms 2006-02-19 23:43:23 +00:00
Ilia Alshanetsky a605fd39c4 More safe_mode nuking 2006-02-19 18:20:51 +00:00
Ilia Alshanetsky c6ba5765be Nuke safe_mode 2006-02-19 18:19:33 +00:00
Marcus Boerger 052017e78b - Add new function 2006-02-19 12:18:28 +00:00
Marcus Boerger ffd43034b0 - Interfaces may have static methods to enforce their existance in
implementing classes
2006-02-19 11:55:11 +00:00
Marcus Boerger 89f57ea951 - Static functions cannot be abstract 2006-02-19 11:42:30 +00:00
Marcus Boerger 5a4cfaf96a - Fix method flag handling 2006-02-19 10:39:48 +00:00
99b4f52353 ChangeLog update 2006-02-19 06:31:52 +00:00
Andi Gutmans c28cff57d1 - Couple of compile fixes. 2006-02-19 05:05:42 +00:00
Andi Gutmans 1efe984d08 - Get rid of using ENFORCE_SAFE_MODE. 2006-02-19 04:29:42 +00:00
Andi Gutmans 8f126f33ac - Fix according to Sara's reply 2006-02-19 03:41:25 +00:00
Andi Gutmans ac1e7362b3 - More safe_mode nuking 2006-02-19 03:07:39 +00:00
Andi Gutmans d3f7bee047 Nuke php_check_safe_mode_include_dir 2006-02-19 01:19:37 +00:00
Andi Gutmans e3b1e8c5dd - Some more safe_mode nuking 2006-02-19 01:10:13 +00:00
Andi Gutmans e94e25e621 Start nuking safe_mode. Still a lot of work to do... 2006-02-19 00:55:22 +00:00
Marcus Boerger d73533a9d4 - There is no %v in sprintf 2006-02-18 19:33:26 +00:00
Marcus Boerger e936de9d1b - Fix naming inconsistency reported by sebastian 2006-02-18 18:05:46 +00:00
Marcus Boerger bc994b981f - Fix integrated iterator index 2006-02-18 17:37:54 +00:00
Marcus Boerger b60c8056b3 - Fix possible memory corruption/memleak issue with foreach and iterators
- Fix warnings
2006-02-18 17:36:41 +00:00
Marcus Boerger bb924b320f - Add test 2006-02-18 17:13:39 +00:00
Marcus Boerger b2565bded0 - Add new test 2006-02-18 16:58:50 +00:00
Marcus Boerger c2e1da6ecc - Initiai fix to Bug #36436 DBA problem with Berkeley DB4 2006-02-18 16:52:30 +00:00
Michael Wallner 379f6cdc2a MF51: fix misleading proto (confused in and out charset) 2006-02-18 16:04:02 +00:00
529db54af6 ChangeLog update 2006-02-18 06:31:45 +00:00
Andrei Zmievski 31f74bc7a5 NULL byte should be escaped to \000 instead of \0 in case it is followed
by an octal digit. (found by Jeffrey Friedl)
2006-02-17 21:17:44 +00:00
Marcus Boerger f81239a2b3 - Change to offsetof as suggested by Clayton 2006-02-17 08:24:56 +00:00
ebdcf22445 ChangeLog update 2006-02-17 06:31:40 +00:00
Antony Dovgal 29d3ee55d5 fix #36420 (segfault when access result->num_rows after calling result->close()) 2006-02-16 16:08:52 +00:00
Ilia Alshanetsky 2b24ddb6a3 MFB51: Fixed bug #36420 (segfault when access result->num_rows after calling
result->close())
2006-02-16 16:05:02 +00:00
Antony Dovgal 77b7b56ab0 improve usleep(): use new param parsing API, check for negative values
(related to #36410)
2006-02-16 10:13:23 +00:00
4323be1cd1 ChangeLog update 2006-02-16 06:31:44 +00:00
Antony Dovgal 988b552742 fix typo 2006-02-16 06:29:32 +00:00
Marcus Boerger d87927c388 - Fix iterator handling (how did the fix after api change get lost here?)
- In php 5 we do not want to return &new
2006-02-16 01:12:51 +00:00
Marcus Boerger 45820dd7ea - Little speedup + first test 2006-02-15 21:34:21 +00:00
Antony Dovgal cc318c4f4f fix #36403 (oci_execute() no longer supports OCI_DESCRIBE_ONLY) 2006-02-15 20:43:37 +00:00
Antony Dovgal 46882d6782 MF51: fix memory leak and possible invalid reads 2006-02-15 11:16:30 +00:00
Antony Dovgal eb49217161 fix #36400 (Custom 5xx error does not return correct HTTP response error code) 2006-02-15 11:07:33 +00:00
aa4cfd6d2f ChangeLog update 2006-02-15 06:31:54 +00:00
Antony Dovgal 09b16f0b58 MF51:
fix leak in zend_strtod() on big doubles
add new test
2006-02-14 22:11:36 +00:00
Ilia Alshanetsky d60eeb0ba8 MFB51: Fixed bug #36345 (PDO/MySQL problem loading BLOB over 1MB). 2006-02-14 14:26:27 +00:00
Antony Dovgal 2c24249ccc add test for bug #36337 2006-02-14 09:46:45 +00:00
7ab93bee97 ChangeLog update 2006-02-14 06:31:50 +00:00
Marcus Boerger 4e172c21a5 - Change unicode_enabled() to unicode_semantics() per Andrei's suggestion 2006-02-13 19:55:17 +00:00
Dmitry Stogov 6da04e6292 pval -> zval (Steph) 2006-02-13 16:35:36 +00:00
Dmitry Stogov ece3854bf6 Typo (misplaced #endif) 2006-02-13 15:35:52 +00:00
Ilia Alshanetsky eaacf0bb2f MFB51: Fixed bug #36337 (ReflectionProperty fails to return correct visibility). 2006-02-13 14:49:54 +00:00
Dmitry Stogov b238135d53 Fixed bug #36205 (Memory leaks on duplicate cookies) 2006-02-13 12:18:31 +00:00
Dmitry Stogov 09ca61c125 Made server wide switch for unicode on/off (according to PDM). 2006-02-13 10:23:59 +00:00
Marcus Boerger 5a4b6845dc - Fix ini unicode_semantics (patch by Brion Vibber) 2006-02-13 09:23:13 +00:00
Marcus Boerger 83f1271312 - Add unicode_enabled() to check whether unicode_semantics is on 2006-02-13 09:20:19 +00:00
7e09f0686d ChangeLog update 2006-02-13 06:31:40 +00:00
Marcus Boerger 72c3fc6172 - Reinsert line deleted per accident 2006-02-12 18:46:07 +00:00
Marcus Boerger 25db84f1d1 - Fix tests 2006-02-12 18:43:41 +00:00
Marcus Boerger 887d1202f4 - No more old parameter api usage 2006-02-12 16:43:30 +00:00
Ilia Alshanetsky 2fb6ce838b MFB51: Fixed bug #36351 (parse_url() does not parse numeric paths properly). 2006-02-12 16:40:34 +00:00
c40cab9084 ChangeLog update 2006-02-12 06:31:40 +00:00
0c5c764d59 ChangeLog update 2006-02-11 06:31:41 +00:00
Rui Hirokawa 0453023c3e added additional info about mail encoding to mb_get_info(). (made by Jokagi) 2006-02-11 02:25:29 +00:00
Andrei Zmievski 5418ae7976 Implement character/word/line/sentence iterators and the reverse
counterparts.
2006-02-11 00:16:43 +00:00
Antony Dovgal 50bbedcec3 fix #36359 (splFileObject::fwrite() doesn't write when no data length specified) 2006-02-10 16:56:56 +00:00
Rasmus Lerdorf a5883cc89c (Missing patch from the PHP 4 tree that got lost in the shuffle)
See: http://cvs.php.net/viewcvs.cgi/php-src/ext/session/session.c?r1=1.336.2.39&r2=1.336.2.40
- fix logic. if the client already sent us the cookie, we don't
  need to send it again.  if the id has been changed, we need to
  update the client side.
2006-02-10 07:41:59 +00:00
277789fb30 ChangeLog update 2006-02-10 06:31:48 +00:00
Andrei Zmievski 086dec2719 Make ReverseTextIterator a separate class. 2006-02-10 00:23:29 +00:00
Andrei Zmievski d4307e4494 We already have default collator available. 2006-02-09 23:23:02 +00:00
Pierre Joye a5d44ed100 - fix order 2006-02-09 22:27:11 +00:00
Ilia Alshanetsky 8af39b1461 MFB51: Added test for bug #36308 2006-02-09 18:18:42 +00:00
Pierre Joye 154bb7c6a7 - MFB:
- revert last fix
- ensure that we are in 32bit
- do not try to compare the decimal values but hex, php does not have
  unsigned integer
2006-02-09 15:48:18 +00:00
0916b5c607 ChangeLog update 2006-02-09 06:31:47 +00:00
Ilia Alshanetsky 53ae13aa91 MFB51: Fixed bug #36334 (Added missing documentation about realpath cache INI
settings).
2006-02-08 23:47:01 +00:00
Johannes Schlüter c8c6dfc436 - Fix charset 2006-02-08 21:07:41 +00:00
Johannes Schlüter c416b927f0 - It's 2006 and PHP 6 2006-02-08 21:03:00 +00:00
Antony Dovgal 73610b76a9 move function definition from .h to .c, where it should be 2006-02-08 20:49:40 +00:00
Andrei Zmievski d8db0d6a15 unicode_semantics cannot be set on per-request basis 2006-02-08 18:52:13 +00:00
72803507f1 ChangeLog update 2006-02-08 06:31:47 +00:00
Ilia Alshanetsky 0e61422e6c MFB51: Fixed bug #36308 (ReflectionProperty::getDocComment() does not reflect
extended class commentary).
2006-02-08 00:37:31 +00:00
Andrei Zmievski dfd6f3e3b8 Reverse iteration for combining sequences. 2006-02-08 00:16:50 +00:00
Andrei Zmievski 1a6b00fc01 Implement reverse iteration for codeunits and codepoints. Combining
sequences are next.

# This is ugly, though.
# foreach (new TextIterator($a, # TextIterator::CODE_POINT|TextIterator::REVERSE) as $k => $c) {
#    var_dump("$k: $c");
# }
# Any suggestions?
2006-02-07 20:01:28 +00:00
Andrei Zmievski f0a9b2d51b MFB. 2006-02-07 17:54:52 +00:00
Antony Dovgal 087ee7d567 don't use deprecated call-time by reference 2006-02-07 14:11:01 +00:00
Dmitry Stogov 018fc87344 Compression level shouldn't be greatr then 9. 2006-02-07 12:57:43 +00:00
Dmitry Stogov a13e2c5784 Fixed bug #36083 (SoapClient waits for responses on one-way operations) 2006-02-07 12:49:30 +00:00
Rob Richards 8e4671ba01 modify get_iterator calls for engine change
fix mem leak with iterators
fix object casting for edge case
2006-02-07 11:52:45 +00:00
Rob Richards e1e5c3f3b2 modify get_iterator call for engine change 2006-02-07 11:48:37 +00:00
d2148ac8e5 ChangeLog update 2006-02-07 06:31:46 +00:00
Andrei Zmievski ef4c06c083 Check for get_properties handler before using it. (Patch from
rrichards@ctindustries.net).
2006-02-07 00:32:16 +00:00
Pierre Joye 6a158cf60d - MFB: #36306, crc32() result differs on 32-bit and 64-bit platforms 2006-02-07 00:24:56 +00:00
Andrei Zmievski f71a7cb1f4 Implement combining sequences support in TextIterator. 2006-02-07 00:13:54 +00:00
Andrei Zmievski 071835ea59 - Fix up a bunch of stuff.
- Register TextIterator type constants.

# Not sure if I like them as class constants. Cleaner, but also longer
# to type.
2006-02-06 22:58:10 +00:00
Antony Dovgal c888a7f8af init variables (continue making GCC happy) 2006-02-06 20:36:51 +00:00
Michael Wallner 43550c7f4e - fix ReflectionClass::getInterfaces() 2006-02-06 20:11:56 +00:00
Andrei Zmievski 9e07b59f9c Some TODO items. 2006-02-06 18:18:41 +00:00
Andrei Zmievski 1e9fa8c10a Make TextIterator fast again, now that we don't have to worry about
references.
2006-02-06 17:42:28 +00:00
Ilia Alshanetsky 8e7b44c7f3 MFB51: Fixed test to work when TCP/IP access to MySQL is disabled or test
server is on a remote machine.
2006-02-06 14:25:28 +00:00
Dmitry Stogov ba96a4032c typo 2006-02-06 13:17:20 +00:00
Dmitry Stogov 47c90c571f Fixed bug #36303 (foreach on error_zval produces segfault) 2006-02-06 11:46:12 +00:00
Antony Dovgal 96543b01ad initialize variables and reduce the number of warnings 2006-02-06 11:28:20 +00:00
Antony Dovgal 01937aa77f initialize variable and make gcc happy 2006-02-06 11:00:51 +00:00
Antony Dovgal d163171c17 MF51: initialize variables 2006-02-06 10:54:49 +00:00
Antony Dovgal eadb1127fb MF51: initialize to_r
remove needless semicolon
2006-02-06 10:41:42 +00:00
Dmitry Stogov 529a315637 Fixed bug #36283 (SOAPClient Compression Broken). 2006-02-06 10:16:15 +00:00
98c15023eb ChangeLog update 2006-02-06 06:31:46 +00:00
Marcus Boerger 8d0a71a30e - Finally enable optimization 2006-02-06 02:07:08 +00:00
Marcus Boerger 50b243babb - Missed one to be public 2006-02-06 01:58:45 +00:00
Marcus Boerger ee37c70736 - WS
- current() doesn't return anything
2006-02-06 01:49:13 +00:00
Marcus Boerger 0d1594692d - Simplify 2006-02-06 01:42:37 +00:00
Marcus Boerger 1630242347 - The next get_iterator() call is supposed to do the check itself 2006-02-06 01:40:42 +00:00
Marcus Boerger 42cc8c1ba3 - Simplify 2006-02-06 01:30:26 +00:00
Marcus Boerger 9b8b9632cd - Add new test 2006-02-06 01:28:08 +00:00
Marcus Boerger 1ea1975817 - Synch c-level iterator and iterator methods
- Fix iterator checks
# A nice discussion with Andrei made me remember this issue
2006-02-06 00:58:11 +00:00
Marcus Boerger dcf5862221 - Make all default implementations public 2006-02-06 00:49:33 +00:00
Marcus Boerger 2fba438e06 - Need one more thing exported 2006-02-05 23:42:53 +00:00
Marcus Boerger c67d8b2152 - Iterator API was changed 2006-02-05 23:31:47 +00:00
Marcus Boerger ea00c7597f - Add missing .cvsignore 2006-02-05 23:29:34 +00:00
Marcus Boerger c8d78028b5 - Disallow foreach($v as &$ref) when $v is an object that implements
interface Iterator. The signature of Iterator::current() doesn't allow
  that. Maybe ppl also want IteratorByReference or similar. Unfortunatley
  this comes with an API change but there is no easier way.
2006-02-05 23:26:55 +00:00
Andrei Zmievski a6e8746bbe Needs to use .ustr. portion of the union for IS_UNICODE. 2006-02-05 20:54:11 +00:00
Antony Dovgal bd8a167442 fix #36295 (typo in SplFileObject::flock() parameter name) 2006-02-05 19:22:13 +00:00
Marcus Boerger 44baf1f3ec - Initialize variable 2006-02-05 16:25:46 +00:00
Pierre Joye 9c7d105c9b - MFB: ini entry for gd.jpeg_ignore_warning 2006-02-05 16:05:46 +00:00
Pierre Joye d78e8d749c - test for jpeg support 2006-02-05 15:53:02 +00:00
Marcus Boerger 6bfa4b19e1 - Fix comparision where one argument is an object 2006-02-05 13:12:20 +00:00
Marcus Boerger 19117cf9c9 - Fix bug #36287 2006-02-05 11:43:28 +00:00
5f1572d8e4 ChangeLog update 2006-02-05 06:31:42 +00:00
Frank M. Kromann 322be18f4d MFB51 Fix build on win32 2006-02-04 23:58:22 +00:00
Derick Rethans 8440dc27db - Test commit to see if mail works. 2006-02-04 15:36:35 +00:00
Pierre Joye ccaa5eaab2 - remove libjpeg direct output and wrap them in php warnings 2006-02-04 14:56:58 +00:00
Rob Richards 1e2a3e8b7c MFB51: Fixed bug #34272 (empty array onto COM object blows up)
fix mem leaks
WS fixes
add test
2006-02-04 10:59:18 +00:00
b352adf0c5 ChangeLog update 2006-02-04 06:31:55 +00:00
Andrei Zmievski 589d28e429 Implement Traversable instead of Iterator. 2006-02-04 00:41:42 +00:00
Andrei Zmievski fe5aac2f41 Add code unit ops. 2006-02-04 00:35:37 +00:00
Andrei Zmievski 4a3bf22b81 Abstract the iterator interface so that we can add new types. 2006-02-04 00:23:52 +00:00
Andrei Zmievski 94e3087be7 Gah. In order to avoid memory corruption when using references in
foreach() this code is necessary. But it makes iterator 6x slower. We
should keep thinking about how to optimize it.
2006-02-03 23:50:42 +00:00
Andrei Zmievski aa7ed0788c Guard against assign-by-ref. 2006-02-03 21:53:05 +00:00
Dmitry Stogov 47e607a93a Fixed bug #36158 (SIGTERM is not handled correctly when running as a FastCGI server) 2006-02-03 16:30:27 +00:00
Antony Dovgal 760d8cda46 MF51: fix #36010 (Segfault when re-creating and re-executing statements with bound parameters) 2006-02-03 14:48:24 +00:00
Antony Dovgal a1640d5ef9 duplicate string when needed 2006-02-03 13:24:26 +00:00
Dmitry Stogov 558e883302 Fixed bug #36268 (Object destructors called even after fatal errors) 2006-02-03 09:33:31 +00:00
22a5e72322 ChangeLog update 2006-02-03 06:31:41 +00:00
Andrei Zmievski 682ec6e25e Rewrite to use C-level iterators for performance. Also, cache the string
in the iterator object for immutability.
2006-02-03 00:09:19 +00:00
Marcus Boerger aa55f8731a - Fix ArrayIterator::seek() edge cases 2006-02-02 22:11:49 +00:00
Antony Dovgal 098a1c98ff MF51: nuke unused variable 2006-02-02 21:43:40 +00:00
Pierre Joye bc436e2fd3 - add a weak/tolerant mode to the jpeg loader
* new INI option to enable it (off by default)
   gd.jpeg_ignore_warning (0|1)
 * The default mode is the current behavior
 * if the warning mode is enabled, the image may be loaded succesfully
   but the jpeg warnings will be raise as notices
2006-02-02 20:30:54 +00:00
Marcus Boerger 9f628d10f6 - Fix oversight 2006-02-02 19:02:05 +00:00
Sara Golemon ff87d57268 Prevent bindport from being used uninitialized 2006-02-02 18:16:25 +00:00
Ilia Alshanetsky 555cfd0146 MFB51: Only use win32 directory separators on win32 or netware. 2006-02-02 15:10:23 +00:00
Antony Dovgal 2c508bc1f0 fix tests 2006-02-02 15:04:22 +00:00
Antony Dovgal d63e26191a fix win32 snapshots 2006-02-02 14:45:54 +00:00
Antony Dovgal c4daf2fffa add test for bug #36258 2006-02-02 13:57:04 +00:00
Antony Dovgal 6f1ccba730 add missing folding tags
nuke unnecessary semicolons
2006-02-02 12:40:07 +00:00
Antony Dovgal fc2f82751a MF51: fix #36258 (SplFileObject::getPath() may lead to segfault) 2006-02-02 12:20:26 +00:00
Dmitry Stogov edbb459290 Bug #36226 Inconsistent handling when passing potential arrays 2006-02-02 11:42:12 +00:00
Omar Kilani 690859c1fd Fix encoding of empty strings.
Add empty string value test case.
2006-02-02 10:54:32 +00:00
Dmitry Stogov ed3a54c657 AIX support 2006-02-02 10:00:09 +00:00
b7b5b9fe79 ChangeLog update 2006-02-02 06:31:46 +00:00
Sebastian Bergmann f3ddda4229 Fix Andrei. 2006-02-02 06:01:27 +00:00
Andrei Zmievski d887f2238b Remove debug message. 2006-02-02 00:05:21 +00:00
Andrei Zmievski 2b763aa305 Check for intern->text before destroying it. 2006-02-01 23:53:53 +00:00
Andrei Zmievski d4c929764a Proof-of-concept for TextIterator. Much more work to be done here. 2006-02-01 23:50:50 +00:00
Dmitry Stogov d4a61bb8de Fixed encoding of inhereted objects 2006-02-01 17:18:38 +00:00
Joe Orton af6dd5cb7e Fixed bug #36208 (symbol namespace conflicts using bundled gd). (Jakub Moc) 2006-02-01 13:10:04 +00:00
Antony Dovgal 8416426488 fix #36242 (Possible memory corruption in stream_select()) 2006-02-01 10:31:26 +00:00
Antony Dovgal d7393d2d02 fix build 2006-02-01 09:10:23 +00:00
Sebastian Bergmann b432cf277c MFB: Fix line endings. 2006-02-01 07:42:13 +00:00
d8f698e33a ChangeLog update 2006-02-01 06:31:40 +00:00
Zeev Suraski 8a2a69ad0f Fix possibility of a wrong element being deleted by zend_hash_del() 2006-02-01 01:05:17 +00:00
Derick Rethans 8a05386f7d - Implemented PECL req #6641: negative values for hexadecimal and octal numbers
are not supported.
2006-01-31 19:12:29 +00:00
Derick Rethans e3f84aafc8 - Fixed tests. 2006-01-31 19:09:07 +00:00
Derick Rethans d96c1d0895 - Fixed PECL bug #6639: uppercase hexadecimal digits are not supported. 2006-01-31 18:51:49 +00:00
Derick Rethans 6715bb38bd - Fixed bug #36224: date(DATE_ATOM) gives wrong results 2006-01-31 18:41:45 +00:00
Antony Dovgal 048c5843f4 merge from 5.1 forgotten patch 2006-01-31 18:41:38 +00:00
Antony Dovgal 617242e6fa fix test 2006-01-31 18:39:50 +00:00
Antony Dovgal 2697320c20 fix #36235 (ocicolumnname delivers empty results before a succesfull ocifetch) 2006-01-31 18:36:59 +00:00
Derick Rethans 87726add5f - Upgraded timezonedb to 2006a. 2006-01-31 18:07:24 +00:00
Ilia Alshanetsky c064a9e243 MFB51: Fixed bug #36222 (errorInfo in PDOException is always NULL). 2006-01-31 17:21:25 +00:00
Omar Kilani 7da29196d3 Add some documentation to the JSON extension. 2006-01-31 09:00:47 +00:00
Omar Kilani 73cead23a5 Add tests for JSON based on tests found on json.org:
http://www.crockford.com/JSON/JSON_checker/test/
2006-01-31 09:00:14 +00:00
Omar Kilani 94a140214c - Rewritten for better performance. 3-8x faster encodes, 2-4x faster decodes.
- No longer uses json-c, implements it's own JSON parser and encoder.
- JSON parser based on Douglas Crockford's JSON_checker.
2006-01-31 08:59:06 +00:00
Omar Kilani 933ce50838 Remove json_c. 2006-01-31 08:54:55 +00:00
Derick Rethans d54967b956 - Moved msession to PECL. 2006-01-31 08:13:31 +00:00
1a62352dac ChangeLog update 2006-01-31 06:31:44 +00:00
Mark L. Woodward 8b24460752 MSession now works with the new MCache server 2006-01-30 16:18:40 +00:00
cf0736cab6 ChangeLog update 2006-01-30 06:31:45 +00:00
Ilia Alshanetsky b90245d90a MFB51: Fixed bug #36176 (PDO_PGSQL - PDO::exec() does not return number of
rows affected by the operation).
2006-01-29 17:36:12 +00:00
Derick Rethans 3bed27f4a6 - An empty string is still a valid string, so there is no reason to return
NULL here.
2006-01-29 16:37:42 +00:00
ce3d04c1a0 ChangeLog update 2006-01-29 06:31:42 +00:00
Michael Wallner ec942cb2a6 MF51: use free() 2006-01-28 08:08:48 +00:00
5e9dd334f0 ChangeLog update 2006-01-28 06:31:42 +00:00
Frank M. Kromann 921498e38b MFB51 Export symbols that will allow building WDDX as shared object 2006-01-28 06:18:18 +00:00
Frank M. Kromann f9484965f2 MFB51 Add header so WDDX builds as shared 2006-01-28 06:17:09 +00:00
Pierre Joye d10b1290b2 - #36185 str_rot13(NULL) crash 2006-01-28 00:13:13 +00:00
Michael Wallner 64d4c588ad MF5_1: include png.h prior php.h 2006-01-27 20:48:42 +00:00
Michael Wallner ea5c551162 MF_5_1 2006-01-27 20:22:48 +00:00
Michael Wallner a04e63543d - add imap_savebody() 2006-01-27 19:44:40 +00:00
Pierre Joye 2901af230c - add PNG filter constants 2006-01-27 18:05:26 +00:00
451e86f59a ChangeLog update 2006-01-27 06:31:41 +00:00
Pierre Joye 64d07968de - add filter mode support for imagepng
imagepng("file", $comp_mode, $filter_mode);
  The filters are defined in the libpng docs for png_set_filter
  allow to divide the size of png images by more than 2. Constants
  will be added later

  BC kept, by default no filter are set

Fine to MFH? With the constants?
2006-01-27 01:59:26 +00:00
Ilia Alshanetsky b031ac3fe4 MFB51: Fixed bug #36148 (unpack("H*hex", $data) is adding an extra
character to the end of the string).
2006-01-26 15:48:15 +00:00
Michael Wallner 98ca921fb2 - fix bug #36152 problems with curl+ssl and pgsql+ssl in same PHP 2006-01-26 13:20:56 +00:00
Rob Richards 078ca4ffb2 MFB51: Fix bug #35954 (Fatal com_exception casting object) 2006-01-26 11:18:09 +00:00
2859158139 ChangeLog update 2006-01-26 06:31:41 +00:00
Rob Richards b8ded17f81 fix possible crash in textContent 2006-01-25 17:33:24 +00:00
Ilia Alshanetsky da2b91d1e1 MFB51: Properly rewrite queries where a bound parameter appears more then
once.
2006-01-25 16:35:46 +00:00
efae4837cf ChangeLog update 2006-01-25 06:31:47 +00:00
Marcus Boerger 0fddd260f4 . Update docu 2006-01-25 00:20:39 +00:00
Andrei Zmievski e7752216f4 Use zend_codepoint_to_uchar() macro. 2006-01-25 00:02:23 +00:00
Antony Dovgal 9c8bc2043c improve CS 2006-01-24 23:58:54 +00:00
Antony Dovgal a9de12c27b ws 2006-01-24 23:39:09 +00:00
Marcus Boerger 0422ad476f - Update docu 2006-01-24 23:36:13 +00:00
Andrei Zmievski 0fe1845267 eurealloc() should not be used with UBYTES() 2006-01-24 23:09:43 +00:00
Marcus Boerger a372669d4a - Fixed Bug #35978 %n format string specifier wrongly implemented 2006-01-24 20:57:56 +00:00
Marcus Boerger 0e42375ded - Implemented #36141 Add ReflectionClass::newInstanceArgs($args) 2006-01-24 20:19:49 +00:00
Marcus Boerger 35e632257e - Add fast access to HashTable 2006-01-24 19:48:11 +00:00
e386a7ae5c ChangeLog update 2006-01-24 06:31:45 +00:00
Antony Dovgal 6dcebfd904 fix #36113 (Reading records of unsupported type causes segfault) 2006-01-23 22:40:39 +00:00
Greg Beaver d536cb4139 update copyright year, and add credits for Davey Shafik/info on where Phar came from 2006-01-23 19:30:14 +00:00
Derick Rethans 29c9d442e8 - MF51: date is not a server API 2006-01-23 18:08:05 +00:00
Ilia Alshanetsky 9201fa6918 MFB51: Fixed bug #36134 (DirectoryIterator constructor failed to detect
empty directory names).
2006-01-23 15:24:41 +00:00
Derick Rethans 655d2824d4 - Go with 0.9.4. 2006-01-23 09:04:50 +00:00
3f5eb39f8c ChangeLog update 2006-01-23 06:31:56 +00:00
Marcus Boerger 2a2eae219c - Fix error message 2006-01-23 02:26:15 +00:00
Marcus Boerger 2d24ebbe16 - WS 2006-01-22 23:53:53 +00:00
Marcus Boerger 7c8de803d0 - Fix memory leaks 2006-01-22 23:48:02 +00:00
Marcus Boerger 86162f7a38 - WS 2006-01-22 23:46:50 +00:00
Marcus Boerger b7d473ac00 - WS 2006-01-22 22:15:55 +00:00
Marcus Boerger 693c5ad27f - Update test 2006-01-22 22:06:02 +00:00
Marcus Boerger 7037a831fb - Hmm one more # is needed 2006-01-22 21:46:47 +00:00
Marcus Boerger 654a2a5d0b - Fix for head and add a bit more info 2006-01-22 21:45:38 +00:00
Marcus Boerger f4a0ce710e - Fix method invocation issues 2006-01-22 18:55:02 +00:00
a3317681aa ChangeLog update 2006-01-22 06:31:42 +00:00
Derick Rethans c839665f10 - Fixed constant names in tests. 2006-01-21 15:57:43 +00:00
Derick Rethans a0bff6f8d6 - namespace protect constants 2006-01-21 12:48:46 +00:00
e017df6f64 ChangeLog update 2006-01-21 06:31:45 +00:00
Rui Hirokawa 942098d19e added new option of mbstring to php.ini 2006-01-21 02:49:32 +00:00
Omar Kilani 428bce101a Change license from LGPL to PHP. 2006-01-21 01:14:14 +00:00
foobar 644ca88100 - Fixed bug #Â36110 (missing sanity checks for external build) 2006-01-20 21:58:17 +00:00
Antony Dovgal 9a69aa32e9 fix typo 2006-01-20 16:58:33 +00:00
Antony Dovgal f32c1b7c2b add new test 2006-01-20 11:07:51 +00:00
Antony Dovgal f14d1152fe fix #36096 (oci_result() returns garbage after oci_fetch() failed) 2006-01-20 11:01:36 +00:00
9b674c8a79 ChangeLog update 2006-01-20 06:31:47 +00:00
Ilia Alshanetsky dd68ac4c8c MFB51: Allow get_headers() to return header information even for non-200
responses.
2006-01-20 01:40:48 +00:00
Antony Dovgal 04ad1d1462 fix test 2006-01-19 21:27:15 +00:00
Antony Dovgal cc0fae3702 fix tests 2006-01-19 20:52:45 +00:00
Dmitry Stogov d90873d3ce Fixed bug #36071 (Engine Crash related with 'clone') 2006-01-19 07:26:58 +00:00
185dabe26b ChangeLog update 2006-01-19 06:31:47 +00:00
Antony Dovgal c83190514f couple of pedantic fixes: "static" should be first 2006-01-18 23:55:27 +00:00
Antony Dovgal 4f07cff61c fix typo (and possible segfault) 2006-01-18 23:39:00 +00:00
Antony Dovgal 79bebd9bf8 make sure ce_child is properly initialized 2006-01-18 21:06:18 +00:00
Antony Dovgal 01476c3ea7 fix error message on make test when bison is not installed 2006-01-18 17:58:56 +00:00
Ilia Alshanetsky f0b0e2cd19 MFB51: Make get_headers() use the default context. 2006-01-18 14:05:28 +00:00
Antony Dovgal 9e03537d90 reorganize resource destruction.
- use one helper function for all resource types
- destroy all resources when connections are still available
2006-01-18 10:11:12 +00:00
1105368b9c ChangeLog update 2006-01-18 06:31:47 +00:00
Antony Dovgal 7bf63ad49b improve open_basedir checks in GD 2006-01-17 23:49:14 +00:00
Antony Dovgal 38beafe629 fix #36055 (possible OCI8 crash in multithreaded environment) 2006-01-17 23:44:11 +00:00
Antony Dovgal b8dda54715 fix build 2006-01-17 22:13:39 +00:00
Ilia Alshanetsky b0b79b138d MFB51: Fixed bug #36046 (parse_ini_file() miscounts lines in multi-line
values).
2006-01-17 19:56:41 +00:00
Pierre Joye 2179e33f14 - MFB: imagecolorallocate* returns false on error 2006-01-17 16:34:58 +00:00
Dmitry Stogov 227295a4f1 Unicode stuff is changed according to decision maden on PDM.
Now IS_BINRAY data type is removed and IS_STRING starts behave as IS_BINARY in unicode mode. IS_STRING is incompatible with IS_UNICODE, so ALL functions should be improved to support unicode mode.
2006-01-17 12:18:53 +00:00
Dmitry Stogov 465b131c2f Fixed bug #36037 (heredoc adds extra line number) 2006-01-17 09:39:33 +00:00
b29d9dbc87 ChangeLog update 2006-01-17 06:31:48 +00:00
Ilia Alshanetsky 1204ea0e63 MFB51: Only report mkdir() errors if error reporting option is set. 2006-01-17 02:32:34 +00:00
Antony Dovgal f0a32f0127 fix #36038 (ext/hash compile failure on Mac OSX) 2006-01-16 23:03:41 +00:00
Antony Dovgal 38b7befa2e fix typo 2006-01-16 20:41:00 +00:00
Antony Dovgal 07ff99a075 fix bug #35999 (recursive mkdir() does not work with relative path like "foo/bar") 2006-01-16 19:47:07 +00:00
Dmitry Stogov 9e7ddd51ee Fixed first-chance exception during request shutdown 2006-01-16 14:26:35 +00:00
Dmitry Stogov c93396ae1a Fixed bug #36006 (Problem with $this in __destruct()) 2006-01-16 10:12:54 +00:00
Dmitry Stogov 7e5b53c2b3 Fixed bug #36016 (realpath cache memleaks) 2006-01-16 09:17:50 +00:00
3a67d538ee ChangeLog update 2006-01-16 06:31:39 +00:00
Ilia Alshanetsky 0de9cf1e73 MFB51: Added a check for special characters in the session name. 2006-01-15 16:51:34 +00:00
Antony Dovgal 8f86b6d145 avoid segfaults 2006-01-15 16:05:49 +00:00
806c280d6d ChangeLog update 2006-01-15 06:31:47 +00:00
Marcus Boerger 2d3dc44908 - Fix issue found by nuno 2006-01-15 00:17:08 +00:00
Antony Dovgal e99778562d add test for bug #36010 2006-01-14 22:22:48 +00:00
Marcus Boerger d91dd0a0bb - Update 2006-01-14 20:20:53 +00:00
Marcus Boerger 584c0719e4 - Fix test 2006-01-14 15:55:10 +00:00
Marcus Boerger 2fe859febb - Fixed bug #36011 2006-01-14 15:22:19 +00:00
foobar 61a80cf37b ws fix 2006-01-14 15:10:54 +00:00
foobar 56c182d41c - Install header file 2006-01-14 15:04:12 +00:00
foobar 4b4d6e54c9 - Fixed headers 2006-01-14 14:58:35 +00:00
b30c69e8a1 ChangeLog update 2006-01-14 06:31:40 +00:00
Marcus Boerger f22c929561 - Fix #35998 (getPathname() method always returns unix style filenames) 2006-01-13 19:35:27 +00:00
Sascha Schumann dacf083328 - WS 2006-01-13 14:30:34 +00:00
Sascha Schumann a820f8da4c - lower valgrind error count to zero. 2006-01-13 14:23:35 +00:00
Antony Dovgal b5fd1c0ec3 add missing ifdefs 2006-01-13 13:04:01 +00:00
830f12faac ChangeLog update 2006-01-13 06:31:41 +00:00
Pierre Joye d7772d5203 - MFB: add php_mkdir_ex 2006-01-13 04:10:32 +00:00
George Wang 18d36265fd Initial checkin of LiteSpeed SAPI module 2006-01-13 03:21:51 +00:00
Marcus Boerger 42e3644d5b - Add bzip2 decompression support 2006-01-12 21:16:29 +00:00
Marcus Boerger 679fa69575 - Add stream filter 'consumed' which can restore the stream position when
a stream was read or written through a size changing filter.
2006-01-12 19:23:24 +00:00
Marcus Boerger 095c66e715 - Fix two warnings
# Here fixing warnings reveals that it often enough means fixing errors
2006-01-12 19:21:36 +00:00
Marcus Boerger d6e15bf75e - Fix warning 2006-01-12 19:13:50 +00:00
Hartmut Holzgraefe f1ffdfdbb3 typo fix 2006-01-12 15:37:56 +00:00
d357c67915 ChangeLog update 2006-01-12 06:31:40 +00:00
Omar Kilani a5cfcdd276 Don't leak a json_object on a decode error. 2006-01-12 03:50:22 +00:00
Marcus Boerger 566f8b136a - Use consumed filter to check number of compressed bytes read
# This fixes all tests again
2006-01-12 02:33:28 +00:00
Marcus Boerger 8166072ea3 - Change to use streams filters which simplifies decompression a lot and
easily allows to use other compression algos too
2006-01-11 23:55:57 +00:00
Marcus Boerger ae81cb9a1c - Add new test 2006-01-11 23:54:30 +00:00
Marcus Boerger cd24188fad - Fix test 2006-01-11 21:34:48 +00:00
Marcus Boerger b4e19230f9 - Split fname/phar-data mapping and alias/phar-data mapping
- Add test
2006-01-11 21:19:46 +00:00
Marcus Boerger 9222435376 - WS 2006-01-11 20:32:56 +00:00
Marcus Boerger d8a53905e9 - Add short size info 2006-01-11 20:24:07 +00:00
Michael Wallner 2be14929df - ws 2006-01-11 15:18:58 +00:00
Michael Wallner 59a40f1eed - fix CGI SAPI check on Windows 2006-01-11 15:16:34 +00:00
fcc2ad592d ChangeLog update 2006-01-11 06:31:39 +00:00
Marcus Boerger 5b62ceebb2 - Fix more errors (by the way the phars are found)
- Cleanup code
2006-01-11 01:51:47 +00:00
Marcus Boerger fa5831e7b5 - Fix a bunch of tests (not all done yet though) 2006-01-11 00:50:33 +00:00
Marcus Boerger 23d81c4630 - Fix a few error checks 2006-01-11 00:50:07 +00:00
Ilia Alshanetsky d2397a9301 MFB51: Fixed bug #35916 (Duplicate calls to stream_bucket_append() lead to
a crash).
2006-01-10 16:14:45 +00:00
Antony Dovgal 8d4db4f24c fix #35959 (Cannot build with Solid 2.3) 2006-01-10 14:15:12 +00:00
Antony Dovgal 2e43670647 fix memory corruption (HEAD only) 2006-01-10 10:51:39 +00:00
Antony Dovgal c9d6bb5b9f silence compile warning in non-ZTS mode 2006-01-10 08:32:49 +00:00
Antony Dovgal 9bd3c360ba destroy regular connections in RSHUTDOWN if ZTS is used
this fixes problem with Oracle9 (not Oracle10) and Apache2/worker - connections are not being closed correctly
see #35205 and similar issues
2006-01-10 08:29:19 +00:00
Greg Beaver 2ca31fa63c tests need updating, but this works with a valid 0.8.0 phar now. Additions include alias/apiversion/per-file flags in the manifest 2006-01-10 06:46:17 +00:00
150740218d ChangeLog update 2006-01-10 06:31:39 +00:00
Ilia Alshanetsky 0618bc66e8 MFB51: Fixed test 2006-01-10 03:18:52 +00:00
Marcus Boerger b958490b6c Add print_ft to dump function tables (lists the names) 2006-01-09 07:48:19 +00:00
9fd664318c ChangeLog update 2006-01-09 06:31:39 +00:00
c043dd301c ChangeLog update 2006-01-08 06:31:44 +00:00
Marcus Boerger ec20ba1a50 - MFB Second part of is_callable/call_user_func
- Clean a few warnings
2006-01-07 21:29:00 +00:00
Marcus Boerger 416d5f2c0c - MFB missing E_STRICT 2006-01-07 21:16:02 +00:00
Marcus Boerger ddd5d80194 - MFB zend_is_callable() fixes
# Now to the missing part in zend_call_function()
2006-01-07 20:43:33 +00:00
Greg Beaver 106463c474 need PHP 5.1.2 because of bug in temp memory streams 2006-01-07 18:37:44 +00:00
Marcus Boerger 34c8cd0190 - Show whether this is the shell or just the starnge mode 2006-01-07 16:46:30 +00:00
5f99b7cb52 ChangeLog update 2006-01-07 06:31:44 +00:00
Antony Dovgal 0b9213d82b fix tests 2006-01-06 21:21:09 +00:00
foobar 713127f5ee Nuke unused files 2006-01-06 21:19:16 +00:00
foobar 7c10d88716 credits for Dmitry 2006-01-06 21:17:14 +00:00
Antony Dovgal 9cd04b68d1 typo 2006-01-06 20:54:46 +00:00
Marcus Boerger 57c39d214d - WS 2006-01-06 20:43:19 +00:00
Marcus Boerger cc242b6afa - Fix potential crash (const' type is not initialized in case of error) 2006-01-06 20:34:31 +00:00
Antony Dovgal c5926d1efa add missing .cvsignore 2006-01-06 20:26:03 +00:00
Marcus Boerger 9f0f9bc958 - Update 2006-01-06 19:57:49 +00:00
Marcus Boerger a4e0ddc67b - I was missing here 2006-01-06 19:23:58 +00:00
Marcus Boerger 27dbc1d969 - Prevent overloading aliases
- Detect already loaded files and reuse them instead of reloading them
- Add a test for the above
2006-01-06 19:20:21 +00:00
Rasmus Lerdorf 4930c2fa31 Let's not mess with r->allowed here - this should fix bug #32561 2006-01-06 17:54:35 +00:00
Marcus Boerger 2de7a49fae - No ini setting needed 2006-01-06 17:34:47 +00:00
Marcus Boerger 1431022aae - Correct test name 2006-01-06 17:33:03 +00:00
Marcus Boerger 2490f087b4 - Fix typo and change to sizeof usage 2006-01-06 17:32:34 +00:00
Marcus Boerger 685fa28235 - Rewind stream when transferring ownership
- Add Phar::loadPhar + test
2006-01-06 17:23:42 +00:00
Marcus Boerger e267d2c2d0 - And another test 2006-01-06 16:27:15 +00:00
Marcus Boerger a4d469836d - Add new tests 2006-01-06 16:11:54 +00:00
Marcus Boerger fbdb432847 - Typo 2006-01-06 15:31:42 +00:00
foobar f8bda52627 - Fix configure on Solaris 2006-01-06 14:03:28 +00:00
Antony Dovgal 623b5de1b2 fix #35907 (PDO_OCI uses hardcoded lib path $ORACLE_HOME/lib) 2006-01-06 11:48:03 +00:00
bd53ba7cf9 ChangeLog update 2006-01-06 06:31:45 +00:00
foobar bc8333c42a - Cleanups:
* unify the address handling to always strip leading whitespace
  * ws fixes
2006-01-06 02:04:22 +00:00
Marcus Boerger abd2aeb1cd - Use temp streams internally instead of memory to reduce memory usage
# Internally we try to use only one temp stream if possible by stoing
# the temp stream in the manifest entry and transferring ownership upon
# usage/close. If a particular file gets opened twice in parallel we open
# a second temp stream nonetheless.
2006-01-05 22:24:41 +00:00
Marcus Boerger 71af00ec47 - Fix issue with memset seeking
- Fix issue with shutdown order of temp/memory stream
2006-01-05 22:05:44 +00:00
foobar 1afd9d6ea0 - Fixed bug #35911 (HAVE_PG_CONFIG_H set incorrectly) 2006-01-05 21:53:07 +00:00
Antony Dovgal 16be5ff45b fix typo 2006-01-05 20:49:28 +00:00
Hartmut Holzgraefe e66929c8b3 ncurses goes sibiria^Wpecl 2006-01-05 20:10:10 +00:00
Marcus Boerger 4c5fb5fc50 - Fix docu 2006-01-05 19:00:01 +00:00
Ilia Alshanetsky 6213faa402 MFB4: Fixed bug #35908 (curl extension uses undefined GCRY_THREAD_OPTIONS_USER). 2006-01-05 18:06:15 +00:00
Antony Dovgal 1e3efec941 delete descriptor from the hash and avoid crashes on commit/rollback 2006-01-05 13:40:10 +00:00
Marcus Boerger f3275b2080 - Made HashTable manifest a direct member rather than a pointer
- Need to find a working detection for compressed phars
2006-01-05 11:32:05 +00:00
bcb25bffec ChangeLog update 2006-01-05 06:31:47 +00:00
Andi Gutmans a93ddab01e - More -> 2006 changes 2006-01-05 02:35:02 +00:00
Marcus Boerger f65ab3c1e0 - If no compression was specified and we detect compression than simply set
compression mode.
2006-01-05 00:55:55 +00:00
Marcus Boerger 9b3ea9bb59 - Allow simple .phar too (in that case we guess no compression) 2006-01-05 00:53:41 +00:00
Ilia Alshanetsky 501c081a80 MFB51: Fixed bug #35669 (imap_mail_compose() crashes with
multipart-multiboundary-email).
2006-01-05 00:51:34 +00:00
Marcus Boerger d4a400726d - Cleanup/simplify/let configure determine whetehr we are big/little-endian 2006-01-05 00:39:31 +00:00
Andi Gutmans 0a424c4cf2 - One more update 2006-01-04 23:54:45 +00:00
Andi Gutmans 5de7cc3194 - Update copyright notices to 2006 2006-01-04 23:54:12 +00:00
Andrey Hristov 94dffc55ac bring tests up-to-date with 5_1 branch
#few are failing and will stop failing when bugfixes are upmerged from 5_1
2006-01-04 23:04:06 +00:00
Andrey Hristov 9be53ac7a5 cast and fix a warning 2006-01-04 22:42:17 +00:00
Derick Rethans 30c3b1f1b9 - Fixed test case. 2006-01-04 21:35:54 +00:00
Rob Richards 5daa75b09c fix test 2006-01-04 20:55:14 +00:00
Rob Richards 66835bd6c8 fix tests 2006-01-04 19:43:36 +00:00
Rob Richards 13048a3cb5 fix win build 2006-01-04 17:34:44 +00:00
Greg Beaver cd6161c9c9 add Marcus as lead 2006-01-04 17:19:04 +00:00
Marcus Boerger 8f27248fbf - Update tests 2006-01-04 16:43:42 +00:00
Marcus Boerger 7ed3be8240 - Fix TSRM builds 2006-01-04 16:18:31 +00:00
Derick Rethans 81d9c330f7 - Fixed bug #35885 (strtotime("NOW") no longer works).
- Fixed bug #35887 (wddx_deserialize not parsing dateTime fields properly).
#- Not added to NEWS as this will be merged to PHP_5_1 when Ilia looks at it.
2006-01-04 15:56:58 +00:00
Marcus Boerger 02ea4de78b -Typo 2006-01-04 15:51:06 +00:00
Marcus Boerger b72e1143d2 - More clean up (no need to export enything because one may either access
the stream handler tables through the streams api or use the streams
  which is prefered anyway).
2006-01-04 15:50:45 +00:00
Marcus Boerger c9128375f9 - Update examples 2006-01-04 15:34:26 +00:00
Marcus Boerger 5a45646d8b - Clearify names
- Fix several memleaks
- Cache files
2006-01-04 15:27:18 +00:00
Marcus Boerger 2e6c551c5d - Simple unlink is enough 2006-01-04 15:22:35 +00:00
Marcus Boerger 04fc3b48a2 - Fix test 2006-01-04 15:18:07 +00:00
Marcus Boerger 8568edda69 - Typo 2006-01-04 15:17:32 +00:00
Marcus Boerger 052420e27b - Add CLEAN section which contains optional cleanup code executed even when
the test fails and which can be prevented by --no-clean switch
2006-01-04 15:07:49 +00:00
Marcus Boerger cb9f1be8aa - Add myself as author 2006-01-04 13:18:31 +00:00
Derick Rethans 648e20c1b6 - New implementation of the sunset algorithm. Fixes bugs #33789, #33671, #32820
and #30937.
#- Didn't add it to news yet, as we'll merge this to PHP 5.1.x (just need to
#  wait for Ilia to approve it for 5.1.2).
2006-01-04 12:57:04 +00:00
Derick Rethans 223aa7294d - Added the lchown() and lchgrp() functions which change permissions and group
permissions on symbolic links.
#- We'll also add this to PHP 5.1.3? or PHP 5.2, so I didn't add it to NEWS.
2006-01-04 12:22:23 +00:00
Sebastian Bergmann 42736d6d70 ZTS fixes. 2006-01-04 09:26:32 +00:00
38e6f8b200 ChangeLog update 2006-01-04 06:31:48 +00:00
Marcus Boerger be1177259e - Imlement normal stream handling, use .phar.php anf .phar.gz to detect
where the filename part ends and whether it is compressed or not
# This already allows: php ext/spl/examples/directorytree.php phar:///...
2006-01-04 02:26:15 +00:00
Marcus Boerger 971ef71874 - Add test (fails right now (why ever)) 2006-01-04 02:21:22 +00:00
Marcus Boerger 32ab7543b1 - Add new test 2006-01-03 21:34:11 +00:00
Ilia Alshanetsky e7e0bef106 MFB51: Added param checks for ap2 fetch respose/request header functions. 2006-01-03 20:13:31 +00:00
Marcus Boerger cc860105fe - Fix two crashes in case of error 2006-01-03 16:22:23 +00:00
Marcus Boerger e829ba3a9d - Provide parameter info
- Add missing editor blocks
2006-01-03 15:59:07 +00:00
Marcus Boerger d01c016cbd - Change to new extension layout (drops unneccessary foward decls)
- Privide proto's
2006-01-03 15:50:46 +00:00
foobar d70b36aec5 MFB 2006-01-03 13:25:33 +00:00
foobar 33978e8e33 - Fixed bug #35288 (iconv() function defined as libiconv()) 2006-01-03 13:20:13 +00:00
1c814be228 ChangeLog update 2006-01-03 06:31:37 +00:00
foobar 22a3bedee0 - Fixed apache_setenv() which requires 2 parameters 2006-01-02 22:39:43 +00:00
Ilia Alshanetsky 331253e7e6 MFB51: Fixed possible crash in apache_getenv()/apache_setenv() on invalid
parameters.
2006-01-02 22:19:53 +00:00
Derick Rethans 61d12ef9ec - Fixed year dependent test. 2006-01-02 20:15:22 +00:00
c6a372dba2 ChangeLog update 2006-01-02 06:31:58 +00:00
Marcus Boerger 6d079c9c82 - Class was renamed (change test names, too) 2006-01-01 23:05:42 +00:00
Marcus Boerger 1c9da67d89 - Class was renamed 2006-01-01 22:58:12 +00:00
Greg Beaver 33925b3627 PHP_Archive -> Phar to match coding standards and pecl traditions 2006-01-01 22:49:10 +00:00
Greg Beaver 98e7933f8b fix 018/019.phpt - we need to compare the whole key, not just all but 1 char, otherwise 1-byte files/dirs are not compared 2006-01-01 22:20:26 +00:00
Marcus Boerger f21708f0a4 - Small tweaks/cleanup/left-overs 2006-01-01 22:19:51 +00:00
Greg Beaver 4b70d45fc9 remove a host of small problems found by testing 016.phpt 2006-01-01 22:11:03 +00:00
Greg Beaver 1481746e13 test needed tweaking to pass now 2006-01-01 22:10:21 +00:00
Greg Beaver a0f0f6c36a update tests to new API (16, 18, 19 still fail) 2006-01-01 21:43:14 +00:00
Marcus Boerger e80363ae49 - Simplify and change to --enable-phar since zlib is optional 2006-01-01 21:42:55 +00:00
Greg Beaver 90df1e7f87 on second thought, signing can be done externally without a performance hit, and only needs to be done on initial download, i.e. is best implemented with external tools 2006-01-01 20:57:43 +00:00
Marcus Boerger 77232928a5 - No revert the automatically inserted /*..*/ where wrong 2006-01-01 20:40:43 +00:00
Marcus Boerger 570e38fde8 - Fix comments 2006-01-01 20:34:22 +00:00
Greg Beaver 4de87a68e8 update package.xml 2006-01-01 20:30:16 +00:00
Greg Beaver edb6e4c9d5 add sorting to opendir() so that it matches PHP_Archive exactly 2006-01-01 20:16:09 +00:00
Ilia Alshanetsky 14b8cbedb7 MFB51: Added safety checks 2006-01-01 20:13:31 +00:00
Ilia Alshanetsky 7b8104bcf6 Fixed bug #35797 (segfault on PDOStatement::execute() with
zend.ze1_compatibility_mode = On).
2006-01-01 20:08:19 +00:00
Marcus Boerger e16171a6b1 - MFB 2006-01-01 19:57:27 +00:00
foobar c14e22d9f2 - Allow any EOLs in CREDITS files 2006-01-01 19:00:14 +00:00
foobar 399f8ae675 fix build 2006-01-01 17:28:25 +00:00
foobar c345854044 NEVER EVER use DOS EOLs in CREDITS!!!! 2006-01-01 17:27:11 +00:00
foobar d99d22dc11 oops 2006-01-01 13:25:34 +00:00
foobar 3631df802d - fix typo 2006-01-01 13:13:11 +00:00
foobar 251c5173fd bump year and license version 2006-01-01 13:10:10 +00:00
foobar f5ffb11505 2005 -> 2006 2006-01-01 12:17:46 +00:00
Greg Beaver 75bac89418 fix eof, fix segfault in stat, add unique dev/inode to allow caching via opcode caches like APC, comply with API 0.7.1, add todo items to EXPERIMENTAL 2006-01-01 07:40:36 +00:00
aee3eef3f0 ChangeLog update 2006-01-01 06:31:59 +00:00
Marcus Boerger adf9c02a63 - Fix environment handling 2005-12-31 17:48:12 +00:00
Marcus Boerger 08bccb4a72 - Fix tests 2005-12-31 17:42:27 +00:00
Marcus Boerger 57413e1b28 - MFB 2005-12-31 17:42:01 +00:00
517e586db5 ChangeLog update 2005-12-31 06:31:50 +00:00
foobar 7fa87000c5 - Fixed bug #35377 (undefined reference to "fdatasync") 2005-12-31 00:53:21 +00:00
Rasmus Lerdorf 577cdcfa27 instantiated was correct 2005-12-30 17:13:30 +00:00
Marcus Boerger 6b35e2ed19 - MFB 2005-12-30 13:42:20 +00:00
Marcus Boerger 8817b9e11a - MF51 2005-12-30 12:50:10 +00:00
foobar 7b980c6f95 typofixes 2005-12-30 12:20:39 +00:00
Marcus Boerger 66ae043208 - MF51 2005-12-30 11:45:32 +00:00
Pierre Joye e45ec1e460 - ensure that x1<x2 or y1<y2 2005-12-30 09:53:05 +00:00
974ed3825f ChangeLog update 2005-12-30 06:31:44 +00:00
foobar 2b1085d103 fix typo 2005-12-30 05:39:38 +00:00
Pierre Joye 3afdc2e490 - add some basic optimisations, usefull when you draw many horizontal or
vertical lines like in charts
2005-12-30 01:19:32 +00:00
Rui Hirokawa 08a9c6f235 added Turkish language definition (related to bug #29955) 2005-12-29 23:52:59 +00:00
Ilia Alshanetsky 1da0da0986 MFB51: Not a fatal error. 2005-12-29 22:00:09 +00:00
Antony Dovgal 4eef9b47e2 fix CGI build (patch by Pierangelo Masarati) 2005-12-29 14:12:34 +00:00
Derick Rethans d932c37ea2 - MFH: Fixed bug #35751 (using date with a timestamp makes httpd segfault). 2005-12-29 10:56:17 +00:00
10f8c95d72 ChangeLog update 2005-12-29 06:31:43 +00:00
Sara Golemon e047e8133d Silence compiler warning: unused variable 2005-12-29 06:00:36 +00:00
Ilia Alshanetsky 821e0586df MFB51: Fixed bug #35817 (unpack() does not decode odd number of hexadecimal
values)
2005-12-28 20:56:22 +00:00
9bcd09819a ChangeLog update 2005-12-28 06:31:47 +00:00
Antony Dovgal 64d9c70e4c tweak the fix 2005-12-27 23:27:02 +00:00
Antony Dovgal 38722a19c1 add test for #35821 2005-12-27 22:35:18 +00:00
Antony Dovgal 41973d8969 MF51: fix #35821 (array_map() segfaults when exception is throwed from the callback) 2005-12-27 22:33:40 +00:00
Derick Rethans 4bb5f21009 - Upgraded timezone db to 2005.18. 2005-12-27 19:49:30 +00:00
Ilia Alshanetsky 18685ea039 MFB51: Improve "skip" checks 2005-12-27 17:17:11 +00:00
96bb0c4395 ChangeLog update 2005-12-27 06:32:16 +00:00
Pierre Joye 180aa52fea - remove HAVE_LIBGD20, we support only 2.0+ now
(some were removed by my previous commit)
2005-12-27 00:16:05 +00:00
Pierre Joye 7261a0317b - silent compile warning introduced by previous commit 2005-12-27 00:11:16 +00:00
Antony Dovgal 01c1e2f719 MFB: typofix 2005-12-26 23:58:55 +00:00
Pierre Joye 954a2823a6 - HAVE_GD_DYNAMIC_CTX_EX, always defined 2005-12-26 21:46:56 +00:00
Pierre Joye 53973f97d0 - check for jpeg support 2005-12-26 21:41:37 +00:00
Pierre Joye 422d9180d1 - remove HAVE_LIBGD204, always set 2005-12-26 20:44:19 +00:00
Pierre Joye efcdf4ea4d - remove USE_GD_IOCTX, both bundled and extern lib use IOCTX 2005-12-26 20:34:42 +00:00
Pierre Joye f728cb07e6 - basic gif i/o test 2005-12-26 19:11:51 +00:00
foobar 4cbffe865e fix test 2005-12-26 18:30:12 +00:00
Pierre Joye 7074d0c2bf - imagetypes test
- copyresized title
2005-12-26 17:15:51 +00:00
Antony Dovgal fbe210b8b5 add new test 2005-12-26 15:15:10 +00:00
Marcus Boerger 3563b7d571 - Support full range of floats 2005-12-26 14:46:34 +00:00
Marcus Boerger 27986dbc88 - Fix memory corruption in s*printf() (see bug #27678) 2005-12-26 13:39:17 +00:00
Pierre Joye ab24e85893 - copyresized basic test
more once imagediff is available
2005-12-26 12:05:36 +00:00
Dmitry Stogov fbc0843fd4 Code cleanup (Nuno) 2005-12-26 10:54:12 +00:00
Zeev Suraski 9f0868506e Whitespace 2005-12-26 09:30:40 +00:00
Dmitry Stogov 39a540f75f Reverted invalid fix for bug #35785 2005-12-26 08:21:29 +00:00
Sebastian Bergmann 3f47db3c89 Fix Windows build. 2005-12-26 07:56:37 +00:00
Zeev Suraski c4caff6bc4 Commit missing files - sorry! 2005-12-26 07:25:45 +00:00
9b9c41bcf2 ChangeLog update 2005-12-26 06:31:53 +00:00
Pierre Joye ed3a1b0e96 - #35805 add LIBXSLT_VERSION, LIBXSLT_DOTTED_VERSION, LIBEXSLT_VERSION and
LIBEXSLT_DOTTED_VERSION

MFH?
2005-12-26 00:54:12 +00:00
Antony Dovgal b6b4514801 add missing skipif tag 2005-12-25 22:38:36 +00:00
Pierre Joye 5f018ca382 - add colorclosestalpha tests 2005-12-25 22:02:53 +00:00
Pierre Joye 1b6d773657 - add colorresolvealpha to colorresolve tests
- update colormatch
2005-12-25 21:45:04 +00:00
Pierre Joye 76f28deeeb - raise warning instread of errors in colormatch 2005-12-25 20:32:25 +00:00
Ilia Alshanetsky 58a2299c91 MFB51: Make MySQL driver use ANSI complaint quoting style. 2005-12-25 20:30:56 +00:00
Pierre Joye 65df8e80ea - fix leak/segfaults in imagecolormatch
- add tests for imagecolorexact and imagecolormatch
  The later is only about the segv
2005-12-25 19:21:58 +00:00
foobar 6102ec3a06 - Remove wrong inline usage (and fix bug #35796) 2005-12-25 16:03:38 +00:00
Rui Hirokawa 8864bf27e2 fixed #35711, added mbstring.strict_detection to detect the encoding striktly. 2005-12-25 15:21:54 +00:00
Zeev Suraski 91a735502c Reimplement FastCGI interface
Due to licensing restrictions that actually don't allow anybody to use
the libfcgi code without prior approval from Open Market, which is
impossible to obtain - we decided to reimplement this interface from
scratch.  The result is actually slightly faster, and more importantly,
clear of any copyright issues.

Implementation by Dmitry
2005-12-25 12:45:01 +00:00
6299d22718 ChangeLog update 2005-12-25 06:31:45 +00:00
Pierre Joye 49f0d6b8c2 - add truecolortopallete and istruecolor test
- titles for colorclosest/resolve...
2005-12-24 14:05:20 +00:00
Pierre Joye 439eaf24d6 - fix titles
- function check
2005-12-24 14:01:54 +00:00
Marcus Boerger d06b1b77a1 - MFB Make this work with VPATH builds too 2005-12-24 13:19:49 +00:00
Marcus Boerger dc889bcc8d - Require re2c 0.9.11 and use correct version notation 2005-12-24 11:37:25 +00:00
Marcus Boerger 7af76a6fdb - Update 2005-12-24 11:36:52 +00:00
368f9414bc ChangeLog update 2005-12-24 06:31:56 +00:00
Rui Hirokawa 3eab2fa294 fixed #35711 ISO-8859 charset not correctly detected. 2005-12-24 01:20:26 +00:00
Marcus Boerger 650bdb51fd - Add make target make ntest to test in unicode mode
- Change make target test to check native and unicode mode
2005-12-23 21:01:05 +00:00
Marcus Boerger 1edb0395ab - Fixed Bug #35785 (SimpleXML memory read error) 2005-12-23 20:31:39 +00:00
Marcus Boerger 69ae0635f4 - Add new test 2005-12-23 20:26:22 +00:00
Marcus Boerger 079c4d1b5e - Fix test by splitting it 2005-12-23 20:03:31 +00:00
Marcus Boerger 34bd7e96fd - Fix handling of bork tests 2005-12-23 19:40:01 +00:00
foobar 5e40ff6d1e fix mkdir() function properly (patch by nlopess) 2005-12-23 18:56:28 +00:00
Stefan Esser 5790c9d727 MFB: format string fixes 2005-12-23 18:43:03 +00:00
Antony Dovgal 1c7661a301 MFB: fix #35781 (stream_filter_append() can cause segfault) 2005-12-23 15:05:42 +00:00
Rui Hirokawa bcf3a3311d added turkish language support for libmbfl. 2005-12-23 13:53:30 +00:00
Rui Hirokawa 7c20dce548 fixed #29955 mb_strtoupper() / lower() broken with Turkish encoding.. 2005-12-23 13:50:29 +00:00
Antony Dovgal 29d4cc7441 fix tests 2005-12-23 13:24:17 +00:00
Rui Hirokawa 283f4759f6 fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload is enabled. 2005-12-23 11:14:54 +00:00
Dmitry Stogov b863d32288 Fixed memory corruption and termination through _zend_bailout() 2005-12-23 09:41:31 +00:00
Marcus Boerger 3590c425b3 - Do not test output escaping here 2005-12-23 08:44:34 +00:00
dbfe958172 ChangeLog update 2005-12-23 06:31:49 +00:00
Pierre Joye 2ca0c5abb7 - remove HAVE_GDIMAGECOLORRESOLVE here too (w32) 2005-12-22 23:25:06 +00:00
Pierre Joye c13515dd1f - add tests for:
- imagecolorclosest
 - imagecolorresolve
 - imagecopy
 - imageline
 -imagesetstyle and dashed line
- remove HAVE_GDIMAGECOLORRESOLVE, always present
2005-12-22 23:22:26 +00:00
Edin Kadribasic 89bf9c3906 Back out a portion of the previous patch which broke win32 file functions 2005-12-22 21:32:56 +00:00
Marcus Boerger 0f19733995 \# Damn ! 2005-12-22 20:27:03 +00:00
Marcus Boerger 414c53e0b8 - Point to README.TESTING 2005-12-22 20:24:38 +00:00
Dmitry Stogov 925f3f1880 Fixed bug #35612 (iis6 Access Violation crash). (alacn dot uhahaa at gmail dot com) 2005-12-22 16:46:03 +00:00
Zeev Suraski 84a2475b16 Fix prototype (MFB) 2005-12-22 14:56:29 +00:00
Antony Dovgal ddf87742ec change -o to || to be more portable 2005-12-22 11:02:51 +00:00
Dmitry Stogov 69200c9baf Fixed memory leak and typo 2005-12-22 09:31:40 +00:00
Marcus Boerger c04b25f63c - Find lib in default locations, too 2005-12-22 08:57:50 +00:00
Dmitry Stogov 9faaef0d08 Fixed memory corruption 2005-12-22 07:54:19 +00:00
da08d0ffd5 ChangeLog update 2005-12-22 06:31:45 +00:00
Marcus Boerger 2f2711acfd - MFB Fix leak 2005-12-22 00:38:05 +00:00
Marcus Boerger b6caa5e369 - MFB Fix memleak 2005-12-22 00:24:49 +00:00
Antony Dovgal 73db3873cc MFB: merge two skipif entries 2005-12-22 00:20:44 +00:00
foobar 9e5557e2f4 No need to mention it here as it is fixed before 6 is out.. 2005-12-21 22:47:46 +00:00
Frank M. Kromann 8560728ae0 Fix #35730 Use correct character encoding with FreeTDS 2005-12-21 22:44:04 +00:00
Marcus Boerger 42a83a6fc9 - Add --[keep|show]-[all|skip|php] switches 2005-12-21 22:23:47 +00:00
Marcus Boerger 8a7a093996 - Add missing skipif 2005-12-21 22:21:54 +00:00
foobar c7fbeb694a - Fixed bug #35461 (Ming extension fails to compile with ming 0.3beta1) 2005-12-21 21:43:26 +00:00
foobar 8b5d0a9178 use more portable || here 2005-12-21 21:15:37 +00:00
Marcus Boerger d3ae24eb79 - MFB Need to store length (and type) of class name 2005-12-21 20:12:44 +00:00
Ilia Alshanetsky 41ef7fb555 MFB51: Don't lose track of exec() errors in pdo_sqlite2 2005-12-21 16:23:32 +00:00
foobar 88a1a3cecc - Fix possible compile failure if configuring with --disable-all 2005-12-21 14:22:02 +00:00
Pierre Joye f91b2c66a8 - skip NG if no SCHEMAS support
- skip readInner/OuterXml if not defined
2005-12-21 13:34:44 +00:00
Pierre Joye 720753d864 - readInnerXml() and readOuterXml() test 2005-12-21 13:25:02 +00:00
Antony Dovgal 71ee97561e MFB: fix test, add test for 64bit platform 2005-12-21 12:16:25 +00:00
Antony Dovgal ca342b5f3b MFB: fix test 2005-12-21 11:46:51 +00:00
Antony Dovgal 632e571642 MFB: add missing skipif conditions, fix existing ones
add one missing test
2005-12-21 11:43:24 +00:00
Antony Dovgal 3231899d71 MFB: add missing skipif conditions 2005-12-21 10:50:10 +00:00
Antony Dovgal b3741339d5 MFB: fix #35760 (sybase_ct doesn't compile on Solaris) 2005-12-21 10:19:49 +00:00
9d27d22b07 ChangeLog update 2005-12-21 06:31:46 +00:00
Pierre Joye bb2ea6d564 - add some tests, ~70% now 2005-12-21 03:46:02 +00:00
Pierre Joye 02b822397f - typo in error msg 2005-12-21 02:59:00 +00:00
Pierre Joye 0813bcbfd5 - update inline docs
- fix {{{ }}}
2005-12-21 00:37:49 +00:00
Marcus Boerger a9a1bd419b - Only apply workaround solution for 64 bit machines when necessary
# Actually this can already be necessary on 32 bit machine and also not be
# necessary on 64 bit machines. It all depends on the compiler settings.
2005-12-20 21:36:47 +00:00
Marcus Boerger c80e82230b - Move zend_object_value definition to zend_type.h
# Types declared there can be used in configure stuff already. zend.h is
# being created by configure...
2005-12-20 21:35:17 +00:00
Marcus Boerger e072c3e590 - Add Z_OBJVAL*() macros 2005-12-20 21:33:14 +00:00
Marcus Boerger 7ffe23c515 - MFB Get rid of warnings 2005-12-20 21:12:13 +00:00
Derick Rethans 836978a509 - MF51: This check is unnecessary, as it can only be set through the
date_default_timezone_set() function which checks the value already.
2005-12-20 19:59:47 +00:00
Derick Rethans 2dcdf6769a - Fixed bug #35660 (AIX TZ variable format not understood, yields UTC timezone). 2005-12-20 19:50:05 +00:00
Ilia Alshanetsky f2d96a5a96 fixed php version detection 2005-12-20 19:17:00 +00:00
Antony Dovgal 333e66cc4f MFB: fix test decription 2005-12-20 17:00:59 +00:00
Antony Dovgal 410e15a1c7 MFB: fix notice 2005-12-20 16:18:07 +00:00
Derick Rethans 8e4e37ca9e - MF51: Fixed bug #35699 (date() can't handle leap years before 1970) 2005-12-20 16:01:21 +00:00
Ilia Alshanetsky 81d4a41dfb MFB51: Updated libsqlite in ext/pdo_sqlite to 3.2.8. 2005-12-20 15:33:19 +00:00
Ilia Alshanetsky d508cfee49 MFB51:
Updated libsqlite in ext/sqlite to 2.8.17.
Use in-memory database for tests.
2005-12-20 15:26:45 +00:00
Ilia Alshanetsky cf2e00bb39 MFB51: Proper error handling for persistent connections. 2005-12-20 14:50:30 +00:00
Ilia Alshanetsky ec58b74d7f MFB51: Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any
string greater then 255 characters).
2005-12-20 14:27:04 +00:00
Rob Richards ad97cf20be remove leftover code
clear zend_object rather than deal with the guards
issue notice if node is of a type that cannot be expanded
2005-12-20 14:13:11 +00:00
Antony Dovgal 320b5ce461 MFB: more SPL leak fixes 2005-12-20 12:41:38 +00:00
Antony Dovgal 3ba24546ed MFB: fix leak appearing when __autoload() throws an exception 2005-12-20 11:25:39 +00:00
Antony Dovgal 8f5f3d8408 MFB: add test for #35740 2005-12-20 09:52:05 +00:00
Antony Dovgal 3a14188725 MFB: fix #35740 (memory leak when including a directory) 2005-12-20 09:48:24 +00:00
6967b7e125 ChangeLog update 2005-12-20 06:31:44 +00:00
Ilia Alshanetsky 2c98f6435d MFB51: Fixed possible memory corruption. 2005-12-19 16:34:00 +00:00
Rob Richards ddba5e9531 cleanup code making it easier to add new functionality and maintain
implement xmlwriter_full_end_element and xmlwriter_write_raw
2005-12-19 15:05:41 +00:00
Rob Richards 046b0daf15 Fixed bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM)
add test
2005-12-19 14:16:10 +00:00
Antony Dovgal e236055976 MFB: fix possible invalid reads 2005-12-19 13:53:28 +00:00
Derick Rethans 85858a73b6 - MF51: Updated timezone database to version 2005.17 (q). 2005-12-19 13:32:22 +00:00
Derick Rethans 1394b48d21 - Reintroduced the normal constants.
- Made the test cases work with the normal non-class constants.
- Merged new timelib, which is a bit more cleverer
- Support "UTC" in strtotime() properly.
- Added astro code, which is going to form the base for the new sunfuncs.
2005-12-19 12:57:49 +00:00
64b7ec36f3 ChangeLog update 2005-12-19 06:31:42 +00:00
Marcus Boerger 1a7b411f9a - MFH IteratorIterator::__construct() fixes 2005-12-19 00:55:40 +00:00
foobar 9562bb9659 - Fixed bug #35723 (xmlrpc_introspection.c fails compile per C99 std) 2005-12-18 22:59:39 +00:00
Antony Dovgal 099ab8ac8d MFB: fix leak in SPL iterators 2005-12-18 22:53:18 +00:00
Antony Dovgal 9e23794cb8 MFB: fix typo 2005-12-18 21:17:42 +00:00
Antony Dovgal 891059b089 more spelling fixes 2005-12-18 21:00:59 +00:00
Antony Dovgal 3e2d9c2549 fix spelling 2005-12-18 20:57:06 +00:00
foobar f5318a9530 touch with re2c 0.9.11 2005-12-18 19:54:50 +00:00
Ilia Alshanetsky 3a3e7a86e8 MFB51: Fixed UTC handling problem stemming from an earlier fix for bug #35422. 2005-12-18 16:20:12 +00:00
Derick Rethans 663bb230b9 - Those should be lower case only. 2005-12-18 16:06:28 +00:00
Zeev Suraski 9e5bd669d9 Fix prototypes (MFB) 2005-12-18 16:00:02 +00:00
Zeev Suraski d04772ab12 Prototype fix (MFB) 2005-12-18 15:47:03 +00:00
Marcus Boerger 8b74d53c61 - Fix --version 2005-12-18 15:46:51 +00:00
Zeev Suraski 4000ac531c Prototype fixes (MFB) 2005-12-18 15:41:22 +00:00
Marcus Boerger 9ea6f06711 - WS
- End test script when detecting '===DONE===' that way showing memleaks
2005-12-18 14:50:06 +00:00
Zeev Suraski 9955ce10b1 Fix prototype (MFB) 2005-12-18 14:05:23 +00:00
Marcus Boerger 2ba333bee8 - Add missing prefixes 2005-12-18 13:01:09 +00:00
Marcus Boerger 45541fa7c8 - Speling 2005-12-18 12:54:29 +00:00
Antony Dovgal 9f5c6d64bc that's not what I was going to commit.. 2005-12-18 12:50:01 +00:00
Antony Dovgal 176c27c149 fix possible usage of uninitialized variable 2005-12-18 12:48:22 +00:00
Marcus Boerger 6f34dbfa78 - Increase timeut for -m testing 2005-12-18 12:11:54 +00:00
45e6d9a1c6 ChangeLog update 2005-12-18 06:31:48 +00:00
Pierre Joye 84673b291e - keep it sync'ed 2005-12-18 02:07:34 +00:00
Ilia Alshanetsky 23005e96f1 MFB51: Fixed parameter parsing for setIndent() method. 2005-12-17 20:05:21 +00:00
Ilia Alshanetsky bc2ed13110 MFB51: Fixed memory corruption when FETCH_LAZY mode is being used. 2005-12-17 20:00:14 +00:00
Ilia Alshanetsky 1014cb28c2 MFB51: Fixed uninitialized variable in a test. 2005-12-17 19:58:02 +00:00
Ilia Alshanetsky b211d8cc3c MFB51: Added token for capturing arbitrary whitespace blocks inside text. 2005-12-17 16:33:53 +00:00
foobar f2f3eb9064 MFB51: Extension dependancy improvements during configure 2005-12-17 16:22:43 +00:00
foobar fa806a1b19 nuke file that should not be here 2005-12-17 16:13:16 +00:00
Antony Dovgal a63b1bfd0c MFB: int -> long 2005-12-17 16:08:08 +00:00
Marcus Boerger 170918c6eb - Fix Bug #35720 A final constructor can be overwritten 2005-12-17 15:50:24 +00:00
Marcus Boerger 5d60cbc498 - MFB Fix export 2005-12-17 15:44:44 +00:00
Marcus Boerger 9360c2acd2 - MFB Add optional dependency to ext/dom 2005-12-17 15:41:18 +00:00
foobar f1cb188015 fix test 2005-12-17 14:56:02 +00:00
6ddfecd65a ChangeLog update 2005-12-17 06:31:58 +00:00
Marcus Boerger 884cb32a38 - MFB 2005-12-17 00:09:06 +00:00
Marcus Boerger 96150967b3 - Add new const 2005-12-16 23:23:52 +00:00
Marcus Boerger 25052ff3af - MFB 2005-12-16 23:21:38 +00:00
Marcus Boerger 73fe423ede - WS 2005-12-16 23:13:24 +00:00
Marcus Boerger 10e69db3fa - MFB 2005-12-16 23:11:00 +00:00
Ilia Alshanetsky bc2e673856 MFB51: Fixed bug #35705 (strtotime() fails to parse soap date format
without TZ).
2005-12-16 22:40:09 +00:00
Marcus Boerger 927016e154 - MFB Fix zend_is_callable() usage 2005-12-16 22:26:43 +00:00
Marcus Boerger cea4c80b88 - Add new tests 2005-12-16 22:22:14 +00:00
Antony Dovgal c9ae9cd47e MF51: fix #35713 (getopt() returns array with numeric strings when passed options like '-1')
TODO:
make getopt() unicode aware
2005-12-16 20:50:38 +00:00
Pierre Joye 4abc190946 - remove HAVE_LIBGD15, always set 2005-12-16 19:21:55 +00:00
Pierre Joye cc938b5df0 - fix leaks and wrong error when invalid/empty string are given to
imagecreatefromstring
- add test for imagecreatefromstring
- add test for palettecopy
2005-12-16 19:02:07 +00:00
Pierre Joye 366f2ee161 - adieu HAVE_LIBGD13
- add imagecolorat tests (truecolor and palette)
2005-12-16 17:02:30 +00:00
Antony Dovgal f39eed623d MF51: fix test, add new one 2005-12-16 15:52:54 +00:00
Antony Dovgal 67f9574b78 fix test
this linenumber may vary
2005-12-16 14:57:13 +00:00
Antony Dovgal e17430e145 MF51 Ilia's last fix
fix the test appropriately
2005-12-16 14:50:32 +00:00
6c89801408 ChangeLog update 2005-12-16 06:31:42 +00:00
Ilia Alshanetsky ed5383b811 MFB51: Cleanup code and prevent usage of uninitialized variable. 2005-12-15 22:54:29 +00:00
Antony Dovgal 1518ba3bf7 fix #35692(iconv_mime_decode() segfault, with libiconv only) 2005-12-15 22:47:27 +00:00
Ilia Alshanetsky c64ae2f2c9 MFB51: Fixed bug #35694 (Improved error message for invalid fetch mode). 2005-12-15 22:35:18 +00:00
Antony Dovgal 90b95eeb23 fix #35690 (pack() tries to allocate huge memory block when packing float values to strings) 2005-12-15 22:14:25 +00:00
Pierre Joye 72ae77a1d8 - #35681, non ansi comment 2005-12-15 13:57:14 +00:00
19eb9d4843 ChangeLog update 2005-12-15 06:31:44 +00:00
Frank M. Kromann 89a3dc14af Export symbols needed by pecl/http 2005-12-15 02:26:14 +00:00
Andrei Zmievski 14df4af00e I see no reason no reason to not support chunked encoding requests.
Let's ask Apache to decode these requests for us.
2005-12-15 00:27:25 +00:00
Pierre Joye ca7270ffa2 - add wbmp read/write tests
- remove HAVE_GD_WBMP, always available
2005-12-14 22:33:34 +00:00
Pierre Joye aa3fe56fb9 - correct title 2005-12-14 19:50:42 +00:00
Pierre Joye 0ab721ab1d - remove HAVE_GD_GD2 on windows as well 2005-12-14 19:12:57 +00:00
Pierre Joye 5436f9f38d - remove HAVE_GD_GD2, always valid now (2.0.33 or bundled) 2005-12-14 19:10:52 +00:00
Pierre Joye e2091ad9ea - tests for imagecreatefromgd2 and gd2part 2005-12-14 19:00:28 +00:00
Marcus Boerger 218c07c328 - Fix issue spotted by Wez using ms vc 2005 2005-12-14 09:55:04 +00:00
f57d9428cf ChangeLog update 2005-12-14 06:31:49 +00:00
Greg Beaver 4479bebb13 streamline, add more phpinfo output
switch parameter order for PHP_Archive::mapPhar, will be better in the long run
2005-12-14 03:42:43 +00:00
Ilia Alshanetsky 9defb1298e MFB51: Fixed bug #35571 (Fixed crash in Apache 2 SAPI when more then one php
script is loaded via SSI include). (Ilia)
2005-12-14 03:36:58 +00:00
Antony Dovgal 41fad0ad77 fix spelling and #35665 2005-12-14 00:54:04 +00:00
Greg Beaver d2339c11e2 add package.xml 2005-12-13 23:40:25 +00:00
Antony Dovgal 627077e6a4 use default colors to prevent any problems with existing php.ini 2005-12-13 22:32:04 +00:00
Antony Dovgal 3c78e5804a new test 2005-12-13 21:43:16 +00:00
Marcus Boerger e9086f967a - MFB Fix zend*_str_tolower_copy() 2005-12-13 21:09:18 +00:00
Ilia Alshanetsky 4cb1bf0e9e MFB51: Fixed bug #35655 (whitespace following end of heredoc is lost). 2005-12-13 21:00:49 +00:00
c7c509e7e8 ChangeLog update 2005-12-13 06:31:44 +00:00
Ilia Alshanetsky 41baa7abbe MFB51: Fixed bug #35630 (strtotime() crashes on certain relative
identifiers).
2005-12-13 02:29:53 +00:00
Antony Dovgal 762842ee30 MF51: fix tests and their skip conditions 2005-12-12 21:21:36 +00:00
foobar 7a44f346a3 - Fix build failure under win32 2005-12-12 19:44:27 +00:00
foobar 7b3c5caf0d - added missing configure help line 2005-12-12 12:20:45 +00:00
foobar da629d8823 more test output files 2005-12-12 11:51:18 +00:00
foobar f6c1212b17 - Cleanup test output files too 2005-12-12 11:49:30 +00:00
foobar eccf9c7abf - Include timestamp for the leaks. (to make possible matching leaks with access_log entries) 2005-12-12 11:00:18 +00:00
Dmitry Stogov c354d5e0f6 Fixed bug #35570 (segfault when re-using soap client object) 2005-12-12 09:25:07 +00:00
ef1ccfe9c4 ChangeLog update 2005-12-12 06:31:40 +00:00
Greg Beaver b4cc79277a complete unit tests (woohoo!)
add stream seek (mistakenly never enabled)
2005-12-12 06:17:16 +00:00
Ilia Alshanetsky a13a4487a4 MFB51: Fixed bug #35629 (crash in http:// wrapper on multiple redirects). 2005-12-12 05:04:43 +00:00
foobar 953cff2d0a - Added missing fold tags 2005-12-11 22:38:24 +00:00
Ilia Alshanetsky 21a47c4950 MFB51:
Fixed bug #35624 (strtotime() does not handle 3 character weekdays).
Improved fix for bug #35414.
2005-12-11 22:37:20 +00:00
Edin Kadribasic d2af3d0e30 MFB: Updated to libxml2 to 2.6.22, thanks to rrichards 2005-12-11 21:55:00 +00:00
Greg Beaver e0b54bcdd3 slightly clearer error message 2005-12-11 21:44:44 +00:00
Edin Kadribasic 48f4c97b8c Use php5 built-in zlib. Unfortunatelly we don't export zError() there
so I habe generic "compression error" will suffice.
2005-12-11 21:23:35 +00:00
Marcus Boerger 12c5f90386 - Change to use sane default flags fro RecursiveDirectoryIterator
- Drop 2nd parameter from DirectoryIterator::__construct()
2005-12-11 16:43:00 +00:00
Marcus Boerger 90a321d854 - MFB 2005-12-11 15:28:52 +00:00
Marcus Boerger 3f8491c2fa - Show an error if no pdo object can be created 2005-12-11 15:24:38 +00:00
Marcus Boerger 10fc301bf9 - Fix tests 2005-12-11 14:49:19 +00:00
Edin Kadribasic 7a57d03c8d Fixed ZTS build 2005-12-11 13:19:43 +00:00
Marcus Boerger 1cc57585d8 - Revert accidential 'drop in' from 1.227 2005-12-11 12:46:51 +00:00
Greg Beaver dd8e3dd4df fix opendir, add test for subdirectory, revert stupid addition to 018.phpt 2005-12-11 08:14:44 +00:00
Greg Beaver d4ac5bf120 make sure it doesn't pick up non-entries 2005-12-11 07:26:46 +00:00
Greg Beaver 7187bdc0d3 add opendir/readdir test for root dir, fix dir stat 2005-12-11 07:25:30 +00:00
Omar Kilani a1bef77510 Remove config.m4 reference to json_c/config.h.
Add package.xml.
2005-12-11 05:13:35 +00:00
Wez Furlong 9345b7534a test commit 2005-12-11 04:50:47 +00:00
Wez Furlong 12035819e9 test commit 2005-12-11 04:27:30 +00:00
Marcus Boerger 6f2a00690b - Add method support to --rfunction 2005-12-11 02:40:49 +00:00
Marcus Boerger 4258bc6f26 - Add docu 2005-12-11 02:16:24 +00:00
Greg Beaver ca86d4fa92 switch to php_stream_wrapper_log_error from php_error_docref (should be documented somewhere...), add test for failing stream open 2005-12-11 00:00:31 +00:00
Greg Beaver 285b5a934e fix minor leak on zlib error, new test for gzipped internal file 2005-12-10 23:19:32 +00:00
foobar 4e328517df use right tag here 2005-12-10 18:26:08 +00:00
Marcus Boerger cd4842781c - Make -U mode play nicely with redirected tests 2005-12-10 17:37:29 +00:00
Marcus Boerger 80a2f09c82 - Add missing global variable 2005-12-10 16:58:35 +00:00
Marcus Boerger 9662ba59c4 - Rewrite --r* and add --rfunction 2005-12-10 13:43:51 +00:00
661eedec9f ChangeLog update 2005-12-10 06:53:20 +00:00
Greg Beaver bbbd9ba1f1 add missing tests 2005-12-10 02:33:35 +00:00
Greg Beaver 0552791eca crc32 mismatch test 2005-12-10 02:33:09 +00:00
Greg Beaver fb5cff819d add crc checked flag, for slight speedup on multiple access to the same file 2005-12-10 00:00:00 +00:00
Greg Beaver e1d98926ba new test, better naming of tests 2005-12-09 23:55:52 +00:00
Greg Beaver 0285ef3952 fix leaks, mem corruption, and add test for successful phar 2005-12-09 23:37:03 +00:00
Antony Dovgal 749c6e3016 fix #35617
no need to separate zvals twice
2005-12-09 22:26:39 +00:00
Ilia Alshanetsky 61f0a25cf1 MFB51: Fixed typo in gcov output filename 2005-12-09 21:40:55 +00:00
Rob Richards 37d1633ff4 allow NULL prefix to create default namespace
fix tests
2005-12-09 20:51:23 +00:00
Greg Beaver 48050ca09d add constraint check for number of manifest entries, and test 2005-12-09 19:55:29 +00:00
Antony Dovgal b0a7b43a55 MF51: fix wrong macro usage 2005-12-09 18:53:54 +00:00
Pierre Joye 183a717c70 - no need to test if jpeg support exists 2005-12-09 18:16:21 +00:00
Pierre Joye 8b81d9279f - MFB: test for compression mode in imagepng 2005-12-09 18:14:12 +00:00
Dmitry Stogov 57f7f1952c Fixed bug #35612 (iis6 Access Violation crash) 2005-12-09 18:09:08 +00:00
Marcus Boerger 39cf99ed36 - Readd -u and -U
# Removed those accidentially, the diff was obviously too big
2005-12-09 17:59:50 +00:00
Dmitry Stogov 34bc5d7d41 Bug #34429 (Output buffering cannot be turned off with FastCGI) 2005-12-09 16:58:02 +00:00
Dmitry Stogov c548f7d610 Fixed possible SIGSEGV (Rob Richards) 2005-12-09 15:28:57 +00:00
Dmitry Stogov 7810872573 Support for 64-bit platforms 2005-12-09 13:41:06 +00:00
Antony Dovgal be74ca8f85 MF51: nuke C++ comment 2005-12-09 13:32:07 +00:00
Marcus Boerger ed7797098d - Section FILE does not exist for redirection tests 2005-12-09 09:49:58 +00:00
8606bc1638 ChangeLog update 2005-12-09 06:51:50 +00:00
Rob Richards 07bcf94d86 update TODO 2005-12-09 06:43:35 +00:00
Pierre Joye f567ef8e1c - dtd added, remove from todo 2005-12-09 06:31:21 +00:00
Rob Richards 944dc57ef5 - enable a few additional functions
- add tests
2005-12-09 04:56:21 +00:00
Marcus Boerger 983b8f570d - Add missing newline 2005-12-09 00:30:05 +00:00
Marcus Boerger cbf1e913e2 - MFH (Ilia's changes)
- Add ability to create temp files in separate dir and keep them.
- Add ability to generate html file with results as table and links to
  generated files.
2005-12-08 22:48:42 +00:00
Antony Dovgal 8338c39ff3 add new tests 2005-12-08 22:31:55 +00:00
Antony Dovgal 0b8250468c improve error message 2005-12-08 22:05:44 +00:00
Antony Dovgal f698b6ea42 add 1 to the max_length to keep \0 at its place 2005-12-08 21:22:38 +00:00
Ilia Alshanetsky 8f4f466f6e MFB51: Include a legend in the gcov report 2005-12-08 21:12:31 +00:00
Antony Dovgal d5cd3efe2b fix segfault in SplFileObject when file doesn't exist or cannot be read 2005-12-08 19:53:43 +00:00
Frank M. Kromann c443a8d20b Allow the extension to be compiled as shared object on win32 2005-12-08 19:43:53 +00:00
Ilia Alshanetsky ec64cbb4e2 MFB51: Added myself to a list of extensions/sapis I try to maintain. 2005-12-08 17:07:16 +00:00
Ilia Alshanetsky 0c8d2091b2 MFB51: Final fix for gcov generation. 2005-12-08 16:00:47 +00:00
Dmitry Stogov f7433c021d Fixed test 2005-12-08 08:10:00 +00:00
Greg Beaver 755e9c3172 improve error messages to state overrun when it exists. Also, catch overrun before we attempt to write beyond the buffer's end 2005-12-08 07:59:18 +00:00
Greg Beaver f86df41ff4 new test for truncated manifest 2005-12-08 07:49:47 +00:00
Greg Beaver 68a5fdea12 CS // -> /* */ 2005-12-08 07:38:44 +00:00
Greg Beaver eb3c055e21 rework errors slightly. Add buffer overflow check for manifest, so we don't create a memory monster by accident 2005-12-08 07:34:16 +00:00
Greg Beaver 919b0736c5 add next truncation test, tweak error messages 2005-12-08 07:08:49 +00:00
245cb12834 ChangeLog update 2005-12-08 06:46:37 +00:00
Greg Beaver 16bd8c6ac7 add error if seeking fails on self, add test 1 for truncated phar 2005-12-08 06:46:02 +00:00
Greg Beaver 6ff5c1f974 add error if __HALT_COMPILER(); is not declared and new test 2005-12-08 06:38:26 +00:00
Greg Beaver dc26e611e4 test for no zlib error message 2005-12-08 06:23:21 +00:00
Ilia Alshanetsky 331b7d7b27 MFB51: Fixed bug #35594 (Multiple calls to getopt() may result in a crash). 2005-12-08 03:25:42 +00:00
Ilia Alshanetsky 04ee70f6eb MFB51:
fix for bug #35382
	fix for bug #35411
2005-12-08 03:12:34 +00:00
Ilia Alshanetsky 34701f23eb MFB51: Fixed bug #34359 (Possible crash inside fopen http wrapper). 2005-12-08 02:53:34 +00:00
Michael Wallner 259b231aab - release 1.1 2005-12-07 19:51:38 +00:00
Michael Wallner 92d13b7850 - fix PECL bug #6283 - haval source file entries are missing in package.xml 2005-12-07 18:39:54 +00:00
Dmitry Stogov 8010c59c88 Unicode support 2005-12-07 16:52:13 +00:00
Dmitry Stogov ce89a8831e Fixed tests 2005-12-07 15:19:30 +00:00
Dmitry Stogov b74833788e Fixed test 2005-12-07 14:54:04 +00:00
Dmitry Stogov 461f1d3c70 Fixed tests 2005-12-07 14:39:07 +00:00
Dmitry Stogov 25d6294650 Fixed test 2005-12-07 14:32:42 +00:00
Dmitry Stogov ea4197207b Fixed test 2005-12-07 14:18:12 +00:00
Dmitry Stogov 2e83748cfc Fixed bug #33394 (Socket Timeout on SOAP request causes general exception in Apache process). 2005-12-07 13:55:52 +00:00
foobar 0c90ddd3a1 fix tests 2005-12-07 11:53:28 +00:00
foobar 8f45f83124 - Made tests that require CGI skipped if it is not available 2005-12-07 11:28:20 +00:00
foobar e14cdc034e - Fix file_put_contents() usage: it returns bytes written and it can be 0. 2005-12-07 11:11:01 +00:00
foobar 3b66cc9c37 - Fixed error messages 2005-12-07 10:08:07 +00:00
Dmitry Stogov 5bb71a7871 Fixed sleep() magic method with private and protected members 2005-12-07 09:41:22 +00:00
Dmitry Stogov 543a1c1a9a Fixed test 2005-12-07 09:34:34 +00:00
Rasmus Lerdorf 9e45839ada A few cleanups. I hope you don't mind Omar. 2005-12-07 09:12:39 +00:00
Dmitry Stogov 4855a3ba08 Fixed incorrect basename() usage 2005-12-07 09:06:30 +00:00
Dmitry Stogov 52a9d56185 Fixed memory overflow, because usage of initialized value 2005-12-07 09:00:29 +00:00
Pierre Joye 224de2c66a - add latest changes to package.xml 2005-12-07 06:58:14 +00:00
42ae67dd5d ChangeLog update 2005-12-07 06:41:41 +00:00
Greg Beaver eea900316b add PHP_Archive::canCompress() which determines whether zlib decompression is available
clean up code slightly
add lots of error notification
add .cvsignore for tests/
update 002 to handle new testing behavior
2005-12-07 06:39:03 +00:00
Rob Richards d8427c5efa - fix remaining parameter typo
- add test
2005-12-07 04:59:41 +00:00
Pierre Joye ddbc24465e - copy/paste error in startDtd, we do not need the res here 2005-12-07 03:20:13 +00:00
Ilia Alshanetsky 112f016a39 MFB51: Better critical error handling (fix for previous html encoding patch). 2005-12-07 02:37:35 +00:00
Greg Beaver 9c9dcd7d88 parameter count test 2005-12-07 01:47:49 +00:00
Greg Beaver 0a786a87b0 first simple test 2005-12-07 01:44:24 +00:00
Frank M. Kromann b6f3fc1acf Fix ZTS and Win32 builds 2005-12-07 01:18:54 +00:00
Greg Beaver ebc087c72a apparently no email here 2005-12-07 00:49:46 +00:00
Marcus Boerger e3e2d33c79 - Show list of leaked files in summary if any
- Use basename correct
2005-12-07 00:01:51 +00:00
Ilia Alshanetsky f0191491f2 MFB51: Fixed bug #30760 (Remove MessageBox on win32 for E_CORE errors if
display_startup_error is off).
2005-12-06 23:32:27 +00:00
Marcus Boerger 826f39b013 - Do not show leak summary if not tested 2005-12-06 23:24:38 +00:00
Antony Dovgal 6b8cb7d2ad fix typo 2005-12-06 19:26:57 +00:00
Antony Dovgal 491c43cf2e nuke erroneous --ENV-- tag
add new tests for oci_bind_array_by_name()
2005-12-06 19:15:02 +00:00
Sara Golemon d34df75ee1 Block potential segfault.
Context option type not checked for "user_agent","header", and "content"
2005-12-06 19:13:27 +00:00
Antony Dovgal d93c613429 MF51: use strlen() to get correct element length 2005-12-06 18:54:33 +00:00
Sara Golemon bc8654e427 MFB: Prep for PECL release 2005-12-06 17:56:56 +00:00
Antony Dovgal a42b9d7a0f fix CS 2005-12-06 15:20:53 +00:00
Antony Dovgal 6cebabed0a add tests
Code covered:	91.3 %
2005-12-06 15:18:56 +00:00
Antony Dovgal a59ddf0a56 reimplement php_filter_callback() as exception-safe and without memleaks 2005-12-06 15:17:38 +00:00
Antony Dovgal a317347723 accept strings and arrays as callback name 2005-12-06 15:16:33 +00:00
Antony Dovgal b35b72f9ed don't try to encode empty strings 2005-12-06 13:46:56 +00:00
Antony Dovgal df5f4abe96 fix tests 2005-12-06 10:23:28 +00:00
Antony Dovgal 43f74ba5f1 plug multiple leaks
(you need to destroy the zval before changing its type manually)
2005-12-06 10:21:52 +00:00
Marcus Boerger f2a9649f03 - Fix summaries again 2005-12-06 09:34:44 +00:00
fa0f08e089 ChangeLog update 2005-12-06 06:46:50 +00:00
Omar Kilani f54496cd39 Add json extension to PECL. 2005-12-06 06:23:24 +00:00
Ilia Alshanetsky a4861d1512 Prevent header injection by limiting each header to a single line. 2005-12-06 03:39:26 +00:00
Ilia Alshanetsky 2d789c2366 MFB51: Fixed possible XSS inside error reporting functionality. 2005-12-06 03:13:53 +00:00
foobar f8b35b7d90 - Fix docs 2005-12-06 02:30:04 +00:00
foobar a208d9a966 - Nuke php3 legacy 2005-12-06 02:28:26 +00:00
foobar a05e8e335d - nuke php3 legacy 2005-12-06 02:10:00 +00:00
foobar f53c892557 fix build 2005-12-06 02:07:17 +00:00
foobar 5f44819b72 - function_entry -> zend_function_entry (php3 legacy!) 2005-12-06 02:00:07 +00:00
Marcus Boerger d5ee5c5b0f - Support for '--' style switches
- Modularize output
- Better valgrind integration (valgrind 3.0.0+ required now) (-m)
- Ability to generate an additional html style output log (--html)
- Ability to test unicode + native tests in one go (-U)
2005-12-06 01:51:17 +00:00
foobar c0c7b984f0 nuke php3 legacy 2005-12-06 01:39:35 +00:00
foobar acf2ab661a nuke php3 legacy 2005-12-06 01:26:39 +00:00
foobar 5ee664f80e nuke php3 legacy 2005-12-06 01:13:59 +00:00
foobar becbb993a1 nuke php3 legacy 2005-12-06 01:08:40 +00:00
foobar 1c0ece7149 - nuke php3 legacy 2005-12-06 01:04:42 +00:00
foobar fae94910ae nuke php3 legacy (and be consistent) 2005-12-06 01:02:38 +00:00
foobar a9166edcf4 nuke php3 legacy 2005-12-06 01:00:13 +00:00
foobar bb1be4efaf fix build 2005-12-06 00:54:11 +00:00
foobar 879222732d - nuke php3 legacy 2005-12-06 00:51:53 +00:00
foobar 8fa72be4ee - Nuke php3_compat.h 2005-12-06 00:44:22 +00:00
foobar 77205941f5 - nuke php3 legacy 2005-12-06 00:43:35 +00:00
Ilia Alshanetsky 1be62560c5 1.0.2 2005-12-06 00:27:01 +00:00
foobar 7d61579034 - Use the real name instead of the BC name here 2005-12-05 23:52:30 +00:00
foobar 34ad5ab731 - list_entry -> zend_rsrc_list_entry 2005-12-05 23:31:09 +00:00
foobar 0ac2b74b0b - Nuke php3 legacy 2005-12-05 22:53:34 +00:00
foobar c33bb84930 - Do not use the PHP3 era names 2005-12-05 22:43:01 +00:00
foobar 4851c062fb fix typo 2005-12-05 22:40:31 +00:00
foobar 130333274b - Do not use the PHP3 era names! 2005-12-05 22:38:17 +00:00
foobar c297b31a52 - Nuke php3 legacy 2005-12-05 22:21:12 +00:00
Brian France 5e81ec643f Wrap the php_session.h include in the same ifdef as the rest of the
session code.
2005-12-05 20:41:57 +00:00
Stanislav Malyshev 1a60646023 MF5.1: fix reallocation bug 2005-12-05 20:08:19 +00:00
Antony Dovgal 7a8a89f35e MF51: more typos fixed (thanks to Mike Naberezny for noticing these) 2005-12-05 20:07:18 +00:00
Ilia Alshanetsky f30dbd9f54 MFB51: Fixed bug #35558 (mktime() interpreting 3 digit years incorrectly). 2005-12-05 17:27:24 +00:00
Antony Dovgal 43536d38e6 MF51: improve error messages 2005-12-05 13:41:14 +00:00
Antony Dovgal ee5cdb2c14 MF51:
add NEWDECIMAL, NEWDATE, GEOMETRY, SET and ENUM field types
2005-12-05 13:22:49 +00:00
Antony Dovgal 39c135b1c4 MF51:
fix #35536 (mysql_field_type() doesn't handle NEWDECIMAL)
add also SET, ENUM, NEWDATE and GEOMETRY to the switch
2005-12-05 13:20:53 +00:00
Dmitry Stogov 7aaff40de5 Fixed bug #35509 (string constant as array key has different behavior inside object) 2005-12-05 08:56:32 +00:00
Greg Beaver f9e209f048 fix segfault in opendir/readdir. fix possible duplicate dirs. is_dir() doesn't yet work, so url_stat is not working fully 2005-12-05 08:31:05 +00:00
b06df87d20 ChangeLog update 2005-12-05 06:50:42 +00:00
Greg Beaver 7944a489fd switch to streams, respect safe_mode, open_basedir 2005-12-05 04:47:29 +00:00
Ilia Alshanetsky 9e9a8eb837 MBF51: load proper header file 2005-12-05 04:23:17 +00:00
Ilia Alshanetsky dbfdcef380 MFB51:Avoid gcov conflicts on non-unique filenames 2005-12-05 04:22:37 +00:00
Greg Beaver 92846c03d4 kill memory leaks 2005-12-05 04:21:36 +00:00
Greg Beaver 852eec498f add ability to detect zlib library when zlib ext is disabled 2005-12-05 01:07:02 +00:00
foobar 89199c43b2 - Nuke non-working part 2005-12-04 23:31:33 +00:00
foobar 6f8644ce1e php3 is dead 2005-12-04 23:27:23 +00:00
Greg Beaver 141aecfcdd attempt to locate zlib even if --with-zlib is disabled, so we can add library support in phar 2005-12-04 23:23:04 +00:00
Greg Beaver 96d6465999 add license text 2005-12-04 22:51:33 +00:00
Greg Beaver 6e0c451133 update header, use PHP 3.01 license 2005-12-04 22:50:54 +00:00
Greg Beaver 9d4036ea7c initial import
# file handling needs to use streams, handle safe_mode/open_basedir
2005-12-04 20:35:38 +00:00
Greg Beaver 744dfb6bf0 begin import of phar extension 2005-12-04 20:29:21 +00:00
Marcus Boerger a40000b63a - Add missing .cvsignore 2005-12-04 18:34:14 +00:00
Ilia Alshanetsky 5e2bdfcfcc MFB51: Added tests for new parse_url() and http_build_query() functionality. 2005-12-04 17:58:53 +00:00
Ilia Alshanetsky 08c824bbea MFB51: Fixed bug #35062 (socket_read() produces warnings on non blocking
sockets).
2005-12-04 17:31:40 +00:00
Ilia Alshanetsky e803ebb403 MFB51: Fixed gcov for generated files 2005-12-04 17:28:26 +00:00
Ilia Alshanetsky f631fdef4c MFB51: Regen files so they work properly with gcov. 2005-12-04 17:25:26 +00:00
Antony Dovgal ced6ef40cd fix #35539 (typo in error message for ErrorException) 2005-12-04 11:45:45 +00:00
Antony Dovgal c7631a2dca fix #35543 (php crash when calling non existing method of a class that extends PDO) 2005-12-04 11:40:52 +00:00
7f8adfcc7e ChangeLog update 2005-12-04 06:48:28 +00:00
Antony Dovgal a74ea6cfb8 fix typos in xmlwriter/config.m4 2005-12-04 00:20:52 +00:00
Antony Dovgal e084ac9d8b add declarations
more uint -> size_t fixes
2005-12-03 23:49:52 +00:00
Antony Dovgal 60af8a388c MF51: fix #35538 (new "hash" extensions does not compile on amd64) 2005-12-03 23:31:49 +00:00
Antony Dovgal 58c6a0da27 yet another compile warning 2005-12-03 23:24:07 +00:00
Antony Dovgal e9f068a7d6 fix compile warning 2005-12-03 23:19:48 +00:00
foobar cdd291f514 - Fix bug #35530 (ext/bz2 compile failure with phpize) 2005-12-03 13:22:20 +00:00
Michael Wallner 2e3a2a5dbc MF51: add adler32 test 2005-12-03 10:32:42 +00:00
Michael Wallner 5da5750736 - fix ws 2005-12-03 10:24:06 +00:00
Michael Wallner dbe8a6a629 - add test to package.xml 2005-12-03 10:20:21 +00:00
Michael Wallner f1a0fdddba - add crc32 test 2005-12-03 10:16:59 +00:00
688f880e61 ChangeLog update 2005-12-03 06:46:25 +00:00
foobar 0586ac73f1 - fix possible compile error 2005-12-03 01:27:37 +00:00
foobar d2e3d9c244 fix compile failure (bug #35528) 2005-12-03 01:21:09 +00:00
foobar 2fcfc02141 fix configure --help output 2005-12-03 01:12:35 +00:00
foobar c7e4853008 fix configure --help output 2005-12-03 01:06:36 +00:00
Sara Golemon c456c16952 Add MD4 support 2005-12-03 00:51:30 +00:00
foobar 8e5799059d Nuked dos EOLs and fixed typo 2005-12-03 00:00:44 +00:00
foobar ecd8376f36 - Changed "session.use_only_cookies" to be on by default. 2005-12-02 18:42:41 +00:00
Ilia Alshanetsky 4041e52215 MFB51: Regenerate file to be more gcov friendly 2005-12-02 17:34:35 +00:00
Marcus Boerger f509c44be8 - Be picky about names 2005-12-02 15:59:36 +00:00
foobar ab3fcb8f06 MFB51: fix compile warning and paths 2005-12-02 13:23:44 +00:00
Michael Wallner f48a99133d MF51: use --enable instead of --with 2005-12-02 11:01:19 +00:00
foobar 79bc13d29e - Fix configure 2005-12-02 08:59:26 +00:00
dbe3d0b8d7 ChangeLog update 2005-12-02 06:46:50 +00:00
Pierre Joye f001c7d5a0 - prepare 2.0.2 2005-12-02 00:50:28 +00:00
Michael Wallner dd947297fe - export everything we've got aliases for 2005-12-01 21:08:17 +00:00
Michael Wallner 4323354ee0 - use php_pcre aliases 2005-12-01 20:53:04 +00:00
Antony Dovgal 37eeba6f27 tweak the fix 2005-12-01 20:39:49 +00:00
Michael Wallner 9bae4e12e4 - ext/filter will need those exports
# php_compat.h still prevents linking
2005-12-01 20:07:01 +00:00
Antony Dovgal 25ac5ff0b7 fix #35508 (PDO fails when unknown fetch mode specified) 2005-12-01 19:59:36 +00:00
Antony Dovgal 1d74918ddd MF51: fix Win32 compile failure 2005-12-01 19:26:31 +00:00
Antony Dovgal 701dfc56b5 two more tests 2005-12-01 18:23:08 +00:00
Rob Richards 6f42894489 change to PHP 3.01 license 2005-12-01 16:41:52 +00:00
Ilia Alshanetsky 38d192b7c6 MFB51: Fixed bug #35499 (strtotime() does not handle whitespace around the
date string).
2005-12-01 16:26:38 +00:00
foobar 7b396961da - Fixed PECL bug #6124: Crash on HTML tags when using FS_STRING 2005-12-01 16:24:19 +00:00
Antony Dovgal 14bdb93d6b MF51: fix #35490 (socket_sendto() unable to handle IPv6 addresses) 2005-12-01 14:03:51 +00:00
Antony Dovgal 4f906aa23f fix potential problem in php_oci_bind_post_exec() when OCIDateToText() fails 2005-12-01 13:46:05 +00:00
Dmitry Stogov a139e19fe3 Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4) 2005-12-01 12:51:19 +00:00
Dmitry Stogov feaa2501d0 Fixed bug #34729 (Crash in ZTS mode under Apache) 2005-12-01 11:49:51 +00:00
Marcus Boerger 507942a34e - Use putenv() correct 2005-12-01 09:59:59 +00:00
foobar 8ae898f486 - Use correct configure option style. Enabled by default. 2005-12-01 08:54:15 +00:00
Marcus Boerger 885a80dabc - Fix warnings 2005-12-01 08:49:57 +00:00
57fa8a5782 ChangeLog update 2005-12-01 06:45:42 +00:00
Sara Golemon 73012ee257 Add hash_hmac() and hash_hmac_file() for single shot HMAC calculations 2005-12-01 04:53:55 +00:00
Marcus Boerger a015502926 - New environment TEST_PHP_ARGS to allow appending args to run-tests.php
- New mode -q (quiet)
- New mode -s <file> (save output to a file)
2005-12-01 01:26:20 +00:00
Marcus Boerger ed0b0d1f33 - White space fixes 2005-12-01 00:57:29 +00:00
foobar 2208b59602 - Added win32 build stuff 2005-12-01 00:48:13 +00:00
foobar cfaa455272 - More cleanups.
# Pierre: Check the convenient list of unnecessary defines in config.m4
# (search for FIXME :)
2005-12-01 00:36:26 +00:00
Marcus Boerger 20c56bd378 - Add support for valgrind testing (Nuno) 2005-12-01 00:26:44 +00:00
Ilia Alshanetsky 1792f34008 MFB51: Fixed bug #35496 (Crash in mcrypt_generic()/mdecrypt_generic()
without proper init).
2005-11-30 23:53:47 +00:00
Antony Dovgal e1a1c5a9b9 add new test 2005-11-30 23:34:51 +00:00
Marcus Boerger ba9f38f8ae - Make gcov targets work with debian (http://gcov.php.net) 2005-11-30 22:27:32 +00:00
Ilia Alshanetsky 92fd7f24a5 MFB51: Fixed bug #35410 (wddx_deserialize() doesn't handle large ints as keys
properly).
2005-11-30 18:13:17 +00:00
Pierre Joye 6160b285f7 - minor version is 0 2005-11-30 17:33:27 +00:00
Pierre Joye ead45ca2f6 - use gdlib-config
- bump to 2.0.33 for now, most stable release and closer from the phpgd
  this is only about config.m4, sources cleanup will follow the additions
  of various tests.
2005-11-30 15:59:07 +00:00
foobar 13c1c6c15d - Fix the ccache detection 2005-11-30 15:01:22 +00:00
Antony Dovgal 6fddd6f878 fix possible crash in pdo_mysql_stmt_dtor() 2005-11-30 11:32:33 +00:00
Michael Wallner f79f89e265 - fix PHP4 build 2005-11-30 11:11:52 +00:00
Dmitry Stogov c58d4c590a Fixed bug #35373 (HP-UX "alias not allowed in this configuration") 2005-11-30 10:25:51 +00:00
Dmitry Stogov d409c5e347 Fixed bug #35470 (Assigning global using variable name from array doesn't function) 2005-11-30 10:10:32 +00:00
Marcus Boerger a71b5970d5 - Fix tests 2005-11-30 08:14:49 +00:00
b36024de5a ChangeLog update 2005-11-30 06:42:54 +00:00
foobar 6ad30bffab fn 2005-11-29 23:23:32 +00:00
Ilia Alshanetsky 2852ace3ef MFB51: fixed zts build 2005-11-29 23:10:48 +00:00
foobar 6a3ce3fb50 MFB: automake dependancy was removed long time ago 2005-11-29 22:42:53 +00:00
foobar 3925e60223 - Remove unnecessary libgcov entry (the gcc options handle it) 2005-11-29 22:38:32 +00:00
foobar e091d62311 - Remove unused lines 2005-11-29 22:26:07 +00:00
Antony Dovgal 418f83f334 make use of $SED if possible 2005-11-29 21:45:53 +00:00
foobar 8847779835 MFB51: Update bundled libtool to version 1.5.20 2005-11-29 21:33:12 +00:00
foobar fc816c5e76 MFB51: Always use $SED instead of sed 2005-11-29 21:31:35 +00:00
Ilia Alshanetsky 40dd6dfb4e Added missing support for 'B' format identifier to date() function. 2005-11-29 20:48:44 +00:00
Ilia Alshanetsky 667a9b9bce MFB51: Fixed bug #35425 (idate() function ignores timezone settings). 2005-11-29 20:27:21 +00:00
Antony Dovgal 0c110a93d2 MF51: change "-o" to "||" to support weird systems with broken test 2005-11-29 18:38:48 +00:00
Ilia Alshanetsky 1ceacc89f7 MFB51: fixed date tests 2005-11-29 16:25:39 +00:00
Ilia Alshanetsky 7f66777bbf MFB51: Fixed bug #35427 (str_word_count() handles '-' incorrectly). 2005-11-29 16:14:47 +00:00
foobar 1b85d42ba5 - Regenerated with working re2c and with proper options 2005-11-29 08:13:18 +00:00
0ba09c083f ChangeLog update 2005-11-29 06:49:28 +00:00
Marcus Boerger d237f996f9 - Fix some memleaks 2005-11-29 02:46:19 +00:00
Marcus Boerger 2bb59717c7 - Allow test to be used w/o run-tests.php 2005-11-29 02:41:54 +00:00
Ilia Alshanetsky eed6f67ffa MFB51:
Fixed bug #35422 (strtotime() does not parse times with UTC as timezone).
Fixed bug #35414 (strtotime() no longer works with ordinal suffix).
2005-11-29 01:31:52 +00:00
Ilia Alshanetsky 2303ff493c MFB51: Fixed bug #35456 (+ 1 [time unit] format did not work). 2005-11-28 23:26:40 +00:00
foobar a03df6fef7 fix build with libedit 2005-11-28 23:03:49 +00:00
foobar 3cdf23b830 - Fixed bug #35409 (undefined reference to 'rl_completion_matches') 2005-11-28 16:49:35 +00:00
Dmitry Stogov 4192685b64 Fixed bug #35393 (changing static protected members from outside the class, one more reference issue) 2005-11-28 14:33:44 +00:00
Alan Knowles 9aa88e7e43 fix bug #35381 - ensure library is initialized before use 2005-11-28 10:28:17 +00:00
Dmitry Stogov a859b67027 Fixed bug #35399 (Since fix of bug #35273 SOAP decoding of soapenc:base64binary fails) 2005-11-28 10:09:07 +00:00
1407f79e79 ChangeLog update 2005-11-28 06:43:30 +00:00
Antony Dovgal e7f4360f2e MF51: use || instead of -o to support weird systems with old test 2005-11-27 23:00:55 +00:00
Antony Dovgal dc1d5122d1 fix #35430 (PDO crashes on incorrect FETCH_FUNC use) 2005-11-27 20:56:46 +00:00
foobar 0a1d459892 MF51: improve open_basedir check 2005-11-27 20:10:15 +00:00
Antony Dovgal 54047149ad fix config.m4 2005-11-27 18:35:35 +00:00
Antony Dovgal ed978d2f1a plug memory leak 2005-11-27 18:34:16 +00:00
Marcus Boerger df710be5c7 - Fix minor issues in RecursiveDirectoryIterator & provide new flag consts 2005-11-27 13:07:18 +00:00
Rob Richards 93ee6cd533 Fixed bug #35316 (Application exception trying to create COM object)
Fix some handler signatures causing memory corruption
Various unicode fixes
2005-11-27 12:21:12 +00:00
Marcus Boerger 1bec704ea7 - Fix editor blocks 2005-11-27 12:13:42 +00:00
f2dd944cec ChangeLog update 2005-11-27 06:48:53 +00:00
Marcus Boerger 0619c8c66c - Output modularization, 1st step 2005-11-26 18:07:49 +00:00
Antony Dovgal 9fdd2b6940 show OIC version in phpinfo(); if possible
fix build with older versions: SQLT_BDOUBLE & SQLT_BFLOAT first appeared in Oracle 10
2005-11-26 17:34:35 +00:00
Marcus Boerger e1410fb0a4 - Really test the issue here 2005-11-26 16:34:37 +00:00
Marcus Boerger 6e4bcd3a5d - Bug 35382 was nit fixed but the test system was not capable for this kind
of tests
2005-11-26 16:33:08 +00:00
Michael Wallner 2563c13553 - ditch warnings 2005-11-26 14:17:09 +00:00
foobar e538c3ea1f fix test 2005-11-26 13:39:55 +00:00
Marcus Boerger 33edd8eafc - Scew short open tags 2005-11-26 13:37:30 +00:00
Marcus Boerger 7d3937bdd3 - Add new test 2005-11-26 13:22:46 +00:00
Michael Wallner a278e9a74d - use php_hash_* types
# ok with everybody?
2005-11-26 13:15:06 +00:00
Marcus Boerger 117753db1e - Fix bug #35406 eval hangs when evall'ed code ends with comment w/o newline 2005-11-26 13:09:28 +00:00
Antony Dovgal 34c4afe3dd MF51: add properties hashtable to Timezone class 2005-11-26 12:37:20 +00:00
Marcus Boerger 649376153c - Oversight 2005-11-26 12:33:42 +00:00
Marcus Boerger 42e741e4f9 - Synch with what we decided for 5 and what we are practicing since 5 2005-11-26 12:25:58 +00:00
Antony Dovgal 173cbe620f fix #35402 (New date class causes crash in get_object_vars()) 2005-11-26 09:39:50 +00:00
f4d2e7ba9c ChangeLog update 2005-11-26 06:37:54 +00:00
Michael Wallner 3bc5c7e420 uhm... 2005-11-26 00:15:03 +00:00
Michael Wallner 90561e4fe8 - add crc32 2005-11-26 00:08:06 +00:00
Michael Wallner 6c16fac2b5 - add adler32 2005-11-25 23:12:44 +00:00
Michael Wallner 55f3cabb90 - ditch warnings
- add gost and snefru test
- CREDITS += mike
2005-11-25 18:24:34 +00:00
Michael Wallner 7a9fcb329f - add gost algo
- declare tables static
2005-11-25 16:12:30 +00:00
Wez Furlong 145bdfa9a4 Use right define: ZEND_MODULE_API_NO as these are PHP modules, not Zend extensions 2005-11-25 15:44:40 +00:00
foobar 04dffec1c4 - Use right define: ZEND_MODULE_API_NO as these are PHP modules, not Zend extensions 2005-11-25 15:40:14 +00:00
Antony Dovgal a526db7956 fix #35391 (pdo_mysql::exec does not return number of affected rows) 2005-11-25 12:54:18 +00:00
Antony Dovgal 984ce697ec ICC doesn't support __attribute__ for pointers 2005-11-25 12:25:22 +00:00
Michael Wallner 7a0886509e - add a simple benchmark 2005-11-25 12:21:28 +00:00
Michael Wallner f1054f3473 - add snefru algo
- fix empty else in config.m4
2005-11-25 11:54:49 +00:00
Antony Dovgal d31cd8bf85 change handles destruction order (based on the patch by Chris Jones) and fix typo 2005-11-25 10:16:55 +00:00
5d80c942f5 ChangeLog update 2005-11-25 06:41:36 +00:00
Ilia Alshanetsky 6407b345b9 MFB51: Fixed bug #35170 (PHP_AUTH_DIGEST differs under Apache 1.x and 2.x) 2005-11-25 00:07:57 +00:00
Ilia Alshanetsky edca4a83ba Fixed copy & paste error 2005-11-24 23:24:53 +00:00
Ilia Alshanetsky 9e3bff7b0f 1.0.1 release 2005-11-24 23:12:38 +00:00
Marcus Boerger ba03c4fcc3 - Synch test name 2005-11-24 20:27:27 +00:00
Ilia Alshanetsky 40b2772dcd MFB51: Fixed bug #35358 (Incorrect error messages for PDO class constants). 2005-11-24 16:22:27 +00:00
Antony Dovgal eb40be874a fix #35322 (oci_connect() after oci_close() gives unknown resource) 2005-11-24 15:15:28 +00:00
Michael Wallner 4875427d16 - fix tiger algo 2005-11-24 14:28:34 +00:00
Michael Wallner e4bef616f8 - fix segvs
# there's still somthing wrong though
2005-11-24 14:07:24 +00:00
Dmitry Stogov a42086c73c Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash) 2005-11-24 11:32:44 +00:00
Michael Wallner 4ce1074df9 - add tiger algo 2005-11-24 08:59:54 +00:00
c9e26c3ec0 ChangeLog update 2005-11-24 06:41:47 +00:00
Sara Golemon 0d8bbe7575 Sync tests with new defaults 2005-11-24 04:37:04 +00:00
Marcus Boerger fac6e1b4c0 - License for core extensions is PHP License
- Add Johannes to credits for his work here
2005-11-24 00:30:41 +00:00
Michael Wallner ddc2444d2c - add whirlpool algo 2005-11-23 21:15:41 +00:00
Johannes Schlüter 41cc009a9e Changed reflection constants to class constants 2005-11-23 20:47:42 +00:00
Dmitry Stogov ef47ee6e13 Cleaned CGI code. Now FastCGI can not be disabled. See into sapi/cgi/CHANGES for more details. 2005-11-23 18:08:51 +00:00
Michael Wallner 3da6204bf6 - add salsa implementation
# its not common and I've no reference output to compare against,
# thus it's not enabled; I'm also pretty unsure about the initialization
2005-11-23 17:18:56 +00:00
Michael Wallner d11d157c9f - no trailing NULs 2005-11-23 16:36:11 +00:00
foobar 1b716123f2 - No need for extra strlen() call here 2005-11-23 15:51:45 +00:00
foobar 754d011d8d fix leaks 2005-11-23 15:50:27 +00:00
Rui Hirokawa 4c5d74a058 fixed 5307 unexpected header can be injected to mb_send_mail(). 2005-11-23 15:16:39 +00:00
Dmitry Stogov 310ab5b4be Additional fix for fix #35536 2005-11-23 13:30:18 +00:00
Antony Dovgal 9457dc348c forgotten part of the fix 2005-11-23 11:57:43 +00:00
Antony Dovgal 9e9a55f9ac MF51: fix #35336 (crash on PDO::FETCH_CLASS + __set()) 2005-11-23 11:55:46 +00:00
Antony Dovgal d4a9f53abc add test for #35336 2005-11-23 11:55:09 +00:00
Rob Richards 061039b182 fix build under 5.0
fix crash when XMLWriter is instantiated but not used
2005-11-23 11:23:39 +00:00
Dmitry Stogov 98b8a0fdb9 Bug #33732 (Wrong behavior of constants in class and interface extending) 2005-11-23 09:27:01 +00:00
a08a89e9eb ChangeLog update 2005-11-23 06:51:42 +00:00
Rob Richards 8c8f92f45f add test 2005-11-23 03:10:45 +00:00
Rob Richards 406910e1e9 add registerNodeClass() method
- methods can now natively return user classes registered with document
2005-11-23 02:56:41 +00:00
Rob Richards fba57a97ca move document property struct from xml_common.h 2005-11-23 02:54:10 +00:00
Rob Richards 73e6869340 implement setIDAttributeXXX functionality 2005-11-23 02:52:56 +00:00
Rob Richards 8038df9ce2 Fixed bug #35342 (isset(DOMNodeList->length) returns false). 2005-11-23 00:55:34 +00:00
Ilia Alshanetsky 574a01f9b7 No dynamic output, so no need for regex. 2005-11-23 00:30:08 +00:00
foobar f94c2783b4 - Fixed PECL bug #6021: parse_str() returns empty array when filter enabled 2005-11-23 00:20:16 +00:00
Ilia Alshanetsky 083874aab2 emalloc -> safe_emalloc 2005-11-23 00:19:20 +00:00
Ilia Alshanetsky 92281a047f MFB51: Fixed bug #35046 (phpinfo() uses improper css enclosure). 2005-11-23 00:15:26 +00:00
Rasmus Lerdorf 91e695c632 3.01 license - we technically don't need to switch the PHP sources to this
one, it is more for pear/pecl, but to be consistent we probably should.
Anybody want to do the sed magic to fix all the headers?
2005-11-23 00:08:00 +00:00
Antony Dovgal e3586e0407 MF51: fix #35341 (Fix for bug #33760 breaks build with older curl) 2005-11-22 22:54:22 +00:00
Sara Golemon d1aeaab5cc MFB (r-1.6.2.1) 2005-11-22 22:08:22 +00:00
Michael Wallner bdae448f41 add cvsignore 2005-11-22 20:46:02 +00:00
Michael Wallner 99c8d42a7b - hexlen is 2*digestlen 2005-11-22 19:23:55 +00:00
Michael Wallner 4c61cf6f4c - install extension headers
- make the hash algo registry case insensitive
- "export" inline php_hash_bin2hex
2005-11-22 19:17:58 +00:00
Antony Dovgal 066fb72fdd Initial implementation of oci_bind_array_by_name()
At the moment we support only these types:
SQLT_NUM, SQLT_INT, SQLT_LNG - integer/long
SQLT_FLT - float
SQLT_AFC, SQLT_CHR, SQLT_VCS, SQLT_AVC, SQLT_STR, SQLT_LVC - char/varchar
SQLT_ODT - date

More supported types may follow.
2005-11-22 16:30:36 +00:00
Michael Wallner 8115e71039 - avoid segvs 2005-11-22 12:24:25 +00:00
2bf81c4a3f ChangeLog update 2005-11-22 06:48:55 +00:00
Ilia Alshanetsky f950925688 MFB51: Fixed command error in ftp:// wrapper. 2005-11-22 03:01:59 +00:00
Michael Wallner 17f33c3bf3 - MF51: fix make install 2005-11-22 00:51:24 +00:00
Frank M. Kromann 720938f4ad /Gz and /RTC1 is for debug builds 2005-11-22 00:29:30 +00:00
foobar bcade7ced4 - Fixed header installing under phpize builds 2005-11-21 23:07:36 +00:00
Michael Wallner 77e5a7e300 - fix a couple of warnings
- export php_hash_fetch_ops() and php_hash_register_ops()
2005-11-21 15:09:58 +00:00
Dmitry Stogov a86414864b Fixed "getParameters" method 2005-11-21 10:57:28 +00:00
120681ebac ChangeLog update 2005-11-21 06:46:10 +00:00
Sara Golemon 9496259e1a Fix double-final potentially causing double-free 2005-11-21 06:05:37 +00:00
Derick Rethans d732859624 - MF51: Fixed bug #35143 (gettimeofday() ignores current time zone).
- MF51: Fixed tests due to class constants patch.
2005-11-20 20:31:49 +00:00
Sara Golemon 7ad4fb0c27 Add HAVAL algorithm
Bit widths: 128, 160, 192, 224, 256
Passes: 3, 4, 5
2005-11-20 20:14:22 +00:00
Ilia Alshanetsky 9979ac2215 MFB51: Fixed bug #35303 (PDO prepare() crashes with invalid parameters). 2005-11-20 20:07:38 +00:00
foobar 895e795b53 - Fixed bug #35243 (php_mblen() crashes when compiled with thread-safety on Linux) 2005-11-20 18:06:09 +00:00
Sebastian Bergmann ebd645e438 MFB: Use /RTC1 instead of /GZ for MS VisualStudio 2005. 2005-11-20 17:03:58 +00:00
Johannes Schlüter 57deca0c8f - Fix SPL class listing for phpinfo in unicode mode 2005-11-20 15:21:23 +00:00
Marcus Boerger 29e64a2fc8 - Extend SimpleXmlElement::__construct() with two parameters
. int options: pass options to 2.6.0+ parsing functions
  . bool data_is_url: whether first parameter is a url rather then xml data
- Fix parameter parsing
2005-11-20 13:03:15 +00:00
Marcus Boerger 1bd7af815c - Do locking in lib rather then on streams 2005-11-20 12:39:04 +00:00
3247484267 ChangeLog update 2005-11-20 06:48:39 +00:00
Andrei Zmievski 41a8ac3af6 *** empty log message *** 2005-11-20 02:27:49 +00:00
Sara Golemon 4a3e87ad96 Add hmac-md5 test file to package.xml 2005-11-19 23:16:56 +00:00
Michael Wallner 1736cb4759 PHP-5.1 compatibility 2005-11-19 21:41:08 +00:00
Antony Dovgal 9846ceeab6 fix PECL bug #5986 (connections use case sensitive hashed details) 2005-11-19 21:36:06 +00:00
Sara Golemon 7cbd9686b1 Add streams based incremental hashing updaters 2005-11-19 21:09:40 +00:00
Sara Golemon ef37868378 Expose registered hashing algos 2005-11-19 20:13:08 +00:00
Marcus Boerger 471af93da9 - Fix bug #35295 typo in config.m4 for reflection extension 2005-11-19 17:47:22 +00:00
Antony Dovgal 9f4390ce8b fix #35293 (PDO segfaults when using persistent connections) 2005-11-19 16:39:47 +00:00
foobar ef53177e27 NOTE: Things that are fixed in version released year(s) before this one
really don't need any NEWS entries. People kinda expect the stuff being
fixed in the future version..:)
2005-11-19 11:41:26 +00:00
Michael Wallner 65ccbc1bc4 - fix PCRE_INCDIR for external libpcre 2005-11-19 10:30:52 +00:00
Marcus Boerger 3bffc21967 - Fixed Bug #35286 tokenizer ext drops final comment (by greg) 2005-11-19 09:43:19 +00:00
43766c2a15 ChangeLog update 2005-11-19 06:52:43 +00:00
Rui Hirokawa 1c23277a91 fixed #35253 length of the encoded string vilolates a RFC. 2005-11-19 06:32:20 +00:00
Marcus Boerger 71b8ed31c3 - Disabled globals code in a way that does not affect purist or old compilers 2005-11-18 22:59:07 +00:00
Sara Golemon a00062d63e Typo 2005-11-18 21:39:29 +00:00
Sara Golemon a0f5787e20 One last 64bit change, skip all this long long malarkey when we're on 64bit procs 2005-11-18 21:37:19 +00:00
Sara Golemon d97c072a75 Macrofy 64bit integers in sha384/sha512 to make Win32 happy 2005-11-18 21:30:05 +00:00
Frank M. Kromann 5907e1f08a Fix #33201 Crash when fetching some data types 2005-11-18 21:22:50 +00:00
Sara Golemon 7cd42570ed Add HMAC support 2005-11-18 20:58:54 +00:00
Frank M. Kromann 87e899e4a4 Fix #33963. mssql_bind fails on input parameters 2005-11-18 20:48:22 +00:00
Frank M. Kromann cc9225f8dc Fix #32009 crash when mssql_bind() is called more than once 2005-11-18 20:40:28 +00:00
Sara Golemon 614a3fb8a4 Expose sha1() and sha1_file() functions when core funcs not present
Not an issue yet, but could be...
2005-11-18 20:17:31 +00:00
Sara Golemon 5c213de12e Initial Commit 2005-11-18 19:51:09 +00:00
Frank M. Kromann 14889ccfbd Fix #33153 Crash in mssql_next_result(). 2005-11-18 19:13:35 +00:00
Ilia Alshanetsky 85fb03cbae MFB51: Fixed bug #35278 (Multiple virtual() calls crash Apache 2 php module) 2005-11-18 19:01:50 +00:00
foobar dfe4ace529 reorder 2005-11-18 16:41:49 +00:00
Rasmus Lerdorf 9d1a28b6a1 allow_url_include 2005-11-18 16:28:01 +00:00
Rasmus Lerdorf e1f1857978 Add allow_url_include to let people turn on allow_url_fopen without also
enabling remote code execution through url wrappers
2005-11-18 16:20:43 +00:00
foobar ffa0e13a59 MFB51: fix build when --with-libedit is used 2005-11-18 15:11:14 +00:00
Dmitry Stogov 2d95730e89 Fixed bug #35273 (Error in mapping soap - java types) 2005-11-18 10:59:55 +00:00
Derick Rethans 168db42521 - Ready 0.9.3. 2005-11-18 09:56:11 +00:00
Derick Rethans ccbf79462f - Fixed default so that it does not even encode quotes. 2005-11-18 09:17:59 +00:00
3314fe6b22 ChangeLog update 2005-11-18 06:42:57 +00:00
Rob Richards 459b318a56 fix configure - reflection is its own extension 2005-11-18 02:50:46 +00:00
Marcus Boerger 15d89ffd28 - Reflection was moved to its own extension 2005-11-17 23:43:53 +00:00
Marcus Boerger 5a0cf29863 - Need to define HAVE_REFLECTION 2005-11-17 23:21:15 +00:00
Marcus Boerger 75329fe178 - Reflection was moved into its own extension 2005-11-17 23:20:39 +00:00
Marcus Boerger a40a48fbd4 - Move Reflection into its own extension 2005-11-17 22:59:39 +00:00
Marcus Boerger 0be9760a60 - reflection not reflectino 2005-11-17 22:49:03 +00:00
Marcus Boerger 3d6e4e85b3 - Make this an extension 2005-11-17 22:42:00 +00:00
Rasmus Lerdorf b312256f08 MFB: missing }}} 2005-11-17 21:57:30 +00:00
Ilia Alshanetsky e919694017 MFB51: Moved date constants into the date class, they all class constants
now.
2005-11-17 21:07:27 +00:00
Ilia Alshanetsky bb94f372cb Hopefully resolve all the Apache 2 sub-request problems on non-linux systems. 2005-11-17 20:56:09 +00:00
Sara Golemon f005e298a0 Bugfix #32371 php://input sometimes returns duplicate data 2005-11-17 19:39:39 +00:00
Antony Dovgal 510f40c3bc make GCC happy and suppress the warning 2005-11-17 19:20:14 +00:00
Ilia Alshanetsky 47414c4204 MFB51: fixed test 2005-11-17 18:25:48 +00:00
Ilia Alshanetsky f5608e0798 MFB51: Fixed bug #35248 (sqlite_query() doesnt set error_msg when return
value is being used).
2005-11-17 14:40:11 +00:00
Antony Dovgal a5e2f63d68 fix #35079 (stream_set_blocking(true) toggles, not enables blocking)
patch by askalski at gmail dot com
2005-11-17 14:19:06 +00:00
Derick Rethans 13373c5f9d - MF51: Fixed bug #35218 (strtotime no longer ignores timezone comments like (PST)). 2005-11-17 13:15:01 +00:00
foobar 7b7b6c20a6 - Renamed config.m4 to config0.m4
# PCRE configure tests must be run before e.g. ext/filter
2005-11-17 10:01:47 +00:00
foobar dca23aa9cf fix typo 2005-11-17 09:56:28 +00:00
foobar 1399d605df - Moved the files from resource to one level down.
# This makes the gcov thing actually work :)
2005-11-17 09:52:35 +00:00
foobar 58d21892e1 - Fix compile failure when ext/readline is compiled as shared 2005-11-17 08:36:12 +00:00
Dmitry Stogov 97190ee606 Removed support for continue and break operators with non-constant operands 2005-11-17 08:27:25 +00:00
8b9855a687 ChangeLog update 2005-11-17 06:54:18 +00:00
foobar 1c41c53e39 - Filters may behave differently with empty string so pass it on 2005-11-17 00:49:48 +00:00
foobar f8667e1809 - Add simple test for filter_data() basic filters 2005-11-17 00:48:51 +00:00
Ilia Alshanetsky b05d189cc0 MFB51: Allow zend_parse_parameters to handle non-well formed integers, but
raise E_NOTICE in the process.
2005-11-17 00:20:31 +00:00
foobar 2f42d7df03 - Fix PECL bug #5963 2005-11-17 00:03:03 +00:00
foobar 1d086bd268 - Fix build in PECL mode and in PHP core 2005-11-16 23:18:16 +00:00
foobar 1044416541 - Fix build problems with pecl/filter/ 2005-11-16 22:14:24 +00:00
foobar 771c47831f - Missing .cvsignore 2005-11-16 16:17:40 +00:00
Dmitry Stogov 8373809e2e Fixed bug #35239 (Objects can lose references) 2005-11-16 11:52:53 +00:00
Dmitry Stogov 376d30f441 Fixed bug #35229 (call_user_func() crashes when arguement_stack is nearly full) 2005-11-16 09:43:56 +00:00
30e3bbdb0b ChangeLog update 2005-11-16 06:44:57 +00:00
Marcus Boerger 18f53efca5 - Add new test 2005-11-15 21:32:54 +00:00
foobar 7d588a5b40 remove old news 2005-11-15 16:50:32 +00:00
Dmitry Stogov 0220a8318c Allow "null" default value for arguments with array type hint
Unicode support
2005-11-15 16:50:07 +00:00
Pierre Joye 29a04a28ef - switch to bsd license
- prepare 2.0.1
2005-11-15 15:36:29 +00:00
Ilia Alshanetsky 4ded4455eb MFB51: Fixed memory leak on php-cli -h 2005-11-15 15:30:41 +00:00
Dmitry Stogov 8bb39e7dba Allow recursive calls to __get/__set for different properties 2005-11-15 15:21:47 +00:00
Ilia Alshanetsky dffc74c54e Allow recursive calls to __get/__set for different properties 2005-11-15 14:57:42 +00:00
Antony Dovgal 21aeacfa9d call zend_objects_destroy_object() explicitly
fix segfault when intern->time is NULL
2005-11-15 14:07:43 +00:00
foobar 29c580f138 fix warning 2005-11-15 13:43:57 +00:00
Dmitry Stogov c4f93961b5 Fixed call to __destruct() for objects of classes delivered from internal ones those use zend_objects_store_put(obj, NULL, ... 2005-11-15 12:39:54 +00:00
foobar 0907893b2b - Prepare for including in PHP core 2005-11-15 11:55:28 +00:00
Dmitry Stogov 1f98519ac4 Fixed bug #35176 (include()/require()/*_once() produce wrong error messages about main()) 2005-11-15 11:14:34 +00:00
534f76d4ec ChangeLog update 2005-11-15 06:41:53 +00:00
Ilia Alshanetsky 5fd55abd66 Fixed possible crash in http:// wrapper. 2005-11-15 04:24:17 +00:00
Frank M. Kromann 0eaec9871c MFB: Change max_procs from 25 to library default. This will make FreeTDS connections work a bit better 2005-11-14 23:14:54 +00:00
Antony Dovgal e658842761 fix #35197 (Destructor is not called) and similar issues in other extensions 2005-11-14 21:52:27 +00:00
641bb46969 ChangeLog update 2005-11-14 06:41:03 +00:00
da02f71894 ChangeLog update 2005-11-13 06:45:19 +00:00
Derick Rethans 574a210973 - Fixed protos. 2005-11-12 14:56:35 +00:00
Andrei Zmievski 87e782644b Grr. Re-re-fix the fix. 2005-11-12 11:11:53 +00:00
cea2b0e867 ChangeLog update 2005-11-12 06:41:04 +00:00
foobar a05a33f34d - Fix the "php -v" output when neither --enable-debug or --enable-gcov
is used.
#
# Rasmus, now it should give proper output, please test.
2005-11-12 00:38:00 +00:00
Andrei Zmievski 0593d4a41d Re-fix Marcus's fix. 2005-11-11 17:34:16 +00:00
Marcus Boerger e556247281 - Use the const instead of hard coding 2005-11-11 16:51:24 +00:00
Marcus Boerger 802fa95416 - Fix build 2005-11-11 16:50:08 +00:00
80390b0122 ChangeLog update 2005-11-11 06:42:02 +00:00
foobar 173fcb5e16 - Added note about --enable-gcov being strictly for developers only! 2005-11-10 08:06:08 +00:00
foobar 9b7a28e9a2 fix configure help 2005-11-10 08:04:57 +00:00
foobar 3e1bb4edf3 - Fixed bug #35179 (tokenizer extension needs T_HALT_COMPILER) 2005-11-10 07:49:40 +00:00
ccb6e91baf ChangeLog update 2005-11-10 06:44:26 +00:00
foobar 9d766b59b2 - Fix the ccache detection. 2005-11-09 19:55:25 +00:00
18267e2f7f ChangeLog update 2005-11-09 06:51:38 +00:00
foobar b60b2ed349 Cleanup the code coverage files 2005-11-09 05:41:09 +00:00
foobar 2cf0ce2925 - Change paths to be relative
#
# Derick, don't forget to move the .re file into this same directory!
#
# This was the 2nd last piece of making the code-coverage thing to work
# properly with VPATH builds. Once Derick moves the parse_date.re
# in the same directory where the generated file lives, it's done.
#
# Just copying it by hand in your sources in the meantime and doing
# "./configure --enable-gcov && make lcov" will produce data in lcov_html/
#
2005-11-08 22:45:55 +00:00
foobar cf69b66c13 - Moved gen_php_cov functionality into the Makefile. Doing 'make lcov'
will run the test suite and create the code coverage HTML files.
# no need for some hairy checks whether PHP has the support
# since the lcov target will not exist if it doesn't :)
2005-11-08 20:27:08 +00:00
foobar 72fd0627eb nuke #line directives. 2005-11-08 20:25:11 +00:00
foobar b947d6b0d3 More files to have #line directives stripped for release 2005-11-08 20:21:35 +00:00
foobar 2434baffdb - Fix #line paths 2005-11-08 20:12:09 +00:00
foobar ee7f3b47d4 - Fixed --enable-gcov to work with VPATH builds too 2005-11-08 16:43:09 +00:00
foobar a2bd750581 - Make sure parse_date.c is free of #line directives in releases 2005-11-08 15:54:20 +00:00
foobar 3392f566c3 - Use the source file as output filename instead of stdout 2005-11-08 12:35:01 +00:00
foobar 4352fa69d4 - use the target file name as output file instead of stdout 2005-11-08 12:34:16 +00:00
Dmitry Stogov 84bcd9ac96 Fixed bug #35142 (SOAP Client/Server Complex Object Support) 2005-11-08 08:36:50 +00:00
158e80bed4 ChangeLog update 2005-11-08 06:44:26 +00:00
foobar 2d9c625cf1 - Make sure the generated files have relative paths in the #line directives 2005-11-08 00:02:50 +00:00
Marcus Boerger c1869299c7 - heredoc handling in -a mode 2005-11-07 19:12:37 +00:00
Marcus Boerger 66a9b0b6ae - Fix Bug #32223 weird behaviour of pg_last_notice 2005-11-07 12:56:23 +00:00
Dmitry Stogov 32fe5f2c3b Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension is compiled as shared) 2005-11-07 12:24:20 +00:00
Dmitry Stogov 4e744e2b42 Fixed bug #35091 (SoapClient leaks memory) 2005-11-07 10:07:55 +00:00
f797d89878 ChangeLog update 2005-11-07 06:58:18 +00:00
foobar 0977376369 - Do the LTP thing properly 2005-11-06 22:44:05 +00:00
foobar e4c8e1dc85 - Fixed minor memory leak triggered by: -dzlib.output_compression=1 -m 2005-11-06 22:41:51 +00:00
foobar 8c633a099f - Revert bad patch. This is wrong way to handle leak in "php -m" 2005-11-06 22:07:12 +00:00
Marcus Boerger f53de944df - MFB Add tests 2005-11-06 12:27:11 +00:00
Marcus Boerger 1626dba133 -MFB Fix parameter parsing 2005-11-06 12:01:42 +00:00
Derick Rethans dba96fb9e4 - E_STRICT is not part of E_ALL, so the lines were wrong here. 2005-11-06 11:08:50 +00:00
Marcus Boerger ff72c376c2 - MFB Fix tests expectations 2005-11-06 10:53:39 +00:00
4c788e7703 ChangeLog update 2005-11-06 06:44:24 +00:00
Rasmus Lerdorf 65bb007a3e MFB - This isn't a DOM thing anymore, just libxml 2005-11-05 22:41:09 +00:00
Rasmus Lerdorf f16fb8484d MFB - We don't need the simplexml requirement here anymore 2005-11-05 22:32:55 +00:00
Ilia Alshanetsky c4ee761db1 MFB51: Fixed bug #31971 (ftp_login fails on some SSL servers) 2005-11-05 22:02:40 +00:00
2a121811b8 ChangeLog update 2005-11-05 06:44:56 +00:00
Rui Hirokawa 02e44183bb fixed garbled multibyte characters. 2005-11-05 04:47:29 +00:00
22ae5cdfd0 ChangeLog update 2005-11-04 06:46:21 +00:00
Marcus Boerger ce939c2cc5 - Add missing check flag 2005-11-03 22:04:35 +00:00
Marcus Boerger e2ea55ccbe - Tray fixing #35088 2005-11-03 21:58:42 +00:00
Marcus Boerger 3243167b45 - Add missing check 2005-11-03 21:28:16 +00:00
foobar 6352110b7f - Fixed bug #35078 (configure does not find ldap_start_tls_s) 2005-11-03 20:41:05 +00:00
Michael Wallner 36d3c24c6e - MFB44: #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer
parameter on Windows)
2005-11-03 15:01:31 +00:00
2b9167e089 ChangeLog update 2005-11-03 06:46:29 +00:00
foobar 0c2f3ea24e - Fix bad usage of php_checkuid() 2005-11-02 21:26:08 +00:00
Derick Rethans 9d0664976f - Fixed posix_mknod() checks and warnings. 2005-11-02 15:50:06 +00:00
Michael Wallner ab95f1981c - sapi_header_op(SAPI_HEADER_(REPLACE|ADD), {NULL, 0, 0}) caused HTTP response splitting
- sapi_send_headers() already takes care of default_content_type (left over of fix for bug #29983)
2005-11-02 14:27:02 +00:00
971bebd6e3 ChangeLog update 2005-11-02 06:44:42 +00:00
Rob Richards 8de7ff8c91 optimize sxe_add_registered_namespaces
add only first encountered prefixes to namespace arrays
update test
2005-11-01 23:21:29 +00:00
Ilia Alshanetsky c1a09f6399 MFB51: Fixed minor memory leak triggered by: -dzlib.output_compression=1 -m 2005-11-01 23:02:52 +00:00
foobar aeb5830c20 MFB: fixed test 2005-11-01 22:42:03 +00:00
Marcus Boerger 8088087b0b - Update docu 2005-11-01 21:46:33 +00:00
Marcus Boerger d73184b6ba - The iterator base interface is Traversable not IteratorAggregate 2005-11-01 21:17:51 +00:00
Marcus Boerger 169411d040 - Get rid of several wanrings 2005-11-01 20:41:59 +00:00
Frank M. Kromann cb34f4e3d3 Fix #35037. Selecting a uniqueidentifier would return unknown data type when used with freetds. 2005-11-01 18:14:52 +00:00
foobar 60084a7507 *** empty log message *** 2005-11-01 17:04:29 +00:00
Marcus Boerger 35d80e39d2 - Allow to recive derived SplFileInfo/SplFileObject instances 2005-11-01 16:54:44 +00:00
Marcus Boerger 00d5138e93 - Allow parameter parsing implementation raise an error early where more
information is available. And add ability to prevent double errors by
  returning "".
- Implement parameter parsing C which checks for a class name, if the value
  on input is not NULL then the pointer must be the zend_class_entry of the
  required base class.
# Do the KISS approach, looking at the code it isn't that easy does it?
2005-11-01 16:53:29 +00:00
foobar f57932aee0 MFB51: nuke typo 2005-11-01 16:22:04 +00:00
foobar bd7f131a41 - Hiding bugs is not the purpose of the regression tests. 2005-11-01 14:36:13 +00:00
Sebastian Bergmann 5d671dd4b2 Add an additional field $frame['object'] to the result array of debug_backtrace() that contains a reference to the respective object when the frame was called from an object. This revised patch has been reviewed by Dmitry and Zeev. 2005-11-01 13:18:34 +00:00
Marcus Boerger 78456eb9a2 - Test no namespace case, too 2005-11-01 11:55:13 +00:00
Marcus Boerger 9956744821 - Handle default namespaces
# Another time it shows xml is far from being simple
2005-11-01 11:53:14 +00:00
Marcus Boerger 2e67d648fc - WS: Make function detection work in my editor 2005-11-01 11:12:27 +00:00
Dmitry Stogov d846b5382d Fixed SIGSEGV 2005-11-01 11:11:19 +00:00
Sebastian Bergmann e094954bd1 Allow bison 2.1. 2005-11-01 10:31:15 +00:00
Sebastian Bergmann 621c6fb266 Revert. 2005-11-01 07:20:54 +00:00
35d4f32c84 ChangeLog update 2005-11-01 06:48:05 +00:00
Brian France 3130689708 MFB: Fixed phpize build (default PHP_OPENSSL to no if not set) 2005-11-01 00:46:44 +00:00
Ilia Alshanetsky b8665d4169 MFB51: Additional open_basedir/safe_mode checks. 2005-10-31 23:45:50 +00:00
Marcus Boerger 15f4a227e0 - Make SimpleXMLIterator implement Countable 2005-10-31 20:29:34 +00:00
Marcus Boerger 6b4a4afe8c - Implement count interface 2005-10-31 20:06:28 +00:00
Rob Richards 9c982bb62c check node type before accessing ns - prevent corruption under compact mode 2005-10-31 19:51:40 +00:00
Marcus Boerger 1b7db10076 - We don't need those 2005-10-31 19:47:00 +00:00
Dmitry Stogov 372d59b648 Fixed bug #35017 (Exception thrown in error handler may cause unexpected behavior) 2005-10-31 19:29:48 +00:00
Marcus Boerger 2aadbbfca6 - Add functions to check for registered/in use namespaces 2005-10-31 19:09:13 +00:00
cad0ffbc99 ChangeLog update 2005-10-31 06:47:46 +00:00
Marcus Boerger cd5a60d36d - Fix memleaks 2005-10-30 22:55:21 +00:00
Marcus Boerger a415bcc5d9 - Bugfix #35028 XML object fails FALSE test 2005-10-30 20:37:22 +00:00
Ilia Alshanetsky 2eed561d10 MFB51: Improve iconv skip conditions 2005-10-30 18:08:17 +00:00
Ilia Alshanetsky 61c8e857e4 MFB51: Fixed bug #35022, #35019 (Regression in the behavior of key/current
functions).
2005-10-30 18:04:20 +00:00
Marcus Boerger 7c25bdfe67 - Fix mode handling 2005-10-30 17:17:44 +00:00
Marcus Boerger f93d64e8ce - Add docu 2005-10-30 16:07:29 +00:00
Marcus Boerger 82aa412cf8 - Fix unicode expectations 2005-10-30 14:00:45 +00:00
Ilia Alshanetsky 1321658d91 MFB51: Fixed bug #35014 (array_product() always returns 0). 2005-10-30 13:46:34 +00:00
Marcus Boerger e1ce1262ce - Add new test 2005-10-30 13:01:01 +00:00
322fe69078 ChangeLog update 2005-10-30 06:38:30 +00:00
1c8e0d6662 ChangeLog update 2005-10-30 05:43:38 +00:00
Marcus Boerger b4ad6bbc82 - Protect against some edge case that is currently imossible, but will be 2005-10-30 00:38:39 +00:00
Marcus Boerger 378d5b764f - Simplify & speedup, once more 2005-10-30 00:35:55 +00:00
Marcus Boerger b5c08eab91 - Simplify & speedup 2005-10-30 00:20:35 +00:00
Marcus Boerger 29be6e9b51 - Fix attribute handling when using xpath expressions that lead to attributes 2005-10-29 21:16:17 +00:00
Marcus Boerger 5303f42825 - Use var_dump() and fix test expectations 2005-10-29 21:01:03 +00:00
Marcus Boerger bf0f844521 - Add new example 2005-10-29 20:38:30 +00:00
Marcus Boerger a5a9cd2f0f - Attribues don't have children 2005-10-29 20:37:59 +00:00
Marcus Boerger 9ee8a78cef - Add new example 2005-10-29 16:38:49 +00:00
Marcus Boerger b4762f13f1 - Change var_dump to include all that is reachable, incl. @attributes
- Adapt tests and add new one
2005-10-29 16:12:57 +00:00
Marcus Boerger 7ae517c131 - It's better to use our own strtol here 2005-10-29 15:49:28 +00:00
Marcus Boerger bdb7ff4c2e - Increase buffer for 64 bit systems 2005-10-29 15:48:14 +00:00
Marcus Boerger dd702a23dc - Fix stupid unicode warnings 2005-10-29 15:44:37 +00:00
Marcus Boerger 5c4d1edef3 - Add AppendIterator::getIteratorIndex
- Add AppendIterator::getArrayIterator
2005-10-29 15:37:57 +00:00
Marcus Boerger feafd25b0d - Add class SplTempFileObject 2005-10-29 15:15:22 +00:00
Marcus Boerger 86cbff9538 - Allow to specify ma memory usage for temp stream 2005-10-29 15:09:12 +00:00
Marcus Boerger 6e70cdabad - Register temp and memory stream here 2005-10-29 14:29:59 +00:00
Marcus Boerger ef3b427e5c - Fix PECL Bug #5772; FETCH_FUNC broken for mixed case function names
# Mhhh, now wez and me did it in different branches only because i forgot
# to commit and MFH too
2005-10-29 11:10:34 +00:00
6b20d46781 ChangeLog update 2005-10-29 05:40:50 +00:00
Sebastian Bergmann 805cc1d659 Add an additional field $frame['object'] to the result array of debug_backtrace() that contains a reference to the respective object when the frame was called from an object. Patch has been reviewed by Andi, Zeev, and Marcus. I will coordinate with Ilia on merging it to the PHP_5_1 branch after PHP 5.1.0 has been released. 2005-10-28 20:08:25 +00:00
Frank M. Kromann 82c00c179d Make sure haystack_len is initialized before it's used 2005-10-28 19:29:29 +00:00
Frank M. Kromann 8fc3fd1d7a Adding missing function declarations to fix win32 build 2005-10-28 19:21:46 +00:00
Antony Dovgal 04ebdfa967 fix #35003 (Warning: PDOStatement::fetch(): column 0 data was too large for buffer and was)
this is just a quick fix, the real one will follow after the weekend from Wez
2005-10-28 15:01:47 +00:00
Dmitry Stogov 0fe9266d9e Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms) 2005-10-28 14:44:41 +00:00
Dmitry Stogov 05bd788e23 Fixed bug #34879 (str_replace, array_map corrupt negative array indexes) 2005-10-28 13:48:15 +00:00
Dmitry Stogov 6ca72e6ea5 Fixed bug #34982 (array_walk_recursive() modifies elements outside function scope) 2005-10-28 10:06:53 +00:00
Dmitry Stogov 44e9370026 Fixed bug #34982 (array_walk_recursive() modifies elements outside function scope) 2005-10-28 09:57:50 +00:00
Dmitry Stogov 9cb1032718 Fixed bug #34725 (CLI segmentation faults during cleanup in ZTS if ext/pcre is DSO) 2005-10-28 08:31:01 +00:00
Dmitry Stogov 2b5cd0e756 Unicode support 2005-10-28 08:07:17 +00:00
Dmitry Stogov 3c166ac947 Fixed test (unicode support) 2005-10-28 07:31:21 +00:00
Dmitry Stogov 3c6c6d2a9a $id:$ tatgs are removed from generated files to avoid committing of Zend/zend_vm_opcodes.h without real changes. 2005-10-28 06:05:41 +00:00
cefc6bb11b ChangeLog update 2005-10-28 05:42:07 +00:00
Rob Richards a953be4fff fix crash setting attr from foreign doc (throws exception)
add test
2005-10-27 23:49:38 +00:00
Antony Dovgal 4329fff15f forgot to commit new pdo_attr_ function 2005-10-27 19:38:36 +00:00
Dmitry Stogov 804e3b4f5b Fixed SIGSEGV 2005-10-27 19:25:07 +00:00
Antony Dovgal a22b830c9c add MySQL options and corresponding constants 2005-10-27 17:33:43 +00:00
Antony Dovgal 7038c647e1 - free S->stmt
- return correct value from the cursor_closer
- make sure S->stmt is NULL'ed
2005-10-27 17:25:31 +00:00
Ilia Alshanetsky cbeef6084b MFB51: Fixed memory leak on error 2005-10-27 14:14:33 +00:00
Pierre Joye 0a160d3459 - MFB #34980, divisor and offset never passed correctly (s/float/double/) 2005-10-27 11:07:39 +00:00
Derick Rethans 19c7917e35 - Update package files. 2005-10-27 09:36:26 +00:00
Derick Rethans 50e247999d - Fixed a crash when a non-array option was passed in combination with the
callback filter.
2005-10-27 09:27:34 +00:00
e90bbb8640 ChangeLog update 2005-10-27 05:38:05 +00:00
Dan Scott 0a7164c970 Add test for PDO::ATTR_CASE. 2005-10-26 23:46:52 +00:00
Antony Dovgal 5c5e74581b make compilers happy 2005-10-26 22:46:51 +00:00
Antony Dovgal 5f7baf7312 fix #34996 (ImageTrueColorToPalette() crashes when ncolors is zero) 2005-10-26 21:35:56 +00:00
Antony Dovgal 21b1f3279b Unicode related patchset
fixes two problems:
- wrong offset counting and ..
- OCI_NEED_DATA error when reading unicode CLOBs (fixes PECL bug #5719)
2005-10-26 18:52:00 +00:00
Ilia Alshanetsky 14082e0e09 MFB51: Additional tweaks to the patch for bug #34249. 2005-10-26 15:08:42 +00:00
Derick Rethans 04d1624be9 - Make it compile when inside the PHP source tree. 2005-10-26 15:05:22 +00:00
Derick Rethans 35a0866735 - Allow settable default flags for the filters. 2005-10-26 14:37:08 +00:00
Antony Dovgal 0fb9af4eac fix #34977 (Compile failure on MacOSX due to use of varargs.h) 2005-10-26 13:49:19 +00:00
Derick Rethans bcf6e4057a - Update package.xml files. 2005-10-26 13:23:16 +00:00
Derick Rethans a3997030fa - Implemented this like the comment says, otherwise it will ofcourse modify
both instances of this variable name...
2005-10-26 13:20:52 +00:00
foobar f2e946c79c Fix configure 2005-10-26 11:33:17 +00:00
foobar 4d9e40f8dd Fix indent 2005-10-26 11:33:05 +00:00
Dan Scott 52f9772049 Correct non-standard SQL. Standard SQL would define "DEFAULT NULL" -- but
that is the default value if the DEFAULT clause is omitted anyways.
2005-10-26 08:32:25 +00:00
Derick Rethans c07f4ff8b6 - More ZTS fixes. 2005-10-26 07:56:16 +00:00
Derick Rethans 9f28be05e3 - Fixed ZTS mode
- Added input_name_to_filter() function.
2005-10-26 07:48:51 +00:00
810520b20b ChangeLog update 2005-10-26 05:40:59 +00:00
Marcus Boerger ff5ae1d0de - Make the code a bit clearer 2005-10-25 23:11:26 +00:00
Marcus Boerger 9b584a1499 - api was changed, also we are here in api 3.*, not 2 anymore 2005-10-25 19:42:55 +00:00
Marcus Boerger 578f36cc4a - zend_is_callable_ex() was changed 2005-10-25 19:38:49 +00:00
Marcus Boerger c72d91afd7 - Make zend_is_callable_ex() return the class netry if available 2005-10-25 19:38:09 +00:00
Michael Wallner c8fd741ef0 fix bug #34965 tidy is not binary safe 2005-10-25 17:57:30 +00:00
Antony Dovgal aad3dcd493 use correct enum type for the arg 2005-10-25 16:03:11 +00:00
Ilia Alshanetsky 85aaa8e388 Fixed bug #34968 (bz2 extension fails on to build on some win32 setups). 2005-10-25 15:52:08 +00:00
Michael Wallner 3fa81199ad - fix the fix 2005-10-25 15:35:22 +00:00
Michael Wallner b680d05c8e - add test case too 2005-10-25 15:17:11 +00:00
Michael Wallner a31744ee55 - fix bug #34821 zlib encoders fail on widely varying binary data on windows 2005-10-25 15:13:55 +00:00
Antony Dovgal a80a5b8cda apply workaround for the leak only when GLIBC is used 2005-10-25 14:56:48 +00:00
Michael Wallner 6cb40d4c48 - thread safe SSL crypto locks, fixes bug #33760 2005-10-25 14:29:07 +00:00
Ilia Alshanetsky 21f852eeb2 MFB51: Do not run tests if iconv extension is unavailable. 2005-10-25 14:23:22 +00:00
Antony Dovgal e90fd61a77 fix problem with garbage appearing in hostnames 2005-10-25 08:19:11 +00:00
Derick Rethans bc6dba17e4 - Fixed segfault in case an empty parameter was passed. 2005-10-25 07:54:13 +00:00
91abf74e88 ChangeLog update 2005-10-25 05:47:13 +00:00
foobar c87c580e4e fix build 2005-10-24 22:45:54 +00:00
Antony Dovgal b7267ff12b fix #34970 (ldap configuration issues) 2005-10-24 20:24:05 +00:00
Rolland Santimano 654da3c826 - strip_tags(), str[c]spn(), strpbrk(), strrchr(), strrpos(), strtok() 2005-10-24 14:51:17 +00:00
Rolland Santimano 37d12b82b3 - Unicode impl of strrchr() 2005-10-24 14:35:02 +00:00
Dmitry Stogov 3cad8e2fb4 Fixed bug #34950 (Unable to get WSDL through proxy) 2005-10-24 07:43:48 +00:00
Dmitry Stogov d464599515 Unicode support (bug #31341) 2005-10-24 07:17:16 +00:00
Dmitry Stogov 47893ed920 Reverted fix for bug #34934. The bug marked as bogus. 2005-10-24 07:01:43 +00:00
40e866b25e ChangeLog update 2005-10-24 05:39:02 +00:00
Marcus Boerger f7459bad30 - Fix issue with entities in attributes 2005-10-23 23:41:20 +00:00
Marcus Boerger d78da85370 - Add new test 2005-10-23 23:25:46 +00:00
Antony Dovgal 85e1d03261 fix #34938 (dns_get_record() doesn't resolve long hostnames and leaks) 2005-10-23 18:31:36 +00:00
Ilia Alshanetsky 6a271cc9c9 MFB51: Fixed memory leak on error. 2005-10-23 15:29:38 +00:00
28bf1e93f4 ChangeLog update 2005-10-23 05:43:21 +00:00
Wez Furlong 58f42f04ad merge VCWD_ACCESS bugfix to head.
Test suite is unusable in HEAD, so I guess it works here too.
2005-10-22 17:26:16 +00:00
Rolland Santimano a948324778 - php_u_stristr: Remove leading back-slash ... sheesh 2005-10-22 13:36:55 +00:00
Rolland Santimano 68487a234e - php_u_stristr: s/codepts/codepoints/ - make Jani happy 2005-10-22 13:32:51 +00:00
Rolland Santimano 03b7fe7666 - Unicode impl of strpbrk() 2005-10-22 13:25:00 +00:00
Rolland Santimano c36ac8de3d - php_u_stristr: Code comments 2005-10-22 05:52:53 +00:00
bc35d8c56c ChangeLog update 2005-10-22 05:39:36 +00:00
Marcus Boerger 581d856af7 - Do not include because of implementing an interface if parent implements
the interface already
2005-10-21 23:42:56 +00:00
Antony Dovgal aff2ed53ca fix ws 2005-10-21 15:54:46 +00:00
Dmitry Stogov 02090106d8 Fixed bug #34934 (offsetExists is not called from array_key_exists) 2005-10-21 15:20:30 +00:00
Antony Dovgal d6f6d9f840 fix possible crash in dns_get_record()
cleanup code a bit
(partly fixes #34938)
2005-10-21 13:48:07 +00:00
Dmitry Stogov de047ae0a5 Fixed bug #31341 (escape on curly inconsistent) 2005-10-21 13:22:10 +00:00
Dmitry Stogov 45699741e1 Fixed fgetcsv() and fputcsv() inconsistency. 2005-10-21 12:14:11 +00:00
Dmitry Stogov 5fd04023dc Fixed bug #34782 (token_get_all() gives wrong result) 2005-10-21 09:33:04 +00:00
Dmitry Stogov 6ef4239827 Fixed bug #29268 (__autoload() not called with Reflection->getClass()) 2005-10-21 08:03:39 +00:00
de96385160 ChangeLog update 2005-10-21 05:42:08 +00:00
foobar 8918f84242 Proper news 2005-10-20 19:35:14 +00:00
Rolland Santimano 5ca019aad3 - Unicode impl of stristr() 2005-10-20 19:25:54 +00:00
Ilia Alshanetsky 37015ffcfa MFB51: Fixed tests to work with ZTS builds 2005-10-20 19:22:55 +00:00
Antony Dovgal 5feaae6a4c use proper constants 2005-10-20 16:54:19 +00:00
Antony Dovgal 0bd9c3d109 use constants instead of their values 2005-10-20 16:50:43 +00:00
Antony Dovgal fc834fef2f copy/paste typo 2005-10-20 16:46:44 +00:00
Ilia Alshanetsky cc918f8c69 Fixed test for cygwin installs 2005-10-20 14:42:36 +00:00
Dmitry Stogov 81b506bdd0 Removed unnecesary local variable 2005-10-20 11:31:59 +00:00
Dmitry Stogov 5372281b01 Fixed bug #34893 (PHP5.1 overloading, Cannot access private property) 2005-10-20 09:47:31 +00:00
Dmitry Stogov 0fe08e9b67 Fixed bug #34712 (zend.ze1_compatibility_mode = on segfault) 2005-10-20 08:56:02 +00:00
Dmitry Stogov 22130a2b74 Fixed bug #34767 (Zend Engine 1 Compatibility not copying objects correctly) 2005-10-20 08:15:13 +00:00
Dmitry Stogov 2507a54429 Fixed bug #31177 (menory leaks and corruption because of incorrect refcounting) 2005-10-20 07:23:58 +00:00
Dmitry Stogov 05975d1457 Added forgotten tests 2005-10-20 07:03:45 +00:00
1bc48cc521 ChangeLog update 2005-10-20 05:34:50 +00:00
John Coggeshall 5259aa2943 Implementing C-level Code coverage (--enable-gcov).
o Requires LTP 1.4+ and libgcov
2005-10-20 00:18:23 +00:00
Ilia Alshanetsky 222fa05e1c Fixed -m memory leak 2005-10-19 21:57:35 +00:00
Derick Rethans d095243b99 - MF51: Fixed bug #34874 and #33546 (Problems with lone daynames). 2005-10-19 21:11:15 +00:00
Ilia Alshanetsky 50686f4d7c Fixed bug #29983 (PHP does not explicitly set mime type & charset). 2005-10-19 20:30:38 +00:00
Rolland Santimano 8ed78ae796 - Unicode impl of str[c]spn() 2005-10-19 19:10:13 +00:00
Ilia Alshanetsky d0f62c960f Fixed bug #34623 (Crash in pdo_mysql on longtext fields). 2005-10-19 14:11:25 +00:00
Ilia Alshanetsky 087145d953 Change E_ERROR to E_WARNING when more_entropy flag is off on Cygwin. 2005-10-19 13:41:36 +00:00
Dmitry Stogov 9e9cee5c9d Fixed test 2005-10-19 12:48:07 +00:00
foobar 972a29d93c - Fixed error messages and tests 2005-10-19 11:18:16 +00:00
Antony Dovgal 4aaf47e7bc remove undef HAVE_OCI_STMT_PREPARE2 2005-10-19 09:11:22 +00:00
Dmitry Stogov 050d36d8af Fixed memory leak in ZTS mode 2005-10-19 07:55:05 +00:00
Derick Rethans ff43c2eea5 - Improve error messages a bit. 2005-10-19 07:21:35 +00:00
87a5b40d28 ChangeLog update 2005-10-19 05:43:51 +00:00
Antony Dovgal 65e6b4fafa initialize SG(request_info).auth_digest to NULL and prevent segfaults 2005-10-18 23:51:36 +00:00
Ilia Alshanetsky cddb5c624a Fixed bug #34905 (Digest authentication does not work with Apache 1). 2005-10-18 23:14:47 +00:00
Ilia Alshanetsky 090ef86983 Do not set authorizer unless safe_mode or open_basedir are being used. 2005-10-18 22:50:43 +00:00
Antony Dovgal f1272dee51 nuke unused var and silence warnings 2005-10-18 14:50:20 +00:00
Ilia Alshanetsky 8f6a90297a MFB51: Fixed bug #34899 (Fixed sqlite extension compile failure). 2005-10-18 14:34:00 +00:00
Antony Dovgal 096cb8c2de use php_error_docref() instead of php_error() everywhere 2005-10-18 13:51:20 +00:00
Antony Dovgal 00ee8a036c typo 2005-10-18 13:39:51 +00:00
Derick Rethans 9e6588d6f0 - Allow mime_content_type() to work with even a slightly broken mime magic
file.
2005-10-18 13:02:11 +00:00
Antony Dovgal 37bc8289b9 fix mime_magic problems with ZTS 2005-10-18 12:41:13 +00:00
Antony Dovgal 5561b8a9ab fix bug #34902 (mysqli::character_set_name() - undefined method) 2005-10-18 10:01:08 +00:00
8e86d3ce2b ChangeLog update 2005-10-18 05:36:34 +00:00
Dan Scott 887901c35c Apply patch for #34900, sight unseen. 2005-10-18 01:01:32 +00:00
Rolland Santimano a9ce7d32e4 - Unicode impl of stripos() 2005-10-17 19:50:13 +00:00
Rob Richards 176e782079 only need context set once 2005-10-17 19:47:23 +00:00
Rolland Santimano b277b1d1c0 - Unicode impl of strrpos() 2005-10-17 17:07:44 +00:00
Ilia Alshanetsky b154fa6e7c Properly fixed bug #34456 (original patch completely reverted). 2005-10-17 15:29:55 +00:00
Derick Rethans 194e2dd081 - MF51: Fixed bug #29361 (var_export() producing invalid code). 2005-10-17 15:03:12 +00:00
Ilia Alshanetsky ee5282ad63 Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case is
being used).
2005-10-17 14:29:20 +00:00
Dmitry Stogov bc446eec5b Fixed bug #34873 (Segmentation Fault on foreach in object) 2005-10-17 08:01:07 +00:00
Derick Rethans 086875b107 - Make sure that typehints for classes can only accept "= NULL" as default
value.
2005-10-17 07:03:33 +00:00
60eff57dda ChangeLog update 2005-10-17 05:45:46 +00:00
Ilia Alshanetsky 21979641ca Further URL validations in safe_mode/open_basedir configs. 2005-10-17 02:42:17 +00:00
foobar 0465f487a4 - Silence unnecessary output 2005-10-16 20:41:02 +00:00
Marcus Boerger c49a1999cb - Add ability to access private properties of base classes
- Add ability to specify fully qualified name for properties
- ReflectionClass::getInterfaces89 now returns associative array
2005-10-16 16:13:55 +00:00
9ef2886e63 ChangeLog update 2005-10-16 05:47:08 +00:00
Derick Rethans df0184f25a - MF51: Fixed timezone guessing on Windows. 2005-10-15 18:14:40 +00:00
Derick Rethans 1f5660526a - MF51: Updated timezone database to version 2005.14. 2005-10-15 18:14:11 +00:00
Derick Rethans a1527fdaf3 - Changed type hints so that they take "= NULL" as default value. 2005-10-15 12:54:19 +00:00
Derick Rethans a923f3d6f0 - Fixed folding markers. 2005-10-15 12:50:20 +00:00
7c1e029f34 ChangeLog update 2005-10-15 05:36:00 +00:00
Antony Dovgal cc85fdf510 add test for bug #34873 2005-10-14 21:50:46 +00:00
Ilia Alshanetsky 0ec88c52cd MFB51: ZTS fix 2005-10-14 15:38:56 +00:00
b513f306d0 ChangeLog update 2005-10-14 05:45:27 +00:00
Ilia Alshanetsky 1c8c3c063b Fixed test failure 2005-10-13 21:26:08 +00:00
Rob Richards 5abf267c11 move constants to class 2005-10-13 21:19:14 +00:00
Rob Richards e6dbb50a40 insure stream usage 2005-10-13 20:17:18 +00:00
Rob Richards 214cdf0d5a bump libxml min version to 2.6.11 2005-10-13 20:16:39 +00:00
Marcus Boerger 91ac79530d - SPL example was changed, so change PDO test accordingly 2005-10-13 19:48:07 +00:00
Marcus Boerger 533b61cf3b - Add ability to bypass key() surrounding and make that default 2005-10-13 19:45:29 +00:00
foobar 40af0645b9 proper quoting, breaking, etc. 2005-10-13 19:28:47 +00:00
Marcus Boerger bd6cbd6a0e - MFB Do not try to autoload the class, use internal only 2005-10-13 18:41:04 +00:00
Antony Dovgal 956dea1e37 correct it one more time (grrr) 2005-10-13 15:22:20 +00:00
Antony Dovgal c387f9b359 correct the fix 2005-10-13 15:18:37 +00:00
Antony Dovgal 3c6d14bd0b fix #34856 (configure fails to detect libiconv's type) 2005-10-13 15:13:29 +00:00
Antony Dovgal db520f01b1 fix #34855 (ibase_service_attach() segfault on AMD64) 2005-10-13 12:58:22 +00:00
foobar 27d2fe07ff MF51:- Fixed bug #34850 (--program-suffix and --program-prefix not included in man page names) 2005-10-13 10:04:17 +00:00
9e2fdf2af0 ChangeLog update 2005-10-13 05:40:53 +00:00
Marcus Boerger 722613aeb8 - Use pcre_cache_entry* rather than pcre* directly for refcounting
# This prevents a theoretical crash when using too many regexes
2005-10-12 22:52:09 +00:00
Marcus Boerger 56325bc275 - Drop one cache related function which is not really neccessary 2005-10-12 22:45:15 +00:00
Marcus Boerger eb48d356bd - Add/expose function to compile and access pcre_cache_entry structs 2005-10-12 22:37:30 +00:00
Antony Dovgal 34d511ab9d MF51: fix bug #34581 (crash with mod_rewrite) 2005-10-12 21:31:49 +00:00
Derick Rethans 569f8afa2c - Apperently you can't store NULL pointer values into Zend hashes - god know
why not - so we won't store those in the cache anymore.
2005-10-12 19:49:35 +00:00
Ilia Alshanetsky fd2365ae3c Fixed bug #34758 (PDO_DBLIB did not implement rowCount()). 2005-10-12 15:02:35 +00:00
Antony Dovgal 4dc417469d fix compile warnings again 2005-10-12 14:43:55 +00:00
Antony Dovgal 2791fea1b5 MF51: make GCC happy and improve CS a bit 2005-10-12 14:30:34 +00:00
Antony Dovgal e371613f9c nuke unused vars 2005-10-12 14:03:26 +00:00
Rob Richards 5466fe38ed use spprintf where appropriate 2005-10-12 13:57:14 +00:00
Antony Dovgal dd14ae2327 MF51: fix TS build 2005-10-12 13:33:33 +00:00
Dmitry Stogov 1bedfbeb24 Unicode support 2005-10-12 12:13:54 +00:00
Dmitry Stogov 7adf1a259c Fixed unicode support for strip_tags() 2005-10-12 11:00:47 +00:00
Dmitry Stogov 8ac7004ea7 Unicode support 2005-10-12 10:12:15 +00:00
bfee08f77f ChangeLog update 2005-10-12 05:45:26 +00:00
Rob Richards 9c9d49379f Fixed Bug #27908 (xml default_handlers not being called)
Fix memleak when entitydecls are parsed
remove old ifdefs
2005-10-12 03:20:13 +00:00
foobar b233ce0dd8 - Removed confusing dot. 2005-10-11 18:58:27 +00:00
foobar 205e9957c8 fix test 2005-10-11 18:12:01 +00:00
Ilia Alshanetsky 9c5a8bac1c Fixed bug #33167 (Possible crash inside pg_fetch_array()). 2005-10-11 16:18:40 +00:00
Ilia Alshanetsky 2bebbe7773 Fixed bug #34742 (ftp wrapper failures caused from segmented command transfer). 2005-10-11 14:33:14 +00:00
Antony Dovgal 492a1e4124 MF51: fix #34757 (iconv_substr() gives "Unknown error" when offset > string length) 2005-10-11 13:59:18 +00:00
Dmitry Stogov 5d4cd1a71a Fixed compilation on Windows 2005-10-11 11:39:01 +00:00
Dmitry Stogov e00b9ab746 Fixed bug #32455 (wrong setting property to unset value) 2005-10-11 10:16:03 +00:00
Dmitry Stogov 866908ca97 Fixed bug #34790 (preg_match_all(), named capturing groups, variable assignment/return => crash) 2005-10-11 06:46:18 +00:00
2892b13bb9 ChangeLog update 2005-10-11 05:45:37 +00:00
Marcus Boerger 68f663eaf8 - Provide const RegExIterator::USE_KEY and actually use it in the test 2005-10-11 00:18:32 +00:00
Marcus Boerger ac92e5988c - Add (Recursive)RegExIterator 2005-10-10 23:58:42 +00:00
Marcus Boerger d1ff98a560 - Register new class 2005-10-10 21:45:09 +00:00
Marcus Boerger f9f2e8fa56 - Finalize work on SplFileInfo and derived for now (add missing get*Info())
- Update docu
2005-10-10 21:06:54 +00:00
Antony Dovgal 20b8eb26fe MF51: use proper macros and vars instead of strlen() 2005-10-10 20:16:35 +00:00
Antony Dovgal 870a19056f MF51: fix #34818 2005-10-10 20:14:31 +00:00
Derick Rethans d9a3cfd931 - Make sure the tzcache' dtor doesn't cleanup cached misses in the lookup
tables.
2005-10-10 16:41:40 +00:00
George Schlossnagle bb09dad9d0 remove potentially bogus test 2005-10-10 16:02:20 +00:00
Dmitry Stogov 89df282855 Fixed XML Schema error 2005-10-10 15:40:43 +00:00
Ilia Alshanetsky 42663f639d Fixed bug #34809 (FETCH_INTO in PDO crashes without a destination object). 2005-10-10 14:43:51 +00:00
Ilia Alshanetsky f14cf0f7d8 Fixed bug #34802 (Fixed crash on object instantiation failure). 2005-10-10 14:30:05 +00:00
Antony Dovgal 5ec88f863e MF51: fix #34810 (mysqli::init() and others use wrong $this pointer without checks) 2005-10-10 12:59:47 +00:00
Dmitry Stogov 98294fbf3f Fixed bug #34786 (2 @ results in change to error_reporting() to random value) 2005-10-10 10:54:45 +00:00
Dmitry Stogov d3105c7ef6 MFH 2005-10-10 10:50:35 +00:00
Antony Dovgal 28ce7290e9 update changelog 2005-10-10 10:48:38 +00:00
foobar 9f8c7e0850 Fix copypastetypo 2005-10-10 10:28:21 +00:00
foobar 3cce2dc2ee Fix copypastetypo 2005-10-10 10:27:27 +00:00
Antony Dovgal f15f20ffa2 fix #33383 (crash when retrieving empty BLOBs) 2005-10-10 10:16:58 +00:00
foobar 2d5f21c2fb - Fix build for distros where the header files are under */include/freetds/ 2005-10-10 09:50:24 +00:00
Dmitry Stogov 9ac7051043 Fixed bug #34467 (foreach + __get + __set incosistency) 2005-10-10 09:50:20 +00:00
Marcus Boerger 623df3a859 - Fix logic 2005-10-10 06:06:12 +00:00
foobar 146b1a3928 fix test 2005-10-10 05:56:53 +00:00
e63632d234 ChangeLog update 2005-10-10 05:36:24 +00:00
Rob Richards 551d6c5505 PHP_CONFIG_FILE_PATH needs to use strlen() due to Win build 2005-10-10 02:26:13 +00:00
foobar acaa301798 MFB 2005-10-09 20:44:26 +00:00
foobar f51f365fcf Fix properly 2005-10-09 20:38:28 +00:00
foobar 1b5c95e4ee - Fixed bug #34796 (missing SSL linking in ext/ftp when configured as shared) 2005-10-09 20:33:09 +00:00
Ilia Alshanetsky 47bf5f068c Fixed bug #34777 (Crash in dblib when fetching non-existent error info). 2005-10-09 18:59:27 +00:00
Andrey Hristov 1483b322f4 MFB 2005-10-09 17:57:37 +00:00
Marcus Boerger d4190c0513 - Add 'overwrites' info to method dump
# Right now we have to compute that information because it is not available
2005-10-09 17:14:15 +00:00
Marcus Boerger 8f4f012a2c - Apply workaround for test until someone fixes the issue (which is unrelated to pg_*()) 2005-10-09 16:05:01 +00:00
Marcus Boerger 6355dc71df - Make test check for PlPgSQL before using it 2005-10-09 15:57:40 +00:00
Marcus Boerger 362ea7143e - Add new test 2005-10-09 15:13:25 +00:00
Marcus Boerger c124fa566c Bugfix #34704 (Infinite recursion due to corrupt JPEG) (Tim Starling) 2005-10-09 14:11:44 +00:00
Dmitry Stogov c8f43c67d0 Fixed bug #34788 (SOAP Client not applying correct namespace to generated values) 2005-10-09 12:42:06 +00:00
Dmitry Stogov 3ea64d3377 Fixed fault message formatting 2005-10-09 11:31:51 +00:00
Dmitry Stogov f60b382906 Fixed bug #34787 (SOAP Client not handling boolean types correctly) 2005-10-09 11:06:09 +00:00
Marcus Boerger b3fb938ada - Fix potential SEGV with overloaded objects 2005-10-09 09:55:30 +00:00
204dfa9bad ChangeLog update 2005-10-09 05:41:35 +00:00
Marcus Boerger c188afdd03 - Add ReflectionMethod::getPrototype()
- Add some usefull information to the method dump
  . From where it was inherited
  . The prototype
2005-10-08 23:37:31 +00:00
Pierre Joye d8b5fb88cd - add compression mode argument to imagepng
(MFH to 5.1?)
2005-10-08 19:29:04 +00:00
Marcus Boerger 033ffc206d - Add new example directorytree_size.php
- Improve SplFileInfo:
  . add function getFilename()
  . add function getPath()
-Improve RecursiveTreeIterator
  . add const BYPASS_CURRENT to bypass current instead of getting its
    string representation
  . make key() return the parent key() which calls inner iterators key()
- Improve RecursiveDirectoryIterator
  . add consts CURRENT_AS_FILEINFO, KEY_AS_FILENAME, NEW_CURRENT_AND_KEY
  . make current() return getFilename() or getFileInfo() depending on flags
  . make key()     return getPathname() or getFilename() depending on flags
- Improve DirectoryIterator
  . make __construct() accept flags as second parameter
- Update docu
2005-10-08 18:57:17 +00:00
Marcus Boerger 7b330f195b - Add new class SplFileInfo
. Make DirectoryIterator inherit it
  . Make SplFileObject inherit it
2005-10-08 15:55:04 +00:00
Derick Rethans d35d37e74c - Fixed bug #34676: missing support for strtotime("midnight") and
strtotime("noon").
2005-10-08 14:30:15 +00:00
5b7fee64f5 ChangeLog update 2005-10-08 05:34:18 +00:00
Marcus Boerger babb2d5337 - Add new test 2005-10-07 23:23:00 +00:00
Marcus Boerger d6af3d268d - Prevent notices from showing up if inner's current() does not return a string 2005-10-07 23:14:49 +00:00
Derick Rethans f70499f83a - Make the Windows guessing routines actually return the guessed timezone. 2005-10-07 20:31:57 +00:00
George Schlossnagle 0315733264 Test simple derivation via restriction 2005-10-07 15:06:09 +00:00
Derick Rethans 5b9d65e873 - Change parameter name because NetWare expands "tzname" as a macro to
something else.
2005-10-07 13:33:13 +00:00
Rob Richards b2515629af maintain BC for PECL 2005-10-07 13:26:11 +00:00
Dmitry Stogov 3b6f181dd8 Fixed bug #34766 (possible crash on HTTP redirection) 2005-10-07 11:55:53 +00:00
Dmitry Stogov e9f91abfef Fixed memory leak 2005-10-07 10:06:45 +00:00
Dmitry Stogov 5d4a602eaa Reverted last George patches 2005-10-07 08:21:37 +00:00
Derick Rethans 83bb14d2ff - Fixed bug #34771 (strtotime() fails with 1-12am/pm). 2005-10-07 08:05:10 +00:00
Derick Rethans 0993034101 - Synced timezonemap with latest data. 2005-10-07 07:57:43 +00:00
Marcus Boerger 8217f84488 - C vs. C++ fix
# I do too much C++ and too much languages anyway, right now actively:
# C, C++, Java, PHP, Peral
2005-10-07 07:37:37 +00:00
cc29cff0fd ChangeLog update 2005-10-07 05:40:21 +00:00
George Schlossnagle 90de6c8216 Permit correct usage of inherited encoders (from restriction/extension
"base" directives) for xml response decoding.
2005-10-07 05:14:31 +00:00
George Schlossnagle 6ca9ed38e4 support complex types in restrictions and extensions 2005-10-06 22:30:08 +00:00
Frank M. Kromann 3afe5200cc Fix Win32 build by adding missing function declaration. 2005-10-06 21:40:30 +00:00
Marcus Boerger a27f5b0665 - Fix issue (endless loop) with temp/memory streams 2005-10-06 21:30:56 +00:00
Ilia Alshanetsky 37a1bb6f52 Added missing safe_mode checks. 2005-10-06 20:37:25 +00:00
Johannes Schlüter 7e85bac9ec - Fix #34557 php -m exits with "error" 1 2005-10-06 20:29:13 +00:00
Marcus Boerger 6453e19d2b - Fix test in unicode mode 2005-10-06 20:17:11 +00:00
Marcus Boerger 00692252e8 - Use run-tests.ph -u rather then defining the ini settings one by one 2005-10-06 19:51:47 +00:00
Marcus Boerger ed2043353f - Show whether we execute unicode or native tests 2005-10-06 19:51:03 +00:00
Marcus Boerger 93a27ebb60 - MFB dynamic lookup of PDOException base 2005-10-06 19:32:27 +00:00
Marcus Boerger 7d2a02feb6 - BC: php objects convert to int/double 1 with notice 2005-10-06 19:11:01 +00:00
Marcus Boerger 86164a5b94 - Show the test finishes/dos2unix 2005-10-06 19:05:10 +00:00
Marcus Boerger f78cdd9550 - Fix test 2005-10-06 19:02:20 +00:00
Marcus Boerger cfed9e4e74 - Fix test 2005-10-06 19:01:40 +00:00
Marcus Boerger df7f8a9df5 - Fix test
- Convert to unicode
2005-10-06 18:52:51 +00:00
Rob Richards 9b912f6806 use sizeof instead of define 2005-10-06 18:47:47 +00:00
Marcus Boerger b9211d24e7 - Any php object converts to boolean as true 2005-10-06 18:46:01 +00:00
Marcus Boerger 74e172d5b2 - Add new test 2005-10-06 18:41:01 +00:00
Marcus Boerger 206008bf77 - Fix test 2005-10-06 18:37:19 +00:00
Marcus Boerger f1d1c5e282 - Add new test 2005-10-06 18:32:28 +00:00
Derick Rethans 61eae75ec3 - Fixed Windows build (patch by Mike) 2005-10-06 13:03:31 +00:00
Marcus Boerger d376ba48ea - WS 2005-10-06 09:39:32 +00:00
Marcus Boerger 8fc1043685 - Fix redir tests, test count, faillog
# Everything should work again now
2005-10-06 09:29:32 +00:00
Dmitry Stogov f27aedcce2 Cleanup 2005-10-06 08:18:20 +00:00
Dmitry Stogov 362f3fd7ea Fixed compilation error 2005-10-06 06:27:27 +00:00
93dcfb79de ChangeLog update 2005-10-06 05:34:43 +00:00
Marcus Boerger ea2f242df1 - MFB use new functions 2005-10-06 00:38:55 +00:00
Marcus Boerger 2e2ba68d81 - Fix faillog and make it understand/handle redirected tests 2005-10-06 00:35:08 +00:00
Rob Richards 67be950883 fix buffer lengths passed to snprintf 2005-10-05 22:35:11 +00:00
Marcus Boerger 8b14aded85 - MFB Missing constants 2005-10-05 21:57:45 +00:00
Antony Dovgal 5e72a7c750 fix fwrite() and fgets() in unicode mode 2005-10-05 21:46:28 +00:00
Rob Richards 699084da71 these should have remained ints 2005-10-05 19:52:58 +00:00
Rob Richards 76324c5f7c - speed and memory usage optimizations
- implement readInnerXml, readOuterXml and readString: requires libxml 2.6.20
- add encoding and options paramters to open and XML methods
   options from libxml extension may be passed
   i.e. LIBXML_XINCLUDE to perform xinclude during read
2005-10-05 19:41:57 +00:00
Marcus Boerger 6ccd7ef74d - Update cast_object handlers 2005-10-05 19:12:44 +00:00
Marcus Boerger 38e65a872f - Update example 2005-10-05 19:10:22 +00:00
Marcus Boerger 7c083fcc07 - Have __toString() be called if available in all places an object is used
as a string.
#
# Note that "Object #<id>" is no longer afallback for debugging purpose use
# var_dump, which was made for debugging. If you used this to grab the id
# of an object you can never rely on this. For object storage look at SPL's
# ObjectStorage class.
#
# Note the signature change in the cast handler:
#
# int (*cast_t)(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC);
# int (*cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
2005-10-05 19:02:27 +00:00
Marcus Boerger 12dbad3a5c - Fix warnings 2005-10-05 18:57:40 +00:00
Derick Rethans e8f96db932 - MF51: Windows Timezone guessing code 2005-10-05 18:38:30 +00:00
Antony Dovgal 6f4fe0e7ff fix bugs #34743 & #34118 (fseek/fread unicode related problems in HEAD)
patch by Alex
2005-10-05 17:18:06 +00:00
Rob Richards 285df9fa6e fix ZTS build 2005-10-05 16:39:37 +00:00
Ilia Alshanetsky f10effd288 Missing safe_mode/open_basedir checks for file uploads. 2005-10-05 14:32:19 +00:00
Derick Rethans 85f1a3f3b0 - Update package files. 2005-10-05 12:25:32 +00:00
Rolland Santimano 07ff8d5632 - strip_tags(): some fixes, still AWiP 2005-10-05 12:16:02 +00:00
Derick Rethans 1451c14684 - Remove README, everything is implemented now. 2005-10-05 11:46:18 +00:00
Antony Dovgal 2cf16cf942 fix test 2005-10-05 09:00:14 +00:00
Dmitry Stogov 408337fc18 Fixed throwing exceptions derived from SoapFault 2005-10-05 07:01:48 +00:00
f20435d2b5 ChangeLog update 2005-10-05 05:43:31 +00:00
Ilia Alshanetsky 86401de381 MFH: Fixed possible INI setting leak via virtual() in Apache 2 sapi. 2005-10-05 00:42:54 +00:00
Antony Dovgal f3e70f5b8c fix #34723 (array_count_values() strips leading zeroes) 2005-10-04 20:47:48 +00:00
Derick Rethans 17bc1d09e8 - Implemented user level data filter.
- Fixed a memory leak.
2005-10-04 14:47:30 +00:00
Derick Rethans 6f9c13f222 - Add a function that returns whether a specific input variable exists or not. 2005-10-04 13:42:52 +00:00
Antony Dovgal d98fb9b27a MFB5.1: fix #32179 (xmlrpc_encode() segfaults with recursive references) 2005-10-04 12:07:24 +00:00
Dmitry Stogov 7f89924239 Unicode support 2005-10-04 07:59:14 +00:00
Marcus Boerger 31d9d6c5b5 - MFB Add optional deps for SPL 2005-10-04 07:48:43 +00:00
Dmitry Stogov c8aa7f6088 Fixed compilation error (gcc-4). 2005-10-04 06:33:10 +00:00
61bf77f29c ChangeLog update 2005-10-04 05:38:47 +00:00
Antony Dovgal 1f62b7e105 nuke warning 2005-10-03 23:47:55 +00:00
Antony Dovgal 8ced962510 MFB5.1: include the header, eliminate warning 2005-10-03 23:43:43 +00:00
foobar 1ce96bd69f Generated files are included like this.. 2005-10-03 20:20:50 +00:00
foobar 686cbaf078 Add include path to the timelib headers 2005-10-03 20:20:20 +00:00
Marcus Boerger 6d703c5967 - In a conditional statement "a ? b ? c", a and b MUST have the same type
# We should make this an inline function to prevent unnecessary calls to
# get classentry or requir that class_entry must return a valid class_entry
# which we do iirc anyway.
2005-10-03 19:24:09 +00:00
Marcus Boerger ebcafe58d3 - Fix ZTS Build 2005-10-03 19:13:13 +00:00
Marcus Boerger 83a8e3d2a8 - Add easy way to test in unicode mode 2005-10-03 18:15:54 +00:00
Marcus Boerger 070ed30039 - Throw an exception if an illegal string value is being used in ArrayObject::offsetSet() 2005-10-03 17:58:47 +00:00
Rolland Santimano 11d1574211 - Unicode impl of strip_tags() 2005-10-03 17:00:00 +00:00
Marcus Boerger a0674235e3 - Really allow SXE being shared by not using anything from it directly in SPL 2005-10-03 16:04:50 +00:00
Marcus Boerger 272ff777c5 - Add missing test from base
- Change require to require_once (found by kevin)
2005-10-03 15:06:06 +00:00
Ilia Alshanetsky 63cd70e920 GLOBALS protection for extract() function. 2005-10-03 14:01:36 +00:00
Marcus Boerger 94274df4e0 - Add more sorting funcs to ArrayObject/Iterator 2005-10-03 13:34:01 +00:00
Marcus Boerger fcbb1d572e - Make prefixing more generic 2005-10-03 13:29:30 +00:00
Antony Dovgal eca0493e05 update changelog 2005-10-03 13:05:48 +00:00
Antony Dovgal cc96f31ac7 fix PECL bug #5571 (oci_new_connect() not closed by oci_close()) 2005-10-03 13:02:14 +00:00
Marcus Boerger 12c2b1f128 - Add sorting to ArrayObject/Iterator 2005-10-03 12:55:11 +00:00
Marcus Boerger 4d09d0b819 - Allow uncached global functions too 2005-10-03 12:34:57 +00:00
Marcus Boerger 0d5550eb06 - Add propper casting 2005-10-03 12:14:47 +00:00
foobar 6330fcb55e fix BLOAT news 2005-10-03 12:07:19 +00:00
Johannes Schlüter 9147629f59 - Add --rclass and --rextension arguments to CLI 2005-10-03 11:54:46 +00:00
Derick Rethans f027a065a7 - Only load external database when it is newer. 2005-10-03 11:34:27 +00:00
Derick Rethans b75871d017 - Allow an external Timezone Database to be used. 2005-10-03 11:15:21 +00:00
Marcus Boerger a964956aa1 - Update 2005-10-03 10:17:02 +00:00
Marcus Boerger 086912dfff - Allow to use currnet() and key() in __toString() 2005-10-03 10:08:56 +00:00
Marcus Boerger 59557385ac - Make reflection class pointers available for others 2005-10-03 10:04:33 +00:00
Dmitry Stogov db13ecd5aa MFH (Bug #34643 wsdl default value) 2005-10-03 09:52:54 +00:00
Marcus Boerger 748d497764 - Rewrite flags as hex values 2005-10-03 09:39:35 +00:00
Marcus Boerger b1fc84f584 - Fix issue with RecursiveArrayIterator::getChildren() 2005-10-03 09:12:39 +00:00
Dmitry Stogov cdb1746ac3 Fixed bug #34678 (__call(), is_callable() and static methods) 2005-10-03 09:10:28 +00:00
Dmitry Stogov eedbae57ae Fixed bug #34358 (Fatal error: Cannot re-assign $this) 2005-10-03 08:21:20 +00:00
Rolland Santimano 8658708456 levenshtein(), similar_text() 2005-10-03 06:19:51 +00:00
Rolland Santimano eea40f95d8 - Unicode impl of similar_text() 2005-10-03 06:14:10 +00:00
c3948bf457 ChangeLog update 2005-10-03 05:36:27 +00:00
Ilia Alshanetsky 19b334a08a Fixed memory leak. 2005-10-03 03:53:57 +00:00
Marcus Boerger f28eec269c - Add new example 2005-10-02 23:12:12 +00:00
Marcus Boerger b18ffb406e - Simplify SPL checks for PDOException base 2005-10-02 20:36:02 +00:00
Marcus Boerger 3e0c56aac2 - Fix PDOException base
- MFH PDO::getAvailableDrivers()
- Fix compiler warnings
2005-10-02 20:32:17 +00:00
Marcus Boerger a39841e57d - Allow to check for default statment class 2005-10-02 18:45:59 +00:00
Marcus Boerger 8ece2140cb - Add ability to change default statement class for PDO::execute()/query() 2005-10-02 18:32:05 +00:00
Pierre Joye 9688e4017b - remove gdttf 2005-10-02 18:31:37 +00:00
Pierre Joye 918b48839b - ft1 support remove, #2, gdttf.* 2005-10-02 18:06:13 +00:00
Pierre Joye 9c6a41fbdb - drop freetype1 support 2005-10-02 18:01:51 +00:00
Marcus Boerger eedd7b36d2 - Add new example 2005-10-02 17:32:36 +00:00
Derick Rethans da5e9633d0 - MF51: timelib_config.h should stay too. 2005-10-02 16:31:03 +00:00
Derick Rethans f763cd1e7f - MF51: removed parse_date.c from .cvsignore file. 2005-10-02 16:01:42 +00:00
b4cdb85693 ChangeLog update 2005-10-02 05:37:49 +00:00
Andrei Zmievski 1454bdfea4 *** empty log message *** 2005-10-02 03:10:33 +00:00
Marcus Boerger bfaf987363 - MFB spl/simplexml integration (when sxe is shared) 2005-10-01 15:55:27 +00:00
Derick Rethans 2eaf85c481 - MF51: Implemented better timezone guessing algorithm. 2005-10-01 15:07:20 +00:00
7db47e291b ChangeLog update 2005-10-01 05:42:39 +00:00
Pierre Joye 00953d1a15 - MFB: #33125, alpha emulation broken 2005-09-30 20:58:41 +00:00
Rolland Santimano 2dc1c72917 - substr_replace(): call correct funcn for string conversion 2005-09-30 13:19:15 +00:00
Rolland Santimano 8ec9f097b6 - Unicode impl of levenshtein() 2005-09-30 06:20:47 +00:00
65c78bef64 ChangeLog update 2005-09-30 05:38:16 +00:00
Ilia Alshanetsky a36e2bd05a Fixed possible crash and/or memory corruption in import_request_variables()
Fixed potential GLOBALS overwrite via import_request_variables().
2005-09-29 16:30:15 +00:00
Rolland Santimano c893c70275 - Unicode impl of strtok() 2005-09-29 11:05:30 +00:00
Dmitry Stogov 4dd3b9436a Fixed wrong array autodetection 2005-09-29 10:00:59 +00:00
Rolland Santimano 6f06e93237 - Updated addslashes(): add codepoints directly rather than with zend_codepoint_to_uchar() 2005-09-29 09:33:38 +00:00
581f6068bd ChangeLog update 2005-09-29 05:41:36 +00:00
Rob Richards b4f80a9416 add dsp file 2005-09-29 01:05:17 +00:00
Edin Kadribasic 0ea9eb4313 Update php4 build file, compile against istantclient 2005-09-28 22:31:45 +00:00
Ilia Alshanetsky 146517684d Fixed possible GLOBALS variable override when register_globals are ON.
Fixed possible register_globals toggle via parse_str().
2005-09-28 22:31:29 +00:00
Rolland Santimano c775c4cf83 - Updated substr_replace() to use:
- zend_get_unified_string_type()/convert_to_explicit_type() for type conversion
  - u_countChar32() for counting codepoints
2005-09-28 14:58:31 +00:00
Rolland Santimano a8a918db85 {add,strip}slashes() 2005-09-28 12:25:34 +00:00
Dmitry Stogov eb48c25451 Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception) 2005-09-28 11:23:32 +00:00
Rolland Santimano 227791e5af - Unicode impl of {add,strip}slashes() 2005-09-28 09:22:08 +00:00
Derick Rethans 01520328e6 - Implemented input_filters_list() function to return all supported filters. 2005-09-28 09:10:45 +00:00
Marcus Boerger b2633c34d5 - Add missing .cvsignore 2005-09-28 07:10:38 +00:00
21ac01fae2 ChangeLog update 2005-09-28 07:05:48 +00:00
9997f8e9f8 ChangeLog update 2005-09-28 06:31:02 +00:00
Andrei Zmievski a3946eb636 strrev() walkthrough 2005-09-27 19:56:39 +00:00
Dmitry Stogov a7c91fec3a Fixed bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called) 2005-09-27 18:08:26 +00:00
Andrei Zmievski 34308558ac Unicode fixes. 2005-09-27 17:50:00 +00:00
Dmitry Stogov b94dc286e7 Fixed bug #34643 (wsdl default value has no effect) 2005-09-27 15:24:47 +00:00
Ilia Alshanetsky 6d2e7a84ca Fixed bug #32937 (open_basedir looses trailing / in the limiter).
Patch by Adam Conrad
2005-09-27 15:07:38 +00:00
Dmitry Stogov 9323d00a65 MFH 2005-09-27 08:50:23 +00:00
Marcus Boerger 3568f4839b - Need to rename in expectations, too 2005-09-27 08:46:53 +00:00
Marcus Boerger 04f21fab77 - Rename test to be consistent 2005-09-27 08:41:23 +00:00
Marcus Boerger cb969bf938 - Add new tests 2005-09-27 08:37:37 +00:00
Marcus Boerger c3f9de41ab - BFN 2005-09-27 08:25:34 +00:00
Dmitry Stogov f94344d7fd Changed __toString() behavior to call it in all necessary places 2005-09-27 07:59:18 +00:00
9964afb00f ChangeLog update 2005-09-27 05:33:02 +00:00
Ilia Alshanetsky 200d5924cf Allow substr_compare() to take a negative offset to facilitate start of the
comparison from the end of string.
2005-09-26 23:08:10 +00:00
Ilia Alshanetsky 6495d65c5c Touch generated file 2005-09-26 19:32:17 +00:00
Ilia Alshanetsky 94d1e56360 Update bundled libsqlite3 to version 3.2.7 2005-09-26 19:31:41 +00:00
Derick Rethans 74c7eb7723 - Implemented callback filter. 2005-09-26 18:38:49 +00:00
Marcus Boerger 179ab26968 - Reset global pointer to NULL after mem free (required for apache 1.3) 2005-09-26 17:54:57 +00:00
Antony Dovgal dce4c522af the last 64bit fix 2005-09-26 16:48:24 +00:00
Derick Rethans c319c60125 - Implement validate_ip filter for IPv4. 2005-09-26 13:45:38 +00:00
Dmitry Stogov 1b1b864941 Unicode support 2005-09-26 07:23:49 +00:00
Derick Rethans 12945df662 - Implemented validate_url filter. 2005-09-26 06:57:05 +00:00
3c4a9c9f43 ChangeLog update 2005-09-26 05:32:43 +00:00
Antony Dovgal 28205f28ef 2nd part of previous fix 2005-09-25 23:49:13 +00:00
Antony Dovgal bf69d23a21 more 64-bit fixes 2005-09-25 23:46:28 +00:00
Antony Dovgal de50d0275c fix 64bit issues caused by wrong "long" usage 2005-09-25 21:44:32 +00:00
Antony Dovgal 5ec597013e fix arguments-by-ref with 5.x (problem appeared after the last 4.x compat patch)
make sure username_len is always initialized
2005-09-25 18:24:52 +00:00
Marcus Boerger a2cbf80002 - Make code more readable, fix issue with parameter parsing introduced with
unicode update
2005-09-25 18:06:08 +00:00
Ilia Alshanetsky 6e37a621f8 Fixed bug #34321 (Possible crash in filter code). 2005-09-25 13:26:19 +00:00
Marcus Boerger 7e1763a115 - Implement RecursiveIteratorIterator::setMaxDepth()/getMaxDepth() 2005-09-25 12:01:31 +00:00
7ae48d8182 ChangeLog update 2005-09-25 05:43:30 +00:00
Marcus Boerger da8c0af034 - Rename here too 2005-09-24 23:48:26 +00:00
foobar 6fe5050c45 fix typo 2005-09-24 23:22:44 +00:00
Marcus Boerger 8c131ac952 - Serializeable was renamed to Serializable long ago 2005-09-24 23:18:14 +00:00
Edin Kadribasic c752d6b2ad MFB: Allow php extensions to use php_escape_shell_cmd() and php_escape_shell_arg(), needed for mbstring 2005-09-24 15:22:57 +00:00
Edin Kadribasic c4e65a4a2d MFB: Build PDO and SQLite as shared 2005-09-24 15:15:13 +00:00
Pierre Joye 97bad74c0f - #33220, fix infinite loop while loading invalid gif, this patch fixes
at least many cases (nlopess)
2005-09-24 14:37:49 +00:00
Edin Kadribasic dc866850f7 MFB: sqlite3.h is a generated file 2005-09-24 14:22:02 +00:00
Edin Kadribasic 8e6b7667c6 MFB: Declare functions used by driver as PDO_API in php_pdo_driver.h 2005-09-24 14:19:24 +00:00
1ccdcabf65 ChangeLog update 2005-09-24 05:35:43 +00:00
Derick Rethans 47236d7fc7 - Implemented filter_int, filter_float and filter_bool. 2005-09-23 23:09:47 +00:00
Marcus Boerger 6265c1623f - Remove unused variable 2005-09-23 23:02:29 +00:00
Marcus Boerger 23d0387eae - WS 2005-09-23 22:55:10 +00:00
Marcus Boerger 4a430a093a - WS fix 2005-09-23 22:49:57 +00:00
Andrei Zmievski cd43b7dda7 substr() sample case 2005-09-23 21:24:31 +00:00
Antony Dovgal 57c6acb932 fix test 2005-09-23 10:34:02 +00:00
Antony Dovgal 244563283a fix tests to work with HEAD and its new E_* values 2005-09-23 10:28:23 +00:00
Antony Dovgal 76d773ae1d remove double EXPECT tag 2005-09-23 09:39:59 +00:00
Antony Dovgal 520288bbe6 add new tests 2005-09-23 09:39:29 +00:00
Antony Dovgal b97af6c1c0 MF5.1:
- store current value of error_reporting only if it's not stored yet
- reset old_error_reporting to NULL only it points to the tmp_var at current opline
2005-09-23 09:38:37 +00:00
foobar be3a2c634d - Improved the fix for #21306 a bit 2005-09-23 08:13:57 +00:00
Dmitry Stogov 14a0d82f42 MFH 2005-09-23 07:16:06 +00:00
3c581e752b ChangeLog update 2005-09-23 05:33:26 +00:00
Antony Dovgal 47ed27c6bb fix #32081 (mysqli_real_connect(): mysqli.default_socket in php.ini has no effect) for real 2005-09-22 20:14:15 +00:00
Antony Dovgal 57e146e652 bump API number 2005-09-22 19:13:52 +00:00
Antony Dovgal 78fe744753 fix #33771 (error_reporting falls to 0 when @ was used inside try/catch block) 2005-09-22 19:03:04 +00:00
Antony Dovgal 0b57661b2d .. and the fix 2005-09-22 16:42:21 +00:00
Antony Dovgal 6a956b3d43 fix Win32 builds for PHP_4_4
(patch by Edin)
2005-09-22 16:25:59 +00:00
Derick Rethans 9000038bd2 - Changed variable handling code so that filter flags work for the unsafe_raw
filter.
- Added better support for \0 characters.
- Added utility function to HTML encode low/high characters.
- Added support for encode low/high flags to the string and special_chars
  filter.
- Added support for strip and encoding flags to the unsafe_raw filter.
2005-09-22 14:32:28 +00:00
Edin Kadribasic 0a4395a360 MFB: Fix building of extensions that inlcude extname/header.h 2005-09-22 13:18:14 +00:00
Antony Dovgal 22d9a9bb86 prepare to release 1.1.1 2005-09-22 12:15:03 +00:00
Derick Rethans 66e3c106d1 - Removed ALLOW_SIGN filter flag, as this will always be allowed.
- Added ALLOW_SCIENTIFIC flag for the FS_NUMBER_FLOAT filter.
- Implemented string, encoded, special_chars, unsafe_raw, email, url,
  number_int, number_float and magic_quotes filters.
2005-09-22 10:06:57 +00:00
517a4152ce ChangeLog update 2005-09-22 05:45:59 +00:00
Marcus Boerger a28c82fceb - Fixed Bug #34590 User defined PDOStatement class can't implement methods 2005-09-21 22:53:50 +00:00
Marcus Boerger d9ed9945cb - MFB 2005-09-21 18:49:37 +00:00
Dmitry Stogov af0dd442f3 Fixed memory corruption 2005-09-21 15:54:42 +00:00
Dmitry Stogov 18c1c3a82f Allow fopen() make HTTPS requests throug HTTP proxies 2005-09-21 15:04:48 +00:00
Ilia Alshanetsky ac43306e72 MFB: fixed compiler warnings 2005-09-21 13:23:12 +00:00
Ilia Alshanetsky db186add45 Fixed bug #34565 (mb_send_mail does not fetch mail.force_extra_parameters) 2005-09-21 13:15:20 +00:00
Marcus Boerger d376c1e4a5 - Fix Bug #34243 ReflectionClass::getDocComment() returns no result 2005-09-21 09:56:35 +00:00
Derick Rethans 772af6a3cf - Fixed definition in correct file. (Patch by Nuno) 2005-09-21 08:40:52 +00:00
Derick Rethans c3c9df5ed6 - Moved the FREE_OP to after the execution of the included file, or eval
statement so that it is safe to access this information in the overridden
  zend_execute() function, which is what Xdebug does.
2005-09-21 08:12:34 +00:00
51953f7bd1 ChangeLog update 2005-09-21 05:35:49 +00:00
Johannes Schlüter 01f01cdb48 - Remove HTML fragments from phpcredits() in CLI mode 2005-09-20 22:17:34 +00:00
foobar 6f0648dab6 - Fixed bug #21306 (catch bailouts of write handler during RSHUTDOWN) 2005-09-20 20:56:21 +00:00
Ilia Alshanetsky 75555bc472 Allow overloading of PDO constructor. 2005-09-20 19:52:05 +00:00
Marcus Boerger 97bedcc064 - Provide helper function to avoid TSRM issues with exception base and root 2005-09-20 18:46:15 +00:00
Derick Rethans bc0308b2e4 - Moved constants to private .h file
- Added comments to filter stubs as per discussion with Ilia
- Renamed regexp to validate_regexp filter
- Added stubs for validate_url, validate_email and validate_ip filters.
- Implemented "string" (stripped) filter
2005-09-20 15:01:42 +00:00
Stanislav Malyshev 961d12fa2d fix crash on restarting static PHP having session modules loaded 2005-09-20 14:05:16 +00:00
Marcus Boerger da0e46b251 - Synch utest with test 2005-09-20 09:21:11 +00:00
Dmitry Stogov 140b23620b ZTS fix 2005-09-20 06:17:30 +00:00
ebc7bb3a00 ChangeLog update 2005-09-20 05:45:47 +00:00
Ilia Alshanetsky 71f9416fda MFB: remove PDO_ prefix 2005-09-20 00:46:07 +00:00
Wez Furlong ed6fa70f49 use PDO:: class constants 2005-09-20 00:45:16 +00:00
Ilia Alshanetsky 3953b14024 Make PDO use class constants 2005-09-20 00:33:42 +00:00
Marcus Boerger 2c6cf58a96 - Add eytension consts to extension output (Johannes)
- Fix WS in output
2005-09-19 20:29:33 +00:00
Marcus Boerger 1bb2a74ee0 - Fix filename 2005-09-19 19:03:38 +00:00
Antony Dovgal c6e6b44b82 MF5.0: add new test 2005-09-19 18:59:50 +00:00
Dmitry Stogov b45944a5b3 Fixed access to uninitialized value 2005-09-19 18:47:36 +00:00
Marcus Boerger b4271e8f3f - Fix filename in docu 2005-09-19 18:28:01 +00:00
Marcus Boerger 97948f29a9 - Add deprecated/compatibility class for BC 2005-09-19 18:25:23 +00:00
Marcus Boerger 2568c8a0cb - More TSRM fixes 2005-09-19 18:17:39 +00:00
Marcus Boerger a3aa58fdea - Fix building with 5.0 2005-09-19 18:05:00 +00:00
Dmitry Stogov b3ec0a78c9 MFH (removed unnecesary call to zval_ptr_dtor) 2005-09-19 17:50:11 +00:00
Dmitry Stogov a106b48982 Fixed access to memory that is already freed (in case of __call() method) 2005-09-19 16:28:43 +00:00
Dmitry Stogov 9f9043864c Fixed parameter passing incompatibilities.
Now it is possible to call array_pop(explode("&","1&2&3")) again.
2005-09-19 16:01:56 +00:00
Dmitry Stogov f6a20bad6e Unicode support 2005-09-19 07:49:13 +00:00
Dmitry Stogov 4d8290d000 Unicode support 2005-09-19 07:23:47 +00:00
Dmitry Stogov 9fc1de0181 Fixed test file 2005-09-19 06:11:12 +00:00
baf70abbf9 ChangeLog update 2005-09-19 05:45:53 +00:00
Ilia Alshanetsky e9fac07169 Add blame :) 2005-09-19 03:21:34 +00:00
Marcus Boerger 8663b3a191 - Update docu: new slides are available 2005-09-18 17:51:37 +00:00
Marcus Boerger d9604967ff - Observer/Subject have been renamed 2005-09-18 17:44:50 +00:00
Marcus Boerger eede773730 - Add missing docu 2005-09-18 17:39:12 +00:00
Marcus Boerger 7a9c654f83 - Derick changed the test but forgot to make the code use E_RECOVERABLE_ERROR 2005-09-18 17:32:52 +00:00
Marcus Boerger 02038b4ac4 - Rename 'CachingRecursiveIterator' to 'RecursiveCachingIterator' so that
all of those follow the naming scheme 'Recursive<*>Iterator'
2005-09-18 16:51:24 +00:00
Marcus Boerger 445e382454 - Move RecursiveArrayIterator into .c
- Add ability to control iterator class of ArrayObject
- Implement option to make CachingIterator cache all read elements
- Implement ArrayAccess to CachingIterator to access cached elements
- Update docu
- Update tests
2005-09-18 11:34:36 +00:00
Edin Kadribasic 9250fda033 MFB 2005-09-17 22:07:20 +00:00
720fbd9a5f ChangeLog update 2005-09-17 05:42:43 +00:00
Antony Dovgal 1b1c0e3c78 check class_entry of this_ptr in Reflection API, so we won't get an alien this_ptr
when called statically in a function that is called statically too (without being
declared as static)
2005-09-16 20:20:46 +00:00
foobar cc20c52449 Please, only add entries for fixed bugs if they are ONLY fixed in HEAD! 2005-09-16 19:43:46 +00:00
Dmitry Stogov 746e88e3d5 Fixed bug #34478 (Incorrect parsing of url's fragment (#...)) 2005-09-16 15:47:42 +00:00
Dmitry Stogov 213a1768a2 Fixed tests 2005-09-16 15:24:50 +00:00
Dmitry Stogov a5c84dde62 MFH 2005-09-16 15:24:09 +00:00
Marcus Boerger 35c85a23f1 - MFB 2005-09-16 15:23:37 +00:00
Dmitry Stogov af3476a982 Fixed bug #34518 (Unset doesn't separate container in CV) 2005-09-16 14:40:49 +00:00
Dmitry Stogov 3c76f253e8 MFH (overriding of protected static property) 2005-09-16 13:42:31 +00:00
0993ab6ad9 ChangeLog update 2005-09-16 05:40:54 +00:00
Derick Rethans 74929f352c - Fixed bug #34052 (date('U') returns %ld not unix timestamp). 2005-09-15 19:10:13 +00:00
Derick Rethans c41ae5f4b0 - Added tests. 2005-09-15 16:20:06 +00:00
Derick Rethans 0f391bb0b3 - Add E_RECOVERABLE.
#- Thought I did this before already actually...
2005-09-15 16:19:48 +00:00
Marcus Boerger 50301ddc98 - Rename file class again by popular demmand: calling it SplFileObject now
# Any other idea about the name? Or should i come up with a renaming plan
# for the upcoming versions? :-)
2005-09-15 14:07:39 +00:00
foobar 1a1f97ee7e MFB 2005-09-15 13:20:24 +00:00
8d78d4cf18 ChangeLog update 2005-09-15 05:48:00 +00:00
Marcus Boerger 5f437cd590 - Changed in version 5.1 2005-09-15 03:52:58 +00:00
Marcus Boerger 849fb07201 - MFB 2005-09-15 03:48:38 +00:00
Marcus Boerger 8aa7f36a3b - Rename Observer to SplObserver
- Rename Subject to SplSubject
- Move SPL constants to class constants
- Update docu
2005-09-15 03:31:37 +00:00
Rasmus Lerdorf 868c4b72df Add FS_STRIPPED alias 2005-09-15 03:16:09 +00:00
Marcus Boerger acae6a3810 - Improve error message 2005-09-14 18:21:11 +00:00
Andrei Zmievski 883149c516 *** empty log message *** 2005-09-14 18:01:41 +00:00
foobar bbfba9977f Silence warnings under Solaris 2005-09-14 17:57:22 +00:00
foobar 45e1606796 Silence some crap if bison does not exist 2005-09-14 15:52:49 +00:00
Ilia Alshanetsky f7a4a852df Fix error detection for queries such as OPTIMIZE 2005-09-14 15:34:42 +00:00
Derick Rethans 6e3d5a9e22 - Rename icu_loc* to i18n_loc*
- Added i18n_strtotitle (name is not sure yet) - work in progress.
2005-09-14 14:56:01 +00:00
eb0fb96526 ChangeLog update 2005-09-14 05:40:11 +00:00
foobar bfdf52964e ext/oracle is no more 2005-09-13 21:40:33 +00:00
Andrei Zmievski 1d9f5e1360 *** empty log message *** 2005-09-13 21:07:46 +00:00
Andrei Zmievski 387e353009 Fix for Unicode access. 2005-09-13 21:04:07 +00:00
Andrei Zmievski 687f8a33d5 *** empty log message *** 2005-09-13 20:24:02 +00:00
Andrei Zmievski d746f59f35 Commit work in progress. 2005-09-13 16:21:47 +00:00
Ilia Alshanetsky a383bd062c Make key() and current() take argument by value. 2005-09-13 13:22:49 +00:00
foobar 279d2bc311 Cleanup the configure mess, preparing for making unicode OPTIONAL 2005-09-13 09:50:53 +00:00
Antony Dovgal d94f338cf4 fix #34450 (Segfault when calling mysqli_close() in destructor) 2005-09-13 09:19:58 +00:00
67739f4a64 ChangeLog update 2005-09-13 05:42:49 +00:00
Sara Golemon 87bcf776f7 Plug leak of 1/2 bytes when converting from string/unicode 2005-09-12 17:42:43 +00:00
foobar e720736a4f - Fixed build with phpize 2005-09-12 17:14:20 +00:00
Ilia Alshanetsky 58fda11b15 Fixed bug #34456 (Possible crash inside pspell extension).
# Patch by Nuno Lopes
2005-09-12 15:26:48 +00:00
Dmitry Stogov 0a54602089 Fixed bug #34199 (if($obj)/if(!$obj) inconsistency) 2005-09-12 11:48:28 +00:00
Dmitry Stogov 03c6efab67 Additinal fix for bug #34277 (array_filter() crashes with references and objects) 2005-09-12 09:58:35 +00:00
Derick Rethans 161777af26 - Reimplement SORT_LOCALE_STRING with ICU locales. 2005-09-12 09:53:23 +00:00
Dmitry Stogov 1e32cdbb7d Fixed bug #34449 (ext/soap: XSD_ANYXML functionality not exposed) 2005-09-12 08:23:49 +00:00
Dmitry Stogov f4a3454c52 Fix for exceptions in __sleep() 2005-09-12 07:14:54 +00:00
Dmitry Stogov b81255d4fd ZTS fix 2005-09-12 06:31:54 +00:00
3c3f298f18 ChangeLog update 2005-09-12 05:43:21 +00:00
6ad8a44ab9 ChangeLog update 2005-09-11 05:43:58 +00:00
Wez Furlong 37ace0651b merge other PDO fixes from 5.1 branch.
Allow pdo_sqlite to build against 5.0 and 5.1 too.
2005-09-11 05:08:49 +00:00
Wez Furlong d84239ae87 touch file 2005-09-11 05:04:43 +00:00
Wez Furlong 434fa24dfa Merge changes from 5.1 branch.
Add compat header that allows PDO head to compile against PHP 5.0 and PHP 5.1.
2005-09-11 05:04:00 +00:00
Wez Furlong 739c0680d0 actually reset the statement when closeCursor() is called. 2005-09-11 04:59:41 +00:00
6bb7ca6c56 ChangeLog update 2005-09-10 05:40:02 +00:00
Rolland Santimano 05e365bab3 - str_pad(): Use u_countChar32() for codepoint counting, eumalloc/eurealloc() for Unicode mallocs. 2005-09-09 19:07:18 +00:00
Antony Dovgal 4c8425e9ba new test 2005-09-09 14:08:03 +00:00
Antony Dovgal 98899d1083 fix problem appearing when binding empty values 2005-09-09 14:00:03 +00:00
Derick Rethans 0c6c0eaa51 - Added Rollands latest upgrades. 2005-09-09 09:54:16 +00:00
Dmitry Stogov 3c2e00f903 Fixed huge memory leaks in ZTS mode 2005-09-09 08:19:56 +00:00
Dmitry Stogov ce0c17aa95 MFH (is_sublass_of("A","B") should call __autoload() for "A" and "B") 2005-09-09 06:47:18 +00:00
a7357c5910 ChangeLog update 2005-09-09 05:35:59 +00:00
Ilia Alshanetsky 5754b7321a Allow retrieval of query parse errors from SQLite.
# Patch by Nuno Lopes
2005-09-08 21:07:26 +00:00
Dmitry Stogov 0638374ec9 Avoid unnecessary copying/freeing 2005-09-08 16:15:16 +00:00
Ilia Alshanetsky 1e13bca414 Fixed bug #34420 (Possible crash inside curl_multi_remove_handle()). 2005-09-08 14:49:58 +00:00
Derick Rethans 9d04a8e369 - Make ord() work on binary strings too. 2005-09-08 14:07:40 +00:00
Antony Dovgal 034e794fe9 use "connections" instead of "links" everywhere to avoid possible confusion 2005-09-08 13:16:24 +00:00
Dmitry Stogov b0b0f8147d Fixed craches in substr_replace() 2005-09-08 12:40:01 +00:00
Antony Dovgal fb8258e8b7 fix phpinfo() output for iconv extension
(convert unicode values to string before outputting them)
2005-09-08 11:48:07 +00:00
Dmitry Stogov 49c3b14f53 Unicode support for PHP constants 2005-09-08 11:10:34 +00:00
Rob Richards d1cf2c5ffe add save options parameter 2005-09-08 10:34:37 +00:00
Rob Richards 65f96ca6f2 add additional constants
remove un-needed ifdefs
2005-09-08 10:33:57 +00:00
Dmitry Stogov a082983adb catch operator shouldn't call __autoload () too 2005-09-08 10:32:28 +00:00
Dmitry Stogov 90b45fcbbd Fixed crash on AIX 2005-09-08 06:18:47 +00:00
fdb78c1816 ChangeLog update 2005-09-08 05:37:56 +00:00
Rolland Santimano a441e78984 - Unicode impl of substr_replace() 2005-09-08 05:05:36 +00:00
Derick Rethans f872d3346c - Fix buglett with date() that cause truncated strings to be returned when
Unicode is turned on.
2005-09-07 19:09:27 +00:00
Dmitry Stogov 7eeb91187b Fixed memory allocation bug 2005-09-07 15:34:50 +00:00
Antony Dovgal 324080065d new test 2005-09-07 15:27:09 +00:00
Ilia Alshanetsky 2195f7ec74 Upgraded sqlite2 lib to 2.8.16 2005-09-07 15:10:15 +00:00
Antony Dovgal 49cf0eff6a add Andi & Wez as lead maintainers and make myself lead too 2005-09-07 13:05:51 +00:00
Antony Dovgal 984f303713 I doubt that all these people are going to develop it in PECL,
so remove them and fix those complains about non-existing users.
2005-09-07 12:44:19 +00:00
Antony Dovgal 8137d9a075 prepare to PECL release 2005-09-07 12:40:38 +00:00
Edin Kadribasic adcc19f9ec Support for Windows (Michael Wallner) 2005-09-07 11:16:57 +00:00
Antony Dovgal ec8531cfb1 don't try to fetch resource when there is 0 args 2005-09-07 08:58:32 +00:00
Dmitry Stogov 18e259480e Fixed unicode support for substr_count() 2005-09-07 07:00:03 +00:00
1e72f205b6 ChangeLog update 2005-09-07 05:33:15 +00:00
Antony Dovgal 1287891c3b removed __FUNCTION__ (by popular demand) 2005-09-06 21:44:53 +00:00
Antony Dovgal 4a2b8cb6d0 fix credits 2005-09-06 21:42:26 +00:00
Edin Kadribasic b5a5b22cbb Sync windows build and link against instant client libs 2005-09-06 21:38:16 +00:00
Edin Kadribasic e18b812ba6 Remove utf-8 chars 2005-09-06 21:30:28 +00:00
Antony Dovgal 726f3e3881 workaround for some b0rked compilers 2005-09-06 21:11:19 +00:00
Antony Dovgal e0ed2b45ff new tests 2005-09-06 19:33:18 +00:00
Antony Dovgal 3df94e1112 Updated OCI8 driver
This updated fixes (this list is not complete):
-------------------
#33915 - crash in _oci_close_session
#26393 - Segfault during request shutdown in _oci_close_session() (oci8.c:2443)

#32741 - hang on ociexecute() with collections (only with 10g, works with 9i)
#32325 - can't retrieve collection using OCI8
#33583 - Apache1.3.33 Segmentation fault with php5 & OCI_New_Collection

#32361 - connection oci_connect stay persist after process the php
#29013 - multiple logins cause handles become invalid
#28944 - OCITypeByName: OCI-21522 with two connections

Fixed by connection handling rewrite.

#32140 - NVARCHAR columns are truncated
#31042 - oci_fetch_* sets field value to false
#27156 - OCIFetchInto returns false as column value when column contains >1 umlaut

Fixed by multiplying buffer size by 3.

#33866 - OCIlogon do not returns conn resource for account with expired paswd
#33365 - logon fails when password expires

Fixed by adding new oci_password_change() call syntax.

#33159 - DB-connect via webserver fails after DB-restart ORA-24327
#30808 - oci8 cannot connect after restarting DB
#30127 - lost oracle connection. need restart apache.
#29902 - oci8 doesn't disconnect sessions, overloads oracle server
#29779 - (the same issue with the Oracle server going offline)
#26829 - Killed Oracle Sessions openned with OCIPLogon()

Fixed by adding oci8.ping_interval option.

#32988ext/oci8: OCI doesn't support DB external authentication

Fixed by adding support of external credentials (turned off by default).

Added new INI options:
----------------------
oci8.ping_interval
oci8.max_persistent
oci8.persistent_timeout
oci8.privileged_connect
oci8.statement_cache_size
oci8.default_prefetch
oci8.old_oci_close_semantics

See the updated docs for the detailed descriptions.

Major changes:
--------------
- connection handling algorithm rewritten. That should add stability and fix all non-reproducible crashes etc;
- extension refactored and divided into several files to improve readability and to make it easier to maintain;
- added support of statement caching;
- added support of privileged connections using external credentials;
- added new INI options to manage persistent connections;
- fixed oci_close() to close connections correctly.
2005-09-06 19:31:59 +00:00
Derick Rethans 8774e8e1aa - Updated the framework, cleaned up some code.
#- Basically the only real thing left is the body for the filters.
2005-09-06 18:46:37 +00:00
7c0f7fa845 ChangeLog update 2005-09-06 05:42:57 +00:00
Rolland Santimano 8404034552 Pointer arithmetic with char * rather than void * 2005-09-05 16:37:45 +00:00
foobar 7036ac440c touch 2005-09-05 16:20:56 +00:00
foobar 80079e61a5 - Fixed bug #34311 (unserialize() crashes with characters above 191 dec) 2005-09-05 16:19:35 +00:00
Rolland Santimano 8d5d2125d0 - Unicode impl of str_pad() 2005-09-05 10:55:35 +00:00
f1c781bc87 ChangeLog update 2005-09-05 05:37:47 +00:00
Frank M. Kromann 6e6def1e77 MFB: Fix for #34369
Add extra parameter to mssql_connect to force a new connection
2005-09-05 05:05:34 +00:00
Marcus Boerger 5deac4859e - Add missing docu tag 2005-09-04 18:57:21 +00:00
Marcus Boerger 4cba6ac94d - Update docu 2005-09-04 18:51:50 +00:00
Edin Kadribasic 856b81ff0c touch 2005-09-04 00:58:49 +00:00
Edin Kadribasic baecb3d18d MFB 2005-09-04 00:58:21 +00:00
Edin Kadribasic 0161d1bfd1 MFB 2005-09-03 23:52:56 +00:00
1365bee427 ChangeLog update 2005-09-03 05:39:11 +00:00
foobar 3cfa505102 MFB: - Fixed bug #34307. We were not calling on_modify handler to set the default
value in case setting the one from .ini file failed. (Andrei)
2005-09-02 21:08:11 +00:00
Marcus Boerger a826dd2918 - Fix docu 2005-09-02 19:16:43 +00:00
Marcus Boerger 03136fc95d - Update docu 2005-09-02 19:15:30 +00:00
Ilia Alshanetsky 3ed0413de5 Resolved bug #34240.
# Thanks to xuefer at 21cn dot com for providing it.
2005-09-02 17:25:10 +00:00
Rob Richards 9a95a98628 Fix crash: handler name not length needs to be passed to php_error_docref 2005-09-02 15:38:22 +00:00
Derick Rethans 5169c32573 - Added date_time_set, date_date_set and date_isodate_set() functions, and
setTime, setDate and setISODate() methods.
2005-09-02 14:57:42 +00:00
foobar 7d92b356d9 revert 2005-09-02 14:08:09 +00:00
foobar 51ec5ca6da Check the status properly 2005-09-02 13:50:39 +00:00
Derick Rethans 42fe62541e - Update timezone database to version "2005m". 2005-09-02 12:31:41 +00:00
Derick Rethans 9495b782b2 - Added comments into the database file, so that we can more easily spot
changes.
2005-09-02 11:39:42 +00:00
Derick Rethans 31f3f81c82 - MF51: Fixed bug #34304 (date() doesn't have a modifier for ISO Week Day). 2005-09-02 09:41:08 +00:00
Derick Rethans e4fd549af9 - Fixed bad MF51. 2005-09-02 09:39:21 +00:00
foobar f52a9e84ed - Moved pfpro, ovrimos and mcve to PECL
# Pierre will create the packages for these
2005-09-02 09:10:01 +00:00
foobar 1496355faf MFB: Always return something, even if it succeeds :) 2005-09-02 08:26:05 +00:00
Dmitry Stogov 59d2e3f3aa Fixed bug #34260 (Segfault with callbacks (array_map) + overloading) 2005-09-02 07:46:30 +00:00
Rob Richards acfde98e6e Fix key length so params passed by array can be retrieved by getParameter() 2005-09-02 06:37:29 +00:00
df01d7678a ChangeLog update 2005-09-02 05:33:21 +00:00
foobar d61c1eeeba MFB 2005-09-02 05:18:30 +00:00
Ilia Alshanetsky 5f1aa243c3 Fixed bug #34331 (php crashes when variables_order is empty). 2005-09-01 19:14:54 +00:00
foobar ec0b4f91f4 - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set as empty) 2005-09-01 14:42:54 +00:00
George Schlossnagle fbd6ce4db5 Resolution to http://pecl.php.net/bugs/bug.php?id=5193 for all drivers. 2005-09-01 14:39:58 +00:00
foobar 08b695a3e8 - Revert -a to -A change, bad idea: It disables EXISTING lines too! 2005-09-01 14:33:37 +00:00
George Schlossnagle 23a74267d9 protect against underflow - refs http://pecl.php.net/bugs/bug.php?id=5193 2005-09-01 14:31:34 +00:00
Dmitry Stogov bd307bc0bd Fixed bug #34137 (assigning array element by reference causes binary mess) 2005-09-01 13:21:04 +00:00
Dmitry Stogov 176a76dbec MFH 2005-09-01 13:03:48 +00:00
Derick Rethans 06562e3e8e - Fixed bug #33414 (Comprehensive list of incorrect days returned after
strtotime() / date() tests).
2005-09-01 12:41:43 +00:00
foobar 24a101a23b If it is added in 5.1, is it still news for PHP 6? 2005-09-01 12:00:25 +00:00
Dmitry Stogov cbd1c89e81 Fixed bug #34277 (array_filter() crashes with references and objects) 2005-09-01 11:58:41 +00:00
Dmitry Stogov f61b9bac52 Fixed bug #34310 (foreach($arr as $c->d => $x) crashes) 2005-09-01 10:55:05 +00:00
Dmitry Stogov 7b7551085b Support for class constants and static members for internal classes 2005-09-01 10:05:01 +00:00
foobar 3991ed8bf6 Bump up libxml2 version requirement to >= 2.6.8 2005-09-01 08:25:32 +00:00
525374ba69 ChangeLog update 2005-09-01 05:40:39 +00:00
Ilia Alshanetsky f376178101 Fixed bug #34001 (pdo_mysql truncates numberic fields at 4 chars) 2005-09-01 01:56:36 +00:00
foobar 805bb588d9 Fixed bug #34323 2005-08-31 22:29:24 +00:00
Andrei Zmievski 674469245f Further work on Unicode support in file uploads. 2005-08-31 20:42:14 +00:00
Rob Richards af7f90f6c7 make sxe_properties_get respect namespace scope 2005-08-31 17:00:22 +00:00
foobar 39e0c382df Update credits 2005-08-31 15:01:13 +00:00
foobar f35af61ef8 Moved to PECL 2005-08-31 14:55:13 +00:00
Derick Rethans 447425d9f1 - Fixed bug #33957 (gmdate('W')/date('W') sometimes returns wrong week number). 2005-08-31 14:31:45 +00:00
foobar 315cdad9b0 - Fixed bug #34306 (wddx_serialize_value() crashes with long array keys) 2005-08-31 14:30:46 +00:00
foobar 847e50e560 Added test for bug #34310 2005-08-31 09:16:50 +00:00
Marcus Boerger 8a3ea48eef - run-tests-config.php was never used and now renamed 2005-08-31 06:58:25 +00:00
4ae827de7f ChangeLog update 2005-08-31 05:40:14 +00:00
George Schlossnagle c2e9f5d9a5 Set port even if host is localhost.
Should resolve 34072
2005-08-31 03:48:01 +00:00
Ilia Alshanetsky 50fb7a8261 Added optional parameter to http_build_query() to allow specification of
string separator.
2005-08-31 01:19:40 +00:00
Ilia Alshanetsky 4f1520912c Fixed bug #32589 (possible crash inside imap_mail_compose() function). 2005-08-30 22:02:43 +00:00
Johannes Schlüter cb1f66441e News 2005-08-30 20:02:47 +00:00
George Schlossnagle 26fd380b1d this is the number of params, not the top index 2005-08-30 19:59:11 +00:00
George Schlossnagle 6a687a1fad this is the number of params, not the top index (otherwise unix_socket doesnt work 2005-08-30 19:55:54 +00:00
Marcus Boerger 9ce645e2fa - run-tests2.php was renamed into server-tests.php (missing part) 2005-08-30 18:41:42 +00:00
Marcus Boerger 0165ab6251 - Adds module registering a function to struct zend_internal_function.
(Johannes)
# This information is by reflection API and error messages.
2005-08-30 18:27:17 +00:00
Derick Rethans cbe8be6a17 - Fixed bug #34302 (date('W') do not return leading zeros for week 1 to 9). 2005-08-30 09:17:56 +00:00
Marcus Boerger 650c3d2094 - Fix const speling (correct in branshes where did it vanish here) 2005-08-30 07:27:06 +00:00
Dmitry Stogov 93c08f1c8b Fixed possible memory leak 2005-08-30 07:19:59 +00:00
Dmitry Stogov c75b5a798f Fixed unicode support bug 2005-08-30 07:19:05 +00:00
e5ec8d0c74 ChangeLog update 2005-08-30 05:42:02 +00:00
Marcus Boerger 51e3db28ea - Fix #34299: ReflectionClass::isInstantiable() returns true for abstract classes 2005-08-29 22:11:53 +00:00
Sara Golemon f3b177eb30 allocate_new_resource() handles the malloc() for us. Don't leak by mallocing twice. 2005-08-29 21:53:34 +00:00
foobar 2f400cc199 Clean away PECled exts and added date.timezone setting 2005-08-29 14:46:00 +00:00
Dmitry Stogov 7999c0c3d4 Fixed SIGSEGV 2005-08-29 06:51:51 +00:00
Dmitry Stogov a3b7eb2284 Fixed gcc 4 compatibility 2005-08-29 06:51:14 +00:00
7c8af3ec49 ChangeLog update 2005-08-29 05:39:09 +00:00
Ilia Alshanetsky 019aec0a6c touch 2005-08-28 16:57:30 +00:00
Ilia Alshanetsky bb38017142 Upgrade sqlite lib to 3.2.5 2005-08-28 16:57:01 +00:00
Rob Richards 4509fb9d5d Fixed bug #34276 (setAttributeNS doesn't work with default namespace)
Add test
2005-08-28 16:22:03 +00:00
c99873641b ChangeLog update 2005-08-28 05:33:19 +00:00
foobar bc1f800a72 - Fixed bug #34284 (CLI phpinfo showing html on _SERVER["argv"]) 2005-08-28 01:02:54 +00:00
foobar fc97c0212e - Fixed bug #34221 (Compiling xmlrpc as shared fails other parts) 2005-08-28 00:43:29 +00:00
Rolland Santimano c7ad26fbf4 - Unicode impl of substr_count() 2005-08-27 19:14:05 +00:00
8ada9a9aa7 ChangeLog update 2005-08-27 05:35:34 +00:00
Marcus Boerger 271f5d04ec - Check for static libs, too 2005-08-26 15:24:26 +00:00
Derick Rethans cdcf566a21 - Fixed a bug where stream_get_meta_data() did not return the "uri" element for
files opened with tmpname().
2005-08-26 12:50:06 +00:00
Rolland Santimano c81d6d6cfd - Updated strrev() to handle base+combining sequences 2005-08-26 10:21:07 +00:00
300cb0ff89 ChangeLog update 2005-08-26 05:36:54 +00:00
Ilia Alshanetsky c1e661ce70 MFH: Fixed bug #34214 (base64_decode() does not properly ignore whitespace) 2005-08-26 03:32:53 +00:00
Rob Richards de9e0c588f Fix URI escaping 2005-08-26 02:29:32 +00:00
Marcus Boerger b5ad2a4b20 - Bugfix #34257 lib64 not handled correctly in ming extension 2005-08-25 20:49:49 +00:00
Dmitry Stogov fc03492c0b Fixed memory leaks 2005-08-25 13:53:38 +00:00
foobar 0ed53849a5 MFB 2005-08-25 12:26:12 +00:00
Derick Rethans d468a854f9 - Fixed bug #34087 for real. 2005-08-25 09:46:31 +00:00
Sara Golemon 23b729dc15 sizeof(char) != sizeof(UChar) Don't tell ucnv_toUnicode it has more space than it really does 2005-08-25 08:59:24 +00:00
Dmitry Stogov b01df7d793 Fixed access to uninitialized variables 2005-08-25 07:56:15 +00:00
Dmitry Stogov fe88b03b99 ZTS fix 2005-08-25 06:50:16 +00:00
e992d178bc ChangeLog update 2005-08-25 05:43:45 +00:00
Andrei Zmievski d6a80f841d *** empty log message *** 2005-08-24 21:04:33 +00:00
Andrei Zmievski d0d6a1f16f - Require declare(encoding=...) to come before any opcodes. Read source
comments for more info.
- Op arrays now know which script encoding they were compiled from.
- Use this information to intelligently convert inline HTML blocks to
  the output encoding. Currently it opens and closes a new converter for
  each block, but we can optimize it.
2005-08-24 20:42:09 +00:00
Andrei Zmievski 64dbc03c93 Fix ZTS. 2005-08-24 17:16:14 +00:00
Derick Rethans c4d08b15f0 - Make it compile in ZTS mode
#- *untested*
2005-08-24 17:10:25 +00:00
Ilia Alshanetsky 0408e53679 Remainder of the 34191 bug fix. 2005-08-24 16:19:47 +00:00
Derick Rethans e87054dbec - Fix test. 2005-08-24 14:17:58 +00:00
Derick Rethans e226f0f87f - Fixed bug #34087 (strtotime() does not work with date format "Y/m/d").
- Make use of YYMAXFILL.
- Added support for using a . as hour/minute/second separator.
2005-08-24 13:47:28 +00:00
Dmitry Stogov 47539d32d0 Fixed boolean encoding (from 0/1 to false/true) to support some buggy soap SDKs.
Fixed support for missing nillable elements of sequnces.
2005-08-24 11:46:27 +00:00
Dmitry Stogov 5820ee959e Fixed return-by-reference from internal functions 2005-08-24 10:41:51 +00:00
Johannes Schlüter a221a9742a - Fix alphabetic order and add missing class 2005-08-24 10:16:45 +00:00
85989c29be ChangeLog update 2005-08-24 05:33:46 +00:00
Andrei Zmievski ec65bc1039 Implement Unicode support for strncasecmp(). 2005-08-23 22:05:22 +00:00
Andrei Zmievski d50b264e22 *** empty log message *** 2005-08-23 22:03:47 +00:00
foobar 36ee721519 Test for bug #34214 2005-08-23 21:39:39 +00:00
Andrei Zmievski 291c282cce Damn. 2005-08-23 21:08:35 +00:00
Andrei Zmievski e3ec5efc5e - Rewrite zend_u_binary_strncmp() to work on codepoint level. Calling
u_strCompare() doesn't help because it assumes that the input lengths
  specify the number of UChar's.
- Change zend_u_binary_strcmp() to use u_strCompare() (and it's fine to
  use it here, since we work with whole strings here).
2005-08-23 20:11:59 +00:00
Andrei Zmievski 2a8a18b22c Fix verbosity for var_inspect(). 2005-08-23 17:22:54 +00:00
Andrei Zmievski df3a14953e This was so embarassingly silly. 2005-08-23 16:37:24 +00:00
Dmitry Stogov 8f6f97a77d Unicode support 2005-08-23 12:53:31 +00:00
Derick Rethans 411e8e154d - Added .cvsignore file. 2005-08-23 11:41:00 +00:00
Dmitry Stogov f4b8f4e958 Unicode support cleanup 2005-08-23 09:33:46 +00:00
Dmitry Stogov 24743055a3 Changed is_a() and is_subcalls_of() functions to not call __autoload() (in the same way as "instanceof" operator). 2005-08-23 07:23:30 +00:00
Dmitry Stogov cfe1dcb6e9 Unicode support for strncasecmp() 2005-08-23 06:51:11 +00:00
Derick Rethans 377c3b3584 - Fixed another little buglet in the spprintf() formatters. 2005-08-23 06:48:55 +00:00
a02b4ebd63 ChangeLog update 2005-08-23 05:45:43 +00:00
Andrei Zmievski 26d10c5c76 Unicode support for strcasecmp(). 2005-08-22 22:17:19 +00:00
Ilia Alshanetsky 739c7d3869 Make dba extension support BerkleyDB 4.3. 2005-08-22 19:59:19 +00:00
Andrei Zmievski ce0001996b We should use u_memcpy() whenever possible, to simplify code. 2005-08-22 17:48:17 +00:00
Dmitry Stogov 641e6f11e4 Now fread() returns bool(false) on error instead of empty string 2005-08-22 16:42:39 +00:00
Dmitry Stogov 83bd44f1fd Don't apply "unicode" filters in non-unicode mode 2005-08-22 14:48:25 +00:00
Derick Rethans 8deeef8805 - Fixed typo. 2005-08-22 14:16:07 +00:00
Dmitry Stogov e404ee456b Fixed unicode support for ltrim() 2005-08-22 14:14:10 +00:00
Dmitry Stogov ab2e9bc9bd Unicode support 2005-08-22 13:32:46 +00:00
Dmitry Stogov 6b622046dc zend_is_callable() and zend_make_callable() were changed to return readable function name as zval (instead of string). 2005-08-22 12:22:16 +00:00
Dmitry Stogov 6fad26469c Fixed memory leak 2005-08-22 06:56:26 +00:00
65ece9ef3e ChangeLog update 2005-08-22 05:37:21 +00:00
Ilia Alshanetsky c8dedc16a8 Fixed bug #34191 (ob_gzhandler does not enforce trailing \0). 2005-08-21 16:02:25 +00:00
074d82cbe0 ChangeLog update 2005-08-21 05:33:38 +00:00
056084632b ChangeLog update 2005-08-20 05:39:48 +00:00
Andrei Zmievski 87f0bee331 Unicode support for strcmp()/strncmp(). 2005-08-19 23:15:36 +00:00
Andrei Zmievski d84da736d7 *** empty log message *** 2005-08-19 22:58:40 +00:00
Andrei Zmievski da4721427a *** empty log message *** 2005-08-19 22:33:39 +00:00
Andrei Zmievski 19e890651f *** empty log message *** 2005-08-19 22:01:21 +00:00
Andrei Zmievski 23086f5f1c Unicode support for ord() and chr(). 2005-08-19 22:00:21 +00:00
Andrei Zmievski fbcad1b63e This file should be used to keep track of extension upgrade progress.
Please add completed functions to the list.
2005-08-19 17:54:08 +00:00
Andrei Zmievski 676a3cf46e Use RETVAL_ASCII_STRINGL() here. 2005-08-19 17:53:03 +00:00
foobar 1b2e69a808 Proper NEWS language that everyone should be able to understand.. 2005-08-19 15:18:49 +00:00
Dmitry Stogov 90393d675f Unicode support 2005-08-19 13:20:16 +00:00
Dmitry Stogov 0475054c7c Unicode support 2005-08-19 11:56:03 +00:00
Rolland Santimano 973e98f51e - Unicode capable impl() of strrev() 2005-08-19 10:59:19 +00:00
Dmitry Stogov 80079885bb Quick fix (API was changed) 2005-08-19 10:55:05 +00:00
Dmitry Stogov b0e24970bb Unicode support cleanup 2005-08-19 10:54:26 +00:00
Dmitry Stogov d90d6c5d2b nstanceof operator shouldn't call __autoload() 2005-08-19 08:11:16 +00:00
Dmitry Stogov 2b5ebdde1d ZTS fix 2005-08-19 07:49:41 +00:00
Dmitry Stogov 974b209f78 ZTS fix 2005-08-19 07:26:13 +00:00
dec714885d ChangeLog update 2005-08-19 05:37:01 +00:00
Andrei Zmievski fd05d40cbe Rework range() to be able to work on binary strings and also on Unicode
code points. Binary strings are not interpreted as numeric.
2005-08-18 22:51:46 +00:00
Andrei Zmievski 0b036a8fdc Use u_totitle() instead of u_toupper() in ucwords(). 2005-08-18 22:37:22 +00:00
Andrei Zmievski fe71ae29d9 - Implement zend_codepoint_to_uchar().
- Rename and fix zend_get_unified_string_type() so that it does not
  allow mixing of binary and Unicode types.
2005-08-18 22:33:23 +00:00
Wez Furlong 07e355fc9c mf 5.1 2005-08-18 20:18:25 +00:00
Dmitry Stogov 8a749ee333 Suppoer for unicode exception messages 2005-08-18 15:42:46 +00:00
Dmitry Stogov 74dafa95d1 Unicode support for extract() 2005-08-18 15:14:08 +00:00
Antony Dovgal e27521e578 fix memleak 2005-08-18 15:13:15 +00:00
Ilia Alshanetsky 6ebfbd15d5 Fixed bug #34156 (memory usage remains elevated after memory limit is reached) 2005-08-18 15:02:10 +00:00
foobar 03cec74a0d Nuked EOLs from error messages 2005-08-18 13:34:04 +00:00
foobar dde3f89dd4 Nuked EOL from error message 2005-08-18 12:56:36 +00:00
foobar b385e0ad39 Nuke EOLs from error messages 2005-08-18 12:54:32 +00:00
foobar 98ce7bf37b - Removed EOL from error message 2005-08-18 12:40:17 +00:00
foobar 4985dd8da3 - Removed EOLs from error messages 2005-08-18 12:37:24 +00:00
foobar 45ed0b936b - Removed EOL from error message 2005-08-18 12:34:13 +00:00
Dmitry Stogov 3658f1fb7b Unicode support 2005-08-18 11:47:03 +00:00
Dmitry Stogov 474ff091a2 var_export() should escape \ and ' characters. 2005-08-18 11:13:50 +00:00
Dmitry Stogov dd7f14dd47 Fixed tests 2005-08-18 10:53:55 +00:00
Dmitry Stogov 0f026c9fb7 Unicode support 2005-08-18 10:18:40 +00:00
Dmitry Stogov 1865a48752 *** empty log message *** 2005-08-18 07:34:49 +00:00
Dmitry Stogov e56f9d2eea Unicode support 2005-08-18 07:16:52 +00:00
Dmitry Stogov 09a3c92df7 We don't need EMPY_STRING here. This function is execuited in non-unicode context only. 2005-08-18 06:33:44 +00:00
Dmitry Stogov 704b4d7b61 Fixed tests 2005-08-18 06:32:39 +00:00
Rolland Santimano fd4e6da642 - Removed 'proto' from description of internal funcns: ucfirst()/ucwords() 2005-08-18 05:53:46 +00:00
3d75fd980a ChangeLog update 2005-08-18 05:51:13 +00:00
Ilia Alshanetsky 9fc26c42c2 Fixed bug #33987 (php script as ErrorDocument causes crash in Apache 2). 2005-08-18 01:11:13 +00:00
Andrei Zmievski cac4e22635 *** empty log message *** 2005-08-17 23:12:24 +00:00
Rolland Santimano 412dac1576 Unicode-capable impl of ucwords() 2005-08-17 20:29:00 +00:00
Marcus Boerger 26d72ec348 - Fix TSRM 2005-08-17 20:02:45 +00:00
Marcus Boerger f8fa3c696a - Please use the maintainer switch
# It is very annoying to having to rebuild php completley several time
# a day just because a few here are lazy.
2005-08-17 19:52:03 +00:00
Andrei Zmievski 10fa6de30c *** empty log message *** 2005-08-17 18:16:44 +00:00
Andrei Zmievski 042bb6a306 Disallow mixing binary and Unicode types when T specifiers are used. 2005-08-17 18:15:18 +00:00
Andrei Zmievski 202bb697fd Fix bin2hex() to work on binary data and return strings of correct type. 2005-08-17 17:39:04 +00:00
Rolland Santimano ed370daef5 Unicode impl of ucfirst() 2005-08-17 17:33:19 +00:00
Andrei Zmievski 3d8b32a0e3 - Introduce 'y' specifier for functions expecting binary data.
- convert_to_binary() now uses convert_to_string() in non-Unicode mode.
2005-08-17 17:30:02 +00:00
Dmitry Stogov 8c33fcf7ce Unicode mode doesn't allow non-unicode properties 2005-08-17 17:07:52 +00:00
foobar cbb14bec35 Fix ZTS build 2005-08-17 17:02:46 +00:00
foobar 99e8386c27 News for PHP 6, nuked old news. 2005-08-17 16:57:15 +00:00
Andrei Zmievski eee20001fd Bump up Zend version to 3.0.0
# I think the changes made due to Unicode support justify it.
2005-08-17 16:43:11 +00:00
Andrei Zmievski 62ce334b73 *** empty log message *** 2005-08-17 16:31:36 +00:00
Dmitry Stogov 263d919a20 Unicode support for range() 2005-08-17 15:12:03 +00:00
Dmitry Stogov 21c6c8c8fe Proper handling of unicode strings with \0 in the middle 2005-08-17 15:11:41 +00:00
Dmitry Stogov 0df66e7eaa Unicode support 2005-08-17 14:16:05 +00:00
Dmitry Stogov 6d62ccc769 Unicode support 2005-08-17 14:01:06 +00:00
Dmitry Stogov 48def9a6ad Unicode support 2005-08-17 13:10:04 +00:00
Dmitry Stogov f4ea6b0656 Fixed bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault) 2005-08-17 11:57:10 +00:00
Dmitry Stogov 3509630024 trim() should accept objects with __toString() method 2005-08-17 11:36:32 +00:00
Rolland Santimano c98838037e php_u_trim_range(): Alloc UChar32 units rather than UChar 2005-08-17 10:26:02 +00:00
Dmitry Stogov 9854402cb7 Unicode support 2005-08-17 10:24:38 +00:00
Dmitry Stogov 8c63822f0d Fixed implode() bugs 2005-08-17 07:59:31 +00:00
foobar 5cf36ea50f Fix EOLs under winblows 2005-08-17 07:52:17 +00:00
Rolland Santimano 616089e772 Updated implode() impl as per Andrei's comments
[http://news.php.net/php.cvs/33457]
2005-08-17 07:14:12 +00:00
Zeev Suraski 63c6feaff7 Add SoapClient::__setSoapHeaders() 2005-08-17 07:04:50 +00:00
edb7d19f58 ChangeLog update 2005-08-17 05:32:47 +00:00
Ilia Alshanetsky e7ad6720fa Provide a common handler for "close".
Macro the name validation.
2005-08-16 23:10:36 +00:00
Marcus Boerger 5085c21d7e - TSRM Fix 2005-08-16 20:22:33 +00:00
Marcus Boerger 4a43e9c812 - TSRM Fix 2005-08-16 20:15:21 +00:00
Andrei Zmievski 06c3c85e19 md5() and md5_file() should return binary strings when raw_output is
set.
2005-08-16 19:45:00 +00:00
Andrei Zmievski c79fbfe6f3 And here 2005-08-16 19:43:23 +00:00
Andrei Zmievski b477936661 And here. 2005-08-16 18:22:22 +00:00
Andrei Zmievski 9bd026e6b4 Fix it here too 2005-08-16 18:21:04 +00:00
Andrei Zmievski 250726f95b Z_UNI* are the right macros to use. 2005-08-16 18:10:40 +00:00
Marcus Boerger a5f023a829 - Prevent E_STRICT from ending up as exception 2005-08-16 18:09:27 +00:00
Derick Rethans 1ee41e0d92 - Fixed a couple of bugs in the new smart_str macros, and allow them to
allocate two extra bytes (so that we can pad them with two \0's for UTF-16)
- Fixed usage of smart_str's in the PAD and INS_STRING macros.
2005-08-16 18:02:41 +00:00
Antony Dovgal 5adc3ce7c6 nuke unused vars 2005-08-16 16:57:59 +00:00
Dmitry Stogov 27f39c6826 Unicode support 2005-08-16 16:29:16 +00:00
Dmitry Stogov d0944d74f4 Unicode support 2005-08-16 15:09:51 +00:00
Dmitry Stogov 903406ef8f Unicode support 2005-08-16 14:33:02 +00:00
Ilia Alshanetsky b3d7ae9399 Fixed bug #34148 (+,- and . not supported as parts of scheme). 2005-08-16 14:10:13 +00:00
Rolland Santimano 3b4b22a8fc Unicode capable impl of implode() 2005-08-16 12:04:13 +00:00
Dmitry Stogov 8063984f4b Fixed memory leak 2005-08-16 10:49:38 +00:00
Dmitry Stogov f79fed6286 Unicode support 2005-08-16 10:18:43 +00:00
Dmitry Stogov 7b7a4aac86 Unicode support 2005-08-16 09:25:04 +00:00
Dmitry Stogov 238a40418b Unicode support 2005-08-16 09:11:00 +00:00
Rolland Santimano bc87019a80 Updated calls to php_trim() to provide arg for returned string type 2005-08-16 06:04:59 +00:00
Rolland Santimano c1b8eda121 php_trim() takes extra arg to determine string type to be returned 2005-08-16 06:02:56 +00:00
c746cfb753 ChangeLog update 2005-08-16 05:37:39 +00:00
Ilia Alshanetsky 99dd2d008f Input validation part 2. 2005-08-16 00:25:21 +00:00
foobar 88d0b2aa9f Fail gracefully if icu-config is not found 2005-08-15 23:36:52 +00:00
Ilia Alshanetsky 3ee4d80fc3 MFH: Chunk the output 2005-08-15 23:24:47 +00:00
Antony Dovgal 760313346a eliminate compile warning 2005-08-15 23:01:42 +00:00
foobar 58168205d4 This is like a virus..spread everywhere :) 2005-08-15 22:34:37 +00:00
foobar 81ed6ea1c2 DONE 2005-08-15 22:33:46 +00:00
foobar f8e4528a3d These are not defined anymore 2005-08-15 22:31:59 +00:00
foobar 077e356572 Goodbye PEAR 2005-08-15 22:30:40 +00:00
Pierre Joye 68a952af7b - if questions, rtfm 2005-08-15 22:18:15 +00:00
foobar a219e9801b Nuke PEAR 2005-08-15 22:17:04 +00:00
Pierre Joye cfa0568600 - add a little doc to redirect people to go-pear 2005-08-15 22:16:01 +00:00
Pierre Joye cd0c5e4ec4 - remove files 2005-08-15 22:08:52 +00:00
Pierre Joye 4e9d393cac - cvs delete is not recursive... 2005-08-15 22:05:55 +00:00
Pierre Joye 6467e78253 - some other (#1 out 2) 2005-08-15 22:00:26 +00:00
Pierre Joye e20284f52d - these files are outdated, /pear-core is the repository for pear and
respectivelly /pear for other pacakges.
  The install procedure has to be changed as well, as planed. (#1 out 2)
2005-08-15 21:59:06 +00:00
Marcus Boerger a24a21ecf0 - No c comment (+ old non unicode way not needed any longer) 2005-08-15 19:16:30 +00:00
Johannes Schlüter c5d862c254 - Fix leak with explode of empty unicode string 2005-08-15 19:12:59 +00:00
Dmitry Stogov 909e0a1c4e Unicode support 2005-08-15 17:29:07 +00:00
Rob Richards bbe63287e7 Fixed bug #34103 (line numbering not maintained in dom document) 2005-08-15 17:13:15 +00:00
Dmitry Stogov 82a504721e Unicode support 2005-08-15 16:13:02 +00:00
Ilia Alshanetsky 7cd5109184 input validation. 2005-08-15 16:01:43 +00:00
Dmitry Stogov a655a60999 Fixed memory leak 2005-08-15 14:41:31 +00:00
Dmitry Stogov e47587e189 Fixed several unicode related bugs 2005-08-15 14:39:18 +00:00
Dmitry Stogov 08fe0d1da3 Test engine is improved to support unicode mode 2005-08-15 14:37:55 +00:00
Dmitry Stogov 7061405249 Fixed trim()'s memory leak in unicode mode 2005-08-15 08:11:35 +00:00
Dmitry Stogov 0bdfac1169 Tests are fixed according to new var_dump()/pront_r() format (to pass in non-unicode mode) 2005-08-15 07:55:41 +00:00
Dmitry Stogov fbf8880292 Fixed var_dump() identation bug 2005-08-15 07:19:10 +00:00
Dmitry Stogov fceb6086b2 Fixed another print_r() bug 2005-08-15 07:12:52 +00:00
Dmitry Stogov feff569e96 Fixed print_r() in unicode mode. 2005-08-15 06:34:20 +00:00
de360b9d6d ChangeLog update 2005-08-15 05:41:46 +00:00
Marcus Boerger bc4202473e - Simplify and make work in all modes 2005-08-14 21:26:01 +00:00
Marcus Boerger b7e23d00c6 - Need to terminate [v]uspprintf() with two \0 2005-08-14 21:04:52 +00:00
Ilia Alshanetsky 383673b508 Fixed build. 2005-08-14 20:24:34 +00:00
Marcus Boerger 5e298240d6 - Where did my backslash vanish? 2005-08-14 20:12:51 +00:00
Marcus Boerger d0c6d77b9e - Handle different cases of the actual strings correctly 2005-08-14 20:11:05 +00:00
Marcus Boerger 8b9c131f55 - Initial support of easy way to generate unicode strings: [v]uspprinf()
# Same semantics as [v]spprintf, only it prints unicode strings instead of
# native strings. Atm it has a little problem since it length doesn't take
# the difference between UTF-16 code points vs units into account. But as
# long as no 4 byte codes are involved it should already run everything.
2005-08-14 17:14:42 +00:00
Marcus Boerger 444befd82b - Treat class_name in the exact same manner as prop_name before 2005-08-14 15:19:45 +00:00
Marcus Boerger cdd5e86cc2 - If prop_name is printed as unicode then class_name needs to be treated
in the exact same manner
2005-08-14 15:18:46 +00:00
Marcus Boerger a19585eb49 - Show classname very needed
- No 3rd " which doesn't help parsing
# Does the class name need to be printed as u"<name>" ?
2005-08-14 15:08:38 +00:00
Wez Furlong 7d44da10b6 tidy up implicit_mode handling; spotted by Nuno
There's probably a much more efficient way to do this than the current strchr stuff.
2005-08-14 13:48:29 +00:00
Johannes Schlüter 9ce521ec03 - Fix tab-completion in unicode mode and for constants. 2005-08-14 13:09:34 +00:00
6373103906 ChangeLog update 2005-08-14 05:35:00 +00:00
foobar 4414846b18 fix protos 2005-08-14 02:03:02 +00:00
foobar a8cf2db6dd Missed some "de" to "un" changes 2005-08-14 01:17:52 +00:00
foobar f73c6be9b7 - consistency fix, part 1/inf 2005-08-14 00:46:51 +00:00
Marcus Boerger b3b53b6640 - ntive is better than standard (Andrei) 2005-08-13 21:18:47 +00:00
Wez Furlong b282b4d1ec a bit of pedantic ws 2005-08-13 19:22:03 +00:00
Wez Furlong 77b183386c unicode enable COM parameters (but not method/property names yet) 2005-08-13 19:03:58 +00:00
Wez Furlong 57ae2f99b7 Fixup config.w32.
Implement unicode_decode() and unicode_encode(), as described in README.UNICODE.

Still need to decide how to handle errors here, since there is no error return,
and a conversion error is not necessarily fatal.
2005-08-13 13:43:31 +00:00
Wez Furlong 227a6d154b could have sworn that I did this already 2005-08-13 12:33:00 +00:00
Marcus Boerger ff1d752b81 - IS_STRING does not necessarily mean ascii so 'standard' is better
# Maybe we call them legacy strings
2005-08-13 10:19:31 +00:00
Marcus Boerger acca0d32b0 Add is_unicode(), is_binary() and is_buffer() 2005-08-13 10:16:04 +00:00
87ed16b368 ChangeLog update 2005-08-13 05:32:26 +00:00
Wez Furlong c2d2151654 make the icu library detection more friendly.
Also note that we can only probe for libraries after we've set up the
implicit php_build path.
2005-08-13 02:47:24 +00:00
Wez Furlong c2909b377b vs.net 2005 introduces 64-bit time_t.
I can't say that I think this is a great idea, but it does highlight a couple
of dodgy areas where we assume that ints and longs are the same thing as
time_t's.  Let's try to ensure that we declare structure fields and function
parameters with the correct type when we're talkingabout time_t's, to avoid
possibly nasty problems with passing the wrong sized thing around.
2005-08-13 02:23:29 +00:00
Marcus Boerger 7c14b0169a - Unicode
# We probably might want to move spprintf.c/h into Zend now
2005-08-13 01:31:14 +00:00
Marcus Boerger fe273229b7 - This might already be defined 2005-08-13 00:37:08 +00:00
Wez Furlong 8b7d070358 what they totally screw up on one hand, MS compilers almost compensate with on
the other.
2005-08-12 23:59:59 +00:00
Wez Furlong 45412770a2 sizeof(time_t) !== sizeof(int)
also, sizeof(timelib_sll) != sizeof(int)

We get loads of truncation errors int this code when we assign 64 values into smaller ints.
2005-08-12 23:46:42 +00:00
Wez Furlong f6276a2b8a zts fixes 2005-08-12 23:32:31 +00:00
Antony Dovgal 6bd0350af8 make valgrind and gcc happy 2005-08-12 23:21:29 +00:00
Antony Dovgal 29573483de initialize key type when adding next index 2005-08-12 22:53:13 +00:00
Antony Dovgal b40db3bcb8 allow default_charset & default_mimetype to be changed during runtime 2005-08-12 21:46:14 +00:00
Antony Dovgal d09b1b1e89 shut up warnings 2005-08-12 20:58:28 +00:00
Antony Dovgal df39154c83 nuke unused variables 2005-08-12 20:58:05 +00:00
Wez Furlong 4375c3fd7a /GB option is the default; remove it.
Add compiler version checks, as vs.net 2005 has dropped support for /YX and /GB
options, and deprecated ANSI stdio (in favour of more secure, non-standard
versions).
2005-08-12 20:05:19 +00:00
Antony Dovgal 363d0aa028 fix fgetc() & compile warnings 2005-08-12 19:27:45 +00:00
Antony Dovgal 9ab69a286b fix typo noticed by Nuno 2005-08-12 19:02:22 +00:00
Antony Dovgal 0714953a44 change ["var_name":private"] -> ["var_name:private"]
* I'm also not sure we want ["var_name:public"], but I left it as is.
2005-08-12 18:54:18 +00:00
Andrei Zmievski c699b51a0e Update. 2005-08-12 18:14:26 +00:00
Antony Dovgal 969c533b83 fix compile warnings 2005-08-12 18:03:55 +00:00
Andrei Zmievski 3abcd65161 *** empty log message *** 2005-08-12 17:29:21 +00:00
Andrei Zmievski 13a179d837 Add unicode macros for when Zend memory manager is disabled. 2005-08-12 17:14:21 +00:00
Antony Dovgal e458e45486 fix array_merge() adding one superfluous byte to the key 2005-08-12 16:49:20 +00:00
Antony Dovgal 079a748d3c fix php_u_trim() and compile warnings 2005-08-12 16:46:38 +00:00
foobar 02a8c3e50f MFB: - Fixed bug #33326 (Cannot build extensions with phpize on Macosx). 2005-08-12 15:16:52 +00:00
Dmitry Stogov af9ce19ef8 Fixed user function call in unicode mode 2005-08-12 14:58:29 +00:00
Dmitry Stogov 96a24404ce Unicode support 2005-08-12 14:57:58 +00:00
Dmitry Stogov 1015995a7c Fixed typo (ZVAL_LONG() -> ZVAL_DOUBLE()) 2005-08-12 14:57:10 +00:00
Dmitry Stogov fd469eb361 Unicode support 2005-08-12 14:11:16 +00:00
Sebastian Bergmann 52b001cc05 ZTS fixes. 2005-08-12 14:08:28 +00:00
foobar 3aad9e2048 MFB 2005-08-12 13:54:47 +00:00
Dmitry Stogov 369d59c20b Fixed str_repeat() bug 2005-08-12 13:41:15 +00:00
Dmitry Stogov 239f84c215 Fixed incorrect variable parsing in non-unicode mode 2005-08-12 13:27:38 +00:00
Dmitry Stogov e1627558ed Unicode support 2005-08-12 13:09:58 +00:00
Dmitry Stogov 3e7ab37d9f Unicode support 2005-08-12 12:59:20 +00:00
Dmitry Stogov 9c544c0695 Fixed support fot provate properties in unicode mode. 2005-08-12 12:58:41 +00:00
Dmitry Stogov f39c77dda0 Fixed SIGSEGV 2005-08-12 12:14:31 +00:00
Edin Kadribasic 95e4b75811 Added --enable-static-icu / --disable-static-icu windows configure
options that allow you to pick weather you want to link against static
or DLL version of the ICU library.
2005-08-12 11:37:44 +00:00
Dmitry Stogov 21c1109e0c Unicode support 2005-08-12 11:29:33 +00:00
Sebastian Bergmann 6b98cc4ef5 Patch by Michael Wallner, signed off by Edin Kadribasic. 2005-08-12 10:10:41 +00:00
foobar 3ed4aee952 - Some minor fixes 2005-08-12 09:10:04 +00:00
foobar 55c4c70753 more tabs 2005-08-12 09:05:21 +00:00
Sebastian Bergmann 6ad189f82a ZTS fixes. 2005-08-12 05:58:02 +00:00
31993aa76a ChangeLog update 2005-08-12 05:46:36 +00:00
Andi Gutmans 2233736cf6 - Add unicode INI settings 2005-08-12 05:30:02 +00:00
Ilia Alshanetsky f0bf07f2ad Fixed build, zend_error_noreturn was being defined twice. 2005-08-12 02:11:03 +00:00
foobar 8814b83419 No more versions here 2005-08-12 00:17:26 +00:00
foobar 735b138e56 No tabs in config* files! 2005-08-12 00:15:03 +00:00
foobar e24f745d23 - No more zend_multibyte.* 2005-08-12 00:10:28 +00:00
foobar 45ce16454f Not used 2005-08-12 00:08:28 +00:00
foobar 680a00ea48 Nuke unused code 2005-08-12 00:06:43 +00:00
foobar 4b8025987f - Unused 2005-08-12 00:06:15 +00:00
foobar 65210db48c Nuked unneeded multibyte stuff 2005-08-12 00:01:44 +00:00
foobar 8429f174b8 fix test 2005-08-11 23:50:04 +00:00
foobar 3eaa48b58f fix skip conditions 2005-08-11 23:45:13 +00:00
Andrei Zmievski 264cec8be6 Unicode support. 2005-08-11 23:36:07 +00:00
Andrei Zmievski b80cb7bd2f Unicode support 2005-08-11 23:35:03 +00:00
foobar 39072c42c4 missing entry 2005-08-11 22:59:57 +00:00
Antony Dovgal b58f366c5c MF5.1: fix #34078 (Reflection API problems in methods with boolean or null default values)
(andrei said to sara a few hours ago you may commit whatever you want until 9pm) (c) helly
if there are any problems with this patch - please tell me, I'll revert it immediately
2005-08-11 21:32:57 +00:00
Marcus Boerger ef36d692cd - Johannes did a great work on the shell
# Now he wants to maintain CLI ?-)
2005-08-11 20:45:27 +00:00
Marcus Boerger a4e1032836 - For internal classes we must auto generate the abstract class flags.
# Actually providing the flags while registering the class is not possible
# since that would require a major API change.
2005-08-11 20:32:01 +00:00
d5bf30a281 ChangeLog update 2005-08-11 05:39:41 +00:00
Frank M. Kromann f3030472de avoid version changes for future versions 2005-08-11 03:21:50 +00:00
Frank M. Kromann 64433c46ca rename dll's to php6 2005-08-11 03:16:08 +00:00
Marcus Boerger 95064517d3 - Support non static class loader methods 2005-08-11 01:19:11 +00:00
Wez Furlong b1ca475703 Probable fix for #34054. 2005-08-10 23:48:22 +00:00
Rasmus Lerdorf c95107492d MFB minor consistency cleanup 2005-08-10 23:35:51 +00:00
Ilia Alshanetsky 46ef5b1708 Fixed bug #34068 (Numeric string as array key not cast to integer in
wddx_deserialize()).
2005-08-10 22:36:20 +00:00
Marcus Boerger 601b8fd2e5 - Register new classes with spl_classes() 2005-08-10 22:01:15 +00:00
Marcus Boerger 20de5cc091 - Implement SplObjectStorage as announced during OSCON
# This class starts naming of new classes in Spl by prefix Spl as dicussed.
# The class reduces object storage complexity from O(n) to O(1) which is
# not possible in user space.
2005-08-10 21:56:01 +00:00
Marcus Boerger 1434e56f6d - WS 2005-08-10 21:53:53 +00:00
Marcus Boerger 9e38d04a7c - Add RecursiveFilterIterator
- Derive ParentIterator from RecursiveIterator
# Actually brought up by a user. It is of course better to filter first and
# do the recursion only for accepted values. Otherwise you would iterate
# children and possibly recurse into them just to ignore them later anyway.
2005-08-10 19:48:48 +00:00
Dmitry Stogov b0207d34a1 Fixed bug #34062 (Crash in catch block when many arguments are used) 2005-08-10 13:11:53 +00:00
Dmitry Stogov b0d3aec8ad Fixed bug #25359 (array_multisort() doesn't work in a function if array is global or reference) 2005-08-10 12:02:14 +00:00
Dmitry Stogov c52d7cb530 Fixed bug #34064 (arr[] as param to function in class gives invalid opcode) 2005-08-10 10:39:28 +00:00
Antony Dovgal c48f944a04 fix build 2005-08-10 10:28:18 +00:00
Marcus Boerger aa53dcddab - Support sttaic class loader methods 2005-08-10 08:31:57 +00:00
Dmitry Stogov b03e53836e Fixed bug #33940 (array_map() fails to pass by reference when called recursively) 2005-08-10 08:23:39 +00:00
Dmitry Stogov 655e19326d Fixed bug #29253 (array_diff with $GLOBALS argument fails) 2005-08-10 07:43:16 +00:00
Dmitry Stogov 604751ab87 Fixed bug #34045 (Buffer overflow with serialized object) 2005-08-10 06:37:27 +00:00
Dmitry Stogov 73c8a340cf Fixed test file (.inc.php -> .php) 2005-08-10 06:36:25 +00:00
d1d605e80f ChangeLog update 2005-08-10 05:38:30 +00:00
Marcus Boerger af2e8a3db5 - PEAR uses .php not .inc.php 2005-08-09 21:11:42 +00:00
Derick Rethans cef2cd485a - Fixed TSRM issue.
- Added guessed timezone to phpinfo() output.
- Initialize is_dst in some cases.
- Corrected some test cases.
2005-08-09 21:07:54 +00:00
Johannes Schlüter 69303b58a4 - Added option to strstr() and stristr() to get a particular haystack component 2005-08-09 20:49:19 +00:00
Ilia Alshanetsky fde8b6006e Missing patch bit. 2005-08-09 17:58:02 +00:00
Andrei Zmievski 2ae8d36a3c Remove old internal.h file. 2005-08-09 17:29:44 +00:00
foobar 1620ddcb95 reword 2005-08-09 15:07:18 +00:00
Ilia Alshanetsky 430dea8ef8 News and constants for parse_url(). 2005-08-09 14:40:59 +00:00
Ilia Alshanetsky ebc108124b Added option to parse_url() to retrieve a particular URL component. 2005-08-09 14:17:28 +00:00
Ilia Alshanetsky 726e1efe86 Added curl_setopt_array(), allowing setting of multiple cURL options.
Added CURLINFO_HEADER_OUT to facilitate request retrieval.
2005-08-09 14:14:55 +00:00
Derick Rethans a480ec36e7 - Fixed buildconf for PHP 6. 2005-08-09 09:52:45 +00:00
Sebastian Bergmann 77dfdccdd4 MFB: Sync with config.m4. 2005-08-09 09:46:52 +00:00
Derick Rethans 8f43323dee - Changing the API numbers, which might be a bit premature, but it allows
to differentiate between different branches.
- Bumbed the version number to 6.0.0-dev. I know we didn't discuss this yet,
  but I feel it should be 6.0. See mail to the mailinglist.
2005-08-09 08:47:58 +00:00
foobar 147ede8f37 UN 2005-08-09 08:08:20 +00:00
b10c43905e ChangeLog update 2005-08-09 05:39:37 +00:00
4556 changed files with 11283 additions and 1121805 deletions

No files matched your search

-359
View File
@@ -1,359 +0,0 @@
set $zts = 0
define ____executor_globals
if $zts
set $eg = ((zend_executor_globals) (*((void ***) tsrm_ls))[executor_globals_id-1])
else
set $eg = executor_globals
end
end
document ____executor_globals
portable way of accessing executor_globals
type "set $zts = 1" if you use --enable-maintainer-zts on your configure line
end
define dump_bt
set $t = $arg0
while $t
printf "[0x%08x] ", $t
if $t->function_state.function->common.function_name
printf "%s() ", $t->function_state.function->common.function_name
else
printf "??? "
end
if $t->op_array != 0
printf "%s:%d ", $t->op_array->filename, $t->opline->lineno
end
set $t = $t->prev_execute_data
printf "\n"
end
end
document dump_bt
dumps the current execution stack. usage: dump_bt executor_globals.current_execute_data
end
define printzv
set $ind = 1
____printzv $arg0 0
end
document printzv
prints content of zval
end
define ____printzv_contents
____executor_globals
set $zvalue = $arg0
if $zvalue.type == 0
set $typename = "NULL"
end
if $zvalue.type == 1
set $typename = "long"
end
if $zvalue.type == 2
set $typename = "double"
end
if $zvalue.type == 3
set $typename = "string"
end
if $zvalue.type == 4
set $typename = "array"
end
if $zvalue.type == 5
set $typename = "object"
end
if $zvalue.type == 6
set $typename = "bool"
end
if $zvalue.type == 7
set $typename = "resource"
end
if $zvalue.type == 8
set $typename = "constant"
end
if $zvalue.type == 9
set $typename = "const_array"
end
printf "(refcount=%d) %s: ", $zvalue.refcount, $typename
if $zvalue.type == 1
printf "%ld", $zvalue.value.lval
end
if $zvalue->type == 2
printf "%lf", $zvalue.value.dval
end
if $zvalue.type == 3
printf "\"%s\"(%d)", $zvalue.value.str.val, $zvalue.value.str.len
end
if $zvalue.type == 4
if ! $arg1
printf "{\n"
set $ind = $ind + 1
____print_ht $zvalue.value.ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
printf "}"
end
end
if $zvalue.type == 5
if ! $arg1
printf "(prop examination disabled due to a gdb bug)"
if $zvalue.value.obj.handlers->get_properties
# set $ht = $zvalue->value.obj.handlers->get_properties($zvalue)
# printf "{\n"
# set $ind = $ind + 1
# ____print_ht $ht
# set $ind = $ind - 1
# set $i = $ind
# while $i > 0
# printf " "
# set $i = $i - 1
# end
# printf "}"
end
end
end
if $zvalue.type == 6
if $zvalue.value.lval
printf "true"
else
printf "false"
end
end
if $zvalue.type == 7
printf "#%d", $zvalue.value.lval
end
printf "\n"
end
define ____printzv
____executor_globals
set $zvalue = $arg0
printf "[0x%08x] ", $zvalue
if $zvalue == $eg.uninitialized_zval_ptr
printf "*uninitialized* "
end
set $zcontents = *(struct _zval_struct *) $zvalue
if $arg1
____printzv_contents $zcontents $arg1
else
____printzv_contents $zcontents 0
end
end
define ____print_const_table
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $const = *(zend_constant *) $p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv_contents $const.value 0
set $p = $p->pListNext
end
end
define print_const_table
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_const_table $arg0
printf "}\n"
end
define ____print_ht
set $ht = $arg0
set $p = $ht->pListHead
while $p != 0
set $zval = *(struct _zval_struct **)$p->pData
set $i = $ind
while $i > 0
printf " "
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->arKey
else
printf "%d => ", $p->h
end
____printzv $zval 1
set $p = $p->pListNext
end
end
define print_ht
set $ind = 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0
printf "}\n"
end
document print_ht
dumps elements of HashTable made of zval
end
define printzn
____executor_globals
set $ind = 0
set $znode = $arg0
if $znode->op_type == 1
set $optype = "IS_CONST"
end
if $znode->op_type == 2
set $optype = "IS_TMP_VAR"
end
if $znode->op_type == 4
set $optype = "IS_VAR"
end
if $znode->op_type == 8
set $optype = "IS_UNUSED"
end
printf "[0x%08x] %s", $znode, $optype
if $znode->op_type == 1
printf ": "
____printzv &$znode->u.constant 0
end
if $znode->op_type == 2
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv ((union _temp_variable *)$tvar)->tmp_var 0
end
if $znode->op_type == 4
printf ": "
set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
____printzv *$tvar->var.ptr_ptr 0
end
if $znode->op_type == 8
printf "\n"
end
end
document printzn
print type and content of znode.
usage: printzn &opline->op1
end
define printzops
printf "op1 => "
printzn &execute_data->opline.op1
printf "op2 => "
printzn &execute_data->opline.op2
printf "result => "
printzn &execute_data->opline.result
end
document printzops
dump operands of the current opline
end
define zbacktrace
____executor_globals
dump_bt $eg.current_execute_data
end
document zbacktrace
prints backtrace.
This command is almost a short cut for
> (gdb) ____executor_globals
> (gdb) dump_bt $eg.current_execute_data
end
define zmemcheck
set $p = alloc_globals.head
set $stat = "?"
set $total_size = 0
if $arg0 != 0
set $not_found = 1
else
set $not_found = 0
end
printf " block size status file:line\n"
printf "-------------------------------------------------------------------------------\n"
while $p
set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test)
if $arg0 == 0 || (void *)$aptr == (void *)$arg0
if $p->magic == 0x7312f8dc
set $stat = "OK"
end
if $p->magic == 0x99954317
set $stat = "FREED"
end
if $p->magic == 0xfb8277dc
set $stat = "CACHED"
end
set $filename = strrchr($p->filename, '/')
if !$filename
set $filename = $p->filename
else
set $filename = $filename + 1
end
printf " 0x%08x ", $aptr
if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
printf "ZVAL?(%-2d) ", $p->size
else
printf "%-9d ", $p->size
end
set $total_size = $total_size + $p->size
printf "%-06s %s:%d", $stat, $filename, $p->lineno
if $p->orig_filename
set $orig_filename = strrchr($p->orig_filename, '/')
if !$orig_filename
set $orig_filename = $p->orig_filename
else
set $orig_filename = $orig_filename + 1
end
printf " <= %s:%d\n", $orig_filename, $p->orig_lineno
else
printf "\n"
end
if $arg0 != 0
set $p = 0
set $not_found = 0
else
set $p = $p->pNext
end
else
set $p = $p->pNext
end
end
if $not_found
printf "no such block that begins at 0x%08x.\n", $aptr
end
if $arg0 == 0
printf "-------------------------------------------------------------------------------\n"
printf " total: %d bytes\n", $total_size
end
end
document zmemcheck
show status of a memory block.
usage: zmemcheck [ptr].
if ptr is 0, all blocks will be listed.
end
-272
View File
@@ -1,272 +0,0 @@
PHP Coding Standards
====================
This file lists several standards that any programmer, adding or changing
code in PHP, should follow. Since this file was added at a very late
stage of the development of PHP v3.0, the code base does not (yet) fully
follow it, but it's going in that general direction. Since we are now
well into the version 4 releases, many sections have been recoded to use
these rules.
Code Implementation
-------------------
[0] Document your code in source files and the manual. [tm]
[1] Functions that are given pointers to resources should not free them
For instance, function int mail(char *to, char *from) should NOT free
to and/or from.
Exceptions:
- The function's designated behavior is freeing that resource. E.g. efree()
- The function is given a boolean argument, that controls whether or not
the function may free its arguments (if true - the function must free its
arguments, if false - it must not)
- Low-level parser routines, that are tightly integrated with the token
cache and the bison code for minimum memory copying overhead.
[2] Functions that are tightly integrated with other functions within the
same module, and rely on each other non-trivial behavior, should be
documented as such and declared 'static'. They should be avoided if
possible.
[3] Use definitions and macros whenever possible, so that constants have
meaningful names and can be easily manipulated. The only exceptions
to this rule are 0 and 1, when used as false and true (respectively).
Any other use of a numeric constant to specify different behavior
or actions should be done through a #define.
[4] When writing functions that deal with strings, be sure to remember
that PHP holds the length property of each string, and that it
shouldn't be calculated with strlen(). Write your functions in a such
a way so that they'll take advantage of the length property, both
for efficiency and in order for them to be binary-safe.
Functions that change strings and obtain their new lengths while
doing so, should return that new length, so it doesn't have to be
recalculated with strlen() (e.g. php_addslashes())
[5] NEVER USE strncat(). If you're absolutely sure you know what you're doing,
check its man page again, and only then, consider using it, and even then,
try avoiding it.
[6] Use PHP_* macros in the PHP source, and ZEND_* macros in the Zend
part of the source. Although the PHP_* macro's are mostly aliased to the
ZEND_* macros it gives a better understanding on what kind of macro you're
calling.
[7] When commenting out code using a #if statement, do NOT use 0 only. Instead
use "<cvs username here>_0". For example, #if FOO_0, where FOO is your
cvs user foo. This allows easier tracking of why code was commented out,
especially in bundled libraries.
[8] Do not define functions that are not available. For instance, if a
library is missing a function, do not define the PHP version of the
function, and do not raise a run-time error about the function not
existing. End users should use function_exists() to test for the
existence of a function
[9] Prefer emalloc(), efree(), estrdup(), etc. to their standard C library
counterparts. These functions implement an internal "safety-net"
mechanism that ensures the deallocation of any unfreed memory at the
end of a request. They also provide useful allocation and overflow
information while running in debug mode.
In almost all cases, memory returned to the engine must be allocated
using emalloc().
The use of malloc() should be limited to cases where a third-party
library may need to control or free the memory, or when the memory in
question needs to survive between multiple requests.
Naming Conventions
------------------
[1] Function names for user-level functions should be enclosed with in
the PHP_FUNCTION() macro. They should be in lowercase, with words
underscore delimited, with care taken to minimize the letter count.
Abbreviations should not be used when they greatly decrease the
readability of the function name itself.
Good:
'mcrypt_enc_self_test'
'mysql_list_fields'
Ok:
'mcrypt_module_get_algo_supported_key_sizes'
(could be 'mcrypt_mod_get_algo_sup_key_sizes'?)
'get_html_translation_table'
(could be 'html_get_trans_table'?)
Bad:
'hw_GetObjectByQueryCollObj'
'pg_setclientencoding'
'jf_n_s_i'
[2] If they are part of a "parent set" of functions, that parent should
be included in the user function name, and should be clearly related
to the parent program or function family. This should be in the form
of parent_*.
A family of 'foo' functions, for example:
Good:
'foo_select_bar'
'foo_insert_baz'
'foo_delete_baz'
Bad:
'fooselect_bar'
'fooinsertbaz'
'delete_foo_baz'
[3] Function names used by user functions should be prefixed
with "_php_", and followed by a word or an underscore-delimited list of
words, in lowercase letters, that describes the function. If applicable,
they should be declared 'static'.
[4] Variable names must be meaningful. One letter variable names must be
avoided, except for places where the variable has no real meaning or
a trivial meaning (e.g. for (i=0; i<100; i++) ...).
[5] Variable names should be in lowercase. Use underscores to separate
between words.
[6] Method names follow the 'studlyCaps' (also referred to as 'bumpy case'
or 'camel caps') naming convention, with care taken to minimize the
letter count. The initial letter of the name is lowercase, and each
letter that starts a new 'word' is capitalized.
Good:
'connect()'
'getData()'
'buildSomeWidget()'
Bad:
'get_Data()'
'buildsomewidget'
'getI()'
[7] Classes should be given descriptive names. Avoid using abbreviations
where possible. Each word in the class name should start with a capital
letter, with words underscore delimited. The class name should be prefixed
with the name of the 'parent set'.
Good:
'Curl'
'Foo_Bar'
Bad:
'foobar'
'foo_bar'
'FooBar'
Syntax and indentation
----------------------
[1] Never use C++ style comments (i.e. // comment). Always use C-style
comments instead. PHP is written in C, and is aimed at compiling
under any ANSI-C compliant compiler. Even though many compilers
accept C++-style comments in C code, you have to ensure that your
code would compile with other compilers as well.
The only exception to this rule is code that is Win32-specific,
because the Win32 port is MS-Visual C++ specific, and this compiler
is known to accept C++-style comments in C code.
[2] Use K&R-style. Of course, we can't and don't want to
force anybody to use a style he or she is not used to, but,
at the very least, when you write code that goes into the core
of PHP or one of its standard modules, please maintain the K&R
style. This applies to just about everything, starting with
indentation and comment styles and up to function declaration
syntax.
(see also http://www.catb.org/~esr/jargon/html/I/indent-style.html)
[3] Be generous with whitespace and braces. Always prefer:
if (foo) {
bar;
}
to:
if(foo)bar;
Keep one empty line between the variable declaration section and
the statements in a block, as well as between logical statement
groups in a block. Maintain at least one empty line between
two functions, preferably two.
[4] When indenting, use the tab character. A tab is expected to represent
four spaces. It is important to maintain consistency in indenture so
that definitions, comments, and control structures line up correctly.
[5] Preprocessor statements (#if and such) MUST start at column one. To
indent preprocessor directives you should put the # at the beginning
of a line, followed by any number of whitespace.
Documentation and Folding Hooks
-------------------------------
In order to make sure that the online documentation stays in line with
the code, each user-level function should have its user-level function
prototype before it along with a brief one-line description of what the
function does. It would look like this:
/* {{{ proto int abs(int number)
Returns the absolute value of the number */
PHP_FUNCTION(abs)
{
...
}
/* }}} */
The {{{ symbols are the default folding symbols for the folding mode in
Emacs and vim (set fdm=marker). Folding is very useful when dealing with
large files because you can scroll through the file quickly and just unfold
the function you wish to work on. The }}} at the end of each function marks
the end of the fold, and should be on a separate line.
The "proto" keyword there is just a helper for the doc/genfuncsummary script
which generates a full function summary. Having this keyword in front of the
function prototypes allows us to put folds elsewhere in the code without
messing up the function summary.
Optional arguments are written like this:
/* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
Returns a header object with the defined parameters */
And yes, please keep the prototype on a single line, even if that line
is massive.
New and Experimental Functions
-----------------------------------
To reduce the problems normally associated with the first public
implementation of a new set of functions, it has been suggested
that the first implementation include a file labeled 'EXPERIMENTAL'
in the function directory, and that the functions follow the
standard prefixing conventions during their initial implementation.
The file labelled 'EXPERIMENTAL' should include the following
information:
Any authoring information (known bugs, future directions of the module).
Ongoing status notes which may not be appropriate for CVS comments.
Aliases & Legacy Documentation
-----------------------------------
You may also have some deprecated aliases with close to duplicate
names, for example, somedb_select_result and somedb_selectresult. For
documentation purposes, these will only be documented by the most
current name, with the aliases listed in the documentation for
the parent function. For ease of reference, user-functions with
completely different names, that alias to the same function (such as
highlight_file and show_source), will be separately documented. The
proto should still be included, describing which function is aliased.
Backwards compatible functions and names should be maintained as long
as the code can be reasonably be kept as part of the codebase. See
/phpdoc/README for more information on documentation.
-2
View File
@@ -1,2 +0,0 @@
For the list of people who've put work into PHP, please see
http://www.php.net/credits.php
-14191
View File
File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
BIN
View File
Binary file not shown.
-527
View File
@@ -1,527 +0,0 @@
List of PHP maintainers
=======================
Maintenance legend
------------------
Supported: Someone is actually paid to look after this.
Maintained: Someone actually looks after it.
Odd Fixes: It has a maintainer but they don't have time to do
much other than throw the odd patch in. See below.
Orphan: No current maintainer [but maybe you could take the
role as you write your new code].
Obsolete: Old code. Something tagged obsolete generally means
it has been replaced by a better system and you
should be using that.
Unknown: Not known at this time.
Status legend
-------------
Working: Working under both Windows and Unix.
Windows: Working only under Windows.
Unix: Working only under Unix.
Experimental: Under development or initial release.
Not Working: Not working.
Unknown: Status unknown.
== Server APIs ==
-------------------------------------------------------------------------------
EXTENSION: aolserver
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: apache
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: apache_hooks
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: apache2filter
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: apache2handler
PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: caudium
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: cgi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: cli
MAINTENANCE: Marcus Boerger <helly@php.net>, Edin Kadribasic <edink@php.net>
STATUS: Working
SINCE: 4.3.0
-------------------------------------------------------------------------------
EXTENSION: continuity
PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: date
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: embed
PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: isapi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: milter
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: nsapi
PRIMARY MAINTAINER: Uwe Schindler <thetaphi@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: phttpd
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: pi3web
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: roxen
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: thttpd
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Odd fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tux
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: webjames
PRIMARY MAINTAINER: Alex Waugh <alex@alexwaugh.com>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
== Database extensions ==
-------------------------------------------------------------------------------
EXTENSION: dba
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: DBM abstraction for db2, db3, db4, dbm, ndbm, gdbm, ini
-------------------------------------------------------------------------------
EXTENSION: dbase
MAINTENANCE: Orphaned
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: dbx
PRIMARY MAINTAINER: Marc Boeren <M.Boeren@guidance.nl>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.6
COMMENT: DB abstraction for odbc, mysql, pgsql, mssql, fbsql and more, see documentation
-------------------------------------------------------------------------------
EXTENSION: fbsql
PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: informix
PRIMARY MAINTAINER: Danny Heijl <Danny.Heijl@cevi.be>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ingres_ii
PRIMARY MAINTAINER: David Hénot <henot@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: interbase
PRIMARY MAINTAINER: Ard Biesheuvel <ard@ard.nu>, Jouni Ahto <jouni.ahto@exdec.fi>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: msql
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mssql
PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Tested on phpts and isapi versions
-------------------------------------------------------------------------------
EXTENSION: mysql
PRIMARY MAINTAINER: Zak Greant <zak@mysql.com>, Georg Richter <georg@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mysqli
PRIMARY MAINTAINER: Georg Richter <georg@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: oci8
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: odbc
PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Working
-------------------------------------------------------------------------------
EXTENSION: oracle
MAINTENANCE: Orphaned
STATUS: Working
COMMENT: Using the new OCI8 driver is encouraged where possible.
-------------------------------------------------------------------------------
EXTENSION: ovrimos
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: pgsql
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
MAINTENANCE: Maintained
STATUS: Working
COMMENT: Use PostgreSQL 7.0.x or later. PostgreSQL 6.5.3 or less have fatal bug.
-------------------------------------------------------------------------------
EXTENSION: sqlite
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0 (Since 4.3.2 in PECL)
COMMENT: Integrates SQLite embeddable SQL database engine.
-------------------------------------------------------------------------------
EXTENSION: sybase
MAINTENANCE: Unknown
STATUS: Not Working
-------------------------------------------------------------------------------
EXTENSION: sybase_ct
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
== XML extensions ==
-------------------------------------------------------------------------------
EXTENSION: dom
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: simplexml
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: soap
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
MAINTENANCE: Maintained
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: wddx
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlrpc
PRIMARY MAINTAINER: Dan Libby
MAINTENANCE: UNKNOWN
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: xsl
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
== Other extensions ==
-------------------------------------------------------------------------------
EXTENSION: bcmath
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: calendar
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: com_dotnet
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Windows
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: cpdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ctype
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: curl
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: exif
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.2
-------------------------------------------------------------------------------
EXTENSION: fam
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: fdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: filepro
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: ftp
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gettext
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: hwapi
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: iconv
PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: imap
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: ircg
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: ldap
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mbstring
PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mcrypt
PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mcve
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: mhash
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mime_magic
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Deprecated
STATUS: Experimental
COMMENT: Use PECL's fileinfo extension instead
-------------------------------------------------------------------------------
EXTENSION: ming
PRIMARY MAINTAINER: Frank M. Kromann
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: mnogosearch
PRIMARY MAINTAINER: Sergey Kartashoff <gluke@mail.ru>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: mono
PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: msession
PRIMARY MAINTAINER Mark L. Woodward <mlwmohawk@mohawksoft.com>
MAINTENANCE: Maintained
STATUS: Working/Experimental
COMMENT: Tested on Linux, should work on other UNIX platforms. Backend server code can compile under Windows.
-------------------------------------------------------------------------------
EXTENSION: ncurses
PRIMARY MAINTAINER Ilia Alshanetsky <iliaa@php.net>, Wez Furlong <wez@php.net>, Hartmut Holzgraefe <hholzgra@php.net>, Georg Richter <georg@php.net>
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.4
-------------------------------------------------------------------------------
EXTENSION: pcntl
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: pcre
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pfpro
PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: posix
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: pspell
PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
MAINTENANCE: Unknown
STATUS: Unknown
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: readline
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: recode
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: session
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: shmop
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Odd Fixes
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: sockets
PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org>
MAINTENANCE: Maintained
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: spl
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0.0
-------------------------------------------------------------------------------
EXTENSION: sysvmsg
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvsem
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvshm
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tidy
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: tokenizer
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: yaz
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
MAINTENANCE: Maintained
STATUS: Unknown
SINCE: 4.0.1
-------------------------------------------------------------------------------
EXTENSION: zlib
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
-1535
View File
File diff suppressed because it is too large. Load diff
-68
View File
@@ -1,68 +0,0 @@
--------------------------------------------------------------------
The PHP License, Version 3.0
Copyright (c) 1999 - 2005 The PHP Group. 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 name "PHP" must not be used to endorse or promote products
derived from this software without prior written permission. For
written permission, please contact group@php.net.
4. Products derived from this software may not be called "PHP", nor
may "PHP" appear in their name, without prior written permission
from group@php.net. You may indicate that your software works in
conjunction with PHP by saying "Foo for PHP" instead of calling
it "PHP Foo" or "phpfoo"
5. The PHP Group 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 the PHP Group. No one other than the PHP Group has
the right to modify the terms applicable to covered code created
under this License.
6. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes PHP, freely available from
<http://www.php.net/>".
THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``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 THE PHP
DEVELOPMENT TEAM OR ITS 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.
--------------------------------------------------------------------
This software consists of voluntary contributions made by many
individuals on behalf of the PHP Group.
The PHP Group can be contacted via Email at group@php.net.
For more information on the PHP Group and the PHP project,
please see <http://www.php.net>.
This product includes the Zend Engine, freely available at
<http://www.zend.com>.
-23
View File
@@ -1,23 +0,0 @@
#
# Zend
#
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
$(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
-78
View File
@@ -1,78 +0,0 @@
mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
INSTALL = $(top_srcdir)/build/shtool install -c
INSTALL_DATA = $(INSTALL) -m 644
DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
CORE_HEADERS = Zend/ TSRM/ include/ main/ main/streams/ regex/ ext/standard/
INSTALL_HEADERS = $(CORE_HEADERS) $(INSTALL_EXT_HEADERS)
all: $(all_targets)
@echo
@echo "Build complete."
@echo "(It is safe to ignore warnings about tempnam and tmpnam)."
@echo
build-modules: $(PHP_MODULES)
libphp5.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 $@
-@$(LIBTOOL) --silent --mode=install cp libphp5.la $(phptempdir)/libphp5.la >/dev/null 2>&1
libs/libphp5.bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
$(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp5.so
install: $(all_targets) $(install_targets)
install-sapi: $(OVERALL_TARGET)
@echo "Installing PHP SAPI module: $(PHP_SAPI)"
-@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
-@if test ! -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
if test -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); \
break; \
fi; \
done; \
fi
@$(INSTALL_IT)
install-modules: build-modules
@test -d modules && \
$(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
@echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
@rm -f modules/*.la >/dev/null 2>&1
@$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
install-su: install-pear
test: all
-@if test ! -z $(PHP_EXECUTABLE) && test -x $(PHP_EXECUTABLE); then \
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' -d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/; \
elif test ! -z $(SAPI_CLI_PATH) && test -x $(SAPI_CLI_PATH); then \
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php $(TESTS); \
else \
echo "ERROR: Cannot run tests without CLI sapi."; \
fi
clean:
find . -name \*.lo -o -name \*.o | xargs rm -f
find . -name \*.la -o -name \*.a | xargs rm -f
find . -name \*.so | xargs rm -f
find . -name .libs -a -type d|xargs rm -rf
rm -f libphp5.la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp5.module buildmk.stamp
$(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
find . -name Makefile | xargs rm -f
.PHONY: all clean install distclean test
.NOEXPORT:
-893
View File
@@ -1,893 +0,0 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? ??? 2005, PHP 5.1
- Updated bundled libraries in Windows distribution. (Edin)
. zlib 1.2.3
. curl 7.14.0
. openssl 0.9.8
. ming 0.3b
. libpq (PostgreSQL) 8.0.1
- Fixed "make test" to work for phpized extensions. (Hartmut, Jani)
- Fixed failing queries (FALSE returned) with mysqli_query() on 64 bit systems.
(Andrey)
- Fixed bug #33999 (object remains object when cast to int). (Dmitry)
- Fixed bug #33996 (No information given for fatal error on passing invalid
value to typed argument). (Dmitry)
- Fixed bug #33989 (extract($GLOBALS,EXTR_REFS) crashes PHP). (Dmitry)
- Fixed bug #33967 (misuse of Exception constructor doesn't display errorfile).
(Jani)
- Fixed bug #33958 (duplicate cookies and magic_quotes=off may cause a crash).
(Ilia)
- Fixed bug #33917 (number_format() output with > 1 char separators). (Jani)
- Fixed bug #33904 (input array keys being escaped when magic quotes is off).
(Ilia)
- Fixed bug #33899 (CLI: setting extension_dir=some/path extension=foobar.so
does not work). (Jani)
- Fixed bug #33882 (CLI was looking for php.ini in wrong path). (Hartmut)
- Fixed bug #33869 (strtotime() problem with "+1days" format). (Ilia)
- Fixed bug #33841 (pdo sqlite driver forgets to update affected column count
on execution of prepared statments). (Ilia)
- Fixed bug #33837 (Informix ESQL version numbering schema changed). (Jani)
- Fixed bug #33802 (throw Exception in error handler causes crash). (Dmitry)
- Fixed bug #33723 (php_value overrides php_admin_value). (Dmitry)
- Fixed bug #33710 (ArrayAccess objects doen't initialize $this). (Dmitry)
- Fixed bug #33690 (Crash setting some ini directives in httpd.conf). (Rasmus)
- Fixed bug #33578 (strtotime() problem with "Oct17" format). (Derick)
- Fixed bug #33558 (warning with nested calls to functions returning by
reference). (Dmitry)
- Fixed bug #32139 (SOAP client does not auto-handle base64 encoding). (Ilia)
- Fixed bug #32010 (Memory leak in mssql_fetch_batch). (fmk)
- Fixed bug #29334 (win32 mail() provides incorrect Date: header). (Jani)
14 Jul 2005, PHP 5.1 Beta 3
- Upgraded bundled SQLite library for PDO:SQLite to 3.2.2 (Ilia)
- Moved extensions to PECL:
. ext/dbx (Jani, Derick)
. ext/ircg (Jani, Derick)
- Added PDO_MYSQL_ATTR_USE_BUFFERED_QUERY parameter for pdo_mysql. (Ilia)
- Added date_timezone_set() function to set the timezone that the date
functions will use. (Derick)
- Added pg_fetch_all_columns() function to fetch all values of a column from
a result cursor. (Ilia)
- Added support for LOCK_EX flag for file_put_contents(). (Ilia)
- Implemented feature request #33452 (Year belonging to ISO week). (Derick)
- Fixed support for shared extensions on AIX. (Dmitry)
- Fixed memory corruption in pg_copy_from() in case the as_null parameter was
passed. (Derick)
- Fixed crash inside stream_get_line() when length parameter equals 0. (Ilia)
- Fixed bug #33673 (Added detection for partially uploaded files). (Ilia)
- Fixed bug #33605 (substr_compare() crashes with negative offset and length).
(Tony)
- Fixed bug #33597 (setcookie() "expires" date format doesn't comply with RFC).
(Tony)
- Fixed bug #33588 (LDAP: RootDSE query not possible). (Jani)
- Fixed bug #33578 (strtotime() doesn't understand "11 Oct" format). (Derick)
- Fixed bug #33562 (date("") crashes). (Derick)
- Fixed bug #33536 (strtotime() defaults to now even on non time string).
(Derick)
- Fixed bug #33532 (Different output for strftime() and date()). (Derick)
- Fixed bug #33523 (Memory leak in xmlrpc_encode_request()). (Ilia)
- Fixed bug #33520 (crash if safe_mode is on and session.save_path is changed).
(Dmitry)
- Fixed bug #33512 (Add missing support for isset()/unset() overloading to
complement the property get/set methods). (Dmitry)
- Fixed bug #33491 (crash after extending MySQLi internal class). (Tony)
- Fixed bug #33475 (cURL handle is not closed on curl_close(). (Ilia)
- Fixed bug #33469 (Compile error undefined reference to ifx_checkAPI). (Jani)
- Fixed bug #33433 (strtoll not available on Tru64). (Jani, Derick)
- Fixed bug #33415 (strtotime() related bugs). (Derick)
- Fixed bug #32660 (Assignment by reference causes crash when field access is
overloaded (__get)). (Dmitry)
- Fixed bug #31358 (Older GCC versions do not provide portable va_copy()).
(Jani)
- Fixed bug #31158 (array_splice on $GLOBALS crashes). (Dmitry)
- Fixed bug #33156 (cygwin version of setitimer doesn't accept ITIMER_PROF).
(Nuno)
- Fixed bug #30828 (debug_backtrace() reports incorrect class in overridden
methods). (Dmitry)
- Fixed bug #30519 (Interface not existing says Class not found). (Dmitry)
- Fixed bug #30096 (gmmktime does not return the corrent time). (Derick)
- Fixed bug #30052 (Crash on shutdown after odbc_pconnect()). (Edin)
- Fixed bug #28377 (debug_backtrace is intermittently passing args). (Dmitry)
- Fixed bug #28072 (static array with some constant keys will be incorrectly
ordered). (Dmitry)
- Fixed bug #27268 (Bad references accentuated by clone). (Dmitry)
22 Jun 2005, PHP 5.1 Beta 2
- Improved PHP extension loading mechanism with support for module dependencies
and conflicts. (Jani, Dmitry)
- Allowed return by reference from internal functions. (Marcus, Andi, Dmitry)
- Rewrote strtotime() with support for timezones and many new formats.
Implements feature requests #21399, #26694, #28088, #29150, #29585 and
#29595. (Derick)
- Added bindto socket context option. (Ilia)
- Added offset parameter to the stream_copy_to_stream() function. (Ilia)
- Added offset & length parameters to substr_count() function. (Ilia)
- Fixed inheritance check to control return by reference and pass by reference
correctly (ArrayAccess can no longer support references correctly).
(Marcus, Andi, Dmitry)
- Fixed PDO shutdown problem (possible inifite loop running rollback on
shutdown). (Wez)
- Fixed PECL bug #3714 (PDO: beginTransaction doesn't work if you're in
auto-commit mode). (Wez)
- Fixed bug #33427 (ext/odbc: check if unixODBC header file exists). (Jani)
- Fixed bug #33389 (double free() when exporting a ReflectionClass). (Marcus)
- Fixed bug #33382 (array_reverse() fails after *sort()),
introduced by zend_hash_sort() optimizations in HEAD. (Tony)
- Fixed bug #33340 (CLI Crash when calling php:function from XSLT). (Rob)
- Fixed bug #33318 (throw 1; results in Invalid opcode 108/1/8). (Dmitry)
- Fixed bug #33312 (ReflectionParameter methods do not work correctly).
(Dmitry)
- Fixed bug #33299 (php:function no longer handles returned dom objects).
(Rob, Joe Orton)
- Fixed bug #33286 (nested array_walk() calls and user array compare functions
broken; FCI cache). (Andrei, patch from m.bretz@metropolis-ag.de)
- Fixed bug #33277 (private method accessed by child class). (Dmitry)
- Fixed bug #33257 (array_splice() inconsistent when passed function instead
of variable). (Dmitry)
- Fixed bug #33212 ([GCC 4]: 'zend_error_noreturn' aliased to external symbol
'zend_error'). (Dmitry)
- Fixed bug #33150 (shtool: insecure temporary file creation). (Jani)
- Fixed bug #33136 (method offsetSet in class extended from ArrayObject crash
PHP). (Marcus)
- Fixed bug #32160 (copying a file into itself leads to data loss). (Ilia)
- Fixed bug #31256 (PHP_EVAL_LIBLINE configure macro does not handle -pthread).
(Jani)
- Fixed bug #31213 (Sideeffects caused by fix of bug #29493). (Dmitry)
- Fixed bug #31054 (safe_mode & open_basedir checks only check first
include_path value). (Ilia)
- Fixed bug #29896 (Backtrace argument list out of sync). (Dmitry)
- Fixed bug #29683 (headers_list() returns empty array). (Tony)
- Fixed bug #28355 (glob wont error if dir is not readable). (Hartmut)
- Fixed bug #15854 (boolean ini options may be incorrectly displayed as Off
when they are On). (Tony)
- Fixed bugs #14561, #20382, #26090, #26320, #28024, #30532, #32086, #32270,
#32555, #32588, #33056 (strtotime() related bugs). (Derick)
10 Jun 2005, PHP 5.1 Beta 1
- Upgraded PCRE library to version 5.0. (Andrei)
- Removed php_check_syntax() function which never worked properly. (Ilia)
- Removed garbage manager in Zend Engine which results in more aggressive
freeing of data. (Dmitry, Andi)
- Moved extensions to PECL:
. ext/cpdf (Tony, Derick)
. ext/dio (Jani, Derick)
. ext/fam (Jani, Derick)
. ext/ingres_ii (Jani, Derick)
. ext/mnogosearch (Jani, Derick)
. ext/w32api (Jani, Derick)
. ext/yp (Jani, Derick)
- Changed sha1_file() and md5_file() functions to use streams instead of
low level IO. (Uwe)
- Changed abstract private methods to be not allowed anymore. (Stas)
- Changed stream_filter_(ap|pre)pend() to return resource. (Sara)
- Changed mysqli_exception and sqlite_exception to use RuntimeException as base
if SPL extension is present. (Georg, Marcus)
- Improved interactive mode of PHP CLI (php -a). (Johannes, Marcus)
- Improved performance of:
. general execution/compilation. (Andi, Thies, Sterling, Dmitry, Marcus)
. switch() statement. (Dmitry)
. several array functions. (Marcus)
. virtual path handling by adding a realpath() cache. (Andi)
. variable fetches. (Andi)
. magic method invocations. (Marcus)
- Improved support for embedded server in mysqli. (Georg)
- Improved mysqli extension. (Georg)
. added constructor for mysqli_stmt and mysqli_result classes
. added new function mysqli_get_charset()
. added new function mysqli_set_charset()
. added new class mysqli_driver
. added new class mysqli_warning
. added new class mysqli_execption
. added new class mysqli_sql_exception
- Improved SPL extension. (Marcus)
. added standard hierarchy of Exception classes
. added interface Countable
. added interfaces Subject and Observer
. added spl_autoload*() functions
. converted several 5.0 examples into c code
. added class FileObject
. added possibility to use a string with class_parents() and
class_implements(). (Andrey)
- Added man pages for "phpize" and "php-config" scripts. (Jakub Vrana)
- Added support for .cc files in extensions. (Brian)
- Added PHP_INT_MAX and PHP_INT_SIZE as predefined constants. (Andrey)
- Added user opcode API that allow overloading of opcode handlers. (Dmitry)
- Added an optional remove old session parameter to session_regenerate_id(). (Ilia)
- Added array type hinting. (Dmitry)
- Added the tidy_get_opt_doc() function to return documentation for
configuration options in tidy. (Patch by: nlopess@php.net)
- Added support for .cc files in extensions. (Brian)
- Added imageconvolution() function which can be used to apply a custom 3x3
matrix convolution to an image. (Pierre)
- Added optional first parameter to XsltProcessor::registerPHPFunctions to only
allow certain functions to be called from XSLT. (Christian)
- Added the ability to override the autotools executables used by the buildconf
script via the PHP_AUTOCONF and PHP_AUTOHEADER environmental variables. (Jon)
- Added several new functions to support the PostgreSQL v3 protocol introduced
in PostgreSQL 7.4. (Christopher)
. pg_transaction_status() - in-transaction status of a database connection.
. pg_query_params() - execution of parameterized queries.
. pg_prepare() - prepare named queries.
. pg_execute() - execution of named prepared queries.
. pg_send_query_params() - async equivalent of pg_query_params().
. pg_send_prepare() - async equivalent of pg_prepare().
. pg_send_execute() - async equivalent of pg_execute().
. pg_result_error_field() - highly detailed error information,
most importantly the SQLSTATE error code.
. pg_set_error_verbosity() - set verbosity of errors.
- Added optional fifth parameter "count" to preg_replace_callback() and
preg_replace() to count the number of replacements made. FR #32275. (Andrey)
- Added optional third parameter "charlist" to str_word_count() which
contains characters to be considered as word part. FR #31560. (Andrey, Ilia)
- Added interface Serializeable. (Stanislav, Marcus)
- Added pg_field_type_oid() PostgreSQL function. (mauroi at digbang dot com)
- Added zend_declare_property_...() and zend_update_property_...()
API functions for bool, double and binary safe strings. (Hartmut)
- Added possibility to access INI variables from within .ini file. (Andrei)
- Added variable $_SERVER['REQUEST_TIME'] containing request start time. (Ilia)
- Added optional float parameter to gettimeofday(). (Ilia)
- Added apache_reset_timeout() Apache1 function. (Rasmus)
- Added sqlite_fetch_column_types() 3rd argument for arrays. (Ilia)
- Added optional offset parameter to stream_get_contents() and
file_get_contents(). (Ilia)
- Added optional maxlen parameter to file_get_contents(). (Ilia)
- Added SAPI hook to get the current request time. (Rasmus)
- Added new functions:
. array_diff_key() (Andrey)
. array_diff_ukey() (Andrey)
. array_intersect_key() (Christiano Duarte)
. array_intersect_ukey() (Christiano Duarte)
. array_product() (Andrey)
. DomDocumentFragment::appendXML() (Christian)
. fputcsv() (David Sklar)
. htmlspecialchars_decode() (Ilia)
. inet_pton() (Sara)
. inet_ntop() (Sara)
. mysqli::client_info property (Georg)
. posix_access() (Magnus)
. posix_mknod() (Magnus)
. SimpleXMLElement::registerXPathNamespace() (Christian)
. stream_context_get_default() (Wez)
. stream_socket_enable_crypto() (Wez)
. stream_wrapper_unregister() (Sara)
. stream_wrapper_restore() (Sara)
. stream_filter_remove() (Sara)
. time_sleep_until() (Ilia)
- Added DomDocument::$recover property for parsing not well-formed
XML Documents. (Christian)
- Added Cursor support for MySQL 5.0.x in mysqli (Georg)
- Added proxy support to ftp wrapper via http. (Sara)
- Added MDTM support to ftp_url_stat. (Sara)
- Added zlib stream filter support. (Sara)
- Added bz2 stream filter support. (Sara)
- Added HTTP/1.1 and chunked encoding support to http:// wrapper. (Sara)
- Added max_redirects context option that specifies how many HTTP
redirects to follow. (Ilia)
- Added support of parameter=>value arrays to xsl_xsltprocessor_set_parameter().
(Tony)
- Fixed extension initialization to respect dependancies between extensions.
(Wez)
- Fixed ext/mysqli to allocate less memory when fetching bound params
of type (MEDIUM|LONG)BLOB/(MEDIUM|LONG)TEXT. (Andrey)
- Fixed memory corruption in ImageTTFText() with 64bit systems. (Andrey)
- Fixed memory corruption in stristr(). (Derick)
- Fixed segfaults when CURL callback functions throw exception. (Tony)
- Fixed a problem with SPL iterators aggregating the innner iterator. (Marcus)
- Fixed bug with $HTTP_RAW_POST_DATA not getting set. (Brian)
- Fixed bug in mysql::client_version(). (Georg)
- Fixed ZTS destruction. (Marcus)
- Fixed bug #33268 (iconv_strlen() works only with a parameter of < 3 in
length). (Ilia)
- Fixed bug #33243 (ze1_compatibility_mode does not work as expected). (Dmitry)
- Fixed bug #33242 (Mangled error message when stream fails). (Derick)
- Fixed bug #33222 (segfault when CURL handle is closed in a callback). (Tony)
- Fixed bug #33214 (odbc_next_result does not signal SQL errors with
2-statement SQL batches). (rich at kastle dot com, Tony)
- Fixed bug #33210 (relax jpeg recursive loop protection). (Ilia)
- Fixed bug #33200 (preg_replace(): magic_quotes_sybase=On makes 'e' modifier
misbehave). (Jani)
- Fixed bug #33185 (--enable-session=shared does not build). (Jani)
- Fixed bug #33171 (foreach enumerates private fields declared in base
classes). (Dmitry)
- Fixed bug #33164 (Soap extension incorrectly detects HTTP/1.1). (Ilia)
- Fixed bug #33116 (crash when assigning class name to global variable in
__autoload). (Dmitry)
- Fixed bug #33090 (mysqli_prepare() doesn't return an error). (Georg)
- Fixed bug #33076 (str_ireplace() incorrectly counts result string length
and may cause segfault). (Tony)
- Fixed bug #33072 (Add a safemode/open_basedir check for runtime
"session.save_path" change using session_save_path() function). (Rasmus)
- Fixed bug #33070 (Improved performance of bzdecompress() by several orders
of magnitude). (Ilia)
- Fixed bug #33059 (crash when moving xml attribute set in dtd). (Ilia)
- Fixed bug #33057 (Don't send extraneous entity-headers on a 304 as per
RFC 2616 section 10.3.5) (Rasmus, Choitel)
- Fixed bug #33019 (socket errors cause memory leaks in php_strerror()).
(jwozniak23 at poczta dot onet dot pl, Tony).
- Fixed bug #33017 ("make distclean" gives an error with VPATH build). (Jani)
- Fixed bug #33013 ("next month" was handled wrong while parsing dates).
(Derick)
- Fixed bug #32993 (implemented Iterator function current() don't throw
exception). (Dmitry)
- Fixed bug #32956 (mysql_bind_result() doesn't support MYSQL_TYPE_NULL). (Georg)
- Fixed bug #32947 (Incorrect option for mysqli default password). (Georg)
- Fixed bug #32944 (Disabling session.use_cookies doesn't prevent reading
session cookies). (Jani, Tony)
- Fixed bug #32941 (Sending structured SOAP fault kills a php). (Dmitry)
- Fixed bug #32936 (http redirects URLs are not checked for control chars). (Ilia)
- Fixed bug #32933 (Cannot extend class "SQLiteDatabase"). (Marcus)
- Fixed bug #32932 (Oracle LDAP: ldap_get_entries(), invalid pointer). (Jani)
- Fixed bug #32930 (class extending DOMDocument doesn't clone properly). (Rob)
- Fixed bug #32924 (file included with "auto_prepend_file" can be included
with require_once() or include_once()). (Stas)
- Fixed bug #32904 (pg_get_notify() ignores result_type parameter). (Tony)
- Fixed bug #32852 (Crash with singleton and __destruct when
zend.ze1_compatibility_mode = On). (Dmitry)
- Fixed bug #32833 (Invalid opcode). (Dmitry)
- Fixed bug #32813 (parse_url() does not handle scheme-only urls properly). (Ilia)
- Fixed bug #32810 (temporary files not using plain file wrapper). (Ilia)
- Fixed bug #32809 (Missing T1LIB support on Windows). (Edin)
- Fixed bug #32802 (General cookie overrides more specific cookie). (Ilia)
- Fixed bugs #32800, #32830 (ext/odbc: Problems with 64bit systems). (Jani)
- Fixed bug #32799 (crash: calling the corresponding global var during the
destruct). (Dmitry)
- Fixed bug #32776 (SOAP doesn't support one-way operations). (Dmitry)
- Fixed bug #32773 (GMP functions break when second parameter is 0). (Stas)
- Fixed bug #32759 (incorrect determination of default value (COM)). (Wez)
- Fixed bug #32758 (Cannot access safearray properties in VB6 objects). (Wez)
- Fixed bug #32755 (Segfault in replaceChild() when DocumentFragment has
no children). (Rob)
- Fixed bug #32753 (Undefined constant SQLITE_NOTADB). (Ilia)
- Fixed bug #32742 (segmentation fault when the stream with a wrapper
is not closed). (Tony, Dmitry)
- Fixed bug #32699 (pg_affected_rows() was defined when it was not available).
(Derick)
- Fixed bug #32686 (Require/include file in destructor causes segfault).
(Marcus)
- Fixed bug #32682 (ext/mssql: Error on module shutdown when called from
activescript). (Frank)
- Fixed bug #32674 (exception in iterator causes crash). (Dmitry)
- Fixed bug #32647 (Using register_shutdown_function() with invalid callback
can crash PHP). (Jani)
- Fixed bug #32615 (Segfault in replaceChild() using fragment when
previousSibling is NULL). (Rob)
- Fixed bug #32613 (ext/snmp: use of snmp_shutdown() causes snmpapp.conf
access errors). (Jani, ric at arizona dot edu)
- Fixed bug #32608 (html_entity_decode() converts single quotes even if
ENT_NOQUOTES is given). (Ilia)
- Fixed bug #32596 (Segfault/Memory Leak by getClass (etc) in __destruct).
(Dmitry)
- Fixed bug #32591 (ext/mysql: Unsatisfied symbol: ntohs with HP-UX). (Jani)
- Fixed bug #32589 (Possible crash inside imap_mail_compose, with charsets).
(Ilia)
- Fixed bug #32587 (Apache2: errors sent to error_log do not include
timestamps). (Jani)
- Fixed bug #32560 (configure looks for incorrect db2 library). (Tony)
- Fixed bug #32553 (mmap loads only the 1st 2000000 bytes on Win32). (Ilia)
- Fixed bug #32533 (proc_get_status() returns the incorrect process status). (Ilia)
- Fixed bug #32530 (chunk_split() does not append endstr if chunklen is
longer then the original string). (Ilia)
- Fixed bug #32491 (File upload error - unable to create a temporary file).
(Uwe Schindler)
- Fixed bug #32429 (method_exists() always return TRUE if __call method
exists). (Dmitry)
- Fixed bug #32428 (The @ warning error supression operator is broken).
(Dmitry)
- Fixed bug #32427 (Interfaces are not allowed 'static' access modifier).
(Dmitry)
- Fixed bug #32405 (mysqli::fetch() returns bad data - 64bit problem). (Andrey)
- Fixed bug #32282 (Segfault in mysqli_fetch_array on 64-bit). (Georg)
- Fixed bug #32296 (get_class_methods() output has changed between 5.0.2 and
5.0.3). (Dmitry)
- Fixed bug #32245 (xml_parser_free() in a function assigned to the xml parser
gives a segfault). (Rob)
- Fixed bug #32171 (Userspace stream wrapper crashes PHP). (Tony, Dmitry)
- Fixed bug #32109 ($_POST is not populated in multithreaded environment).
(Moriyoshi)
- Fixed bug #32080 (segfault when assigning object to itself with
zend.ze1_compatibility_mode=On). (Dmitry)
- Fixed bug #32021 (Crash caused by range('', 'z')). (Derick)
- Fixed bug #32013 (ext/mysqli bind_result causes fatal error: memory
limit). (Andrey)
- Fixed bug #31887 (ISAPI: Custom 5xx error does not return correct HTTP
response message). (Jani)
- Fixed bug #31828 (Crash with zend.ze1_compatibility_mode=On). (Dmitry)
- Fixed bug #31668 (multi_query works exactly every other time - multi query
d/e flag global and not per connection). (Andrey)
- Fixed bug #31636 (another crash when echoing a COM object). (Wez)
- Fixed bug #31583 (php_std_date() uses short day names in non-y2k_compliance
mode). (mike at php dot net)
- Fixed bug #31525 (object reference being dropped. $this getting lost).
(Stas, Dmitry)
- Fixed bug #31502 (Wrong deserialization from session when using WDDX
serializer). (Dmitry)
- Fixed bug #31478 (segfault with empty() / isset()). (Moriyoshi)
- Fixed bug #31465 (False warning in unpack() when working with *). (Ilia)
- Fixed bug #31363 (broken non-blocking flock()). (ian at snork dot net)
- Fixed bug #31033 (php:function(string, nodeset) with xsl:key crashes PHP).
(Rob)
- Fixed bug #30961 (Wrong linenumber in ReflectionClass getStartLine()).
(Dmitry)
- Fixed bug #30889 (Conflict between __get/__set and ++ operator). (Dmitry)
- Fixed bug #30833 (array_count_values() modifying input array). (Tony)
- Fixed bug #30820 (static member conflict with $this->member silently
ignored). (Dmitry)
- Fixed bug #30819 (Better support for LDAP SASL bind). (Jani)
- Fixed bug #30791 (magic methods (__sleep/__wakeup/__toString) call __call if
object is overloaded). (Dmitry)
- Fixed bug #30707 (Segmentation fault on exception in method). (Stas, Dmitry)
- Fixed bug #30702 (cannot initialize class variable from class constant).
(Dmitry)
- Fixed bug #30578 (Output buffers flushed before calling __desctruct()
functions). (Jani)
- Fixed bug #30407 (Strange behaviour of default arguments). (Dmitry)
- Fixed bug #30394 (Assignment operators yield wrong result with __get/__set).
(Dmitry)
- Fixed bug #30332 (zend.ze1_compatibility_mode isnt fully compatable with
array_push()). (Dmitry)
- Fixed bug #30162 (Catching exception in constructor causes lose of $this).
(Dmitry)
- Fixed bug #30140 (Problem with array in static properties). (Dmitry)
- Fixed bug #30126 (Enhancement for error message for abstract classes).
(Marcus)
- Fixed bug #30080 (Passing array or non array of objects). (Dmitry)
- Fixed bug #29975 (memory leaks when set_error_handler() is used inside error
handler). (Tony)
- Fixed bug #29971 (variables_order behaviour). (Dmitry)
- Fixed bug #29944 (Function defined in switch, crashes). (Dmitry)
- Fixed bug #29728 (Reflection API Feature: Default parameter value). (Marcus)
- Fixed bug #29689 (default value of protected member overrides default value of
private and other private variable problems in inherited classes). (Stas)
- Fixed bug #29583 (crash when echoing a COM object). (M.Sisolak, Wez)
- Fixed bug #29522 (accessing properties without connection). (Georg)
- Fixed bug #29338 (unencoded spaces get ignored after certain tags). (Ilia)
- Fixed bug #29335 (fetch functions now use MYSQLI_BOTH as default). (Georg)
- Fixed bug #29311 (calling parent constructor in mysqli). (Georg)
- Fixed bug #29256 (SOAP HTTP Error when envelop size is more than 24345 bytes).
(Dmitry, Wez)
- Fixed bug #29236 (memory error when wsdl-cache is enabled). (Dmitry)
- Fixed bug #29210 (Function: is_callable - no support for private and
protected classes). (Dmitry)
- Fixed bug #29109 (SoapFault exception: [WSDL] Out of memory). (Dmitry)
- Fixed bug #29104 (Function declaration in method doesn't work). (Dmitry)
- Fixed bug #29061 (soap extension segfaults). (Dmitry)
- Fixed bug #29015 (Incorrect behavior of member vars(non string ones)-numeric
mem vars und others). (Dmitry)
- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry)
- Fixed bug #28969 (Wrong data encoding of special characters). (Dmitry)
- Fixed bug #28839 (SIGSEGV in interactive mode (php -a)).
(kameshj at fastmail dot fm)
- Fixed bug #28605 (Need to use -[m]ieee option for Alpha CPUs). (Jani)
- Fixed bug #28568 (SAPI::known_post_content_types is not thread safe).
(Moriyoshi)
- Fixed bug #27598 (list() array key assignment causes HUGE memory leak).
(Dmitry)
- Fixed bug #26456 (Wrong results from Reflection-API getDocComment() when
called via STDIN). (Dmitry)
- Fixed bug #25922 (In error handler, modifying 5th arg (errcontext) may result
in seg fault). (Dmitry)
- Fixed bug #22836 (returning reference to uninitialized variable). (Dmitry)
31 Mar 2005, PHP 5.0.4
- Added SNMPv2 support. (harrie)
- Added Oracle Instant Client support. (cjbj at hotmail dot com, Tony)
- Added length and charsetnr for field array and object in mysqli. (Georg)
- Added checks for negative values to gmp_sqrt(), gmp_powm(), gmp_sqrtrem()
and gmp_fact() to prevent SIGFPE. (Tony)
- Changed foreach() to throw an exception if IteratorAggregate::getIterator()
does not return an Iterator. (Marcus)
- Changed phpize not to require libtool. (Jani)
- Updated bundled oniguruma library (used for multibyte regular expression)
to 3.7.0. (Moriyoshi)
- Updated bundled libmbfl library (used for multibyte functions). (Moriyoshi)
Fixed bugs:
. Bug #32311 (mb_encode_mimeheader() does not properly escape characters)
. Bug #32063 (mb_convert_encoding ignores named entity 'alpha')
. Bug #31911 (mb_decode_mimeheader() is case-sensitive to hex escapes)
. bug #30573 (compiler warnings in libmbfl due to invalid type cast)
. Bug #30549 (incorrect character translations for some ISO8859 charsets).
- Fixed bug preventing from building oci8 as shared.
(stanislav dot voroniy at portavita dot nl, Tony)
- Fixed a bug in mysql_affected_rows and mysql_stmt_affected_rows when the
api function returns -1 (Georg)
- Fixed several leaks in ext/browscap and sapi/embed. (Andrei)
- Fixed several leaks in ext/filepro. (Tony)
- Fixed build system to always use bundled libtool files. (Jani)
- Fixed a bug in mysqli_stmt_execute() (type conversion with NULL values).
(Georg)
- Fixed segfault in mysqli_fetch_field_direct() when invalid field offset
is passed. (Tony)
- Fixed posix_getsid() & posix_getpgid() to return sid & pgid instead
of true. (Tony)
- Fixed bug #32394 (offsetUnset() segfaults in a foreach). (Marcus)
- Fixed bug #32373 (segfault in bzopen() if supplied path to non-existent
file). (Tony)
- Fixed bug #32326 (Check values of Connection/Transfer-Encoding
case-incentively in SOAP extension). (Ilia)
- Fixed bug #32290 (call_user_func_array() calls wrong class method within
child class). (Marcus)
- Fixed bug #32238 (spl_array.c: void function cannot return value). (Johannes)
- Fixed bug #32210 (proc_get_status() sets "running" always to true). (Ilia)
- Fixed bug #32200 (Prevent using both --with-apxs2 and --with-apxs2filter).
(Jani)
- Fixed bug #32134 (Overloading offsetGet/offsetSet). (Marcus)
- Fixed bug #32130 (ArrayIterator::seek() does not throw an Exception on
invalid index). (Marcus)
- Fixed bug #32115 (dateTime SOAP encoding of timezone incorrect). (Dmitry)
- Fixed bug #32081 (in mysqli default socket value is not being used). (Ilia)
- Fixed bug #32021 (Crash caused by range('', 'z')). (Derick)
- Fixed bug #32011 (Fragments which replaced Nodes are not globaly useable).
(Rob)
- Fixed bug #32001 (xml_parse_into_struct() function exceeds maximum
execution time). (Rob, Moriyoshi)
- Fixed bug #31980 (Unicode exif data not available on Windows). (Edin)
- Fixed bug #31960 (msql_fetch_row() and msql_fetch_array() dropping columns
with NULL values). (Daniel Convissor)
- Fixed bug #31878 (Segmentation fault using clone keyword on nodes). (Rob)
- Fixed bug #31858 (--disable-cli does not force --without-pear). (Jani)
- Fixed bug #31842 (*date('r') does not return RFC2822 conforming date string).
(Jani)
- Fixed bug #31832 (SOAP encoding problem with complex types in WSDL mode with
multiple parts). (Dmitry)
- Fixed bug #31797 (exif_read_data() uses too low nesting limit). (Ilia)
- Fixed bug #31796 (readline completion handler does not handle empty return
values). (Ilia)
- Fixed bug #31792 (getrusage() does not provide ru_nswap value). (Ilia)
- Fixed bug #31755 (Cannot create SOAP header in no namespace). (Dmitry)
- Fixed bug #31754 (dbase_open() fails for mode = 1). (Mehdi, Derick)
- Fixed bug #31751 (pg_parameter_status() missing on Windows). (Edin)
- Fixed bug #31747 (SOAP Digest Authentication doesn't work with
"HTTP/1.1 100 Continue" response). (Dmitry)
- Fixed bug #31732 (mb_get_info() causes segfault when no parameters
specified). (Tony)
- Fixed bug #31710 (Wrong return values for mysqli_autocommit/commit/rollback).
(Georg)
- Fixed bug #31705 (parse_url() does not recognize http://foo.com#bar). (Ilia)
- Fixed bug #31695 (Cannot redefine endpoint when using WSDL). (Dmitry)
- Fixed bug #31684 (dio_tcsetattr(): misconfigured termios settings).
(elod at itfais dot com)
- Fixed bug #31683 (changes to $name in __get($name) override future
parameters). (Dmitry)
- Fixed bug #31699 (unserialize() float problem on non-English locales). (Ilia)
- Fixed bug #31562 (__autoload() problem with static variables). (Marcus)
- Fixed bug #31651 (ReflectionClass::getDefaultProperties segfaults with arrays).
(Marcus)
- Fixed bug #31623 (OCILogin does not support password grace period).
(daniel dot beet at accuratesoftware dot com, Tony)
- Fixed bug #31527 (crash in msg_send() when non-string is stored without
being serialized). (Ilia)
- Fixed bug #31515 (Improve performance of scandir() by factor of 10 or so). (Ilia)
- Fixed bug #31514 (open_basedir uses path_translated rather then cwd for .
translation). (Ilia)
- Fixed bug #31480 (Possible infinite loop in imap_mail_compose()). (Ilia)
- Fixed bug #31479 (Fixed crash in chunk_split(), when chunklen > strlen). (Ilia)
- Fixed bug #31454 (session_set_save_handler crashes PHP when supplied
non-existent object ref). (Tony)
- Fixed bug #31444 (Memory leak in zend_language_scanner.c).
(hexer at studentcenter dot org)
- Fixed bug #31442 (unserialize broken on 64-bit systems). (Marcus)
- Fixed bug #31440 ($GLOBALS can be overwritten via GPC when register_globals
is enabled). (Ilia)
- Fixed bug #31422 (No Error-Logging on SoapServer-Side). (Dmitry)
- Fixed bug #31413 (curl POSTFIELDS crashes on 64-bit platforms). (Joe)
- Fixed bug #31396 (compile fails with gd 2.0.33 without freetype). (Jani)
- Fixed bug #31371 (highlight_file() trims new line after heredoc). (Ilia)
- Fixed bug #31361 (simplexml/domxml segfault when adding node twice). (Rob)
- Fixed bug #31348 (CachingIterator::rewind() leaks). (Marcus)
- Fixed bug #31346 (ArrayIterator::next segfaults). (Marcus)
- Fixed bug #31190 (Unexpected warning then exception is thrown from
call_user_func_array()). (phpbugs at domain51 dot net, Dmitry)
- Fixed bug #31142 (imap_mail_compose() fails to generate correct output). (Ilia)
- Fixed bug #31139 (XML Parser Functions seem to drop &amp; when parsing). (Rob)
- Fixed bug #31398 (When magic_guotes_gpc are enabled filenames with ' get cutoff).
(Ilia)
- Fixed bug #31288 (Possible crash in mysql_fetch_field(), if mysql_list_fields()
was not called previously). (Ilia)
- Fixed bug #31107, #31110, #31111, #31249 (Compile failure of zend_strtod.c).
(Jani)
- Fixed bug #31110 (PHP 4.3.10 does not compile on Tru64 UNIX 5.1B). (Derick)
- Fixed bug #31107 (Compile failure on Solaris 9 (Intel) and gcc 3.4.3). (Derick)
- Fixed bug #31103 (Better error message when c-client cannot be found). (Ilia)
- Fixed bug #31101 (missing kerberos header file path with --with-openssl). (Jani)
- Fixed bug #31098 (isset() / empty() incorrectly return true in dereference of
a string type). (Moriyoshi)
- Fixed bug #31087 (broken php_url_encode_hash macro). (Ilia)
- Fixed bug #31072 (var_export() does not output an array element with an empty
string key). (Derick)
- Fixed bug #31060 (imageftbbox() does not use linespacing parameter). (Jani)
- Fixed bug #31056 (php_std_date() returns invalid formatted date if
y2k_compliance is On). (Ilia)
- Fixed bug #31055 (apache2filter: per request leak proportional to the full
path of the request URI). (kameshj at fastmail dot fm)
- Fixed bug #30901 (can't send cookies with soap envelop). (Dmitry)
- Fixed bug #30871 (Misleading warning message for array_combine()). (Andrey)
- Fixed bug #30868 (evaluated pointer comparison in mbregex causes compile
failure). (Moriyoshi)
- Fixed bug #30862 (Static array with boolean indexes). (Marcus)
- Fixed bug #30726 (-.1 like numbers are not being handled correctly). (Ilia)
- Fixed bug #30725 (PHP segfaults when an exception is thrown in getIterator()
within foreach). (Marcus)
- Fixed bug #30609 (cURL functions bypass open_basedir). (Jani)
- Fixed bug #30446 (apache2handler: virtual() includes files out of sequence)
- Fixed bug #30430 (odbc_next_result() doesn't bind values and that results
in segfault). (pdan-php at esync dot org, Tony)
- Fixed bug #30266 (Invalid opcode 137/1/8). (Marcus)
- Fixed bug #30120 (imagettftext() and imagettfbbox() accept too many
parameters). (Jani)
- Fixed bug #30106 (SOAP cannot not parse 'ref' element. Causes Uncaught
SoapFault exception). (Dmitry)
- Fixed bug #29989 (type re_registers redefined in oniguruma.h). (Moriyoshi)
- Fixed bug #28803 (enabled debug causes bailout errors with CLI on AIX
because of fflush() called on already closed filedescriptor). (Tony)
- Fixed bug #29767 (Weird behaviour of __set($name, $value)). (Dmitry)
- Fixed bug #29733 (printf() handles repeated placeholders wrong).
(bugs dot php dot net at bluetwanger dot de, Ilia)
- Fixed bug #29424 (width and height inverted for JPEG2000 files). (Ilia)
- Fixed bug #29329 (configure for mysqli with shared doesn't work). (Georg)
- Fixed bug #29136 (make test - libtool failure on MacOSX). (Jani)
- Fixed bug #28976 (mail(): use "From:" from headers if sendmail_from is empty).
(Jani)
- Fixed bug #28930 (PHP sources pick wrong header files generated by bison).
(eggert at gnu dot org, Jani)
- Fixed bug #28840 (__destruct of a class that extends mysqli not called).
(Marcus)
- Fixed bug #28804 (ini-file section parsing pattern is buggy).
(wendland at scan-plus dot de)
- Fixed bug #28451 (corrupt EXIF headers have unlimited recursive IFD directory
entries). (Andrei)
- Fixed bug #28444 (Cannot access undefined property for object with overloaded
property access). (Dmitry)
- Fixed bug #28442 (Changing a static variables in a class changes it across
sub/super classes.) (Marcus)
- Fixed bug #28324 (HTTP_SESSION_VARS appear when register_long_arrays is
Off). (Tony)
- Fixed bug #28074 (FastCGI: stderr should be written in a FCGI stderr stream).
(chris at ex-parrot dot com)
- Fixed bug #28067 (partially incorrect utf8 to htmlentities mapping). (Derick,
Benjamin Greiner)
- Fixed bug #28041 (SOAP HTTP Digest Access Authentication). (Dmitry)
- Fixed bug #27633 (Double \r problem on ftp_get in ASCII mode on Win32). (Ilia)
- Fixed bug #18613 (Multiple OUs in x509 certificate not handled properly).
(Jani)
15 Dec 2004, PHP 5.0.3
- Added the %F modifier to *printf to render a non-locale-aware representation
of a float with the . as decimal seperator. (Derick)
- Fixed error handling in mysqli_multi_query. (Georg)
- Extended the functionality of is_subclass_of() to accept either a class name
or an object as first parameter. (Andrey)
- Fixed potential problems with unserializing invalid serialize data. (Marcus)
- Fixed bug #32076 (ReflectionMethod::isDestructor() always return true).
(Derick, Tony)
- Fixed bug #31034 (Problem with non-existing iconv header file). (Derick)
- Fixed bug #30995 (snmp extension does not build with net-snmp 5.2). (Ilia)
- Fixed bug #30994 (SOAP server unable to handle request with references).
(Dmitry)
- Fixed bug #30990 (allow popen() on *NIX to accept 'b' flag). (Ilia)
- Fixed bug #30967 (properties in extended mysqli classes don't work). (Georg)
- Fixed bug #30928 (When Using WSDL, SoapServer doesn't handle private or
protected properties). (Dmitry)
- Fixed bug #30922 (reflective functions crash PHP when interfaces extend
themselves). (Tony, Dmitry)
- Fixed bug #30904 (segfault when recording soapclient into session). (Tony,
Dmitry)
- Fixed bug #30890 (MySQLi testsuite)
- Fixed bug #30856 (ReflectionClass::getStaticProperties segfaults). (Marcus)
- Fixed bug #30832 ("!" stripped off comments in xml parser). (Rob)
- Fixed bug #30799 (SoapServer doesn't handle private or protected properties).
(Dmitry)
- Fixed bug #30783 (Apache crash when using ReflectionFunction::
getStaticVariables()). (Marcus)
- Fixed bug #30750 (Meaningful error message when upload directory is not
accessible). (Ilia)
- Fixed bug #30685 (Malformed SOAPClient http header reequest). (Dmitry)
- Fixed bug #30672 (Problem handling exif data in jpeg images at unusual
places). (Marcus)
- Fixed bug #30658 (Ensure that temporary files created by GD are removed).
(Ilia)
- Fixed bug #30645 (def. multi result set support for mysql_connect). (Georg)
- Fixed bug #30637 (compile with pear error). (Antony)
- Fixed bug #30587 (array_multisort doesn't separate zvals before
changing them). (Tony)
- Fixed bug #30572 (crash when comparing SimpleXML attribute to a boolean).
(Andi)
- Fixed bug #30566 (attribute namespace URIs are inconsistent when parsing).
(Rob)
- Fixed bug #30490 (PEAR installation fails). (Antony)
- Fixed bug #30475 (curl_getinfo() may crash in some situations). (Ilia)
- Fixed bug #30442 (segfault when parsing ?getvariable[][ ). (Tony)
- Fixed bug #30388 (rename across filesystems loses ownership and
permission info). (Tony)
- Fixed bug #30387 (stream_socket_client async connect was broken).
(vnegrier at esds dot com, Wez).
- Fixed bug #30381 (Strange results with get_class_vars()). (Marcus)
- Fixed bug #30375 (cal_info() does not work without a parameter). (Ilia)
- Fixed bug #30362 (stream_get_line() not handling end string correctly).
(Ilia)
- Fixed bug #30359 (SOAP client requests have no port in "Host" field).
(Dmitry)
- Fixed bug #30356 (str_ireplace() does not work on all strings). (Ilia)
- Fixed bug #30344 (Reflection::getModifierNames() returns too long strings).
(Marcus)
- Fixed bug #30329 (Error Fetching http body, No Content-Length, connection
closed or chunked data). (Dmitry)
- Fixed bug #30282 (segfault when using unknown/unsupported
session.save_handler and/or session.serialize_handler). (Tony)
- Fixed bug #30281 (Prevent non-wbmp images from being detected as such).
(Ilia)
- Fixed bug #30276 (Possible crash in ctype_digit on large numbers). (Ilia)
- Fixed bug #30230 (exception handler not working with objects). (Marcus)
- Fixed bug #30224 (Sybase date strings are sometimes not null terminated).
(Ilia)
- Fixed bug #30175 (SOAP results aren't parsed correctly). (Dmitry)
- Fixed bug #30147 (OO sqlite_fetch_object did not reset error handler). (Wez)
- Fixed bug #30133 (get_current_user() crashes on Windows). (Edin)
- Fixed bug #30061 (xml_set_start_namespace_decl_handler not called). (Rob)
- Fixed bug #30057 (did not detect IPV6 on FreeBSD 4.1). (Wez)
- Fixed bug #30042 (strtotime does not use second param). (Derick)
- Fixed bug #30027 (Possible crash inside ftp_get()).
(cfield at affinitysolutions dot com)
- Fixed bug #29954 (array_reduce segfaults when initial value is array). (Tony)
- Fixed bug #29883 (isset gives invalid values on strings). (Tony, Dmitry)
- Fixed bug #29801 (Set limit on the size of mmapable data). (Ilia)
- Fixed bug #29557 (strtotime error). (Derick)
- Fixed bug #29418 (double free when openssl_csr_new fails).
(Kamesh Jayachandran).
- Fixed bug #29385 (Soapserver always uses std class). (David, Dmitry)
- Fixed bug #29211 (SoapClient doesn't request wsdl through proxy). (Rob)
- Fixed bug #28817 (Var problem when extending domDocument). (Georg)
- Fixed bug #28599 (strtotime fails with zero base time). (Derick)
- Fixed bug #28598 (Lost support for MS Symbol fonts). (Pierre)
- Fixed bug #28220 (mb_strwidth() returns wrong width values for some hangul
characters). (Moriyoshi)
- Fixed bug #28228 (NULL decimal separator is not being handled correctly).
(Ilia)
- Fixed bug #28209 (strtotime("now")). (Derick)
- Fixed bug #27798 (private / protected variables not exposed by
get_object_vars() inside class). (Marcus)
- Fixed bug #27728 (Can't return within a zend_try {} block or the previous
bailout state isn't restored. (Andi)
- Fixed bug #27183 (Userland stream wrapper segfaults on stream_write).
(Christian)
23 Sep 2004, PHP 5.0.2
- Added new boolean (fourth) parameter to array_slice() that turns on the
preservation of keys in the returned array. (Derick)
- Added the sorting flag SORT_LOCALE_STRING to the sort() functions which makes
them sort based on the current locale. (Derick)
- Added interface_exists() and make class_exists() only return true for real
classes. (Andrey)
- Added PHP_EOL constant that contains the OS way of representing newlines.
(Paul Hudson, Derick)
- Implemented periodic PCRE compiled regexp cache cleanup, to avoid memory
exhaustion. (Andrei)
- Renamed SoapClient->__call() to SoapClinet->__soapCall(). (Dmitry)
- Fixed bug with raw_post_data not getting set (Brian)
- Fixed a file-descriptor leak with phpinfo() and other 'special' URLs (Zeev)
- Fixed bug #30209 (ReflectionClass::getMethod() lowercases attribute).
(Marcus)
- Fixed bug #30182 (SOAP module processing WSDL file dumps core). (Dmitry)
- Fixed bug #30045 (Cannot pass big integers (> 2147483647) in SOAP requests).
(Dmitry)
- Fixed bug #29985 (unserialize()/ __PHP_Incomplete_class does not report
correctly class name). (Marcus, Tony)
- Fixed bug #29945 (simplexml_load_file URL limitation 255 char). (Rob)
- Fixed bug #29873 (No defines around pcntl_*priority definitions). (Derick)
- Fixed bug #29844 (SOAP doesn't return the result of a valid SOAP request).
(Dmitry)
- Fixed bug #29842 (soapclient return null value). (Dmitry)
- Fixed bug #29839 (incorrect convert (xml:lang to lang)). (Dmitry)
- Fixed bug #29830 (SoapServer::setClass() should not export non-public
methods). (Dmitry)
- Fixed bug #29828 (Interfaces no longer work). (Marcus)
- Fixed bug #29821 (Fixed possible crashes in convert_uudecode() on invalid
data). (Ilia)
- Fixed bug #29808 (array_count_values() breaks with numeric strings). (Ilia)
- Fixed bug #29805 (HTTP Authentication Issues). (Uwe Schindler)
- Fixed bug #29795 (SegFault with Soap and Amazon's Web Services). (Dmitry)
- Fixed bug #29737 (ip2long should return -1 if IP is 255.255.255.255 and FALSE
on error). (Tony)
- Fixed bug #29711 (Changed ext/xml to default to UTF-8 output). (Rob)
- Fixed bug #29678 (opendir() with ftp:// wrapper segfaults if path does not
have trailing slash). (Ilia)
- Fixed bug #29657 (xml_* functions throw non descriptive error).
(Christian, Rob)
- Fixed bug #29656 (segfault on result and statement properties). (Georg)
- Fixed bug #29566 (foreach/string handling strangeness (crash)). (Dmitry)
- Fixed bug #29447 (Reflection API issues). (Marcus)
- Fixed bug #29296 (Added sslv2 and sslv3 transports). (Wez)
- Fixed bug #29283 (Invalid statement handle in mysqli on execute). (Georg)
- Fixed bug #29913 (parse_url() is now binary safe). (Ilia)
- Fixed bug #27994 (segfault with Soapserver when WSDL-Cache is enabled).
(Dmitry)
- Fixed bug #27791 (Apache 2.0 SAPI build against Apache 2 HEAD). (Joe Orton,
Derick)
- Fixed bug #26737 (private/protected properties not serialized when user
declared method __sleep() exists). E_NOTICE thrown when __sleep() returns
name of non-existing member. (Andrey, Curt)
12 Aug 2004, PHP 5.0.1
- Changed destructor mechanism so that destructors are called prior to request
shutdown. (Marcus)
- Rewritten UNIX and Windows install help files. (Documentation Team)
- Updated several libraries bundled with the windows release which now
includes libxml2-2.6.11, libxslt-1.1.7 and iconv-1.9.1. (Rob, Edin)
- Improved and moved ActiveScript SAPI to PECL. (Wez)
- Fixed bug #29606 (php_strip_whitespace() prints to stdout rather then
returning the value). (Ilia)
- Fixed bug #29577 (MYSQLI_CLIENT_FOUND_ROWS undefined) (Georg)
- Fixed bug #29573 (Segmentation fault, when exception thrown within
PHP function called from XSLT). (Christian)
- Fixed bug #29522 (accessing properties without connection) (Georg)
- Fixed bug #29505 (get_class_vars() severely broken when used with arrays).
(Marcus)
- Fixed bug #29490 (.Net object instantiation failed). (Michael Sisolak).
- Fixed bug #29474 (win32: usleep() doesn't work). (Wez)
- Fixed bug #29449 (win32: feof() hangs on empty tcp stream). (Wez)
- Fixed bug #29437 (Possible crash inside array_walk_recursive()). (Ilia)
- Fixed bug #29431 (crash when parsing invalid address; invalid address
returned by stream_socket_recvfrom(), stream_socket_getname()). (Wez)
- Fixed bug #29409 (Segfault in PHP functions called from XSLT). (Rob)
- Fixed unloading of dynamically loaded extensions.
(Marcus, kameshj at fastmail dot fm)
- Fixed bug #29395 (sqlite_escape_string() returns bogus data on empty
strings). (Ilia, Tony)
- Fixed bug #29392 (com_dotnet crashes when echo'ing an object). (Wez)
- Fixed bug #29368 (The destructor is called when an exception is thrown from
the constructor). (Marcus)
- Fixed bug #29354 (Exception constructor marked as both public and protected).
(Marcus)
- Fixed bug #29342 (strtotime() does not handle empty date string properly).
(Ilia)
- Fixed bug #29340 (win32 build produces invalid php_ifx.dll). (Edin)
- Fixed bug #29335 (fetch functions now use MYSQLI_BOTH as default) (Georg)
- Fixed bug #29291 (get_class_vars() return names with NULLs). (Marcus)
- Fixed bug #29264 (gettext extension not working). (Edin)
- Fixed bug #29258 (variant_date_from_timestamp() does not honour
timezone). (Wez)
- Fixed bug #29256 (error when sending large packets on a socket). (Dmitry)
- Fixed bug #29236 (memory error when wsdl-cache is enabled). (Dmitry)
- Fixed bug #29147 (Compile Error in mnoGoSearch functions). (Sergey, Antony)
- Fixed bug #29132 ($_SERVER["PHP_AUTH_USER"] isn't defined). (Stefan)
- Fixed bug #29119 (html_entity_decode() misbehaves with UTF-8). (Moriyoshi)
- Fixed bug #29109 (SoapFault exception: [WSDL] Out of memory). (Dmitry)
- Fixed bug #29061 (soap extension segfaults). (Dmitry)
- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry)
- Fixed bug #28969 (Wrong data encoding of special characters). (Dmitry)
- Fixed bug #28895 (ReflectionClass::isAbstract always returns false). (Marcus)
- Fixed bug #28829 (Thread-unsafety in bcmath elementary values). (Sara)
- Fixed bug #28464 (catch() does not catch exceptions by interfaces). (Marcus)
- Fixed bug #27669 (PHP 5 didn't support all possibilities for calling static
methods dynamically). (Dmitry)
- Fixed ReflectionClass::getMethod() and ReflectionClass::getProperty() to
raise an ReflectionException instead of returning NULL on failure.
(Sebastian)
- Fixed convert.* filters to consume remaining buckets_in on flush. (Sara)
- Fixed bug in mysqli->client_version. (Georg)
13 Jul 2004, PHP 5.0.0
- Updated PCRE to provide better error handling in certain cases. (Andrei)
- Changed doc comments to require a single white space after '/**'. (Marcus)
- Fixed bug #29019 (Database not closing). (Marcus)
- Fixed bug #29008 (array_combine() does not handle non-numeric/string keys).
(Ilia)
- Fixed bug #28999 (fixed behaviour of exec() to work as it did in 4.X). (Ilia)
- Fixed bug #28868 (Internal filter registry not thread safe). (Sara)
- Fixed bug #28851 (call_user_func_array has typo in error message). (Marcus)
- Fixed bug #28831 (ArrayObject::offsetGet() does the work of offsetUnset()).
(Marcus)
- Fixed bug #28822 (ArrayObject::offsetExists() works inverted). (Marcus)
- Fixed bug #28789 (ReflectionProperty getValue() fails on public static
members). (Marcus)
- Fixed bug #28771 (Segfault when using xslt and clone). (Rob)
- Fixed bug #28751 (SoapServer does not call _autoload()). (Dmitry)
- Fixed bug #28739 (array_*diff() and array_*intersect() not clearing the fci
cache before work). (Andrey)
- Fixed bug #28721 (appendChild() and insertBefore() unset DOMText).(Rob)
- Fixed bug #28702 (SOAP does not parse WSDL service address correctly). (Dmitry)
- Fixed bug #28699 (Reflection api bugs). (Marcus)
- Fixed bug #28694 (ReflectionExtension::getFunctions() crashes PHP). (Marcus)
- Fixed bug #28512 (Allocate enough space to store MSSQL data). (Frank)
- Fixed strip_tags() to correctly handle '\0' characters. (Stefan)
-115
View File
@@ -1,115 +0,0 @@
This is the first file you should be reading after you get your CVS account.
We'll assume you're basically familiar with CVS, but feel free to post
your questions on the mailing list. Please have a look at
http://cvsbook.red-bean.com/ for more detailed information on CVS.
PHP is developed through the efforts of a large number of people.
Collaboration is a Good Thing(tm), and CVS lets us do this. Thus, following
some basic rules with regards to CVS usage will:
a. Make everybody happier, especially those responsible for maintaining
the CVS itself.
b. Keep the changes consistently well documented and easily trackable.
c. Prevent some of those 'Oops' moments.
d. Increase the general level of good will on planet Earth.
Having said that, here are the organizational rules:
1. Respect other people working on the project.
2. Discuss any significant changes on the list before committing.
3. Look at EXTENSIONS file to see who is the primary maintainer of
the code you want to contribute to.
4. If you "strongly disagree" about something another person did, don't
start fighting publicly - take it up in private email.
5. If you don't know how to do something, ask first!
6. Test your changes before committing them. We mean it. Really.
Currently we have the following branches in use:
HEAD Will become PHP 5.1. This CVS branch is for active development.
PHP_5_0 Is used to release the PHP 5.0.x series. Only minor feature
enhancements may go in here, but please keep that as infrequent as
possible.
PHP_4_3 Is used to release the PHP 4.3.x series. Only bugfixes are permitted
on this branch.
The next few rules are more of a technical nature.
1. DO NOT TOUCH ChangeLog! It is automagically updated from the commit
messages every day. Woe be to those who attempt to mess with it.
2. All news updates intended for public viewing, such as new features,
bug fixes, improvements, etc., should go into the NEWS file.
NB! Lines, starting with @ will go automagically into NEWS file, but
this is NOT recommended, though. Please, add news entries directly to
NEWS file and don't forget to keep them adjusted and sorted.
3. Do not commit multiple file and dump all messages in one commit. If you
modified several unrelated files, commit each group separately and
provide a nice commit message for each one. See example below.
4. Do write your commit message in such a way that it makes sense even
without the corresponding diff. One should be able to look at it, and
immediately know what was modified. Definitely include the function name
in the message as shown below.
5. In your commit messages, keep each line shorter than 80 characters. And
try to align your lines vertically, if they wrap. It looks bad otherwise.
6. If you modified a function that is callable from PHP, prepend PHP to
the function name as shown below.
The format of the commit messages is pretty simple.
Use a - to start a new item in your commit message.
If a line begins with #, it is taken to be a comment and will not appear
in the ChangeLog. Everything else goes into the ChangeLog.
It is important to note that if your comment or news logline spans multiple
lines, you have to put # at the beginning of _every_ such line.
Example. Say you modified two files, datetime.c and string.c. In datetime.c you
added a new format option for the date() function, and in string.c you fixed a
memory leak in php_trim(). Don't commit both of these at once. Commit them
separately and try to make sure your commit messages look something like the
following.
For datetime.c:
- Added new 'K' format modifier to date() for printing out number of days until
New Year's Eve.
For string.c:
- Fixed a memory leak in php_trim() resulting from improper use of zval_dtor().
#- Man, that thing was leaking all over the place!
The # lines will be omitted from the ChangeLog automagically.
If you fix some bugs, you should note the bug ID numbers in your
commit message. Bug ID should be prefixed by "#" for easier access to
bug report when developers are browsing CVS via. LXR or Bonsai.
Example:
Fixed bug #14016 (pgsql notice handler double free crash bug.)
If you don't see your messages in ChangeLog right away, don't worry!
These files are updated once a day, so your stuff will not show up until
somewhat later.
You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
to look at PHP CVS repository in various ways.
To receive daily updates to ChangeLog and NEWS, send an empty message to
php-cvs-daily-subscribe@lists.php.net.
Happy hacking,
PHP Team
-39
View File
@@ -1,39 +0,0 @@
Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way
that broke both source and binary compatibility. If you are
maintaining a third party extension, here's how to update it:
If this was your old module entry:
zend_module_entry foo_module_entry = {
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
STANDARD_MODULE_PROPERTIES
};
Here's how it should look if you want your code to build with PHP
4.1.0 and up:
zend_module_entry foo_module_entry = {
#if ZEND_MODULE_API_NO >= 20010901
STANDARD_MODULE_HEADER,
#endif
"foo", /* extension name */
foo_functions, /* extension function list */
NULL, /* extension-wide startup function */
NULL, /* extension-wide shutdown function */
PHP_RINIT(foo), /* per-request startup function */
PHP_RSHUTDOWN(foo), /* per-request shutdown function */
PHP_MINFO(foo), /* information function */
#if ZEND_MODULE_API_NO >= 20010901
FOO_VERSION, /* extension version number (string) */
#endif
STANDARD_MODULE_PROPERTIES
};
If you don't care about source compatibility with earlier PHP releases
than 4.1.0, you can drop the #if/#endif lines.
-194
View File
@@ -1,194 +0,0 @@
(NOTE: you may also want to take a look at the pear package
PECL_Gen, a PHP-only alternative for this script that
supports way more extension writing tasks and is
supposed to replace ext_skel completely in the long run ...)
WHAT IT IS
It's a tool for automatically creating the basic framework for a PHP module
and writing C code handling arguments passed to your functions from a simple
configuration file. See an example at the end of this file.
HOW TO USE IT
Very simple. First, change to the ext/ directory of the PHP 4 sources. If
you just need the basic framework and will be writing all the code in your
functions yourself, you can now do
./ext_skel --extname=module_name
and everything you need is placed in directory module_name.
[ Note that GNU awk is likely required for this script to work. Debian
systems seem to default to using mawk, so you may need to change the
#! line in skeleton/create_stubs and the cat $proto | awk line in
ext_skel to use gawk explicitly. ]
If you don't need to test the existence of any external header files,
libraries or functions in them, the module is already almost ready to be
compiled in PHP. Just remove 3 comments in your_module_name/config.m4,
change back up to PHP sources top directory, and do
./buildconf; ./configure --enable-module_name; make
But if you already have planned the overall scheme of your module, what
functions it will contain, their return types and the arguments they take
(a very good idea) and don't want to bother yourself with creating function
definitions and handling arguments passed yourself, it's time to create a
function definitions file, which you will give as an argument to ext_skel
with option
--proto=filename.
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, e.g.
my_function
but then you'll be left with an almost empty function body without any
argument handling.
Arguments are given in parenthesis after the function name, and are of
the form 'argument_type argument_name'. Arguments are separated from each
other with a comma and optional space. Argument_type can be one of int,
bool, double, float, string, array, object or mixed.
An optional argument is separated from the previous by an optional space,
then '[' and of course comma and optional space, like all the other
arguments. You should close a row of optional arguments with same amount of
']'s as there where '['s. Currently, it does not harm if you forget to do it
or there is a wrong amount of ']'s, but this may change in the future.
An additional short description may be added after the parameters.
If present it will be filled into the 'proto' header comments in the stubs
code and the <refpurpose> tag in the XML documentation.
An example:
my_function(int arg1, int arg2 [, int arg3 [, int arg4]]) this is my 1st
Arguments arg3 and arg4 are optional.
If possible, the function definition should also contain it's return type
in front of the definition. It's not actually used for any C code generating
purposes but PHP in-source documentation instead, and as such, very useful.
It can be any of int, double, string, bool, array, object, resource, mixed
or void.
The file must contain nothing else but function definitions, no comments or
empty lines.
OTHER OPTIONS
--no-help
By default, ext_skel creates both comments in the source code and a test
function to help first time module writers to get started and testing
configuring and compiling their module. This option turns off all such things
which may just annoy experienced PHP module coders. Especially useful with
--stubs=file
which will leave out also all module specific stuff and write just function
stubs with function value declarations and passed argument handling, and
function entries and definitions at the end of the file, for copying and
pasting into an already existing module.
--assign-params
--string-lens
By default, function proto 'void foo(string bar)' creates the following:
...
zval **bar;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar);
Specifying both of these options changes the generated code to:
...
zval **bar_arg;
int bar_len;
char *bar = NULL;
... (zend_get_parameters_ex() called in the middle...)
convert_to_string_ex(bar_arg);
bar = Z_STRVAL_PP(bar_arg);
bar_len = Z_STRLEN_PP(bar_arg);
You shouldn't have to ask what happens if you leave --string-lens out. If you
have to, it's questionable whether you should be reading this document.
--with-xml[=file]
Creates the basics for phpdoc .xml file.
--full-xml
Not implemented yet. When or if there will ever be created a framework for
self-contained extensions to use phpdoc system for their documentation, this
option enables it on the created xml file.
CURRENT LIMITATIONS, BUGS AND OTHER ODDITIES
Only arguments of types int, bool, double, float, string and array are
handled. For other types you must write the code yourself. And for type
mixed, it wouldn't even be possible to write anything, because only you
know what to expect.
It can't handle correctly, and probably never will, variable list of
of arguments. (void foo(int bar [, ...])
Don't trust the generated code too much. It tries to be useful in most of
the situations you might encounter, but automatic code generation will never
beat a programmer who knows the real situation at hand. ext_skel is generally
best suited for quickly generating a wrapper for c-library functions you
might want to have available in PHP too.
This program doesn't have a --help option. It has --no-help instead.
EXAMPLE
The following _one_ line
bool my_drawtext(resource image, string text, resource font, int x, int y [, int color])
will create this function definition for you (note that there are a few
question marks to be replaced by you, and you must of course add your own
value definitions too):
/* {{{ proto bool my_drawtext(resource image, string text, resource font, int x, int y[, int color])
*/
PHP_FUNCTION(my_drawtext)
{
zval **image, **text, **font, **x, **y, **color;
int argc;
int image_id = -1;
int font_id = -1;
argc = ZEND_NUM_ARGS();
if (argc < 5 || argc > 6 || zend_get_parameters_ex(argc, &image, &text, &font, &x, &y, &color) == FAILURE) {
WRONG_PARAM_COUNT;
}
ZEND_FETCH_RESOURCE(???, ???, image, image_id, "???", ???_rsrc_id);
ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
switch (argc) {
case 6:
convert_to_long_ex(color);
/* Fall-through. */
case 5:
convert_to_long_ex(y);
convert_to_long_ex(x);
/* font: fetching resources already handled. */
convert_to_string_ex(text);
/* image: fetching resources already handled. */
break;
default:
WRONG_PARAM_COUNT;
}
php_error(E_WARNING, "my_drawtext: not yet implemented");
}
/* }}} */
-127
View File
@@ -1,127 +0,0 @@
New parameter parsing functions
===============================
It should be easier to parse input parameters to an extension function.
Hence, borrowing from Python's example, there are now a set of functions
that given the string of type specifiers, can parse the input parameters
and store the results in the user specified variables. This avoids most
of the IS_* checks and convert_to_* conversions. The functions also
check for the appropriate number of parameters, and try to output
meaningful error messages.
Prototypes
----------
/* Implemented. */
int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
The zend_parse_parameters() function takes the number of parameters
passed to the extension function, the type specifier string, and the
list of pointers to variables to store the results in. The _ex() version
also takes 'flags' argument -- current only ZEND_PARSE_PARAMS_QUIET can
be used as 'flags' to specify that the function should operate quietly
and not output any error messages.
Both functions return SUCCESS or FAILURE depending on the result.
The auto-conversions are performed as necessary. Arrays, objects, and
resources cannot be auto-converted.
Type specifiers
---------------
l - long
d - double
s - string (with possible null bytes) and its length
b - boolean, stored in zend_bool
r - resource (stored in zval)
a - array
o - object (of any type)
O - object (of specific type, specified by class entry)
z - the actual zval
The following characters also have a meaning in the specifier string:
| - indicates that the remaining parameters are optional, they
should be initialized to default values by the extension since they
will not be touched by the parsing function if they are not
passed to it.
/ - use SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows
! - the parameter it follows can be of specified type or NULL (only applies
to 'a', 'o', 'O', 'r', and 'z'). If NULL is passed, the results
pointer is set to NULL as well.
Examples
--------
/* Gets a long, a string and its length, and a zval */
long l;
char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
&l, &s, &s_len, &param) == FAILURE) {
return;
}
/* Gets an object of class specified by my_ce, and an optional double. */
zval *obj;
double d = 0.5;
zend_class_entry my_ce;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
&obj, my_ce, &d) == FAILURE) {
return;
}
/* Gets an object or null, and an array.
If null is passed for object, obj will be set to NULL. */
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o!a",
&obj, &arr) == FAILURE) {
return;
}
/* Gets a separated array which can also be null. */
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!",
&arr) == FAILURE) {
return;
}
/* Get only the first three parameters (useful for varargs functions). */
zval *z;
zend_bool b;
zval *r;
if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
&z, &b, &r) == FAILURE) {
return;
}
/* Get either a set of 3 longs or a string. */
long l1, l2, l3;
char *s;
/*
* The function expects a pointer to a integer in this case, not a long
* or any other type. If you specify a type which is larger
* than a 'int', the upper bits might not be initialized
* properly, leading to random crashes on platforms like
* Tru64 or Linux/Alpha.
*/
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {
/* manipulate longs */
} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"s", &s, &length) == SUCCESS) {
/* manipulate string */
} else {
/* output error */
return;
}
-155
View File
@@ -1,155 +0,0 @@
1. strrpos() and strripos() now use the entire string as a needle. Be aware
that the existing scripts may no longer work as you expect.
EX :
<?php
var_dump(strrpos("ABCDEF","DEF"));
var_dump(strrpos("ABCDEF","DAF"));
?>
Will give you different results. The former returns 3 while the latter
returns false rather than the position of the last occurrence of 'D'.
The same applies to strripos().
2. Illegal use of string offsets causes E_ERROR instead of E_WARNING.
EX :
<?php
$a = "foo";
unset($a[0][1][2]);
?>
Fatal error: Cannot use string offset as an array in ... on line 1
3. array_merge() was changed to accept only arrays. If a non-array variable is
passed, a E_WARNING will be thrown for every such parameter. Be careful
because your code may start emitting E_WARNING out of the blue.
4. Be careful when porting from ext/mysql to ext/mysqli. The following
functions return NULL when no more data is available in the result set
(ext/mysql's functions return FALSE).
- mysqli_fetch_row()
- mysqli_fetch_array()
- mysqli_fetch_assoc()
5. PATH_TRANSLATED server variable is no longer set implicitly under
Apache2 SAPI in contrast to the situation in PHP 4, where it is set to the
same value as the SCRIPT_FILENAME server variable when it is not populated
by Apache. This change was made to comply with the CGI specification.
Please refer to bug #23610 for further information.
6. Starting PHP 5.0.0 the T_ML_CONSTANT constant is no longer defined by the
ext/tokenizer extension. If error_reporting is set to E_ALL notices will
be produced. Instead of T_ML_CONSTANT for /* */ the T_COMMENT constant
is used, thus both // and /* */ are resolved as the T_COMMENT constant.
However the PHPDoc style comments /** */ ,which starting PHP 5 are parsed
by PHP, are recongnized as T_DOC_COMMENT.
7. $_SERVER should be populated with argc and argv if variables_order
includes "S". If you have specifically configured your system to not
create $_SERVER, then of course it shouldn't be there. The change was to
always make argc and argv available in the CLI version regardless of the
variables_order setting. As in, the CLI version will now always populate
the global $argc and $argv variables.
8. In some cases classes must be declared before used. It only happens only
if some of the new features of PHP 5 are used. Otherwise the behaviour is
the old.
Example 1 (works with no errors):
<?php
$a = new a();
class a {
}
?>
Example 2 (throws an error):
<?php
$a = new a();
interface b{
}
class a implements b {
}
?>
Output (example 2) :
Fatal error: Class 'a' not found in /tmp/cl.php on line 2
9. get_class() starting PHP 5 returns the name of the class as it was
declared which may lead to problems in older scripts that rely on
the previous behaviour - the class name is lowercased. Expect the
same behaviour from get_parent_class() when applicable.
Example :
<?php
class FooBar {
}
class ExtFooBar extends FooBar{}
$a = new FooBar();
var_dump(get_class($a), get_parent_class($a));
?>
Output (PHP 4):
string(6) "foobar"
string(9) "extfoobar"
Output (PHP 5):
string(6) "FooBar"
string(9) "ExtFooBar"
----------------------------------------------------------------------
Example code that will break :
//....
function someMethod($p) {
if (get_class($p) != 'helpingclass') {
return FALSE;
}
//...
}
//...
Possible solution is to search for get_class() and get_parent_class() in
all your scripts and use strtolower().
10. get_class_methods() returns the names of the methods of a class as they
declared. In PHP4 the names are all lowercased.
Example code :
<?php
class Foo{
function doFoo(){}
function hasFoo(){}
}
var_dump(get_class_methods("Foo"));
?>
Output (PHP4):
array(2) {
[0]=>
string(5) "dofoo"
[1]=>
string(6) "hasfoo"
}
Output (PHP5):
array(2) {
[0]=>
string(5) "doFoo"
[1]=>
string(6) "hasFoo"
}
11. Assignment $this is impossible. Starting PHP 5.0.0 $this has special
meaning in class methods and is recognized by the PHP parser. The latter
will generate a parse error when assignment to $this is found
Example code :
<?php
class Foo {
function assignNew($obj) {
$this = $obj;
}
}
$a = new Foo();
$b = new Foo();
$a->assignNew($b);
echo "I was executed\n";
?>
Output (PHP 4):
I was executed
Output (PHP 5):
PHP Fatal error: Cannot re-assign $this in /tmp/this_ex.php on line 4
-57
View File
@@ -1,57 +0,0 @@
QNX4 Installation Notes
-----------------------
NOTE: General installation instructions are in the INSTALL file
1. To compile and test PHP3 you have to grab, compile and install:
- GNU dbm library or another db library;
- GNU bison (1.25 or later; 1.25 tested);
- GNU flex (any version supporting -o and -P options; 2.5.4 tested);
- GNU diffutils (any version supporting -w option; 2.7 tested);
2. To use CVS version you may need also:
- GNU CVS (1.9 tested);
- GNU autoconf (2.12 tested);
- GNU m4 (1.3 or later preferable; 1.4 tested);
3. To run configure define -lunix in command line:
LDFLAGS=-lunix ./configure
4. To use Sybase SQL Anywhere define ODBC_QNX and CUSTOM_ODBC_LIBS in
command line and run configure with --with-custom-odbc:
CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
If you have SQL Anywhere version 5.5.00, then you have to add
CFLAGS=-DSQLANY_BUG
to workaround its SQLFreeEnv() bug. Other versions has not been tested,
so try without this flag first.
5. To build the Apache module, you may have to hardcode an include path for
alloc.h in your Apache base directory:
- APACHE_DIRECTORY/src/httpd.h:
change #include "alloc.h"
to #include "APACHE_DIRECTORY/src/alloc.h"
Unless you want to use system regex library, you have to hardcode also
a path to regex.h:
- APACHE_DIRECTORY/src/conf.h:
change #include <regex.h>
to #include "APACHE_DIRECTORY/src/regex/regex.h"
I don't know so far why this required for QNX, may be it is Watcom
compiler problem.
If you building Apache module with SQL Anywhere support, you'll get
symbol conflict with BOOL. It is defined in Apache (httpd.h) and in
SQL Anywhere (odbc.h). This has nothing to do with PHP, so you have to
fix it yourself someway.
6. With above precautions, it should compile as is and pass regression
tests completely:
make
make check
make install
Don't bother me unless you really sure you made that all but it
still doesn't work.
June 28, 1998
Igor Kovalenko -- owl@infomarket.ru
-155
View File
@@ -1,155 +0,0 @@
$Id$
=============================================================================
HOW TO CREATE A SELF-CONTAINED PHP EXTENSION
A self-contained extension can be distributed independently of
the PHP source. To create such an extension, two things are
required:
- Configuration file (config.m4)
- Source code for your module
We will describe now how to create these and how to put things
together.
PREPARING YOUR SYSTEM
While the result will run on any system, a developer's setup needs these
tools:
GNU autoconf
GNU automake
GNU libtool
GNU m4
All of these are available from
ftp://ftp.gnu.org/pub/gnu/
CONVERTING AN EXISTING EXTENSION
Just to show you how easy it is to create a self-contained
extension, we will convert an embedded extension into a
self-contained one. Install PHP and execute the following
commands.
$ mkdir /tmp/newext
$ cd /tmp/newext
You now have an empty directory. We will copy the files from
the mysql extension:
$ cp -rp php-4.0.X/ext/mysql/* .
It is time to finish the module. Run:
$ phpize
You can now ship the contents of the directory - the extension
can live completely on its own.
The user instructions boil down to
$ ./configure \
[--with-php-config=/path/to/php-config] \
[--with-mysql=MYSQL-DIR]
$ make install
The MySQL module will either use the embedded MySQL client
library or the MySQL installation in MYSQL-DIR.
DEFINING THE NEW EXTENSION
Our demo extension is called "foobar".
It consists of two source files "foo.c" and "bar.c"
(and any arbitrary amount of header files, but that is not
important here).
The demo extension does not reference any external
libraries (that is important, because the user does not
need to specify anything).
LTLIBRARY_SOURCES specifies the names of the sources files. You can
name an arbitrary number of source files here.
CREATING THE M4 CONFIGURATION FILE
The m4 configuration can perform additional checks. For a
self-contained extension, you do not need more than a few
macro calls.
------------------------------------------------------------------------------
PHP_ARG_ENABLE(foobar,whether to enable foobar,
[ --enable-foobar Enable foobar])
if test "$PHP_FOOBAR" != "no"; then
PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
fi
------------------------------------------------------------------------------
PHP_ARG_ENABLE will automatically set the correct variables, so
that the extension will be enabled by PHP_NEW_EXTENSION in shared mode.
The first argument of PHP_NEW_EXTENSION describes the name of the
extension. The second names the source-code files. The third passes
$ext_shared which is set by PHP_ARG_ENABLE/WITH to PHP_NEW_EXTENSION.
Please use always PHP_ARG_ENABLE or PHP_ARG_WITH. Even if you do not
plan to distribute your module with PHP, these facilities allow you
to integrate your module easily into the main PHP module framework.
CREATING SOURCE FILES
ext_skel can be of great help when creating the common code for all modules
in PHP for you and also writing basic function definitions and C code for
handling arguments passed to your functions. See README.EXT_SKEL for further
information.
As for the rest, you are currently alone here. There are a lot of existing
modules, use a simple module as a starting point and add your own code.
CREATING THE SELF-CONTAINED EXTENSION
Put config.m4 and the source files into one directory. Then, run phpize
(this is installed during make install by PHP 4.0).
For example, if you configured PHP with --prefix=/php, you would run
$ /php/bin/phpize
This will automatically copy the necessary build files and create
configure from your config.m4.
And that's it. You now have a self-contained extension.
INSTALLING A SELF-CONTAINED EXTENSION
An extension can be installed by running:
$ ./configure \
[--with-php-config=/path/to/php-config]
$ make install
ADDING SHARED MODULE SUPPORT TO A MODULE
In order to be useful, a self-contained extension must be loadable
as a shared module. I will explain now how you can add shared module
support to an existing module called foo.
1. In config.m4, use PHP_ARG_WITH/PHP_ARG_ENABLE. Then you will
automatically be able to use --with-foo=shared[,..] or
--enable-foo=shared[,..].
2. In config.m4, use PHP_NEW_EXTENSION(foo,.., $ext_shared) to enable
building the extension.
3. Add the following lines to your C source file:
#ifdef COMPILE_DL_FOO
ZEND_GET_MODULE(foo)
#endif
-379
View File
@@ -1,379 +0,0 @@
An Overview of the PHP Streams abstraction
==========================================
$Id$
WARNING: some prototypes in this file are out of date.
The information contained here is being integrated into
the PHP manual - stay tuned...
Please send comments to: Wez Furlong <wez@thebrainroom.com>
Why Streams?
============
You may have noticed a shed-load of issock parameters flying around the PHP
code; we don't want them - they are ugly and cumbersome and force you to
special case sockets and files every time you need to work with a "user-level"
PHP file pointer.
Streams take care of that and present the PHP extension coder with an ANSI
stdio-alike API that looks much nicer and can be extended to support non file
based data sources.
Using Streams
=============
Streams use a php_stream* parameter just as ANSI stdio (fread etc.) use a
FILE* parameter.
The main functions are:
PHPAPI size_t php_stream_read(php_stream * stream, char * buf, size_t count);
PHPAPI size_t php_stream_write(php_stream * stream, const char * buf, size_t
count);
PHPAPI size_t php_stream_printf(php_stream * stream TSRMLS_DC,
const char * fmt, ...);
PHPAPI int php_stream_eof(php_stream * stream);
PHPAPI int php_stream_getc(php_stream * stream);
PHPAPI char *php_stream_gets(php_stream * stream, char *buf, size_t maxlen);
PHPAPI int php_stream_close(php_stream * stream);
PHPAPI int php_stream_flush(php_stream * stream);
PHPAPI int php_stream_seek(php_stream * stream, off_t offset, int whence);
PHPAPI off_t php_stream_tell(php_stream * stream);
PHPAPI int php_stream_lock(php_stream * stream, int mode);
These (should) behave in the same way as the ANSI stdio functions with similar
names: fread, fwrite, fprintf, feof, fgetc, fgets, fclose, fflush, fseek, ftell, flock.
Opening Streams
===============
In most cases, you should use this API:
PHPAPI php_stream *php_stream_open_wrapper(char *path, char *mode,
int options, char **opened_path TSRMLS_DC);
Where:
path is the file or resource to open.
mode is the stdio compatible mode eg: "wb", "rb" etc.
options is a combination of the following values:
IGNORE_PATH (default) - don't use include path to search for the file
USE_PATH - use include path to search for the file
IGNORE_URL - do not use plugin wrappers
REPORT_ERRORS - show errors in a standard format if something
goes wrong.
STREAM_MUST_SEEK - If you really need to be able to seek the stream
and don't need to be able to write to the original
file/URL, use this option to arrange for the stream
to be copied (if needed) into a stream that can
be seek()ed.
opened_path is used to return the path of the actual file opened,
but if you used STREAM_MUST_SEEK, may not be valid. You are
responsible for efree()ing opened_path. opened_path may be (and usually
is) NULL.
If you need to open a specific stream, or convert standard resources into
streams there are a range of functions to do this defined in php_streams.h.
A brief list of the most commonly used functions:
PHPAPI php_stream *php_stream_fopen_from_file(FILE *file, const char *mode);
Convert a FILE * into a stream.
PHPAPI php_stream *php_stream_fopen_tmpfile(void);
Open a FILE * with tmpfile() and convert into a stream.
PHPAPI php_stream *php_stream_fopen_temporary_file(const char *dir,
const char *pfx, char **opened_path TSRMLS_DC);
Generate a temporary file name and open it.
There are some network enabled relatives in php_network.h:
PHPAPI php_stream *php_stream_sock_open_from_socket(int socket, int persistent);
Convert a socket into a stream.
PHPAPI php_stream *php_stream_sock_open_host(const char *host, unsigned short port,
int socktype, int timeout, int persistent);
Open a connection to a host and return a stream.
PHPAPI php_stream *php_stream_sock_open_unix(const char *path, int persistent,
struct timeval *timeout);
Open a UNIX domain socket.
Stream Utilities
================
If you need to copy some data from one stream to another, you will be please
to know that the streams API provides a standard way to do this:
PHPAPI size_t php_stream_copy_to_stream(php_stream *src,
php_stream *dest, size_t maxlen);
If you want to copy all remaining data from the src stream, pass
PHP_STREAM_COPY_ALL as the maxlen parameter, otherwise maxlen indicates the
number of bytes to copy.
This function will try to use mmap where available to make the copying more
efficient.
If you want to read the contents of a stream into an allocated memory buffer,
you should use:
PHPAPI size_t php_stream_copy_to_mem(php_stream *src, char **buf,
size_t maxlen, int persistent);
This function will set buf to the address of the buffer that it allocated,
which will be maxlen bytes in length, or will be the entire length of the
data remaining on the stream if you set maxlen to PHP_STREAM_COPY_ALL.
The buffer is allocated using pemalloc(); you need to call pefree() to
release the memory when you are done.
As with copy_to_stream, this function will try use mmap where it can.
If you have an existing stream and need to be able to seek() it, you
can use this function to copy the contents into a new stream that can
be seek()ed:
PHPAPI int php_stream_make_seekable(php_stream *origstream, php_stream **newstream);
It returns one of the following values:
#define PHP_STREAM_UNCHANGED 0 /* orig stream was seekable anyway */
#define PHP_STREAM_RELEASED 1 /* newstream should be used; origstream is no longer valid */
#define PHP_STREAM_FAILED 2 /* an error occurred while attempting conversion */
#define PHP_STREAM_CRITICAL 3 /* an error occurred; origstream is in an unknown state; you should close origstream */
make_seekable will always set newstream to be the stream that is valid
if the function succeeds.
When you have finished, remember to close the stream.
NOTE: If you only need to seek forward, there is no need to call this
function, as the php_stream_seek can emulate forward seeking when the
whence parameter is SEEK_CUR.
NOTE: Writing to the stream may not affect the original source, so it
only makes sense to use this for read-only use.
NOTE: If the origstream is network based, this function will block
until the whole contents have been downloaded.
NOTE: Never call this function with an origstream that is referenced
as a resource! It will close the origstream on success, and this
can lead to a crash when the resource is later used/released.
NOTE: If you are opening a stream and need it to be seekable, use the
STREAM_MUST_SEEK option to php_stream_open_wrapper();
PHPAPI int php_stream_supports_lock(php_stream * stream);
This function will return either 1 (success) or 0 (failure) indicating whether or
not a lock can be set on this stream. Typically you can only set locks on stdio streams.
Casting Streams
===============
What if your extension needs to access the FILE* of a user level file pointer?
You need to "cast" the stream into a FILE*, and this is how you do it:
FILE * fp;
php_stream * stream; /* already opened */
if (php_stream_cast(stream, PHP_STREAM_AS_STDIO, (void*)&fp, REPORT_ERRORS) == FAILURE) {
RETURN_FALSE;
}
The prototype is:
PHPAPI int php_stream_cast(php_stream * stream, int castas, void ** ret, int
show_err);
The show_err parameter, if non-zero, will cause the function to display an
appropriate error message of type E_WARNING if the cast fails.
castas can be one of the following values:
PHP_STREAM_AS_STDIO - a stdio FILE*
PHP_STREAM_AS_FD - a generic file descriptor
PHP_STREAM_AS_SOCKETD - a socket descriptor
If you ask a socket stream for a FILE*, the abstraction will use fdopen to
create it for you. Be warned that doing so may cause buffered data to be lost
if you mix ANSI stdio calls on the FILE* with php stream calls on the stream.
If your system has the fopencookie function, php streams can synthesize a
FILE* on top of any stream, which is useful for SSL sockets, memory based
streams, data base streams etc. etc.
In situations where this is not desirable, you should query the stream
to see if it naturally supports FILE *. You can use this code snippet
for this purpose:
if (php_stream_is(stream, PHP_STREAM_IS_STDIO)) {
/* can safely cast to FILE* with no adverse side effects */
}
You can use:
PHPAPI int php_stream_can_cast(php_stream * stream, int castas)
to find out if a stream can be cast, without actually performing the cast, so
to check if a stream is a socket you might use:
if (php_stream_can_cast(stream, PHP_STREAM_AS_SOCKETD) == SUCCESS) {
/* it can be a socket */
}
Please note the difference between php_stream_is and php_stream_can_cast;
stream_is tells you if the stream is a particular type of stream, whereas
can_cast tells you if the stream can be forced into the form you request.
The former doesn't change anything, while the later *might* change some
state in the stream.
Stream Internals
================
There are two main structures associated with a stream - the php_stream
itself, which holds some state information (and possibly a buffer) and a
php_stream_ops structure, which holds the "virtual method table" for the
underlying implementation.
The php_streams ops struct consists of pointers to methods that implement
read, write, close, flush, seek, gets and cast operations. Of these, an
implementation need only implement write, read, close and flush. The gets
method is intended to be used for streams if there is an underlying method
that can efficiently behave as fgets. The ops struct also contains a label
for the implementation that will be used when printing error messages - the
stdio implementation has a label of "STDIO" for example.
The idea is that a stream implementation defines a php_stream_ops struct, and
associates it with a php_stream using php_stream_alloc.
As an example, the php_stream_fopen() function looks like this:
PHPAPI php_stream * php_stream_fopen(const char * filename, const char * mode)
{
FILE * fp = fopen(filename, mode);
php_stream * ret;
if (fp) {
ret = php_stream_alloc(&php_stream_stdio_ops, fp, 0, 0, mode);
if (ret)
return ret;
fclose(fp);
}
return NULL;
}
php_stream_stdio_ops is a php_stream_ops structure that can be used to handle
FILE* based streams.
A socket based stream would use code similar to that above to create a stream
to be passed back to fopen_wrapper (or it's yet to be implemented successor).
The prototype for php_stream_alloc is this:
PHPAPI php_stream * php_stream_alloc(php_stream_ops * ops, void * abstract,
size_t bufsize, int persistent, const char * mode)
ops is a pointer to the implementation,
abstract holds implementation specific data that is relevant to this instance
of the stream,
bufsize is the size of the buffer to use - if 0, then buffering at the stream
level will be disabled (recommended for underlying sources that implement
their own buffering - such a FILE*),
persistent controls how the memory is to be allocated - persistently so that
it lasts across requests, or non-persistently so that it is freed at the end
of a request (it uses pemalloc),
mode is the stdio-like mode of operation - php streams places no real meaning
in the mode parameter, except that it checks for a 'w' in the string when
attempting to write (this may change).
The mode parameter is passed on to fdopen/fopencookie when the stream is cast
into a FILE*, so it should be compatible with the mode parameter of fopen().
Writing your own stream implementation
======================================
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #1: when writing your own streams: make sure you have configured PHP with
--enable-debug.
I've taken some great pains to hook into the Zend memory manager to help track
down allocation problems. It will also help you spot incorrect use of the
STREAMS_DC, STREAMS_CC and the semi-private STREAMS_REL_CC macros for function
definitions.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
RULE #2: Please use the stdio stream as a reference; it will help you
understand the semantics of the stream operations, and it will always
be more up to date than these docs :-)
First, you need to figure out what data you need to associate with the
php_stream. For example, you might need a pointer to some memory for memory
based streams, or if you were making a stream to read data from an RDBMS like
MySQL, you might want to store the connection and rowset handles.
The stream has a field called abstract that you can use to hold this data.
If you need to store more than a single field of data, define a structure to
hold it, allocate it (use pemalloc with the persistent flag set
appropriately), and use the abstract pointer to refer to it.
For structured state you might have this:
struct my_state {
MYSQL conn;
MYSQL_RES * result;
};
struct my_state * state = pemalloc(sizeof(struct my_state), persistent);
/* initialize the connection, and run a query, using the fields in state to
* hold the results */
state->result = mysql_use_result(&state->conn);
/* now allocate the stream itself */
stream = php_stream_alloc(&my_ops, state, 0, persistent, "r");
/* now stream->abstract == state */
Once you have that part figured out, you can write your implementation and
define the your own php_stream_ops struct (we called it my_ops in the above
example).
For example, for reading from this weird MySQL stream:
static size_t php_mysqlop_read(php_stream * stream, char * buf, size_t count)
{
struct my_state * state = (struct my_state*)stream->abstract;
if (buf == NULL && count == 0) {
/* in this special case, php_streams is asking if we have reached the
* end of file */
if (... at end of file ...)
return EOF;
else
return 0;
}
/* pull out some data from the stream and put it in buf */
... mysql_fetch_row(state->result) ...
/* we could do something strange, like format the data as XML here,
and place that in the buf, but that brings in some complexities,
such as coping with a buffer size too small to hold the data,
so I won't even go in to how to do that here */
}
Implement the other operations - remember that write, read, close and flush
are all mandatory. The rest are optional. Declare your stream ops struct:
php_stream_ops my_ops = {
php_mysqlop_write, php_mysqlop_read, php_mysqlop_close,
php_mysqlop_flush, NULL, NULL, NULL,
"Strange MySQL example"
}
Thats it!
Take a look at the STDIO implementation in streams.c for more information
about how these operations work.
The main thing to remember is that in your close operation you need to release
and free the resources you allocated for the abstract field. In the case of
the example above, you need to use mysql_free_result on the rowset, close the
connection and then use pefree to dispose of the struct you allocated.
You may read the stream->persistent field to determine if your struct was
allocated in persistent mode or not.
vim:tw=78:et
-126
View File
@@ -1,126 +0,0 @@
Submitting Patch for PHP
========================
This document describes how to submit a patch for PHP. Since you are
reading this document, you are willing to submit a patch for PHP.
Please keep reading! Submitting a patch for PHP is easy. The hard
part is making it acceptable for inclusion into our repository. :-)
How to create patch?
--------------------
We are working with CVS. You need to get CVS source to create a patch
that we accept. Visit http://www.php.net/anoncvs.php to get CVS
source. You can check out older versions, but make sure you get
the default branch (i.e. Do not use -r option when you check out the
CVS source)
Read CODING_STANDARDS file before you start working.
Now you are ready to create a patch. Modify source to fix a bug in PHP or
add a new feature to PHP. After you finished editing, please test your
patch. Read README.TESTING for testing.
After you finish testing your patch, take diff file using
"cvs diff > your.patch" command.
Read README.TESTING for submitting a test script for your patch. This is
not strictly required, but it is preferred to submit a test script along
with your patch. Making new test script is very easy. It also helps us
to understand what you have been fixed or added to PHP.
Tips for creating patch
-----------------------
If you would like to fix multiple bugs. It is easier for us if you
could create 1 patch for 1 bug, but this is not strictly required.
Note though that you might get little response, if your patch is
too hard to review.
If you would like change/add many lines, it is better to ask module
maintainer and/or internals@lists.php.net, or pear-dev@lists.php.net if
you are patching PEAR. Official module maintainers can be found in
EXTENSIONS file in PHP source.
If you are new to CVS (Concurrent Versions System), visit
http://cvshome.org/ for details.
Recommended CVS client settings for creating patch file
------------------------------------------------------
Recommended ~/.cvsrc file setting is:
------
cvs -z3
update -d -P
checkout -P
diff -u
------
diff -u means:
-u Use the unified output format.
With this CVS setting, you don't have to worry about adding/deleting
newlines and spaces.
Check list for submitting patch
-------------------------------
- Did you run "make test" to check if your patch didn't break
other features?
- Did you compile PHP with --enable-debug and check the PHP and
web server error logs when you test your patch?
- Did you build PHP for multi-threaded web servers. (Optional)
- Did you create test script for "make test"? (Recommended)
- Did you check your patch is unified format and it does not
contain white space changes? (If you are not using recommended
cvs setting)
- Did you update CVS source before you take final patch?
- Did you read the patch again?
Where to send your patch?
-------------------------
If you are patching C source, send the patch to internals@lists.php.net.
If you are patching a module, you should also send the patch to the
maintainer. Official module maintainers are listed in EXTENSION file
in source.
If you are patching PEAR, send the patch to pear-dev@lists.php.net.
Please add the prefix "[PATCH]" to your email subject and make sure
to include the patch as a MIME attachment even if it is short.
NOTE: only MIME attachments of type 'text/*' are accepted. The
easiest way to accomplish this, is to make the extension
'.txt'.
Test scripts should be included in the same email.
Explain what has been fixed/added/changed by your patch.
Finally, add the bug Id(s) which can be closed by your patch, if any.
What happens after you submit your patch
----------------------------------------
If your patch is easy to review and has obviously no side-effects,
it might take up to a few hours until someone commits it.
Because this is a volunteer-driven effort, more complex patches will
require more patience on your side.
If you did not receive any feedback in a few days, please consider
resubmitting the description of your patch, along-side with
these questions:
- Is my patch too hard to review? Because of which factors?
- Should I split it up in multiple parts?
- Are there any unwanted whitespace changes?
What happens when your patch is applied?
----------------------------------------
Your name will be included together with your email address in the CVS
commit log. If your patch affects end-users, a brief description
and your name might be added to the NEWS file.
Thank you for submitting patch for PHP!
-179
View File
@@ -1,179 +0,0 @@
[IMPORTANT NOTICE]
------------------
Failed tests usualy indicate a problem with your local system setup
and not within PHP itself (at least for official PHP release versions).
You may decide to automaticaly submit a test summary to our QA workflow
at the end of a test run.
Please do *not* submit a failed test as a bug or ask for help on why
it failed on your system without providing substantial backup information
on *why* the test failed on your special setup. Thank you :-)
[Testing Basics]
----------------
The easiest way to test your PHP build is to run "make test" from the
command line after successfully compiling. This will run the complete
tests for all enabled functionalities and extensions using the PHP
CLI binary.
To execute test scripts, you must build PHP with some SAPI, then you
type "make test" to execute all or some test scripts saved under
"tests" directory under source root directory.
Usage:
make test
"make test" basically executes "run-tests.php" script
under the source root (parallel builds will not work). Therefore you
can execute the script as follows:
TEST_PHP_EXECUTABLE=sapi/cli/php \
sapi/cli/php [-c /path/to/php.ini] run-tests.php [ext/foo/tests/GLOB]
[Which "php" executable "make test" look for]
---------------------------------------------
You must use TEST_PHP_EXECUTABLE environment variable to explicitly
select the php executable to be used to run the tests. That can either
be the CLI or CGI executable.
"make test" executes "run-tests.php" script with "php" binary. Some
test scripts such as session must be executed by CGI SAPI. Therefore,
you must build PHP with CGI SAPI to perform all tests.
NOTE: PHP binary executing "run-tests.php" and php binary used for
executing test scripts may differ. If you use different PHP binary for
executing "run-tests.php" script, you may get errors.
[Which php.ini is used]
-----------------------
"make test" uses the same php.ini file as it would once installed.
The tests have been written to be independent of that php.ini file,
so if you find a test that is affected by a setting, please report
this, so we can address the issue.
[Which test scripts are executed]
---------------------------------
"run-tests.php" ("make test"), without any arguments executes all
test scripts by extracting all directories named "tests"
from the source root and any subdirectories below. If there are files,
which have a "phpt" extension, "run-tests.php" looks at the sections
in these files, determines whether it should run it, by evaluating
the 'SKIP' section. If the test is eligible for execution, the 'FILE'
section is extracted into a ".php" file (with the same name besides
the extension) and gets executed.
When an argument is given or TESTS environment variable is set, the
GLOB is expanded by the shell and any file with extension "*.phpt" is
regarded as a test file.
Tester can easily execute tests selectively with as follows.
Examples:
./sapi/cli/php run-tests.php ext/mbstring/*
./sapi/cli/php run-tests.php ext/mbstring/020.phpt
[Test results]
--------------
Test results are printed to standard output. If there is a failed test,
the "run-tests.php" script saves the result, the expected result and the
code executed to the test script directory. For example, if
ext/myext/tests/myext.phpt fails to pass, the following files are created:
ext/myext/tests/myext.php - actual test file executed
ext/myext/tests/myext.log - log of test execution (L)
ext/myext/tests/myext.exp - expected output (E)
ext/myext/tests/myext.out - output from test script (O)
ext/myext/tests/myext.diff - diff of .out and .exp (D)
Failed tests are always bugs. Either the test is bugged or not considering
factors applying to the tester's environment, or there is a bug in PHP.
If this is a known bug, we strive to provide bug numbers, in either the
test name or the file name. You can check the status of such a bug, by
going to: http://bugs.php.net/12345 where 12345 is the bug number.
For clarity and automated processing, bug numbers are prefixed by a hash
sign '#' in test names and/or test cases are named bug12345.phpt.
NOTE: The files generated by tests can be selected by setting the
environment variable TEST_PHP_LOG_FORMAT. For each file you want to be
generated use the character in brackets as shown above (default is LEOD).
The php file will be generated always.
NOTE: You can set environment variable TEST_PHP_DETAILED to enable
detailed test information.
[Automated testing]
If you like to keep up to speed, with latest developments and quality
assurance, setting the environment variable NO_INTERACTION to 1, will not
prompt the tester for any user input.
Normally, the exit status of "make test" is zero, regardless of the results
of independent tests. Set the environment variable REPORT_EXIT_STATUS to 1,
and "make test" will set the exit status ("$?") to non-zero, when an
individual test has failed.
Example script to be run by cron(1):
========== qa-test.sh =============
#!/bin/sh
CO_DIR=$HOME/cvs/php5
MYMAIL=qa-test@domain.com
TMPDIR=/var/tmp
TODAY=`date +"%Y%m%d"`
# Make sure compilation enviroment is correct
CONFIGURE_OPTS='--disable-all --enable-cli --with-pcre'
export MAKE=gmake
export CC=gcc
# Set test environment
export NO_INTERACTION=1
export REPORT_EXIT_STATUS=1
cd $CO_DIR
cvs update . >>$TMPDIR/phpqatest.$TODAY
./cvsclean ; ./buildconf ; ./configure $CONFIGURE_OPTS ; $MAKE
$MAKE test >>$TMPDIR/phpqatest.$TODAY 2>&1
if test $? -gt 0
then
cat $TMPDIR/phpqatest.$TODAY | mail -s"PHP-QA Test Failed for $TODAY" $MYMAIL
fi
========== end of qa-test.sh =============
NOTE: the exit status of run-tests.php will be 1 when
REPORT_EXIT_STATUS is set. The result of "make test" may be higher
than that. At present, gmake 3.79.1 returns 2, so it is
advised to test for non-zero, rather then a specific value.
[Creating new test files]
-------------------------
Writing test file is very easy if you are used to PHP.
See the HOWTO at http://qa.php.net/write-test.php
[How to help us]
----------------
If you find bug in PHP, you can submit bug report AND test script
for us. You don't have to write complete script, just give us test
script with following format. Please test the script and make sure
you write the correct ACTUAL OUTPUT and EXPECTED OUTPUT before you
submit.
<?php
/*
Bug #12345
substr() bug. Do not return expected string.
ACTUAL OUTPUT
XYXA
EXPECTED OUTPUT
ABCD
*/
$str = "XYZABCD";
echo substr($str,3,7);
?>
-137
View File
@@ -1,137 +0,0 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to run-tests2.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
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.
[New features]
----------------
* Command line interface:
You can run 'php run-tests2.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.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
can be configured to run test scripts through an HTTP server running
on localhost. localhost is required since either the web server must
alias a directory to the php source directory, or the test scripts
must be copied to a directory under the web server
(see config options TEST_WEB_BASE_URL, TEST_BASE_PATH, and TEST_WEB_EXT)
* New sections supported for test files (see below)
When running tests over http, tests that require ini settings different that what
the web server runs under will be skipped. Since the test harness defines a number
of ini settings by default, the web server may require special configuration to
make testing work.
[Example Usage]
----------------
Some (but not all!) examples of usage:
1. run tests from the php source directory
php run-tests2.php -p /path/to/php-cli
2. run tests using cgi emulation
php run-tests2.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
4. run tests over http, php sources have been aliased in web server
php run-tests2.php -w -u http://localhost/test
5. run tests using configuration file
php run-tests2.php -c /path/to/run-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
NOTE: configuration as described in README.TESTING still works.
[New Test Sections]
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under run-tests2.
--POST--
This is not a new section, but not multipart posts are supported for testing
file uploads, or other types of POST data.
--CGI--
This section takes no value. It merely provides a simple marker for tests
that MUST be run as CGI, even if there is no --POST-- or --GET-- sections
in the test file.
--DESCRIPTION--
Not used for anything, just a section for documenting the test
--ENV--
This section get's eval()'d to help build an environment for the
execution of the test. This can be used to change environment
vars that are used for CGI emulation, or simply to set env vars
for cli testing. A full example looks like:
--ENV--
return <<<END
PATH_TRANSLATED=$filename
PATH_INFO=$scriptname
SCRIPT_NAME=$scriptname
END;
Some variables are made easily available for use in this section, they
include:
$filename full native path to file, will become PATH_TRANSLATED
$filepath =dirname($filename)
$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->env all environment variables that will get passed to the test
--REQUEST--
This section is also eval'd, and is similar in nature to --ENV--. However,
this section is used to build the url used in an HTTP request. Valid values
to set in this section would include:
SCRIPT_NAME The inital part of the request url
PATH_INFO The pathinfo part of a request url
FRAGMENT The fragment section of a url (after #)
QUERY_STRING The query part of a url (after ?)
--REQUEST--
return <<<END
PATH_INFO=/path/info
END;
--HEADERS--
This section is also eval'd. It is used to provide additional headers sent
in an HTTP request, such as content type for multipart posts, cookies, etc.
--HEADERS--
return <<<END
Content-Type=multipart/form-data; boundary=---------------------------240723202011929
Content-Length=100
END;
--EXPECTHEADERS--
This section can be used to define what headers are required to be
received back from a request, and is checked in addition to the
regular expect sections. For example:
--EXPECTHEADERS--
Status: 404
-123
View File
@@ -1,123 +0,0 @@
PHP Build System V5 Overview
- supports Makefile.ins during transition phase
- not-really-portable Makefile includes have been eliminated
- supports separate build directories without VPATH by using
explicit rules only
- does not waste disk-space/CPU-time for building temporary libraries
=> especially noticeable on slower systems
- slow recursive make replaced with one global Makefile
- eases integration of proper dependencies
- adds PHP_DEFINE(what[, value]) which creates a single include-file
per what. This will allow more fine-grained dependencies.
- abandoning the "one library per directory" concept
- improved integration of the CLI
- several new targets
build-modules: builds and copies dynamic modules into modules/
install-cli: installs the CLI only, so that the install-sapi
target does only what its name says
- finally abandoned automake (still requires aclocal at this time)
- changed some configure-time constructs to run at buildconf-time
- upgraded shtool to 1.5.4
- removed $(moduledir) (use EXTENSION_DIR)
The Reason For a New System
It became more and more apparent that there is a severe need
for addressing the portability concerns and improving the chance
that your build is correct (how often have you been told to
"make clean"? When this is done, you won't need to anymore).
If You Build PHP on a Unix System
You, as a user of PHP, will notice no changes. Of course, the build
system will be faster, look better and work smarter.
If You Are Developing PHP
Extension developers:
Makefile.ins are abandoned. The files which are to be compiled
are specified in the config.m4 now using the following macro:
PHP_NEW_EXTENSION(foo, foo.c bar.c baz.cpp, $ext_shared)
E.g. this enables the extension foo which consists of three source-code
modules, two in C and one in C++. And, depending on the user's wishes,
the extension will even be built as a dynamic module.
The full syntax:
PHP_NEW_EXTENSION(extname, sources [, shared [,sapi_class[, extra-cflags]]])
Please have a look at acinclude.m4 for the gory details and meanings
of the other parameters.
And that's basically it for the extension side.
If you previously built sub-libraries for this module, add
the source-code files here as well. If you need to specify
separate include directories, do it this way:
PHP_NEW_EXTENSION(foo, foo.c mylib/bar.c mylib/gregor.c,,,-I@ext_srcdir@/lib)
E.g. this builds the three files which are located relative to the
extension source directory and compiles all three files with the
special include directive (@ext_srcdir@ is automatically replaced).
Now, you need to tell the build system that you want to build files
in a directory called $ext_builddir/lib:
PHP_ADD_BUILD_DIR($ext_builddir/lib)
Make sure to call this after PHP_NEW_EXTENSION, because $ext_builddir
is only set by the latter.
If you have a complex extension, you might to need add special
Make rules. You can do this by calling PHP_ADD_MAKEFILE_FRAGMENT
in your config.m4 after PHP_NEW_EXTENSION.
This will read a file in the source-dir of your extension called
Makefile.frag. In this file, $(builddir) and $(srcdir) will be
replaced by the values which are correct for your extension
and which are again determined by the PHP_NEW_EXTENSION macro.
Make sure to prefix *all* relative paths correctly with either
$(builddir) or $(srcdir). Because the build system does not
change the working directory anymore, we must use either
absolute paths or relative ones to the top build-directory.
Correct prefixing ensures that.
SAPI developers:
Instead of using PHP_SAPI=foo/PHP_BUILD_XYZ, you will need to type
PHP_SELECT_SAPI(name, type, sources.c)
I.e. specify the source-code files as above and also pass the
information regarding how PHP is supposed to be built (shared
module, program, etc).
For example for APXS:
PHP_SELECT_SAPI(apache, shared, sapi_apache.c mod_php5.c php_apache.c)
General info
The foundation for the new system is the flexible handling of
sources and their contexts. With the help of macros you
can define special flags for each source-file, where it is
located, in which target context it can work, etc.
Have a look at the well documented macros
PHP_ADD_SOURCES(_X) in acinclude.m4.
-174
View File
@@ -1,174 +0,0 @@
The Win32 Build System.
$Id$
Wez Furlong <wez@thebrainroom.com>
If you need help with the build system, send mail to
internals@lists.php.net; please don't email me directly.
===========================================================
Contents:
1. How to build PHP under windows
a. Requirements
b. Opening a command prompt
c. Generating configure.js
d. Configuring
e. Building
f. Cleaning up
g. Running the test suite
h. snapshot building
2. How to write config.w32 files
x. to be written.
===========================================================
1. How to build PHP under windows
a. Requirements
You need:
- Windows Scripting Host (cscript.exe)
- Microsoft Build Tools from:
Microsoft Visual Studio (VC6) or later
You also need:
- bindlib_w32 [http://www.php.net/extra/bindlib_w32.zip]
- win32build [http://www.php.net/extra/win32build.zip]
b. Opening the Build Environment Command Prompt:
- Using Visual Studio (VC6)
1. Install it
2. If you have a VC++ Command Prompt icon on your start menu,
click on it to get a Command Prompt with the env vars
set up correctly.
If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio\VC98\Bin\vcvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using Visual Studio .Net
1. Install it.
2. Under the Visual Studio .Net Tools sub menu of your start
menu, you should have a Visual Studio .Net Command Prompt
icon. If not, create a new shortcut and set the Target to:
%comspec% /k "C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat"
You might also want to set the prompt to start in
a convenient location (such as the root of your
PHP source checkout).
- Using the Platform SDK tools
1. Download the Platform SDK:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
- You need the Core SDK, which is approx 200MB to download
and requires approx 500MB of disk space.
- The other components of the SDK are not required by PHP
- You might be able to reduce the download size by downloading
the installer control component first and then selecting
only the Build Environment (around 30MB), but I haven't
tried this.
** Note: it seems that MS don't include the 32 bit
build tools in the platform SDK any longer, so
you will probably have very limited luck if you
don't also have VC++ or VS.Net already installed.
2. Once installed, you will have an icon on your start menu
that will launch the build environment; the latest SDK's
install a number of different versions of this; you probably
want to choose the Windows 2000 Retail build environment.
Clicking on this will open a command prompt with its Path,
Include and Lib env vars set to point to the build tools
and win32 headers.
c. Generating configure
Change directory to where you have your PHP 5 sources.
Run buildconf.bat.
d. Configuring
cscript /nologo configure.js --help
Will give you a list of configuration options; these will
have the form:
--enable-foo or --disable-foo or --with-foo or --without-foo.
--enable-foo will turn something on, and is equivalent to
specifying --enable-foo=yes
--disable-foo will turn something off, and is equivalent to
specifying --enable-foo=no
--enable-foo=shared will attempt to build that feature as
a shared, dynamically loadable module.
Sometimes a configure option needs additional information
about where to find headers and libraries; quite often
you can specify --enable-foo=option where option could be
the path to where to find those files. If you want to
specify a parameter and build it as shared, you can use
this syntax instead: --enable-foo=shared,option
The same rules all apply to --with-foo and --without-foo;
the only difference is the way the options are named;
the convention is that --enable-foo means that you are
switching on something that comes with PHP, whereas
--with-foo means that you want to build in something
external to PHP.
e. Building
Once you have successfully configured your build (make
sure you read the output from the command to make sure
it worked correctly), you can build the code; simply type
"nmake" at the command prompt, and it will build everthing
you asked for.
Once the build has completed, you will find your binaries
in the build dir determined by configure; this is typically
Release_TS for release builds or Debug_TS for debug builds.
If you build a non-thread-safe build, it will use Release
or Debug to store the files. Also in this build dir you
will find sub directories for each module that went into
your PHP build. The files you'll want to keep are the
.exe and .dll files directly in your build dir.
f. Cleaning Up
You can automatically delete everything that was built
by running "nmake clean". This will delete everything
that was put there when you ran nmake, including the
.exe and .dll files.
g. Running the test suite
You can verify that your build is working well by running
the regression test suite. You do this by typing
"nmake test". You can specify the tests you want to run
by defing the TESTS variable - if you wanted to run the
sqlite test suite only, you would type
"nmake /D TESTS=ext/sqlite/tests test"
h. Snapshot Building
If you want to set up an automated build that will tolerate
breakages in some of the modules, you can use the
--enable-snapshot-build configure option to generate a
makefile optimized for that purpose. A snapshot build will
switch the argument parser so that the default option for
configure switches that your don't specify will be set
to "shared". The effect of this is to turn on all options
unless you explicitly disable them. When you have configured
your snapshot build, you can use "nmake build-snap" to build
everything, ignoring build errors in individual extensions
or SAPI.
vim:tw=78:sw=1:ts=1:et
-112
View File
@@ -1,112 +0,0 @@
Using PHP 5 with the Zeus Web Server
-----------------------------------
Zeus fully supports running PHP in combination with our
webserver. There are three different interfaces that can be used to
enable PHP:
* CGI
* ISAPI
* FastCGI
Of the three, we recommend using FastCGI, which has been tested and
benchmarked as providing the best performance and reliability.
Full details of how to install PHP are available from our
website, at:
http://support.zeus.com/products/php.html
If you have any problems, please check the support site for more
up-to-date information and advice.
Quick guide to installing CGI/FastCGI with Zeus
-----------------------------------------------
Step 1 - Compile PHP as FastCGI.
Compile as follows:
./configure --enable-fastcgi
make
Note that PHP has many options to the configure script -
e.g. --with-mysql. You will probably want to select your usual options
before compiling; the above is just a bare minimum, for illustration.
After compilation finishes, you will be left with an executable
program called 'php'. Copy this into your document root, under a
dedicated FastCGI directory (e.g. $DOCROOT/fcgi-bin/php)
Step 2 - configure Zeus
Four stages:
- enable FastCGI
- configure FastCGI
- setup alias for FastCGI
- setup alias for PHP
1) Using the admin server, go to the 'module configuration' page for
your virtual server, and ensure that 'fastcgi' is enabled (select the
tickbox to the left).
2) While we can run FastCGI's locally, there are known problems with
some OS's (specifically, the communication between web server and
FastCGI happens over a unix domain socket, and some OS's have trouble
sustaining high connection rates over these sockets). So instead, we
are going to set up the PHP FastCGI to run 'remotely' over localhost
(this uses TCP sockets, which do not suffer this problem). Go to the
'fastcgi configuration' page, and under 'add remote fastcgi':
Add Remote FastCGI
Docroot path /fcgi-bin/php
Remote machine localhost:8002
The first entry is where you saved PHP, above.
The second entry is localhost:<any unused port>
We will start the FastCGI listening on this port shortly.
Click 'update' to commit these changes.
3) Go to the path mapping module and add an alias for FastCGI:
Add Alias
Docroot path /fcgi-bin
Filesystem directory /path/to/docroot/fcgi-bin
Alias type fastcgi
Click 'update' to commit these changes
4) Also on the path mapping module, add a handler for PHP:
Add handler
File extension php
Handler /fcgi-bin/php
Click 'update' to commit these changes
Finally restart your virtual server for these changes to take effect.
Step 3 - start PHP as a FastCGI runner
When you start PHP, it will pre-fork a given number of child processes
to handle incoming PHP requests. Each process will handle a given
number of requests before exiting (and being replaced by a newly
forked process). You can control these two parameters by setting the
following environment variables BEFORE starting the FastCGI runner:
PHP_FCGI_CHILDREN - the number of child processes to pre-fork. This
variable MUST be set, if not then the PHP will not run as a FastCGI.
We recommend a value of 8 for a fairly busy site. If you have many,
long-running PHP scripts, then you may need to increase this further.
PHP_FCGI_MAX_REQUESTS - the number of requests each PHP child process
handles before exiting. If not set, defaults to 500.
To start the FastCGI runner, execute '$ZEUSHOME/web/bin/fcgirunner
8002 $DOCROOT/fcgi-bin/php'. Substitute the appropriate values for
$ZEUSHOME and $DOCROOT; also substitute for 8002 the port you chose,
above.
To stop the runner (e.g. to experiment with the above environment
variables) you will need to manually stop and running PHP
processes. (Use 'ps' and 'kill'). As it is PHP which is forking lots
of children and not the runner, Zeus unfortunately cannot keep track
of what processes are running, sorry. A typical command line may look
like 'ps -efl | grep $DOCROOT/fcgi-bin/php | grep -v grep | awk
'{print $4}' | xargs kill'
-193
View File
@@ -1,193 +0,0 @@
Input Filter Support in PHP 5
-----------------------------
XSS (Cross Site Scripting) hacks are becoming more and more prevalent,
and can be quite difficult to prevent. Whenever you accept user data
and somehow display this data back to users, you are likely vulnerable
to XSS hacks.
The Input Filter support in PHP 5 is aimed at providing the framework
through which a company-wide or site-wide security policy can be
enforced. It is implemented as a SAPI hook and is called from the
treat_data and post handler functions. To implement your own security
policy you will need to write a standard PHP extension.
A simple implementation might look like the following. This stores the
original raw user data and adds a my_get_raw() function while the normal
$_POST, $_GET and $_COOKIE arrays are only populated with stripped
data. In this simple example all I am doing is calling strip_tags() on
the data. If register_globals is turned on, the default globals that
are created will be stripped ($foo) while a $RAW_foo is created with the
original user input.
ZEND_BEGIN_MODULE_GLOBALS(my_input_filter)
zval *post_array;
zval *get_array;
zval *cookie_array;
ZEND_END_MODULE_GLOBALS(my_input_filter)
#ifdef ZTS
#define IF_G(v) TSRMG(my_input_filter_globals_id, zend_my_input_filter_globals *, v)
#else
#define IF_G(v) (my_input_filter_globals.v)
#endif
ZEND_DECLARE_MODULE_GLOBALS(my_input_filter)
function_entry my_input_filter_functions[] = {
PHP_FE(my_get_raw, NULL)
{NULL, NULL, NULL}
};
zend_module_entry my_input_filter_module_entry = {
STANDARD_MODULE_HEADER,
"my_input_filter",
my_input_filter_functions,
PHP_MINIT(my_input_filter),
PHP_MSHUTDOWN(my_input_filter),
NULL,
PHP_RSHUTDOWN(my_input_filter),
PHP_MINFO(my_input_filter),
"0.1",
STANDARD_MODULE_PROPERTIES
};
PHP_MINIT_FUNCTION(my_input_filter)
{
ZEND_INIT_MODULE_GLOBALS(my_input_filter, php_my_input_filter_init_globals, NULL);
REGISTER_LONG_CONSTANT("POST", PARSE_POST, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("GET", PARSE_GET, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("COOKIE", PARSE_COOKIE, CONST_CS | CONST_PERSISTENT);
sapi_register_input_filter(my_sapi_input_filter);
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(my_input_filter)
{
if(IF_G(get_array)) {
zval_ptr_dtor(&IF_G(get_array));
IF_G(get_array) = NULL;
}
if(IF_G(post_array)) {
zval_ptr_dtor(&IF_G(post_array));
IF_G(post_array) = NULL;
}
if(IF_G(cookie_array)) {
zval_ptr_dtor(&IF_G(cookie_array));
IF_G(cookie_array) = NULL;
}
return SUCCESS;
}
PHP_MINFO_FUNCTION(my_input_filter)
{
php_info_print_table_start();
php_info_print_table_row( 2, "My Input Filter Support", "enabled" );
php_info_print_table_row( 2, "Revision", "$Revision$");
php_info_print_table_end();
}
/* The filter handler. If you return 1 from it, then PHP also registers the
* (modified) variable. Returning 0 prevents PHP from registering the variable;
* you can use this if your filter already registers the variable under a
* different name, or if you just don't want the variable registered at all. */
SAPI_INPUT_FILTER_FUNC(my_sapi_input_filter)
{
zval new_var;
zval *array_ptr = NULL;
char *raw_var;
int var_len;
assert(*val != NULL);
switch(arg) {
case PARSE_GET:
if(!IF_G(get_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(get_array) = array_ptr;
break;
case PARSE_POST:
if(!IF_G(post_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(post_array) = array_ptr;
break;
case PARSE_COOKIE:
if(!IF_G(cookie_array)) {
ALLOC_ZVAL(array_ptr);
array_init(array_ptr);
INIT_PZVAL(array_ptr);
}
IF_G(cookie_array) = array_ptr;
break;
}
Z_STRLEN(new_var) = val_len;
Z_STRVAL(new_var) = estrndup(*val, val_len);
Z_TYPE(new_var) = IS_STRING;
var_len = strlen(var);
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
php_register_variable_ex(raw_var, &new_var, array_ptr TSRMLS_DC);
php_strip_tags(*val, val_len, NULL, NULL, 0);
*new_val_len = strlen(*val);
return 1;
}
PHP_FUNCTION(my_get_raw)
{
long arg;
char *var;
int var_len;
zval **tmp;
zval *array_ptr = NULL;
HashTable *hash_ptr;
char *raw_var;
if(zend_parse_parameters(2 TSRMLS_CC, "ls", &arg, &var, &var_len) == FAILURE) {
return;
}
switch(arg) {
case PARSE_GET:
array_ptr = IF_G(get_array);
break;
case PARSE_POST:
array_ptr = IF_G(post_array);
break;
case PARSE_COOKIE:
array_ptr = IF_G(post_array);
break;
}
if(!array_ptr) RETURN_FALSE;
/*
* I'm changing the variable name here because when running with register_globals on,
* the variable will end up in the global symbol table
*/
raw_var = emalloc(var_len+5); /* RAW_ and a \0 */
strcpy(raw_var, "RAW_");
strlcat(raw_var,var,var_len+5);
hash_ptr = HASH_OF(array_ptr);
if(zend_hash_find(hash_ptr, raw_var, var_len+5, (void **)&tmp) == SUCCESS) {
*return_value = **tmp;
zval_copy_ctor(return_value);
} else {
RETVAL_FALSE;
}
efree(raw_var);
}
-152
View File
@@ -1,152 +0,0 @@
Things to do or at least think about doing in the future. Name in
parenthesis means that person has taken on this project.
Zend
----
* Allow foreach ($array as $k => list($a, $b)) syntax for multi
dimensional arrays.
* Look at replacing c-lib call tolower().
* Make hash API functions work with HASH_OF() to save time.
* Native large number support (probably with GNU GMP)
* Const'ify APIs. Right now, many functions leave parameters untouched,
but don't declare those as const. This makes interaction with other
interfaces difficult which pass const parameters to us.
global
------
* Make sure that all ZTS globals get destructed. Most ts_allocate_id()
calls should have a dtor entry.
* on some platforms unimplemented function will just do nothing
(e.g. symlink) they should print a warning or not even be defined!
(DONE ?)
* --enable-all in configure. (--enable-shared=max ...)
* make configure print out a summary when it's done (like XEmacs)
* replace standard functions which work on static data with
reentrancy-safe functions (DONE?).
* make SAPI conform to CGI/1.1. Currently, all SAPI modules
define REMOTE_ADDR etc. themselves and reach only various level
of compliance.
* see what functions might need to be changed to use HashPosition, so
that the internal array pointer is not affected.
* Move most extensions and PEAR packages out of the PHP CVS tree,
include them again during release packaging.
Other
* use thread-safe resolver functions (either require BIND 8 or adns).
* implement javadoc based function docs template system.
* provide optional IPv6 support (seems to be done?).
* find a better way to implement script timeouts. SIGVTALRM is used
by some POSIX threads implementations (i.e. OpenBSD) and is not
available in ZTS mode.
* Implement flush feature suitable for nested output buffers.
Streams
-------
* Route filestat.c through the wrapper layer; isolate the statcache code
so that it is independent of php functions and can be applied to any
stream/path.
* Implement generalized connection pool for stated protocols such as
ftp and http/1.1 (using keep-alive) to avoid having to negotiate
new command/request stream for each subsequent call; Possibly store
resources in contexts (creating a default context if necessary) to
allow segmentation of connection pools.
* Add a method to take ownership of the memory buffer in memory streams so
that generating string values for zvals doesn't require an estrdup.
* bundle and use curl lib for fopen wrapper.
documentation
-------------
* Add remarks in the documentation which functions are not implemented
on win32.
* Add remarks in the documentation which functions are not binary-safe.
* Update curl documentation (DONE?)
* Add developer documentation.
* Add detailed documentation for Java extension.
ext/bz2
-------
* Add an ini directive to specify the size of decompression buffer.
The default 4k is too small for large files and also requires much time
for decompression. 40k is suitable for such files, however it may be too
much under certain environments. There should be appropriate default
settings for the various SAPI modules (e.g. apache and cli).
ext/curl
--------
* Have a warning scheme for when people use unsupported features.
ext/oci8
--------
* All OCIFetch*() functions should return 0 for no more data and false on
error.
* Have a flag that trims trailing spaces from CHAR fields on retrieval.
* Make allow_call_time_pass_reference=Off working.
* For additional todo information, see oci8.c, in ext/oci8
ext/odbc
--------
For PHP 4.3.0:
* update all php_error calls to php_error_docref where valid
* integrate EXPERIMENTAL ODBC update for use in PHP 5.0, use for
testing purposes only.
For PHP 5.0.0
* Activate EXPERIMENTAL ODBC codebase update
ext/pcre
--------
* Allow user to set PCRE_NOTEMPTY, PCRE_ANCHORED at execution time, maybe
ext/pcntl
---------
* Change internal callback handler to use TICKS
* Remove all zend_extension code
* Add object callback support to pcntl_signal()
ext/pgsql
---------
For PHP 4.3.0:
* Add pg_metadata() with metadata cache feature.
* Add pg_convert() to check and convert array value for query.
* Add pg_insert/pg_update/pg_delete/pg_select for simple query.
ext/session
-----------
For PHP 4.3.0:
* session_abort() to abort session. ie: Do not save session data.
* Allow unset($_SESSION) or unset($HTTP_SESSION_VARS) to unset
session vars regardless of register_globals setting.
Other:
* Maybe implement finer-grained session variables that could be
locked individually.
* Write a network-transparent storage back-end with fallover
facilities
* Provide a callback facility which is executed upon encountering
an unknown class name during deserialization
ext/standard
------------
* Add a version number to data serialized via serialize().
* Possibly modify parsing of GPC data to automatically create arrays if
variable name is seen more than once.
* Implement regex-cache for url-functions.
* Move socket related functions to fsock.c.
ext/wddx
--------
* See if we can support the remaining data types:
dateTime
binary
http://www.wddx.org/WDDX_SDK_10a/7__References/WDDX_DTD.htm
(Andrei)
* implement wddx_packet_as_javascript(). (Andrei)
other cool stuff
----------------
* PVM extension
vim:et:sw=4:ts=4
-5
View File
@@ -1,5 +0,0 @@
Zend Engine
-----------
- Look at making zend_constant value member be a zval* instead of zval. (Andi)
- Implement inheritance rules for type hints. (Marcus)
- Find a keyword for the if-set-or operator (apply the patch). (Marcus, all)
-109
View File
@@ -1,109 +0,0 @@
Component: Zend Engine 2
Important stuff to finish: PPP members/PPP methods,
support of overloaded extensions, possibly differentiate
between class and namespace as discussed with Stig in
Germany.
Responsibility: Zeev, Andi, Stas
Time frame: Couple of months for first part and extensions will be
ongoing while PHP is being fixed.
Things to leave for later versions: Native aggregation
support, accessing static members via object and not class.
Component: Aggregation
Responsibility: Andi, Stig?
Time frame: ?
Component: Redesign of API Versioning
Responsibility: ?
Time frame: 1 month
Component: Thread Safety
Identify the extensions that are not thread safe by design
or due to dependant libraries and identify them as such.
If possible try to resolve thread safety issue via code
improvements (if php code or patches will be accepted by
library maintainers). For situations where thread safety
cannot easily be acheived a flag in the extension API is
set so PHP can identify non-thread safe extensions. These
extensions will not be loaded in a ZTS compiled binary
(unless it is cli/cgi).
Responsibility: ?
Time frame: ?
Component: SAPI
Environment variables defined in the CGI spec need to be
verified in each SAPI module that they conform to the CGI
spec correctly. If they do not, the SAPI module needs to
fix the variable prior to script execution. Having this
conformity will aid in having PHP scripts run correctly
under different sapi modules.
Responsibility: Shane Caraveo & each sapi module owner
Timeframe: ? (but shouldn't be much effort, most modules are probably ok)
Component: Input Filtering
- Implement a SAPI input filter hook that will get called
just before registering a variable in the
treat_data/post_handler hooks. (done)
- Make sure this is also done in mbstring (done)
- Provide access functions, or perhaps a new
$_RAW_GET/POST/Cookie set of superglobals to get at the
unfiltered data
- Provide a .ini directive which allows people to set their
input filter to one of the built-in strip_tags,
htmlspecialchars or whatever other internal function might
be useful here.
- (The main benefit of this is to make it easier for people
to solve the XSS problem once and for all without having
to go through every line of their code and adding input
validation/filtering everywhere)
Responsibility: Rasmus
Timeframe: Yesterday
Component: RPC Abstraction Layer
Porting java, com, dotnet, xmlrpc, corba, soap and python, srm
(are there more ?) to work with the new oo api and preferably
by using ext/rpc.
Responsibility: Harald
Time frame: 2 months (but i have to wait for a few engine features first)
Component: OO Extensions
Each OO extension has to be revised and rewritten to fit into
the new OO model. We should decide which extensions are a must
to have for the release and which can be ported by the maintainer
later as a separate pecl release.
A list of extensions to be extended that have to be investigated:
* browscap
* aggregate
* all *sql extensions (*_fetch_object)
* domxml (seems like christian is rewriting it anyways)
* ming
Responsibility: Harald (, extension maintainers)
Component: Abstract Data Types (ADT)
Responsibility: Sterling, Harald
Time frame: ?
Component: Test Suite
Extending the test suite with atleast a test for every
function in an extension that doesn't require external
resources. Also developing an automated test thing which
cvs ups's, compiles and tests the build on a daily base on
as much platforms/extensions as possible.
The test suite will also be extended to support threaded
testing and testing for differing sapi modules (via http
calls or other methods).
Reponsibility: Derick (, extension maintainers)
Time frame: 3 months
-26
View File
@@ -1,26 +0,0 @@
Copyright (c) 1999, 2000, 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
-719
View File
@@ -1,719 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999, 2000, 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();
new_ctx = malloc(sizeof(*new_ctx));
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);
}
/* 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
-169
View File
@@ -1,169 +0,0 @@
/*
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999, 2000, 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
/* #ifndef WIN32 */
#ifndef WIN32
# include <tsrm_config.h>
#endif
#ifdef WIN32
# define TSRM_WIN32
# include "tsrm_config.w32.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
/* 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);
/* 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)
-44
View File
@@ -1,44 +0,0 @@
#ifndef READDIR_H
#define READDIR_H
/*
* Structures and types used to implement opendir/readdir/closedir
* on Windows 95/NT.
*/
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.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 {
long handle; /* _findfirst/_findnext handle */
short offset; /* offset into directory */
short finished; /* 1 if there are not more files */
struct _finddata_t 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 *);
void 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
-129
View File
@@ -1,129 +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)
sinclude(TSRM/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
-58
View File
@@ -1,58 +0,0 @@
#ifndef TSRM_CONFIG_COMMON_H
#define TSRM_CONFIG_COMMON_H
#if WINNT|WIN32
# define TSRM_WIN32
#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
# 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-2005 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 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_0.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-2005 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 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_0.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
-312
View File
@@ -1,312 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2005 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 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_0.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
#ifndef TSRM_WIN32
#include <unistd.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
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
/* On AIX & Tru64 when a file does not exist realpath() returns
* NULL, and sets errno to ENOENT. Unlike in other libc implementations
* the destination is not filled and remains undefined. Therefor, we
* must populate it manually using strcpy as done on systems with no
* realpath() function.
*/
#if defined(__osf__) || defined(_AIX)
static char *php_realpath_hack(char *src, char *dest)
{
char *ret;
if ((ret = realpath(src, dest)) == NULL && errno == ENOENT) {
return strcpy(dest, src);
} else {
return ret;
}
}
#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 TSRMLS_DC);
#endif
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
#define REALPATH_CACHE
#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
#ifdef REALPATH_CACHE
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;
#endif
typedef struct _virtual_cwd_globals {
cwd_state cwd;
#ifdef REALPATH_CACHE
long realpath_cache_size;
long realpath_cache_size_limit;
long realpath_cache_ttl;
realpath_cache_bucket *realpath_cache[1024];
#endif
} 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
/* 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 TSRMLS_CC)
#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) 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
#ifdef HAVE_REALPATH
#if defined(__osf__) || defined(_AIX)
#define VCWD_REALPATH(path, real_path) php_realpath_hack(path, real_path)
#else
#define VCWD_REALPATH(path, real_path) realpath(path, real_path)
#endif
#else
#define VCWD_REALPATH(path, real_path) strcpy(real_path, path)
#endif
#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)
#endif
#endif
#endif /* VIRTUAL_CWD_H */
-388
View File
@@ -1,388 +0,0 @@
/*
+----------------------------------------------------------------------+
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2005 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 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_0.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)
{
SHFILEINFO sfi;
if (mode == 1 /*X_OK*/) {
return access(pathname, 0) == 0 &&
SHGetFileInfo(pathname, 0, &sfi, sizeof(SHFILEINFO), SHGFI_EXETYPE) != 0 ? 0 : -1;
} 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, env, cwd, &startup, &process)) {
return NULL;
}
free(cmd);
CloseHandle(process.hThread);
proc = process_get(NULL TSRMLS_CC);
if (read) {
fno = _open_osfhandle((long)in, _O_RDONLY | mode);
CloseHandle(out);
} else {
fno = _open_osfhandle((long)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_EXCL) {
return -1;
}
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;
}
}
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-2005 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.0 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_0.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-2005 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_mm.c \
zend_default_classes.c zend_reflection_api.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
-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
-610
View File
@@ -1,610 +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_mm.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_reflection_api.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_mm.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_reflection_api.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
-315
View File
@@ -1,315 +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(zend-memory-manager,
[ --disable-zend-memory-manager
Disable the Zend memory manager - FOR DEVELOPERS ONLY!!],
[
ZEND_USE_ZEND_ALLOC=$enableval
], [
ZEND_USE_ZEND_ALLOC=yes
])
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(memory-limit,
[ --enable-memory-limit Compile with memory limit support], [
ZEND_MEMORY_LIMIT=$enableval
],[
ZEND_MEMORY_LIMIT=no
])
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 the Zend memory manager)
AC_MSG_RESULT($ZEND_USE_ZEND_ALLOC)
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 a memory limit)
AC_MSG_RESULT($ZEND_MEMORY_LIMIT)
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_USE_ZEND_ALLOC" = "yes"; then
AC_DEFINE(USE_ZEND_ALLOC,1,[Use Zend memory manager])
else
AC_DEFINE(USE_ZEND_ALLOC,0,[Use Zend memory manager])
fi
if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
AC_DEFINE(ZTS,1,[ ])
CFLAGS="$CFLAGS -DZTS"
LIBZEND_CPLUSPLUS_CHECKS
fi
if test "$ZEND_MEMORY_LIMIT" = "yes"; then
AC_DEFINE(MEMORY_LIMIT, 1, [Memory limit])
else
AC_DEFINE(MEMORY_LIMIT, 0, [Memory limit])
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)
])
AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
])
-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
-743
View File
@@ -1,743 +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
# 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_mm.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_reflection_api.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_mm.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_reflection_api.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-2005 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:
*/
-104
View File
@@ -1,104 +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"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
if test "$YACC"; then
AC_CACHE_CHECK([for bison version], php_cv_bison_version, [
set `bison --version| grep 'GNU Bison' | cut -d ' ' -f 4 | $SED -e 's/\./ /'|tr -d a-z`
bison_version="${1}.${2}"
php_cv_bison_version=invalid
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)"
fi
done
])
else
bison_version=none
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'
])
-419
View File
@@ -1,419 +0,0 @@
<?php
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 hash($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)");
hash(50000);
$t = end_test($t, "hash(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-2005 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$ */
-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
Fatal error: Argument 1 must be an array, called in %sarray_type_hint_001.php on line 7 and defined in %sarray_type_hint_001.php on line 2
-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::__destruct
test::destructor
-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.
-39
View File
@@ -1,39 +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
--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
-28
View File
@@ -1,28 +0,0 @@
--TEST--
Bug #24884 (calling $this->__clone(); crashes php)
--SKIPIF--
<?php if (version_compare(zend_version(), '2.0.0-dev', '<')) die('skip ZendEngine 2 needed'); ?>
--FILE--
<?php
class Test {
function __copy()
{
$string = PHP_VERSION;
$version = $string{0};
if($string < 5)
{
return $this;
}
else
{
return clone $this;
}
}
}
$test = new Test();
$test2 = $test->__copy();
var_dump($test2);
?>
--EXPECT--
object(Test)#2 (0) {
}
-19
View File
@@ -1,19 +0,0 @@
--TEST--
Bug #26010 (private / protected variables get exposed by get_object_vars())
--FILE--
<?php
class foo {
private $private = 'private';
protected $protected = 'protected';
public $public = 'public';
}
$data = new foo();
$obj_vars = get_object_vars($data);
var_dump($obj_vars);
?>
--EXPECT--
array(1) {
["public"]=>
string(6) "public"
}
-9
View File
@@ -1,9 +0,0 @@
--TEST--
Bug #26077 Memory leaks when creating an instance of an object
--FILE--
<?php
class foo {} new foo();
?>
===DONE===
--EXPECT--
===DONE===
-67
View File
@@ -1,67 +0,0 @@
--TEST--
Bug #26166 (__toString() crash when no values returned)
--FILE--
<?php
class Foo
{
function __toString()
{
return "Hello World!\n";
}
}
class Bar
{
private $obj;
function __construct()
{
$this->obj = new Foo();
}
function __toString()
{
return $this->obj->__toString();
}
}
$o = new Bar;
echo $o;
echo "===THROW===\n";
class Error
{
function __toString() {
throw new Exception("This is an error!");
}
}
$o = new Error;
try {
echo $o;
}
catch (Exception $e) {
echo "Got the exception\n";
}
echo "===NONE===\n";
class None
{
function __toString() {
}
}
$o = new None;
echo $o;
?>
===DONE===
--EXPECTF--
Hello World!
===THROW===
Got the exception
===NONE===
Fatal error: Method None::__toString() must return a string value in %sbug26166.php on line %d
-29
View File
@@ -1,29 +0,0 @@
--TEST--
Bug #26229 (getIterator() segfaults when it returns arrays or scalars)
--FILE--
<?php
class array_iterator implements IteratorAggregate {
public function getIterator() {
return array('foo', 'bar');
}
}
$obj = new array_iterator;
try
{
foreach ($obj as $property => $value)
{
var_dump($value);
}
}
catch(Exception $e)
{
echo $e->getMessage() . "\n";
}
?>
===DONE===
--EXPECTF--
Objects returned by array_iterator::getIterator() must be traversable or implement interface Iterator
===DONE===
Loaded 100 of 4556 files, more files were not shown because too many files have changed in this diff. Show more