Compare commits

..
Author SHA1 Message Date
SVN Migration 2a1e877c66 This commit was manufactured by cvs2svn to create tag 'php_5_2_0RC4'. 2006-09-14 17:49:13 +00:00
Ilia Alshanetsky b5446194ec PHP 5.2.0RC4 2006-09-14 17:49:12 +00:00
Ilia Alshanetsky 6e2add04ea Make float filter handle things like 02.324 properly 2006-09-14 17:47:00 +00:00
Nuno Lopes 4a162b71a2 add --STDIN-- support 2006-09-14 16:58:52 +00:00
Antony Dovgal 7a5306598a separate zval only when needed (fixes 035.phpt and doesn't affect SAPI filtering) 2006-09-14 15:30:13 +00:00
Rob Richards 436d75c376 BFN 2006-09-14 13:37:12 +00:00
Rob Richards 6fea033c6e fix bug #38813 (DOMEntityReference->__construct crashes when called explicitly) 2006-09-14 13:35:02 +00:00
Dmitry Stogov 806bc4e164 Reinamed variables to avoid name conflicts 2006-09-14 10:32:45 +00:00
Dmitry Stogov 2604f21fa6 Removed unused macro USE_ZEND_ALLOC 2006-09-14 09:58:27 +00:00
Dmitry Stogov 3fcfdf573d Write valid run-time value for Zend Memeory Manager 2006-09-14 08:01:48 +00:00
Dmitry Stogov 27c327b97e Added is_zend_mm() to allow runtime check for zend memory manager 2006-09-14 08:00:44 +00:00
Stanislav Malyshev 38540337a9 add for VC build 2006-09-13 17:47:20 +00:00
Stanislav Malyshev dd48748f5a fix VC build:
- update PCRE defines
- create timelib_config.h
- update .def dependencies
2006-09-13 17:33:24 +00:00
Stanislav Malyshev 286a9db9df fix fcgi build 2006-09-13 17:23:16 +00:00
Ilia Alshanetsky 01ea35a078 Fixed name 2006-09-13 15:54:51 +00:00
Ilia Alshanetsky 54032dee04 Fixed test for systems without INFILE/OUTFILE support 2006-09-13 15:52:57 +00:00
Antony Dovgal 0680cc4360 fix tests on MacOS 2006-09-13 13:59:16 +00:00
Dmitry Stogov 3b2fa0ce82 Fix memory leaks 2006-09-13 13:25:50 +00:00
Dmitry Stogov da09526eac Fix for bug #38757 (MultiPart Form Uploads fail with FastCGI) 2006-09-13 13:03:01 +00:00
Antony Dovgal e5ab519397 MFH 2006-09-13 10:44:11 +00:00
Antony Dovgal 6e0915b631 new tests 2006-09-12 20:32:39 +00:00
Antony Dovgal d1202b7986 declare oci_lob_seek() 2006-09-12 20:27:28 +00:00
Antony Dovgal 03c7bbd33b MFH: improve spelling (fixes #38780) 2006-09-12 17:26:34 +00:00
Derick Rethans ebbfc21a15 - Make passing filter flags as LONG work again.
- Make super globals filtering work again (as quick workaround).
#- Will merge to head later... need to get things sorted out first.
2006-09-12 16:10:33 +00:00
Ilia Alshanetsky f0fd70fadb Fixed bug #37779 (empty include_path leads to search for files inside /). 2006-09-12 15:47:25 +00:00
Pierre Joye bb2d53e768 - PECL Bug #8676, addFile was not updated and still used VCWD_REALPATH,
it now uses expand_filepath
2006-09-12 12:02:49 +00:00
Antony Dovgal 7800711d34 MFH: fix leak when binding a variable to the same placeholder several times 2006-09-12 11:42:44 +00:00
Dmitry Stogov 7e17f8591a Fixed bug #38772 (inconsistent overriding of methods in different visibility contexts) 2006-09-12 11:01:16 +00:00
Antony Dovgal 1a6cd5162e remove a leftover 2006-09-12 10:54:01 +00:00
Antony Dovgal 7b588b5bcd fix test 2006-09-12 10:42:32 +00:00
Ilia Alshanetsky bb9a9f2b98 Typo fix from Steph
Added note about CLI and INI search path
2006-09-11 23:11:18 +00:00
Johannes Schlüter 6415ef51e9 - MFH: Print the type of the original value 2006-09-11 21:21:43 +00:00
Ilia Alshanetsky 4bb51d165a BFN 2006-09-11 19:57:45 +00:00
Sara Golemon 93c8a45083 MFH: Bug #38687 - sockaddr local storage insufficient for all sock families 2006-09-11 19:18:07 +00:00
Johannes Schlüter 6a1b4c99c7 - MFH: Fix #37923 (Display constant value in reflection::export) 2006-09-11 17:08:42 +00:00
Ilia Alshanetsky f4a75d91d2 Fixed bug #38096 (large timeout values ignored on 32bit machines in
stream_socket_accept() and stream_socket_client()).
2006-09-11 14:52:21 +00:00
Antony Dovgal f3ae2fea43 BFN 2006-09-11 14:30:17 +00:00
Antony Dovgal d6ee9d4810 MFH: fix #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper) 2006-09-11 14:30:08 +00:00
Antony Dovgal 0a1f5d12a1 fix tests 2006-09-11 14:17:51 +00:00
Antony Dovgal 5a9f40a46a add tests 2006-09-11 14:13:25 +00:00
Ilia Alshanetsky 65c046b200 Upgrading updates from Steph 2006-09-11 14:10:18 +00:00
Antony Dovgal 6d040bf67a fix test 2006-09-11 08:08:20 +00:00
Dmitry Stogov 567a4785b3 Don't try to do safe connection close in case of FastCGI protocol error 2006-09-11 07:22:40 +00:00
Ilia Alshanetsky f739a43906 Fixed a typo 2006-09-11 01:36:20 +00:00
Hannes Magnusson 7e3c017e5a dissallowing->disallowing 2006-09-10 22:59:28 +00:00
Antony Dovgal 334c36ac7c new tests 2006-09-10 22:11:29 +00:00
Antony Dovgal 4dd2a598f3 add new test 2006-09-10 19:42:12 +00:00
Hannes Magnusson 0ce31d14f5 MFH: proots 2006-09-10 17:01:51 +00:00
Hannes Magnusson b6a5941b97 MFH: date_timezone_set() needs both arguments
MFH: throw exception in DateTimeZone::__construct() when no arguments are passed
2006-09-10 16:34:08 +00:00
Hannes Magnusson 73161f33d4 Add *.lo into .cvsignore 2006-09-10 14:03:00 +00:00
Hannes Magnusson bc8377a81c Make ReflectionFunctionAbstract abstract
- Move ReflectionFunctionAbstract::__construct to ReflectionFunction
- Move ReflectionFunctionAbstract::__toString to ReflectionFuncion
- Delcare ReflectionFunctionAbstract::__toString abstract
- fix couple of typos
2006-09-10 13:25:47 +00:00
Antony Dovgal 9fa594c2dd fix coverity issue #197
"I can't think of a reason to pass a NULL buf" (c) Wez
2006-09-10 13:01:37 +00:00
Nuno Lopes 618e62325e fix lcov processing with gcc 4.1 (some .h files were not copied) 2006-09-10 12:37:44 +00:00
Antony Dovgal 299af46146 more improvements 2006-09-10 11:44:51 +00:00
Antony Dovgal 42d4e3533e MFH: improve the script 2006-09-10 11:26:53 +00:00
Rasmus Lerdorf 935b0c88e9 Minor tweak to the file upload hooks. The MULTIPART_EVENT_FORMDATA event
was only triggering when an input filter was applied.  This simple change
makes the event also trigger when no filter is applied.  The newlength
pointer is set to NULL to let a downstream module differentiate between
the two cases.
2006-09-09 22:06:27 +00:00
Hannes Magnusson 0222d506c2 - Remove register_globals from the "different" section
- Add allow_url_include = Off
 - compatability -> compatibility and other typos
2006-09-09 21:56:58 +00:00
Hannes Magnusson 7c5119c5a9 Add E_RECOVERABLE 2006-09-09 21:43:11 +00:00
Hannes Magnusson 413de3f4a5 Removed duplicated entry 2006-09-09 21:14:05 +00:00
Hannes Magnusson ef4ff6fe9e CURL->cURL 2006-09-09 20:04:50 +00:00
Rasmus Lerdorf 3879a66876 Fix tense 2006-09-09 17:03:48 +00:00
Rasmus Lerdorf 6dbe4adbc6 One more typo 2006-09-09 17:02:56 +00:00
Rasmus Lerdorf 194230c3a6 Cleanup 2006-09-09 16:54:01 +00:00
Derick Rethans 6c18da0d2a - Update news. 2006-09-09 12:29:08 +00:00
Derick Rethans 0c8042dc49 - MFH: The .c file is generated... so updating the .re file and cleaning up WS. 2006-09-09 12:26:33 +00:00
Antony Dovgal d577b8058c MFH: fix #38759 (PDO sqlite2 empty query causes segfault) 2006-09-09 10:59:05 +00:00
Antony Dovgal 51fbffba2f MFh: fix #38721 (date_parse() invalid read) 2006-09-08 20:22:47 +00:00
Antony Dovgal 5c6f438319 implement feature request #38731 (openssl_pkey_new does not support DSA key generation)
patch by marci at balabit dot hu
2006-09-08 20:10:47 +00:00
Hannes Magnusson 267b0e9b03 Bump libxslt version to 1.1.0 (closes bug#35589) 2006-09-08 16:41:01 +00:00
Nuno Lopes b860e9a3c2 add the script to run diagnostic tests on zend_parse_parameters*() usage, per Andrei's request 2006-09-08 16:35:17 +00:00
Dmitry Stogov b0c4150967 Prevent opening of empty filename "" 2006-09-08 05:52:00 +00:00
Marcus Boerger 7e563e9215 - Fix tiny mistake 2006-09-07 21:17:13 +00:00
Michael Wallner 01ee23d980 - MFH: fix warnings 2006-09-07 14:24:42 +00:00
Ilia Alshanetsky 7f2cf9b373 Fixed memory leaks in openssl test #004 2006-09-07 14:11:06 +00:00
Antony Dovgal 88b59df262 add new tests 2006-09-07 11:48:30 +00:00
Rob Richards 36505f802c MFH: fix def file for 2.6.26 (xmlXPathCompiledEvalToBoolean required in .27) 2006-09-07 11:25:14 +00:00
Rob Richards f11c99638e MFH: update def file (2.6.26) 2006-09-06 23:49:00 +00:00
Edin Kadribasic cb5ad145ab Fixed bug #38190 (threading issues on windows 2003) 2006-09-06 21:44:45 +00:00
Pierre Joye 3f0f73beba - bump version, 5.2.0 will have zip-2.0.0-stable 2006-09-06 17:38:36 +00:00
Ilia Alshanetsky 8e86a189ec Fixed bug #38464 (array_count_values() mishandles numeric strings). 2006-09-06 17:25:57 +00:00
Pierre Joye e85a378770 - wrong cast, strlen is int 2006-09-06 17:24:41 +00:00
Nuno Lopes c55eda9f3b fix memleak of pcre study data 2006-09-06 16:30:59 +00:00
Nuno Lopes b772a83282 fix one more parameter (int*->int) 2006-09-06 15:31:48 +00:00
Nuno Lopes eee95ef3f0 MFH zend_parse_parameters() fixes 2006-09-06 15:19:41 +00:00
Pierre Joye ad58ad265b - MFH: zip_open takes only one parameter (Thx Nuno L.) 2006-09-06 13:03:55 +00:00
Antony Dovgal 37635d93e6 fix leak in pg_copy_to() when invalid resource was passed 2006-09-06 12:40:56 +00:00
Antony Dovgal 7d7f84562c do not search for empty strings with strpos() and strrpos() 2006-09-06 12:07:32 +00:00
Nuno Lopes 47713b1eb7 more int->zend_bool conversions 2006-09-06 11:54:29 +00:00
Antony Dovgal b9351ab4b1 fix leaks & uninitialized vars
add test
2006-09-06 11:34:43 +00:00
Dmitry Stogov 76d748f372 Fixed support for endpoint's URL without <path> part (Rob) 2006-09-06 11:03:45 +00:00
Dmitry Stogov 0c3c55edac Fixed php_admin* bypass by ini_restore() 2006-09-06 08:54:44 +00:00
Derick Rethans 5d6f6783ae - MFH: Added support for the full ISO week number format. (2006-W52-7) 2006-09-06 07:34:51 +00:00
Dmitry Stogov afb8af1f5f Reverted last Ilia's patch (for bug #38579).
The patch didn't fix the bug and made new one.
2006-09-06 06:37:42 +00:00
Ilia Alshanetsky bd5e8f77bd BFN 2006-09-05 15:50:37 +00:00
Ilia Alshanetsky 229137cad4 Fixed bug #38579 require_once/include_once optimization causes files to be
loaded multiple times.
2006-09-05 15:50:07 +00:00
Nuno Lopes aa6593f984 sync code and tests between HEAD and PHP_5_2 branches. what a confusion... 2006-09-05 15:23:26 +00:00
Nuno Lopes dc8895ed82 finish the cleaning. also add a new test 2006-09-05 14:55:56 +00:00
Antony Dovgal c57bfd9a66 add test 2006-09-05 14:04:41 +00:00
Antony Dovgal 52d0f82dc3 MFH: init variables 2006-09-05 13:59:26 +00:00
Nuno Lopes dadc6b8a3b remove some leftover code from the time tidy would throw exceptions 2006-09-05 13:50:22 +00:00
Nuno Lopes 4cff5db8f4 int->zend_bool where possible 2006-09-05 12:39:20 +00:00
Nuno Lopes 3ec9141f91 first fix from my new zend_parse_parameters_* checker 2006-09-05 12:30:35 +00:00
Edin Kadribasic aebc2fff07 CWD php.ini search news 2006-09-05 11:58:05 +00:00
Edin Kadribasic ef058cdd9a Search for php.ini in CWD in all sapi's *but* CLI.
This patch reverses wrong behavaiour introduced before the
release of 5.1.0.

# We should probably consider killing adding CWD php.ini lookup
# altogether.
2006-09-05 11:54:15 +00:00
Antony Dovgal 8c53ff1e80 fix leak in imap_utf8(), avoid extra strlen() call
add test
2006-09-05 11:24:49 +00:00
Antony Dovgal c622ded866 fix typo, add test 2006-09-05 10:36:24 +00:00
Nuno Lopes 731b68fbc5 fix gcc warning 2006-09-04 19:14:59 +00:00
Nuno Lopes ae77214f7f fix gcc warning 2006-09-04 18:59:01 +00:00
Ilia Alshanetsky fc60217820 Fixed bug #38693 (curl_multi_add_handle() set curl handle to null). 2006-09-04 16:31:27 +00:00
Dmitry Stogov 87eaaf494b Removed unreachable handlers 2006-09-04 13:58:54 +00:00
Dmitry Stogov 8166284cfd Fixed bug #38700 (SoapClient::__getTypes never returns) 2006-09-04 10:52:34 +00:00
Dmitry Stogov 75876d57be Fixed VIRTUAL_DIR inconsistency 2006-09-04 08:18:15 +00:00
Dmitry Stogov a5107c1803 Fixed "signed/unsigned mismatch" warning. 2006-09-04 07:26:48 +00:00
Ilia Alshanetsky 4427552b60 Fixed bug #38661 (mixed-case URL breaks url-wrappers). 2006-09-03 16:32:27 +00:00
Pierre Joye 73c5259362 - new openssl constants entry 2006-09-03 15:49:49 +00:00
Pierre Joye 532f577fe9 - add OPENSSL_VERSION_TEXT and OPENSSL_VERSION_NUMBER constants
- skip tests if openssl version < 0.9.7j (known to work)
2006-09-03 15:31:01 +00:00
Nuno Lopes 2203492799 little typo (bug #38531) 2006-09-03 11:39:45 +00:00
Johannes Schlüter 688efae2d0 - Remove version number here as already done in HEAD 2006-09-03 11:27:50 +00:00
Michael Wallner eca5331a81 - attempt to fix #38696 2006-09-03 09:09:56 +00:00
Johannes Schlüter eb958c080e - MFH: Add HAVE_REFLECTION define for win32 (by Steph) 2006-09-02 19:13:23 +00:00
Hannes Magnusson 948d84fd67 fix test 2006-09-02 15:42:00 +00:00
Nuno Lopes 5737b1e925 and add a test 2006-09-01 23:31:52 +00:00
Nuno Lopes 0f6f089698 omg. take #2 to fix the bug. sorry.. 2006-09-01 23:25:29 +00:00
Nuno Lopes c8b2f761f6 fix possible crash 2006-09-01 23:13:20 +00:00
Edin Kadribasic 8251f8b8d0 MFH: Obsolete, prepaing for new installer script 2006-09-01 20:25:32 +00:00
Nuno Lopes dc2bb45440 currently it's RC4-dev 2006-09-01 13:55:22 +00:00
Ilia Alshanetsky 73eba86360 Back to dev 2006-09-01 01:29:05 +00:00
Ilia Alshanetsky 98d26b6b18 5.2.0RC3 2006-09-01 01:06:14 +00:00
Pierre Joye d63e411e9a - MFH 2006-08-31 22:52:54 +00:00
Pierre Joye 23919d9115 - MFH 2006-08-31 22:34:32 +00:00
Antony Dovgal 78c0279bb6 add test 2006-08-31 22:19:35 +00:00
Pierre Joye 2259578afa - MFH: test for mulitple filter calls 2006-08-31 22:17:44 +00:00
Antony Dovgal 5d81cd24c9 MFH 2006-08-31 22:12:10 +00:00
Pierre Joye 5c7e3ba791 - skip these tests for RC3
- CGI does not read commandline options when it sees REQUES_METHOD
 - errors are shown two times now, to be checked post RC3
2006-08-31 20:17:03 +00:00
Pierre Joye 72820abd7b - MFH: pecl bug #8316,
empty strings are not int or float, return false (due to popular demand)
2006-08-31 18:29:29 +00:00
Antony Dovgal 75b8cd741b last portion of z/Z fixes 2006-08-31 16:15:24 +00:00
Pierre Joye 50e9994b2c - clean the auto trim (behaves like php_trim now)
- simplifies bool
- fix octal parsing
- boost int/hex/octal validate_int
2006-08-31 15:50:56 +00:00
Antony Dovgal 5bc435c4e8 fix typo in errmsg 2006-08-31 15:42:18 +00:00
Antony Dovgal 94b3210c38 ext/filter z/Z fixes 2006-08-31 15:17:23 +00:00
Antony Dovgal c2a38c607b more z/Z fixes 2006-08-31 14:41:24 +00:00
Antony Dovgal 0c482b5c64 more z/Z fixes 2006-08-31 14:21:21 +00:00
Antony Dovgal de23f39d18 MFH: z/Z problem fixes 2006-08-31 13:58:31 +00:00
Antony Dovgal 821674720a fix test 2006-08-31 13:50:11 +00:00
Antony Dovgal fb21b5d059 MFH: fix problem with mixed arguments accepted as zval* causing leaks/segfaults when converting to other types 2006-08-31 13:48:17 +00:00
Dmitry Stogov f9d9c4a6aa FastCGI environment variables must not be overriden by system environment variables 2006-08-31 13:11:58 +00:00
Dmitry Stogov 54123daa8d Show name of storage layer in case of initialization fault. 2006-08-31 11:53:57 +00:00
Antony Dovgal c4e9ee2586 minor changes in iconv_substr() to avoid zval converting 2006-08-31 11:17:47 +00:00
Antony Dovgal f74fbc1a06 fix warnings about nonextistent functions 2006-08-31 11:10:23 +00:00
Antony Dovgal de3d3ced29 no such function 2006-08-30 22:53:51 +00:00
Antony Dovgal 434d5e9be4 MFH: fix leak, add test 2006-08-30 22:34:48 +00:00
Antony Dovgal 235e3939d5 s/pinter/pointer/ 2006-08-30 22:29:24 +00:00
Antony Dovgal 1dd6ee3f6d fix segfault/leak, add test 2006-08-30 21:51:08 +00:00
Antony Dovgal 1f138e7e01 MFH: fix segfault in openssl_seal(), add test 2006-08-30 20:50:04 +00:00
Ilia Alshanetsky 26db0920d3 pcre news 2006-08-30 20:08:05 +00:00
Ilia Alshanetsky 45debc52ef Upgrade PCRE lib to 6.7 2006-08-30 20:00:23 +00:00
Ilia Alshanetsky 307b3bcbb4 Fixed bug #33770 (https:// or ftps:// do not work when --with-curlwrappers
is used and ssl certificate is not verifiable).
2006-08-30 17:49:10 +00:00
Antony Dovgal f231b76ba6 fix leak, add test 2006-08-30 16:46:59 +00:00
Antony Dovgal 644a796525 MFH: fix leak in iptcembed() 2006-08-30 16:30:14 +00:00
Antony Dovgal b6ced95187 change ini handlers to produce E_ERROR if they are called during startup 2006-08-30 16:24:40 +00:00
Antony Dovgal a8a3701ba6 fix leak 2006-08-30 16:12:43 +00:00
Antony Dovgal f8fd45a735 MFH: change E_ERROR to E_WARNING when invalid argument has been passed
make sure ini_set() doesn't reset PS(mod) and PS(serializer) to invalid values
2006-08-30 15:43:10 +00:00
Antony Dovgal 86bf55a3d8 MFH: fix #38653 (memory leak in ReflectionClass::getConstant()) 2006-08-30 10:42:49 +00:00
Hannes Magnusson d6ec9d21ec fix test 2006-08-30 09:44:53 +00:00
Derick Rethans 8388180466 - Upgrade timezone db to 2006k. 2006-08-29 20:20:05 +00:00
Ilia Alshanetsky 1b9e18d471 Corrected problems introduced by previous commit.
# Issue found by Stefan
2006-08-29 19:50:04 +00:00
Ilia Alshanetsky 5ea3080546 Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle). 2006-08-29 17:10:40 +00:00
Ilia Alshanetsky 7c618c40bc Finalize implode() patch 2006-08-29 14:32:16 +00:00
Antony Dovgal ffc3d4a076 fix win32 build
EG(precision) can be changed in runtime, even in php_implode() (hint: __toString()), so please think twice before optimizing
2006-08-29 12:20:18 +00:00
Rob Richards 664a7c75d4 BFN 2006-08-28 23:38:49 +00:00
Rob Richards c6b9662372 fix #38474 (getAttribute select attribute by order, even when prefixed)
add test
2006-08-28 23:36:23 +00:00
Ilia Alshanetsky 914d362176 Adjust code to avoid TSRMLS_FETCH 2006-08-28 23:33:37 +00:00
Antony Dovgal 7384c12b11 MFH: make sure ext/standard is down before ext/session (fixes #38534) 2006-08-28 19:57:57 +00:00
Antony Dovgal ecfa880820 MFH: set BG(locale_string) to NULL on shutdown (partly fixes #38534) 2006-08-28 18:58:47 +00:00
Antony Dovgal 613237188a typofix 2006-08-28 17:18:03 +00:00
Antony Dovgal 4e971e8874 MFH: fix #38199 (fclose() unable to close STDOUT and STDERR) 2006-08-28 17:15:03 +00:00
Antony Dovgal 191d68618a delete commented part, as it was done in HEAD 2006-08-28 10:59:18 +00:00
Antony Dovgal f7ba7232d8 MFH: fix #38624 (Strange warning when incrementing an object property and exception is thrown from __get method) 2006-08-28 10:27:58 +00:00
Antony Dovgal 615f2d7295 fix ZTS build 2006-08-28 09:56:28 +00:00
Hannes Magnusson 2d3056e94f MFH:
- Fixed bug #33895 (missing math constants).
 - Remove M_PI from math.c (its defined in php_math.h)
2006-08-27 19:14:43 +00:00
Ilia Alshanetsky 78d7b0bf0e Optimize the operation of implode() on non-string parameters 2006-08-27 19:06:09 +00:00
Hannes Magnusson a180abdbfd fix tests on freebsd 2006-08-27 15:06:53 +00:00
Pierre Joye 46ce362ff3 - don't rely/use VCWD_REALPATH, use expand_filepath instead
NB: that'd to be true for all this VCWD mess
2006-08-26 12:23:43 +00:00
Seiji Masugata 100742f7a2 added configure option --disable-mbregex-backtrack. 2006-08-25 16:26:50 +00:00
Pierre Joye 8e54de1d77 - bundled matches pecl 1.7.1 2006-08-25 16:03:00 +00:00
Edin Kadribasic 21ac19eb94 Fixed #37602 by olek at neurosoft dot pl 2006-08-25 12:01:57 +00:00
Seiji Masugata 99211d0444 Initial commit. Updated bundled oniguruma library (used for multibyte regular expression) to 4.3.1. 2006-08-24 17:20:58 +00:00
Seiji Masugata 74685a184f Initial commit. Updated bundled oniguruma library (used for multibyte regular expression) to 4.3.1. 2006-08-24 17:11:29 +00:00
Seiji Masugata 3ea2152839 Updated bundled oniguruma library (used for multibyte regular expression) to 4.3.1. 2006-08-24 17:03:47 +00:00
Seiji Masugata 560208b1c6 added returned value in mb_get_info( ). 2006-08-24 16:52:36 +00:00
Pierre Joye 5c8533aa76 - solve the relative path issues in TS environment 2006-08-24 16:37:14 +00:00
Antony Dovgal a5bb290f28 it's not a PEAR only issue 2006-08-24 16:00:43 +00:00
Antony Dovgal d8870f562f sys/msg.h does not exist on MacOS X 2006-08-24 13:18:24 +00:00
Antony Dovgal d221f46ab6 update version in phpinfo() 2006-08-24 13:03:04 +00:00
Antony Dovgal f6bbb02da6 bump version number 2006-08-24 12:46:54 +00:00
Antony Dovgal 567cf55085 compat fixes 2006-08-24 12:05:19 +00:00
Antony Dovgal f1b1c65413 release 1.2.2 from 5_2 branch, as HEAD doesn't have safe_mode anymore 2006-08-24 11:59:15 +00:00
Antony Dovgal fd9c8d85a6 the error message is different on different OSes and zlib versions 2006-08-24 11:30:35 +00:00
Antony Dovgal 806d9fe71b tm_yday may be 0 2006-08-24 11:27:20 +00:00
Antony Dovgal 0584dc011c MFH: fix segfault in strptime() on 64bit Linuxes, caused by the missing declaration 2006-08-24 11:06:02 +00:00
Dmitry Stogov c42b3bf689 Fixed bug #38315 (Constructing in the destructor causes weird behaviour) 2006-08-24 09:42:35 +00:00
Dmitry Stogov 92f1b46fbb Added SoapServer::setObject() method (it is a simplified version of SoapServer::setClass() method). 2006-08-24 06:18:30 +00:00
Andrei Zmievski fdd1370d99 Namespace more PCRE functions. 2006-08-23 20:39:11 +00:00
Pierre Joye 75e9e12093 - MFH: add support for entities in hexadecimal format, like &copy; can
be passed as &#169 or &#xA9; (sync with gd)
2006-08-23 20:22:31 +00:00
Antony Dovgal b7f2d8f17e MFH: fix possible crash in free_statement() 2006-08-23 19:15:57 +00:00
Dmitry Stogov 27d3021704 Fixed bug #38265 (heap corruption) 2006-08-23 13:00:48 +00:00
Pierre Joye aecbddef42 - MFH: please don't use base64 to test image files, it does not work
fix tests on 64bit platfrom
2006-08-23 12:00:54 +00:00
Antony Dovgal 6a70b05660 MFH: build ext/spl and ext/reflection as static (fixes #38556) 2006-08-23 09:47:21 +00:00
Hannes Magnusson de3393e63f Fix arginfo for SplObjectStorage 2006-08-23 09:32:24 +00:00
Antony Dovgal 41bd5790cf MFH: make run-tests to work with directories containing spaces (bug #38558)
Patch by danielc at analysisandsolutions dot com
2006-08-23 07:02:59 +00:00
Antony Dovgal a3b62c8eed add test for real 2006-08-22 20:10:50 +00:00
Antony Dovgal d5c9b41db1 fix implode() function (see http://news.php.net/php.qa/26876)
add test
2006-08-22 19:55:56 +00:00
Ilia Alshanetsky d4ff427c55 Fixed bug #38511, #38473, #38263 (Fixed session extension request shutdown
order to ensure it is shutdown before the extensions it may depend on).
2006-08-22 16:47:23 +00:00
Antony Dovgal 05a1ac2a35 MFH: fix separate TSRM build 2006-08-22 13:01:44 +00:00
Dmitry Stogov f7e99a2162 Fixed bug #38543 (shutdown_executor() may segfault when memory_limit is too low). 2006-08-22 12:04:53 +00:00
Antony Dovgal 08a9ab02ba minor improvements 2006-08-22 11:09:12 +00:00
Dmitry Stogov 7dfbf5b2e4 Fixed bug #38488 (Access to "php://stdin" and family crashes PHP on win32) 2006-08-22 06:15:26 +00:00
Dmitry Stogov 4180155a47 Fixed "win32" storage manager 2006-08-22 05:54:15 +00:00
Dmitry Stogov 3fd1e9c3db Fix "make test" on win32 2006-08-22 05:00:51 +00:00
Antony Dovgal 36dffb8e3b typo 2006-08-21 17:12:02 +00:00
Ilia Alshanetsky 8d770ee2ef Fixed bug #38535 (memory corruption in pdo_pgsql driver on error retrieval
inside a failed query executed via query() method).
2006-08-21 16:53:50 +00:00
Antony Dovgal 70e59e2999 MFH: fix PECL bug #8112 (OCI8 persistent connections misbehave when Apache process times out) 2006-08-21 16:41:13 +00:00
Ilia Alshanetsky 672da2daeb MFH: sa_len compile fix for IRIX
# Patch by Sascha
2006-08-20 18:24:11 +00:00
Ilia Alshanetsky 2a41a50216 Fixed bug #38524 (strptime() does not initialize the internal date storage
structure).
2006-08-20 18:20:07 +00:00
Ilia Alshanetsky 8405e1741f Use proper write callback 2006-08-19 16:20:08 +00:00
Antony Dovgal efbb2a4838 fix #38486 (openssl extension does not build correctly) 2006-08-18 13:02:38 +00:00
Antony Dovgal a33913d960 MFH: add a notice to fgetcsv() when delimiter or enclosure is longer than 1 char
(feature request #38496)
2006-08-18 12:50:57 +00:00
Antony Dovgal 92963d12a6 fix #38485 (bz2 extension does not compile with GCC 4.1) 2006-08-17 20:46:51 +00:00
Antony Dovgal 1f3b6ebc89 initialize static buffer with 0's 2006-08-17 14:32:35 +00:00
Ilia Alshanetsky d7209229a3 Back to dev 2006-08-17 14:04:09 +00:00
Ilia Alshanetsky c7d83d7ba3 5.2.0RC2 2006-08-17 13:44:36 +00:00
Ilia Alshanetsky 3a211712eb Increased default memory limit to 16 megabytes to accommodate for a more
accurate memory utilization measurement.
2006-08-17 13:43:08 +00:00
Ilia Alshanetsky 3d87be2674 Added skip condition for sqlite2 driver, that uses more forgiving emulated
prepared statements.
2006-08-16 14:09:56 +00:00
Rob Richards 7ded15aadd BFN 2006-08-15 22:48:07 +00:00
Rob Richards adf10989b0 fix bug #38454 (warning upon disabling handler via xml_set_element_handler)
fix bug #38427 (unicode causes xml_parser to misbehave)
add test
2006-08-15 22:47:11 +00:00
Antony Dovgal be316018fd apply correct fix for bug #38461 2006-08-15 20:30:42 +00:00
Pierre Joye 8dc61360c6 - add openssl_csr_get_subject() and openssl_csr_get_public_key() 2006-08-15 20:27:22 +00:00
Antony Dovgal 118a6a94e1 MFH: fix #38467 (--enable-versioning causes make fail on OS X) 2006-08-15 20:13:47 +00:00
Antony Dovgal f3c1722b0c MFH: don't try to use "auto", "none" and "pass" charsets returned from mbstring 2006-08-15 15:09:38 +00:00
Antony Dovgal 126b6ecd85 BFN 2006-08-15 13:19:58 +00:00
Antony Dovgal 08d398aa48 MFH: fix #38461 (setting private attribute with __set() produces segfault) 2006-08-15 13:19:13 +00:00
Antony Dovgal 3a0f857173 minor CS/WS fixes 2006-08-15 13:08:34 +00:00
Antony Dovgal 88e752c007 MFH: error message might be NULL 2006-08-15 12:27:24 +00:00
Antony Dovgal 8c170d480a MFH: OCIBreak() is not supported on Windows 2006-08-15 12:19:46 +00:00
Antony Dovgal 4ad05e0e0f add test 2006-08-15 08:58:40 +00:00
Antony Dovgal c3209b53d2 new tests 2006-08-15 08:54:15 +00:00
Michael Wallner f5ea2dfac4 MFH:
- fix leak when cloning DateTimeZone, detected by Antony
 - don't fetch objects multiple times when cloning
2006-08-15 06:53:21 +00:00
Pierre Joye 9a79a2f37c - add OPENSSL_KEYTYPE_EC constant
- openssl_pkey_get_details(), returns the key details
2006-08-15 00:38:05 +00:00
Antony Dovgal 2dbce548a8 fix previous patch 2006-08-14 21:08:16 +00:00
Antony Dovgal a3d3be5201 BFN 2006-08-14 20:11:52 +00:00
Antony Dovgal d677ad6789 fix #38451 (PDO_MYSQL doesn't compile on Solaris) 2006-08-14 20:11:31 +00:00
Nuno Lopes ddb4d1fdcc move static declaration to *.c files
mroe static/const keywording
2006-08-14 20:08:18 +00:00
Michael Wallner 8657927354 MFH: add cloning support to DateTime classes 2006-08-14 20:03:11 +00:00
Frank M. Kromann 8eaa9eae52 MFH: Cleanup before reusing failed persistant connection. Better formating of timestamp and decimal values 2006-08-14 18:40:08 +00:00
Ilia Alshanetsky b4da7e6672 Added missing file entry 2006-08-14 16:34:24 +00:00
Ilia Alshanetsky 41696eb95e Updated libsqlite in ext/pdo_sqlite to 3.3.7. 2006-08-14 16:16:42 +00:00
Ilia Alshanetsky e8f30d4502 Upgraded bunbled SQLite lib to 3.3.7 2006-08-14 16:15:29 +00:00
Nuno Lopes 0091c7e1b3 more static keywording
also remove the libtidy patch, as it is too old. users should use a newer libtify anyway
2006-08-14 15:09:08 +00:00
Pierre Joye 4b7358e4e5 - nuke unused parameter (not present in old versions) 2006-08-14 15:07:52 +00:00
Antony Dovgal f42e9f5e15 MFH: fix #38450 (constructor is not called for classes used in userspace stream wrappers) 2006-08-14 15:01:29 +00:00
Nuno Lopes 615a15d5fa a few more static keywording 2006-08-14 14:53:23 +00:00
Rob Richards c62d5fd115 BFN
fix typo
2006-08-14 11:59:24 +00:00
Rob Richards a0c941aad1 fix bug #38424 (Different attribute assignment if new or existing)
add test
2006-08-14 11:57:50 +00:00
Rob Richards 3048cd7558 fix underlying issue for bug #38438 2006-08-14 11:29:15 +00:00
Antony Dovgal 2f01ddff7f make sure USE_ZEND_ALLOC is always 1 2006-08-14 10:29:20 +00:00
Antony Dovgal cb9686b0e5 fix segfault and leak in ext/xmlrpc
add tests
2006-08-14 08:18:01 +00:00
Pierre Joye 284ce40c4a - MFH: locateName should not change the state/error, can be used to test
an entry
2006-08-13 23:43:11 +00:00
Pierre Joye 8d07735332 - MFP:
- add overwrite mode to ZipArchive::open, always starts a new archive
 - Fix safe mode checks on extract
 - Fix possible leaks when a safe mode error has been raised
2006-08-13 21:09:59 +00:00
Pierre Joye 0587fb32ba - remove package.xml, not needed in php-src but only in pecl 2006-08-13 20:27:07 +00:00
Pierre Joye a5b359096c - MFH: remove dl() usage 2006-08-13 19:34:40 +00:00
Pierre Joye 32f20cc217 - MFH: remove dl() usage 2006-08-13 19:24:17 +00:00
Ilia Alshanetsky baff4e0ab5 Fixed bug #38438 (DOMNodeList->item(0) segfault on empty NodeList) 2006-08-13 15:02:41 +00:00
Marcus Boerger 7d0b17fc67 - MFH Add link 2006-08-13 10:37:57 +00:00
Pierre Joye 9d26a88c3d - temp fix for a segfault happening when one adds two entries with
the same name
2006-08-13 00:52:59 +00:00
Nuno Lopes a16935fd42 const/static keywording 2006-08-12 19:33:54 +00:00
Pierre Joye d1ad062be8 - MFH: NL 2006-08-12 17:05:08 +00:00
Antony Dovgal 2eef59dc59 MFH: fix #38431 (xmlrpc_get_type() crashes PHP on objects) 2006-08-11 17:43:04 +00:00
Nuno Lopes c45c9748dc fix #38402: wrong proto for Array*::offsetGet() 2006-08-11 17:05:23 +00:00
Ilia Alshanetsky 5b4ecd6028 MFB: Extend safe_mode/open_basedir checks to imap_reopen() as well. 2006-08-11 15:07:29 +00:00
Antony Dovgal a6088ffc5a fix test 2006-08-11 10:35:22 +00:00
Ilia Alshanetsky 7dfae526c7 Fixed proto 2006-08-10 21:10:03 +00:00
Ilia Alshanetsky 657329b981 missing bug fixing news 2006-08-10 18:34:52 +00:00
Ilia Alshanetsky 2ce982b433 Fixed condition 2006-08-10 15:02:41 +00:00
Ilia Alshanetsky a4d2f04307 Fixed overflow on 64bit systems in str_repeat() and wordwrap().
Disabled CURLOPT_FOLLOWLOCATION in curl when open_basedir or safe_mode are
enabled.

# Patches by Stefan E.
2006-08-10 14:40:13 +00:00
Ilia Alshanetsky e5fe441cbd Added support for httpOnly flag for session extension and cookie setting
functions.

# Original patch by Scott MacVicar
2006-08-10 13:50:56 +00:00
Antony Dovgal 1ec10ac8c7 typos in comments and other minor improvements 2006-08-10 13:43:18 +00:00
Antony Dovgal ae61bb7bb8 improve connection character set detection:
* output a warning if invalid character set was passed to the function
* use NLS_LANG by default
2006-08-10 12:15:58 +00:00
Nuno Lopes e43dc5c95b sync install instructions with the phpdoc xml sources 2006-08-09 23:22:49 +00:00
Antony Dovgal 830ab81bfa BFN 2006-08-09 15:27:42 +00:00
Antony Dovgal c9c05bece9 add support for NCLOBs
fix #35973 (Error ORA-24806 occurs when trying to fetch a NCLOB field)
2006-08-09 15:24:27 +00:00
Ilia Alshanetsky 43fca8a3f8 Fixed bug #38394 (PDO fails to recover from failed prepared statement
execution).
2006-08-09 14:45:00 +00:00
Antony Dovgal 946594bb6b MFH: fix #38161 (oci_bind_by_name() returns garbage when Oracle didn't set the variable) 2006-08-09 12:15:43 +00:00
Antony Dovgal e3cfc40cac fix leak on failure 2006-08-09 11:49:06 +00:00
Antony Dovgal 4c5691bd02 MFH: fix #8112 (Persistent connections misbehave when Apache process times out) 2006-08-09 10:16:50 +00:00
Michael Wallner 98d58a80c9 MFH: implement #38357 (dbase_open can't open DBase 3 dbf file) 2006-08-08 15:55:27 +00:00
Ilia Alshanetsky d58b3869a7 Fixed bug #38377 (session_destroy() gives warning after
session_regenerate_id()).
2006-08-08 14:54:49 +00:00
Antony Dovgal cf3b6416c4 tix fypo 2006-08-08 13:49:27 +00:00
Stanislav Malyshev 0617904d0a fix bug with variables clobbered by longjmp 2006-08-08 13:34:14 +00:00
Antony Dovgal 03ee807824 zend_hash_get_current_key_ex() returns string_len + 1, so we need to subtract 1 to get the real length 2006-08-08 13:12:00 +00:00
Pierre Joye 6dbb90af21 - fix compiler warnings 2006-08-08 11:56:36 +00:00
Antony Dovgal 6277ba98d9 there is no realiable way to detect memrchr() presence because of a mess in glibc
so let's use our own implementation
2006-08-08 10:54:24 +00:00
Pierre Joye 1f69ad5aa1 - compiler warnings 2006-08-08 10:36:58 +00:00
Antony Dovgal 1a4b715ef2 use memrchr/zend_memrchr instead of strrchr 2006-08-08 10:22:25 +00:00
Antony Dovgal 9596bda7fc add new test 2006-08-08 09:51:06 +00:00
Derick Rethans 5794832a72 - Added some docs here so that nobody needs to figure it out once more. 2006-08-08 09:46:46 +00:00
Antony Dovgal b8617a6183 add zend_memrchr() 2006-08-08 09:41:09 +00:00
Marcus Boerger 05206b42d8 - Speling 2006-08-08 00:40:19 +00:00
Marcus Boerger efc6ff0c39 - Test name must not be more than a single line 2006-08-07 23:28:05 +00:00
Marcus Boerger c1c2a0d294 - MFH Fixed Bug #38064 ignored constructor visibility 2006-08-07 23:24:33 +00:00
Antony Dovgal 886d302575 suppress errors from date() if no date.timezone set
don't try to look for libtool if $sys_libtool_path is empty
2006-08-07 21:27:40 +00:00
Pierre Joye f6b6f0a2f9 - should not have been commited 2006-08-07 20:28:03 +00:00
Antony Dovgal 8a3002d933 fix types of the variables 2006-08-07 20:23:35 +00:00
Ilia Alshanetsky 194b309d2d Fixed memory leak with persistent connections 2006-08-07 17:32:13 +00:00
Ilia Alshanetsky 23a7a275ed Removed extra byte 2006-08-07 16:53:12 +00:00
Dmitry Stogov f5543a428d Fixed bug #38287 (static variables mess up global vars) 2006-08-07 15:15:22 +00:00
Rob Richards ee82fb781a should be RETURN_ not RETVAL_ 2006-08-07 10:15:12 +00:00
Rob Richards 65ae8773b5 asXML() needs to return bool when serializing doc and filename is passed in
do not copy the content of the outputbuffer twice in asXML()
fix compiler warnings
2006-08-07 10:09:52 +00:00
Antony Dovgal 4b77e7f2f7 nuke unused variable 2006-08-07 09:49:53 +00:00
Marcus Boerger fdf1ee39e4 - Update 2006-08-07 08:34:40 +00:00
Marcus Boerger e038500be3 - Fix bug #38290 2006-08-07 07:57:12 +00:00
Antony Dovgal 6c75d82997 use -O0 with --enable-debug 2006-08-06 20:46:02 +00:00
Antony Dovgal b9b1984646 fix test 2006-08-06 20:17:51 +00:00
Antony Dovgal 1a58ec5156 add test 2006-08-06 20:10:19 +00:00
Christian Stocker 42982ac3a1 Fix #38354 (Unwanted reformatting of XML when using AsXML) 2006-08-06 19:38:45 +00:00
Antony Dovgal 07b5c8fe2a MFH: fix #38347 (Segmentation fault when using foreach with an unknown/empty SimpleXMLElement) 2006-08-06 17:41:51 +00:00
Antony Dovgal 861c55b417 long -> int 2006-08-06 14:09:58 +00:00
Marcus Boerger 444f1f2da3 - MFH Fix cvs access through SplFileObject 2006-08-06 13:47:51 +00:00
Antony Dovgal 218aa04f79 avoid extra strlen() call 2006-08-06 13:27:46 +00:00
Antony Dovgal a1a42253d9 fix PECL bug #7827
add small optimization
2006-08-05 20:56:43 +00:00
Antony Dovgal 3eea546142 MFH 2006-08-05 13:17:50 +00:00
Ilia Alshanetsky 305f597696 Improved fix for bug #37671 2006-08-04 22:13:59 +00:00
Antony Dovgal 8e4334159c revert previous patch 2006-08-04 20:55:00 +00:00
Ilia Alshanetsky b20b73cdb1 Fixed bug #37265 (Added missing safe_mode & open_basedir checks to
imap_body()).
2006-08-04 20:31:19 +00:00
Antony Dovgal d17c2ec46d add new test 2006-08-04 15:01:37 +00:00
Antony Dovgal afcbbe2b86 MFH: fix #38322 (reading past array in sscanf() leads to arbitary code execution) 2006-08-04 11:50:15 +00:00
Antony Dovgal 00bc797b68 fix test 2006-08-04 08:11:47 +00:00
Derick Rethans 2e55464f80 - There is a 2.3 now as well. 2006-08-04 06:48:20 +00:00
Antony Dovgal 60ea962aa3 fix leak in php_sapi_filter() 2006-08-03 19:35:23 +00:00
Ilia Alshanetsky 499ca00476 Fixed bug #38303 (spl_autoload_register() supress all errors silently). 2006-08-03 14:49:11 +00:00
Antony Dovgal 5cff1c6e7e MFH: fix #38276 (file_exists() works incorrectly with long filenames on Windows) 2006-08-03 14:17:58 +00:00
Dmitry Stogov 58c2278284 Added version specific registry keys to allow different configurations for different php version. 2006-08-03 13:54:05 +00:00
Dmitry Stogov c946b4d1b2 In addtion to path to php.ini, PHPRC now may specify full file name 2006-08-03 11:04:52 +00:00
Antony Dovgal bc8f1bc4f0 make it consistent 2006-08-03 10:57:41 +00:00
Antony Dovgal c173c26b64 MFH: improve error message 2006-08-03 10:53:15 +00:00
Dmitry Stogov 29e1530cd7 Added "PHPINIDir" Apache directive to apache and apache_hooks SAPIs 2006-08-03 09:56:50 +00:00
Antony Dovgal 6112a1266a fix test 2006-08-02 23:29:17 +00:00
Antony Dovgal 5f6145b0fd fix ZTS build 2006-08-02 22:03:47 +00:00
Ilia Alshanetsky 4eecfca79c Fixed bug #38213, #37611, #37571 (wddx encoding fails to handle certain
characters).
2006-08-02 15:44:33 +00:00
Ilia Alshanetsky e79e9fade6 Expose the xml_utf8_encode function. 2006-08-02 15:21:54 +00:00
Antony Dovgal e5635a81af init variable, eliminate compile warning 2006-08-02 10:04:11 +00:00
Antony Dovgal 0c4ef446e2 MFH: fix #38289 (segfault in session_decode() when _SESSION is NULL) 2006-08-02 09:16:52 +00:00
Antony Dovgal e17320651c MFH: implement my own FR #36995
add missing ifdefs
2006-08-01 22:42:11 +00:00
Michael Wallner a5ddba6f80 - update test 2006-08-01 16:49:17 +00:00
Michael Wallner efa04c8a22 MFH: use library error message on time string parse failure 2006-08-01 16:45:40 +00:00
Ilia Alshanetsky 7f52671781 Fixed bug #38168 (Crash in pdo_pgsql on missing bound parameters). 2006-08-01 16:31:29 +00:00
Michael Wallner 68613beb3e MFH:
- fix leaks on multiple calls to DateTime::__construct()
 - throw exception on unparseable time strings in DateTime::__construct()
2006-08-01 15:55:03 +00:00
Ilia Alshanetsky 2b5a53d6b6 Fixed memory leak on unused bound name parameters. 2006-08-01 15:06:01 +00:00
Michael Wallner 5f7750c6e6 MFH:
- OO fixes:
  . no is_ref for objects in PHP5+
  . initialize objects when created with the `new` operator
  . check for proper initialization in child classes
 - fix typo: transistion -> transition
 - add test
2006-08-01 13:28:28 +00:00
Antony Dovgal ad3ad9bb79 MFH: fix #38269 (fopen wrapper doesn't fail on invalid hostname with curlwrappers enabled) 2006-08-01 13:28:03 +00:00
Antony Dovgal 1bf915ca2d improve error message on Win32 2006-08-01 12:08:25 +00:00
Antony Dovgal d14b107e5b BFN 2006-08-01 12:04:20 +00:00
Antony Dovgal bf41e955ed BFN 2006-08-01 08:32:59 +00:00
Antony Dovgal 52e6ede06e MFH: fix #38278 (session_cache_expire()'s value does not match phpinfo's session.cache_expire) 2006-08-01 08:32:07 +00:00
Ilia Alshanetsky c6ace95236 Fixed bug #37445 (Fixed crash in pdo_mysql resulting from premature object
destruction).
2006-07-31 20:18:11 +00:00
Ilia Alshanetsky 624e5f83c8 Fixed tests from being always skipped. 2006-07-31 20:14:40 +00:00
Dmitry Stogov 1354aa9ef4 Prevented possible double call in case of fault 2006-07-31 15:31:01 +00:00
Dmitry Stogov 53025ca377 Fixed crash in SoapClient::__setSoapHeaders() 2006-07-31 13:41:34 +00:00
Christian Stocker 88dfe8cfd9 return false instead of null, if it's an invalid document 2006-07-31 13:05:35 +00:00
Christian Stocker 197396c14e make a NEWS entry about
- Fixed XSLTProcessor::importStylesheet() to return TRUE on success
2006-07-31 12:56:52 +00:00
Christian Stocker e53c538151 return true, if xsl import did work 2006-07-31 12:50:42 +00:00
Antony Dovgal f5b5d34a27 MFH: fix #37581 (oci_bind_array_by_name clobbers input array when using SQLT_AFC, AVC) 2006-07-31 10:30:23 +00:00
Ilia Alshanetsky 610b633096 Fixed compiler warning. 2006-07-31 03:41:20 +00:00
Pierre Joye 6394756dae - #36732 entry
- move openssl bug fixes
2006-07-31 00:41:45 +00:00
Pierre Joye 3786f956e6 - #36732, add req_extensions support to openssl_csr_new and _sign
(ben at psc dot edu)
- fix leaks in openssl_csr_new and sign
2006-07-31 00:33:42 +00:00
Antony Dovgal aa1ced04cb MFH: fix #38173 (Freeing nested cursors causes OCI8 to segfault) 2006-07-30 20:51:24 +00:00
Pierre Joye fb1c592640 - group openssl entries 2006-07-30 17:10:06 +00:00
Pierre Joye 769174c2dc - #28382, add support for x509 extensions 2006-07-30 17:03:13 +00:00
Pierre Joye 5def392ce1 - 38261: openssl_x509_parse leaks with invalid certs 2006-07-30 16:26:20 +00:00
Antony Dovgal 71df07ac9a improve checks and fix #38251 2006-07-30 11:54:17 +00:00
Antony Dovgal d056376bba MFH: fix compile warnings (#38257) 2006-07-30 11:34:02 +00:00
Antony Dovgal 168f53b72b fix bug #38253 (PDO produces segfault with default fetch mode)
add test
2006-07-30 11:19:56 +00:00
Georg Richter 0ba0abbd40 Added testcase for bug #37090 2006-07-30 11:03:30 +00:00
Pierre Joye 509761f96d - silent compiler warnings (signess) 2006-07-30 09:18:07 +00:00
Andrei Zmievski 3d7a1c3972 Make array_merge(_recursive) handle binary keys safely. (Patch by Matt W) 2006-07-30 03:31:18 +00:00
Pierre Joye 3a75600dbb - MFH: make the test more obvious and add an explanation 2006-07-29 23:03:56 +00:00
Pierre Joye 3fe91ed83f - vi happiness++ 2006-07-29 22:52:49 +00:00
Antony Dovgal 9d3233651d improve test 2006-07-29 22:41:20 +00:00
Pierre Joye 47db124cda - #38255, fails on array as well 2006-07-29 22:39:34 +00:00
Pierre Joye 9de24788d6 - entry for #37820 and leak 2006-07-29 22:30:22 +00:00
Pierre Joye 06bd78d720 - forgot the tests 2006-07-29 22:27:55 +00:00
Pierre Joye 46b3f37810 - fix leak when the key is not a valid key (like false or an array) 2006-07-29 22:10:50 +00:00
Seiji Masugata 603846c985 fix tests. 2006-07-29 17:11:09 +00:00
Pierre Joye 5317b7050b - #8315, flaot is affected too 2006-07-29 12:43:21 +00:00
Pierre Joye ab5c3f184b - #8315, NULL character stops the validation 2006-07-29 01:26:55 +00:00
Hannes Magnusson 3ca96c8043 Fix DateTime::RSS
Update tests
2006-07-28 16:32:31 +00:00
Ilia Alshanetsky 0de5728c82 cleanup of the phpinfo() output. 2006-07-28 14:27:03 +00:00
Ilia Alshanetsky 726dee9ee3 ext/standard/info.c ext/standard/info.h 2006-07-28 14:23:35 +00:00
Ilia Alshanetsky 3a78dce032 Cleanup phpinfo() output 2006-07-28 13:59:06 +00:00
Antony Dovgal a76b852989 fix test 2006-07-28 13:47:56 +00:00
Antony Dovgal 29a7498965 MFH: disable --leak-check 2006-07-28 12:58:59 +00:00
Antony Dovgal a28a95c11a MFH: patch for #37846 (wordwrap() wraps incorrectly)
by Dmitry Kononov <ddk at krasn dot ru>
2006-07-28 12:23:18 +00:00
Ilia Alshanetsky 4c2d752fb1 Fixed a bug in the filter extension that prevented magic_quotes_gpc from
being applied when RAW filter is used.
2006-07-27 18:14:55 +00:00
Ilia Alshanetsky cfda15ffc1 Binary safe multipart request handling 2006-07-27 17:04:15 +00:00
Ilia Alshanetsky 7ba86d078f Fixed bug #38236 (Binary data gets corrupted on multipart/formdata POST). 2006-07-27 15:37:56 +00:00
Ilia Alshanetsky 96324fb67f An improved fix for bug #38224 2006-07-27 15:33:16 +00:00
Ilia Alshanetsky bcc8854eaa make C++ compilers happy 2006-07-27 14:13:30 +00:00
Ilia Alshanetsky dcb4b314bf removed debug code 2006-07-27 14:05:03 +00:00
Ilia Alshanetsky e5a1182304 Fixed bug #38224 (session extension can't handle broken cookies). 2006-07-27 14:00:13 +00:00
Ilia Alshanetsky af48ecfc87 Fixed bug #38229 (strtotime() does not parse YYYY-MM format). 2006-07-27 13:00:00 +00:00
Antony Dovgal 92f4cc359f MFH: fix leak in php_local_infile_init() handler 2006-07-27 10:53:15 +00:00
Dmitry Stogov a98e5c674f Fixed bug #38234 (Exception in __clone makes memory leak) 2006-07-27 10:44:03 +00:00
foobar 7625313f9c MFH: - Added PHP_VERSION_ID == PHP_VERSION as integer. 2006-07-27 08:53:16 +00:00
Dmitry Stogov ee97ffd887 Fixed bug #38047 ("file" and "line" sometimes not set in backtrace from inside error handler) 2006-07-27 08:20:38 +00:00
Antony Dovgal ddb577b9b8 fix test on 64bit machines 2006-07-27 08:11:47 +00:00
Antony Dovgal 97ef557b97 initialize var 2006-07-27 08:00:54 +00:00
Antony Dovgal bbf2ab4d45 fix build with Intel C Compiler 2006-07-27 07:39:30 +00:00
foobar f58da213ff MFH: - Fixed bug #37164 (snmp_set_oid_numeric_print() misbehaves)
MFH:   . Renamed the function to snmp_set_oid_output_format() which describes
MFH:     it's behaviour better. Old one was left as an alias for it.
MFH:   . Added 2 new constants: SNMP_OID_OUTPUT_FULL and SNMP_OID_OUTPUT_NUMERIC
MFH: - Fixed some memleaks
2006-07-27 05:17:34 +00:00
foobar 60562a6312 update credits 2006-07-27 01:21:27 +00:00
foobar 0e7e000d56 MFH:- Fix build with ext/date/lib with shared extensions 2006-07-27 01:20:09 +00:00
foobar 0bf6b23cb8 MFH: fix phpize build 2006-07-27 01:18:55 +00:00
Ilia Alshanetsky b0ea656129 Fixed compiler warnings. 2006-07-27 00:36:55 +00:00
foobar 67a82e5106 MFH: - Fixed bug #37564 (AES privacy encryption not possible due to net-snmp 5.2 compatibility issue) 2006-07-26 23:57:43 +00:00
Pierre Joye a7768dd36f - readability 2006-07-26 23:23:55 +00:00
Pierre Joye e321c90522 - fix test 2006-07-26 23:22:53 +00:00
Ilia Alshanetsky 7b409b2276 Improved fix for bug #38132 2006-07-26 23:18:41 +00:00
Dmitry Stogov 30f4d3f959 Fixed bug #38220 (Crash on some object operations) 2006-07-26 15:29:27 +00:00
Antony Dovgal e1dfc4259f eliminate compilation warnings on AIX 2006-07-26 13:22:06 +00:00
foobar d8cd2d24d5 fix news 2006-07-26 12:07:13 +00:00
Antony Dovgal 4038877d85 turn Off Zend MM and check for leaks when running tests through valgrind 2006-07-26 11:11:11 +00:00
Antony Dovgal 5e0f6ea7db nuke unused variable 2006-07-26 10:31:08 +00:00
Pierre Joye 9db0e7cc3a - 38212 & 38214 2006-07-26 10:06:10 +00:00
Pierre Joye bc11170217 - #38214, gif interlace never works 2006-07-26 10:03:09 +00:00
Dmitry Stogov e447baafa1 Fixed bug #38211 (variable name and cookie name match breaks script execution) 2006-07-26 09:24:26 +00:00
Pierre Joye 40c059b8fc - MFH: mv 38179.phpt to bug38179.phpt 2006-07-26 08:59:55 +00:00
Antony Dovgal a0371df33f MFH: fix compile warning on Solaris, getloadavg() is in sys/loadavg.h there 2006-07-26 08:57:44 +00:00
Pierre Joye 206ec1a06b - MFH #38212, Segfault on invalid imagecreatefromgd2part() parameters 2006-07-26 08:53:30 +00:00
Dmitry Stogov 3688c103b5 Fixed crash of DEBUG version on SPARC CPU because of unaligned pointers. 2006-07-26 08:07:11 +00:00
Antony Dovgal 65626296da MFH: fix bug #38217 (ReflectionClass::newInstanceArgs() tries to allocate too much memory) 2006-07-26 08:03:48 +00:00
Antony Dovgal 7987bba743 improve connection timeout check (implements FR #38210) 2006-07-26 06:59:40 +00:00
Hannes Magnusson d5ec319367 MFH: Update protos & arginfo for memory_get_usage() & memory_get_peak_usage() 2006-07-25 16:41:04 +00:00
Antony Dovgal 9cd119859d forgot to remove .cvsignore 2006-07-25 15:54:03 +00:00
Michael Wallner 799ec9975b - ws 2006-07-25 14:44:53 +00:00
Ilia Alshanetsky e11e2a137c Fixed bug #38132 (ReflectionClass::getStaticProperties() retains \0 in key
names).
2006-07-25 14:06:52 +00:00
Dmitry Stogov 356facf4af Changed memory_get_usage() and memory_get_peak_usage(). Optional boolean argument allows get memory size allocated by emalloc() (by default) or real size of memory allocated from system. 2006-07-25 13:40:05 +00:00
Antony Dovgal 0a95528fc0 news entry 2006-07-25 13:24:53 +00:00
Antony Dovgal ddf19dc81c move ext/hwapi to PECL 2006-07-25 13:24:19 +00:00
Antony Dovgal a5aae5c45b ext/filepro moved to PECL 2006-07-25 12:52:18 +00:00
Ilia Alshanetsky bd581ab476 Fixed bug #38194 (ReflectionClass::isSubclassOf() returns TRUE for the
class itself).
2006-07-25 12:34:38 +00:00
Antony Dovgal e5f71c36af MFH: check g_hash for NULL before resetting it 2006-07-25 10:36:19 +00:00
Uwe Schindler d6337819ba MFH: Fix compilation with TSRM (now correct) 2006-07-25 09:20:32 +00:00
Uwe Schindler c1da9dbc8b revert shitty whitespace patch (forgot to reconfigure my editor after reinstallation) 2006-07-25 09:19:38 +00:00
Antony Dovgal cff6e2b446 initialize variable 2006-07-25 09:06:55 +00:00
Uwe Schindler c1ddf2c2ed Fix compilation with TSRM 2006-07-25 08:42:54 +00:00
Derick Rethans c3e5ee1840 - Fixed typo. 2006-07-25 06:49:38 +00:00
Marcus Boerger 195417eb4d - MFH Update tests 2006-07-24 23:41:09 +00:00
Marcus Boerger 5da6415bfe - MFH Correctly handle binary proeprty names which are not mangled 2006-07-24 23:40:57 +00:00
Marcus Boerger 4da92e63af - MFH Yet another problematic case with mangled properties 2006-07-24 22:36:21 +00:00
Ilia Alshanetsky 7fdcd281c6 back to dev 2006-07-24 18:53:01 +00:00
Ilia Alshanetsky 5e24aedf46 5.2.0RC1 2006-07-24 18:51:31 +00:00
Pierre Joye 6cf345f571 - #38179 and zip entry 2006-07-24 18:30:53 +00:00
Andrei Zmievski 8474838a9a +1 for keys 2006-07-24 18:18:33 +00:00
Marcus Boerger d0f2f6cd04 - MFH zend_unmangle_property_name(), drop zend_unmangle_property_name_ex() 2006-07-24 18:03:45 +00:00
Marcus Boerger 519ed8e13b - Better fix for #34505 and related, drop zend_unmangle_property_name_ex() 2006-07-24 17:58:32 +00:00
Pierre Joye 53d297a7ea - this one was not in 2006-07-24 17:26:24 +00:00
SVN Migration 664d102aa6 This commit was manufactured by cvs2svn to create branch 'PHP_5_2'. 2006-07-24 16:58:59 +00:00
Michael Wallner 467e129ce5 - note about allow_url_include 2006-07-24 12:15:28 +00:00
Dmitry Stogov b9ba07f7a0 Documentation fix 2006-07-24 12:15:07 +00:00
Dmitry Stogov 3b7386acea Fixed memory leaks detection 2006-07-24 08:15:26 +00:00
Dmitry Stogov a49e04477f Test for bug #38146 (Cannot use array returned from foo::__get('bar') in write context) 2006-07-24 07:43:49 +00:00
Ilia Alshanetsky 60b2f49762 Fixed compiler warning. 2006-07-24 03:58:41 +00:00
foobar 1a8d655fec fix build and typo after another lazy ass who does not test before commit: Dmitry 2006-07-24 00:01:02 +00:00
foobar 25f06142c2 MFH: cleanup after lazy people 2006-07-23 23:55:46 +00:00
foobar 93c0ddb2f3 MFH: fix compile failure and remove unnecessary TSRMLS_FETCH calls 2006-07-23 23:50:43 +00:00
Pierre Joye 261beb0326 - #38179, imagecopy, palette to truecolor must use alpha channel too 2006-07-23 21:41:12 +00:00
Marcus Boerger 43fa4e015b - This was reintroduced by Zeev
# I could need help in writing this file. Actually i know why i didn't want
# to start it in the first place.
2006-07-23 18:51:23 +00:00
Andrei Zmievski bb430b3737 Gah. 2006-07-22 16:58:39 +00:00
Andrei Zmievski d827c76379 Matt should be happy now. 2006-07-22 16:58:06 +00:00
Stefan Esser cfac29e20e Added RFC1867 fileupload processing hook. 2006-07-22 16:38:29 +00:00
foobar 2b8ad5a0af MFH:- Fixed bug #38183 (disable_classes=Foobar causes disabled class to be called Foo) 2006-07-22 15:41:42 +00:00
Rob Richards 40e08311e5 MFH: enable by default 2006-07-22 15:33:02 +00:00
Nuno Lopes ff591e2cf0 more const keywording 2006-07-22 15:22:56 +00:00
Nuno Lopes 5e7efb5ec9 dont create images in the php source root. output them instead 2006-07-22 15:15:53 +00:00
Pierre Joye 4219fe6c66 - hopla, before I got more conflicts ;)
(fix compiler warnings with latest const char changes)
2006-07-22 12:59:15 +00:00
Nuno Lopes 083b13335e use const keyword where possible 2006-07-22 12:49:36 +00:00
Pierre Joye 3ce212ccae - silent compiler warnings (char/unsigned char) 2006-07-22 09:39:24 +00:00
Pierre Joye 0714c1a3d5 - api shake #1, parse_pararameter has to be changed too 2006-07-22 09:09:06 +00:00
Pierre Joye 697f4e1f08 - API Shake up #1, use input type as first argument in input_get_args
(INPUT_GET/POST)
2006-07-22 08:58:03 +00:00
Andrei Zmievski 1223119155 MFH 2006-07-21 23:54:19 +00:00
Marcus Boerger a6f8252f9b - MFH Update docu 2006-07-21 21:55:43 +00:00
Marcus Boerger 6a738f6b5b - MFH Match code with docu 2006-07-21 21:26:11 +00:00
Marcus Boerger 85963e6300 - MFH Update RegexIterator, Docu & Tests 2006-07-21 20:14:31 +00:00
Dmitry Stogov 33a1a4d39a Changed error message (E_ERROR -> E_NOTICE) in case of indirect modification of overloaded property. 2006-07-21 10:32:17 +00:00
Dmitry Stogov 9a98904ddd Fixed wrong "type" argument to read_property() handler 2006-07-21 08:39:30 +00:00
Marcus Boerger 45d09c71ba - Synch RegexIterator with HEAD 2006-07-20 22:54:21 +00:00
Marcus Boerger 6fb763c4f9 - MFH Clean up (after consulting Andrei)
. Change the handlers SPL uses to php_pcre_*_impl(pcre_cache_entry*,....)
  . All refactored funcs (match, split, replace, grep) use the above
  . Change (zend|php)_error() to php_error_docref()
  . Move from old to new param parsing api
  . Fix memleaks in unicode mode
2006-07-20 22:53:07 +00:00
Edin Kadribasic 163e1fd41c Lib update 2006-07-20 22:21:27 +00:00
Seiji Masugata 3e1c05170e Initial commit. Updated bundled oniguruma library (used for multibyte regular expression) to 4.2.0. 2006-07-20 15:56:29 +00:00
Derick Rethans 150d058008 - MFH: Rename date classes to DateTime and DateTimeZone 2006-07-20 15:49:02 +00:00
Seiji Masugata e95f9a0eeb Updated bundled oniguruma library (used for multibyte regular expression) to 4.2.0. 2006-07-20 15:45:07 +00:00
Pierre Joye d6c2c283ed - make boolean logical filter works like int/float and php itself
- add more tests for boolean input
2006-07-20 12:58:13 +00:00
Antony Dovgal f59a139f61 rephrase 2006-07-20 10:47:37 +00:00
foobar 68ae270793 MFH: simplify 2006-07-20 10:11:15 +00:00
foobar 34ae4eafd0 update 2006-07-20 10:09:09 +00:00
foobar 479055a85b MFH 2006-07-20 10:07:29 +00:00
Antony Dovgal 3003cd2473 MFH: use E_WARNING on recursion and add null to the result to keep it valid 2006-07-20 09:33:28 +00:00
Antony Dovgal 60720d285f MFH: ZTS fix 2006-07-20 09:19:02 +00:00
Antony Dovgal ad8445a828 add missing .cvsignore 2006-07-20 08:58:49 +00:00
Antony Dovgal 3e308d3a6b MFH: add recursion protection to json_encode() and new tests 2006-07-20 08:56:57 +00:00
Antony Dovgal 0b97d2bd60 fix segfault, add test 2006-07-20 08:24:31 +00:00
Antony Dovgal 074feedc2b MFH 2006-07-20 07:40:49 +00:00
Antony Dovgal 926961192f MFH 2006-07-20 07:30:22 +00:00
Antony Dovgal efe0314db6 break; break; -> break; 2006-07-20 07:20:23 +00:00
Pierre Joye 92b6f24241 - fix tests for PI with libxml 2.6.24+, a new line is now added 2006-07-19 18:50:51 +00:00
Ilia Alshanetsky 221ac1b9e5 Extension news 2006-07-19 16:20:02 +00:00
Ilia Alshanetsky cdfe00b801 Fixed compiler warnings and enable Json by default. 2006-07-19 16:17:15 +00:00
foobar a90c48fb48 un*uck NEWS 2006-07-19 13:54:56 +00:00
foobar 92f080a0a3 Missing file.. 2006-07-19 13:45:43 +00:00
Michael Wallner 46f21b8a32 MFH: added error_get_last() function 2006-07-19 12:25:46 +00:00
Dmitry Stogov f7c99da2fe Fixed bug #37144 (PHP crashes trying to assign into property of dead object) 2006-07-19 09:55:19 +00:00
Antony Dovgal e8241e59ac no need to fetch name and free it immediately after that 2006-07-19 08:35:55 +00:00
Antony Dovgal 28c9afe35d fix tests 2006-07-19 08:26:50 +00:00
Antony Dovgal 4e8a4a4235 MFH: increase refcount when adding zval to the result array 2006-07-19 07:18:34 +00:00
Antony Dovgal f61572e645 fix compile warnings 2006-07-19 06:57:21 +00:00
Antony Dovgal ca7875ab83 fetch tsrm_ls, don't use it uninitialized 2006-07-19 06:32:52 +00:00
Ilia Alshanetsky 480104a456 Fixed memory leak 2006-07-18 22:42:28 +00:00
Antony Dovgal c204ff0258 MFH: fix build on platforms without mremap() 2006-07-18 15:41:58 +00:00
Antony Dovgal a390c84dc5 news entry 2006-07-18 14:58:42 +00:00
Antony Dovgal 9e905c3de7 MFH: add gmp_nextprime()
patch by ants dot aasma at gmail dot com
2006-07-18 14:54:32 +00:00
Derick Rethans 9ccbb28696 - Enable all new date functions and classes 2006-07-18 12:38:05 +00:00
Antony Dovgal b45268a07a fix test 2006-07-18 09:22:32 +00:00
Dmitry Stogov 29ed52ffa4 New memory manager 2006-07-18 09:06:33 +00:00
Antony Dovgal 7f9a43653c fix logic 2006-07-18 09:00:10 +00:00
Antony Dovgal 7a089a43af MFH: fix DVAL_TO_LVAL() on AIX with old gcc 2006-07-18 08:17:28 +00:00
Ilia Alshanetsky fea4eeb845 Added possible failure note. 2006-07-18 00:09:01 +00:00
Marcus Boerger 34cfec2536 - MFH Fix #38125 undefined reference to spl_dual_it_free_storage 2006-07-17 21:11:33 +00:00
Michael Wallner c0fcaa7acb - fix bug #37945 pathinfo() cannot handle argument with special characters
like german "Umlaute"
2006-07-17 20:36:47 +00:00
Pierre Joye 2a06ce8518 - #38112, add test and use MAX_LWZ_BITS instead of the value 2006-07-17 14:30:21 +00:00
Pierre Joye cb41a19f28 - sync tests with HEAD 2006-07-17 12:54:09 +00:00
Nuno Lopes 46c036cd4d make valgrind trace child processes. useful for the PCNTL extension (fork()), for example 2006-07-17 11:43:48 +00:00
Nuno Lopes 7a38509835 new test 2006-07-17 11:39:13 +00:00
Nuno Lopes 0433d29020 now they are really equivalent.. 2006-07-17 10:48:11 +00:00
Antony Dovgal 7c24d8fbee typofix 2006-07-17 10:08:17 +00:00
Dmitry Stogov d68797945a Fixed memory leaks in ZTS mode. 2006-07-17 07:20:12 +00:00
Antony Dovgal f3f44275f4 MFH 2006-07-17 06:45:08 +00:00
Seiji Masugata 1d6182a907 added option parameter mb_strrpos( ). 2006-07-17 04:48:17 +00:00
Ilia Alshanetsky cd0e0124c9 Don't use regex where none is needed. 2006-07-17 03:57:31 +00:00
Marcus Boerger 109c89c848 - MFH Typo 2006-07-16 23:48:34 +00:00
Marcus Boerger f2623f0b50 - MFH Update docu 2006-07-16 23:46:12 +00:00
Marcus Boerger 55f0596fab - MFH:
. Upgrade RegexIterator capabilities, see docu
  . Update docu
  . Add test (which fails right now: iterator_049.phpt)
  . Add tests for new functionality
2006-07-16 21:12:32 +00:00
Marcus Boerger bf4c9ef686 - MFH: Little bit refactoring: Two new PHPAPI functions:
. php_pcre_match
  . php_pcre_split
2006-07-16 21:09:30 +00:00
Nuno Lopes 717ca4ef55 new tests. almost 90% of code coverage 2006-07-16 19:35:09 +00:00
Marcus Boerger bd760162e6 - MFH Correct test name 2006-07-16 17:34:37 +00:00
Christian Stocker 2dbcfcb8cb improved code (after suggestion by helly) 2006-07-16 16:04:09 +00:00
Antony Dovgal e79591b081 fix test 2006-07-16 15:59:08 +00:00
Christian Stocker dc8ba6f475 Added DOMNode::getNodePath() for getting an XPath for a node. 2006-07-16 15:03:53 +00:00
Pierre Joye 17f6ae66ce - #38112, corrupt GIF segfaults, test will follow 2006-07-16 11:07:31 +00:00
Marcus Boerger dc571fa9e2 - MFH Fixed Bug #29538 number_format and problem with 0 2006-07-16 10:50:58 +00:00
Marcus Boerger f03f2c5eae - MFH Pathinfo allows to get filename (Toby S, Christian S) 2006-07-16 10:37:24 +00:00
Marcus Boerger 9c30e20bd6 - MFH Implement todo: SplFileObject: ability to set the CSV separator per object 2006-07-15 15:08:41 +00:00
Marcus Boerger bb3c702162 - MFH Fix issue with SplFileObject and directories 2006-07-15 13:01:59 +00:00
Marcus Boerger 31a8d6a6b3 - MFH array_fill_keys, better unicode support, use new param parsing API 2006-07-15 12:14:07 +00:00
Marcus Boerger 87c64280b0 - MFH Added array_fill_keys(). (Marcus, Mathew W) 2006-07-15 10:21:10 +00:00
Antony Dovgal 54dba635a3 rephrase the error message (fixes #38106) 2006-07-14 20:44:04 +00:00
Nuno Lopes 3876158e8f fix test with some aspell versions 2006-07-14 16:14:05 +00:00
Antony Dovgal 19a9052d6e fix build 2006-07-13 17:03:35 +00:00
Ilia Alshanetsky ab6d4d411a Fixed test for systems where set_charset() method is unavailable. 2006-07-13 15:42:43 +00:00
Ilia Alshanetsky 9c125eeb27 Fixed compiler warnings. 2006-07-13 15:05:30 +00:00
Antony Dovgal 4902fc6c25 MFH: fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length)
add tests
2006-07-13 12:00:17 +00:00
Ilia Alshanetsky 1784db8087 Fixed compiler warnings. 2006-07-13 00:13:19 +00:00
Antony Dovgal a9469060e5 MFH: init variables and get rid of annoying warnings 2006-07-12 21:17:30 +00:00
Antony Dovgal 9d57621235 MFH: initialize EG(exit_status) in ZTS mode 2006-07-12 18:10:56 +00:00
Michael Wallner 33dbaff1ed MFH: add note why replace is 0, so that I don't wonder again in 2 months
why session_regenerate_id() sends the session cookie twice
2006-07-12 15:28:44 +00:00
Antony Dovgal f9070e626a bailout on error and don't try to create fields of unknown type
add test
2006-07-12 13:08:38 +00:00
Antony Dovgal 69d6fe45c8 it's usually good idea to initialize variables
especially if you rely on their values
2006-07-12 12:38:49 +00:00
Antony Dovgal 3cce465528 fix invalid read - no need to compare strings if haystack is "" or shorter than needle
add test
2006-07-12 12:33:48 +00:00
Antony Dovgal 8a35e9d014 fix #38072 (boolean arg for mysqli_autocommit() is always true on Solaris) 2006-07-12 09:51:47 +00:00
Antony Dovgal 1f09c0b9d5 fix TSRM build 2006-07-12 09:33:37 +00:00
Dmitry Stogov c48a2e38f4 Fixed bug #38067 (Parameters are not decoded from utf-8 when using encoding option) 2006-07-12 08:59:40 +00:00
Hartmut Holzgraefe 3fe315c652 MFH new test cases 2006-07-12 08:01:44 +00:00
Dmitry Stogov b6d2c54059 Destructors call order is changed (Fixed bug #36759 - Objects destructors are invoked in wrong order when script is finished) 2006-07-12 07:55:17 +00:00
Dmitry Stogov 8bb047ee97 Fixed bug #36759 (Objects destructors are invoked in wrong order when script is finished). 2006-07-12 07:54:00 +00:00
Marcus Boerger 39a4078b8c - Reorder and add missing 2006-07-12 07:34:28 +00:00
Hartmut Holzgraefe e796974f6f fixed C&P errors in groups handling, activated groups feature 2006-07-12 07:01:04 +00:00
Hartmut Holzgraefe aca6460346 MFH 2006-07-11 23:45:28 +00:00
Hartmut Holzgraefe ae749049f5 MFH make sure that embedded database is correctly initialized 2006-07-11 23:43:55 +00:00
Hartmut Holzgraefe 61e9783154 debug output was breaking all tests 2006-07-11 23:42:58 +00:00
Hartmut Holzgraefe 3e099a5983 MFH test for ping and kill methods 2006-07-11 23:35:38 +00:00
Ilia Alshanetsky d21628f993 Fixed test 2006-07-11 22:13:53 +00:00
Antony Dovgal 7ff8061d0a add new tests by Ligaya Turmelle 2006-07-11 21:28:38 +00:00
Antony Dovgal 40b87ec99f MFH: /tmp is often a symlink, use /bin instead 2006-07-11 21:20:20 +00:00
Antony Dovgal 24d3381b10 fix typo, add new test 2006-07-11 16:33:25 +00:00
Dmitry Stogov a602a3eef5 Nuke signed/unsigned compiler warnings 2006-07-11 14:35:50 +00:00
Dmitry Stogov ee1dc90d1e Nuke signed/unsigned compiler warnings 2006-07-11 14:24:18 +00:00
Antony Dovgal b491930ef6 fix segfault in jdmonthname(), add test 2006-07-11 14:16:26 +00:00
Antony Dovgal 5e93a7df9a eliminate compile warnings 2006-07-11 12:37:00 +00:00
Antony Dovgal 3aaf62d159 there is no Unicode in 5_2 2006-07-11 12:15:11 +00:00
Dmitry Stogov 631a00a0a0 Fixed memory leak in case of exception in iterator callbacks in 'foreach(new Iterator()...' (spl/tests/iterator_047.phpt). 2006-07-11 08:52:28 +00:00
Ilia Alshanetsky 190c186fb8 apache2handler sapi is no longer experimental 2006-07-11 00:15:30 +00:00
Hartmut Holzgraefe c1b67d83cc (MFH) "transaction" tests should test commit, too, not only rollback 2006-07-10 16:29:50 +00:00
Dmitry Stogov fbd3ef09ed Fixed memory leaks in ext/spl/tests/fileobject_003.phpt 2006-07-10 15:47:58 +00:00
Hartmut Holzgraefe 836e74ebee MFH 2006-07-10 14:06:13 +00:00
Dmitry Stogov 83ac79600e Fixed bug #37947 (zend_ptr_stack reallocation problem) 2006-07-10 14:02:40 +00:00
Antony Dovgal d9d23050d1 MFH: fix mysqli_*_free_storage() funcs to conform with their prototypes 2006-07-10 13:02:43 +00:00
Dmitry Stogov 26c7981ccf Another fix for #38019 2006-07-10 12:46:28 +00:00
Antony Dovgal 3113fa9440 MFH: initialize vars 2006-07-10 11:26:22 +00:00
Dmitry Stogov 26499be68f Fixed bug #38055 (Wrong interpretation of boolean parameters) 2006-07-10 10:33:43 +00:00
Dmitry Stogov 690e86fdb2 Fixed bug #38019 (segfault extending mysqli class) 2006-07-10 10:05:20 +00:00
Dmitry Stogov 795a482a48 Fixed bug #38005 (SoapFault faultstring doesn't follow encoding rules) 2006-07-10 07:41:33 +00:00
Hartmut Holzgraefe 098d3d2b02 MFH 2006-07-10 07:39:35 +00:00
Dmitry Stogov 1cfb8af265 Fixed test 2006-07-10 07:26:17 +00:00
Dmitry Stogov c389a653f7 Fixed bug #38004 Parameters in SoapServer are decoded twice 2006-07-10 07:21:41 +00:00
Marcus Boerger f66cd50510 - BFN 2006-07-10 00:36:47 +00:00
Marcus Boerger 704eced26b - MFH Fixed Bug #37667 (Object is not added into array returned by __get) 2006-07-10 00:36:28 +00:00
Marcus Boerger 71efa5b435 - MFH Fixed bug #37816 (ReflectionProperty does not throw exception when accessing protected attribute) 2006-07-10 00:18:53 +00:00
Marcus Boerger c5ff44688a - MFH Fix logic 2006-07-09 23:30:19 +00:00
Ilia Alshanetsky ff08705591 Removed pointless declarations 2006-07-09 23:28:28 +00:00
Marcus Boerger d6b489fb32 - Add new entry 2006-07-09 22:58:36 +00:00
Marcus Boerger 21858220b2 - MFH It appears i am the maintainer 2006-07-09 22:49:16 +00:00
Marcus Boerger ec11b44e84 - BFN 2006-07-09 22:45:32 +00:00
Marcus Boerger dd5cbcd24c - Fixed Bug #37811 define not using toString on objects 2006-07-09 22:45:11 +00:00
Marcus Boerger c514ee0c9b - MFH Fix issue with comparing objects with objects 2006-07-09 18:03:42 +00:00
Marcus Boerger 2f0e80afac - BFN 2006-07-09 17:53:55 +00:00
Marcus Boerger e9be807267 - MFH Add new test 2006-07-09 17:04:27 +00:00
Marcus Boerger fa57959f47 - MFH:
. Fix comparision edgecases involving objects (Tony, Marcus)
  . Use ZVAL_LONG() where appropriate
2006-07-09 16:58:05 +00:00
Marcus Boerger d5811fc08a - MFH Fix test 2006-07-09 16:56:22 +00:00
Marcus Boerger d26b539c61 - MFH DualIterator 2006-07-09 10:24:32 +00:00
Marcus Boerger 5fee10735f - MFH Add spl_object_hash() 2006-07-09 10:22:27 +00:00
Marcus Boerger 0fd2b96204 - MFH Add test 2006-07-08 12:25:57 +00:00
Nuno Lopes c26991a9eb MFH 2006-07-08 00:13:17 +00:00
Nuno Lopes 8b139b654d static + const keywords 2006-07-07 23:32:14 +00:00
Hannes Magnusson 147840dd93 MFH: ReflectionFunction::isDisabled() 2006-07-07 11:55:23 +00:00
Ilia Alshanetsky 89635eb158 E_ERROR > E_RECOVERABLE_ERROR 2006-07-06 23:13:18 +00:00
Antony Dovgal 91f9af4360 add test 2006-07-06 16:14:56 +00:00
Sara Golemon 86bbbbdce4 MFH (def.h rev:1.121, execute.h rev:1.120)
Silence FETCH_OBJ_IS / undefined notices
2006-07-06 15:32:07 +00:00
Ilia Alshanetsky 278dc574f2 E_ERROR > E_RECOVERABLE_ERROR 2006-07-05 17:38:14 +00:00
Antony Dovgal d90263437c add test for bug #38003 2006-07-05 13:31:17 +00:00
Antony Dovgal 0c05e6da00 fix tests 2006-07-05 11:55:59 +00:00
Antony Dovgal 058b529ae7 oops.. fix copy/paste typo 2006-07-05 11:54:08 +00:00
Antony Dovgal 4c26ed263d BFN 2006-07-05 11:49:37 +00:00
Antony Dovgal 0f8f945418 MFH: fix bug #38003(in classes inherited from mysqli it's possible to call private constructors from invalid context) 2006-07-05 11:48:30 +00:00
Antony Dovgal c4c96c042e MFH: export zend_std_get_constructor() 2006-07-05 11:41:25 +00:00
Antony Dovgal 859ab9a4cf MFH: improve error messages 2006-07-05 11:39:00 +00:00
Edin Kadribasic e84a7de005 apache2filter on windows news 2006-07-05 10:18:25 +00:00
SVN Migration 1b0a789ab9 This commit was manufactured by cvs2svn to create branch 'PHP_5_2'. 2006-07-05 10:12:43 +00:00
Ilia Alshanetsky f0178f71ee Eliminate some compiler warnings 2006-07-04 20:12:38 +00:00
Derick Rethans d060a6e8a2 - MFH: Updated timezonedb to version 2006.7.
- MFH: Fixed test cases because of new constant values for the formats.
2006-07-04 18:13:58 +00:00
Hannes Magnusson 612e75442f mfh 2006-07-04 15:37:34 +00:00
Hannes Magnusson 1d6e7e3d93 MFH: Fix protos&arginfo 2006-07-04 15:33:57 +00:00
Dmitry Stogov d550c270ce Fixed memory leak 2006-07-04 07:26:53 +00:00
Dmitry Stogov acb1e07980 Changed priority of PHPRC environment variable on win32 to be higher then value from registry. 2006-07-04 06:35:49 +00:00
Hannes Magnusson a32fb32781 Make everyone happy 2006-07-03 22:42:03 +00:00
Ilia Alshanetsky 4a0d670f43 Fixed test 2006-07-03 21:58:46 +00:00
John Coggeshall 42c462c755 Adding Apache2Filter news 2006-07-03 16:55:57 +00:00
John Coggeshall 3a0791c99b Reimplementation of the way Apache 2 Filter works. Instead of ripping the
source from a file (thus bypassing any previous filters in the chain). This
implementation wraps Zend's internal stream mechanism, allowing ZE to read
from Apache's streams instead.
2006-07-03 16:51:38 +00:00
Hannes Magnusson 87bc74ea7a fix tests 2006-07-03 16:03:51 +00:00
Nuno Lopes 919d737505 more testing 2006-07-03 14:46:44 +00:00
Nuno Lopes 9990b3f431 new tests and fix the locales test where the pt local isnt available. 2006-07-03 13:04:45 +00:00
Ilia Alshanetsky 1b2cc459c6 Fixed bug #37987 (invalid return of file_exists() in safe mode). 2006-07-02 13:51:40 +00:00
Hannes Magnusson 7af33194e5 MFH: arginfo fixes 2006-07-02 00:11:06 +00:00
Nuno Lopes b7311e9173 fixed segfaults and such things within the new assert02.phpt test 2006-07-01 12:21:07 +00:00
Nuno Lopes 7961207d6b add const keywords 2006-07-01 11:35:34 +00:00
Hannes Magnusson 6910275d51 MFH reference fixes 2006-06-30 18:17:38 +00:00
Antony Dovgal bdd4183fba news 2006-06-30 10:55:06 +00:00
Antony Dovgal a518b450fd MFH: add error messages to disk_free_space() & disk_total_space() (feature request #37971) 2006-06-30 10:53:11 +00:00
Ilia Alshanetsky 9048ae292c Fixed test for situations where pspell_clear_session() is unavailable. 2006-06-29 22:54:31 +00:00
Antony Dovgal 6c37c9fa0a fix test on AIX and Solaris 2006-06-29 22:45:19 +00:00
Ilia Alshanetsky 70f2bcf763 Fixed test 2006-06-29 22:42:25 +00:00
Hannes Magnusson 1c530aa7cb Fix test on linux 2006-06-29 22:10:47 +00:00
Hannes Magnusson 3fd28953c6 mfh 2006-06-29 15:01:31 +00:00
Hannes Magnusson 77b307021d fix test 2006-06-29 14:53:50 +00:00
Hannes Magnusson 7a6fe06e4b url->URL 2006-06-29 14:40:49 +00:00
Hannes Magnusson bcd06ef1b6 Bug #37961 (url should be URL) 2006-06-29 14:31:56 +00:00
Antony Dovgal b8f97db580 MFH: make sure we won't get into endless loop 2006-06-29 09:03:27 +00:00
Antony Dovgal 6a43f6805c add new tests 2006-06-29 09:00:33 +00:00
Ilia Alshanetsky 24ac7931cd Improved safe_mode check for the error_log() function. 2006-06-28 22:08:42 +00:00
Antony Dovgal 5ca11825d1 BFN 2006-06-28 15:04:28 +00:00
Antony Dovgal 0212ec6c71 MFH: fix #37931 (possible crash after database restart when using persistent connections) 2006-06-28 15:03:33 +00:00
Nuno Lopes e8a3530d50 new tests (001.phpt is just a rename from the older one)
increases coverage from 20% to 70%
2006-06-28 14:36:23 +00:00
Ilia Alshanetsky 58c82af64d Improved the error reporting in SOAP extension on request failure. 2006-06-27 23:32:56 +00:00
Nuno Lopes 38e47dd0bb add new tests. bump code coverage to more than 80% 2006-06-27 22:43:26 +00:00
Hannes Magnusson 297a3d8e4c arginof fixes 2006-06-27 22:14:18 +00:00
Hannes Magnusson 52fd069ff4 Fix arg info (php6 features) 2006-06-27 21:42:16 +00:00
Antony Dovgal 41ada4ba9b add new tests 2006-06-27 21:10:04 +00:00
Nuno Lopes 29b0798cc8 revert per Derick request 2006-06-27 21:00:03 +00:00
Antony Dovgal badf27fb2a MFH: no need to throw E_ERROR here 2006-06-27 19:58:43 +00:00
Nuno Lopes 5c97837ca2 add a couple of static and const keywords, to let the compiler optimize better
will MFB in a hour, or so
2006-06-27 19:48:01 +00:00
Antony Dovgal 7dec2a7354 more tests 2006-06-27 15:55:06 +00:00
Antony Dovgal 5f024dcc16 more date() tests 2006-06-27 15:08:16 +00:00
Antony Dovgal ac4f8071c5 BFN 2006-06-27 08:28:24 +00:00
Antony Dovgal 6c52ec1319 MFH: fix #37920 (compilation problems on z/OS) 2006-06-27 08:27:10 +00:00
Hannes Magnusson aaa1d62614 MFH: fix/add SKIPIF 2006-06-27 00:09:43 +00:00
Hannes Magnusson 000957818e MFH: fix test 2006-06-26 23:42:59 +00:00
Antony Dovgal 8058f9fd11 add new tests 2006-06-26 23:35:22 +00:00
Antony Dovgal e24fe395a2 MFH: zero-terminate strings produced with FORCE_DEFLATE 2006-06-26 23:22:58 +00:00
Antony Dovgal 3d97f45bc4 don't try to inflate empty strings (and stop segfaulting!) 2006-06-26 22:53:10 +00:00
Hannes Magnusson fd1679e7f0 nuke obsolete arginfo 2006-06-26 22:47:31 +00:00
Hannes Magnusson e06665c961 MFH: argument info 2006-06-26 22:41:22 +00:00
Hannes Magnusson c9c2c0e1f8 MFH: test for bug #37244 2006-06-26 22:20:27 +00:00
Antony Dovgal 3d63ca3edc add new tests, improve the old ones 2006-06-26 22:17:18 +00:00
Antony Dovgal 5d2d2fd5a3 MFH: detect empty mode string and avoid off-by-one 2006-06-26 21:13:46 +00:00
Hannes Magnusson ec420c3df8 Updated protos & vim folding 2006-06-26 18:48:56 +00:00
Hannes Magnusson 5326a8b2bc MFH: argument info for php_user_filter
Add tests
2006-06-26 17:23:39 +00:00
Hannes Magnusson 223d122cae MFH: use the ZEND_ACC_DEPRECATED flag rather than custom warnings 2006-06-26 16:33:39 +00:00
Hannes Magnusson d258bcd951 MFH: Removed obsolete arginfo include 2006-06-26 14:11:17 +00:00
Hannes Magnusson ae1ec65637 Added SimpleXMLElement::saveXML() as an alias for SimpleXMLElement::asXML() 2006-06-26 13:41:52 +00:00
Dmitry Stogov de85c9cd70 Fixed bug #37862 (Integer pointer comparison to numeric value) 2006-06-26 13:23:46 +00:00
Rasmus Lerdorf 862c4d2345 MFH: fix sapi_getenv() leak 2006-06-26 13:15:20 +00:00
Hannes Magnusson 563c920c24 MFH http_build_query() & parse_url() news
# Patch by helgi thormar
2006-06-25 23:22:40 +00:00
Antony Dovgal 0b073cd34c improve test file
don't forget to test invalid parameters etc.
2006-06-25 21:21:59 +00:00
Hannes Magnusson a5d56bb9f5 Added image_type_to_extension()
# Was suppost to be in 5.0beta#3... :)
2006-06-25 21:12:49 +00:00
Hannes Magnusson d836ff68c8 WS fix 2006-06-25 21:08:28 +00:00
Hannes Magnusson 7b6bf33b03 MFH: image_type_to_mime_type() 2006-06-25 21:06:39 +00:00
Marcus Boerger 97062cade9 - MFH Fix ReflectionObject::getProperties() + dyn properties 2006-06-24 18:55:15 +00:00
Antony Dovgal 87dd729187 plug leak 2006-06-23 13:53:43 +00:00
Ilia Alshanetsky f1d09682fb Change E_ERROR to E_RECOVERABLE_ERROR 2006-06-23 11:37:53 +00:00
Antony Dovgal 1fdd8d7b2a MFH: fix typo and bug #37886 2006-06-23 08:26:15 +00:00
Michael Wallner 68421695ac - use %zu to format size_t 2006-06-23 07:30:26 +00:00
Antony Dovgal 1757bf8822 fix typo 2006-06-22 21:24:23 +00:00
Antony Dovgal 6ccc1d1fb5 MFH: add wrappers for timelib_day_of_week_ex() 2006-06-22 21:04:32 +00:00
Antony Dovgal 47b41a5d6c MFH:
don't try to parse empty string, return false immediately
(fixes off-by-one)
2006-06-22 18:44:31 +00:00
Ilia Alshanetsky 0d708dc358 Fixed compiler warnings. 2006-06-21 15:19:23 +00:00
Antony Dovgal 4b674fb7b0 MFH: improve check for stream mode, add tests 2006-06-21 14:38:28 +00:00
Antony Dovgal 8c30a7f8a6 MFH: don't try to read or write from/to a stream if it was open in different mode (leads to segfault in libbz2) 2006-06-21 13:12:37 +00:00
Antony Dovgal e7439fa200 MFH: fix invalid read with bzopen("","") and prevent filename from being empty (which causes endless loop somewhere is libbz2) 2006-06-21 12:43:27 +00:00
Ilia Alshanetsky f496f5014a Removed pointless callbacks. 2006-06-20 22:39:15 +00:00
Nuno Lopes b7bca610dd make sure the test outputs what we want 2006-06-20 21:49:16 +00:00
Hannes Magnusson 437494ddf7 Bug fix news... 2006-06-20 19:35:52 +00:00
Hannes Magnusson 748b589925 Renamed to bug37864.phpt 2006-06-20 19:33:31 +00:00
Hannes Magnusson 1332a14cfc MFH 2006-06-20 19:32:59 +00:00
Antony Dovgal 959af2a28d don't leave garbage in tmp dir 2006-06-20 18:55:46 +00:00
Hannes Magnusson 3674994be5 MFH: test for file_get_contents leaking on empty file 2006-06-20 18:48:56 +00:00
Hannes Magnusson c4154145df MFH: plug memleak 2006-06-20 18:09:50 +00:00
Hannes Magnusson c14ba0f124 MFH: Missing header include 2006-06-20 18:04:25 +00:00
Antony Dovgal 5ffbb85103 MFH: init variables 2006-06-20 13:28:11 +00:00
Antony Dovgal 3ff986ecf7 init vatiables 2006-06-20 13:26:01 +00:00
Antony Dovgal eaf4ea2e74 MFH: nuke unused variables and init variables when needed 2006-06-20 13:21:16 +00:00
Antony Dovgal 44005b7986 fix test 2006-06-20 13:14:29 +00:00
Antony Dovgal 8df36aaf32 fix test 2006-06-20 13:06:50 +00:00
Antony Dovgal 20a379fa7d MFH: initialize pointers 2006-06-20 12:55:26 +00:00
Ilia Alshanetsky 0406556da4 Added missing ifdef block.
# Thanks Mike
2006-06-19 23:52:39 +00:00
Antony Dovgal ba8f17e483 MFH: display oci8 version in phpinfo() 2006-06-19 18:21:28 +00:00
Antony Dovgal 33616195b9 MFH: plug leak in CGI SAPI when running scripts with query string in console 2006-06-19 17:49:26 +00:00
Antony Dovgal c458d1347b fix tests 2006-06-19 17:33:44 +00:00
Antony Dovgal 8b99387569 BFN 2006-06-19 16:59:05 +00:00
Antony Dovgal 3ce8ccb6f2 fix #37848 (ext/odbc compile failure) 2006-06-19 16:13:15 +00:00
Michael Wallner f4106441cb - Fix Bug #37780 memory leak trying to execute a non existing file (CLI) 2006-06-19 14:52:34 +00:00
Antony Dovgal 20ee84dea6 MFH: fix #37807 (segmentation fault during SOAP schema import) 2006-06-19 11:43:45 +00:00
Antony Dovgal cd7d7039ac MFH: add missing ifdef and avoid "unused variable" warning 2006-06-19 11:39:02 +00:00
Ilia Alshanetsky 3b7be889d8 Added posix_initgroups() function. 2006-06-19 02:19:13 +00:00
Hannes Magnusson aae5df3ffd MFH: arg ifno 2006-06-17 13:06:06 +00:00
Hannes Magnusson c6080567e2 Fix test 2006-06-17 12:51:02 +00:00
Nuno Lopes 6509311ebb plug memory leak in sapi_putenv, by using setenv(), that doesnt need any malloc 2006-06-17 11:08:05 +00:00
Nuno Lopes aa48814378 change the timezone used (per Derick request)
add one string I missed yesterday. Now every strotime() rule is covered
2006-06-17 10:30:23 +00:00
Nuno Lopes ca6e1bbcda new tests. the .re file coverage increases to 96%. really good :) 2006-06-16 22:46:57 +00:00
Seiji Masugata ee23aba678 changed GINIT definition. 2006-06-16 16:45:46 +00:00
Rasmus Lerdorf 6bfeea9eb9 MFH: Backported allow_url_include from HEAD. This directive allows
separate control of URL handling in includes/requires allowing sites to
enable allow_url_fopen without enabling remote includes.
2006-06-16 14:09:01 +00:00
Stefan Esser 6320ee11cf MFH: Only care about wrong flex version, when needed. 2006-06-16 08:01:03 +00:00
Dmitry Stogov 6c310f9c0a New crypt() implementation for win32 which is about 10 times faster and has more friendly license. 2006-06-16 05:57:18 +00:00
foobar 4793980a8f Fix build. (gmp_nextprime() was added in PHP 6!) 2006-06-16 00:14:35 +00:00
Rasmus Lerdorf 8ab6f3fd39 MFH: Optimize the other string conversion functions here to just create
raw text nodes.
2006-06-15 22:45:30 +00:00
Rasmus Lerdorf 12022014fa MFH:
I don't think the call to xmlNodeSetContentLen() is needed here and
it is causing performance problems because it tries to parse the blob
and create a subtree.  Because we are escaping the string anyway, we
are never going to get a subtree, but the entity parsing that is done
by xmlNodeSetContentLen() is killing performance on large blobs of
text.  On one recent example it took a couple of minutes to parse
whereas if we just create a text node like this and set the contents
to the raw string it is down to milliseconds.
2006-06-15 20:49:05 +00:00
Dmitry Stogov 1dbaae2795 Added automatic module globals management 2006-06-15 18:33:09 +00:00
Nuno Lopes c3ed91477a fix bug #37800: preg_replace() limit parameter odd behaviour
#this is a regression in PHP_5_2 and HEAD branches only
2006-06-15 15:33:25 +00:00
Hannes Magnusson 954acfe261 MFH: Revert array type hinting 2006-06-15 15:31:54 +00:00
Dmitry Stogov 60328ea7c3 Added automatic module globals management 2006-06-15 14:06:35 +00:00
Dmitry Stogov ada4e506a7 MFH: Added automatic module globals management. 2006-06-15 14:03:21 +00:00
foobar d3c3a54b4e fix news. gaps left intentionally.. 2006-06-15 13:07:37 +00:00
Hannes Magnusson f0d98ad3de MFH: argument info.. 2006-06-14 21:36:10 +00:00
Nuno Lopes a943d234f5 fix memory leak uncovered by the pcre_extra.phpt test 2006-06-14 17:52:56 +00:00
Nuno Lopes a7bc286638 more tests (and fix 2 from yesterday) 2006-06-14 17:37:53 +00:00
Nuno Lopes 7406f3771a remove the pcre_dfa_exec.c file, as it is needed (we dont expose that API) 2006-06-14 16:26:22 +00:00
Nuno Lopes 45a2bdaf73 missing newline 2006-06-14 16:16:02 +00:00
Ilia Alshanetsky 18870e3afc E_ERROR -> E_RECOVERABLE_ERROR 2006-06-14 16:04:13 +00:00
Christian Stocker d7fd19b7ff MFH
Fix a segfault, when an unknown type was given and support all known xpath object types
2006-06-14 09:42:35 +00:00
Nuno Lopes e607e2ab9a also ignore lcov generated files 2006-06-13 22:02:57 +00:00
Nuno Lopes c93dc5d873 add new tests, increasing coverage by about 10% 2006-06-13 21:55:38 +00:00
Marcus Boerger 9660548a22 - MFH Arginfo fix (Hannes) 2006-06-13 20:57:35 +00:00
Ilia Alshanetsky b8bee35259 Removed unused variables. 2006-06-13 20:19:37 +00:00
Dmitry Stogov eb8c558966 Removed warnings 2006-06-13 14:22:46 +00:00
Dmitry Stogov 5a73f8f13f Removed warning 2006-06-13 13:55:12 +00:00
Stefan Esser 7bbf35320d MFH: Added hook for compile_string() 2006-06-13 12:57:48 +00:00
Ilia Alshanetsky 3ff5fb0631 Fixed compiler warning 2006-06-12 23:28:32 +00:00
Ilia Alshanetsky d74f9ff550 Improved performance of the implode() function on associated arrays by
200-300%.
2006-06-11 21:55:49 +00:00
Ilia Alshanetsky 66141bd5d1 Fixed ZTS build 2006-06-11 20:47:34 +00:00
Hannes Magnusson dd2c03ca48 MFH: fix typo 2006-06-11 20:12:17 +00:00
Hannes Magnusson 21b0f60332 MFH: argument infos 2006-06-11 20:03:05 +00:00
Ilia Alshanetsky f1fb77d1aa Make zend_print_zval_r_ex() use the write callback function. 2006-06-11 16:28:24 +00:00
Ilia Alshanetsky f876b800a2 Fully print array() in phpinfo(). 2006-06-11 16:27:16 +00:00
Hannes Magnusson 3104233019 MFH: arginfo, protos, vim folding 2006-06-11 01:42:17 +00:00
Hannes Magnusson 50de3fd1ce MFH: fix test 2006-06-11 00:18:30 +00:00
Ilia Alshanetsky 37d88ca5a0 Improved performance of str_replace() when doing 1 char to 1 char or 1 char
to many chars replacement by 30-40%.
2006-06-10 15:29:06 +00:00
Hannes Magnusson 13fe33c2df MFH
- Created new abstract class, ReflectionFunctionAbstract implementing Reflector
- Moved all methods from ReflectionFunction (except export, invoke & invokeArgs)
- ReflectionFunction now inherits everything from ReflectionFunctionAbstract
    and implements its own export, invoke & invokeArgs methods
- ReflectionMethod now extends ReflectionFunctionAbstract and implements
    its own export, invoke & invokeArgs methods.
- Removed stdClass typehint from ReflectionClass::isInstance
- Removed stdClass typehint from ReflectionClass::set/getValue
2006-06-10 00:40:57 +00:00
Rasmus Lerdorf 50cc487b21 MFH: Patch from Nuno 2006-06-09 23:47:10 +00:00
Michael Wallner 76838bcd54 - sync with apache2handler 2006-06-09 16:29:35 +00:00
Michael Wallner 96724797c8 BFN: - Fixed bug #37720 (merge_php_config scrambles values). (Mike,
pumuckel at metropolis dot de)
2006-06-09 15:17:39 +00:00
Michael Wallner 2e9ec84ce2 MFH: fix bug #37720 (merge_php_config scrambles values) 2006-06-09 15:13:39 +00:00
Ilia Alshanetsky 6654a07e73 Update credits 2006-06-08 22:04:52 +00:00
Derick Rethans ddd8fd3e3d - Fixed bug #37747 (strtotime segfaults when given "nextyear"). 2006-06-08 16:27:05 +00:00
Dmitry Stogov 2a7d16f8fd Proper fix for bug #37707 ("clone $x" must call __clone() enven if result value is not used) 2006-06-08 08:56:27 +00:00
Dmitry Stogov 6e24feb80d Wrap "wrong" unreachable code with "#if 0" 2006-06-08 08:37:51 +00:00
Marcus Boerger 44ba014c5f - MFH Add arginfo (hannes) 2006-06-07 22:39:22 +00:00
Rasmus Lerdorf 76bff5194c Put the TODO back 2006-06-07 21:14:04 +00:00
Rasmus Lerdorf 658762a0b5 Get rid of useless function calls 2006-06-07 21:09:52 +00:00
Ilia Alshanetsky 402de0146e Bug fixing news 2006-06-07 13:44:08 +00:00
Ilia Alshanetsky 8d4bb9ca74 Fixed bug #37707 clone without assigning leaks memory
# Based on a patch by Nuno
2006-06-07 13:41:49 +00:00
Antony Dovgal 9123bee257 MFH:
fix Unicode LOB problems using callbacks to read LOBs
using chunk_size*X buffer should speed up LOB reading a bit

many thanks to Massimo Squillace <msquillace at sogei dot it> for the patch.
2006-06-07 13:36:51 +00:00
Marcus Boerger e0844e09bd - MFH iterator_apply() 2006-06-07 09:44:42 +00:00
Marcus Boerger 64c353ab79 - MFH zend_fcall_info_*() and parameter parsing option 'f'
# Right now i see this as the best option but we might shuffle code around
# later if someone comes up with a better solution.
2006-06-07 09:43:54 +00:00
Marcus Boerger 1f93575c88 - MFH Add ReflectionClass::getInterfaceNames() 2006-06-07 09:26:11 +00:00
Marcus Boerger de39078f7b - Regenerated after zend_vm_def.h change 2006-06-07 09:22:08 +00:00
Marcus Boerger 5cdefd07cd - MFH Fix issue with interfaces being inherited multiple times 2006-06-07 09:21:06 +00:00
Ilia Alshanetsky a9c6e4be1e Fixed bug #37709 (Possible crash in PDO::errorCode()). 2006-06-07 03:33:16 +00:00
Antony Dovgal e5c8f8c59b yet another dummy clone_obj handler to fix problems created by ze1 compat mode 2006-06-06 22:05:56 +00:00
Antony Dovgal a07500042d implement a dummy clone_obj handler for ze1 compat mode
(fixes segfault on every XMLReader instantiation)
2006-06-06 21:44:34 +00:00
Michael Wallner d6212d96f4 - only try to fetch stream context options if context is set 2006-06-06 21:38:03 +00:00
Antony Dovgal 928c20942b plug a leak in ext/spl/tests/iterator_047.phpt 2006-06-06 20:11:35 +00:00
Antony Dovgal f6a400bd9f revert by Andi's request 2006-06-06 14:17:21 +00:00
Antony Dovgal 2f26d8d7ae MFH: don't leak when decoding failed 2006-06-06 14:09:12 +00:00
Rob Richards 704ed9625c nuke unused call 2006-06-06 12:08:11 +00:00
Rob Richards d6a526d66b restore missing ze1 compat code 2006-06-06 12:05:30 +00:00
Antony Dovgal e8d568ea8d fix test 2006-06-06 11:33:59 +00:00
Antony Dovgal 8204511d71 MFH: do not allow to implement the same interface twice
add tests
2006-06-06 10:03:01 +00:00
Ilia Alshanetsky 6ab23efb3a Fixed bug #37705 (Semaphore constants not available). 2006-06-05 22:52:11 +00:00
Antony Dovgal 073ee1397a MFH: no need to check if non-existing include_path complies with open_basedir setting 2006-06-05 22:39:50 +00:00
Edin Kadribasic 8b764bd08c Fixed bug #35886 (nlopes) 2006-06-05 22:19:36 +00:00
Antony Dovgal 1b602e85d1 fix leak appearing on phpinfo() when there are no PDO modules available 2006-06-05 22:08:16 +00:00
Zeev Suraski 66b90c7052 Final ze1_compat restoration - it was mostly done by hand, so if anybody
spots any (new) problems, let me know.  Test wise, the same tests that
failed before are failing now.
2006-06-05 16:53:21 +00:00
Zeev Suraski b1683ea891 ze1 restoration 2006-06-05 16:25:25 +00:00
Zeev Suraski 51d495850a Restore ZE1 compatibility mode (Zend Engine part - the modules patches
will follow later today)
2006-06-05 13:58:52 +00:00
Antony Dovgal 163f0da75a BFN 2006-06-05 09:57:17 +00:00
Stanislav Malyshev 1ebb0590bd improve .dsp build 2006-06-05 09:02:28 +00:00
Antony Dovgal a588f2dc60 MFH: fix OCIPasswordChange() parameters (patch by pholdaway at technocom-wireless dot com)
prevent username, password and new password from being empty
2006-06-05 07:35:32 +00:00
Stanislav Malyshev 0c518a03a9 fix .dsp build 2006-06-04 18:03:25 +00:00
Ilia Alshanetsky 63a658ee7a Fixed bug #37671 (MySQLi extension fails to recognize BIT column). 2006-06-04 14:56:34 +00:00
Marcus Boerger ac2a29913c - Add missing classes 2006-06-04 10:47:22 +00:00
Marcus Boerger 37f5474ce9 - MFH Use engine call to register interfaces (steph) 2006-06-04 10:34:22 +00:00
Marcus Boerger 6c0f166794 - Fix function flag check 2006-06-04 10:27:28 +00:00
Marcus Boerger dfd2295849 - Use engine call to register interfaces (steph) 2006-06-04 10:26:55 +00:00
Johannes Schlüter 2f418134ff MFH 2006-06-03 22:02:02 +00:00
Andrei Zmievski 5735927d86 I swear it wasn't me. 2006-06-03 18:56:44 +00:00
Rob Richards a86232d9bb MFH: add setIdAttribute, setIdAttributeNS and setIdAttributeNode functionality 2006-06-02 16:17:25 +00:00
Dmitry Stogov 6c61aeb012 SAPI globals are destroied at this point and reporting errors about memory leaks can cause crash. 2006-06-02 13:30:55 +00:00
Ilia Alshanetsky 5b5e7a4de9 Fixed compiler warning 2006-06-01 22:42:22 +00:00
Michael Wallner 6e2ff39e3e - Fix bug #37630: MySQL extensions should link against thread safe client libs if built with ZTS 2006-06-01 19:14:48 +00:00
Michael Wallner 57cdfc58d2 - fix order 2006-06-01 19:11:59 +00:00
Michael Wallner c0505439c3 - Fixed bug #37363 (PDO_MYSQL does not build if no other mysql extension is
enabled)
2006-06-01 15:14:45 +00:00
Antony Dovgal 17ad6e2ebf apply correct fix 2006-06-01 14:31:22 +00:00
Antony Dovgal fbeb246a3a no need to do TSRMLS_FETCH() twice 2006-06-01 14:06:23 +00:00
Antony Dovgal 112f263591 MFH: suppress_errors is used only on Win32, no need to look for it on other systems 2006-06-01 14:03:49 +00:00
Antony Dovgal 0675e5eabb MFH: nuke unused variable 2006-06-01 13:45:26 +00:00
Antony Dovgal 48098f0774 fix tests 2006-06-01 13:17:36 +00:00
Antony Dovgal 210335909a MFH: no need to fetch trsm_ls when it's already available 2006-06-01 12:25:38 +00:00
Antony Dovgal ff59351416 add new tests 2006-06-01 11:57:49 +00:00
Antony Dovgal 29be5946f9 MFH: throw a warning when using invalid offset types with strings 2006-06-01 11:56:44 +00:00
Ilia Alshanetsky 378d5d4e34 spelling corrections 2006-05-31 23:06:50 +00:00
Andrei Zmievski b8ebfce9af Revert accidentally committed internal patch 2006-05-31 21:48:43 +00:00
Antony Dovgal d5be48711a MFH: add expected warning to the test 2006-05-31 20:40:11 +00:00
Derick Rethans c116ecf207 - There was nothing wrong here, bug report #37595 is bogus.
- Added a new test case to demonstrate a longer plain text.
2006-05-31 20:09:07 +00:00
Antony Dovgal c188ec09eb add more tests 2006-05-31 18:47:21 +00:00
Andrei Zmievski 1f04ac91b0 MFB 2006-05-31 17:18:08 +00:00
Antony Dovgal 8f78a2727b add tests for E_STRICT that will become E_FATAL in PHP 6 2006-05-31 14:54:52 +00:00
Dmitry Stogov 8df40bdb31 Keeping consistent arg_stack during arguments freeing (Exception from destructor may use inconsistent arg_stack for backtrace). 2006-05-31 13:01:57 +00:00
Dmitry Stogov 51e52e20ef Support for nested exceptions and fatal errors in destructors 2006-05-31 12:59:31 +00:00
Antony Dovgal 47edd8a303 MFH: fix #37595 (mcrypt_generic calculates data length in wrong way) 2006-05-31 12:06:36 +00:00
Andi Gutmans 42f32bfa4b - Fix typo 2006-05-31 03:43:17 +00:00
Marcus Boerger 4703e96853 - Add new tests 2006-05-30 23:11:33 +00:00
Marcus Boerger d87de86823 - Switch back to old severities and still keep bugfix for
#37632 (Protected method access problem)
# It wasn't really my intention to change the severity. We simply didn't
# have tests for that.
2006-05-30 23:10:28 +00:00
Antony Dovgal 9246ba2a82 more test fixes, this time support Oracle 10 2006-05-30 22:34:16 +00:00
Antony Dovgal c1272d8972 fix tests 2006-05-30 22:27:32 +00:00
Antony Dovgal 2817ddccf5 fix test 2006-05-30 21:54:42 +00:00
Antony Dovgal bc5b8eabea MFH 2006-05-30 21:38:12 +00:00
Marcus Boerger 2d7d2aebe6 - MFH WS 2006-05-30 19:41:04 +00:00
Sara Golemon 79b21ec4cf MFH: Minor fixes (bjori) 2006-05-30 19:06:22 +00:00
Michael Wallner 258351c30a - fix bug #37635 (parameter of pcntl signal handler is trashed) 2006-05-30 17:40:52 +00:00
Seiji Masugata c314888c29 added mb_stristr( ), mb_strrichr( ). 2006-05-30 15:47:53 +00:00
Seiji Masugata 731584c076 added mb_strstr( ), mb_strrchr( ). 2006-05-30 15:45:35 +00:00
Seiji Masugata 42aadabfcb added mb_stripos( ), mb_strripos( ). 2006-05-30 15:43:09 +00:00
Seiji Masugata 7314771a35 added mb_list_encodings_alias_names( ), mb_list_mime_names( ). 2006-05-30 15:40:39 +00:00
Seiji Masugata 91dd8376bd added option parameter mb_list_encodings( ). 2006-05-30 15:38:22 +00:00
Hannes Magnusson 91d4ef33ef MFH: Play nice, use 4digit years in DATE_RSS 2006-05-30 15:14:22 +00:00
Ilia Alshanetsky 5186ee9c59 Added memory_get_peak_usage() function for retrieving peak memory usage of
a PHP script.
2006-05-30 14:51:20 +00:00
Hannes Magnusson 61fc424321 MFH: Fixed DATE_COOKIE, DATE_RSS & tests 2006-05-30 14:46:46 +00:00
Antony Dovgal bb4c7ff0e9 MFH: don't require libociei, this allows us to build ext/oci8 against basiclite OIC package 2006-05-30 13:16:48 +00:00
Derick Rethans 9a9cd86f38 - Now as text and not HTML. 2006-05-30 13:14:51 +00:00
Derick Rethans fb92e33b5d - MFH: Fixed bug #37616: DATE_RFC822 does not product RFC 822 dates. (Patch by
Hannes Magnusson)
2006-05-30 13:12:21 +00:00
Antony Dovgal e4a3732c91 no need to call zend_is_callable() if callable is known to be invalid
free fname on failure and plug possible leak
2006-05-30 09:46:59 +00:00
Ilia Alshanetsky a400d8908d Convert E_ERROR to E_RECOVERABLE_ERROR 2006-05-30 02:40:33 +00:00
Antony Dovgal 43b660b6ea MFH: no need to check it for not-NULL 2006-05-29 21:31:49 +00:00
Antony Dovgal 82d326bdea MFH: there is no ce at this point, revert this line to its previous state 2006-05-29 21:28:29 +00:00
Antony Dovgal 70c643f5f0 fix tests 2006-05-29 21:08:02 +00:00
Antony Dovgal fb696afd10 add test 2006-05-29 20:31:48 +00:00
Antony Dovgal 8ca3826a28 MFH: return NULL in case of error 2006-05-29 20:26:32 +00:00
Marcus Boerger aa40595644 - BFN 2006-05-29 20:07:39 +00:00
Marcus Boerger 1b172b1371 - MFH Bugfix #37632 (Protected method access problem) 2006-05-29 20:06:43 +00:00
Antony Dovgal 9e1b944989 MFH: improve sed expressions 2006-05-29 18:12:55 +00:00
Michael Wallner 3b407d143b - Fixed bug #36949 (invalid internal mysqli objects dtor) 2006-05-29 16:53:56 +00:00
Antony Dovgal aed81da3fa BFN 2006-05-29 11:00:32 +00:00
Antony Dovgal be0fc2b801 MFH: fix #37531 (oci8 persistent connection corruption) 2006-05-29 10:59:30 +00:00
Antony Dovgal ec68882101 add test 2006-05-29 10:42:54 +00:00
Antony Dovgal be0b8c71bc initialize srcstream 2006-05-29 10:39:59 +00:00
Antony Dovgal 1a63feffd1 MFH: prevent resource leaking when passing invalid stream resource as second argument 2006-05-29 10:24:49 +00:00
Georg Richter 10ed7a1e0a Fix for bug #37620 2006-05-29 05:38:50 +00:00
Michael Wallner 7ac96de039 - news entry for apache2handler ap_set_content_type() fix 2006-05-28 20:34:10 +00:00
Michael Wallner d724f9cfb1 MFH: call ap_set_content_type() only once, else each time we call it,
configured output filters for that content type will be added
2006-05-28 20:32:00 +00:00
Ilia Alshanetsky 1ad21d9b12 Fixed bug #37586 (Bumped minimum PCRE version to 6.6, needed for recurssion
limit support).
2006-05-28 15:33:56 +00:00
Marcus Boerger 5f63b5c4ee - Revert until there is an ok for the full patch 2006-05-27 20:16:53 +00:00
Marcus Boerger ca6a202160 - WS 2006-05-27 19:06:06 +00:00
Marcus Boerger 493f39da2d - MFH: Fix bug #37212 (Access to protected property of common base class)
By adding "zend_class_entry *ce" to struct zend_property_info;
2006-05-27 18:39:53 +00:00
Johannes Schlüter ccfc0d9d99 - MFH Fix #37614 (Class name lowercased in error message) 2006-05-27 18:23:48 +00:00
Marcus Boerger 26145c2e0c - WS/CS 2006-05-27 18:04:13 +00:00
Rob Richards a7aa62ded1 MFH: add C14N() and C14NFile() methods to perform XML canonicalization
add test
2006-05-26 18:23:50 +00:00
Dmitry Stogov 10371b034a Fixed bug #37523 (namespaces added too late, leads to missing xsi:type attributes. incompatibility with libxml2-2.6.24) 2006-05-26 09:02:35 +00:00
Marcus Boerger 1d5f721fd9 - MFH Sync error messages and simplify error message generation code 2006-05-26 00:36:13 +00:00
Pierre Joye 59ddb74938 - fix leaks in openssl context options 2006-05-26 00:32:07 +00:00
Ilia Alshanetsky b882f9f37e Fixed bug #37569 (WDDX incorrectly encodes high-ascii characters) 2006-05-25 22:54:16 +00:00
Edin Kadribasic 58962c7371 Missing definition, patch by Steph Fox 2006-05-25 18:47:21 +00:00
Michael Wallner 3dcef1b9be - implement standard http stream wrapper options, fixes bug #34180
- skip empty headers in on_header_available()
2006-05-25 12:41:35 +00:00
Antony Dovgal 99e13c50f9 MFH: remove debug output and fix bug #37589 2006-05-25 11:46:38 +00:00
Marcus Boerger 7110650668 - Update test 2006-05-25 10:46:53 +00:00
Marcus Boerger a681fcb006 - Update update news and sync with NEWS 2006-05-25 10:20:56 +00:00
Antony Dovgal 9dd24c6d87 fix error messages when converting objects to other types
add new function
MFB will follow soon
2006-05-25 10:01:06 +00:00
Marcus Boerger ec79dd793d - MFH Bugfix 37587 2006-05-25 09:59:25 +00:00
Dmitry Stogov 93851ebf11 Fixed bug #37278 (SOAP not respecting uri in __soapCall) 2006-05-25 08:14:28 +00:00
Dmitry Stogov 26ccde4da9 Fixed bug #37558 (timeout functionality doesn't work after a second PHP starup on the same thread). (p dot desarnaud at wanadoo dot fr) 2006-05-25 07:46:25 +00:00
Antony Dovgal 43c79a616e reorder 2006-05-25 07:31:47 +00:00
Dmitry Stogov 630def46f7 Fixed bug #37496 (FastCGI output buffer overrun) 2006-05-25 06:40:04 +00:00
Ilia Alshanetsky 53988d8cf5 Fixed bug #37563 (array_key_exists performance is poor for &$array). 2006-05-24 23:14:08 +00:00
Antony Dovgal 755caecfc9 fix test 2006-05-24 23:04:58 +00:00
Edin Kadribasic f2a48add80 BFN 2006-05-24 22:04:57 +00:00
Edin Kadribasic 740d39454b Initialize windows globals, fixes #37428 2006-05-24 22:00:15 +00:00
Antony Dovgal c53dbdbe75 BFN 2006-05-24 21:24:29 +00:00
Antony Dovgal 4cb3d18276 fix #37418 (tidy module crashes CLI version of PHP) 2006-05-24 21:22:13 +00:00
Antony Dovgal fb32c077a2 fix #37499 (CLI segmentation faults during cleanup (only with sybase-ct extension enabled)) 2006-05-24 20:21:02 +00:00
Dmitry Stogov a953a1abda Fixed CGI tests. 2006-05-24 13:28:59 +00:00
Dmitry Stogov 6fe36adf0c Fixed bug #37256 (php-fastcgi dosen't handle connection abort) 2006-05-24 09:42:21 +00:00
Dmitry Stogov 07b8d051fa Fixed bug #37341 ($_SERVER in included file is shortened to two entries, if $_ENV gets used). 2006-05-24 07:55:19 +00:00
Marcus Boerger 1448086b22 - MFH Add more tests from Ligaya Turmelle 2006-05-23 23:47:44 +00:00
Ilia Alshanetsky cd8c7a3e09 Fixed handling of extremely long paths inside tempnam() function. 2006-05-23 23:22:04 +00:00
Marcus Boerger 59d2ce8258 - MFH Fix feof() 2006-05-23 22:31:25 +00:00
Marcus Boerger 200c627aeb - MFH Sync with head (namespace prefix handling) 2006-05-23 22:24:44 +00:00
Marcus Boerger f88a172959 - MFH Handle NULL in C argument parsing correct 2006-05-23 22:22:11 +00:00
Marcus Boerger 64701cf42b - MFH Bugfix #37565 2006-05-23 21:58:44 +00:00
Marcus Boerger 8d4eea74d5 - Fix double error raising issue 2006-05-23 21:50:29 +00:00
Sebastian Bergmann 3e7df40852 MFH: Add bison 2.2 to the list of supported versions. 2006-05-23 11:11:16 +00:00
Marcus Boerger c1b749f491 - Update 2006-05-22 19:04:19 +00:00
Rob Richards c384b34ae9 MFH: add registerNodeClass() method
- update attribute isID functionality
 - add test
2006-05-22 17:12:26 +00:00
Rob Richards 3997d6663b MFH: move document property struct from xml_common.h 2006-05-22 17:09:05 +00:00
Ilia Alshanetsky e2c6d3edae E_ERROR > E_RECOVERABLE_ERROR 2006-05-22 14:22:26 +00:00
Dmitry Stogov 302c53fc5d Fixed bug #37496 (FastCGI output buffer overrun) 2006-05-22 09:22:20 +00:00
Antony Dovgal 52cb01a933 fix typo 2006-05-22 06:49:48 +00:00
Antony Dovgal 095162c3d4 re-enable OCILobRead2() support 2006-05-22 04:17:42 +00:00
Marcus Boerger e3f89f116a - MFH
. Make code exception safe
  . Make RecursiveRegexIterator::getChildren pass regex to inner ctor
  . Fix CachingIterator::__toString() in TOSTRING_USE_KEY mode
  . Add CachingIterator::getCache()
  . Add tests
2006-05-21 18:13:37 +00:00
Marcus Boerger 7577130156 - MFH improve error messages 2006-05-21 18:10:31 +00:00
Marcus Boerger 1be624e7ba - MFH Sync vm generation with head
- Regenerate vm
2006-05-21 18:00:14 +00:00
Ilia Alshanetsky 24f3d55f3c Added control character checks for cURL extension's open_basedir/safe_mode
checks.
2006-05-21 16:31:57 +00:00
Ilia Alshanetsky 38d7ea305c Added a note about E_RECOVERABLE_ERROR being a part of E_ALL. 2006-05-21 15:50:31 +00:00
Marcus Boerger e145343b57 - MFH Handle corrupt base64 data in data: url 2006-05-21 13:37:19 +00:00
Marcus Boerger abcee63635 - Update 2006-05-21 09:12:34 +00:00
Marcus Boerger 290ed55060 - MFH Improved error message 2006-05-20 21:02:44 +00:00
Marcus Boerger 96916c95e8 - MFH Sync with head fixes part of an issue with iterator_(to_array|count) 2006-05-20 21:01:42 +00:00
Antony Dovgal 25eca319fa MFH: attempt to fix OCILobRead2() related problems 2006-05-20 13:46:59 +00:00
Marcus Boerger 10ab729e88 - MFH Add new tests 2006-05-20 11:35:38 +00:00
Marcus Boerger cd4ab2f6fe - MFH Use correct version 2006-05-20 09:12:28 +00:00
Marcus Boerger 397c88ae74 - MFH Add new tests 2006-05-20 09:08:35 +00:00
Dmitry Stogov cdb0ed7587 Fixed random crashes in ZTS mode becouse of uninitialized EG(modified_ini_directives). 2006-05-19 15:31:25 +00:00
Derick Rethans ab8329ec31 - Fixed bug #37514 (strtotime doesn't assume year correctly). 2006-05-19 14:52:30 +00:00
Michael Wallner bea595aef9 - nuke compiler warnings 2006-05-19 14:19:27 +00:00
Antony Dovgal ab9429900a fix test 2006-05-19 10:57:48 +00:00
Antony Dovgal 6557578657 MFH: initialize factory 2006-05-19 10:24:05 +00:00
Antony Dovgal c13ba99551 add new tests by Ligaya Turmelle 2006-05-19 07:44:24 +00:00
Dmitry Stogov 14f6b9149d Optimized zend_try/zend_catch macroses (eliminated memcpy()) 2006-05-19 06:09:15 +00:00
Ilia Alshanetsky 95875d9966 Fixed bug #37505 (touch() truncates large files). 2006-05-19 02:51:00 +00:00
Marcus Boerger 55041d6f3d - MFH Add new test 2006-05-18 22:52:04 +00:00
Marcus Boerger 69079a7537 - MFH Add new test 2006-05-18 22:42:05 +00:00
Marcus Boerger aa0172a4da - MFH Fix bug #37510 session_regenerate_id changes session_id() even on failure 2006-05-18 22:12:26 +00:00
Marcus Boerger 5e5327a7e0 - MFH Add new test 2006-05-18 21:59:05 +00:00
Edin Kadribasic 51ed0ebad8 Use heap insted of stack for recursion in hope of avoid stack overflow crashes 2006-05-18 21:50:51 +00:00
Marcus Boerger e33afedd96 - You shall not use %v in 5.*
# Even though it is there it is only meant for pecl dev to ease their pain
2006-05-18 21:48:33 +00:00
Edin Kadribasic 52566bba75 Give exe files 8MB stack (same default as on Linux) instead of Windows default 1MB 2006-05-18 21:46:12 +00:00
Marcus Boerger 20ac90bac8 - Update 2006-05-18 21:45:38 +00:00
Marcus Boerger 7d79686f45 - MFH Fixed CachingIterator issues with string conversion/__toString()
Partly by adding new mode TOSTRING_USE_INNER
2006-05-18 21:42:58 +00:00
Antony Dovgal 80d7ac0e9e there is no %v in 5.2 2006-05-18 21:24:04 +00:00
Antony Dovgal 749f4ac2ab MFH: fix #37487 (oci_fetch_array() array-type should always default to OCI_BOTH) 2006-05-18 13:21:08 +00:00
Antony Dovgal 557b7fbec5 fix tests 2006-05-17 20:13:05 +00:00
Marcus Boerger 9c8b47d15e - Fix oversight and drop E_STRICT in 5.x series 2006-05-17 19:07:45 +00:00
Rob Richards 0b3b1448d0 BFN 2006-05-17 16:37:01 +00:00
Rob Richards 6f95fa95cc add tests 2006-05-17 16:36:21 +00:00
Rob Richards aebc5833a9 Synch from HEAD
- Fix bug #37456 (DOMElement->setAttribute() loops forever)
- update iterators for engine change merged from HEAD
2006-05-17 16:35:50 +00:00
Antony Dovgal 6783be767a change argument name, it should be "object" not "property" 2006-05-17 14:28:21 +00:00
Ilia Alshanetsky 4fd736fbe9 Bug fixing news 2006-05-17 13:28:29 +00:00
Ilia Alshanetsky 21724432de Fixed bug #35512 (Lack of read permission on main script results in
E_WARNING rather then E_ERROR).
2006-05-17 13:27:51 +00:00
Antony Dovgal e2afb33e87 fix skip reason 2006-05-17 10:12:36 +00:00
Marcus Boerger 09b741ff47 - MFH Proto fix/add 2006-05-17 00:07:28 +00:00
Marcus Boerger 216049bb27 - MFH '_' is valid in test blocks 2006-05-16 23:05:49 +00:00
Antony Dovgal 1f02fad528 fix test 2006-05-16 22:59:32 +00:00
Ilia Alshanetsky ccad354535 Make filters without a resource throw E_RECOVERABLE_ERROR rather then
E_ERROR
2006-05-16 14:11:52 +00:00
Antony Dovgal 1feef82dc4 new mkdir tests 2006-05-16 13:06:06 +00:00
Antony Dovgal 3a830a30f4 fix #37395 (recursive mkdir() fails to create nonexistent directories in root dir) 2006-05-16 13:05:02 +00:00
Marcus Boerger 26a67b8925 - MFH Fixed Bug #37457 (Crash when an exception is thrown in accept() method of FilterIterator) 2006-05-16 08:21:08 +00:00
Ilia Alshanetsky cccb406ee8 Disable realpath cache when open_basedir or safe_mode are enabled on a
per-request basis.
2006-05-16 00:39:32 +00:00
Dmitry Stogov be4c37919b Added test 2006-05-15 16:44:54 +00:00
Sebastian Bergmann c412cfe311 My bad. 2006-05-15 16:08:18 +00:00
Sebastian Bergmann a70d189c04 Fugbix NEWS entries. 2006-05-15 16:03:41 +00:00
Sebastian Bergmann d7138e1e5d Fugbix typo. 2006-05-15 16:01:24 +00:00
Dmitry Stogov dd5b835147 *** empty log message *** 2006-05-15 15:38:46 +00:00
Dmitry Stogov 963c7fa016 Optimized require_once/include_once (eliminated fopen() on second usage) 2006-05-15 15:31:27 +00:00
Dmitry Stogov 14cad8fdc3 Optimized shutdown sequence to iterate only over modified ini directives 2006-05-15 14:52:35 +00:00
Dmitry Stogov b5cd968ffc - Removed source compatibility with libfcgi
- Optimized access to FastCGI environment using HashTable instead of linear search
- Allowed PHP_FCGI_MAX_REQUESTS=0 to disable PHP die
- Allowed PHP_FCGI_CHILDREN=0 to disable PHP spawn workers
2006-05-15 14:30:31 +00:00
Derick Rethans 7975b4eb0e - MFH: Fixed windows compile error. 2006-05-15 08:54:16 +00:00
Antony Dovgal bb82fb0530 MFH: disable OCILobRead2() support on Win32 2006-05-15 08:34:40 +00:00
Marcus Boerger da438af187 - Update 2006-05-14 19:58:04 +00:00
Marcus Boerger 8886be7041 - Add some update notes 2006-05-14 19:23:19 +00:00
Marcus Boerger 9249d05bdd - We have it now fully RFC compliant 2006-05-14 19:20:21 +00:00
Marcus Boerger 5d43fe49f7 - MFH No need to have this controlled by allow_url_fopen 2006-05-14 19:15:31 +00:00
Marcus Boerger 0c40fb7ef2 - Readd that E_RECOVERABLE_ERROR, dropping it is a bad idea 2006-05-14 18:50:02 +00:00
Marcus Boerger 3fd2c5e217 - Do not include E_RECOVERABLE_ERROR to the default mode E_ALL 2006-05-14 18:45:10 +00:00
Marcus Boerger 3577115118 - MFH Add strict compliant RFC2397 support (no //) 2006-05-14 18:40:12 +00:00
Derick Rethans 74dfa9f0ba MFH:
- Implemented Dmitry's const patch.
- Added support for "weekday" as relative item.
- Fixed bug #37368 (Incorrect timestamp returned for strtotime()).
2006-05-14 17:36:05 +00:00
Ilia Alshanetsky 4ab6eb3d19 MFH: Fixed bug #36630 (umask not reset at the end of the request). 2006-05-14 16:06:48 +00:00
Marcus Boerger ad16c0a375 - Update 2006-05-14 02:00:04 +00:00
Marcus Boerger 653d895ecb - Update 2006-05-14 01:55:27 +00:00
Marcus Boerger 5b44266a5f - MFH RFC2397 decoding 2006-05-14 01:42:03 +00:00
Marcus Boerger 0c09d4cb63 - MFH RFC 2397 meta data handling 2006-05-14 01:06:09 +00:00
Pierre Joye fc06fb4a07 - initial commit
Please fill it :)
2006-05-14 00:29:08 +00:00
Rasmus Lerdorf 6fb0bf80ea Switch to a signed int for now. Will look at moving to a long throughout
the code here.
2006-05-13 21:50:28 +00:00
Marcus Boerger 2100a86198 - MFH Initial support for RFC2397 2006-05-13 17:58:58 +00:00
Marcus Boerger a4af2a9d16 - MFH add support for --EXPECTHEADERS-- 2006-05-13 14:01:58 +00:00
Marcus Boerger d45250a058 - MFH code layout for __toString() use in parameter parsing api 2006-05-13 10:37:45 +00:00
Rob Richards 8d1427dd98 MFH: add doXInclude property to allow processor to perform XIncludes 2006-05-12 18:53:40 +00:00
Ilia Alshanetsky aa19f65f56 Download pear phar file when making a distribution package 2006-05-12 14:54:10 +00:00
Derick Rethans 07d0f0cf01 - MFH: Tests for BC breaking changes. 2006-05-12 10:02:31 +00:00
Antony Dovgal 046b34955c MFH: fix #37416 (iterator_to_array() hides exceptions thrown in rewind() method) 2006-05-12 09:42:56 +00:00
Sebastian Bergmann ec7b8e2b1c Bump version. 2006-05-12 05:36:09 +00:00
Marcus Boerger b3c3c6de14 - Missing __toString() pieces 2006-05-12 00:21:00 +00:00
Marcus Boerger a5f8d2899c - Update 2006-05-11 22:58:14 +00:00
Marcus Boerger 7bbab02633 - MFH
. Fix iterator based access
  . Add new attribute ATTR_DEFAULT_FETCH_MODE: $bdh->setAttribute()
  . Add new fetch mode: FETCH_PROPS_LATE, this fills object member
    variables after calling the constructor (fixes #36428).
2006-05-11 22:43:44 +00:00
Antony Dovgal 7412202c43 no need to destroy the zval here 2006-05-11 22:41:37 +00:00
Antony Dovgal ca923a2cae fix test 2006-05-11 22:17:53 +00:00
Marcus Boerger bf9f762b4d - MFH: add new test 2006-05-11 22:17:42 +00:00
Dmitry Stogov 1f41b288e9 Fixed bug #37306 (max_execution_time = max_input_time) 2006-05-11 22:10:31 +00:00
Ilia Alshanetsky b8c7ecc061 Fixed bug #37413 (Rejected versions of flex that don't work). 2006-05-11 22:04:51 +00:00
Edin Kadribasic bbf97549b8 Remove pecl includes (Steph), except pdo_odbc which will remain broke 2006-05-11 21:43:59 +00:00
Marcus Boerger 7a5240e846 - MFH missing bits and pieces of the partial sync with head
# This time i added:
# ZEND_FE_RESET_VARIABLE
# ZEND_FE_RESET_REFERENCE
# and dapted parser,compiler,executor,interfaces to handle these flags
# their purpose is to be able to pass whetehr foreach is done by ref to
# the current() handler so that it can error out in case it is not capable
# to comply to the requested return signature/protocol/semantics (weyp).
2006-05-11 21:07:39 +00:00
Marcus Boerger b636a534c1 - Drop second superflous zval_ptr_dtor in string arg parsing 2006-05-11 21:03:14 +00:00
Marcus Boerger 05273a73d8 - Fix test 2006-05-11 21:01:04 +00:00
Antony Dovgal 8ee1c45a3b fix test 2006-05-11 15:43:28 +00:00
Antony Dovgal 085e0fc51f fix segfault when passing objects where strings are expected 2006-05-11 15:10:36 +00:00
Seiji Masugata 9b05e15e8a fixed all mbstring setting information doesn't return in mb_get_info( ). 2006-05-11 14:42:12 +00:00
Antony Dovgal bc4e9efef7 add new test 2006-05-11 14:18:34 +00:00
Marcus Boerger 38ff4bba17 - MFH Add missing ZEND_API declarations 2006-05-11 08:11:45 +00:00
Marcus Boerger ac3c882bb6 - Use of E_RECOVERABLE_ERROR 2006-05-11 08:06:22 +00:00
Marcus Boerger f7776502b5 - MFH Fix error mode handling 2006-05-11 07:56:36 +00:00
Rasmus Lerdorf ed7ed1189b This spelling mistake finally annoyed me enough to fix it. 2006-05-11 03:47:55 +00:00
Antony Dovgal 37ed02b199 change it to be consistent with the others 2006-05-10 22:57:50 +00:00
Marcus Boerger 288da2242e - Fix tests 2006-05-10 22:46:16 +00:00
Marcus Boerger 23b97b2530 - Update tests after MFH 2006-05-10 22:38:35 +00:00
Marcus Boerger de9fa58e0b - No more ze1 2006-05-10 22:36:49 +00:00
Marcus Boerger 3746ccb627 - Hardcoded error mode was changed to 8191 2006-05-10 21:46:59 +00:00
Marcus Boerger 9745215cf8 - MFH tests 2006-05-10 21:19:37 +00:00
Rasmus Lerdorf 4df7ab403c Add input_filter hook call in getenv() 2006-05-10 21:19:32 +00:00
Marcus Boerger d76c516176 - Missing __ToString() sync 2006-05-10 21:13:22 +00:00
Marcus Boerger f16bdce284 - Enforece rule of disallowing throw in __toString() 2006-05-10 21:12:48 +00:00
Rasmus Lerdorf cbb11e018a Now that ext/filter is bundled, we should be defining these in one place 2006-05-10 21:10:45 +00:00
Marcus Boerger 5efe53c596 - MFH add E_RECOVERABLE as default 2006-05-10 20:00:26 +00:00
Marcus Boerger 0dacd6d5c0 - ze1 cleanup (bjori) /thx 2006-05-10 19:41:34 +00:00
Rob Richards 1048c9cd52 Synch with HEAD 2006-05-10 19:38:35 +00:00
Marcus Boerger 848c5c7695 - Missing __tostring() conversion snippets 2006-05-10 19:36:47 +00:00
Marcus Boerger 168c0ead9e - Missed my name 2006-05-10 19:20:34 +00:00
Frank M. Kromann 815d3169ba Fix win32 build 2006-05-10 18:32:50 +00:00
Andrei Zmievski 9e0e89c5cf Rename RegExIterator -> RegexIterator.
Also rename recursive one.
2006-05-10 16:50:57 +00:00
Rob Richards f064d19f40 - Update after api changes 2006-05-10 14:39:10 +00:00
Antony Dovgal f7eec29f84 fix tests 2006-05-10 14:04:52 +00:00
Antony Dovgal 8a03fc5ef3 add missing parts of E_RECOVERABLE merge 2006-05-10 14:04:18 +00:00
Antony Dovgal 0f93228cb7 add missing ZEND_API to the implementation 2006-05-10 14:00:36 +00:00
Antony Dovgal 4f37b2f354 nuke extra semi-colon 2006-05-10 13:49:27 +00:00
Ilia Alshanetsky 91bd50d1b0 Fixed bug #37394 (substr_compare() returns an error when offset equals
string length).
2006-05-10 13:07:15 +00:00
Rob Richards aa38b5572e Synch with HEAD
add readInnerXML, readOuterXML, readString, and setSchema functionality
  allow parser options to be passed when loading reader
  optimization: use xmlTextReader const functions for string properties
  add test
2006-05-10 12:04:46 +00:00
Andrey Hristov ac97b77ed9 Don't allocate 2 chunks of memory when one can fit. Reduces memory
fragmentation. There is one more place that fragments memory but it will
complicate the ongoing Unicode upgrade of mysqli so leaving it away for now.
2006-05-10 11:53:13 +00:00
Antony Dovgal 0881dbd101 MFH: fix #37392 (Unnecessary call to OCITransRollback() at the end of request) 2006-05-10 10:07:28 +00:00
Marcus Boerger 83310cba5b - MFH news 2006-05-10 09:27:23 +00:00
Andrei Zmievski ee68b99571 *** empty log message *** 2006-05-10 02:47:21 +00:00
Marcus Boerger edfe649c6b - MFH Constructors in interfaces 2006-05-10 01:23:55 +00:00
Marcus Boerger 43217a3225 i- ZE1_compat tests are no longer necessary 2006-05-10 00:41:23 +00:00
Marcus Boerger 3a3e310e2e - MFH: SplFileObject improvements
. FILE_OBJECT_READ_AHEAD: allow to read ahead
  . FILE_OBJECT_SKIP_EMPTY: allow to skip empty lines (includes read ahead)
  . FILE_OBJECT_READ_CSV:   allow to read as csv
2006-05-10 00:31:04 +00:00
Marcus Boerger 982822be93 - Fix iterators part and add tests 2006-05-10 00:29:42 +00:00
Marcus Boerger 9afb3e041b - Update after api changes
- MFH
  . ArrayIterator/ArrayObject: function lookup caches and array functions
  . Added RegExIterator, RecursiveRegExIterator
  . Added (full) caching support for CachingIterator
2006-05-10 00:03:38 +00:00
Marcus Boerger 77c1b56cd7 - Update after api changes 2006-05-10 00:00:13 +00:00
Marcus Boerger 11f26c2c2a - Tweak version check 2006-05-09 23:54:48 +00:00
Marcus Boerger 0de69fe97d - MFH pcre_get_compiled_regex_cache() support 2006-05-09 23:53:40 +00:00
Marcus Boerger 637a40423c - MFH as discussed
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
  . zend_get_error_exception()   -> zend_get_error_exception(TSRMLS_D)
  . added E_RECOVERABLE_ERROR
  . added ZEND_TOSTRING_FUNC_NAME
  . added __tostring function cache to zend_class_entry
  . added ZEND_NAMED_ME
  . modified ZEND_ME_MAPPING to support method flags
  . added ZEND_MN
  . method entries now use prefix "zim_" instead of "zif_"
  . drop EG(ze1_compatibility_mode)
  . changed cast handler, now without (int should_free):
    typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
  . changed get_iterator, now receives whether value is by ref:
    zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
  . added zend_objects_store_add_ref_by_handle
  . added zend_objects_store_del_ref_by_handle
  . convert_to_explicit_type(pzv, type)
2006-05-09 23:53:23 +00:00
Ilia Alshanetsky 57184454e9 Fixed bug #37376 (fastcgi.c compile fail with gcc 2.95.4). 2006-05-09 22:00:08 +00:00
Andrei Zmievski 5a8b4e72ce *** empty log message *** 2006-05-09 19:37:00 +00:00
Andrei Zmievski f9de2cc142 MFH 2006-05-09 18:29:26 +00:00
Georg Richter d2dd99ded5 removed unused macro parameter 2006-05-09 11:26:09 +00:00
Edin Kadribasic 0ca7a98800 Update news 2006-05-08 20:18:34 +00:00
Georg Richter d94467f7e8 moved zend_class_entry variables to mysqli.c 2006-05-08 16:19:43 +00:00
Brian France 39441f79e6 MFH: Add implementation of curl_multi_info_read 2006-05-08 15:29:28 +00:00
Andrey Hristov 818d2b7aee tweaks and optimizations
#tested on 32b and 64b
2006-05-08 15:06:51 +00:00
Ilia Alshanetsky 79ebfe382b Fixed memory leaks when working with cursors in PDO PostgreSQL driver. 2006-05-08 14:33:00 +00:00
Pierre Joye 3bad805e35 - more CS 2006-05-08 12:06:59 +00:00
Pierre Joye 4428076eae - MFH: #37360, bad gif size 2006-05-08 11:50:47 +00:00
Pierre Joye 570511c9b2 - CS (spaces > tabs) 2006-05-08 11:12:49 +00:00
Rasmus Lerdorf 65de977ea0 INSTALL_HEADERS takes absolute filenames there in the second arg.
This makes pecl/mailparse build again
2006-05-07 16:56:07 +00:00
Pierre Joye 52619b8427 - #37346, invalid colormap format 2006-05-07 16:37:40 +00:00
Ilia Alshanetsky 0423be06b5 Fixed bug #37348 (make PEAR install ignore open_basedir). 2006-05-07 16:32:40 +00:00
Marcus Boerger c018b83003 - MFH %v for s[np]printf 2006-05-07 12:40:17 +00:00
Edin Kadribasic 18eb480dd2 MFH: Added pg_field_table() as per req: #36750 2006-05-07 00:28:32 +00:00
Edin Kadribasic 12a5d2b547 Enable parallel build against Apache 2.2 libs and headers 2006-05-07 00:09:20 +00:00
Edin Kadribasic ff27860a66 Enable separate build dir for SAPIs, the same way it is possible for EXTENSIONs 2006-05-07 00:04:56 +00:00
Ilia Alshanetsky 7e8409de8c Fixed bug #37244 (Added strict flag to base64_decode() that enforces
RFC3548 compliance).
2006-05-06 22:47:14 +00:00
Ilia Alshanetsky 89e3ac9531 Creation of the 5.2 branch 2006-05-06 21:58:03 +00:00
SVN Migration 608baa409a This commit was manufactured by cvs2svn to create branch 'PHP_5_2'. 2006-05-05 15:49:42 +00:00
Michael Wallner 55f0daf65d - treat interfaces and classes gracefully in print_inh 2006-05-05 15:49:41 +00:00
Michael Wallner 78d11cbc70 - add print_inh (prints a very simple class tree, ie. extensible)
- add print_pi (prints property_info)
- add ____print_str (print strings binary safely, for hash keys etc)
2006-05-05 15:14:37 +00:00
Dmitry Stogov b096a5de17 Fixed bug #37313 (sigemptyset() used without including <signal.h>). (jdolecek) 2006-05-05 07:05:34 +00:00
Antony Dovgal 25de341259 plug a leak 2006-05-04 22:48:29 +00:00
Antony Dovgal ef0d7e3f58 MFH: several minor fixes: nuke compile warnings etc. 2006-05-04 19:00:11 +00:00
Sara Golemon 7e6beb9f28 Note addition of new class constants 2006-05-04 00:21:51 +00:00
Ilia Alshanetsky 5649f24524 Back to dev 2006-05-03 23:31:43 +00:00
Ilia Alshanetsky 87583528c6 go with 5.1.4 2006-05-03 23:30:02 +00:00
Sara Golemon 3c831fef01 News entry for exporting PDO::PARAM_EVT_* constants 2006-05-03 22:44:37 +00:00
Sara Golemon 91999f1175 mfh(r-1.129) Expose PARAM_EVT_* constants 2006-05-03 21:58:38 +00:00
Pierre Joye 3a7aee2472 - remove debug part
nota bene, there is still work in this area, but this is a start
2006-05-03 21:37:16 +00:00
Pierre Joye 1192667679 - add test for multipart POST
- also first example of the POST_RAW section
2006-05-03 21:35:26 +00:00
Pierre Joye 9e4283227d - add support for POST_RAW, allow to pass raw POST data
- add support for TEST_PHP_CGI_EXECUTABLE env variable, it is now possible
  to set both TEST_PHP_EXECUTABLE and CGI
2006-05-03 21:33:44 +00:00
Antony Dovgal 24f0701867 MFH: plug leak 2006-05-03 19:40:58 +00:00
Antony Dovgal 43db0fce03 more POST+array tests 2006-05-03 19:02:12 +00:00
Dmitry Stogov f03fe1c09d Fixed bug #37205 (incompatibility with mod_fastcgi) 2006-05-03 15:39:16 +00:00
Ilia Alshanetsky c10762e967 Prepare news file for release 2006-05-03 13:32:46 +00:00
Ilia Alshanetsky fd2726641b Revert previous optimization if preparation for 5.1.4 2006-05-03 13:32:10 +00:00
Dmitry Stogov 0c6f5f5810 Fixed bug #37291 (FastCGI now longer works with isapi_fcgi.dll) 2006-05-03 13:25:37 +00:00
Dmitry Stogov 79fd560e5e Fixed incompatibility with isapi_fcgi.dll 2006-05-03 13:19:57 +00:00
Dmitry Stogov efad37874b Fixed bug #37276 (problems witch $_POST array) 2006-05-03 11:24:29 +00:00
Pierre Joye dbf2a5c65c - document the --with-pdo-sqlite[=dir] 2006-05-03 11:12:54 +00:00
Rob Richards ed33d232e0 BFN
re-order news
2006-05-03 08:44:32 +00:00
Rob Richards f57c75112d Fix bug #37277 (cloning Dom Documents or Nodes does not work)
Proper fix for bug #36859
add test
2006-05-03 08:43:04 +00:00
Dmitry Stogov a34755e9cf MFH 2006-05-03 06:36:02 +00:00
Dmitry Stogov 7941dcf544 typo 2006-05-02 15:50:04 +00:00
Dmitry Stogov ab5a8b2ae3 Fixed possible crash in highlight_string() (proper place) 2006-05-02 15:49:26 +00:00
Ilia Alshanetsky e95addcbfa Attempt to increase smart_str performance through the use of larger
default buffers. Biased micro benchmarks show it makes sense :P
2006-05-02 13:52:24 +00:00
Dmitry Stogov 8d1cc50067 Fixed ossible crash in highlight_string(). 2006-05-02 07:19:00 +00:00
Wez Furlong 30f98ae77b set min pdo dep to 1.0.3, which will be the new pecl release 2006-05-02 02:43:11 +00:00
Wez Furlong 7614368f8a prep for pecl release 2006-05-02 02:32:40 +00:00
Wez Furlong c1555236c9 tweak for better compatibility when building as SCE.
(library order is important)
2006-05-02 00:59:22 +00:00
Marcus Boerger 6f1a0f67ff - Make SplTempFileObject work in 5.1 2006-05-01 16:02:07 +00:00
Wez Furlong 299fe2554f add note about ssl context options. 2006-05-01 01:10:33 +00:00
Wez Furlong 8f87235107 Add two new context options for ssl:
"capture_peer_cert" and "capture_peer_cert_chain"

If true, the peer certificate and peer certificate chain respectively will be
captured and made available in the ssl context variables "peer_certificate" and
"peer_certificate_chain" respectively.  The certificates are exposed as x509
certificate resources and can be inspected using the existing openssl extension
functions.

This allows applications to perform extended validation.
2006-04-30 23:43:46 +00:00
Marcus Boerger f3a123a9db - After 5.1.3 follows 5.1.4, 5.2 requires a new branch, preferable from
this point of development (ilia will do so)
2006-04-30 14:30:05 +00:00
Wez Furlong ea2037a2d3 fix PECL #6544 2006-04-30 01:42:53 +00:00
Wez Furlong 07e11dcc4d Fix #36632 2006-04-30 01:27:33 +00:00
Wez Furlong aa5dbc8c92 Fix #35552 2006-04-30 00:52:28 +00:00
Frank M. Kromann fa94d911df Revert patch for pdb files. No need to have it twice! 2006-04-29 14:33:46 +00:00
Frank M. Kromann 6ba807db50 Add new configure option --enable-pdb-files
This will generate .pdb files for debugging
2006-04-29 06:24:38 +00:00
Dmitry Stogov ff452441e2 Proper fix for bug #37205 2006-04-27 11:39:32 +00:00
Moriyoshi Koizumi 522ce80071 - MFH: fix bug #37176 (iconv_strpos() fails to find a string) 2006-04-27 00:50:54 +00:00
Dmitry Stogov e0beb7fc71 Revert wrong fix 2006-04-26 17:48:27 +00:00
Ilia Alshanetsky 0c54f6f72b Restore dev 2006-04-26 16:07:11 +00:00
Ilia Alshanetsky 3566fe4afd Remove soap cache news 2006-04-26 14:31:33 +00:00
Edin Kadribasic fc4614d1d2 BFN 2006-04-26 14:23:51 +00:00
Ilia Alshanetsky ca2efe468d Go with 5.1.3 2006-04-26 14:08:26 +00:00
Ilia Alshanetsky 7775550245 Prepare the news file for release 2006-04-26 13:56:57 +00:00
Dmitry Stogov bbda630ed9 Fixed bug #37205 (Serving binary content/images fails with "comm with server aborted" FastCGI err) 2006-04-26 11:08:10 +00:00
Edin Kadribasic af11e1d592 Correctly import external data (#33292) 2006-04-26 09:31:23 +00:00
Antony Dovgal d18cd00657 fix tests 2006-04-25 22:09:46 +00:00
Antony Dovgal 0a38d6bd8c remove nonexistent tag 2006-04-25 12:49:59 +00:00
Antony Dovgal 896a5216d7 fix possible substr_compare() crash
add new tests
2006-04-25 12:48:42 +00:00
Michael Wallner b1de3647cf -improve last entry 2006-04-25 08:43:29 +00:00
Antony Dovgal 90b3dadc4e fix #37191 (chmod takes off sticky bit when safe_mode is On) 2006-04-25 08:41:02 +00:00
Michael Wallner 1c02dff74a - Fixed bug #37192 (cc fails on hash_adler.c:32) 2006-04-25 08:34:25 +00:00
Dmitry Stogov 5b973c86ee iFixed compilation on Solaris 2006-04-24 09:53:57 +00:00
Andrei Zmievski c86e96db11 Typo. 2006-04-23 19:56:53 +00:00
Ilia Alshanetsky 033c07972f Fixed typos 2006-04-23 16:40:05 +00:00
Ilia Alshanetsky a1bbdf831c Fixed bug #37162 (wddx does not build as a shared extension).
#Patch By: jdolecek at NetBSD dot org
2006-04-23 16:02:05 +00:00
Antony Dovgal b81e20f8e8 bah.. no UEXPECT in this branch.. 2006-04-22 23:47:25 +00:00
Antony Dovgal 658b22ad6e add test for #37158 2006-04-22 23:46:42 +00:00
Antony Dovgal 2765fdfa46 BFN 2006-04-22 19:16:36 +00:00
Antony Dovgal ea53739d30 MFB: don't segfault if an exception has been thrown from the fetch handler 2006-04-22 19:10:53 +00:00
Wez Furlong 8663f1644d fix for #37158 2006-04-22 17:17:40 +00:00
Wez Furlong 64de59d9a7 avoid unterminated loop when closing the statement. 2006-04-22 16:35:18 +00:00
Ilia Alshanetsky ee103a7c39 Back to dev 2006-04-20 23:09:20 +00:00
Antony Dovgal 32872b157e there is no %v in 5_1 2006-04-20 22:49:20 +00:00
Ilia Alshanetsky 50e1a51e5c Prepare for RC3 2006-04-20 21:11:29 +00:00
Michael Wallner f7a6327728 - Fix reading stream filters never notified about EOF 2006-04-20 17:43:18 +00:00
Dmitry Stogov bdef85af21 Fixed bug #37138 (__autoload tries to load callback'ed self and parent) 2006-04-20 07:30:38 +00:00
Ilia Alshanetsky 09dec62672 Fixed tokenizer tests 2006-04-20 01:06:58 +00:00
Nuno Lopes 227ca46fb7 fix build with newer libtidy versions on windows
# first commit on php-src. whatch out :)
2006-04-19 21:47:20 +00:00
John Coggeshall 974dc0f5b4 Fixing static builds on windoze machines for our current lib version 2006-04-19 20:57:30 +00:00
Dmitry Stogov 68906dbe62 Cleaned up Andrei's patch for caching WSDL in process memory, added TTL and LIMIT for memory cache.
Memory cache is disblead by fefault because it is experemental and isn't tested enough. It can be enabled whit configuartion directive "soap.wsdl_cache = WSDL_CACHE_MEMORY" or "soap.wsdl_cache = WSDL_CACHE_BOTH" or derectly in SoapClent/SoapServer constructor: $ws = new SoapClient($wsdl, array("cache_wsdl"=>WSDL_CACHE_BOTH))
Disk and memory caches use the same TTL value - "soap.wsdl_cache_ttl".
Configuration directive "soap.wsdl_cache_limit" restricts the number of cached wsdl files in memory. Adding new files into full memory cache will delete oldest files from it.
Note that, each PHP process or thread uses it's own memory cache.
2006-04-19 10:48:54 +00:00
Antony Dovgal 9ea8d8dbf6 MFH: fix typo 2006-04-19 08:43:29 +00:00
Ilia Alshanetsky 7315288591 Restore dev so win32 snaps can build 2006-04-18 23:47:10 +00:00
Ilia Alshanetsky 1c0d8a536a Fixed bug #29476 (sqlite_fetch_column_types() locks the database forever). 2006-04-18 14:30:16 +00:00
Dmitry Stogov 349bcd7443 Fixed bug #37083 (Frequent crashs in SOAP extension with new WSDL caching code in multithread WS). (Andrei, Dmitry) 2006-04-18 13:07:59 +00:00
Dmitry Stogov d19c105819 Fixed SUN_LEN calculation 2006-04-18 06:59:19 +00:00
Dmitry Stogov 73e4913cca Fixed memory leaks 2006-04-18 06:58:43 +00:00
Ilia Alshanetsky 101d925baa Commit the actual fix 2006-04-18 00:31:45 +00:00
Ilia Alshanetsky 76419e13aa Fixed Bug #36872 (session_destroy() fails after call to
+  session_regenerate_id(true)).
2006-04-17 23:28:02 +00:00
foobar 5fd0994495 BFN 2006-04-17 22:14:32 +00:00
foobar 92da3229d4 MFH: Fixed bug #37103 (libmbfl headers not installed) 2006-04-17 22:13:56 +00:00
Sara Golemon 3ef88178e8 MFH(r-1.55) Fix 'soft line break' handling in convert.quoted-printable-decode 2006-04-17 19:26:04 +00:00
Andrei Zmievski cfaf6406d7 Some encodings were assumed to be default and, thus, were not made
persistent.
2006-04-17 16:08:08 +00:00
Dmitry Stogov 7330c32329 Fixed several bugs in new "caching WSDL in memory" code
Re-enabled disk cache
2006-04-17 13:16:02 +00:00
Ilia Alshanetsky 74672b86b4 Fixed a typo in the previous patch.
# Thanks Tony
2006-04-16 17:40:33 +00:00
Ilia Alshanetsky 79d8f014da Fixed bug #37045 (Fixed check for special chars for http redirects). 2006-04-16 16:54:49 +00:00
Antony Dovgal 29254a477d fix #37062 (compile failure on ARM architecture)
if ARM is big endian - don't define IEEE_LITTLE_ENDIAN
2006-04-15 12:54:14 +00:00
Antony Dovgal f233299f96 make it consistent with the other ones =) 2006-04-14 21:06:11 +00:00
Antony Dovgal 522a5e128f ok, let's make this test to work on all systems
currently it fails at least on Linux PPC and Solaris, probably because of different strncmp/strncasecmp implementations.
2006-04-14 20:30:11 +00:00
Marcus Boerger 011266f7e1 - MFH Fix properties access to children() result 2006-04-14 15:19:45 +00:00
Antony Dovgal 7c42ddb8e0 fix #37077 (stream_socket_server() leaks when the port is not allowed) 2006-04-14 10:00:55 +00:00
Dmitry Stogov 874a22101f Fixed calling header functions through __call() 2006-04-14 09:11:29 +00:00
Dmitry Stogov 67abcb58c3 Fixed bug #36513 (comment will be outputed in last line) 2006-04-13 13:48:28 +00:00
Antony Dovgal af429910ef AIX #define's accept as naccept
add a workaround
2006-04-13 13:21:43 +00:00
Antony Dovgal 65fcbcbdc0 fix bug #37061 (curl_exec() doesn't zero-terminate binary strings) - we get the data length from cURL, so it's binary safe.
fix leak appearing when re-using curl handle
2006-04-13 11:26:10 +00:00
Dmitry Stogov f897cff480 Fixed bug #37054 (SoapClient Error Fetching http headers) 2006-04-13 08:18:36 +00:00
Dmitry Stogov 851801a795 Fixed test 2006-04-13 06:04:28 +00:00
Antony Dovgal 46e0ede425 fix test title 2006-04-12 22:20:52 +00:00
Johannes Schlüter 9047558fe3 - MFH: Fix bug #37060 (Type of retval of Countable::count() is not checked) 2006-04-12 19:30:52 +00:00
Antony Dovgal 5751903b1b fix #37059 (oci_bind_by_name() doesn't support RAW and LONG RAW fields)
add tests
2006-04-12 19:21:35 +00:00
Antony Dovgal 2d2f1cf0c6 oops.. I didn't want to commit this.. 2006-04-12 18:01:35 +00:00
Antony Dovgal 2e461783d0 correct fix for bug #37055 2006-04-12 17:59:32 +00:00
Antony Dovgal a6e4f11cb1 add test 2006-04-12 15:18:38 +00:00
Antony Dovgal 195271dd23 fix #37057 (xmlrpc_decode() may produce arrays with numeric strings which are unaccessible) 2006-04-12 15:13:57 +00:00
Antony Dovgal bac1fda336 fix #37055 (incorrect reference counting for persistent OCI8 connections) 2006-04-12 13:37:51 +00:00
Antony Dovgal d23c1d763b fix #37053 (html_errors with internal classes produces wrong links) 2006-04-12 12:49:39 +00:00
Dmitry Stogov f23d01ad4d Fixed bug #37046 (foreach breaks static scope) 2006-04-12 11:37:50 +00:00
Dmitry Stogov 6e762e648c Fixed bug #37002 (Have to quote literals in INI when concatenating with vars) 2006-04-12 09:51:54 +00:00
Andrei Zmievski 6a4faee367 MFH 2006-04-11 21:33:46 +00:00
Antony Dovgal 47cb31b7df add default timezone to the tests 2006-04-11 19:34:14 +00:00
Derick Rethans 4043f77e36 - MFH: Fixed bug #37017 (strtotime fails before 13:00:00 with some time zones
identifiers). (Derick)
- MFH: Fixed bug #36988 (mktime freezes on long numbers). (Derick)
- MFH: Implemented better error and warning handling that is also used for the
  date_parse() function.
- MFH: Fixed problems with "T" in front of a time string was seen as a time
  zone string.
- MFH: Fixed a problem were 5 and 6 character timezone abbreviations where not
  correctly parsed.

Experimental support (All MFH):
- Added the date_parse() function that returns a parsed date/time string
  including warnings and errors.
- Added the timezone_name_from_abbr() function that exposes the guessing
  mechanism that tries to find a timezone identifier from a timezone
  abbreviation and GMT offset.
2006-04-11 18:03:52 +00:00
Ilia Alshanetsky 4bab5226b2 Fixed test 2006-04-10 23:48:10 +00:00
Marcus Boerger 45b64e7a99 - Coverity issue 59 2006-04-10 23:23:09 +00:00
Marcus Boerger 6ea747d8e4 - MFH Iterators from overloaded objects are allowed to not have keys... 2006-04-10 23:16:29 +00:00
Marcus Boerger 6c89fd2d63 - MFH Coverity fix 49 2006-04-10 22:49:29 +00:00
Marcus Boerger 8bbf3a00dc - MFH Fix potenbtioal SEGV 2006-04-10 19:51:55 +00:00
Marcus Boerger 3438469b84 - MFH Fix condition 2006-04-10 18:23:24 +00:00
Dmitry Stogov 07d7750487 Fixed bug #36908 (wsdl default value overrides value in soap request). 2006-04-10 13:29:48 +00:00
Dmitry Stogov fabd954200 Fixed test 2006-04-10 12:50:02 +00:00
Dmitry Stogov 64e7be9b5a Fixed possible crash in interactive mode 2006-04-10 12:26:53 +00:00
foobar 12346d64eb MFH: fix typo 2006-04-10 12:17:36 +00:00
foobar 276171f871 MFH: - Determine the shared/link lib suffixes in one macro. 2006-04-10 12:16:17 +00:00
foobar 22a8c3113b MFH: - Fixed bug #36909 (ld: Undefined symbols: _lchown) 2006-04-10 11:56:18 +00:00
foobar 8cd558757f MFH: - Silence some PCRE compile warnings 2006-04-10 11:55:14 +00:00
Dmitry Stogov c261351a97 ZTS fix 2006-04-10 10:11:06 +00:00
foobar 3110d15a00 update credits 2006-04-10 09:49:18 +00:00
foobar 5241090585 Fix NEWS 2006-04-10 09:41:45 +00:00
Andrei Zmievski 06ef71fe3d Speed up SoapClient/SoapServer constructors by caching WSDL structures
in memory. All WSDL files will be cached, unless turned off via an
option to the constructor.
2006-04-09 23:35:51 +00:00
Edin Kadribasic 1e33c4cc85 Fixed bug #36935 2006-04-09 23:14:47 +00:00
Ilia Alshanetsky 8afc859b55 *** empty log message *** 2006-04-09 17:57:27 +00:00
Wez Furlong f83cfb77bf be aware of PDO_ATTR_EMULATE_PREPARES 2006-04-09 08:17:50 +00:00
Wez Furlong b9f85f37cc Fixed Bug #36602: persistent connections don't work with MySQL 5.0.3+.
Fixed PECL Bug #6262; correctly fallback to emulated statements
when the server version is too old.

Also include code to default to using emulated prepared statements, as these
can take advantage of the query cache.  Since it's a bit late in the release
process to spring this on the masses, the default has not been changed.  The
code is included so that it doesn't get lost.
2006-04-09 08:11:31 +00:00
Wez Furlong 687e6ffc58 Add "ATTR_EMULATE_PREPARES" general attribute to replace the custom
attributes employed by mysql and postgres drivers.
No functional change.
2006-04-09 08:05:01 +00:00
Wez Furlong bb5f3aa012 This completes the fix for PECL #5827; we need to gobble up result sets in the
stmt dtor too.
2006-04-09 06:49:07 +00:00
Wez Furlong 0f4137fbd9 fix for PECL Bug #5827.
We're responsible for gobbling up supplemental result sets in closeCursor()
(which is what PDO does for us if we didn't implement our own closer routine).
2006-04-09 06:41:42 +00:00
Andrei Zmievski 9e5655387a MFH 2006-04-08 17:53:11 +00:00
Antony Dovgal e8270edf9d fix memory corruptions and leaks when cloning ArrayObjects and ArrayIterators 2006-04-07 22:53:23 +00:00
Ilia Alshanetsky 5151efc2aa RC3 2006-04-07 14:21:13 +00:00
Pierre Joye 3511649498 - revert last commit, something else went wrong 2006-04-07 14:04:36 +00:00
Dmitry Stogov e9d452b9a9 Optimization 2006-04-07 13:57:27 +00:00
Dmitry Stogov 79b3d79a95 CGI anf FastCGI assume $_SERVER and $_ENV have the same values,
so we don't need construct the same arrays twich and may just copy it
2006-04-07 13:45:23 +00:00
Pierre Joye 670ed5d93f - fix leak when an error occured in socket_read, free tmpbuf 2006-04-07 13:33:55 +00:00
Dmitry Stogov 8c40d605e4 Removed unnecessary copying 2006-04-07 12:39:43 +00:00
Dmitry Stogov ead7652457 We don't need setup the same time-out two times. 2006-04-07 11:44:03 +00:00
Dmitry Stogov 6624682dff MFH:
- Allowed storing NULL pointers in HashTable
- Optimized zend_hash_reverse_apply()
2006-04-07 10:06:21 +00:00
Ilia Alshanetsky 8625b42162 Adjusted credits file so that it appears properly on phpinfo() 2006-04-07 03:41:06 +00:00
Andrei Zmievski 4033bfbda0 I guess we only need this on HEAD. 2006-04-06 21:35:27 +00:00
Andrei Zmievski 3d7abc2931 *** empty log message *** 2006-04-06 21:11:12 +00:00
Andrei Zmievski d288f66c7c Fix a bug that would not fill in the fifth argument to preg_replace()
properly, if the variable was not declared previously.
2006-04-06 21:10:45 +00:00
Antony Dovgal ad7768ee63 fix #36981 (SplFileObject->fgets() ignores max_length) 2006-04-06 19:01:56 +00:00
Ilia Alshanetsky 8f7319a49f Fixed safe_mode check for source argument of the copy() function. 2006-04-06 02:39:55 +00:00
Antony Dovgal 40e25b5ad7 MFH: workaround for problem on Solaris: shell tries to parse "for i in ;" and fails 2006-04-05 20:22:21 +00:00
Antony Dovgal 52296072e0 add new tests 2006-04-05 14:09:01 +00:00
Antony Dovgal 783dd9f0ff BFN 2006-04-05 14:08:18 +00:00
Antony Dovgal 7522fb7272 add missing defines to .w32 2006-04-05 14:07:40 +00:00
Antony Dovgal 569ce842f1 fix #36934 (OCILob->read() doesn't move internal pointer when reading 0's) 2006-04-05 14:06:00 +00:00
Antony Dovgal c0592d17e9 add test 2006-04-05 12:29:21 +00:00
Georg Richter 793d0ab719 fixed bigint conversion errors (windows) 2006-04-05 12:17:33 +00:00
Georg Richter 0944a47107 fixed bigint conversion on windows platforms 2006-04-05 12:17:08 +00:00
Antony Dovgal e25a1dccac fix #36944 (strncmp & strncasecmp do not return false on negative string length) 2006-04-05 11:36:13 +00:00
Ilia Alshanetsky f0cf877a81 Fixed bug #36957 (serialize() does not handle recursion). 2006-04-05 02:28:06 +00:00
Marcus Boerger c58e1fa5be - MFH
. Fixed bug #36941 (ArrayIterator does not clone itself)
  . Fixed SEGV when ArrayObject/Iterator use reference to self
  . Added tests
2006-04-04 19:53:21 +00:00
Frank M. Kromann 5ccfa591b7 Fix #33694 invalid sql or timeouts makes it impossible to reuse persistent connections 2006-04-04 18:49:12 +00:00
Antony Dovgal 0f510a6a95 #ifdef new functions and use their bodies to make PECL extensions compile with PHP < 5.1.3
(as was agreed with Ilia)
2006-04-03 14:59:30 +00:00
Ilia Alshanetsky 3edb5a8b6d Fixed an unlikely, but possible memory leak. 2006-04-03 13:46:11 +00:00
Antony Dovgal bace0def1e fix spelling in error messages:
greater/less thEn -> greater/less thAn
2006-04-03 09:14:33 +00:00
Georg Richter b97b088800 fixed stmt property container and required status for error properties 2006-04-03 05:48:50 +00:00
Ilia Alshanetsky 46ba651680 MFH:
Removed extra space in the Content-Type header for logos
Simplified stderr error reporting in apache sapi.
2006-04-02 17:58:17 +00:00
Georg Richter f8e6ffee30 Added additional information for compiled header files. 2006-04-02 09:40:19 +00:00
Antony Dovgal 9a59df13cc fix segfault when assigning value by ref and add test
(I consider it's wrong that we can't do it, but we shouldn't segfault anyway)
2006-04-01 19:13:04 +00:00
Antony Dovgal 8ccdceb4db fix compile failure with old GCC (see bug #36931) 2006-03-31 11:11:12 +00:00
Marcus Boerger ea9487249b - Make readable 2006-03-30 21:57:28 +00:00
Marcus Boerger 193ae05edd - MFH Add tests 2006-03-30 21:47:21 +00:00
Antony Dovgal 0fab5aacce fix compilation on AIX 2006-03-30 21:39:01 +00:00
Antony Dovgal 7fbb54f55c nuke compile warning 2006-03-30 21:10:23 +00:00
Antony Dovgal b6c9363f73 fix tests 2006-03-30 20:43:39 +00:00
Antony Dovgal 14aef92b2f fix build: there is no TSRMLS_CC in this function 2006-03-30 19:58:18 +00:00
Ilia Alshanetsky 7385433f34 Back to dev 2006-03-30 19:40:16 +00:00
Ilia Alshanetsky 0e07f0b117 Go with RC2 2006-03-30 19:19:20 +00:00
Ilia Alshanetsky 4aece8077c Fixed XSS inside phpinfo() with long inputs. 2006-03-30 19:16:12 +00:00
Marcus Boerger 867f89e575 - MFH Return NULL instead of '' if node does not exist 2006-03-30 17:37:50 +00:00
Antony Dovgal 62ce6717ad fix #36922 (missing MYSQLI_REPORT_STRICT constant in userspace) 2006-03-30 11:21:51 +00:00
Antony Dovgal ad746130ad fix typo 2006-03-29 16:29:53 +00:00
Antony Dovgal 59b8592c8c fix bug #36898 (__set() leaks in classes extending internal ones)
Added:
ZEND_API void zend_object_std_init(zend_object *object, zend_class_entry *ce TSRMLS_DC)
ZEND_API void zend_object_std_dtor(zend_object *object TSRMLS_DC)

to initialize and destroy zend_object structs
2006-03-29 14:28:43 +00:00
Dmitry Stogov 697c652001 Support for zend-myltibyte 2006-03-29 10:39:20 +00:00
Antony Dovgal eab2f690fd fix skip condition 2006-03-28 23:15:40 +00:00
Antony Dovgal 1fa58ec003 initialize bucket #0 with nulls (normally it shouldn't be used at all, but if it is - we don't want any memory issues, do we?) 2006-03-28 21:58:01 +00:00
Antony Dovgal 08e6fded56 prevent possible NULL dereference 2006-03-28 20:19:44 +00:00
Antony Dovgal cfbcb43d63 fix #36897 (debug_print_backtrace() doesn't return void but array(0) {}) 2006-03-28 19:43:21 +00:00
Wez Furlong 6387d83a05 add a test case for bug 35671 2006-03-28 16:47:35 +00:00
Ilia Alshanetsky 77acc692fd Fixed bug #36886 (User filters can leak buckets in some situations). 2006-03-28 16:01:04 +00:00
Antony Dovgal ea22696fb9 fix tests 2006-03-28 09:12:45 +00:00
Antony Dovgal 6dc42ef117 fix #36851 (Documentation and code discrepancies for NULL data) 2006-03-28 09:12:18 +00:00
Yasuo Ohgaki cdbe8b4fd8 reenable pg_execute E_WARNING 2006-03-28 00:28:02 +00:00
Ilia Alshanetsky 4ca3df56d3 Check 2nd parameter of tempnam() against path components. 2006-03-27 23:40:41 +00:00
Antony Dovgal a93bd9d493 fix #36878 (error messages are printed even though an exception has been thrown) 2006-03-27 22:07:38 +00:00
Wez Furlong c5df14364b Fix for #36342; ODBC won't let you bind variables by buffer after "long"
columns.

We simply add a flag that indicates if we've seen any long columns and will
continue to bind the columns the slow way.

While we're at it, increase the maximum length of the column names that we can
handle.
2006-03-27 21:04:12 +00:00
Wez Furlong fb7d5bd780 The fix for #35332 caused #35671 (and thus PECL #6504).
Partially back out that fix and introduce an extra optional step for drivers to
canonicalize the "name" that is used for registering parameters.
2006-03-27 20:51:01 +00:00
Antony Dovgal 2030a7a2ed fix #36869 (memory leak in output buffering when using chunked output) 2006-03-27 08:26:10 +00:00
Dmitry Stogov cde55c9223 Fixed meory leak in case of unknown pragma 2006-03-27 08:09:18 +00:00
Andrei Zmievski 0dded18b33 On Mac OSX, our extensions are actually "bundles" and should not have
.dylib extension. Read this:

http://www.sm.luth.se/~alapaa/file_fetch/unixcdbookshelf/mac/ch05_03.htm
2006-03-27 04:59:36 +00:00
Yasuo Ohgaki 82376269fd remove pg_execute() E_WARNING error when query plan is not defined 2006-03-27 02:59:55 +00:00
Andrey Hristov 0b02327267 kill the left unused variable 2006-03-26 21:10:13 +00:00
Andrey Hristov dfd5b4fbf4 remove unnecessary memcpy, cast directly 2006-03-26 21:08:41 +00:00
Ilia Alshanetsky a33d64e7b6 Fixed bug #36857 (Added support for partial content fetching to the HTTP
streams wrapper).
2006-03-26 17:12:05 +00:00
Marcus Boerger a824bcf41d - MFH: Make IteratorIterator base of most SPL iterators 2006-03-26 02:25:03 +00:00
Marcus Boerger 7b70ca475f - Fix docu 2006-03-26 02:24:33 +00:00
Seiji Masugata bf4ae10c36 fixed compiler warning. 2006-03-26 02:19:50 +00:00
Antony Dovgal d085b37f66 fix #36859 (DOMElement crashes when calling __construct when clone'ing) 2006-03-26 00:23:25 +00:00
Georg Richter 65d704cb7c fix and testcase for bug #36745 2006-03-24 12:10:39 +00:00
Antony Dovgal bf3a7e12e1 add new tests 2006-03-24 12:08:53 +00:00
Georg Richter f8183e2e97 fixed minor problems (thx to tony) 2006-03-24 10:58:52 +00:00
Georg Richter b3a437fcc4 Fix for bug #36802 (server crashes with invalid/not opened connections)
Added status to mysqli_resource:
		MYSQLI_STATUS_UNKNOWN
		MYSQLI_STATUS_CLEARED (for future use)
		MYSQLI_STATUS_INITIALIZED (after mysqli_init and mysqli_stmt_init)
		MYSQLI_STATUS_VALID (for valid objects)
	removed valid flag
	changed MYSQLI_FETCH_RESOURCE
		added last parameter __check which specifies the status
2006-03-24 09:32:24 +00:00
Dmitry Stogov 9e26f6c213 Fixed SoapFault::getMessage() 2006-03-24 08:45:54 +00:00
Marcus Boerger ed43fd9b3b - My eyes don't hurt anymore 2006-03-23 21:28:06 +00:00
Marcus Boerger fe1c2cfc0f - MFH
. spl_autoload_register() return bool to denote success/failure
  . spl_autoload_unregister() acept any callable
2006-03-23 19:55:16 +00:00
Antony Dovgal 1ad4dd8795 return FALSE if driver doesn't support quoting (this is what docu says)
also fixed PECL bug #6365
2006-03-23 19:01:46 +00:00
Ilia Alshanetsky 3b1cb0e500 Added myself to PDO and PDO_MySQL credits
Added Wez to PDO_MySQL credits
Added Tony to Q&A team credits
Regenerated the credits file
2006-03-23 18:36:47 +00:00
Antony Dovgal 5f80bcaf26 add missing skipif sections 2006-03-23 15:03:27 +00:00
Antony Dovgal e40df39518 fix typos 2006-03-23 14:56:12 +00:00
Marcus Boerger 041e7470b1 - Initialized callable_name if present 2006-03-23 13:14:55 +00:00
Marcus Boerger 1440bb5c7b - MFH Add new test 2006-03-23 12:21:40 +00:00
Marcus Boerger 4b4d61952f - MFH: Add new test 2006-03-23 11:57:34 +00:00
Marcus Boerger 660956b514 - Add missing bug title and synch with other tests 2006-03-23 11:48:59 +00:00
Dmitry Stogov 87ae2460d1 Fixed possible memory corruption 2006-03-23 11:42:32 +00:00
Marcus Boerger dbe881d9c2 - Fix build 2006-03-23 10:44:39 +00:00
Dmitry Stogov cb3a53db83 Cleanup 2006-03-23 10:19:30 +00:00
Dmitry Stogov 0c1b4f45eb Allowed '-b' with UNIX sockets:
-b <hostname>:<port_number>
  -b <port_number>
  -b <unix_socket_path>
2006-03-23 10:15:01 +00:00
Pierre Joye c4db88563f - Fixed fetching of string value bigger than 128bytes when no options
are used
2006-03-23 01:24:36 +00:00
Antony Dovgal 1ce8546cd1 fix leak 2006-03-22 23:12:03 +00:00
Antony Dovgal 09fcf3162c add test 2006-03-22 23:10:59 +00:00
Antony Dovgal f7ce1d6260 prevent segfault when exception is thrown from Countable::count() 2006-03-22 22:05:51 +00:00
Antony Dovgal 32f611097f fix #36825 (Exceptions thrown in ArrayObject::offsetGet cause segfault)
fix similar issue in offsetExists()
remove redundant semicolons
2006-03-22 21:56:40 +00:00
Antony Dovgal 8a58105f42 MFH: use set_time_limit(), this test takes forever on AIX 2006-03-22 19:27:47 +00:00
Antony Dovgal 6c101d6400 fix #36820 (Privileged connection with an Oracle password file fails) 2006-03-22 09:45:39 +00:00
Marcus Boerger 7b7717d196 MFH:
- Drop --no-prefix as disables --prefix which we do for http://gcov.php.net
# If you need/want this edit your makefile or provide a LTP_GENHTML export
# of your need when running buildconf
2006-03-21 18:17:15 +00:00
Antony Dovgal f9835c3786 change oci_field_type() to return VARCHAR2 instead of VARCHAR
(fixes feature request #36800)
2006-03-21 15:47:31 +00:00
Ilia Alshanetsky d76e149f0e Fixed bug #36802 (mysqli_set_charset() crash with a non-open connection). 2006-03-21 15:35:28 +00:00
Antony Dovgal 7019b978a0 reimplement php_oci_lob_read() and fix PECL bug #5995
now the function dosn't try to read data by blocks, as this is nearly impossible
to do with Unicode and regular LOBs in the same time
2006-03-21 15:06:50 +00:00
Dmitry Stogov 1122f647d2 Fixed compatibility with auto_globals_jit 2006-03-21 12:26:57 +00:00
Dmitry Stogov bafba669ad Fixed bug #36721 (The SoapServer is not able to send a header that it didn't receive) 2006-03-21 12:04:55 +00:00
Dmitry Stogov 658ac96cfa Fixed bug #36809 (__FILE__ behavior changed) 2006-03-21 08:49:42 +00:00
Rui Hirokawa e8d320dd77 MFH 2006-03-21 07:56:28 +00:00
Dmitry Stogov 8d012d041f Fixed bug #36749 (SOAP: 'Error Fetching http body' when using HTTP Proxy) 2006-03-21 07:22:59 +00:00
Rui Hirokawa 85019bf450 MFH. 2006-03-21 02:20:15 +00:00
Rui Hirokawa fa3173bec3 *** empty log message *** 2006-03-21 02:10:55 +00:00
Rui Hirokawa 6912dab9eb @added possible encoding attack detection by mb_get_info('illegalchars'). 2006-03-21 01:58:27 +00:00
Ilia Alshanetsky 79e7432c97 Fixed bug #36689 (Removed arbitrary limit on the length of syslog messages). 2006-03-21 00:59:08 +00:00
Antony Dovgal b2bbaca8e8 shutdown syslog module before freeing basic_globals 2006-03-20 23:32:58 +00:00
Antony Dovgal f789f0e384 .. and add missing #ifdef 2006-03-20 23:06:00 +00:00
Antony Dovgal 3309d14af2 fix wrong mshutdown func params 2006-03-20 23:04:30 +00:00
Antony Dovgal edbfb9c2c7 fix #36808 (syslog ident becomes garbage between requests) 2006-03-20 23:03:11 +00:00
Antony Dovgal 6aaf510bf0 MFH: fix #36741 (userstreams testcase have off-by-one error on fseek()) 2006-03-20 22:09:11 +00:00
Dmitry Stogov 608c3207a6 Removed unreachable code 2006-03-20 15:13:41 +00:00
Antony Dovgal b5001f5383 MFH: fix buffer overrun 2006-03-20 14:10:35 +00:00
Antony Dovgal afd781a09a MFH: initialize retval 2006-03-20 13:54:16 +00:00
Dmitry Stogov 110021f4c7 Fixed bug #36749 (SOAP: 'Error Fetching http body' when using HTTP Proxy) 2006-03-20 10:36:55 +00:00
Dmitry Stogov d355704998 Fixed register_argc_argv behavior. Now it behave in the same way as before in all combinations with register_globals, register_long_arrays, variables_order and auto_globals_jit. 2006-03-20 10:15:02 +00:00
Antony Dovgal ef1f36e2c1 first check stream for NULL, then dereference 2006-03-19 22:33:10 +00:00
Antony Dovgal 90d7fbe798 MFH: make the code cleaner 2006-03-19 22:11:36 +00:00
Marcus Boerger 4651f79ed5 - Missing skipif 2006-03-19 18:25:51 +00:00
Ilia Alshanetsky 4ccd89d147 Properly calculate the size of the result array. 2006-03-19 17:35:36 +00:00
Michael Wallner 5a49926c38 - add comitters name 2006-03-19 15:19:08 +00:00
Michael Wallner cf01cff2e5 - Fixed Apache2 SAPIs header handler modifying header strings. 2006-03-19 15:18:20 +00:00
Michael Wallner 23b8ce3876 - fix php_apache_sapi_header_handler() modifying sapi_header
# already taken care of in apcache1 sapi
2006-03-19 14:54:53 +00:00
Antony Dovgal 91f4b380d6 fix several leaks in date_sun*() functions 2006-03-18 23:43:48 +00:00
Antony Dovgal 5c7c11c41d MFH: check stream for NULL before writing to it
remove unnecessary semicolons
2006-03-18 22:24:05 +00:00
Antony Dovgal 4e75cd5548 Added support for BINARY_DOUBLE and BINARY_FLOAT to PDO_OCI and OCI8 (also fixes bug #36764) 2006-03-18 22:06:31 +00:00
Marcus Boerger fa922fb51c - MFH Fix seek/eof issue in temp streams 2006-03-18 19:57:00 +00:00
Rob Richards 2ea6d46e4f BFN 2006-03-18 11:47:05 +00:00
Rob Richards aaec067578 Fixed bug #36756 (DOMDocument::removeChild corrupts node)
add test
2006-03-18 11:44:49 +00:00
Antony Dovgal 7731dc9421 fix #36727 (segfault in pdo_pgsql bindValue() when no parameters are defined) 2006-03-17 22:15:57 +00:00
Dmitry Stogov 63b3f5c041 Eliminated unnecessary getcwd() syscall 2006-03-17 10:42:31 +00:00
Antony Dovgal 652d77eca4 fix #36743 (In a class extending XMLReader array properties are not writable) 2006-03-17 10:15:58 +00:00
Dmitry Stogov 76a7240d70 Optimized FastCGI SAPI check. Check for ini options only once. 2006-03-17 09:32:30 +00:00
Dmitry Stogov 55159796b0 Allowed 'auto_globals_jit' work together with 'register_argc_argv' 2006-03-17 08:58:51 +00:00
Dmitry Stogov d82462485e FIX: For some reason SIGSEGV handler wasn't set, but was restoring. Now all SIGSEGV related code is commented. 2006-03-17 08:47:41 +00:00
Dmitry Stogov c31c984365 Optimization of module unloading (temporary modules can be only in the end) 2006-03-17 08:34:16 +00:00
Ilia Alshanetsky 6fd71dbbe9 Allow PDO_MYSQL_ATTR_DIRECT_QUERY to be set via constructor
Allow getAttribute() to fetch MySQL specific attributes.
Eliminate unnecessary auto-commit call on connect.
2006-03-17 00:15:09 +00:00
Marcus Boerger 7c14d86dc3 - Fix test 2006-03-16 00:39:50 +00:00
Dmitry Stogov eacb27d2da Fixed Bug #36614 (Segfault when using Soap) 2006-03-15 16:13:18 +00:00
Ilia Alshanetsky 92ba7cccad Fixed memory leak on unused bind var. 2006-03-15 15:25:50 +00:00
Dmitry Stogov 79983ce0ce Fix: incorrect string length passed 2006-03-15 14:12:26 +00:00
Dmitry Stogov 6f76b17079 Added E_STRICT warning in case of calling non-static method from incompatible context (this feature is staying for BC with php-4). 2006-03-15 11:12:45 +00:00
Dmitry Stogov 7865dfb5b8 Eliminated run-time constant fetching for TRUE, FALSE and NULL 2006-03-15 09:04:36 +00:00
Dmitry Stogov 056bea6de7 Fixed "zend_vm_gen.php --without-specializer" 2006-03-15 08:06:28 +00:00
Frank M. Kromann c6b8c26cdf Fix Win32 compilation. 2006-03-14 18:07:51 +00:00
Georg Richter 829642a0b7 fixed a 64-bit problem reported by Pierre 2006-03-14 15:53:16 +00:00
Dmitry Stogov 98bacb0e21 Fixed bug #35988 (Unknown persistent list entry type in module shutdown) 2006-03-14 15:16:07 +00:00
Antony Dovgal ef3d879315 MFH: add brackets and clarity 2006-03-14 15:15:22 +00:00
Ilia Alshanetsky 0a076b11df Fixed offset/length parameter validation in substr_compare() function. 2006-03-14 14:55:13 +00:00
Dmitry Stogov 9d6e4964a1 Fixed bug #36568 (memory_limit setting on win32 has no effect) 2006-03-14 14:19:00 +00:00
Dmitry Stogov 161ae714ae zend_hash_apply() doesn't use ZEND_HASH_APPLY_... macros 2006-03-14 11:24:45 +00:00
Edin Kadribasic a8dbb0ded6 Be more verbose in phpinfo() output 2006-03-14 10:49:18 +00:00
Marcus Boerger 0bcd459300 - bug #36625 fix 2006-03-13 22:56:20 +00:00
Marcus Boerger a371a8c153 - Add missing file extension 2006-03-13 22:55:27 +00:00
Pierre Joye 01479757e3 - #36697, Transparency is lost when using imagecreatetruecolor 2006-03-13 21:56:38 +00:00
Ilia Alshanetsky 80ea07d30c Added overflow checks to wordwrap() function. 2006-03-13 14:37:10 +00:00
Edin Kadribasic c69f100d0e Fixed build 2006-03-13 11:37:51 +00:00
Dmitry Stogov ad10a538ee Optimized cleanup loops on request shutdown 2006-03-13 11:13:42 +00:00
Dmitry Stogov d21669fc80 Fixed realpath() cache for main script with FastCGI SAPI 2006-03-13 09:35:45 +00:00
Marcus Boerger 9e90d5b3c0 - Fix news 2006-03-13 00:03:22 +00:00
Marcus Boerger 0add197ec8 - MFH:
- Fix ReflectionParameter
  . Reintroduce getClass()
  . Change getDeclaringClass() to return what it suggests
  . (inactive but tested) Add getDeclaringFunction()
  . (inactive but tested) Add getPosition()
- Fix tests accordingly
# This also fixes Bug #36687 ReflectionParameter::getDeclaringClass returns
# wrong result
2006-03-12 17:22:34 +00:00
Ilia Alshanetsky 1c340d515d var news 2006-03-12 16:54:13 +00:00
Ilia Alshanetsky e7f6a3fab2 As per agreement during PDM, remove the E_STRICT deprecation notice from
"var".
2006-03-12 16:52:18 +00:00
Marcus Boerger e16bba12b1 - Prefix test names
- Add missing skipif
2006-03-12 12:38:25 +00:00
Rui Hirokawa 2e3ae2f5c2 MFH 2006-03-12 07:54:42 +00:00
Marcus Boerger 06d235fbf1 - MFH Fix writing faillog with redirected tests 2006-03-11 18:13:37 +00:00
Marcus Boerger 941d86a204 - MFH Fix test results with redirected tests 2006-03-11 17:58:24 +00:00
Marcus Boerger b80f9567d5 - Load list of extensions to test from php that is being tested rather than
from php running the tests
2006-03-11 16:37:53 +00:00
Georg Richter e13e2fe9ba fix for MySQL 5.1 (see http://bugs.mysql.com/?id=16144) 2006-03-11 11:16:03 +00:00
Marcus Boerger 79a968b21e - Fix 2006-03-10 22:18:25 +00:00
Brian France 6c4e9d30b9 MFH:
for the primary file only lookup the real file path and
        add it to the included_files list if already opened
        otherwise it will get opened and added to the included_files list in zend_execute_scripts
2006-03-10 18:19:29 +00:00
Pierre Joye 0ebab9d495 - #36686, do not be quiet with the extern GD 2006-03-10 18:07:27 +00:00
Seiji Masugata 61f7dc1396 fixed different value was returned in mb_get_info. 2006-03-10 16:22:15 +00:00
Dmitry Stogov 7ffc24b9f3 Fixed bug #36629 (SoapServer::handle() exits on SOAP faults) 2006-03-10 11:46:52 +00:00
Dmitry Stogov 97f463c156 Fixed debug_zval_dump() to support private and protected members 2006-03-10 08:42:56 +00:00
Sara Golemon 6dff869c51 MFH: Move temporary local storage of primary file's realpath up one block to ensure it stays on the stack. 2006-03-09 20:32:22 +00:00
Ilia Alshanetsky fe13b8ef69 Back to dev 2006-03-09 14:22:59 +00:00
Ilia Alshanetsky b04ecd08d2 5.1.3RC1 2006-03-09 14:12:15 +00:00
Sebastian Bergmann e1d9cf07cd MFH: Make spl_register_std_class() and spl_register_sub_class() available outside of SPL, for instance in SPL_Types. 2006-03-09 11:43:45 +00:00
Marcus Boerger 6dcb27d35c - MFH 2006-03-08 23:54:43 +00:00
Michael Wallner 74868fae47 - Fix bug #36656 (http_build_query generates invalid URIs due to use of square brackets) 2006-03-08 22:00:21 +00:00
Marcus Boerger 4a5dd30201 - MFH Allow pecl/phar and alike too hook into spl_filesystem_object's 2006-03-08 21:54:48 +00:00
Michael Wallner 0aa24dc0a1 - remove declaration of non existant function php_treat_data 2006-03-08 08:43:25 +00:00
Alex Waugh b8d26da1be MFH Fix for RISC OS 2006-03-07 22:37:53 +00:00
Alex Waugh 5dea328391 MFH Improve DOCUMENT_ROOT setting 2006-03-07 22:35:30 +00:00
Marcus Boerger 4e6245978b - Update 2006-03-07 19:29:04 +00:00
Rob Richards f84c9acc77 updated for simplexml changes 2006-03-07 15:27:01 +00:00
Rob Richards 8dffbf217d - Synch with head 2006-03-07 15:22:48 +00:00
Antony Dovgal 6ce1f43902 MFH
add workaround for Oracle server crash, use OCIServerVersion() instead of OCIPing()
fix #36250 (PHP Causes ORA-07445 Core dump in Oracle server 9.2.x)
2006-03-07 07:47:43 +00:00
Rasmus Lerdorf 3563191049 stray text 2006-03-06 23:26:28 +00:00
Sebastian Bergmann b8be6d3664 Fix build and sync parameters with config0.m4. 2006-03-06 22:49:16 +00:00
Marcus Boerger a325d22cd1 - MFH Missed 'proto' 2006-03-06 22:22:54 +00:00
Andrei Zmievski 1b688da7ac *** empty log message *** 2006-03-06 21:59:18 +00:00
Andrei Zmievski 89a4054106 MFH (Import PCRE 6.6) 2006-03-06 21:45:57 +00:00
Derick Rethans 5bfe560cab - MFH: Fixed bug #36638 (strtotime() returns false when 2nd argument < 1).
(Derick)
2006-03-06 21:44:58 +00:00
Rob Richards d36a88bdda fix win build 2006-03-06 20:21:52 +00:00
Colin Viebrock e70571c251 fix logo (proper spacing between the letters) 2006-03-06 19:10:19 +00:00
Marcus Boerger dc8221c154 - Fix last %v, too 2006-03-06 10:56:41 +00:00
Marcus Boerger 94165e41a7 - There is no %v in 5.1 (found by Tony) 2006-03-06 10:09:13 +00:00
Marcus Boerger f08316b525 - MFH Proto fixes 2006-03-06 10:06:25 +00:00
Marcus Boerger 6e93f3eb8f - MFH Proto fixes 2006-03-06 10:00:59 +00:00
Dmitry Stogov ade3995a79 Fixed compatibility with ext/hash 2006-03-06 09:58:01 +00:00
Marcus Boerger e795f8f427 - MFH Proto fixes 2006-03-06 09:50:44 +00:00
Derick Rethans 7fd337f955 - There is no ltouch. 2006-03-05 19:01:37 +00:00
Derick Rethans f87e7b8bab - Added lchown() and lchgrp() to change user/group ownership of symlinks. 2006-03-05 18:57:54 +00:00
Michael Wallner 7d73045415 - fix typo, reword slightly 2006-03-05 17:56:16 +00:00
Marcus Boerger 90ae21f310 - Update 2006-03-05 17:48:47 +00:00
Marcus Boerger 7dc322754a - Fix issues with not/double calling of constructors of SPL iterators
- Fix issues with info-class/file-class in SPL directory handling classes
- Add SimpleXMLElement::count()
- Drop erroneous RecursiveDirectoryIterator::getSubPathInfo()
- Drop dead code
- Add tests
- Update docu
2006-03-05 17:39:49 +00:00
Ilia Alshanetsky 41de805a9d MFH:
Fixed bug #36572 (Added PDO::MYSQL_ATTR_DIRECT_QUERY constant that show be
set when executing internal queries such as "show master status" via MySQL).

Added missing constant for MAX_BUFFER_SIZE.
2006-03-05 17:18:01 +00:00
Antony Dovgal e43a77d84c add test 2006-03-05 16:12:48 +00:00
Marcus Boerger 35ce5db25e - Add missing function for completeness 2006-03-05 16:12:24 +00:00
Antony Dovgal a9080d38f4 fix #36611 (assignment to SimpleXML object attribute changes argument type to string) 2006-03-05 15:36:03 +00:00
Antony Dovgal 0b12f7307e MFH: fix #36606 (pg_query_params() changes arguments type to string) 2006-03-05 13:35:52 +00:00
Rob Richards 65211cddcc fix crashes using notations and entity decls
add test
2006-03-03 20:15:10 +00:00
Edin Kadribasic a1024ce679 Sync with source distro, enable hash by default 2006-03-03 14:34:34 +00:00
Dmitry Stogov 54adfc6fcf Fixed incorrect backtrace type ("::" instead of "->") for __set()/__get() 2006-03-03 12:06:29 +00:00
Dmitry Stogov d46b474e1e Fixed crash 2006-03-03 10:29:29 +00:00
Dmitry Stogov b32a78c4fa Remove "called at [(null):0]" from debug backtrace 2006-03-03 10:09:21 +00:00
Dmitry Stogov 622347bd8c Fixed bug #36575 (SOAP: Incorrect complex type instantiation with hierarchies) 2006-03-03 09:20:33 +00:00
Derick Rethans 5c1dbf51af - Added the test case for bug #36599 2006-03-03 07:53:21 +00:00
Derick Rethans 22c501b016 - Fixed bug #36599 (DATE_W3C format constant incorrect). 2006-03-03 07:52:55 +00:00
Ilia Alshanetsky ea86f819a3 give credit where it is due. 2006-03-02 21:32:32 +00:00
Dmitry Stogov 65cca0dc20 Fixed bug #36388 (ext/soap crashes when throwing exception and session persistence). (David) 2006-03-02 14:07:48 +00:00
Marcus Boerger 7addae5089 - MFH Use object handler get in the same way as the rest of the engine does 2006-03-02 00:45:28 +00:00
Yasuo Ohgaki e2218515d2 MFH add safe_mode num of parameter check 2006-03-02 00:37:22 +00:00
Ilia Alshanetsky 1aa1c535b5 Remove no longer needed check (checked at a higher level now). 2006-03-01 18:37:11 +00:00
Marcus Boerger 3840e428bb - MFH Fix string-conversion and const updating 2006-03-01 17:21:04 +00:00
Marcus Boerger f128dff1ff - Fix test 2006-03-01 17:19:22 +00:00
Rob Richards 84ad62553d nuke tests for libxml2 version - will always be > 2.6.0 2006-03-01 15:37:45 +00:00
Ilia Alshanetsky 3022080d84 Fixed bug #36459 (Incorrect adding PHPSESSID to links, which contains \r\n). 2006-02-28 14:45:18 +00:00
Marcus Boerger 477f503b9e - MFH Fix dependency checks 2006-02-28 12:26:03 +00:00
Marcus Boerger c4b81d8720 - Fix warning 2006-02-28 02:22:57 +00:00
Marcus Boerger 728493ca37 - MFH Fix issues withhandling of derived info classes as entries 2006-02-28 01:33:32 +00:00
Marcus Boerger 2e37e86366 - MFH Argument parsing specifier 'C', which is necessary for SPL already 2006-02-27 22:23:21 +00:00
Derick Rethans 2e91228d15 - MFH: Fixed bug #36510 (strtotime() fails to parse date strings with tabs). 2006-02-27 19:41:33 +00:00
Ilia Alshanetsky e3ea152fee This fix was reverted 2006-02-27 14:22:26 +00:00
Marcus Boerger c5d70528d7 - MFH Fix count/foreach interaction 2006-02-27 13:38:03 +00:00
Marcus Boerger 44d4ba478f - Cleanup 2006-02-27 11:55:18 +00:00
Johannes Schlüter d4ba0a9fc3 - MFH: Add .cvsignore 2006-02-27 11:38:36 +00:00
Dmitry Stogov cde6f6e0cc Fixed memory leak 2006-02-27 07:12:14 +00:00
Johannes Schlüter 3e056bc13c - Fix tests 2006-02-27 00:18:59 +00:00
Marcus Boerger 0b300dac3a - Update 2006-02-26 23:21:50 +00:00
Marcus Boerger 4d442447f1 - Synch with head 2006-02-26 23:14:45 +00:00
Ilia Alshanetsky 2d4b399fe1 Revert previous fix to allow for a more comprehensive patch from Derick. 2006-02-26 22:14:58 +00:00
Ilia Alshanetsky 2d02bedd9c Fixed bug #36510 (strtotime() fails to parse date strings with tabs). 2006-02-26 17:05:45 +00:00
Marcus Boerger 5a69b29082 - Warning fixes by Steph 2006-02-26 10:57:00 +00:00
Marcus Boerger 84fc80064b - Update 2006-02-25 21:43:02 +00:00
Rasmus Lerdorf 8fe5bc7010 MFH - binary safety patch from Moriyoshi 2006-02-25 21:32:11 +00:00
Marcus Boerger bf213a2c7b - Add ReflectionExtension::getDependencies() 2006-02-25 21:17:18 +00:00
Marcus Boerger 941b0651dc - MFH: Function deprecation flag 2006-02-25 18:25:45 +00:00
Johannes Schlüter 611a6dece9 - MFH: Fix description 2006-02-24 23:25:57 +00:00
Johannes Schlüter 027abfd702 - MFH: Fix #29986 (Class constants won't work with predefined constants when
using ReflectionClass)
2006-02-24 23:09:22 +00:00
Derick Rethans 016dbe414e - MFH: Fixed issue with iconv_mime_decode where the "encoding" would only allow
upper case specifiers.
#- See RFC 2047, section 2.
2006-02-24 16:05:38 +00:00
Michael Wallner 6520ff9afc - fix crash with DOMImplementation::createDocumentType("name:") 2006-02-24 10:19:54 +00:00
Derick Rethans 521502f416 - MFH: Added support for exif date format
- MFH: Fixed bug #36396 (strtotime() fails to parse dates in dd-mm-yyyy
  format).
2006-02-24 09:44:56 +00:00
Ilia Alshanetsky 6d494f9725 Fixed bug #35900 (stream_select() should warning when tv_sec is negative). 2006-02-23 18:28:08 +00:00
Andrei Zmievski c009a4f361 Fix a bug where the default value for function argument could be an
array with array (!) keys.
2006-02-23 18:06:47 +00:00
Brian France 9f53c8e313 MFH: 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:51:46 +00:00
Ilia Alshanetsky 07e7092729 Added test for bug #36434 2006-02-22 15:45:25 +00:00
Johannes Schlüter 7409ed6403 - MFH: List --rf/--rc/--re only with enabled reflection 2006-02-21 21:15:13 +00:00
Ilia Alshanetsky f5241f165f Fixed bug #36458 (sleep() accepts negative values). 2006-02-21 15:32:06 +00:00
Johannes Schlüter c6cb1598be - MFH: Rename reflection constants to fix parser conflicts 2006-02-20 23:33:32 +00:00
Marcus Boerger 289f45c279 - Synch docu 2006-02-20 22:21:54 +00:00
Ilia Alshanetsky 4ea898b79f Fixed bug #36434 (Improper resolution of declaring class name of an
inherited property).
2006-02-20 15:27:45 +00:00
Dmitry Stogov 089f1283ad Fixed test file 2006-02-20 08:39:06 +00:00
Michael Wallner 59fa57d232 BFN: fixed ext/hash/tiger on big endian platforms 2006-02-19 23:50:46 +00:00
Michael Wallner 4b23428d9d - fix tiger on big endian platforms 2006-02-19 23:39:53 +00:00
Marcus Boerger f0d9ae46c3 - Fix method flag handling 2006-02-19 10:39:31 +00:00
Marcus Boerger afd8f0b608 - MFH Fix naming inconsistency (providing old name as alias) 2006-02-18 18:14:45 +00:00
Marcus Boerger 78516c7905 - Fixed bug #36436 (DBA problem with Berkeley DB4). 2006-02-18 17:11:06 +00:00
Michael Wallner 92ac0940d3 - fix misleading proto (confused out and in charset) 2006-02-18 16:02:43 +00:00
Rasmus Lerdorf bab48a0906 Rename getloadavg to sys_getloadavg 2006-02-18 05:41:59 +00:00
Andrei Zmievski f10bab6f97 MFH. 2006-02-17 21:18:09 +00:00
Wez Furlong a8be85ce7e add getloadavg() function that has been running in production on rs1.php.net
for a couple of years.
2006-02-16 22:49:13 +00:00
Antony Dovgal 1e8aad5075 MFH: add checks and fix possible reincarnations of bug #36420 2006-02-16 20:58:59 +00:00
Ilia Alshanetsky ce9dfedc69 Fixed bug #36420 (segfault when access result->num_rows after calling
result->close())
2006-02-16 16:03:27 +00:00
Antony Dovgal 2108714a2b MFH: improve usleep(): use new param parsing API, check for negative values
(related to #36410)
2006-02-16 10:13:52 +00:00
Antony Dovgal f2ac3274d7 fix typo 2006-02-16 06:29:40 +00:00
Ilia Alshanetsky 96843fe434 Use 5.1 functions 2006-02-16 03:15:52 +00:00
Sara Golemon a790d6ed3d Fix copy/paste problems for instantclient 2006-02-16 02:03:13 +00:00
Antony Dovgal 716d22a8f6 MFH: fix #36403 (oci_execute() no longer supports OCI_DESCRIBE_ONLY) 2006-02-15 20:44:55 +00:00
Antony Dovgal 82b6ccbc30 fix memory leak and possible invalid reads 2006-02-15 11:15:32 +00:00
Antony Dovgal 8068342483 MFH: fix #36400 (Custom 5xx error does not return correct HTTP response error code) 2006-02-15 11:09:05 +00:00
Antony Dovgal d43d090362 fix leak in zend_strtod() on big doubles
add new test
2006-02-14 22:10:55 +00:00
Ilia Alshanetsky 3608dd4c11 Fixed bug #36345 (PDO/MySQL problem loading BLOB over 1MB). 2006-02-14 14:26:11 +00:00
Antony Dovgal c65d61a301 add test for bug #36337 2006-02-14 09:46:16 +00:00
Derick Rethans 1a170a3de2 - Fixed bug #36382 (PDO/PgSQL's getColumnMeta() crashes). 2006-02-13 15:53:36 +00:00
Ilia Alshanetsky 1e05eec591 Fixed bug #36337 (ReflectionProperty fails to return correct visibility). 2006-02-13 14:49:26 +00:00
Dmitry Stogov 11187a40e0 Fixed bug #36205 (Memory leaks on duplicate cookies) 2006-02-13 12:18:16 +00:00
Marcus Boerger 9c614f8f8f - Synch 2006-02-12 18:51:12 +00:00
Marcus Boerger 4b2b9461d4 - MFH No more old parameter api usage 2006-02-12 16:44:36 +00:00
Ilia Alshanetsky 535a2e6092 Fixed bug #36351 (parse_url() does not parse numeric paths properly). 2006-02-12 16:39:44 +00:00
foobar 5fb8810c76 fix news 2006-02-11 11:23:57 +00:00
Rui Hirokawa e8d38828cd MFH 2006-02-11 02:26:07 +00:00
Antony Dovgal 08c4c9c202 MFH: fix #36359 (splFileObject::fwrite() doesn't write when no data length specified) 2006-02-10 16:57:56 +00:00
Rasmus Lerdorf 6cc9f92d16 (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:39:13 +00:00
Pierre Joye 8fe545aab7 - fix order 2006-02-09 22:26:43 +00:00
Ilia Alshanetsky 044d24a23c Added test for bug #36308 2006-02-09 18:18:18 +00:00
Pierre Joye c09237ffce - protos 2006-02-09 15:48:46 +00:00
Pierre Joye 8600417c79 - 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:33:53 +00:00
Ilia Alshanetsky f541b63e1f Fixed bug #36334 (Added missing documentation about realpath cache INI
settings).
2006-02-08 23:43:48 +00:00
Johannes Schlüter b0f0192f0c - MFH: Fix charset 2006-02-08 21:09:18 +00:00
Johannes Schlüter 991c753bc5 - MFH: It's 2006 and PHP 5 2006-02-08 21:03:36 +00:00
Antony Dovgal 1f8b320679 MFH: move function definition from .h to .c, where it should be 2006-02-08 20:50:03 +00:00
Greg Beaver 39a4a46ae4 MFB fix Bug #36001: make install fails when --enable-memory-limit used 2006-02-08 01:12:12 +00:00
Ilia Alshanetsky 0a6b074034 Fixed bug #36308 (ReflectionProperty::getDocComment() does not reflect
extended class commentary).
2006-02-08 00:36:57 +00:00
Andrei Zmievski 7deff63e3c Move array globals declarations back to the header file. 2006-02-07 17:54:24 +00:00
Antony Dovgal 3bafa8cead don't use deprecated call-time by reference 2006-02-07 14:11:31 +00:00
Dmitry Stogov 9167991f69 Compression level shouldn't be greatr then 9. 2006-02-07 12:57:28 +00:00
Dmitry Stogov 73605400e8 Fixed bug #36083 (SoapClient waits for responses on one-way operations) 2006-02-07 12:49:10 +00:00
Rob Richards 7831900882 fix mem leak with iterators
fix object casting for edge case
2006-02-07 11:50:54 +00:00
Pierre Joye 5f83d7ce90 - forgot the original credits 2006-02-07 00:38:15 +00:00
Andrei Zmievski da30791861 MFH. 2006-02-07 00:33:13 +00:00
Pierre Joye 0473a11ca2 - entry for #36306 2006-02-07 00:27:04 +00:00
Pierre Joye f3e11a705c - #36306, crc32() function result differs on 32-bit and 64-bit platforms 2006-02-07 00:23:55 +00:00
Antony Dovgal a3b941642c init variables 2006-02-06 20:37:11 +00:00
Michael Wallner beea63529c MFH: fix ReflectionClass::getInterfaces() 2006-02-06 20:12:48 +00:00
Andrei Zmievski 6c180238fd TODO 2006-02-06 19:02:53 +00:00
Ilia Alshanetsky a0d912490d 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:07 +00:00
Dmitry Stogov a7c845ffcb typo 2006-02-06 13:17:06 +00:00
Dmitry Stogov 38409e944c Fixed bug #36303 (foreach on error_zval produces segfault) 2006-02-06 11:45:56 +00:00
Antony Dovgal bccf4bd9e7 MFH: initialize variables and reduce the number of warnings 2006-02-06 11:28:41 +00:00
Antony Dovgal 8911fac653 MFH: initialize variable and make gcc happy 2006-02-06 11:01:06 +00:00
Antony Dovgal c353a52a11 initialize variables 2006-02-06 10:52:34 +00:00
Antony Dovgal 4a179933b6 initialize to_r
remove needless semicolon
2006-02-06 10:41:28 +00:00
Dmitry Stogov f2772ecc0d Fixed bug #36283 (SOAPClient Compression Broken). 2006-02-06 10:16:03 +00:00
Marcus Boerger ff4ee6f043 - MFH Add new tests 2006-02-06 01:28:12 +00:00
Antony Dovgal aa920b8e00 MFH: fix #36295 (typo in SplFileObject::flock() parameter name) 2006-02-05 19:23:30 +00:00
Ilia Alshanetsky 64972c02de Simplify test code 2006-02-05 17:33:11 +00:00
Marcus Boerger 647eafcb5d - MFH 2006-02-05 17:07:40 +00:00
Pierre Joye 3c1b981a28 - ini entry for gd.jpeg_ignore_warning 2006-02-05 16:04:11 +00:00
Pierre Joye 3f68c2164b - jpeg tolerant mode entry 2006-02-05 15:54:56 +00:00
Pierre Joye 6f632a77c3 - MFH: add a weak/tolerant mode to the jpeg loader 2006-02-05 15:53:58 +00:00
Marcus Boerger 56db3290e2 - BFN 2006-02-05 12:04:46 +00:00
Marcus Boerger 39d71e375c - MFH Fix bug #36287 2006-02-05 11:43:44 +00:00
Frank M. Kromann 5e673e0639 Fix build on win32 2006-02-04 23:54:21 +00:00
Rob Richards c3c092bba6 BFN 2006-02-04 11:01:55 +00:00
Rob Richards a78a0b460c Fixed bug #34272 (empty array onto COM object blows up)
fix mem leaks
WS fixes
add test
2006-02-04 10:57:28 +00:00
Dmitry Stogov aa1142eded Fixed bug #36158 (SIGTERM is not handled correctly when running as a FastCGI server) 2006-02-03 16:30:09 +00:00
Antony Dovgal 52232a7f7a fix #36010 (Segfault when re-creating and re-executing statements with bound parameters) 2006-02-03 14:46:42 +00:00
Dmitry Stogov b179e081ab Fixed bug #36268 (Object destructors called even after fatal errors) 2006-02-03 09:31:59 +00:00
Marcus Boerger a31f337c24 - MFH Fix ArrayIterator::seek() edge cases 2006-02-02 22:17:42 +00:00
Antony Dovgal db7195ee0c nuke unused variable 2006-02-02 21:43:09 +00:00
Marcus Boerger a266261eb6 - Fix oversight 2006-02-02 18:59:11 +00:00
Sara Golemon 3a4a0e3cef MFH: Prevent bindport from being used uninitialized 2006-02-02 18:16:43 +00:00
Ilia Alshanetsky 0c972edce4 Only use win32 directory separators on win32 or netware. 2006-02-02 15:10:04 +00:00
Antony Dovgal 0655132e2c add test for bug #36258 2006-02-02 13:56:16 +00:00
Antony Dovgal ff30daae6e MFH: add missing folding tags
nuke unnecessary semicolons
2006-02-02 12:40:33 +00:00
Antony Dovgal 0506d1a9f5 fix #36258 (SplFileObject::getPath() may lead to segfault) 2006-02-02 12:19:14 +00:00
Dmitry Stogov 7dc9be77fc Bug #36226 Inconsistent handling when passing potential arrays 2006-02-02 11:41:45 +00:00
Dmitry Stogov 6a176fa7b3 AIX support 2006-02-02 09:59:23 +00:00
Dmitry Stogov 7e7fcc3a07 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.
2006-02-02 08:17:23 +00:00
Dmitry Stogov 9774b6d3e6 Fixed encoding of inhereted objects 2006-02-01 17:18:24 +00:00
Ilia Alshanetsky d115747a24 Clarify new entries. 2006-02-01 17:05:38 +00:00
Joe Orton 8c55d477d8 MFH: - Fixed bug #36208 (symbol namespace conflicts using bundled gd). (Jakub Moc) 2006-02-01 13:52:46 +00:00
Antony Dovgal b90d985a23 MFH: fix #36242 (Possible memory corruption in stream_select()) 2006-02-01 10:31:57 +00:00
Sebastian Bergmann 823b39b698 Fix line endings. 2006-02-01 07:41:24 +00:00
Zeev Suraski b73349dbe4 Fix possibility of a wrong element being deleted by zend_hash_del()
Thanks Stefan!
2006-02-01 01:01:05 +00:00
Derick Rethans 0249f6b6b6 - MFH: Fixed bug #36224 (date(DATE_ATOM) gives wrong results). 2006-01-31 18:44:19 +00:00
Antony Dovgal 526bc44ff7 fix test 2006-01-31 18:39:28 +00:00
Antony Dovgal 3a800fe146 MFH: fix #36235 (ocicolumnname delivers empty results before a succesfull ocifetch) 2006-01-31 18:38:52 +00:00
Derick Rethans eb91dfc69e - MFH: Upgraded timezonedb to 2006a. 2006-01-31 18:08:15 +00:00
Ilia Alshanetsky 6f66a63cda Fixed bug #36222 (errorInfo in PDOException is always NULL). 2006-01-31 17:20:32 +00:00
Derick Rethans 657d5f086f - Moved msession to PECL. 2006-01-31 08:11:35 +00:00
Antony Dovgal b22ab5b5d3 fix printf-style formats 2006-01-30 21:14:54 +00:00
foobar f80f58168c nuke ws pollution 2006-01-29 17:54:45 +00:00
Ilia Alshanetsky 9b0f4a6234 Fixed bug #36176 (PDO_PGSQL - PDO::exec() does not return number of rows
affected by the operation).
2006-01-29 17:35:54 +00:00
foobar af56d9f1d4 fix news 2006-01-29 15:25:10 +00:00
Michael Wallner e44b9f08f6 - not efree but free 2006-01-28 08:07:20 +00:00
Frank M. Kromann 80cc4867e3 Export symbols that will allow building WDDX as shared object 2006-01-28 06:18:01 +00:00
Frank M. Kromann 329198a955 Add header so WDDX builds as shared 2006-01-28 06:15:25 +00:00
Pierre Joye f16b8429da - #36185 entry 2006-01-28 00:16:56 +00:00
Pierre Joye 2bfe34e06d - MFH: #36185 str_rot13(NULL) crash 2006-01-28 00:14:01 +00:00
Michael Wallner fe52312f59 - include png.h prior php.h 2006-01-27 20:46:02 +00:00
Michael Wallner a146043c25 - fix imap_fetchbody(); there is no default mailgets() 2006-01-27 20:18:03 +00:00
Pierre Joye 9494521055 - imagepng filter enty 2006-01-27 20:11:54 +00:00
Michael Wallner 26127e510f - added imap_savebody() 2006-01-27 19:47:14 +00:00
Michael Wallner b12f8e6811 MFH: add imap_savebody() 2006-01-27 19:46:11 +00:00
Pierre Joye 1b546b9f77 - MFH: add filter option to imagepng
- add constants
  PS: If someone can check why #include "png.h" fails, it will be cleaner
2006-01-27 13:36:30 +00:00
Ilia Alshanetsky c5ef24bfee Fixed bug #36148 (unpack("H*hex", $data) is adding an extra character to the
end of the string).
2006-01-26 15:45:33 +00:00
Michael Wallner 9eda552c75 BFN 2006-01-26 13:26:51 +00:00
Michael Wallner ed58b573a1 MFH: fix bug #36152 problems with curl+ssl and pgsql+ssl in same PHP 2006-01-26 13:23:33 +00:00
Rob Richards 84554b0364 BFN 2006-01-26 11:18:46 +00:00
Rob Richards c53b926a35 Fix bug #35954 (Fatal com_exception casting object) 2006-01-26 11:17:34 +00:00
Marcus Boerger cb4bb6e389 - MFH Bug #36141 Add ReflectionClass::newInstanceArgs($args) 2006-01-25 22:03:54 +00:00
Marcus Boerger 77915bc208 - MFH 2006-01-25 22:03:18 +00:00
Rob Richards ec605ac2ad fix possible crash in textContent 2006-01-25 17:34:05 +00:00
Ilia Alshanetsky 8fde2249c3 Properly rewrite queries where a bound parameter appears more then once. 2006-01-25 16:35:23 +00:00
Marcus Boerger 9cb7d29f84 - MFH Bug #35978 %n format string specifier wrongly implemented 2006-01-24 20:59:46 +00:00
Ilia Alshanetsky 5f25d80d10 cURL extension news. 2006-01-24 20:11:14 +00:00
Antony Dovgal d0e1a4fdca MFH: fix #36113 (Reading records of unsupported type causes segfault) 2006-01-23 22:42:12 +00:00
Derick Rethans ff438f1139 - date is not a server API 2006-01-23 18:07:40 +00:00
Ilia Alshanetsky 9cbc3ae264 Fixed bug #36134 (DirectoryIterator constructor failed to detect empty
directory names).
2006-01-23 15:24:10 +00:00
Marcus Boerger 2d1d476391 - MFH Fix error message 2006-01-23 02:26:32 +00:00
Marcus Boerger 1d461a6bcc - MFH 2006-01-22 23:57:41 +00:00
Marcus Boerger b1cebf32e4 - MFH Fix issues with static method invocation 2006-01-22 22:14:32 +00:00
Marcus Boerger cb27823e82 - MFH Show the exact version 2006-01-22 22:09:54 +00:00
Marcus Boerger 813a5651c1 - MFH Update test 2006-01-22 22:07:43 +00:00
Sebastian Bergmann 4803abf07c Fugbix typo. 2006-01-22 21:01:51 +00:00
foobar e4295ed864 fix news 2006-01-22 18:47:36 +00:00
Ilia Alshanetsky ffe84c11a7 News about further get_headers() changes. 2006-01-22 18:34:12 +00:00
Rui Hirokawa 90bb16db5a MFH 2006-01-21 02:49:52 +00:00
Antony Dovgal 1070dec09a fix typo 2006-01-20 16:58:48 +00:00
Antony Dovgal 4697099ab0 add new test 2006-01-20 11:07:34 +00:00
Antony Dovgal 5fb6e0703f MFH: fix #36096 (oci_result() returns garbage after oci_fetch() failed) 2006-01-20 11:02:49 +00:00
Ilia Alshanetsky 0621bcc9e1 Allow get_headers() to return header information even for non-200 responses. 2006-01-20 01:40:32 +00:00
Dmitry Stogov c447acf863 Fixed bug #36071 (Engine Crash related with 'clone') 2006-01-19 07:23:32 +00:00
Antony Dovgal 82d5901664 MFH: couple of pedantic fixes: "static" should be first 2006-01-18 23:55:47 +00:00
Derick Rethans 864004d4d7 - Enable date_sun_info() function. 2006-01-18 21:40:38 +00:00
Antony Dovgal 01e8d313c8 MFH: make sure ce_child is properly initialized 2006-01-18 21:06:47 +00:00
Antony Dovgal 26ef74f867 MFH: fix error message on make test when bison is not installed 2006-01-18 17:59:20 +00:00
foobar f0a60af876 fix news 2006-01-18 16:12:37 +00:00
Ilia Alshanetsky fb7608a006 Make get_headers() use the default context. 2006-01-18 14:05:14 +00:00
Antony Dovgal 1d72f55e7d MFH: reorganize resource destruction 2006-01-18 10:12:34 +00:00
Antony Dovgal 56242031aa MFH: improve open_basedir checks in GD 2006-01-17 23:47:08 +00:00
Antony Dovgal 4278ffd3b4 MFH: fix #36055 (possible OCI8 crash in multithreaded environment) 2006-01-17 23:44:51 +00:00
Ilia Alshanetsky 5a6a07467f Bug fixing news 2006-01-17 19:57:01 +00:00
Ilia Alshanetsky b6cb9d3ce5 Fixed bug #36046 (parse_ini_file() miscounts lines in multi-line values). 2006-01-17 19:56:25 +00:00
foobar 52933fc89d you fix, add, update or remove.. 2006-01-17 19:19:45 +00:00
Pierre Joye 5ea4c827c9 - remove old return_long 2006-01-17 19:04:06 +00:00
Pierre Joye e736bfc8b6 - imagecolorallocate* returns false entry 2006-01-17 16:33:11 +00:00
Pierre Joye afa77062d1 - return false on error 2006-01-17 15:44:12 +00:00
Pierre Joye 328c294569 - Returns FALSE on error, it is how it must work 2006-01-17 15:23:29 +00:00
Dmitry Stogov 0f4302b872 Fixed bug #36037 (heredoc adds extra line number) 2006-01-17 09:39:57 +00:00
Ilia Alshanetsky 5f9dde24d8 Only report mkdir() errors if error reporting option is set. 2006-01-17 02:32:09 +00:00
Antony Dovgal 694042e527 MFH: fix #36038 (ext/hash compile failure on Mac OSX) 2006-01-16 23:04:23 +00:00
Antony Dovgal ac1ec7914c fix typo 2006-01-16 20:40:41 +00:00
Antony Dovgal 3062348c75 MFH: fix #35999 (recursive mkdir() does not work with relative path like "foo/bar") 2006-01-16 19:48:23 +00:00
Dmitry Stogov bc410c3863 Fixed first-chance exception during request shutdown 2006-01-16 14:26:07 +00:00
Dmitry Stogov b8360c376b Fixed bug #36006 (Problem with $this in __destruct()) 2006-01-16 10:12:36 +00:00
Dmitry Stogov 4b1791a767 Fixed bug #36016 (realpath cache memleaks) 2006-01-16 09:12:22 +00:00
Dmitry Stogov 71d4d4a91f Fixed bug #36016 (realpath cache memleaks) 2006-01-16 09:09:37 +00:00
Ilia Alshanetsky 3d80bd0cdf Added a check for special characters in the session name. 2006-01-15 16:51:18 +00:00
Marcus Boerger d059b92fea - MFH Fix issue found by Nuno 2006-01-15 00:17:43 +00:00
Antony Dovgal 8488861e12 add test for bug #36010 2006-01-14 22:23:43 +00:00
Marcus Boerger 1edc8eec88 - Update 2006-01-14 20:21:10 +00:00
Marcus Boerger 66cfc793a2 - Fix test 2006-01-14 15:53:37 +00:00
Marcus Boerger 97086b2bc6 - BFN 2006-01-14 15:24:06 +00:00
Marcus Boerger add3c79a23 - Fixed bug #36011 2006-01-14 15:22:40 +00:00
foobar a408c539cf be wordy 2006-01-14 14:44:44 +00:00
Georg Richter 5854cf10c7 New field constants for BIT and NEWDECIMAL 2006-01-14 14:34:47 +00:00
Georg Richter 04ac1f7fd1 2nd attempt: implementation of 36007
1st commit stopped with protocol error - never seen that before :-(
2006-01-14 14:15:41 +00:00
foobar fecfb80a00 removed false information 2006-01-14 12:05:59 +00:00
Georg Richter c061fc6c37 Implemented feature request #36007: Support for BIT and NEW_DECIMAL field types 2006-01-14 10:15:08 +00:00
foobar 1cdaf5d7b1 fix news 2006-01-14 09:57:07 +00:00
Marcus Boerger 575e6b6e7c - Make clear what -a mode gets you 2006-01-14 02:09:37 +00:00
Marcus Boerger c863542dc1 - Fix #35998 (getPathname() method always returns unix style filenames) 2006-01-13 19:36:57 +00:00
Sascha Schumann 754b747637 WS 2006-01-13 14:31:38 +00:00
Sascha Schumann 64447a29aa - MFH lower valgrind error count to 0 2006-01-13 14:25:46 +00:00
Antony Dovgal 0851c649d1 MFH: add missing ifdefs 2006-01-13 13:04:27 +00:00
Marcus Boerger e6f4c2bce2 - Add News (which is news) 2006-01-13 08:30:40 +00:00
foobar db2697aae0 this is not news 2006-01-13 05:07:55 +00:00
Pierre Joye 6c509aa837 - add php_mkdir_ex, works like php_mkdir but allows to silent any error
when no options are used
2006-01-13 04:06:00 +00:00
Marcus Boerger f113090832 - Add stream filter 'consumed' 2006-01-12 19:23:58 +00:00
Ilia Alshanetsky e731da3653 Back to dev 2006-01-12 15:24:10 +00:00
Marcus Boerger 1cfcdf6612 - MFH 2006-01-11 20:31:05 +00:00
Michael Wallner 8f5005e4b6 MFH: fix CGI SAPI check on Windows 2006-01-11 15:19:52 +00:00
Antony Dovgal 6ba295f311 int -> long 64bit fixes 2006-01-11 15:09:59 +00:00
Ilia Alshanetsky ad1bbaca04 5.1.2 2006-01-11 14:19:14 +00:00
Ilia Alshanetsky 778c635c40 Fixed bug #35916 (Duplicate calls to stream_bucket_append() lead to a crash). 2006-01-10 16:14:16 +00:00
Antony Dovgal 21891aecc1 MFH: fix #35959 (Cannot build with Solid 2.3) 2006-01-10 14:15:35 +00:00
Antony Dovgal 92f050786f MFH: 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:34:28 +00:00
Ilia Alshanetsky f079ef83ab Fixed test. 2006-01-10 03:18:37 +00:00
Ilia Alshanetsky 5b46c42641 PEAR news 2006-01-08 20:07:21 +00:00
Antony Dovgal 4972b45520 fix typo in the code and related tests 2006-01-06 20:55:14 +00:00
Antony Dovgal de8d0920d4 MFH: add missing .cvsignore 2006-01-06 20:26:25 +00:00
Marcus Boerger 58349878fc - MFH Update 2006-01-06 19:58:10 +00:00
Rasmus Lerdorf 4d64a617c3 MFH: I don't recall the reason for messing with r->allowed here, so let's
get rid of it (and see who screams).  This should fix bug #32561
2006-01-06 18:06:38 +00:00
foobar 02f405ccb1 MFH 2006-01-06 14:03:37 +00:00
Antony Dovgal 08feff327a BFN 2006-01-06 11:49:17 +00:00
Antony Dovgal 96723680d0 MFH: fix #35907 (PDO_OCI uses hardcoded lib path $ORACLE_HOME/lib) 2006-01-06 11:48:19 +00:00
foobar 6486069a3f MFH 2006-01-06 02:04:33 +00:00
Marcus Boerger 0d0f3e290b - Fix issue with memset seeking
- Fix issue with shutdown order of temp/memory stream
2006-01-05 22:03:07 +00:00
foobar 8c56ee5cb6 MFH: - Fixed bug #35911 (HAVE_PG_CONFIG_H set incorrectly) 2006-01-05 21:53:19 +00:00
Ilia Alshanetsky c4790e3a9e Back to dev 2006-01-05 21:36:05 +00:00
Antony Dovgal 6fcc365c75 MFH: fix typo 2006-01-05 20:49:37 +00:00
Marcus Boerger 5121b2a78a - MFH Fix docu 2006-01-05 19:00:27 +00:00
Ilia Alshanetsky 32dc6ee526 Go with 5.1.2RC2 2006-01-05 18:36:24 +00:00
Ilia Alshanetsky 8340e30313 Revert unrelated parts of the previous patch. 2006-01-05 18:07:55 +00:00
Ilia Alshanetsky e9c813af61 MFH4: Fixed bug #35908 (curl extension uses undefined GCRY_THREAD_OPTIONS_USER). 2006-01-05 18:05:37 +00:00
Antony Dovgal 8eb44c317e MFH: delete descriptor from the hash and avoid crashes on commit/rollback 2006-01-05 13:42:35 +00:00
Sebastian Bergmann b185e09245 MFH: Add astro.c. 2006-01-05 06:41:09 +00:00
Andi Gutmans 864a2897df - More -> 2006 changes 2006-01-05 02:34:02 +00:00
Ilia Alshanetsky fc4fb89cac Fixed bug #35669 (imap_mail_compose() crashes with
multipart-multiboundary-email).
2006-01-05 00:47:16 +00:00
Andi Gutmans 30cb5e36b8 - Update to 2006 2006-01-04 23:55:42 +00:00
Andi Gutmans 61e93ccfe8 - Update copyright notices to 2006 2006-01-04 23:53:05 +00:00
Derick Rethans 0d4965407e - Removed the files which are no longer necessary. 2006-01-04 21:35:17 +00:00
Derick Rethans 88268c6bcc - MFH: Fixed bug #35887 (wddx_deserialize not parsing dateTime fields properly).
- MFH: Fixed bug #35885 (strtotime("NOW") no longer works).
- MFH: Fixed bug #33789 (Many Problems with SunFuncs).
- MFH: Fixed bug #33671 (sun_rise and sun_set don't return a GMT timestamp if one
  passes an offset).
- MFH: Fixed bug #32820 (date_sunrise and date_sunset don't handle GMT offset
  well).
- MFH: Fixed bug #30937 (date_sunrise() & date_sunset() don't handle endless
  day/night at high latitudes).
2006-01-04 21:31:35 +00:00
Rob Richards 594139b1ea MFH: fix test 2006-01-04 20:55:58 +00:00
Rob Richards da692974ab MFH: fix tests 2006-01-04 19:44:46 +00:00
Marcus Boerger 47e6f644f7 - MFH Update examples 2006-01-04 15:34:39 +00:00
Marcus Boerger f9bfdc921a - MFH 2006-01-04 15:17:41 +00:00
Marcus Boerger 43fdbe99cd - MFH 2006-01-04 15:08:02 +00:00
Derick Rethans 0839cadef6 - Fixed broken test case. 2006-01-04 10:31:58 +00:00
Ilia Alshanetsky fb91408a17 Added param checks for ap2 fetch respose/request header functions. 2006-01-03 20:13:07 +00:00
foobar 22f4a05149 - prevent pontential failure with stupid compilers 2006-01-03 13:25:06 +00:00
foobar 58576f71c3 typofix 2006-01-03 13:24:46 +00:00
foobar bcc1654de3 - Fixed bug #35288 (iconv() function defined as libiconv()) 2006-01-03 13:21:07 +00:00
Ilia Alshanetsky a5e15f2e1c Fixed possible crash in apache_getenv()/apache_setenv() on invalid
parameters.
2006-01-02 22:19:37 +00:00
foobar 6d8c69e3cb MFH: fixed apache_setenv(): at least 2 parameters are required 2006-01-02 22:10:38 +00:00
Derick Rethans d4dd29194b - MFH: Fixed year dependent test. 2006-01-02 20:15:57 +00:00
Ilia Alshanetsky 488500acfb Added safety checks 2006-01-01 20:12:55 +00:00
Ilia Alshanetsky 64a7e46506 Fixed bug #35797 (segfault on PDOStatement::execute() with
zend.ze1_compatibility_mode = On).
2006-01-01 20:07:41 +00:00
Marcus Boerger 34f32d4dcd - Just another place where rewind() might not be set 2006-01-01 19:55:27 +00:00
Marcus Boerger e99fac3d01 - key() might be optional 2006-01-01 19:51:17 +00:00
Marcus Boerger d6ee7d1d9a - Fix SEGV when rewind() not set 2006-01-01 19:48:11 +00:00
foobar 9b01900321 MFH 2006-01-01 19:00:53 +00:00
Marcus Boerger e5ab119ad3 - dos2unix 2006-01-01 17:27:31 +00:00
Rasmus Lerdorf e2dd2d7e7a Fix the build 2006-01-01 17:24:32 +00:00
Andrey Hristov 3a75666285 WS 2006-01-01 16:55:01 +00:00
Andrey Hristov d03aea048f fetch more than one row at once 2006-01-01 16:52:05 +00:00
foobar 62b9a736bf MFH: oops 2006-01-01 13:27:13 +00:00
foobar 63e14480fc fix typo 2006-01-01 13:13:52 +00:00
foobar 12894cc1b6 update credits 2006-01-01 13:04:33 +00:00
foobar 5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
foobar 220490222a - Fix date 2006-01-01 12:47:32 +00:00
foobar 56567d31b3 Update license to 3.01 2006-01-01 12:30:06 +00:00
foobar e3fd31503b bump the year and license version 2006-01-01 12:26:08 +00:00
Marcus Boerger 9846878450 - MFH Fix environment handling 2005-12-31 17:48:26 +00:00
Marcus Boerger 8479546920 - MFH Fix tests 2005-12-31 17:42:39 +00:00
foobar 90c6bfd259 BFN 2005-12-31 00:57:29 +00:00
foobar 8d63360fc4 MFH:- Fixed bug #35377 (undefined reference to "fdatasync") 2005-12-31 00:56:06 +00:00
Rasmus Lerdorf c7d2d2a689 MFH - instantiated is correct 2005-12-30 17:15:55 +00:00
Marcus Boerger c2c7bc6a10 - WS 2005-12-30 15:05:17 +00:00
Marcus Boerger 2a140b8f40 - Allow to specify ini to use for test executeable 2005-12-30 13:39:54 +00:00
Marcus Boerger dc7ecd41ef - If user wnats help, don't complain about missing environment 2005-12-30 13:31:48 +00:00
Marcus Boerger bb29557060 - Need to set precision in ini 2005-12-30 12:49:46 +00:00
foobar b905bddda8 MFH 2005-12-30 12:21:48 +00:00
Marcus Boerger ad5af84a3c - Fix test 2005-12-30 11:44:21 +00:00
foobar c5b9552891 MFH: typofix 2005-12-30 05:40:43 +00:00
Rui Hirokawa b0ccd89450 MFH:added Turkish language definition (related to bug #29955) 2005-12-30 00:49:24 +00:00
Ilia Alshanetsky 5c32e974aa Not a fatal error. 2005-12-29 21:59:39 +00:00
Derick Rethans 25aeeb5e25 - Fixed bug #35751 (using date with a timestamp makes httpd segfault). 2005-12-29 10:54:07 +00:00
Georg Richter a5acdfc5f2 Fix for bug #35517:
added missing unsigned flag for result buffer
	fixed returncode in mysql_stmt_fetch for data truncation
2005-12-29 09:49:19 +00:00
Sara Golemon 3795f9d8bb MFH(r-1.7) Silence compiler warning: unused variable 2005-12-29 06:02:17 +00:00
Ilia Alshanetsky 0e396980a1 Fixed bug #35817 (unpack() does not decode odd number of hexadecimal values) 2005-12-28 20:55:14 +00:00
Antony Dovgal b5aeda4e65 tweak the fix 2005-12-27 23:26:55 +00:00
Antony Dovgal f046cdf3fa fix #35821 (array_map() segfaults when exception is throwed from the callback) 2005-12-27 22:32:01 +00:00
Derick Rethans 21e1f5da43 - MFH: Upgraded timezone db to 2005.18. 2005-12-27 19:50:13 +00:00
Ilia Alshanetsky f34a85bc58 Improve "skip" checks 2005-12-27 17:16:41 +00:00
Antony Dovgal d7c1980a21 typofix 2005-12-26 23:58:42 +00:00
foobar 73ab144544 MFH: fix test 2005-12-26 18:30:33 +00:00
foobar 74d3631062 reorder 2005-12-26 16:18:44 +00:00
foobar 64363f71f2 fix news 2005-12-26 16:17:56 +00:00
Antony Dovgal 537900c8e8 add new test for recently fixed bug 2005-12-26 15:05:38 +00:00
Marcus Boerger 8b35266a35 - BFN 2005-12-26 14:48:58 +00:00
Marcus Boerger 22ee7f8e3e - MFH Support full range of floats 2005-12-26 14:46:49 +00:00
Marcus Boerger ec1a7e02d4 - SWH (WS + memory corruption fix) 2005-12-26 13:41:58 +00:00
Zeev Suraski 7669169bd5 Whitespace fix (don't ask :) 2005-12-26 09:28:38 +00:00
Dmitry Stogov 56d78654a3 Reverted invalid fix for bug #35785 2005-12-26 08:18:38 +00:00
Pierre Joye 6bcb57fc2b - xslt/exslt versions constants entry 2005-12-26 00:59:32 +00:00
Pierre Joye 41284d17b0 - MFH: #35805 add LIBXSLT_VERSION, LIBXSLT_DOTTED_VERSION, LIBEXSLT_VERSION
and LIBEXSLT_DOTTED_VERSION
2005-12-26 00:56:41 +00:00
Antony Dovgal 386581b3f8 add missing skipif tag 2005-12-25 22:38:14 +00:00
Pierre Joye 7ebca7d3b7 - imagecolormatch fix and changes 2005-12-25 20:34:59 +00:00
Pierre Joye d07b094461 - MFH: raise warnings instead of errors in colormatch 2005-12-25 20:33:05 +00:00
Ilia Alshanetsky 077559d3e4 Make MySQL driver use ANSI complaint quoting style. 2005-12-25 20:30:40 +00:00
Pierre Joye f5a7694305 - MFH: fix segfault/leak in imagecolormatch
- MFH: test for imagecolormatch
2005-12-25 19:39:53 +00:00
foobar cfda375620 MFH 2005-12-25 16:04:15 +00:00
Rui Hirokawa ef0c0cc62b MFH: fixed #35711, added mbstring.strict_detection to detect the encoding striktly. 2005-12-25 15:23:55 +00:00
Ilia Alshanetsky 2e50763315 Fixed memory corruption that affected pdo_sqlite2. 2005-12-24 17:41:04 +00:00
Marcus Boerger 319dff73fb - Make this work with VPATH builds too 2005-12-24 12:23:09 +00:00
Marcus Boerger 6c2ebc6d76 - MFH Require re2c 0.9.11 and use correct version notation 2005-12-24 11:38:05 +00:00
Rui Hirokawa 11105b1eed MFH: fixed #35711 ISO-8859 charset not correctly detected. 2005-12-24 04:32:42 +00:00
Andrey Hristov caac5ef86d move the message to where it belongs 2005-12-23 22:27:23 +00:00
Andrey Hristov eea08af619 fix small memory leak which emerged two days ago 2005-12-23 22:22:42 +00:00
Marcus Boerger 1a36aaf874 - BFN 2005-12-23 20:40:52 +00:00
Marcus Boerger 9a6a266b16 - MFH Fixed Bug #35785 (SimpleXML memory read error) 2005-12-23 20:32:15 +00:00
Marcus Boerger ad61a18a2e - MFH Add new test 2005-12-23 20:26:41 +00:00
Marcus Boerger 42f8bef053 - MFH Fix test by splitting it 2005-12-23 20:04:30 +00:00
Marcus Boerger b1cb83f3c9 - MFH Fix handling of bork tests 2005-12-23 19:40:12 +00:00
Ilia Alshanetsky 7f75b5fbf4 RC2 not RC1 2005-12-23 19:12:28 +00:00
foobar d411d72053 MFH:fix mkdir() function properly (patch by nlopess) 2005-12-23 18:57:39 +00:00
Stefan Esser f7c77f0f33 Beware of format strings... 2005-12-23 18:23:43 +00:00
foobar fc6d0f3264 BFN 2005-12-23 18:00:03 +00:00
Rui Hirokawa 4628a41c00 MFH: fixed #29955 mb_strtoupper() / lower() broken with Turkish encoding.. 2005-12-23 15:18:52 +00:00
Ilia Alshanetsky 983263ce5d Bug fixing news 2005-12-23 14:43:57 +00:00
Ilia Alshanetsky e18a1d7c08 Back to dev 2005-12-23 14:42:49 +00:00
Antony Dovgal 248be6fcfc fix #35781 (stream_filter_append() can cause segfault) 2005-12-23 14:32:11 +00:00
Rui Hirokawa cf90abfc24 MFH: fixed #28899 mb_substr() and substr() work differently when mbstring.func_overload is enabled. 2005-12-23 11:15:16 +00:00
Marcus Boerger 35343ffaec - MFH Do not test output escaping here 2005-12-23 08:44:43 +00:00
Edin Kadribasic a151e632d5 MFH: Back out a portion of the previous patch which broke win32 file functions 2005-12-22 21:33:38 +00:00
Marcus Boerger 3515689363 \# Damn ! 2005-12-22 20:27:11 +00:00
Marcus Boerger 8c4d236546 - MFH Point to README.TESTING 2005-12-22 20:24:46 +00:00
Andrey Hristov a0872d6bed BFN
#if it is not clear from the previous commit that fixes the bug. the leaks
#does not come from the fix bug from some other bug.
2005-12-22 18:13:47 +00:00
Andrey Hristov 1c0971f3ce fix for bug# 35759
(mysqli_stmt_bind_result() makes huge allocation when column empty)
#this shows some leaks now, which has to be investigated but closes the
#bug report.
2005-12-22 18:11:39 +00:00
Dmitry Stogov 9c2ea13abc Fixed bug #35612 (iis6 Access Violation crash). (alacn dot uhahaa at gmail dot com) 2005-12-22 16:46:15 +00:00
Zeev Suraski a034972797 Fix prototype 2005-12-22 14:55:55 +00:00
Ilia Alshanetsky 7c17499079 5.1.2RC1 2005-12-22 14:17:56 +00:00
Dmitry Stogov ad90780930 Fixed memory leak 2005-12-22 09:16:11 +00:00
Marcus Boerger c5b4115fd6 - Find lib in default locations, too 2005-12-22 08:57:38 +00:00
Marcus Boerger 7f6018aa3a - WS 2005-12-22 00:37:07 +00:00
Marcus Boerger 53e37ac843 - Fix memleak 2005-12-22 00:35:37 +00:00
Antony Dovgal c01d79b2df merge two skipif entries 2005-12-22 00:19:28 +00:00
Marcus Boerger 0986f33d1e - Fix memleak 2005-12-22 00:06:38 +00:00
foobar 34ff54e4c7 Better be a bit more verbose 2005-12-21 22:48:50 +00:00
Frank M. Kromann a7d2ac4189 Fix #35730 Use correct character encoding with FreeTDS 2005-12-21 22:43:06 +00:00
Marcus Boerger 970298401b - MFH Add --[keep|show]-[all|skip|php] switches 2005-12-21 22:23:55 +00:00
Marcus Boerger fc0fe6472e - MFH Add missing skipif 2005-12-21 22:22:33 +00:00
foobar 59aecb1d88 MFH:- Fixed bug #35461 (Ming extension fails to compile with ming 0.3beta1) 2005-12-21 21:44:15 +00:00
Marcus Boerger fe3f66e188 - We need to store the length of the class name 2005-12-21 20:05:24 +00:00
Ilia Alshanetsky 8710b8c5f5 Don't lose track of exec() errors in pdo_sqlite2 2005-12-21 16:23:12 +00:00
foobar d09ad216a0 MFH: prevent compile failure with --disable-all 2005-12-21 14:22:26 +00:00
Antony Dovgal 604990d6a5 fix test, add test for 64bit platform 2005-12-21 12:16:20 +00:00
Antony Dovgal b7d5d7047b fix test 2005-12-21 11:46:26 +00:00
Antony Dovgal c92ae847c7 add missing skipif conditions
fix existing ones
2005-12-21 11:42:06 +00:00
Antony Dovgal 97200944d2 add skipif conditions 2005-12-21 10:49:51 +00:00
Antony Dovgal fb607b0327 BFN 2005-12-21 10:21:31 +00:00
Antony Dovgal 81a2bacdc4 fix #35760 (sybase_ct doesn't compile on Solaris) 2005-12-21 10:18:32 +00:00
Pierre Joye f90214347e - MFH: add tests, ~70% coverage 2005-12-21 03:58:59 +00:00
Pierre Joye d831a501f7 - MFH: typo in error msg 2005-12-21 02:59:50 +00:00
Pierre Joye ab056b02a1 - fix {{{ 2005-12-21 01:12:24 +00:00
Marcus Boerger 8e43f0085b - Apply workaround only when neccessary 2005-12-20 21:38:28 +00:00
Marcus Boerger eb99c74567 - MFH move zend_object_Value definition to zend_types.h 2005-12-20 21:37:52 +00:00
Marcus Boerger af264f6f0d - MFH add Z_OBJVAL*() macros 2005-12-20 21:37:19 +00:00
Marcus Boerger 81c25d8700 - Get rid of compiler warnings (both postgres an dphp use these defines) 2005-12-20 21:10:43 +00:00
Derick Rethans 48336bcd71 - 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:58:44 +00:00
Derick Rethans f0a0f89a2c - MFH: Fixed bug #35660 (AIX TZ variable format not understood, yields UTC
timezone).
2005-12-20 19:54:10 +00:00
Antony Dovgal 3782a4acf2 fix test description 2005-12-20 17:00:24 +00:00
Antony Dovgal 670b075f87 fix notice 2005-12-20 16:17:30 +00:00
Derick Rethans 97ec0f3db5 - Fixed bug #35699 (date() can't handle leap years before 1970). 2005-12-20 15:58:01 +00:00
Ilia Alshanetsky 3450841dbe Updated libsqlite in ext/pdo_sqlite to 3.2.8. 2005-12-20 15:33:03 +00:00
Ilia Alshanetsky 61c9b22536 Updated libsqlite in ext/sqlite to 2.8.17.
Use in-memory database for tests.
2005-12-20 15:26:26 +00:00
Ilia Alshanetsky 5961160f95 Proper error handling for persistent connections. 2005-12-20 14:50:12 +00:00
Ilia Alshanetsky cd82349b9e Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any
string greater then 255 characters).
2005-12-20 14:24:24 +00:00
Ilia Alshanetsky 5df2f5df42 Fixed bug #31347 (is_dir and is_file (incorrectly) return true for any string
greater then 255 characters).
2005-12-20 14:24:14 +00:00
Antony Dovgal efff8a45e2 more SPL leak fixes 2005-12-20 12:41:24 +00:00
Antony Dovgal 9255733c4f fix leak appearing when __autoload() throws an exception 2005-12-20 11:25:34 +00:00
Antony Dovgal 84326a9b72 add test for #35740 2005-12-20 09:51:53 +00:00
Antony Dovgal aec3b4e73c fix #35740 (memory leak when including a directory) 2005-12-20 09:47:57 +00:00
Ilia Alshanetsky 4e09db1dbf Fixed possible memory corruption. 2005-12-19 16:33:46 +00:00
Rob Richards 78244d64af BFN 2005-12-19 14:18:05 +00:00
Rob Richards fc4ebee3e3 MFH: Fixed bug #35447 (xml_parse_into_struct() chokes on the UTF-8 BOM)
add test
2005-12-19 14:17:30 +00:00
Antony Dovgal 2a130b19fc fix possible reads of uninitialized memory (reproducible only on 64bit platforms) 2005-12-19 13:53:06 +00:00
Derick Rethans e8a7e6a8cf - Upgraded timezone database to 2005.17. 2005-12-19 13:31:08 +00:00
Derick Rethans 7b581f6d19 - MFH: Merged new timelib, which is a bit more cleverer
- MFH: Support "UTC" in strtotime() properly.
- MFH: Added astro code, which is going to form the base for the new sunfuncs.
2005-12-19 13:00:37 +00:00
Marcus Boerger 32220d2e7e - Check for result of getIterator() call 2005-12-19 00:45:28 +00:00
Marcus Boerger e989e9f70f - Fix reference counting 2005-12-19 00:32:51 +00:00
foobar ae5204a02a MFH: - Fixed bug #35723 (xmlrpc_introspection.c fails compile per C99 std) 2005-12-18 22:59:57 +00:00
Antony Dovgal 9e8a1bfcbe fix leak in SPL iterators 2005-12-18 22:52:24 +00:00
Antony Dovgal 8aedeb8513 tix fypo 2005-12-18 21:17:07 +00:00
Antony Dovgal 0d38bc9f80 MFH: more spelling fixes 2005-12-18 21:01:27 +00:00
Antony Dovgal 5500dea5f1 MFH: fix spelling 2005-12-18 20:57:27 +00:00
foobar 93d339bede touch with re2c 0.9.11 2005-12-18 20:01:22 +00:00
Ilia Alshanetsky 2a29db4b2b Fixed UTC handling problem stemming from an earlier fix for bug #35422. 2005-12-18 16:15:45 +00:00
Derick Rethans 20b97141d4 - Those should be lower case only. 2005-12-18 16:06:57 +00:00
Zeev Suraski 5238fb0bee Fix prototypes 2005-12-18 15:58:51 +00:00
Marcus Boerger 86ecf121e5 - MFH Fix --version 2005-12-18 15:47:07 +00:00
Zeev Suraski b1264f7172 prototype fix 2005-12-18 15:46:46 +00:00
Zeev Suraski 99cd9ed713 Fix protos 2005-12-18 15:40:34 +00:00
Zeev Suraski 59dc41f761 Fix prototype 2005-12-18 15:38:08 +00:00
Marcus Boerger 2b413f7af2 - MFH End test script when detecting '===DONE===' that way showing memleaks 2005-12-18 14:50:33 +00:00
Ilia Alshanetsky 6654b31e26 fixed test for ZTS 2005-12-18 14:22:48 +00:00
Ilia Alshanetsky b6f856fbec Test fixes 2005-12-18 14:21:27 +00:00
Zeev Suraski 2f3678eb44 Fix prototype 2005-12-18 14:00:23 +00:00
Marcus Boerger 8d4080a6e1 - MFH Add missing prefixes 2005-12-18 13:01:20 +00:00
Marcus Boerger 29f5ce9af3 - MFH Speling 2005-12-18 12:54:41 +00:00
Antony Dovgal 46f922bdf7 MFH: fix possible usage of uninitialized variable 2005-12-18 12:50:28 +00:00
Marcus Boerger 6370ae56ed - MFH Increase timeut for -m testing 2005-12-18 12:08:18 +00:00
foobar a9ffac3eda it is easier to spot fixes when you know what and where something was fixed 2005-12-18 00:07:40 +00:00
foobar 5da39c99c6 fix news 2005-12-18 00:02:35 +00:00
Ilia Alshanetsky 58bd1ac860 bug fixing news 2005-12-17 20:09:08 +00:00
Ilia Alshanetsky ab55ed15d5 Fixed parameter parsing for setIndent() method. 2005-12-17 20:04:57 +00:00
Ilia Alshanetsky b83a0eb10c Fixed memory corruption when FETCH_LAZY mode is being used. 2005-12-17 20:00:00 +00:00
Ilia Alshanetsky 8370e1aca4 Fixed uninitialized variable in a test. 2005-12-17 19:57:37 +00:00
Ilia Alshanetsky f7276af1c6 Fixed compiler warning 2005-12-17 18:26:15 +00:00
Ilia Alshanetsky c2ed71a879 Retry on failed prepare resulting from duplicate statement name. 2005-12-17 17:59:05 +00:00
Pierre Joye 94518ca8e4 - add leaks fix in imagecreatefromstring 2005-12-17 17:52:44 +00:00
Pierre Joye 1024844a41 - MFH:
- fix leaks and wrong error when invalid/empty string are given to
  imagecreatefromstring
- add test for imagecreatefromstring
- add test for palettecopy
2005-12-17 17:46:59 +00:00
Ilia Alshanetsky 87db368a75 Added token for capturing arbitrary whitespace blocks inside text. 2005-12-17 16:33:38 +00:00
Antony Dovgal bfb72e0c08 change int to long and fix valgrind warnings 2005-12-17 16:07:47 +00:00
Marcus Boerger 905007669d - BFN 2005-12-17 15:53:40 +00:00
Marcus Boerger 18a99796ad - MFH Fix Bug #35720 A final constructor can be overwritten 2005-12-17 15:51:52 +00:00
Marcus Boerger adc26d2bca - Fix export 2005-12-17 15:41:56 +00:00
Marcus Boerger 8c991f6a49 - Add optional dependency to ext/dom 2005-12-17 15:40:37 +00:00
foobar 849a614275 - Fix test 2005-12-17 14:54:41 +00:00
Marcus Boerger 70a53e10c6 - Simplify (+fix memleak) 2005-12-16 23:58:38 +00:00
Andrei Zmievski e6ae0e99c3 MFH 2005-12-16 22:45:12 +00:00
Marcus Boerger e4210e3851 - Drop superflous param 2005-12-16 22:38:17 +00:00
Ilia Alshanetsky 579e00d489 Fixed bug #35705 (strtotime() fails to parse soap date format without TZ). 2005-12-16 22:36:46 +00:00
Antony Dovgal dfcc155c76 fix compile warning with Apache2 and Zend VM disabled
(someone forgot to do MFH)
2005-12-16 22:29:34 +00:00
Marcus Boerger 69fdadf1a0 - Add SplTempFileObject to output 2005-12-16 22:29:02 +00:00
Marcus Boerger 10f77a5d71 - Add/fix tests 2005-12-16 22:19:02 +00:00
Marcus Boerger 4bb39ad2a5 - Fix is_callable usage 2005-12-16 22:18:11 +00:00
Marcus Boerger 57492cc2d4 - Provide better error message when using illegal function 'pointers' 2005-12-16 22:17:32 +00:00
Marcus Boerger 0cd997d79c - Simplify and synch is_callable_ex() with actual execution code
. Allow array($this, 'parent::method') for function 'pointers'
  . Spit out E_STRICT in case of erroneous use of function 'pointers'
2005-12-16 22:15:41 +00:00
Antony Dovgal 418223e2f6 fix #35713 (getopt() returns array with numeric strings when passed options like '-1') 2005-12-16 20:09:16 +00:00
Antony Dovgal 17907a50cd fix test
add new one for 64bit only
2005-12-16 15:52:09 +00:00
Antony Dovgal 460a4fecef fix test 2005-12-16 14:57:29 +00:00
Antony Dovgal 8fee6ac1e2 fix test 2005-12-16 14:50:47 +00:00
Ilia Alshanetsky 84cd3c125c Cleanup code and prevent usage of uninitialized variable. 2005-12-15 22:54:15 +00:00
Antony Dovgal 33c87b395f MFH: fix #35692(iconv_mime_decode() segfault, with libiconv only) 2005-12-15 22:49:22 +00:00
Ilia Alshanetsky bdf9c4d15c Fixed bug #35694 (Improved error message for invalid fetch mode). 2005-12-15 22:33:02 +00:00
Antony Dovgal a91f9fb786 MFH: fix #35690 (pack() tries to allocate huge memory block when packing float values to strings) 2005-12-15 22:15:01 +00:00
Antony Dovgal 9417c070f6 MFH: fix C++ comments in C code 2005-12-15 13:58:10 +00:00
Ilia Alshanetsky cb3cca21b3 Fixed possible memory corruption inside mb_strcut(). 2005-12-15 03:36:53 +00:00
Frank M. Kromann 67313884c1 Export symbols needed by pecl/http 2005-12-15 02:25:58 +00:00
Marcus Boerger 5c8027584f - MFH Fix issue spotted by Wez using ms vc 2005 2005-12-14 09:55:11 +00:00
Wez Furlong 85a578e029 Possible fixes for #35552, #35592 and #35620. 2005-12-14 04:56:22 +00:00
Ilia Alshanetsky 00b9392bf5 Fixed bug #35571 (Fixed crash in Apache 2 SAPI when more then one php
script is loaded via SSI include).
2005-12-14 03:36:44 +00:00
Wez Furlong b041abbb4e Fixes for building with vs.net 2005. 2005-12-14 02:01:13 +00:00
Antony Dovgal 1b7e3fe2a5 MFH: fix spelling and #35665 2005-12-14 00:54:29 +00:00
Marcus Boerger 71c7cdb7d9 - Fix temp/memory stream modes 2005-12-14 00:06:09 +00:00
Antony Dovgal f7aec44aee MFH: use default colors to prevent any problems with existing php.ini 2005-12-13 22:32:30 +00:00
Antony Dovgal 6c65d6df59 add new test 2005-12-13 21:43:36 +00:00
Ilia Alshanetsky 3ce27140dc Fixed bug #35655 (whitespace following end of heredoc is lost). 2005-12-13 20:55:42 +00:00
Antony Dovgal 900d49a553 add missing .cvsignore files 2005-12-13 20:18:50 +00:00
Ilia Alshanetsky cdb699b497 Fixed bug #35630 (strtotime() crashes on certain relative identifiers). 2005-12-13 02:28:39 +00:00
Antony Dovgal bc22352c30 fix tests and their skip conditions 2005-12-12 21:21:11 +00:00
foobar f94b3012bd MFH 2005-12-12 19:45:01 +00:00
Marcus Boerger 882a9effe6 - Enforce termination to prevent possible SEGVs 2005-12-12 19:10:12 +00:00
foobar a8a4d7944d - Always use the builddir! 2005-12-12 12:39:50 +00:00
foobar a939717011 MFH: - added missing configure help line 2005-12-12 12:20:55 +00:00
foobar ec4fd02760 MFH 2005-12-12 11:51:45 +00:00
foobar d43833ecff MFH: cleanup test outputs 2005-12-12 11:49:45 +00:00
foobar 379cd5a6df MFH:- Include timestamp for the leaks. (to make possible matching leaks with access_log entries) 2005-12-12 11:00:57 +00:00
Dmitry Stogov db312cf18e Fixed bug #35570 (segfault when re-using soap client object) 2005-12-12 09:25:23 +00:00
Ilia Alshanetsky a74463e9bd Fixed bug #35629 (crash in http:// wrapper on multiple redirects). 2005-12-12 05:04:15 +00:00
foobar ddcc5257ac MFH: - Added missing fold tags 2005-12-11 22:38:38 +00:00
Ilia Alshanetsky f19c2e00ec Fixed bug #35624 (strtotime() does not handle 3 character weekdays).
Improved fix for bug #35414.
2005-12-11 22:35:40 +00:00
foobar 64f82f9c00 fix news 2005-12-11 22:08:43 +00:00
Edin Kadribasic f75efcb505 Bundle update news 2005-12-11 22:03:19 +00:00
Edin Kadribasic 60db0632dd Updated to libxml2 to 2.6.22, thanks to rrichards 2005-12-11 21:54:32 +00:00
Marcus Boerger bac905b982 MFH:
. Change to use sane default flags fro RecursiveDirectoryIterator
 . Drop 2nd parameter from DirectoryIterator::__construct()
2005-12-11 16:43:29 +00:00
Marcus Boerger 9bb52c750c - MFH 2005-12-11 15:29:14 +00:00
Marcus Boerger 85a261bb85 - MFH Fix tests 2005-12-11 14:50:29 +00:00
Marcus Boerger d05c2a40d8 - MFH Revert accidential 'drop in' from 1.227 2005-12-11 12:47:46 +00:00
Marcus Boerger af1d83d783 - Fix MFH (oversight problem) 2005-12-11 12:37:39 +00:00
Marcus Boerger c19fa0bbde - MFH Add method support to --rfunction 2005-12-11 02:41:04 +00:00
Marcus Boerger ba6c82eee9 - MFH --r* switches 2005-12-11 02:17:34 +00:00
foobar b3fc86b5f4 fix news 2005-12-10 18:29:29 +00:00
foobar 933d1d174c MFH 2005-12-10 18:26:52 +00:00
Ilia Alshanetsky 5e9c6555ad Fixed typo in gcov output filename 2005-12-09 21:40:24 +00:00
Rob Richards cc96967132 MFH: allow NULL prefix to create default namespace
fix tests
2005-12-09 20:52:15 +00:00
Antony Dovgal ca42324497 php_stream_get_line() is a macro and it already has TSRMLS_CC 2005-12-09 18:53:09 +00:00
Pierre Joye 7a6ac7ce16 - MFH: no need to test if jpeg support exists 2005-12-09 18:17:02 +00:00
Dmitry Stogov 599221036f Fixed bug #35612 (iis6 Access Violation crash) 2005-12-09 18:10:45 +00:00
Pierre Joye ce90a27a48 - MFH, PNG compression support exposed 2005-12-09 18:07:57 +00:00
Dmitry Stogov 5461b5a6b1 Fixed bug #34429 (Output buffering cannot be turned off with FastCGI) 2005-12-09 17:01:50 +00:00
Dmitry Stogov eef44c609b Fixed possible SIGSEGV (Rob Richards) 2005-12-09 15:29:15 +00:00
Antony Dovgal 4ccdc86561 fix C++ comment 2005-12-09 13:28:10 +00:00
Marcus Boerger b8572a0c9c - MFH Section FILE does not exist for redirection tests 2005-12-09 09:50:30 +00:00
Rob Richards c98ef984d8 MFH: enable a few additional functions
- add tests
2005-12-09 04:57:20 +00:00
Marcus Boerger 6b86285dd2 - MFH Add missing newline 2005-12-09 00:30:41 +00:00
Marcus Boerger fbeb8ae0d4 - Revert piece of MFH that shows an inconsistency - actually we should fix
this fread() issue.
2005-12-09 00:22:21 +00:00
Marcus Boerger a4d0a4c625 - MFH
. Add ability to create temp files in separate dir and keep them.
  . Add ability to create links in html results as table.
2005-12-08 22:51:01 +00:00
Antony Dovgal ccdeb10696 new tests 2005-12-08 22:30:23 +00:00
Antony Dovgal 84051ba42b MFH: improve error message 2005-12-08 22:07:30 +00:00
Antony Dovgal c287dec802 MFH: add 1 to the max_length to keep \0 at its place 2005-12-08 21:22:52 +00:00
Ilia Alshanetsky 185f085735 Include a legend in the gcov report (suggestion by Tony). 2005-12-08 21:12:03 +00:00
Antony Dovgal 0d1efb245b MFH: fix segfault in SplFileObject when file doesn't exist or cannot be read 2005-12-08 19:55:13 +00:00
Marcus Boerger 25de19a2fb - MFH Change dba/db4 to use its own locking 2005-12-08 19:35:05 +00:00
Ilia Alshanetsky 484de9c3a4 Added myself to a list of extensions/sapis I try to maintain. 2005-12-08 17:06:59 +00:00
Ilia Alshanetsky 25670c59d3 Final fix for gcov generation. 2005-12-08 16:00:28 +00:00
Ilia Alshanetsky b30602b78b Fixed bug #35594 (Multiple calls to getopt() may result in a crash). 2005-12-08 03:25:22 +00:00
Ilia Alshanetsky 3d4c1d6886 Improve fix for bug #35382 2005-12-08 03:09:14 +00:00
Ilia Alshanetsky 644cf05505 Fixed bug #34359 (Possible crash inside fopen http wrapper). 2005-12-08 02:53:08 +00:00
Michael Wallner 90bdbfa921 - release 1.1 2005-12-07 19:53:34 +00:00
Michael Wallner 24d824d4e8 - fix PECL bug #6283 - haval source file entries are missing in package.xml 2005-12-07 18:41:14 +00:00
Marcus Boerger 2d234ec4ac - Readd the file in this branch 2005-12-07 17:44:43 +00:00
Ilia Alshanetsky d5bb2e38ef Undo accidental revert of patch for bug #34729 2005-12-07 17:36:17 +00:00
Dmitry Stogov 9e8bf1a20f Fixed bug #33394 (Socket Timeout on SOAP request causes general exception in Apache process). 2005-12-07 13:56:18 +00:00
foobar bfa084ddba MFH:- Made tests that require CGI skipped if it is not available 2005-12-07 11:28:58 +00:00
foobar 241659ff70 MFH: fixed wrong logic 2005-12-07 11:12:52 +00:00
foobar e5bd8e32f5 MFH: fixed error messages 2005-12-07 10:08:42 +00:00
Rob Richards 5b561a6df3 MFH: fix res parameter typos
- add test
2005-12-07 05:09:33 +00:00
Ilia Alshanetsky 2796160d15 Better critical error handling (fix for previous html encoding patch). 2005-12-07 02:37:05 +00:00
Ilia Alshanetsky 0e46f5113c Fixed filename picker.
Various modernizations of the script.
2005-12-07 02:01:58 +00:00
Ilia Alshanetsky 24af85dfe9 Fixed memory leak 2005-12-07 01:29:14 +00:00
Marcus Boerger 8c8907458c - MFH
. 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)
  . Show list of leaked files in summary if any
  . Use basename correct
2005-12-07 00:03:46 +00:00
Ilia Alshanetsky 481ec28566 Fixed bug #30760 (Remove MessageBox on win32 for E_CORE errors if
display_startup_error is off).
2005-12-06 23:32:06 +00:00
Marcus Boerger 5e223ad13b - Fix TSRM 2005-12-06 21:44:15 +00:00
Antony Dovgal 31c35e5cad add 4 new tests
remove ENV tag from the old ones
2005-12-06 19:28:25 +00:00
Sara Golemon 2b059ae91f MFH: (r-1.104) 2005-12-06 19:15:41 +00:00
Antony Dovgal dfba12435d use strlen() to get correct element length 2005-12-06 18:53:35 +00:00
Ilia Alshanetsky 085ff7f19b Fixed build of mssql extension. 2005-12-06 18:47:14 +00:00
Sara Golemon 5fd5bead8a Prep for release 2005-12-06 17:54:24 +00:00
Ilia Alshanetsky f2415625d4 MFH: Prevent header injection by limiting each header to a single line. 2005-12-06 03:39:45 +00:00
Ilia Alshanetsky aa1b0709f2 Fixed possible XSS inside error reporting functionality. 2005-12-06 03:09:24 +00:00
foobar 684d68bb27 MFH: fix docs 2005-12-06 02:30:18 +00:00
foobar 3e669bc950 MFH: nuke php3 legacy 2005-12-06 02:28:41 +00:00
foobar 347032c753 sync with HEAD 2005-12-06 02:21:01 +00:00
foobar a4295629b8 MFH 2005-12-06 02:00:14 +00:00
foobar 06b36f7cea MFH: nuke php3 legacy 2005-12-06 01:40:06 +00:00
foobar 253392f64f MFH: nuke php3 legacy 2005-12-06 01:26:44 +00:00
foobar 635e2bb028 MFH 2005-12-06 01:25:16 +00:00
foobar 4e874820e9 MFH: nuke php3 legacy 2005-12-06 01:21:28 +00:00
foobar b9af8f2719 MFH: nuke php3 legacy 2005-12-06 01:14:02 +00:00
foobar d95275052b MFH 2005-12-06 01:08:49 +00:00
foobar a3c0b190d1 MFH 2005-12-06 00:54:15 +00:00
foobar 9e1c5a32a3 MFH 2005-12-06 00:43:44 +00:00
foobar 4cbde95247 MFH 2005-12-05 23:53:05 +00:00
foobar a3af52c11e MFH: list_entry -> zend_rsrc_list_entry 2005-12-05 23:38:04 +00:00
foobar d0a54af4c5 MFH: Nuke php3 legacy 2005-12-05 22:54:01 +00:00
foobar f20a62b164 MFH:- Do not use the PHP3 era names 2005-12-05 22:43:14 +00:00
foobar f58f7f4e67 MFH: fix typo 2005-12-05 22:41:10 +00:00
foobar 66832decc5 MFH 2005-12-05 22:39:03 +00:00
foobar bbe1f9d280 MFH 2005-12-05 22:21:56 +00:00
Brian France 7154c617bf Wrap the php_session.h include in the same ifdef as the rest of the
session code.
2005-12-05 20:40:54 +00:00
Antony Dovgal 6aba1816ee more typos fixed (thanks to Mike Naberezny for noticing these) 2005-12-05 20:06:33 +00:00
Stanislav Malyshev 3eafc3d329 fix reallocation bug 2005-12-05 19:54:47 +00:00
Ilia Alshanetsky 937e9f801d Fixed bug #35558 (mktime() interpreting 3 digit years incorrectly). 2005-12-05 17:27:02 +00:00
Antony Dovgal 4ce11c2a63 improve error messages 2005-12-05 13:39:52 +00:00
Antony Dovgal 012e5bf4cd add NEWDECIMAL, NEWDATE, GEOMETRY, SET and ENUM field types 2005-12-05 13:22:14 +00:00
Antony Dovgal ab34dafb69 fix #35536 (mysql_field_type() doesn't handle NEWDECIMAL)
add also SET, ENUM, NEWDATE and GEOMETRY to the switch
2005-12-05 13:16:48 +00:00
Dmitry Stogov 9ee0707cfa Fixed bug #35509 (string constant as array key has different behavior inside object) 2005-12-05 08:56:09 +00:00
Ilia Alshanetsky 6abf54a489 Avoid gcov conflicts on non-unique filenames 2005-12-05 04:22:16 +00:00
foobar 55a299075b fix branches 2005-12-04 23:19:44 +00:00
Wez Furlong 17683295e4 switch to package2.xml 2005-12-04 22:34:26 +00:00
Wez Furlong bd0aaa0198 Fix PECL #6138 2005-12-04 18:33:26 +00:00
Ilia Alshanetsky 66fbae9d75 Added tests for new parse_url() and http_build_query() functionality. 2005-12-04 17:58:15 +00:00
Ilia Alshanetsky 2994c23670 MFH:
Added 2nd optional parameter to parse_url() that allows retrieval of
individual URL components.
Added 3rd optional parameter to http_build_query() that allows custom param
separator.
2005-12-04 17:44:27 +00:00
Ilia Alshanetsky eb83ca1cd3 load proper header file 2005-12-04 17:41:02 +00:00
Ilia Alshanetsky 15afc78f85 Fixed bug #35062 (socket_read() produces warnings on non blocking sockets). 2005-12-04 17:30:43 +00:00
Ilia Alshanetsky b01f5b35f5 Fixed gcov for generated files 2005-12-04 17:27:34 +00:00
Ilia Alshanetsky 58c05c04f4 Regen files so they work properly with gcov. 2005-12-04 17:25:05 +00:00
foobar d1ce095f84 reorder,reword 2005-12-04 14:10:22 +00:00
Antony Dovgal b09703e921 BFN 2005-12-04 11:47:18 +00:00
Antony Dovgal ca0d712c3c MFH: fix #35539 (typo in error message for ErrorException) 2005-12-04 11:47:00 +00:00
Antony Dovgal d72347f7bc MFH: fix #35543 (php crash when calling non existing method of a class that extends PDO) 2005-12-04 11:41:13 +00:00
Antony Dovgal 6190512876 MFH: fix typos in xmlwriter/config.m4 2005-12-04 00:21:39 +00:00
Antony Dovgal 3f666e1dfe MFH: add declarations
more uint -> size_t fixes
2005-12-03 23:50:33 +00:00
Antony Dovgal bb6aa3ebd3 fix #35538 (new "hash" extensions does not compile on amd64) 2005-12-03 23:31:14 +00:00
Antony Dovgal 7cf9dfe237 add .cvsignore 2005-12-03 23:27:59 +00:00
Antony Dovgal d66e492c3d MFH: yet another compile warning 2005-12-03 23:24:29 +00:00
Antony Dovgal 72e366657b MFH: fix compile warning 2005-12-03 23:20:07 +00:00
foobar c7c71b8530 MFH: - Fix bug #35530 (ext/bz2 compile failure with phpize) 2005-12-03 13:23:14 +00:00
Michael Wallner 3cfdbdbd12 - add adler32 test 2005-12-03 10:31:01 +00:00
Michael Wallner c6fb5f38c0 MFH: fix ws 2005-12-03 10:25:31 +00:00
Michael Wallner 7d8d573f0d - add test to package.xml 2005-12-03 10:19:50 +00:00
Michael Wallner f5fae65194 MFH: add crc32 test 2005-12-03 10:18:38 +00:00
foobar bde40a73db MFH: fix possible compile error 2005-12-03 01:28:16 +00:00
foobar ee372651d0 MFH: fix bug #35528 2005-12-03 01:23:25 +00:00
Sara Golemon 860c3a5a32 MFH: Add MD4 2005-12-03 01:17:48 +00:00
foobar 6c3e2b32bf MFH 2005-12-03 01:12:45 +00:00
foobar ef7cb6880f MFH 2005-12-03 01:07:00 +00:00
foobar 4bfba57f96 MFH 2005-12-03 00:00:55 +00:00
Ilia Alshanetsky 40ad5745a7 Regenerate file to be more gcov friendly 2005-12-02 17:32:36 +00:00
Marcus Boerger e9f5066faa - MFH Be picky about names 2005-12-02 16:00:45 +00:00
foobar 2e3ae884fb - touch with correct re2c version and correct options 2005-12-02 13:16:38 +00:00
foobar 2196bda958 - Fix warning 2005-12-02 13:15:58 +00:00
Michael Wallner ab6a987f86 MFJ: use --enable instead of --with 2005-12-02 10:55:33 +00:00
foobar ee72c31788 MFH 2005-12-02 08:59:35 +00:00
Ilia Alshanetsky 2fae8d37c0 Enable hash & xmlwriter by default 2005-12-02 02:18:54 +00:00
Ilia Alshanetsky bcd9356df5 Added xmlwriter to 5.1 2005-12-02 02:05:26 +00:00
Ilia Alshanetsky 950de07889 Added hash extension to PHP 5.1 2005-12-02 01:59:48 +00:00
Michael Wallner 20c3b72bf0 - export everything we've got aliases for 2005-12-01 21:07:52 +00:00
Michael Wallner 039c69da18 - use php_pcre aliases 2005-12-01 20:53:35 +00:00
Antony Dovgal 06c57b7d55 tweak fix a bit
(by request of Wez)
2005-12-01 20:39:12 +00:00
foobar b935f6f13a - Fix paths for --enable-gcov usage
# re2c -b -o ext/pdo/pdo_sql_parser.c ext/pdo/pdo_sql_parser.re
2005-12-01 20:28:27 +00:00
Michael Wallner 7901a6dbef MFH: ext/filter will need those exports
# php_compat.h still prevents linking
2005-12-01 20:07:34 +00:00
Antony Dovgal b45292a819 BFN 2005-12-01 20:01:33 +00:00
Antony Dovgal 59087fee52 MFH: fix #35508 (PDO fails when unknown fetch mode specified) 2005-12-01 19:59:58 +00:00
Antony Dovgal fc8d9584b1 fix Win32 compile failure 2005-12-01 19:25:48 +00:00
Antony Dovgal bd8df0b32a add 2 new tests
now we have one extension absolutely covered by tests, yay! =)
2005-12-01 18:22:11 +00:00
Ilia Alshanetsky 4e03ce9fc5 Fixed memory leaks 2005-12-01 16:33:01 +00:00
Ilia Alshanetsky f4248e51a4 Fixed bug #35499 (strtotime() does not handle whitespace around the date
string).
2005-12-01 16:24:52 +00:00
foobar f74f26f487 fix news 2005-12-01 15:29:40 +00:00
Andrey Hristov c23052d6d2 fix compile failure on Windows - Microsoft hasn't heard of long long :) 2005-12-01 14:12:56 +00:00
Antony Dovgal 7a652e397b fix #35490 (socket_sendto() unable to handle IPv6 addresses) 2005-12-01 14:02:54 +00:00
Antony Dovgal f496bf9dda MFH: fix potential problem in php_oci_bind_post_exec() when OCIDateToText() fails 2005-12-01 13:47:22 +00:00
Antony Dovgal da6e561d2b announce the OCI8 upgrade in the news entry 2005-12-01 13:41:53 +00:00
Antony Dovgal 3756201e04 upgrade bundled OCI8 to v.1.1 2005-12-01 13:39:48 +00:00
Dmitry Stogov 916ad6c8f7 Fixed bug #35437 (Segfault or Invalid Opcode 137/1/4) 2005-12-01 12:50:58 +00:00
Dmitry Stogov 8768ab94b3 Fixed bug #34729 (Crash in ZTS mode under Apache) 2005-12-01 11:48:17 +00:00
Rob Richards 673dc5ee5f fix build - zend_reflection_api.c is no more 2005-12-01 11:11:46 +00:00
Andrey Hristov c1cb5e6885 mysqli is since many months not experimental
add myself as maintainer. discussed with georg.
2005-12-01 09:49:48 +00:00
foobar 8c7f03c8a4 MFH: - Fix paths for --enable-gcov 2005-12-01 09:34:20 +00:00
foobar 0a1ba06e5d MFH: - Use correct configure option style. Enabled by default. 2005-12-01 08:54:22 +00:00
Wez Furlong c83472edf1 prep for release 2005-12-01 05:16:24 +00:00
foobar d23ad35375 sync with docs (?) 2005-12-01 00:42:13 +00:00
Ilia Alshanetsky ae07423bcd Fixed bug #35496 (Crash in mcrypt_generic()/mdecrypt_generic() without
proper init).
2005-11-30 23:51:25 +00:00
Antony Dovgal 9c2183f622 add new test
improve gcov stats =)
2005-11-30 23:34:08 +00:00
Ilia Alshanetsky 911355bee8 Fixed memory leak 2005-11-30 23:27:15 +00:00
foobar de8052aa41 MFH 2005-11-30 22:47:03 +00:00
Marcus Boerger 279e4f7219 - Reflection was moved into its own extension 2005-11-30 21:58:01 +00:00
Marcus Boerger 7cb0480d04 - Moved reflection into its own extension 2005-11-30 21:53:20 +00:00
Marcus Boerger 16177d63f2 - MFH Move reflection to its own extension
# As discussed with RM
2005-11-30 21:46:26 +00:00
Ilia Alshanetsky c60079862b Fixed bug #35410 (wddx_deserialize() doesn't handle large ints as keys
properly).
2005-11-30 18:10:19 +00:00
Andrey Hristov a8a55dc086 BFN 2005-11-30 16:23:20 +00:00
Andrey Hristov 4ec16344a9 add a test case
fix incorrect handling of unsigned bigint.
optimize handling of unsigned int
2005-11-30 16:20:25 +00:00
Andrey Hristov a8c0463961 fix more leaks. handle better unknown type (4.1.x connected to 5.0.x
incompatibility)
2005-11-30 15:26:41 +00:00
foobar 5b6cc7d96c MFH: - Fix the ccache detection 2005-11-30 15:01:34 +00:00
foobar e20b4ab640 bfn 2005-11-30 12:35:55 +00:00
Andrey Hristov b6b6ec2a97 BFN 2005-11-30 11:38:11 +00:00
Andrey Hristov c230f7defb fix a crash and a leak.
4.1.15 (client) -> 5.x (server) because of the incompatibility because of
decimal in the protocol binding may fail. Don't close the statement in
that case because subsequent ->execute() will crash or any other function
that will try to use already freed (and in debug mode thrashed) pointer.
#probably more problems exist because of the 4.1.x -> 5.x protocol
#incompatibility
2005-11-30 11:35:03 +00:00
Antony Dovgal 22efcfd530 MFH: fix possible crash in pdo_mysql_stmt_dtor() 2005-11-30 11:33:07 +00:00
Dmitry Stogov 6357acc086 *** empty log message *** 2005-11-30 10:30:38 +00:00
Dmitry Stogov 0a5d10a5b9 Fixed bug #35373 (HP-UX "alias not allowed in this configuration") 2005-11-30 10:29:44 +00:00
Dmitry Stogov 02aad34c43 Fixed bug #35470 (Assigning global using variable name from array doesn't function) 2005-11-30 10:09:37 +00:00
Wez Furlong 7eb04b7907 Fix dep usage; it must appear after the PHP_NEW_EXTENSION line.
pdo and spl are both optional dependencies.
2005-11-30 04:50:03 +00:00
Wez Furlong 046bff25fb Fix bugs #35379 and #35432 by erroring out when the user configures PHP
extensions with conflicting options.

Jani, feel free to refine the way that extensions are detected as shared :)

For this to be foolproof, we either need to guarantee that the extensions have
their PHP_NEW_EXTENSION invoked in the right sequence.  Eg: PDO should be
handled in the configure script before any of the extensions that depend on it
are handled... tricky.

By happy coincidence, the alphabet ensures that pdo is configured before all
the pdo_ extensions, and also before sqlite, so this works for now.
2005-11-30 04:47:24 +00:00
Wez Furlong 559c624806 Fix PECL Bug #6102; fails to configure for instant client on OSX.
In addition, make it work for the instant client install on my gentoo box.
2005-11-30 03:18:09 +00:00
foobar 30dc899c2e MFH: - Added --enable-gcov configure option to enable C-level code coverage. 2005-11-29 23:20:01 +00:00
Ilia Alshanetsky ea80259eb3 Fixed ZTS build 2005-11-29 23:10:15 +00:00
foobar 49f673979b - automake is not needed 2005-11-29 22:41:15 +00:00
foobar 128119b9ab MFH 2005-11-29 22:39:19 +00:00
Ilia Alshanetsky 6f5b9894a2 Added missing support for 'B' format identifier to date() function. 2005-11-29 20:43:53 +00:00
Ilia Alshanetsky 820b5aa9e4 Fixed bug #35425 (idate() function ignores timezone settings). 2005-11-29 20:19:56 +00:00
Antony Dovgal 28dfe0dfd9 remaining part of the fix (-o -> ||) 2005-11-29 18:35:26 +00:00
Antony Dovgal 1cbe552f4d change "-o" to "||" (fixes potential problems on weird systems where test doesn't support -o) 2005-11-29 18:26:02 +00:00
Ilia Alshanetsky d79e01e211 Fixed compiler warnings 2005-11-29 18:17:46 +00:00
foobar 37661c8b39 - Always use the right sed 2005-11-29 17:32:40 +00:00
foobar efcd3e318b cleanup + fix link problems with old mysql versions 2005-11-29 17:31:13 +00:00
Ilia Alshanetsky bc9fc0d6cf Fixed tests 2005-11-29 16:25:16 +00:00
Ilia Alshanetsky 0242b892d2 Fixed bug #35427 (str_word_count() handles '-' incorrectly). 2005-11-29 16:14:19 +00:00
foobar d61e8d63fd - Update bundled libtool to 1.5.20 2005-11-29 15:58:54 +00:00
foobar 5db70599d1 be very clear what you fixed 2005-11-29 08:16:00 +00:00
foobar 4250a26f5c - Regenerated with working re2c and with proper options 2005-11-29 08:10:59 +00:00
Wez Furlong 40666b6708 proto fixups 2005-11-29 04:06:03 +00:00
Marcus Boerger 5d1cf6a544 - BFN 2005-11-29 03:35:33 +00:00
Marcus Boerger 6dec77d25e - MFH Add class SplFileInfo as base for DirectoryIterator and SplFileObject
# As discussed with ilia before 5.1.0
2005-11-29 03:33:59 +00:00
Marcus Boerger 4a400ce14f - BFN (reorder + missed another one) 2005-11-29 03:11:26 +00:00
Marcus Boerger ac48d5d24f - BFN (not to forget this one) 2005-11-29 02:58:20 +00:00
Marcus Boerger 0626f6ca0a - BFN 2005-11-29 02:53:48 +00:00
Marcus Boerger 40a3cdd97b - MFH
. Fix memleaks
  . Add tests
  . Add functions: getNamespaces(), getDocNamespaces()
  . Fixed var_dump()
  . Fixed bugs: #35028 XML object fails FALSE test
# This plan was decided before 5.1.0 came out with ilia and checked again
# just now. The extension currently shows no more memleaks or errors using
# the test suite.
2005-11-29 02:51:07 +00:00
Wez Furlong 131033352d Added PDO::pgsqlLOBCreate(), PDO::pgsqlLOBOpen() and PDO::pgsqlLOBUnlink(). 2005-11-29 02:11:39 +00:00
Ilia Alshanetsky 2ad81f4584 Fixed bug #35414 (strtotime() no longer works with ordinal suffix). 2005-11-29 01:23:29 +00:00
Ilia Alshanetsky 22f2b206b7 Fixed bug #35422 (strtotime() does not parse times with UTC as timezone). 2005-11-28 23:49:25 +00:00
foobar 52e1590285 MFH 2005-11-28 23:04:01 +00:00
Ilia Alshanetsky c2ec68ab62 Fixed bug #35456 (+ 1 [time unit] format did not work). 2005-11-28 22:24:01 +00:00
foobar 26b8b65c18 MFH: - Fixed bug #35409 (undefined reference to 'rl_completion_matches'). 2005-11-28 16:51:16 +00:00
Dmitry Stogov 14594953d2 Fixed bug #35393 (changing static protected members from outside the class, one more reference issue) 2005-11-28 14:33:03 +00:00
Andrey Hristov da9abd8b73 mysql 4.1.x gives strange result. the result in the test is generated with
5.0.16 (valid for 5.1.3).
2005-11-28 13:35:54 +00:00
foobar d69ab24f69 MFH: - Fixed bug #35381 (ssl library is not initialized properly) 2005-11-28 11:37:43 +00:00
Dmitry Stogov 13af4c9a09 Fixed bug #35399 (Since fix of bug #35273 SOAP decoding of soapenc:base64binary fails) 2005-11-28 10:08:34 +00:00
Wez Furlong b15e33f85a prep for release 2005-11-28 06:39:53 +00:00
Wez Furlong d0ea27b802 API for connection dependent objects to add/del refs to dbh's. 2005-11-28 05:23:22 +00:00
foobar 419a9c6cac - Fixed wrong usage of AC_TRY_COMPILE() macro 2005-11-27 23:22:43 +00:00
Antony Dovgal 5a606e0be3 use || instead of -o to support weird systems with old test 2005-11-27 22:59:54 +00:00
Wez Furlong b4dd85ff46 update changelog here too 2005-11-27 21:18:24 +00:00
Wez Furlong 7a05927e44 BFN 2005-11-27 21:17:17 +00:00
Wez Furlong 63dae4ee74 Fix #35431; LAZY fetch and fetchAll == crash.
Lazy makes no sense with fetchAll; disallow it.
2005-11-27 21:01:58 +00:00
Antony Dovgal 6543134dea MFH: fix #35430 (PDO crashes on incorrect FETCH_FUNC use) 2005-11-27 21:01:02 +00:00
Ilia Alshanetsky cdbe4a5cab Improved safe_mode/open_basedir check. 2005-11-27 20:07:36 +00:00
Antony Dovgal 3b3f8137c3 MFH: plug memory leak
fix config.m4
2005-11-27 18:36:11 +00:00
Ilia Alshanetsky 4320984303 Back to dev 2005-11-27 17:29:54 +00:00
foobar 8b443a1851 Back from future 2005-11-27 16:33:18 +00:00
Ilia Alshanetsky b81012c718 removed no longer relevant portion. 2005-11-27 15:39:09 +00:00
Ilia Alshanetsky bd196f4bd0 Adjust news 2005-11-27 15:38:07 +00:00
Ilia Alshanetsky 93608bf8a5 5.1.1 2005-11-27 14:19:40 +00:00
foobar fc34aa8489 fix news 2005-11-27 13:24:53 +00:00
Marcus Boerger e678e7a6af - BFN 2005-11-27 12:24:55 +00:00
Marcus Boerger e8ec9a98dd - Fixed bug #35423 RecursiveDirectoryIterator doesnt appear to recurse with RecursiveFilterIterator 2005-11-27 12:22:54 +00:00
Rob Richards 51e3beb4cb BFN 2005-11-27 12:22:04 +00:00
Rob Richards 934e19107d Fixed bug #35316 (Application exception trying to create COM object) 2005-11-27 12:19:04 +00:00
Marcus Boerger c37b13e0db - MFH Editor blocks 2005-11-27 12:16:14 +00:00
Marcus Boerger 9aebeaaf09 - MFH Synch with what we decided for 5 and what we are practicing since 5 2005-11-27 11:06:07 +00:00
Ilia Alshanetsky b3a48855ab Disabled native date class, to prevent pear::date conflict. 2005-11-27 06:51:43 +00:00
Ilia Alshanetsky 331726338b tokenizer fixes for bug #35382
Bug fixing news
2005-11-27 06:41:32 +00:00
Ilia Alshanetsky 497fae9d1f Fixed bug #35411 (Regression with \{$ handling).
Fixed bug #35382 (Comment in end of file produces fatal error).
2005-11-27 06:39:31 +00:00
Wez Furlong ef08c58664 update the todo list 2005-11-26 21:29:31 +00:00
Wez Furlong 339b4dbd6f going stable 2005-11-26 21:25:39 +00:00
Wez Furlong ab6a675131 going to release 1.0.1 2005-11-26 21:22:49 +00:00
Wez Furlong 426fb96cc9 Doh, need to canonicalize parameter names (by prefixing with :) before
attempting to remap them to positional args.
2005-11-26 21:20:52 +00:00
Ilia Alshanetsky 36d62a2f84 Bug fixing news 2005-11-26 21:04:42 +00:00
Ilia Alshanetsky 0b9f9de012 No longer dev 2005-11-26 21:03:44 +00:00
Wez Furlong 85ad81736c set to 1.0 stable. 2005-11-26 20:50:08 +00:00
foobar 1ea0bae9c0 fix test 2005-11-26 13:38:28 +00:00
Marcus Boerger 57f76446cf - MFH Add new test 2005-11-26 13:23:27 +00:00
Marcus Boerger 0f3d8acfd6 - BFN 2005-11-26 13:12:52 +00:00
Marcus Boerger 46ae03d872 - MFH Fix bug #35406 eval hangs when evall'ed code ends with comment w/o newline 2005-11-26 13:11:26 +00:00
Antony Dovgal 7241dea7ef fix Timezone class too 2005-11-26 12:35:27 +00:00
Antony Dovgal b6307d1014 MFH: fix #35402 (New date class causes crash in get_object_vars()) 2005-11-26 09:40:54 +00:00
Rasmus Lerdorf 4e3cd72df5 Typo 2005-11-26 06:22:14 +00:00
Rui Hirokawa 244c9a4ba0 5th argument of mb_encode_mimeheader() was not acceptable. 2005-11-25 21:55:25 +00:00
Wez Furlong c0c096b752 fix configure 2005-11-25 17:07:49 +00:00
foobar 366832fbd2 MFH: Fixed wrong usage of ZEND_EXTENSION_API_NO (these are not Zend exts :) 2005-11-25 16:01:41 +00:00
Wez Furlong 4e4b98a66d Use right define: ZEND_MODULE_API_NO as these are PHP modules, not Zend extensions 2005-11-25 15:42:26 +00:00
Antony Dovgal dc0db7382c MFH: fix #35391 (pdo_mysql::exec does not return number of affected rows) 2005-11-25 12:56:04 +00:00
Antony Dovgal 350aec954e MFH: ICC doesn't support __attribute__ for pointers 2005-11-25 12:25:05 +00:00
Wez Furlong 7107105429 Update the TODO list. 2005-11-25 07:23:55 +00:00
Wez Furlong 17f504a0ec actually, bytea is not required for LOBs in postgres; good! 2005-11-25 03:37:01 +00:00
Wez Furlong 70331c361e Addresses #35338.
Postgres client API is pretty poor, so we have zero idea about the actual
parameter types in a statement.

We now defer the preparation of a statement until the first call to execute is
made.  At that point, we have the parameters defined by the calling script, so
we can use the typing specified there when we perform the prepare.

For PDO_PARAM_LOB parameters, we set the binary formatting flag.

We can't just set this flag for all parameters, because its meaning is not
"string data, counted length" but "data is in native format".  If this flag is
set for a numeric column and we send the number 1 formatted as a string, then
we will get an "insufficient data left in message" error message, because the
library was expecting sizeof(int4) bytes but only saw 1 byte for "1".

This is infuriating because we have no way to determine the datatypes for
parameters, and the type we explicitly set has to match the type in the
database.  The only choice we're left with is telling postgres to deduce the
type; we still have no idea what type was deduced.
2005-11-25 03:35:04 +00:00
Wez Furlong 2256ec00ef PDO support for LOBs in the postgres driver currently assumes bytea columns. 2005-11-25 03:24:32 +00:00
Wez Furlong 2618322506 Bug: when stringify fetch mode is on, and the driver returns a string instead
of a stream for a LOB parameter, PDO would incorrectly return NULL for that
column.
2005-11-25 03:23:17 +00:00
Wez Furlong 268ac81e39 Add pdo_odbc.db2_instance_name ini setting when built against DB2.
This is a convenience for setting up the DB2 environment more easily.
2005-11-25 02:33:04 +00:00
Andrey Hristov 1d3f0d8891 fix test - unsigned it is casted to 0 in mysql sql_mode 2005-11-25 01:13:56 +00:00
Wez Furlong c2d53719c2 Fix for #35332.
The problem is caused by the user mixing positional and named parameters.
PDO was blindly adding the parameters, unaware that the same parameters were
already allocated by position.

What we do now is register the parameter with the driver before adding it to
any hash.  This gives the driver an opportunity to normalize the name and
parameter number.  PDO can then ensure that only one entry is occupied in the
hash for a given parameter.
2005-11-25 00:29:04 +00:00
Wez Furlong bb2f034eff well, what do you know, it does do something. 2005-11-25 00:20:12 +00:00
Ilia Alshanetsky 363b0ce10b Fixed bug #35170 (PHP_AUTH_DIGEST differs under Apache 1.x and 2.x). 2005-11-25 00:02:16 +00:00
Wez Furlong 0a865c89c5 prep for release 2005-11-24 22:33:20 +00:00
Wez Furlong 94ab6069b8 prep for release 2005-11-24 22:25:37 +00:00
Wez Furlong dfdd1e4caf CLASSTYPE is an internal flag.
Closes PECL #5640.
2005-11-24 21:46:56 +00:00
Wez Furlong 2814b749ec Fix PECL Bug #6014; config fails on PHP 5.0.3 2005-11-24 21:38:09 +00:00
Marcus Boerger 7aa61c312d - NEWS, NEWS, NEWS 2005-11-24 20:06:11 +00:00
Marcus Boerger fb81446ec9 - MFH Reflection class consts (not removing globals consts in 5.1*) (by Johannes) 2005-11-24 19:56:11 +00:00
Wez Furlong aae30f20fc Fix bug that breaks pdo_mysql when built shared (was not being linked to the
mysql libraries).

If you have another mysql module loaded, this would not have been noticable.
2005-11-24 18:56:16 +00:00
Ilia Alshanetsky 8e49bacf95 Fixed bug #35358 (Incorrect error messages for PDO class constants). 2005-11-24 16:21:43 +00:00
Dmitry Stogov a570981151 Fixed bug #35360 (exceptions in interactive mode (php -a) may cause crash) 2005-11-24 11:33:11 +00:00
Sebastian Bergmann f5117c81b3 MFH: 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. 2005-11-24 05:07:28 +00:00
Sara Golemon a420b562df MFH (r-1.2) Sync tests with new defaults 2005-11-24 04:37:47 +00:00
Marcus Boerger c13c6e4f68 - Fix build for new ming versions
# Maybe we should check if it is safe to MFH all the corresponding changes
# in head. But why is this out of sync anyway?
2005-11-24 00:51:44 +00:00
Ilia Alshanetsky 4dbac17f9c Back to dev 2005-11-23 21:25:37 +00:00
Ilia Alshanetsky e0ded79c0f Rolling 5.1.0 2005-11-23 20:53:33 +00:00
Antony Dovgal 794c2e8e5d change zend_read_property() to allocate property zval too 2005-11-23 18:51:44 +00:00
Rui Hirokawa b9f0ff7aab MFH: fixed 5307 unexpected header can be injected to mb_send_mail(). 2005-11-23 15:17:29 +00:00
foobar f7beb9f30c fix tag 2005-11-23 15:01:54 +00:00
Antony Dovgal 1e93bb16e4 fix #35336 (crash on PDO::FETCH_CLASS + __set()) 2005-11-23 11:15:11 +00:00
Dmitry Stogov 36d6ddc241 Bug #33732 (Wrong behavior of constants in class and interface extending) 2005-11-23 09:26:43 +00:00
Rob Richards 7e0dc09703 BFN 2005-11-23 03:13:57 +00:00
Rob Richards ad7732c0cc Fixed bug #35342 (isset(DOMNodeList->length) returns false)
add test
2005-11-23 03:12:47 +00:00
Ilia Alshanetsky 8c86ea4693 Fixed bug #35046 (phpinfo() uses improper css enclosure). 2005-11-23 00:15:08 +00:00
Ilia Alshanetsky 2f6cebb206 Added 5.1 upgrading notes.
# Big thanks to Steph Fox for taking the time to make this list possible.
2005-11-22 23:49:13 +00:00
Antony Dovgal af34ed0d97 fix #35341 (Fix for bug #33760 breaks build with older curl) 2005-11-22 22:53:34 +00:00
Sara Golemon 7f367c9d83 Widen allowable range of values for 'window' bits.
Make -MAX_WBITS default (to match gzinflate() and gzdeflate())
2005-11-22 22:05:38 +00:00
Ilia Alshanetsky 0d088689c0 Removed {} E_STRICT pending furher discussion, may be introduced later on. 2005-11-22 19:46:13 +00:00
Ilia Alshanetsky 80e04c2c35 Fixed command error in ftp:// wrapper.
# Thanks to Stefan Esser for discovering the problem.
2005-11-22 03:01:39 +00:00
Ilia Alshanetsky 13996df552 Fixed test 2005-11-22 01:57:02 +00:00
Michael Wallner 3db21d2f4c - fix make install 2005-11-22 00:50:36 +00:00
Frank M. Kromann a6a9dc2eec /Gz and /RTC1 is for debug builds 2005-11-22 00:29:56 +00:00
foobar 7243d31ae0 MFH: - Fixed header installing under phpize builds 2005-11-21 23:08:02 +00:00
Marcus Boerger 19ea8abd09 - MFH Fixed Bug #35286 tokenizer ext drops final comment (by greg) 2005-11-21 19:24:38 +00:00
foobar e47c21e0bc test -e does not work with solaris 2005-11-21 19:06:04 +00:00
Derick Rethans 2bb4d8282c - Fixed bug #35143 (gettimeofday() ignores current time zone).
- Fixed tests due to class constants patch.
2005-11-20 20:14:24 +00:00
Ilia Alshanetsky 4020933726 Fixed bug #35303 (PDO prepare() crashes with invalid parameters). 2005-11-20 20:06:28 +00:00
foobar db77890bbd MFH: - Fixed bug #35243 (php_mblen() crashes when compiled with thread-safety on Linux) 2005-11-20 18:07:28 +00:00
Sebastian Bergmann abe364335b Use /RTC1 instead of /GZ for MS VisualStudio 2005. 2005-11-20 17:03:14 +00:00
Marcus Boerger cfeb12ccf5 - MFH Fix parameter parsing 2005-11-20 13:05:15 +00:00
foobar d20fe303b3 fix news 2005-11-20 08:13:34 +00:00
Antony Dovgal 493c9fcf93 MFH: fix #35293 (PDO segfaults when using persistent connections) 2005-11-19 16:41:08 +00:00
Rui Hirokawa 60949ca571 MFH: fixed #35253 length of the encoded string vilolates a RFC. 2005-11-19 08:25:32 +00:00
Frank M. Kromann 6ed54ddc79 MFH: Fix #33201 Crash when fetching some data types 2005-11-18 21:23:20 +00:00
Frank M. Kromann e1fac162a0 MFH Fix #33963. mssql_bind fails on input parameters 2005-11-18 20:48:46 +00:00
Frank M. Kromann ae75d4350d MFH: Fix #32009 crash when mssql_bind() is called more than once 2005-11-18 20:40:52 +00:00
Frank M. Kromann da2d7e7229 MFH: Fix #33153 Crash in mssql_next_result(). 2005-11-18 19:14:32 +00:00
Ilia Alshanetsky 110344d65c Fixed bug #35278 (Multiple virtual() calls crash Apache 2 php module). 2005-11-18 18:59:49 +00:00
foobar 54a5c714ca php4 -> php5 2005-11-18 16:09:50 +00:00
foobar 7b073bbad8 - Make sure --with-readline is used only when --with-libedit is not used. 2005-11-18 15:07:39 +00:00
Dmitry Stogov 8b4e1abdb0 Fixed bug #35273 (Error in mapping soap - java types) 2005-11-18 11:00:15 +00:00
foobar 25558ffdbb back to dev 2005-11-18 09:51:44 +00:00
Marcus Boerger c21ced1ec9 - Not in this branch 2005-11-17 22:35:27 +00:00
Rasmus Lerdorf aa749a1269 Missing }}} 2005-11-17 21:56:04 +00:00
Ilia Alshanetsky 4ba37d04d4 RC6 2005-11-17 21:27:58 +00:00
foobar 4eb9e62209 fix news 2005-11-17 21:15:19 +00:00
Ilia Alshanetsky eb0a6a666f Moved date constants into the date class, they all class constants now. 2005-11-17 21:05:30 +00:00
Ilia Alshanetsky 8f514cd18c MFH: Resolve Apache 2 regression with sub-request handling on non-linux
systems.
2005-11-17 21:00:28 +00:00
Sara Golemon 1340c04976 MFH (r-1.51) #32371 php://input sometimes returns duplicate data 2005-11-17 19:40:38 +00:00
Antony Dovgal 014729d00b MFH: make GCC happy and suppress the warning 2005-11-17 19:21:32 +00:00
Ilia Alshanetsky 95c6c6d2cd Fixed test. 2005-11-17 18:25:16 +00:00
Ilia Alshanetsky d734669230 Fixed bug #35248 (sqlite_query() doesnt set error_msg when return value is
being used).
2005-11-17 14:38:36 +00:00
Antony Dovgal 1a78dc5fbf MFH: fix #35079 (stream_set_blocking(true) toggles, not enables blocking)
patch by askalski at gmail dot com
2005-11-17 14:19:40 +00:00
Derick Rethans 924ae32ddf - Fixed bug #35218 (strtotime no longer ignores timezone comments like "(PST)") 2005-11-17 13:04:31 +00:00
Derick Rethans 18606377dd - Fixed typo 2005-11-17 12:33:36 +00:00
foobar a0303c772a MFH: Renamed config.m4 to config0.m4
# PCRE configure tests must be run before e.g. ext/filter
2005-11-17 10:02:42 +00:00
foobar 52747127f8 MFH 2005-11-17 09:58:28 +00:00
foobar c127df868e MFH: - Fix compile failure when ext/readline is compiled as shared (bug #35249) 2005-11-17 08:37:31 +00:00
Ilia Alshanetsky b5c8fcb5fa Allow zend_parse_parameters to handle non-well formed integers, but raise
E_NOTICE in the process.
2005-11-17 00:19:23 +00:00
foobar 158ebbd9b5 MFH 2005-11-16 22:14:32 +00:00
Ilia Alshanetsky da0a76c561 {} to [] test fixes 2005-11-16 16:57:27 +00:00
Ilia Alshanetsky f1a8fde76a back to dev 2005-11-16 15:41:59 +00:00
Ilia Alshanetsky cce5e8c9ea Updated tests to use [] instead of {} 2005-11-16 15:13:20 +00:00
Ilia Alshanetsky 9aeb125f4a By popular demand the {} message is now an E_STRICT. 2005-11-16 15:10:56 +00:00
Ilia Alshanetsky aab9009deb Added depreciation notice for {} string offset access. 2005-11-16 14:55:21 +00:00
Ilia Alshanetsky 209169786a 5.1.0RC5 2005-11-16 14:18:11 +00:00
Dmitry Stogov 6b8bf38333 Fixed bug #35239 (Objects can lose references) 2005-11-16 11:52:27 +00:00
Dmitry Stogov 8bd18e174b Fixed bug #35229 (call_user_func() crashes when arguement_stack is nearly full) 2005-11-16 09:31:21 +00:00
Wez Furlong 0bd9518f8c Closes PECL #5944; binding an invalid parameter can lead to segfaults.
Modified patch provided by curt@php.net.
2005-11-16 06:32:33 +00:00
Marcus Boerger c95360658f - MFH Add new test 2005-11-15 21:33:10 +00:00
foobar f8781c168e extend the entry a bit :) 2005-11-15 16:53:14 +00:00
foobar a7d31c8dac bfp 2005-11-15 16:51:24 +00:00
Dmitry Stogov b58ed261d7 Allow "null" default value for arguments with array type hint 2005-11-15 16:49:40 +00:00
Derick Rethans aa9ea59851 - Allow "= null" default for parameters with a class type-hint. 2005-11-15 15:59:49 +00:00
Ilia Alshanetsky 57e49322a5 Fixed memory leak on php-cli -h 2005-11-15 15:27:26 +00:00
Ilia Alshanetsky c4da6009bb MFH: Fixed possible crash in http:// wrapper. 2005-11-15 14:46:34 +00:00
Dmitry Stogov d3e0b57e1a Allow recursive calls to __get/__set for different properties 2005-11-15 14:28:40 +00:00
Dmitry Stogov 3c19326480 Allow recursive calls to __get/__set for different properties 2005-11-15 14:18:15 +00:00
Antony Dovgal 23a3fdbf04 MFH: call zend_objects_destroy_object() explicitly
fix segfault when intern->time is NULL
2005-11-15 14:08:03 +00:00
Dmitry Stogov 64931b62cc Allow recursive calls to __get/__set for different properties 2005-11-15 13:35:23 +00:00
Dmitry Stogov a8c6b992b8 Fixed bug #35147 (__HALT_COMPILER() breaks with --enable-zend-multibyte) 2005-11-15 13:29:39 +00:00
Dmitry Stogov 5519008169 Fixed call to __destruct() for objects of classes delivered from internal ones those use zend_objects_store_put(obj, NULL, ... 2005-11-15 12:41:31 +00:00
Dmitry Stogov 8c100e6451 Fixed bug #35176 (include()/require()/*_once() produce wrong error messages about main()) 2005-11-15 11:13:43 +00:00
Frank M. Kromann fe306ed1a6 Change max_procs from 25 to library default. This will make FreeTDS connections work a bit better 2005-11-14 23:14:25 +00:00
Antony Dovgal 241aa9a59d MFH: fix #35197 (Destructor is not called) and similar issues in other extensions 2005-11-14 22:03:02 +00:00
Antony Dovgal cd9e244a68 MFH: fix #35197 (Destructor is not called) and similar issues in other extensions 2005-11-14 21:54:35 +00:00
Ilia Alshanetsky 927ea59de3 PEAR news 2005-11-13 18:23:25 +00:00
Ilia Alshanetsky f3f057127b Slated for PHP 6 2005-11-13 18:02:47 +00:00
foobar 592e78ab87 MFH: - Fixed bug #35179 (tokenizer extension needs T_HALT_COMPILER) 2005-11-10 07:50:59 +00:00
foobar 71ac32bdb8 MFH 2005-11-08 20:21:47 +00:00
foobar bd8fe7fcf0 FBFN 2005-11-08 16:57:10 +00:00
foobar f60da5cd5e MFH 2005-11-08 15:54:48 +00:00
Rui Hirokawa 68d1942a9a NEWS updated. 2005-11-08 14:47:50 +00:00
Andrey Hristov df2c11b731 test fetching of unsigned int(11) 2005-11-08 14:43:49 +00:00
Andrey Hristov 611a05f857 BFN 2005-11-08 14:10:17 +00:00
Andrey Hristov 64e8f63978 fix test - putting signed into unsigned produces 0, if not in strict mode
(in strict mode this will fail)
2005-11-08 14:06:40 +00:00
Andrey Hristov 00a9f063f8 on 32bit platform if the column is UNSIGNED INT(11) and the value
is greater than 2^31-1 then convert to string. on 64bit this is of no
problem because there long inside zval is big enough to keep unsigned
int(11)
2005-11-08 13:50:50 +00:00
Dmitry Stogov 270640283e Fixed bug #35142 (SOAP Client/Server Complex Object Support) 2005-11-08 08:30:19 +00:00
Marcus Boerger 9c14ce94f3 - MFH heredoc handling in -a mode 2005-11-07 19:14:40 +00:00
Marcus Boerger 134b2718d4 - Add new tests 2005-11-07 18:38:20 +00:00
Ilia Alshanetsky 8e2de517bb Fixed bug #35135 (PDOStatment without related PDO object may crash). 2005-11-07 16:53:15 +00:00
Marcus Boerger bb293e15c3 - Drop unnecessary param 2005-11-07 13:08:24 +00:00
Marcus Boerger ae1d56d098 - MFH Bug #32223 weird behaviour of pg_last_notice 2005-11-07 12:57:49 +00:00
Dmitry Stogov 9e1beb4f1c Fixed bug #35009 (ZTS: Persistent resource destruct crashes when extension is compiled as shared) 2005-11-07 12:24:55 +00:00
Dmitry Stogov 88edad9f08 Fixed bug #35091 (SoapClient leaks memory) 2005-11-07 10:05:35 +00:00
foobar 6ec23a56d8 MFH:- Fixed minor leak with -dzlib.output_compression=1 -m 2005-11-06 22:42:23 +00:00
foobar 261eabbdd4 MFH 2005-11-06 22:08:30 +00:00
Marcus Boerger 33c650020a - Remve bogus part of test 2005-11-06 12:25:53 +00:00
Marcus Boerger 71ad4dd19b - Fix parameter parsing 2005-11-06 11:58:34 +00:00
Derick Rethans 15c1b8a3a2 - MFH: E_STRICT is not part of E_ALL, so the lines were wrong here. 2005-11-06 11:09:32 +00:00
Marcus Boerger c388f97ac9 - Fix test expectations 2005-11-06 10:51:29 +00:00
foobar d4a1506d52 Fix bad MFH 2005-11-06 02:59:18 +00:00
Rasmus Lerdorf b03351633a And simplexml doesn't need dom anymore to do the import 2005-11-05 22:37:18 +00:00
Rasmus Lerdorf 04a291d39a This SimpleXML requirement is no longer needed and by removing it we
remove a circular dep where it was impossible to build simplexml shared
and not load it.
2005-11-05 22:25:12 +00:00
Ilia Alshanetsky 82814fc852 Fixed bug #31971 (ftp_login fails on some SSL servers).
Patch by: frantisek at augusztin dot com
2005-11-05 22:02:15 +00:00
Wez Furlong 2556b354b3 improve configure script.
Fixes #35107; compile failure with MySQL 5
2005-11-05 16:20:06 +00:00
Rui Hirokawa 00dfb7dc14 MFH: fixed garbled multibyte characters. 2005-11-05 04:49:57 +00:00
Wez Furlong 00df9b67ce Fixes PECL Bug #5868; wrong iters count for OCIStmtExecute 2005-11-04 18:11:40 +00:00
Marcus Boerger bf9a25d0bb - Fix test expectations - we are no detecting the error earlier
# Unfortunatley we also lower the severity here because sqlite's error
# facility is dealing with the problem at this early stage as E_WARNING.
2005-11-03 23:48:09 +00:00
Marcus Boerger 83bdbe5b53 - Fix static check in zend_is_callable_ex()
- Fix/speedup zend_make_callable()
# Actually the ...STATIC... flag in zend_is_callable_ex() *must* go, too.
# We keep it for the moment to support old stuff and skip analyzing them
# in detail...
2005-11-03 23:45:18 +00:00
Marcus Boerger 2ca2153a06 - MFH Add missing check flag 2005-11-03 22:06:30 +00:00
Marcus Boerger e464f0f456 - MFH Try fixing #35088 2005-11-03 21:59:13 +00:00
Marcus Boerger 7ae7cc363a - MFH Add missing check 2005-11-03 21:28:43 +00:00
foobar 528e7869b6 MFH: - Fixed bug #35078 (configure does not find ldap_start_tls_s) 2005-11-03 20:41:13 +00:00
Ilia Alshanetsky 72030596ba Fixed typo. 2005-11-03 15:01:30 +00:00
Michael Wallner 17d16cf2af - MFB44: #34851 (SO_RECVTIMEO and SO_SNDTIMEO socket options expect integer
parameter on Windows)
2005-11-03 15:00:51 +00:00
foobar edc87ef840 MFH: Fixed bad usage of php_checkuid() 2005-11-02 21:26:25 +00:00
Marcus Boerger 8098790208 - Add missing test 2005-11-02 20:32:21 +00:00
Marcus Boerger 50ba309495 - Make spl_autoload_register use zend_is_callable_ex() 2005-11-02 20:31:01 +00:00
Marcus Boerger a4bd0d6a25 - Add missing cases and checks 2005-11-02 20:30:13 +00:00
Derick Rethans 703fc059bf - MFH: Fixed initializing and argument checking for posix_mknod(). 2005-11-02 15:53:49 +00:00
Michael Wallner 496fd1c041 - 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:38:13 +00:00
Ilia Alshanetsky 435b820f68 Fixed minor memory leak triggered by: -dzlib.output_compression=1 -m 2005-11-01 22:59:18 +00:00
foobar e02f8809f1 - Fixed test. Some people might actually be using php.ini-dist which
has precision set to 12. (and this test results need 14)
2005-11-01 22:39:53 +00:00
Marcus Boerger 1d0b88d316 - Update docu 2005-11-01 21:48:25 +00:00
Marcus Boerger 376d4554fb - MFH the iterator base interface is Traversable not IteratorAggregate 2005-11-01 21:18:24 +00:00
Frank M. Kromann 623a2021ab MFH: Fix #35037. Selecting a uniqueidentifier would return unknown data type when used with freetds. 2005-11-01 18:15:44 +00:00
foobar 289402edc6 MFH: - Added missing safe-mode checks
# Added by replacing the existing open_basedir checks with a macro
# Also, the filename passed might be null, etc. so it's not very good
# idea to pass to php_error_docref() (catch by Ilia)
2005-11-01 17:05:09 +00:00
foobar 98691ba0c0 nuke typo 2005-11-01 16:21:29 +00:00
foobar f803888510 MFH: Hiding bugs is not purpose of the regression tests. 2005-11-01 14:36:37 +00:00
Edin Kadribasic fbc6470cb6 Fix ZTS build 2005-11-01 14:18:20 +00:00
Wez Furlong 3d9af317e6 update ready for release spree today 2005-11-01 13:14:10 +00:00
Wez Furlong 6f63c45639 Fix #35032; pdo_dblib doesn't find includes on some systems 2005-11-01 13:12:52 +00:00
Dmitry Stogov e98a40f1fa Fixed SIGSEGV 2005-11-01 11:11:35 +00:00
Sebastian Bergmann 02eb02d1ce MFH: Allow bison 2.1. 2005-11-01 10:31:56 +00:00
Wez Furlong 38c5dd2929 prep for PECL release 2005-11-01 03:16:36 +00:00
Wez Furlong dbc09d3325 Closes PECL Bug #5633.
Build tested with 5.0.x as PECL, 5.1 as PECL and 5.1 static
2005-11-01 03:13:32 +00:00
Wez Furlong b6fe60ab52 prep for PECL release 2005-11-01 03:10:09 +00:00
Wez Furlong 6070381f9d prep for pecl release 2005-11-01 03:07:41 +00:00
Wez Furlong 872661b91d prep for PECL release 2005-11-01 03:04:49 +00:00
Wez Furlong b3b9ee1467 hrmm, typo fix. 2005-11-01 03:04:25 +00:00
Wez Furlong 598f182c29 prep for PECL release 2005-11-01 02:46:12 +00:00
Wez Furlong 58a14f225d Prep for PECL release 2005-11-01 02:44:11 +00:00
Brian France 890bd3f002 Fixed phpize build (default PHP_OPENSSL to no if not set) 2005-11-01 00:32:21 +00:00
Ilia Alshanetsky 0ba24fb65a Additional open_basedir/safe_mode checks. 2005-10-31 23:44:40 +00:00
Marcus Boerger 9622ccface - Drop unnecessary exports to prevent forward BC problems 2005-10-31 21:20:44 +00:00
Dmitry Stogov 681405fc4a Fixed bug #35017 (Exception thrown in error handler may cause unexpected behavior) 2005-10-31 19:25:14 +00:00
Marcus Boerger 24a80c3ebf - Fix remaining memleaks
# all tests pass for me now for the first time in:
# pgsql, mysql, sqlite, sqlite2
2005-10-31 07:47:40 +00:00
Wez Furlong b74698f135 fix misinterpretation of data when overriding types via bindColumn.
Very slightly modified patch from Marcus.
2005-10-31 03:23:38 +00:00
Wez Furlong 2baf1500e0 Closes PECL Bug #5722; BLOB support was half-baked. 2005-10-31 02:11:27 +00:00
Wez Furlong 40c24a65c4 improve test portability.
improve infrastructure for LOB support.
2005-10-31 02:07:38 +00:00
foobar 138ad7d252 bfn 2005-10-31 00:11:42 +00:00
Marcus Boerger e7494a7e9e - Fix memleak 2005-10-30 22:17:52 +00:00
Ilia Alshanetsky 2dc3862c7f Improve iconv skip conditions 2005-10-30 18:07:47 +00:00
Ilia Alshanetsky 57510065ce Fixed bug #35022, #35019 (Regression in the behavior of key/current
functions).
2005-10-30 18:03:30 +00:00
Marcus Boerger cea6a783af - MFH Add docu 2005-10-30 16:07:45 +00:00
Ilia Alshanetsky 941a94ead4 Simplify code. 2005-10-30 13:48:30 +00:00
Ilia Alshanetsky d22d6910ad Fixed Bug #35014 (array_product() always returns 0). 2005-10-30 13:44:26 +00:00
Wez Furlong cc4b453611 dos to unix line endings 2005-10-29 20:41:54 +00:00
Wez Furlong 0139cd0e53 Closes PECL Bug #5772; FETCH_FUNC broken for mixed case function names 2005-10-29 03:11:46 +00:00
Wez Furlong 7af8089096 Closes PECL #5809; PDOStatement::execute(array(...)) would modify its args.
It should behave like bindValue() not bindParam().
2005-10-29 03:01:19 +00:00
Wez Furlong 588d88960c clean up the test2 table that some tests create 2005-10-29 02:58:24 +00:00
Wez Furlong c28a9a4e5c Closes PECL Bug #5802 2005-10-29 02:41:50 +00:00
Wez Furlong e0924b7451 Close PECL Bug #5780 2005-10-29 02:36:30 +00:00
Wez Furlong b2424b2e08 argh! we don't want to NULL the stmt here; freeing the results is not the same
as destroying the prepared statement handler, so we're leaking and breaking, as
can be seen by running the test suite.

brown paper bag for PDO in PHP 5.1RC4?
2005-10-29 02:16:35 +00:00
Wez Furlong 9bd48c2e15 Closes PECL Bug #5645; emits mysql client library version in MINFO output. 2005-10-29 01:58:22 +00:00
Ilia Alshanetsky fad0caaee9 Back to dev 2005-10-28 15:45:05 +00:00
Antony Dovgal 579c9abfb3 MFH: quick fix for #35003 (Warning: PDOStatement::fetch(): column 0 data was too large for buffer and was) 2005-10-28 15:02:09 +00:00
Ilia Alshanetsky 721fec251b 5.1.0RC4 2005-10-28 15:00:49 +00:00
Dmitry Stogov b05b949a47 Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms) 2005-10-28 14:46:30 +00:00
Antony Dovgal e9de9f3aeb fix TSRM build 2005-10-28 12:00:10 +00:00
Dmitry Stogov a3cb94abff Fixed bug #34982 (array_walk_recursive() modifies elements outside function scope) 2005-10-28 10:06:43 +00:00
Dmitry Stogov fa406902d5 Fixed bug #34982 (array_walk_recursive() modifies elements outside function scope) 2005-10-28 09:57:35 +00:00
Dmitry Stogov 36a14076a8 Fixed bug #34725 (CLI segmentation faults during cleanup in ZTS if ext/pcre is DSO) 2005-10-28 08:30:41 +00:00
Anantha Kesari H Y 3815b367d5 NetWare LibC sdk has stdarg.h
--Kamesh
2005-10-28 07:52:58 +00:00
Dmitry Stogov 844cb82c45 $id:$ tatgs are removed from generated files to avoid committing of Zend/zend_vm_opcodes.h without real changes. 2005-10-28 06:05:57 +00:00
Rob Richards 2e8f773eee MFH: fix crash setting attr from foreign doc (throws exception)
add test
2005-10-27 23:51:22 +00:00
Antony Dovgal a9cac89541 MFH: commit forgotten part 2005-10-27 19:39:38 +00:00
Dmitry Stogov 8212034254 Fixed SIGSEGV 2005-10-27 19:25:52 +00:00
Antony Dovgal 9ffefbc74e MFH: add MySQL options and corresponding constants 2005-10-27 17:34:24 +00:00
Antony Dovgal 7c01510b95 MFH: free && set to NULL S->stmt 2005-10-27 17:26:19 +00:00
Ilia Alshanetsky 3a9cdbfd41 Fixed memory leak on error 2005-10-27 14:07:30 +00:00
Ilia Alshanetsky bac9ab777e One check is enough. 2005-10-27 14:06:39 +00:00
Rathna N ced39e3168 Tests for calendar extension 2005-10-27 11:05:50 +00:00
Wez Furlong dcd7879556 fixes PECL Bug #5589 2005-10-27 03:51:23 +00:00
Dan Scott 97ec02ce81 Test PDO::ATTR_CASE attribute. 2005-10-26 23:09:06 +00:00
Antony Dovgal 4c98758328 MFH: make compilers happy 2005-10-26 22:47:23 +00:00
Antony Dovgal 5b502880b6 MFH: fix #34996 (ImageTrueColorToPalette() crashes when ncolors is zero) 2005-10-26 21:38:20 +00:00
Ilia Alshanetsky 51d8950b53 Additional tweaks to the patch for bug #34249. 2005-10-26 15:08:23 +00:00
Antony Dovgal b122cd4b08 MFH: fix #34977 (Compile failure on MacOSX due to use of varargs.h) 2005-10-26 13:50:39 +00:00
foobar 143d1c8011 MFH 2005-10-26 11:33:25 +00:00
Dan Scott f987de46b4 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 06:23:12 +00:00
Marcus Boerger 936b1e56c3 - MFH zend_is_callable_ex() has been changed 2005-10-25 23:20:29 +00:00
Marcus Boerger 2486b846cc - MFH zend_is_callable_ex() returns zend_class_entry* if available 2005-10-25 23:19:59 +00:00
Pierre Joye af888a4807 - fix #34980, divisor and offset never passed correctly (s/float/double/) 2005-10-25 23:00:19 +00:00
Michael Wallner a329ecd8c4 fix bug #34965 tidy is not binary safe 2005-10-25 18:04:59 +00:00
Antony Dovgal 2af3190a3d use correct enum type for the arg 2005-10-25 16:02:33 +00:00
Ilia Alshanetsky e13d51cea3 MFH: Fixed bug #34968 (bz2 extension fails on to build on some win32 setups). 2005-10-25 15:53:06 +00:00
Michael Wallner 2c5c8c161c - fix the fix 2005-10-25 15:35:39 +00:00
Michael Wallner 3bbd4b17a9 - MFH: fix bug #34821 zlib encoders fail on widely varying binary data on windows 2005-10-25 15:16:20 +00:00
Antony Dovgal e415260868 MFH: apply workaround for the leak only when GLIBC is used 2005-10-25 14:57:14 +00:00
Antony Dovgal 4d3c8240d5 fix the order 2005-10-25 14:37:28 +00:00
Michael Wallner 60efdff75f - MFH: thread safe SSL crypto locks, fixes bug #33760 2005-10-25 14:32:33 +00:00
Ilia Alshanetsky 9490f1c847 Do not run tests if iconv extension is unavailable. 2005-10-25 14:22:56 +00:00
Antony Dovgal a0c8d5d80a MFH: fix problem with garbage appearing in hostnames 2005-10-25 08:19:33 +00:00
Ilia Alshanetsky 6b46a441cd Fixed compiler warning 2005-10-25 03:53:25 +00:00
foobar dda1f722e2 MFH 2005-10-24 22:46:26 +00:00
Antony Dovgal 57b520541b MFH: fix #34970 (ldap configuration issues) 2005-10-24 20:24:35 +00:00
Marcus Boerger 5460d2dad6 - Fix issue with entities in attributes 2005-10-24 08:29:36 +00:00
Dmitry Stogov a0dd931d85 Fixed bug #34950 (Unable to get WSDL through proxy) 2005-10-24 07:44:17 +00:00
Dmitry Stogov f9fb94ff00 Reverted patch for bug #34934. Bug is marked as bogus. 2005-10-24 06:58:42 +00:00
Antony Dovgal 0a7b720094 MFH: fix #34938 (dns_get_record() doesn't resolve long hostnames and leaks) 2005-10-23 18:34:26 +00:00
Ilia Alshanetsky 76ad7425ad Fixed memory leak on error. 2005-10-23 15:29:09 +00:00
Wez Furlong ea544cf38f Closes PECL Bug #5750; uri: dsn is not handled correctly.
Patch from curt@php.net
2005-10-23 04:10:20 +00:00
foobar ecca329c14 keep the order! :) 2005-10-22 17:38:35 +00:00
Wez Furlong 890f7f46b4 Fix #34957; file access checks should use VCWD_ACCESS() 2005-10-22 17:02:10 +00:00
Antony Dovgal 23d3ddea25 fix ws 2005-10-21 15:53:22 +00:00
Dmitry Stogov 75a548a7e9 Fixed bug #34934 (offsetExists is not called from array_key_exists) 2005-10-21 15:19:40 +00:00
Antony Dovgal b260064bbf MFH: fix possible crash in dns_get_record()
cleanup code a bit
(partly fixes #34938)
2005-10-21 13:49:01 +00:00
Dmitry Stogov 187b6cc583 Fixed bug #31341 (escape on curly inconsistent) 2005-10-21 13:22:05 +00:00
Dmitry Stogov af0adbed39 Fixed fgetcsv() and fputcsv() inconsistency. 2005-10-21 12:13:39 +00:00
Dmitry Stogov 7c3bdf444d Fixed bug #34782 (token_get_all() gives wrong result) 2005-10-21 09:32:40 +00:00
Dmitry Stogov 863bf8a574 Fixed bug #29268 (__autoload() not called with Reflection->getClass()) 2005-10-21 08:03:28 +00:00
Ilia Alshanetsky d4696abdb9 Fixed tests to work with ZTS builds 2005-10-20 19:22:09 +00:00
Antony Dovgal e7925c9767 MFH: use proper constants 2005-10-20 16:54:48 +00:00
Antony Dovgal 159bae3d99 MFH: use constants instead of their values 2005-10-20 16:51:03 +00:00
Antony Dovgal 5fdeb391f3 MFH: fix copy/paste typo 2005-10-20 16:47:18 +00:00
Ilia Alshanetsky b0c0b79136 MFH: Fixed test for cygwin installs 2005-10-20 14:43:00 +00:00
Dmitry Stogov ad1f706fda Removed unnecesary local variable 2005-10-20 11:31:41 +00:00
Dmitry Stogov a8c338aa65 Fixed bug #34893 (PHP5.1 overloading, Cannot access private property) 2005-10-20 09:47:12 +00:00
Dmitry Stogov c326593c1a Fixed bug #34712 (zend.ze1_compatibility_mode = on segfault) 2005-10-20 08:55:10 +00:00
Dmitry Stogov 03cb8e959b Fixed bug #34767 (Zend Engine 1 Compatibility not copying objects correctly) 2005-10-20 08:14:59 +00:00
Dmitry Stogov d32c6512e1 Fixed bug #31177 (menory leaks and corruption because of incorrect refcounting). 2005-10-20 07:30:42 +00:00
Dmitry Stogov c095e20ca8 Fixed bug #31177 (menory leaks and corruption because of incorrect refcounting) 2005-10-20 07:23:26 +00:00
Dmitry Stogov 9269f58477 Added forgotten tests 2005-10-20 07:04:25 +00:00
Greg Beaver 3446a75a36 remove unused obsolete files from pear CVS
# to run PEAR tests, grab pear-core/tests and use "pear run-tests -rq"
2005-10-20 01:49:42 +00:00
Ilia Alshanetsky 5bb29235dc MFH: Fixed -m memory leak 2005-10-19 21:57:45 +00:00
Derick Rethans 719e78c78f - Fixed bug #34874 and #33546 (Problems with lone daynames). 2005-10-19 21:08:35 +00:00
Ilia Alshanetsky 382bc9d0e4 MFH: Fixed bug #29983 (PHP does not explicitly set mime type & charset). 2005-10-19 20:33:33 +00:00
Ilia Alshanetsky 4d0439e487 MFH: Fixed bug #34623 (Crash in pdo_mysql on longtext fields). 2005-10-19 14:11:56 +00:00
Ilia Alshanetsky 5916b8dd04 MFH: Change E_ERROR to E_WARNING when more_entropy flag is off on Cygwin. 2005-10-19 13:41:44 +00:00
Dmitry Stogov 5fd4035194 Fixed test 2005-10-19 12:48:24 +00:00
foobar e264b8a4d3 MFH: Fixed error messages and tests 2005-10-19 11:18:51 +00:00
Antony Dovgal 5ec19bb68c fix news entry 2005-10-19 11:18:14 +00:00
Dmitry Stogov 4a6faadcce Fixed memory leak in ZTS mode 2005-10-19 07:54:53 +00:00
Derick Rethans 6aed41421e - MFH: Improved error messages a bit. 2005-10-19 07:22:20 +00:00
Antony Dovgal e5928942ac MFH: initialize SG(request_info).auth_digest 2005-10-18 23:51:54 +00:00
Ilia Alshanetsky 24046edbbb MFH: Fixed bug #34905 (Digest authentication does not work with Apache 1). 2005-10-18 23:15:28 +00:00
Ilia Alshanetsky cbb928b8eb MFH: Do not set authorizer unless safe_mode or open_basedir are being used. 2005-10-18 22:51:10 +00:00
Derick Rethans 3e46adb183 - MFH: Fixed bug #33829 (mime_content_type() returns text/plain for gzip and
bzip files).
2005-10-18 15:04:07 +00:00
Antony Dovgal fb57a8363e unused var 2005-10-18 14:50:48 +00:00
Ilia Alshanetsky 12ff2532c9 Fixed bug #34899 (Fixed sqlite extension compile failure). 2005-10-18 14:33:19 +00:00
Antony Dovgal 62ca4594f8 MFH: use php_error_docref() instead of php_error() everywhere 2005-10-18 13:51:50 +00:00
Antony Dovgal bddc4e6c1d MFH: fix mime_magic problems with ZTS 2005-10-18 12:41:29 +00:00
Antony Dovgal d8e5ee075f MFH: fix bug #34902 (mysqli::character_set_name() - undefined method) 2005-10-18 10:02:36 +00:00
Dan Scott e89500cdfb Apply patch for #34900, sight unseen. 2005-10-18 01:05:22 +00:00
Ilia Alshanetsky 5a7596591f ZTS fixes 2005-10-18 00:20:52 +00:00
Ilia Alshanetsky 8b91c8f32e ZTS test fix 2005-10-18 00:17:27 +00:00
Ilia Alshanetsky 03418c1d36 Fixed test for ZTS builds 2005-10-18 00:15:02 +00:00
Ilia Alshanetsky 5a29be9b7d Fixed tests for ZTS builds 2005-10-18 00:12:30 +00:00
Ilia Alshanetsky d467331307 Fixed test for ZTS builds 2005-10-18 00:06:20 +00:00
Ilia Alshanetsky cdbf1938f2 Back to dev 2005-10-17 22:24:42 +00:00
Ilia Alshanetsky f133b09907 5.1.0RC3 2005-10-17 20:26:13 +00:00
Rob Richards fbda9ce9f4 MFH: only need context set once 2005-10-17 19:50:20 +00:00
Ilia Alshanetsky 197142b3e0 MFH: Properly fixed bug #34456 (original patch completely reverted). 2005-10-17 15:31:10 +00:00
Derick Rethans 8f4112bfdd - Fixed bug #29361 (var_export() producing invalid code). (Derick) 2005-10-17 14:38:12 +00:00
Ilia Alshanetsky b0f1719ee5 MFH: Fixed bug #34884 (Possible crash in ext/sqlite when sqlite.assoc_case
is being used).
2005-10-17 14:30:35 +00:00
Dmitry Stogov cc50a96139 Fixed bug #34873 (Segmentation Fault on foreach in object) 2005-10-17 07:57:00 +00:00
Ilia Alshanetsky 8d476ded8e MFH: Further URL validations in safe_mode/open_basedir configs. 2005-10-17 02:43:20 +00:00
foobar e7bd6769df MFH 2005-10-16 20:41:26 +00:00
foobar 8ac5b549e0 NEWS file is about changes between releases. (RCs are not releases..) 2005-10-16 17:54:31 +00:00
Derick Rethans 0893e10ac3 - Updated timezone database to version 2005.14. 2005-10-15 18:13:19 +00:00
Derick Rethans 33921efc44 - Fixed timezone guessing on Windows. (Derick, Nuno) 2005-10-15 18:12:29 +00:00
Georg Richter b343aa9945 fixed an error in mysqli_fetch_fields (function returns NULL instead of array
when row_number > num_fields).
Thanks to Marc Deslisle and phpMyAdmin team for the report.
2005-10-15 06:32:26 +00:00
Antony Dovgal 3c042299e6 MFH: add test for bug #34873 2005-10-14 21:52:18 +00:00
Ilia Alshanetsky eb28594aa5 Pear installer fix 2005-10-14 15:35:56 +00:00
Ilia Alshanetsky a218299d6a ZTS fix 2005-10-14 15:30:39 +00:00
Ilia Alshanetsky e6566d9477 Back to dev 2005-10-14 15:30:26 +00:00
Derick Rethans 1017c44f4a - Use the non-zlib version of the PHAR. 2005-10-14 13:41:47 +00:00
Ilia Alshanetsky a03039bade Prepare for 5.1RC2 2005-10-14 13:36:35 +00:00
Ilia Alshanetsky d18cdaf6dd MFH: fix test failures 2005-10-13 21:26:45 +00:00
Rob Richards 709f73aea7 MFH: move constants to class 2005-10-13 21:20:12 +00:00
Rob Richards 646500bfe9 MFH: insure stream usage 2005-10-13 20:34:37 +00:00
Rob Richards 1e0494a714 MFH: bump libxml min version to 2.6.11 2005-10-13 20:33:40 +00:00
Marcus Boerger 001f506533 - MFH SPL example was changed, so change PDO test accordingly 2005-10-13 19:49:59 +00:00
Marcus Boerger 4c8afd895a - MFH Add ability to bypass key() surrounding and make that default 2005-10-13 19:49:27 +00:00
foobar 7e2bccf776 MFH 2005-10-13 19:28:58 +00:00
Marcus Boerger 491674bea6 - Do not try to autoload the class, use internal only 2005-10-13 18:37:19 +00:00
Antony Dovgal c47fb30b5b MFH: fix #34856 (configure fails to detect libiconv's type) 2005-10-13 15:23:11 +00:00
Antony Dovgal 81b8096ea8 MFH: fix #34855 (ibase_service_attach() segfault on AMD64) 2005-10-13 12:58:48 +00:00
foobar 3fbee80f35 - Fixed bug #34850 (--program-suffix and --program-prefix not included in man page names) 2005-10-13 10:02:59 +00:00
foobar 428006f54d reorder 2005-10-13 10:01:59 +00:00
Antony Dovgal d67821cd02 ws fix 2005-10-13 09:48:38 +00:00
Antony Dovgal f4371b9cc6 fix bug #34581 (crash with mod_rewrite) 2005-10-12 21:24:09 +00:00
foobar 4acffedc6b missing entry 2005-10-12 20:52:25 +00:00
Derick Rethans cd90395cb6 - MFH: 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:59 +00:00
Ilia Alshanetsky 49678f0908 MFH: Fixed bug #34758 (PDO_DBLIB did not implement rowCount()). 2005-10-12 15:03:03 +00:00
Antony Dovgal 25a82d8a5c fix compile warnings (again) 2005-10-12 14:43:30 +00:00
Antony Dovgal 67f27b0aef make GCC happy and improve CS a bit 2005-10-12 14:29:26 +00:00
Antony Dovgal 305e946358 MFH: nuke unused vars 2005-10-12 14:04:02 +00:00
Rob Richards 2580744813 MFH: use spprintf where appropriate 2005-10-12 13:58:10 +00:00
Antony Dovgal 2bc716c131 fix TS build 2005-10-12 13:31:46 +00:00
Rob Richards 0615bf6cb4 BFN 2005-10-12 03:21:36 +00:00
Rob Richards 855f7dfd95 MFH: Fixed Bug #27908 (xml default_handlers not being called)
Fix memleak when entitydecls are parsed
remove old ifdefs
2005-10-12 03:21:05 +00:00
foobar 28a0aef13e MFH: removed confusing dot. 2005-10-11 18:58:59 +00:00
foobar c0ec353655 fix test 2005-10-11 18:11:13 +00:00
Ilia Alshanetsky ea4734926e MFH: Fixed bug #33167 (Possible crash inside pg_fetch_array()). 2005-10-11 16:19:14 +00:00
Ilia Alshanetsky cc034dcb38 MFH: Fixed bug #34742 (ftp wrapper failures caused from segmented command
transfer).
2005-10-11 14:33:51 +00:00
Antony Dovgal ad73bdcbe0 fix #34757 (iconv_substr() gives "Unknown error" when offset > string length) 2005-10-11 13:50:52 +00:00
Dmitry Stogov bb8e5de181 Fixed bug #32455 (wrong setting property to unset value) 2005-10-11 10:15:40 +00:00
Dmitry Stogov 631da59b50 Fixed bug #34790 (preg_match_all(), named capturing groups, variable assignment/return => crash) 2005-10-11 06:47:48 +00:00
Antony Dovgal 062626d03e use proper macros and vars instead of strlen() 2005-10-10 20:06:35 +00:00
Antony Dovgal a5cea052e8 fix #34818 (new mysqli_stmt() and several others crash if the first parameter is not a valid mysqli_link) 2005-10-10 20:03:00 +00:00
Derick Rethans 44205dc58a - MFH: Make sure the tzcache' dtor doesn't cleanup cached misses in the lookup
tables.
2005-10-10 16:42:32 +00:00
George Schlossnagle 9d79a201f1 Test seems potentially bogus. 2005-10-10 16:01:28 +00:00
Dmitry Stogov c61c3dd422 Fixed XML Schema error 2005-10-10 15:40:53 +00:00
Ilia Alshanetsky a5fe9808aa MFH: Fixed bug #34809 (FETCH_INTO in PDO crashes without a destination object). 2005-10-10 14:44:16 +00:00
Ilia Alshanetsky df71093dd8 bug fixing news 2005-10-10 14:31:21 +00:00
Ilia Alshanetsky 58a0906bf9 MFH: Fixed bug #34802 (Fixed crash on object instantiation failure). 2005-10-10 14:31:12 +00:00
Antony Dovgal 8152c64c02 BFN 2005-10-10 12:58:10 +00:00
Antony Dovgal 410e106aae fix #34810 (mysqli::init() and others use wrong $this pointer without checks) 2005-10-10 12:57:55 +00:00
Dmitry Stogov 3019a1c6a3 Fixed bug #34786 (2 @ results in change to error_reporting() to random value) 2005-10-10 10:53:52 +00:00
Dmitry Stogov b94970a3bd MFH 2005-10-10 10:50:16 +00:00
Antony Dovgal eef799a6ec BFN 2005-10-10 10:46:34 +00:00
Antony Dovgal c797466259 MF44: fix #33383 (crash when retrieving empty LOBs) 2005-10-10 10:44:39 +00:00
foobar ad28ef81c0 MFH: copypastetypofix 2005-10-10 10:28:53 +00:00
foobar d41c6dc6d6 MFH 2005-10-10 09:50:35 +00:00
Dmitry Stogov 45794ee259 Fixed bug #34467 (foreach + __get + __set incosistency) 2005-10-10 09:50:05 +00:00
Marcus Boerger 656f02fada - MFH Fix Logic 2005-10-10 06:09:25 +00:00
foobar 036f28f115 MFH: fix test 2005-10-10 05:57:21 +00:00
foobar 60d70459f3 extra spaces removed 2005-10-10 05:55:44 +00:00
Rob Richards b551a55bca MFH: PHP_CONFIG_FILE_PATH needs to use strlen() due to Win build 2005-10-10 02:26:56 +00:00
foobar b1d0f9bb43 typofix 2005-10-09 20:44:02 +00:00
foobar 0fefec1a35 BFN 2005-10-09 20:40:46 +00:00
foobar e403b15ebb MFH: - Fixed bug #34796 (missing SSL linking in ext/ftp when configured as shared). 2005-10-09 20:39:42 +00:00
Ilia Alshanetsky 412a28d124 MFH: Fixed bug #34777 (Crash in dblib when fetching non-existent error info). 2005-10-09 19:00:34 +00:00
Andrey Hristov 24af08eb80 add charsetnr and length to the object returned. this is kind of bug
because fetch_fields() and fetch_field() return that info and
fetch_field_direct() does not
2005-10-09 17:03:01 +00:00
Marcus Boerger 91682f88e4 - MFH Make test check for PlPgSQL before using it 2005-10-09 15:58:13 +00:00
Marcus Boerger a8c5828ce0 - MFH Add new test 2005-10-09 15:14:22 +00:00
Marcus Boerger de03dd6387 - MFH Fix potential SEGV with overloaded objects 2005-10-09 14:42:08 +00:00
Marcus Boerger bc81f55541 - MFH Bugfix #34704 (Infinite recursion due to corrupt JPEG) 2005-10-09 14:40:01 +00:00
Dmitry Stogov 303a642a0d Fixed bug #34788 (SOAP Client not applying correct namespace to generated values) 2005-10-09 12:41:44 +00:00
Pierre Joye 5dd9ad8f53 -fix build as shared or separate from main build (bfrance) 2005-10-09 12:06:27 +00:00
Dmitry Stogov 5ef3e0c57b Fixed bug #34787 (SOAP Client not handling boolean types correctly) 2005-10-09 11:05:46 +00:00
Georg Richter 94238838cf added Bugfix for #34785 2005-10-09 06:03:13 +00:00
Marcus Boerger 11f0ff9c1a - Update docu
- Synch class consts with HEAD
- Synch example RecursiveTreeIterator (as far as possible)
2005-10-08 19:09:58 +00:00
Georg Richter 7357ac0b96 fix for bug 34785:
added support for parent::__construct (mysqli_statement and mysqli_resultset)
  fixed failed testcases when sql_mode is in effect
2005-10-08 15:08:07 +00:00
Derick Rethans e3c8bd51de - MFH: Fixed bug #34676: missing support for strtotime("midnight") and
strtotime("noon").
2005-10-08 14:31:17 +00:00
Marcus Boerger 470da4e960 - MFH Add new test 2005-10-07 23:23:44 +00:00
Derick Rethans 5e46f636a5 - MFH: Make the Windows guessing routines actually return the guessed timezone. 2005-10-07 20:32:17 +00:00
Marcus Boerger faf80a4035 - BFN 2005-10-07 18:57:10 +00:00
George Schlossnagle 1f7c9e197c Test simple derivation from restriction. 2005-10-07 15:05:06 +00:00
Derick Rethans 6df3e40977 - MFH: Change parameter name because NetWare expands "tzname" as a macro to
something else.
2005-10-07 13:33:31 +00:00
Dmitry Stogov 2cbe63513c Fixed bug #34766 (possible crash on HTTP redirection) 2005-10-07 11:56:19 +00:00
Dmitry Stogov e011229598 Reverted last George patches 2005-10-07 08:23:35 +00:00
Derick Rethans 969f05a709 - MFH: Fixed bug #34771 (strtotime() fails with 1-12am/pm). 2005-10-07 08:09:01 +00:00
Derick Rethans 595ee08653 - MFH: New timezonemap data. 2005-10-07 08:06:40 +00:00
Marcus Boerger 6b0de601be - MFH C vs. C++ fix 2005-10-07 07:38:59 +00:00
foobar d8bb2766a8 maybe this month.. 2005-10-07 06:43:22 +00:00
George Schlossnagle fa3394eccb Permit correct usage of inherited encoders (from restriction/extension
"base" directives) for xml response decoding.
2005-10-07 05:14:52 +00:00
Marcus Boerger dec65f584b - MFH ReflectionClass::isInstantiable and abstract classes 2005-10-06 22:46:33 +00:00
George Schlossnagle abe0e61801 MFH: support complex types in restrictions and extensions 2005-10-06 22:30:24 +00:00
Marcus Boerger 35c82a75eb - MFH Fix issue (endless loop) with temp/memory streams 2005-10-06 21:31:25 +00:00
foobar e58513c4d0 BFN 2005-10-06 21:00:54 +00:00
Ilia Alshanetsky 71bd44ac02 MFH: Added missing safe_mode checks. 2005-10-06 20:47:41 +00:00
Johannes Schlüter d3dc0a39bc - MFH: Fix #34557 php -m exits with "error" 1 2005-10-06 20:29:41 +00:00
Rob Richards e1791bedd5 MFH: use sizeof instead of define 2005-10-06 18:48:19 +00:00
Marcus Boerger 6eaf1671b5 - Add new test 2005-10-06 18:34:16 +00:00
Derick Rethans f42742f796 - MFH: Fixed Windows build (patch by Mike) 2005-10-06 13:03:43 +00:00
Marcus Boerger cb83e27b02 - MFH (faillog, streams, counting, .......) 2005-10-06 09:42:17 +00:00
Rob Richards 93ffc14028 MFH: fix buffer lengths passed to snprintf 2005-10-05 22:36:10 +00:00
Antony Dovgal b33c2d9b17 nuke unused variable 2005-10-05 22:17:38 +00:00
Antony Dovgal 8a929e054e use the right constant name in error messages 2005-10-05 22:14:52 +00:00
Marcus Boerger b29b16af2e - Synch RecursiveIteratorIterator, fixes a few memory corruptions/memleaks 2005-10-05 21:59:13 +00:00
Marcus Boerger 3ced246dfc - MFH Update examples 2005-10-05 19:11:51 +00:00
Rob Richards 3282497f82 MFH: fix ZTS build 2005-10-05 16:40:21 +00:00
Ilia Alshanetsky bcf354a97a MFH: Missing safe_mode/open_basedir checks for file uploads. 2005-10-05 14:35:30 +00:00
Derick Rethans 3abc925a8a - Committing some changes that make PDO+SPL not crash anymore. These are done
by Marcus. and I'm committing them in order to actually use PHP 5.1 without
segfaulting when apache starts. This is not necessary the best solution.
2005-10-05 13:51:46 +00:00
Derick Rethans e1661efced - Implement correct Windows timezone guessing. 2005-10-05 11:06:56 +00:00
Antony Dovgal 1f6debba12 MFH: fix test 2005-10-05 09:00:36 +00:00
Derick Rethans 33a91ad309 - Fixed typo. 2005-10-05 08:23:39 +00:00
Derick Rethans c3678550a3 - Implemented tzcache
- Attempt at Windows detection code
2005-10-05 08:20:44 +00:00
Dmitry Stogov 6cbe6d7d52 Fixed throwing exceptions derived from SoapFault 2005-10-05 07:02:30 +00:00
Ilia Alshanetsky f2ed06347b MFH: Fixed possible INI setting leak via virtual() in Apache 2 sapi. 2005-10-05 00:43:38 +00:00
Antony Dovgal 1b8ecbcf54 MFH: fix #34723 (array_count_values() strips leading zeroes) 2005-10-04 20:48:17 +00:00
Antony Dovgal e0e9b5ac39 fix #34731, patch by novicky at aarongroup dot cz 2005-10-04 18:15:18 +00:00
Antony Dovgal 3d8dc4d3b1 fix #32179 (xmlrpc_encode() segfaults with recursive references) 2005-10-04 11:18:02 +00:00
Marcus Boerger 0a50368580 - Add optional dep for SPL under windows too 2005-10-04 07:47:11 +00:00
Marcus Boerger 4d631ec31b - Add optional dependency to SPL 2005-10-04 07:44:56 +00:00
Antony Dovgal 6df490d0ca MFH: nuke warning 2005-10-03 23:48:21 +00:00
Antony Dovgal 262cbbe8d0 include php_version_compare() declaration and eliminate warning 2005-10-03 23:37:10 +00:00
Antony Dovgal ffe605f2ed free cls_methods correctly and fix segfault on shutdown
(no bug entry and MFB, though..)
2005-10-03 23:27:26 +00:00
foobar 1c667a88e7 MFH 2005-10-03 20:21:02 +00:00
Marcus Boerger 061ff97f69 - MFH Throw an exception if an illegal string value is being used in
ArrayObject::offsetSet()
2005-10-03 17:59:56 +00:00
Marcus Boerger 308a64bc08 - MFH Really allow SXE being shared by not using anything from it directly in SPL 2005-10-03 16:05:08 +00:00
Marcus Boerger 42728f947c - Synch (to decrease number of diffs) 2005-10-03 15:43:40 +00:00
Marcus Boerger 0a2e6f723e - MFH change require to require_once 2005-10-03 15:06:27 +00:00
Ilia Alshanetsky 8a5bd01a44 MFH: GLOBALS protection for extract() function. 2005-10-03 14:04:16 +00:00
Marcus Boerger 31f8d7dc20 - MFH Update example 2005-10-03 13:36:18 +00:00
Marcus Boerger 48d9adc3f0 - MFH Allow uncached global functions 2005-10-03 12:36:36 +00:00
Derick Rethans e117d540d1 - MFH: Only use external database when it is newer than the builtin one. 2005-10-03 11:34:51 +00:00
Derick Rethans afccca77dd - MFH: Allow an external Timezone Database to be used. 2005-10-03 11:17:28 +00:00
Dmitry Stogov d09fbaa495 MFH (Bug #34643 wsdl default value) 2005-10-03 09:53:13 +00:00
Marcus Boerger 184309c2e9 - MFH Fix issue with RecursiveArrayIterator::getChildren() 2005-10-03 09:14:30 +00:00
Dmitry Stogov 594fd87ca7 Fixed bug #34678 (__call(), is_callable() and static methods) 2005-10-03 09:12:19 +00:00
Dmitry Stogov 728acc3785 Fixed bug #34358 (Fatal error: Cannot re-assign $this) 2005-10-03 08:21:51 +00:00
Ilia Alshanetsky 9a0bed9863 MFH: Fixed memory leak. 2005-10-03 03:54:06 +00:00
Wez Furlong 612dab64ee fix type 2005-10-03 00:55:23 +00:00
Marcus Boerger b76dcd68ee - MFH add new example 2005-10-02 23:12:35 +00:00
Wez Furlong a750f195cd Fix Bug #34687; error information from query() not passed back 2005-10-02 22:11:19 +00:00
Marcus Boerger 991a29cfd6 - MFH PDOException base 2005-10-02 20:38:18 +00:00
Marcus Boerger ca9dd7d826 - Add PDO::setAttribute(PDO::ATTR_STATEMENT_CLASS) 2005-10-02 20:07:11 +00:00
Marcus Boerger 0ea0e1615f - MFH Add new example 2005-10-02 17:33:05 +00:00
Derick Rethans 224e1f50ae - timelib_config.h should stay too. 2005-10-02 16:30:42 +00:00
Derick Rethans 6333f71ea3 - parse_date.c should not be here, as "make clean" removes it then. 2005-10-02 16:01:11 +00:00
Wez Furlong c19322869b use the right macro for these 2005-10-01 19:19:36 +00:00
Greg Beaver ba3862b369 set error_reporting to E_ALL in Makefile.frag 2005-10-01 16:05:44 +00:00
Marcus Boerger 13dc73940d - SPL may extend SimpleXML (if present) 2005-10-01 15:46:31 +00:00
Marcus Boerger 69722777a0 - Allow xpl/simplexml integration with simplexml being built shared 2005-10-01 15:41:37 +00:00
Derick Rethans 08b5c498ce - Implemented better timezone guessing algorithm. 2005-10-01 15:04:07 +00:00
Wez Furlong 932346c00f Allow compilation with PHP 5.0.x
Closes PECL #5514
2005-10-01 02:48:11 +00:00
foobar 56f006a998 fix bfn 2005-10-01 02:01:23 +00:00
Pierre Joye 4c4b955dce - entry for #33125 2005-09-30 21:01:38 +00:00
Pierre Joye 655743c4e7 - #33125, imagecopymergegray produces mosaic rainbow effect
at some point the alpha emulation formula has been broken
  restored.
2005-09-30 20:48:05 +00:00
Marcus Boerger 91e31d0243 - Try to fetch the necessary file via wget 2005-09-30 17:03:22 +00:00
foobar dfc8044098 reorder,reword,merge 2005-09-30 10:26:18 +00:00
Wez Furlong 69f0675a35 Fix for PECL #5433 (rowCount() not set) 2005-09-30 04:19:24 +00:00
Marcus Boerger b47525e508 - TSRM fix 2005-09-29 19:57:13 +00:00
Ilia Alshanetsky 941ac55d2f Removed unnecessary component that accidentally snuck-in 2005-09-29 16:39:37 +00:00
Ilia Alshanetsky 09540ee965 MFH:
Fixed possible crash and/or memory corruption in import_request_variables()
Fixed potential GLOBALS overwrite via import_request_variables().
2005-09-29 16:30:51 +00:00
Dmitry Stogov e2599c3dbf Fixed wrong array autodetection 2005-09-29 10:02:11 +00:00
Ilia Alshanetsky 1a04335ec2 MFH: Fixed possible GLOBALS variable override when register_globals are ON.
MFH: Fixed possible register_globals toggle via parse_str().
MFH: Fixed negative offset handling in substr_compare() function.
2005-09-28 22:39:52 +00:00
Dmitry Stogov ba5f66777e Fixed bug #34453 (parsing http://www.w3.org/2001/xml.xsd exception) 2005-09-28 11:24:18 +00:00
Dmitry Stogov 386a3b9305 Fixed bug #34617 (zend_deactivate: objects_store used after zend_objects_store_destroy is called) 2005-09-27 18:07:41 +00:00
Dmitry Stogov 4329db25a1 Fixed bug #34643 (wsdl default value has no effect) 2005-09-27 15:25:10 +00:00
Ilia Alshanetsky 72857b6dbb MFH: Fixed bug #32937 (open_basedir looses trailing / in the limiter). 2005-09-27 15:07:49 +00:00
Marcus Boerger c0cb5a83bf - BFN 2005-09-27 08:23:20 +00:00
Wez Furlong 006922ba18 ensure that this size is initialized correctly 2005-09-26 21:37:33 +00:00
Ilia Alshanetsky ef04eea493 Touch generated file 2005-09-26 19:34:09 +00:00
Ilia Alshanetsky 846b0826ab MFH: upgraded bundled libsqlite3 to version 3.2.7 2005-09-26 19:33:26 +00:00
Marcus Boerger 15c9f414a6 - MFH: Reset global pointer to NULL after mem free (required for apache 1.3) 2005-09-26 17:56:26 +00:00
Ilia Alshanetsky c508b5e66a Bug fixing news 2005-09-26 15:14:49 +00:00
Ilia Alshanetsky 9daaedc125 Fixed bug #34645 (ctype corrupts memory when validating large numbers). 2005-09-26 15:14:19 +00:00
Marcus Boerger 049882f29c - Try to fix bugs #34216 (Segfault with autoload) and #34584 (Segfault with
SPL autoload handler)
2005-09-25 18:04:35 +00:00
Ilia Alshanetsky f4a15e4fb8 Bug fixing news 2005-09-25 13:27:20 +00:00
Ilia Alshanetsky d696f11814 MFH: Fixed bug #34321 (Possible crash in filter code). 2005-09-25 13:26:30 +00:00
Wez Furlong 57641c166f reinstate this fix for building against PHP 5.0.x.
This works fine against PHP 5.1 too; if you revert this, you'd better have an
awesome technical reason, or I'll remove your karma.
2005-09-25 02:28:42 +00:00
Wez Furlong fdd42afa6c Fixup LOB handling for inserts (refs #34630).
Also tripped over the return of PECL #5200; looks like mysql doesn't return an
accurate length for the columns.  The PDO driver will sanity check the real
length against the buffer size it allocated (based on the info provided by
mysql), so that we won't overrun the buffer.  In addition, if a varchar field
is reported as having a length of less than 128, we'll allocate 128 just in
case.

If the data is truncated, report it via the appropriate sqlstate code.

There must be a better way to do this stuff.
2005-09-25 02:05:03 +00:00
Wez Furlong fab0baa274 refs #34630.
Real lob support for oracle will appear after the PHP 5.1 release.
2005-09-25 00:47:00 +00:00
Marcus Boerger 06550ce8e0 - MFH: Rename here too 2005-09-24 23:48:58 +00:00
foobar 2352850c52 Revert the "fix". It works fine when you use PHP_5_1 2005-09-24 23:33:58 +00:00
foobar 1536082186 fix typo 2005-09-24 23:23:25 +00:00
Marcus Boerger a349428685 - MFH: Serializeable was renamed to Serializable long ago 2005-09-24 23:19:24 +00:00
Wez Furlong 4fb5b322ee 99% certain that this fixes PECL #5366 and PECL #5391. 2005-09-24 19:15:23 +00:00
Wez Furlong 3905ce46d9 Refs #34630 2005-09-24 18:55:56 +00:00
Wez Furlong 4f7d14f8d9 a test for bug #34630 2005-09-24 18:54:50 +00:00
Wez Furlong 6cc5e191d0 Refs #34630 2005-09-24 18:47:50 +00:00
foobar 0d9bc3a679 Documentation belongs elsewhere 2005-09-24 18:18:58 +00:00
Edin Kadribasic ba8a8d9f25 Allow php extensions to use php_escape_shell_cmd() and php_escape_shell_arg(), needed for mbstring 2005-09-24 15:22:32 +00:00
Edin Kadribasic 4566f48777 Build PDO and SQLite as shared 2005-09-24 15:13:13 +00:00
Pierre Joye c81c189198 - MFH #33220, infinite loop while loading invalid GIF (nlopees) 2005-09-24 14:39:16 +00:00
Edin Kadribasic a952406eb3 sqlite3.h is a generated file 2005-09-24 14:21:29 +00:00
Edin Kadribasic 35b7ad00a6 Declare functions used by driver as PDO_API in php_pdo_driver.h 2005-09-24 14:18:01 +00:00
Antony Dovgal 6cf5be04d6 MFH: fix test 2005-09-23 10:34:20 +00:00
Anantha Kesari H Y a3a2fe37af NetWare LibC don't have socketpair function. So enabling socket_create_pair functionality only if socketpair is available in the host LibC.
--Kamesh
2005-09-23 09:54:31 +00:00
foobar 09f0161160 ws fix 2005-09-23 09:40:24 +00:00
Antony Dovgal e3a1bf1e62 MFH 2005-09-23 09:40:16 +00:00
Antony Dovgal 5ece2f6369 add new tests 2005-09-23 09:39:00 +00:00
Antony Dovgal d38a901189 - 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:36:43 +00:00
Anantha Kesari H Y 5337c02684 In NetWare two binaries with the same name can not be loaded in kernel address space(This is the default behaviour for NetWare apache webserver and hence PHP extensions also get loaded in kernel address space) simultaneoulsy. As the current autoconf built mysql extension is built as mysql.nlm this forbids the loading of mysql client binary. To work around this NetWare idiosyncrasy prefixing all the extensions with "php" except php5lib(phpts.dll eqivalent of Windows). I could have named this extensions prefixed with "php_" but "_" is eaten from the exported symbol prefix by the GCC cross compiler for NetWare so sticking to "php".
This fixes the issue of not needing "PHP_SUBST(EXTENSIONNAME_SHARED_LIBADD)" in all the extensions especially when they need to be built shared.

--Kamesh
2005-09-23 09:25:18 +00:00
foobar b5017bd725 MFH: Improved the fix for #21306 a bit 2005-09-23 08:14:13 +00:00
Dmitry Stogov d6c7d9630b MFH 2005-09-23 07:12:07 +00:00
Antony Dovgal 0dce979bfc MFH: fix #32081 (mysqli_real_connect(): mysqli.default_socket in php.ini has no effect) for real 2005-09-22 20:14:34 +00:00
Antony Dovgal eef28dacec bump API number 2005-09-22 19:13:32 +00:00
Antony Dovgal 8524b33feb BFN 2005-09-22 19:03:34 +00:00
Antony Dovgal f8e8c5534b MFH: fix #33771 (error_reporting falls to 0 when @ was used inside try/catch block) 2005-09-22 19:03:18 +00:00
Ilia Alshanetsky 0823526afe Fixed test 2005-09-22 16:24:51 +00:00
Edin Kadribasic f0c27e68b2 Fix building of extensions that inlcude extname/header.h 2005-09-22 13:16:30 +00:00
foobar cd63787e9a - Fixed bug #34583 ("make install" prematurely fails because of PEAR) 2005-09-22 13:04:12 +00:00
Marcus Boerger 8bba75f0f8 - BFN 2005-09-21 23:00:29 +00:00
Marcus Boerger f3c44f6065 - MFH Fixed Bug #34590 User defined PDOStatement class can't implement
methods
- Reimplement Traversable interface
# If there is a problem with this i need a backtrace. As far as i can
# tell by gdb/valgrind/logic there is no error here. But missuse leads to
# the same error report casing the exclusion of interface Traversable.
2005-09-21 22:58:39 +00:00
Marcus Boerger a72a517e2f - Add ability to execute .php generated from .phpt on failure without the
need to manually set the environment.
2005-09-21 18:40:56 +00:00
Dmitry Stogov 0988162649 Fixed memory corruption 2005-09-21 15:55:07 +00:00
Dmitry Stogov 3d41ebf595 Allow fopen() make HTTPS requests throug HTTP proxies 2005-09-21 15:04:26 +00:00
Ilia Alshanetsky 20c3266588 fixed compiler warnings 2005-09-21 13:23:00 +00:00
Ilia Alshanetsky 999a7acd71 MFH: Fixed bug #34565 (mb_send_mail does not fetch mail.force_extra_parameters) 2005-09-21 13:16:03 +00:00
Marcus Boerger 967413c58c - MFH Fix Bug #34243 ReflectionClass::getDocComment() returns no result 2005-09-21 09:56:51 +00:00
Derick Rethans 5e33a09f20 - MFH: Fixed definition in correct file. (Patch by Nuno) 2005-09-21 08:41:16 +00:00
Derick Rethans a51fc50b6e - MFH: 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:13:43 +00:00
Johannes Schlüter ddf3f9b068 - MFH: Remove HTML fragments from phpcredits() in CLI mode 2005-09-20 22:19:01 +00:00
foobar 529263d680 BFN 2005-09-20 20:59:00 +00:00
foobar de6b4c0091 MFH: - Fixed bug #21306 (catch bailouts of write handler during RSHUTDOWN) 2005-09-20 20:56:54 +00:00
Ilia Alshanetsky 4dff36f6b4 MFH: Allow overloading of PDO constructor. 2005-09-20 19:52:24 +00:00
Stanislav Malyshev bcb70109d2 fix crash on restarting static PHP having session modules loaded 2005-09-20 14:03:29 +00:00
foobar 462940cbb0 no irrelevant news here (pdo was never in PHP before, no point) 2005-09-20 07:18:54 +00:00
Wez Furlong 08a6122f54 MFH: use PDO:: class constants 2005-09-20 00:46:02 +00:00
Ilia Alshanetsky fe9db9ab0a Remove pointless PDO_ prefix 2005-09-20 00:44:51 +00:00
Ilia Alshanetsky bfe844e41e MFH: Make PDO use class constants 2005-09-20 00:35:21 +00:00
Marcus Boerger 9986219353 - MFH Fix filename 2005-09-19 19:03:53 +00:00
Antony Dovgal 33d913d9da MF5.0: add new test 2005-09-19 18:58:59 +00:00
Dmitry Stogov 5eb6b78c90 Fixed access to uninitialized value 2005-09-19 18:47:56 +00:00
Marcus Boerger e26ae04d5f - MFH Add deprecated/compatibility class for BC 2005-09-19 18:28:52 +00:00
Dmitry Stogov 9d3ac92729 MFH (removed unnecesary call to zval_ptr_dtor) 2005-09-19 17:50:24 +00:00
Dmitry Stogov 0ce7487110 Fixed access to memory that is already freed (in case of __call() method) 2005-09-19 16:28:54 +00:00
Dmitry Stogov 46488c8bb4 Fixed parameter passing incompatibilities.
Now it is possible to call array_pop(explode("&","1&2&3")) again.
2005-09-19 16:02:21 +00:00
foobar 116584297a cleanup, typos, etc 2005-09-18 20:34:43 +00:00
Antony Dovgal 9a1c6c55b8 fix build (declare extern HashTable pdo_driver_hash) 2005-09-18 18:05:59 +00:00
Marcus Boerger c3a79b5990 - MFH: Synch dosu 2005-09-18 17:52:09 +00:00
Marcus Boerger 8acd34d6d8 - MFH: Add missing docu/Synch 2005-09-18 17:39:54 +00:00
Marcus Boerger d1ee4b407c - Commite manually if not conatined in bunch commit 2005-09-18 17:16:17 +00:00
Marcus Boerger 7d918fae4c - Synch naming/move changes with HEAD
- Update tests/docu
# New functionality in CachingIterator/RecursiveIteratorIterator not MFHed
2005-09-18 17:15:04 +00:00
Wez Furlong 7e762989e7 move pdo_drivers -> PDO::getAvailableDrivers as part of namespacing sweep. 2005-09-18 14:13:08 +00:00
Edin Kadribasic 87071cf1d6 Added --add-modules-dir option to buidconf.js:
If this option is not specified buildconf.js will search for PECL
in the usual places (pecl, ../pecl).
Now it is possible to specify in which dirs additional modules reside
with say:
cscript /nologo win32/build/buildconf.js --add-modules-dir=../pecl_5_1 \
  --add-modules-dir=../php-gtk2
2005-09-17 20:00:01 +00:00
Antony Dovgal 3eb6167902 BFN 2005-09-16 23:56:12 +00:00
Antony Dovgal 21e809b7be MFH: check class_entry of this_ptr in Reflection API 2005-09-16 20:21:46 +00:00
Antony Dovgal 3fd2e85458 BFN 2005-09-16 17:12:12 +00:00
Antony Dovgal 4b9b5505f0 fix #34505 (possible memory corruption when unmangling properties with empty names)
2nd part
2005-09-16 17:11:02 +00:00
Antony Dovgal f43767b249 fix #34505 (possible memory corruption when unmangling properties with empty names)
1st part
2005-09-16 17:05:09 +00:00
Dmitry Stogov 27763b3666 Fixed bug #34478 (Incorrect parsing of url's fragment (#...)) 2005-09-16 15:48:30 +00:00
Dmitry Stogov e4a4ab60c7 Fixed bug #34518 (Unset doesn't separate container in CV) 2005-09-16 14:42:46 +00:00
Dmitry Stogov 8cf678c306 MFH (overriding of protected static property) 2005-09-16 13:42:49 +00:00
foobar 1bf64add7b correct flag 2005-09-16 12:09:17 +00:00
foobar 595e93be27 Fixed bug #34525 2005-09-16 12:06:41 +00:00
foobar 69edc17192 fix test 2005-09-16 07:41:08 +00:00
foobar ae281c372a - Fix tests due to changes in the error messages.
# Also nuked some CRLF's
2005-09-15 19:49:58 +00:00
Derick Rethans 7199bc5f86 - MFH: Fixed bug #34052 (date('U') returns %ld not unix timestamp). 2005-09-15 19:11:15 +00:00
Marcus Boerger c0ffebcee6 - Rename file class again by popular demmand: calling it SplFileObject now 2005-09-15 14:08:16 +00:00
foobar eb7e9b6bfc - Fixed error message grammar 2005-09-15 13:10:31 +00:00
Marcus Boerger 5ca5efcdda - Update docu 2005-09-15 03:54:42 +00:00
Marcus Boerger ca8596ab83 - Update with latest SPLchanges 2005-09-15 03:42:41 +00:00
Marcus Boerger 3fab7a3ed6 - No longer needed (moved into c) 2005-09-15 03:39:17 +00:00
Marcus Boerger a29501195f - MFH: Add new files 2005-09-15 03:38:03 +00:00
Marcus Boerger b4dd030782 MFH:
- Add SplObjectStorage
- Add RecursiveFilterIterator
- Rename Observer to SplObserver
- Rename Subject to SplSubject
- Move SPL constants to class constants
- Update docu
2005-09-15 03:33:04 +00:00
Derick Rethans a5f0cbed44 - Fixed shutdown order before RC2. 2005-09-14 20:08:31 +00:00
Marcus Boerger 650b76e542 - MFH: Improve error message 2005-09-14 18:23:48 +00:00
foobar d5809b85f9 MFH 2005-09-14 17:57:32 +00:00
foobar dc929d011c MFH 2005-09-14 15:53:02 +00:00
Ilia Alshanetsky 766e4b3c15 MFH: Fix error detection for queries such as OPTIMIZE 2005-09-14 15:34:58 +00:00
foobar bab59278d7 MFH 2005-09-13 21:40:46 +00:00
Ilia Alshanetsky c221e148d7 MFH: MFH: Make key() and current() take argument by value. 2005-09-13 13:24:38 +00:00
Antony Dovgal d3f03cc468 bfn 2005-09-13 09:20:36 +00:00
Antony Dovgal bd7a277d48 fix #34450 (Segfault when calling mysqli_close() in destructor) 2005-09-13 09:20:18 +00:00
Sara Golemon 196e54fc43 MFH(r-1.719) Plug leak of 1/2 bytes when converting from string/unicode 2005-09-12 17:44:21 +00:00
foobar 09f89c8cb0 MFH: Fixed build with phpize 2005-09-12 17:14:35 +00:00
Ilia Alshanetsky 2a7bd2b823 MFH: Fixed bug #34456 (Possible crash inside pspell extension). 2005-09-12 15:39:14 +00:00
Dmitry Stogov 9d1f2f30d3 Fixed bug #34199 (if($obj)/if(!$obj) inconsistency) 2005-09-12 11:48:57 +00:00
Dmitry Stogov 9a74c68a4c Additinal fix for bug #34277 (array_filter() crashes with references and objects) 2005-09-12 09:58:50 +00:00
Dmitry Stogov 21698c12fe Fixed huge memory leak in ZTS mode (backport from HEAD) 2005-09-12 09:06:15 +00:00
Dmitry Stogov 90236679e9 Fixed bug #34449 (ext/soap: XSD_ANYXML functionality not exposed) 2005-09-12 08:24:01 +00:00
Dmitry Stogov 5682438549 Better fix for exceptions in __sleep() 2005-09-12 07:13:54 +00:00
Wez Furlong 8dc3e7b147 When populating bound columns, override the returned type with the type
specified by the user in their bind.
2005-09-11 20:32:28 +00:00
Wez Furlong 9e9f413aeb Fix PECL Bug #5010 2005-09-11 19:44:26 +00:00
Greg Beaver af01525d1e prepare for using go-pear.phar 2005-09-11 17:39:15 +00:00
Ilia Alshanetsky be945f9fe2 Make use of 5.0+ features 2005-09-11 17:33:15 +00:00
Wez Furlong 81151a5dbf remove traversable interface; apparently it's not enough, and this stuff is too
magical to figure out wtf should be added.
2005-09-11 14:27:10 +00:00
Wez Furlong 497c7714e6 update manifest 2005-09-11 05:46:13 +00:00
Wez Furlong 77d3a41f8a update package.xml files and version numbers, in anticipation of a big bunch of releases. 2005-09-11 05:27:30 +00:00
Wez Furlong 1e37cc7b82 set version numbers to 1.0 2005-09-11 05:06:30 +00:00
Wez Furlong a55c4799aa MFH: reset the statement when closeCursor() is called. 2005-09-11 05:00:12 +00:00
Wez Furlong e53f6428ac merge George's fixes back from HEAD 2005-09-11 01:42:41 +00:00
Wez Furlong f4007c8f6b closes #33707: error information was not passed up to PDO::query(). 2005-09-10 21:38:07 +00:00
Wez Furlong edc39221c0 if a php bolean makes it as far as the parameter callback, it must really need
to be boolean; express is as native pgsql 't' or 'f'.

Add a test case for Bug #33876, which is a partially bogus bug.
2005-09-10 21:00:52 +00:00
Wez Furlong 5f47b4178e and touch the generated file 2005-09-10 20:58:57 +00:00
Wez Furlong e9c81e4983 actually register PDO_PARAM_BOOL as a constant (doh!).
When emulating bound parameters, pass booleans via the driver's quoter
method, so that is has an opportunity to tweak it.
Refs #33876: PDO misquotes/miscasts bool(false)
2005-09-10 20:58:19 +00:00
Wez Furlong 9c252b4b07 closes PECL #5027; PDO_FETCH_NAMED not handled via setFetchMode(). 2005-09-10 19:32:15 +00:00
Wez Furlong 2d16ed7706 Add test for this bug report; can't repeat the problem. 2005-09-10 19:27:29 +00:00
Wez Furlong efe24c0205 add __sleep and __wakeup functions to prevent serialize/deserialize from being used on PDO objects. Refs PECL #5217 2005-09-10 17:48:45 +00:00
Wez Furlong 6b0d0f7ceb allow exceptions thrown in __sleep to interrupt the serialization process. refs PECL #5217 2005-09-10 17:47:20 +00:00
Derick Rethans 7262ccfac9 - Fix version numbers as discussed to help version_compare for the PEAR folks. 2005-09-10 15:44:17 +00:00
Wez Furlong 0730fa2af9 Add PDOStatement::bindValue(), which is similar to bindParam(), except that
it binds the value of the zval at the time it is called, rather than keeping
a reference to the zval and taking the value at execute() time.
2005-09-10 15:32:04 +00:00
Dmitry Stogov 9305339d94 Changed "instanceof" and "catch" operators, is_a() and is_subclass_of() functions to not call __autoload(). 2005-09-09 06:48:49 +00:00
Ilia Alshanetsky 26bf79a15e MFH: Allow retrieval of query parse errors from SQLite. 2005-09-08 21:07:40 +00:00
Ilia Alshanetsky b5e2cc5197 MFH: Fixed bug #34420 (Possible crash inside curl_multi_remove_handle()). 2005-09-08 14:50:23 +00:00
Rob Richards 06e3607102 MFH: add save options parameter 2005-09-08 10:39:30 +00:00
Rob Richards 6818826bbd MFH: add additional constants
remove un-needed ifdefs
2005-09-08 10:37:57 +00:00
Rasmus Lerdorf 25c6fbe515 That line made no sense 2005-09-08 09:11:10 +00:00
Dmitry Stogov 42fb30298c Fixed crash on AIX 2005-09-08 06:19:07 +00:00
Greg Beaver 46783871e3 install-pear.phar removed -> moved to http://pear.php.net/install-pear.phar 2005-09-07 16:05:59 +00:00
Greg Beaver 6ed7a799af attempt to make new instructions clearer 2005-09-07 16:03:06 +00:00
Greg Beaver 38a52c5b0d change makefile to use phar and not source, if present 2005-09-07 15:59:53 +00:00
Dmitry Stogov 8a39d704c4 Fixed memory allocation bug 2005-09-07 15:36:31 +00:00
Ilia Alshanetsky 7f293b91b4 MFH: Upgraded SQLite 2 library in ext/sqlite to 2.8.16 2005-09-07 15:11:33 +00:00
Ilia Alshanetsky caa9702a5a Updated TODO 2005-09-07 02:33:12 +00:00
Ilia Alshanetsky a022e10c2d Simplify code by making use 5.1+ functions 2005-09-06 00:42:20 +00:00
Greg Beaver a3c168239d test version of install-pear.phar
can be removed if there is any issue
without changes to Makefile.frag, it is not actually used
2005-09-05 20:18:00 +00:00
foobar 27df981727 touch 2005-09-05 16:22:58 +00:00
foobar 020f1ba949 MFH: - Fixed bug #34311 (unserialize() crashes with characters above 191 dec) 2005-09-05 16:22:19 +00:00
foobar 1ee421ff66 BFN 2005-09-05 13:05:24 +00:00
Frank M. Kromann 635d65ab4e MFB: Fix for #34369
Add extra parameter to mssql_connect to force a new connection
2005-09-05 05:04:31 +00:00
Ilia Alshanetsky 084ab84411 Fixed compiler warning 2005-09-05 01:20:52 +00:00
Marcus Boerger 222900c4b0 - MFH 2005-09-04 18:55:03 +00:00
Wez Furlong d1be6c8152 assign a version number 2005-09-04 17:10:56 +00:00
Wez Furlong b6be0f9817 Allow ext/mysql to build against PHP 4 again; update package.xml ready for
release via PECL.
2005-09-04 04:51:23 +00:00
Edin Kadribasic 60b1f64cc7 touch 2005-09-04 00:48:59 +00:00
Edin Kadribasic 4e1b287b82 Fix for #34233 2005-09-04 00:47:59 +00:00
Edin Kadribasic 38317bb3bd Don't crash on invalid parameter #34203 (Wez) 2005-09-03 23:50:25 +00:00
foobar 6bc126681c reorder 2005-09-02 21:13:20 +00:00
foobar bd30309d65 BFN 2005-09-02 21:13:00 +00:00
Andrei Zmievski 0eabbc9f89 Fix bug #34307. We were not calling on_modify handler to set the default
value in case setting the one from .ini file failed.
2005-09-02 20:51:15 +00:00
Marcus Boerger a8355965bb - MFH Update docu 2005-09-02 19:11:10 +00:00
Ilia Alshanetsky 2b32ff53cd MFH: Resolved bug #34240. 2005-09-02 17:25:16 +00:00
Derick Rethans abcfcd3f2e - MFH: Added date_time_set, date_date_set and date_isodate_set() functions, and
setTime, setDate and setISODate() methods.
2005-09-02 14:58:01 +00:00
foobar 1890173d8c Revert 2005-09-02 14:05:46 +00:00
foobar 8c4d1f6657 MFH 2005-09-02 13:51:47 +00:00
Derick Rethans bb35f045df - MFH: Update timezone database to version "2005m". 2005-09-02 12:32:15 +00:00
Derick Rethans 00566c3949 - MFH: New layout for tz database file. 2005-09-02 11:40:27 +00:00
Derick Rethans 321732227f - Fixed bug #34304 (date() doesn't have a modifier for ISO Week Day). 2005-09-02 09:33:08 +00:00
foobar 170ef60d6f - Moved exts to PECL 2005-09-02 09:14:10 +00:00
foobar 96873fecef it is good idea to return something always 2005-09-02 08:24:14 +00:00
Dmitry Stogov 6319efa013 Fixed bug #34260 (Segfault with callbacks (array_map) + overloading) 2005-09-02 07:47:28 +00:00
Rob Richards 44840ace8e MFH: Fix key length so params passed by array can be retrieved by getParameter() 2005-09-02 06:38:02 +00:00
foobar a4673bd7b7 Fix test (week numbers below 10 are zero-prefixed now) 2005-09-02 05:17:42 +00:00
Ilia Alshanetsky 5f8809907a MFH: Fixed bug #34331 (php crashes when variables_order is empty). 2005-09-01 19:15:19 +00:00
foobar 64cfbf539f MFH: - Fixed bug #34307 (OnUpdateStringUnempty INI options can be set empty) 2005-09-01 14:44:15 +00:00
George Schlossnagle 248c30dad7 MFH. Protect against underflow - refs http://pecl.php.net/bugs/bug.php?id=5193 2005-09-01 14:44:11 +00:00
foobar 1978e9109f MFH 2005-09-01 14:33:47 +00:00
Wez Furlong 41901d127c portability fix (for solaris) 2005-09-01 13:59:03 +00:00
Dmitry Stogov 4f161fe289 Fixed bug #34137 (assigning array element by reference causes binary mess) 2005-09-01 13:21:37 +00:00
Dmitry Stogov 7fda1750f1 MFH 2005-09-01 13:03:00 +00:00
Derick Rethans 9057102e6e - MFH: Fixed bug #33414 (Comprehensive list of incorrect days returned after
strtotime() / date() tests).
2005-09-01 12:42:39 +00:00
Dmitry Stogov e615889d6b Fixed bug #34277 (array_filter() crashes with references and objects) 2005-09-01 12:00:37 +00:00
foobar 5253ea11de NSF 2005-09-01 11:59:47 +00:00
Dmitry Stogov 40f971b5b6 Fixed bug #34310 (foreach($arr as $c->d => $x) crashes) 2005-09-01 10:54:38 +00:00
Dmitry Stogov 248345d920 Support for class constants and static members for internal classes 2005-09-01 10:05:32 +00:00
foobar 655cb3aaf7 MFH 2005-09-01 08:25:52 +00:00
Ilia Alshanetsky 156a899e4a MFH: Fixed bug #34001 (pdo_mysql truncates numberic fields at 4 chars) 2005-09-01 01:57:01 +00:00
foobar 28796e9aa6 Fixed bug #34323 2005-08-31 22:28:55 +00:00
Rob Richards ab78a63357 MFH: make sxe_properties_get respect namespace scope 2005-08-31 17:00:46 +00:00
foobar 2ec2739c19 Update credits 2005-08-31 14:59:20 +00:00
foobar b08c3d880e - Moved ext/oracle to PECL 2005-08-31 14:58:27 +00:00
foobar 307ec8ece4 MFH:- Fixed bug #34306 (wddx_serialize_value() crashes with long array keys) 2005-08-31 14:31:44 +00:00
Derick Rethans 9230473cd3 - Fixed bug #33957 (gmdate('W')/date('W') sometimes returns wrong week number). 2005-08-31 14:29:23 +00:00
foobar d1a4819c09 Added test for bug #34310 2005-08-31 09:16:24 +00:00
Marcus Boerger 7c37c2c37e - MFH run-tests-config.php was never used and now renamed 2005-08-31 07:00:22 +00:00
George Schlossnagle b247dc3418 MFH, fix 34072 2005-08-31 04:06:10 +00:00
Ilia Alshanetsky 43f63e4753 MFH: Fixed bug #32589 (possible crash inside imap_mail_compose() function). 2005-08-30 22:03:29 +00:00
Marcus Boerger 99baa01aac - MFH (missing run-tests2.php rename part) 2005-08-30 18:44:07 +00:00
Derick Rethans 0e2491f553 - Fixed bug #34302 (date('W') do not return leading zeros for week 1 to 9). 2005-08-30 09:17:09 +00:00
Marcus Boerger cf39bec447 - BFN 2005-08-30 07:34:57 +00:00
Dmitry Stogov 7230be4951 Fixed possible memory leak 2005-08-30 07:22:23 +00:00
Ilia Alshanetsky ba38b8a9c9 Mark pspell as working 2005-08-29 23:32:59 +00:00
Sara Golemon 5fc9d15692 MFH: allocate_new_resource() handles the malloc() for us. Don't leak by mallocing twice. 2005-08-29 22:05:25 +00:00
foobar 805ca9c51f MFH 2005-08-29 14:46:17 +00:00
Ilia Alshanetsky f02aa075cb Upgraded bundled SQLite library for PDO:SQLite to 3.2.5 2005-08-28 16:54:26 +00:00
Ilia Alshanetsky c6aae12cc1 Upgraded bundled SQLite library for PDO:SQLite to 3.2.5 (step 1) 2005-08-28 16:53:27 +00:00
Rob Richards 3a21310f37 BFN 2005-08-28 16:23:48 +00:00
Rob Richards 1b02f3ec31 MFH: Fixed bug #34276 (setAttributeNS doesn't work with default namespace)
Add test
2005-08-28 16:23:25 +00:00
foobar 2b53e96832 Nuke misinformation 2005-08-28 01:10:17 +00:00
foobar 11eeb0c3ac This is no longer required 2005-08-28 01:10:00 +00:00
foobar 0c4867144a - Fixed bug #34284 (CLI phpinfo showing html on _SERVER["argv"]) 2005-08-28 01:03:41 +00:00
foobar 5dd6467bd0 MFH 2005-08-28 00:46:36 +00:00
Marcus Boerger a596d53131 - MFH 2005-08-26 15:35:47 +00:00
Derick Rethans b842d8e3d8 - MFH: Fixed a bug where stream_get_meta_data() did not return the "uri"
element for files opened with tmpname().
2005-08-26 12:56:07 +00:00
Ilia Alshanetsky 980b9be4b4 Fixed bug #34214 (base64_decode() does not properly ignore whitespace) 2005-08-26 03:32:31 +00:00
Rob Richards 293beeb74a MFH: Fix URI escaping 2005-08-26 02:29:56 +00:00
Marcus Boerger 2e4c7dbb03 _ MFH 2005-08-25 22:06:52 +00:00
Marcus Boerger ce6abe492c - MFH Fixed bug #34257 (lib64 not handled correctly in ming extension). 2005-08-25 22:02:29 +00:00
foobar 4f89b2e0cb Fix crash with e.g. stream_get_meta_data() 2005-08-25 12:25:10 +00:00
Derick Rethans d3326d5b26 - MFH: Fixed bug #34087 for real.
- MFH: Windows compile fixes.
2005-08-25 09:47:28 +00:00
Ilia Alshanetsky 30b14ee8e9 MFH: Remainder of the 34191 bug fix. 2005-08-24 16:19:57 +00:00
foobar e96c51a175 PCRE lib is 6.2 2005-08-24 14:48:57 +00:00
Derick Rethans 164b4ad4dd MFH:
- 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:39:34 +00:00
Dmitry Stogov da4096c210 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:11 +00:00
Dmitry Stogov 19dc0411f7 Fixed return-by-reference from internal functions 2005-08-24 10:41:06 +00:00
Johannes Schlüter 9e0ed1cb67 - MFH: Fix alphabetic order and add missing class 2005-08-24 10:17:43 +00:00
foobar 82d8cfb681 MFH 2005-08-23 21:40:26 +00:00
Ilia Alshanetsky 31dcd92f46 removed unused vars 2005-08-23 15:16:02 +00:00
Greg Beaver ae8a3a0f9e sync with PEAR 1.3.6 2005-08-22 22:09:54 +00:00
Greg Beaver de247c88cd add XML_RPC 1.4.0 2005-08-22 22:06:27 +00:00
Greg Beaver e5c570997e move Archive_Tar 1.3.2 => 1.3.1
1.3.2 does not exist
2005-08-22 21:51:15 +00:00
Ilia Alshanetsky b8cc3a9c32 MFH: Make dba extension support BerkleyDB 4.3. 2005-08-22 19:59:28 +00:00
Stanislav Malyshev 33df597531 fix crash if throw attempted outside of executable code 2005-08-22 13:26:33 +00:00
Ilia Alshanetsky daa209297d MFH: Fixed bug #34191 (ob_gzhandler does not enforce trailing \0). 2005-08-21 16:03:21 +00:00
Greg Beaver f4eb5095a6 add checks for extensions that must be loaded 2005-08-20 18:31:29 +00:00
Pierre Joye f7ef84c32d - fix bad revert and make the xmlrpc ext detections fallback
forgot that 5.1 still has pear in its branche
2005-08-18 21:29:28 +00:00
Wez Furlong b31ff96be9 Add ext to the include path. 2005-08-18 20:17:50 +00:00
Ilia Alshanetsky 3b329a9926 MFH: Fixed bug #34156 (memory usage remains elevated after memory limit is
reached);
2005-08-18 15:14:12 +00:00
Antony Dovgal 4e798f6e02 MFH: fix memleak 2005-08-18 15:13:45 +00:00
foobar 9477097564 MFH: Nuked EOLs from error messages 2005-08-18 13:34:41 +00:00
foobar 75d362225c MFH 2005-08-18 12:54:44 +00:00
foobar 286d53397a MFH 2005-08-18 12:40:41 +00:00
foobar a23aec662c MFH: nuked eol from error message 2005-08-18 12:34:22 +00:00
Ilia Alshanetsky e134382a71 MFH: Fixed bug #33987 (php script as ErrorDocument causes crash in Apache 2). 2005-08-18 01:14:42 +00:00
Greg Beaver 94c7fd0603 add return by ref from PEAR::raiseError 2005-08-17 21:48:46 +00:00
Greg Beaver 1dd48ca039 re-enable XML_RPC 1.4.0 2005-08-17 21:30:46 +00:00
foobar f286018dd0 MFH 2005-08-17 17:03:52 +00:00
foobar 617716b171 BFN 2005-08-17 16:56:20 +00:00
Ilia Alshanetsky 690f2ab5ed Added test for bug #34087 2005-08-17 15:31:57 +00:00
Dmitry Stogov 976edd47e2 Fixed bug #32981 (ReflectionMethod::getStaticVariables() causes apache2.0.54 seg fault) 2005-08-17 11:54:34 +00:00
foobar 5516735c88 MFH 2005-08-17 07:54:07 +00:00
Zeev Suraski cf1b4cf673 Introduce SoapClient::__setSoapHeaders() 2005-08-17 07:04:16 +00:00
Marcus Boerger e8b05734be - Prevent E_STRICT from ending up as exception 2005-08-16 18:10:34 +00:00
Ilia Alshanetsky 5610ad29e3 MFH: Fixed bug #34148 (+,- and . not supported as parts of scheme). 2005-08-16 14:20:41 +00:00
Zeev Suraski 23d4f9882f Go back to dev 2005-08-16 12:01:42 +00:00
Edin Kadribasic ca24e21972 Rebundle XML_RPC in the correct version for the Windows distro. 2005-08-16 11:35:45 +00:00
Zeev Suraski 2c6d0f8c48 Roll RC1 2005-08-16 10:59:56 +00:00
Dmitry Stogov 496bc9fce3 Fixed memory leak 2005-08-16 10:49:25 +00:00
Edin Kadribasic d327027ea9 Use free() instead of PQfreemem() to maintain compabitibility with older
PostgreSQL client libraries (bug #33813).
2005-08-16 09:55:44 +00:00
Ilia Alshanetsky 81b6d3e725 MFH: Input validation part 2. 2005-08-16 00:25:39 +00:00
Ilia Alshanetsky 9711fbace9 Chunk the output 2005-08-15 23:23:40 +00:00
Rob Richards a47eec0754 BFN 2005-08-15 17:14:35 +00:00
Rob Richards 8bdc4285aa MFH: Fixed bug #34103 (line numbering not maintained in dom document) 2005-08-15 17:13:57 +00:00
Ilia Alshanetsky bbd37d99e1 MFH: input validation. 2005-08-15 16:01:53 +00:00
Johannes Schlüter 0d993d2172 - Fix tab-completion for constants. 2005-08-14 13:07:15 +00:00
Wez Furlong 812c1e0475 MFH, compiler detection 2005-08-12 20:08:14 +00:00
foobar e46cd60d89 - Fixed bug #33326 (Cannot build extensions with phpize on Macosx). 2005-08-12 15:15:17 +00:00
Dmitry Stogov a0d479994f Fixed typo (ZVAL_LONG() -> ZVAL_DOUBLE()) 2005-08-12 14:56:59 +00:00
foobar b31f168184 - Fixed bug #34097 (configure failed to initize RE2C="exit 0;" when re2c is not found) 2005-08-12 13:53:27 +00:00
foobar 54df2c9d36 no DOS EOLs! 2005-08-11 23:53:59 +00:00
foobar 4ddaf76efc - Fixed test 2005-08-11 23:51:35 +00:00
foobar 417f113940 MFH 2005-08-11 23:45:22 +00:00
foobar 0941045fcc MFH 2005-08-11 23:05:34 +00:00
foobar e274f52bbf - Regenerated. 2005-08-11 22:36:47 +00:00
foobar 2f594ec2b3 BFNS 2005-08-11 22:34:10 +00:00
Marcus Boerger 6c87db9e99 - And this is version 5.1 2005-08-11 21:41:30 +00:00
Antony Dovgal 974adb419a BFN 2005-08-11 21:21:31 +00:00
Antony Dovgal 565c7708ca fix #34078 (Reflection API problems in methods with boolean or null default values) 2005-08-11 21:16:20 +00:00
Marcus Boerger 256e6e3350 - MFH creadits to Johannes 2005-08-11 20:45:58 +00:00
Rasmus Lerdorf c792839d8f Remove pear/XML_RPC dependency for the pear installer
PEAR guys, please doublecheck this.
2005-08-11 16:43:26 +00:00
Frank M. Kromann 9aa81a786b Revert the last patch so we can release PHP 5.1 2005-08-11 03:54:06 +00:00
Rasmus Lerdorf ba8cfb4a93 Minor consistency cleanup 2005-08-10 23:33:10 +00:00
Ilia Alshanetsky 2a37a0c495 MFH: Fixed bug #34068 (Numeric string as array key not cast to integer in
wddx_deserialize()).
2005-08-10 22:45:31 +00:00
Dmitry Stogov daba35fead Fixed bug #34062 (Crash in catch block when many arguments are used) 2005-08-10 13:11:05 +00:00
Dmitry Stogov ebd4ab4d78 Fixed bug #25359 (array_multisort() doesn't work in a function if array is global or reference) 2005-08-10 12:02:52 +00:00
Dmitry Stogov 779e6d203e Fixed bug #34064 (arr[] as param to function in class gives invalid opcode) 2005-08-10 10:39:55 +00:00
Marcus Boerger 3bc9bc5de8 - MFH estrdup/strndup change (as hinted by Andi) 2005-08-10 08:36:46 +00:00
Dmitry Stogov 54931f5259 Fixed bug #33940 (array_map() fails to pass by reference when called recursively) 2005-08-10 08:22:01 +00:00
Dmitry Stogov 96d755978c Fixed bug #29253 (array_diff with $GLOBALS argument fails) 2005-08-10 07:43:07 +00:00
Dmitry Stogov f0f1557998 Fixed bug #34045 (Buffer overflow with serialized object) 2005-08-10 06:37:19 +00:00
Dmitry Stogov 1a29376c07 Fixed test file (.inc.php -> .php) 2005-08-10 06:10:04 +00:00
Andi Gutmans 995c3002aa - This didn't end up being included 2005-08-09 22:23:01 +00:00
Marcus Boerger 1c7eb15eea - MFH: PEAR uses .php not .inc.php (as discussed with Andi) 2005-08-09 21:13:04 +00:00
Derick Rethans d55f456497 - MFH:
- Fixed TSRM issue.
	- Added guessed timezone to phpinfo() output.
	- Initialize is_dst in some cases.
	- Corrected some test cases.
2005-08-09 21:10:22 +00:00
Sebastian Bergmann 96dfe589fe Sync with config.m4. 2005-08-09 06:25:24 +00:00
Andi Gutmans eeecc8a015 - No release today. Found a critical bug... 2005-08-09 05:40:56 +00:00
Andi Gutmans 01d8e59d3b - RC1 2005-08-09 05:08:59 +00:00
SVN Migration 4571221d8e This commit was manufactured by cvs2svn to create branch 'PHP_5_1'. 2005-08-08 23:59:05 +00:00
12859 changed files with 350074 additions and 1751547 deletions

No files matched your search

+151 -248
View File
@@ -2,155 +2,22 @@ define ____executor_globals
if basic_functions_module.zts
set $tsrm_ls = ts_resource_ex(0, 0)
set $eg = ((zend_executor_globals) (*((void ***) $tsrm_ls))[executor_globals_id-1])
set $cg = ((zend_compiler_globals) (*((void ***) $tsrm_ls))[compiler_globals_id-1])
else
set $eg = executor_globals
set $cg = compiler_globals
end
end
document ____executor_globals
portable way of accessing executor_globals, set $eg
this also sets compiler_globals to $cg
portable way of accessing executor_globals
ZTS detection is automatically based on ext/standard module struct
end
define printztype
____printz_type $arg0
printf "\n"
end
document printztype
prints the type name of a zval type
end
define ____printz_type
set $type = $arg0
if $type == 0
printf "NULL"
end
if $type == 1
printf "long"
end
if $type == 2
printf "double"
end
if $type == 3
printf "bool"
end
if $type == 4
printf "array"
end
if $type == 5
printf "object"
end
if $type == 6
printf "string"
end
if $type == 7
printf "resource"
end
if $type == 8
printf "constant"
end
if $type == 9
printf "const_array"
end
if $type == 10
printf "unicode string"
end
if $type > 10
printf "unknown type %d", $type
end
end
define printzv
set $ind = 1
____printzv $arg0 0
end
document printzv
prints zval contents
end
define printu
set $str = (UChar*)$arg0
if $arg1 > 0
set $max = $arg1
else
set $max = 1024
end
set $pos = 0
while $pos < $max && *(char*)(($str+$pos))
if $str[$pos] < 256
printf "%c", $str[$pos]
else
printf "\\u%04X", $str[$pos]
end
set $pos = $pos + 1
end
if $pos < $max && *((char*)($str+$pos))
printf "[...]"
end
end
document printu
prints a unicode string, optionally with given length
usage: printu str [len]
The function stops at the first zero byte (not char) or when len is reached.
If len is less than or equal to one then a maximum of 1024 characters are
printed.
end
define printt
if $arg0
printu $arg1 $arg2
else
set $len = strlen($arg1)
if $arg2 > 0 && $len > $arg2
set $copy = strdup($arg1)
printf "%p: %s\n", $copy, $copy
set ((char*)$copy)[$arg2] = 0
printf "%s[...]", $copy
call free($copy)
else
printf "%s", $arg1
end
end
end
document printt
prints a binary or unicode string, optionally with given length
usage: printt unicode str [len]
If unicode is 1 the function calls printu, else it uses printf.
end
define print_cvs
____executor_globals
set $p = $eg.current_execute_data.CVs
set $c = $eg.current_execute_data.op_array.last_var
set $v = $eg.current_execute_data.op_array.vars
set $i = 0
printf "Compiled variables count: %d\n", $c
while $i < $c
printf "%d = %s\n", $i, $v[$i].name
if $p[$i] != 0
printzv *$p[$i]
else
printf "*uninitialized*\n"
end
set $i = $i + 1
end
end
define dump_bt
set $t = $arg0
while $t
printf "[0x%08x] ", $t
if $t->function_state.function->common.function_name
printu $t->function_state.function->common.function_name.u 50
printf "() "
printf "%s() ", $t->function_state.function->common.function_name
else
printf "??? "
end
@@ -166,39 +33,43 @@ 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
set $zvalue = $arg0
set $type = $zvalue->type
printf "(refcount=%d", $zvalue->refcount__gc
if $zvalue->is_ref__gc
printf ",is_ref"
end
printf ") "
printf "(refcount=%d) ", $zvalue->refcount
if $type == 0
printf "NULL"
else
____printz_type $type
end
if $type == 1
printf ": %ld", $zvalue->value.lval
printf "long: %ld", $zvalue->value.lval
end
if $type == 2
printf ": %lf", $zvalue->value.dval
printf "double: %lf", $zvalue->value.dval
end
if $type == 3
printf "bool: "
if $zvalue->value.lval
printf ": true"
printf "true"
else
printf ": false"
printf "false"
end
end
if $type == 4
printf "(%d): ", $zvalue->value.ht->nNumOfElements
printf "array(%d): ", $zvalue->value.ht->nNumOfElements
if ! $arg1
printf "{\n"
set $ind = $ind + 1
____print_ht $zvalue->value.ht 0 1
____print_ht $zvalue->value.ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
@@ -210,6 +81,7 @@ define ____printzv_contents
set $type = 0
end
if $type == 5
printf "object"
____executor_globals
set $handle = $zvalue->value.obj.handle
set $handlers = $zvalue->value.obj.handlers
@@ -219,7 +91,7 @@ define ____printzv_contents
set $zobj = zend_objects_get_address($zvalue)
end
if $handlers->get_class_entry == &zend_std_object_get_class
set $cname = $zobj->ce.name.s
set $cname = $zobj->ce.name
else
set $cname = "Unknown"
end
@@ -231,7 +103,7 @@ define ____printzv_contents
printf "(%d): ", $ht->nNumOfElements
printf "{\n"
set $ind = $ind + 1
____print_ht $ht 1 1
____print_ht $ht
set $ind = $ind - 1
set $i = $ind
while $i > 0
@@ -247,21 +119,20 @@ define ____printzv_contents
set $type = 0
end
if $type == 6
printf "(%d): \"%s\"", $zvalue->value.str.len, $zvalue->value.str.val
printf "string(%d): ", $zvalue->value.str.len
____print_str $zvalue->value.str.val $zvalue->value.str.len
end
if $type == 7
printf ": #%d", $zvalue->value.lval
printf "resource: #%d", $zvalue->value.lval
end
if $type == 8
printf "constant"
end
if $type == 9
printf "const_array"
end
if $type == 10
printf "(%d): [%p]: \"", $zvalue->value.str.len, $zvalue->value.str.val
printu $zvalue->value.ustr.val $zvalue->value.str.len
printf "\""
end
if $type > 10
if $type > 9
printf "unknown type %d", $type
end
printf "\n"
end
@@ -297,8 +168,9 @@ define ____print_const_table
set $i = $i - 1
end
if $p->nKeyLength > 0
printf "\"%s\" => ", $p->key.arKey.s
if $p->nKeyLength > 0
____print_str $p->arKey $p->nKeyLength
printf " => "
else
printf "%d => ", $p->h
end
@@ -317,11 +189,11 @@ end
define ____print_ht
set $ht = $arg0
set $obj = $arg1
set $p = $ht->pListHead
set $unicode = $ht->unicode
while $p != 0
set $zval = *(zval **)$p->pData
set $i = $ind
while $i > 0
printf " "
@@ -329,44 +201,21 @@ define ____print_ht
end
if $p->nKeyLength > 0
if $obj && $p->key.arKey.s[0] == 0
if $p->key.arKey.s[1] == '*'
printf "\"protected %s\" => ", $p->key.arKey.s+3
else
set $n = 1
while $n < $p->nKeyLength && $p->key.arKey.s[$n] != 0
set $n = $n + 1
end
printf "\"private %s::%s\" => ", $p->key.arKey.s+1, $p->key.arKey.s+$n+1
end
else
printf "\""
printt $p->key.type $p->key.arKey.s $p->nKeyLength
printf "\" => "
end
____print_str $p->arKey $p->nKeyLength
printf " => "
else
printf "%d => ", $p->h
end
if $arg1 == 0
printf "%p\n", (void*)$p->pData
end
if $arg1 == 1
set $zval = *(zval **)$p->pData
____printzv $zval 1
end
if $arg1 == 2
printf "%s\n", (char*)$p->pData
end
____printzv $zval 1
set $p = $p->pListNext
end
end
define print_ht
set $ind = 1
printf "[0x%08x] (%d) {\n", $arg0, $arg0->nNumOfElements
____print_ht $arg0 1
printf "[0x%08x] {\n", $arg0
____print_ht $arg0
printf "}\n"
end
@@ -374,32 +223,9 @@ document print_ht
dumps elements of HashTable made of zval
end
define print_htptr
set $ind = 1
printf "[0x%08x] (%d) {\n", $arg0, $arg0->nNumOfElements
____print_ht $arg0 0
printf "}\n"
end
document print_htptr
dumps elements of HashTable made of pointers
end
define print_htstr
set $ind = 1
printf "[0x%08x] (%d) {\n", $arg0, $arg0->nNumOfElements
____print_ht $arg0 2
printf "}\n"
end
document print_htstr
dumps elements of HashTable made of strings
end
define ____print_ft
set $ht = $arg0
set $p = $ht->pListHead
set $unicode = $ht->unicode
while $p != 0
set $func = (zend_function*)$p->pData
@@ -411,44 +237,20 @@ define ____print_ft
end
if $p->nKeyLength > 0
printf "\""
if $p->key.arKey.u.s[1] == '\0'
printu $p->key.arKey.u $p->nKeyLength
else
printt $unicode $p->key.arKey.u $p->nKeyLength
end
printf "\" => "
____print_str $p->arKey $p->nKeyLength
printf " => "
else
printf "%d => ", $p->h
end
printf "[%p]: ", $func
if $func->common.fn_flags & 0x01
printf "static "
end
if $func->common.fn_flags & 0x02
printf "abstract "
end
if $func->common.fn_flags & 0x04
printf "final "
end
set $visibility = zend_visibility_string($func->common.fn_flags)
printf "%s", $visibility
if *$visibility
printf " "
end
if $func->common.return_reference
printf "& "
end
printt $unicode $func->common.function_name.s 0
printf "()\n"
printf "\"%s\"\n", $func->common.function_name
set $p = $p->pListNext
end
end
define print_ft
set $ind = 1
printf "[0x%08x] (%d) {\n", $arg0, $arg0->nNumOfElements
printf "[0x%08x] {\n", $arg0
____print_ft $arg0
printf "}\n"
end
@@ -457,6 +259,113 @@ document print_ft
dumps a function table (HashTable)
end
define ____print_inh_class
set $ce = $arg0
if $ce->ce_flags & 0x10 || $ce->ce_flags & 0x20
printf "abstract "
else
if $ce->ce_flags & 0x40
printf "final "
end
end
printf "class %s", $ce->name
if $ce->parent != 0
printf " extends %s", $ce->parent->name
end
if $ce->num_interfaces != 0
printf " implements"
set $tmp = 0
while $tmp < $ce->num_interfaces
printf " %s", $ce->interfaces[$tmp]->name
set $tmp = $tmp + 1
if $tmp < $ce->num_interfaces
printf ","
end
end
end
set $ce = $ce->parent
end
define ____print_inh_iface
set $ce = $arg0
printf "interface %s", $ce->name
if $ce->num_interfaces != 0
set $ce = $ce->interfaces[0]
printf " extends %s", $ce->name
else
set $ce = 0
end
end
define print_inh
set $ce = $arg0
set $depth = 0
while $ce != 0
set $tmp = $depth
while $tmp != 0
printf " "
set $tmp = $tmp - 1
end
set $depth = $depth + 1
if $ce->ce_flags & 0x80
____print_inh_iface $ce
else
____print_inh_class $ce
end
printf " {\n"
end
while $depth != 0
set $tmp = $depth
while $tmp != 1
printf " "
set $tmp = $tmp - 1
end
printf "}\n"
set $depth = $depth - 1
end
end
define print_pi
set $pi = $arg0
printf "[0x%08x] {\n", $pi
printf " h = %lu\n", $pi->h
printf " flags = %d (", $pi->flags
if $pi->flags & 0x100
printf "ZEND_ACC_PUBLIC"
else
if $pi->flags & 0x200
printf "ZEND_ACC_PROTECTED"
else
if $pi->flags & 0x400
printf "ZEND_ACC_PRIVATE"
else
if $pi->flags & 0x800
printf "ZEND_ACC_CHANGED"
end
end
end
end
printf ")\n"
printf " name = "
____print_str $pi->name $pi->name_length
printf "\n}\n"
end
define ____print_str
set $tmp = 0
set $str = $arg0
printf "\""
while $tmp < $arg1
if $str[$tmp] > 32 && $str[$tmp] < 127
printf "%c", $str[$tmp]
else
printf "\\%o", $str[$tmp]
end
set $tmp = $tmp + 1
end
printf "\""
end
define printzn
____executor_globals
set $ind = 0
@@ -473,9 +382,6 @@ define printzn
if $znode->op_type == 8
set $optype = "IS_UNUSED"
end
if $znode->op_type == 16
set $optype = "IS_CV"
end
printf "[0x%08x] %s", $znode, $optype
@@ -496,9 +402,6 @@ define printzn
if $znode->op_type == 8
printf "\n"
end
if $znode->op_type == 16
printf "\n"
end
end
document printzn
+89 -89
View File
@@ -1,6 +1,6 @@
========================
PHP Coding Standards
========================
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
@@ -9,38 +9,37 @@ 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]
[0] Document your code in source files and the manual. [tm]
1. Functions that are given pointers to resources should not free them
[1] Functions that are given pointers to resources should not free them
For instance, ``function int mail(char *to, char *from)`` should NOT free
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
- 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
[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
[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
@@ -49,47 +48,47 @@ Exceptions:
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,
[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.
[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 "<svn username here>_0". For example, #if FOO_0, where FOO is your
svn user foo. This allows easier tracking of why code was commented out,
especially in bundled libraries.
[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
[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.
[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().
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.
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
[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::
readability of the function name itself.
Good:
'mcrypt_enc_self_test'
@@ -99,18 +98,18 @@ Naming Conventions
'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'?)
(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
[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_*``::
of parent_*.
A family of 'foo' functions, for example:
Good:
'foo_select_bar'
@@ -122,22 +121,22 @@ Naming Conventions
'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
[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
[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
[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'
[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::
letter that starts a new 'word' is capitalized.
Good:
'connect()'
@@ -149,11 +148,11 @@ Naming Conventions
'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,
without underscore delimiters (CampelCaps starting with a capital letter).
The class name should be prefixed with the name of the 'parent set' (e.g.
the name of the extension)::
[7] Classes should be given descriptive names. Avoid using abbreviations where
possible. Each word in the class name should start with a capital letter,
without underscore delimiters (CampelCaps starting with a capital letter).
The class name should be prefixed with the name of the 'parent set' (e.g.
the name of the extension).
Good:
'Curl'
@@ -166,7 +165,7 @@ Naming Conventions
Syntax and indentation
----------------------
1. Never use C++ style comments (i.e. // comment). Always use C-style
[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
@@ -175,20 +174,17 @@ Syntax and indentation
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
[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. Also see Indentstyle_.
syntax.
.. _Indentstyle: http://www.catb.org/~esr/jargon/html/I/indent-style.html
3. Be generous with whitespace and braces. 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. Always prefer::
(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;
@@ -198,18 +194,23 @@ Syntax and indentation
if(foo)bar;
4. When indenting, use the tab character. A tab is expected to represent
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
[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.
Testing
-------
1. Extensions should be well tested using *.phpt tests. Read about that
[1] Extensions should be well tested using *.phpt tests. Read about that
in README.TESTING.
Documentation and Folding Hooks
@@ -218,20 +219,20 @@ 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::
function does. It would look like this:
/* {{{ proto int abs(int number)
Returns the absolute value of the number */
PHP_FUNCTION(abs)
{
...
}
/* }}} */
/* {{{ 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
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
@@ -239,10 +240,10 @@ 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::
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 */
/* {{{ 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.
@@ -256,10 +257,9 @@ 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 SVN comments.
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
-----------------------------------
+13457 -157057
View File
File diff suppressed because it is too large. Load diff
BIN
View File
Binary file not shown.
+138 -146
View File
@@ -77,12 +77,6 @@ EXTENSION: isapi
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: litespeed
PRIMARY MAINTAINER: George Wang <gwang@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: milter
MAINTENANCE: Unknown
STATUS: Unknown
@@ -124,14 +118,45 @@ STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: dba
PRIMARY MAINTAINER: Marcus Börger <helly@php.net>,Christopher Jones <sixd@php.net>, Pierre-Alain Joye <pajoye@php.net>
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: Odd fixes
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: msql
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mssql
@@ -141,24 +166,18 @@ STATUS: Working
COMMENT: Tested on phpts and isapi versions
-------------------------------------------------------------------------------
EXTENSION: mysql
PRIMARY MAINTAINER: Zak Greant <zak@mysql.com>, Georg Richter <georg@php.net>, Johannes Schlüter <johannes@php.net>, Ulf Wendel <uw@php.net>
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>, Andrey Hristov <andrey@php.net>, Johannes Schlüter <johannes@php.net>, Ulf Wendel <uw@php.net>
PRIMARY MAINTAINER: Georg Richter <georg@php.net>, Andrey Hristov <andrey@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: mysqlnd
PRIMARY MAINTAINER: Georg Richter <georg@php.net>, Andrey Hristov <andrey@php.net>, Johannes Schlüter <johannes@php.net>, Ulf Wendel <uw@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
-------------------------------------------------------------------------------
EXTENSION: oci8
PRIMARY MAINTAINER: Christopher Jones <sixd@php.net>, Antony Dovgal <tony2001@php.net>
PRIMARY MAINTAINER: Antony Dovgal <tony2001@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -168,53 +187,14 @@ MAINTENANCE: Maintained
STATUS: Working
COMMENT: Working
-------------------------------------------------------------------------------
EXTENSION: pdo
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
EXTENSION: oracle
MAINTENANCE: Orphaned
STATUS: Working
SINCE: 5.1
COMMENT: Using the new OCI8 driver is encouraged where possible.
-------------------------------------------------------------------------------
EXTENSION: pdo_dblib
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_firebird
PRIMARY MAINTAINER: Lars Westermann <lwe@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_mysql
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>, Johannes Schlüter <johannes@php.net>, Andrey Hristov <andrey@php.net>, Ulf Wendel <uw@php.net>
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_odbc
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_oci
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_pgsql
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
-------------------------------------------------------------------------------
EXTENSION: pdo_sqlite
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.1
EXTENSION: ovrimos
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: pgsql
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
@@ -227,18 +207,14 @@ 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 2 embeddable SQL database engine.
COMMENT: Integrates SQLite embeddable SQL database engine.
-------------------------------------------------------------------------------
EXTENSION: sqlite3
PRIMARY MAINTAINER: Scott MacVicar <scottmac@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
COMMENT: Integrates SQLite 3 embeddable SQL database engine.
EXTENSION: sybase
MAINTENANCE: Unknown
STATUS: Not Working
-------------------------------------------------------------------------------
EXTENSION: sybase_ct
PRIMARY MAINTAINER: Timm Friebe <thekid@thekid.de>
MAINTENANCE: Maintained
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
@@ -261,38 +237,23 @@ SINCE: 5.0
EXTENSION: soap
PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
MAINTENANCE: Maintained
STATUS: Working
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: wddx
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Orphaned
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xml
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>, Rob Richards <rrichards@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: libxml
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Christian Stocker <chregu@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlreader
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Christian Stocker <chregu@php.net>
PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xmlrpc
PRIMARY MAINTAINER: Dan Libby
MAINTENANCE: Orphaned
MAINTENANCE: UNKNOWN
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: xmlwriter
PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Pierre-Alain Joye <pajoye@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: xsl
PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
MAINTENANCE: Maintained
@@ -305,8 +266,8 @@ SINCE: 5.0
-------------------------------------------------------------------------------
EXTENSION: bcmath
MAINTENANCE: Andi Gutmans <andi@zend.com>
STATUS: Working
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: bz2
PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
@@ -325,6 +286,11 @@ 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
@@ -347,25 +313,27 @@ MAINTENANCE: Maintained
STATUS: Working
SINCE: 4.2
-------------------------------------------------------------------------------
EXTENSION: fileinfo
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
EXTENSION: fam
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: filter
PRIMARY MAINTAINER: Derick Rethans <derick@php.net>, Pierre-Alain Joye <pajoye@php.net>, Ilia Alshanetsky <iliaa@php.net>
EXTENSION: fdf
PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.2
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: filepro
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: ftp
PRIMARY MAINTAINER: Stefan Esser <sesser@php.net>
MAINTENANCE: Odd fixes
PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gd
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -374,29 +342,32 @@ MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: gmp
PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net>, Antony Dovgal <tony2001@php.net>
MAINTENANCE: Maintained
STATUS: Working
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>, Ilia Alshanetsky <iliaa@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>, Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: json
PRIMARY MAINTAINER: Unknown
MAINTENANCE: Odd fixes
STATUS: Working
SINCE: 5.2
EXTENSION: ircg
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: ldap
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>, Douglas Goldstein <cardoe@php.net>, Pierre-Alain Joye <pajoye@php.net>
PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
@@ -410,43 +381,68 @@ PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: mhash
PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>, Scott MacVicar <scottmac@php.net>
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 the fileinfo extension instead
COMMENT: Use PECL's fileinfo extension instead
-------------------------------------------------------------------------------
EXTENSION: ming
PRIMARY MAINTAINER: Frank M. Kromann
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: openssl
PRIMARY MAINTAINER: Wez Furlong <wez@php.net>, Pierre-Alain Joye <pajoye@php.net>
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
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
PRIMARY MAINTAINER: Arnaud Le Blanc <lbarnaud@php.net>
MAINTENANCE: Maintained
STATUS: Working
MAINTENANCE: Unknown
STATUS: Experimental
-------------------------------------------------------------------------------
EXTENSION: pcre
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>, Nuno Lopes <nlopess@php.net>
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: phar
PRIMARY MAINTAINER: Greg Beaver <cellog@php.net>, Marcus Börger <helly@php.net>
EXTENSION: pfpro
PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.3
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: posix
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
@@ -461,7 +457,7 @@ SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: readline
MAINTENANCE: Unknown
STATUS: Working
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: recode
PRIMARY MAINTAINER: Kristian Köhntopp <kris@koehntopp.de>
@@ -481,57 +477,53 @@ STATUS: Working
EXTENSION: shmop
PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Working
STATUS: Experimental
SINCE: 4.0.3
-------------------------------------------------------------------------------
EXTENSION: snmp
PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>, Pierre-Alain Joye <pajoye@php.net>
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: Working
STATUS: Experimental
SINCE: 4.0.2
-------------------------------------------------------------------------------
EXTENSION: spl
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Etienne Kneuss <colder@php.net>
PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
MAINTENANCE: Maintained
STATUS: Working
SINCE: 5.0.0
-------------------------------------------------------------------------------
EXTENSION: sysvmsg
MAINTENANCE: Unknown
STATUS: Working
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvsem
MAINTENANCE: Unknown
STATUS: Working
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: sysvshm
MAINTENANCE: Unknown
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: tidy
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>, Nuno Lopes <nlopess@php.net>
PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>
MAINTENANCE: Maintained
STATUS: Working
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: tokenizer
PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
MAINTENANCE: Maintained
STATUS: Working
MAINTENANCE: Unknown
STATUS: Unknown
-------------------------------------------------------------------------------
EXTENSION: unicode
MAINTENANCE: Andrei Zmievski <andrei@php.net>
EXTENSION: yaz
PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
MAINTENANCE: Maintained
STATUS: Working
-------------------------------------------------------------------------------
EXTENSION: zip
PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>
MAINTENANCE: Maintained
STATUS: Working
STATUS: Unknown
SINCE: 4.0.1
-------------------------------------------------------------------------------
EXTENSION: zlib
PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
+645 -185
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -1,6 +1,6 @@
--------------------------------------------------------------------
The PHP License, version 3.01
Copyright (c) 1999 - 2009 The PHP Group. All rights reserved.
Copyright (c) 1999 - 2006 The PHP Group. All rights reserved.
--------------------------------------------------------------------
Redistribution and use in source and binary forms, with or without
+11 -11
View File
@@ -3,21 +3,21 @@
# Zend
#
$(builddir)/zend_language_scanner.lo: $(srcdir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(srcdir)/zend_ini_parser.h
$(builddir)/zend_language_scanner.lo: $(builddir)/zend_language_parser.h
$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
$(srcdir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l)
$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
@$(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
$(srcdir)/zend_language_parser.h: $(srcdir)/zend_language_parser.c
$(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
$(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 $@
$(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c
$(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
$(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 $@
$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
@(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l)
$(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: $(srcdir)/zend_language_parser.h
$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
+3 -6
View File
@@ -13,13 +13,13 @@ lcov-test: all
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' -d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/; \
$(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 \
NO_INTERACTION=1 \
TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php $(TESTS); \
$(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
@@ -61,16 +61,13 @@ php_lcov.info: lcov-test
test -f "$$x.bb" && cp $$x.bb lcov_data/$$y.bb ; \
test -f "$$x.bbg" && cp $$x.bbg lcov_data/$$y.bbg ; \
done
for dir in ext/bcmath/libbcmath ext/fileinfo/libmagic ext/gd/libgd ext/mbstring/libmbfl ext/mbstring/oniguruma ext/pcre/pcrelib ext/pdo_sqlite/libsqlite ext/sqlite/libsqlite ext/sqlite3/libsqlite ext/xmlrpc/libxmlrpc ext/zip/lib; do \
test -d lcov_data/$$dir && rm -rf lcov_data/$$dir ; \
done
@echo
@echo "Generating $@"
@$(LTP) --directory lcov_data/ --capture --base-directory=lcov_data --output-file $@
lcov-html: php_lcov.info
@echo "Generating lcov HTML"
@$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info
@$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" --show-details php_lcov.info
lcov-clean:
rm -f php_lcov.info
+21 -39
View File
@@ -8,27 +8,27 @@ COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORK
all: $(all_targets)
@echo
@echo "Build complete."
@echo "Don't forget to run 'make test'."
@echo "(It is safe to ignore warnings about tempnam and tmpnam)."
@echo
build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
build-modules: $(PHP_MODULES)
libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
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 $@ $(phptempdir)/$@ >/dev/null 2>&1
-@$(LIBTOOL) --silent --mode=install cp libphp5.la $(phptempdir)/libphp5.la >/dev/null 2>&1
libs/libphp$(PHP_MAJOR_VERSION).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/libphp$(PHP_MAJOR_VERSION).so
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)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \
-@if test ! -r $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME); then \
for i in 0.0.0 0.0 0; do \
if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \
if test -r $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME).$$i; then \
$(LN_S) $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_DL_SUFFIX_NAME); \
break; \
fi; \
done; \
@@ -66,53 +66,35 @@ install-headers:
fi \
done; \
fi
install-su: install-pear
PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
PHP_TEST_SHARED_EXTENSIONS = ` \
if test "x$(PHP_MODULES)" != "x"; then \
for i in $(PHP_MODULES)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
done; \
fi; \
if test "x$(PHP_ZEND_EX)" != "x"; then \
for i in $(PHP_ZEND_EX)""; do \
. $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
done; \
fi`
PHP_DEPRECATED_DIRECTIVES_REGEX = '^(define_syslog_variables|register_(globals|long_arrays)?|safe_mode|safe_mode_(gid|include_dir|exec_dir|allowed_env_vars|protected_env_vars)?|highlight_bg|enable_dl|detect_unicode|allow_call_time_pass_reference|magic_quotes_(gpc|runtime|sybase)?|(zend_)?extension(_debug)?(_ts)?)[\t\ ]*='
test: all
test: all
-@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
INI_FILE=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r 'echo php_ini_loaded_file();' 2> /dev/null`; \
if test "$$INI_FILE"; then \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
else \
echo > $(top_builddir)/tmp-php.ini; \
fi; \
INI_SCANNED_PATH=`$(PHP_EXECUTABLE) -d 'display_errors=stderr' -r '$$a = explode(",\n", trim(php_ini_scanned_files())); echo $$a[0];' 2> /dev/null`; \
if test "$$INI_SCANNED_PATH"; then \
INI_SCANNED_PATH=`$(top_srcdir)/build/shtool path -d $$INI_SCANNED_PATH`; \
$(EGREP) -h -v $(PHP_DEPRECATED_DIRECTIVES_REGEX) "$$INI_SCANNED_PATH"/*.ini >> $(top_builddir)/tmp-php.ini; \
fi; \
TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
TEST_PHP_SRCDIR=$(top_srcdir) \
CC="$(CC)" \
$(PHP_EXECUTABLE) -n -c $(top_builddir)/tmp-php.ini $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -n -c $(top_builddir)/tmp-php.ini -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
$(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 \*.gcno -o -name \*.gcda | xargs rm -f
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 libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
rm -f libphp5.la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
distclean: clean
rm -f Makefile config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h sapi/apache/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp
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:
+2010 -44
View File
File diff suppressed because it is too large. Load diff
+123
View File
@@ -0,0 +1,123 @@
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.
To do so use "make test".
7. For development use the --enable-maintainer-zts switch to ensure your
code handles TSRM correctly and doesn't break for thos who need that.
Currently we have the following branches in use:
HEAD Will become PHP 6.0. This CVS branch is for active development.
PHP_5_2 Is used to release the PHP 5.2.x series. Only minor feature
enhancements may go in here, but please keep that as infrequent as
possible.
PHP_5_1 Is used to release the PHP 5.1.x series. Only bugfixes are permitted
on this branch (Consult the releasemaster prior to commit).
PHP_5_0 This branch is closed.
PHP_4_4 Is used to release the PHP 4.4.x series. Only bugfixes are permitted
on this branch (Consult the releasemaster prior to commit).
PHP_4_3 This branch is closed.
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
-79
View File
@@ -1,79 +0,0 @@
====================
Mailinglist Rules
====================
This is the first file you should be reading before doing any posts on PHP
mailinglists. Following these rules is considered imperative to the success of
the PHP project. Therefore expect your contributions to be of much less positive
impact if you do not follow these rules. More importantly you can actually
assume that not following these rules will hurt the PHP project.
PHP is developed through the efforts of a large number of people.
Collaboration is a Good Thing(tm), and mailinglists lets us do this. Thus,
following some basic rules with regards to mailinglist usage will:
a. Make everybody happier, especially those responsible for developing PHP
itself.
b. Help in making sure we all use our time more efficiently.
c. Prevent you from making a fool of yourself in public.
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. Do not post when you are angry. Any post can wait a few hours. Review
your post after a good breather or a good nights sleep.
3. Make sure you pick the right mailinglist for your posting. Please review
the descriptions on the mailinglist overview page
(http://www.php.net/mailing-lists.php). When in doubt ask a friend or
someone you trust on IRC.
4. Make sure you know what you are talking about. PHP is a very large project
that strives to be very open. The flip side is that the core developers
are faced with a lot of requests. Make sure that you have done your
research before posting to the entire developer community.
5. Patches have a much greater chance of acceptance than just asking the
PHP developers to implement a feature for you. For one it makes the
discussion more concrete and it shows that the poster put thought and time
into the request.
6. If you are posting to an existing thread, make sure that you know what
previous posters have said. This is even more important the longer the
thread is already.
7. Please configure your email client to use a real name and keep message
signatures to a maximum of 2 lines if at all necessary.
The next few rules are more some general hints:
1. If you notice that your posting ratio is much higher than that of other
people, double check the above rules. Try to wait a bit longer before
sending your replies to give other people more time to digest your answers
and more importantly give you the opportunity to make sure that you
aggregate your current position into a single mail instead of multiple
ones.
2. Consider taking a step back from a very active thread now and then. Maybe
talking to some friends and fellow developers will help in understanding
the other opinions better.
3. Do not top post. Place your answer underneath anyone you wish to quote
and remove any previous comment that is not relevant to your post.
4. Do not high-jack threads, by bringing up entirely new topics. Please
create an entirely new thread copying anything you wish to quote into the
new thread.
Finally, additional hints on how to behave inside the virtual community can be
found in RFC 1855 (http://www.faqs.org/rfcs/rfc1855.html).
Happy hacking,
PHP Team
-142
View File
@@ -1,142 +0,0 @@
$Id$
API adjustment to the old output control code:
Everything now resides beneath the php_output namespace,
and there's an API call for every output handler op.
Checking output control layers status:
// Using OG()
php_output_get_status(TSRMLS_C);
Starting the default output handler:
// php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
php_output_start_default(TSRMLS_C);
Starting an user handler by zval:
// php_start_ob_buffer(zhandler, chunk_size, erase TSRMLS_CC);
php_output_start_user(zhandler, chunk_size, flags TSRMLS_CC);
Starting an internal handler whithout context:
// php_ob_set_internal_handler(my_php_output_handler_func_t, buffer_size, "output handler name", erase TSRMLS_CC);
php_output_start_internal(handler_name_zval, my_php_output_handler_func_t, chunk_size, flags TSRMLS_CC);
Starting an internal handler with context:
// not possible with old API
php_output_handler *h;
h = php_output_handler_create_internal(handler_name_zval, my_php_output_handler_context_func_t, chunk_size, flags TSRMLS_CC);
php_output_handler_set_context(h, my_context, my_context_dtor);
php_output_handler_start(h TSRMLS_CC);
Testing whether a certain output handler has already been started:
// php_ob_handler_used("output handler name" TSRMLS_CC);
php_output_handler_started(handler_name_zval TSRMLS_CC);
Flushing one output buffer:
// php_ob_end_buffer(1, 1 TSRMLS_CC);
php_output_flush(TSRMLS_C);
Flushing all output buffers:
// not possible with old API
php_output_flush_all(TSRMLS_C);
Cleaning one output buffer:
// php_ob_end_buffer(0, 1 TSRMLS_CC);
php_output_clean(TSRMLS_C);
Cleaning all output buffers:
// not possible with old API
php_output_clean_all(TSRMLS_C);
Discarding one output buffer:
// php_ob_end_buffer(0, 0 TSRMLS_CC);
php_output_discard(TSRMLS_C);
Discarding all output buffers:
// php_ob_end_buffers(0 TSRMLS_CC);
php_output_discard_all(TSRMLS_C);
Stopping (and dropping) one output buffer:
// php_ob_end_buffer(1, 0 TSRMLS_CC)
php_output_end(TSRMLS_C);
Stopping (and dropping) all output buffers:
// php_ob_end_buffers(1, 0 TSRMLS_CC);
php_output_end_all(TSRMLS_C);
Retrieving output buffers contents:
// php_ob_get_buffer(zstring TSRMLS_CC);
php_output_get_contents(zstring TSRMLS_CC);
Retrieving output buffers length:
// php_ob_get_length(zlength TSRMLS_CC);
php_output_get_length(zlength TSRMLS_CC);
Retrieving output buffering level:
// OG(nesting_level);
php_output_get_level(TSRMLS_C);
Issue a warning because of an output handler conflict:
// php_ob_init_conflict("to be started handler name", "to be tested if already started handler name" TSRMLS_CC);
php_output_handler_conflict(new_handler_name_zval, set_handler_name_zval TSRMLS_CC);
Registering a conflict checking function, which will be checked prior starting the handler:
// not possible with old API, unless hardcoding into output.c
php_output_handler_conflict_register(handler_name_zval, my_php_output_handler_conflict_check_t TSRMLS_CC);
Registering a reverse conflict checking function, which will be checked prior starting the specified foreign handler:
// not possible with old API
php_output_handler_reverse_conflict_register(foreign_handler_name_zval, my_php_output_handler_conflict_check_t TSRMLS_CC);
Facilitating a context from within an output handler callable with ob_start():
// not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ, (void *) &custom_ctx_ptr_ptr TSRMLS_CC);
Disabling of the output handler by itself:
//not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_DISABLE, NULL TSRMLS_CC);
Marking an output handler immutable by itself because of irreversibility of its operation:
// not possible with old API
php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC);
Restarting the output handler because of a CLEAN operation:
// not possible with old API
if (flags & PHP_OUTPUT_HANDLER_CLEAN) { ... }
Recognizing by the output handler itself if it gets discarded:
// not possible with old API
if ((flags & PHP_OUTPUT_HANDLER_CLEAN) && (flags & PHP_OUTPUT_HANDLER_FINAL)) { ... }
Output handler hooks
The output handler can change its abilities at runtime. Eg. the gz handler can
remove the CLEANABLE and REMOVABLE bits when the first output has passed through it;
or handlers implemented in C to be used with ob_start() can contain a non-global
context:
PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ
pass a void*** pointer as second arg to receive the address of a pointer
pointer to the opaque field of the output handler context
PHP_OUTPUT_HANDLER_HOOK_GET_FLAGS
pass a int* pointer as second arg to receive the flags set for the output handler
PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL
pass a int* pointer as second arg to receive the level of this output handler
(starts with 0)
PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE
the second arg is ignored; marks the output handler to be neither cleanable
nor removable
PHP_OUTPUT_HANDLER_HOOK_DISABLE
the second arg is ignored; marks the output handler as disabled
Open questions
Should the userland API be adjusted and unified?
Many bits of the manual (and very first implementation) do not comply
with the behaviour of the current (to be obsoleted) code, thus should
the manual or the behaviour be adjusted?
END
+42 -193
View File
@@ -31,81 +31,28 @@ resources cannot be auto-converted.
Type specifiers
---------------
The following list shows the type specifier, its meaning and the parameter
types that need to be passed by address. All passed paramaters are set
if the PHP parameter is non optional and untouched if optional and the
parameter is not present. The only exception is O where the zend_class_entry*
has to be provided on input and is used to verify the PHP parameter is an
instance of that class.
a - array (zval*)
A - array or object (zval *)
b - boolean (zend_bool)
C - class (zend_class_entry*)
d - double (double)
f - function or array containing php method call info (returned as
zend_fcall_info and zend_fcall_info_cache)
h - array (returned as HashTable*)
H - array or HASH_OF(object) (returned as HashTable*)
l - long (long)
L - long, limits out-of-range numbers to LONG_MAX/LONG_MIN (long)
o - object of any type (zval*)
O - object of specific type given by class entry (zval*, zend_class_entry)
r - resource (zval*)
s - string (with possible null bytes) and its length (char*, int)
S - binary string, does not allow conversion from Unicode strings
t - text (zstr (string union), int (length), zend_uchar (IS_STRING/..))
accepts either Unicode or binary string
T - text (zstr (string union), int (length), zend_uchar (IS_STRING/..))
coalesces all T parameters to common type (Unicode or binary)
u - unicode (UChar*, int)
U - Unicode string, does not allow conversion from binary strings
x - Unicode or binary string depending on UG(unicode). In unicode this
behaves like 'u' and in nonunicode mode it behaves like 's'.
z - the actual zval (zval*)
Z - the actual zval (zval**)
* - variable arguments list (0 or more)
+ - variable arguments list (1 or more)
a - array
b - boolean, stored in zend_bool
d - double
f - function or array containing php method call info (returned as
zend_fcall_info* and zend_fcall_info_cache*)
h - array (returned as HashTable*)
l - long
o - object (of any type)
O - object (of specific type, specified by class entry)
r - resource (stored in zval)
s - string (with possible null bytes) and its length
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 (applies
to all specifiers except for 'b', 'l', and 'd'). If NULL is passed, the
results pointer is set to NULL as well.
& - alternate format (currently used for 's' only to specify a converter to
use when converting from Unicode strings)
^ - returns original string type before conversion (only for 's' and 'u'
specifiers)
Note on 64bit compatibility
---------------------------
Please do not forget that int and long are two different things on 64bit
OSes (int is 4 bytes and long is 8 bytes), so make sure you pass longs to "l"
and ints to strings length (i.e. for "s" you need to pass char * and int),
not the other way round!
Remember: "l" is the only case when you need to pass long (and that's why
it's "l", not "i" btw).
Both mistakes cause memory corruptions and segfaults on 64bit OSes:
1)
char *str;
long str_len; /* XXX THIS IS WRONG!! Use int instead. */
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len)
2)
int num; /* XXX THIS IS WRONG!! Use long instead. */
zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &num)
If you're in doubt, use check_parameters.php script to the parameters
and their types (it can be found in ./scripts/dev/ directory of PHP sources):
# php ./scripts/dev/check_parameters.php /path/to/your/sources/
| - 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
--------
@@ -115,18 +62,18 @@ char *s;
int s_len;
zval *param;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
&l, &s, &s_len, &param) == FAILURE) {
return;
&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;
zend_class_entry my_ce;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
&obj, my_ce, &d) == FAILURE) {
return;
&obj, my_ce, &d) == FAILURE) {
return;
}
@@ -135,65 +82,26 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
zval *obj;
zval *arr;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o!a",
&obj, &arr) == FAILURE) {
return;
&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;
&arr) == FAILURE) {
return;
}
/* Gets a binary string in UTF-8 */
char *str;
int str_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&", &str, &str_len, UG(utf8_conv)) == FAILURE) {
return;
}
/* Gets a Unicode string */
UChar *str;
int len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "u", &str, &len) == FAILURE) {
return;
}
/* Gets a Unicode or binary string */
zstr str;
int len;
zend_uchar type;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "t", &str, &len, &type) == FAILURE) {
return;
}
if (type == IS_UNICODE) {
/* process str.u as Unicode string */
} else {
/* process str.s binary string */
}
/* Gets two string parameters, both of which will be guaranteed to be of the same type */
zstr str1, str2;
int len1, len2;
zend_uchar type1, type2;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "TT", &str1, &len1,
&type1, &str2, &len2, &type2) == FAILURE) {
return;
}
if (type1 == IS_UNICODE) {
/* process as Unicode, str2 is guaranteed to be Unicode as well */
} else {
/* process as binary string, str2 is guaranteed to be the same */
/* 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;
}
@@ -210,72 +118,13 @@ char *s;
int length;
if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
"lll", &l1, &l2, &l3) == SUCCESS) {
/* manipulate longs */
"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 */
"s", &s, &length) == SUCCESS) {
/* manipulate string */
} else {
/* output error */
/* output error */
return;
return;
}
/* Function that accepts only varargs (0 or more) */
int i, num_varargs;
zval ***varargs = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "*", &varargs, &num_varargs) == FAILURE) {
return;
}
for (i = 0; i < num_varargs; i++) {
/* do something with varargs[i] */
}
if (varargs) {
efree(varargs);
}
/* Function that accepts a string, followed by varargs (1 or more) */
char *str;
int str_len;
int i, num_varargs;
zval ***varargs = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s+", &str, &str_len, &varargs, &num_varargs) == FAILURE) {
return;
}
for (i = 0; i < num_varargs; i++) {
/* do something with varargs[i] */
}
if (varargs) {
efree(varargs);
}
/* Function that takes an array, followed by varargs, and ending with a long */
long num;
zval *array;
int i, num_varargs;
zval ***varargs = NULL;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a*l", &array, &varargs, &num_varargs, &num) == FAILURE) {
return;
}
for (i = 0; i < num_varargs; i++) {
/* do something with varargs[i] */
}
if (varargs) {
efree(varargs);
}
-11
View File
@@ -1,11 +0,0 @@
To install the PEAR installer, please use go-pear.
On linux:
$ lynx -source http://pear.php.net/go-pear | php
or save the setup script under go-pear.php and run:
php go-pear.php
For more informations see the PEAR manual:
http://pear.php.net/manual/en/installation.getting.php
-429
View File
@@ -1,429 +0,0 @@
1. libmagic (ext/fileinfo) see ext/fileinfo/libmagic/LICENSE
2. Oniguruma (ext/mbstring) see ext/mbstring/oniguruma/COPYING
3. libmbfl (ext/mbstring) see ext/mbstring/libmbfl/LICENSE
4. pcrelib (ext/pcre) see ext/pcre/pcrelib/LICENCE
5. ext/standard crypt
6. ext/standard crypt's blowfish implementation
7. Sqlite/Sqlite3 ext/sqlite3 ext/sqlite
8. ext/json/json_parser
9. ext/standard/rand
10. ext/standard/scanf
11. ext/standard/strnatcmp.c
12. ext/standard/uuencode
13. libxmlrpc ext/xmlrpc
14. libzip ext/zip
15. main/snprintf.c
16. main/strlcat
17. main/strlcpy
18. libgd see ext/gd/libgd/COPYING
5. ext/standard crypt
FreeSec: libcrypt for NetBSD
Copyright (c) 1994 David Burren
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are 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. Neither the name of the author nor the names of other contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. ext/standard crypt's blowfish implementation
This code comes from John the Ripper password cracker, with reentrant
and crypt(3) interfaces added, but optimizations specific to password
cracking removed.
Written by Solar Designer <solar at openwall.com> in 1998-2002 and
placed in the public domain.
There's absolutely no warranty.
It is my intent that you should be able to use this on your system,
as a part of a software package, or anywhere else to improve security,
ensure compatibility, or for any other purpose. I would appreciate
it if you give credit where it is due and keep your modifications in
the public domain as well, but I don't require that in order to let
you place this code and any modifications you make under a license
of your choice.
This implementation is compatible with OpenBSD bcrypt.c (version 2a)
by Niels Provos <provos at citi.umich.edu>, and uses some of his
ideas. The password hashing algorithm was designed by David Mazieres
<dm at lcs.mit.edu>.
There's a paper on the algorithm that explains its design decisions:
http://www.usenix.org/events/usenix99/provos.html
Some of the tricks in BF_ROUND might be inspired by Eric Young's
Blowfish library (I can't be sure if I would think of something if I
hadn't seen his code).
7. Sqlite/Sqlite3 ext/sqlite3 ext/sqlite
The author disclaims copyright to this source code. In place of
a legal notice, here is a blessing:
May you do good and not evil.
May you find forgiveness for yourself and forgive others.
May you share freely, never taking more than you give.
8. ext/json/json_parser
Copyright (c) 2005 JSON.org
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
The Software shall be used for Good, not Evil.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
9. ext/standard/rand
The following php_mt_...() functions are based on a C++ class MTRand by
Richard J. Wagner. For more information see the web page at
http://www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html
Mersenne Twister random number generator -- a C++ class MTRand
Based on code by Makoto Matsumoto, Takuji Nishimura, and Shawn Cokus
Richard J. Wagner v1.0 15 May 2003 rjwagner@writeme.com
The Mersenne Twister is an algorithm for generating random numbers. It
was designed with consideration of the flaws in various other generators.
The period, 2^19937-1, and the order of equidistribution, 623 dimensions,
are far greater. The generator is also fast; it avoids multiplication and
division, and it benefits from caches and pipelines. For more information
see the inventors' web page at http://www.math.keio.ac.jp/~matumoto/emt.html
Reference
M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally
Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on
Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30.
Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura,
Copyright (C) 2000 - 2003, Richard J. Wagner
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are 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 of its contributors may not 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 OWNER 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.
10. ext/standard/scanf
scanf.c --
This file contains the base code which implements sscanf and by extension
fscanf. Original code is from TCL8.3.0 and bears the following copyright:
This software is copyrighted by the Regents of the University of
California, Sun Microsystems, Inc., Scriptics Corporation,
and other parties. The following terms apply to all files associated
with the software unless explicitly disclaimed in individual files.
The authors hereby grant permission to use, copy, modify, distribute,
and license this software and its documentation for any purpose, provided
that existing copyright notices are retained in all copies and that this
notice is included verbatim in any distributions. No written agreement,
license, or royalty fee is required for any of the authorized uses.
Modifications to this software may be copyrighted by their authors
and need not follow the licensing terms described here, provided that
the new terms are clearly indicated on the first page of each file where
they apply.
IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY
FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY
DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE
IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE
NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR
MODIFICATIONS.
GOVERNMENT USE: If you are acquiring this software on behalf of the
U.S. government, the Government shall have only "Restricted Rights"
in the software and related documentation as defined in the Federal
Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you
are acquiring the software on behalf of the Department of Defense, the
software shall be classified as "Commercial Computer Software" and the
Government shall have only "Restricted Rights" as defined in Clause
252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the
authors grant the U.S. Government and others acting in its behalf
permission to use and distribute the software in accordance with the
terms specified in this license.
11. ext/standard/strnatcmp.c
strnatcmp.c -- Perform 'natural order' comparisons of strings in C.
Copyright (C) 2000 by Martin Pool <mbp@humbug.org.au>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software
in a product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
12. ext/standard/uuencode
Portions of this code are based on Berkeley's uuencode/uudecode
implementation.
Copyright (c) 1983, 1993
The Regents of the University of California. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are 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. All advertising materials mentioning features or use of this software
must display the following acknowledgement:
This product includes software developed by the University of
California, Berkeley and its contributors.
4. 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 BY THE REGENTS 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 REGENTS 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.
13. libxmlrpc ext/xmlrpc
Copyright 2000 Epinions, Inc.
Subject to the following 3 conditions, Epinions, Inc. permits you, free
of charge, to (a) use, copy, distribute, modify, perform and display this
software and associated documentation files (the "Software"), and (b)
permit others to whom the Software is furnished to do so as well.
1) The above copyright notice and this permission notice shall be included
without modification in all copies or substantial portions of the
Software.
2) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT ANY WARRANTY OR CONDITION OF
ANY KIND, EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION ANY
IMPLIED WARRANTIES OF ACCURACY, MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE OR NONINFRINGEMENT.
3) IN NO EVENT SHALL EPINIONS, INC. BE LIABLE FOR ANY DIRECT, INDIRECT,
SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES OR LOST PROFITS ARISING OUT
OF OR IN CONNECTION WITH THE SOFTWARE (HOWEVER ARISING, INCLUDING
NEGLIGENCE), EVEN IF EPINIONS, INC. IS AWARE OF THE POSSIBILITY OF SUCH
DAMAGES.
14. libzip ext/zip
zip.h -- exported declarations.
Copyright (C) 1999-2009 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
Redistribution and use in source and binary forms, with or without
modification, are 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 of the authors may not be used to endorse or promote
products derived from this software without specific prior
written permission.
THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``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 AUTHORS 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.
15. main/snprintf.c
Copyright (c) 2002, 2006 Todd C. Miller <Todd.Miller@courtesan.com>
Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
copyright notice and this permission notice appear in all copies.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
Sponsored in part by the Defense Advanced Research Projects
Agency (DARPA) and Air Force Research Laboratory, Air Force
Materiel Command, USAF, under agreement number F39502-99-1-0512.
main/spprintf
Copyright (c) 1995-1998 The Apache Group. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are 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. All advertising materials mentioning features or use of this
software must display the following acknowledgment:
"This product includes software developed by the Apache Group
for use in the Apache HTTP server project (http://www.apache.org/)."
4. The names "Apache Server" and "Apache Group" must not be used to
endorse or promote products derived from this software without
prior written permission.
5. Redistributions of any form whatsoever must retain the following
acknowledgment:
"This product includes software developed by the Apache Group
for use in the Apache HTTP server project (http://www.apache.org/)."
THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``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 APACHE GROUP 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 Apache Group and was originally based
on public domain software written at the National Center for
Supercomputing Applications, University of Illinois, Urbana-Champaign.
For more information on the Apache Group and the Apache HTTP server
project, please see <http://www.apache.org/>.
This code is based on, and used with the permission of, the
SIO stdio-replacement strx_* functions by Panos Tsirigotis
<panos@alumni.cs.colorado.edu> for xinetd.
16. main/strlcat
17. main/strlcpy
Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are 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 of the author may not be used to endorse or promote products
derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED ``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 AUTHOR 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.
-286
View File
@@ -1,286 +0,0 @@
=======================
PHP Release Process
=======================
General notes and tips
----------------------
1. Do not release on Fridays, Saturdays or Sundays
because the sysadmins can not upgrade stuff then.
2. Package the day before a release. So if the release is to be on Thursday,
package on Wednesday.
3. Ensure that Windows builds will work before packaging
4. Follow all steps to the letter. When unclear ask previous RM's (Derick/Ilia)
before proceeding. Ideally make sure that for the first releases one of the
previous RM's is around to answer questions. For the steps related to the
php/QA/bug websites try to have someone from the webmaster team (Bjori) on hand.
5. Verify the tags to be extra sure everything was tagged properly.
6. Moving extensions from/to PECL requires root level access to the CVS server.
Contact systems@php.net to get this taken care of.
Moving extensions from php-src to PECL
- Filesystem: cp -r php-src/ext/foo pecl/foo
- cvs rm php-src/ext/foo
If the extension is still usable or not dead, in cooperation with the extension
maintainers if any:
- create the pecl.php.net/foo package and its content, license, maintainer
- create the package.xml, commit
- release the package
Moving extensions from PECL to php-src
- Filesystem: cp -r pecl/foo php-src/ext/foo
OR depending on the wishes from the PECL extension maintainer.
- Filesystem: ln -s pecl/foo php-src/ext/foo
Rolling a non stable release (alpha/beta/RC)
--------------------------------------------
1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
Do not use abbreviations for alpha and beta.
3. Commit those changes
4. run the "scripts/dev/credits" script in php-src and commit the changes in the
credits files in ext/standard.
5. tag the repository with the version f.e. "``cvs tag php_4_4_1RC1``"
(of course, you need to change that to the version you're rolling an RC for).
6. Bump up the version numbers in ``main/php_version.h``, ``configure.in``
and possibly ``NEWS`` again, to the **next** version. F.e. if the release
candidate was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless
if we get a new RC or not. This is to make sure ``version_compare()`` can
correctly work.
7. Commit those changes
8. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
branch if you're rolling 4.4.x releases).
9. You do not have to update the tree, but of course you can with "``cvs up -dP``".
10. run: ``./makedist php 4.4.1RC1``, this will export the tree, create configure
and build two tarballs (one gz and one bz2).
11. Copy those two tarballs to www.php.net, in your homedir there should be a
directory "downloads/". Copy them into there, so that the system can generate
MD5 sums. If you do not have this directory, talk to Derick.
12. Now the RC can be found on http://downloads.php.net/yourname,
f.e. http://downloads.php.net/derick/
13. Once the release has been tagged, contact the PHP Windows development team
(internals-win@lists.php.net) so that Windows binaries can be created. Once
those are made, they should be placed into the same directory as the source snapshots.
Getting the non stable release (alpha/beta/RC) announced
--------------------------------------------------------
1. Send an email (see example here: http://news.php.net/php.internals/19486)
**To** ``internals@lists.php.net`` and ``php-general@lists.php.net`` lists
pointing out "the location of the release" and "the possible release date of
either the next RC, or the final release".
2. Send an email (see example here http://news.php.net/php.pear.qa/5201) **To**
``php-qa@lists.php.net`` and ``primary-qa-tests@lists.php.net``.
This email is to notify the selected projects about a new release so that they
can make sure their projects keep working. Make sure that you have been setup
as a moderator for ``primary-qa-tests@lists.php.net`` by having someone (Wez,
Derick) run the following commands for you:
``ssh lists.php.net``
``sudo -u ezmlm ezmlm-sub ~ezmlm/primary-qa-tester/mod moderator-email-address``
3. Update the MD5 sums in ``web/qa/trunk/include/rc-md5sums.txt`` (no empty lines).
4. Update in ``web/qa/trunk/include/release-qa.php`` constants with the new RC and
commit this.
a. ``$BUILD_TEST_RELEASES`` = array("4.4.7RC1", "5.2.2RC1")
b. ``$CURRENT_QA_RELEASE_4`` = "4.4.7RC1" (``$CURRENT_QA_RELEASE_5`` for PHP5)
c. ``$RELEASE_PROCESS`` = array(4 => true, 5 => true)
1. Update in ``php-bugs/trunk/include/functions.inc`` the ``show_version_option``
function to include the new RC and commit.
2. Update ``phpweb/include/version.inc`` (x=major version number)
a. ``$PHP_x_RC`` = "5.3.0RC1"
b. ``$PHP_x_RC_DATE`` = "06 September 2007"
3. Commit those changes:
a. ``cvs commit include/version.inc include/releases.inc``
4. For the first RC, write the doc team (phpdoc@lists.php.net) about updating the
INSTALL and win32/install.txt files which are generated from the PHP manual sources.
Rolling a stable release
------------------------
1. Check windows snapshot builder logs (http://snaps.php.net/win32/snapshot-STABLE.log f.e.)
2. Bump the version numbers in ``main/php_version.h``, ``configure.in`` and possibly ``NEWS``.
3. **Merge** all related sections in NEWS (f.e. merge the 4.4.1RC1 and 4.4.0 sections)
4. Commit those changes
5. run the "scripts/dev/credits" script in php-src and commit the changes in the
credits files in ext/standard.
6. tag the repository with the version f.e. "``cvs tag php_4_4_1``"
(of course, you need to change that to the version you're rolling an RC for).
When making 5.X release, you need to tag the Zend directory separately!!
7. Bump up the version numbers in ``main/php_version.h``, ``configure.in`` and
possibly ``NEWS`` again, to the **next** version. F.e. if the release candidate
was "4.4.1RC1" then the new one should be "4.4.1RC2-dev" - regardless if we get
a new RC or not. This is to make sure ``version_compare()`` can correctly work.
8. Commit those changes
9. Log in onto the snaps box and go into the correct tree (f.e. the PHP_4_4
branch if you're rolling 4.4.x releases).
10. You do not have to update the tree, but of course you can with "``cvs up -dP``".
11. run: ``./makedist php 4.4.1``, this will export the tree, create configure
and build two tarballs (one gz and one bz2).
12. Commit those two tarballs to CVS (phpweb/distributions)
13. Once the release has been tagged, contact the PHP Windows development team
(internals-win@lists.php.net) so that Windows binaries can be created. Once
those are made, they should be committed to CVS too.
14. Check if the pear files are updated (phar for 5.1+ or run pear/make-pear-bundle.php with 4.4)
15. When making a final release, also remind the PHP Windows development team
(internals-win@lists.php.net) to prepare the installer packages for Win32.
Getting the stable release announced
------------------------------------
1. Run the bumpRelease script for phpweb on your local checkout
a. ``php bin/bumpRelease 5`` (or ``php bin/bumpRelease 4`` for PHP4)
2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
a. ``$PHP_X_VERSION`` to the correct version
b. ``$PHP_X_DATE`` to the release date
c. ``$PHP_X_MD5`` array and update all the md5 sums
d. set ``$PHP_X_RC`` to false!
e. Make sure there are no outdated "notes" or edited "date" keys in the
``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
f. if the windows builds aren't ready yet prefix the "windows" key with a dot (".windows")
3. Update the ChangeLog file for the given major version
f.e. ``ChangeLog-4.php`` from the NEWS file
a. go over the list and put every element on one line
b. check for &, < and > and escape them if necessary
c. remove all the names at the ends of lines
d. for marking up, you can do the following (with VI):
I. ``s/^- /<li>/``
II. ``s/$/<\/li>/``
III. ``s/Fixed bug #\([0-9]\+\)/<?php bugfix(\1); ?>/``
IV. ``s/Fixed PECL bug #\([0-9]\+\)/<?php peclbugfix(\1); ?>/``
V. ``s/FR #\([0-9]\+\)/FR <?php bugl(\1); ?>/``
4. ``cp releases/4_4_0.php releases/4_4_1.php``
5. ``cvs add releases/4_4_1.php``
6. Update the ``releases/*.php`` file with relevant data. The release
announcement file should list in detail:
a. security fixes,
b. changes in behavior (whether due to a bug fix or not)
7. Add a short notice to phpweb stating that there is a new release, and
highlight the major important things (security fixes) and when it is important
to upgrade.
a. Call php bin/createNewsEntry in your local phpweb checkout
b. Add the content for the news entry
8. Commit all the changes.
9. Wait an hour or two, then send a mail to php-announce@lists.php.net,
php-general@lists.php.net and internals@lists.php.net with a text similar to
http://news.php.net/php.internals/17222.
10. Update ``php-bugs-web/include/functions.php`` to include the new version
number, and remove the RC from there.
11. Update ``qaweb/include/release-qa.php``
a. Update the $BUILD_TEST_RELEASES array with the release name
b. Update $RELEASE_PROCESS array (set to false)
I. For PHP4: Set $CURRENT_QA_RELEASE_4 to false
II. For PHP5: Set $CURRENT_QA_RELEASE_5 to false
Re-releasing the same version (or -pl)
--------------------------------------
1. Commit the new binaries to ``phpweb/distributions/``
2. Edit ``phpweb/include/version.inc`` and change (X=major release number):
a. If only releasing for one OS, make sure you edit only those variables
b. ``$PHP_X_VERSION`` to the correct version
c. ``$PHP_X_DATE`` to the release date
d. ``$PHP_X_MD5`` array and update all the md5 sums
e. Make sure there are no outdated "notes" or edited "date" keys in the
``$RELEASES[X][$PHP_X_VERSION]["source"]`` array
3. Add a short notice to phpweb stating that there is a new release, and
highlight the major important things (security fixes) and when it is important
to upgrade.
a. Call php bin/createNewsEntry in your local phpweb checkout
b. Add the content for the news entry
4. Commit all the changes (``include/version.inc``, ``archive/archive.xml``,
``archive/entries/YYYY-MM-DD-N.xml``)
5. Wait an hour or two, then send a mail to php-announce@lists.php.net,
php-general@lists.php.net and internals@lists.php.net with a text similar to
the news entry.
+97 -123
View File
@@ -1,152 +1,126 @@
Submitting Patches to PHP
=========================
Submitting Patch for PHP
========================
This document describes how to submit a patch for PHP. Creating a
patch for PHP is easy!
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. :-)
You don't need any login accounts or special access to download,
build, debug and begin submitting PHP code, tests or documentation for
inclusion in PHP. Once you've followed this README and had several
patches accepted, PHP commit privileges are often quickly granted.
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)
An excellent article to read first is:
http://phpadvent.org/2008/less-whining-more-coding-by-elizabeth-smith
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.
Prework
-------
If you are fixing broken functionality then create a bug or identify
an existing bug at http://bugs.php.net/. This can be used to track
the patch progress and prevent your changes getting lost in the PHP
mail archives.
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 your code change is large, then first discuss it with the extension
maintainer and/or a development mail list. Extension maintainers can
be found in the EXTENSIONS file in the PHP source. Use the
internals@lists.php.net mail list to discuss changes to the base PHP
code. Use pecl-dev@lists.php.net for changes to code that is only
available from PECL (http://pecl.php.net/). Use pear-dev@lists.php.net
for PEAR modules (http://pear.php.net/). Use phpdoc@lists.php.net for
PHP documentation questions. Mail list subscription is explained on
http://www.php.net/mailing-lists.php.
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 a PHP or PECL patch affects user functionality or makes significant
internal changes then create a simple Request For Comment (RFC) page
on http://wiki.php.net/rfc before starting discussion. This RFC can be
used for initial discussion and later for documentation. Wiki accounts
can be requested on http://wiki.php.net/start?do=register
Online information on PHP internal C functions is at
http://www.php.net/internals, though this is considered
incomplete. Various external resources can be found on the web. A
standard reference is the book "Extending and Embedding PHP" by Sara
Golemon.
Information on contributing to PEAR is available at
http://pear.php.net/manual/en/guide-developers.php
Information on contributing to PHP documentation is at
http://php.net/dochowto and http://wiki.php.net/doc/howto
There are several IRC channels where PHP developers are often
available to discuss questions. They include #php.pecl and #php.doc
on the EFNet network and #php-dev-win on FreeNode.
If you are new to CVS (Concurrent Versions System), visit
http://cvshome.org/ for details.
How to create your patch
------------------------
PHP uses Subversion (SVN) for revision control. Read
http://www.php.net/svn.php for help on using SVN to get and build PHP
source code. We recommend using a Sparse Directory checkout described
in http://wiki.php.net/vcs/svnfaq. If you are new to SVN, read
http://svnbook.red-bean.com.
Recommended CVS client settings for creating patch file
------------------------------------------------------
Recommended ~/.cvsrc file setting is:
------
cvs -z3
update -d -P
checkout -P
diff -u
Generally we ask that patches work on the current stable PHP
development branch and on "trunk".
------
diff -u means:
-u Use the unified output format.
Read CODING_STANDARDS before you start working.
After modifying the source see README.TESTING and
http://qa.php.net/write-test.php for how to test. Submitting test
scripts helps us to understand what functionality has changed. It is
important for the stability and maintainability of PHP that tests are
comprehensive.
After testing is finished, create a patch file using the command:
svn diff > your_patch.txt
For ease of review and later troubleshooting, submit individual
patches for each bug or feature.
With this CVS setting, you don't have to worry about adding/deleting
newlines and spaces.
Checklist for submitting your patch
-----------------------------------
- Update SVN source just before running your final 'diff' and
before testing.
- Run "make test" to check your patch doesn't break other features.
- Rebuild PHP with --enable-debug (which will show some kinds of
memory errors) and check the PHP and web server error logs after
running the PHP tests.
- Rebuild PHP with --enable-maintainer-zts to check your patch compiles
on multi-threaded web servers.
- Create test scripts for use with "make test".
- Add in-line comments and/or have external documentation ready.
- Review the patch once more just before submitting it.
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 PHP C source then email the patch to
internals@lists.php.net
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 patching a PECL extension then send the patch to
pecl-dev@lists.php.net
If you are patching PEAR, send the patch to pear-dev@lists.php.net.
If you are patching PEAR then 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.
If you are patching PHP's documentation then send the patch to
phpdoc@lists.php.net
NOTE: only MIME attachments of type 'text/*' are accepted. The
easiest way to accomplish this, is to make the extension
'.txt'.
The mail can be CC'd to the extension maintainer (see EXTENSIONS).
Test scripts should be included in the same email.
Explain what has been fixed/added/changed by your patch.
Please make the subject prefix "[PATCH]", for example "[PATCH] Fix
return value of all array functions"
Include the patch as an attachment with a file extension of ".txt".
This is because only MIME attachments of type 'text/*' are accepted.
Explain what has been fixed/added/changed by your patch. Test scripts
should be included in the email.
Include the bug id(s) which can be closed by your patch.
Finally, update any open bugs and add a link to the source of 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 obviously has no side-effects,
it might be committed relatively quickly.
----------------------------------------
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 PHP is a volunteer-driven effort more complex patches will
require patience on your side. If you do not receive feedback in a few
days, consider resubmitting the patch. Before doing this think about
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:
- Did I review the mail list archives to see if these kind of
changes had been discussed before?
- Did I explain my patch clearly?
- Is my patch too hard to review? Because of which factors?
- Are there any unwanted white space changes?
- 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 in the SVN commit log. If your patch
affects end users, a brief description and your name might be added to
the NEWS file.
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 patching PHP!
Thank you for submitting patch for PHP!
-146
View File
@@ -1,146 +0,0 @@
====================
SVN Commit Rules
====================
This is the first file you should be reading after you get your SVN account.
We'll assume you're basically familiar with SVN, but feel free to post
your questions on the mailing list. Please have a look at
http://svnbook.red-bean.com/ for more detailed information on SVN.
PHP is developed through the efforts of a large number of people.
Collaboration is a Good Thing(tm), and SVN lets us do this. Thus, following
some basic rules with regards to SVN usage will::
a. Make everybody happier, especially those responsible for maintaining
the SVN 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 and get
confirmation from the release manager for the given branch.
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.
To do so use "make test".
7. For development use the --enable-maintainer-zts switch to ensure your
code handles TSRM correctly and doesn't break for thos who need that.
Currently we have the following branches in use::
trunk Will become PHP 6.0. This branch is for active development.
branches/PHP_5_3 Is used to release the PHP 5.3.x series. It still allows for
larger enhancements.
branches/PHP_5_2 Is used to release the PHP 5.2.x series. Only bugfixes are permitted
on this branch (Consult the releasemaster prior to commit).
branches/PHP_5_1 This branch is closed.
branches/PHP_4_4 This branch is closed.
The next few rules are more of a technical nature::
1. All changes should first go to trunk and then get merged from trunk
(aka MFH'ed) to all other relevant branches.
2. DO NOT TOUCH ChangeLog! It is automagically updated from the commit
messages every day. Woe be to those who attempt to mess with it.
3. All news updates intended for public viewing, such as new features,
bug fixes, improvements, etc., should go into the NEWS file of the
*first* to be released version with the given change. In other words
any NEWS file change only needs to done in one branch.
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.
4. 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.
5. 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.
6. 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.
7. 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.
Use the [DOC] tag in your log message whenever you feel that your changes
imply a documentation modification. The php-doc team will automatically
get notified about your commit through the php-doc mailing list.
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 SVN 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.
When you change the NEWS file for a bug fix, then please keep the bugs
sorted in decreasing order under the fixed version.
You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
to look at PHP SVN 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
+4 -5
View File
@@ -32,12 +32,11 @@ sapi/cli/php [-c /path/to/php.ini] run-tests.php [ext/foo/tests/GLOB]
[Which "php" executable "make test" look for]
---------------------------------------------
If you are running the run-tests.php script from the command line (as above)
you must set the TEST_PHP_EXECUTABLE environment variable to explicitly
select the PHP executable that is to be tested, that is, used to run the test scripts.
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.
If you run the tests using make test, the PHP CLI and CGI executables are
automatically set for you. "make test" executes "run-tests.php" script with the CLI binary. Some
"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.
+14 -14
View File
@@ -1,11 +1,11 @@
[IMPORTANT NOTICE]
------------------
This is an addendum to README.TESTING with additional information
specific to server-tests.php.
specific to run-tests2.php.
server-tests.php is backward compatible with tests developed for
the original run-tests.php script. server-tests is *not* used by
'make test'. server-tests was developed to provide support for
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.
@@ -13,12 +13,12 @@ or are accessable via HTTP.
[New features]
----------------
* Command line interface:
You can run 'php server-tests.php -h' to get all the possible options.
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 server-tests-config.php for details.
see run-tests-config.php for details.
* CGI Emulation:
Will emulate a CGI environment when testing with the cgi sapi executable.
* HTTP testing:
@@ -39,23 +39,23 @@ make testing work.
Some (but not all!) examples of usage:
1. run tests from the php source directory
php server-tests.php -p /path/to/php-cli
php run-tests2.php -p /path/to/php-cli
2. run tests using cgi emulation
php server-tests.php -p /path/to/php-cgi
php run-tests2.php -p /path/to/php-cgi
3. run tests over http, copying test files into document root
php server-tests.php -w -u http://localhost/test -m /path/to/htdocs/test
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 server-tests.php -w -u http://localhost/test
php run-tests2.php -w -u http://localhost/test
5. run tests using configuration file
php server-tests.php -c /path/to/server-tests-config.php
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 server-tests.php -c /path/to/server-tests-config.php -w -t 3 -d /path/to/testdir
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.
@@ -63,7 +63,7 @@ NOTE: configuration as described in README.TESTING still works.
----------------
In addition to the traditional test sections
(see http://qa.php.net/write-test.php), several new sections are available
under server-tests.
under run-tests2.
--POST--
This is not a new section, but not multipart posts are supported for testing
@@ -97,7 +97,7 @@ include:
$scriptname this is what will become SCRIPT_NAME unless you override it
$docroot the equivelant of DOCUMENT_ROOT under Apache
$cwd the directory that the test is being initiated from
$this->conf all server-tests configuration vars
$this->conf all run-tests2 configuration vars
$this->env all environment variables that will get passed to the test
-644
View File
@@ -1,644 +0,0 @@
Audience
========
This README describes how PHP 6 provides native support for the Unicode
Standard. Readers of this document should be proficient with PHP and have a
basic understanding of Unicode concepts. For more technical details about
PHP 6 design principles and for guidelines about writing Unicode-ready PHP
extensions, refer to README.UNICODE-UPGRADES.
Introduction
============
As successful as PHP has proven to be over the years, its support for
multilingual and multinational environments has languished. PHP can no
longer afford to remain outside the overall movement towards the Unicode
standard. Although recent updates involving the mbstring extension have
enabled easier multibyte data processing, this does not constitute native
Unicode support.
Since the full implementation of the Unicode Standard is very involved, our
approach is to speed up implementation by using the well-tested,
full-featured, and freely available ICU (International Components for
Unicode) library.
General Remarks
===============
International Components for Unicode
------------------------------------
ICU (International Components for Unicode is a mature, widely used set of
C/C++ and Java libraries for Unicode support, software internationalization
and globalization. It provides:
- Encoding conversions
- Collations
- Unicode text processing
- and much more
When building PHP 6, Unicode support is always enabled. The only
configuration option during development should be the location of the ICU
headers and libraries.
--with-icu-dir=<dir>
where <dir> specifies the location of ICU header and library files. If you do
not specify this option, PHP attempts to find ICU under /usr and /usr/local.
NOTE: ICU is not bundled with PHP 6 yet. To download the distribution, visit
http://icu.sourceforge.net. PHP requires ICU version 3.4 or higher.
Backwards Compatibility
-----------------------
Our paramount concern for providing Unicode support is backwards compatibility.
Because PHP is used on so many sites, existing data types and functions must
work as they always have. However, although PHP's interfaces must remain
backwards-compatible, the speed of certain operations might be affected due to
internal implementation changes.
Encoding Names
--------------
All the encoding settings discussed in this document can accept any valid
encoding name supported by ICU. For a full list of encodings, refer to the ICU
online documentation.
NOTE: References to "Unicode" in this document generally mean the UTF-16
character encoding, unless explicitly stated otherwise.
Unicode Semantics Switch
========================
Because many applications do not require Unicode, PHP 6 provides a server-wide
INI setting to enable Unicode support:
unicode.semantics = On/Off
This switch is off by default. If your applications do not require native
Unicode support, you may leave this switch off, and continue to use Unicode
strings only when you need to.
However, if your application is ready to fully support Unicode, you should
turn this switch on. This activates various Unicode support mechanisms,
including:
* All string literals become Unicode
* All variables received from HTTP requests become Unicode
* PHP identifiers may use Unicode characters
More fundamentally, your PHP environment is now a Unicode environment. Strings
inside PHP are Unicode, and the system is responsible for converting non-Unicode
strings on PHP's periphery (for example, in HTTP input and output, streams, and
filesystem operations). With unicode.semantics on, you must specify binary
strings explicitly. PHP makes no assumptions about the content of a binary
string, so your application must handle all binary string appropriately.
Conversely, if unicode.semantics is off, PHP behaves as it did in the past.
String literals do not become Unicode, and files are binary strings for
backwards compatibility. You can always create Unicode strings programmatically,
and all functions and operators support Unicode strings transparently.
Fallback Encoding
=================
The fallback encoding provides a default value for all other unicode.*_encoding
INI settings. If you do not set a particular unicode.*_encoding setting, PHP
uses the fallback encoding. If you do not specify a fallback encoding, PHP uses
UTF-8.
unicode.fallback_encoding = "iso-8859-1"
Runtime Encoding
================
The runtime encoding specifies the encoding PHP uses for converting binary
strings within the PHP engine itself.
unicode.runtime_encoding = "iso-8859-1"
This setting has no effect on I/O-related operations such as writing to
standard out, reading from the filesystem, or decoding HTTP input variables.
PHP enables you to explicitly convert strings using casting:
* (binary) -- casts to binary string type
* (unicode) -- casts to Unicode string type
* (string) -- casts to Unicode string type if unicode.semantics is on,
to binary otherwise
For example, if unicode.runtime_encoding is iso-8859-1, and $uni is a unicode
string, then
$str = (binary)$uni
creates a binary string $str in the ISO-8859-1 encoding.
Implicit conversions include concatenation, comparison, and parameter passing.
For better precision, PHP attempts to convert strings to Unicode before
performing these sorts of operations. For example, if we concatenate our binary
string $str with a unicode literal, PHP converts $str to Unicode first, using
the encoding specified by unicode.runtime_encoding.
Output Encoding
===============
PHP automatically converts output for commands that write to the standard
output stream, such as 'print' and 'echo'.
unicode.output_encoding = "utf-8"
However, PHP does not convert binary strings. When writing to files or external
resources, you must rely on stream encoding features or manually encode the data
using functions provided by the unicode extension.
The existing default_charset INI setting is DEPRECATED in favor of
unicode.output_setting. Previously, default_charset only specified the charset
portion of the Content-Type MIME header. Now default_charset only takes effect
when unicode.semantics is off, and it does not affect the actual transcoding of
the output stream. Setting unicode.output_encoding causes PHP to add the
'charset' portion to the Content-Type header, overriding any value set for
default_charset.
HTTP Input Encoding
===================
The HTTP input encoding specifies the encoding of variables received via
HTTP, such as the contents of the $_GET and _$POST arrays.
This functionality is currently under development. For a discussion of the
approach that the PHP 6 team is taking, refer to:
http://marc.theaimsgroup.com/?t=116613047300005&r=1&w=2
Filesystem Encoding
===================
The filesystem encoding specifies the encoding of file and directory names
on the filesystem.
unicode.filename_encoding = "utf-8"
Filesystem-related functions such as opendir() perform this conversion when
accepting and returning file names. You should set the filename encoding to
the encoding used by your filesystem.
Script Encoding
===============
You may write PHP scripts in any encoding supported by ICU. To specify the
script encoding site-wide, use the INI setting:
unicode.script_encoding = utf-8
If you cannot change the encoding system wide, you can use a pragma to
override the INI setting in a local script:
<?php declare(encoding = 'Shift-JIS'); ?>
The pragma setting must be the first statement in the script. It only affects
the script in which it occurs, and does not propagate to any included files.
INI Files
=========
If unicode.semantics is on, INI files are presumed to contain UTF-8 encoded
keys and values. If unicode.semantics is off, the data is taken as-is,
similar to PHP 5. No validation occurs during parsing. Instead invalid UTF-8
sequences are caught during access by ini_*() functions.
Stream I/O
==========
PHP has a streams-based I/O system for generalized filesystem access,
networking, data compression, and other operations. Since the data on the
other end of the stream can be in any encoding, you need to think about
data conversion.
Okay, this needs to be clarified. By "default", streams are actually
opened in binary mode. You have to specify 't' flag or use FILE_TEXT in
order to open it in text mode, where conversions apply. And for the text
mode streams, the default stream encoding is UTF-8 indeed.
By default, PHP opens streams in binary mode. To open a file in text mode,
you must use the 't' flag (or the FILE_TEXT parameter -- see below). The
default encoding for streams in text mode is UTF-8. This means that if
'file.txt' is a UTF-8 text file, this code snippet:
$fp = fopen('file.txt', 'rt');
$str = fread($fp, 100)
returns 100 Unicode characters, while:
$fp = fopen('file.txt', 'wt');
$fwrite($fp, $uni)
writes to a UTF-8 text file.
If you mainly work with files in an encoding other than UTF-8, you can
change the default context encoding setting:
stream_default_encoding('Shift-JIS');
$data = file_get_contents('file.txt', FILE_TEXT);
// work on $data
file_put_contents('file.txt', $data, FILE_TEXT);
The file_get_contents() and file_put_contents() functions now accept an
additional parameter, FILE_TEXT. If you provide FILE_TEXT for
file_get_contents(), PHP returns a Unicode string. Without FILE_TEXT, PHP
returns a binary string (which would be appropriate for true binary data, such
as an image file). When writing a Unicode string with file_put_contents(), you
must supply the FILE_TEXT parameter, or PHP generates a warning.
If you need to work with multiple encodings, you can create custom contexts
using stream_context_create() and then pass in the custom context as an
additional parameter. For example:
$ctx = stream_context_create(NULL, array('encoding' => 'big5'));
$data = file_get_contents('file.txt', FILE_TEXT, $ctx);
// work on $data
file_put_contents('file.txt', $data, FILE_TEXT, $ctx);
Conversion Semantics and Error Handling
=======================================
PHP can convert strings explicitly (casting) and implicitly (concatenation,
comparison, and parameter passing. For example, when concatenating a Unicode
string and a binary string, PHP converts the binary string to Unicode for better
precision.
However, not all characters can be converted between Unicode and legacy
encodings. The first possibility is that a string contains corrupt data or
an illegal byte sequence. In this case, the converter simply stops with
a message that resembles:
Warning: Could not convert binary string to Unicode string
(converter UTF-8 failed on bytes (0xE9) at offset 2)
Conversely, if a similar error occurs when attempting to convert Unicode to
a legacy string, the converter generates a message that resembles:
Warning: Could not convert Unicode string to binary string
(converter ISO-8859-1 failed on character {U+DC00} at offset 2)
To customize this behavior, refer to "Creating a Custom Error Handler" below.
The second possibility is that a Unicode character simply cannot be represented
in the legacy encoding. By default, when downconverting from Unicode, the
converter substitutes any missing sequences with the appropriate substitution
sequence for that codepage, such as 0x1A (Control-Z) in ISO-8859-1. When
upconverting to Unicode, the converter replaces any byte sequence that has no
Unicode equivalent with the Unicode substitution character (U+FFFD).
You can customize the conversion error behavior to:
- stop the conversion and return an empty string
- skip any invalid characters
- substitute invalid characters with a custom substitution character
- escape the invalid character in various formats
To control the global conversion error settings, use the functions:
unicode_set_error_mode(int direction, int mode)
unicode_set_subst_char(unicode char)
where direction is either FROM_UNICODE or TO_UNICODE, and mode is one of these
constants:
U_CONV_ERROR_STOP
U_CONV_ERROR_SKIP
U_CONV_ERROR_SUBST
U_CONV_ERROR_ESCAPE_UNICODE
U_CONV_ERROR_ESCAPE_ICU
U_CONV_ERROR_ESCAPE_JAVA
U_CONV_ERROR_ESCAPE_XML_DEC
U_CONV_ERROR_ESCAPE_XML_HEX
As an example, with a runtime encoding of ISO-8859-1, the conversion:
$str = (binary)"< \u30AB >";
results in:
MODE RESULT
--------------------------------------
stop ""
skip "< >"
substitute "< ? >"
escape (Unicode) "< {U+30AB} >"
escape (ICU) "< %U30AB >"
escape (Java) "< \u30AB >"
escape (XML decimal) "< &#12459; >"
escape (XML hex) "< &#x30AB; >"
With a runtime encoding of UTF-8, the conversion of the (illegal) sequence:
$str = (unicode)b"< \xe9\xfe >";
results in:
MODE RESULT
--------------------------------------
stop ""
skip ""
substitute ""
escape (Unicode) "< %XE9%XFE >"
escape (ICU) "< %XE9%XFE >"
escape (Java) "< \xE9\xFE >"
escape (XML decimal) "< &#233;&#254; >"
escape (XML hex) "< &#xE9;&#xFE; >"
The substitution character can be set only for FROM_UNICODE direction and has to
exist in the target character set. The default substitution character is (?).
NOTE: Casting is just a shortcut for using unicode.runtime_encoding. To convert
using an alternative encoding, use the unicode_encode() and unicode_decode()
functions. For example,
$str = unicode_encode($uni, 'koi8-r', U_CONV_ERROR_SUBST);
results in a binary KOI8-R encoded string.
Creating a Custom Error Handler
-------------------------------
If an error occurs during the conversion, PHP outputs a warning describing the
problem. Instead of this default behavior, PHP can invoke a user-provided error
handler, similar to how the current user-defined error handler works. To set
the custom conversion error handler, call:
mixed unicode_set_error_handler(callback error_handler)
The function returns the previously defined custom error handler. If no error
handler was defined, or if an error occurs when returning the handler, this
function returns NULL.
When the custom handler is set, the standard error handler is bypassed. It is
the responsibility of the custom handler to output or log any messages, raise
exceptions, or die(), if necessary. However, if the custom error handler returns
FALSE, the standard handler will be invoked afterwards.
The user function specified as the error_handler must accept five parameters:
mixed error_handler($direction, $encoding, $char_or_byte, $offset,
$message)
where:
$direction - the direction of conversion, FROM_UNICODE/TO_UNICODE
$encoding - the name of the encoding to/from which the conversion
was attempted
$char_or_byte - either Unicode character or byte sequence (depending
on direction) which caused the error
$offset - the offset of the failed character/byte sequence in
the source string
$message - the error message describing the problem
NOTE: If the error mode set by unicode_set_error_mode() is substitute,
skip, or escape, the handler won't be called, since these are non-error
causing operations. To always invoke your handler, set the error mode to
U_CONV_ERROR_STOP.
Unicode String Type
===================
The Unicode string type (IS_UNICODE) is supposed to contain text data encoded in
UTF-16. This is the main string type in PHP when Unicode semantics switch is
turned on. Unicode strings can exist when the switch is off, but they have to be
produced programmatically via calls to functions that return Unicode types.
Binary String Type
==================
Binary string type (IS_STRING) serves two purposes: backwards compatibility and
representing non-Unicode strings and binary data. When Unicode semantics switch
is off, it is used for all strings in PHP, same in previous versions. When the
switch is on, this type will be used to store text in other encodings as well as
true binary data such as images, PDFs, etc.
Printing binary data to the standard output passes it through as-is, independent
of the output encoding.
For examples of specifying binary string literals, refer to the section
"Language Modfications".
Language Modifications
======================
If a Unicode switch is turned on, PHP string literals -- single-quoted,
double-quoted, and heredocs -- become Unicode strings (IS_UNICODE type). String
literals support all the same escape sequences and variable interpolations as
before, plus several new escape sequences.
PHP interprets the contents of strings as follows:
- all non-escaped characters are interpreted as a corresponding Unicode
codepoint based on the current script encoding, e.g. ASCII 'a' (0x61) =>
U+0061, Shift-JIS (0x92 0x86) => U+4E2D
- existing PHP escape sequences are also interpreted as Unicode codepoints,
including \xXX (hex) and \OOO (octal) numbers, e.g. "\x20" => U+0020
- two new escape sequences, \uXXXX and \UXXXXXX, are interpreted as a 4 or
6-hex Unicode codepoint value, e.g. \u0221 => U+0221, \U010410 =>
U+10410. (Having two sequences avoids the ambiguity of \u020608 --
is that supposed to be U+0206 followed by "08", or U+020608 ?)
- a new escape sequence allows specifying a character by its full
Unicode name, e.g. \C{THAI CHARACTER PHO SAMPHAO} => U+0E20
PHP allows variable interpolation inside the double-quoted and heredoc strings.
However, the parser separates the string into literal and variable chunks during
compilation, e.g. "abc $var def" -> "abc" . $var . "def". This means that PHP
can handle literal chunks in the normal way as far as Unicode support is
concerned.
Since all string literals become Unicode by default, PHP 6 introduces new syntax
for creating byte-oriented or binary strings. Prefixing a string literal with
the letter 'b' creates a binary string:
$var = b'abc\001';
$var = b"abc\001";
$var = b<<<EOD
abc\001
EOD;
The content of a binary string is the literal byte sequence inside the
delimiters, which depends on the script encoding (unicode.script_encoding).
Binary string literals support the same escape sequences as PHP 5 strings. If
the Unicode switch is turned off, then the binary string literals generate the
normal string (IS_STRING) type internally without any effect on the application.
The string operators now accomodate the new IS_UNICODE and IS_BINARY types:
- The concatenation operator (.) and concatenation assignment operator (.=)
automatically coerce the IS_STRING type to the more precise IS_UNICODE if
the operands are of different string types.
- The string indexing operator [] now accommodates IS_UNICODE type strings
and extracts the specified character. To support supplementary characters,
the index specifies a code point, not a byte or a code unit.
- Bitwise operators and increment/decrement operators do not work on
Unicode strings. They do work on binary strings.
- Two new casting operators are introduced, (unicode) and (binary). The
(string) operator casts to Unicode type if the Unicode semantics switch is
on, and to binary type otherwise.
- The comparison operators compare Unicode strings in binary code point
order. They also coerce strings to Unicode if the strings are of different
types.
- The arithmetic operators use the same semantics as today for converting
strings to numbers. A Unicode string is considered numeric if it
represents a long or a double number in the en_US_POSIX locale.
Unicode Support in Existing Functions
=====================================
All functions in the PHP default distribution are undergoing analysis to
determine which functions need to be upgraded for native Unicode support.
You can track progress here:
http://www.php.net/~scoates/unicode/render_func_data.php
Key extensions that are fully converted include:
* curl
* dom
* json
* mysql
* mysqli
* oci8
* pcre
* reflection
* simplexml
* soap
* sqlite
* xml
* xmlreader/xmlwriter
* xsl
* zlib
NOTE: Unsafe functions might still work, since PHP performs Unicode conversions
at runtime. However, unsafe functions might not work correctly with multibyte
binary strings, or Unicode characters that are not representable in the
specified unicode.runtime_encoding.
Identifiers
===========
Since scripts may be written in various encodings, we do not restrict
identifiers to be ASCII-only. PHP allows any valid identifier based
on the Unicode Standard Annex #31.
Numbers
=======
Unlike identifiers, numbers must consist only of ASCII digits,.and are
restricted to the en_US_POSIX or C locale. In other words, numbers have no
thousands separator, and the fractional separator is (.) "full stop". Numeric
strings adhere to the same rules, so "10,3" is not interpreted as a number even
if the current locale's fractional separator is a comma.
TextIterators
=============
Instead of using the offset operator [] to access characters in a linear
fashion, use a TextIterator instead. TextIterator is very fast and enables you
to iterate over code points, combining sequences, characters, words, lines, and
sentences, both forward and backward. For example:
$text = "nai\u308ve";
foreach (new TextIterator($text) as $u) {
var_inspect($u)
}
lists six code points, including the umlaut (U+0308) as a separate code point.
Instantiating the TextIterator to iterate over characters,
$text = "nai\u308ve";
foreach (new TextIterator($text, TextIterator::CHARACTER) as $u) {
var_inspect($u)
}
lists five characters, including an "i" with an umlaut as a single character.
Locales
=======
Unicode support in PHP relies exclusively on ICU locales, NOT the POSIX locales
installed on the system. You may access the default ICU locale using:
locale_set_default()
locale_get_default()
ICU locale IDs have a somewhat different format from POSIX locale IDs. The ICU
syntax is:
<language>[_<script>]_<country>[_<variant>][@<keywords>]
For example, sr_Latn_YU_REVISED@currency=USD is Serbian (Latin, Yugoslavia,
Revised Orthography, Currency=US Dollar).
Do not use the deprecated setlocale() function. This function interacts with the
POSIX locale. If Unicode semantics are on, using setlocale() generates
a deprecation warning.
Document TODO
==========================================
- Final review.
- Fix the HTTP Input Encoding section, that's obsolete now.
References
==========
Unicode
http://www.unicode.org
Unicode Glossary
http://www.unicode.org/glossary/
UTF-8
http://www.utf-8.com/
UTF-16
http://www.ietf.org/rfc/rfc2781.txt
ICU Homepage
http://www.ibm.com/software/globalization/icu/
ICU User Guide and API Reference
http://icu.sourceforge.net/
Unicode Annex #31
http://www.unicode.org/reports/tr31/
PHP Parameter Parsing API
http://www.php.net/manual/en/zend.arguments.retrieval.php
Authors
=======
Andrei Zmievski <andrei@gravitonic.com>
Evan Goer <goer@yahoo-inc.com>
vim: set et tw=80 :
-806
View File
@@ -1,806 +0,0 @@
This document attempts to describe portions of the API related to the new
Unicode functionality and the best practices for upgrading existing
functions to support Unicode.
Your first stop should be README.UNICODE: it covers the general Unicode
functionality and concepts without going into technical implementation
details.
Internal Encoding
=================
UTF-16 is the internal encoding used for Unicode strings. UTF-16 consumes
two bytes for any Unicode character in the Basic Multilingual Plane, which
is where most of the current world's languages are represented. While being
less memory efficient for basic ASCII text it simplifies the processing and
makes interfacing with ICU easier, since ICU uses UTF-16 for its internal
processing as well.
Zval Structure Changes
======================
For IS_UNICODE type, we add another structure to the union:
union {
....
struct {
UChar *val; /* Unicode string value */
int len; /* number of UChar's */
} ustr;
....
} value;
This cleanly separates the two types of strings and helps preserve backwards
compatibility.
To optimize access to IS_STRING and IS_UNICODE storage at runtime, we need yet
another structure:
union {
....
struct { /* Universal string type */
zstr val;
int len;
} uni;
....
} value;
Where zstr is a union of char*, UChar*, and void*.
Parameter Parsing API Modifications
===================================
There are now five new specifiers: 'u', 't', 'T', 'U', 'S', 'x' and a new '&'
modifier.
't' specifier
-------------
This specifier indicates that the caller requires the incoming parameter to be
string data (IS_STRING, IS_UNICODE). The caller has to provide the storage for
string value, length, and type.
void *str;
int len;
zend_uchar type;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "t", &str, &len, &type) == FAILURE) {
return;
}
if (type == IS_UNICODE) {
/* process Unicode string */
} else {
/* process binary string */
}
For IS_STRING type, the length represents the number of bytes, and for
IS_UNICODE the number of UChar's. When converting other types (numbers,
booleans, etc) to strings, the exact behavior depends on the Unicode semantics
switch: if on, they are converted to IS_UNICODE, otherwise to IS_STRING.
'u' specifier
-------------
This specifier indicates that the caller requires the incoming parameter
to be a Unicode encoded string. If a non-Unicode string is passed, the engine
creates a copy of the string and automatically convert it to Unicode type before
passing it to the internal function. No such conversion is necessary for Unicode
strings, obviously.
UChar *str;
int len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "u", &str, &len) == FAILURE) {
return;
}
/* process Unicode string */
'T' specifier
-------------
This specifier is useful when the function takes two or more strings and
operates on them. Using 't' specifier for each one would be somewhat
problematic if the passed-in strings are of mixed types, and multiple
checks need to be performed in order to do anything. All parameters
marked by the 'T' specifier are promoted to the same type.
If at least one of the 'T' parameters is of Unicode type, then the rest of
them are converted to IS_UNICODE. Otherwise all 'T' parameters are conveted to
IS_STRING type.
void *str1, *str2;
int len1, len2;
zend_uchar type1, type2;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "TT", &str1, &len1,
&type1, &str2, &len2, &type2) == FAILURE) {
return;
}
if (type1 == IS_UNICODE) {
/* process as Unicode, str2 is guaranteed to be Unicode as well */
} else {
/* process as binary string, str2 is guaranteed to be the same */
}
'x' specifier
-------------
This specifier acts as either 'u' or 's', depending on the value of the
unicode semantics switch. If UG(unicode) is on, it behaves as 'u', and as
's' otherwise.
The existing 's' specifier has been modified as well. If a Unicode string is
passed in, it automatically copies and converts the string to the runtime
encoding, and issues a warning. If a binary type is passed-in, no conversion
is necessary. The '&' modifier can be used after 's' specifier to force
a different converter instead.
char *str;
int len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&", &str, &len, UG(utf8_conv)) == FAILURE) {
return;
}
/* here str is in UTF-8, if a Unicode string was passed in */
The 'U' and 'S' specifiers are similar to 'u' and 's' but they are more strict
about the type of the passed-in parameter. If 'U' is specified and the binary
string is passed in, the engine will issue a warning instead of doing automatic
conversion. The converse applies to the 'S' specifier.
Working in Unicode World
========================
Strings
-------
A lot of internal functionality is controlled by the unicode.semantics
switch. Its value is found in the Unicode globals variable, UG(unicode). It
is either on or off for the entire request.
The big thing is that there is a new string types: IS_UNICODE.
This has its own storage in the value union part of
zval (value.ustr) while non-unicode (binary) strings reuse the
IS_STRING type and the value.str element of the zval.
New macros exist (parallel to Z_STRVAL/Z_STRLEN) for accessing unicode strings.
Z_USTRVAL(), Z_USTRLEN()
- accesses the value (as a UChar*) and length (in code units) of the Unicode type string
value.ustr.val value.ustr.len
Z_UNIVAL(), Z_UNILEN()
- accesses the value (as a zstr) and length (in type-appropriate units)
value.uni.val value.uni.len
Z_USTRCPLEN()
- gives the number of codepoints (not units) in the Unicode type string
This macro examines the actual string taking into account Surrogate Pairs
and returns the number of UChar32(UTF32) codepoints which may be less than the
number of UChar(UTF16) codeunits found in the string buffer.
If this value will be used repeatedly, consider storing it in a local variable
to avoid having to reexamine the string every time.
ZVAL_* macros
-------------
The 'dup' parameter to the ZVAL_STRING()/RETVAL_STRING()/RETURN_STRING() type
macros has been extended slightly. The following defines are now encouraged instead:
#define ZSTR_DUPLICATE (1<<0)
#define ZSTR_AUTOFREE (1<<1)
ZSTR_DUPLICATE (which has a resulting value of 1) serves the same purpose as a
truth value in old-style 'dup' flags. The value of 1 was specifically chosen
to match the common practice of passing a 1 for this parameter.
Warning: If you find extension code which uses a truth value other than one for
the dup flag, its logic should be modified to explicitly pass ZSTR_DUPLICATE instead.
ZSTR_AUTOFREE is used with macros such as ZVAL_RT_STRING which may populate Unicode
zvals from non-unicode source strings. When UG(unicode) is on, the source string
will be implicitly copied (to make a UChar* version). If the original string
needed copying anyway this is fine. However if the original string was emalloc()'d
and would have ordinarily been given to the engine (i.e. RETURN_STRING(estrdup("foo"), 0))
then it will need to be freed in UG(unicode) mode to avoid leaking.
The ZSTR_AUTOFREE flag ensures that the original string is freed in UG(unicode) mode.
ZVAL_UNICODE(pzv, str, dup), ZVAL_UNICODEL(pzv, str, str_len, dup)
- Sets zval to hold a Unicode string. Takes the same parameters as
Z_STRING(), Z_STRINGL().
ZVAL_U_STRING(conv, pzv, str, dup), ZVAL_U_STRINGL(conv, pzv, str, str_len, dup)
- When UG(unicode) is off, it's equivalent to Z_STRING(), ZSTRINGL()
and the conv parameter is ignored.
When UG(unicode) is on, it sets zval to hold a Unicode representation of the
passed-in string using the UConverter* specified by conv.
Since a new string is always created in this case, passing ZSTR_DUPLICATE
for 'dup' does not matter, but ZSTR_AUTOFREE will be used will be used to
efree the original value
ZVAL_RT_STRING(pzv, str, dup), ZVAL_RT_STRINGL(pzv, str, str_len, dup)
- When UG(unicode) is off, it's equivalent to Z_STRING(), Z_STRINGL().
When UG(unicode) is on, it takes the input string, converts it to Unicode
using the runtime_encoding converter and sets zval to it.
Since a new string is always created in this case, passing ZSTR_DUPLICATE
for 'dup' does not matter, but ZSTR_AUTOFREE will be used will be used to
efree the original value
ZVAL_ASCII_STRING(pzv, str, dup), ZVAL_ASCII_STRINGL(pzv, str, str_len, dup)
- When UG(unicode) is off, it's equivalent to Z_STRING(), Z_STRINGL().
When UG(unicode) is on, it takes the input string, converts it to Unicode
using an ASCII converter and sets zval to it.
Since a new string is always created in this case, passing ZSTR_DUPLICATE
for 'dup' does not matter, but ZSTR_AUTOFREE will be used will be used to
efree the original value
ZVAL_UTF8_STRING(pzv, str, dup), ZVAL_UTF8_STRINGL(pzv, str, str_len, dup)
- When UG(unicode) is off, it's equivalent to Z_STRING(), Z_STRINGL().
When UG(unicode) is on, it takes the input string, converts it to Unicode
using a UTF8 converter and sets zval to it.
Since a new string is always created in this case, passing ZSTR_DUPLICATE
for 'dup' does not matter, but ZSTR_AUTOFREE will be used will be used to
efree the original value
ZVAL_ZSTR(pzv, type, zstr, dup), ZVAL_ZSTRL(pzv, type, zstr, zstr_len, dup)
- This macro uses 'type' to switch between calling ZVAL_STRING(pzv, zstr.s, dup)
and ZVAL_UNICODE(pzv, zstr.u, dup). No conversion happens so the
presense of absense of ZSTR_AUTOFREE is ignored.
ZVAL_TEXT(pzv, zstr, dup), ZVAL_TEXTL(pzv, zstr, zstr_len, dup)
- This macro sets the zval to hold either a Unicode or a normal string,
depending on the value of UG(unicode). No conversion happens, so be certain
that the string passed in matches the type expected by UG(unicode).
One example of its usage would be to initialize zval to hold the name
of a user function.
ZVAL_EMPTY_UNICODE(pzv) / ZVAL_EMPTY_TEXT(pzv)
- These macros work identically to ZVAL_EMPTY_STRING() with the UNICODE
version always generating an IS_UNICODE zval, and the TEXT version
generating a UG(unicode) dependent string type.
ZVAL_UCHAR32(pzv, char)
- Converts the character provided into a UChar string (which may potentially
be 1 or 2 characters long in the case of surrogate pairs) and dispatches
to ZVAL_UNICODEL().
As usual, for each ZVAL_* macro, there is a matching RETVAL_* and RETURN_* macro.
Conversion Macros
-----------------
convert_to_string_with_converter(zval *op, UConverter *conv)
- converts a zval to native string using the specified converter, if necessary.
convert_to_unicode_with_converter(zval *op, UConverter *conv)
- converts a zval to Unicode string using the specified converter, if
necessary.
convert_to_unicode(zval *op)
- converts a zval to Unicode string.
convert_to_string(zval *op)
- Behaves just as it currently does, converting to IS_STRING type
convert_to_text(zval *op)
- converts a zval to either Unicode or native string, depending on the
value of UG(unicode) switch
zend_ascii_to_unicode() function can be used to convert an ASCII char*
string to Unicode. This is useful especially for inline string literals, in
which case you can simply use USTR_MAKE() macro, e.g.:
UChar* ustr;
ustr = USTR_MAKE("main");
If you need to initialize a few such variables, it may be more efficient to
use ICU macros, which avoid the conversion, depending on the platform. See
[1] for more information.
USTR_FREE(zstr) can be used to free a UChar* string safely, since it checks for
NULL argument. USTR_LEN() takes a zstr as its argument, and
depending on the UG(unicode) value, and returns its strlen() or u_strlen().
Array Manipulation
------------------
The add_next_index_*(), add_index_*() and add_assoc_*() functions have been
significantly expanded both to allow for the unicode type as a value and to
permit various types of keys.
Values: In the following examples, {1} represents a placeholder for the keytype and
its arguments (covered later).
add_{1}_unicode(zval *arr, {1}, UChar *ustr, int dup);
add_{1}_unicodel(zval *arr, {1}, UChar *ustr, int ustr_len, int dup);
- Works like add_{1}_string() and add_{1}_stringl() but takes a UChar* value
and adds an IS_UNICODE type.
add_{1}_rt_string(zval *arr, {1}, char *str, int dup);
add_{1}_rt_stringl(zval *arr, {1}, char *str, int str_len, int dup);
- Works like add_{1}_string() and add_{1}_stringl() but converts the char*
value to Unicode using runtime encoding when UG(unicode) is on.
add_{1}_ascii_string(zval *arr, {1}, char *str, int dup);
add_{1}_ascii_stringl(zval *arr, {1}, char *str, int str_len, int dup);
- Works like add_{1}_rt_string() and add_{1}_rt_stringl() but uses
an ASCII converter rather than runtime encoding.
add_{1}_utf8_string(zval *arr, {1}, char *str, int dup);
add_{1}_utf8_stringl(zval *arr, {1}, char *str, int str_len, int dup);
- Works like add_{1}_rt_string() and add_{1}_rt_stringl() but uses
a UTF8 converter rather than runtime encoding.
add_{1}_text(zval *arr, {1}, zstr str, int dup);
add_{1}_textl(zval *arr, {1}, zstr str, int str_len, int dup);
- Wrapper which dispatches to add_{1}_string(l)() or add_{1}_unicode(l)()
depending on the setting of UG(unicode).
add_{1}_zstr(zval *arr, {1}, zend_uchar type, zstr str, int dup);
add_{1}_zstrl(zval *arr, {1}, zend_uchar type, zstr str, int str_len, int dup);
- Works like add_{1}_text() and add_{1}_textl(), but dispatches based on 'type'.
Keys: In the following example, the zval* type is used for values, however
each of the value types (including those listed above) are supported.
The existing key types work as they always have:
add_next_index_zval(zval *arr, zval *val);
add_index_zval(zval *arr, long idx, zval *val);
add_assoc_zval(zval *arr, char *key, zval *val);
add_assoc_zval_ex(zval *arr, char *key, int key_len, zval *val);
. Associative keys are considered binary (IS_STRING)
. Remember that key_len includes the terminating NULL
The following additional methods provide unicode capable keytypes:
add_u_assoc_zval(zval *arr, zend_uchar type, zstr key, zval *val);
add_u_assoc_zval_ex(zval *arr, zend_uchar type, zstr key, int key_len, zval *val);
. When type==IS_STRING, these behave identically to their
add_assoc_zval() and add_assoc_zval_ex() counterparts.
When type==IS_STRING, the key is considered to be Unicode (UChar*).
add_rt_assoc_zval(zval *arr, char *key, zval *val);
add_rt_assoc_zval_ex(zval *arr, char *key, int key_len, zval *val);
. When UG(unicode) is off, these behave identically to their
add_assoc_zval() and add_assoc_zval_ex() counterparts.
When UG(unicode) is on, key is converted to Unicode using runtime encoding.
add_ascii_assoc_zval(zval *arr, char *key, zval *val);
add_ascii_assoc_zval_ex(zval *arr, char *key, int key_len, zval *val);
. When UG(unicode) is off, these behave identically to their
add_assoc_zval() and add_assoc_zval_ex() counterparts.
When UG(unicode) is on, key is converted to Unicode using an ASCII converter.
add_utf8_assoc_zval(zval *arr, char *key, zval *val);
add_utf8_assoc_zval_ex(zval *arr, char *key, int key_len, zval *val);
. When UG(unicode) is off, these behave identically to their
add_assoc_zval() and add_assoc_zval_ex() counterparts.
When UG(unicode) is on, key is converted to Unicode using a UTF8 converter.
Keytype and Valuetype specification may be mixed in any combination, for example:
add_utf8_assoc_ascii_stringl_ex(zval *arr, char *key, int key_len, char *val, int val_len, int dup);
Miscellaneous
-------------
UBYTES() macro can be used to obtain the number of bytes necessary to store
the given number of UChar's. The typical usage is:
char *constant_name = colon + (UG(unicode)?UBYTES(2):2);
Code Points and Code Units
--------------------------
Unicode type strings are in the UTF-16 encoding where 1 Unicode character
may be represented by 1 or 2 UChar's. Each UChar is referred to as a "code
unit", and a full Unicode character as a "code point". Consequently, number
of code units and number of code points for the same Unicode string may be
different. This has many implications, the most important of which is that
you cannot simply index the UChar* string to get the desired codepoint.
The zval's value.ustr.len contains the number of code units (UChar -- UTF16).
To obtain the number of code points, one can use u_countChar32() ICU API
function or Z_USTRCPLEN() macro.
ICU provides a number of macros for working with UTF-16 strings on the
codepoint level [2]. They allow you to do things like obtain a codepoint at
random code unit offset, move forward and backward over the string, etc.
There are two versions of iterator macros, *_SAFE and *_UNSAFE. It is strong
recommended to use *_SAFE version, since they handle unpaired surrogates and
check for string boundaries. Here is an example of how to move through
UChar* string and work on codepoints.
UChar *str = ...;
int32_t str_len = ...;
UChar32 codepoint;
int32_t offset = 0;
while (offset < str_len) {
U16_NEXT(str, offset, str_len, codepoint);
/* now we have the Unicode character in codepoint */
}
There is not macro to get a codepoint at a certain code point offset, but
there is a Zend API function that does it.
inline UChar32 zend_get_codepoint_at(UChar *str, int32_t length, int32_t n);
To retrieve 3rd codepoint, you would call:
zend_get_codepoint_at(str, str_len, 3);
If you have a UChar32 codepoint and need to put it into a UChar* string,
there is another helper function, zend_codepoint_to_uchar(). It takes
a single UChar32 and converts it to a UChar sequence (1 or 2 UChar's).
UChar buf[8];
UChar32 codepoint = 0x101a2;
int8_t num_uchars;
num_uchars = zend_codepoint_to_uchar(codepoint, buf);
The return value is the number of resulting UChar's or 0, which indicates
invalid codepoint.
Memory Allocation
-----------------
For ease of use and to reduce possible bugs, there are memory allocation
functions specific to Unicode strings. Please use them at all times when
allocating UChar's.
eumalloc(size)
eurealloc(ptr, size)
eustrndup(s, length)
eustrdup(s)
peumalloc(size, persistent)
peurealloc(ptr, size, persistent)
The size parameter refers to the number of UChar's, not bytes.
zend_zstrndup(type, zstr, length)
Hashes
------
Hashes API has been upgraded to work with Unicode and binary strings. All
hash functions that worked with string keys now have their equivalent
zend_u_hash_* API. The zend_u_hash_* functions take the type of the key
string as the second argument.
When UG(unicode) switch is on, the IS_STRING keys are upconverted to
IS_UNICODE and then used in the hash lookup.
A new HASH_KEY constant has been added for differentiating key types:
. HASH_KEY_IS_UNICODE
Note that zend_hash_get_current_key_ex() does not have a zend_u_hash_*
version. It returns the key as a char* pointer, you can can cast it
appropriately based on the key type.
Identifiers and Class Entries
-----------------------------
In Unicode mode all the identifiers are Unicode strings. This means that
while various structures such as zend_class_entry, zend_function, etc store
the identifier name as a char* pointer, it will actually point to UChar*
string. Be careful when accessing the names of classes, functions, and such
-- always check UG(unicode) before using them.
Formatted Output
----------------
Since UTF-16 strings frequently contain NULL bytes, you cannot simpley use
%s format to print them out. Towards that end, output functions such as
php_printf(), spprintf(), etc now have three different formats for use with
Unicode strings:
%r
This format treats the corresponding argument as a Unicode string. The
string is automatically converted to the output encoding. If you wish to
apply a different converter to the string, use %*r and pass the
converter before the string argument.
UChar *class_name = USTR_NAME("ReflectionClass");
zend_printf("%r", class_name);
spprintf(&utf8_buffer, 0, "%*r", UG(utf8_conv), class_name);
%R
This format requires at least two arguments: the first one specifies the
type of the string to follow (IS_STRING or IS_UNICODE), and the second
one - the string itself. If the string is of Unicode type, it is
automatically converted to the output encoding. If you wish to apply
a different converter to the string, use %*R and pass the converter
before the string argument.
zend_throw_exception_ex(U_CLASS_ENTRY(reflection_exception_ptr), 0 TSRMLS_CC,
"Interface %R does not exist",
Z_TYPE_P(class_name), Z_UNIVAL_P(class_name));
%v
This format takes only one parameter, the string, but the expected
string type depends on the UG(unicode) value. If the string is of
Unicode type, it is automatically converted to the output encoding. If
you wish to apply a different converter to the string, use %*R and pass
the converter before the string argument.
zend_error(E_WARNING, "%v::__toString() did not return anything",
Z_OBJCE_P(object)->name);
%Z
This format prints a zval's value. You can specify the minimum length
of the string representation using "%*Z" as well as the absolute length
using "%.*Z". The following example is taken from the engine and
therefor uses zend_spprintf rather than spprintf. Further more clen is
an integer that is smaller than Z_UNILEN_P(callable).
zend_spprintf(error, 0, "class '%.*Z' not found", clen, callable);
The function allows to output any kind of zval values, as long as a
string (or unicode) conversion is available. Note that printing non
string zvals outside of request time is not possible.
Since [v]spprintf() can only output native strings there are also the new
functions [v]uspprintf() and [v]zspprintf() that create unicode strings and
return the number of characters printed. That is they return the length rather
than the byte size. The second pair of functions also takes an additional type
parameter that allows to create a string of arbitrary type. The following
example illustrates the use. Assume it fetches a unicode/native string into
path, path_len and path_type inorder to create sub_name, sub_len and sub_type.
zstr path, sub_name;
int path_len, sub_len;
zend_uchar path_type, sub_type;
/* fetch */
if (path.v) {
sub_type = path_type;
sub_len = zspprintf(path_type, &sub_name, 0, "%R%c%s",
path_type, path,
DEFAULT_SLASH,
entry.d_name);
}
Upgrading Functions
===================
Let's take a look at a couple of functions that have been upgraded to
support new string types.
substr()
--------
This functions returns part of a string based on offset and length
parameters.
zstr str;
int str_len, cp_len;
zend_uchar str_type;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "tl|l", &str, &str_len, &str_type, &f, &l) == FAILURE) {
return;
}
The first thing we notice is that the incoming string specifier is 't',
which means that we can accept all 3 string types. The 'str' variable is
declared as zstr, because it can point to either UChar* or char*.
The actual type of the incoming string is stored in 'str_type' variable.
if (str_type == IS_UNICODE) {
cp_len = u_countChar32(str.u, str_len);
} else {
cp_len = str_len;
}
If the string is a Unicode one, we cannot rely on the str_len value to tell
us the number of characters in it. Instead, we call u_countChar32() to
obtain it.
The next several lines normalize start and length parameters to fit within the
string. Nothing new here. Then we locate the appropriate segment.
if (str_type == IS_UNICODE) {
int32_t start = 0, end = 0;
U16_FWD_N(str.u, end, str_len, f);
start = end;
U16_FWD_N(str.u, end, str_len, l);
RETURN_UNICODEL(str.u + start, end-start, ZSTR_DUPLICATE);
Since codepoint (character) #n is not necessarily at offset #n in Unicode
strings, we start at the beginning and iterate forward until we have gone
through the required number of codepoints to reach the start of the segment.
Then we save the location in 'start' and continue iterating through the number
of codepoints specified by the offset. Once that's done, we can return the
segment as a Unicode string.
} else {
RETURN_STRINGL(str.s + f, l, ZSTR_DUPLICATE);
}
For native strings, we can return the segment directly.
strrev()
--------
Let's look at strrev() which requires somewhat more complicated upgrade.
While one of the guidelines for upgrades is that combining sequences are not
really taken into account during processing -- substr() can break them up,
for example -- in this case, we actually should be concerned, because
reversing combining sequence may result in a completely different string. To
illustrate:
a (U+0061 LATIN SMALL LETTER A)
o (U+006f LATIN SMALL LETTER O)
+ ' (U+0301 COMBINING ACUTE ACCENT)
+ _ (U+0320 COMBINING MINUS SIGN BELOW)
l (U+006C LATIN SMALL LETTER L)
Reversing this would result in:
l (U+006C LATIN SMALL LETTER L)
+ _ (U+0320 COMBINING MINUS SIGN BELOW)
+ ' (U+0301 COMBINING ACUTE ACCENT)
o (U+006f LATIN SMALL LETTER O)
a (U+0061 LATIN SMALL LETTER A)
All of a sudden the combining marks are being applied to 'l' instead of 'o'.
To avoid this, we need to treat combininig sequences as a unit, by checking
the combining character class of each character with u_getCombiningClass().
strrev() obtains its single argument, a string, and unless the string is of
Unicode type, processes it exactly as before, simply swapping bytes around.
For Unicode case, the magic is like this:
int32_t i, x1, x2;
UChar32 ch;
UChar *u_s, *u_n, *u_p;
u_n = eumalloc(Z_USTRLEN_PP(str)+1);
u_p = u_n;
u_s = Z_USTRVAL_PP(str);
i = Z_USTRLEN_PP(str);
while (i > 0) {
U16_PREV(u_s, 0, i, ch);
if (u_getCombiningClass(ch) == 0) {
u_p += zend_codepoint_to_uchar(ch, u_p);
} else {
x2 = i;
do {
U16_PREV(u_s, 0, i, ch);
} while (u_getCombiningClass(ch) != 0);
x1 = i;
while (x1 <= x2) {
U16_NEXT(u_s, x1, Z_USTRLEN_PP(str), ch);
u_p += zend_codepoint_to_uchar(ch, u_p);
}
}
}
*u_p = 0;
The basic idea is to walk the string backwards from the end, using
U16_PREV() macro. If the combining class of the current character is 0,
meaning it's a base character and not a combining mark, we simply append it
to the new string. Otherwise, we save the location of the index and do a run
over the characters until we get to the next one with combining class 0. At
that point we append the sequence as is, without reversing, to the new
string. Voila.
Note that the code uses zend_codepoint_to_uchar() to convert full Unicode
characters (UChar32 type) to 1 or 2 UTF-16 code units (UChar type).
realpath()
----------
Filenames use their own converter as it's not uncommon, for example,
to need to access files on a filesystem with latin1 entries while outputting
UTF8 runtime content.
The most common approach to parsing filenames can be found in realpath():
zval **ppfilename;
char *filename;
int filename_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z", &ppfilename) == FAILURE ||
php_stream_path_param_encode(ppfilename, &filename, &filename_len, REPORT_ERRORS, FG(default_context)) == FAILURE) {
return;
}
Here, the filename is taken first as a generic zval**, then converted (separating if necessary)
and populated into local char* and int storage. The filename will be converted according to
unicode.filesystem_encoding unless the wrapper specified overrides this with its own conversion
function (The http:// wrapper, for example, enforces utf8 conversion).
rmdir()
-------
If the function accepts a context parameter, then this context should be used in place of FG(default_context)
zval **ppdir, *zcontext = NULL;
char *dir;
int dir_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "Z|r", &ppdir, &zcontext) == FAILURE) {
return;
}
context = php_stream_context_from_zval(zcontext, 0);
if (php_stream_path_param_encode(ppdir, &dir, &dir_len, REPORT_ERRORS, context) == FAILURE) {
return;
}
sqlite_query()
--------------
If the function's underlying library expects a particular encoding (i.e. UTF8), then the alternate form of
the string parameter may be used with zend_parse_parameters().
char *sql;
int sql_len;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&", &sql, &sql_len, UG(utf8_conv)) == FAILURE) {
return;
}
Converters
==========
Standard Converters
-------------------
The following converters (UConverter*) are initialized by Zend and are always available (regardless of UG(unicode) mode):
UG(utf8_conv)
UG(ascii_conv)
UG(fallback_encoding_conv) - UTF8 unless overridden by INI setting unicode.fallback_encoding
Additional converters will be optionally initialized depending on INI settings:
UG(runtime_encoding_conv) - unicode.runtime_encoding
. Unicode output generated by a script will be encoding using this converter
UG(script_encoding_conv) - unicode.script_encoding
. Scripts read from disk will be decoded using this converter
UG(filesystem_encoding_conv) - unicode.filesystem_encoding
. Filenames and paths will be encoding using this converter
Since these additional converters may not be instatiated (because their INI value is not set), all uses of these converters must
be wrapped in ZEND_U_CONVERTER() for safety. If the converter hasn't been instantiated, then UG(fallback_encoding_conv) will be
used instead.
For example, RETURN_RT_STRING("foo", ZSTR_DUPLICATE); expands out to:
RETURN_U_STRING(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), "foo", ZSTR_DUPLICATE);
Which uses UG(runtime_encoding_conv) if it's been set, otherwise using UG(fallback_encoding_conv).
Note that the INI setting unicode.stream_encoding does not instantiate a UConverter* automatically for use by the process/thread,
it stores the value as a string for use during fopen() style calls where a UConverter* is instantiated for that particular stream.
References
==========
[1] http://icu.sourceforge.net/apiref/icu4c/ustring_8h.html#a1
[2] http://icu.sourceforge.net/apiref/icu4c/utf16_8h.html
vim: set et ai tw=76 fo=tron21:
+170
View File
@@ -0,0 +1,170 @@
PHP 5.2 UPDATE INFO
===============================
Changes in PHP datetime support
===============================
Since PHP 5.1, there has been an extension named 'date' in the PHP core. This
is the new implementation of PHP's datetime support. Although it will attempt
to guess your system's timezone setting, you should set the timezone manually.
You can do this in any of three ways:
1) in your php.ini using the date.timezone INI directive
2) on your system using the TZ environmental variable
3) from your script using the convenience function date_default_timezone_set()
All supported timezones are listed in the PHP Manual at
http://www.php.net/manual/timezones.php.
With the advent of PHP 5.2, there are object representations of the date and
timezone, named DateTime and DateTimeZone respectively. You can see the methods
and constants available to the new classes by running
php --rc DateTime
php --rc DateTimeZone
under PHP CLI. All methods map to existing procedural date functions.
==================================
Items from the NEWS file explained
==================================
- Added new error mode E_RECOVERABLE_ERROR. (Derick, Marcus, Tony)
Some of the existing E_ERROR conditions have been converted to something that
you can catch with a user-defined error handler. If an E_RECOVERABLE_ERROR is
not handled, it will behave in the same way as E_ERROR behaves in all versions
of PHP. Errors of this type are logged as 'Catchable fatal error'.
- Changed E_ALL error reporting mode to include E_RECOVERABLE_ERROR. (Marcus)
This change means that the value of the E_ALL error_reporting constant is now
6143, where its previous value was 2047. If you are setting the error_reporting
mode from either the Apache config file or the .htaccess files, you will need
to adjust the value accordingly. The same applies if you use the numeric value
rather than the constant in your PHP scripts.
- Added support for constructors in interfaces to force constructor signature
checks in implementations. (Marcus)
Starting with PHP 5.2, interfaces can have constructors. However, if you choose
to declare a constructor in an interface, each class implementing that interface
MUST include a constructor with a signature matching that of the base interface
constructor. By 'signature' we mean the parameter and return type definitions,
including any type hints and including whether the data is passed by reference
or by value.
- Changed __toString to be called wherever applicable. (Marcus)
The magic method __toString() will now be called in a string context, that
is, anywhere an object is used as a string. When implementing your __toString()
method in a class, you should be aware that the script will terminate if
your function throws an exception.
The PHP 5.0/5.1 fallback - returning a string that contains the object
identifier - has been dropped in PHP 5.2. It became problematic because
an object identifier cannot be considered unique. This change will mean
that your application is flawed if you have relied on the object identifier
as a return value. An attempt to use that value as a string will now result
in a catchable fatal error (see above).
Even with __toString(), objects cannot be used as array indices or keys. We
may add built-in hash support for this at a later date, but for PHP 5.2 you
will need to either provide your own hashing or use the new SPL function
spl_object_hash().
- Added RFC2397 (data: stream) support. (Marcus)
The introduction of the 'data' URL scheme has the potential to lead to a
change of behaviour under Windows. If you are working with an NTFS
filesystem and making use of meta streams in your application, and if you
just happen to be using a file with the name 'data:' that is accessed without
any path information - it won't work any more. The fix is to use the 'file:'
protocol when accessing it.
There is information about the RFC at http://www.faqs.org/rfcs/rfc2397.html.
- Added allow_url_include ini directive to complement allow_url_fopen. (Rasmus)
This useful option makes it possible to differentiate between standard
file operations on remote files, and the inclusion of remote files. While the
former is usually desirable, the latter can be a security risk if used naively.
Starting with PHP 5.2, you can allow remote file operations while
disallowing the inclusion of remote files in local scripts. In fact, this
is the default configuration.
- Dropped abstract static class functions. (Marcus)
Due to an oversight, PHP 5.0 and 5.1 allowed abstract static functions in
classes. In PHP 5.2, only interfaces can have them.
- Removed extensions (Derick, Tony)
The filepro and hwapi extensions have been moved to PECL and are no longer
part of the PHP distribution. The PECL package version of these extensions
will be created on the basis of user demand.
- Added extensions (Rasmus, Derick, Pierre)
The JSON extension implements the JavaScript Object Notation (JSON)
data interchange format. This extension is enabled by default.
The Filter extension validates and filters data, and is designed for
use with insecure data such as user input. This extension is enabled
by default; the default mode RAW does not impact input data in any way.
The Zip extension enables you to transparently read or write ZIP
compressed archives and the files inside them.
Please refer to the PHP Manual for details.
- Improved memory manager and increased default memory limit (Dmitry)
The new memory manager allocates less memory and works faster than the
previous incarnation. It allocates memory from the system in large blocks,
and then manages the heap by itself. The memory_limit value in php.ini is
checked, not for each emalloc() call (as before), but for actual blocks
requested from the system. This means that memory_limit is far more
accurate than it used to be, since the old memory manager didn't calculate
all the memory overhead used by the malloc library.
Thanks to this new-found accuracy memory usage may appear to have increased,
although actually it has not. To accommodate this apparent increase, the
default memory_limit setting was also increased - from 8 to 16 megabytes.
- Changed priority of PHPRC environment variable on win32 (Dmitry)
The PHPRC environment variable now takes priority over the path stored
in the Windows registry.
- Added notice when accessing return value from __get() in write mode (Marcus)
The reason for this is that __get() only returns variables in read mode, and
it is therefore not possible to write to the returned variable. In previous
releases there was no effective way to detect incorrect usage. Starting from
PHP 5.2, an E_NOTICE will be emitted in this situation.
WARNING: foreach() and functions that modify the internal array pointer will
now also trigger the same E_NOTICE, since modification requires that the
variable be accessed in write mode. To work around this, you should either
cast the returned value from __get() to an array, or use SPL's ArrayObject
instead of an array.
- CLI SAPI no longer checks cwd for php.ini or the php-cli.ini file (Edin)
In PHP 5.1.X an undocumented feature was added that made the CLI binary
check the current directory for PHP configuration file possibly leading to
unpredictable behavior due to an un-expected configuration file being
read. This functionality was removed in 5.2 and PHP will no longer search
CWD for the presence of the php.ini or the php-cli.ini files.
-172
View File
@@ -1,172 +0,0 @@
Updating your script to PHP6
============================
This document attempts to describe portions of PHP that changed or
disapeared in PHP6 and the best practices for upgrading existing
applications to support PHP6.
1. Language
1.1 Functions and function aliases
1.2 Register globals
1.3 Magic quotes
1.4 Register long arrays ($HTTP_*_VARS)
1.5 ZE1 compatibility mode
1.6 dl() function
1.7 E_ALL and E_STRICT constants
1.8 References
2. Unicode (see README.UNICODE-UPGRADES)
2. Extensions
2.1 GD
1.1 Functions and function aliases
------------------------------
<TODO: List all arguments order changes, aliases droped in php6...>
1.2 Register globals
----------------
For security reasons, register_globals has been removed from php6.
ini_get('register_globals') will always return false.
You can emulate its behavior with some minimum changes in your code.
*DISCLAIMER*
people should get a short-term solution if they are willing to run
an insecure app.
Here is an example to emulate the session related functions and
a snippet to register variables:
$_register_globals_order = strrev(ini_get("variables_order"));
$_register_globals_order_len = strlen($_register_globals_order);
for($_register_globals_i=0;$_register_globals_i<$_register_globals_order_len;$_register_globals_i++) {
switch($_register_globals_order{$_register_globals_i}) {
case "E":
extract($_ENV, EXTR_REFS|EXTR_SKIP);
break;
case "G":
extract($_GET, EXTR_REFS|EXTR_SKIP);
break;
case "P":
extract($_POST, EXTR_REFS|EXTR_SKIP);
break;
case "C":
extract($_COOKIE, EXTR_REFS|EXTR_SKIP);
break;
case "S":
extract($_SERVER, EXTR_REFS|EXTR_SKIP);
break;
}
}
unset($_register_globals_order, $_register_globals_order_len, $_register_globals_i);
function session_register($mixed) {
static $started;
if(!isset($started) || session_id() === "") {
session_start();
$started = true;
}
$array = func_get_args();
foreach($array as $mixed) {
if(is_scalar($mixed)) {
$_SESSION[$mixed] =& $GLOBALS[$mixed];
}
elseif(is_array($mixed)) {
foreach($mixed as $name) {
$ok = session_register($name);
if(!$ok) {
return false;
}
}
}
else {
return false;
}
}
return true;
}
function session_is_registered($name) {
if(is_scalar($name)) {
return isset($_SESSION[$name]);
}
return false;
}
function session_unregister($name) {
if(isset($_SESSION[$name]) && is_scalar($name)) {
unset($_SESSION[$name]);
return true;
}
return false;
}
1.3 Magic quotes
------------
1.4 Register long arrays ($HTTP_*_VARS)
-----------------------------------
register_long_arrays and the long versions of super globals had been removed.
PHP will emit E_CORE_ERROR during PHP startup if it would detect
register_long_arrays setting.
You can emulate long arrays by including the following file:
<?php
if (!ini_get('register_long_arrays')) {
$HTTP_POST_VARS =& $_POST;
$HTTP_GET_VARS =& $_GET;
$HTTP_COOKIE_VARS =& $_COOKIE;
$HTTP_SERVER_VARS =& $_SERVER;
$HTTP_ENV_VARS =& $_ENV;
$HTTP_POST_FILES =& $_FILES;
}
?>
1.5 ZE1 compatibility mode
----------------------
ZE1 compatibility mode (PHP4 object model) was introduced to migrate from PHP4
to PHP5 in an easier way, but it never keeped 100% compatibility.
It is completly removed in PHP6, and there is no way to emulate it.
Applications should assume PHP5/PHP6 object model.
1.6 dl() function
-------------
Now dl() function is supported only in CLI, CGI and EMBED SAPI.
There is no way to emulte it. You can just check if dl() is supported by SAPI:
<?php
if (!function_exists("dl")) {
die("dl() function is required\n!");
}
?>
1.7 E_ALL and E_STRICT constants
----------------------------
Now E_ALL error reporting mask includes E_STRICT.
You can filter E_STRICT error messages using the following code:
<?php
error_reporting(error_reporting() & ~E_STRICT);
?>
1.8 References
----------
<TODO: Derick plans to clean the reference mess in php6>
2.1 GD
<TODO: gd2/ft2 only, functions droped>
+169 -1
View File
@@ -1,6 +1,174 @@
The Win32 Build System.
$Id$
Wez Furlong <wez@thebrainroom.com>
See http://wiki.php.net/internals/windows/stepbystepbuild
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
-174
View File
@@ -1,174 +0,0 @@
Design
======
Main assumption of the model is that the problem that we are to solve is the
problem of the very long class names in PHP libraries. We would not attempt
to take autoloader's job or create packaging model - only make names
manageable.
Namespaces are defined the following way:
Zend/DB/Connection.php:
<?php
namespace Zend\DB;
class Connection {
}
function connect() {
}
?>
Namespace definition does the following:
All class and function names inside are automatically prefixed with
namespace name. Inside namespace, local name always takes precedence over
global name. Several files may be using the same namespace.
The namespace declaration statement must be the very first statement in
the file. The only exception is "declare" statement that can be used before.
Every class and function in a namespace can be referred to by the full name
- e.g. Zend\DB\Connection or Zend\DB\connect - at any time.
<?php
require 'Zend/Db/Connection.php';
$x = new Zend\DB\Connection;
Zend\DB\connect();
?>
Namespace or class name can be imported:
<?php
require 'Zend/Db/Connection.php';
use Zend\DB;
use Zend\DB\Connection as DbConnection;
$x = new Zend\DB\Connection();
$y = new DB\connection();
$z = new DbConnection();
DB\connect();
?>
The use statement only defines name aliasing. It may create name alias for
namespace or class. The simple form of statement "use A\B\C\D;" is
equivalent to "use A\B\C\D as D;". The use statement can be used at any
time in the global scope (not inside function/class) and takes effect from
the point of definition down to the end of file. It is recommended however to
place the use statements at the beginning of the file. The use statements have
effect only on the file where they appear.
The special "empty" namespace (\ prefix) is useful as explicit global
namespace qualification. All class and function names started from \
interpreted as global.
<?php
namespace A\B\C;
$con = \mysql_connect(...);
?>
A special constant __NAMESPACE__ contains the name of the current namespace.
It can be used to construct fully-qualified names to pass them as callbacks.
<?php
namespace A\B\C;
function foo() {
}
set_error_handler(__NAMESPACE__ . "\foo");
?>
In global namespace __NAMESPACE__ constant has the value of empty string.
Names inside namespace are resolved according to the following rules:
1) all qualified names are translated during compilation according to
current import rules. So if we have "use A\B\C" and then "C\D\e()"
it is translated to "A\B\C\D\e()".
2) unqualified class names translated during compilation according to
current import rules. So if we have "use A\B\C" and then "new C()" it
is translated to "new A\B\C()".
3) inside namespace, calls to unqualified functions that are defined in
current namespace (and are known at the time the call is parsed) are
interpreted as calls to these namespace functions.
4) inside namespace, calls to unqualified functions that are not defined
in current namespace are resolved at run-time. The call to function foo()
inside namespace (A\B) first tries to find and call function from current
namespace A\B\foo() and if it doesn't exist PHP tries to call internal
function foo(). Note that using foo() inside namespace you can call only
internal PHP functions, however using \foo() you are able to call any
function from the global namespace.
5) unqualified class names are resolved at run-time. E.q. "new Exception()"
first tries to use (and autoload) class from current namespace and in case
of failure uses internal PHP class. Note that using "new A" in namespace
you can only create class from this namespace or internal PHP class, however
using "new \A" you are able to create any class from the global namespace.
6) Calls to qualified functions are resolved at run-time. Call to
A\B\foo() first tries to call function foo() from namespace A\B, then
it tries to find class A\B (__autoload() it if necessary) and call its
static method foo()
7) qualified class names are interpreted as class from corresponding
namespace. So "new A\B\C()" refers to class C from namespace A\B.
Examples
--------
<?php
namespace A;
foo(); // first tries to call "foo" defined in namespace "A"
// then calls internal function "foo"
\foo(); // calls function "foo" defined in global scope
?>
<?php
namespace A;
new B(); // first tries to create object of class "B" defined in namespace "A"
// then creates object of internal class "B"
new \B(); // creates object of class "B" defined in global scope
?>
<?php
namespace A;
new A(); // first tries to create object of class "A" from namespace "A" (A\A)
// then creates object of internal class "A"
?>
<?php
namespace A;
B\foo(); // first tries to call function "foo" from namespace "A\B"
// then calls method "foo" of internal class "B"
\B\foo(); // first tries to call function "foo" from namespace "B"
// then calls method "foo" of class "B" from global scope
?>
The worst case if class name conflicts with namespace name
<?php
namespace A;
A\foo(); // first tries to call function "foo" from namespace "A\A"
// then tries to call method "foo" of class "A" from namespace "A"
// then tries to call function "foo" from namespace "A"
// then calls method "foo" of internal class "A"
\A\foo(); // first tries to call function "foo" from namespace "A"
// then calls method "foo" of class "A" from global scope
?>
TODO
====
* Support for namespace constants?
* performance problems
- calls to internal functions in namespaces are slower, because PHP first
looks for such function in current namespace
- calls to static methods are slower, because PHP first tries to look
for corresponding function in namespace
* Extend the Reflection API?
* Add ReflectionNamespace class
+ getName()
+ getClasses()
+ getFunctions()
+ getFiles()
* Add getNamespace() methods to ReflectionClass and ReflectionFunction
* Rename namespaces to packages?
+2 -11
View File
@@ -11,9 +11,6 @@ Zend
* 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.
* Clean up object->string conversion behavior wherever possible (switch(),
comparison, etc)
* Port safe-allocation functions from 5.3 (zend_alloc.[ch])
global
@@ -32,6 +29,8 @@ global
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).
@@ -65,14 +64,6 @@ documentation
* 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.
-1
View File
@@ -2,4 +2,3 @@ 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)
+9 -23
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2009, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| Copyright (c) 1999-2006, 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 |
+----------------------------------------------------------------------+
@@ -647,26 +647,19 @@ TSRM_API void tsrm_mutex_free(MUTEX_T mutexp)
}
/*
Lock a mutex.
A return value of 0 indicates success
*/
/* 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 0;
return 1;
#elif defined(GNUPTH)
if (pth_mutex_acquire(mutexp, 0, NULL)) {
return 0;
}
return -1;
return pth_mutex_acquire(mutexp, 0, NULL);
#elif defined(PTHREADS)
return pthread_mutex_lock(mutexp);
#elif defined(NSAPI)
crit_enter(mutexp);
return 0;
return crit_enter(mutexp);
#elif defined(PI3WEB)
return PISync_lock(mutexp);
#elif defined(TSRM_ST)
@@ -679,26 +672,19 @@ TSRM_API int tsrm_mutex_lock(MUTEX_T mutexp)
}
/*
Unlock a mutex.
A return value of 0 indicates success
*/
/* 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 0;
return 1;
#elif defined(GNUPTH)
if (pth_mutex_release(mutexp)) {
return 0;
}
return -1;
return pth_mutex_release(mutexp);
#elif defined(PTHREADS)
return pthread_mutex_unlock(mutexp);
#elif defined(NSAPI)
crit_exit(mutexp);
return 0;
return crit_exit(mutexp);
#elif defined(PI3WEB)
return PISync_unlock(mutexp);
#elif defined(TSRM_ST)
+9 -16
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Thread Safe Resource Manager |
+----------------------------------------------------------------------+
| Copyright (c) 1999-2009, Andi Gutmans, Sascha Schumann, Zeev Suraski |
| Copyright (c) 1999-2006, 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 |
+----------------------------------------------------------------------+
@@ -13,33 +13,26 @@
#ifndef TSRM_H
#define TSRM_H
#if !defined(__CYGWIN__) && defined(WIN32)
/* #ifndef WIN32 */
#ifndef WIN32
# include <tsrm_config.h>
#endif
#ifdef WIN32
# define TSRM_WIN32
# include "tsrm_config.w32.h"
#else
# include <tsrm_config.h>
#endif
#ifdef TSRM_WIN32
# ifdef TSRM_EXPORTS
# define TSRM_API __declspec(dllexport)
# define TSRM_API __declspec(dllexport)
# else
# define TSRM_API __declspec(dllimport)
# define TSRM_API __declspec(dllimport)
# endif
#elif defined(__GNUC__) && __GNUC__ >= 4
# define TSRM_API __attribute__ ((visibility("default")))
#else
# define TSRM_API
#endif
#ifdef _WIN64
typedef __int64 tsrm_intptr_t;
typedef unsigned __int64 tsrm_uintptr_t;
#else
typedef long tsrm_intptr_t;
typedef unsigned long tsrm_uintptr_t;
#endif
/* Only compile multi-threading functions if we're in ZTS mode */
#ifdef ZTS
+5 -6
View File
@@ -7,13 +7,11 @@
* on Windows 95/NT.
*/
#include <windows.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <direct.h>
/* struct dirent - same as Unix */
@@ -27,10 +25,10 @@ struct dirent {
/* typedef DIR - not the same as Unix */
typedef struct {
HANDLE handle; /* _findfirst/_findnext handle */
long handle; /* _findfirst/_findnext handle */
short offset; /* offset into directory */
short finished; /* 1 if there are not more files */
WIN32_FIND_DATA fileinfo; /* from _findfirst/_findnext */
struct _finddata_t fileinfo; /* from _findfirst/_findnext */
char *dir; /* the dir we are reading */
struct dirent dent; /* the dirent to return */
} DIR;
@@ -40,6 +38,7 @@ DIR *opendir(const char *);
struct dirent *readdir(DIR *);
int readdir_r(DIR *, struct dirent *, struct dirent **);
int closedir(DIR *);
int rewinddir(DIR *);
void rewinddir(DIR *);
#endif /* READDIR_H */
-2
View File
@@ -1,8 +1,6 @@
#ifndef TSRM_CONFIG_W32_H
#define TSRM_CONFIG_W32_H
#include <../main/config.w32.h>
#define HAVE_UTIME 1
#define HAVE_ALLOCA 1
#define HAVE_REALPATH 1
+6 -16
View File
@@ -1,10 +1,8 @@
#ifndef TSRM_CONFIG_COMMON_H
#define TSRM_CONFIG_COMMON_H
#ifndef __CYGWIN__
# if WINNT|WIN32
# define TSRM_WIN32
# endif
#if WINNT|WIN32
# define TSRM_WIN32
#endif
#ifdef TSRM_WIN32
@@ -52,19 +50,11 @@ char *alloca ();
#endif
#if (HAVE_ALLOCA || (defined (__GNUC__) && __GNUC__ >= 2))
# define TSRM_ALLOCA_MAX_SIZE 4096
# define TSRM_ALLOCA_FLAG(name) \
int name;
# define tsrm_do_alloca_ex(size, limit, use_heap) \
((use_heap = ((size) > (limit))) ? malloc(size) : alloca(size))
# define tsrm_do_alloca(size, use_heap) \
tsrm_do_alloca_ex(size, TSRM_ALLOCA_MAX_SIZE, use_heap)
# define tsrm_free_alloca(p, use_heap) \
do { if (use_heap) free(p); } while (0)
# define tsrm_do_alloca(p) alloca(p)
# define tsrm_free_alloca(p)
#else
# define TSRM_ALLOCA_FLAG(name)
# define tsrm_do_alloca(p, use_heap) malloc(p)
# define tsrm_free_alloca(p, use_heap) free(p)
# define tsrm_do_alloca(p) malloc(p)
# define tsrm_free_alloca(p) free(p)
#endif
#endif /* TSRM_CONFIG_COMMON_H */
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 6 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+2 -2
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 6 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
+356 -1082
View File
File diff suppressed because it is too large. Load diff
+28 -75
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 6 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -63,11 +63,6 @@ typedef unsigned short mode_t;
#define IS_SLASH_P(c) (*(c) == '/' || \
(*(c) == '\\' && !IsDBCSLeadByte(*(c-1))))
#define DEFAULT_U_SLASH ((UChar)0x5c) /*'\\'*/
#define DEFAULT_U_DIR_SEPARATOR ((UChar)0x3b) /*';'*/
#define IS_U_SLASH(c) ((UChar32)(c) == (UChar32)0x2f /*'/'*/ || (UChar32)(c) == (UChar32)0x5c /*'\\'*/)
#define IS_U_SLASH_P(c) IS_SLASH(*(c))
/* 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
@@ -85,12 +80,6 @@ typedef unsigned short mode_t;
#define DEFAULT_DIR_SEPARATOR ';'
#define IS_SLASH(c) ((c) == '/' || (c) == '\\')
#define IS_SLASH_P(c) IS_SLASH(*(c))
#define DEFAULT_U_SLASH ((UChar)0x2f) /*'/'*/
#define DEFAULT_U_DIR_SEPARATOR ((UChar)0x3b) /*';'*/
#define IS_U_SLASH(c) ((UChar32)(c) == (UChar32)0x2f /*'/'*/ || (UChar32)(c) == (UChar32)0x5c /*'\\'*/)
#define IS_U_SLASH_P(c) IS_U_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] == '\\'))))
@@ -104,18 +93,12 @@ typedef unsigned short mode_t;
#ifdef __riscos__
#define DEFAULT_DIR_SEPARATOR ';'
#define DEFAULT_U_DIR_SEPARATOR ((UChar)0x3b) /*';'*/
#else
#define DEFAULT_DIR_SEPARATOR ':'
#define DEFAULT_U_DIR_SEPARATOR ((UChar)0x3a) /*':'*/
#endif
#define IS_SLASH(c) ((c) == '/')
#define IS_SLASH_P(c) IS_SLASH(*(c))
#define DEFAULT_U_SLASH ((UChar)0x2f) /*'/'*/
#define IS_U_SLASH(c) ((UChar32)(c) == (UChar32)0x2f /*'/'*/)
#define IS_U_SLASH_P(c) IS_U_SLASH(*(c))
#define IS_SLASH(c) ((c) == '/')
#define IS_SLASH_P(c) (*(c) == '/')
#endif
@@ -134,21 +117,13 @@ typedef unsigned short mode_t;
#endif
#ifdef TSRM_WIN32
# ifdef CWD_EXPORTS
# define CWD_API __declspec(dllexport)
# else
# define CWD_API __declspec(dllimport)
# endif
#elif defined(__GNUC__) && __GNUC__ >= 4
# define CWD_API __attribute__ ((visibility("default")))
# ifdef CWD_EXPORTS
# define CWD_API __declspec(dllexport)
# else
# define CWD_API __declspec(dllimport)
# endif
#else
# define CWD_API
#endif
#ifdef TSRM_WIN32
CWD_API int php_sys_stat(const char *path, struct stat *buf);
#else
# define php_sys_stat stat
#define CWD_API
#endif
typedef struct _cwd_state {
@@ -197,6 +172,10 @@ CWD_API int virtual_access(const char *pathname, int mode TSRMLS_DC);
#endif
#endif
#if defined(__osf__) || defined(_AIX)
char *php_realpath_hack(char *src, char *dest);
#endif
#if HAVE_UTIME
CWD_API int virtual_utime(const char *filename, struct utimbuf *buf TSRMLS_DC);
#endif
@@ -205,17 +184,8 @@ CWD_API int virtual_chmod(const char *filename, mode_t mode TSRMLS_DC);
CWD_API int virtual_chown(const char *filename, uid_t owner, gid_t group, int link TSRMLS_DC);
#endif
/* One of the following constants must be used as the last argument
in virtual_file_ex() call. */
#define CWD_EXPAND 0 /* expand "." and ".." but dont resolve symlinks */
#define CWD_FILEPATH 1 /* resolve symlinks if file is exist otherwise expand */
#define CWD_REALPATH 2 /* call realpath(), resolve symlinks. File must exist */
CWD_API int virtual_file_ex(cwd_state *state, const char *path, verify_path_func verify_path, int use_realpath);
CWD_API char *tsrm_realpath(const char *path, char *real_path TSRMLS_DC);
#define REALPATH_CACHE_TTL (2*60) /* 2 minutes */
#define REALPATH_CACHE_SIZE 0 /* disabled while php.ini isn't loaded */
@@ -225,14 +195,7 @@ typedef struct _realpath_cache_bucket {
int path_len;
char *realpath;
int realpath_len;
int is_dir;
time_t expires;
#ifdef PHP_WIN32
unsigned char is_rvalid;
unsigned char is_readable;
unsigned char is_wvalid;
unsigned char is_writable;
#endif
struct _realpath_cache_bucket *next;
} realpath_cache_bucket;
@@ -252,13 +215,6 @@ extern virtual_cwd_globals cwd_globals;
# define CWDG(v) (cwd_globals.v)
#endif
CWD_API void realpath_cache_clean(TSRMLS_D);
CWD_API void realpath_cache_del(const char *path, int path_len TSRMLS_DC);
CWD_API realpath_cache_bucket* realpath_cache_lookup(const char *path, int path_len, time_t t TSRMLS_DC);
CWD_API int realpath_cache_size(TSRMLS_D);
CWD_API int realpath_cache_max_buckets(TSRMLS_D);
CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
/* The actual macros to be used in programs using TSRM
* If the program defines VIRTUAL_DIR it will use the
* virtual_* functions
@@ -279,7 +235,7 @@ CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
#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)
#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)
@@ -305,17 +261,11 @@ CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
#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)
/* rename on windows will fail if newname already exists.
MoveFileEx has to be used */
#if defined(TSRM_WIN32)
# define VCWD_RENAME(oldname, newname) (MoveFileEx(oldname, newname, MOVEFILE_REPLACE_EXISTING|MOVEFILE_COPY_ALLOWED) == 0 ? -1 : 0)
#else
# define VCWD_RENAME(oldname, newname) rename(oldname, newname)
#endif
#define VCWD_RENAME(oldname, newname) rename(oldname, newname)
#define VCWD_CHDIR(path) chdir(path)
#define VCWD_CHDIR_FILE(path) virtual_chdir_file(path, chdir)
#define VCWD_GETWD(buf) getwd(buf)
#define VCWD_STAT(path, buff) php_sys_stat(path, buff)
#define VCWD_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)
@@ -328,16 +278,19 @@ CWD_API realpath_cache_bucket** realpath_cache_get_buckets(TSRMLS_D);
#define VCWD_ACCESS(pathname, mode) access(pathname, mode)
#endif
#define VCWD_REALPATH(path, real_path) tsrm_realpath(path, real_path TSRMLS_CC)
#if HAVE_UTIME
# ifdef TSRM_WIN32
# define VCWD_UTIME(path, time) win32_utime(path, time)
# else
# define VCWD_UTIME(path, time) utime(path, time)
# 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)
+31 -361
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 6 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -23,16 +23,14 @@
#include <io.h>
#include <process.h>
#include <time.h>
#include <errno.h>
#define TSRM_INCLUDE_FULL_WINDOWS_HEADERS
#include "SAPI.h"
#include "TSRM.h"
#ifdef TSRM_WIN32
#include <Sddl.h>
#include "tsrm_win32.h"
#include "tsrm_virtual_cwd.h"
#ifdef ZTS
static ts_rsrc_id win32_globals_id;
@@ -47,16 +45,6 @@ static void tsrm_win32_ctor(tsrm_win32_globals *globals TSRMLS_DC)
globals->process_size = 0;
globals->shm_size = 0;
globals->comspec = _strdup((GetVersion()<0x80000000)?"cmd.exe":"command.com");
/* Set it to INVALID_HANDLE_VALUE
* It will be initialized correctly in tsrm_win32_access or set to
* NULL if no impersonation has been done.
* the impersonated token can't be set here as the impersonation
* will happen later, in fcgi_accept_request (or whatever is the
* SAPI being used).
*/
globals->impersonation_token = INVALID_HANDLE_VALUE;
globals->impersonation_token_sid = NULL;
}
static void tsrm_win32_dtor(tsrm_win32_globals *globals TSRMLS_DC)
@@ -78,13 +66,6 @@ static void tsrm_win32_dtor(tsrm_win32_globals *globals TSRMLS_DC)
}
free(globals->comspec);
if (globals->impersonation_token && globals->impersonation_token != INVALID_HANDLE_VALUE ) {
CloseHandle(globals->impersonation_token);
}
if (globals->impersonation_token_sid) {
free(globals->impersonation_token_sid);
}
}
TSRM_API void tsrm_win32_startup(void)
@@ -103,279 +84,15 @@ TSRM_API void tsrm_win32_shutdown(void)
#endif
}
char * tsrm_win32_get_path_sid_key(const char *pathname TSRMLS_DC)
{
PSID pSid = TWG(impersonation_token_sid);
DWORD sid_len = pSid ? GetLengthSid(pSid) : 0;
TCHAR *ptcSid = NULL;
char *bucket_key = NULL;
if (!pSid) {
bucket_key = (char *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, strlen(pathname) + 1);
if (!bucket_key) {
return NULL;
}
memcpy(bucket_key, pathname, strlen(pathname));
return bucket_key;
}
if (!ConvertSidToStringSid(pSid, &ptcSid)) {
return NULL;
}
bucket_key = (char *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, strlen(pathname) + strlen(ptcSid) + 1);
if (!bucket_key) {
LocalFree(ptcSid);
return NULL;
}
memcpy(bucket_key, ptcSid, strlen(ptcSid));
memcpy(bucket_key + strlen(ptcSid), pathname, strlen(pathname) + 1);
LocalFree(ptcSid);
return bucket_key;
}
PSID tsrm_win32_get_token_sid(HANDLE hToken)
{
BOOL bSuccess = FALSE;
DWORD dwLength = 0;
PTOKEN_USER pTokenUser = NULL;
PSID sid;
PSID *ppsid = &sid;
DWORD sid_len;
PSID pResultSid = NULL;
/* Get the actual size of the TokenUser structure */
if (!GetTokenInformation(
hToken, TokenUser, (LPVOID) pTokenUser, 0, &dwLength)) {
if (GetLastError() != ERROR_INSUFFICIENT_BUFFER) {
goto Finished;
}
pTokenUser = (PTOKEN_USER)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwLength);
if (pTokenUser == NULL) {
goto Finished;
}
}
/* and fetch it now */
if (!GetTokenInformation(
hToken, TokenUser, (LPVOID) pTokenUser, dwLength, &dwLength)) {
goto Finished;
}
sid_len = GetLengthSid(pTokenUser->User.Sid);
/* ConvertSidToStringSid(pTokenUser->User.Sid, &ptcSidOwner); */
pResultSid = malloc(sid_len);
if (!pResultSid) {
goto Finished;
}
if (!CopySid(sid_len, pResultSid, pTokenUser->User.Sid)) {
goto Finished;
}
HeapFree(GetProcessHeap(), 0, (LPVOID)pTokenUser);
return pResultSid;
Finished:
if (pResultSid) {
free(pResultSid);
}
/* Free the buffer for the token groups. */
if (pTokenUser != NULL) {
HeapFree(GetProcessHeap(), 0, (LPVOID)pTokenUser);
}
return NULL;
}
TSRM_API int tsrm_win32_access(const char *pathname, int mode)
{
time_t t;
HANDLE thread_token;
PSID token_sid;
SECURITY_INFORMATION sec_info = OWNER_SECURITY_INFORMATION | GROUP_SECURITY_INFORMATION | DACL_SECURITY_INFORMATION;
GENERIC_MAPPING gen_map = { FILE_GENERIC_READ, FILE_GENERIC_WRITE, FILE_GENERIC_EXECUTE, FILE_ALL_ACCESS };
DWORD priv_set_length = sizeof(PRIVILEGE_SET);
PRIVILEGE_SET privilege_set = {0};
DWORD sec_desc_length = 0, desired_access = 0, granted_access = 0;
BYTE * psec_desc = NULL;
BOOL fAccess = FALSE;
BOOL bucket_key_alloc = FALSE;
realpath_cache_bucket * bucket = NULL;
char * real_path = NULL;
TSRMLS_FETCH();
SHFILEINFO sfi;
if (mode == 1 /*X_OK*/) {
DWORD type;
return GetBinaryType(pathname, &type) ? 0 : -1;
return access(pathname, 0) == 0 &&
SHGetFileInfo(pathname, 0, &sfi, sizeof(SHFILEINFO), SHGFI_EXETYPE) != 0 ? 0 : -1;
} else {
if(!IS_ABSOLUTE_PATH(pathname, strlen(pathname)+1)) {
real_path = (char *)malloc(MAX_PATH);
if(tsrm_realpath(pathname, real_path TSRMLS_CC) == NULL) {
goto Finished;
}
pathname = real_path;
}
if(access(pathname, mode)) {
free(real_path);
return errno;
}
/* If only existence check is made, return now */
if (mode == 0) {
free(real_path);
return 0;
}
/* Only in NTS when impersonate==1 (aka FastCGI) */
/*
AccessCheck() requires an impersonation token. We first get a primary
token and then create a duplicate impersonation token. The
impersonation token is not actually assigned to the thread, but is
used in the call to AccessCheck. Thus, this function itself never
impersonates, but does use the identity of the thread. If the thread
was impersonating already, this function uses that impersonation context.
*/
if(!OpenThreadToken(GetCurrentThread(), TOKEN_ALL_ACCESS, TRUE, &thread_token)) {
DWORD err = GetLastError();
if (GetLastError() == ERROR_NO_TOKEN) {
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ALL_ACCESS, &thread_token)) {
TWG(impersonation_token) = NULL;
goto Finished;
}
}
}
/* token_sid will be freed in tsrmwin32_dtor */
token_sid = tsrm_win32_get_token_sid(thread_token);
if (!token_sid) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
}
TWG(impersonation_token_sid) = NULL;
goto Finished;
}
/* Different identity, we need a new impersontated token as well */
if (!TWG(impersonation_token_sid) || !EqualSid(token_sid, TWG(impersonation_token_sid))) {
if (TWG(impersonation_token_sid)) {
free(TWG(impersonation_token_sid));
}
TWG(impersonation_token_sid) = token_sid;
/* Duplicate the token as impersonated token */
if (!DuplicateToken(thread_token, SecurityImpersonation, &TWG(impersonation_token))) {
goto Finished;
}
} else {
/* we already have it, free it then */
free(token_sid);
}
if (CWDG(realpath_cache_size_limit)) {
t = time(0);
bucket = realpath_cache_lookup(pathname, strlen(pathname), t TSRMLS_CC);
if(bucket == NULL && real_path == NULL) {
/* We used the pathname directly. Call tsrm_realpath */
/* so that entry is created in realpath cache */
real_path = (char *)malloc(MAX_PATH);
if(tsrm_realpath(pathname, real_path TSRMLS_CC) != NULL) {
pathname = real_path;
bucket = realpath_cache_lookup(pathname, strlen(pathname), t TSRMLS_CC);
}
}
}
/* Do a full access check because access() will only check read-only attribute */
if(mode == 0 || mode > 6) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
desired_access = FILE_GENERIC_READ;
} else if(mode <= 2) {
if(bucket != NULL && bucket->is_wvalid) {
fAccess = bucket->is_writable;
goto Finished;
}
desired_access = FILE_GENERIC_WRITE;
} else if(mode <= 4) {
if(bucket != NULL && bucket->is_rvalid) {
fAccess = bucket->is_readable;
goto Finished;
}
desired_access = FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS;
} else { // if(mode <= 6)
if(bucket != NULL && bucket->is_rvalid && bucket->is_wvalid) {
fAccess = bucket->is_readable & bucket->is_writable;
goto Finished;
}
desired_access = FILE_GENERIC_READ | FILE_GENERIC_WRITE;
}
if(TWG(impersonation_token) == NULL) {
goto Finished;
}
/* Get size of security buffer. Call is expected to fail */
if(GetFileSecurity(pathname, sec_info, NULL, 0, &sec_desc_length)) {
goto Finished;
}
psec_desc = (BYTE *)malloc(sec_desc_length);
if(psec_desc == NULL ||
!GetFileSecurity(pathname, sec_info, (PSECURITY_DESCRIPTOR)psec_desc, sec_desc_length, &sec_desc_length)) {
goto Finished;
}
MapGenericMask(&desired_access, &gen_map);
if(!AccessCheck((PSECURITY_DESCRIPTOR)psec_desc, TWG(impersonation_token), desired_access, &gen_map, &privilege_set, &priv_set_length, &granted_access, &fAccess)) {
goto Finished_Impersonate;
}
/* Keep the result in realpath_cache */
if(bucket != NULL) {
if(desired_access == (FILE_GENERIC_READ|FILE_FLAG_BACKUP_SEMANTICS)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
}
else if(desired_access == FILE_GENERIC_WRITE) {
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
} else if (desired_access == (FILE_GENERIC_READ | FILE_GENERIC_WRITE)) {
bucket->is_rvalid = 1;
bucket->is_readable = fAccess;
bucket->is_wvalid = 1;
bucket->is_writable = fAccess;
}
}
Finished_Impersonate:
if(psec_desc != NULL) {
free(psec_desc);
psec_desc = NULL;
}
Finished:
if(real_path != NULL) {
free(real_path);
real_path = NULL;
}
if(fAccess == FALSE) {
errno = EACCES;
return errno;
} else {
return 0;
}
return access(pathname, mode);
}
}
@@ -384,22 +101,22 @@ 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)++;
@@ -411,7 +128,7 @@ 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;
@@ -426,12 +143,12 @@ static shm_pair *shm_get(int key, void *addr)
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)++;
@@ -454,48 +171,23 @@ TSRM_API FILE *popen(const char *command, const char *type)
TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd, char *env)
{
FILE *stream = NULL;
int fno, type_len = strlen(type), read, mode;
int fno, str_len = strlen(type), read, mode;
STARTUPINFO startup;
PROCESS_INFORMATION process;
SECURITY_ATTRIBUTES security;
HANDLE in, out;
DWORD dwCreateFlags = 0;
BOOL res;
process_pair *proc;
char *cmd;
int i;
char *ptype = (char *)type;
HANDLE thread_token = NULL;
HANDLE token_user = NULL;
BOOL asuser = TRUE;
process_pair *proc;
TSRMLS_FETCH();
if (!type) {
return NULL;
}
/*The following two checks can be removed once we drop XP support */
type_len = strlen(type);
if (type_len <1 || type_len > 2) {
return NULL;
}
for (i=0; i < type_len; i++) {
if (!(*ptype == 'r' || *ptype == 'w' || *ptype == 'b' || *ptype == 't')) {
return NULL;
}
ptype++;
}
security.nLength = sizeof(SECURITY_ATTRIBUTES);
security.bInheritHandle = TRUE;
security.lpSecurityDescriptor = NULL;
if (!type_len || !CreatePipe(&in, &out, &security, 2048L)) {
if (!str_len || !CreatePipe(&in, &out, &security, 2048L)) {
return NULL;
}
memset(&startup, 0, sizeof(STARTUPINFO));
memset(&process, 0, sizeof(PROCESS_INFORMATION));
@@ -504,7 +196,8 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
startup.hStdError = GetStdHandle(STD_ERROR_HANDLE);
read = (type[0] == 'r') ? TRUE : FALSE;
mode = ((type_len == 2) && (type[1] == 'b')) ? O_BINARY : O_TEXT;
mode = ((str_len == 2) && (type[1] == 'b')) ? O_BINARY : O_TEXT;
if (read) {
in = dupHandle(in, FALSE);
@@ -516,43 +209,21 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
startup.hStdOutput = GetStdHandle(STD_OUTPUT_HANDLE);
}
dwCreateFlags = NORMAL_PRIORITY_CLASS;
if (strcmp(sapi_module.name, "cli") != 0) {
dwCreateFlags |= CREATE_NO_WINDOW;
}
/* Get a token with the impersonated user. */
if(OpenThreadToken(GetCurrentThread(), TOKEN_ALL_ACCESS, TRUE, &thread_token)) {
DuplicateTokenEx(thread_token, MAXIMUM_ALLOWED, &security, SecurityImpersonation, TokenPrimary, &token_user);
} else {
DWORD err = GetLastError();
if (err == ERROR_NO_TOKEN) {
asuser = FALSE;
}
}
cmd = (char*)malloc(strlen(command)+strlen(TWG(comspec))+sizeof(" /c ")+2);
sprintf(cmd, "%s /c \"%s\"", TWG(comspec), command);
if (asuser) {
res = CreateProcessAsUser(token_user, NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process);
CloseHandle(token_user);
} else {
res = CreateProcess(NULL, cmd, &security, &security, security.bInheritHandle, dwCreateFlags, env, cwd, &startup, &process);
}
free(cmd);
if (!res) {
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((tsrm_intptr_t)in, _O_RDONLY | mode);
fno = _open_osfhandle((long)in, _O_RDONLY | mode);
CloseHandle(out);
} else {
fno = _open_osfhandle((tsrm_intptr_t)out, _O_WRONLY | mode);
fno = _open_osfhandle((long)out, _O_WRONLY | mode);
CloseHandle(in);
}
@@ -573,7 +244,7 @@ TSRM_API int pclose(FILE *stream)
}
fflush(process->stream);
fclose(process->stream);
fclose(process->stream);
WaitForSingleObject(process->prochnd, INFINITE);
GetExitCodeProcess(process->prochnd, &termstat);
@@ -601,6 +272,9 @@ TSRM_API int shmget(int key, int size, int flags)
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);
@@ -609,10 +283,6 @@ TSRM_API int shmget(int key, int size, int flags)
if ((!shm_handle || !info_handle)) {
return -1;
}
} else {
if (flags & IPC_EXCL) {
return -1;
}
}
shm = shm_get(key, NULL);
+2 -6
View File
@@ -1,8 +1,8 @@
/*
+----------------------------------------------------------------------+
| PHP Version 6 |
| PHP Version 5 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2010 The PHP Group |
| Copyright (c) 1997-2006 The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -63,8 +63,6 @@ typedef struct {
int process_size;
int shm_size;
char *comspec;
HANDLE impersonation_token;
PSID impersonation_token_sid;
} tsrm_win32_globals;
#ifdef ZTS
@@ -90,7 +88,6 @@ typedef struct {
#define SHM_RND FILE_MAP_WRITE
#define SHM_REMAP FILE_MAP_COPY
char * tsrm_win32_get_path_sid_key(const char *pathname TSRMLS_DC);
TSRM_API void tsrm_win32_startup(void);
TSRM_API void tsrm_win32_shutdown(void);
@@ -99,7 +96,6 @@ TSRM_API FILE *popen_ex(const char *command, const char *type, const char *cwd,
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 win32_utime(const char *filename, struct utimbuf *buf);
TSRM_API int shmget(int key, int size, int flags);
TSRM_API void *shmat(int key, const void *shmaddr, int flags);
Executable
+548
View File
@@ -0,0 +1,548 @@
$Id$
UPGRADE NOTES - PHP 5.1
1. Changes in reference handling
a. Overview
b. Code that worked under PHP 4.3, but now fails
c. Code that was valid under PHP 4.3, but now throws an error
d. Code that failed under PHP 4.3, but now works
e. Code that 'should have worked' under PHP 5.0
f. Warnings that came and went
2. Reading []
3. instanceof, is_a(), is_subclass_of(), catch
4. Integer values in function parameters
5. Abstract private methods
6. Access modifiers in interfaces
7. Changes in inheritance rules
8. Class constants
9. Extensions
a. Extensions that are gone from the PHP core
b. Class constants in new PHP 5.1 extensions
10. Date/time support
11. Changes in database support
a. PDO overview
b. Changes in MySQL support
c. Changes in SQLite support
12. Further migration information
13. Checking for E_STRICT errors
===============================================================================
1. Changes in reference handling
================================
1a. Overview
============
From the PHP script writer's point of view, the change most likely to impact
legacy code is in the way that references are handled in all PHP versions
post-dating the PHP 4.4.0 release.
Until and including PHP 4.3, it was possible to send, assign or return variables
by reference that should really be returned by value, such as a constant, a
temporary value (e.g. the result of an expression), or the result of a function
that had itself been returned by value, as here:
<?php
$foo = "123";
function return_value() {
global $foo;
return $foo;
}
$bar = &return_value();
?>
Although this code would usually work as expected under PHP 4.3, in the general
case the result is undefined. The Zend Engine could not act correctly on these
values as references. This bug could and did lead to various hard-to-reproduce
memory corruption problems, particularly where the code base was large.
In PHP 4.4.0, PHP 5.0.4 and all subsequent PHP releases, the Engine was fixed
to 'know' when the reference operation is being used on a value that should
not be referenced. The actual value is now used in such cases, and a warning
is emitted. The warning takes the form of an E_NOTICE in PHP 4.4.0 and up,
and E_STRICT in PHP 5.0.4 and up.
Code that could potentially produce memory corruption can no longer do so.
However, some legacy code might work differently as a result.
1b. Code that worked under PHP 4.3, but now fails
=================================================
<?php
function func(&$arraykey) {
return $arraykey; // function returns by value!
}
$array = array('a', 'b', 'c');
foreach (array_keys($array) as $key) {
$y = &func($array[$key]);
$z[] =& $y;
}
var_dump($z);
?>
Running the above script under any version of PHP that pre-dates the reference
fix would produce this output:
array(3) {
[0]=>
&string(1) "a"
[1]=>
&string(1) "b"
[2]=>
&string(1) "c"
}
Following the reference fix, the same code would result in:
array(3) {
[0]=>
&string(1) "c"
[1]=>
&string(1) "c"
[2]=>
&string(1) "c"
}
This is because, following the changes, func() assigns by value. The value
of $y is re-assigned, and reference-binding is preserved from $z. Prior
to the fix, the value was assigned by reference, leading $y to be
re-bound on each assignment. The attempt to bind to a temporary value
by reference was the cause of the memory corruption.
Such code can be made to work identically in both the pre-fix and the
post-fix PHP versions. The signature of func() can be altered to return
by reference, or the reference assignment can be removed from the result
of func().
<?php
function func() {
return 'function return';
}
$x = 'original value';
$y =& $x;
$y = &func();
echo $x;
?>
In PHP 4.3 $x would be 'original value', whereas after the changes it would
be 'function return' - remember that where the function does not return by
reference, the reference assignment is converted to a regular assignment.
Again, this can be brought to a common base, either by forcing func() to
return by reference or by eliminating the by-reference assignment.
1c. Code that was valid under PHP 4.3, but now throws an error
==============================================================
<?php
class Foo {
function getThis() {
return $this;
}
function destroyThis() {
$baz =& $this->getThis();
}
}
$bar = new Foo();
$bar->destroyThis();
var_dump($bar);
?>
In PHP 5.0.3, $bar evaluated to NULL instead of returning an object.
That happened because getThis() returns by value, but the value here
is assigned by reference. Although it now works in the expected way,
this is actually invalid code which will throw an E_NOTICE under
PHP 4.4 or an E_STRICT under PHP 5.0.4 and up.
1d. Code that failed under PHP 4.3, but now works
=================================================
<?php
function &f() {
$x = "foo";
var_dump($x);
print "$x\n";
return($a);
}
for ($i = 0; $i < 3; $i++) {
$h = &f();
}
?>
In PHP 4.3 the third call to var_dump produces NULL, due to the memory
corruption caused by returning an uninitialized value by reference.
This is valid code in PHP 5.0.4 and up, but threw errors in earlier
releases of PHP.
<?php
$arr = array('a1' => array('alfa' => 'ok'));
$arr =& $arr['a1'];
echo '-'.$arr['alfa']."-\n";
?>
Until PHP 5.0.5, it wasn't possible to assign an array element by
reference in this way. It now is.
1e. Code that 'should have worked' under PHP 5.0
================================================
There are a couple of instances of bugs reported under PHP 5.0 prior
to the reference fixes which now 'work'. However, in both cases errors
are thrown by PHP 5.1, because the code was invalid in the first place.
Returning values by reference using self:: now works in the general
case but throws an E_STRICT warning, and although your mileage may
vary when assigning by reference to an overloaded object, you will
still see an E_ERROR when you try it, even where the assignment
itself appears to work.
1f. Warnings that came and went
===============================
<?php
function & foo() {
$var = 'ok';
return $var;
}
function & bar() {
return foo();
}
$a =& bar();
echo "$a\n";
?>
Nested calls to functions returning by reference are valid code under both
PHP 4.3 and PHP 5.1, but threw an unwarranted E_NOTICE or E_STRICT under
the intervening PHP releases.
2. Reading []
=============
<?php
class XmlTest {
function test_ref(&$test) {
$test = "ok";
}
function test($test) { }
function run() {
$ar = array();
$this->test_ref($ar[]);
var_dump($ar);
$this->test($ar[]);
}
}
$o = new XmlTest();
$o->run();
?>
This should always have thrown a fatal E_ERROR, because [] cannot be used
for reading in PHP. It is invalid code in PHP 4.4.2 and PHP 5.0.5 upward.
3. instanceof, is_a(), is_subclass_of(), catch
==============================================
In PHP 5.0, is_a() was deprecated and replaced by the "instanceof" operator.
There were some issues with the initial implementation of "instanceof", which
relied on __autoload() to search for missing classes. If the class was not
present, "instanceof" would throw a fatal E_ERROR due to the failure of
__autoload() to discover that class. The same behaviour occurred in the
"catch" operator and the is_subclass_of() function, for the same reason.
None of these functions or operators call __autoload() in PHP 5.1, and
the class_exists() workarounds used in code written for PHP 5.0, while
not problematic in any way, are no longer necessary.
4. Integer values in function parameters
========================================
With the advent of PHP 5.0, a new parameter parsing API was introduced
which is used by a large number of PHP functions. In all versions of
PHP between 5.0 and 5.1, the handling of integer values was very strict
and would reject non-well formed numeric values when a PHP function
expected an integer. These checks have now been relaxed to support
non-well formed numeric strings such as " 123" and "123 ", and will
no longer fail as they did under PHP 5.0. However, to promote code
safety and input validation, PHP functions will now emit an E_NOTICE
when such strings are passed as integers.
5. Abstract private methods
===========================
Abstract private methods were supported between PHP 5.0.0 and PHP 5.0.4,
but were then disallowed on the grounds that the behaviours of 'private'
and 'abstract' are mutually exclusive.
6. Access modifiers in interfaces
=================================
Under PHP 5.0, function declarations in interfaces were treated in exactly
the same way as function declarations in classes. This has not been the case
since October 2004, at which point only the 'public' access modifier was
allowed in interface function declarations. Since April 2005 - which pre-dates
the PHP 5.0b1 release - the 'static' modifier has also been allowed. However,
the 'protected' and 'private' modifiers will now throw an E_ERROR, as will
'abstract'. Note that this change should not affect your existing code, as
none of these modifiers makes sense in the context of interfaces anyway.
7. Changes in inheritance rules
===============================
Under PHP 5.0, it was possible to have a function declaration in a derived class
that did not match the declaration of the same function in the base class, e.g.
class Base {
function &return_by_ref() {
$r = 1;
return $r;
}
}
class Derived extends Base {
function return_by_ref() {
return 1;
}
}
This code will cause an E_STRICT error to be emitted under PHP 5.1.
8. Class constants
==================
Under PHP 5.0, the following code was valid:
<?php
class test {
const foobar = 'foo';
const foobar = 'bar';
}
?>
Under PHP 5.1, redefinition of a class constant will throw a fatal E_ERROR.
9. Extensions
=============
9a. Extensions that are gone from the PHP core
==============================================
One of the first things you're likely to notice when you download PHP 5.1 is that
several of the older extensions have disappeared. Those extensions that are still
actively maintained are available in the PHP Extension Community Library (PECL),
at http://pecl.php.net. Windows binaries are built regularly, and you can obtain
the binaries for PECL extensions built against PHP 5.1 from
http://pecl4win.php.net/list.php/5_1.
Extension Alternative/status
========= ========================
ext/cpdf pecl/pdflib
ext/dbx pecl/dbx
ext/dio pecl/dio
ext/fam not actively maintained
ext/ingres_ii pecl/ingres
ext/ircg not actively maintained
ext/mcve pecl/mcve
ext/mnogosearch not actively maintained
ext/oracle ext/oci8 or ext/pdo_oci
ext/ovrimos not actively maintained
ext/pfpro not actively maintained
- alternatives at http://pecl.php.net/packages.php?catpid=18&catname=Payment
ext/w32api pecl/ffi
ext/yp not actively maintained
sapi/activescript http://pecl4win.php.net/ext.php/php5activescript.dll (PECL package)
or pecl/activescript (CVS)
Modules in PECL that are not actively maintained (i.e. have not been supported
for some time, have no active maintainer working on them currently, and do not
have any PECL package releases), are still available in CVS at
http://cvs.php.net/pecl/. However, unreleased PHP modules are by their nature
unsupported, and your mileage may vary when attempting to install or use them.
9b. Class constants in new PHP 5.1 extensions
=============================================
The Zend Engine 2.1 API allows extension developers to declare class constants
in object oriented extensions. New extensions written for PHP 5.1, including SPL,
PDO, ext/XMLReader and ext/date, have their constants in the format
PDO::CLASS_CONSTANT
rather than in the C format
PDO_CLASS_CONSTANT
in order to minimise pollution of the global namespace in PHP.
10. Date/time support
====================
Date/time support has been fully rewritten in PHP 5.1, and no longer
uses the system settings to 'know' the timezone in operation. It will
instead utilize, in the following order:
* The timezone set using the date_default_timezone_set() function (if any)
* The TZ environment variable (if non empty)
* The date.timezone ini option (if set)
* "magical" guess (if the operating system supports it)
* If none of the above options succeeds, UTC
To ensure accuracy (and avoid an E_STRICT warning), you will need to define
your timezone in your php.ini using the following format:
date.timezone = Europe/London
The supported timezones are listed, in this format, in the PHP manual at
http://www.php.net/manual/en/timezones.php.
11. Changes in database support
==============================
11a. PDO overview
================
PHP Data Objects (PDO) were introduced as a PECL extension under PHP 5.0,
and became part of the core PHP distribution in PHP 5.1. The PDO extension
provides a consistent interface for database access, and is used alongside
database-specific PDO drivers. Each driver may also have database-specific
functions of its own, but basic data access functionality such as issuing
queries and fetching data is covered by PDO functions, using the driver
named in PDO::__construct().
Note that the PDO extension, and its drivers, are intended to be built as
shared extensions. This will enable straightforward driver upgrades from
PECL, without forcing you to rebuild all of PHP.
At the point of the PHP 5.1 release, PDO is more than ready for widespread
testing and could be adopted in most situations. However, it is important
to understand that PDO and its drivers are comparatively young and may be
missing certain database-specific features; evaluate PDO carefully before
you use it in new projects.
Legacy code will generally rely on the pre-existing database extensions,
which are still maintained.
There is more in-depth information about the PDO extension in the manual
at http://www.php.net/manual/ref.pdo.php.
11b. Changes in MySQL support
============================
In PHP 4, MySQL 3 support was built-in. With the release of PHP 5.0 there
were two MySQL extensions, named 'mysql' and 'mysqli', which were designed
to support MySQL < 4.1 and MySQL 4.1 and up, respectively. With the
introduction of PDO, which provides a very fast interface to all the
database APIs supported by PHP, the PDO_MYSQL driver can support any
of the current versions (MySQL 3, 4 or 5) in PHP code written for PDO,
depending on the MySQL library version used during compilation. The
older MySQL extensions remain in place for reasons of back compatibility,
but are not enabled by default.
11c. Changes in SQLite support
=============================
In PHP 5.0, SQLite 2 support was provided by the built-in sqlite
extension, which was also available as a PECL extension in PHP 4.3
and PHP 4.4. With the introduction of PDO, the sqlite extension doubles
up to act as a 'sqlite2' driver for PDO; it is due to this that the
sqlite extension in PHP 5.1 has a dependency upon the PDO extension.
PHP 5.1 ships with a number of alternative interfaces to sqlite:
The sqlite extension provides the "classic" sqlite procedural/OO API
that you may have used in prior versions of PHP. It also provides the
PDO 'sqlite2' driver, which allows you to access legacy SQLite 2
databases using the PDO API.
PDO_SQLITE provides the 'sqlite' version 3 driver. SQLite version 3
is vastly superior to SQLite version 2, but the file formats of the
two versions are not compatible.
If your SQLite-based project is already written and working against
earlier PHP versions, then you can continue to use ext/sqlite without
problems, but will need to explicitly enable both PDO and sqlite. New
projects should use PDO and the 'sqlite' (version 3) driver, as this is
faster than SQLite 2, has improved locking concurrency, and supports
both prepared statements and binary columns natively.
12. Further migration information
================================
For general information about migrating from PHP 4 to PHP 5, please refer to
the relevant section in the PHP manual at http://www.php.net/manual/migration5.php.
13. Checking for E_STRICT errors
================================
If you only have a single script to check, you can pick up E_STRICT
errors using PHP's commandline lint facility:
php -d error_reporting=4095 -l script_to_check.php
For larger projects, the shell script below will achieve the same task:
#!/bin/sh
directory=$1
shift
# These extensions are checked
extensions="php inc"
check_file ()
{
echo -ne "Doing PHP syntax check on $1 ..."
# Options:
ERRORS=`/www/php/bin/php -d display_errors=1 -d html_errors=0 -d error_prepend_string=" " -d error_append_string=" " -d error_reporting=4095 -l $1 | grep -v "No syntax errors detected"`
if test -z "$ERRORS"; then
echo -ne "OK."
else
echo -e "Errors found!\n$ERRORS"
fi
echo
}
# loop over remaining file args
for FILE in "$@" ; do
for ext in $extensions; do
if echo $FILE | grep "\.$ext$" > /dev/null; then
if test -f $FILE; then
check_file "$FILE"
fi
fi
done
done
-19901
View File
File diff suppressed because it is too large. Load diff
+186
View File
@@ -0,0 +1,186 @@
// $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
+5 -5
View File
@@ -8,16 +8,16 @@ 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_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_objects_API.c zend_ts_hash.c zend_stream.c zend_mm.c \
zend_default_classes.c \
zend_iterators.c zend_interfaces.c zend_exceptions.c \
zend_strtod.c zend_strtod.c zend_strtol.c zend_closures.c zend_float.c
zend_strtod.c zend_multibyte.c
libZend_la_LDFLAGS =
libZend_la_LIBADD = @ZEND_EXTRA_LIBS@
@@ -31,7 +31,7 @@ zend_ini_scanner.lo: zend_ini_parser.h
# Language parser/scanner rules
zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
$(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt $(srcdir)/zend_language_scanner_defs.h -o$@ $(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
@@ -43,7 +43,7 @@ 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
$(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt $(srcdir)/zend_ini_scanner_defs.h -o$@ $(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
+7 -28
View File
@@ -1,34 +1,13 @@
Zend Memory Manager
===================
The goal of the new memory manager (PHP 5.2 and later) is reducing memory allocation overhead and speedup memory management.
General:
--------
The new manager's "configure" has no "--disable-zend-memory-manager" option, but it has "--enable-malloc-mm" instead. It is enabled by default in DEBUG build and disabled by default in RELEASE built. It allows select malloc/emalloc at runtime. So you can use internal and external memory debuggers without recompilation.
The goal of the new memory manager (available since PHP 5.2) is to reduce memory
allocation overhead and speedup memory management.
$ sapi/cli/php -r 'leak();'
The new manager's "configure" has no "--disable-zend-memory-manager" option,
but it has "--enable-malloc-mm" instead. It is enabled by default in DEBUG
build and disabled by default in RELEASE build. when enabled it allows selecting
between malloc and emalloc at runtime so you can use internal and external memory
debuggers without recompilation.
$ USE_ZEND_ALLOC=0 valgrind --leak-check=full -r 'leak();'
Debugging:
----------
The patch allows tweaking memory manager with ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment variables. Default values are "malloc" and "256K". Dependent on target system you can also use "mmap_anon", "mmap_zero"
and "win32" storage managers.
Normal:
$ ZEND_MM_MEM_TYPE=mmap_anon ZEND_MM_SEG_SIZE=1M sapi/cli/php
$ sapi/cli/php -r 'leak();'
Zend MM disabled:
$ USE_ZEND_ALLOC=0 valgrind --leak-check=full sapi/cli/php -r 'leak();'
Tweaking:
---------
The Zend MM can be tweaked using ZEND_MM_MEM_TYPE and ZEND_MM_SEG_SIZE environment
variables. Default values are "malloc" and "256K". Dependent on target system you
can also use "mmap_anon", "mmap_zero" and "win32" storage managers.
$ ZEND_MM_MEM_TYPE=mmap_anon ZEND_MM_SEG_SIZE=1M sapi/cli/php ..etc.
+16 -16
View File
@@ -123,10 +123,6 @@ SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_closures.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
@@ -139,6 +135,10 @@ 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
@@ -151,10 +151,6 @@ SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_float.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
@@ -199,6 +195,10 @@ 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
@@ -227,10 +227,6 @@ 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
@@ -295,6 +291,10 @@ 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
@@ -371,6 +371,10 @@ 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
@@ -399,10 +403,6 @@ 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
+43 -56
View File
@@ -31,6 +31,7 @@ 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
@@ -60,6 +61,7 @@ sys/time.h \
signal.h \
unix.h \
stdlib.h \
mach-o/dyld.h \
dlfcn.h)
AC_TYPE_SIZE_T
@@ -97,46 +99,12 @@ 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 sigsetjmp)
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
ZEND_CHECK_FLOAT_PRECISION
dnl test whether double cast to long preserves least significant bits
AC_MSG_CHECKING(whether double cast to long preserves least significant bits)
AC_TRY_RUN([
#include <limits.h>
int main()
{
if (sizeof(long) == 4) {
double d = (double) LONG_MIN * LONG_MIN + 2e9;
if ((long) d == 2e9 && (long) -d == -2e9) {
exit(0);
}
} else if (sizeof(long) == 8) {
double correct = 18e18 - ((double) LONG_MIN * -2); /* Subtract ULONG_MAX + 1 */
if ((long) 18e18 == correct) { /* On 64-bit, only check between LONG_MAX and ULONG_MAX */
exit(0);
}
}
exit(1);
}
], [
AC_DEFINE([ZEND_DVAL_TO_LVAL_CAST_OK], 1, [Define if double cast to long preserves least significant bits])
AC_MSG_RESULT(yes)
], [
AC_MSG_RESULT(no)
], [
AC_MSG_RESULT(no)
])
])
@@ -161,6 +129,13 @@ AC_ARG_WITH(zend-vm,
PHP_ZEND_VM=CALL
])
AC_ARG_ENABLE(malloc-mm,
[ --enable-malloc-mm Use environment variable for run-time malloc/emalloc
selection - FOR DEVELOPERS ONLY!!],
[
ZEND_USE_MALLOC_MM=$enableval
])
AC_ARG_ENABLE(maintainer-zts,
[ --enable-maintainer-zts Enable thread safety - for code maintainers only!!],[
ZEND_MAINTAINER_ZTS=$enableval
@@ -176,6 +151,20 @@ AC_ARG_ENABLE(inline-optimization,
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)
@@ -185,9 +174,15 @@ 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])
@@ -207,20 +202,9 @@ if test "$ZEND_DEBUG" = "yes"; then
if test "$CFLAGS" = "-g -O2"; then
CFLAGS=-g
fi
changequote({,})
if test -n "$GCC"; then
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wall"
"$CC" --help=warnings|grep -q -- '-Wpointer-arith[ \t]' && \
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wpointer-arith"
"$CC" --help=warnings|grep -q -- '-Wdeclaration-after-statement[ \t]' && \
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wdeclaration-after-statement"
test "$USE_MAINTAINER_MODE" = "yes" && \
DEBUG_CFLAGS="$DEBUG_CFLAGS -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations"
fi
changequote([,])
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
@@ -233,6 +217,16 @@ if test "$ZEND_MAINTAINER_ZTS" = "yes"; then
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]*//`
@@ -410,10 +404,3 @@ AC_DEFUN([LIBZEND_CPLUSPLUS_CHECKS],[
])
AC_MSG_CHECKING(whether /dev/urandom exists)
if test -r "/dev/urandom" && test -c "/dev/urandom"; then
AC_DEFINE([HAVE_DEV_URANDOM], 1, [Define if the target system has /dev/urandom device])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
+17 -16
View File
@@ -148,10 +148,6 @@ SOURCE=.\zend_builtin_functions.c
# End Source File
# Begin Source File
SOURCE=.\zend_closures.c
# End Source File
# Begin Source File
SOURCE=.\zend_compile.c
# End Source File
# Begin Source File
@@ -164,11 +160,16 @@ SOURCE=.\zend_default_classes.c
# End Source File
# Begin Source File
SOURCE=.\zend_dynamic_array.c
# End Source File
# Begin Source File
SOURCE=.\zend_exceptions.c
# End Source File
# Begin Source File
SOURCE=.\zend_execute.c
# ADD CPP /I "..\TSRM"
# End Source File
# Begin Source File
@@ -180,10 +181,6 @@ SOURCE=.\zend_extensions.c
# End Source File
# Begin Source File
SOURCE=.\zend_float.c
# End Source File
# Begin Source File
SOURCE=.\zend_hash.c
# End Source File
# Begin Source File
@@ -232,6 +229,10 @@ 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
@@ -260,10 +261,6 @@ 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
@@ -328,6 +325,10 @@ 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
@@ -408,6 +409,10 @@ 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
@@ -436,10 +441,6 @@ 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
+3 -9
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
@@ -19,14 +19,8 @@
/* $Id$ */
#if defined(__GNUC__) && __GNUC__ >= 4
# define ZEND_API __attribute__ ((visibility("default")))
# define ZEND_DLEXPORT __attribute__ ((visibility("default")))
#else
# define ZEND_API
# define ZEND_DLEXPORT
#endif
#define ZEND_API
#define ZEND_DLEXPORT
#define ZEND_DLIMPORT
@TOP@
+1 -115
View File
@@ -4,7 +4,7 @@ dnl This file contains local autoconf functions.
AC_DEFUN([LIBZEND_BISON_CHECK],[
# we only support certain bison versions
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3 2.4 2.4.1"
bison_version_list="1.28 1.35 1.75 1.875 2.0 2.1 2.2 2.3"
# for standalone build of Zend Engine
test -z "$SED" && SED=sed
@@ -105,117 +105,3 @@ int main(void)
AC_DEFUN([AM_SET_LIBTOOL_VARIABLE],[
LIBTOOL='$(SHELL) $(top_builddir)/libtool $1'
])
dnl x87 floating point internal precision control checks
dnl See: http://wiki.php.net/rfc/rounding
AC_DEFUN([ZEND_CHECK_FLOAT_PRECISION],[
AC_MSG_CHECKING([for usable _FPU_SETCW])
AC_TRY_LINK([
#include <fpu_control.h>
],[
fpu_control_t fpu_oldcw, fpu_cw;
volatile double result;
double a = 2877.0;
volatile double b = 1000000.0;
_FPU_GETCW(fpu_oldcw);
fpu_cw = (fpu_oldcw & ~_FPU_EXTENDED & ~_FPU_SINGLE) | _FPU_DOUBLE;
_FPU_SETCW(fpu_cw);
result = a / b;
_FPU_SETCW(fpu_oldcw);
], [ac_cfp_have__fpu_setcw=yes], [ac_cfp_have__fpu_setcw=no])
if test "$ac_cfp_have__fpu_setcw" = "yes" ; then
AC_DEFINE(HAVE__FPU_SETCW, 1, [whether _FPU_SETCW is present and usable])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([for usable fpsetprec])
AC_TRY_LINK([
#include <machine/ieeefp.h>
],[
fp_prec_t fpu_oldprec;
volatile double result;
double a = 2877.0;
volatile double b = 1000000.0;
fpu_oldprec = fpgetprec();
fpsetprec(FP_PD);
result = a / b;
fpsetprec(fpu_oldprec);
], [ac_cfp_have_fpsetprec=yes], [ac_cfp_have_fpsetprec=no])
if test "$ac_cfp_have_fpsetprec" = "yes" ; then
AC_DEFINE(HAVE_FPSETPREC, 1, [whether fpsetprec is present and usable])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([for usable _controlfp])
AC_TRY_LINK([
#include <float.h>
],[
unsigned int fpu_oldcw;
volatile double result;
double a = 2877.0;
volatile double b = 1000000.0;
fpu_oldcw = _controlfp(0, 0);
_controlfp(_PC_53, _MCW_PC);
result = a / b;
_controlfp(fpu_oldcw, _MCW_PC);
], [ac_cfp_have__controlfp=yes], [ac_cfp_have__controlfp=no])
if test "$ac_cfp_have__controlfp" = "yes" ; then
AC_DEFINE(HAVE__CONTROLFP, 1, [whether _controlfp is present usable])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([for usable _controlfp_s])
AC_TRY_LINK([
#include <float.h>
],[
unsigned int fpu_oldcw, fpu_cw;
volatile double result;
double a = 2877.0;
volatile double b = 1000000.0;
_controlfp_s(&fpu_cw, 0, 0);
fpu_oldcw = fpu_cw;
_controlfp_s(&fpu_cw, _PC_53, _MCW_PC);
result = a / b;
_controlfp_s(&fpu_cw, fpu_oldcw, _MCW_PC);
], [ac_cfp_have__controlfp_s=yes], [ac_cfp_have__controlfp_s=no])
if test "$ac_cfp_have__controlfp_s" = "yes" ; then
AC_DEFINE(HAVE__CONTROLFP_S, 1, [whether _controlfp_s is present and usable])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
AC_MSG_CHECKING([whether FPU control word can be manipulated by inline assembler])
AC_TRY_LINK([
/* nothing */
],[
unsigned int oldcw, cw;
volatile double result;
double a = 2877.0;
volatile double b = 1000000.0;
__asm__ __volatile__ ("fnstcw %0" : "=m" (*&oldcw));
cw = (oldcw & ~0x0 & ~0x300) | 0x200;
__asm__ __volatile__ ("fldcw %0" : : "m" (*&cw));
result = a / b;
__asm__ __volatile__ ("fldcw %0" : : "m" (*&oldcw));
], [ac_cfp_have_fpu_inline_asm_x86=yes], [ac_cfp_have_fpu_inline_asm_x86=no])
if test "$ac_cfp_have_fpu_inline_asm_x86" = "yes" ; then
AC_DEFINE(HAVE_FPU_INLINE_ASM_X86, 1, [whether FPU control word can be manipulated by inline assembler])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
])
-1
View File
@@ -1,6 +1,5 @@
<?php
date_default_timezone_set('UTC');
function simple() {
$a = 0;
for ($i = 0; $i < 1000000; $i++)
+1
View File
@@ -7,6 +7,7 @@ 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
+1648
View File
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -2,7 +2,7 @@
+----------------------------------------------------------------------+
| Zend Engine |
+----------------------------------------------------------------------+
| Copyright (c) 1998-2010 Zend Technologies Ltd. (http://www.zend.com) |
| Copyright (c) 1998-2006 Zend Technologies Ltd. (http://www.zend.com) |
+----------------------------------------------------------------------+
| This source file is subject to version 2.00 of the Zend license, |
| that is bundled with this package in the file LICENSE, and is |
+1 -1
View File
@@ -35,7 +35,7 @@ var_dump(func_num_args());
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
int(0)
int(1)
+1 -1
View File
@@ -42,7 +42,7 @@ var_dump(func_get_arg(1));
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
Warning: func_get_arg(): The argument number should be >= 0 in %s on line %d
bool(false)
+1 -1
View File
@@ -36,7 +36,7 @@ var_dump(func_get_args());
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
array(0) {
}
array(1) {
+2 -2
View File
@@ -12,8 +12,8 @@ var_dump(strncmp("qwerty", "qwerty123", 7));
echo "Done\n";
?>
--EXPECTF--
Warning: strncmp() expects exactly 3 parameters, 2 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for strncmp() in %s on line %d
NULL
int(0)
+3 -3
View File
@@ -14,11 +14,11 @@ var_dump(strcasecmp("01", "01"));
echo "Done\n";
?>
--EXPECTF--
Warning: strcasecmp() expects exactly 2 parameters, 1 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for strcasecmp() in %s on line %d
NULL
int(0)
int(-1)
int(-3)
int(-1)
int(0)
int(0)
+4 -4
View File
@@ -15,17 +15,17 @@ var_dump(strncasecmp("01", "01", 1000));
echo "Done\n";
?>
--EXPECTF--
Warning: strncasecmp() expects exactly 3 parameters, 1 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for strncasecmp() in %s on line %d
NULL
Warning: Length must be greater than or equal to 0 in %s on line %d
bool(false)
int(0)
int(-1)
int(-3)
int(0)
int(0)
int(1)
int(2)
int(0)
int(0)
Done
+10 -10
View File
@@ -21,8 +21,8 @@ var_dump(each($a));
echo "Done\n";
?>
--EXPECTF--
Warning: each() expects exactly 1 parameter, 0 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for each() in %s on line %d
NULL
Warning: Variable passed to each() is not an array or object in %s on line %d
@@ -33,31 +33,31 @@ NULL
array(4) {
[1]=>
int(1)
[u"value"]=>
["value"]=>
int(1)
[0]=>
int(0)
[u"key"]=>
["key"]=>
int(0)
}
array(4) {
[1]=>
int(1)
[u"value"]=>
["value"]=>
int(1)
[0]=>
unicode(1) "a"
[u"key"]=>
unicode(1) "a"
string(1) "a"
["key"]=>
string(1) "a"
}
array(4) {
[1]=>
int(1)
[u"value"]=>
["value"]=>
int(1)
[0]=>
int(0)
[u"key"]=>
["key"]=>
int(0)
}
Done
+7 -7
View File
@@ -22,19 +22,19 @@ var_dump(constant("test const"));
echo "Done\n";
?>
--EXPECTF--
Warning: define() expects at least 2 parameters, 0 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for define() in %s on line %d
NULL
Warning: define() expects at least 2 parameters, 1 given in %s on line %d
Warning: Wrong parameter count for define() in %s on line %d
NULL
bool(true)
Warning: define() expects parameter 3 to be boolean, array given in %s on line %d
NULL
Notice: Constant true already defined in %s on line %d
bool(false)
Warning: define() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
Notice: Array to string conversion in %s on line %d
bool(true)
bool(true)
bool(true)
bool(true)
+7 -9
View File
@@ -29,20 +29,18 @@ var_dump(get_class($f2));
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
Strict Standards: Non-static method foo::bar() should not be called statically in %s on line %d
unicode(3) "foo"
string(3) "foo"
Strict Standards: Non-static method foo::bar() should not be called statically in %s on line %d
unicode(3) "foo"
unicode(3) "foo"
unicode(3) "foo"
string(3) "foo"
string(3) "foo"
string(3) "foo"
Warning: get_class() called without object from outside a class in %s on line %d
bool(false)
Warning: get_class() expects parameter 1 to be object, Unicode string given in %s on line %d
bool(false)
unicode(3) "foo"
unicode(4) "foo2"
string(3) "foo"
string(4) "foo2"
Done
+4 -4
View File
@@ -41,13 +41,13 @@ var_dump(get_parent_class(1));
echo "Done\n";
?>
--EXPECT--
--EXPECTF--
bool(false)
bool(false)
unicode(3) "foo"
unicode(3) "foo"
string(3) "foo"
string(3) "foo"
bool(false)
unicode(3) "foo"
string(3) "foo"
bool(false)
bool(false)
bool(false)
+8 -8
View File
@@ -52,23 +52,23 @@ $bar->test();
echo "Done\n";
?>
--EXPECTF--
Warning: property_exists() expects exactly 2 parameters, 0 given in %s on line %d
--EXPECTF--
Warning: Wrong parameter count for property_exists() in %s on line %d
NULL
Warning: property_exists() expects exactly 2 parameters, 1 given in %s on line %d
Warning: Wrong parameter count for property_exists() in %s on line %d
NULL
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(false)
bool(true)
bool(true)
bool(true)
bool(false)
bool(false)
bool(false)
bool(false)
@@ -84,6 +84,6 @@ bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(false)
bool(true)
Done
+2 -2
View File
@@ -18,13 +18,13 @@ var_dump(class_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
Warning: class_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
bool(false)
bool(false)
Warning: class_exists() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
Warning: class_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
+2 -2
View File
@@ -18,13 +18,13 @@ var_dump(interface_exists("stdClass"));
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
Warning: interface_exists() expects at least 1 parameter, 0 given in %s on line %d
NULL
bool(false)
bool(false)
Warning: interface_exists() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
Warning: interface_exists() expects parameter 1 to be string, array given in %s on line %d
NULL
bool(false)
bool(true)
+10 -10
View File
@@ -20,33 +20,33 @@ var_dump(get_included_files());
echo "Done\n";
?>
--EXPECTF--
--EXPECTF--
array(1) {
[0]=>
unicode(%d) "%s"
string(%d) "%s"
}
array(2) {
[0]=>
unicode(%d) "%s"
string(%d) "%s"
[1]=>
unicode(%d) "%s"
string(%d) "%s"
}
Warning: get_included_files() expects exactly 0 parameters, 2 given in %s on line %d
Warning: Wrong parameter count for get_included_files() in %s on line %d
NULL
array(2) {
[0]=>
unicode(%d) "%s"
string(%d) "%s"
[1]=>
unicode(%d) "%s"
string(%d) "%s"
}
Warning: get_included_files() expects exactly 0 parameters, 1 given in %s on line %d
Warning: Wrong parameter count for get_included_files() in %s on line %d
NULL
array(2) {
[0]=>
unicode(%d) "%s"
string(%d) "%s"
[1]=>
unicode(%d) "%s"
string(%d) "%s"
}
Done
+5 -7
View File
@@ -9,19 +9,20 @@ var_dump(trigger_error(array()));
var_dump(trigger_error("error", -1));
var_dump(trigger_error("error", 0));
var_dump(trigger_error("error", E_USER_WARNING));
var_dump(trigger_error("error", E_USER_DEPRECATED));
echo "Done\n";
?>
--EXPECTF--
Warning: trigger_error() expects at least 1 parameter, 0 given in %s on line %d
Warning: Wrong parameter count for trigger_error() in %s on line %d
NULL
Notice: error in %s on line %d
bool(true)
Warning: trigger_error() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
Notice: Array to string conversion in %s on line %d
Notice: Array in %s on line %d
bool(true)
Warning: Invalid error type specified in %s on line %d
bool(false)
@@ -31,7 +32,4 @@ bool(false)
Warning: error in %s on line %d
bool(true)
Deprecated: error in %s on line %d
bool(true)
Done
+1 -1
View File
@@ -8,5 +8,5 @@ isset($foo->bar->bar);
echo "Done\n";
?>
--EXPECT--
--EXPECT--
Done
-86
View File
@@ -1,86 +0,0 @@
--TEST--
builtin functions tests
--FILE--
<?php
var_dump(get_resource_type());
var_dump(get_resource_type(""));
$fp = fopen(__FILE__, "r");
var_dump(get_resource_type($fp));
fclose($fp);
var_dump(get_resource_type($fp));
var_dump(gettype(get_loaded_extensions()));
var_dump(count(get_loaded_extensions()));
var_dump(gettype(get_loaded_extensions(true)));
var_dump(count(get_loaded_extensions(true)));
var_dump(get_loaded_extensions(true, true));
define("USER_CONSTANT", "test");
var_dump(get_defined_constants(true, true));
var_dump(gettype(get_defined_constants(true)));
var_dump(gettype(get_defined_constants()));
var_dump(count(get_defined_constants()));
function test () {
}
var_dump(get_defined_functions(true));
var_dump(gettype(get_defined_functions()));
var_dump(count(get_defined_functions()));
var_dump(get_declared_interfaces(true));
var_dump(gettype(get_declared_interfaces()));
var_dump(count(get_declared_interfaces()));
var_dump(get_extension_funcs());
var_dump(get_extension_funcs(true));
var_dump(gettype(get_extension_funcs("standard")));
var_dump(count(get_extension_funcs("standard")));
var_dump(gettype(get_extension_funcs("zend")));
var_dump(count(get_extension_funcs("zend")));
echo "Done\n";
?>
--EXPECTF--
Warning: get_resource_type() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: get_resource_type() expects parameter 1 to be resource, Unicode string given in %s on line %d
NULL
unicode(6) "stream"
unicode(7) "Unknown"
unicode(5) "array"
int(%d)
unicode(5) "array"
int(0)
Warning: get_loaded_extensions() expects at most 1 parameter, 2 given in %s on line %d
NULL
Warning: get_defined_constants() expects at most 1 parameter, 2 given in %s on line %d
NULL
unicode(5) "array"
unicode(5) "array"
int(%d)
Warning: get_defined_functions() expects exactly 0 parameters, 1 given in %s on line %d
NULL
unicode(5) "array"
int(%d)
Warning: get_declared_interfaces() expects exactly 0 parameters, 1 given in %s on line %d
NULL
unicode(5) "array"
int(%d)
Warning: get_extension_funcs() expects exactly 1 parameter, 0 given in %s on line %d
NULL
bool(false)
unicode(5) "array"
int(%d)
unicode(5) "array"
int(%d)
Done
-34
View File
@@ -1,34 +0,0 @@
--TEST--
constant() tests
--FILE--
<?php
var_dump(constant());
var_dump(constant("", ""));
var_dump(constant(""));
var_dump(constant(array()));
define("TEST_CONST", 1);
var_dump(constant("TEST_CONST"));
define("TEST_CONST2", "test");
var_dump(constant("TEST_CONST2"));
echo "Done\n";
?>
--EXPECTF--
Warning: constant() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: constant() expects exactly 1 parameter, 2 given in %s on line %d
NULL
Warning: constant(): Couldn't find constant in %s on line %d
NULL
Warning: constant() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
int(1)
unicode(4) "test"
Done
-1333
View File
File diff suppressed because it is too large. Load diff
-34
View File
@@ -1,34 +0,0 @@
--TEST--
func_get_arg() invalid usage
--FILE--
<?php
var_dump(func_get_arg(1,2,3));
var_dump(func_get_arg(1));
var_dump(func_get_arg());
function bar() {
var_dump(func_get_arg(1));
}
function foo() {
bar(func_get_arg(1));
}
foo(1,2);
echo "Done\n";
?>
--EXPECTF--
Warning: func_get_arg() expects exactly 1 parameter, 3 given in %s on line %d
NULL
Warning: func_get_arg(): Called from the global scope - no function context in %s on line %d
bool(false)
Warning: func_get_arg() expects exactly 1 parameter, 0 given in %s on line %d
NULL
Warning: func_get_arg(): Argument 1 not passed to function in %s on line %d
bool(false)
Done
-37
View File
@@ -1,37 +0,0 @@
--TEST--
?: operator
--FILE--
<?php
var_dump(true ?: false);
var_dump(false ?: true);
var_dump(23 ?: 42);
var_dump(0 ?: "bar");
$a = 23;
$b = 0;
$c = "";
$d = 23.5;
var_dump($a ?: $b);
var_dump($c ?: $d);
var_dump(1 ?: print(2));
$e = array();
$e['e'] = 'e';
$e['e'] = $e['e'] ?: 'e';
print_r($e);
?>
--EXPECT--
bool(true)
bool(true)
int(23)
unicode(3) "bar"
int(23)
float(23.5)
int(1)
Array
(
[e] => e
)
-24
View File
@@ -1,24 +0,0 @@
--TEST--
Implementating abstracting methods and optional parameters
--FILE--
<?php
abstract class Base
{
abstract function someMethod($param);
}
class Ext extends Base
{
function someMethod($param = "default")
{
echo $param, "\n";
}
}
$a = new Ext();
$a->someMethod("foo");
$a->someMethod();
--EXPECT--
foo
default
-45
View File
@@ -1,45 +0,0 @@
--TEST--
Testing variable variables as function name
--FILE--
<?php
$a = 'ucfirst';
$b = 'a';
print $$b('test');
print "\n";
class bar {
public function a() {
return "bar!";
}
}
class foo {
public function test() {
print "foo!\n";
return new bar;
}
}
function test() {
return new foo;
}
$a = 'test';
$b = 'a';
var_dump($$b()->$$b()->$b());
$a = 'strtoupper';
$b = 'a';
$c = 'b';
$d = 'c';
var_dump($$$$d('foo'));
?>
--EXPECT--
Test
foo!
unicode(4) "bar!"
unicode(3) "FOO"
-51
View File
@@ -1,51 +0,0 @@
--TEST--
Testing operations with undefined variable
--FILE--
<?php
var_dump($a[1]);
var_dump($a[$c]);
var_dump($a + 1);
var_dump($a + $b);
var_dump($a++);
var_dump(++$b);
var_dump($a->$b);
var_dump($a->$b);
var_dump($a->$b->$c[1]);
?>
--EXPECTF--
Notice: Undefined variable: a in %s on line %d
NULL
Notice: Undefined variable: %s in %s on line %d
Notice: Undefined variable: %s in %s on line %d
NULL
Notice: Undefined variable: a in %s on line %d
int(1)
Notice: Undefined variable: %s in %s on line %d
Notice: Undefined variable: %s in %s on line %d
int(0)
Notice: Undefined variable: a in %s on line %d
NULL
Notice: Undefined variable: b in %s on line %d
int(1)
Notice: Trying to get property of non-object in %s on line %d
NULL
Notice: Trying to get property of non-object in %s on line %d
NULL
Notice: Undefined variable: c in %s on line %d
Notice: Trying to get property of non-object in %s on line %d
Notice: Trying to get property of non-object in %s on line %d
NULL
-32
View File
@@ -1,32 +0,0 @@
--TEST--
Testing dynamic calls
--FILE--
<?php
class foo {
static public function a() {
print "ok\n";
}
}
$a = 'a';
$b = 'a';
$class = 'foo';
foo::a();
foo::$a();
foo::$$b();
$class::a();
$class::$a();
$class::$$b();
?>
--EXPECT--
ok
ok
ok
ok
ok
ok
-25
View File
@@ -1,25 +0,0 @@
--TEST--
Trying assign value to property when an object is not returned in a function
--FILE--
<?php
class foo {
public function a() {
}
}
$test = new foo;
$test->a()->a;
print "ok\n";
$test->a()->a = 1;
print "ok\n";
?>
--EXPECTF--
Notice: Trying to get property of non-object in %s on line %d
ok
Strict Standards: Creating default object from empty value in %s on line %d
ok
-22
View File
@@ -1,22 +0,0 @@
--TEST--
Testing dynamic calls using variable variables with curly syntax
--FILE--
<?php
$a = 'b';
$b = 'c';
$c = 'strtoupper';
var_dump(${${$a}}('foo') == 'FOO');
$a = 'b';
$b = 'c';
$c = 'strtoupper';
$strtoupper = 'strtolower';
var_dump(${${++$a}}('FOO') == 'foo');
?>
--EXPECT--
bool(true)
bool(true)
-23
View File
@@ -1,23 +0,0 @@
--TEST--
Testing function call through of array item
--FILE--
<?php
$arr = array('strtoupper', 'strtolower');
$k = 0;
var_dump($arr[0]('foo') == 'FOO');
var_dump($arr[$k]('foo') == 'FOO');
var_dump($arr[++$k]('FOO') == 'foo');
var_dump($arr[++$k]('FOO') == 'foo');
?>
--EXPECTF--
bool(true)
bool(true)
bool(true)
Notice: Undefined offset: 2 in %s on line %d
Fatal error: Function name must be a string in %s on line %d
-51
View File
@@ -1,51 +0,0 @@
--TEST--
Testing assign to property of an object in an array
--FILE--
<?php
$arr = array(new stdClass);
$arr[0]->a = clone $arr[0];
var_dump($arr);
$arr[0]->b = new $arr[0];
var_dump($arr);
$arr[0]->c = $arr[0]->a;
var_dump($arr);
?>
--EXPECT--
array(1) {
[0]=>
object(stdClass)#1 (1) {
[u"a"]=>
object(stdClass)#2 (0) {
}
}
}
array(1) {
[0]=>
object(stdClass)#1 (2) {
[u"a"]=>
object(stdClass)#2 (0) {
}
[u"b"]=>
object(stdClass)#3 (0) {
}
}
}
array(1) {
[0]=>
object(stdClass)#1 (3) {
[u"a"]=>
object(stdClass)#2 (0) {
}
[u"b"]=>
object(stdClass)#3 (0) {
}
[u"c"]=>
object(stdClass)#2 (0) {
}
}
}
-70
View File
@@ -1,70 +0,0 @@
--TEST--
Overriding $this in catch and checking the object properties later.
--FILE--
<?php
class foo {
public $test = 0;
private $test_2 = 1;
protected $test_3 = 2;
public function bar() {
try {
throw new Exception('foo');
} catch (Exception $this) {
var_dump($this);
}
$this->baz();
}
public function baz() {
foreach ($this as $k => $v) {
printf("'%s' => '%s'\n", $k, $v);
}
print "ok\n";
}
}
$test = new foo;
$test->bar();
?>
--EXPECTF--
object(Exception)#2 (%d) {
[u"message":protected]=>
unicode(3) "foo"
[u"string":u"Exception":private]=>
unicode(0) ""
[u"code":protected]=>
int(0)
[u"file":protected]=>
unicode(%d) "%s"
[u"line":protected]=>
int(%d)
[u"trace":u"Exception":private]=>
array(1) {
[0]=>
array(6) {
[u"file"]=>
unicode(%d) "%s"
[u"line"]=>
int(%d)
[u"function"]=>
unicode(3) "bar"
[u"class"]=>
unicode(3) "foo"
[u"type"]=>
unicode(2) "->"
[u"args"]=>
array(0) {
}
}
}
[u"previous":u"Exception":private]=>
NULL
}
'test' => '0'
'test_2' => '1'
'test_3' => '2'
ok
-11
View File
@@ -1,11 +0,0 @@
--TEST--
Testing array with '[]' passed as argument by value
--FILE--
<?php
function test($var) { }
test($arr[]);
?>
--EXPECTF--
Fatal error: Cannot use [] for reading in %s on line %d
-13
View File
@@ -1,13 +0,0 @@
--TEST--
Testing array with '[]' passed as argument by reference
--FILE--
<?php
function test(&$var) { }
test($arr[]);
print "ok!\n";
?>
--EXPECT--
ok!
-31
View File
@@ -1,31 +0,0 @@
--TEST--
Using undefined multidimensional array
--FILE--
<?php
$arr[1][2][3][4][5];
echo $arr[1][2][3][4][5];
$arr[1][2][3][4][5]->foo;
$arr[1][2][3][4][5]->foo = 1;
$arr[][] = 2;
$arr[][]->bar = 2;
?>
--EXPECTF--
Notice: Undefined variable: arr in %s on line %d
Notice: Undefined variable: arr in %s on line %d
Notice: Undefined variable: arr in %s on line %d
Notice: Trying to get property of non-object in %s on line %d
Strict Standards: Creating default object from empty value in %s on line %d
Strict Standards: Creating default object from empty value in %s on line %d
-26
View File
@@ -1,26 +0,0 @@
--TEST--
Testing multiples 'default:' in switch
--FILE--
<?php
switch (1) {
case 2:
print 'foo';
break;
case 3:
print 'bar';
break;
default:
print 1;
break;
default:
print 2;
break;
default:
print 3;
break;
}
?>
--EXPECT--
3
-18
View File
@@ -1,18 +0,0 @@
--TEST--
Using 'static' and 'global' in global scope
--FILE--
<?php
static $var, $var, $var = -1;
var_dump($var);
global $var, $var, $var;
var_dump($var);
var_dump($GLOBALS['var']);
?>
--EXPECT--
int(-1)
int(-1)
int(-1)
-13
View File
@@ -1,13 +0,0 @@
--TEST--
Trying to use lambda in array offset
--FILE--
<?php
$test[function(){}] = 1;
$a{function() { }} = 1;
?>
--EXPECTF--
Warning: Illegal offset type in %s on line %d
Warning: Illegal offset type in %s on line %d
-19
View File
@@ -1,19 +0,0 @@
--TEST--
Trying to access inexistent static property of Closure
--FILE--
<?php
namespace closure;
class closure { static $x = 1;}
$x = __NAMESPACE__;
var_dump(closure::$x);
var_dump($x::$x);
?>
--EXPECTF--
int(1)
Fatal error: Access to undeclared static property: Closure::$x in %s on line %d
-12
View File
@@ -1,12 +0,0 @@
--TEST--
Trying to use lambda as array key
--FILE--
<?php
var_dump(array(function() { } => 1));
?>
--EXPECTF--
Warning: Illegal offset type in %s on line %d
array(0) {
}
-14
View File
@@ -1,14 +0,0 @@
--TEST--
using multiple access modifiers (methods)
--FILE--
<?php
class test {
static public public static final public final function foo() {
}
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Multiple access type modifiers are not allowed in %s on line %d
-13
View File
@@ -1,13 +0,0 @@
--TEST--
using multiple access modifiers (attributes)
--FILE--
<?php
class test {
static public public static final public final $var;
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Multiple access type modifiers are not allowed in %s on line %d
-13
View File
@@ -1,13 +0,0 @@
--TEST--
using multiple access modifiers (classes)
--FILE--
<?php
final final class test {
function foo() {}
}
echo "Done\n";
?>
--EXPECTF--
Parse error: %s error,%sexpecting %s in %s on line %d
-14
View File
@@ -1,14 +0,0 @@
--TEST--
using multiple access modifiers (abstract methods)
--FILE--
<?php
class test {
abstract abstract function foo() {
}
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Multiple abstract modifiers are not allowed in %s on line %d
-14
View File
@@ -1,14 +0,0 @@
--TEST--
using multiple access modifiers (final methods)
--FILE--
<?php
class test {
final final function foo() {
}
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Multiple final modifiers are not allowed in %s on line %d
-14
View File
@@ -1,14 +0,0 @@
--TEST--
using multiple access modifiers (static methods)
--FILE--
<?php
class test {
static static function foo() {
}
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Multiple static modifiers are not allowed in %s on line %d
-13
View File
@@ -1,13 +0,0 @@
--TEST--
abstract final methods errmsg
--FILE--
<?php
class test {
final abstract function foo();
}
echo "Done\n";
?>
--EXPECTF--
Fatal error: Cannot use the final modifier on an abstract class member in %s on line %d
Loaded 100 of 12859 files, more files were not shown because too many files have changed in this diff. Show more